/*
Theme Name: ALLIE 深爪矯正専門サロン
Theme URI: https://allie-fukazume-kobe.com
Author: bebeecome
Description: 神戸・三宮の深爪矯正・自爪育成専門ネイルサロン「アリエ」のオリジナルテーマ。完成版デザイン（案B / クリーム×ゴールド×明朝）に忠実な実装。
Version: 3.0.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: arie
*/

:root{
  --cream:#F5F1E9;--cream-2:#EDE7DA;--white:#FCFAF5;--ink:#2C2A24;--ink-soft:#524C43;
  --brown:#8A7457;--gold:#A98B57;--gold-deep:#6E5836;--line:rgba(44,42,36,.14);--hair:rgba(169,139,87,.38);
  --skin:#F3D8C7;--skin-2:#ECC8B2;
  --sage:#6E7E72;--sage-deep:#566B5E;--sage-tint:#EEF1ED;
  /* 下層ページHEROに重ねるマスク。背景クリーム(#F5F1E9)と同系（暖色・色相40°前後）のまま
     輝度を落とした #3E3527 を使う。中間トーン(#6E5836)だと濃度を上げたときに
     「暗くなる」より「霞む」方向に働き写真が眠くなるため、暗いトーン側を採用している。
     濃度の調整はここ1か所で全ページに反映される。 */
  --phero-mask:rgba(62,53,39,.70);
  /* 淡いイラスト（コラムHERO等）用。同じ濃度だと絵柄が潰れるため薄くする。
     対象ファイルは functions.php の arie_hero_is_light_art() で管理する。 */
  --phero-mask-light:rgba(62,53,39,.30);
  --sec-gap:3.2rem; /* セクション間の共通余白 */
  --pad-x:1.6rem;    /* 左右の共通余白（ページの横マージン） */
  --card-pad:1.1rem; /* カード内の共通余白 */
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body{font-family:'Klee One',serif;font-weight:400;color:var(--ink);background:var(--cream);line-height:1.7;}
img{display:block;max-width:100%;}
a{color:inherit;}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;border-radius:2px;}

.stage{position:relative;width:100%;max-width:440px;margin:0 auto;background:var(--cream);overflow:hidden;
  background-image:
    radial-gradient(90% 36% at 100% 0%, rgba(169,139,87,.07), transparent 60%),
    radial-gradient(80% 30% at 0% 58%, rgba(110,88,54,.05), transparent 60%);
  background-repeat:no-repeat;}
.grain{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.035;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px;}

/* ===== Header ===== */
.header{position:fixed;top:0;left:0;right:0;max-width:440px;margin:0 auto;z-index:30;display:flex;align-items:flex-start;justify-content:space-between;padding:1.15rem 1.1rem .9rem;transition:background .35s,box-shadow .35s,padding .35s;}
.header.is-scrolled{background:rgba(245,241,233,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 2px 18px rgba(31,28,22,.08);padding-top:.7rem;padding-bottom:.7rem;align-items:center;}
.header.is-scrolled .brand__en{opacity:0;transition:opacity .3s;height:0;}
.brand{display:flex;align-items:center;gap:.62rem;line-height:1;padding-top:.15rem;text-decoration:none;}
.brand__logo{width:34px;height:34px;border:1px solid var(--gold);position:relative;display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:1.05rem;color:var(--gold-deep);background:var(--white);}
.brand__logo--img{border:none;background:transparent;overflow:hidden;}
.brand__logo--img::after{content:none;}
.brand__logo img{width:100%;height:100%;object-fit:contain;display:block;}
.brand--logo{gap:0;}
.brand--logo .brand__logo{width:auto;height:44px;border:none;background:none;overflow:visible;}
.brand--logo .brand__logo img{width:auto;height:100%;}
.brand--logo .brand__txt{display:none;}
.brand__logo::after{content:"";position:absolute;inset:2px;}
.brand__txt{display:flex;flex-direction:column;gap:.2rem;}
.brand__name{font-family:'Noto Sans JP',sans-serif;font-size:.94rem;font-weight:700;letter-spacing:.1em;}
.brand__en{font-family:'Cormorant Garamond',serif;font-size:.55rem;letter-spacing:.3em;color:var(--ink-soft);text-transform:uppercase;}
.actions{display:flex;gap:.38rem;}
.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.22rem;width:48px;height:48px;text-decoration:none;font-size:.5rem;letter-spacing:.04em;}
.tile .ic{font-size:.92rem;line-height:1;}
.tile--tel{background:var(--brown);color:#fff;}
.tile--web{background:var(--gold);color:#fff;}
.tile--menu{background:var(--ink);color:#fff;}

/* ===== Hero ===== */
.hero{position:relative;padding:4.7rem .95rem 0;}
.shot{position:relative;width:100%;height:79svh;min-height:540px;overflow:hidden;}
.shot img,.shot video{width:100%;height:100%;object-fit:cover;object-position:50% 42%;display:block;
  animation:heroIn 2s cubic-bezier(.2,.7,.2,1) both;}
@keyframes heroIn{from{opacity:0;transform:scale(1.06);filter:saturate(.7)}to{opacity:1;transform:none;filter:none}}
/* <video> はCSS filter を当てるとChromeで合成が壊れ緑一色になることがあるため、filterなしの同等アニメーションを使う */
.shot video{animation-name:heroInVideo;}
@keyframes heroInVideo{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:none}}
/* Hero動画は main.js が挿入する。
   opacity:0 やdisplay:none にすると「描画されていない動画」と判定され自動再生が阻害されるため、
   動画は常に不透明のまま置き、再生が始まるまでは静止画（ポスター）を上に重ねて隠す。
   ブラウザ標準の再生ボタンも静止画の裏になるので表に出ない。 */
.shot video.shot__media{position:absolute;inset:0;z-index:0;animation:none;pointer-events:none;}
.shot img.shot__media[data-hero-video]{position:absolute;inset:0;z-index:1;
  transition:opacity .5s cubic-bezier(.2,.7,.2,1);}
/* !important が必要な理由: 上の .shot img,.shot video に animation-fill-mode:both が掛かっており、
   アニメーション終了後も heroIn の opacity:1 が保持される。CSSの優先順位では
   「アニメーションによる値 > 通常の宣言」のため、!important でないと一度も勝てず
   ポスターが透明にならない（= 動画に切り替わらない）。transition は最優先なのでフェードは効く。 */
.shot.is-video-playing img.shot__media[data-hero-video]{opacity:0 !important;pointer-events:none;}
/* 万一 <video> が可視になった場合でも、ブラウザ標準の再生UIは出さない（背景映像のため）。 */
.shot video::-webkit-media-controls,
.shot video::-webkit-media-controls-start-playback-button,
.shot video::-webkit-media-controls-panel,
.shot video::-webkit-media-controls-overlay-play-button{
  display:none !important;-webkit-appearance:none;appearance:none;opacity:0;
}
.shot::after{content:"";position:absolute;inset:0;z-index:1;background:
  linear-gradient(to top, rgba(26,23,18,.46), rgba(26,23,18,0) 42%),
  linear-gradient(104deg, rgba(245,241,233,.24), transparent 40%);}
.shot__cap{position:absolute;left:0;right:0;bottom:0;z-index:11;padding:1.7rem 1.3rem 1.05rem;
  display:flex;align-items:center;justify-content:center;gap:.55rem;flex-wrap:wrap;
  font-family:'Klee One',serif;font-size:.64rem;font-weight:600;letter-spacing:.12em;
  color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.55);}
.shot__cap i{font-style:normal;color:rgba(255,255,255,.45);}
.shot__cap em{font-style:normal;color:#E7CE9C;}
.shot::before{content:"";position:absolute;inset:10px;border:1px solid var(--hair);z-index:2;pointer-events:none;}
.shot .frame2{position:absolute;inset:15px;border:1px solid rgba(169,139,87,.18);z-index:2;pointer-events:none;}
.shot .tick{position:absolute;width:14px;height:14px;z-index:3;pointer-events:none;}
.shot .tick i{position:absolute;background:var(--gold);}
.shot .tick i:first-child{width:14px;height:1px;}
.shot .tick i:last-child{width:1px;height:14px;}
.tick--tl{top:5px;left:5px;} .tick--tl i{top:0;left:0;}
.tick--br{bottom:5px;right:5px;} .tick--br i:first-child{bottom:0;right:0;} .tick--br i:last-child{bottom:0;right:0;}

.vhead{position:absolute;top:clamp(1.2rem,5vw,2.4rem);right:1.6rem;z-index:10;
  writing-mode:vertical-rl;text-orientation:mixed;
  font-family:'Shippori Mincho',serif;font-weight:800;color:var(--ink);
  font-size:clamp(1.78rem,8vw,2.4rem);line-height:1.78;letter-spacing:.14em;
  text-shadow:0 1px 22px rgba(245,241,233,.9),0 0 1px rgba(245,241,233,.7);}
.vhead .accent{position:relative;color:var(--gold-deep);}
.vhead .accent::after{content:"";position:absolute;top:0;bottom:0;right:-.08em;width:.36em;
  background:linear-gradient(90deg,transparent 44%,rgba(169,139,87,.5) 44%);z-index:-1;}
.vsub{position:absolute;left:2rem;bottom:1.6rem;z-index:10;writing-mode:vertical-rl;
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:.66rem;letter-spacing:.3em;color:var(--ink-soft);}

/* ===== copy ===== */
.copy{position:relative;z-index:5;padding:1.7rem var(--pad-x) 0;}
.eyebrow{display:flex;align-items:center;gap:.7rem;font-family:'Cormorant Garamond',serif;font-size:.9rem;letter-spacing:.2em;color:var(--gold-deep);margin-bottom:.6rem;}
.eyebrow::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--hair),transparent);}
.copy__h1{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.16rem;letter-spacing:.08em;line-height:1.7;color:var(--ink);margin-bottom:.9rem;}
.lead{font-family:'Klee One',serif;font-size:.86rem;color:var(--ink-soft);line-height:2.05;max-width:30em;}

