/* ==========================================================================
   The Party Press — Atelier Cream design system (shared across all pages)
   ========================================================================== */
:root{
  --porcelain:#F7F1E7; --cream:#EFE4D2; --rattan:#C9A66B; --gold:#B08D57;
  --espresso:#2E2A24; --sage:#8A9A7B; --blush:#E8C9C1; --line:rgba(46,42,36,.16);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--porcelain);color:var(--espresso);font-family:"Inter",sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}
.serif{font-family:"Fraunces",serif}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
a{color:inherit;text-decoration:none}
h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}
img{max-width:100%}
.eyebrow{font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);font-weight:600}

/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:50;backdrop-filter:blur(10px);background:rgba(247,241,231,.72);border-bottom:1px solid var(--line)}
.navin{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:46px;width:auto;display:block;mix-blend-mode:multiply}
.brand b{font-family:"Fraunces",serif;font-weight:500;font-size:19px;letter-spacing:.02em}
@media(max-width:520px){.brand img{height:40px}.brand b{font-size:17px}}
.navlinks{display:flex;gap:24px;font-size:14px;color:#5a5349}
.navlinks a:hover,.navlinks a.active{color:var(--espresso)}
.btn{display:inline-block;background:var(--espresso);color:var(--porcelain);padding:11px 22px;border-radius:40px;font-size:13.5px;letter-spacing:.02em;transition:.25s;border:1px solid var(--espresso);cursor:pointer}
.btn:hover{background:transparent;color:var(--espresso)}
.btn-ghost{background:transparent;color:var(--espresso)}
.btn-ghost:hover{background:var(--espresso);color:var(--porcelain)}
.navtoggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;background:transparent;border:none;cursor:pointer;padding:9px;margin-left:14px}
.navtoggle span{display:block;height:2px;width:100%;background:var(--espresso);border-radius:2px;transition:.25s}
nav.open .navtoggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
nav.open .navtoggle span:nth-child(2){opacity:0}
nav.open .navtoggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:980px){
  .navtoggle{display:flex}
  .navin .btn{margin-left:auto}
  .navlinks{display:none;position:absolute;top:74px;left:0;right:0;flex-direction:column;gap:0;background:rgba(247,241,231,.98);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:6px 32px 18px;box-shadow:0 24px 40px -28px rgba(46,42,36,.5)}
  nav.open .navlinks{display:flex}
  .navlinks a{padding:15px 2px;border-bottom:1px solid var(--line);font-size:15.5px;color:var(--espresso)}
  .navlinks a:last-child{border-bottom:none}
}

/* generic section */
section{padding:96px 0}
/* homepage: give plain content sections (which use class="wrap" directly, zeroing
   their own vertical padding) a consistent top rhythm; scoped so spoke pages are untouched */
