/* ============================================================
   Tatiana Martushev — CranioSacral Therapy, Nosara
   Shared design system.  Editorial, calm, feminine-strong-gentle.
   Palette + type locked in decisions/brand-direction.md.
   Blue darkened slightly per direction. No line drawings yet
   (placeholder slots left). Motion = scroll-reveal + hero cue.
   ============================================================ */

:root{
  --blue:#15425F;         /* primary — darkened slightly from #194A6E */
  --blue-deep:#102F45;    /* deeper ground for contrast bands */
  --ink:#16324A;          /* body text — warm, softer than black */
  --paper:#FBF9F5;        /* page — warm off-white, never clinical */
  --paper-2:#F4F1EA;      /* quiet alt ground */
  --white:#FFFFFF;
  --bronze:#A0713A;       /* signature accent */
  --bronze-light:#C9A36B;
  --mist:#E9F0F4;         /* quiet cool band */

  --serif-display:'Cormorant Garamond', Georgia, serif;
  --serif-body:'Source Serif 4', Georgia, serif;
  --sans:'Source Sans 3','Helvetica Neue',sans-serif;

  --nav-h:76px;
  --container:1180px;
}

/* ---------- mobile layout contract: base layer ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
*{min-width:0} /* lets flex/grid children shrink instead of forcing the page wide */
html{scroll-behavior:smooth}
html,body{max-width:100%;overflow-x:clip} /* clip, not hidden — sticky/anchors keep working */
@supports not (overflow:clip){html,body{overflow-x:hidden}}
img,svg,video,canvas,iframe,embed,object{max-width:100%}
img,video{height:auto}
p,li,a,td,th,blockquote,figcaption{overflow-wrap:anywhere} /* long words/URLs wrap instead of scrolling */
body{background:var(--paper);color:var(--ink);font-family:var(--serif-body);
  font-size:1.1rem;line-height:1.8;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block}
a{color:inherit;text-decoration:none}

.wrap{max-width:var(--container);margin:0 auto;padding:0 32px}
@media(max-width:480px){.wrap{padding:0 22px}} /* symmetric, tighter on small phones */
.measure{max-width:680px}
.measure-wide{max-width:820px}

/* ---------- type primitives ---------- */
.eyebrow{font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.36em;
  text-transform:uppercase;color:var(--bronze);display:block}
.statement{font-family:var(--serif-display);font-weight:300;color:var(--blue);line-height:1.15;letter-spacing:-.005em}
.statement em{font-style:italic;font-weight:400;color:var(--bronze)}
h1.statement{font-size:clamp(2.3rem,4.8vw,3.7rem)}
h2.statement{font-size:clamp(1.85rem,3.4vw,2.7rem)}
h3.statement{font-size:clamp(1.5rem,2.4vw,1.95rem)}
.serif-lede{font-family:var(--serif-display);font-weight:400;font-size:clamp(1.3rem,2.1vw,1.6rem);
  line-height:1.5;color:var(--ink)}
.serif-lede em{font-style:italic;color:var(--bronze)}
p+p{margin-top:1.3em}
a.textlink{color:var(--bronze);text-decoration:none;border-bottom:1px solid rgba(160,113,58,.35);
  transition:border-color .25s,color .25s}
a.textlink:hover{color:var(--blue);border-color:var(--blue)}
.hair{width:52px;height:1px;background:var(--bronze-light);border:0;margin:0}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;text-decoration:none;padding:14px 30px;transition:background .25s,color .25s,border-color .25s;cursor:pointer}
.btn-solid{background:var(--blue);color:var(--paper);border:1px solid var(--blue)}
.btn-solid:hover{background:var(--bronze);border-color:var(--bronze)}
.btn-ghost{border:1px solid var(--bronze);color:var(--bronze);background:transparent}
.btn-ghost:hover{background:var(--bronze);color:var(--paper)}

