/* =========================================================
   合同会社秋美  AKIMI — Beauty Journey
   Design system: 静謐な翡翠と金
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
  --jade-900:#0a1f1a;
  --jade-800:#0d271f;
  --jade-700:#0f2e27;   /* base brand */
  --jade-600:#16453a;
  --jade-500:#2c5e51;
  --sage:#7fae9d;
  --sage-soft:#a9c6bb;

  --gold:#cdb87f;
  --gold-bright:#ddc98f;
  --gold-deep:#b08d4f;

  --cream:#f6f1e7;
  --paper:#fbf8f1;
  --paper-2:#f1ead9;

  --ink:#16201c;
  --text:#23302b;
  --text-muted:#5e6c66;
  --on-dark:#ece6d8;
  --on-dark-muted:#b8c3bb;

  --maxw:1200px;
  --gutter:clamp(20px,5vw,64px);
  --radius:3px;

  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Noto Sans JP","Zen Kaku Gothic New",sans-serif;
  --head:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;

  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--text);
  background:var(--paper);
  line-height:1.85;
  font-weight:400;
  letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{font-family:var(--head);font-weight:700;line-height:1.4;margin:0;letter-spacing:.03em;}
p{margin:0;}
ul{margin:0;padding:0;list-style:none;}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);}
.section{padding-block:clamp(72px,10vw,140px);}
.section--tight{padding-block:clamp(56px,7vw,96px);}
.section--cream{background:var(--cream);}
.section--paper2{background:var(--paper-2);}
.section--jade{background:var(--jade-700);color:var(--on-dark);}
.section--jade h1,.section--jade h2,.section--jade h3{color:var(--on-dark);}

/* ---------- Type helpers ---------- */
.eyebrow{
  font-family:var(--serif);
  font-size:clamp(15px,1.4vw,18px);
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--gold-deep);
  display:inline-flex;
  align-items:center;
  gap:.7em;
  font-weight:600;
  font-style:italic;
}
.section--jade .eyebrow{color:var(--gold);}
.eyebrow::before{content:"◇";font-style:normal;font-size:.7em;letter-spacing:0;color:var(--gold);}

.headline{
  font-size:clamp(28px,4.4vw,52px);
  line-height:1.34;
  letter-spacing:.04em;
  color:var(--ink);
}
.section--jade .headline,
.hero .headline,
.page-hero .headline,
.cta-band .headline{color:var(--on-dark);}
.lead{
  font-size:clamp(16px,1.5vw,19px);
  color:var(--text-muted);
  max-width:62ch;
}
.section--jade .lead{color:var(--on-dark-muted);}

.serif-num{font-family:var(--head);font-weight:600;}

/* ---------- Gold rule / motif ---------- */
.rule{display:flex;align-items:center;gap:14px;margin:26px 0;}
.rule::before,.rule::after{content:"";height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);flex:1;}
.rule__d{width:7px;height:7px;border:1px solid var(--gold);transform:rotate(45deg);flex:none;}
.rule--left{justify-content:flex-start;}
.rule--left::after{display:none;}
.rule--left::before{flex:none;width:54px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--head);font-weight:500;
  font-size:15px;letter-spacing:.12em;
  padding:16px 34px;border:1px solid transparent;border-radius:var(--radius);
  transition:all .4s var(--ease);
  white-space:nowrap;
}
.btn__arrow{font-family:var(--serif);font-style:italic;transition:transform .4s var(--ease);}
.btn:hover .btn__arrow{transform:translateX(5px);}
.btn--gold{background:var(--gold);color:var(--jade-900);}
.btn--gold:hover{background:var(--gold-bright);box-shadow:0 12px 30px -12px rgba(176,141,79,.7);}
.btn--ghost{border-color:var(--gold);color:var(--gold);background:transparent;}
.btn--ghost:hover{background:var(--gold);color:var(--jade-900);}
.btn--dark{background:var(--jade-700);color:var(--on-dark);}
.btn--dark:hover{background:var(--jade-600);}

