/*
Theme Name: Cエステ
Theme URI: https://c-esthetic.com/
Description: Cエステ（Communication Esthetic）専用テーマ。ピンク和モダン（生成りピンク×ローズ×金・明朝）。
Author: C-Esthetic
Version: 1.0
TextDomain: cesthe
*/


/* ============================================================
   Cエステ mock PINK — 和モダン・エレガント（ローズ／ピンク）
   淡ピンク #f8dce4→#fdf4f7 / ローズ #bd2c5b(大見出し) / ワイン #9a2f50
   金 #c2a15c(#9a7636) / 本文プラム #4a2530
   ※淡ピンク地の小さめ強調文字はワイン#9a2f50（AA 4.5:1確保）
   ============================================================ */
:root{
  --pink-top:#f8dce4;
  --pink-bot:#fdf4f7;
  --pink-band:#fbe8ee;
  --cream:#fdf4f7;
  --rose:#bd2c5b;        /* 大見出し専用（大文字＝基準内） */
  --wine:#9a2f50;        /* 濃色バンド／ボタン／小さめ強調文字 */
  --wine-deep:#7d2340;
  --gold:#c2a15c;
  --gold-pale:#d8c08a;
  --gold-text:#9a7636;
  --plum:#4a2530;        /* 本文 */
  --plum-soft:#6b4650;
  --serif-jp:"Shippori Mincho","Noto Serif JP",serif;
  --serif-en:"Cormorant Garamond",serif;
  --sans-jp:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{overflow-x:clip;}
body{
  background:
    radial-gradient(1100px 620px at 85% -8%, rgba(194,161,92,.10), transparent 60%),
    linear-gradient(180deg, var(--pink-top) 0%, #fbe6ec 34%, var(--pink-bot) 100%);
  background-attachment:fixed;
  color:var(--plum);
  font-family:var(--serif-jp);
  font-size:16px;
  line-height:2.1;
  letter-spacing:.06em;
  font-feature-settings:"palt";
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.container{max-width:1080px;margin:0 auto;padding:0 clamp(20px,5vw,48px);}

/* ---------- 汎用パーツ ---------- */
.eyebrow{
  font-family:var(--serif-en);
  font-size:13px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--gold-text);
  display:flex;align-items:center;gap:18px;
}
.eyebrow::before{content:"";display:block;width:44px;height:1px;background:var(--gold);}
.sec-head{margin-bottom:clamp(40px,6vw,64px);}
.sec-head h2{
  font-size:clamp(26px,3.4vw,36px);font-weight:600;letter-spacing:.14em;
  margin-top:14px;line-height:1.7;color:var(--rose);
}
.hairline{border:none;height:1px;background:linear-gradient(to right,transparent,var(--gold-pale),transparent);}
section{padding:clamp(72px,10vw,128px) 0;}

/* 写真プレースホルダ（維持） */
.ph{
  position:relative;
  border:1px solid rgba(154,47,80,.30);
  background:linear-gradient(150deg, #fceaf0 0%, #f7dbe4 48%, #fdf1f5 100%);
  display:flex;align-items:center;justify-content:center;
  outline:1px solid rgba(194,161,92,.4);outline-offset:6px;
}
.ph::after{
  content:attr(data-label);
  font-family:var(--serif-en);font-size:12px;letter-spacing:.5em;text-indent:.5em;
  color:rgba(154,118,54,.6);text-transform:uppercase;
}
.ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;}
.ph.has-img::after{content:none;}

/* フェードイン */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity 1s ease,transform 1s ease;}
.js .reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
}

