@charset "utf-8";
/* ==========================================================================
   Bless Clinic – PC TOP  (Figma: Bless Clinic様納品用 / TOP  1600px)
   1rem = 16px at 1600px viewport. Everything scales proportionally.
   ========================================================================== */

:root{
  /* colour */
  --c-dark:#1E0405;
  --c-ink:#241A18;
  --c-body:#3A2E2C;
  --c-gold:#C9A75C;
  --c-gold-d:#BF8C33;
  --c-gold-l:#D6BB77;
  --c-pink:#E5ABB5;
  --c-pink-t:#DE7C90;
  --bg-pink:#FBF7F8;
  --bg-beige:#F1F0ED;
  --bg-thread:#E5E4E0;
  --bg-derm:#ECF2F2;
  --bg-header:#F9F4EC;
  --bg-soft:#FAFAF9;
  --ph:#999999;
  --ph-l:#D9D9D9;
  --line:#E2DCD3;
  --line-soft:#E8E4DD;
  --green:#06C755;
  /* type */
  --f-jp:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;
  --f-en:"Cormorant Garamond","Shippori Mincho",serif;
  --f-go:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --f-sc:"Great Vibes","Parisienne",cursive;
  /* layout */
  --w-main:87.5rem;   /* 1400 */
  --w-narrow:81.25rem;/* 1300 */
  --w-wide:96.25rem;  /* 1540 */
  --w-sm:62.5rem;     /* 1000 */
  --h-head:7.0625rem; /* 113  */
  --ico-face:url(../img/icon-face.png);
  --ico-body:url(../img/icon-body.png);
  /* フレア：画面に固定された光。文字をこれで塗るので、スクロールすると
     文字の上を光が流れる（プロトタイプと同じ見え方）。 */
  --flare:radial-gradient(48% 56% at 33% 50%,#B4705A 0%,#A2707F 24%,#7C4364 44%,#3A1220 66%,#1E0405 88%);
}

html{font-size:clamp(9px,1vw,18px);-webkit-text-size-adjust:100%}
*,*::before,*::after{box-sizing:border-box}
body{
  margin:0;background:#fff;color:var(--c-ink);
  font-family:var(--f-jp);font-weight:400;line-height:1.8;
  /* Cormorant は既定が oldstyle 数字。カンプは lining なので明示する。 */
  font-feature-settings:"palt" 1,"lnum" 1;
  font-variant-numeric:lining-nums;
  -webkit-font-smoothing:antialiased;
}
[hidden]{display:none!important}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,figure{margin:0}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}

/* ---------- shared ---------- */
.l-inner{width:100%;max-width:var(--w-main);margin-inline:auto}
.l-inner--narrow{max-width:var(--w-narrow)}
.l-inner--wide{max-width:var(--w-wide)}
.l-inner--sm{max-width:var(--w-sm)}

/* thin line arrow */
.c-arw{
  display:inline-block;width:1.25rem;height:1.0625rem;flex:none;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 12' fill='none' stroke='%23000' stroke-width='1.05' stroke-linecap='round'%3E%3Cpath d='M.7 6h12.6'/%3E%3Cpath d='M8.5.8C9.1 3.2 10.8 5.2 13.3 6'/%3E%3Cpath d='M8.5 11.2C9.1 8.8 10.8 6.8 13.3 6'/%3E%3C/svg%3E") no-repeat center/contain;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 12' fill='none' stroke='%23000' stroke-width='1.05' stroke-linecap='round'%3E%3Cpath d='M.7 6h12.6'/%3E%3Cpath d='M8.5.8C9.1 3.2 10.8 5.2 13.3 6'/%3E%3Cpath d='M8.5 11.2C9.1 8.8 10.8 6.8 13.3 6'/%3E%3C/svg%3E") no-repeat center/contain;
}
.c-arw::after{
  content:none;
}
.c-arw--sm{width:.875rem;height:.75rem}

/* buttons */
.c-btn{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  width:18.75rem;height:3.5rem;padding:0 1.125rem;
  background:var(--c-dark);color:#fff;
  font-size:1rem;letter-spacing:.12em;line-height:1;
  transition:opacity .3s;
}
.c-btn:hover{opacity:.78}
.c-btn--center{margin-inline:auto}

.c-btn-gold{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  height:2.3125rem;padding:0 1.5rem;border-radius:1.25rem;
  background:linear-gradient(100deg,var(--c-gold-l),var(--c-gold-d));
  color:#fff;font-size:.8125rem;letter-spacing:.1em;line-height:1;
  transition:filter .3s;
}
.c-btn-gold:hover{filter:brightness(1.08)}
.c-btn-line{
  display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  height:2.3125rem;padding:0 1.5rem;border-radius:1.25rem;
  background:var(--green);color:#fff;font-size:.8125rem;letter-spacing:.1em;line-height:1;
  transition:filter .3s;
}
.c-btn-line:hover{filter:brightness(1.06)}