/* ---------- Placeholder imagery ---------- */
.ph{
  position:relative;overflow:hidden;background:var(--jade-800);
  border:1px solid rgba(205,184,127,.28);
  display:flex;align-items:center;justify-content:center;
}
.ph::before{
  content:"";position:absolute;inset:0;opacity:.5;
  background:
    repeating-linear-gradient(135deg,rgba(205,184,127,.10) 0 1px,transparent 1px 11px);
}
.ph__label{
  position:relative;z-index:1;
  font-family:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace;
  font-size:12px;letter-spacing:.12em;color:rgba(205,184,127,.85);
  text-align:center;padding:8px 14px;
  border:1px solid rgba(205,184,127,.4);border-radius:2px;
  background:rgba(10,31,26,.45);
  max-width:80%;
}
.ph--light{background:var(--paper-2);border-color:rgba(176,141,79,.3);}
/* Real image inside placeholder shell */
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.ph--light::before{background:repeating-linear-gradient(135deg,rgba(176,141,79,.12) 0 1px,transparent 1px 11px);}
.ph--light .ph__label{color:var(--gold-deep);border-color:rgba(176,141,79,.45);background:rgba(251,248,241,.6);}

/* =========================================================
   Header
   ========================================================= */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(251,248,241,.86);
  backdrop-filter:saturate(140%) blur(12px);
  border-bottom:1px solid rgba(176,141,79,.18);
  transition:background .4s var(--ease),border-color .4s var(--ease);
}
.site-header[data-theme="dark"]{
  background:rgba(13,39,31,.72);
  border-bottom-color:rgba(205,184,127,.2);
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:78px;}
.brand{display:flex;align-items:center;line-height:1;text-decoration:none;}
.brand__logo{height:52px;width:auto;display:block;transition:opacity .4s var(--ease);}
/* dark header → dark logo (white/gold text) */
.brand__logo--dark{display:block;}
.brand__logo--light{display:none;}
.site-header:not([data-theme="dark"]) .brand__logo--dark{display:none;}
.site-header:not([data-theme="dark"]) .brand__logo--light{display:block;}
/* footer always dark */
.site-footer .brand__logo--dark{display:block;}
.site-footer .brand__logo--light{display:none;}
/* fallback for old .brand__mark / .brand__en if still present */
.brand__mark,.brand__en{display:none;}

.nav__links{display:flex;align-items:center;gap:clamp(18px,2.4vw,38px);}
.nav__link{
  font-family:var(--head);font-weight:500;font-size:15px;letter-spacing:.06em;
  color:var(--text);padding:6px 0;position:relative;
}
.site-header[data-theme="dark"] .nav__link{color:var(--on-dark);}
.nav__link::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;
  background:var(--gold);transition:right .35s var(--ease);
}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{right:0;}
.nav__link[aria-current="page"]{color:var(--gold-deep);}
.site-header[data-theme="dark"] .nav__link[aria-current="page"]{color:var(--gold);}

.nav__cta{margin-left:6px;}
.nav__links .btn{padding:12px 24px;font-size:14px;}

.nav__toggle{
  display:none;width:46px;height:46px;border:1px solid rgba(176,141,79,.4);
  background:transparent;border-radius:var(--radius);position:relative;
}
.nav__toggle span,.nav__toggle span::before,.nav__toggle span::after{
  content:"";position:absolute;left:50%;top:50%;width:20px;height:1.5px;
  background:var(--jade-700);transform:translate(-50%,-50%);transition:.3s var(--ease);
}
.site-header[data-theme="dark"] .nav__toggle span,
.site-header[data-theme="dark"] .nav__toggle span::before,
.site-header[data-theme="dark"] .nav__toggle span::after{background:var(--on-dark);}
.nav__toggle span::before{transform:translate(-50%,-7px);}
.nav__toggle span::after{transform:translate(-50%,7px);}
body.nav-open .nav__toggle span{background:transparent;}
body.nav-open .nav__toggle span::before{transform:translate(-50%,0) rotate(45deg);}
body.nav-open .nav__toggle span::after{transform:translate(-50%,0) rotate(-45deg);}