/* ---------- ヘッダー ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(252,235,240,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(194,161,92,.45);
}
.header-inner{
  max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,40px);
  height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.logo{display:flex;flex-direction:column;line-height:1.3;}
.logo strong{font-size:22px;font-weight:600;letter-spacing:.22em;color:var(--wine);}
.logo span{font-family:var(--serif-en);font-size:10px;letter-spacing:.34em;color:var(--gold-text);text-transform:uppercase;}
nav.gnav ul{display:flex;gap:clamp(16px,2.4vw,32px);}
nav.gnav a{
  font-family:var(--sans-jp);font-weight:400;font-size:13px;letter-spacing:.14em;color:var(--plum-soft);
  padding:8px 2px;position:relative;white-space:nowrap;
}
nav.gnav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:2px;height:1px;background:var(--gold);transition:right .4s ease;
}
nav.gnav a:hover::after,nav.gnav a:focus-visible::after{right:0;}
.menu-btn{
  display:none;background:none;border:1px solid rgba(154,47,80,.4);
  width:46px;height:46px;cursor:pointer;position:relative;
}
.menu-btn span{
  position:absolute;left:12px;right:12px;height:1px;background:var(--wine);
  transition:transform .3s ease,opacity .3s ease;
}
.menu-btn span:nth-child(1){top:16px;}
.menu-btn span:nth-child(2){top:22px;}
.menu-btn span:nth-child(3){top:28px;}
.menu-open .menu-btn span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.menu-open .menu-btn span:nth-child(2){opacity:0;}
.menu-open .menu-btn span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
@media (max-width:860px){
  .menu-btn{display:block;}
  nav.gnav{
    position:absolute;top:76px;left:0;right:0;background:var(--pink-band);
    border-bottom:1px solid rgba(194,161,92,.45);max-height:0;overflow:hidden;transition:max-height .4s ease;
  }
  .menu-open nav.gnav{max-height:420px;}
  nav.gnav ul{flex-direction:column;gap:0;padding:12px clamp(20px,5vw,40px) 20px;}
  nav.gnav a{display:block;padding:13px 4px;font-size:14px;border-bottom:1px solid rgba(154,47,80,.12);}
  nav.gnav li:last-child a{border-bottom:none;}
}

/* ---------- 共通ボタン ---------- */
.btn{
  display:inline-block;
  font-family:var(--serif-jp);font-size:14px;letter-spacing:.3em;text-indent:.3em;
  color:var(--cream);background:var(--wine);padding:18px 46px;
  border:1px solid var(--wine);position:relative;
  transition:background .4s ease,color .4s ease;cursor:pointer;
}
.btn::after{
  content:"";position:absolute;inset:5px;border:1px solid rgba(216,192,138,.6);
  pointer-events:none;transition:border-color .4s ease;
}
.btn:hover,.btn:focus-visible{background:var(--wine-deep);}
.btn.btn-light{background:var(--pink-bot);color:var(--wine);border-color:var(--pink-bot);}
.btn.btn-light:hover,.btn.btn-light:focus-visible{background:#fff;}
.btn.btn-outline{background:transparent;color:var(--wine);border-color:var(--wine);}
.btn.btn-outline::after{border-color:transparent;}
.btn.btn-outline:hover,.btn.btn-outline:focus-visible{background:rgba(154,47,80,.06);}

/* ---------- ヒーロー（中央対称・金角フレーム） ---------- */
.hero{position:relative;padding:clamp(64px,9vw,104px) 0 clamp(72px,10vw,120px);overflow:clip;}
.hero-frame{
  position:relative;max-width:860px;margin:0 auto;
  padding:clamp(56px,8vw,96px) clamp(28px,6vw,80px);text-align:center;
}
.hero-frame .bracket{position:absolute;width:clamp(38px,5vw,60px);height:clamp(38px,5vw,60px);pointer-events:none;}
.hero-frame .bracket::before,.hero-frame .bracket::after{content:"";position:absolute;background:var(--gold);}
.hero-frame .bracket::before{width:100%;height:1px;}
.hero-frame .bracket::after{width:1px;height:100%;}
.hero-frame .b-tl{top:0;left:0;} .hero-frame .b-tl::before{top:0;left:0;} .hero-frame .b-tl::after{top:0;left:0;}
.hero-frame .b-tr{top:0;right:0;} .hero-frame .b-tr::before{top:0;right:0;} .hero-frame .b-tr::after{top:0;right:0;}
.hero-frame .b-bl{bottom:0;left:0;} .hero-frame .b-bl::before{bottom:0;left:0;} .hero-frame .b-bl::after{bottom:0;left:0;}
.hero-frame .b-br{bottom:0;right:0;} .hero-frame .b-br::before{bottom:0;right:0;} .hero-frame .b-br::after{bottom:0;right:0;}

.hero-eyebrow{
  font-family:var(--serif-en);font-size:clamp(12px,1.5vw,14px);
  letter-spacing:.5em;text-indent:.5em;text-transform:uppercase;color:var(--gold-text);
}
.hero h1{
  margin-top:30px;font-size:clamp(30px,5vw,52px);font-weight:800;
  letter-spacing:.14em;line-height:1.7;color:var(--rose);
}
.hero .hero-rule{width:64px;height:1px;background:var(--gold);margin:34px auto;}
.hero .hero-sub{font-size:clamp(17px,2.2vw,22px);font-weight:600;letter-spacing:.16em;color:var(--wine);}
.hero .hero-func{
  margin-top:16px;font-family:var(--sans-jp);font-weight:400;
  font-size:clamp(13px,1.6vw,15px);letter-spacing:.12em;color:var(--wine);
}
.hero .hero-tag{margin-top:14px;font-size:clamp(13px,1.6vw,15px);letter-spacing:.28em;color:var(--wine);}
.hero .hero-lead{margin:32px auto 0;max-width:36em;font-size:14px;line-height:2.1;color:var(--plum-soft);}
.hero-cta{margin-top:40px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
@media (max-width:420px){.hero-cta .btn{width:100%;max-width:320px;}}

/* ---------- VISION / MISSION ---------- */
.vm{background:var(--pink-band);border-top:1px solid rgba(194,161,92,.4);border-bottom:1px solid rgba(194,161,92,.4);}
.vm .vm-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,80px);}
.vm .vm-item{border-top:1px solid var(--gold-pale);padding-top:34px;}
.vm .vm-en{font-family:var(--serif-en);font-size:clamp(24px,2.6vw,30px);letter-spacing:.3em;color:var(--gold-text);}
.vm p{margin-top:18px;font-size:clamp(16px,1.9vw,19px);letter-spacing:.12em;line-height:2.2;color:var(--wine);}
@media (max-width:680px){.vm .vm-grid{grid-template-columns:1fr;}}

