@charset "UTF-8";
/* =========================================
 * SAPPORO BASE CLINIC - main stylesheet
 * (デモ _0006_design/index.html ベース + ドロワー + 下層ページ追加)
 * ========================================= */

:root{
  --navy:#202c5c;
  --navy-deep:#19234a;
  --navy-soft:#3a4674;
  --tint:#eef1f6;
  --tint-warm:#f7f6f2;
  --ink:#2c303a;
  --muted:#6f7585;
  --line:#d8dbe3;
  --white:#ffffff;
}

/* ---------- reset / base ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:84px;}
body{
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",sans-serif;
  color:var(--ink);line-height:1.95;font-size:15px;
  background:var(--white);-webkit-font-smoothing:antialiased;
  word-break:normal;line-break:auto;
}
body.drawer-open{overflow:hidden;}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
.serif{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;}
.telnum{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;
  font-weight:500;letter-spacing:.04em;}

/* Arkhe親テーマ wrapper の余分なパディングを抑制 */
.l-wrapper{padding:0;background:transparent;}

/* ---------- layout helpers ---------- */
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}
.sec{padding:clamp(64px,9vw,128px) 0;}
.eyebrow{
  font-family:"Cormorant Garamond",serif;
  font-size:14px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--navy-soft);font-weight:500;display:block;margin-bottom:14px;
}
.sec-title{
  font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(22px,3vw,33px);line-height:1.6;color:var(--navy);
  letter-spacing:.04em;
}
.sec-head{margin-bottom:clamp(36px,5vw,60px);}
.sec-head.center{text-align:center;}
.lead{color:var(--muted);font-size:15px;margin-top:18px;line-height:2.1;}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:12px;
  font-size:14px;letter-spacing:.06em;padding:15px 34px;border-radius:2px;
  transition:.25s;font-weight:500;
}
.btn-fill{background:var(--navy);color:#fff;}
.btn-fill:hover{background:var(--navy-deep);}
.btn-line{border:1px solid var(--navy);color:var(--navy);background:transparent;}
.btn-line:hover{background:var(--navy);color:#fff;}
.btn .ar{font-family:"Cormorant Garamond",serif;font-size:17px;}

/* ---------- header ---------- */
.hd{
  position:fixed;top:0;left:0;width:100%;z-index:100;
  background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);
  backdrop-filter:blur(6px);
}
.hd-in{display:flex;align-items:center;justify-content:space-between;
  height:84px;max-width:1280px;margin:0 auto;padding:0 28px;}
.hd-logo img{width:208px;}
.hd-nav{display:flex;gap:30px;align-items:center;}
.hd-nav a{font-size:13.5px;letter-spacing:.04em;color:var(--ink);transition:.2s;}
.hd-nav a:hover{color:var(--navy-soft);}
.hd-cta{display:flex;align-items:center;gap:20px;}
.hd-tel{text-align:right;line-height:1.3;}
.hd-tel .num{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;
  font-weight:500;font-size:23px;color:var(--navy);letter-spacing:.04em;}
.hd-tel .lbl{font-size:10px;letter-spacing:.14em;color:var(--muted);}
.hd-contact{background:var(--navy);color:#fff;font-size:13px;
  padding:13px 24px;letter-spacing:.06em;transition:.25s;}
.hd-contact:hover{background:var(--navy-deep);}
.hd-burger{display:none;background:transparent;border:0;cursor:pointer;
  padding:6px;flex-direction:column;gap:5px;
  position:relative;z-index:201;}
.hd-burger span{width:24px;height:1.5px;background:var(--navy);display:block;
  transition:transform .3s,opacity .3s;}
body.drawer-open .hd-burger span:nth-child(1){
  transform:translateY(6.5px) rotate(45deg);background:#fff;}
body.drawer-open .hd-burger span:nth-child(2){opacity:0;}
body.drawer-open .hd-burger span:nth-child(3){
  transform:translateY(-6.5px) rotate(-45deg);background:#fff;}
@media(max-width:980px){
  .hd-nav,.hd-tel,.hd-cta{display:none;}
  .hd-in{height:68px;}
  .hd-logo img{width:168px;}
  .hd-burger{display:flex;}
}

/* ---------- drawer (SP) ---------- */
/*
 * front.css (arkhe-toolkit) が html:not([data-drawer-move="fade"]) .p-drawer (詳細度0,2,1) で
 * background / transition / pointer-events / z-index を上書きするため、
 * 当該プロパティはすべて !important で対抗する。
 * また front.css の .p-drawer::before { background:#fff } を無効化する。
 */
.p-drawer{
  position:fixed;top:0;left:auto!important;right:0!important;width:min(420px,100vw);height:100vh;
  background:var(--navy)!important;color:#fff;z-index:150!important;
  transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1)!important;
  overflow-y:auto;visibility:hidden;
}
/* Arkhe/front.css が注入する白い疑似要素を無効化 */
.p-drawer::before{display:none!important;}
html .p-drawer.is-open{transform:translateX(0);visibility:visible;opacity:1;pointer-events:auto!important;z-index:150!important;}
.p-drawer__close{position:absolute;top:18px;right:18px;width:44px;height:44px;
  background:transparent;border:0;cursor:pointer;z-index:202;
  display:flex;align-items:center;justify-content:center;}
.p-drawer__close::before,.p-drawer__close::after{content:"";position:absolute;
  width:26px;height:1.5px;background:#fff;}
.p-drawer__close::before{transform:rotate(45deg);}
.p-drawer__close::after{transform:rotate(-45deg);}
.p-drawer__close:hover::before,.p-drawer__close:hover::after{background:#e7e9f1;}
.p-drawer__inner{
  padding:90px 32px 48px;
  /* front.css が width:88vw; max-width:480px; color:rgb(51,51,51) を上書きするため !important で対抗 */
  width:100vw!important;     /* SP: drawer=100vw に合わせてフィット          */
  max-width:100%!important;  /* tablet: 親(.p-drawer=420px)を超えないよう上限 */
  box-sizing:border-box;     /* padding込みで100vwにする                      */
  color:#fff!important;      /* front.css の color:rgb(51,51,51) を無効化     */
}
.p-drawer__nav{display:flex;flex-direction:column;gap:0;}
.p-drawer__nav a{
  color:#fff;font-family:"Noto Serif JP",serif;font-weight:500;font-size:16px;
  letter-spacing:.04em;padding:18px 0;
  border-bottom:1px solid rgba(255,255,255,.15);
  display:flex;align-items:center;gap:12px;
}
.p-drawer__nav a::before{
  content:"";width:18px;height:1px;background:rgba(255,255,255,.5);
}
.p-drawer__cta{margin-top:40px;display:flex;flex-direction:column;gap:14px;}
.p-drawer__tel{
  display:block;text-align:center;color:#fff;
  border:1px solid rgba(255,255,255,.4);padding:18px 16px;
}
.p-drawer__tel .lbl{font-size:10px;letter-spacing:.18em;color:#aab4d8;display:block;}
.p-drawer__tel .num{font-size:26px;display:block;margin-top:6px;
  font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;font-weight:500;}
.p-drawer__contact{
  display:block;background:#fff;color:var(--navy);text-align:center;
  font-weight:500;padding:18px;letter-spacing:.04em;font-size:14px;
}
.p-drawer__overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:140;
  opacity:0;pointer-events:none;transition:opacity .3s;cursor:pointer;
}
.p-drawer__overlay.is-open{opacity:1;pointer-events:auto;}
@media(min-width:981px){
  .p-drawer,.p-drawer__overlay{display:none;}
}

/* ---------- opening bar ---------- */
.open-bar{
  position:fixed;top:84px;left:0;width:100%;z-index:101;
  background:#fff8e4;
  border-top:1px solid #c9960e;border-bottom:1px solid #c9960e;
  height:46px;
  display:flex;align-items:center;justify-content:center;
  font-family:"Noto Serif JP",serif;font-size:15px;
  letter-spacing:.14em;font-weight:700;color:#202c5c;gap:18px;
}
.open-bar__tag{
  font-family:"Cormorant Garamond",serif;font-size:13px;
  letter-spacing:.28em;color:#b07e0a;
}
@media(max-width:980px){
  .open-bar{top:68px;font-size:13px;}
}

/* ---------- MV ---------- */
.mv{position:relative;min-height:92vh;display:flex;align-items:flex-end;
  overflow:hidden;margin-top:130px;}
.mv-bg{position:absolute;inset:0;}
.mv-bg img{width:100%;height:100%;object-fit:cover;object-position:30% center;}
.mv-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(25,35,74,.86) 0%,rgba(25,35,74,.55) 42%,rgba(25,35,74,.12) 78%);}
.mv-in{position:relative;width:100%;padding-bottom:clamp(56px,9vw,108px);padding-top:60px;}
.mv-en{font-family:"Cormorant Garamond",serif;color:#cfd5e6;
  font-size:clamp(15px,1.8vw,19px);letter-spacing:.28em;margin-bottom:22px;}
.mv-en small{display:block;font-family:"Noto Sans JP",sans-serif;
  font-size:11px;letter-spacing:.22em;color:#aab2cc;margin-top:0;}
.mv-ttl{font-family:"Noto Serif JP",serif;font-weight:600;color:#fff;
  font-size:clamp(34px,6vw,68px);line-height:1.4;letter-spacing:.06em;
  text-shadow:0 2px 24px rgba(0,0,0,.25);}
.mv-sub{color:#e7e9f1;font-size:clamp(14px,1.7vw,17px);
  letter-spacing:.1em;margin-top:24px;}
.mv-btns{display:flex;gap:16px;margin-top:38px;flex-wrap:wrap;}
.mv-btns .btn-fill{border:1px solid #fff;}
.mv-btns .btn-line{background:#fff;border:1px solid #fff;color:var(--navy);}
.mv-btns .btn-line:hover{background:var(--tint);border-color:var(--tint);}
.mv-btns .btn-line .telnum{color:var(--navy);}
@media(max-width:980px){
  .mv{min-height:78vh;margin-top:114px;}
  .mv-bg img{object-position:center center;}
  .mv-btns{gap:10px;flex-wrap:nowrap;margin-top:25px;}
  .mv-btns .btn{flex:1;justify-content:center;padding:14px 8px;
    font-size:13px;letter-spacing:.04em;}
  .mv-btns .btn .telnum{font-size:13px;}
  .mv-btns .btn .ar{display:none;}
}

/* ---------- intro ---------- */
.intro{background:var(--tint-warm);}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,80px);
  align-items:center;}
.intro-fig img{width:100%;aspect-ratio:5/4;object-fit:cover;}
.intro-txt h2{font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(21px,2.7vw,30px);line-height:1.75;color:var(--navy);
  letter-spacing:.04em;}
.intro-txt p{color:#54596a;margin-top:24px;line-height:2.2;}
@media(max-width:860px){.intro-grid{grid-template-columns:1fr;}}
.intro-link{display:inline-flex;align-items:center;gap:10px;
  margin-top:32px;font-family:"Cormorant Garamond",serif;font-size:14px;
  letter-spacing:.16em;color:var(--navy);
  border-bottom:1px solid var(--navy);padding-bottom:4px;transition:.2s;}
.intro-link:hover{color:var(--navy-soft);border-color:var(--navy-soft);}
.intro-link .ar{font-size:17px;transition:transform .3s;}
.intro-link:hover .ar{transform:translateX(4px);}

/* ---------- worries ---------- */
.worries{background:var(--navy);color:#fff;}
.worries .eyebrow{color:#9aa4c6;}
.worries .sec-title{color:#fff;}
.worry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);
  list-style:none;}
.worry-grid li{background:var(--navy);padding:24px 28px;display:flex;
  gap:16px;align-items:flex-start;font-size:14.5px;line-height:1.8;list-style:none;}
.worry-grid li .ck{font-family:"Cormorant Garamond",serif;color:#aab4d8;
  font-size:20px;flex-shrink:0;line-height:1.4;}
.worry-note{text-align:center;margin-top:40px;color:#c8cde0;
  font-size:17px;letter-spacing:.04em;line-height:1.85;}
.br-sp{display:none;}
@media(max-width:680px){
  .worry-grid{grid-template-columns:1fr;}
  .worry-grid li{padding:16px 16px;}
  .worry-note{font-size:18px;}
  .br-sp{display:inline;}
}

/* ---------- feature ---------- */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.feat-card .ph{position:relative;overflow:hidden;}
.feat-card .ph img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:.6s;}
.feat-card:hover .ph img{transform:scale(1.05);}
.feat-card .no{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;
  font-weight:500;font-size:38px;letter-spacing:.05em;
  color:var(--navy);margin:24px 0 10px;line-height:1;}
.feat-card h3{font-family:"Noto Serif JP",serif;font-weight:600;font-size:19px;
  color:var(--navy);line-height:1.6;letter-spacing:.03em;}
.feat-card p{color:#5a5f6f;font-size:14px;margin-top:12px;line-height:2;}
.taisei{margin-top:clamp(48px,6vw,72px);background:var(--tint);
  padding:clamp(32px,4vw,48px);}
.taisei h3{font-family:"Noto Serif JP",serif;font-weight:600;color:var(--navy);
  font-size:18px;letter-spacing:.04em;margin-bottom:24px;text-align:center;}
.taisei-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.taisei-row div{background:#fff;padding:22px 18px;text-align:center;
  font-size:13.5px;line-height:1.7;border-top:2px solid var(--navy);}
@media(max-width:860px){.feat-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto;}
  .taisei-row{grid-template-columns:1fr;}}

/* ---------- medical ---------- */
.medical{background:var(--tint-warm);}
.med-box{background:#fff;padding:clamp(30px,4vw,52px);border:1px solid var(--line);}
.med-box+.med-box{margin-top:24px;}
.med-box .med-lead{font-family:"Noto Serif JP",serif;font-weight:600;
  color:var(--navy);font-size:16px;letter-spacing:.04em;margin-bottom:22px;
  display:flex;align-items:center;gap:14px;}
.med-box .med-lead::before{content:"";width:28px;height:1px;background:var(--navy-soft);}
.tags{display:flex;flex-wrap:wrap;gap:10px;}
.tags span{border:1px solid var(--line);background:var(--tint-warm);
  font-size:13px;padding:8px 16px;color:#454a5b;letter-spacing:.02em;}
.med-list{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 22px;
  list-style:none;}
.med-list li{list-style:none;font-size:13.5px;color:#454a5b;
  padding-left:18px;position:relative;line-height:1.9;}
.med-list li::before{content:"";position:absolute;left:0;top:13px;
  width:6px;height:6px;background:var(--navy-soft);border-radius:50%;}
@media(max-width:860px){.med-list{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.med-list{grid-template-columns:1fr;}}

/* ---------- text-sec (shared utility) ---------- */
.text-sec .text-block{max-width:780px;margin:0 auto;}
.text-sec p{color:#54596a;font-size:14.5px;line-height:2.2;letter-spacing:.02em;}
.text-sec p+p{margin-top:18px;}
.text-sec .pts{margin:22px 0;list-style:none;}
.text-sec .pts li{padding-left:22px;position:relative;font-size:14.5px;
  line-height:2;color:#3c414f;list-style:none;}
.text-sec .pts li::before{content:"";position:absolute;left:0;top:14px;
  width:10px;height:1px;background:var(--navy-soft);}

/* ---------- firstask ---------- */
.firstask{background:var(--tint-warm);}

/* ---------- emergency(急変対応) ---------- */
.emerg{background:var(--navy);color:#fff;}
.emerg .sec-title{color:#fff;}
.emerg .eyebrow{color:#9aa4c6;}
.emerg .text-block p{color:#c4c9dc;}
.emerg .symp{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;
  margin:28px auto;max-width:760px;}
.emerg .symp span{border:1px solid rgba(255,255,255,.25);padding:9px 18px;
  font-size:13px;color:#e7e9f1;}

/* ---------- teaser (下層ページ誘導セクション) ---------- */
.teaser{position:relative;overflow:hidden;color:#fff;text-align:center;
  padding:clamp(72px,10vw,140px) 0;}
.teaser .eyebrow{color:#cfd5e6;}
.teaser .sec-title{color:#fff;margin-bottom:24px;}
.teaser-lead{color:#cfd5e6;font-size:14.5px;line-height:2.2;
  max-width:640px;margin:0 auto 32px;letter-spacing:.02em;}
.teaser-btn{background:#fff;color:var(--navy);}
.teaser-btn:hover{background:var(--tint);color:var(--navy-deep);}
.teaser-bg{position:absolute;inset:0;z-index:0;}
.teaser-bg img{width:100%;height:100%;object-fit:cover;}
.teaser-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(160deg,rgba(25,35,74,.92) 0%,rgba(25,35,74,.78) 100%);}
.teaser-in{position:relative;z-index:1;}

/* ---------- care-philosophy(神経難病・終末期・看取り) ---------- */
.care-philo{background:var(--tint-warm);}
/* 旧テキスト構造用(後方互換) */
.care-philo .group{margin-top:48px;border-top:1px solid var(--line);padding-top:36px;}
.care-philo .group:first-of-type{border-top:0;padding-top:0;margin-top:36px;}
.care-philo .group h3{font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:19px;color:var(--navy);letter-spacing:.04em;margin-bottom:18px;}
/* 新カード構造 */
.cp-intro{max-width:780px;margin:0 auto clamp(48px,6vw,72px);}
.cp-intro__txt{text-align:center;}
.cp-more{text-align:center;margin-top:clamp(36px,5vw,56px);}
.cp-card{display:flex;flex-direction:column;height:auto;
  padding:clamp(28px,3vw,40px) clamp(28px,3vw,40px) clamp(28px,3vw,36px);
  position:relative;overflow:hidden;border:1px solid var(--line);
  transition:transform .3s,box-shadow .3s;}
.cp-card:hover{transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(32,44,92,.14);}
.cp-card--white{background:#fff;}
.cp-card--tint{background:var(--tint);}
.cp-card--navy{background:var(--navy);color:#fff;border-color:rgba(255,255,255,.18);}
.cp-card__num{font-family:"Cormorant Garamond",serif;font-weight:500;
  font-size:clamp(72px,8vw,110px);line-height:1;color:var(--navy);
  letter-spacing:.02em;margin-bottom:18px;opacity:.85;
  font-feature-settings:"lnum";font-style:italic;}
.cp-card--navy .cp-card__num{color:#fff;opacity:.5;}
.cp-card__body{display:flex;flex-direction:column;flex:1;}
.cp-card__body .cp-eyebrow{color:var(--navy-soft);margin-bottom:8px;font-style:italic;}
.cp-card--navy .cp-card__body .cp-eyebrow{color:#aab4d8;}
.cp-card__body h3{font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(18px,2vw,22px);color:var(--navy);letter-spacing:.03em;
  line-height:1.5;margin-bottom:16px;}
.cp-card--navy .cp-card__body h3{color:#fff;}
.cp-card__body p{font-size:13.5px;color:#5a5f6f;line-height:2;margin-bottom:24px;}
.cp-card--navy .cp-card__body p{color:#cfd5e6;}
.cp-card__more{font-family:"Cormorant Garamond",serif;font-size:14px;
  letter-spacing:.16em;color:var(--navy);margin-top:auto;
  display:inline-flex;align-items:center;gap:8px;
  padding-top:18px;border-top:1px solid var(--line);}
.cp-card--tint .cp-card__more{border-top-color:rgba(32,44,92,.18);}
.cp-card--navy .cp-card__more{color:#fff;border-top-color:rgba(255,255,255,.25);}
.cp-card__more .ar{font-size:17px;transition:transform .3s;}
.cp-card:hover .cp-card__more .ar{transform:translateX(4px);}

/* ---------- ending ---------- */
.ending{background:var(--tint-warm);text-align:center;}
.ending .text-block{max-width:680px;}
.ending h2{font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(22px,2.8vw,30px);color:var(--navy);letter-spacing:.05em;
  line-height:1.6;margin-bottom:26px;}
.ending p{text-align:center;}

/* ---------- specialty ---------- */
.specialty .sp-body{max-width:820px;margin:0 auto;}
.specialty .sp-body p{color:#54596a;font-size:14.5px;line-height:2.2;letter-spacing:.02em;}
.specialty .sp-body p+p{margin-top:18px;}

/* ---------- visit ---------- */
.visit-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,72px);
  align-items:center;}
.visit-fig img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.visit-txt .desc{color:#54596a;line-height:2.2;margin-bottom:32px;}
.vs{display:grid;grid-template-columns:1fr;gap:14px;}
.vs-item{border:1px solid var(--line);padding:22px 26px;}
.vs-item .t{font-family:"Noto Serif JP",serif;font-weight:600;color:var(--navy);
  font-size:16px;margin-bottom:6px;letter-spacing:.04em;}
.vs-item .d{font-size:13.5px;color:#5a5f6f;}
.vs-item.a{background:var(--navy);}
.vs-item.a .t{color:#fff;}
.vs-item.a .d{color:#cdd2e4;}
@media(max-width:860px){.visit-grid{grid-template-columns:1fr;}}

/* ---------- message ---------- */
.message{background:var(--navy-deep);color:#fff;position:relative;overflow:hidden;}
.msg-in{max-width:760px;margin:0 auto;text-align:center;position:relative;}
.msg-in .eyebrow{color:#9aa4c6;}
.msg-in h2{font-family:"Noto Serif JP",serif;font-weight:500;
  font-size:clamp(20px,2.6vw,27px);line-height:2;letter-spacing:.05em;margin-bottom:28px;}
.msg-in p{color:#c4c9dc;line-height:2.3;font-size:14.5px;text-align:left;}
.msg-in p+p{margin-top:18px;}
.msg-in .sign{margin-top:30px;font-weight:600;color:#fff;letter-spacing:.06em;
  text-align:center;font-size:14px;}
@media(max-width:760px){.msg-in .sign{font-weight:400;text-align:right;}}

/* ---------- faq ---------- */
.faq-list{max-width:840px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--line);background:transparent;}
.faq-item summary{list-style:none;cursor:pointer;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-q{display:flex;gap:20px;align-items:flex-start;padding:26px 8px;transition:.2s;}
.faq-q:hover .qt{color:var(--navy-soft);}
.faq-q .q{font-family:"Cormorant Garamond",serif;font-size:22px;color:var(--navy-soft);
  line-height:1.3;flex-shrink:0;}
.faq-q .qt{font-size:15.5px;font-weight:500;color:var(--navy);letter-spacing:.03em;
  line-height:1.7;flex:1;transition:color .2s;}
.faq-ic{position:relative;width:18px;height:18px;flex-shrink:0;margin-top:6px;}
.faq-ic::before,.faq-ic::after{content:"";position:absolute;
  background:var(--navy-soft);transition:transform .3s,opacity .3s;}
.faq-ic::before{top:8px;left:0;width:18px;height:1.5px;}
.faq-ic::after{top:0;left:8px;width:1.5px;height:18px;}
.faq-item[open] .faq-ic::after{transform:rotate(90deg);opacity:0;}
.faq-a{display:flex;gap:20px;padding:0 8px 28px;}
.faq-a .a{font-family:"Cormorant Garamond",serif;font-size:22px;color:#b9bdcc;
  flex-shrink:0;line-height:1.3;}
.faq-a .at{font-size:14px;color:#5a5f6f;line-height:2.1;flex:1;}

/* ---------- support ---------- */
.support{background:var(--tint);}
.sup-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;}
.sup-card{background:#fff;padding:clamp(28px,3.4vw,44px);
  border-top:3px solid var(--navy);transition:.3s;}
.sup-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(32,44,92,.1);}
.sup-card .role{font-family:"Cormorant Garamond",serif;font-size:13px;
  letter-spacing:.18em;color:var(--navy-soft);margin-bottom:10px;}
.sup-card h3{font-family:"Noto Serif JP",serif;font-weight:600;color:var(--navy);
  font-size:18px;letter-spacing:.03em;line-height:1.6;}
.sup-card p{color:#5a5f6f;font-size:13.5px;margin-top:14px;line-height:2;}
@media(max-width:760px){.sup-grid{grid-template-columns:1fr;}}

/* ---------- contact CTA ---------- */
.contact{background:var(--navy);color:#fff;}
.contact .sec-title{color:#fff;}
.contact .eyebrow{color:#9aa4c6;}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);}
.ct-tel,.ct-form{background:var(--navy);padding:clamp(36px,4.4vw,60px);
  display:flex;flex-direction:column;}
.ct-h{font-family:"Noto Serif JP",serif;font-weight:600;font-size:17px;
  letter-spacing:.05em;margin-bottom:8px;color:#fff;
  display:flex;align-items:center;gap:12px;}
.ct-h .ic{font-family:"Cormorant Garamond",serif;font-size:13px;
  letter-spacing:.16em;color:#9aa4c6;}
.ct-tel .num{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;
  font-weight:500;font-size:clamp(34px,5vw,48px);
  color:#fff;letter-spacing:.04em;line-height:1.15;margin-top:20px;}
.ct-tel .person{margin-top:auto;font-size:13.5px;color:#cdd2e4;padding-top:20px;}
.ct-form .btn{background:#fff;color:var(--navy);justify-content:center;
  width:100%;margin-top:20px;}
.ct-form .btn:hover{background:var(--tint);}
@media(max-width:760px){.ct-grid{grid-template-columns:1fr;}
  .ct-tel .person{margin-top:28px;}
  .ct-form .btn{margin-top:18px;}}

/* ---------- access ---------- */
.acc-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:0;border:1px solid var(--line);}
.acc-info{padding:clamp(32px,4vw,52px);}
.acc-info .name{font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:19px;color:var(--navy);letter-spacing:.03em;}
.acc-info dl{margin-top:24px;}
.acc-info dl div{display:flex;gap:18px;padding:14px 0;border-bottom:1px dashed var(--line);}
.acc-info dt{font-size:12px;letter-spacing:.1em;color:var(--navy-soft);
  width:60px;flex-shrink:0;padding-top:3px;}
.acc-info dd{font-size:14px;color:#454a5b;line-height:1.9;}
.acc-info dd .telnum{font-size:18px;}
.acc-map{min-height:340px;background:var(--tint);}
.acc-map iframe{width:100%;height:100%;min-height:340px;border:0;display:block;}
@media(max-width:760px){.acc-grid{grid-template-columns:1fr;}}
@media(max-width:520px){.acc-info .name{font-size:16px;overflow-wrap:break-word;}}

/* ---------- footer ---------- */
.ft{background:var(--navy-deep);color:#fff;padding:clamp(56px,7vw,84px) 0 32px;}
.ft-top{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;
  padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.14);}
.ft-logo img{width:240px;margin-bottom:24px;}
.ft-addr{font-size:13px;color:#aeb4ca;line-height:2;}
.ft-addr .telnum{font-size:16px;color:#d5d9e6;}
.ft-nav{display:flex;flex-wrap:wrap;gap:14px 30px;align-content:flex-start;}
.ft-nav a{font-size:13px;color:#c4c9dc;transition:.2s;}
.ft-nav a:hover{color:#fff;}
.ft-copy{text-align:center;margin-top:30px;font-family:"Cormorant Garamond",serif;
  font-size:12px;letter-spacing:.16em;color:#7f86a4;}
@media(max-width:760px){.ft-top{grid-template-columns:1fr;gap:32px;}}

/* ============================================
 * 下層ページ共通
 * ============================================ */
.phero{background:var(--tint-warm);
  padding:calc(130px + clamp(40px,5vw,64px)) 0 clamp(36px,4vw,56px);text-align:center;}
.phero .eyebrow{margin-bottom:18px;}
.phero h1{font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(28px,3.6vw,42px);color:var(--navy);letter-spacing:.05em;
  line-height:1.5;}
.phero p{color:var(--muted);font-size:15px;margin-top:22px;line-height:2.1;}
@media(max-width:980px){.phero{padding-top:calc(114px + clamp(40px,5vw,64px));}}
@media(max-width:640px){.phero p{text-align:left;}.phero p br{display:none;}}

/* ---------- privacy policy ---------- */
.page-privacy{padding:clamp(56px,7vw,108px) 0;}
.policy{max-width:820px;margin:0 auto;}
.policy p.intro{background:none;font-size:14.5px;color:#3c414f;line-height:2.2;margin-bottom:44px;}
.policy section{margin-bottom:36px;}
.policy h2{font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:17px;color:var(--navy);letter-spacing:.04em;line-height:1.6;
  padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:16px;
  display:flex;gap:14px;align-items:baseline;}
.policy h2 .n{font-family:"Noto Serif JP",serif;font-weight:500;font-size:14px;
  color:var(--navy-soft);letter-spacing:.06em;flex-shrink:0;width:32px;}
.policy p,.policy ul{font-size:14px;color:#3c414f;line-height:2.1;
  letter-spacing:.02em;}
.policy p+p{margin-top:10px;}
.policy ul{margin-left:1.4em;margin-top:8px;}
.policy ul li{margin-bottom:4px;}
.policy .info{background:var(--tint-warm);padding:24px 28px;margin-top:14px;
  font-size:14px;line-height:2.1;color:#3c414f;}
.policy .info .name{font-weight:600;color:var(--navy);}
.policy .back{text-align:center;margin-top:60px;}

/* ============================================
 * 下層ページ個別スタイル
 * ============================================ */

/* ---------- access セクション bg ---------- */
.access{background:var(--tint-warm);}

/* ---------- about: message セクション (白背景版) ---------- */
.about-message{background:#fff;}
.msg-role{
  font-family:"Cormorant Garamond",serif;
  font-size:14px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--navy-soft);font-weight:500;display:block;margin-bottom:18px;
}
.about-message .msg-in h2{
  font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(20px,2.6vw,28px);line-height:1.85;
  letter-spacing:.05em;margin-bottom:36px;color:var(--navy);
}
.msg-body p{color:#54596a;line-height:2.3;font-size:14.5px;text-align:left;}
.msg-body p+p{margin-top:18px;}

/* ---------- about: philosophy (navy bg 4カード) ---------- */
.about-philosophy{background:var(--navy);padding:clamp(64px,9vw,128px) 0;}
.about-philosophy .eyebrow{color:#9aa4c6;}
.ph-head{text-align:center;margin-bottom:clamp(40px,5vw,64px);}
.ph-head .sec-title{color:#fff;}
.ph-lead{color:#aab4d8;font-size:15px;margin-top:18px;line-height:2.1;}
.ph-items{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);}
.ph-item{background:var(--navy);padding:clamp(32px,4vw,48px) clamp(28px,3vw,40px);}
.ph-num{font-family:"Cormorant Garamond",serif;font-size:24px;
  letter-spacing:.2em;color:#aab4d8;font-style:italic;margin-bottom:18px;}
.ph-item h3{font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(17px,2vw,21px);color:#fff;letter-spacing:.04em;
  line-height:1.6;margin-bottom:14px;}
.ph-item p{color:#c4c9dc;font-size:13.5px;line-height:2.1;}
@media(max-width:760px){.ph-items{grid-template-columns:1fr;}}

/* ---------- visit: section-medical ---------- */
.section-medical{background:var(--tint-warm);}
.spec-note{max-width:820px;margin:28px auto 0;
  padding:20px 26px;border-left:2px solid var(--navy-soft);
  background:rgba(255,255,255,.55);}
.spec-note__head{font-family:"Noto Serif JP",serif;font-weight:600;
  color:var(--navy);font-size:14.5px;letter-spacing:.04em;margin-bottom:10px;}
.spec-note__body p{font-size:13.5px;color:#5a5f6f;line-height:2;}
.spec-note__body p+p{margin-top:6px;}

/* ---------- visit: section-emerg (navy bg) ---------- */
.section-emerg{background:var(--navy);color:#fff;}
.section-emerg .sec-title{color:#fff;}
.section-emerg .eyebrow{color:#9aa4c6;}
.emerg-band{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,64px);
  align-items:center;
}
.emerg-band__left p{color:#c4c9dc;margin-top:18px;line-height:2.1;font-size:14.5px;}
.emerg-band__left p+p{margin-top:12px;}
.section-emerg .symp{display:flex;flex-wrap:wrap;gap:10px;}
.section-emerg .symp span{
  border:1px solid rgba(255,255,255,.25);padding:9px 18px;
  font-size:13px;color:#e7e9f1;
}
@media(max-width:760px){.emerg-band{grid-template-columns:1fr;}}

/* ---------- visit: section-coop ---------- */
.coop-list{list-style:none;max-width:760px;margin:0 auto clamp(48px,6vw,72px);}
.coop-list li{
  list-style:none;font-size:14.5px;color:#54596a;
  padding:14px 0 14px 28px;border-bottom:1px dashed var(--line);
  position:relative;line-height:1.9;
}
.coop-list li::before{
  content:"";position:absolute;left:0;top:25px;
  width:12px;height:1px;background:var(--navy-soft);
}
.vn-grid{display:grid;grid-template-columns:1.05fr .95fr;
  gap:clamp(36px,6vw,84px);align-items:center;
  margin-top:clamp(48px,6vw,72px);}
.vn-fig{position:relative;}
.vn-fig img{width:100%;aspect-ratio:5/4;object-fit:cover;}
.vn-fig__sub{position:absolute;right:-24px;bottom:-32px;width:42%;
  aspect-ratio:1/1;object-fit:cover;border:6px solid var(--tint);
  box-shadow:0 16px 40px rgba(32,44,92,.18);}
.vn-head{margin-bottom:28px;}
.cp-eyebrow{
  font-family:"Cormorant Garamond",serif;
  font-size:13px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--navy-soft);font-weight:500;display:block;margin-bottom:10px;
}
.vn-title{
  font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(19px,2.2vw,24px);color:var(--navy);
  letter-spacing:.04em;margin-bottom:0;line-height:1.6;
}
.vn-body p{color:#54596a;font-size:14.5px;line-height:2.2;}
.vn-body p+p{margin-top:16px;}
@media(max-width:860px){
  .vn-grid{display:flex;flex-direction:column;gap:24px;}
  .vn-txt{display:contents;}
  .vn-head{order:1;margin-bottom:0;}
  .vn-fig{order:2;}
  .vn-body{order:3;}
  .vn-fig__sub{right:-12px;bottom:-20px;width:36%;border-width:4px;}
}

/* ---------- care-philosophy page ---------- */
.page-care{padding:clamp(64px,9vw,128px) 0;}
.cp-page{max-width:920px;margin:0 auto;}
.cp-page__intro{
  max-width:680px;margin:0 auto clamp(56px,7vw,96px);
  border-bottom:1px solid var(--line);padding-bottom:clamp(48px,6vw,72px);
}
.cp-page__intro p{color:#54596a;font-size:15px;line-height:2.2;}
.cp-page__intro p+p{margin-top:14px;}
.pts{list-style:none;margin:24px 0;}
.pts li{
  list-style:none;font-size:14.5px;color:#3c414f;
  padding:10px 0 10px 22px;border-bottom:1px dashed var(--line);
  position:relative;line-height:1.8;
}
.pts li::before{
  content:"";position:absolute;left:0;top:19px;
  width:10px;height:1px;background:var(--navy-soft);
}
.cp-group{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,72px);
  align-items:center;
  padding:clamp(48px,6vw,80px) 0;
  border-bottom:1px solid var(--line);
}
.cp-group:last-child{border-bottom:0;}
.cp-group--swap .cp-group__fig{order:2;}
.cp-group--swap .cp-group__txt{order:1;}
.cp-group__fig img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.cp-group__txt h2{
  font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(20px,2.6vw,26px);color:var(--navy);
  letter-spacing:.04em;line-height:1.6;margin-bottom:20px;
}
.cp-group__txt p{color:#54596a;font-size:14.5px;line-height:2.2;}
.cp-group__txt p+p{margin-top:14px;}
@media(max-width:760px){
  .cp-group{grid-template-columns:1fr;}
  .cp-group--swap .cp-group__fig{order:unset;}
  .cp-group--swap .cp-group__txt{order:unset;}
}

/* ---------- 内ページ共通 contact CTA (section-contact) ---------- */
.contact .ct-sub{
  display:block;font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:17px;color:#fff;letter-spacing:.04em;
  text-align:center;margin:0 auto 28px;
}
.ct-checks{
  list-style:none;display:grid;grid-template-columns:1fr 1fr;
  gap:8px 28px;max-width:820px;margin:0 auto clamp(36px,5vw,52px);
  padding:clamp(20px,3vw,28px) clamp(20px,3vw,32px);
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);
}
.ct-checks li{
  list-style:none;padding-left:26px;position:relative;
  font-size:13.5px;line-height:1.9;color:#e7e9f1;letter-spacing:.02em;
}
.ct-checks li .ck{
  position:absolute;left:0;top:2px;
  font-family:"Cormorant Garamond",serif;
  color:#aab4d8;font-size:16px;line-height:1.6;
}
.ct-leads{max-width:760px;margin:0 auto clamp(36px,5vw,56px);text-align:center;}
.ct-leads p{color:#c4c9dc;font-size:14px;line-height:2.1;letter-spacing:.02em;word-break:normal;line-break:auto;}
.ct-leads p+p{margin-top:8px;}
@media(max-width:680px){.ct-leads{text-align:left;}}
.ct-action{background:var(--navy);padding:clamp(36px,4.4vw,60px);
  display:flex;flex-direction:column;}
.ct-action--solo{max-width:540px;margin:0 auto;text-align:center;
  border:1px solid rgba(255,255,255,.16);}
.ct-action--solo .ct-h,.ct-action--solo .num,.ct-action--solo .person{text-align:center;}
.ct-action--solo .ct-h{justify-content:center;}
.ct-action .num{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;
  font-weight:500;font-size:clamp(28px,4.2vw,40px);
  color:#fff;letter-spacing:.04em;line-height:1.15;}
.ct-action .person{font-size:13px;color:#cdd2e4;
  margin-top:12px;padding-bottom:24px;
  border-bottom:1px dashed rgba(255,255,255,.2);margin-bottom:24px;}
.ct-form-btn{background:#fff;color:var(--navy);justify-content:center;
  width:100%;margin-top:auto;}
.ct-form-btn:hover{background:var(--tint);}
@media(max-width:680px){.ct-checks{grid-template-columns:1fr;}}

/* =========================================
   MV タグピル
   ========================================= */
.mv-tags{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;padding:0;}
.mv-tags li{
  border:1px solid rgba(255,255,255,.65);border-radius:999px;
  padding:7px 20px;color:#fff;
  font-size:clamp(13px,1.5vw,15px);
  letter-spacing:.12em;font-weight:500;
}
@media(max-width:980px){
  .mv-tags li{padding:2px 10px;}
}

/* =========================================
   インラインリンク
   ========================================= */
.inline-link{
  color:var(--navy);text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1px;transition:.2s;
}
.inline-link:hover{color:var(--navy-soft);text-decoration-color:var(--navy-soft);}

/* =========================================
   feat-sup (ご相談窓口アコーディオン)
   ========================================= */
.feat-sup{margin-top:clamp(56px,7vw,88px);padding-top:clamp(40px,5vw,64px);}
.feat-sup__head{text-align:center;margin-bottom:clamp(28px,4vw,40px);}
.feat-sup__title{
  font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:clamp(20px,2.4vw,26px);color:var(--navy);
  letter-spacing:.04em;line-height:1.6;
}
.feat-sup__lead{
  color:var(--muted);font-size:14px;line-height:2;margin-top:14px;
  max-width:640px;margin-left:auto;margin-right:auto;
}
.feat-sup__list{max-width:840px;margin:0 auto;}
.feat-sup__item{border-bottom:1px solid var(--line);background:transparent;}
.feat-sup__item:first-child{border-top:1px solid var(--line);}
.feat-sup__item summary{
  list-style:none;cursor:pointer;padding:20px 8px;
  display:flex;align-items:center;gap:16px;transition:color .2s;
}
.feat-sup__item summary::-webkit-details-marker{display:none;}
.feat-sup__item summary:hover .label{color:var(--navy-soft);}
.feat-sup__item summary .role{
  font-family:"Cormorant Garamond",serif;font-size:11px;
  letter-spacing:.18em;color:var(--navy-soft);text-transform:uppercase;
  flex:0 0 auto;width:200px;
}
.feat-sup__item summary .label{
  font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:14.5px;color:var(--navy);letter-spacing:.03em;line-height:1.6;
  flex:1;transition:color .2s;
}
.feat-sup__item summary .ic{position:relative;width:16px;height:16px;flex-shrink:0;}
.feat-sup__item summary .ic::before,
.feat-sup__item summary .ic::after{
  content:"";position:absolute;
  background:var(--navy-soft);transition:transform .3s,opacity .3s;
}
.feat-sup__item summary .ic::before{top:7.5px;left:0;width:16px;height:1.5px;}
.feat-sup__item summary .ic::after{top:0;left:7.5px;width:1.5px;height:16px;}
.feat-sup__item[open] summary .ic::after{transform:rotate(90deg);opacity:0;}
.feat-sup__body{padding:0 8px 24px;}
.feat-sup__body p{color:#5a5f6f;font-size:13.5px;line-height:2.1;letter-spacing:.02em;}
.feat-sup__body p+p{margin-top:10px;}
.feat-sup__tags{
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px 14px;
  list-style:none;margin:14px 0;
}
.feat-sup__tags li{
  font-size:13px;color:#454a5b;
  padding-left:16px;position:relative;line-height:1.85;
}
.feat-sup__tags li::before{
  content:"";position:absolute;left:0;top:11px;
  width:5px;height:5px;background:var(--navy-soft);border-radius:50%;
}
@media(max-width:680px){
  .feat-sup__item summary{flex-wrap:wrap;gap:6px 12px;padding:16px 4px;}
  .feat-sup__item summary .role{width:auto;flex-basis:100%;}
  .feat-sup__item summary .label{flex:1;}
  .feat-sup__tags{grid-template-columns:1fr 1fr;}
}

/* =========================================
   Swiper: PC=グリッド表示 / SP=スライダー
   ========================================= */
@media(min-width:861px){
  .feat-swiper,.cp-swiper{overflow:visible;}
  .feat-swiper .swiper-wrapper,
  .cp-swiper .swiper-wrapper{
    display:grid;transform:none!important;width:100%!important;
  }
  .feat-swiper .swiper-wrapper{grid-template-columns:repeat(3,1fr);gap:32px;}
  .cp-swiper .swiper-wrapper{grid-template-columns:repeat(3,1fr);gap:24px;}
  .feat-swiper .swiper-slide,
  .cp-swiper .swiper-slide{width:auto!important;height:auto!important;}
  .swiper-pagination{display:none;}
}
@media(max-width:860px){
  /* PC グリッド用の display:grid / gap / max-width を Swiper 用にリセット */
  .feat-swiper .swiper-wrapper,
  .cp-swiper .swiper-wrapper{
    display:flex;
    grid-template-columns:unset;
    max-width:none;
    margin:0;
    gap:0;
  }
  /* .wrap の padding(28px)を打ち消して画面幅いっぱいに広げる */
  .feat-swiper,.cp-swiper{
    margin-left:-28px;
    margin-right:-28px;
    padding-bottom:40px;
    overflow:hidden;
  }
  /* スライド幅: centeredSlides が中央配置するため左右ピーク幅を確保 */
  .feat-swiper .swiper-slide,
  .cp-swiper .swiper-slide{width:calc(100vw - 80px)!important;}
  .swiper-pagination-bullet{
    width:8px;height:8px;background:var(--navy);opacity:.3;
  }
  .swiper-pagination-bullet-active{opacity:1;transform:scale(1.3);}
}

/* =========================================
   コンタクトページ共通
   ========================================= */

/* --- ステップインジケーター --- */
.steps-wrap{padding:clamp(28px,4vw,40px) 0 0;background:#fff;}
.steps{display:flex;justify-content:center;gap:0;margin:0 auto;
  max-width:560px;padding:0 16px;}
.steps .s{flex:1;text-align:center;font-size:11.5px;letter-spacing:.1em;
  color:var(--muted);padding:14px 4px 0;font-weight:500;}
.steps .s::before{content:"";display:block;width:26px;height:26px;
  border-radius:50%;background:#fff;border:1.5px solid var(--line);
  color:var(--muted);font-family:"Noto Serif JP",serif;font-weight:500;
  margin:0 auto 8px;line-height:23px;text-align:center;}
.steps .s.s1::before{content:"1";}
.steps .s.s2::before{content:"2";}
.steps .s.s3::before{content:"3";}
.steps .s.active::before{background:var(--navy);color:#fff;border-color:var(--navy);}
.steps .s.active{color:var(--navy);font-weight:600;}
.steps .bar{flex:0 0 60px;height:1px;background:var(--line);align-self:flex-start;
  margin-top:26px;}

/* --- tel-card (コンタクトページ) --- */
.tel-card{background:var(--tint);padding:clamp(24px,3vw,32px) clamp(28px,3.2vw,40px);}
.tc-row{display:flex;align-items:center;gap:clamp(16px,2vw,24px);padding:12px 0;}
.tc-row--fax{border-top:1px dashed var(--line);}
.tc-body{display:flex;align-items:center;gap:clamp(16px,2vw,24px);flex:1;}
.tc-ic{font-family:"Cormorant Garamond",serif;font-size:12px;
  font-weight:400;letter-spacing:.16em;color:var(--navy-soft);flex-shrink:0;}
.tc-lbl{font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:14px;color:var(--navy);letter-spacing:.05em;white-space:nowrap;flex-shrink:0;}
.tc-num{font-family:"Noto Serif JP","Hiragino Mincho ProN",serif;
  font-weight:500;font-size:clamp(24px,3vw,32px);
  color:var(--navy);letter-spacing:.04em;line-height:1.15;}
a.tc-num:hover{color:var(--navy-soft);}
.tc-person{font-size:13px;color:#54596a;letter-spacing:.02em;
  white-space:nowrap;margin-left:auto;}
.tc-row--fax .tc-num{font-size:clamp(16px,1.6vw,20px);}
@media(max-width:680px){
  .tc-row{flex-direction:column;align-items:center;gap:6px;}
  .tc-body{flex-direction:column;align-items:center;gap:6px;}
  .tc-person{margin-left:0;}
}

/* --- page-contact メインレイアウト --- */
main.page-contact{padding:clamp(56px,7vw,100px) 0;}
.contact-layout{max-width:780px;margin:0 auto;
  display:flex;flex-direction:column;gap:clamp(32px,4vw,48px);}

/* --- フォーム全体 (CF7 wpcf7-form) --- */
.wpcf7-form{display:flex;flex-direction:column;gap:22px;}

/* --- 各フィールド .fld --- */
.fld label{display:block;font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:14px;color:var(--navy);letter-spacing:.04em;margin-bottom:8px;}
.fld label .req{display:inline-block;background:var(--navy);color:#fff;
  font-size:10px;font-weight:500;padding:2px 7px;margin-left:8px;
  border-radius:2px;letter-spacing:.06em;}
.fld .wpcf7-form-control-wrap{display:block;}
.fld input[type="text"],
.fld input[type="email"],
.fld input[type="tel"],
.fld textarea{
  width:100%;background:#fff;border:1px solid var(--line);
  padding:14px 16px;font-family:inherit;font-size:14.5px;
  color:var(--ink);transition:.2s;display:block;}
.fld input[type="text"]:focus,
.fld input[type="email"]:focus,
.fld input[type="tel"]:focus,
.fld textarea:focus{outline:none;border-color:var(--navy);}
.fld textarea{min-height:160px;resize:vertical;}
.fld .hint{font-size:12px;color:var(--muted);margin-top:6px;}
/* SP: iOSは入力欄のfont-sizeが16px未満だとフォーカス時に自動ズームするため、SP時のみ16pxに引き上げてズームを抑止(PCは14.5pxのまま) */
@media(max-width:760px){
  .fld input[type="text"],
  .fld input[type="email"],
  .fld input[type="tel"],
  .fld textarea{font-size:16px;}
}

/* --- 同意チェック .agree --- */
.agree{background:var(--tint-warm);padding:22px 26px;
  font-size:13.5px;line-height:1.95;color:#54596a;}
.agree a{color:var(--navy);text-decoration:underline;}
.agree .wpcf7-acceptance{display:block;margin-top:14px;}
.agree .wpcf7-list-item{display:flex;gap:10px;align-items:flex-start;cursor:pointer;}
.agree .wpcf7-list-item-label{font-weight:500;color:var(--ink);}
.agree input[type="checkbox"]{margin-top:5px;flex-shrink:0;}

/* --- 送信ボタン行 .submit-row --- */
.submit-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;
  margin-top:8px;position:relative;}
.submit-row .btn{padding:17px 44px;}
.submit-row .wpcf7-spinner{position:absolute;right:0;top:50%;transform:translateY(-50%);margin:0;}

/* --- 確認画面 .fld-label / .fld-value --- */
.fld-label{display:block;font-family:"Noto Serif JP",serif;font-weight:600;
  font-size:13px;color:var(--muted);letter-spacing:.06em;margin-bottom:6px;}
.fld-value{font-size:15px;color:var(--ink);line-height:1.9;
  padding-bottom:18px;border-bottom:1px solid var(--line);}
.fld-value--multiline{white-space:pre-wrap;}