/* ---------- Footer ---------- */
.site-footer{background:var(--jade-900);color:var(--on-dark-muted);padding-block:clamp(56px,7vw,88px) 36px;}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;}
.footer__brand .brand__mark{color:var(--on-dark);}
.footer__desc{margin-top:20px;max-width:38ch;font-size:14.5px;line-height:1.9;color:var(--on-dark-muted);}
.footer__h{font-family:var(--head);font-size:13px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;margin-bottom:18px;font-weight:600;}
.footer__list li{margin-bottom:11px;font-size:14.5px;}
.footer__list a{color:var(--on-dark-muted);transition:color .3s;}
.footer__list a:hover{color:var(--gold-bright);}
.footer__contact{font-size:14.5px;line-height:2;}
.footer__contact strong{color:var(--on-dark);font-weight:500;}
.footer__bottom{margin-top:48px;padding-top:24px;border-top:1px solid rgba(205,184,127,.16);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:12.5px;letter-spacing:.08em;color:var(--on-dark-muted);}
.footer__bottom .serif{font-family:var(--serif);font-style:italic;letter-spacing:.16em;}

/* =========================================================
   Reveal animation
   ========================================================= */
.reveal{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
.reveal.is-in{opacity:1;transform:none;}
.reveal[data-d="1"]{transition-delay:.12s;}
.reveal[data-d="2"]{transition-delay:.24s;}
.reveal[data-d="3"]{transition-delay:.36s;}
.reveal[data-d="4"]{transition-delay:.48s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* =========================================================
   Hero (home) — Pattern B: 斜め分割
   ========================================================= */
.hero{
  position:relative;background:var(--jade-800);color:var(--on-dark);
  overflow:hidden;isolation:isolate;
  display:flex;align-items:center;
  min-height:100svh;
}

/* Right diagonal photo */
.hero-b__photo{
  position:absolute;top:0;right:0;bottom:0;width:52%;
  clip-path:polygon(10% 0,100% 0,100% 100%,0% 100%);
  z-index:0;
}
.hero-b__photo .ph{position:absolute;inset:0;border:none;}
.hero-b__photo .ph::before{opacity:.45;}
/* Subtle inner veil on the photo side */
.hero-b__photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(13,39,31,.82) 0%,rgba(13,39,31,.18) 40%,transparent 70%);
  pointer-events:none;
}
.hero-b__photo-cap{
  position:absolute;bottom:32px;right:36px;z-index:2;
  font-family:var(--serif);font-style:italic;
  font-size:12px;letter-spacing:.26em;color:rgba(205,184,127,.55);
  text-transform:uppercase;
}

/* Left content */
.hero-b__inner{
  position:relative;z-index:2;
  padding-block:clamp(130px,17vw,200px);
  max-width:580px;
}

.hero-b__eyebrow{
  font-family:var(--serif);font-style:italic;
  font-size:13px;letter-spacing:.36em;color:var(--gold);
  text-transform:uppercase;
  display:flex;align-items:center;gap:12px;
  margin-bottom:24px;
}
.hero-b__eyebrow::before{content:"";width:32px;height:1px;background:var(--gold);}

.hero .headline{font-size:clamp(36px,4.6vw,62px);line-height:1.3;}

.hero-b__sub{
  margin-top:22px;
  font-size:clamp(15px,1.5vw,16.5px);line-height:2;
  color:var(--on-dark-muted);max-width:38ch;
}

.hero__cta{display:flex;gap:16px;flex-wrap:wrap;margin-top:40px;}

