/* ==========================================================================
   hypnotherapynearme.in — Page modules & responsive rules
   Loaded after style.css
   ========================================================================== */

/* --- Generic two-column pairing (reusable, varied per page) --------------- */
.duo{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5.5rem);
  align-items:center;
}
.duo--media-wide{ grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); }
.duo--text-wide{ grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
.duo--top{ align-items:start; }
.duo--rev .duo__media{ order:2; }
.duo__body > .btn-row,.duo__body > .link-arrow{ margin-top:2.2rem; }

/* --- HOME: hero ---------------------------------------------------------- */
.hero{
  position:relative;
  padding-top:calc(var(--header-h) + clamp(2.5rem,2rem + 4vw,5rem));
  padding-bottom:clamp(3.5rem,3rem + 5vw,7rem);
  background:linear-gradient(170deg,#0F141B 0%,#18222A 46%,#22423C 100%);
  color:var(--on-dark);
  overflow:hidden;
}
.hero__bg{ position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.hero__bg .blob{ opacity:.4; }
.hero__lines{ position:absolute; inset:0; width:100%; height:100%; opacity:.3; }
.hero__grid{
  position:relative; z-index:2;
  display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:clamp(2.5rem,5vw,5rem); align-items:center;
}
.hero__eyebrow{ color:var(--gold-2); }
.hero h1{ font-size:var(--fs-display); }
.hero h1 .line{ display:block; }
.hero__lead{ margin-top:1.9rem; max-width:52ch; }
.hero .btn-row{ margin-top:2.6rem; }
.hero__meta{
  margin-top:3.2rem; padding-top:1.9rem; border-top:1px solid var(--rule-dark);
  display:flex; flex-wrap:wrap; gap:1.5rem 3rem;
}
.hero__meta-item{ display:flex; align-items:baseline; gap:.75rem; }
.hero__meta-num{
  font-family:var(--display); font-size:2.1rem; line-height:1; color:var(--gold-2);
  font-variation-settings:"opsz" 144;
}
.hero__meta-label{ font-size:var(--fs-small); letter-spacing:.1em; text-transform:uppercase; color:var(--on-dark-soft); max-width:12ch; line-height:1.4; }

.hero__media{ position:relative; }
.hero__portrait{
  position:relative; z-index:2; margin:0;
  border-radius:clamp(28px,7vw,88px) clamp(28px,7vw,88px) var(--radius-l) var(--radius-l);
  overflow:hidden;
  background:linear-gradient(160deg,rgba(220,230,222,.14),rgba(200,162,104,.12));
  box-shadow:0 50px 90px -60px rgba(0,0,0,.9);
}
.hero__portrait img{ width:100%; height:auto; display:block; }
.hero__ring{
  position:absolute; z-index:1; inset:-4% -6% 8% -6%;
  border:1px solid rgba(200,162,104,.4);
  border-radius:clamp(32px,7.5vw,96px) clamp(32px,7.5vw,96px) var(--radius-l) var(--radius-l);
}
.hero__scroll{
  position:relative; z-index:2; margin-top:clamp(2.5rem,4vw,4.5rem);
  display:inline-flex; align-items:center; gap:.8rem;
  font-size:var(--fs-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--on-dark-soft);
  text-decoration:none;
}
.hero__scroll .dot{
  width:34px; height:34px; border-radius:50%; border:1px solid var(--rule-dark);
  display:grid; place-items:center; transition:border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);
}
.hero__scroll:hover .dot{ border-color:var(--gold-2); color:var(--gold-2); transform:translateY(3px); }

/* --- HOME: near-me editorial -------------------------------------------- */
.nearme{ display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:clamp(2rem,5vw,5.5rem); align-items:start; }
.nearme__aside{ position:sticky; top:calc(var(--header-h) + 2.5rem); }
.nearme__list{ display:grid; }
.nearme__row{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(1.2rem,2.5vw,2.2rem);
  padding:clamp(1.4rem,1.1rem + 1vw,2rem) 0; border-top:1px solid var(--rule);
  transition:background-color .45s var(--ease);
}
.nearme__row:last-child{ border-bottom:1px solid var(--rule); }
.nearme__row:hover{ background:rgba(228,216,196,.26); }
.nearme__idx{
  font-family:var(--sans); font-size:var(--fs-micro); font-weight:600; letter-spacing:.16em;
  color:var(--gold); padding-top:.45rem;
}
.nearme__row h3{ font-size:var(--fs-h4); }
.nearme__row p{ margin-top:.55rem; color:var(--text-soft); font-size:.99rem; }

/* --- HOME: understanding pathway ---------------------------------------- */
.path{ display:grid; grid-template-columns:repeat(auto-fit,minmax(158px,1fr)); gap:0; margin-top:clamp(2.5rem,4vw,4rem); }
.path__node{ position:relative; padding:2.4rem clamp(1rem,2vw,1.8rem) 0; border-top:1px solid var(--rule-dark); }
.path__node::before{
  content:""; position:absolute; top:-6px; left:clamp(1rem,2vw,1.8rem); width:11px; height:11px;
  border-radius:50%; background:var(--gold-2); box-shadow:0 0 0 5px rgba(200,162,104,.18);
}
.path__node h3{ font-size:var(--fs-h4); }
.path__node p{ margin-top:.6rem; font-size:.96rem; color:var(--on-dark-soft); }

/* --- HOME: areas offset tiles ------------------------------------------- */
.areas-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:clamp(.9rem,1.6vw,1.4rem); }
.area-card{
  position:relative; padding:clamp(1.5rem,1.2rem + 1vw,2.1rem);
  border:1px solid rgba(26,34,43,.1); border-radius:var(--radius); background:var(--white);
  display:flex; flex-direction:column; gap:.65rem; min-height:100%;
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), background-color .5s var(--ease);
  overflow:hidden;
}
.area-card::before{
  content:""; position:absolute; inset:auto 0 0 0; height:0; background:linear-gradient(180deg,rgba(34,66,60,0),rgba(34,66,60,.06));
  transition:height .55s var(--ease-out);
}
.area-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.area-card:hover::before{ height:100%; }
.area-card__icon{ width:34px; height:34px; color:var(--gold); position:relative; z-index:1; }
.area-card h3{ font-size:var(--fs-h4); position:relative; z-index:1; }
.area-card p{ font-size:.96rem; color:var(--text-soft); position:relative; z-index:1; }
.areas-grid--stagger > *:nth-child(3n+2){ transform:translateY(1.8rem); }
.areas-grid--stagger > *:nth-child(3n+2):hover{ transform:translateY(1.2rem); }