/* ---------- 理念 ---------- */
.philosophy .phi-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(32px,6vw,88px);}
.tate-title{
  writing-mode:vertical-rl;font-size:clamp(20px,2.2vw,26px);font-weight:600;letter-spacing:.42em;
  color:var(--rose);border-left:1px solid var(--gold-pale);padding-left:clamp(16px,2vw,28px);line-height:1;height:max-content;
}
.philosophy p{max-width:38em;color:var(--plum-soft);}
.philosophy p + p{margin-top:1.6em;}
.bijin-def{
  margin:44px 0;padding:clamp(28px,4vw,44px) clamp(24px,4vw,48px);
  border-top:1px solid var(--gold-pale);border-bottom:1px solid var(--gold-pale);
  display:flex;align-items:center;gap:clamp(24px,4vw,48px);flex-wrap:wrap;
}
.bijin-def .chars{display:flex;gap:clamp(18px,3vw,34px);align-items:baseline;flex-shrink:0;}
.bijin-def .char{text-align:center;}
.bijin-def .char b{display:block;font-size:clamp(36px,4.6vw,52px);font-weight:800;letter-spacing:.1em;line-height:1.3;}
.bijin-def .char.is-outer b{color:rgba(74,37,48,.34);}
.bijin-def .char.is-inner b{color:var(--rose);}
.bijin-def .char span{font-family:var(--serif-en);font-size:11px;letter-spacing:.3em;color:var(--gold-text);text-transform:uppercase;}
.bijin-def .arrow{font-family:var(--serif-en);color:var(--gold-text);font-size:20px;}
.bijin-def .def-text{flex:1;min-width:240px;font-size:15px;line-height:2.2;color:var(--plum);}
@media (max-width:680px){
  .philosophy .phi-grid{grid-template-columns:1fr;}
  .tate-title{writing-mode:horizontal-tb;border-left:none;border-bottom:1px solid var(--gold-pale);padding:0 0 14px;}
}

