/* ============================================================
   Nashville Magazine Photobooth — Shared Stylesheet
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Montserrat:wght@300;400;500;600;700&display=swap');

:root {
  --ink:        #0a0a0a;
  --ink-soft:   #121212;
  --ink-card:   #16140f;
  --paper:      #ffffff;
  --cream:      #f5f0e8;
  --gold:       #c9a84c;
  --gold-bright:#dcc16e;
  --gold-deep:  #a8873a;
  --on-dark-1:  #ffffff;
  --on-dark-2:  rgba(255,255,255,0.72);
  --on-dark-3:  rgba(255,255,255,0.50);
  --on-dark-4:  rgba(255,255,255,0.34);
  --on-light-1: #0a0a0a;
  --on-light-2: #3a382f;
  --on-light-3: #6b675b;
  --line-dark:  rgba(255,255,255,0.14);
  --line-gold:  rgba(201,168,76,0.42);
  --line-light: rgba(10,10,10,0.12);
  --serif:      'Playfair Display', Georgia, serif;
  --serif-alt:  'Cormorant Garamond', Georgia, serif;
  --sans:       'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;
  --section-pad: 110px;
  --maxw: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--ink); color:var(--on-dark-1); font-family:var(--sans); font-weight:400; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }

.container { max-width:var(--maxw); margin:0 auto; padding:0 40px; }
@media (max-width:680px) { .container { padding:0 22px; } }

/* ---- atoms ---- */
.eyebrow { font-family:var(--sans); font-weight:500; font-size:.72rem; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); }
.eyebrow.center { display:flex; align-items:center; justify-content:center; gap:16px; }
.eyebrow .tick { width:34px; height:1px; background:var(--gold); opacity:.7; }
.s-title { font-family:var(--serif); font-weight:500; letter-spacing:-0.018em; font-size:clamp(2.1rem,4vw,3.5rem); line-height:1.06; margin:18px 0 0; text-wrap:balance; }
.s-title em { font-style:italic; color:var(--gold); }
.lede { color:var(--on-dark-2); font-weight:300; font-size:1.06rem; line-height:1.8; }
.section { padding:var(--section-pad) 0; position:relative; }
.section.cream { background:var(--cream); color:var(--on-light-1); }
.section.cream .lede { color:var(--on-light-2); }
.section.cream .s-title em { color:var(--gold-deep); }