/* section heading : leaf + JP + EN */
.c-shead{text-align:center}
.c-shead__leaf{width:1.625rem;margin:0 auto .5rem}
.c-shead__jp{
  font-size:2.75rem;font-weight:500;letter-spacing:.12em;line-height:1.3;
  background:linear-gradient(90deg,#D3B56E 0%,#C08E35 45.5%,#FBEFD0 62%,#C69A45 80%,#D3B56E 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  padding-inline:.14em;
}
.c-shead__en{
  margin-top:.5rem;font-family:var(--f-en);font-size:1.0625rem;font-weight:400;
  letter-spacing:.08em;color:var(--c-ink);
}
.c-shead--left{text-align:left}
.c-shead--left .c-shead__leaf{margin-inline:0}

/* ==========================================================================
   header
   ========================================================================== */
.l-header{position:absolute;inset:0 0 auto;z-index:50;padding:.6875rem 1.5rem 0}
.l-header__bar{
  position:relative;height:var(--h-head);border-radius:1.125rem;
  background:rgba(249,244,236,.72);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  padding:0 1.75rem;
}
.l-header__brand{position:absolute;left:1.0625rem;top:.5625rem;display:flex;align-items:center;gap:.125rem;line-height:1.55}
.l-header__logo{width:9.25rem;flex:none}
.l-header__text{display:block}
.l-header__catch{display:block;font-size:.9375rem;letter-spacing:.05em;color:var(--c-ink)}
.l-header__name{display:block;font-family:var(--f-en);font-size:1.125rem;letter-spacing:.06em;color:var(--c-ink)}

.l-header__util{position:absolute;right:1.75rem;top:1.3rem;display:flex;align-items:center;gap:1.125rem}
.l-header__tel{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}
.l-header__tel-label{font-size:.6875rem;letter-spacing:.04em;color:var(--c-body)}
.l-header__tel-num{display:flex;align-items:center;gap:.25rem;font-family:var(--f-en);font-size:1.375rem;font-weight:600;letter-spacing:.02em;color:var(--c-ink)}
.l-header__pin{width:1.125rem;margin-right:.35rem;align-self:center;color:var(--c-dark)}
.l-header__tel-wrap{display:flex;align-items:center}

.l-nav{position:absolute;right:1.75rem;bottom:.3125rem}
.l-nav__list{display:flex;align-items:center;gap:2.1875rem}
.l-nav__list a{font-size:.875rem;letter-spacing:.08em;transition:color .3s}
.l-nav__list a:hover{color:var(--c-gold-d)}

/* ==========================================================================
   hero
   ========================================================================== */
.p-hero{position:relative;height:64.0625rem;overflow:hidden;background:#8A8272}
.p-hero__bg{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center 42%;
  background:#8A8272;pointer-events:none;
}
.p-hero__body{position:relative;height:100%;padding:0 3.375rem}
.p-hero__copy{position:absolute;left:3.375rem;top:37.5rem}
.p-hero__eyebrow{
  font-family:var(--f-en);font-size:2rem;font-weight:300;letter-spacing:.14em;line-height:1;
  color:#D8BC86;text-shadow:0 .0625rem .625rem rgba(60,40,20,.4);
}
.p-hero__title{
  margin-top:.9rem;color:#fff;font-size:4.5rem;font-weight:400;
  letter-spacing:.14em;line-height:1.5;text-shadow:0 .0625rem .75rem rgba(60,40,20,.28);
}
.p-hero__lead{
  margin-top:1.9rem;color:#fff;font-size:1.375rem;letter-spacing:.08em;line-height:1.95;
  text-shadow:0 .0625rem .625rem rgba(60,40,20,.35);
}
.p-hero__badges{position:absolute;right:2.9375rem;bottom:2rem;display:flex;align-items:flex-end;gap:.75rem}
/* すりガラス：背景をぼかし、濃いめの金を重ねる。文字は円の内側に余白を取る。 */
.p-hero__badge{
  width:13rem;height:13rem;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;color:#fff;
  background:linear-gradient(132deg,rgba(136,126,97,.9) 0%,rgba(107,87,47,.91) 48%,rgba(97,75,38,.93) 100%);
  backdrop-filter:blur(7px) saturate(1.05);-webkit-backdrop-filter:blur(7px) saturate(1.05);
  box-shadow:0 .5rem 1.875rem rgba(40,28,12,.22);
}
.p-hero__badge:nth-child(2),
.p-hero__badge:nth-child(3){width:13rem;height:13rem;margin-bottom:0}
.p-hero__badge-sub{font-size:1rem;letter-spacing:.06em;line-height:1.68}
.p-hero__badge-dot{width:.3125rem;height:.3125rem;border-radius:50%;background:#F2DFB0;margin:.55rem 0}
.p-hero__badge-main{font-size:1.5625rem;letter-spacing:.05em;line-height:1.62}
.p-hero__badge-main--en{font-family:var(--f-en);font-size:2rem;letter-spacing:.02em;line-height:1.12}
.p-hero__badge:nth-child(3) .p-hero__badge-main{font-size:1.3125rem;line-height:1.42}
/* 1行ずつ span にして、円の幅で勝手に折り返さないようにする */
.p-hero__badge-sub span,
.p-hero__badge-main span{display:block;white-space:nowrap}

/* ==========================================================================
   campaign
   ========================================================================== */
.p-campaign{padding:9.75rem 0 6.4375rem}
.p-campaign__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;
  max-width:62.5rem;margin:3.1875rem auto 0;
}
.p-card-ph{display:block;background:var(--ph-l);border-radius:.375rem;aspect-ratio:1/1}
.p-campaign .c-btn{margin:2.75rem auto 0}

/* ==========================================================================
   concept
   ========================================================================== */
.p-concept{position:relative;padding:26.3125rem 0 9.0625rem;overflow:hidden}
.p-concept__mark{position:absolute;left:2rem;top:7.0625rem;width:19.5625rem;z-index:0;pointer-events:none}
.p-concept__shape{
  position:absolute;right:0;top:2.875rem;width:50.5rem;height:64.375rem;z-index:0;pointer-events:none;
}
.p-concept__shape svg{width:100%;height:100%;display:block}
.p-concept__body{position:relative;z-index:1;max-width:var(--w-main);margin-inline:auto}
.p-concept__foot{position:relative;z-index:1;max-width:var(--w-main);margin-inline:auto}
.p-concept__title span{display:inline}
.p-concept__title span:first-child{display:block}
.p-feature__title span{display:inline}
.p-feature__title span:first-child,.p-feature__title span:last-child{display:block}
.p-concept__title{
  font-size:2.9375rem;font-weight:500;letter-spacing:.1em;line-height:1.6;
  background-image:var(--flare);background-attachment:fixed;
  background-size:100vw 100vh;background-position:0 0;background-repeat:no-repeat;
  -webkit-background-clip:text;background-clip:text;color:transparent;padding-inline:.1em;
}
.p-concept__text{margin-top:2.6rem;font-size:1.375rem;letter-spacing:.06em;line-height:2.35;color:var(--c-body)}
.u-brsp{display:none}   /* SPだけで改行させる */
.p-concept__text + .p-concept__text{margin-top:2.25rem}
.p-concept__text em{font-style:normal;font-family:var(--f-en);letter-spacing:.02em}
.p-concept .c-btn{margin-top:3.5rem}

/* ==========================================================================
   trouble
   ========================================================================== */
.p-trouble{background:var(--bg-pink);padding:10.875rem 0 9.4375rem}
.p-trouble__switch{display:flex;justify-content:center;gap:1.25rem;margin-top:5.5rem}
.p-trouble__sw{
  position:relative;display:flex;align-items:center;justify-content:center;gap:1rem;
  width:21.25rem;height:5rem;border:1px solid var(--line);border-radius:.25rem;
  background:#fff;color:var(--c-ink);font-size:1.5rem;font-weight:500;letter-spacing:.1em;
  transition:background .3s,color .3s;
}
.p-trouble__ico{
  display:block;flex:none;background:currentColor;
  -webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain;
          mask-repeat:no-repeat;mask-position:center;mask-size:contain;
}
.p-trouble__ico--face{width:2.375rem;height:3.25rem;
  -webkit-mask-image:var(--ico-face);mask-image:var(--ico-face)}
.p-trouble__ico--body{width:3.5rem;height:3.25rem;
  -webkit-mask-image:var(--ico-body);mask-image:var(--ico-body)}
.p-trouble__sw.is-active{
  background:linear-gradient(100deg,#B98F3F,#9C7429);border-color:transparent;color:#fff;
}
.p-trouble__sw.is-active::after{
  content:"";position:absolute;left:50%;bottom:-.4375rem;
  width:.875rem;height:.875rem;background:#A87C2E;border-radius:.0625rem;
  transform:translateX(-50%) rotate(45deg);
}
.p-trouble__tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:.5rem;margin-top:1.9rem}
.p-trouble__tab{
  height:2.6875rem;border-radius:1.34375rem;background:#fff;color:var(--c-ink);
  font-size:.9375rem;letter-spacing:.1em;transition:filter .3s;
}
.p-trouble__tab.is-active{background:linear-gradient(100deg,#D6BB77,#BE9236);color:#fff}
.p-trouble__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.9rem}
.p-trouble__card{background:#fff;border-radius:.25rem;padding:2.1rem 1.5rem 2.4rem;min-height:18.125rem}
.p-trouble__card-ttl{
  display:flex;align-items:baseline;gap:.5rem;font-size:1.125rem;letter-spacing:.06em;color:var(--c-ink);
}
.p-trouble__card-ttl::before{content:"";width:.3125rem;height:.3125rem;border-radius:50%;background:var(--c-gold);flex:none;translate:0 -.35rem}
.p-trouble__links{margin-top:1.35rem;display:flex;flex-direction:column;gap:.6875rem}
.p-trouble__link{
  display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  height:2.5rem;padding:0 1.125rem;border:1px solid var(--c-gold);border-radius:1.25rem;
  font-size:.9375rem;letter-spacing:.05em;color:var(--c-ink);transition:background .3s;
}
.p-trouble__link:hover{background:#FDF8EF}
.p-trouble__link .c-arw{color:var(--c-gold-d)}

/* ==========================================================================
   menu
   ========================================================================== */
.p-menu{padding:10.5625rem 0 0}
/* ⑧ カンプはブロックのあいだに細い白の余白が入る */
.p-menu__blocks{margin-top:2.9375rem;display:flex;flex-direction:column;gap:.3125rem}
.p-menu__block{position:relative;width:100%;max-width:none;overflow:hidden}
.p-menu__bg{
  position:absolute;top:0;z-index:0;object-fit:cover;pointer-events:none;
  /* 端を切り落とさず、背景へグラデーションで溶かす（横方向×縦方向を重ねる） */
  -webkit-mask-image:var(--bg-fade-x),var(--bg-fade-y);
  mask-image:var(--bg-fade-x),var(--bg-fade-y);
  -webkit-mask-composite:source-in;
  mask-composite:intersect;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;mask-size:100% 100%;
  --bg-fade-y:linear-gradient(180deg,#000 0%,#000 46%,rgba(0,0,0,.55) 72%,rgba(0,0,0,.12) 90%,transparent 100%);
}
/* 右寄せ（内側＝左端）をぼかす */
.p-menu__block--01 .p-menu__bg,
.p-menu__block--06 .p-menu__bg{
  --bg-fade-x:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.3) 13%,rgba(0,0,0,.8) 30%,#000 44%);
}
/* 左寄せ（内側＝右端）をぼかす */
.p-menu__block--02 .p-menu__bg{
  --bg-fade-x:linear-gradient(270deg,transparent 0%,rgba(0,0,0,.3) 13%,rgba(0,0,0,.8) 30%,#000 44%);
}
.p-menu__block--01 .p-menu__bg{right:0;width:44.6875rem;height:41.3125rem;object-position:right center}
.p-menu__block--02 .p-menu__bg{left:0;width:43.125rem;height:39.375rem;object-position:left center}
.p-menu__block--06 .p-menu__bg{right:0;width:48.625rem;height:43.75rem;object-position:center 28%}
.p-menu__head,.p-menu__list,.p-menu__trio{position:relative;z-index:1}
.p-menu__block--01{background:var(--bg-beige);padding:5.5rem 0 3.6875rem}
.p-menu__block--02{background:linear-gradient(180deg,#F7EBEC 0%,#F1E7EF 55%,#D9CDD9 100%);padding:5.5rem 0 3.5rem}
.p-menu__block--06{background:linear-gradient(180deg,var(--bg-derm) 0%,#F4F7F7 62%,#FCFCFC 100%);padding:5.5rem 0 4.3125rem}
.p-menu__block--06 .p-menu__head{padding-top:1.5rem}
.p-menu__block--06 .p-menu__list{margin-top:9.9375rem}
.p-menu__head{max-width:87.5rem;margin-inline:auto;padding-inline:2rem}
.p-menu__head--right{text-align:left;padding-left:48.125rem;padding-right:0}
.p-menu__num{font-family:var(--f-en);font-size:1.375rem;font-weight:500;letter-spacing:.14em;color:var(--c-gold-d)}
.p-menu__ttl{
  display:inline-flex;align-items:center;gap:1.25rem;margin-top:.45rem;
  font-size:2.625rem;font-weight:500;letter-spacing:.14em;line-height:1.2;color:var(--c-ink);
}
.p-menu__ttl .c-arw{color:var(--c-gold-d)}

.p-menu__custom{
  position:relative;display:block;width:33.6875rem;height:11.1875rem;margin-top:5.5625rem;
  background:#fff;border:2px solid #3B2B28;border-radius:.375rem;padding:1.75rem 1.75rem 0 2.0625rem;
  overflow:visible;transition:box-shadow .3s;
}
.p-menu__custom-bg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  border-radius:.3125rem;z-index:0;
}
.p-menu__custom-mark{
  position:absolute;left:0;top:0;width:auto;height:11.125rem;
  opacity:.45;filter:saturate(.12) brightness(2.2);z-index:1;pointer-events:none;
}
/* カンプの飾りはロゴと同じ羽根。以前は葉アイコンを回して代用していた。 */
.p-menu__custom-leaf{
  position:absolute;left:9.75rem;top:2.5625rem;width:auto;height:8.125rem;
  transform:rotate(6deg);opacity:.8;filter:saturate(.55) brightness(1.35);
  z-index:1;pointer-events:none;
}
.p-menu__custom-doctor{
  position:absolute;right:0;bottom:0;width:auto;height:12.4375rem;
  z-index:1;pointer-events:none;
  /* 頭が切れないよう、はみ出し分だけ枠の上に出す */
  max-height:none;
}
.p-menu__custom > .p-menu__badge,
.p-menu__custom > .p-menu__custom-ttl{position:relative;z-index:2}
.p-menu__custom > .p-menu__custom-arw{z-index:2}

.p-menu__block--02 .p-menu__custom{margin-left:auto;text-align:left}
.p-menu__badge{
  display:inline-flex;align-items:center;gap:.5rem;height:1.875rem;padding:0 .875rem 0 .3125rem;
  border-radius:.9375rem;background:#fff;box-shadow:0 0 0 1px #F3E2E6 inset;
  font-family:var(--f-go);font-size:.9375rem;font-weight:500;letter-spacing:.02em;color:var(--c-ink);
}
.p-menu__badge img{width:1.4375rem;flex:none}
.p-menu__badge b{color:var(--c-pink-t);font-weight:500}
/* カンプは明朝のボールド。以前はゴシックだった。 */
.p-menu__custom-ttl{
  margin-top:.6875rem;
  font-family:var(--f-jp);font-weight:700;letter-spacing:.05em;line-height:1.28;color:#1E0405;
}
.p-menu__custom-ttl span{display:block;font-size:2rem;padding-left:.75rem}
.p-menu__custom-ttl strong{display:block;font-size:2.6875rem;font-weight:700;padding-left:.375rem}
.p-menu__custom-arw{
  position:absolute;right:1.25rem;bottom:1.125rem;width:1.8125rem;height:1.8125rem;border-radius:50%;
  background:#E7A2B4;display:flex;align-items:center;justify-content:center;color:#fff;
}

.p-menu__list{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.8125rem 1.125rem;
  max-width:87.5rem;margin:6.6875rem auto 0;
}
.p-pill{
  display:flex;align-items:center;gap:1rem;height:6.3125rem;padding-right:1.5rem;
  background:rgba(255,255,255,.74);backdrop-filter:blur(10px);
  border-radius:3.15625rem;transition:box-shadow .3s,transform .3s;
}
.p-pill:hover{box-shadow:0 .375rem 1.25rem rgba(60,40,30,.1);transform:translateY(-2px)}
.p-pill__thumb{
  width:6rem;height:6rem;border-radius:50%;flex:none;margin-left:.1875rem;
  background:#EDE9E4;overflow:hidden;
}
.p-pill__thumb img{width:100%;height:100%;object-fit:cover}
.p-pill__label{flex:1;font-size:1.125rem;font-weight:500;letter-spacing:.05em;line-height:1.5;color:var(--c-ink)}
.p-pill .c-arw{color:var(--c-gold-d)}

/* 03 / 04 / 05 */
.p-menu__trio{
  display:grid;grid-template-columns:repeat(3,1fr);
  max-width:none;background:var(--bg-thread);
}
.p-menu__trio-item{position:relative;min-height:18.5625rem;padding:4.25rem 0 0 3.5rem;overflow:hidden}
.p-menu__trio-item img{
  position:absolute;top:0;right:0;width:65%;height:100%;object-fit:cover;z-index:0;
  /* カンプは被写体が右に寄った位置で切り取られている */
  object-position:100% center;
}
.p-menu__trio-item > *{position:relative;z-index:1}
.p-menu__trio-item > picture{display:contents}   /* SP用の差し替えラッパーは箱を作らない */
.p-menu__block > picture{display:contents}
.p-menu__trio-item .p-menu__num{color:var(--c-gold-d)}
.p-menu__trio-ttl{
  margin-top:.45rem;font-size:2.25rem;font-weight:500;letter-spacing:.12em;line-height:1.2;color:var(--c-ink);
}
.p-menu__trio-arw{margin-top:.9rem;color:var(--c-gold-d)}

/* ==========================================================================
   case
   ========================================================================== */
.p-case{padding:9.9375rem 0 0}
.p-case__tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;max-width:62.625rem;margin:3.875rem auto 0}
.p-case__tab{height:3.125rem;background:#F6F6F6;color:var(--c-ink);font-size:.9375rem;letter-spacing:.1em;transition:filter .3s}
.p-case__tab.is-active{background:linear-gradient(100deg,#D6BB77,#BE9236);color:#fff}
.p-case__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:2.5625rem}
.p-case__thumb{display:block;background:#EDE9E4;border-radius:.375rem;aspect-ratio:1/0.965;overflow:hidden}
.p-case__thumb img{width:100%;height:100%;object-fit:cover}
.p-case__ttl{margin-top:.9rem;font-size:.9375rem;font-weight:600;letter-spacing:.04em;line-height:1.7;color:var(--c-ink)}
.p-case__meta{margin-top:.9rem;display:flex;flex-direction:column;gap:.5rem}
.p-case__row{display:flex;align-items:center;gap:.4375rem}
.p-case__row dt{
  width:5.625rem;height:1.625rem;border-radius:.8125rem;background:#F0EEEC;
  font-size:.75rem;letter-spacing:.04em;color:var(--c-body);
  display:flex;align-items:center;justify-content:center;flex:none;
}
.p-case__row dd{margin:0;font-size:.9375rem;letter-spacing:.04em;color:var(--c-ink)}
.p-case__row--3{display:grid;grid-template-columns:repeat(3,1fr);gap:.4375rem}
.p-case__cell{text-align:center}
.p-case__cell dt{width:100%}
.p-case__cell dd{margin-top:.3125rem;font-size:.9375rem}
.p-case .c-btn{margin:2.4375rem auto 0}
.p-case__divider{max-width:var(--w-main);margin:8.5rem auto 0}
.p-case__divider hr{border:0;border-top:1px solid var(--line-soft);margin:0}

/* ==========================================================================
   monitor
   ========================================================================== */
.p-monitor{padding:10.5625rem 0 0}
.p-monitor__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;max-width:62.5rem;margin:3.5rem auto 0}
.p-monitor__ph{display:block;background:var(--ph-l);border-radius:.375rem;aspect-ratio:1/1}
.p-monitor .c-btn{margin:2.75rem auto 0}

/* ==========================================================================
   feature
   ========================================================================== */
.p-feature{position:relative;padding:19.8125rem 0 4.9375rem}
/* カンプは左上がグラデで消え、スクロールしても背景が動かない（固定表示）。
   ※ mask を付けると background-attachment:fixed が効かなくなるので、
     ぼかしは白のオーバーレイで作る。 */
.p-feature__panel{
  /* カンプではセクションの最後（3つの理由のカードの下）まで続く。
     途中で切れると板が浮いて見えるので、下端はセクションに合わせる。 */
  position:absolute;right:0;top:9.75rem;bottom:0;width:75rem;z-index:0;
  border-radius:18.75rem 0 0 0;overflow:hidden;
  background-image:var(--panel);
  background-attachment:fixed;background-size:cover;background-position:center;
}
.p-feature__panel::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(94deg,#fff 0%,rgba(255,255,255,.62) 24%,rgba(255,255,255,0) 60%),
    linear-gradient(180deg,#fff 0%,rgba(255,255,255,0) 14%);
}
/* カンプは左上だけ大きく丸めた縦長の枠に収める */
.p-feature__doctor{
  /* カンプ実測：475 x 672 */
  position:absolute;left:45.1875rem;top:5.9375rem;width:29.6875rem;height:42rem;
  object-fit:cover;object-position:50% 50%;
  border-top-left-radius:1.875rem 9.375rem;
  z-index:1;
}
.p-feature .l-inner{max-width:75rem}
.p-feature .l-inner{position:relative;z-index:2}
.p-feature__wordmark{
  /* カンプでは左にはみ出して大きく置かれ、右端は院長写真の手前で止まる（x52〜945） */
  margin-left:-10rem;
  font-family:var(--f-en);font-size:12.0625rem;font-weight:300;letter-spacing:.06em;line-height:1;
  background:linear-gradient(96deg,#E3CFA0 0%,#D9B9A8 16%,#C9A26A 34%,#C39A45 54%,#D3B7A2 74%,#DCC489 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  padding-inline:.06em;
}
.p-feature__leaf{width:2.25rem;margin:0 0 .35rem 1.8125rem}
.p-feature__sub{margin-top:.9rem;font-size:1.875rem;font-weight:700;letter-spacing:.015em;color:var(--c-ink)}
.p-feature__title{
  margin-top:3.5rem;font-size:2.5rem;font-weight:500;letter-spacing:.08em;line-height:1.62;
  background-image:var(--flare);background-attachment:fixed;
  background-size:100vw 100vh;background-position:0 0;background-repeat:no-repeat;
  -webkit-background-clip:text;background-clip:text;color:transparent;padding-inline:.1em;
}
.p-feature__text{margin-top:2.75rem;font-size:1.25rem;letter-spacing:.06em;line-height:2.1;color:var(--c-body)}
.p-feature__rule{width:1px;height:4.5rem;background:linear-gradient(180deg,#E7CBD0,#F6EDEF);margin:3.5rem auto 0}
.p-feature__count{text-align:center;margin-top:1.25rem}
/* カンプは「3」だけピンク、Feature は濃い色 */
.p-feature__count-script{
  position:relative;display:inline-block;font-family:var(--f-sc);font-size:2.375rem;
  color:#2A1B18;letter-spacing:.02em;line-height:1;
}
.p-feature__count-num{
  position:absolute;left:50%;top:-3.375rem;transform:translateX(-50%);
  font-family:var(--f-sc);font-size:6.625rem;color:#E2A5B4;line-height:1;
}
.p-feature__count-jp{margin-top:1.3125rem;font-size:1.0625rem;letter-spacing:.1em;color:var(--c-ink)}
.p-feature__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:8.4375rem;
  width:87.5rem;max-width:none;margin-left:-6.25rem}
.p-feature__card{
  position:relative;border:1px solid var(--c-gold);border-radius:.5rem;
  background:#fff;padding:2.75rem 1.75rem 1.5rem;min-height:30.625rem;
  display:flex;flex-direction:column;
}
/* 枠線をまたぐ位置に置く。Feature は濃い色、数字だけピンク。 */
.p-feature__card-label{
  position:absolute;left:50%;top:0;transform:translate(-50%,-52%);white-space:nowrap;
  display:flex;align-items:baseline;gap:.25rem;
  font-family:var(--f-sc);font-size:1.375rem;color:#2A1B18;background:#fff;padding:0 .875rem;line-height:1.1;
}
.p-feature__card-label i{font-family:var(--f-sc);font-style:normal;font-size:2.75rem;color:#E2A5B4}
.p-feature__card-ttl{font-size:1.625rem;font-weight:500;letter-spacing:.06em;line-height:1.55;text-align:center;color:var(--c-ink)}
.p-feature__card-img{width:100%;margin-top:1.25rem;border-radius:.25rem;aspect-ratio:391/188;object-fit:cover}
.p-feature__card-text{margin-top:0;padding-top:1.4375rem;font-size:.9375rem;letter-spacing:.04em;line-height:1.95;color:var(--c-body)}

/* ==========================================================================
   access
   ========================================================================== */
.p-access{position:relative;padding:6.8125rem 0 9.5625rem}
/* 下端はセクションに合わせる（次のセクションにはみ出さない） */
.p-access::before{content:"";position:absolute;left:0;right:0;top:37.25rem;bottom:0;background:#F6F6F6;z-index:0}
.p-access > .l-inner{position:relative;z-index:1}
.p-access__grid{display:grid;grid-template-columns:36.125rem 51.3125rem;gap:0;align-items:start}
.p-access__info{padding-top:0}
.p-access__logo{width:8.125rem;margin-top:1.5rem}
.p-access__dl{margin-top:1.0625rem;font-size:.9375rem;letter-spacing:.06em;line-height:1.85;color:var(--c-ink)}
.p-access__dl dt{font-weight:700}
.p-access__dl dd{margin:0 0 1.0625rem}
.p-access__row{display:flex;gap:1.5rem;margin-bottom:.85rem}
.p-access__row dt{width:5rem;font-weight:700;flex:none}
.p-access__row dd{margin:0}
.p-access .c-btn{margin-top:.5rem}
.p-access__map{position:relative;margin-top:4.25rem;aspect-ratio:1/0.665}
.p-access__map .p-map__frame{width:100%;height:100%;min-height:0;border-radius:0}
/* ---------- 院内写真ギャラリー（自動スクロール） ---------- */
.p-gallery{
  position:relative;z-index:1;overflow:hidden;
  --gap:.8125rem;        /* 写真の間隔 */
  --speed:56s;           /* 1周にかける時間 */
}
.p-gallery--top{margin-top:2.9375rem}
.p-gallery__track{
  display:flex;width:max-content;
  animation:bc-marquee var(--speed) linear infinite;
  will-change:transform;
}
.p-gallery:hover .p-gallery__track{animation-play-state:paused}
.p-gallery__item{
  flex:none;width:18.5625rem;height:23.6875rem;border-radius:9.28125rem;
  object-fit:cover;margin-right:var(--gap);
}
/* 同じ列を2組並べているので、-50% で継ぎ目なくループする */
@keyframes bc-marquee{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}
@media (prefers-reduced-motion:reduce){
  .p-gallery{overflow-x:auto;scrollbar-width:none}
  .p-gallery::-webkit-scrollbar{display:none}
  .p-gallery__track{animation:none}
}


/* ==========================================================================
   column
   ========================================================================== */
.p-column{padding:12.375rem 0 0}
.p-column__head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}
.p-column__head .c-btn{width:18.75rem;height:3.4375rem;flex:none}
.p-column__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;margin-top:3.625rem}
.p-column__thumb{display:block;background:var(--ph);border-radius:.25rem;aspect-ratio:1/0.705}
.p-column__date{margin-top:.9rem;font-family:var(--f-en);font-size:.875rem;letter-spacing:.08em;color:var(--c-body)}
.p-column__ttl{margin-top:.4rem;font-size:.9375rem;letter-spacing:.05em;line-height:1.7;color:var(--c-ink)}
.p-column__divider{max-width:96.875rem;margin:9.5rem auto 0}
.p-column__divider hr{border:0;border-top:1px solid var(--line-soft);margin:0}

/* ==========================================================================
   news
   ========================================================================== */
.p-news{padding:8.6875rem 0 9rem}
.p-news__grid{display:grid;grid-template-columns:31.5rem 1fr;gap:0}
.p-news__list{display:flex;flex-direction:column;padding-top:.5rem}
.p-news__item{
  display:block;padding:.8rem 0 .65rem;border-bottom:1px solid var(--line-soft);
  transition:opacity .3s;
}
.p-news__item:first-child{padding-top:.5rem}
.p-news__item:hover{opacity:.65}
.p-news__date{font-family:var(--f-en);font-size:.875rem;letter-spacing:.08em;color:var(--c-body)}
.p-news__ttl{margin-top:.35rem;font-size:.9375rem;letter-spacing:.05em;color:var(--c-ink)}

/* ==========================================================================
   footer
   ========================================================================== */
.l-footer{background:var(--c-dark);color:#F3EAE6;padding:5.5rem 0 2rem}
.l-footer__top{display:flex;flex-wrap:wrap;gap:3.75rem 3.125rem;align-items:flex-start}
.l-footer__info{flex:0 0 21.875rem;font-size:.9375rem;letter-spacing:.06em;line-height:1.95}
.l-footer__logo{width:8.75rem;margin-bottom:1.75rem}
.l-footer__addr{font-size:.875rem;line-height:1.85}
.l-footer__meta{margin-top:1.125rem;font-size:.875rem;line-height:2.2;color:#F3EAE6}
.l-footer__tel{font-family:var(--f-en);font-size:1rem;letter-spacing:.02em;color:#fff}
.l-footer__btns{display:flex;gap:.75rem;margin-top:1.75rem}
.l-footer__btns > a{height:2.625rem;padding:0 1.375rem;border-radius:1.3125rem;font-size:.875rem}
.l-footer__copy{
  margin-top:4.375rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.12);
  font-family:var(--f-en);font-size:.75rem;letter-spacing:.06em;color:#B9A6A0;text-align:center;
}
/* サイトマップ（ヘッダー・ハンバーガーと同じ木から生成） */
.l-footer__map{flex:1 1 44rem;display:grid;grid-template-columns:repeat(4,1fr);gap:2.25rem 1.75rem;align-items:start}
.l-footer__col--plain{padding-top:.25rem}
.l-footer__col--plain ul{gap:1.0625rem}
.l-footer__col li.is-sub a{padding-left:.75rem;color:#D9CBC6}
.l-footer__col li.is-sub a::before{content:"";display:inline-block;width:.375rem;height:1px;
  margin:0 .4375rem 0 -.75rem;vertical-align:.2em;background:#8A6F68}
.l-footer__col-head{
  display:block;padding-bottom:.625rem;margin-bottom:.875rem;
  border-bottom:1px solid rgba(255,255,255,.18);
  font-size:.9375rem;font-weight:500;letter-spacing:.08em;color:#fff;transition:color .3s;
}
.l-footer__col-head:hover{color:var(--c-gold-l)}
.l-footer__col ul{display:grid;gap:.4375rem}
.l-footer__col li a{
  display:block;font-size:.75rem;letter-spacing:.05em;line-height:1.6;color:#D8C9C4;transition:color .3s;
}
.l-footer__col li a:hover{color:var(--c-gold-l)}
.l-footer__col-head{
  max-width:12.5rem;padding-bottom:.6rem;border-bottom:1px solid rgba(243,234,230,.45);
  font-size:.9375rem;letter-spacing:.08em;
}
.l-footer__list{margin-top:1.1rem;display:flex;flex-direction:column;gap:1.0625rem}
.l-footer__list a{font-size:.8125rem;letter-spacing:.06em;color:#EADFDA;transition:color .3s}
.l-footer__list a:hover{color:var(--c-gold-l)}
.l-footer__list--plain{margin-top:0}

/* ==========================================================================
   narrow desktop
   ========================================================================== */
@media (max-width:1152px) and (min-width:900px){
  .l-header__brand{left:1.5rem}
  .l-nav__list{gap:1.1rem}
}

/* SP 専用要素は PC では非表示 */
.l-burger,.l-drawer,.p-cta-sp,.l-footer__sp{display:none}

/* ==========================================================================
   SP  (Figma: TOP / SP 390px)   1rem = 16px @390px viewport
   ========================================================================== */
@media (max-width:899px){

  html{font-size:clamp(13.1px,4.1026vw,17.6px)}

  /* ---------- shared ---------- */
  .l-inner,.l-inner--narrow,.l-inner--wide,.l-inner--sm{max-width:none;padding-inline:1.3125rem}
  .c-btn{width:18.5625rem;height:3.5625rem;padding:0 1.25rem;font-size:.875rem;letter-spacing:.1em;margin-inline:auto}
  .c-arw{width:1.0625rem;height:.875rem}
  .c-arw--sm{width:.75rem;height:.625rem}
  .c-shead__leaf{width:1.375rem;margin-bottom:.4rem}
  .c-shead__jp{font-size:2rem;letter-spacing:.12em}
  .c-shead__en{margin-top:.5rem;font-size:.625rem;letter-spacing:.22em}

  /* ---------- header / drawer ---------- */
  .l-header{padding:.375rem .5rem 0}
  .l-header__bar{height:3.8125rem;border-radius:.75rem;padding:0 .5rem 0 .625rem;display:flex;align-items:center}
  .l-header__brand{position:static;flex:0 1 auto;width:fit-content;margin:0 auto 0 0;text-align:left;line-height:1.3;top:auto;left:auto;gap:.5rem;align-items:center}
  .l-header__logo{width:4.75rem}
  .l-header__text{padding-top:0}
  .l-header__catch{font-size:.625rem;letter-spacing:.03em}
  .l-header__name{font-size:1.0625rem;letter-spacing:.04em}
  .l-header__util,.l-nav{display:none}

  .l-burger{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3125rem;
    width:3.5rem;height:1.75rem;border-radius:.875rem;flex:none;
    background:linear-gradient(100deg,#D6BB77,#BE9236);
  }
  .l-burger span{display:block;width:1.375rem;height:1px;background:#fff}


  /* ---------- hero ---------- */
  .p-hero{height:41.6875rem;background:#8f929a}
  /* ② コピーが読めるよう、下側にフィルターをかける（カンプと同じ） */
  .p-hero::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(20,14,8,0) 26%,rgba(20,14,8,.22) 52%,rgba(20,14,8,.48) 76%,rgba(20,14,8,.62) 100%);
  }
  .p-hero__body{position:relative;z-index:2}
  .p-hero__bg{object-position:56% 36%}
  .p-hero__body{padding:0;max-width:none}
  .p-hero__copy{left:.9375rem;top:21.125rem}
  .p-hero__eyebrow{font-size:.8125rem;letter-spacing:.12em;color:#D3B26A}
  .p-hero__title{margin-top:.75rem;font-size:2rem;letter-spacing:.1em;line-height:1.45;text-shadow:0 .0625rem .5rem rgba(40,30,20,.3)}
  .p-hero__lead{margin-top:.625rem;font-size:1rem;letter-spacing:.03em;line-height:1.5625}
  .p-hero__badges{left:.9375rem;right:.9375rem;bottom:1.1875rem;gap:.375rem;justify-content:space-between;align-items:center}
  .p-hero__badge,
  .p-hero__badge:nth-child(2),
  .p-hero__badge:nth-child(3){width:7.25rem;height:7.25rem;margin-bottom:0}
  .p-hero__badge-sub{font-size:.5625rem;line-height:1.55}
  .p-hero__badge-dot{width:.1875rem;height:.1875rem;margin:.25rem 0}
  .p-hero__badge-main{font-size:.875rem;line-height:1.4}
  .p-hero__badge-main--en{font-size:1rem;line-height:1.28}
  .p-hero__badge:nth-child(3) .p-hero__badge-main{font-size:.6875rem}

  /* ---------- sp cta row ---------- */
  /* ③ 同じボタンを画面下部に追従させるので、本文中の行は出さない */
  .p-cta-sp{display:none}

  /* ---------- carousel (campaign / monitor / case) ---------- */
  .p-campaign__grid,.p-monitor__grid,.p-case__grid{
    display:flex;grid-template-columns:none;max-width:none;
    gap:.8125rem;padding:0 4.375rem;margin-inline:0;
    overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
  }
  .p-campaign__grid::-webkit-scrollbar,
  .p-monitor__grid::-webkit-scrollbar,
  .p-case__grid::-webkit-scrollbar{display:none}
  .p-card-ph,.p-monitor__ph,.p-case__item{flex:0 0 15.5rem;scroll-snap-align:center}
  .p-card-ph{aspect-ratio:1/0.996}
  .p-monitor__ph{aspect-ratio:1/1.004}

  /* ---------- campaign ---------- */
  .p-campaign{padding:.625rem 0 0}
  .p-campaign__grid{margin-top:2.25rem}
  .p-campaign .c-btn{margin:2.1875rem auto 0}

  /* ---------- concept ---------- */
  .p-concept{display:flex;flex-direction:column;padding:12.3125rem 0 5.125rem;overflow:visible}
  .p-concept__body{order:1;padding-inline:1.3125rem}
  .p-concept__mark{position:absolute;right:1.3125rem;left:auto;top:7.875rem;width:15.5625rem;z-index:0}
  .p-concept__shape{order:2;position:static;width:19rem;height:24.5rem;margin:1.75rem 0 0 auto;top:auto;right:auto}
  .p-concept__foot{order:3;margin-top:0;padding-inline:1.3125rem}
  .p-concept .c-btn{margin:2.125rem 0 0}
  .p-concept__title{font-size:1.625rem;letter-spacing:.06em;line-height:1.92}
  .p-concept__title span{display:block;-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}
  .p-concept__title span:nth-child(1){background-image:linear-gradient(90deg,#C1785C 0%,#8E5878 32%,#5C1327 54%,#120000 80%)}
  .p-concept__title span:nth-child(2){background-image:linear-gradient(90deg,#52133C 0%,#20010D 38%,#0F0117 85%)}
  .p-concept__title span:nth-child(3){background-image:linear-gradient(90deg,#140000,#140000)}
  .u-brsp{display:inline}
  .p-concept__text{margin-top:1.75rem;font-size:1rem;letter-spacing:.04em;line-height:2.625}
  .p-concept__text + .p-concept__text{margin-top:2.625rem}

  /* ---------- trouble ---------- */
  .p-trouble{padding:6.3125rem 0 5.125rem}
  .p-trouble__switch{gap:.875rem;margin-top:2.4375rem}
  .p-trouble__sw{flex:1;width:auto;height:4.375rem;gap:.5rem;font-size:.9375rem;letter-spacing:.08em;border-radius:.375rem}
  .p-trouble__sw svg{width:2.25rem}
  .p-trouble__sw.is-active::after{bottom:-.5rem;width:1rem;height:1rem}
  .p-trouble__tabs{
    display:flex;grid-template-columns:none;gap:.625rem;margin-top:1.875rem;
    overflow-x:auto;scrollbar-width:none;padding-bottom:.125rem;
  }
  .p-trouble__tabs::-webkit-scrollbar{display:none}
  .p-trouble__tab{flex:none;height:2.5625rem;padding:0 1.5rem;border-radius:1.28125rem;font-size:1rem;letter-spacing:.06em}
  .p-trouble__cards{grid-template-columns:1fr;gap:.8125rem;margin-top:1.875rem}
  .p-trouble__card{min-height:0;padding:1.5rem 1.375rem 1.5rem;border-radius:.5rem}
  .p-trouble__card-ttl{font-size:1.125rem}
  .p-trouble__links{flex-direction:row;flex-wrap:wrap;gap:.625rem;margin-top:1.1rem}
  .p-trouble__link{width:auto;height:2.375rem;padding:0 .875rem;font-size:.8125rem;gap:.5rem}

  /* ---------- menu ---------- */
  .p-menu{padding:3.9375rem 0 0}
  .p-menu__blocks{margin-top:4.875rem}
  .p-menu__block{max-width:none}
  /* ⑨⑩ 写真の見え方をカンプに合わせる（原寸・位置ともに実測値） */
  .p-menu__block--01 .p-menu__bg{right:-1.8125rem;width:39.375rem;height:18.875rem}
  .p-menu__block--02 .p-menu__bg{left:0;width:24.3125rem;height:17.875rem}
  .p-menu__block--06 .p-menu__bg{right:0;width:16.625rem;height:15.5625rem}
  /* ⑦⑧ 左のぼかしが広すぎて写真が潰れていたので、カンプ同様に狭くする */
  .p-menu__block--01 .p-menu__bg,
  .p-menu__block--06 .p-menu__bg{
    --bg-fade-x:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 8%,#000 20%);
  }
  .p-menu__block--02 .p-menu__bg{
    --bg-fade-x:linear-gradient(270deg,transparent 0%,rgba(0,0,0,.55) 8%,#000 20%);
  }
  .p-menu__bg{
    --bg-fade-y:linear-gradient(180deg,#000 0%,#000 66%,rgba(0,0,0,.6) 86%,transparent 100%);
  }
  .p-menu__block--01{padding:9.8125rem 0 1.8125rem}
  .p-menu__block--02{padding:11rem 0 1.875rem}
  .p-menu__block--06{padding:7.8125rem 0 .8125rem}
  .p-menu__block--06 .p-menu__head{padding-bottom:0}
  .p-menu__block--06 .p-menu__list{margin-top:2.0625rem}
  .p-menu__head,.p-menu__head--right{max-width:none;padding-inline:1.3125rem;text-align:left}
  .p-menu__num{font-size:.875rem}
  .p-menu__ttl{display:block;margin-top:.375rem;font-size:1.75rem;letter-spacing:.12em}
  .p-menu__ttl .c-arw{display:block;margin-top:1.375rem;width:1.375rem}
  .p-menu__custom{width:auto;height:7.5rem;margin-top:2.75rem;padding:.75rem 1.25rem 0;border-radius:.5rem}
  .p-menu__custom-mark{height:6.75rem;left:.25rem;top:.25rem}
  .p-menu__custom-leaf{left:1.75rem;top:.625rem;width:auto;height:5.75rem}
  .p-menu__custom-doctor{width:auto;height:9rem}
  .p-menu__block--02 .p-menu__custom{margin-left:0}
  .p-menu__badge{height:1.375rem;font-size:.8125rem}
  .p-menu__custom-ttl span{font-size:1.25rem}
  .p-menu__custom-ttl strong{font-size:1.6875rem}
  .p-menu__custom-arw{right:1.125rem;bottom:1.25rem;width:1.75rem;height:1.75rem}
  .p-menu__list{grid-template-columns:1fr;gap:.5rem;max-width:none;margin-top:1.6875rem;padding-inline:1.3125rem}
  .p-pill{height:4.5rem;padding-right:1.125rem;gap:.875rem;border-radius:2.25rem}
  .p-pill__thumb{width:3.5625rem;height:3.5625rem;margin-left:.4375rem}
  .p-pill__label{font-size:.9375rem;font-weight:500}

  .p-menu__trio{grid-template-columns:1fr;max-width:none;background:transparent}
  .p-menu__trio-item{min-height:13.0625rem;padding:3.5rem 0 0 2.375rem;background:var(--bg-thread)}
  .p-menu__trio-item:nth-child(2){background:#E4E3DF}
  /* ⑨⑩ SPはカンプ用の広い切り抜き素材を、行の高さいっぱい・右づめで置く */
  .p-menu__trio-item img{width:auto;height:100%;left:auto;right:0;object-position:center}
  .p-menu__trio-ttl{font-size:1.75rem;letter-spacing:.12em}
  .p-menu__trio-arw{display:block;margin-top:.6rem}

  /* ---------- case ---------- */
  .p-case{padding:8rem 0 0}
  .p-case__tabs{
    display:flex;grid-template-columns:none;max-width:none;gap:.625rem;
    margin:1.75rem 0 0;padding:0 1.3125rem;overflow-x:auto;scrollbar-width:none;
  }
  .p-case__tabs::-webkit-scrollbar{display:none}
  .p-case__tab{flex:none;height:2.5625rem;padding:0 1.5rem;border-radius:1.28125rem;font-size:1rem}
  .p-case__grid{margin-top:2.5625rem}
  .p-case__thumb{aspect-ratio:1/0.86;border-radius:.5rem}
  .p-case__ttl{margin-top:.5rem;font-size:.6875rem;line-height:1.6}
  .p-case__meta{margin-top:.375rem;gap:.25rem}
  .p-case__row dt{width:3.5rem;height:1.0625rem;font-size:.625rem}
  .p-case__cell dd{margin-top:.0625rem}
  .p-case__row dd,.p-case__cell dd{font-size:.8125rem}
  .p-case .c-btn{margin:2.1875rem auto 0}
  .p-case__divider{max-width:none;margin-top:7.625rem;padding-inline:1.3125rem}

  /* ---------- monitor ---------- */
  .p-monitor{padding:3.5rem 0 0}
  .p-monitor__grid{margin-top:1.8125rem}
  .p-monitor .c-btn{margin:2rem auto 0}

  /* ---------- feature ---------- */
  .p-feature{padding:11.3125rem 0 3.5rem}
  .p-feature .l-inner{display:flex;flex-direction:column;text-align:left}
  .p-feature__leaf{order:0;width:1.375rem;margin:0 0 .4rem}
  .p-feature__sub{
    order:1;margin-top:0;font-size:2rem;font-weight:500;letter-spacing:.1em;
    width:fit-content;
    /* ⑪ 白のハイライトが入ると背景に溶けるので、カンプどおり単調な金グラデにする */
    background:linear-gradient(90deg,#D6BB73 0%,#C39F4E 42%,#BB862B 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .p-feature__wordmark{
    order:2;margin-left:0;font-size:.625rem;letter-spacing:.22em;line-height:1.6;
    background:none;color:var(--c-ink);
  }
  .p-feature__title{order:3;margin-top:2.5rem;font-size:1.5rem;letter-spacing:.06em;line-height:1.79;text-align:left}
  .p-feature__title span{-webkit-background-clip:text;background-clip:text;color:transparent;width:fit-content}
  .p-feature__title span:nth-child(1){display:block;background-image:linear-gradient(90deg,#0B0000 0%,#0B0000 46%,#6A2A10 92%)}
  .p-feature__title span:nth-child(2){display:block;background-image:linear-gradient(90deg,#0B0000 0%,#0B0000 32%,#4C264D 88%)}
  .p-feature__title span:nth-child(3),
  .p-feature__title span:nth-child(4){display:inline;background-image:linear-gradient(90deg,#0B0000,#0B0000)}
  .p-feature__text{order:4;margin-top:1.75rem;font-size:.875rem;line-height:2.1;text-align:left}
  .p-feature__panel{display:none}
  .p-feature .l-inner{max-width:none}
  /* 院長写真：カンプは左側が弧を描く形（上でくびれ、下で外へ開く）。実測プロファイルから起こした */
  .p-feature__doctor{order:5;position:static;left:auto;top:auto;width:21.4375rem;height:27.4375rem;
    border-top-left-radius:0;object-fit:cover;object-position:50% 50%;
    margin:5.5625rem 0 0 auto;
    -webkit-clip-path:polygon(14.6% 0.0%,13.4% 2.5%,12.2% 4.8%,11.7% 7.1%,11.1% 9.3%,10.5% 11.6%,10.2% 13.9%,9.9% 16.2%,9.6% 18.5%,9.3% 20.7%,9.3% 25.3%,9.0% 29.8%,9.0% 34.4%,9.3% 39.0%,9.3% 52.6%,9.3% 65.1%,9.0% 68.6%,8.7% 70.8%,8.5% 73.1%,8.2% 75.4%,7.9% 77.7%,7.3% 80.0%,7.0% 82.2%,6.4% 84.5%,5.5% 86.8%,5.0% 89.1%,4.1% 91.3%,3.2% 93.6%,2.0% 95.9%,0.9% 98.2%,0.0% 100.0%,100.0% 100.0%,100.0% 0.0%);
    clip-path:polygon(14.6% 0.0%,13.4% 2.5%,12.2% 4.8%,11.7% 7.1%,11.1% 9.3%,10.5% 11.6%,10.2% 13.9%,9.9% 16.2%,9.6% 18.5%,9.3% 20.7%,9.3% 25.3%,9.0% 29.8%,9.0% 34.4%,9.3% 39.0%,9.3% 52.6%,9.3% 65.1%,9.0% 68.6%,8.7% 70.8%,8.5% 73.1%,8.2% 75.4%,7.9% 77.7%,7.3% 80.0%,7.0% 82.2%,6.4% 84.5%,5.5% 86.8%,5.0% 89.1%,4.1% 91.3%,3.2% 93.6%,2.0% 95.9%,0.9% 98.2%,0.0% 100.0%,100.0% 100.0%,100.0% 0.0%);}
  .p-feature__rule{display:none}
  .p-feature__count{order:6;margin-top:5.375rem;text-align:center;transform:none}
  .p-feature__count-script{font-size:2rem}
  .p-feature__count-num{top:-1.5rem;font-size:2.75rem}
  .p-feature__count-jp{margin-top:.6rem;font-size:.8125rem}
  .p-feature__cards{order:7;grid-template-columns:1fr;gap:2.5rem;margin-top:4.6875rem;width:auto;margin-left:0}
  .p-feature__card{min-height:0;padding:1.875rem 1.25rem 1.25rem;border-radius:.375rem;text-align:left}
  .p-feature__card-label{top:0;transform:translate(-50%,-48%);font-size:1.6875rem;background:transparent;padding:0}
  .p-feature__card-label i{font-size:3.125rem}
  .p-feature__card-ttl{font-size:1.25rem;line-height:1.75}
  .p-feature__card-img{margin-top:1.25rem;aspect-ratio:302/180}
  .p-feature__card-text{margin-top:0;padding-top:1.5rem;font-size:.875rem;line-height:2}

  /* ---------- access ---------- */
  .p-access{padding:3.8125rem 0 1.875rem}
  .p-access::before{top:35.625rem;bottom:0;height:auto}
  .p-access__grid{display:block;grid-template-columns:none}
  .p-access__info{padding-top:0}
  .p-access .c-shead{text-align:center}
  .p-access .c-shead__leaf{margin-inline:auto}
  .p-access__dl{width:fit-content;margin:1.0625rem auto 0;font-size:.9375rem;line-height:1.4}
  /* ⑮ 「お問い合わせ」もカンプは見出しと値を横並びにしている */
  .p-access__dl > dl:last-of-type{display:flex;gap:1.5rem}
  .p-access__dl > dl:last-of-type dt{width:6rem;flex:none;white-space:nowrap}
  .p-access__dl > dl:last-of-type dd{margin:0}
  .p-access__row{gap:1.5rem;margin-bottom:1rem}
  .p-access__row dt{width:6rem;white-space:nowrap}
  .p-access .c-btn{margin:4.875rem auto 0}
  .p-access__map{
    margin:3.75rem auto 0;width:21.6875rem;aspect-ratio:1/1.285;
    border:1px solid var(--c-gold);
  }
  .p-access__map .p-map__frame{width:100%;height:100%;min-height:0;border-radius:0}
  .p-access__logo{width:8.0625rem;margin:1.9375rem auto 0}
  .p-gallery{--gap:.5625rem;--speed:40s}
  .p-gallery--top{margin-top:4.625rem}
  .p-gallery__item{width:11.625rem;height:14.625rem;border-radius:5.8125rem}

  /* ---------- column ---------- */
  .p-column{padding:2.25rem 0 0}
  .p-column__head{display:block}
  .p-column__head .c-btn{display:none}
  .p-column__grid{grid-template-columns:1fr 1fr;gap:1.25rem .8125rem;margin-top:2.5rem}
  .p-column__thumb{aspect-ratio:1/0.765;border-radius:.375rem}
  .p-column__date{margin-top:.75rem;font-size:.75rem}
  .p-column__ttl{font-size:.8125rem;line-height:1.75}
  .p-column__divider{max-width:none;margin-top:3.5rem;padding-inline:1.3125rem}

  /* ---------- news ---------- */
  .p-news{padding:5rem 0 4rem}
  .p-news__grid{grid-template-columns:1fr;gap:0}
  .p-news__list{padding-top:2.5rem}
  .p-news__item{padding:1rem 0 .9rem}
  .p-news__date{font-size:.75rem}
  .p-news__ttl{font-size:.8125rem}

  /* ⑪ セクション見出しの金グラデも、白飛びしないカンプ準拠のものにそろえる */
  .c-shead__jp{
    width:fit-content;margin-inline:auto;
    background-image:linear-gradient(90deg,#D6BB73 0%,#C39F4E 42%,#BB862B 100%);
  }
  /* 左寄せの見出し（コラム・お知らせ）は左端にそろえる */
  .c-shead--left .c-shead__jp{margin-inline:0}
  .p-access .c-shead__jp{margin-inline:auto}

  /* ---------- footer ---------- */
  .l-footer{padding:2.5625rem 0 1.25rem}
  .l-footer__top{flex-direction:column;gap:2.25rem}
  .l-footer__info{flex:1 1 auto;width:100%}
  .l-footer__map{flex:1 1 auto;width:100%;grid-template-columns:1fr 1fr;gap:1.5rem 1.25rem}
  .l-footer__col-head{font-size:.875rem}
  .l-footer__col li a{font-size:.8125rem}
  /* ⑮ クリニック情報はカンプ同様センター寄せ。予約ボタンはフッターには入らない */
  .l-footer__info{text-align:center}
  .l-footer__logo{margin-inline:auto}
  .l-footer__btns{display:none}
  /* ⑯ SPのサイトマップはカンプの構成（施術メニュー＋2列／固定ページ2列）にする */
  .l-footer__map{display:none}
  .l-footer__sp{display:block;width:100%;text-align:left}
  .l-footer__sp-head{margin-top:2.3125rem}
  .l-footer__sp-list{gap:.375rem 1rem}
  .l-footer__sp-list a{font-size:.9375rem;letter-spacing:.05em;line-height:1.6}
  .l-footer__sp-list--pages{margin-top:2.375rem;row-gap:.75rem}
  .l-footer__copy{margin-top:1.25rem;padding-top:1.5rem}
  .l-footer__logo{width:6.5rem;margin-bottom:1.5rem}
  .l-footer__sp-info{font-size:.9375rem;letter-spacing:.05em;line-height:1.45}
  .l-footer__sp-info p + p{margin-top:.625rem}
  .l-footer__sp-head{
    margin-top:4.25rem;padding-bottom:.6rem;border-bottom:1px solid rgba(243,234,230,.45);
    font-size:.9375rem;letter-spacing:.08em;font-weight:400;
  }
  .l-footer__sp-list{
    display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem;margin-top:1.25rem;
  }
  .l-footer__sp-list--pages{margin-top:2.5rem;row-gap:.75rem}
  .l-footer__sp-list a{font-size:.875rem;letter-spacing:.06em;color:#EADFDA}
  .l-footer__sp-copy{
    margin-top:2.75rem;text-align:center;font-family:var(--f-en);
    font-size:.8125rem;letter-spacing:.06em;color:#D9CBC6;
  }
}

/* ---- お悩みから探す：タブパネル（PC / 共通） ---- */
.p-trouble__cards[hidden]{display:none}
.p-trouble__empty{
  grid-column:1/-1;padding:3.5rem 0;text-align:center;
  font-size:1.0625rem;letter-spacing:.08em;color:var(--c-body);
}

/* ---- SP ドロワー（Figma: コーディング用 / ハンバーガーメニュー node 308-86） ---- */
.l-drawer__close{display:none}

@media (max-width:899px){


  .l-drawer{
    display:flex;flex-direction:column;position:fixed;inset:0;z-index:100;
    height:100dvh;                       /* ①④ アドレスバーで下が切れないように */
    background:#fff;overflow-y:auto;overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;backdrop-filter:none;
  }
  .l-drawer[hidden]{display:none}

  .l-drawer__panel{
    flex:1 0 auto;display:flex;flex-direction:column;
    background:#fff;padding:0 .9375rem 1.5rem;
  }

  /* ① ロゴが上に見切れていたので、カンプ同様ロゴを左に横並びにして高さに収める */
  .l-drawer__head{
    position:sticky;top:0;z-index:2;background:#fff;
    display:flex;align-items:center;height:4.25rem;margin-inline:-.9375rem;
    padding:0 1rem 0 .75rem;
    box-shadow:0 .5rem .75rem #fff;
  }
  .l-drawer__brand{
    display:flex;align-items:center;gap:.8125rem;
    flex:1 1 auto;width:auto;margin:0;text-align:left;line-height:1.3;
  }
  .l-drawer__brand .l-header__logo{width:3.9375rem;height:auto}
  .l-drawer__close{
    display:flex;align-items:center;justify-content:center;flex:none;
    width:3.1875rem;height:1.875rem;border-radius:.9375rem;color:#fff;
    background:linear-gradient(100deg,#D6BB77,#BE9236);
  }
  .l-drawer__close svg{width:1rem;height:1rem}

  .l-drawer__cta{
    flex:none;background:var(--c-dark);color:#fff;text-align:center;
    /* ④ 端末下端のバーで予約ボタンが隠れないように余白を足す */
    padding:2.25rem .9375rem calc(2.375rem + env(safe-area-inset-bottom));
  }
  .l-drawer__cta-leaf{width:1.375rem;margin:0 auto .35rem}
  .l-drawer__cta-jp{
    font-size:1.0625rem;letter-spacing:.08em;
    background:linear-gradient(90deg,#D3B56E 0%,#C08E35 45.5%,#FBEFD0 62%,#C69A45 80%,#D3B56E 100%);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .l-drawer__cta-en{margin-top:.2rem;font-size:.6875rem;letter-spacing:.2em;color:#B99A5E}
  .l-drawer__cta > a{
    display:flex;align-items:center;justify-content:center;gap:.5rem;
    width:18.875rem;height:3rem;margin:1.625rem auto 0;border-radius:1.5rem;
    font-size:1rem;letter-spacing:.08em;
  }
  .l-drawer__cta > a + a{margin-top:1.4375rem}

  .l-drawer__inner{display:none}
}

/* ==========================================================================
   下層ページ（施術メニュー詳細）
   ========================================================================== */

.c-arw--back{transform:scaleX(-1)}
.c-btn--onlight{display:inline-flex;width:auto;min-width:15.625rem}

/* ---------- ページヒーロー ---------- */
.p-phero{
  position:relative;overflow:hidden;background:var(--bg-beige);
  padding:11.875rem 0 5.625rem;
}
.p-phero__bg{
  position:absolute;right:0;top:0;width:46.875rem;height:100%;
  object-fit:cover;object-position:right center;z-index:0;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 18%,#000 46%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 18%,#000 46%);
}
.p-phero__bg::after{content:""}
.p-phero > .l-inner{position:relative;z-index:1}

.p-breadcrumb{font-size:.8125rem;letter-spacing:.06em;color:var(--c-body)}
.p-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.p-breadcrumb li{display:flex;align-items:center;gap:.5rem}
.p-breadcrumb li + li::before{content:"";width:.3125rem;height:.3125rem;border-top:1px solid var(--c-gold-d);border-right:1px solid var(--c-gold-d);transform:rotate(45deg)}
.p-breadcrumb a{transition:color .3s}
.p-breadcrumb a:hover{color:var(--c-gold-d)}
.p-breadcrumb [aria-current]{color:var(--c-ink)}

.p-phero__num{
  margin-top:3.75rem;font-family:var(--f-en);font-size:1.375rem;font-weight:500;
  letter-spacing:.14em;color:var(--c-gold-d);
}
.p-phero__title{
  margin-top:.5rem;font-size:4rem;font-weight:500;letter-spacing:.12em;line-height:1.3;color:var(--c-ink);
}
.p-phero__en{
  margin-top:1rem;font-family:var(--f-en);font-size:.875rem;letter-spacing:.22em;color:var(--c-body);
}
.p-phero__lead{
  max-width:46.875rem;margin-top:2.5rem;
  font-size:1.0625rem;letter-spacing:.06em;line-height:2.15;color:var(--c-body);
}

/* ---------- ページ内メニュー（目次） ---------- */
.p-index{
  position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.9);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.p-index > .l-inner{display:flex;align-items:center;gap:2rem;padding-block:1.125rem}
.p-index__label{
  flex:none;font-family:var(--f-en);font-size:.75rem;letter-spacing:.22em;color:var(--c-gold-d);
}
.p-index__list{display:flex;flex-wrap:wrap;gap:.625rem}
.p-index__list a{
  display:flex;align-items:center;height:2.5rem;padding:0 1.3125rem;
  border:1px solid var(--line);border-radius:1.25rem;
  font-size:.9375rem;letter-spacing:.06em;color:var(--c-ink);
  transition:background .3s,border-color .3s,color .3s;
}
.p-index__list a:hover{background:linear-gradient(100deg,#D6BB77,#BE9236);border-color:transparent;color:#fff}

/* ---------- メニュー一覧 ---------- */
.p-mlist{padding:7.5rem 0 8.75rem}
.p-mlist .c-shead{margin-bottom:4.375rem}

/* 大枠（カスタマイズ） */
.p-mfeat{
  position:relative;display:block;overflow:visible;
  border:1px solid #4A3A36;border-radius:.5rem;
  min-height:19.375rem;margin-bottom:4.375rem;
  transition:box-shadow .3s,transform .3s;
}
.p-mfeat:hover{box-shadow:0 .75rem 2rem rgba(60,40,30,.14);transform:translateY(-2px)}
.p-mfeat__bg{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  border-radius:.4375rem;z-index:0;
}
.p-mfeat__mark{
  position:absolute;left:1rem;top:.5rem;width:auto;height:18.125rem;
  opacity:.3;filter:brightness(1.7) saturate(.35);z-index:1;pointer-events:none;
}
.p-mfeat__body{
  position:relative;z-index:2;display:block;
  max-width:51.25rem;padding:3.25rem 3rem 3.25rem;
}
.p-mfeat__ttl{
  display:block;margin-top:1.125rem;
  font-family:var(--f-go);font-size:2rem;font-weight:700;letter-spacing:.01em;line-height:1.4;color:#181413;
}
.p-mfeat__text{
  display:block;margin-top:1.25rem;max-width:37.5rem;
  font-size:1rem;letter-spacing:.05em;line-height:2;color:var(--c-body);
}
.p-mfeat .c-btn{margin-top:2rem}
.p-mfeat__doctor{
  position:absolute;right:1.5rem;bottom:0;width:auto;height:24.375rem;
  z-index:1;pointer-events:none;
}

/* カード */
.p-mcards{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem 2.5rem}
.p-mcard{
  display:flex;align-items:flex-start;gap:1.875rem;
  padding:2.375rem 2.25rem 2.125rem;
  background:#fff;border:1px solid var(--line-soft);border-radius:.5rem;
  transition:box-shadow .3s,transform .3s,border-color .3s;
}
.p-mcard:hover{box-shadow:0 .75rem 2rem rgba(60,40,30,.1);transform:translateY(-2px);border-color:var(--c-gold-l)}
.p-mcard__thumb{
  flex:none;width:9.375rem;height:9.375rem;border-radius:50%;overflow:hidden;background:#EDE9E4;
}
.p-mcard__thumb img{width:100%;height:100%;object-fit:cover}
.p-mcard__body{flex:1;min-width:0}
.p-mcard__ttl{font-size:1.5rem;font-weight:500;letter-spacing:.08em;line-height:1.5;color:var(--c-ink)}
.p-mcard__text{margin-top:1rem;font-size:.9375rem;letter-spacing:.05em;line-height:1.95;color:var(--c-body)}
.p-mcard__btn{
  display:inline-flex;align-items:center;gap:.875rem;margin-top:1.5rem;
  font-size:.9375rem;letter-spacing:.08em;color:var(--c-ink);
  border-bottom:1px solid var(--c-gold);padding-bottom:.375rem;
  transition:color .3s,border-color .3s;
}
.p-mcard__btn .c-arw{color:var(--c-gold-d)}
.p-mcard__btn:hover{color:var(--c-gold-d)}

/* ---------- 予約CTA ---------- */
.p-cta{background:var(--c-dark);color:#fff;padding:6.25rem 0 5rem;text-align:center}
.p-cta__leaf{width:1.625rem;margin:0 auto .55rem}
.p-cta__jp{
  font-size:2.75rem;font-weight:500;letter-spacing:.12em;line-height:1.3;
  background:linear-gradient(90deg,#D3B56E 0%,#C08E35 45.5%,#FBEFD0 62%,#C69A45 80%,#D3B56E 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;padding-inline:.14em;
}
.p-cta__en{margin-top:.55rem;font-family:var(--f-en);font-size:.875rem;letter-spacing:.22em;color:#B99A5E}
.p-cta__btns{display:flex;justify-content:center;gap:1.25rem;margin-top:2.75rem}
.p-cta__btns > a{width:18.875rem;height:3.5rem;border-radius:1.75rem;font-size:1rem}
.p-cta__back{
  display:inline-flex;align-items:center;gap:.875rem;margin-top:3.25rem;
  font-size:.9375rem;letter-spacing:.08em;color:#EADFDA;transition:color .3s;
}
.p-cta__back:hover{color:var(--c-gold-l)}

/* ==========================================================================
   下層ページ SP
   ========================================================================== */
@media (max-width:899px){

  .p-phero{display:flex;flex-direction:column;padding:7.5rem 0 0}
  .p-phero > .l-inner{order:1}
  .p-phero__bg{
    order:2;position:static;width:100%;height:13.75rem;margin-top:2.25rem;
    object-position:center 30%;opacity:1;
    -webkit-mask-image:none;mask-image:none;
  }
  .p-phero__num{margin-top:2.25rem;font-size:1.125rem}
  .p-phero__title{font-size:2.375rem;letter-spacing:.1em}
  .p-phero__en{margin-top:.625rem;font-size:.6875rem}
  .p-phero__lead{max-width:none;margin-top:1.5rem;font-size:.9375rem;line-height:2.05}
  .p-breadcrumb{font-size:.6875rem}

  .p-index > .l-inner{display:block;padding-block:.875rem}
  .p-index__label{margin-bottom:.5rem}
  .p-index__list{
    flex-wrap:nowrap;overflow-x:auto;gap:.5rem;
    scrollbar-width:none;margin-inline:-1.3125rem;padding-inline:1.3125rem;
  }
  .p-index__list::-webkit-scrollbar{display:none}
  .p-index__list li{flex:none}
  .p-index__list a{height:2.125rem;padding:0 .9375rem;font-size:.8125rem}

  .p-mlist{padding:4.375rem 0 5rem}
  .p-mlist .c-shead{margin-bottom:2.5rem}
  .p-mlist .c-shead__jp{font-size:1.75rem;letter-spacing:.1em}

  .p-mfeat{min-height:0;margin-bottom:2.5rem;border-radius:.5rem}
  .p-mfeat__mark{height:11.25rem;left:.5rem;top:.25rem}
  .p-mfeat__body{max-width:none;padding:1.5rem 1.375rem 1.75rem}
  .p-mfeat__ttl{margin-top:.875rem;font-size:1.1875rem;line-height:1.5}
  .p-mfeat__text{margin-top:.875rem;max-width:none;font-size:.875rem;line-height:1.95}
  .p-mfeat .c-btn{margin-top:1.5rem;width:100%;min-width:0;height:3.125rem;font-size:.875rem}
  .p-mfeat__doctor{position:relative;z-index:1;display:block;right:auto;bottom:auto;height:auto;width:73%;margin:0 0 0 auto;border-bottom-right-radius:.4375rem}

  .p-mcards{grid-template-columns:1fr;gap:1.25rem}
  .p-mcard{gap:1.125rem;padding:1.5rem 1.375rem 1.625rem;border-radius:.5rem}
  .p-mcard__thumb{width:5.5rem;height:5.5rem}
  .p-mcard__ttl{font-size:1.125rem;letter-spacing:.06em}
  .p-mcard__text{margin-top:.75rem;font-size:.875rem;line-height:1.9}
  .p-mcard__btn{margin-top:1.125rem;font-size:.875rem}

  .p-cta{padding:3.75rem 0 3.25rem}
  .p-cta__jp{font-size:1.3125rem;letter-spacing:.08em}
  .p-cta__en{font-size:.6875rem}
  .p-cta__btns{flex-direction:column;align-items:center;gap:.875rem;margin-top:1.75rem}
  .p-cta__btns > a{width:18.875rem;max-width:100%;height:3rem}
  .p-cta__back{margin-top:2.25rem;font-size:.875rem}
}

/* ==========================================================================
   四層ページ（施術詳細）
   ========================================================================== */

.p-sec__sub{
  margin-top:1.25rem;text-align:center;
  font-size:1.0625rem;letter-spacing:.08em;color:var(--c-body);
}

/* ---------- ヒーロー ---------- */
.p-dhero{
  position:relative;overflow:hidden;padding:10.625rem 0 4.375rem;
  background:
    radial-gradient(80% 120% at 88% 18%, #FBF6F2 0%, rgba(251,246,242,0) 62%),
    linear-gradient(180deg,#F4F2EE 0%, var(--bg-beige) 100%);
}
.p-dhero__bg{
  position:absolute;right:0;top:0;width:50rem;height:100%;
  object-fit:cover;object-position:right 22%;z-index:0;pointer-events:none;opacity:.9;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 16%,rgba(0,0,0,.85) 46%,#000 70%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.22) 16%,rgba(0,0,0,.85) 46%,#000 70%);
}
.p-dhero > .l-inner{position:relative;z-index:1}
.p-dhero__body{display:flex;align-items:flex-start;gap:3.75rem;margin-top:3.125rem}
.p-dhero__text{flex:1;min-width:0;max-width:46.25rem}

.p-dhero__parent{
  display:flex;align-items:center;gap:.875rem;
  font-size:.9375rem;letter-spacing:.1em;color:var(--c-body);
}
.p-dhero__num{
  font-family:var(--f-en);font-size:1.25rem;font-weight:500;letter-spacing:.1em;
  color:var(--c-gold-d);
}
.p-dhero__num::after{
  content:"";display:inline-block;width:1.75rem;height:1px;
  margin-left:.875rem;vertical-align:.3em;background:var(--c-gold-l);
}
.p-dhero__title{
  margin-top:.875rem;font-size:3.25rem;font-weight:500;letter-spacing:.1em;line-height:1.35;color:var(--c-ink);
}
.p-dhero__catch{
  margin-top:1.375rem;font-size:1.375rem;font-weight:500;letter-spacing:.1em;line-height:1.7;
  color:var(--c-gold-d);
}
.p-dhero__lead{
  margin-top:1.125rem;font-size:1rem;letter-spacing:.06em;line-height:2.05;color:var(--c-body);
}
.p-dhero__lead + .p-dhero__lead{margin-top:.625rem}
.p-dhero__btns{display:flex;gap:.875rem;margin-top:2.25rem}
.p-dhero__btns > a{height:3rem;padding:0 2.125rem;border-radius:1.5rem;font-size:.9375rem}

.p-dhero__ph{
  position:relative;flex:none;width:15.625rem;height:15.625rem;border-radius:50%;overflow:hidden;
  box-shadow:0 1.5rem 3rem rgba(80,55,40,.18);background:#EDE9E4;
  outline:1px solid rgba(201,167,92,.45);outline-offset:.625rem;
}
.p-dhero__ph img{width:100%;height:100%;object-fit:cover}

/* ---------- 期待できる変化 ---------- */
.p-change{padding:6.875rem 0 6.25rem}
.p-change__list{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;
  margin-top:3.75rem;
}
.p-change__item{
  position:relative;padding:3.25rem 2.125rem 2.5rem;
  background:var(--bg-pink);border-radius:.5rem;
}
.p-change__num{
  position:absolute;left:2.125rem;top:1.75rem;
  font-family:var(--f-en);font-size:2.25rem;font-weight:500;letter-spacing:.04em;line-height:1;
  background:linear-gradient(90deg,#D3B56E,#C08E35);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.p-change__ttl{
  margin-top:1.625rem;font-size:1.25rem;font-weight:500;letter-spacing:.06em;line-height:1.6;color:var(--c-ink);
}
.p-change__text{margin-top:1rem;font-size:.9375rem;letter-spacing:.05em;line-height:1.95;color:var(--c-body)}

/* ---------- こんな方におすすめ ---------- */
.p-rec{padding-bottom:6.25rem}
.p-rec__box{
  position:relative;max-width:62.5rem;margin-inline:auto;
  padding:3.5rem 4.375rem 3.75rem;
  background:var(--bg-beige);border-radius:.5rem;
}
.p-rec__ttl{
  text-align:center;font-size:1.5rem;font-weight:500;letter-spacing:.1em;line-height:1.5;color:var(--c-ink);
}
.p-rec__ttl::after{
  content:"";display:block;width:2.5rem;height:1px;margin:1.125rem auto 0;
  background:linear-gradient(90deg,#D6BB77,#BE9236);
}
.p-rec__list{margin-top:2.125rem;display:grid;gap:1rem}
.p-rec__list li{
  position:relative;padding-left:2.375rem;
  font-size:1.0625rem;letter-spacing:.06em;line-height:1.8;color:var(--c-body);
}
.p-rec__list li::before{
  content:"";position:absolute;left:0;top:.5rem;
  width:1.375rem;height:1.375rem;border-radius:50%;
  background:linear-gradient(135deg,#D6BB77,#BE9236);
}
.p-rec__list li::after{
  content:"";position:absolute;left:.4375rem;top:.9375rem;
  width:.5rem;height:.25rem;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;
  transform:rotate(-45deg);
}

/* ---------- 選ばれる理由 ---------- */
.p-reason{background:var(--bg-soft);padding:6.875rem 0 6.25rem}
.p-reason__list{max-width:68.75rem;margin:3.75rem auto 0;display:grid;gap:1.5rem}
.p-reason__item{
  display:flex;align-items:flex-start;gap:2.5rem;
  padding:2.625rem 3rem;background:#fff;border:1px solid var(--line-soft);border-radius:.5rem;
}
.p-reason__num{
  flex:none;width:5.625rem;text-align:center;
  font-family:var(--f-en);font-size:2.5rem;font-weight:500;line-height:1;letter-spacing:.02em;
  background:linear-gradient(90deg,#D3B56E,#C08E35);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.p-reason__num span{
  display:block;margin-bottom:.5rem;
  font-family:var(--f-en);font-size:.625rem;letter-spacing:.24em;color:var(--c-gold-d);
  -webkit-text-fill-color:var(--c-gold-d);
}
.p-reason__body{flex:1;min-width:0}
.p-reason__ttl{font-size:1.3125rem;font-weight:500;letter-spacing:.06em;line-height:1.6;color:var(--c-ink)}
.p-reason__text{margin-top:1rem;font-size:.9375rem;letter-spacing:.05em;line-height:2;color:var(--c-body)}

/* ---------- 施術の流れ ---------- */
.p-flow{padding:6.875rem 0 6.25rem}
.p-flow__list{position:relative;max-width:62.5rem;margin:3.75rem auto 0}
.p-flow__list::before{
  content:"";position:absolute;left:2.5rem;top:1.5rem;bottom:2.5rem;width:1px;
  background:linear-gradient(180deg,var(--c-gold-l),rgba(214,187,119,.25));
}
.p-flow__item{position:relative;display:flex;align-items:flex-start;gap:2.5rem;padding-bottom:2.75rem}
.p-flow__item:last-child{padding-bottom:0}
.p-flow__step{
  position:relative;z-index:1;flex:none;
  width:5rem;height:5rem;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;
  background:linear-gradient(135deg,#D6BB77,#BE9236);color:#fff;
  font-family:var(--f-en);font-size:1.5rem;font-weight:500;line-height:1;
}
.p-flow__step span{font-size:.5625rem;letter-spacing:.2em}
.p-flow__body{flex:1;min-width:0;padding-top:.75rem}
.p-flow__ttl{font-size:1.1875rem;font-weight:500;letter-spacing:.06em;line-height:1.6;color:var(--c-ink)}
.p-flow__text{margin-top:.75rem;font-size:.9375rem;letter-spacing:.05em;line-height:1.95;color:var(--c-body)}

/* ---------- ダウンタイム・リスク ---------- */
.p-risk{background:var(--bg-derm);padding:6.875rem 0 6.25rem}
.p-risk__cols{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem;margin-top:3.75rem}
.p-risk__group{background:#fff;border-radius:.5rem;padding:2.5rem 2.625rem 2.75rem}
.p-risk__ttl{
  padding-bottom:1rem;border-bottom:1px solid var(--line-soft);
  font-size:1.1875rem;font-weight:500;letter-spacing:.08em;color:var(--c-ink);
}
.p-risk__dl{margin:1.5rem 0 0}
.p-risk__dl dt{
  font-size:.875rem;letter-spacing:.08em;color:var(--c-gold-d);
}
.p-risk__dl dd{
  margin:.25rem 0 1.125rem;font-size:.9375rem;letter-spacing:.05em;line-height:1.9;color:var(--c-body);
}
.p-risk__dl dd:last-child{margin-bottom:0}
.p-risk__note{
  max-width:none;margin-top:2.5rem;padding:2.125rem 2.625rem;
  background:rgba(255,255,255,.62);border:1px solid #fff;border-radius:.5rem;
}
.p-risk__note-ttl{
  margin-bottom:.75rem;font-size:1rem;font-weight:500;letter-spacing:.1em;color:var(--c-gold-d);
}
.p-risk__note p{font-size:.9375rem;letter-spacing:.05em;line-height:2;color:var(--c-body)}

/* ---------- 施術料金 ---------- */
.p-price{padding:6.875rem 0 6.25rem}
.p-price__scroll{margin-top:3.75rem;overflow-x:auto}
.p-price__table{
  width:100%;max-width:68.75rem;margin-inline:auto;border-collapse:collapse;
  font-size:.9375rem;letter-spacing:.05em;
}
.p-price__table th,.p-price__table td{
  padding:1.375rem 1.5rem;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top;
}
.p-price__table thead th{
  background:var(--bg-beige);font-weight:500;letter-spacing:.1em;color:var(--c-ink);
  border-bottom:1px solid var(--line);
}
.p-price__table tbody th{font-weight:400;line-height:1.8;color:var(--c-ink)}
.p-price__table tbody td{color:var(--c-body)}
.p-price__table tbody td:last-child{white-space:nowrap;color:var(--c-gold-d)}
.p-price__sub{
  max-width:68.75rem;margin:2.25rem auto .75rem;
  font-size:1.125rem;font-weight:500;letter-spacing:.08em;color:var(--c-ink);
}
.p-price__sub::before{
  content:"";display:inline-block;width:.875rem;height:1px;margin-right:.75rem;
  vertical-align:.3em;background:var(--c-gold-l);
}
.p-price__note{
  max-width:68.75rem;margin:1.5rem auto 0;
  font-size:.875rem;letter-spacing:.05em;line-height:1.95;color:var(--c-body);
}
.p-price__links{display:flex;justify-content:center;gap:2.5rem;margin-top:2.5rem}
.p-price__link{
  display:inline-flex;align-items:center;gap:.875rem;
  padding-bottom:.375rem;border-bottom:1px solid var(--c-gold);
  font-size:.9375rem;letter-spacing:.08em;color:var(--c-ink);transition:color .3s;
}
.p-price__link .c-arw{color:var(--c-gold-d)}
.p-price__link:hover{color:var(--c-gold-d)}

/* ---------- よくある質問 ---------- */
.p-faq{background:var(--bg-pink);padding:6.875rem 0 6.25rem}
.p-faq__list{max-width:62.5rem;margin:3.75rem auto 0;display:grid;gap:1rem}
.p-faq__item{background:#fff;border-radius:.5rem;overflow:hidden}
.p-faq__q{
  display:flex;align-items:flex-start;gap:1.125rem;
  padding:1.625rem 4.375rem 1.625rem 2rem;position:relative;
  font-size:1.0625rem;font-weight:500;letter-spacing:.06em;line-height:1.6;color:var(--c-ink);
  cursor:pointer;list-style:none;
}
.p-faq__q::-webkit-details-marker{display:none}
.p-faq__mark{
  flex:none;width:1.75rem;height:1.75rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#D6BB77,#BE9236);color:#fff;
  font-family:var(--f-en);font-size:.875rem;font-weight:600;line-height:1;
}
.p-faq__mark--a{background:var(--c-dark)}
.p-faq__qt{flex:1;min-width:0;padding-top:.0625rem}
.p-faq__toggle{
  position:absolute;right:2rem;top:2.0625rem;width:.875rem;height:.875rem;
}
.p-faq__toggle::before,.p-faq__toggle::after{
  content:"";position:absolute;left:0;top:50%;width:100%;height:1px;
  background:var(--c-gold-d);transition:transform .3s;
}
.p-faq__toggle::after{transform:rotate(90deg)}
.p-faq__item[open] .p-faq__toggle::after{transform:rotate(0)}
.p-faq__a{
  display:flex;align-items:flex-start;gap:1.125rem;
  padding:0 2rem 1.875rem;
}
.p-faq__a p{font-size:.9375rem;letter-spacing:.05em;line-height:2;color:var(--c-body)}

/* ---------- 大切にしていること ---------- */
.p-closing{background:var(--bg-beige);padding:5.625rem 0 5.625rem;text-align:center}
.p-closing__leaf{width:1.5rem;margin:0 auto .75rem}
.p-closing__ttl{font-size:1.75rem;font-weight:500;letter-spacing:.12em;line-height:1.5;color:var(--c-ink)}
.p-closing__text{
  margin-top:1.75rem;text-align:left;
  font-size:1rem;letter-spacing:.06em;line-height:2.15;color:var(--c-body);
}

/* ---------- 原稿の自由セクション ---------- */
.p-free{padding:5.625rem 0 5rem}
.p-free .c-shead{margin-bottom:2.5rem}
.p-free__body{display:grid;gap:1.25rem}
.p-free__ttl{
  margin-top:.625rem;font-size:1.1875rem;font-weight:500;letter-spacing:.06em;line-height:1.6;color:var(--c-ink);
}
.p-free__ttl::before{
  content:"";display:inline-block;width:.875rem;height:1px;margin-right:.75rem;vertical-align:.35em;
  background:var(--c-gold-l);
}
.p-free__text{font-size:1rem;letter-spacing:.06em;line-height:2.1;color:var(--c-body)}
.p-free__list{display:grid;gap:.625rem}
.p-free__list li{
  position:relative;padding-left:1.25rem;
  font-size:.9375rem;letter-spacing:.05em;line-height:1.95;color:var(--c-body);
}
.p-free__list li::before{
  content:"";position:absolute;left:0;top:.875rem;width:.4375rem;height:.4375rem;border-radius:50%;
  background:var(--c-gold-l);
}

/* ---------- 関連メニュー ---------- */
.p-related{padding:6.25rem 0 6.875rem}
.p-related__list{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem 1.5rem;
  max-width:68.75rem;margin:3.125rem auto 3.75rem;
}
/* 一覧へ戻るボタン：ラベルが長いので折り返させない */
.p-related .c-btn{width:auto;min-width:18.75rem;padding-inline:2.25rem;white-space:nowrap}

/* ==========================================================================
   四層ページ SP
   ========================================================================== */
@media (max-width:899px){

  .p-sec__sub{margin-top:1rem;font-size:.9375rem;text-align:left}

  .p-dhero{display:flex;flex-direction:column;padding:7.5rem 0 3.125rem}
  /* column-reverse だと、文字がフォント差し替えで伸びたときに上の写真が動いてしまう。
     並び順は order で作り、伸びる方向を下だけにする。 */
  .p-dhero__body{flex-direction:column;align-items:center;gap:1.75rem;margin-top:1.75rem}
  .p-dhero__ph{order:-1}
  .p-dhero__text{max-width:none;width:100%}
  .p-dhero__parent{font-size:.8125rem}
  .p-dhero__num{font-size:1.0625rem}
  .p-dhero__num::after{width:1.25rem;margin-left:.625rem}
  .p-dhero__title{margin-top:.625rem;font-size:2rem;letter-spacing:.08em}
  /* 代替フォント表示中に1行→2行へ変わるページがあるため、高さを先に確保する */
  .p-dhero__title.is-2line{min-height:2.7em}
  .p-dhero__catch{margin-top:1rem;font-size:1.0625rem;line-height:1.65}
  .p-dhero__lead{margin-top:.875rem;font-size:.9375rem;line-height:2}
  .p-dhero__btns{margin-top:1.75rem;gap:.625rem}
  .p-dhero__btns > a{flex:1;padding:0;height:2.875rem;font-size:.875rem}
  .p-dhero__ph{width:12.5rem;height:12.5rem;margin-inline:auto;outline-offset:.4375rem}

  .p-change{padding:3.75rem 0 3.125rem}
  .p-change__list{grid-template-columns:1fr;gap:1rem;margin-top:2rem}
  .p-change__item{padding:2.5rem 1.375rem 1.625rem}
  .p-change__num{left:1.375rem;top:1.25rem;font-size:1.75rem}
  .p-change__ttl{margin-top:1rem;font-size:1.0625rem}
  .p-change__text{margin-top:.75rem;font-size:.875rem;line-height:1.9}

  .p-rec{padding-bottom:3.75rem}
  .p-rec__box{padding:2rem 1.5rem 2.25rem}
  .p-rec__ttl{font-size:1.125rem;letter-spacing:.06em}
  .p-rec__ttl::after{margin-top:.875rem}
  .p-rec__list{margin-top:1.5rem;gap:.75rem}
  .p-rec__list li{padding-left:1.875rem;font-size:.9375rem;line-height:1.75}
  .p-rec__list li::before{width:1.125rem;height:1.125rem;top:.375rem}
  .p-rec__list li::after{left:.3125rem;top:.75rem;width:.4375rem;height:.1875rem}

  .p-reason{padding:3.75rem 0 3.125rem}
  .p-reason__list{margin-top:2rem;gap:1rem}
  .p-reason__item{flex-direction:column;gap:1rem;padding:1.625rem 1.375rem 1.75rem}
  .p-reason__num{width:auto;display:flex;align-items:baseline;gap:.625rem;font-size:1.75rem}
  .p-reason__num span{margin:0;font-size:.5625rem}
  .p-reason__ttl{font-size:1.0625rem}
  .p-reason__text{margin-top:.75rem;font-size:.875rem;line-height:1.95}

  .p-flow{padding:3.75rem 0 3.125rem}
  .p-flow__list{margin-top:2rem}
  .p-flow__list::before{left:1.625rem;top:1rem;bottom:1.5rem}
  .p-flow__item{gap:1.125rem;padding-bottom:1.75rem}
  .p-flow__step{width:3.25rem;height:3.25rem;font-size:1.0625rem}
  .p-flow__step span{font-size:.4375rem}
  .p-flow__body{padding-top:.25rem}
  .p-flow__ttl{font-size:1rem;line-height:1.55}
  .p-flow__text{margin-top:.5rem;font-size:.875rem;line-height:1.9}

  .p-risk{padding:3.75rem 0 3.125rem}
  .p-risk__cols{grid-template-columns:1fr;gap:1rem;margin-top:2rem}
  .p-risk__group{padding:1.625rem 1.375rem 1.75rem}
  .p-risk__ttl{font-size:1.0625rem;padding-bottom:.75rem}
  .p-risk__dl{margin-top:1.125rem}
  .p-risk__dl dt{font-size:.8125rem}
  .p-risk__dl dd{margin-bottom:.875rem;font-size:.875rem;line-height:1.85}
  .p-risk__note{margin-top:1.25rem;padding:1.375rem 1.375rem 1.5rem}
  .p-risk__note-ttl{font-size:.9375rem}
  .p-risk__note p{font-size:.875rem;line-height:1.9}

  .p-price{padding:3.75rem 0 3.125rem}
  .p-price__scroll{
    margin:2rem -1.3125rem 0;padding-inline:1.3125rem;
    -webkit-overflow-scrolling:touch;
  }
  .p-price__table{min-width:33.75rem;font-size:.875rem}
  .p-price__table th,.p-price__table td{padding:.875rem 1rem}
  .p-price__note{margin-top:1.125rem;font-size:.8125rem;line-height:1.85}
  .p-price__links{flex-direction:column;align-items:flex-start;gap:1rem;margin-top:1.75rem}
  .p-price__link{font-size:.875rem}

  .p-faq{padding:3.75rem 0 3.125rem}
  .p-faq__list{margin-top:2rem;gap:.75rem}
  .p-faq__q{gap:.75rem;padding:1.125rem 2.75rem 1.125rem 1.125rem;font-size:.9375rem;line-height:1.55}
  .p-faq__mark{width:1.5rem;height:1.5rem;font-size:.75rem}
  .p-faq__toggle{right:1.125rem;top:1.5rem;width:.75rem;height:.75rem}
  .p-faq__a{gap:.75rem;padding:0 1.125rem 1.25rem}
  .p-faq__a p{font-size:.875rem;line-height:1.9}

  .p-closing{padding:3.125rem 0 3.25rem}
  .p-closing__ttl{font-size:1.1875rem;letter-spacing:.08em}
  .p-closing__text{margin-top:1.125rem;font-size:.9375rem;line-height:2.05}

.p-free{padding:3.125rem 0 3rem}
  .p-free .c-shead{margin-bottom:1.75rem}
  .p-free .c-shead__jp{font-size:1.5rem;letter-spacing:.08em}
  .p-free__body{gap:1rem}
  .p-free__ttl{font-size:1.0625rem}
  .p-free__text{font-size:.9375rem;line-height:2}
  .p-free__list li{font-size:.875rem;line-height:1.9}

  .p-related{padding:3.125rem 0 3.75rem}
  .p-related__list{grid-template-columns:1fr;gap:.625rem;margin:1.75rem 0 2.25rem}
}

/* ==========================================================================
   二層ページ（医院紹介・ドクター紹介・アクセス・料金表・モニター募集ほか）
   ========================================================================== */

/* ---------- ヒーロー ---------- */
.p-ihero{
  position:relative;overflow:hidden;padding:11.25rem 0 4.375rem;
  background:linear-gradient(180deg,#F4F2EE 0%, var(--bg-beige) 100%);
}
.p-ihero__bg{
  position:absolute;right:0;top:0;width:53.125rem;height:100%;
  object-fit:cover;object-position:center 35%;z-index:0;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.2) 18%,rgba(0,0,0,.8) 52%,#000 78%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.2) 18%,rgba(0,0,0,.8) 52%,#000 78%);
}
.p-ihero > .l-inner{position:relative;z-index:1}
.p-ihero__title{
  margin-top:3.125rem;font-size:3.25rem;font-weight:500;letter-spacing:.14em;line-height:1.3;color:var(--c-ink);
}
.p-ihero__en{
  margin-top:.75rem;font-family:var(--f-en);font-size:.875rem;letter-spacing:.24em;color:var(--c-gold-d);
}

/* ---------- リード ---------- */
.p-ilead{padding:5rem 0 0}
.p-ilead__catch{
  font-size:1.75rem;font-weight:500;letter-spacing:.1em;line-height:1.7;color:var(--c-gold-d);
}
.p-ilead__text{
  margin-top:1.25rem;font-size:1.0625rem;letter-spacing:.06em;line-height:2.15;color:var(--c-body);
}
.p-ilead__catch + .p-ilead__text{margin-top:1.75rem}

/* ---------- 本文 ---------- */
.p-ibody{padding:4.375rem 0 6.25rem}
.p-ibody__ph{margin-bottom:4.375rem;border-radius:.5rem;overflow:hidden}
.p-ibody__ph img{width:100%;height:25rem;object-fit:cover}

.p-iblock{padding-top:3.125rem}
.p-iblock + .p-iblock{margin-top:1.25rem;border-top:1px solid var(--line-soft)}
.p-iblock__ttl{
  position:relative;padding-left:1.875rem;margin-bottom:1.75rem;
  font-size:1.5rem;font-weight:500;letter-spacing:.08em;line-height:1.55;color:var(--c-ink);
}
.p-iblock__ttl::before{
  content:"";position:absolute;left:0;top:.75rem;
  width:1rem;height:1rem;border-radius:50%;
  background:linear-gradient(135deg,#D6BB77,#BE9236);
}
.p-iblock__link{
  display:inline-flex;align-items:center;gap:.875rem;margin-top:1.5rem;
  padding-bottom:.375rem;border-bottom:1px solid var(--c-gold);
  font-size:.9375rem;letter-spacing:.08em;color:var(--c-ink);transition:color .3s;
}
.p-iblock__link .c-arw{color:var(--c-gold-d)}
.p-iblock__link:hover{color:var(--c-gold-d)}

/* ---------- 準備中 ---------- */
.p-notice{padding:4.375rem 0 1.875rem}
.p-notice__box{
  padding:3.75rem 2.5rem 3.125rem;text-align:center;
  background:var(--bg-beige);border-radius:.5rem;
}
.p-notice__leaf{width:1.5rem;margin:0 auto 1rem}
.p-notice__text{
  margin-bottom:2.25rem;
  font-size:1.125rem;letter-spacing:.1em;line-height:1.9;color:var(--c-body);
}

/* ---------- 二層ページの院内写真セクション ---------- */
.p-igallery{padding:5.625rem 0 1.25rem;overflow:hidden}
.p-igallery .c-shead{margin-bottom:3.125rem}

/* ---------- その他のご案内 ---------- */
.p-ilinks{background:var(--bg-soft);padding:5.625rem 0 6.25rem}
.p-ilinks__list{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;
  max-width:68.75rem;margin:3.125rem auto 0;
}
.p-ilinks__list a{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  height:4.375rem;padding:0 1.875rem;
  background:#fff;border:1px solid var(--line-soft);border-radius:.5rem;
  font-size:1rem;letter-spacing:.08em;color:var(--c-ink);
  transition:box-shadow .3s,transform .3s,border-color .3s;
}
.p-ilinks__list a:hover{
  box-shadow:0 .75rem 2rem rgba(60,40,30,.1);transform:translateY(-2px);border-color:var(--c-gold-l);
}
.p-ilinks__list .c-arw{color:var(--c-gold-d)}

/* ==========================================================================
   お悩みから探す（一覧ページ）
   ========================================================================== */
.p-tlist{padding:5.625rem 0 6.875rem}
.p-tlist__grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;
  margin:3.75rem 0 3.75rem;
}
.p-tcard{
  position:relative;padding:2.375rem 2.25rem 2.125rem;
  background:#fff;border:1px solid var(--line-soft);border-radius:.5rem;
  transition:box-shadow .3s,border-color .3s;
}
.p-tcard:hover{box-shadow:0 .75rem 2rem rgba(60,40,30,.09);border-color:var(--c-gold-l)}
.p-tcard__num{
  font-family:var(--f-en);font-size:1.125rem;font-weight:500;letter-spacing:.1em;line-height:1;
  color:var(--c-gold-d);
}
.p-tcard__ttl{
  margin-top:.75rem;font-size:1.25rem;font-weight:500;letter-spacing:.06em;line-height:1.55;color:var(--c-ink);
}
.p-tcard__text{margin-top:.875rem;font-size:.9375rem;letter-spacing:.05em;line-height:1.95;color:var(--c-body)}
.p-tcard__links{display:flex;flex-wrap:wrap;gap:.625rem;margin-top:1.375rem}
.p-tcard__link{
  display:inline-flex;align-items:center;gap:.625rem;
  height:2.375rem;padding:0 1.125rem;
  background:var(--bg-pink);border:1px solid var(--line);border-radius:1.1875rem;
  font-size:.875rem;letter-spacing:.05em;color:var(--c-ink);
  transition:background .3s,border-color .3s,color .3s;
}
.p-tcard__link .c-arw{color:var(--c-gold-d);transition:color .3s}
.p-tcard__link:hover{background:linear-gradient(100deg,#D6BB77,#BE9236);border-color:transparent;color:#fff}
.p-tcard__link:hover .c-arw{color:#fff}

/* ==========================================================================
   施術メニュー一覧（二層）
   ========================================================================== */
.p-mindex{padding:5rem 0 6.875rem}
.p-mgroup{
  padding:3.125rem 3.125rem 2.875rem;
  background:#fff;border:1px solid var(--line-soft);border-radius:.5rem;
}
.p-mgroup + .p-mgroup{margin-top:1.5rem}
.p-mgroup__head{display:flex;align-items:baseline;gap:1.375rem}
.p-mgroup__num{
  font-family:var(--f-en);font-size:1.5rem;font-weight:500;letter-spacing:.08em;line-height:1;
  color:var(--c-gold-d);
}
.p-mgroup__ttl{font-size:1.875rem;font-weight:500;letter-spacing:.1em;line-height:1.4;color:var(--c-ink)}
.p-mgroup__ttl a{display:inline-flex;align-items:center;gap:1rem;transition:color .3s}
.p-mgroup__ttl a:hover{color:var(--c-gold-d)}
.p-mgroup__ttl .c-arw{color:var(--c-gold-d)}
.p-mgroup__text{
  margin-top:1.25rem;font-size:1rem;letter-spacing:.05em;line-height:2;color:var(--c-body);
}
.p-mgroup__list{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.875rem}
.p-mgroup__list .p-pill{
  width:auto;height:3rem;padding:0 1.375rem;gap:1rem;
  background:var(--bg-beige);border-radius:1.5rem;
}
.p-mgroup__list .p-pill__label{font-size:.9375rem}
.p-mgroup__more{
  display:inline-flex;align-items:center;gap:.875rem;margin-top:1.875rem;
  padding-bottom:.375rem;border-bottom:1px solid var(--c-gold);
  font-size:.9375rem;letter-spacing:.08em;color:var(--c-ink);transition:color .3s;
}
.p-mgroup__more .c-arw{color:var(--c-gold-d)}
.p-mgroup__more:hover{color:var(--c-gold-d)}
.p-mindex__note{
  max-width:68.75rem;margin:2.5rem auto 3.125rem;
  font-size:.9375rem;letter-spacing:.05em;line-height:2;color:var(--c-body);
}

/* ==========================================================================
   二層ページ SP
   ========================================================================== */
@media (max-width:899px){

  .p-ihero{padding:7.5rem 0 2.5rem}
  .p-ihero__bg{
    width:100%;height:100%;opacity:.2;object-position:center 30%;
    -webkit-mask-image:none;mask-image:none;
  }
  .p-ihero__title{margin-top:1.75rem;font-size:2rem;letter-spacing:.1em}
  .p-ihero__en{margin-top:.5rem;font-size:.6875rem;letter-spacing:.2em}

  .p-ilead{padding:2.5rem 0 0}
  .p-ilead__catch{font-size:1.25rem;line-height:1.65}
  .p-ilead__text{margin-top:.875rem;font-size:.9375rem;line-height:2.05}
  .p-ilead__catch + .p-ilead__text{margin-top:1.25rem}

  .p-ibody{padding:2.5rem 0 3.75rem}
  .p-ibody__ph{margin-bottom:2.25rem}
  .p-ibody__ph img{height:13.75rem}
  .p-iblock{padding-top:2rem}
  .p-iblock + .p-iblock{margin-top:1rem}
  .p-iblock__ttl{padding-left:1.375rem;margin-bottom:1.125rem;font-size:1.1875rem;line-height:1.5}
  .p-iblock__ttl::before{width:.75rem;height:.75rem;top:.5625rem}
  .p-iblock__link{margin-top:1.125rem;font-size:.875rem}

  .p-notice{padding:2.5rem 0 1.25rem}
  .p-notice__box{padding:2.25rem 1.375rem 2rem}
  .p-notice__text{margin-bottom:1.75rem;font-size:.9375rem;line-height:1.85}

  .p-igallery{padding:3.125rem 0 .625rem}
  .p-igallery .c-shead{margin-bottom:1.75rem}
  .p-ilinks{padding:3.125rem 0 3.75rem}
  .p-ilinks__list{grid-template-columns:1fr;gap:.625rem;margin-top:1.75rem}
  .p-ilinks__list a{height:3.5rem;padding:0 1.25rem;font-size:.9375rem}

  .p-tlist{padding:3.125rem 0 3.75rem}
  .p-tlist__grid{grid-template-columns:1fr;gap:1rem;margin:2rem 0 2.25rem}
  .p-tcard{padding:1.625rem 1.375rem 1.5rem}
  .p-tcard__num{font-size:1rem}
  .p-tcard__ttl{margin-top:.5rem;font-size:1.0625rem}
  .p-tcard__text{margin-top:.625rem;font-size:.875rem;line-height:1.9}
  .p-tcard__links{gap:.5rem;margin-top:1rem}
  .p-tcard__link{height:2.125rem;padding:0 .875rem;gap:.5rem;font-size:.8125rem}

  .p-mindex{padding:2.5rem 0 3.75rem}
  .p-mgroup{padding:1.75rem 1.375rem 1.625rem}
  .p-mgroup + .p-mgroup{margin-top:1rem}
  .p-mgroup__head{gap:.875rem}
  .p-mgroup__num{font-size:1.125rem}
  .p-mgroup__ttl{font-size:1.375rem;letter-spacing:.06em}
  .p-mgroup__ttl a{gap:.625rem}
  .p-mgroup__text{margin-top:.875rem;font-size:.9375rem;line-height:1.95}
  .p-mgroup__list{gap:.5rem;margin-top:1.25rem}
  .p-mgroup__list .p-pill{width:100%;height:3rem;padding:0 1.125rem}
  .p-mgroup__more{margin-top:1.25rem;font-size:.875rem}
  .p-mindex__note{margin:1.75rem 0 2rem;font-size:.875rem;line-height:1.9}
}

/* ==========================================================================
   追従ヘッダー／メガメニュー／ハンバーガー／SP追従CTA／地図
   ========================================================================== */

/* 本文へスキップ（キーボード操作用） */
.c-skip{
  position:absolute;left:.75rem;top:-3.5rem;z-index:120;
  padding:.625rem 1.125rem;border-radius:.25rem;
  background:var(--c-dark);color:#fff;font-size:.875rem;
  transition:top .2s;
}
.c-skip:focus{top:.75rem}

/* ---------- 追従ヘッダー ---------- */
/* 固定にしてヒーローに重ねる。sticky だと flow に高さを取るため、
   追従で縮んだ瞬間に本文が 52px ずり上がって CLS になっていた。 */
.l-header{position:fixed;top:0;left:0;right:0;z-index:60;padding:.6875rem 1.5rem 0;transition:padding .3s}
.l-header__bar{transition:height .3s,background .3s,box-shadow .3s,border-radius .3s}

/* 追従してもカンプと同じ見た目のまま。背景は「透かし」で、
   下のコンテンツがうっすら透けて見える（プロトタイプと同じ）。 */
.l-header.is-stuck .l-header__bar{
  background:rgba(249,244,236,.72);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:0 .125rem .75rem rgba(60,40,20,.07);
}

/* ---------- グローバルナビ ---------- */
.l-nav__item{position:relative}
.l-nav__link{
  display:flex;align-items:center;gap:.375rem;
  padding:.75rem 0;font-size:.875rem;letter-spacing:.08em;transition:color .3s;
}
.l-nav__link:hover{color:var(--c-gold-d)}
.l-nav__caret{
  width:.3125rem;height:.3125rem;flex:none;
  border-right:1px solid currentColor;border-bottom:1px solid currentColor;
  transform:translateY(-.125rem) rotate(45deg);transition:transform .3s;
}
.l-nav__item.is-open .l-nav__link{color:var(--c-gold-d)}
.l-nav__item.is-open .l-nav__caret{transform:translateY(.0625rem) rotate(225deg)}

/* ---------- メガメニュー ---------- */
.l-mega{
  /* 画面中央基準にして、どの項目から開いても左右にはみ出さない。
     ナビ項目とパネルのあいだの隙間は、パネル自身の透明な上余白で橋渡しする
     （橋が無いと、マウスを下ろす途中で閉じてしまいクリックできない）。 */
  position:fixed;left:50%;z-index:70;
  top:calc(var(--bc-mega-top,7.5rem) - var(--bc-mega-bridge,2rem));
  padding-top:var(--bc-mega-bridge,2rem);
  transform:translate(-50%,.5rem);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .25s,transform .25s,visibility .25s;
}
.l-nav__item.is-open .l-mega{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
/* 項目とパネルのあいだの透明な橋。ここを通れば閉じない。
   パネルは JS で項目の真下に寄せるので、橋はパネル幅ぶんで足りる。 */
.l-mega::before{
  content:"";position:absolute;left:0;right:0;top:0;
  height:var(--bc-mega-bridge,2rem);
}
.l-mega__inner{
  display:flex;flex-wrap:wrap;gap:1.75rem 2.5rem;
  width:max-content;max-width:min(76rem,calc(100vw - 3rem));
  margin-top:0;padding:2.25rem 2.5rem 2rem;
  background:rgba(255,255,255,.97);backdrop-filter:blur(10px);
  border:1px solid var(--line-soft);border-radius:.5rem;
  box-shadow:0 1rem 2.5rem rgba(60,40,20,.16);
}
.l-mega--wide .l-mega__inner{width:auto;max-width:min(76rem,calc(100vw - 3rem))}
.l-mega__col{min-width:10rem;flex:0 1 auto}
.l-mega__head{
  display:inline-flex;align-items:center;gap:.625rem;
  padding-bottom:.625rem;margin-bottom:.875rem;
  border-bottom:1px solid var(--line-soft);
  font-size:1rem;font-weight:500;letter-spacing:.06em;color:var(--c-ink);
  transition:color .3s;white-space:nowrap;
}
.l-mega__head .c-arw{color:var(--c-gold-d)}
.l-mega__head:hover{color:var(--c-gold-d)}
.l-mega__head--plain{color:var(--c-gold-d);font-size:.8125rem;letter-spacing:.12em}
.l-mega__list{display:grid;gap:.5rem}
.l-mega__list a{
  display:block;position:relative;padding-left:.875rem;
  font-size:.875rem;letter-spacing:.05em;line-height:1.6;color:var(--c-body);
  transition:color .3s;
}
.l-mega__list a::before{
  content:"";position:absolute;left:0;top:.5625rem;
  width:.3125rem;height:.3125rem;border-radius:50%;background:var(--c-gold-l);
}
.l-mega__list a:hover{color:var(--c-gold-d)}
.l-mega__all{
  flex:0 0 100%;width:0;min-width:100%;display:inline-flex;align-items:center;justify-content:center;gap:.875rem;
  margin-top:.25rem;padding-top:1.125rem;border-top:1px solid var(--line-soft);
  font-size:.875rem;letter-spacing:.08em;color:var(--c-ink);transition:color .3s;
}
.l-mega__all .c-arw{color:var(--c-gold-d)}
.l-mega__all:hover{color:var(--c-gold-d)}

/* ---------- ハンバーガー ---------- */
.l-burger span{transition:transform .3s,opacity .3s}
.l-burger.is-open span:nth-child(1){transform:translateY(.4375rem) rotate(30deg)}
.l-burger.is-open span:nth-child(2){opacity:0}
.l-burger.is-open span:nth-child(3){transform:translateY(-.4375rem) rotate(-30deg)}

html.is-drawer-open{overflow:hidden}

.l-drawer__nav{margin-top:1.25rem;border-top:1px solid var(--line)}
.l-drawer__row{position:relative;border-bottom:1px solid var(--line)}
.l-drawer__link{
  display:block;padding:1.0625rem 3.75rem 1.0625rem .25rem;
  font-size:1.0625rem;letter-spacing:.08em;color:var(--c-ink);
}
.l-drawer__toggle{
  position:absolute;right:0;top:.5rem;width:2.875rem;height:2.875rem;
  display:flex;align-items:center;justify-content:center;
}
.l-drawer__toggle::before,
.l-drawer__toggle::after{
  content:"";position:absolute;width:.875rem;height:1px;background:var(--c-gold-d);
  transition:transform .3s;
}
.l-drawer__toggle::after{transform:rotate(90deg)}
.l-drawer__toggle.is-open::after{transform:rotate(0)}
.l-drawer__sub{padding:.25rem 0 1.125rem .25rem}
.l-drawer__sub-head{
  display:inline-flex;align-items:center;gap:.625rem;
  margin:.625rem 0 .5rem;font-size:.9375rem;letter-spacing:.06em;color:var(--c-gold-d);
}
.l-drawer__sub-head--plain{color:var(--c-body);font-size:.8125rem;letter-spacing:.1em;opacity:.8}
.l-drawer__sub-list{display:grid;gap:.125rem;margin-bottom:.875rem}
.l-drawer__sub-list a{
  display:block;position:relative;padding:.4375rem 0 .4375rem 1rem;
  font-size:.875rem;letter-spacing:.05em;color:var(--c-body);
}
.l-drawer__sub-list a::before{
  content:"";position:absolute;left:0;top:1.0625rem;
  width:.3125rem;height:.3125rem;border-radius:50%;background:var(--c-gold-l);
}
.l-drawer__info{padding:1.5rem .25rem .5rem;text-align:center}
.l-drawer__tel{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--f-en);font-size:1.375rem;font-weight:600;letter-spacing:.02em;color:var(--c-ink);
}
.l-drawer__hours{margin-top:.375rem;font-size:.75rem;letter-spacing:.05em;color:var(--c-body)}

/* ---------- 地図 ---------- */
.p-map{padding:5.625rem 0 4.375rem}
.p-map__body{display:grid;grid-template-columns:1fr 18.75rem;gap:1.5rem;margin-top:3.125rem}
.p-map__frame{
  width:100%;height:100%;min-height:25rem;border:0;
  border-radius:.5rem;background:var(--bg-beige);display:block;
}
.p-map__addr{margin-top:1.5rem;font-size:.9375rem;letter-spacing:.05em;color:var(--c-body)}
.p-map__review{
  align-self:start;padding:1.75rem 1.625rem;
  background:#fff;border:1px solid var(--line-soft);border-radius:.5rem;
}
.p-map__review-head{
  display:flex;align-items:center;gap:.5rem;
  font-size:.9375rem;font-weight:500;letter-spacing:.05em;color:var(--c-ink);
}
.p-map__stars{margin-top:.875rem;font-size:1.125rem;letter-spacing:.1em;color:var(--ph-l)}
.p-map__stars .is-on{color:#F0B400}
.p-map__score{margin-top:.25rem;font-size:.875rem;color:var(--c-body)}
.p-map__score b{font-family:var(--f-en);font-size:1.625rem;font-weight:600;margin-right:.375rem;color:var(--c-ink)}
.p-map__review-note{
  margin-top:.75rem;font-size:.8125rem;letter-spacing:.04em;line-height:1.8;color:var(--c-body);
}
.p-map__review-link{
  display:inline-flex;align-items:center;gap:.75rem;margin-top:1.125rem;
  padding-bottom:.3125rem;border-bottom:1px solid var(--c-gold);
  font-size:.875rem;letter-spacing:.06em;color:var(--c-ink);transition:color .3s;
}
.p-map__review-link .c-arw{color:var(--c-gold-d)}
.p-map__review-link:hover{color:var(--c-gold-d)}

/* 地図に重ねる口コミバッジ（評価が入るまでは出力されない） */
.p-map__review--overlay{
  position:absolute;left:1.25rem;bottom:1.25rem;z-index:1;
  width:16.25rem;padding:1.125rem 1.25rem 1.25rem;
  box-shadow:0 .75rem 2rem rgba(60,40,20,.18);
}
.p-map__review--overlay .p-map__stars{margin-top:.625rem;font-size:1rem}
.p-map__review--overlay .p-map__review-link{margin-top:.875rem}

/* ---------- SP：追従する予約ボタン ---------- */
.l-spcta{display:none}

/* ==========================================================================
   SP
   ========================================================================== */
@media (max-width:899px){

  .l-header{position:fixed;top:0;left:0;right:0;padding:.5rem .625rem 0}
  .l-header.is-stuck{padding-top:0}
  .l-header.is-stuck .l-header__bar{height:3.5rem;border-radius:0}
  .l-header.is-stuck .l-header__brand{top:.5rem}
  .l-header.is-stuck .l-burger{top:.625rem}

  .l-mega{display:none}

  .p-map{padding:3.125rem 0 2.5rem}
  .p-map__body{grid-template-columns:1fr;gap:1rem;margin-top:1.75rem}
  .p-map__frame{min-height:15.625rem}
  .p-map__addr{margin-top:1.125rem;font-size:.875rem}
  .p-map__review{padding:1.25rem 1.25rem 1.375rem}
  .p-map__review--overlay{left:.75rem;right:.75rem;bottom:.75rem;width:auto}

  /* 追従CTA */
  .l-spcta{
    position:fixed;left:0;right:0;bottom:0;z-index:55;
    display:grid;grid-template-columns:1fr 1fr;
    gap:.4375rem;padding:.5rem .625rem calc(.5rem + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.94);backdrop-filter:blur(8px);
    box-shadow:0 -.25rem 1rem rgba(60,40,20,.12);
  }
  .l-spcta a{
    display:flex;align-items:center;justify-content:center;gap:.5rem;
    height:2.75rem;border-radius:1.375rem;
    font-size:.9375rem;font-weight:500;letter-spacing:.08em;line-height:1;text-align:center;
  }
  .l-spcta a span{display:block}
  .l-spcta a.l-spcta__tel{display:none}   /* 電話は追従バーには出さない（カンプは2ボタン） */
  .l-spcta__line{background:var(--green);color:#fff}
  .l-spcta__web{background:linear-gradient(100deg,var(--c-gold-l),var(--c-gold-d));color:#fff}
  /* 追従CTAの分だけ余白を足して、フッターが隠れないようにする */
  body{padding-bottom:3.875rem}
  html.is-drawer-open .l-spcta{display:none}

  /* ⑤ 本文まわりは 16px（副次的な項目も 15px 以上）にそろえる */
  .p-feature__text,
  .p-mfeat__text,
  .p-iblock__text,
  .p-ilead__text{font-size:1rem;line-height:1.95}
  .p-feature__card-text,
  .p-trouble__link,
  .p-pill__label,
  .p-mcard__text,
  .p-column__ttl,
  .p-news__ttl,
  .l-footer__addr,
  .l-footer__meta,
  .l-footer__col-head,
  .p-feature__count-jp,
  .p-access__dl,
  .p-map__addr,
  .p-notice__text,
  .p-related__list a,
  .p-ilinks__list a{font-size:.9375rem}
  .l-footer__col li a,
  .l-footer__list a{font-size:.9375rem}
  .c-btn,
  .c-btn-line,
  .c-btn-gold{font-size:.9375rem}
}

/* ==========================================================================
   どのモニターでも破綻させないための調整
   ========================================================================== */

/* ヒーロー：デザインの比率を保ちつつ、画面より高くならないようにする。
   コピーとバッジは下端から配置するので、高さが変わっても位置関係が崩れない。 */
.p-hero{height:min(64.0625rem, max(40rem, 100svh))}
.p-hero > .p-hero__body{min-height:0}
.p-hero__copy{top:auto;bottom:2rem}

/* 横長すぎる画面ではヒーロー動画の顔位置が上に寄るので、少し引き下げる */
@media (min-aspect-ratio:2/1){
  .p-hero__bg{object-position:center 34%}
}
/* 縦長の画面（タブレット縦など）では逆に寄せる */
@media (min-width:900px) and (max-aspect-ratio:4/5){
  .p-hero__bg{object-position:center 48%}
}

/* 超ワイドでも本文が広がりすぎないよう、全幅バンドの中身は中央寄せのまま維持 */
@media (min-width:120rem){
  .l-header{padding-inline:clamp(1.5rem,4vw,6rem)}
}

/* グローバルナビ：項目が増えても折り返さず、幅の狭いPCでは詰める */
.l-nav__list{flex-wrap:nowrap}
@media (min-width:900px) and (max-width:1200px){
  .l-nav__list{gap:1.125rem}
  .l-nav__link{font-size:.8125rem}
  .l-header__tel-label{display:none}
}

/* 画像は常に枠内に収める（縦横比の破綻防止） */
.p-ihero__bg,.p-dhero__bg,.p-phero__bg,.p-menu__bg{max-width:none}
.p-ibody__ph img,.p-gallery__item,.p-mcard__thumb img,.p-pill__thumb img{object-fit:cover}

@media (max-width:899px){
  /* SP ヒーローも画面内に収める */
  .p-hero{height:min(41.6875rem, max(30rem, 100svh - 3.5rem))}
  .p-hero__copy{top:auto;bottom:9.0625rem}
}

/* ==========================================================================
   アニメーション
   ・JS が使えないときは何も隠さない（has-reveal が付いたときだけ効かせる）
   ・prefers-reduced-motion では全て無効
   ・動かすのは transform と opacity だけ（レイアウトを揺らさない）
   ========================================================================== */

:root{
  --rv-ease:cubic-bezier(.22,.68,.28,1);
  --rv-dur:.78s;
  --rv-shift:0px;
}

/* ---------- スクロールで現れる ---------- */
html.has-reveal [data-reveal]{
  opacity:0;
  transition:opacity var(--rv-dur) var(--rv-ease) var(--rv-delay,0ms),
             transform var(--rv-dur) var(--rv-ease) var(--rv-delay,0ms),
             filter var(--rv-dur) var(--rv-ease) var(--rv-delay,0ms);
  will-change:opacity,transform;
}
html.has-reveal [data-reveal="up"]{transform:translate3d(0,1.75rem,0)}
html.has-reveal [data-reveal="left"]{transform:translate3d(-1.5rem,0,0)}
html.has-reveal [data-reveal="pop"]{transform:translate3d(0,1.25rem,0) scale(.94)}
html.has-reveal [data-reveal].is-in{opacity:1;transform:none;filter:none}

/* 出現アニメの最終状態（transform:none）が、ホバーの動きより強く効いてしまうので、
   同じ強さで後から上書きする。これを入れないとカードが浮かない。 */
html.has-reveal [data-reveal].is-in.p-menu__custom:hover{transform:translateY(-.375rem)}
html.has-reveal [data-reveal].is-in.p-feature__card:hover,
html.has-reveal [data-reveal].is-in.p-case__item:hover,
html.has-reveal [data-reveal].is-in.p-column__item:hover{transform:translateY(-.25rem)}
html.has-reveal [data-reveal].is-in.p-pill:hover{transform:translateY(-.1875rem)}
html.has-reveal [data-reveal].is-in.p-trouble__card:hover{transform:translateY(-.1875rem)}

/* 見出しは金の光沢を一度だけ走らせる */
html.has-reveal .c-shead__jp{
  background-size:220% 100%;
  background-position:120% 0;
  transition:background-position 1.5s var(--rv-ease) .15s;
}
html.has-reveal .c-shead.is-in .c-shead__jp{background-position:0 0}
html.has-reveal .c-shead__leaf{
  transform:rotate(-24deg) scale(.7);opacity:0;
  transition:transform .9s var(--rv-ease),opacity .6s var(--rv-ease);
}
html.has-reveal .c-shead.is-in .c-shead__leaf{transform:none;opacity:1}

/* ---------- ヒーロー ---------- */
html.has-reveal .p-hero__title{--rv-delay:120ms}
html.has-reveal .p-hero__lead{--rv-delay:260ms}
html.has-reveal .p-hero__badge:nth-child(1){--rv-delay:420ms}
html.has-reveal .p-hero__badge:nth-child(2){--rv-delay:530ms}
html.has-reveal .p-hero__badge:nth-child(3){--rv-delay:640ms}

/* 動画をごくゆっくり寄せて、止まって見えないようにする */
.p-hero__bg{animation:bc-kenburns 26s ease-in-out infinite alternate}
@keyframes bc-kenburns{
  from{transform:scale(1)}
  to{transform:scale(1.06)}
}

/* バッジは常にゆっくり上下する（気づかない程度） */
/* ② 3つの円は動かさない（意味のない動きのため） */
@keyframes bc-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-.5rem)}
}
html.has-reveal .p-hero__badge{animation-play-state:paused}
html.has-reveal .p-hero__badge.is-in{animation-play-state:running}

/* スクロールを促す目印 */
.p-hero__cue{
  position:absolute;left:50%;bottom:1.75rem;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:.625rem;
  transform:translateX(-50%);
  font-family:var(--f-en);font-size:.6875rem;letter-spacing:.24em;color:rgba(255,255,255,.82);
  text-shadow:0 .0625rem .5rem rgba(60,40,20,.4);
  transition:color .3s;
}
.p-hero__cue:hover{color:#fff}
.p-hero__cue span{
  display:block;width:1px;height:3.125rem;
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0));
  overflow:hidden;
}
.p-hero__cue span::after{
  content:"";display:block;width:1px;height:1.125rem;background:#fff;
  animation:bc-cue 2.2s ease-in-out infinite;
}
@keyframes bc-cue{
  0%{transform:translateY(-1.25rem);opacity:0}
  35%{opacity:1}
  100%{transform:translateY(3.125rem);opacity:0}
}

/* ---------- 奥行き ---------- */
/* 施術メニューの背景写真は動かさない。
   動かすと帯の上端とずれて、女性の頭上に隙間ができてしまうため。 */
.p-concept__mark{
  transition:transform .2s linear;
  transform:translate3d(0,var(--rv-shift),0);
}

/* ---------- 読み進みバー ---------- */
.l-progress{
  position:fixed;left:0;top:0;z-index:80;
  width:100%;height:2px;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--c-gold-l),var(--c-gold-d));
  pointer-events:none;
}

/* ---------- 先頭へ戻る ---------- */
.l-totop{
  position:fixed;right:1.5rem;bottom:1.75rem;z-index:56;
  width:3rem;height:3rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(30,4,5,.82);backdrop-filter:blur(6px);
  box-shadow:0 .375rem 1.25rem rgba(60,40,20,.24);
  opacity:0;visibility:hidden;transform:translateY(.75rem);
  transition:opacity .35s var(--rv-ease),transform .35s var(--rv-ease),visibility .35s,background .3s;
}
.l-totop.is-on{opacity:1;visibility:visible;transform:none}
.l-totop:hover{background:var(--c-gold-d)}
.l-totop span{
  display:block;width:.625rem;height:.625rem;margin-top:.1875rem;
  border-top:1px solid #fff;border-left:1px solid #fff;transform:rotate(45deg);
  transition:transform .3s var(--rv-ease);
}
.l-totop:hover span{transform:rotate(45deg) translate(.125rem,.125rem)}

/* ==========================================================================
   マウスオーバー時の挙動
   ========================================================================== */

/* ボタン：金の光が左から右へ流れ、矢印が進む */
.c-btn{position:relative;overflow:hidden;isolation:isolate}
.c-btn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,rgba(214,187,119,0),rgba(214,187,119,.55),rgba(214,187,119,0));
  transform:translateX(-120%);
  transition:transform .8s var(--rv-ease);
}
.c-btn:hover::before{transform:translateX(120%)}
.c-btn .c-arw{transition:transform .35s var(--rv-ease)}
.c-btn:hover .c-arw{transform:translateX(.375rem)}

.c-btn-gold,.c-btn-line{transition:filter .3s,transform .3s var(--rv-ease),box-shadow .3s}
.c-btn-gold:hover,.c-btn-line:hover{transform:translateY(-2px);box-shadow:0 .5rem 1.25rem rgba(60,40,20,.22)}

/* ピル：浮いて、写真が寄って、矢印が進む */
.p-pill{transition:box-shadow .35s var(--rv-ease),transform .35s var(--rv-ease),background .3s}
.p-pill:hover{transform:translateY(-3px)}
.p-pill__thumb{overflow:hidden}
.p-pill__thumb img{transition:transform .6s var(--rv-ease)}
.p-pill:hover .p-pill__thumb img{transform:scale(1.08)}
.p-pill .c-arw{transition:transform .35s var(--rv-ease)}
.p-pill:hover .c-arw{transform:translateX(.3125rem)}

/* カード：浮いて、写真が寄って、枠が金に */
.p-case__item,.p-column__item,.p-news__item{transition:transform .4s var(--rv-ease)}
.p-case__item:hover,.p-column__item:hover{transform:translateY(-4px)}
.p-case__thumb,.p-column__thumb{overflow:hidden}
.p-case__thumb img,.p-column__thumb img{transition:transform .7s var(--rv-ease)}
.p-case__item:hover .p-case__thumb img,
.p-column__item:hover .p-column__thumb img{transform:scale(1.06)}
.p-case__ttl,.p-column__ttl,.p-news__ttl{transition:color .3s}
.p-case__item:hover .p-case__ttl,
.p-column__item:hover .p-column__ttl,
.p-news__item:hover .p-news__ttl{color:var(--c-gold-d)}

.p-mcard__thumb,.p-tcard,.p-mcard{transition:transform .4s var(--rv-ease),box-shadow .4s var(--rv-ease),border-color .3s}
.p-mcard__thumb img{transition:transform .7s var(--rv-ease)}
.p-mcard:hover .p-mcard__thumb img{transform:scale(1.07)}
.p-mcard__btn .c-arw,.p-tcard__link .c-arw,.p-iblock__link .c-arw,.p-mgroup__more .c-arw{
  transition:transform .35s var(--rv-ease);
}
.p-mcard:hover .p-mcard__btn .c-arw,
.p-tcard__link:hover .c-arw,
.p-iblock__link:hover .c-arw,
.p-mgroup__more:hover .c-arw{transform:translateX(.3125rem)}

/* 大枠カード：写真がわずかに寄る */
/* バナーはドクターの頭がはみ出す設計なので切らない */
.p-mfeat{overflow:hidden}
.p-menu__custom{overflow:visible}
/* ② バナーはカード全体が浮く。写真だけ動くと意味が伝わらないため。 */
.p-menu__custom{transition:transform .4s var(--rv-ease),box-shadow .4s var(--rv-ease)}
.p-menu__custom:hover{transform:translateY(-.375rem);box-shadow:0 .875rem 2rem rgba(60,40,30,.18)}
/* 院長の写真は動かさない（2026-10-06 ディレクター指示：ホバーでの拡大・縮小をなくす） */

/* 特徴カード・院内写真 */
.p-feature__card{transition:transform .4s var(--rv-ease),box-shadow .4s var(--rv-ease)}
.p-feature__card:hover{transform:translateY(-4px);box-shadow:0 .875rem 2.25rem rgba(60,40,20,.12)}
.p-gallery__item{transition:transform .6s var(--rv-ease),filter .4s}
.p-gallery__item:hover{transform:scale(1.03)}

/* ナビ：金の下線が伸びる */
.l-nav__link{position:relative}
.l-nav__link::after{
  content:"";position:absolute;left:0;right:0;bottom:.375rem;height:1px;
  background:linear-gradient(90deg,var(--c-gold-l),var(--c-gold-d));
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform .35s var(--rv-ease);
}
.l-nav__link:hover::after,
.l-nav__item.is-open .l-nav__link::after{transform:scaleX(1)}

/* メガメニュー：点が伸びて線になる */
.l-mega__list a::before{transition:width .3s var(--rv-ease),border-radius .3s}
.l-mega__list a:hover::before{width:.875rem;border-radius:1px}
.l-mega__list a{transition:color .3s,padding-left .3s var(--rv-ease)}
.l-mega__list a:hover{padding-left:1.375rem}

/* タブ：下線が滑る */
.p-trouble__tab,.p-case__tab{position:relative;transition:color .3s}
.p-trouble__tab::after{
  content:"";position:absolute;left:1.25rem;right:1.25rem;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--c-gold-l),var(--c-gold-d));
  transform:scaleX(0);transform-origin:50% 50%;
  transition:transform .35s var(--rv-ease);
}
.p-trouble__tab.is-active::after,.p-trouble__tab:hover::after{transform:scaleX(1)}

/* タブ切替時に中身をふわっと入れ替える */
.p-trouble__cards{animation:bc-tab .45s var(--rv-ease)}
@keyframes bc-tab{
  from{opacity:0;transform:translateY(.625rem)}
  to{opacity:1;transform:none}
}

/* FAQ：開閉をなめらかに */
.p-faq__item{transition:box-shadow .3s}
.p-faq__item[open]{box-shadow:0 .5rem 1.5rem rgba(60,40,30,.08)}
.p-faq__a{animation:bc-faq .35s var(--rv-ease)}
@keyframes bc-faq{
  from{opacity:0;transform:translateY(-.375rem)}
  to{opacity:1;transform:none}
}
.p-faq__q:hover .p-faq__qt{color:var(--c-gold-d)}
.p-faq__qt{transition:color .3s}

/* 一覧リンク・フッター */
.p-ilinks__list a .c-arw{transition:transform .35s var(--rv-ease)}
.p-ilinks__list a:hover .c-arw{transform:translateX(.3125rem)}
.l-footer__col li a{position:relative;display:inline-block}
.l-footer__col li a::after{
  content:"";position:absolute;left:0;right:0;bottom:-.125rem;height:1px;
  background:var(--c-gold-l);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .3s var(--rv-ease);
}
.l-footer__col li a:hover::after{transform:scaleX(1)}

/* キーボード操作の視認性 */
a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:2px solid var(--c-gold-d);outline-offset:3px;border-radius:2px;
}

/* ==========================================================================
   SP
   ========================================================================== */
@media (max-width:899px){
  .l-totop{right:.875rem;bottom:5rem;width:2.625rem;height:2.625rem}
  .p-hero__cue{display:none}
  html.has-reveal [data-reveal="up"]{transform:translate3d(0,1.125rem,0)}
  :root{--rv-dur:.62s}
}

/* ==========================================================================
   動きを減らす設定のとき
   ========================================================================== */
@media (prefers-reduced-motion: reduce){
  html.has-reveal [data-reveal],
  html.has-reveal .c-shead__leaf{opacity:1!important;transform:none!important;transition:none!important}
  html.has-reveal .c-shead__jp{background-position:0 0!important;transition:none}
  .p-hero__bg,.p-hero__badge,.p-hero__cue span::after,
  .p-gallery__track,.p-trouble__cards,.p-faq__a{animation:none!important}
  .l-totop,.c-btn::before{transition:none}
  *{scroll-behavior:auto!important}
}

/* フォント差し替え時の行送り変化でレイアウトがずれないよう、高さを先に確保する */
.p-breadcrumb{min-height:1.5rem}
@media (max-width:899px){
  .p-breadcrumb{min-height:2.75rem}
  /* 四層は階層が4つあり、代替フォント表示中だけ3行になることがある。
     その分の高さを先に確保して、下の写真と目次がずれないようにする。 */
  .p-breadcrumb:has(li:nth-child(4)){min-height:4.125rem}
  .p-dhero__catch{min-height:1.8em}
}

/* ==========================================================================
   TOP キャンペーン：管理画面のバナーを表示（2026-10-07）
   バナーは縦長（660×780）で文字・価格入りなので、切り抜かずに比率どおり見せる。
   ========================================================================== */
.p-cpcard{display:block;aspect-ratio:660/780;overflow:hidden;border-radius:.375rem;background:#F2EDEA;box-shadow:0 .125rem .75rem rgba(90,60,40,.06)}
.p-cpcard img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--rv-ease)}
.p-cpcard:hover img{transform:scale(1.03)}
@media (min-width:900px){
  .p-campaign__grid > .p-cpcard:nth-child(n+4){display:none}
}
@media (max-width:899px){
  .p-cpcard{flex:0 0 15.5rem;scroll-snap-align:center}
}

/* 「医師と相談」バナーのタイトル：SPで「酸」だけが落ちないよう、全角スペースの位置で折り返す */
@media (max-width:899px){.p-mfeat__ttl{word-break:keep-all;overflow-wrap:anywhere}}

/* 「医師と相談」バナー SP：上段にバッジ・タイトルと院長（横組み）、説明文とボタンはその下に全幅（2026-10-07） */
@media (max-width:899px){
  .p-mfeat__doctor{position:absolute;top:.75rem;right:-.25rem;width:auto;height:10.75rem;margin:0;border-radius:0;
    -webkit-mask-image:linear-gradient(180deg,#000 72%,transparent 100%);mask-image:linear-gradient(180deg,#000 72%,transparent 100%)}
  .p-mfeat:has(.p-mfeat__doctor) .p-mfeat__ttl{max-width:58%;min-height:7.25rem}
}

/* ==========================================================================
   2026-10-09 ディレクター指示
   ========================================================================== */
/* ④ お悩み：部位タブを中央寄せ（体のお悩みは3つなので左に寄っていた）。幅はお顔のお悩み（6つ）と同じ */
@media (min-width:900px){
  .p-trouble__tabs{display:flex;justify-content:center}
  .p-trouble__tab{flex:0 0 calc((100% - 2.5rem) / 6)}
}
@media (max-width:899px){
  /* 横スクロールの行は、はみ出したときに左端が切れないよう auto マージンで中央寄せ */
  .p-trouble__tab:first-child{margin-left:auto}
  .p-trouble__tab:last-child{margin-right:auto}
}

/* ⑥ FEATURE：「当院が選ばれる理由」以下の文字を FEATURE の文字の左端にそろえる */
@media (min-width:900px){
  .p-feature__leaf,
  .p-feature__sub,
  .p-feature__text{margin-left:-9.275rem}
  .p-feature__title{margin-left:-9.525rem}   /* 見出しは左右に .1em の余白を持つぶん */
}

/* ⑧ コラム：記事が揃うまで Coming soon */
.p-column__soon{
  margin-top:3.625rem;padding:4.5rem 1rem;border-top:1px solid #E7E1DE;border-bottom:1px solid #E7E1DE;
  font-family:var(--f-en);font-size:2.25rem;font-weight:300;letter-spacing:.14em;text-align:center;color:var(--c-gold-d);
}
@media (max-width:899px){.p-column__soon{margin-top:2.5rem;padding:3rem 1rem;font-size:1.75rem}}

/* ⑨ フッター：見出し（美容外科など）はリンクではないので、ホバーで色を変えない */
.l-footer__col-head,.l-footer__col-head:hover{color:#fff;cursor:default}