/* ---------- ご挨拶 ---------- */
.greeting{background:var(--pink-band);}
.greeting .inner{max-width:760px;margin:0 auto;text-align:center;}
.greeting .greet-photo{display:block;width:min(300px,72%);height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 14%;margin:0 auto clamp(30px,4.5vw,46px);border:1px solid rgba(154,47,80,.28);outline:1px solid rgba(194,161,92,.45);outline-offset:6px;}
.greeting h2{font-size:clamp(24px,3vw,32px);font-weight:600;letter-spacing:.2em;margin:16px 0 10px;color:var(--rose);}
.greeting .eyebrow{justify-content:center;}
.greeting .eyebrow::after{content:"";display:block;width:44px;height:1px;background:var(--gold);}
.greeting p{margin-top:34px;text-align:left;color:var(--plum-soft);}
.greeting .sign{margin-top:40px;font-size:15px;letter-spacing:.3em;color:var(--plum);display:flex;align-items:center;justify-content:flex-end;gap:20px;}
.greeting .sign::before{content:"";width:60px;height:1px;background:var(--gold-pale);}

/* ---------- プロフィール ---------- */
.profile .pro-grid{display:grid;grid-template-columns:minmax(240px,340px) minmax(0,1fr);gap:clamp(36px,6vw,80px);align-items:start;}
.profile .ph{aspect-ratio:3/4;}
.profile .name{font-size:clamp(24px,2.8vw,30px);font-weight:600;letter-spacing:.16em;color:var(--rose);}
.profile .name small{display:block;font-family:var(--serif-en);font-size:12px;letter-spacing:.4em;color:var(--gold-text);margin-top:8px;text-transform:uppercase;}
.profile .role{margin-top:14px;font-family:var(--sans-jp);font-size:13px;letter-spacing:.12em;color:var(--plum-soft);}
.profile .bio{margin-top:28px;color:var(--plum-soft);font-size:15px;}
.profile .bio + .bio{margin-top:1.4em;}
@media (max-width:760px){
  .profile .pro-grid{grid-template-columns:1fr;}
  .profile .ph{max-width:300px;}
}

/* ---------- 実績（信頼の可視化） ---------- */
.record{background:var(--pink-band);border-top:1px solid rgba(194,161,92,.4);border-bottom:1px solid rgba(194,161,92,.4);}
.record .sec-head{margin-bottom:clamp(32px,4vw,48px);}
.record-lead{font-family:var(--serif-en);font-size:13px;letter-spacing:.42em;text-transform:uppercase;color:var(--gold-text);margin-bottom:22px;}
.guests-band{
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,3vw,32px);
  border-top:1px solid var(--gold-pale);border-bottom:1px solid var(--gold-pale);
  padding:clamp(28px,4vw,40px) 0;
}
.guests-band .g{text-align:center;padding:0 8px;}
.guests-band .g-role{font-family:var(--sans-jp);font-size:12px;letter-spacing:.2em;color:var(--wine);}
.guests-band .g-name{margin-top:12px;font-size:clamp(18px,2.2vw,24px);font-weight:600;letter-spacing:.1em;color:var(--plum);line-height:1.5;}
.guests-band .g + .g{border-left:1px solid rgba(194,161,92,.4);}
.record-meta{margin-top:clamp(28px,4vw,44px);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,36px);}
.record-meta .rm{border-top:1px solid rgba(194,161,92,.5);padding-top:20px;}
.record-meta .rm-k{font-family:var(--serif-en);font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-text);}
.record-meta .rm-v{margin-top:10px;font-size:14px;letter-spacing:.06em;color:var(--plum);line-height:1.9;}
.record-meta .rm.is-todo .rm-v{color:rgba(74,37,48,.4);}
@media (max-width:760px){
  .guests-band{grid-template-columns:1fr;gap:0;}
  .guests-band .g{padding:20px 8px;border-top:1px solid rgba(194,161,92,.35);}
  .guests-band .g:first-child{border-top:none;}
  .guests-band .g + .g{border-left:none;}
  .record-meta{grid-template-columns:1fr;}
}