/* Counters bottom-right */
.hero-b__counters{
  position:absolute;bottom:36px;right:clamp(40px,5vw,72px);
  display:flex;align-items:center;gap:22px;z-index:5;
}
.hero-b__cnt{text-align:center;}
.hero-b__cnt-n{
  font-family:var(--head);font-weight:700;
  font-size:30px;color:var(--gold);line-height:1;
}
.hero-b__cnt-l{font-size:11.5px;letter-spacing:.1em;color:var(--on-dark-muted);margin-top:6px;}
.hero-b__cnt-div{width:1px;height:38px;background:rgba(205,184,127,.28);}

/* ── Hero entry animation (above-fold: CSS only, no IntersectionObserver) ── */
@keyframes heroFadeUp{
  from{transform:translateY(22px);}
  to{transform:none;}
}
@media(prefers-reduced-motion:no-preference){
  .hero-ani{
    animation:heroFadeUp .9s cubic-bezier(.22,.61,.36,1) both;
    animation-delay:calc(.12s + var(--ai,0) * .14s);
  }
}
/* reduced-motion: no animation at all */
@media(prefers-reduced-motion:reduce){
  .hero-ani{animation:none;}
}

/* Scroll indicator */
.hero__scroll{
  position:absolute;bottom:28px;left:var(--gutter);
  font-family:var(--serif);font-style:italic;
  letter-spacing:.24em;font-size:12px;color:var(--gold);
  text-transform:uppercase;
  display:flex;align-items:center;gap:10px;z-index:5;
}
.hero__scroll::after{content:"";width:38px;height:1px;background:var(--gold);}

/* Responsive */
@media(max-width:860px){
  .hero{min-height:auto;}
  .hero-b__photo{
    position:relative;width:100%;height:240px;clip-path:none;
    order:-1;
  }
  .hero-b__photo .ph{position:absolute;inset:0;}
  .hero-b__photo::after{background:linear-gradient(180deg,transparent 40%,rgba(13,39,31,.9));}
  .hero{flex-direction:column;}
  .hero-b__inner{padding-block:48px 24px;}
  .hero-b__counters{position:static;padding:0 var(--gutter) 36px;width:100%;justify-content:center;}
  .hero__scroll{display:none;}
}
@media(max-width:480px){
  .hero-b__counters{gap:16px;}
  .hero-b__cnt-n{font-size:24px;}
}

/* ── Page hero: above-fold reveals use CSS keyframes (not IntersectionObserver) ── */
.page-hero .reveal{
  opacity:1;
  animation:heroFadeUp .9s cubic-bezier(.22,.61,.36,1) both;
  animation-delay:.06s;
}
.page-hero .reveal[data-d="1"]{animation-delay:.18s;}
.page-hero .reveal[data-d="2"]{animation-delay:.30s;}
.page-hero .reveal[data-d="3"]{animation-delay:.42s;}
@media(prefers-reduced-motion:reduce){
  .page-hero .reveal{animation:none;}
}

/* ---------- Page hero (interior) ---------- */
.page-hero{background:var(--jade-700);color:var(--on-dark);position:relative;overflow:hidden;}
.page-hero__veil{position:absolute;inset:0;background:radial-gradient(110% 120% at 85% -10%,rgba(205,184,127,.14),transparent 55%);}
.page-hero__inner{position:relative;padding-block:clamp(74px,9vw,128px);max-width:720px;}
.page-hero .headline{font-size:clamp(30px,4.6vw,54px);}
.breadcrumb{font-size:13px;letter-spacing:.1em;color:var(--on-dark-muted);margin-bottom:22px;font-family:var(--head);}
.breadcrumb a:hover{color:var(--gold);}
.breadcrumb span{margin:0 8px;color:var(--gold);}