/* ---------- header + dropdown nav ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(251,249,245,.9);
  backdrop-filter:saturate(140%) blur(7px);border-bottom:1px solid rgba(21,66,95,.10)}
.nav{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h)}
.wordmark{font-family:var(--serif-display);font-size:1.4rem;font-weight:500;color:var(--blue);line-height:1.02}
.wordmark span{display:block;font-family:var(--sans);font-size:.64rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--bronze);margin-top:5px}
.primary>ul{display:flex;gap:30px;list-style:none;align-items:center;margin:0}
.primary a,.sub-toggle{font-family:var(--sans);font-size:.94rem;font-weight:500;color:var(--ink);
  letter-spacing:.03em;background:none;border:0;cursor:pointer;transition:color .2s}
.primary a:hover,.sub-toggle:hover,.primary a[aria-current="page"]{color:var(--bronze)}
.primary .btn{color:var(--bronze)}
.primary .btn:hover{color:var(--paper)}

/* dropdown */
.has-sub{position:relative}
.sub-toggle{display:inline-flex;align-items:center;gap:7px}
.sub-toggle::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);margin-top:-3px;transition:transform .3s}
.has-sub[data-open="true"] .sub-toggle::after{transform:rotate(-135deg);margin-top:2px}
.submenu{list-style:none;position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);
  min-width:252px;background:var(--white);border:1px solid rgba(21,66,95,.14);box-shadow:0 24px 50px -22px rgba(16,47,69,.5);
  padding:10px 0;opacity:0;visibility:hidden;transition:opacity .25s ease,transform .25s ease;z-index:70}
.has-sub:hover .submenu,.has-sub[data-open="true"] .submenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.submenu::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px} /* hover bridge */
.submenu li{margin:0}
.submenu a{display:block;padding:11px 26px;font-family:var(--sans);font-size:.94rem;font-weight:500;letter-spacing:.03em;color:var(--ink);white-space:nowrap;transition:background .2s,color .2s}
.submenu a:hover{background:var(--mist);color:var(--blue)}

/* mobile toggle */
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:26px;height:1.5px;background:var(--blue);transition:transform .3s,opacity .3s}
.nav-open .nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-open .nav-toggle span:nth-child(2){opacity:0}
.nav-open .nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media(max-width:920px){
  /* backdrop-filter makes the header a containing block for fixed descendants,
     which collapses the off-canvas menu — disable it on mobile, solid bg instead */
  .site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(251,249,245,.97)}
  .nav-toggle{display:flex}
  .primary{position:fixed;inset:var(--nav-h) 0 0 0;background:var(--paper);transform:translateX(100%);
    visibility:hidden;transition:transform .35s ease,visibility 0s linear .35s;overflow-y:auto;padding:24px 0}
  .nav-open .primary{transform:none;visibility:visible;transition:transform .35s ease}
  .primary>ul{flex-direction:column;align-items:flex-start;gap:0;padding:0 32px}
  .primary>ul>li{width:100%;border-bottom:1px solid rgba(21,66,95,.08)}
  .primary>ul>li>a,.sub-toggle{display:block;width:100%;padding:18px 0;font-size:1rem;text-align:left}
  .sub-toggle{display:flex;align-items:center;justify-content:space-between} /* label left, chevron right */
  .primary .btn{margin:22px 0;text-align:center;display:inline-block;padding:14px 30px}
  .submenu{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:0;
    background:transparent;padding:0 0 14px;min-width:0;display:none}
  .has-sub[data-open="true"] .submenu{display:block;transform:none} /* beat the desktop translateX(-50%) open rule */
  .submenu a{padding:11px 14px;color:var(--ink);white-space:normal} /* let long labels wrap on narrow screens */
  .submenu::before{display:none}
}

/* ---------- HERO (fills one screen, 14" MBP) ---------- */
.hero{min-height:calc(100svh - var(--nav-h));display:flex;flex-direction:column;justify-content:center;
  position:relative;padding:clamp(28px,6vh,64px) 0 96px}
.hero .eyebrow{margin-bottom:30px}
.hero h1{margin-bottom:32px;max-width:18ch}
.hero .serif-lede{max-width:44ch}
.hero .hero-cta{margin-top:40px}
.hero.center{text-align:center;align-items:center}
.hero.center .hero-inner{display:flex;flex-direction:column;align-items:center}
.hero.center h1,.hero.center .serif-lede{margin-left:auto;margin-right:auto}