/* ---------- SERVICE ---------- */
.service{background:var(--pink-band);border-top:1px solid rgba(194,161,92,.4);border-bottom:1px solid rgba(194,161,92,.4);}
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,36px);}
.svc{
  background:rgba(255,255,255,.5);border:1px solid rgba(189,44,91,.32);
  padding:clamp(28px,4vw,42px) clamp(24px,3.4vw,38px);display:flex;flex-direction:column;
}
.svc .svc-no{font-family:var(--serif-en);font-size:12px;letter-spacing:.4em;color:var(--gold-text);margin-bottom:16px;text-transform:uppercase;}
.svc h3{font-size:clamp(19px,2vw,22px);font-weight:600;letter-spacing:.12em;line-height:1.8;color:var(--rose);}
.svc .svc-catch{margin-top:12px;font-size:14px;letter-spacing:.08em;color:var(--plum-soft);line-height:2;}
.svc-meta{margin-top:22px;padding-top:20px;border-top:1px solid rgba(194,161,92,.45);flex:1;}
.svc-row{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:baseline;padding:6px 0;}
.svc-row .k{
  font-family:var(--sans-jp);font-size:11px;font-weight:400;letter-spacing:.18em;
  color:var(--gold-text);border-left:2px solid var(--gold);padding-left:10px;
}
.svc-row .v{font-family:var(--sans-jp);font-size:13px;font-weight:300;letter-spacing:.06em;color:var(--plum);line-height:1.8;}
.svc-inquiry{
  margin-top:20px;align-self:flex-start;
  font-family:var(--sans-jp);font-size:12px;letter-spacing:.16em;color:var(--wine);
  border-bottom:1px solid var(--wine);padding-bottom:3px;transition:opacity .3s ease;
}
.svc-inquiry:hover,.svc-inquiry:focus-visible{opacity:.65;}
/* サービス導入文 */
.svc-intro{
  max-width:42em;margin:-8px 0 clamp(36px,5vw,52px);
  font-size:15px;line-height:2.2;letter-spacing:.08em;color:var(--plum);
}
.svc-intro b{font-weight:600;color:var(--wine);}
.svc-note{margin-top:clamp(28px,4vw,40px);text-align:right;font-family:var(--sans-jp);font-size:12px;letter-spacing:.08em;color:var(--plum-soft);}
@media (max-width:680px){.svc-note{text-align:left;}}
/* 松竹梅プラン */
.svc-plans{margin-top:22px;padding-top:20px;border-top:1px solid rgba(194,161,92,.45);flex:1;}
.svc-plan{
  display:grid;grid-template-columns:auto 1fr auto;gap:8px 16px;align-items:baseline;
  padding:12px 0;border-bottom:1px dotted rgba(194,161,92,.5);
}
.svc-plans .svc-plan:last-child{border-bottom:none;}
.svc-plan .rank{
  font-family:var(--sans-jp);font-size:12px;letter-spacing:.16em;color:var(--gold-text);
  border-left:2px solid var(--gold);padding-left:10px;
}
.svc-plan .desc{font-family:var(--sans-jp);font-size:12px;font-weight:300;letter-spacing:.04em;color:var(--plum-soft);line-height:1.7;}
.svc-plan .price{font-family:var(--serif-jp);font-size:15px;letter-spacing:.04em;color:var(--plum);white-space:nowrap;}
.svc-content{margin-top:18px;font-family:var(--sans-jp);font-size:12px;font-weight:300;letter-spacing:.04em;color:var(--plum-soft);line-height:1.9;}
.svc-content .ck{color:var(--wine);}
.svc-note{margin-top:12px;font-family:var(--sans-jp);font-size:11px;letter-spacing:.04em;color:var(--plum-soft);line-height:1.7;}
@media (max-width:680px){.svc-grid{grid-template-columns:1fr;}}
@media (max-width:420px){
  .svc-plan{grid-template-columns:auto 1fr;}
  .svc-plan .price{grid-column:2;text-align:right;}
}