/* --- Collage: two images, side by side, neither covering the other ------- */
.collage{ position:relative; }
.collage__main{ position:relative; z-index:1; }
.collage__main img{ border-radius:var(--radius-l); width:100%; }
.collage__inset img{ border-radius:var(--radius-s); width:100%; }

/* --- Stats band ---------------------------------------------------------- */
.stats-band{ position:relative; overflow:hidden; }
.stats-band__grid{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(2rem,5vw,5rem); align-items:center; }

/* --- FIND PAGE: intent map ---------------------------------------------- */
.intent-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); border-radius:var(--radius); overflow:hidden; }
.intent-cell{ background:var(--bg); padding:clamp(1.4rem,1.2rem + 1vw,2rem); transition:background-color .45s var(--ease); }
.intent-cell:hover{ background:var(--white); }
.intent-cell__k{ font-size:var(--fs-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.intent-cell h3{ margin-top:.9rem; font-size:var(--fs-h4); }
.intent-cell p{ margin-top:.5rem; font-size:.95rem; color:var(--text-soft); }

.compare{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:clamp(1rem,2vw,1.6rem); }
.compare__col{ padding:clamp(1.5rem,1.2rem + 1.2vw,2.3rem); border-radius:var(--radius); border:1px solid var(--rule); }
.compare__col--warn{ background:rgba(156,51,35,.045); border-color:rgba(156,51,35,.22); }
.compare__col--good{ background:rgba(34,66,60,.05); border-color:rgba(34,66,60,.22); }
.compare__h{ display:flex; align-items:center; gap:.7rem; font-family:var(--display); font-size:var(--fs-h3); }
.compare__h .badge{ width:28px; height:28px; border-radius:50%; display:grid; place-items:center; flex:none; color:#fff; }
.compare__col--warn .badge{ background:#9C3323; }
.compare__col--good .badge{ background:var(--forest); }
.compare__col ul{ margin-top:1.5rem; display:grid; gap:.95rem; }
.compare__col li{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:.75rem; font-size:.98rem; color:var(--text-soft); align-items:start; }
.compare__col li svg{ width:15px; height:15px; margin-top:.35rem; flex:none; }
.compare__col--warn li svg{ color:#9C3323; }
.compare__col--good li svg{ color:var(--forest); }

/* --- WHAT IS: definition strip & history timeline ------------------------ */
.define{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(1.2rem,2.5vw,2.5rem); }
.define__item{ padding-top:1.5rem; border-top:2px solid var(--gold); }
.define__item h3{ font-size:var(--fs-h4); }
.define__item p{ margin-top:.6rem; font-size:.97rem; color:var(--text-soft); }
.on-dark .define__item p{ color:var(--on-dark-soft); }

.timeline{ position:relative; display:grid; gap:0; margin-top:clamp(2rem,4vw,3.5rem); }
.timeline::before{ content:""; position:absolute; left:7px; top:.6rem; bottom:.6rem; width:1px; background:var(--rule); }
.on-dark .timeline::before{ background:var(--rule-dark); }
.timeline__item{ position:relative; padding:0 0 2.4rem 2.8rem; }
.timeline__item::before{
  content:""; position:absolute; left:0; top:.55rem; width:15px; height:15px; border-radius:50%;
  border:1px solid var(--gold); background:var(--bg);
  transition:background-color var(--t-fast);
}
.timeline__item:hover::before{ background:var(--gold); }
.on-dark .timeline__item::before{ background:var(--ink); }
.timeline__era{ font-size:var(--fs-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
.timeline__item h3{ margin-top:.65rem; font-size:var(--fs-h4); }
.timeline__item p{ margin-top:.55rem; color:var(--text-soft); }
.on-dark .timeline__item p{ color:var(--on-dark-soft); }

.isnot{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:clamp(1rem,2vw,1.5rem); }
.isnot__card{
  padding:clamp(1.4rem,1.2rem + 1vw,2rem); border-radius:var(--radius);
  background:rgba(239,234,225,.05); border:1px solid var(--rule-dark);
  transition:transform .5s var(--ease-out), background-color .5s var(--ease);
}
.isnot__card:hover{ transform:translateY(-5px); background:rgba(239,234,225,.09); }
.isnot__x{ width:30px; height:30px; border-radius:50%; display:grid; place-items:center; background:rgba(200,162,104,.16); color:var(--gold-2); }
.isnot__card h3{ margin-top:1.1rem; font-size:var(--fs-h4); }
.isnot__card p{ margin-top:.6rem; font-size:.96rem; color:var(--on-dark-soft); }

/* --- AREAS PAGE ---------------------------------------------------------- */
.area-nav{ display:flex; flex-wrap:wrap; gap:.55rem; }
.area-nav a{
  display:inline-block; padding:.6rem 1.05rem; border-radius:999px;
  border:1px solid var(--rule-dark); font-size:var(--fs-small); text-decoration:none;
  color:var(--on-dark-soft); transition:all var(--t-fast);
}
.area-nav a:hover{ background:var(--gold-2); border-color:var(--gold-2); color:var(--ink); }
.area-block{
  padding-block:clamp(2.8rem,2rem + 3vw,4.5rem);
  border-top:1px solid var(--rule);
  scroll-margin-top:calc(var(--header-h) + 2rem);
}
.area-block__top{
  display:grid; grid-template-columns:auto minmax(0,1fr);
  gap:.2rem clamp(1rem,2.5vw,2rem); align-items:baseline;
  margin-bottom:clamp(1.5rem,3vw,2.4rem);
}
.area-block__no{ font-family:var(--display); font-size:1.05rem; color:var(--gold-ink); font-variation-settings:"opsz" 144; grid-row:span 2; }
.area-block__top h2{ font-size:clamp(1.7rem,1.35rem + 1.3vw,2.4rem); }
.area-block__sum{ grid-column:2; color:var(--text-soft); max-width:62ch; margin-top:.5rem; }
.area-block__body{ display:block; }
.area-block__body--media{
  display:grid; grid-template-columns:minmax(0,330px) minmax(0,1fr);
  gap:clamp(1.5rem,3.5vw,3rem); align-items:start;
}
.area-block__parts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.4rem,3vw,2.4rem); align-items:start; }
.area-block__body--media .area-block__parts{ grid-template-columns:minmax(0,1fr); }
.area-block__figure img{ border-radius:var(--radius); width:100%; }
.area-block__body--banner .area-block__figure{ margin-bottom:clamp(1.6rem,3vw,2.4rem); }
.area-jump{ margin-top:clamp(2rem,4vw,3rem); }
.area-part{ margin-top:1.9rem; }
.area-part__k{
  font-size:var(--fs-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--text-faint);
  display:flex; align-items:center; gap:.7rem; margin-bottom:.7rem;
}
.area-part__k::before{ content:""; width:20px; height:1px; background:var(--gold); }
.area-part p{ color:var(--text-soft); }
.area-part--scenario{
  background:var(--white); border:1px solid rgba(26,34,43,.08); border-left:2px solid var(--gold);
  border-radius:0 var(--radius) var(--radius) 0; padding:1.4rem 1.6rem;
}
.area-part--scenario p{ font-style:italic; color:var(--text-soft); }

/* --- HOW IT WORKS: scroll story ----------------------------------------- */
.story{ position:relative; }
.story__step{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(1.8rem,4vw,4.5rem); align-items:center;
  padding-block:clamp(2.5rem,2rem + 3vw,4.5rem);
  position:relative;
}
.story__step:nth-child(even) .story__media{ order:2; }
.story__no{
  font-family:var(--display); font-variation-settings:"opsz" 144;
  font-size:clamp(3.4rem,2.4rem + 4vw,6.5rem); line-height:.8;
  color:transparent; -webkit-text-stroke:1px rgba(168,129,74,.55);
  letter-spacing:-.04em; margin-bottom:.9rem;
}
.story__step h2{ font-size:clamp(1.75rem,1.4rem + 1.4vw,2.6rem); }
.story__step p{ margin-top:1.1rem; color:var(--text-soft); }
.story__media img{ border-radius:var(--radius-l); width:100%; }
.story__points{ margin-top:1.5rem; display:grid; gap:.6rem; }
.story__points li{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:.75rem; align-items:start; font-size:.98rem; color:var(--text-soft); }
.story__points li::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--gold); margin-top:.62rem; }
.story__figure-note{
  margin-top:1rem; font-size:var(--fs-small); color:var(--text-faint);
}
.progress-rail{
  position:fixed; left:1.4rem; top:50%; transform:translateY(-50%); z-index:80;
  display:grid; gap:.75rem;
}
.progress-rail button{
  width:9px; height:9px; border-radius:50%; padding:0; border:1px solid rgba(26,34,43,.35);
  background:transparent; transition:background-color var(--t-fast), transform var(--t-fast), border-color var(--t-fast);
}
.progress-rail button.is-active{ background:var(--gold); border-color:var(--gold); transform:scale(1.35); }

/* --- ABOUT PAGE ---------------------------------------------------------- */
.about-hero{ position:relative; background:var(--ink); color:var(--on-dark); overflow:hidden;
  padding-top:calc(var(--header-h) + clamp(2.5rem,2rem + 3vw,4.5rem)); padding-bottom:clamp(3rem,2.5rem + 4vw,6rem); }
.about-hero__grid{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(2rem,5vw,5rem); align-items:center; }
.about-hero__portrait{ position:relative; border-radius:var(--radius-l); overflow:hidden; box-shadow:0 60px 100px -70px #000; }
.about-hero__portrait img{ width:100%; }
.about-hero__caption{
  position:absolute; left:0; right:0; bottom:0; padding:2.6rem 1.6rem 1.35rem;
  background:linear-gradient(180deg,rgba(17,22,29,0),rgba(17,22,29,.85));
  font-size:var(--fs-small); letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark);
}
.values{ display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:clamp(1.2rem,2.5vw,2.2rem); }
.value{ padding-top:1.4rem; border-top:1px solid var(--rule); }
.value__i{ width:26px; height:26px; color:var(--gold); margin-bottom:1rem; }
.value h3{ font-size:var(--fs-h4); }
.value p{ margin-top:.55rem; font-size:.96rem; color:var(--text-soft); }
.bio-quote{
  display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(1.2rem,3vw,2.5rem); align-items:start;
}
.bio-quote__mark{ font-family:var(--display); font-size:5rem; line-height:.7; color:var(--gold); opacity:.5; }

/* --- FAQ PAGE ------------------------------------------------------------ */
.faq-layout{ display:grid; grid-template-columns:minmax(0,.36fr) minmax(0,.64fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.faq-aside{ position:sticky; top:calc(var(--header-h) + 2.5rem); }
.faq-aside__card{
  margin-top:2rem; padding:1.6rem; border-radius:var(--radius);
  background:var(--white); border:1px solid rgba(26,34,43,.08); box-shadow:var(--shadow-s);
}
.faq-aside__card h3{ font-size:var(--fs-h4); }
.faq-aside__card p{ margin-top:.6rem; font-size:.95rem; color:var(--text-soft); }
.faq-aside__card .btn{ margin-top:1.3rem; width:100%; }
.faq-group + .faq-group{ margin-top:clamp(2.5rem,4vw,4rem); }
.faq-group__title{ font-size:var(--fs-h3); margin-bottom:1.2rem; }

/* --- CONTACT PAGE -------------------------------------------------------- */
.contact-grid{ display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:clamp(2rem,5vw,5rem); align-items:start; }
.contact-card{
  padding:clamp(1.6rem,1.3rem + 1.5vw,2.6rem); border-radius:var(--radius-l);
  background:var(--white); box-shadow:var(--shadow); border:1px solid rgba(26,34,43,.06);
}
.contact-figure{ margin-top:2.5rem; }
.contact-figure img{ border-radius:var(--radius); width:100%; }
.contact-strip{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:clamp(1rem,2vw,1.6rem); }
.contact-strip__item{ padding:1.6rem; border-radius:var(--radius); border:1px solid var(--rule-dark); }
.contact-strip__item h3{ font-size:var(--fs-h4); margin-top:.9rem; }
.contact-strip__item p{ margin-top:.5rem; font-size:.95rem; color:var(--on-dark-soft); }
.contact-strip__item svg{ width:24px; height:24px; color:var(--gold-2); }

/* --- 404 ----------------------------------------------------------------- */
.err-wrap{ min-height:80vh; display:grid; place-items:center; text-align:center; padding-top:var(--header-h); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1180px){
  .nav-list{ gap:.85rem; }
  .nav-link{ font-size:.74rem; }
}

@media (max-width: 1024px){
  :root{ --header-h:72px; }
  .nav{ display:none; }
  .nav-toggle{ display:flex; }
  .hero__grid,
  .duo,.duo--media-wide,.duo--text-wide,
  .nearme,.stats-band__grid,.about-hero__grid,
  .faq-layout,.contact-grid,.area-block__body--media,.area-block__parts,
  .story__step,.page-hero__grid{
    grid-template-columns:minmax(0,1fr);
  }
  .duo--rev .duo__media,.story__step:nth-child(even) .story__media{ order:0; }
  .nearme__aside,.faq-aside{ position:static; }
  .area-block__figure{ max-width:420px; }
  .footer-top{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .footer-brand{ grid-column:1 / -1; }
  .hero__media{ max-width:520px; margin-inline:auto; width:100%; }
  .progress-rail{ display:none; }
  .flow__item{ grid-template-columns:minmax(60px,80px) minmax(0,1fr); }
  .flow__aside{ grid-column:2; border-left:0; padding-left:0; padding-top:1rem; border-top:1px solid var(--rule); margin-top:.4rem; }
  .on-dark .flow__aside{ border-top-color:var(--rule-dark); }
  .myth{ grid-template-columns:minmax(0,1fr); }
  .offset-grid > *:nth-child(even),
  .areas-grid--stagger > *:nth-child(3n+2){ transform:none; }
  .areas-grid--stagger > *:nth-child(3n+2):hover{ transform:translateY(-6px); }
  .sec-head--split{ grid-template-columns:minmax(0,1fr); align-items:start; }
}

@media (max-width: 720px){
  :root{ --header-h:66px; }
  .wrap,.wrap-narrow,.wrap-wide{ width:min(100% - 1.75rem, var(--wrap)); }
  body{ line-height:1.68; }
  .btn{ padding:.95rem 1.5rem; }
  .btn-row .btn{ flex:1 1 100%; }
  .hero__meta{ gap:1.25rem 2rem; }
  .brand-sub{ display:none; }
  .brand-name{ font-size:1.05rem; }
  .footer-top{ grid-template-columns:minmax(0,1fr); }
  .footer-bottom{ flex-direction:column; align-items:flex-start; gap:.85rem; }
  .contact-row{ grid-template-columns:auto minmax(0,1fr); }
  .contact-row__go{ display:none; }
  .timeline__item{ padding-left:2.2rem; }
  .bio-quote{ grid-template-columns:minmax(0,1fr); }
  .bio-quote__mark{ font-size:3.4rem; }
  .area-part--scenario{ padding:1.15rem 1.25rem; }
  .acc-trigger{ gap:1rem; }
  .compare__col{ padding:1.4rem 1.25rem; }
  .figure--arch img,.hero__portrait{ border-radius:36px 36px var(--radius) var(--radius); }
}

@media (max-width: 420px){
  .hero__meta-num{ font-size:1.75rem; }
  .stat__num{ font-size:3rem; }
  .mobile-nav__list a{ font-size:1.25rem; }
}

/* Landscape phones / short viewports for the mobile drawer */
@media (max-height: 620px) and (max-width: 1024px){
  .mobile-nav{ padding-top:calc(var(--header-h) + 1rem); }
  .mobile-nav__list a{ padding:.8rem .2rem; font-size:1.15rem; }
  .mobile-nav__foot{ margin-top:1.5rem; }
}

@media print{
  .site-header,.mobile-nav,.progress-rail,.cta-band,.socials{ display:none!important; }
  body{ background:#fff; color:#000; }
  body::after{ display:none; }
  .section{ padding-block:1.5rem; }
}

/* --- Story panel (steps without a photograph) ---------------------------- */
.story__panel{
  padding:clamp(1.6rem,1.3rem + 1.4vw,2.6rem);
  border-radius:var(--radius-l);
  background:linear-gradient(160deg,var(--stone),#E8DFD1);
  border:1px solid rgba(26,34,43,.07);
}
.story__panel-k{
  font-size:var(--fs-micro); letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); font-weight:600; margin-bottom:1rem;
}
.story__panel-note{
  margin-top:1.4rem; padding-top:1.1rem; border-top:1px solid var(--rule);
  font-size:.92rem; color:var(--text-faint);
}
.story__panel .story__points li{ color:var(--text-soft); }

/* --- Header fit at intermediate desktop widths --------------------------- */
@media (max-width: 1460px){
  .header-inner{ gap:1rem; }
  .nav{ gap:1rem; min-width:0; }
  .nav-list{ gap:clamp(.7rem,1.05vw,1.15rem); }
  .nav-link{ font-size:.755rem; letter-spacing:.03em; }
  .nav-cta{ padding:.74rem 1.15rem; font-size:.665rem; letter-spacing:.06em; }
}
@media (max-width: 1240px){
  .brand-sub{ display:none; }
  .brand-name{ font-size:1.05rem; }
  .nav-list{ gap:.62rem; }
  .nav-link{ font-size:.715rem; }
  .nav-cta{ padding:.68rem 1rem; font-size:.63rem; }
}

/* --- Accessible gold for small text on light surfaces -------------------- */
:root{ --gold-ink:#8A6733; }
.eyebrow,
.nearme__idx,
.intent-cell__k,
.myth__tag--p,
.area-block__no,
.story__panel-k,
.tile__index,
.field .req{ color:var(--gold-ink); }
.acc-trigger:hover,
.link-arrow:hover,
.text-link:hover{ color:var(--gold-ink); }
.on-dark .eyebrow,
.on-dark .tile__index,
.on-dark .acc-trigger:hover,
.on-dark .link-arrow:hover,
.on-dark .text-link:hover{ color:var(--gold-2); }

/* ==========================================================================
   IMAGE INTEGRITY OVERRIDES
   Every photograph is shown whole: no cover-cropping, no masking of the
   subject, no UI element covering a face or primary subject.
   ========================================================================== */

/* Lead image band (What Is Hypnotherapy) — full image, natural proportions */
.lead-figure-band{ padding-block:clamp(2rem,1.5rem + 2vw,3.5rem); background:var(--bg); }
.lead-figure-band .figure figcaption{ text-align:center; margin-top:1.1rem; }

/* Collage: the second image sits beside/below the first — it never covers it */
.collage{ position:relative; display:grid; gap:clamp(.9rem,2vw,1.4rem); }
.collage__main{ position:relative; z-index:1; }
.collage__inset{
  position:relative; inset:auto; z-index:2;
  width:min(62%,340px); margin-left:auto;
  padding:.55rem; background:var(--ivory);
  border-radius:calc(var(--radius) + .3rem); box-shadow:var(--shadow);
}
.collage--left .collage__inset{ margin-left:0; margin-right:auto; }
.on-dark .collage__inset{ background:rgba(239,234,225,.08); }

/* About hero: caption below the portrait, not across it */
.about-hero__caption{
  position:static; padding:1.1rem .2rem 0; background:none;
  font-size:var(--fs-small); letter-spacing:.14em; text-transform:uppercase;
  color:var(--on-dark-soft);
}

/* Images are never distorted, and are never forced into a fixed-height box */
.figure img,.collage img,.story__media img,.area-block__figure img,
.about-hero__portrait img,.hero__portrait img,.contact-figure img{
  width:100%; height:auto; object-fit:contain; max-width:100%;
}

/* Portrait-orientation photographs stay comfortably sized without cropping */
.figure--portrait{ max-width:340px; }
.figure--portrait img{ width:100%; height:auto; }

/* Areas: single column of parts on small screens */
@media (max-width: 760px){
  .area-block__parts{ grid-template-columns:minmax(0,1fr); }
  .area-block__top{ grid-template-columns:minmax(0,1fr); }
  .area-block__no{ grid-row:auto; }
  .area-block__sum{ grid-column:1; }
}

/* --- Compact facts card (fills short aside columns) ---------------------- */
.mini-facts{
  margin-top:clamp(2rem,4vw,2.8rem); padding:clamp(1.3rem,1.1rem + 1vw,1.8rem);
  background:var(--white); border:1px solid rgba(26,34,43,.08);
  border-radius:var(--radius); box-shadow:var(--shadow-s);
}
.mini-facts__row{
  display:flex; align-items:baseline; gap:.75rem;
  font-size:var(--fs-small); letter-spacing:.1em; text-transform:uppercase; color:var(--text-soft);
  padding-bottom:.85rem; margin-bottom:.85rem; border-bottom:1px solid var(--rule);
}
.mini-facts__n{
  font-family:var(--display); font-size:1.75rem; line-height:1; color:var(--ink);
  font-variation-settings:"opsz" 144; letter-spacing:-.02em;
}
.mini-facts__note{ font-size:.95rem; color:var(--text-soft); margin-bottom:1.2rem; }
.mini-facts .btn{ width:100%; }
.on-dark .mini-facts{ background:rgba(239,234,225,.05); border-color:var(--rule-dark); }
.on-dark .mini-facts__n{ color:var(--on-dark); }
.on-dark .mini-facts__row{ color:var(--on-dark-soft); border-bottom-color:var(--rule-dark); }

/* --- Checklist as a full-width row (keeps columns balanced) -------------- */
.checklist--row{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:0 clamp(1.5rem,3vw,3rem);
  margin-top:clamp(2.2rem,4vw,3rem);
}
.checklist--row .check-item{ border-top:1px solid var(--rule); border-bottom:0; }
.on-dark .checklist--row .check-item{ border-top-color:var(--rule-dark); border-bottom:0; }

/* ==========================================================================
   NO ORPHAN GRID CELLS
   Item counts are matched to column counts so no row ends with empty cells.
   ========================================================================== */
@media (min-width: 901px){
  .areas-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }   /* 9 cards  -> 3 x 3 */
  .intent-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); }  /* 8 cells  -> 4 x 2 */
  .values{ grid-template-columns:repeat(4,minmax(0,1fr)); }       /* 8 values -> 4 x 2 */
  .define{ grid-template-columns:repeat(5,minmax(0,1fr)); }       /* 5 items  -> 1 row */
  .isnot{ grid-template-columns:repeat(3,minmax(0,1fr)); }        /* 6 cards  -> 3 x 2 */
  .path{ grid-template-columns:repeat(2,minmax(0,1fr)); }         /* 4 nodes  -> 2 x 2 */
  .checklist--row{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (min-width: 601px) and (max-width: 900px){
  .areas-grid,.intent-grid,.values,.define,.isnot,.path{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px){
  .areas-grid,.intent-grid,.values,.define,.isnot,.path,.contact-strip,.compare{ grid-template-columns:minmax(0,1fr); }
}

/* Tablet: a lone trailing item stretches across the row instead of leaving a hole */
@media (min-width: 601px) and (max-width: 900px){
  .areas-grid > *:nth-child(odd):last-child,
  .checklist--row > *:nth-child(odd):last-child,
  .define > *:nth-child(odd):last-child,
  .contact-strip > *:nth-child(odd):last-child,
  .values > *:nth-child(odd):last-child,
  .intent-grid > *:nth-child(odd):last-child,
  .isnot > *:nth-child(odd):last-child,
  .offset-grid > *:nth-child(odd):last-child,
  .path > *:nth-child(odd):last-child{ grid-column:1 / -1; }
  .contact-strip,.offset-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width: 901px) and (max-width: 1200px){
  .offset-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }   /* 4 tiles -> 2 x 2 */
}
@media (min-width: 1201px){
  .offset-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); }   /* 4 tiles -> 1 row */
}

@media (max-width: 700px){
  .checklist--row{ grid-template-columns:minmax(0,1fr); }
}

/* <picture> wrappers must not change layout */
picture{ display:block; }
.collage__inset picture,.figure picture,.story__media picture{ display:block; }