/* ===== trust badges ===== */
.trust{margin:1.8rem .95rem 0;background:var(--white);border:1px solid var(--line);position:relative;}
.trust::before{content:"";position:absolute;inset:4px;border:1px solid rgba(169,139,87,.18);pointer-events:none;}
.trust__row{display:grid;grid-template-columns:1fr 1fr 1fr;position:relative;z-index:1;}
.trust__row--2{grid-template-columns:1fr 1fr;}
.trust__row--2::before{content:"";position:absolute;top:0;left:8%;right:8%;height:1px;background:var(--line);}
.trust__item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;padding:1.05rem .2rem .95rem;position:relative;}
.trust__row .trust__item + .trust__item::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--line);}
.trust__item svg{width:25px;height:25px;stroke:var(--sage-deep);fill:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;}
.trust__ja{font-size:.68rem;font-weight:700;letter-spacing:.08em;}
/* clinical header label */
.trust__cap{display:flex;align-items:center;justify-content:center;gap:.7rem;padding:.85rem 0 0;position:relative;z-index:1;
  font-family:'Cormorant Garamond',serif;font-size:.62rem;letter-spacing:.3em;color:var(--sage-deep);text-transform:uppercase;}
.trust__cap::before,.trust__cap::after{content:"";width:1.5rem;height:1px;background:rgba(86,107,92,.45);}
/* safety note */
.trust__safe{display:flex;align-items:flex-start;gap:.55rem;margin:0 .95rem;padding:.85rem 1rem 1rem;border-top:1px solid var(--line);
  position:relative;z-index:1;font-size:.7rem;line-height:1.75;color:var(--ink-soft);background:var(--sage-tint);}
.trust__safe svg{flex:none;width:19px;height:19px;stroke:var(--sage-deep);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin-top:.1rem;}
.trust__safe b{color:var(--sage-deep);font-weight:700;}

/* ===== section common ===== */
.sec{position:relative;padding:var(--sec-gap) var(--pad-x) 0;}
.sec__en{display:flex;align-items:center;gap:.75rem;font-family:'Cormorant Garamond',serif;font-size:.78rem;letter-spacing:.34em;color:var(--gold);text-transform:uppercase;margin-bottom:.55rem;}
.sec__en::before{content:"";width:1.6rem;height:1px;background:var(--gold);}
.sec__no{position:absolute;top:2.2rem;right:1.2rem;font-family:'Cormorant Garamond',serif;font-size:3.4rem;font-weight:500;color:rgba(169,139,87,.13);line-height:1;pointer-events:none;}
/* 見出しが長いときに「一覧へ」リンクが押し出されて切れないよう、折り返しを許可し
   見出し側は縮小できるようにする（keep-all のため折り返し位置は <wbr> で与える）。 */
.sec__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.5rem 1rem;margin-bottom:1.3rem;}
.sec__head .sec__title{flex:1 1 auto;min-width:0;}
.sec__head .sec__more{flex:0 0 auto;}
.sec__title{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.34rem;letter-spacing:.12em;}
/* 見出しの自動折り返しを均等化＋単語（漢字連続）を途中で切らない（禁則対応） */
.sec__title,.cta-mid__t,.prob__lead,.prob__ans,.concept__msg,.e404__t,.copy__h1,.nc-block__h,.staff__name,.reason__t,.menu__name,.colcard__t,.ccard__type,.phero__t,.cta-fin__t,.single-cta__t,.single__body h2,.single__body h3,.single__body h4{text-wrap:balance;word-break:keep-all;overflow-wrap:break-word;}
.sec__more{display:inline-flex;align-items:center;gap:.4rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;color:var(--gold-deep);text-decoration:none;white-space:nowrap;padding-bottom:.25rem;border-bottom:1px solid var(--hair);}
.sec__lead{font-size:.84rem;color:var(--ink-soft);line-height:2;margin:-.3rem 0 1.3rem;}
.sec--tint{background:linear-gradient(180deg,var(--cream-2),#EAE2D2);margin-top:var(--sec-gap);padding-top:var(--sec-gap);padding-bottom:var(--sec-gap);}
.sec--tint::before,.sec--tint::after{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--hair) 22%,var(--hair) 78%,transparent);}
.sec--tint::before{top:0;} .sec--tint::after{bottom:0;}
.orn{display:flex;align-items:center;justify-content:center;gap:1rem;padding:2.7rem 1.6rem .3rem;}
.orn::before,.orn::after{content:"";height:1px;flex:1;max-width:32%;}
.orn::before{background:linear-gradient(90deg,transparent,var(--hair));}
.orn::after{background:linear-gradient(90deg,var(--hair),transparent);}
.orn i{width:8px;height:8px;border:1px solid var(--gold);transform:rotate(45deg);position:relative;flex:none;}
.orn i::before{content:"";position:absolute;inset:2px;background:rgba(169,139,87,.55);}
.orn i::after{content:"";position:absolute;width:24px;height:1px;background:var(--gold);left:50%;top:50%;transform:translate(-50%,-50%) rotate(-45deg);opacity:.0;}

/* ===== CONCEPT ===== */
.concept__msg{position:relative;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.14rem;line-height:2.15;letter-spacing:.05em;margin-bottom:1.3rem;padding-left:1rem;}
.concept__msg::before{content:"";position:absolute;left:0;top:.45em;bottom:.45em;width:1px;background:linear-gradient(180deg,var(--gold),rgba(169,139,87,.15));}
.concept__img{position:relative;height:230px;overflow:hidden;margin-bottom:1.5rem;background:#EDE6D9;box-shadow:0 0 0 1px rgba(169,139,87,.4);}
.concept__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 42%;display:block;animation:fade 1.4s ease both;}
@keyframes fade{from{opacity:0}to{opacity:1}}
.concept__img::before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.6);z-index:2;}
.concept__img .cn{position:absolute;width:13px;height:13px;z-index:4;}
.concept__img .cn i{position:absolute;background:var(--gold);}
.concept__img .cn i:first-child{width:13px;height:1px;} .concept__img .cn i:last-child{width:1px;height:13px;}
.cn--tl{top:4px;left:4px;} .cn--tl i{top:0;left:0;}
.cn--tr{top:4px;right:4px;} .cn--tr i:first-child{top:0;right:0;} .cn--tr i:last-child{top:0;right:0;}
.cn--bl{bottom:4px;left:4px;} .cn--bl i:first-child{bottom:0;left:0;} .cn--bl i:last-child{bottom:0;left:0;}
.cn--br{bottom:4px;right:4px;} .cn--br i:first-child{bottom:0;right:0;} .cn--br i:last-child{bottom:0;right:0;}
.concept__img::after{content:"";position:absolute;inset:0;opacity:.5;background:radial-gradient(60% 50% at 30% 80%, rgba(255,255,255,.4), transparent 70%);}
.concept__img span{position:absolute;left:0;right:0;bottom:.75rem;text-align:center;font-size:.6rem;letter-spacing:.16em;color:rgba(44,42,36,.5);z-index:3;}
.concept__img svg{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);width:110px;height:110px;opacity:.55;z-index:1;stroke:#fff;fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.concept__lead{font-size:.8rem;color:var(--ink-soft);line-height:2.1;margin-bottom:1.5rem;}
.btn-line{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.8rem;text-decoration:none;
  font-size:.8rem;font-weight:700;letter-spacing:.14em;color:var(--ink);border:1px solid var(--gold-deep);padding:.95rem 1.9rem;overflow:hidden;transition:color .35s;margin-top:1.4rem;}