body.home section[class="wrap"]{padding-top:96px}
body.home .faq{margin-left:0}
.shead{max-width:680px;margin-bottom:50px}
.shead h2{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(30px,4.4vw,50px);line-height:1.08;letter-spacing:-.01em;margin:16px 0 14px}
.shead p{color:#5f5849;font-size:17px}
.center{text-align:center;margin-left:auto;margin-right:auto}

/* home hero */
header.hero{padding:150px 0 80px;position:relative}
.heroframe{position:relative;border-radius:6px;overflow:hidden}
.heroframe img{width:100%;height:660px;object-fit:cover;display:block;filter:saturate(1.02) brightness(.9)}
.heroframe::after{content:"";position:absolute;inset:18px;border:1px solid rgba(247,241,231,.55);pointer-events:none;border-radius:2px}
.herotext{position:absolute;left:0;right:0;bottom:0;padding:56px;background:linear-gradient(to top,rgba(22,18,12,.94),rgba(22,18,12,.74) 40%,rgba(22,18,12,.28) 72%,transparent);color:var(--porcelain)}
.herotext .inner{max-width:660px}
.herotext .eyebrow{color:#f1e3c4}
.herotext h1{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(38px,5.6vw,72px);line-height:1.05;letter-spacing:-.01em;margin:14px 0 12px;text-shadow:0 2px 28px rgba(0,0,0,.5)}
.herotext h1 em{font-style:italic;color:#f4d8a0}
.herotext p{max-width:520px;font-size:16.5px;color:#f4ede0;text-shadow:0 1px 16px rgba(0,0,0,.55)}
.herocta{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.herocta .btn{background:var(--porcelain);color:var(--espresso);border-color:var(--porcelain)}
.herocta .btn:hover{background:transparent;color:var(--porcelain)}
.herocta .btn-ghost{background:transparent;color:var(--porcelain);border-color:rgba(247,241,231,.5)}
.areas{position:absolute;top:38px;right:54px;text-align:right;color:var(--porcelain);font-size:12px;letter-spacing:.22em;text-transform:uppercase;text-shadow:0 1px 12px rgba(0,0,0,.6)}
.areas b{display:block;font-family:"Fraunces",serif;font-size:15px;letter-spacing:.04em;font-weight:400}
@media(max-width:700px){.heroframe img{height:600px}.herotext{padding:30px}.areas{display:none}}

/* split hero (copy + full portrait photo) */
.herosplit{display:grid;grid-template-columns:.95fr 1.05fr;gap:56px;align-items:center}
.herocopy .eyebrow{letter-spacing:.22em}
.herocopy h1{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(32px,4.4vw,58px);line-height:1.06;letter-spacing:-.01em;margin:16px 0 18px}
.herocopy p{color:#544d40;font-size:17px;max-width:560px}
.herobtns{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.heropic{position:relative;border-radius:6px;overflow:hidden;background:var(--cream)}
.heropic::after{content:"";position:absolute;inset:14px;border:1px solid rgba(247,241,231,.7);pointer-events:none;border-radius:2px}
.heropic img{width:100%;height:auto;max-height:640px;object-fit:cover;object-position:center;display:block}
@media(max-width:820px){.herosplit{grid-template-columns:1fr;gap:30px}.heropic img{max-height:520px}}

/* page hero (interior pages) */
.phero{padding:120px 0 0;position:relative}
.pheroframe{position:relative;border-radius:6px;overflow:hidden}
.pheroframe img{width:100%;height:460px;object-fit:cover;display:block;filter:saturate(1.02) brightness(.86)}
.pheroframe::after{content:"";position:absolute;inset:16px;border:1px solid rgba(247,241,231,.5);pointer-events:none;border-radius:2px}
.pherotext{position:absolute;left:0;right:0;bottom:0;padding:48px;background:linear-gradient(to top,rgba(22,18,12,.92),rgba(22,18,12,.5) 55%,transparent);color:var(--porcelain)}
.pherotext .eyebrow{color:#f1e3c4}
.pherotext h1{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(34px,5vw,58px);line-height:1.05;margin:12px 0 10px;text-shadow:0 2px 24px rgba(0,0,0,.5);max-width:720px}
.pherotext p{max-width:560px;font-size:16px;color:#f4ede0;text-shadow:0 1px 14px rgba(0,0,0,.5)}
.crumbs{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#e6d5b4}
@media(max-width:700px){.pheroframe img{height:420px}.pherotext{padding:28px}}

/* intro / who we are */
.intro{padding-top:78px;padding-bottom:30px}
.introgrid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.introgrid h2{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(28px,4vw,46px);line-height:1.1;letter-spacing:-.01em;margin:14px 0 0}
.introgrid p{color:#544d40;font-size:17px}
.loccard{background:#fffaf0;border:1px solid var(--line);border-radius:6px;padding:30px}
.loccard h4{font-family:"Fraunces",serif;font-weight:500;font-size:14px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.locrow{display:flex;flex-direction:column;gap:2px}
.locrow .loc{display:flex;align-items:baseline;gap:12px;padding:14px 0;border-bottom:1px solid rgba(46,42,36,.08)}
.locrow .loc:last-child{border-bottom:none}
.locrow .loc b{font-family:"Fraunces",serif;font-weight:500;font-size:19px}
.locrow .loc span{font-size:13px;color:#8a8169}
@media(max-width:820px){.introgrid{grid-template-columns:1fr;gap:30px}}

/* service cards (4) */
.svc{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{background:#fffaf0;border:1px solid var(--line);border-radius:6px;overflow:hidden;transition:.3s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(46,42,36,.4)}
.card .ph{height:200px;overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:.6s}
.card:hover .ph img{transform:scale(1.05)}
.card .body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.card h3{font-family:"Fraunces",serif;font-weight:400;font-size:22px;margin-bottom:8px}
.card p{font-size:14px;color:#5f5849;flex:1}
.card .num{font-size:12px;letter-spacing:.2em;color:var(--gold)}
.card .slink{margin-top:18px;font-size:13px;letter-spacing:.03em;color:var(--espresso);font-weight:500;display:inline-flex;align-items:center;gap:7px;align-self:flex-start;border-bottom:1px solid var(--gold);padding-bottom:3px;transition:.25s}
.card .slink:hover{gap:11px;color:var(--gold)}
@media(max-width:980px){.svc{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.svc{grid-template-columns:1fr}}

/* full-events / dark band */
.caterband{background:var(--espresso);color:var(--porcelain);border-radius:6px;padding:60px;display:grid;grid-template-columns:1.1fr .9fr;gap:54px;align-items:center;position:relative}
.caterband::after{content:"";position:absolute;inset:16px;border:1px solid rgba(247,241,231,.2);pointer-events:none;border-radius:2px}
.caterband .eyebrow{color:var(--rattan)}
.caterband h2{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(28px,3.8vw,44px);line-height:1.08;margin:14px 0 14px}
.caterband p{color:#e7dcc8;font-size:16px;max-width:440px}
.evtags{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.evtags span{border:1px solid rgba(201,166,107,.5);color:#e9d9b8;font-size:12.5px;padding:7px 15px;border-radius:40px}
.menu-a{background:rgba(247,241,231,.05);border:1px solid rgba(247,241,231,.18);border-radius:4px;padding:28px}
.menu-a h4{font-family:"Fraunces",serif;font-weight:400;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--rattan);margin-bottom:16px}
.menu-a ul{list-style:none}
.menu-a li{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid rgba(247,241,231,.12);font-size:15px}
.menu-a li:last-child{border:none}
.menu-a li span{color:#b9ad97;font-size:13px;font-style:italic;font-family:"Fraunces",serif;white-space:nowrap}
@media(max-width:820px){.caterband{grid-template-columns:1fr;gap:30px;padding:40px}}

/* dark full-width strips: add a porcelain gap above so they don't butt against the cards */
.fsband,.brandshow{margin-top:56px}

/* full service event planning band (full-width dark strip, text left + video right) */
.fsband{background:var(--espresso);color:var(--porcelain)}
.fsband .eyebrow{color:var(--rattan)}
.fsband h2{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(28px,3.8vw,44px);line-height:1.08;margin:14px 0 14px}
.fsband p{color:#e7dcc8;font-size:16px;max-width:520px}
.fsgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.fsvid{display:flex;justify-content:center}
.fsvid .reelcard{width:300px;max-width:100%}
@media(max-width:820px){.fsgrid{grid-template-columns:1fr;gap:34px}}

/* boba catering services grid / generic small cards */
.bgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.bcard{background:#fffaf0;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;transition:.3s}
.bcard:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(46,42,36,.4)}
.bcard .ph{height:150px;overflow:hidden}
.bcard .ph img{width:100%;height:100%;object-fit:cover;transition:.6s}
.bcard:hover .ph img{transform:scale(1.05)}
.bcard .body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.bcard h3{font-family:"Fraunces",serif;font-weight:400;font-size:20px;margin-bottom:8px}
.bcard p{font-size:13.5px;color:#5f5849;flex:1}
.bcard .best{margin-top:16px;font-size:12px;letter-spacing:.04em;color:var(--sage);font-weight:600;border-top:1px solid rgba(46,42,36,.08);padding-top:14px}
@media(max-width:980px){.bgrid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.bgrid{grid-template-columns:1fr}}

/* package cards (service pages) */
.pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pkg{background:#fffaf0;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.pkg .ph{aspect-ratio:3/4;overflow:hidden;background:var(--cream)}
.pkg .ph img{width:100%;height:100%;object-fit:contain;transition:.6s}
.pkg:hover .ph img{transform:scale(1.03)}
.pkg .body{padding:28px 26px 30px;display:flex;flex-direction:column;flex:1}
.pkg .kicker{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.pkg h3{font-family:"Fraunces",serif;font-weight:400;font-size:24px;margin-bottom:10px}
.pkg p{font-size:14.5px;color:#5f5849;flex:1}
.pkg .best{margin-top:18px;font-size:12.5px;color:var(--sage);font-weight:600;border-top:1px solid rgba(46,42,36,.08);padding-top:14px}
.pkgs.four{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.pkgs.four{grid-template-columns:1fr 1fr}}
@media(max-width:880px){.pkgs{grid-template-columns:1fr}}
@media(max-width:560px){.pkgs.four{grid-template-columns:1fr}}

/* add-on tiles */
.addon-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.addon{border-radius:6px;overflow:hidden;position:relative;aspect-ratio:1/1;background:#1a1712}
.addon img{width:100%;height:100%;object-fit:cover;display:block;transition:.5s}
.addon:hover img{transform:scale(1.06)}
.addon span{position:absolute;left:0;right:0;bottom:0;padding:14px 14px 12px;color:#f7f1e7;font-family:"Fraunces",serif;font-size:14px;background:linear-gradient(to top,rgba(20,16,10,.82),transparent);text-align:center}
@media(max-width:820px){.addon-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:480px){.addon-grid{grid-template-columns:1fr 1fr}}

/* keepsake product cards (alternating rows) */
.kcard{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;margin-bottom:56px}
.kcard:last-child{margin-bottom:0}
.kcard:nth-child(even) .kpic{order:2}
.kpic{border-radius:6px;overflow:hidden;position:relative}
.kpic::after{content:"";position:absolute;inset:14px;border:1px solid rgba(247,241,231,.7)}
.kpic img{width:100%;height:520px;object-fit:cover;display:block}
.kcard h3{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(26px,3.4vw,40px);line-height:1.1;margin:12px 0 12px}
.kcard .kbody p{color:#544d40;font-size:16px;margin-bottom:16px}
.kcard .kbody ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;margin-top:6px}
.kcard .kbody li{position:relative;padding-left:20px;font-size:14px;color:#5f5849}
.kcard .kbody li::before{content:"\2726";position:absolute;left:0;top:1px;color:var(--sage);font-size:11px}
@media(max-width:820px){.kcard{grid-template-columns:1fr;gap:26px}.kcard:nth-child(even) .kpic{order:0}.kpic img{height:360px}.kcard .kbody ul{grid-template-columns:1fr}}

/* experience split */
.exp{background:var(--cream)}
.expgrid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.expgrid .pic{border-radius:6px;overflow:hidden;position:relative}
.expgrid .pic::after{content:"";position:absolute;inset:14px;border:1px solid rgba(247,241,231,.7)}
.expgrid .pic img{width:100%;height:560px;object-fit:cover;display:block}
.steps{list-style:none}
.steps li{padding:26px 0;border-top:1px solid var(--line);display:flex;gap:22px}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps .n{font-family:"Fraunces",serif;font-size:30px;color:var(--rattan);line-height:1;min-width:46px}
.steps h4{font-family:"Fraunces",serif;font-weight:400;font-size:21px;margin-bottom:4px}
.steps p{font-size:14.5px;color:#5f5849}
.addons{margin-top:30px;display:flex;flex-wrap:wrap;gap:10px}
.pill{border:1px solid var(--gold);color:var(--gold);padding:7px 16px;border-radius:40px;font-size:13px}
@media(max-width:820px){.expgrid{grid-template-columns:1fr;gap:34px}.expgrid .pic img{height:380px}}

/* branding showcase */
.brandshow{background:var(--espresso);color:var(--porcelain)}
.brandshow .eyebrow{color:var(--rattan)}
.brandshow h2{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(28px,4vw,46px);line-height:1.1;margin:14px 0 14px}
.brandshow .lead{color:#e7dcc8;font-size:16.5px;max-width:620px}
.bimgs{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.bimgs figure{border-radius:6px;overflow:hidden;position:relative}
.bimgs img{width:100%;height:300px;object-fit:cover;display:block;transition:.6s}
.bimgs figure:hover img{transform:scale(1.05)}
.bimgs figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 18px;font-size:13.5px;color:#f7f1e7;background:linear-gradient(to top,rgba(20,16,10,.8),transparent);font-family:"Fraunces",serif}
.bimgs.four{grid-template-columns:repeat(4,1fr)}
.bimgs.four img{height:270px}
@media(max-width:900px){.bimgs.four{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.bimgs{grid-template-columns:1fr}.bimgs img{height:240px}.bimgs.four{grid-template-columns:1fr 1fr}}

/* full-service video band */
.videoband{position:relative;min-height:520px;display:flex;align-items:flex-end;overflow:hidden;border-radius:6px}
.videoband .bgvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.videoband .vscrim{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(22,18,12,.9),rgba(22,18,12,.35) 55%,rgba(22,18,12,.5))}
.videoband .vcontent{position:relative;z-index:2;padding:56px;color:var(--porcelain);max-width:620px}
.videoband .eyebrow{color:#f1e3c4}
.videoband h2{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(28px,4vw,48px);line-height:1.08;margin:14px 0 12px;text-shadow:0 2px 24px rgba(0,0,0,.5)}
.videoband p{color:#f4ede0;font-size:16.5px;text-shadow:0 1px 14px rgba(0,0,0,.5);max-width:480px}
.videoband .vtags{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.videoband .vtags span{border:1px solid rgba(247,241,231,.4);color:#f1e6d3;font-size:12.5px;padding:7px 15px;border-radius:40px}
@media(max-width:700px){.videoband .vcontent{padding:32px}}

/* portrait photo gallery (uniform tiles) */
.photogrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.photogrid img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px;display:block;filter:saturate(1.03)}
@media(max-width:900px){.photogrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.photogrid{grid-template-columns:1fr 1fr}}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px}
.gal img{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block;filter:saturate(1.03)}
.gal .tall{grid-row:span 2}
.gal .wide{grid-column:span 2}
@media(max-width:820px){.gal{grid-template-columns:repeat(2,1fr)}}

/* reels */
.reels{display:flex;gap:18px;overflow-x:auto;padding:4px 2px 16px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--rattan) transparent}
.reels::-webkit-scrollbar{height:8px}
.reels::-webkit-scrollbar-thumb{background:var(--rattan);border-radius:20px}
.reelcard{position:relative;display:block;flex:0 0 auto;width:clamp(228px,23vw,262px);aspect-ratio:9/16;border-radius:6px;overflow:hidden;background:#1a1712;scroll-snap-align:start;box-shadow:0 18px 44px -20px rgba(46,42,36,.55)}
.reelcard img,.reelcard video{width:100%;height:100%;object-fit:cover;display:block;transition:.6s}
.reelcard:hover img{transform:scale(1.06)}
.reelcard .rcov{position:absolute;inset:0;display:flex;align-items:flex-end;padding:18px;border:none;width:100%;text-align:left;cursor:pointer;background:linear-gradient(to top,rgba(20,16,10,.74),transparent 46%);transition:opacity .3s}
.reelcard.playing .rcov{opacity:0;pointer-events:none}
.reelcard .playbtn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:62px;height:62px;border-radius:50%;background:rgba(247,241,231,.94);display:flex;align-items:center;justify-content:center;transition:.25s;box-shadow:0 8px 24px -6px rgba(0,0,0,.5)}
.reelcard .playbtn::after{content:"";border-left:18px solid var(--espresso);border-top:11px solid transparent;border-bottom:11px solid transparent;margin-left:5px}
.reelcard:hover .playbtn{transform:translate(-50%,-50%) scale(1.08)}
.reelcard .rccap{color:#f7f1e7;font-family:"Fraunces",serif;font-weight:400;font-size:14.5px;line-height:1.25;text-shadow:0 1px 10px rgba(0,0,0,.5);position:relative;z-index:1}
/* wide (16:9) inline video player */
.reelcard.wide{width:100%;max-width:920px;aspect-ratio:16/9;margin:0 auto}
@media(max-width:640px){.reelcard{width:74vw;max-width:300px}}

/* quote */
.quote{background:var(--espresso);color:var(--porcelain);text-align:center}
.quote .wrap{max-width:880px}
.quote .mark{font-family:"Fraunces",serif;font-size:64px;color:var(--rattan);line-height:.4}
.quote blockquote{font-family:"Fraunces",serif;font-weight:300;font-style:italic;font-size:clamp(24px,3.4vw,38px);line-height:1.3;margin:24px 0}
.quote cite{font-style:normal;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:#cdbf9d}

/* reviews wall */
.revwall{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.revcard{background:#fffaf0;border:1px solid var(--line);border-radius:6px;padding:30px 28px;display:flex;flex-direction:column;gap:14px}
.revcard .stars{color:#c9a66b;letter-spacing:3px;font-size:14px}
.revcard p{font-family:"Fraunces",serif;font-weight:300;font-size:17px;line-height:1.5;color:#403a30;flex:1}
.revcard .who{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:16px;min-height:42px}
.revcard .mono{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:"Fraunces",serif;font-size:17px;color:var(--gold)}
.revcard .who b{font-family:"Fraunces",serif;font-weight:500;font-size:15px;display:block;line-height:1.2}
.revcard .who span{font-size:12.5px;color:#8a8169}
/* trademark: company logos rendered monochrome / black only */
.revcard .rvlogo{height:24px;width:auto;max-width:130px;object-fit:contain;filter:grayscale(1) brightness(0);opacity:.72;mix-blend-mode:multiply}
.revcard .rvwordmark{font-family:"Fraunces",serif;font-weight:500;font-size:20px;letter-spacing:.01em;color:#2e2a24;opacity:.82}
.revcard .rvrole{font-size:12.5px;color:#8a8169}
@media(max-width:880px){.revwall{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.revwall{grid-template-columns:1fr}}

/* inquiry form */
.inqwrap{background:var(--cream)}
.inqcard{background:#fffaf0;border:1px solid var(--line);border-radius:8px;padding:44px;max-width:900px;margin:0 auto;box-shadow:0 30px 70px -44px rgba(46,42,36,.5)}
.inqtabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px;border-bottom:1px solid var(--line);padding-bottom:22px}
.inqtab{border:1px solid var(--line);background:transparent;color:#5f5849;font-family:"Inter",sans-serif;font-size:13.5px;padding:9px 18px;border-radius:40px;cursor:pointer;transition:.22s}
.inqtab:hover{border-color:var(--gold);color:var(--espresso)}
.inqtab.active{background:var(--espresso);color:var(--porcelain);border-color:var(--espresso)}
.inqform{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.inqform>*{min-width:0}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field.full{grid-column:1/-1}
.field label{font-size:12.5px;letter-spacing:.04em;color:#6b6353;font-weight:500}
.field input,.field select,.field textarea{font-family:"Inter",sans-serif;font-size:14.5px;color:var(--espresso);background:#fffdf8;border:1px solid var(--line);border-radius:5px;padding:12px 14px;transition:.2s;width:100%;max-width:100%;min-width:0}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,166,107,.16)}
.field textarea{resize:vertical;min-height:96px}
.checks{display:flex;flex-wrap:wrap;gap:10px}
.checks label{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#5f5849;border:1px solid var(--line);padding:8px 14px;border-radius:40px;cursor:pointer;font-weight:400;letter-spacing:0}
.checks input{accent-color:var(--gold);width:15px;height:15px}
.checks.cols{display:grid;grid-template-columns:repeat(3,1fr)}
.checks.cols label{justify-content:flex-start}
@media(max-width:600px){.checks.cols{grid-template-columns:1fr 1fr}}
.addrgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:2px}
.addrgrid .a-full{grid-column:1/-1}
.addrgrid input,.addrgrid select{width:100%;font-family:"Inter",sans-serif;font-size:14.5px;color:var(--espresso);background:#fffdf8;border:1px solid var(--line);border-radius:5px;padding:12px 14px;transition:.2s}
.addrgrid input:focus,.addrgrid select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,166,107,.16)}
.inqspec{display:none}
.inqspec.active{display:contents}
.inqfoot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:8px}
.inqfoot .note{font-size:12.5px;color:#8a8169;max-width:420px}
@media(max-width:700px){.inqform{grid-template-columns:1fr}.inqcard{padding:28px}}

/* final cta */
.final{text-align:center;padding:120px 0}
.final h2{font-family:"Fraunces",serif;font-weight:300;font-size:clamp(36px,5.6vw,68px);line-height:1.05;margin-bottom:18px}
.final p{color:#5f5849;font-size:18px;margin-bottom:34px}

/* footer */
footer{border-top:1px solid var(--line);padding:64px 0 40px}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:30px}
.foot .col h5{font-family:"Fraunces",serif;font-weight:500;margin-bottom:6px}
.foot .col p,.foot .col a{font-size:14px;color:#5f5849;display:block;line-height:1.9}
.foot .col a:hover{color:var(--espresso)}
.foot .big{font-family:"Fraunces",serif;font-size:26px;max-width:300px;font-weight:300}
.fbar{margin-top:48px;padding-top:22px;border-top:1px solid var(--line);font-size:12.5px;color:#9a907f;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.legal{margin-top:14px;font-size:11.5px;color:#b3a893;line-height:1.6;max-width:760px}

/* use-case strip */
.usecases{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.uc{position:relative;display:block;border-radius:6px;overflow:hidden;aspect-ratio:4/5;background:#1a1712}
.uc img{width:100%;height:100%;object-fit:cover;transition:.5s}
.uc:hover img{transform:scale(1.05)}
.uc .ucov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:20px;background:linear-gradient(to top,rgba(20,16,10,.86),rgba(20,16,10,.15) 62%,transparent)}
.uc h4{font-family:"Fraunces",serif;font-weight:400;font-size:20px;color:#f7f1e7;margin-bottom:2px}
.uc span{font-size:12.5px;color:#e0d3bb}
@media(max-width:820px){.usecases{grid-template-columns:1fr 1fr}}

/* faq accordion */
.faq{max-width:840px;margin:0 auto}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:22px 4px;font-family:"Fraunces",serif;font-weight:400;font-size:19px;color:var(--espresso);display:flex;justify-content:space-between;align-items:center;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:"Inter",sans-serif;font-size:26px;color:var(--gold);transition:.3s;line-height:1;flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 4px 24px;color:#544d40;font-size:15.5px;max-width:760px}

/* legal / policy document */
.legaldoc{max-width:780px;margin:0 auto}
.legaldoc .updated{font-size:13px;color:#8a8169;margin-bottom:34px}
.legaldoc h2{font-family:"Fraunces",serif;font-weight:400;font-size:23px;margin:36px 0 10px;color:var(--espresso)}
.legaldoc h2:first-of-type{margin-top:0}
.legaldoc p{color:#544d40;font-size:15.5px;margin-bottom:12px}
.legaldoc ul{margin:0 0 14px 22px;color:#544d40;font-size:15.5px}
.legaldoc li{margin-bottom:4px}
.legaldoc a{color:var(--gold)}
.fbar a{color:#9a907f}
.fbar a:hover{color:var(--espresso)}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(24px);transition:1s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