/* hero botanical motif (animated draw-on) */
.hero .wrap{position:relative;z-index:2}
.hero-motif{position:absolute;top:50%;right:clamp(16px,7vw,120px);transform:translateY(-50%);z-index:1;pointer-events:none}
.hero-motif svg{display:block;height:min(64vh,540px);width:auto}
.hero-motif .s,.hero-motif .l{fill:none;stroke:var(--bronze);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.hero-motif .v{fill:none;stroke:var(--bronze-light);stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.hero-motif circle{fill:none;stroke:var(--bronze-light);stroke-width:1.1}
@media(max-width:1080px){.hero-motif{display:none}}

/* home hero — copy aligned to the site container (same left edge as the nav logo), orchid on the right */
.hero--home{position:relative;min-height:calc(100svh - var(--nav-h));display:flex;align-items:center;
  padding:clamp(24px,5vh,52px) 0 88px}
.hero-inner{display:grid;grid-template-columns:1fr minmax(260px,38%);align-items:center;gap:clamp(24px,4vw,64px);width:100%}
.hero--home .hero-copy{max-width:640px;margin-left:clamp(20px,8%,110px);position:relative;z-index:2}
.hero--home h1{margin-bottom:26px;max-width:20ch}
.hero--home .serif-lede{max-width:42ch}
.hero-note{display:flex;align-items:flex-start;gap:18px;margin-top:30px;max-width:52ch}
.hero-note__rule{flex:none;width:46px;height:1px;background:var(--bronze);margin-top:11px}
.hero-note__text{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);line-height:1.7}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}
.home-figure{display:flex;align-items:center;justify-content:center;height:100%;min-width:0;pointer-events:none;opacity:.75}
.home-figure svg{max-height:min(52vh,460px);max-width:100%;width:auto;height:auto;display:block;overflow:visible}
.home-figure svg *{fill:none;stroke:var(--bronze-light);stroke-width:1;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:900px){
  .hero-inner{grid-template-columns:1fr}
  .home-figure{display:none}
  .hero--home .hero-copy{margin-left:0;max-width:100%} /* kill the desktop indent — symmetric padding comes from .wrap */
}

/* inner-page hero — same text position + rhythm as home; figure dropped in when a page's SVG is supplied */
.hero-inner--solo{grid-template-columns:1fr}
.hero--inner .hero-copy{max-width:680px}
.hero--inner h1{max-width:22ch}
.hero--inner .eyebrow{margin-bottom:26px}

/* full-width photo band */
.fullband{padding:0;line-height:0}
.fullband img{width:100%;height:clamp(300px,52vh,600px);object-fit:cover;display:block}

/* scroll cue */
.scroll-cue{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);display:flex;flex-direction:column;
  align-items:center;gap:10px;color:var(--bronze);cursor:pointer}
.scroll-cue__label{font-family:var(--sans);font-size:.62rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase}
.scroll-cue__chev{width:12px;height:12px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);animation:cueBounce 2s ease-in-out infinite}
@keyframes cueBounce{0%,100%{transform:rotate(45deg) translate(0,0);opacity:.5}50%{transform:rotate(45deg) translate(3px,3px);opacity:1}}

/* ---------- generic sections ---------- */
section{padding:clamp(72px,10vh,120px) 0}
.section-head .eyebrow{margin-bottom:22px}
.section-head h2{margin-bottom:0}

/* deep statement band */
.deep{background:var(--blue);color:var(--paper);padding:clamp(120px,18vh,200px) 0}
.deep .statement{color:var(--paper)}
.deep .statement em{color:var(--bronze-light)}
.deep .eyebrow{color:var(--bronze-light)}
.deep .quiet{color:rgba(251,249,245,.74);font-size:1.05rem;max-width:60ch;margin-top:28px}

/* quiet alt band */
.tint{background:var(--paper-2)}
.mistband{background:var(--mist)}

/* prose block */
.prose p{max-width:64ch}
.prose h3{font-family:var(--serif-display);font-weight:500;color:var(--blue);font-size:clamp(1.3rem,2vw,1.6rem);
  margin:2em 0 .5em;line-height:1.25}
.prose .serif-lede+p{margin-top:1.4em}

/* therapies index list */
.therapy-list{list-style:none;border-top:1px solid rgba(160,113,58,.28)}
.therapy-list li{border-bottom:1px solid rgba(160,113,58,.28)}
.therapy-list a{display:flex;justify-content:space-between;align-items:center;gap:32px;padding:30px 2px;
  transition:transform .4s ease}
.therapy-list a:hover{transform:translateX(10px)}
.therapy-list .t-wrap{display:block}
.therapy-list .t{display:block;font-family:var(--serif-display);font-weight:500;font-size:clamp(1.45rem,2.5vw,2rem);
  color:var(--blue);line-height:1.15;transition:color .35s ease}