.btn-line::before{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.btn-line span{position:relative;z-index:1;}
.btn-line .a{color:var(--gold);transition:transform .35s;}
.btn-line:hover{color:var(--cream);}
.btn-line:hover::before{transform:scaleX(1);}
.btn-line:hover .a{transform:translateX(4px);}

/* ===== CASE ===== */
.case .cards{display:flex;gap:.85rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.7rem;margin:0 calc(-1 * var(--pad-x));padding-left:var(--pad-x);padding-right:var(--pad-x);scrollbar-width:none;}
.case .cards::-webkit-scrollbar{display:none;}
.ccard{flex:0 0 76%;scroll-snap-align:start;background:var(--white);border:1px solid var(--line);padding:var(--card-pad);text-align:center;position:relative;}
.ccard::before{content:"";position:absolute;top:4px;left:4px;right:4px;height:1px;background:linear-gradient(90deg,transparent,var(--hair),transparent);}
.ccard__type{font-family:'Noto Sans JP',sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.12em;padding-bottom:.65rem;margin-bottom:.85rem;position:relative;}
.ccard__type::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:2rem;height:1px;background:var(--gold);}
.ccard__label{display:flex;align-items:center;gap:.5rem;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:.68rem;letter-spacing:.26em;color:var(--gold-deep);margin:.25rem 0 .4rem;}
.ccard__label::before,.ccard__label::after{content:"";width:1.1rem;height:1px;background:var(--hair);}
.ph{position:relative;height:86px;overflow:hidden;background:radial-gradient(150% 130% at 50% 0%, var(--skin) 0%, var(--skin-2) 62%, #E5C9B4 100%);}
.ph::before{content:"";position:absolute;inset:5px;border:1px dashed rgba(169,139,87,.38);}
.ph span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.58rem;letter-spacing:.12em;color:rgba(44,42,36,.48);}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.ccard__ba{position:relative;margin:.2rem 0 .2rem;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;background:#EDE6D9;}
.ccard__ba img{width:100%;height:100%;object-fit:cover;display:block;}
/* バッジの文言はテンプレート側の data-ba で決める（Before/Afterの有無に合わせる）。
   data-ba が空のときは出さない。 */
.ccard__ba[data-ba]:not([data-ba=""])::after{content:attr(data-ba);position:absolute;left:.4rem;bottom:.4rem;font-family:'Cormorant Garamond',serif;font-size:.56rem;letter-spacing:.14em;color:#fff;background:rgba(44,42,36,.55);padding:.1rem .5rem;border-radius:999px;}
.ccard__ba.is-split{display:flex;gap:2px;}
.ccard__ba.is-split img{width:50%;}
.ccard__arrow{display:flex;justify-content:center;margin:.4rem 0 .15rem;}
.ccard__arrow svg{width:14px;height:16px;stroke:var(--gold);fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
.ccard__who{font-size:.78rem;color:var(--ink-soft);letter-spacing:.08em;margin-top:.75rem;}
.priv-note{font-size:.8125rem;line-height:1.7;color:var(--ink-soft);margin:.7rem 0 0;text-align:center;}
.case__note{font-size:.62rem;color:var(--ink-soft);opacity:.75;margin-top:.6rem;line-height:1.8;}

/* ===== FLOW ===== */
.flow__steps{position:relative;display:flex;align-items:flex-start;justify-content:space-between;margin-top:.6rem;}
.flow__steps::before{content:"";position:absolute;top:26px;left:9%;right:9%;height:1px;background:var(--hair);}
.step{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;}
.step__ic{width:52px;height:52px;border-radius:50%;background:var(--white);border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;position:relative;}
.step__ic::after{content:"";position:absolute;inset:3px;border:1px solid rgba(169,139,87,.16);border-radius:50%;}
.step__ic svg{width:21px;height:21px;stroke:var(--gold-deep);fill:none;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;}
.step__en{font-family:'Cormorant Garamond',serif;font-size:.55rem;letter-spacing:.2em;color:var(--gold);}
.step__ja{font-size:.6rem;font-weight:700;letter-spacing:.02em;line-height:1.45;}
.flow__note{display:flex;align-items:center;gap:.8rem;justify-content:center;text-align:center;font-size:.7rem;color:var(--ink-soft);margin-top:1.5rem;}
.flow__note::before,.flow__note::after{content:"";width:2rem;height:1px;background:var(--hair);}

/* ===== ATMOSPHERE ===== */
.atmos{position:relative;height:300px;margin-top:2.9rem;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.atmos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 36%;}
.atmos::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(40,38,33,.32),rgba(40,38,33,.52));}
.atmos__frame{position:absolute;inset:14px;border:1px solid rgba(255,255,255,.42);z-index:2;}
.atmos__frame::before,.atmos__frame::after{content:"";position:absolute;width:12px;height:12px;}
.atmos__frame::before{top:-1px;left:-1px;border-top:1px solid rgba(255,255,255,.85);border-left:1px solid rgba(255,255,255,.85);}
.atmos__frame::after{bottom:-1px;right:-1px;border-bottom:1px solid rgba(255,255,255,.85);border-right:1px solid rgba(255,255,255,.85);}
.atmos__in{position:relative;z-index:3;text-align:center;color:#fff;padding:0 1.6rem;}
.atmos__en{font-family:'Cormorant Garamond',serif;letter-spacing:.36em;font-size:.7rem;text-transform:uppercase;color:rgba(255,255,255,.82);margin-bottom:.85rem;}
.atmos__t{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.16rem;letter-spacing:.1em;line-height:1.95;text-shadow:0 1px 16px rgba(0,0,0,.35);}

/* ===== REASON ===== */
/* ===== こだわり（帯写真＋番号の縦ライン） =====
   セクション冒頭に横帯の写真を敷いて見出しを重ね（下層ページHEROと同じ作法）、
   4項目は番号を丸ノードにして金の縦線でつなぐ。「段階的に育てる」流れを形にしている。 */

/* --- 帯写真（左右の余白いっぱいまで） --- */
.reason__band{position:relative;height:186px;overflow:hidden;display:flex;align-items:flex-end;
  margin:0 calc(-1 * var(--pad-x)) 1.9rem;}
.reason__band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.reason__veil{position:absolute;inset:0;background-color:rgba(62,53,39,.55);
  background-image:linear-gradient(180deg,rgba(246,242,235,.26),rgba(31,28,22,.14) 45%,rgba(31,28,22,.52));}
.reason__bandin{position:relative;z-index:2;width:100%;padding:0 var(--pad-x) 1.2rem;color:#fff;}
.reason__banden{font-family:'Cormorant Garamond',serif;font-size:.6rem;letter-spacing:.28em;
  text-transform:uppercase;color:#EAD9B5;margin-bottom:.35rem;text-shadow:0 1px 8px rgba(0,0,0,.25);}
.reason__bandt{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.28rem;letter-spacing:.06em;
  line-height:1.45;text-shadow:0 2px 14px rgba(0,0,0,.3);}

/* --- 4項目：番号ノードを金の縦線でつなぐ --- */
.reason{display:flex;flex-direction:column;}
.reason__item{position:relative;display:flex;gap:.8rem;padding-bottom:1.8rem;}
.reason__item:last-child{padding-bottom:0;}
/* ノード下からカード下端まで伸びる縦線。最後の項目には引かない */
.reason__item::before{content:"";position:absolute;left:20px;top:40px;bottom:0;width:1px;
  background:linear-gradient(180deg,var(--hair),rgba(169,139,87,.16));}
.reason__item:last-child::before{display:none;}
/* 番号ノード。背景色のリングで縦線を切り、玉が線に乗って見えるようにする */
.reason__no{flex:none;position:relative;z-index:1;width:40px;height:40px;border-radius:50%;
  background:var(--white);border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;
  font-family:'Cormorant Garamond',serif;font-size:1.08rem;line-height:1;color:var(--gold-deep);
  box-shadow:0 0 0 4px var(--cream);}
.reason__b{min-width:0;flex:1;padding-top:.35rem;}
.reason__en{font-family:'Cormorant Garamond',serif;font-size:.58rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--gold-deep);margin-bottom:.25rem;}
/* 改行位置はテンプレート側の <wbr> だけに限定する（共通指定の word-break:keep-all を活かす）。
   語の途中では折り返さない。overflow-wrap は共通指定の break-word が保険として残る。 */
.reason__t{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:.9rem;letter-spacing:.04em;
  line-height:1.55;}
.reason__t wbr{display:inline;}
.reason__d{font-size:.78rem;color:var(--ink-soft);line-height:1.95;position:relative;
  margin-top:.55rem;padding-top:.8rem;}
/* 見出しと本文を区切る短い金の罫 */
.reason__d::before{content:"";position:absolute;top:0;left:0;width:1.8rem;height:1px;background:var(--hair);}

/* --- 各項目からの導線 --- */
.reason__link{display:inline-flex;align-items:center;gap:.4rem;margin-top:.85rem;
  font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--gold-deep);text-decoration:none;
  padding-bottom:.25rem;border-bottom:1px solid var(--hair);transition:color .25s,border-color .25s;}
.reason__link .a{transition:transform .3s;}
.reason__link:hover{color:var(--ink);border-color:var(--gold);}
.reason__link:hover .a{transform:translateX(3px);}
/* 予約（外部）は面で見せて他の内部リンクと区別する */
.reason__link--cta{background:var(--gold);border-bottom:none;color:#fff;
  padding:.7rem 1.15rem;letter-spacing:.08em;}
.reason__link--cta:hover{background:var(--gold-deep);color:#fff;}

/* ===== MENU ===== */
.menu__list{margin-top:.3rem;}
/* グループの区切り（2つめ以降は余白だけで分ける。罫は明細側の border と重なるため置かない） */
.menu__group.is-divided{margin-top:2.2rem;padding-top:2.2rem;}
.menu__cat{display:flex;align-items:center;gap:.6rem;margin:0 0 .5rem;}
/* アイコン以外はひとまとまり。幅が足りなければ英字ラベルが次の行へ回り込む（見出しが切れない） */
.menu__cattext{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .6rem;}
.menu__cat b{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:.95rem;letter-spacing:.08em;color:var(--ink);}
.menu__caten{font-family:'Cormorant Garamond',serif;font-size:.7rem;letter-spacing:.22em;color:var(--gold-deep);text-transform:uppercase;white-space:nowrap;}
/* 見出しの線画アイコン（絵文字は使わず、サイト内の他アイコンと作法をそろえる） */
.menu__ic{flex:none;width:30px;height:30px;border-radius:50%;background:var(--white);
  border:1px solid var(--hair);display:flex;align-items:center;justify-content:center;}
.menu__ic svg{width:17px;height:17px;stroke:var(--gold-deep);fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
/* カテゴリごとの施術例写真。トップの症例カード（.ccard__ba）と枠の作法をそろえる */
.menu__fig{position:relative;margin:.15rem 0 1rem;overflow:hidden;border:1px solid var(--line);
  aspect-ratio:4/3;background:#EDE6D9;}
.menu__fig img{width:100%;height:100%;object-fit:cover;display:block;}
.menu__row{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 1.1rem;padding:1.1rem .2rem;border-bottom:1px solid var(--line);}
.menu__row:first-of-type{border-top:1px solid var(--line);}
/* 1段目に「名称｜金額」、2段目にホームケアと施術内容を幅いっぱいで置く。
   HTML上は .menu__extra が .menu__price より前にあるため order で入れ替える. */
.menu__main{flex:1;min-width:0;order:1;}
.menu__extra{order:3;flex:1 0 100%;min-width:0;}
.menu__name{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:.95rem;letter-spacing:.04em;line-height:1.6;}
/* 回数はメニュー名と同じ大きさ（色だけ変えて区別する） */
.menu__name b{font-family:inherit;font-weight:700;font-size:inherit;letter-spacing:inherit;color:var(--gold-deep);white-space:nowrap;}
/* 付属を示すタグ。薄い背景で本文と区別する */
/* 付属タグ。内訳は出さず、含まれることだけを示す */
/* 付属（ホームケア）はメニューの訴求の要。囲まず、マーカーを引いたような
   淡い帯を文字の後ろに敷いて目立たせる。
   左側の幅（375px時で181px）ではフル文言が収まらないため、
   .menu__main を縦積みにして幅いっぱいで1行に収める. */
/* マーカーはチェック込みで敷き、行末の余白までは伸ばさない（inline-flex で内容幅に縮める） */
.menu__badge{display:inline-flex;align-items:center;gap:.45rem;margin-top:.7rem;
  font-size:.88rem;font-weight:700;letter-spacing:.02em;color:var(--gold-deep);
  white-space:nowrap;
  background-image:linear-gradient(transparent 62%,rgba(169,139,87,.22) 62%);
  background-repeat:no-repeat;}
/* 先頭のチェック（罫線で描く） */
.menu__badge::before{content:"";flex:none;width:11px;height:6px;margin-top:-4px;
  border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);
  transform:rotate(-45deg);}
/* 施術内容は開閉式。付属タグと並ぶ小さなボタンにして、閉じている間は場所を取らない */
.menu__content{margin-top:.45rem;}
.menu__ctoggle{display:inline-flex;align-items:center;gap:.4rem;min-height:32px;padding:.2rem .6rem;
  cursor:pointer;list-style:none;border:1px solid transparent;border-radius:3px;
  background:rgba(169,139,87,.11);transition:background .25s,border-color .25s;}
.menu__ctoggle::-webkit-details-marker{display:none;}
.menu__ctoggle:hover{background:rgba(169,139,87,.2);border-color:var(--hair);}
.menu__clabel{font-size:.68rem;font-weight:700;letter-spacing:.05em;color:var(--gold-deep);}
/* 下向きの矢羽。開くと反転する */
.menu__carrow{flex:none;width:6px;height:6px;margin-bottom:2px;
  border-right:1.3px solid var(--gold-deep);border-bottom:1.3px solid var(--gold-deep);
  transform:rotate(45deg);transition:transform .3s;}
.menu__content[open] .menu__carrow{transform:rotate(-135deg);margin-bottom:-2px;}
/* 内訳は1列。2列だと項目が折り返して読みにくいため */
.menu__cbody{margin-top:.45rem;padding-left:.7rem;border-left:2px solid var(--hair);}
.menu__clist{list-style:none;margin:0;padding:0;}
.menu__clist li{position:relative;padding-left:.72rem;font-size:.69rem;line-height:1.8;color:var(--ink-soft);}
.menu__clist li::before{content:"";position:absolute;left:0;top:.66em;width:3px;height:3px;
  border-radius:50%;background:var(--gold);}
.menu__cnote{margin-top:.35rem;font-size:.62rem;line-height:1.7;color:var(--ink-soft);opacity:.85;}
.menu__desc{font-size:.72rem;color:var(--ink-soft);margin-top:.25rem;}
/* 価格欄はコース総額のみ。nowrap は金額の行だけに限定し、欄全体には掛けない
   （欄全体に掛けると幅が足りないとき .stage の overflow:hidden で切れるため）。 */
.menu__price{flex:none;max-width:42%;order:2;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.04rem;color:var(--gold-deep);text-align:right;}
.menu__price small{font-size:.68rem;font-weight:500;}
.menu__price .amount{display:block;white-space:nowrap;}
/* 都度払いはコース総額の直下に添える補足。総額より弱く見せる */
.menu__pay{display:block;margin-top:.2rem;font-size:.68rem;font-weight:500;letter-spacing:.02em;
  color:var(--ink-soft);white-space:nowrap;}
.menu__price small.unit{font-size:.66rem;color:var(--ink-soft);}
/* 税抜の断り書きはリスト冒頭に一度だけ（各行に置くと価格欄が必ず3行になるため） */
.menu__tax{text-align:right;font-size:.64rem;letter-spacing:.04em;color:var(--ink-soft);margin:0 0 .5rem;}
.menu__gnote{font-size:.68rem;color:var(--ink-soft);margin-top:.7rem;line-height:1.8;}
.menu__note{font-size:.64rem;color:var(--ink-soft);opacity:.78;margin-top:.9rem;line-height:1.8;}

/* ===== STAFF ===== */
.staff{display:flex;gap:1.2rem;align-items:flex-start;margin-top:.3rem;}
.staff__ph{width:108px;height:134px;flex:none;position:relative;overflow:hidden;
  background:radial-gradient(130% 110% at 35% 20%, var(--skin), #E5C9B4 70%, #DCBBA3 100%);box-shadow:0 0 0 1px rgba(169,139,87,.4);}
.staff__ph::before{content:"";position:absolute;inset:6px;border:1px solid rgba(255,255,255,.55);}
.staff__ph span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.56rem;letter-spacing:.1em;color:rgba(44,42,36,.5);text-align:center;}
.staff__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.staff__b{flex:1;min-width:0;}
.staff__role{font-family:'Cormorant Garamond',serif;font-size:.62rem;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;}
.staff__name{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.1rem;letter-spacing:.06em;margin:.25rem 0 .7rem;}
.staff__txt{font-size:.79rem;color:var(--ink-soft);line-height:1.95;}
.staff__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem;}
.staff__tags span{font-size:.64rem;letter-spacing:.04em;color:var(--gold-deep);border:1px solid var(--hair);padding:.18rem .6rem;border-radius:999px;}

/* ===== VOICE (Google review widget) ===== */
.grev{background:var(--white);border:1px solid var(--line);padding:1.2rem 1.2rem 1.3rem;margin-top:.3rem;}
.grev__sum{display:flex;align-items:center;gap:.85rem;padding-bottom:1rem;border-bottom:1px solid var(--line);}
.grev__sum svg{width:30px;height:30px;flex:none;}
.grev__score{font-size:1.5rem;font-weight:700;line-height:1;color:var(--ink);font-family:'Cormorant Garamond',serif;}
.grev__stars{color:#FBBC04;font-size:.82rem;letter-spacing:.06em;}
.grev__count{font-size:.66rem;color:var(--ink-soft);margin-top:.2rem;}
.grev__more{margin-left:auto;font-size:.66rem;font-weight:700;letter-spacing:.04em;color:var(--gold-deep);text-decoration:none;white-space:nowrap;border-bottom:1px solid var(--hair);padding-bottom:.15rem;}
.grev__list{display:flex;gap:1rem;margin-top:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:.6rem;}
.grev__list::-webkit-scrollbar{display:none;}
.grevc{flex:0 0 82%;scroll-snap-align:start;background:var(--white);border:1px solid var(--line);border-radius:8px;padding:var(--card-pad);}
.grevc__top{display:flex;align-items:center;gap:.6rem;}
.grevc__av{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;color:#fff;font-family:'Cormorant Garamond',serif;}
.grevc__nm{font-size:.82rem;font-weight:700;letter-spacing:.02em;}
.grevc__meta{display:flex;align-items:center;gap:.5rem;margin-top:.1rem;}
.grevc__st{color:#FBBC04;font-size:.7rem;letter-spacing:.04em;}
.grevc__dt{font-size:.62rem;color:var(--ink-soft);}
.grevc__g{margin-left:auto;width:15px;height:15px;flex:none;}
.grevc__bd{font-size:.78rem;color:var(--ink);line-height:1.9;margin-top:.55rem;}
.voice__note{font-size:.64rem;color:var(--ink-soft);opacity:.8;margin-top:.9rem;line-height:1.8;}

/* ===== NEWS / COLUMN TABS（独立カード） ===== */
.newscol{padding-top:var(--sec-gap);padding-bottom:0;}
.newscol__card{position:relative;background:var(--white);border:1px solid var(--line);
  padding:1.6rem 1.4rem;box-shadow:0 14px 36px rgba(120,98,66,.10);}
/* 上辺のゴールド極細アクセント */
.newscol__card::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold) 22%,var(--gold) 78%,transparent);pointer-events:none;}
.newscol .col__list{gap:.8rem;}

.news-list{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;}
.news-item{border-bottom:1px solid var(--line);}
.news-item:first-child{border-top:1px solid var(--line);}
.news-item > a{display:flex;flex-direction:column;gap:.25rem;padding:.95rem .2rem;text-decoration:none;color:inherit;transition:background .2s;}
.news-item > a:hover{background:rgba(169,139,87,.05);}
.news-item__meta{display:flex;align-items:center;gap:.7rem;}
.news-item time{font-family:'Cormorant Garamond',serif;font-size:.74rem;letter-spacing:.08em;color:var(--gold-deep);}
.news-item__t{font-size:.88rem;font-weight:500;line-height:1.65;letter-spacing:.02em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.news-item--empty{padding:1.1rem .2rem;color:var(--ink-soft);font-size:.8rem;}

/* ===== COLUMN ===== */
.col__list{display:flex;flex-direction:column;gap:.9rem;margin-top:.3rem;}
.colcard{display:flex;gap:1rem;align-items:stretch;background:var(--white);border:1px solid var(--line);padding:var(--card-pad);text-decoration:none;color:inherit;transition:box-shadow .3s,transform .3s;}
.colcard:hover{box-shadow:0 8px 22px rgba(120,98,66,.12);transform:translateY(-2px);}
/* 抜粋の有無でカード高が変わるため、サムネは本文の高さに追従させる（下に余白が空くのを防ぐ） */
.colcard__th{width:88px;min-height:66px;align-self:stretch;flex:none;position:relative;overflow:hidden;background:radial-gradient(130% 120% at 30% 20%, var(--skin), #E5C9B4 70%, #DCBBa3 100%);}
.colcard__th::before{content:"";position:absolute;inset:4px;border:1px solid rgba(255,255,255,.5);}
.colcard__th span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.52rem;letter-spacing:.1em;color:rgba(44,42,36,.5);text-align:center;padding:0 .3rem;}
.colcard__th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.colcard__b{flex:1;display:grid;grid-template-columns:auto 1fr;column-gap:.55rem;align-items:baseline;align-content:center;min-width:0;}
.colcard__cat{font-family:'Cormorant Garamond',serif;font-size:.58rem;letter-spacing:.16em;color:var(--gold);text-transform:uppercase;grid-row:1;grid-column:1;white-space:nowrap;}
.colcard__t{grid-row:2;grid-column:1 / -1;min-width:0;margin:.35rem 0 0;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:.85rem;letter-spacing:.03em;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.colcard__dt{grid-row:1;grid-column:2;justify-self:start;font-family:'Cormorant Garamond',serif;font-size:.66rem;letter-spacing:.1em;color:var(--ink-soft);}
/* 本文の書き出し（コラム一覧・検索結果） */
.colcard__ex{grid-row:3;grid-column:1 / -1;min-width:0;margin:.4rem 0 0;font-size:.72rem;line-height:1.75;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
/* アイキャッチなしの記事はサムネ枠を出さない。高さに余裕があるためタイトルは3行まで許容する */
.colcard--nothumb .colcard__t{-webkit-line-clamp:3;}
.col__note{font-size:.64rem;color:var(--ink-soft);opacity:.8;margin-top:.95rem;}


/* ===== GALLERY ===== */
.gallery__grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.3rem;}
.gallery__grid figure{position:relative;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--line);}
.gallery__grid figure:first-child{grid-column:1 / -1;aspect-ratio:16/9;}
.gallery__grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.gallery__grid figure:hover img{transform:scale(1.05);}

/* ===== hero inline CTA ===== */
.copy__cta{display:flex;gap:.6rem;margin-top:1.5rem;}
.copy__cta a{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-size:.82rem;font-weight:700;letter-spacing:.08em;padding:.95rem .4rem;text-decoration:none;}
.copy__cta .web{background:linear-gradient(135deg,#B5965F,#9A7C49);color:#fff;}
.copy__cta .line{background:var(--ink);color:#fff;}
.copy__cta .line .lg{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:5px;background:#06C755;color:#fff;font-size:.46rem;font-weight:700;}

/* ===== PROBLEM / empathy ===== */
.prob{position:relative;padding:var(--sec-gap) var(--pad-x) 0;}
.prob__lead{text-align:center;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.12rem;letter-spacing:.08em;line-height:2;margin-bottom:1.4rem;}
.prob__box{background:var(--white);border:1px solid var(--line);padding:1.45rem 1.4rem;display:flex;flex-direction:column;gap:.95rem;position:relative;}
.prob__box::before{content:"";position:absolute;inset:4px;border:1px solid rgba(169,139,87,.16);pointer-events:none;}
.prob__item{display:flex;gap:.7rem;align-items:flex-start;font-size:.86rem;line-height:1.75;position:relative;}
.prob__item svg{flex:none;width:19px;height:19px;margin-top:.15rem;stroke:var(--gold);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.prob__ans{text-align:center;margin-top:1.6rem;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.06rem;letter-spacing:.06em;line-height:1.9;}
.prob__ans b{color:var(--gold-deep);}
.prob__down{display:flex;justify-content:center;margin-top:1rem;}
.prob__down svg{width:20px;height:24px;stroke:var(--gold);fill:none;stroke-width:1.3;}

/* ===== mid CTA ===== */
.cta-mid{margin:2.6rem var(--pad-x) 0;padding:2rem 1.5rem;background:var(--white);border:1px solid var(--gold);text-align:center;position:relative;}
.cta-mid::before,.cta-mid::after{content:"";position:absolute;width:14px;height:14px;}
.cta-mid::before{top:5px;left:5px;border-top:1px solid var(--gold);border-left:1px solid var(--gold);}
.cta-mid::after{bottom:5px;right:5px;border-bottom:1px solid var(--gold);border-right:1px solid var(--gold);}
.cta-mid__en{font-family:'Cormorant Garamond',serif;letter-spacing:.3em;font-size:.66rem;text-transform:uppercase;color:var(--gold);margin-bottom:.6rem;}
.cta-mid__t{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.08rem;letter-spacing:.05em;line-height:1.85;}
.cta-mid__d{font-size:.78rem;color:var(--ink-soft);margin-top:.6rem;line-height:1.85;}
.cta-mid__btns{display:flex;gap:.6rem;margin-top:1.4rem;}
.cta-mid__btns a{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font-size:.82rem;font-weight:700;letter-spacing:.08em;padding:.95rem .4rem;text-decoration:none;}
.cta-mid__btns .web{background:linear-gradient(135deg,#B5965F,#9A7C49);color:#fff;}
.cta-mid__btns .line{background:var(--ink);color:#fff;}
.cta-mid__btns .line .lg{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:5px;background:#06C755;color:#fff;font-size:.46rem;font-weight:700;}

/* ===== final CTA (offer) ===== */
.cta-fin{position:relative;margin-top:3.2rem;padding:3rem var(--pad-x);overflow:hidden;color:var(--cream);
  background:radial-gradient(120% 75% at 82% -4%, rgba(169,139,87,.32), transparent 58%), linear-gradient(160deg,#342D23 0%,#272118 56%,#1E1912 100%);}
.cta-fin__ring{position:absolute;top:-110px;right:-110px;width:300px;height:300px;border-radius:50%;border:1px solid rgba(201,160,99,.28);pointer-events:none;}
.cta-fin__ring::before{content:"";position:absolute;inset:30px;border-radius:50%;border:1px solid rgba(201,160,99,.18);}
.cta-fin__in{position:relative;z-index:1;}
.cta-fin__en{font-family:'Cormorant Garamond',serif;letter-spacing:.34em;font-size:.7rem;text-transform:uppercase;color:#C9A063;margin-bottom:.7rem;}
.cta-fin__t{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.5rem;letter-spacing:.06em;line-height:1.65;}
.cta-fin__d{font-size:.82rem;color:rgba(255,255,255,.78);line-height:2;margin-top:.85rem;}
.cta-fin__btns{display:flex;flex-direction:column;gap:.65rem;margin-top:1.7rem;}
.cta-fin__btns a{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1.05rem .5rem;font-size:.9rem;font-weight:700;letter-spacing:.1em;text-decoration:none;}
.cta-fin__btns .web{background:linear-gradient(135deg,#D4B173,#A98B57);color:#2C2A24;}
.cta-fin__btns .line{background:#fff;color:var(--ink);}
.cta-fin__btns .line .lg{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;background:#06C755;color:#fff;font-size:.48rem;font-weight:700;}
.cta-fin__btns .tel{border:1px solid rgba(255,255,255,.4);color:#fff;}
.cta-fin__map{position:relative;height:118px;margin-top:1.8rem;overflow:hidden;background:linear-gradient(135deg,#3a3225,#2a2419);box-shadow:0 0 0 1px rgba(201,160,99,.3);}
.cta-fin__map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.3) sepia(.2);}
.cta-fin__map svg{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:26px;height:26px;stroke:#C9A063;fill:none;stroke-width:1.3;}
.cta-fin__map span{position:absolute;left:0;right:0;bottom:.55rem;text-align:center;font-size:.58rem;letter-spacing:.12em;color:rgba(255,255,255,.55);}
.cta-fin__info{margin-top:1.3rem;font-size:.74rem;color:rgba(255,255,255,.78);line-height:1.6;}
.cta-fin__info dl{display:flex;gap:.6rem;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.14);}
.cta-fin__info dt{flex:none;width:4.6rem;color:#C9A063;font-weight:700;}
.cta-fin__info dd{flex:1;}
.cta-fin__note{font-size:.62rem;color:rgba(255,255,255,.5);margin-top:.9rem;}

/* ===== FAQ ===== */
.faq__list{margin-top:.3rem;}
.faq__item{border-bottom:1px solid var(--line);}
.faq__item:first-child{border-top:1px solid var(--line);}
.faq__item summary{list-style:none;cursor:pointer;display:flex;gap:.7rem;align-items:flex-start;padding:1.1rem .2rem;}
.faq__item summary::-webkit-details-marker{display:none;}
.faq__item summary .q{flex:none;font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.02rem;line-height:1.3;color:var(--gold);}
.faq__item summary .t{flex:1;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:.9rem;letter-spacing:.03em;line-height:1.55;}
.faq__item summary .mk{flex:none;width:14px;height:14px;position:relative;margin-top:.3rem;transition:transform .3s;}
.faq__item summary .mk::before,.faq__item summary .mk::after{content:"";position:absolute;background:var(--gold);}
.faq__item summary .mk::before{top:6px;left:0;width:14px;height:1.4px;}
.faq__item summary .mk::after{top:0;left:6px;width:1.4px;height:14px;}
.faq__item[open] summary .mk{transform:rotate(135deg);}
/* 回答は複数行で書ける。pre-line なので改行はそのまま反映され、
   連続する空白（ソースのインデント等）は詰められる。 */
.faq__a{padding:0 .2rem 1.15rem 2rem;font-size:.8rem;color:var(--ink-soft);line-height:1.95;white-space:pre-line;}
.faq__note{font-size:.64rem;color:var(--ink-soft);opacity:.8;margin-top:.9rem;}

/* ===== FOOTER ===== */
.footer{position:relative;z-index:3;margin-top:var(--sec-gap);background:linear-gradient(160deg,#685847,#4A4034);color:rgba(255,255,255,.82);padding:2.8rem var(--pad-x) calc(2.8rem + 4.6rem);}
.footer__brand{font-family:'Cormorant Garamond',serif;font-size:1.6rem;letter-spacing:.3em;color:#fff;text-indent:.3em;}
.footer__sub{font-size:.7rem;letter-spacing:.08em;color:rgba(255,255,255,.6);margin-top:.4rem;}
.footer__lead{font-size:.74rem;line-height:1.95;color:rgba(255,255,255,.62);margin-top:1rem;max-width:30em;}
.footer__nav{display:grid;grid-template-columns:1fr 1fr;gap:0 1.2rem;margin:1.6rem 0;}
.footer__nav a{color:rgba(255,255,255,.82);text-decoration:none;font-size:.78rem;letter-spacing:.04em;padding:.62rem 0;border-bottom:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;}
.footer__nav a::after{content:"›";color:var(--gold);}
.footer__nap{font-size:.74rem;line-height:1.95;color:rgba(255,255,255,.72);border-top:1px solid rgba(255,255,255,.14);padding-top:1.3rem;}
.footer__nap b{color:#fff;font-weight:700;}
.footer__sns{display:flex;gap:.7rem;margin-top:1.2rem;}
.footer__sns a{display:inline-flex;align-items:center;gap:.4rem;font-size:.72rem;color:rgba(255,255,255,.8);text-decoration:none;border:1px solid rgba(255,255,255,.25);padding:.45rem .9rem;border-radius:999px;}
.footer__legal{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.4rem;font-size:.66rem;}
.footer__legal a{color:rgba(255,255,255,.6);text-decoration:none;}
.footer__copy{font-size:.62rem;color:rgba(255,255,255,.4);margin-top:1.1rem;font-family:'Cormorant Garamond',serif;letter-spacing:.1em;}

/* ===== fixed bottom CTA ===== */
.cta-fix{position:fixed;left:0;right:0;bottom:0;z-index:70;display:flex;gap:.5rem;max-width:440px;margin:0 auto;
  padding:.6rem .65rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(245,241,233,.94);backdrop-filter:blur(8px);border-top:1px solid var(--line);}
.cta-fix a{flex:1;position:relative;display:flex;align-items:center;justify-content:center;gap:.55rem;text-decoration:none;
  font-size:.85rem;font-weight:700;letter-spacing:.1em;padding:1rem .5rem;overflow:hidden;}
.cta-fix .web{background:linear-gradient(135deg,#B5965F,#9A7C49);color:#fff;}
.cta-fix .web small{margin-left:.1rem;font-size:.56rem;font-weight:700;letter-spacing:.06em;background:rgba(255,255,255,.22);border-radius:999px;padding:.06rem .4rem;}
.cta-fix .web::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;transform:skewX(-22deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);animation:sheen 4.5s ease-in-out infinite;}
@keyframes sheen{0%,72%{left:-60%}88%,100%{left:130%}}
.cta-fix .line{background:var(--ink);color:#fff;}
.cta-fix .line .lg{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;background:#06C755;color:#fff;font-size:.48rem;font-weight:700;}

/* ===== 全体：上部クリニックアクセント ===== */
.stage::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;z-index:35;
  background:linear-gradient(90deg,var(--gold) 0%,var(--sage) 50%,var(--gold) 100%);}

/* スタッフタグをクリニック調（セージ） */
.staff__tags span{color:var(--sage-deep);border-color:rgba(86,107,92,.32);}

/* ===== 404 ===== */
.error404{text-align:center;}
.e404__num{font-family:'Cormorant Garamond',serif;font-size:clamp(5rem,30vw,9rem);font-weight:600;line-height:1;color:rgba(169,139,87,.28);}
.e404__en{font-family:'Cormorant Garamond',serif;letter-spacing:.32em;font-size:.78rem;color:var(--sage-deep);text-transform:uppercase;margin-top:-.4rem;}
.e404__t{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.3rem;line-height:1.7;letter-spacing:.06em;margin:1.5rem 0 1rem;}
.e404__d{font-size:.84rem;color:var(--ink-soft);line-height:1.95;}
.e404__nav{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;max-width:420px;margin:2.1rem auto 0;text-align:left;}
.e404__nav a{display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:var(--white);border:1px solid var(--line);padding:.85rem 1rem;font-size:.82rem;font-weight:700;color:var(--ink);text-decoration:none;transition:border-color .25s,color .25s;}
.e404__nav a:hover{border-color:var(--sage);color:var(--sage-deep);}
.e404__nav a .a{color:var(--gold);}
.e404__home{display:inline-block;margin-top:1.9rem;background:var(--ink);color:var(--cream);font-size:.85rem;font-weight:700;letter-spacing:.06em;padding:.95rem 2.2rem;text-decoration:none;transition:background .25s;}
.e404__home:hover{background:var(--forest, #2C4435);}

/* ===== カテゴリ フィルタ（症例・コラム共通） ===== */
.cat-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.5rem;}
.cat-filter__btn{appearance:none;cursor:pointer;font-family:'Klee One',serif;
  font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--ink-soft);text-decoration:none;
  display:inline-flex;align-items:center;
  background:var(--white);border:1px solid var(--line);border-radius:999px;padding:.5rem 1.1rem;
  transition:background .25s,color .25s,border-color .25s;}
.cat-filter__btn:hover{border-color:var(--gold);color:var(--gold-deep);}
.cat-filter__btn.is-active{background:var(--gold);border-color:var(--gold);color:#fff;}

/* 一覧が0件のときの案内 */
.empty-note{margin:1.4rem 0 .4rem;padding:1.6rem 1.2rem;background:var(--white);border:1px solid var(--line);
  text-align:center;font-size:.8rem;line-height:1.95;color:var(--ink-soft);}
/* 症例カードで写真が未設定のとき（空の枠を出さない） */
.ccard__noimg{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;margin:.2rem 0;
  border:1px dashed var(--line);font-size:.62rem;letter-spacing:.06em;color:var(--ink-soft);}

/* ===== 症例一覧：2カラムグリッド（1件あたりの占有を抑えスクロール量を削減） ===== */
.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:0;padding:0;}
.case-grid .ccard{padding:.65rem .6rem .75rem;text-decoration:none;color:inherit;}
.case-grid .ccard__type{font-size:.68rem;letter-spacing:.06em;line-height:1.45;padding-bottom:.42rem;margin-bottom:.55rem;}
.case-grid .ccard__type::after{width:1.4rem;}
.case-grid .ccard__who{font-size:.64rem;letter-spacing:.04em;margin-top:.5rem;}
.case-grid .ccard__ba[data-ba]::after{font-size:.46rem;left:.25rem;bottom:.25rem;padding:.06rem .35rem;letter-spacing:.08em;}

/* ===== single / archive ===== */
.single__meta{font-family:'Cormorant Garamond',serif;font-size:.74rem;letter-spacing:.1em;color:var(--ink-soft);margin-top:.5rem;}
.single__casemeta{display:inline-block;font-size:.74rem;font-weight:700;letter-spacing:.06em;color:var(--gold-deep);border:1px solid var(--hair);border-radius:999px;padding:.2rem .8rem;margin:.2rem 0 1rem;}
.single__hero{margin:1.2rem 0;border:1px solid var(--line);overflow:hidden;}
.single__hero img{width:100%;height:auto;display:block;}
.single__ba{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:1.2rem 0;}
.single__ba figure{position:relative;border:1px solid var(--line);overflow:hidden;}
.single__ba figcaption{position:absolute;left:.4rem;top:.4rem;z-index:2;font-family:'Cormorant Garamond',serif;font-size:.6rem;letter-spacing:.14em;color:#fff;background:rgba(44,42,36,.6);padding:.1rem .55rem;border-radius:999px;}
.single__ba img{width:100%;height:100%;object-fit:cover;display:block;}
.single__body{font-size:.9rem;line-height:2.05;color:var(--ink);margin-top:1.4rem;}
.single__body p{margin:0 0 1.1em;}
.single__body h2{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.18rem;letter-spacing:.06em;margin:1.8em 0 .7em;padding-left:.8rem;border-left:3px solid var(--gold);}
.single__body h3{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.04rem;margin:1.5em 0 .5em;}
.single__body ul,.single__body ol{margin:0 0 1.1em;padding-left:1.5em;}
.single__body ul{list-style:disc;}
.single__body ol{list-style:decimal;}
.single__body li{margin:.3em 0;}
.single__body img{height:auto;margin:1em 0;border:1px solid var(--line);}
.single__body a{color:var(--gold-deep);text-decoration:underline;}
.single__body h4{font-family:'Noto Sans JP',sans-serif;font-size:.98rem;font-weight:700;letter-spacing:.04em;margin:1.4em 0 .4em;color:var(--ink);}
.single__body h5,.single__body h6{font-family:'Noto Sans JP',sans-serif;font-size:.9rem;font-weight:700;letter-spacing:.04em;margin:1.2em 0 .35em;color:var(--ink);}
.single__body ul ul,.single__body ol ol,.single__body ul ol,.single__body ol ul{margin:.3em 0 .3em 1.2em;}
.single__body pre{background:var(--cream-2);border:1px solid var(--line);border-radius:6px;padding:.9em 1em;margin:1.2em 0;overflow-x:auto;font-size:.82rem;line-height:1.7;}
.single__body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;background:var(--cream-2);padding:.1em .4em;border-radius:4px;}
.single__body pre code{background:none;padding:0;}
.single__body iframe,.single__body embed,.single__body object{max-width:100%;}
.single__body .wp-block-embed,.single__body .wp-video,.single__body video{max-width:100%;margin:1.2em 0;}
.single__body strong{font-weight:700;color:var(--gold-deep);}
.single__body em{font-style:italic;}
.single__body blockquote{margin:1.3em 0;padding:.85em 1.1em;border-left:3px solid var(--gold);background:var(--cream-2);color:var(--ink-soft);font-size:.86rem;border-radius:0 6px 6px 0;}
.single__body blockquote p:last-child{margin-bottom:0;}
.single__body table{width:100%;border-collapse:collapse;margin:1.3em 0;font-size:.84rem;}
.single__body th,.single__body td{border:1px solid var(--line);padding:.55em .7em;text-align:left;line-height:1.7;}
.single__body th{background:var(--cream-2);font-weight:700;}
.single__body hr{border:0;border-top:1px solid var(--line);margin:1.8em 0;}
.single__body .aligncenter{margin-left:auto;margin-right:auto;}
.single__body .alignleft{float:left;margin:0.4em 1.2em 0.8em 0;max-width:50%;}
.single__body .alignright{float:right;margin:0.4em 0 0.8em 1.2em;max-width:50%;}
.single__body figure.wp-caption{max-width:100%;}
.single__body .wp-caption-text,.single__body figcaption{font-size:.72rem;color:var(--ink-soft);text-align:center;margin-top:.4em;}
.single__body::after{content:"";display:block;clear:both;}
/* 法務・情報ページの定義リスト */
.legal dl{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line);margin:1.2em 0;}
.legal dl > div{display:grid;grid-template-columns:7.5rem 1fr;gap:.4rem 1rem;padding:.85rem .2rem;border-bottom:1px solid var(--line);}
.legal dl dt{font-weight:700;color:var(--gold-deep);font-size:.82rem;letter-spacing:.04em;}
.legal dl dd{font-size:.84rem;color:var(--ink);line-height:1.85;}
@media(max-width:430px){.legal dl > div{grid-template-columns:1fr;gap:.15rem;}.legal dl dt{font-size:.78rem;}}
.legal h2{font-size:1.08rem;}
.legal .legal-note{font-size:.72rem;color:var(--ink-soft);opacity:.85;}
.legal .legal-rev{margin-top:2rem;font-size:.72rem;color:var(--ink-soft);text-align:right;}

/* ===== 関連ページ導線（各ページ下部・行き止まりをなくす） ===== */
.pagelinks{margin-top:2.4rem;padding-top:1.5rem;border-top:1px solid var(--line);}
.pagelinks__t{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:.76rem;letter-spacing:.08em;
  color:var(--ink);margin-bottom:.85rem;}
.pagelinks__list{display:flex;flex-direction:column;}
.pagelinks__a{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  padding:.85rem .2rem;border-bottom:1px solid var(--line);text-decoration:none;
  font-size:.8rem;font-weight:700;letter-spacing:.04em;color:var(--ink);
  transition:color .25s,padding-left .25s;}
.pagelinks__a:first-child{border-top:1px solid var(--line);}
.pagelinks__a .a{flex:none;color:var(--gold);transition:transform .3s;}
.pagelinks__a:hover{color:var(--gold-deep);padding-left:.5rem;}
.pagelinks__a:hover .a{transform:translateX(3px);}

.single__back{margin:2.2rem 0 0;font-size:.8rem;}
.single__back a{color:var(--gold-deep);font-weight:700;letter-spacing:.04em;}
.single__pager{margin-top:2.4rem;text-align:center;}
.single__pager .nav-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.3rem;}
.single__pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;height:2.4rem;padding:0 .5rem;border:1px solid var(--line);background:var(--white);font-family:'Cormorant Garamond',serif;font-size:.9rem;color:var(--ink);text-decoration:none;transition:border-color .25s,color .25s,background .25s;}
.single__pager a.page-numbers:hover{border-color:var(--gold);color:var(--gold-deep);}
.single__pager .page-numbers.current{background:var(--gold);color:#fff;border-color:var(--gold);}
.single__pager .page-numbers.dots{border-color:transparent;background:none;min-width:1.4rem;color:var(--ink-soft);}
.single__pager .page-numbers.prev,.single__pager .page-numbers.next{font-family:inherit;font-size:.8rem;}
.pager__count{margin:.85rem 0 0;font-family:'Cormorant Garamond',serif;font-size:.72rem;letter-spacing:.1em;color:var(--ink-soft);}
/* 一覧の総件数 */
.list-count{margin:0 0 .9rem;font-size:.68rem;letter-spacing:.08em;color:var(--ink-soft);}

/* ===== Hamburger drawer nav ===== */
.tile--menu{border:none;font-family:inherit;}
.tile--menu .bars{position:relative;width:18px;height:12px;margin-bottom:2px;}
.tile--menu .bars i{position:absolute;left:0;right:0;height:1.6px;background:#fff;border-radius:2px;transition:transform .32s cubic-bezier(.2,.7,.2,1),opacity .2s;}
.tile--menu .bars i:nth-child(1){top:0;}
.tile--menu .bars i:nth-child(2){top:50%;transform:translateY(-50%);}
.tile--menu .bars i:nth-child(3){bottom:0;}
.tile--menu[aria-expanded="true"] .bars i:nth-child(1){top:50%;transform:translateY(-50%) rotate(45deg);}
.tile--menu[aria-expanded="true"] .bars i:nth-child(2){opacity:0;}
.tile--menu[aria-expanded="true"] .bars i:nth-child(3){bottom:auto;top:50%;transform:translateY(-50%) rotate(-45deg);}

.drawer-overlay{position:fixed;inset:0;z-index:92;background:rgba(31,28,22,.5);opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s;}
.drawer-overlay.is-open{opacity:1;visibility:visible;}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:95;width:min(86vw,338px);
  background:linear-gradient(165deg,#685847,#4A4034);color:rgba(255,255,255,.9);
  transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.2,1);
  overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4.4rem 1.7rem 2.2rem;box-shadow:-22px 0 54px rgba(0,0,0,.34);}
.drawer.is-open{transform:none;}
.drawer__close{position:absolute;top:1.1rem;right:1.2rem;width:40px;height:40px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:none;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;transition:background .25s;}
.drawer__close:hover{background:rgba(255,255,255,.1);}
/* ロゴ・ブランド名・サブコピーは中央よせ（ロゴは画像なので左右autoで中央に置く） */
/* パディングが非対称なのは意図的。ロゴの図案は文字が左寄り・金色の星が右へ張り出すため、
   画像を幾何学的に中央へ置くと左に寄って見える。
   下段の「NAIL SALON」の中心が白枠の中心に来るよう左右を、
   視覚的な重心（不透明度×暗さで加重）が中心に来るよう上下を調整している。
   左右の合計1.5rem・上下の合計1.2remは対称時と同じで、白枠のサイズは124x105pxのまま。 */
.drawer__logo{width:124px;height:auto;display:block;margin:0 auto .85rem;background:var(--white);padding:.38rem .25rem .82rem 1.25rem;border-radius:8px;}
.drawer__brand{font-family:'Cormorant Garamond',serif;font-size:1.7rem;letter-spacing:.3em;color:#fff;text-indent:.3em;line-height:1;text-align:center;}
.drawer__sub{font-size:.62rem;letter-spacing:.08em;color:rgba(255,255,255,.75);margin:.45rem 0 1.6rem;text-align:center;}
.drawer__nav{display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,.12);}
.drawer__nav a{display:flex;align-items:baseline;gap:.7rem;padding:.95rem .2rem;border-bottom:1px solid rgba(255,255,255,.12);font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:.98rem;letter-spacing:.06em;color:#fff;text-decoration:none;transition:color .25s,padding-left .25s;}
.drawer__nav a:hover{color:#D9CDB6;padding-left:.5rem;}
.drawer__nav a small{font-family:'Cormorant Garamond',serif;font-size:.56rem;letter-spacing:.2em;color:rgba(201,160,99,.85);text-transform:uppercase;margin-left:auto;font-weight:600;align-self:center;}
.drawer__cta{display:flex;flex-direction:column;gap:.6rem;margin-top:1.6rem;}
.drawer__cta a{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.92rem .5rem;font-size:.84rem;font-weight:700;letter-spacing:.06em;text-decoration:none;}
.drawer__cta .web{background:linear-gradient(135deg,#D4B173,#A98B57);color:#2C2A24;}
.drawer__cta .line{background:#fff;color:var(--ink);}
.drawer__cta .line .lg{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:5px;background:#06C755;color:#fff;font-size:.46rem;font-weight:700;}
.drawer__cta .tel{border:1px solid rgba(255,255,255,.34);color:#fff;font-family:'Cormorant Garamond',serif;font-size:1rem;letter-spacing:.04em;}
.drawer__cta .insta{border:1px solid rgba(255,255,255,.34);color:#fff;}
.igicon{flex:none;width:20px;height:20px;display:block;}
.drawer__info{margin-top:1.5rem;font-size:.68rem;line-height:1.85;color:rgba(255,255,255,.75);}
body.admin-bar .drawer{top:32px;}
@media screen and (max-width:782px){body.admin-bar .drawer{top:46px;}}

/* ===== reveal animations ===== */
.reveal{opacity:0;transform:translateY(16px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards;}
@keyframes rise{to{opacity:1;transform:none;}}
.d1{animation-delay:.3s}.d2{animation-delay:.45s}.d3{animation-delay:.62s}.d4{animation-delay:.8s}
.sr{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);}
.sr.is-in{opacity:1;transform:none;}
.no-js .sr{opacity:1;transform:none;}
/* キーフレーズの下線アニメ（スクロールで .is-in が付くとゴールド下線が伸びる） */
.uline{position:relative;white-space:nowrap;}
.uline::after{content:"";position:absolute;left:0;right:0;bottom:-.1em;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.2,.7,.2,1) .35s;}
.is-in .uline::after,.uline.is-in::after{transform:scaleX(1);}

/* ===== desktop decorative layer ===== */
.deco{display:none;}
@media (min-width:560px){
  .deco{display:block;position:fixed;inset:0;z-index:1;pointer-events:none;}
  .deco *{position:fixed;}
  .deco__rings{top:-160px;right:-160px;width:480px;height:480px;border-radius:50%;border:1px solid rgba(110,124,114,.26);}
  .deco__rings::before{content:"";position:absolute;inset:40px;border-radius:50%;border:1px solid rgba(110,124,114,.18);}
  .deco__rings::after{content:"";position:absolute;inset:88px;border-radius:50%;border:1px dashed rgba(110,124,114,.16);}
  .deco__dot{top:calc(-160px + 240px);right:calc(-160px + 240px);width:6px;height:6px;border-radius:50%;background:rgba(110,124,114,.6);transform:translate(50%,-50%);}
  .deco__sprig{bottom:9vh;left:max(3vw, calc(50% - 492px));opacity:.4;}
  .deco__sprig svg{display:block;}
  .deco__sprig .stem{stroke:rgba(96,110,100,.58);stroke-width:1.1;fill:none;stroke-linecap:round;}
  .deco__sprig .leaf{stroke:rgba(96,110,100,.5);stroke-width:1.1;fill:rgba(110,124,114,.1);}
  .deco__sprig .vein{stroke:rgba(96,110,100,.4);stroke-width:.8;fill:none;}
  .deco__cap{top:50%;right:max(3vw, calc(50% - 528px));transform:translateY(-50%);
    writing-mode:vertical-rl;font-family:'Cormorant Garamond',serif;letter-spacing:.46em;
    font-size:.72rem;color:rgba(90,104,96,.6);display:flex;align-items:center;gap:1.5rem;text-transform:uppercase;}
  .deco__cap::before,.deco__cap::after{content:"";width:1px;height:50px;background:linear-gradient(180deg,transparent,rgba(110,124,114,.6),transparent);}
  .deco__mk{color:rgba(110,124,114,.5);font-size:.7rem;line-height:1;animation:tw 4.5s ease-in-out infinite;}
  .deco__mk--1{top:24%;left:max(7vw, calc(50% - 400px));}
  .deco__mk--2{top:68%;right:max(8vw, calc(50% - 380px));font-size:.55rem;animation-delay:1.4s;}
  .deco__mk--3{top:40%;right:max(5vw, calc(50% - 470px));font-size:.5rem;animation-delay:2.6s;}
  @keyframes tw{0%,100%{opacity:.2;transform:scale(.85)}50%{opacity:.7;transform:scale(1)}}

  body{
    background-color:#E7EBE7;
    background-image:
      radial-gradient(42% 34% at 50% 38%, rgba(255,255,255,.94), transparent 72%),
      radial-gradient(52% 44% at 10% 12%, rgba(255,255,255,.6), transparent 62%),
      radial-gradient(56% 48% at 92% 88%, rgba(110,124,114,.16), transparent 60%),
      radial-gradient(58% 50% at 92% 8%, rgba(120,134,124,.12), transparent 62%),
      linear-gradient(158deg, #F4F6F3 0%, #E8ECE8 54%, #DBE1DC 100%);
    background-attachment:fixed;
  }
  body::before{
    content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.6;
    background-image:repeating-linear-gradient(90deg, rgba(86,107,92,.06) 0 1px, transparent 1px 60px);
    -webkit-mask-image:radial-gradient(circle at 50% 42%, transparent 30%, #000 82%);
            mask-image:radial-gradient(circle at 50% 42%, transparent 30%, #000 82%);
  }
  body::after{
    content:"ALLIE";position:fixed;top:50%;left:max(2.5vw, calc(50% - 540px));transform:translateY(-50%);
    writing-mode:vertical-rl;font-family:'Cormorant Garamond',serif;font-weight:500;
    font-size:9.5rem;letter-spacing:.34em;white-space:nowrap;
    color:transparent;-webkit-text-stroke:1px rgba(90,104,96,.16);
    z-index:0;pointer-events:none;}
  .stage{position:relative;z-index:2;margin:2.4rem auto;
    box-shadow:0 40px 90px rgba(60,74,66,.22), 0 0 0 1px rgba(110,124,114,.22), 0 0 0 10px rgba(255,255,255,.78);}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;}
  .reveal,.sr{opacity:1;transform:none;}
  .uline::after{transform:scaleX(1);}
}

/* WP admin bar adjust */
body.admin-bar .header{top:32px;}
@media screen and (max-width:782px){body.admin-bar .header{top:46px;}}

/* ===== UI/UX レビュー対応（A: a11y / B: 固定UI・スクロール / C: 整理） ===== */
/* a11y ユーティリティ */
/* .screen-reader-text は the_posts_pagination() 等のコア出力が使う。未定義だと見出しが画面に露出する */
.sr-only,.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:fixed;top:-80px;left:8px;z-index:200;background:var(--ink);color:#fff;padding:.7rem 1.1rem;border-radius:4px;font-size:.85rem;font-weight:700;text-decoration:none;transition:top .25s;}
.skip-link:focus{top:8px;}
/* フォーカス可視化（WCAG 2.4.7） */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px;border-radius:3px;}
.cta-fix a:focus-visible,.drawer a:focus-visible,.drawer__close:focus-visible,.cta-fin__btns a:focus-visible,.tile--menu:focus-visible,.atmos a:focus-visible,.about a:focus-visible{outline-color:#fff;}
/* B: 固定ヘッダー分のアンカー着地補正 */
html{scroll-padding-top:84px;}
body.admin-bar{scroll-padding-top:116px;}
/* C: 装飾的セクション番号を整理（連番の歯抜けによる階層混乱を解消） */
.sec__no{display:none;}
/* B: 下部固定CTAバー分のクリアランス（最下部要素の被り防止） */
.site-footer,.footer{scroll-margin-bottom:72px;}

/* finalCTA guide */
.cta-fin__guide{font-size:.72rem;line-height:1.7;color:rgba(255,255,255,.7);margin:.2rem 0 1rem;text-align:center;}
.cta-fin__guide b{color:#D4B173;font-weight:700;}
.cta-fin__btns a{flex-wrap:wrap;}
.cta-fin__btns a small{flex-basis:100%;text-align:center;font-size:.6rem;letter-spacing:.04em;margin-top:.15rem;}

/* ===== UI/UXレビュー対応 第2弾（中優先＋低優先） ===== */
.sec__en,.eyebrow,.step__en,.staff__role,.colcard__cat,.ccard__label,.cta-mid__en,.cta-fin__en{color:var(--gold-deep);}
.menu__name b{color:var(--gold-deep);}
.case__swipe{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:.2rem 0 .9rem;font-size:.66rem;letter-spacing:.1em;color:var(--ink-soft);}
.case__swipe::before,.case__swipe::after{content:"";width:1.4rem;height:1px;background:var(--hair);}
.nc-panel__sub{font-size:.7rem;color:var(--ink-soft);margin:0 0 .9rem;line-height:1.7;}
.drawer__nav a{min-height:48px;}
.tile--menu{box-shadow:0 2px 10px rgba(0,0,0,.18);}
.crumbs{font-size:.7rem;letter-spacing:.04em;color:var(--ink-soft);margin:0 0 1.1rem;display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;}
.crumbs a{color:var(--gold-deep);text-decoration:none;}
.crumbs a:hover{text-decoration:underline;}
.crumbs span[aria-current]{color:var(--ink);}
.crumbs i{color:var(--hair);font-style:normal;}
.single-cta{margin:2rem 0 .5rem;padding:1.4rem 1.3rem;background:var(--white);border:1px solid var(--gold);text-align:center;}
.single-cta__t{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1rem;letter-spacing:.04em;margin-bottom:.9rem;}
.single-cta__btns{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-top:1.3rem;}
.single-cta__btns a{flex:1;min-width:9rem;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.85rem .6rem;font-size:.82rem;font-weight:700;text-decoration:none;}
.single-cta__btns .web{background:linear-gradient(135deg,#B5965F,#9A7C49);color:#fff;}
.single-cta__btns .line{background:var(--ink);color:#fff;}
.single-cta__btns .line .lg{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:5px;background:#06C755;color:#fff;font-size:.46rem;font-weight:700;}
.single__nav{display:flex;justify-content:space-between;gap:1rem;margin-top:1.6rem;font-size:.8rem;}
.single__nav a{color:var(--gold-deep);font-weight:700;text-decoration:none;}

/* ===== 磨き込み第3弾：タイポ階層・装飾削減・プレースホルダ ===== */
.copy__h1{font-size:1.22rem;}
.sec__title{font-size:1.4rem;}
.cta-fin__t{font-size:1.62rem;}
.concept__msg{font-size:1.18rem;}
.concept__img::before,.product::before,.cta-mid::before,.cta-mid::after{display:none;}
.ph,.colcard__th,.staff__ph{background:linear-gradient(160deg,#F3EEE3,#E7DFCF);}
.ph span,.colcard__th span,.staff__ph span{color:var(--gold-deep);font-family:'Cormorant Garamond',serif;letter-spacing:.14em;}

/* drawer search */
.drawer__search{margin-top:1.4rem;}
.search-form{display:flex;border:1px solid rgba(255,255,255,.28);border-radius:999px;overflow:hidden;background:rgba(255,255,255,.06);}
.search-form__input{flex:1;min-width:0;background:none;border:none;color:#fff;font-size:.84rem;padding:.7rem 1rem;font-family:inherit;}
.search-form__input::placeholder{color:rgba(255,255,255,.5);}
.search-form__btn{flex:none;width:44px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.search-form__btn svg{width:18px;height:18px;stroke:#D9CDB6;fill:none;stroke-width:1.6;stroke-linecap:round;}
.sec .search-form{border-color:var(--line);background:var(--white);}
.sec .search-form__input{color:var(--ink);}
.sec .search-form__input::placeholder{color:var(--ink-soft);}
.sec .search-form__btn svg{stroke:var(--gold-deep);}
/* 検索結果ページの再検索フォーム */
.search-again{max-width:420px;margin:0 0 1.6rem;}

/* ===== 構成監査対応（v2.6.0）：Why定義・料金ダイジェスト・声プレースホルダ ===== */
/* 02 Why：深爪矯正とは／自爪育成とは 解説カード */

/* 料金ダイジェスト：通い方の目安モデル */

/* お客様の声：CMS未登録時の中立プレースホルダ（ダミー★/本文は出さない） */
.grev__empty{flex:0 0 100%;font-size:.82rem;line-height:1.95;color:var(--ink-soft);padding:.5rem .2rem;}

/* ===== HP回遊強化（v2.7.0）：クイックナビ＋サイト内のご案内 ===== */
/* ヒーロー直後のスリムなクイックナビ（6ページへの早期導線） */
.navstrip{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;padding:1.5rem 1.4rem .2rem;}
.navstrip__link{font-size:.72rem;letter-spacing:.04em;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.42rem .9rem;background:var(--white);text-decoration:none;transition:background .2s,color .2s,border-color .2s;}
.navstrip__link:hover,.navstrip__link:focus-visible{background:var(--gold);color:#fff;border-color:var(--gold);}

/* 最下部ハブ：サイト内のご案内 カードグリッド */

/* ===== お知らせ・コラムをタブ廃止で両方常時表示（v2.7.5） ===== */
.nc-block + .nc-block{margin-top:2rem;}
.nc-block__h{display:inline-flex;align-items:baseline;gap:.55rem;font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.04rem;letter-spacing:.08em;color:var(--ink);line-height:1.3;border-bottom:2px solid var(--gold);padding-bottom:.32rem;margin-bottom:.2rem;}
.nc-block__h small{font-family:'Cormorant Garamond',serif;font-size:.5rem;letter-spacing:.22em;color:rgba(169,139,87,.85);text-transform:uppercase;font-weight:600;}
.nc-block .nc-panel__sub{margin-top:.7rem;}
/* 見出しの横に「一覧 →」ボタンを配置 */
.nc-block__head{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem;margin-bottom:.2rem;}
.nc-block__head .nc-block__h{margin-bottom:0;}
.nc-block__head .sec__more{flex:none;}
/* お知らせ：見出し直下の罫線（1件目の上罫線）を除去 */
.newscol .news-item:first-child{border-top:none;}

/* ===== 下層ページ共通 HERO画像セクション（v2.8.0） ===== */
.phero{position:relative;min-height:248px;display:flex;align-items:flex-end;overflow:hidden;background:var(--cream);}
.phero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* 上部(ヘッダー帯)は淡く＝ブランド文字を可読に、下部はタイトル用に暗く */
/* background-color がマスク、その上に既存のグラデーション（上部のクリーム抜き＋下部の締め）が乗る */
.phero__veil{position:absolute;inset:0;background-color:var(--phero-mask);background-image:linear-gradient(180deg,rgba(246,242,235,.55) 0,rgba(246,242,235,.12) 78px,rgba(31,28,22,.08) 42%,rgba(31,28,22,.58) 100%);}
.phero--light .phero__veil{background-color:var(--phero-mask-light);}
.phero__in{position:relative;z-index:2;width:100%;padding:0 1.6rem 1.5rem;color:#fff;}
.phero__en{font-family:'Cormorant Garamond',serif;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;color:#EAD9B5;margin-bottom:.35rem;text-shadow:0 1px 8px rgba(0,0,0,.25);}
.phero__t{font-family:'Noto Sans JP',sans-serif;font-weight:700;font-size:1.5rem;letter-spacing:.06em;line-height:1.45;text-shadow:0 2px 14px rgba(0,0,0,.32);}

/* ===== フッターのGoogleマップ埋め込み（v2.8.3） ===== */
.footer__map{position:relative;height:168px;margin-top:1.3rem;overflow:hidden;border:1px solid rgba(255,255,255,.16);}
.footer__map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.25) sepia(.12);}

/* ===== PC版：固定ヘッダーを中央ステージの上端に揃える（v2.8.7） ===== */
@media (min-width:560px){
  .header{top:2.4rem;}
  body.admin-bar .header{top:calc(2.4rem + 32px);}
}

/* ===== PC（≥1100px）：ヘッダー固定解除＋ハンバーガー廃止、ナビは左に常時オープン（v2.9.0） ===== */
@media (min-width:1100px){
  /* ヘッダーは固定せずステージ内で通常スクロール、ハンバーガー（Menu）は削除 */
  .header{position:absolute;top:0;}
  body.admin-bar .header{top:0;}
  .actions{display:none;}
  /* 左の装飾縦書きALLIEはナビと干渉するため非表示 */
  body::after{display:none;}
  /* ドロワーをステージ左に常時オープン表示（オーバーレイ・×ボタンなし） */
  .drawer-overlay{display:none !important;}
  .drawer__close{display:none;}
  .drawer{
    transform:none;
    top:2.4rem; bottom:auto;
    right:auto; left:calc(50% - 528px);
    width:280px; max-height:calc(100vh - 4.8rem);
    padding-top:2.2rem;
    box-shadow:0 30px 70px rgba(40,38,33,.26);
  }
  body.admin-bar .drawer{top:calc(2.4rem + 32px);max-height:calc(100vh - 4.8rem - 32px);}
  /* Heroのロゴはトルツメ（PCはドロワー内にロゴ＋ALLIEを表示） */
  .header{display:none;}
  /* コンテンツの左右余白を統一（FVも他セクションと同じ --pad-x に揃える） */
  .hero{padding:2.2rem var(--pad-x) 0;}
}

/* LINEボタンのアイコン（公式ブランドアイコンを無加工で使用） */
.lineicon{flex:none;width:22px;height:22px;display:block;border-radius:0;background:none;}
/* WEB予約ボタンのアイコン（カレンダー＋チェック・黒線画／基本は白に反転、濃色文字ボタンのみ黒） */
.wicon{flex:none;width:18px;height:18px;display:inline-block;vertical-align:middle;filter:brightness(0) invert(1);}
.drawer__cta .web .wicon{filter:none;}