/* ---------- お客様の声 ---------- */
.voice .voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,36px);}
.voice blockquote{
  background:rgba(255,255,255,.5);border:1px solid rgba(194,161,92,.45);
  padding:clamp(28px,3.6vw,40px) clamp(24px,3vw,34px);position:relative;display:flex;flex-direction:column;
}
.voice blockquote::before{
  content:"\201C";font-family:var(--serif-en);font-size:64px;line-height:1;
  color:var(--gold-pale);position:absolute;top:14px;left:20px;
}
.voice blockquote p{margin-top:34px;font-size:14px;line-height:2.2;letter-spacing:.06em;color:var(--plum-soft);flex:1;}
.voice cite{
  margin-top:22px;font-style:normal;font-family:var(--sans-jp);font-size:12px;letter-spacing:.14em;
  color:var(--gold-text);display:flex;align-items:center;gap:12px;
}
.voice cite::before{content:"";width:26px;height:1px;background:var(--gold);}
@media (max-width:860px){.voice .voice-grid{grid-template-columns:1fr;max-width:560px;}}

/* ---------- エッセイ＆ラジオ ---------- */
.essay{background:var(--pink-band);}
.essay .es-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(36px,6vw,80px);align-items:start;}
.essay-list li{border-bottom:1px solid rgba(194,161,92,.5);}
.essay-list li:first-child{border-top:1px solid rgba(194,161,92,.5);}
.essay-list a{display:flex;gap:clamp(18px,3vw,36px);align-items:baseline;padding:20px 6px;transition:background .3s ease;}
.essay-list a:hover,.essay-list a:focus-visible{background:rgba(255,255,255,.55);}
.essay-list time{font-family:var(--serif-en);font-size:14px;letter-spacing:.18em;color:var(--gold-text);white-space:nowrap;}
.essay-list .t{font-size:15px;letter-spacing:.08em;line-height:1.9;color:var(--plum);}
.essay-note{margin-top:20px;font-family:var(--sans-jp);font-size:12px;letter-spacing:.1em;color:var(--wine);}
.radio-box{
  border:1px solid var(--wine);outline:1px solid rgba(194,161,92,.5);outline-offset:6px;
  padding:clamp(30px,4vw,44px) clamp(24px,3.4vw,38px);background:var(--pink-bot);text-align:center;
}
.radio-box .r-en{font-family:var(--serif-en);font-size:12px;letter-spacing:.42em;color:var(--gold-text);text-transform:uppercase;}
.radio-box h3{margin-top:12px;font-size:clamp(20px,2.2vw,24px);font-weight:600;letter-spacing:.16em;color:var(--rose);}
.radio-box p{margin-top:18px;font-size:13px;line-height:2.1;letter-spacing:.06em;color:var(--plum-soft);text-align:left;}
.radio-box .r-fact{margin-top:16px;font-family:var(--sans-jp);font-size:12px;letter-spacing:.1em;color:var(--wine);text-align:center;}
.radio-box .btn{margin-top:24px;padding:14px 38px;font-size:13px;}
@media (max-width:760px){.essay .es-grid{grid-template-columns:1fr;}}