.therapy-list .d{display:block;margin-top:8px;font-family:var(--serif-body);font-size:1.05rem;line-height:1.55;
  color:var(--ink);opacity:.7;max-width:48ch}
.therapy-list .arrow{flex:none;color:var(--bronze-light);font-size:1.4rem;line-height:1;
  transition:transform .4s ease,color .35s ease}
.therapy-list a:hover .t{color:var(--bronze)}
.therapy-list a:hover .arrow{transform:translateX(8px);color:var(--bronze)}

/* FAQ */
.faq{margin-top:8px}
.faq details{border-top:1px solid rgba(21,66,95,.14)}
.faq details:last-child{border-bottom:1px solid rgba(21,66,95,.14)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;
  padding:28px 0;font-family:var(--serif-display);font-size:clamp(1.25rem,2vw,1.5rem);font-weight:500;color:var(--blue)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:11px;height:11px;border-right:1px solid var(--bronze);
  border-bottom:1px solid var(--bronze);transform:rotate(45deg);transition:transform .35s;margin-top:-4px}
.faq details[open] summary::after{transform:rotate(225deg);margin-top:4px}
.faq .a{padding:0 0 32px;max-width:64ch}
.faq .a p+p{margin-top:1em}

/* bullet columns */
.cols{columns:2;column-gap:52px;margin:14px 0 4px;list-style:none}
.cols li{margin:0 0 10px;padding-left:20px;position:relative;break-inside:avoid}
.cols li::before{content:"";position:absolute;left:0;top:.72em;width:7px;height:1px;background:var(--bronze)}
@media(max-width:640px){.cols{columns:1}}

/* pull quote / testimonial */
.pull{background:var(--mist)}
.pull .wrap{max-width:900px;text-align:center}
.pull .mark{font-family:var(--serif-display);font-size:3.2rem;color:var(--bronze-light);line-height:0;display:block;height:24px}
.pull blockquote{font-family:var(--serif-display);font-weight:300;font-style:italic;
  font-size:clamp(1.45rem,2.6vw,2rem);line-height:1.42;color:var(--blue)}
.pull footer{margin-top:24px;font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--bronze)}

/* testimonial stack */
.review{max-width:760px;margin:0 auto}
.review blockquote{font-family:var(--serif-display);font-weight:400;font-size:clamp(1.25rem,2vw,1.5rem);
  line-height:1.5;color:var(--ink)}
.review blockquote p+p{margin-top:.9em}
.review footer{margin-top:20px;font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--bronze)}

/* contact / info grid */
.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:44px}
.info-grid .k{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--bronze);margin-bottom:12px}
.info-grid .v{font-family:var(--serif-display);font-size:1.3rem;color:var(--blue);line-height:1.4}
.info-grid .v a{border-bottom:1px solid rgba(160,113,58,.35)}
.info-grid small{display:block;font-family:var(--sans);font-size:.95rem;color:var(--ink);opacity:.72;margin-top:8px;letter-spacing:.01em}
@media(max-width:640px){.info-grid{grid-template-columns:1fr;gap:30px}}
.map-frame{margin-top:56px;border:1px solid rgba(21,66,95,.14);aspect-ratio:16/8;width:100%}
.map-frame iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(.25) contrast(.95)} /* display:block kills the inline baseline gap below the map */
@media(max-width:640px){.map-frame{aspect-ratio:1/1;margin-top:40px}} /* usable map height on phones */

/* closing band */
.close{text-align:center}
.close .wrap{max-width:640px}
.close h2{margin-bottom:22px}
.close p{color:var(--ink);margin-bottom:36px}
.close .hours{margin-top:34px;font-family:var(--sans);font-size:.76rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--bronze)}

/* about portrait */
.about-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(40px,5vw,72px);align-items:start}
.portrait{position:relative;z-index:0;max-width:430px;justify-self:end;margin:6px 18px 18px 0}
.portrait img{width:100%;display:block}
.portrait::after{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--bronze-light);z-index:-1}
@media(max-width:820px){
  .about-grid{grid-template-columns:1fr}
  .portrait{order:-1;justify-self:start;max-width:380px;margin:0 18px 34px 0}
}