/* =========================================================
   Strengths
   ========================================================= */
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,80px);align-items:center;}
.intro-grid .ph{aspect-ratio:4/5;}
.strength-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px;}
.s-card{background:var(--paper);border:1px solid rgba(176,141,79,.22);padding:42px 34px;position:relative;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s;}
.section--jade .s-card{background:var(--jade-600);border-color:rgba(205,184,127,.22);}
.s-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -28px rgba(15,46,39,.45);border-color:var(--gold);}
.s-card__no{font-family:var(--head);font-weight:700;font-size:46px;color:var(--gold-deep);line-height:1;}
.section--jade .s-card__no{color:var(--gold);}
.s-card__t{font-size:21px;margin:16px 0 12px;color:var(--ink);letter-spacing:.04em;}
.section--jade .s-card__t{color:var(--on-dark);}
.s-card__p{font-size:14.5px;color:var(--text-muted);line-height:1.95;}
.section--jade .s-card__p{color:var(--on-dark-muted);}

/* ---------- Stats ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.stat{text-align:center;padding:8px;}
.stat__n{font-family:var(--head);font-weight:700;font-size:clamp(40px,5vw,60px);color:var(--gold);line-height:1;}
.stat__l{margin-top:12px;font-size:13.5px;letter-spacing:.08em;color:var(--on-dark-muted);}

/* =========================================================
   Plans (cards)
   ========================================================= */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:56px;}
.plan{background:var(--paper);border:1px solid rgba(176,141,79,.24);display:flex;flex-direction:column;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);}
.plan:hover{transform:translateY(-6px);box-shadow:0 30px 56px -30px rgba(15,46,39,.4);}
.plan__img{aspect-ratio:3/2;}
.plan__body{padding:30px 30px 34px;display:flex;flex-direction:column;flex:1;}
.plan__no{font-family:var(--head);font-weight:500;font-size:13px;letter-spacing:.2em;color:var(--gold-deep);}
.plan__t{font-size:23px;margin:8px 0 14px;color:var(--ink);}
.plan__p{font-size:14.5px;color:var(--text-muted);line-height:1.95;flex:1;}
.plan__meta{display:flex;gap:18px;margin-top:22px;padding-top:20px;border-top:1px solid rgba(176,141,79,.22);font-size:13px;color:var(--text-muted);}
.plan__meta b{display:block;font-family:var(--head);font-size:20px;color:var(--gold-deep);font-weight:700;}
.plan__link{margin-top:22px;font-family:var(--head);font-weight:500;font-size:14px;letter-spacing:.08em;color:var(--jade-600);display:inline-flex;gap:.5em;align-items:center;}
.plan__link .btn__arrow{font-family:var(--serif);font-style:italic;}
.plan__link:hover{color:var(--gold-deep);}

/* ---------- Featured / CTA band ---------- */
.cta-band{background:var(--jade-700);color:var(--on-dark);text-align:center;}
.cta-band .headline{margin-inline:auto;}
.cta-band .lead{margin:22px auto 0;text-align:center;}
.cta-band__btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:38px;}

/* =========================================================
   Tours page
   ========================================================= */
.tour-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:center;}
.tour-row + .tour-row{margin-top:clamp(64px,8vw,108px);}
.tour-row--rev .tour-row__media{order:2;}
.tour-row__media .ph{aspect-ratio:4/3;}
.tour-row__no{font-family:var(--head);font-weight:500;font-size:14px;letter-spacing:.2em;color:var(--gold-deep);}
.tour-row__t{font-size:clamp(24px,3vw,34px);margin:10px 0 18px;color:var(--ink);}
.tour-feat{margin-top:24px;display:grid;gap:12px;}
.tour-feat li{display:flex;gap:12px;font-size:15px;color:var(--text);align-items:flex-start;}
.tour-feat li::before{content:"◇";color:var(--gold-deep);font-size:11px;line-height:1.9;flex:none;}
.tour-row__price{margin-top:26px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}
.tour-row__price .amt{font-family:var(--head);font-weight:700;font-size:30px;color:var(--jade-600);}
.tour-row__price .unit{font-size:13px;color:var(--text-muted);}