/* ---------- 問合せCTA（唯一の濃色ワインバンド＋フォーム） ---------- */
.cta{
  background:radial-gradient(700px 340px at 50% 0%, rgba(216,192,138,.16), transparent 70%), var(--wine);
  color:var(--cream);text-align:center;
}
.cta .c-en{font-family:var(--serif-en);font-size:13px;letter-spacing:.44em;color:var(--gold-pale);text-transform:uppercase;}
.cta h2{margin-top:20px;font-size:clamp(24px,3.4vw,36px);font-weight:600;letter-spacing:.18em;line-height:1.9;color:var(--cream);}
.cta > .container > p{margin-top:22px;font-size:14px;letter-spacing:.1em;color:rgba(253,244,247,.88);}
.contact-panel{
  max-width:640px;margin:44px auto 0;
  background:var(--pink-bot);color:var(--plum);text-align:left;
  padding:clamp(30px,4vw,48px) clamp(24px,4vw,44px);
  border:1px solid rgba(216,192,138,.6);
}
.c-form .f-row{margin-bottom:22px;}
.c-form label{display:block;font-family:var(--sans-jp);font-size:12px;font-weight:400;letter-spacing:.14em;color:var(--wine);margin-bottom:8px;}
.c-form label .req{color:var(--gold-text);font-size:11px;margin-left:8px;letter-spacing:.1em;}
.c-form input,.c-form select,.c-form textarea{
  width:100%;font-family:var(--sans-jp);font-size:14px;letter-spacing:.04em;color:var(--plum);
  background:#fff;border:1px solid rgba(154,47,80,.3);border-radius:0;padding:13px 14px;line-height:1.7;
}
.c-form textarea{min-height:130px;resize:vertical;}
.c-form input:focus,.c-form select:focus,.c-form textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold);}
.c-form .btn{width:100%;margin-top:6px;padding:17px;text-indent:0;}
.c-form .form-note{margin-top:16px;font-family:var(--sans-jp);font-size:11px;letter-spacing:.06em;color:var(--plum-soft);line-height:1.8;}
.form-thanks{text-align:center;padding:clamp(28px,5vw,48px) 16px;font-size:16px;line-height:2;letter-spacing:.06em;color:var(--wine);font-weight:600;}
/* honeypot（視覚的に隠す・スクリーン外） */
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.contact-alt{margin-top:22px;text-align:center;}
.line-btn{
  display:inline-block;font-family:var(--sans-jp);font-size:13px;letter-spacing:.14em;
  color:var(--wine);background:#fff;border:1px solid var(--wine);padding:14px 40px;transition:background .3s ease;
}
.line-btn:hover,.line-btn:focus-visible{background:var(--pink-band);}
.cta .hairline{max-width:280px;margin:48px auto 0;background:linear-gradient(to right,transparent,rgba(216,192,138,.75),transparent);}

/* ---------- フッター ---------- */
footer{
  background:var(--wine-deep);color:rgba(253,244,247,.82);
  border-top:1px solid rgba(216,192,138,.35);padding:clamp(56px,7vw,84px) 0 40px;font-family:var(--sans-jp);
}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(36px,5vw,72px);}
.foot-logo strong{font-family:var(--serif-jp);font-size:22px;font-weight:600;letter-spacing:.22em;color:var(--cream);display:block;}
.foot-logo span{font-family:var(--serif-en);font-size:10px;letter-spacing:.34em;color:var(--gold-pale);text-transform:uppercase;}
.foot-info{margin-top:24px;font-size:13px;font-weight:300;line-height:2.2;letter-spacing:.06em;}
.foot-info dt{color:var(--gold-pale);font-size:11px;letter-spacing:.2em;margin-top:14px;}
.foot-info dd{margin:0;}
.foot-info a:hover,.foot-info a:focus-visible{text-decoration:underline;text-underline-offset:4px;}
.foot-nav h3{font-size:11px;letter-spacing:.3em;color:var(--gold-pale);margin-bottom:18px;font-weight:400;}
.foot-nav li{padding:7px 0;border-bottom:1px solid rgba(253,244,247,.1);}
.foot-nav a{font-size:13px;font-weight:300;letter-spacing:.12em;}
.foot-nav a:hover,.foot-nav a:focus-visible{color:var(--cream);text-decoration:underline;text-underline-offset:4px;}
.copyright{margin-top:56px;padding-top:24px;border-top:1px solid rgba(253,244,247,.12);text-align:center;font-family:var(--serif-en);font-size:12px;letter-spacing:.28em;color:rgba(253,244,247,.58);}
@media (max-width:680px){.foot-grid{grid-template-columns:1fr;}}