/* back to top — lives inside the last section of each page, above the footer */
.to-top{text-align:center;padding:72px 0 0}
.to-top a{display:inline-flex;flex-direction:column;align-items:center;gap:12px;color:var(--bronze);transition:color .3s}
.to-top a:hover{color:var(--blue)}
.to-top__chev{width:11px;height:11px;border-left:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);transition:transform .3s}
.to-top a:hover .to-top__chev{transform:rotate(45deg) translate(-2px,-2px)}
.to-top__label{font-family:var(--sans);font-size:.66rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase}

/* footer */
.site-footer{background:var(--blue);color:rgba(251,249,245,.72)}
.site-footer .wrap{padding:56px 32px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px}
.site-footer .fm{font-family:var(--serif-display);font-size:1.35rem;font-weight:400;color:var(--paper)}
.site-footer .fm span{display:block;font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--bronze-light);margin-top:4px}
.site-footer h4{font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--bronze-light);margin-bottom:16px}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:9px}
.site-footer a{font-family:var(--sans);font-size:.94rem;transition:color .2s}
.site-footer a:hover{color:var(--paper)}
.site-footer .legal{grid-column:1/-1;border-top:1px solid rgba(251,249,245,.15);margin-top:16px;padding-top:22px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-family:var(--sans);font-size:.74rem;letter-spacing:.04em}
.site-footer .tag{font-family:var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--bronze-light);font-size:.68rem}
@media(max-width:720px){.site-footer .wrap{grid-template-columns:1fr}}

/* placeholder slot (where line art will go later) */
.art-slot{border:1px dashed rgba(160,113,58,.4);color:var(--bronze);font-family:var(--sans);
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;
  min-height:180px;opacity:.5}

/* sub-toggle active (dropdown parent for current page) */
.sub-toggle.active{color:var(--bronze)}

/* qualifications */
.qual-list{margin-top:48px;display:grid;grid-template-columns:1fr 1fr;gap:40px 64px}
.qual-group{break-inside:avoid}
.qual-inst{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);
  padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid rgba(21,66,95,.14)}
.qual-group ul{list-style:none}
.qual-group li{font-family:var(--serif-display);font-size:1.2rem;color:var(--blue);line-height:1.35;padding:6px 0}
@media(max-width:640px){.qual-list{grid-template-columns:1fr;gap:32px}}

/* close on tint ground (used on contact + secondary pages to separate from blue footer) */
.close.tint{background:var(--paper-2)}

/* reviews */
.review-cat{max-width:760px;margin:0 auto;padding:0}
.review-cat:not(:first-child){margin-top:14px}
.review-cat .eyebrow{padding-top:8px}
.review-stack{max-width:760px;margin:18px auto 48px;display:flex;flex-direction:column;gap:10px}
.review-divider{display:flex;justify-content:center;align-items:center;padding:22px 0}
.review-divider svg{width:170px;height:auto;display:block;opacity:.9}
.review-divider path{fill:none;stroke:var(--bronze);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.review{background:var(--white);border:1px solid rgba(21,66,95,.12);border-top:2px solid var(--bronze);
  border-radius:2px;padding:40px 44px 36px}
@media(max-width:640px){.review{padding:30px 24px 28px}}
.review-body{position:relative}
.review blockquote{font-family:var(--serif-display);font-weight:400;font-size:clamp(1.2rem,1.9vw,1.45rem);line-height:1.5;color:var(--ink)}
.review blockquote p+p{margin-top:.85em}
.review.is-long:not(.is-open) .review-body{max-height:10.5em;overflow:hidden}
.review.is-long:not(.is-open) .review-body::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4.5em;
  background:linear-gradient(rgba(255,255,255,0),var(--white))} /* cards are white now */
.review-more{margin-top:18px;background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:.68rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--bronze);opacity:.85;display:inline-flex;align-items:center;gap:8px;padding:0;transition:opacity .25s}
.review-more:hover{opacity:1}
.review-more::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);transition:transform .3s}
.review.is-open .review-more::after{transform:rotate(-135deg)}
.review footer{margin-top:30px;font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.review footer::before{content:"";display:block;width:34px;height:1px;background:var(--bronze-light);margin-bottom:14px} /* signature rule — separates attribution from quote/control */
.review footer span{display:block;font-weight:500;letter-spacing:.06em;color:var(--ink);opacity:.6;margin-top:6px;text-transform:none;font-size:.9rem}

/* reveal */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .scroll-cue__chev{animation:none}
}