/* ---------- Procedures ---------- */
.proc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-top:48px;}
.proc{background:var(--jade-600);border:1px solid rgba(205,184,127,.22);padding:26px 24px;transition:.45s var(--ease);}
.proc:hover{border-color:var(--gold);background:var(--jade-500);}
.proc__t{font-size:17px;color:var(--on-dark);margin-bottom:8px;letter-spacing:.05em;}
.proc__p{font-size:13.5px;color:var(--on-dark-muted);line-height:1.85;}

/* ---------- Process steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:52px;counter-reset:step;}
.step{position:relative;padding-top:30px;}
.step::before{counter-increment:step;content:"0" counter(step);font-family:var(--head);font-weight:700;
  font-size:30px;color:var(--gold-deep);position:absolute;top:-8px;left:0;}
.step__t{font-size:18px;color:var(--ink);margin:6px 0 10px;}
.step__p{font-size:14px;color:var(--text-muted);line-height:1.9;}
.step__bar{height:1px;background:linear-gradient(90deg,var(--gold),transparent);margin-bottom:18px;}

/* =========================================================
   Voices
   ========================================================= */
.voice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;}
.voice{background:var(--paper);border:1px solid rgba(176,141,79,.22);padding:38px 36px;position:relative;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);}
.voice:hover{transform:translateY(-5px);box-shadow:0 26px 50px -30px rgba(15,46,39,.4);}
.voice__q{font-family:var(--serif);font-style:italic;font-size:64px;line-height:.6;color:rgba(176,141,79,.4);height:30px;}
.voice__t{font-size:19px;color:var(--ink);margin:6px 0 14px;letter-spacing:.03em;}
.voice__p{font-size:15px;color:var(--text);line-height:2;}
.voice__meta{margin-top:24px;padding-top:20px;border-top:1px solid rgba(176,141,79,.22);
  display:flex;align-items:center;gap:14px;}
.voice__avatar{width:46px;height:46px;border-radius:50%;flex:none;
  background:var(--jade-600);border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-style:italic;color:var(--gold);font-size:18px;}
.voice__who{font-size:14px;color:var(--text-muted);line-height:1.6;}
.voice__who b{display:block;color:var(--ink);font-weight:500;font-size:15px;}
.voice__plan{margin-left:auto;font-size:11.5px;letter-spacing:.06em;color:var(--gold-deep);
  border:1px solid rgba(176,141,79,.4);padding:5px 11px;border-radius:2px;}

/* =========================================================
   Company
   ========================================================= */
.philo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:center;}
.philo .ph{aspect-ratio:1/1;}
.info-table{width:100%;border-collapse:collapse;}
.info-table th,.info-table td{text-align:left;padding:22px 8px;border-bottom:1px solid rgba(176,141,79,.24);vertical-align:top;font-size:15.5px;}
.info-table th{width:30%;font-family:var(--head);font-weight:500;color:var(--jade-600);letter-spacing:.06em;white-space:nowrap;}
.info-table td{color:var(--text);line-height:1.9;}
.map-ph{aspect-ratio:21/9;margin-top:0;}

/* =========================================================
   Contact form
   ========================================================= */
.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(40px,6vw,80px);align-items:start;}
.contact-aside__t{font-size:clamp(24px,3vw,32px);color:var(--ink);margin-bottom:18px;}
.contact-aside p{font-size:15px;color:var(--text-muted);line-height:2;}
.contact-aside__info{margin-top:32px;display:grid;gap:20px;}
.ci{display:flex;gap:16px;align-items:flex-start;}
.ci__k{font-family:var(--serif);font-style:italic;font-size:13px;letter-spacing:.2em;color:var(--gold-deep);
  text-transform:uppercase;width:74px;flex:none;padding-top:3px;}
.ci__v{font-size:15.5px;color:var(--text);line-height:1.7;}
.ci__v b{font-weight:500;}