/* ---- buttons ---- */
.btn { display:inline-flex; align-items:center; gap:.6em; cursor:pointer; font-family:var(--sans); font-weight:600; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; padding:17px 30px; border:1px solid transparent; border-radius:2px; transition:all .25s ease; white-space:nowrap; }
.btn .ar { transition:transform .25s ease; }
.btn:hover .ar { transform:translateX(4px); }
.btn-gold { background:var(--gold); color:var(--ink); border-color:var(--gold); }
.btn-gold:hover { background:var(--gold-bright); border-color:var(--gold-bright); }
.btn-ghost { background:transparent; color:#fff; border-color:rgba(255,255,255,.5); }
.btn-ghost:hover { border-color:#fff; background:rgba(255,255,255,.07); }
.btn-lg { padding:21px 40px; font-size:.82rem; }
.text-link { font-family:var(--sans); font-weight:600; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:.55em; }
.text-link .ar { transition:transform .25s ease; }
.text-link:hover .ar { transform:translateX(4px); }

/* ============================================================
   HEADER + NAV
   ============================================================ */
.site-header { position:fixed; top:0; left:0; right:0; z-index:90; transition:background .35s, border-color .35s; border-bottom:1px solid transparent; background:linear-gradient(180deg, rgba(8,8,8,.72) 0%, rgba(8,8,8,.30) 55%, rgba(8,8,8,0) 100%); }
.site-header .bar { display:flex; align-items:center; justify-content:space-between; height:82px; transition:height .35s; }
.site-header.scrolled { background:rgba(10,10,10,.92); backdrop-filter:blur(14px); border-color:var(--line-dark); }
.site-header.scrolled .bar { height:68px; }

.brand { display:flex; align-items:center; gap:14px; }
.brand .mark { width:54px; height:54px; flex:none; }
.brand .mark svg { width:100%; height:100%; }
.brand .wm { display:flex; flex-direction:column; line-height:1; }
.brand .wm .a { font-family:var(--serif); font-weight:600; font-size:1.32rem; letter-spacing:.01em; }
.brand .wm .b { font-family:var(--sans); font-weight:400; font-size:.52rem; letter-spacing:.42em; text-transform:uppercase; color:var(--on-dark-3); padding-left:.42em; margin-top:4px; }

.nav { display:flex; align-items:center; gap:34px; }
.nav a { font-family:var(--sans); font-weight:500; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--on-dark-2); transition:color .2s; position:relative; padding:4px 0; }
.nav a::after { content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--gold); transition:width .25s; }
.nav a:hover, .nav a.active { color:#fff; }
.nav a:hover::after, .nav a.active::after { width:100%; }

.header-cta { display:flex; align-items:center; gap:18px; }
.burger { display:none; background:none; border:0; cursor:pointer; width:30px; height:22px; position:relative; }
.burger span { position:absolute; left:0; width:100%; height:1.6px; background:#fff; transition:all .3s; }
.burger span:nth-child(1) { top:0; }
.burger span:nth-child(2) { top:10px; }
.burger span:nth-child(3) { top:20px; }
@media (max-width:960px) { .nav { display:none; } .header-cta .btn { display:none; } .burger { display:block; } }

.drawer { position:fixed; inset:0; z-index:95; background:var(--ink); transform:translateY(-100%); transition:transform .45s cubic-bezier(.7,0,.2,1); display:flex; flex-direction:column; padding:30px 26px 40px; visibility:hidden; }
.drawer.open { transform:translateY(0); visibility:visible; }
.drawer .d-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:50px; }
.drawer .d-close { background:none; border:0; color:#fff; font-size:2rem; cursor:pointer; line-height:1; font-family:var(--serif); }
.drawer nav { display:flex; flex-direction:column; gap:6px; }
.drawer nav a { font-family:var(--serif); font-size:2rem; color:#fff; padding:14px 0; border-bottom:1px solid var(--line-dark); }
.drawer nav a .i { font-family:var(--sans); font-size:.7rem; letter-spacing:.2em; color:var(--gold); margin-right:14px; }
.drawer .d-cta { margin-top:auto; padding-top:30px; }
.drawer .d-cta .btn { width:100%; justify-content:center; }

/* ============================================================
   PAGE HERO BANNER (inner pages)
   ============================================================ */
.page-hero { position:relative; padding:160px 0 90px; background:var(--ink-soft); overflow:hidden; text-align:center; border-bottom:1px solid var(--line-dark); }
.page-hero::before { content:""; position:absolute; inset:0; background:radial-gradient(ellipse 80% 60% at 50% 50%, rgba(201,168,76,.06) 0%, transparent 70%); pointer-events:none; }
.page-hero .eyebrow { margin-bottom:20px; }
.page-hero h1 { font-family:var(--serif); font-weight:500; font-size:clamp(2.4rem,5vw,4rem); line-height:1.08; margin:0; letter-spacing:-0.02em; }
.page-hero h1 em { font-style:italic; color:var(--gold); }
.page-hero .sub { margin:22px auto 0; max-width:52ch; color:var(--on-dark-2); font-weight:300; font-size:1.06rem; line-height:1.75; }

/* ============================================================
   SOCIAL PROOF BAR
   ============================================================ */
.proof { background:var(--ink-soft); border-top:1px solid var(--line-dark); border-bottom:1px solid var(--line-dark); padding:38px 0; }
.proof .inner { display:flex; align-items:center; gap:40px; justify-content:space-between; flex-wrap:wrap; }
.proof .pf-label { font-size:.72rem; letter-spacing:.1em; color:var(--on-dark-3); max-width:230px; line-height:1.55; flex:none; }
.proof .pf-label b { color:var(--on-dark-2); font-weight:600; }
.logos { display:flex; align-items:center; gap:clamp(24px,4vw,52px); flex-wrap:wrap; }
.logos .lg { font-family:var(--serif); font-weight:600; font-size:1.1rem; letter-spacing:.02em; color:var(--on-dark-3); opacity:.78; transition:all .3s; white-space:nowrap; }
.logos .lg.alt { font-family:var(--sans); font-weight:700; letter-spacing:.18em; text-transform:uppercase; font-size:.88rem; }
.logos .lg:hover { color:#fff; opacity:1; }

/* ============================================================
   ABOUT
   ============================================================ */
.about .grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(40px,6vw,96px); align-items:center; }
.about .left h2 { margin:0; }
.about .left .accent { width:64px; height:1px; background:var(--gold-deep); margin:30px 0 0; }
.about .right p { font-size:1.1rem; line-height:1.85; color:var(--on-light-2); font-weight:300; margin:0 0 24px; }
.about .right p strong { font-weight:600; color:var(--on-light-1); }
.about .quote { margin:8px 0 0; padding-left:26px; border-left:2px solid var(--gold); font-family:var(--serif-alt); font-style:italic; font-size:1.3rem; color:var(--on-light-1); line-height:1.5; }
.about .quote cite { display:block; margin-top:12px; font-family:var(--sans); font-style:normal; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--on-light-3); }
@media (max-width:860px) { .about .grid { grid-template-columns:1fr; gap:48px; } }

/* ============================================================
   SERVICES
   ============================================================ */
.services .head { text-align:center; max-width:640px; margin:0 auto 70px; }
.services .head .lede { margin-top:18px; }
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.svc { background:var(--ink-card); border:1px solid var(--line-dark); border-radius:3px; overflow:hidden; transition:border-color .35s, transform .35s; }
.svc:hover { border-color:var(--line-gold); transform:translateY(-5px); }
.svc .pic { height:280px; position:relative; overflow:hidden; }
.svc .pic img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.svc .pic .num { position:absolute; top:16px; left:18px; z-index:3; font-family:var(--serif); font-style:italic; font-size:1.1rem; color:var(--gold); }
.svc .body { padding:30px 28px 34px; }
.svc .body h3 { font-family:var(--serif); font-weight:500; font-size:1.45rem; margin:0 0 12px; letter-spacing:-0.01em; }
.svc .body p { color:var(--on-dark-2); font-weight:300; font-size:.95rem; line-height:1.7; margin:0 0 22px; min-height:78px; }
@media (max-width:900px) { .svc-grid { grid-template-columns:1fr; max-width:460px; margin:0 auto; } .svc .body p { min-height:0; } }

/* ============================================================
   HOW IT WORKS
   ============================================================ */
.how .head { text-align:center; margin-bottom:76px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:0; }
.step { padding:0 36px; position:relative; text-align:center; }
.step:not(:last-child)::after { content:""; position:absolute; right:0; top:34px; bottom:0; width:1px; background:var(--line-dark); }
.step .no { font-family:var(--serif); font-style:italic; font-size:3.2rem; color:var(--gold); line-height:1; margin-bottom:22px; }
.step h3 { font-family:var(--serif); font-weight:500; font-size:1.4rem; margin:0 0 14px; }
.step p { color:var(--on-dark-2); font-weight:300; font-size:.96rem; line-height:1.7; margin:0; }
.how .center-cta { text-align:center; margin-top:72px; }
@media (max-width:820px) { .steps { grid-template-columns:1fr; gap:54px; } .step:not(:last-child)::after { display:none; } .step { padding:0; } }

/* ============================================================
   GALLERY
   ============================================================ */
.gallery { background:var(--ink); padding:var(--section-pad) 0; overflow:hidden; }
.gallery .gtop { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:44px; }
.gallery .gtop .s-title { margin:0; }
.gallery .gtop .hint { font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--on-dark-3); display:flex; align-items:center; gap:10px; }
.gallery .gtop .hint .ar { color:var(--gold); }
.gscroll { display:flex; gap:18px; overflow-x:auto; overflow-y:hidden; padding-bottom:20px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.gscroll::-webkit-scrollbar { height:3px; }
.gscroll::-webkit-scrollbar-thumb { background:var(--line-gold); }
.gscroll::-webkit-scrollbar-track { background:var(--line-dark); }
.gcard { flex:none; scroll-snap-align:start; position:relative; overflow:hidden; }
.gcard.tall { width:320px; height:440px; }
.gcard.wide { width:520px; height:440px; }
.gcard img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.gcard .cap { position:absolute; left:18px; bottom:16px; z-index:3; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.7); pointer-events:none; }
@media (max-width:680px) { .gcard.tall { width:240px; height:340px; } .gcard.wide { width:340px; height:340px; } }

/* ============================================================
   TESTIMONIAL
   ============================================================ */
.testi { background:var(--ink-soft); padding:calc(var(--section-pad) * 1.1) 0; position:relative; }
.testi::before { content:"\201C"; position:absolute; top:18px; left:50%; transform:translateX(-50%); font-family:var(--serif); font-size:7rem; color:var(--gold); opacity:.10; line-height:1; pointer-events:none; }
.testi .inner { max-width:940px; margin:0 auto; text-align:center; position:relative; }
.testi blockquote { font-family:var(--serif); font-weight:400; font-style:italic; font-size:clamp(1.7rem,3.6vw,3rem); line-height:1.32; margin:0; letter-spacing:-0.01em; text-wrap:balance; }
.testi blockquote .hl { color:var(--gold); }
.testi .attr { margin-top:40px; display:flex; flex-direction:column; align-items:center; gap:8px; }
.testi .attr .nm { font-family:var(--sans); font-weight:600; font-size:.84rem; letter-spacing:.18em; text-transform:uppercase; }
.testi .attr .role { font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.testi .stars { display:flex; gap:5px; margin-bottom:28px; justify-content:center; color:var(--gold); }

/* ============================================================
   FINAL CTA
   ============================================================ */
.final { background:var(--cream); color:var(--ink); text-align:center; padding:calc(var(--section-pad)*1.1) 0; }
.final .inner { max-width:760px; margin:0 auto; }
.final h2 { font-family:var(--serif); font-weight:500; letter-spacing:-0.02em; font-size:clamp(2.2rem,5vw,4rem); line-height:1.04; margin:18px 0 0; text-wrap:balance; }
.final h2 em { font-style:italic; color:var(--gold-deep); }
.final .sub { color:var(--on-light-2); font-weight:300; font-size:1.1rem; line-height:1.7; margin:26px auto 0; max-width:48ch; }
.final .cta-row { margin-top:42px; display:flex; justify-content:center; }
.final .contact { margin-top:46px; padding-top:34px; border-top:1px solid var(--line-light); display:flex; align-items:center; justify-content:center; gap:14px 34px; flex-wrap:wrap; }
.final .contact a { display:flex; align-items:center; gap:10px; font-size:.95rem; color:var(--on-light-1); font-weight:500; transition:color .2s; }
.final .contact a:hover { color:var(--gold-deep); }
.final .contact .ic { color:var(--gold-deep); width:18px; height:18px; }
.final .contact .dot { width:4px; height:4px; border-radius:50%; background:var(--gold-deep); opacity:.5; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer { background:var(--ink); border-top:1px solid var(--line-dark); padding:70px 0 40px; }
.footer .top { display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; margin-bottom:50px; }
.footer .fbrand .tag { color:var(--on-dark-3); font-weight:300; font-size:.9rem; max-width:36ch; margin-top:18px; line-height:1.7; }
.footer .cols { display:flex; gap:clamp(40px,7vw,90px); flex-wrap:wrap; }
.footer .col h5 { font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin:0 0 18px; font-weight:600; }
.footer .col a { display:block; color:var(--on-dark-2); font-size:.9rem; font-weight:300; padding:6px 0; transition:color .2s; }
.footer .col a:hover { color:#fff; }
.footer .bottom { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding-top:30px; border-top:1px solid var(--line-dark); }
.footer .bottom p { margin:0; font-size:.76rem; color:var(--on-dark-4); letter-spacing:.04em; }

/* ============================================================
   BOOKING MODAL
   ============================================================ */
.modal-scrim { position:fixed; inset:0; z-index:200; background:rgba(8,8,8,.85); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; }
.modal-scrim.open { opacity:1; visibility:visible; }
.modal { background:var(--ink-soft); border:1px solid var(--line-gold); border-radius:4px; max-width:600px; width:100%; max-height:90vh; overflow-y:auto; position:relative; transform:translateY(18px) scale(.98); transition:transform .35s cubic-bezier(.6,0,.2,1); }
.modal-scrim.open .modal { transform:translateY(0) scale(1); }
.modal .m-close { position:absolute; top:18px; right:20px; background:none; border:0; color:var(--on-dark-2); font-size:1.7rem; cursor:pointer; line-height:1; font-family:var(--serif); transition:color .2s; z-index:4; }
.modal .m-close:hover { color:#fff; }
.modal .m-head { padding:40px 40px 26px; text-align:center; border-bottom:1px solid var(--line-dark); }
.modal .m-head h3 { font-family:var(--serif); font-weight:500; font-size:2rem; margin:14px 0 8px; }
.modal .m-head p { color:var(--on-dark-2); font-weight:300; font-size:.94rem; margin:0; }
.modal .m-body { padding:30px 40px 40px; }
.ghl-slot { border:1px dashed var(--line-gold); border-radius:3px; min-height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; text-align:center; padding:40px 28px; color:var(--on-dark-3); }
.ghl-slot .t { font-family:var(--serif); font-style:italic; font-size:1.1rem; color:var(--on-dark-2); }
.ghl-slot code { font-family:ui-monospace, monospace; font-size:.76rem; color:var(--gold-bright); background:rgba(201,168,76,.1); padding:2px 7px; border-radius:3px; }
.modal .m-foot { margin-top:22px; text-align:center; font-size:.8rem; color:var(--on-dark-3); }
.modal .m-foot a { color:var(--gold); }

/* ---- scroll reveal ---- */
[data-reveal] { opacity:0; transform:translateY(26px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
[data-reveal].in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce) { [data-reveal] { opacity:1 !important; transform:none !important; } }

/* ============================================================
   LOGO IMAGE (real brand mark) + FOOTER SOCIALS + CONTRAST FIXES
   ============================================================ */
.brand .mark img { width:100%; height:100%; object-fit:contain; display:block; }
.footer .foot-social { display:flex; gap:12px; margin:0 0 26px; padding-bottom:30px; border-bottom:1px solid var(--line-dark); }
.footer .foot-social a { display:flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid var(--line-dark); border-radius:2px; color:var(--on-dark-3); transition:all .2s; }
.footer .foot-social a:hover { border-color:var(--line-gold); color:var(--gold); }
/* gold eyebrow on the cream Final CTA needs the deeper gold for contrast */
.final .eyebrow { color:var(--gold-deep); }


/* ============ UX POLISH PASS ============ */
.hero .hero-eyebrow { margin-bottom:18px; }
.testi .inner { max-width:760px; margin:0 auto; padding:0 24px; text-align:center; }
.testi blockquote { font-size:clamp(1.35rem,2.4vw,2rem); line-height:1.4; }
.testi .stars { margin-bottom:22px; color:var(--gold); display:flex; gap:5px; justify-content:center; }
.testi .attr { margin-top:24px; }

/* footer: clearer hierarchy + interaction */
.footer .col a { transition:color .2s ease; }
.footer .col a:hover { color:var(--gold); }
.footer .col h5 { letter-spacing:.14em; }
.footer .fbrand .tag { max-width:34ch; line-height:1.7; }
.footer .bottom { display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.footer .bottom a { color:var(--gold); text-decoration:none; }
@media (max-width:680px){ .footer .bottom { flex-direction:column; text-align:center; gap:8px; } }

/* ===== tap-to-call + sticky mobile CTA ===== */
.hdr-call{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--gold);border:1px solid rgba(201,168,76,0.4);border-radius:3px;margin-right:10px;text-decoration:none;transition:all .2s}
.hdr-call:hover{background:rgba(201,168,76,0.12);border-color:var(--gold)}
.mobile-cta{display:none}
@media(max-width:760px){
  .mobile-cta{display:grid;grid-template-columns:1fr 1.7fr;position:fixed;left:0;right:0;bottom:0;z-index:300;box-shadow:0 -6px 26px rgba(0,0,0,0.45)}
  .mobile-cta a{display:flex;align-items:center;justify-content:center;padding:15px 10px;text-decoration:none;font-weight:700;font-size:0.95rem;letter-spacing:.02em}
  .mobile-cta .mc-call{background:var(--ink-soft);color:var(--gold);border-top:1px solid rgba(201,168,76,0.3)}
  .mobile-cta .mc-book{background:var(--gold);color:var(--ink)}
  body{padding-bottom:56px}
  .hdr-call{display:none}
}

/* ===== TikTok video section + Reviews section ===== */
.videos .gtop{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px;gap:20px;flex-wrap:wrap}
.videos .hint{color:var(--gold);text-decoration:none;font-size:.9rem;letter-spacing:.04em}
.vgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1080px;margin:0 auto}
.vcard{aspect-ratio:9/16;border-radius:8px;overflow:hidden;background:var(--ink-card);border:1px solid var(--line-dark);display:flex;align-items:center;justify-content:center}
.vcard.ph{border-style:dashed;color:var(--on-dark-4);font-size:.82rem;text-align:center;padding:18px;line-height:1.7}
.vcard iframe,.vcard blockquote{width:100%!important;min-width:0!important;height:100%!important;margin:0!important;border:0}
@media(max-width:820px){.vgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.vgrid{grid-template-columns:1fr;max-width:330px}}
.reviews{text-align:center}
.rev-head{max-width:640px;margin:0 auto}
.g-badge{display:inline-flex;align-items:center;gap:10px;margin-top:16px;color:var(--on-dark-2);font-size:.92rem}
.g-badge .stars{color:var(--gold);letter-spacing:3px;font-size:1.05rem}
.rev-feature{font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.42;color:var(--on-dark-1);max-width:760px;margin:34px auto 0;font-weight:400}
.rev-feature .hl{color:var(--gold)}
.rev-feature cite{display:block;font-style:normal;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-dark-3);margin-top:18px}
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:46px auto 0;text-align:left}
.rcard{background:var(--ink-card);border:1px solid var(--line-dark);border-radius:8px;padding:24px}
.rcard .rs{color:var(--gold);letter-spacing:3px;font-size:.95rem}
.rcard p{color:var(--on-dark-2);line-height:1.7;font-weight:300;font-size:.96rem;margin:12px 0 14px}
.rcard>span:last-child{color:var(--on-dark-3);font-size:.8rem;letter-spacing:.06em}
.rcard.ph{border-style:dashed}
.rcard.ph p{color:var(--on-dark-4)}
@media(max-width:820px){.rgrid{grid-template-columns:1fr;max-width:480px}}

/* TikTok embeds: responsive, no forced crop */
.vgrid{grid-template-columns:repeat(auto-fit,minmax(min(325px,100%),1fr))!important;justify-items:center;align-items:start}
.vgrid .tiktok-embed{margin:0 auto!important}