/* フォーカスリング */
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

/* --- 下層ページ共通 --- */

/* ---------- 下層ページ共通 ---------- */
.page-hero{padding:clamp(56px,8vw,92px) 0 clamp(36px,5vw,52px);border-bottom:1px solid rgba(194,161,92,.4);}
.page-hero .eyebrow{margin-bottom:16px;}
.page-hero h1{font-size:clamp(28px,4vw,44px);font-weight:600;letter-spacing:.14em;color:var(--rose);line-height:1.5;}
.crumb{margin-top:22px;font-family:var(--sans-jp);font-size:12px;letter-spacing:.1em;color:var(--plum-soft);}
.crumb a:hover,.crumb a:focus-visible{color:var(--wine);text-decoration:underline;text-underline-offset:3px;}
.crumb .sep{margin:0 10px;color:var(--gold-text);}
nav.gnav a[aria-current="page"]{color:var(--wine);}
nav.gnav a[aria-current="page"]::after{right:0;}
/* prose（本文1カラム） */
.prose{max-width:44em;margin:0 auto;}
.prose .lead{color:var(--plum);font-size:clamp(17px,2vw,20px);line-height:2.15;letter-spacing:.08em;}
.prose p{color:var(--plum-soft);font-size:clamp(15px,1.7vw,16px);}
.prose p + p{margin-top:1.8em;}
.prose .div{margin:clamp(32px,5vw,48px) 0;}
/* 会社概要テーブル */
.info-table{max-width:760px;margin:0 auto;border-bottom:1px solid rgba(194,161,92,.4);}
.info-table dl{display:grid;grid-template-columns:180px 1fr;}
.info-table dt{font-family:var(--sans-jp);font-size:13px;letter-spacing:.12em;color:var(--wine);padding:22px 8px 22px 0;border-top:1px solid rgba(194,161,92,.4);}
.info-table dd{margin:0;padding:22px 0;border-top:1px solid rgba(194,161,92,.4);color:var(--plum);font-size:15px;line-height:2;}
.info-table dd.todo{color:rgba(74,37,48,.42);}
.info-table dd a:hover,.info-table dd a:focus-visible{text-decoration:underline;text-underline-offset:3px;color:var(--wine);}
.info-table dd ol{list-style:none;}
.info-table dd li{padding:3px 0 3px 22px;position:relative;}
.info-table dd li::before{content:"";position:absolute;left:2px;top:17px;width:10px;height:1px;background:var(--gold);}
@media (max-width:560px){
  .info-table dl{grid-template-columns:1fr;}
  .info-table dt{padding-bottom:2px;}
  .info-table dd{padding-top:6px;border-top:none;}
}
/* お客様の声（2段組み・カテゴリ見出し） */
.voice-2col .voice-grid{grid-template-columns:1fr 1fr;align-items:start;}
.voice-cat{margin-top:clamp(48px,7vw,80px);}
@media (max-width:860px){.voice-2col .voice-grid{grid-template-columns:1fr;max-width:560px;margin-left:auto;margin-right:auto;}}
/* サービス詳細：ページヘッダー直下の二重罫線を回避 */
.page-hero + .service{border-top:none;}

/* --- 法定ページ --- */
/* 法定ページ：ブロック見出し＋箇条書き */
.legal-block + .legal-block{margin-top:clamp(44px,6vw,64px);}
.legal-block h2{font-size:clamp(19px,2.2vw,23px);font-weight:600;letter-spacing:.14em;line-height:1.8;
  color:var(--rose);border-bottom:1px solid var(--gold-pale);padding-bottom:14px;}
.legal-list{margin-top:24px;}
.legal-list li{position:relative;padding:6px 0 6px 26px;
  color:var(--plum-soft);font-size:clamp(15px,1.7vw,16px);line-height:2.1;}
.legal-list li::before{content:"";position:absolute;left:2px;top:23px;width:12px;height:1px;background:var(--gold);}