.form{background:var(--paper);border:1px solid rgba(176,141,79,.24);padding:clamp(28px,4vw,48px);}
.field{margin-bottom:24px;}
.field__row{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.field label{display:block;font-family:var(--head);font-weight:500;font-size:14px;letter-spacing:.05em;color:var(--ink);margin-bottom:9px;}
.field label .req{color:var(--gold-deep);font-size:11px;margin-left:7px;font-family:var(--serif);font-style:italic;letter-spacing:.1em;}
.field input,.field select,.field textarea{
  width:100%;font-family:var(--sans);font-size:15px;color:var(--text);
  background:var(--paper-2);border:1px solid rgba(176,141,79,.3);border-radius:var(--radius);
  padding:14px 16px;transition:border-color .3s,box-shadow .3s,background .3s;
}
.field textarea{min-height:140px;resize:vertical;line-height:1.8;}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px rgba(205,184,127,.18);
}
.field input::placeholder,.field textarea::placeholder{color:#a6ad9f;}
.field--check{display:flex;gap:12px;align-items:flex-start;}
.field--check input{width:auto;margin-top:5px;accent-color:var(--gold-deep);}
.field--check label{margin:0;font-weight:400;font-size:13.5px;color:var(--text-muted);line-height:1.7;font-family:var(--sans);}
.field--check a{color:var(--gold-deep);text-decoration:underline;text-underline-offset:3px;}
.form__submit{width:100%;justify-content:center;padding:18px;font-size:16px;}
.form__note{font-size:12.5px;color:var(--text-muted);margin-top:16px;text-align:center;line-height:1.7;}
.form__error{color:#a33;font-size:13px;margin-top:6px;display:none;}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#c66;background:#fff6f4;}
.field.invalid .form__error{display:block;}

.form-status{display:none;text-align:center;padding:48px 24px;}
.form-status.show{display:block;}
.form-status__icon{width:64px;height:64px;border:1px solid var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin:0 auto 22px;color:var(--gold-deep);font-size:28px;}
.form-status__t{font-size:24px;color:var(--ink);margin-bottom:12px;}
.form-status__p{font-size:15px;color:var(--text-muted);line-height:1.9;max-width:42ch;margin-inline:auto;}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:980px){
  .footer__grid{grid-template-columns:1fr 1fr;gap:36px;}
  .strength-grid,.plan-grid,.steps{grid-template-columns:1fr 1fr;}
  .stats{grid-template-columns:1fr 1fr;gap:36px 24px;}
}
@media (max-width:860px){
  .nav__links{
    position:fixed;inset:78px 0 auto 0;flex-direction:column;align-items:stretch;
    background:var(--paper);border-bottom:1px solid rgba(176,141,79,.22);
    padding:14px var(--gutter) 28px;gap:4px;
    transform:translateY(-14px);opacity:0;pointer-events:none;transition:.35s var(--ease);
    box-shadow:0 24px 40px -28px rgba(15,46,39,.4);max-height:calc(100vh - 78px);overflow:auto;
  }
  .site-header[data-theme="dark"] .nav__links{background:var(--jade-800);}
  body.nav-open .nav__links{transform:none;opacity:1;pointer-events:auto;}
  .nav__link{padding:15px 0;border-bottom:1px solid rgba(176,141,79,.14);}
  .nav__link::after{display:none;}
  .nav__cta{margin:14px 0 0;}
  .nav__links .btn{width:100%;justify-content:center;padding:16px;}
  .nav__toggle{display:block;}
}
@media (max-width:760px){
  .intro-grid,.tour-row,.philo,.contact-grid{grid-template-columns:1fr;gap:36px;}
  .tour-row--rev .tour-row__media{order:0;}
  .voice-grid{grid-template-columns:1fr;}
  .field__row{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .strength-grid,.plan-grid,.steps,.stats{grid-template-columns:1fr;}
  .footer__grid{grid-template-columns:1fr;gap:32px;}
  .hero__cta .btn,.cta-band__btns .btn{flex:1;justify-content:center;}
}
