/* Brighton Park — main site styles (v2 palette) */
:root{
  --ink:#171B24; --white:#FAF8F4; --gold:#C5A66E; --plum:#6E3B5C;
  --blush:#F4EBF0; --teal:#0D6E6E; --lightteal:#E6F3F3;
  --maxw:1140px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{overflow-x:hidden;}
body{background:var(--white);color:var(--ink);font-family:'Montserrat',-apple-system,sans-serif;font-size:16px;line-height:1.7;}
h1,h2,h3,.serif{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.25;}
img{max-width:100%;display:block;}
a{color:inherit;}
.nav-mobile-toggle{display:none;}
.nav-drawer{display:none;}

/* ---------- header ---------- */
.topbar{position:sticky;top:0;z-index:50;background:rgba(250,248,244,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(23,27,36,.08);}
.nav{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 24px;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.mono{width:42px;height:42px;border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:'Playfair Display',serif;font-size:16px;letter-spacing:1px;flex:0 0 auto;background:var(--ink);}
.brandname{font-family:'Playfair Display',serif;font-size:15px;color:var(--ink);line-height:1.15;}
.brandname em{display:block;font-family:'Montserrat',sans-serif;font-style:normal;font-size:8.5px;letter-spacing:2px;text-transform:uppercase;opacity:.6;margin-top:2px;}
.nav-links{display:flex;align-items:center;gap:22px;}
.nav-links a{text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.3px;opacity:.85;}
.nav-links a:hover,.nav-links a.on{opacity:1;border-bottom:1.5px solid var(--gold);}
.nav-links a.btn{opacity:1;border-bottom:none;}

/* ---------- buttons ---------- */
.btn{display:inline-block;font-family:'Montserrat',sans-serif;font-size:12.5px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;padding:14px 28px;border-radius:4px;text-align:center;cursor:pointer;border:none;}
.btn-ink{background:var(--ink);color:var(--white);}
.btn-ink:hover{background:#232937;}
.btn-gold{background:var(--gold);color:var(--ink);}
.btn-goldline{border:1.5px solid var(--gold);color:var(--ink);background:transparent;padding:12.5px 26px;}
.btn-plum{background:var(--plum);color:var(--white);}
.btn-whiteline{border:1.5px solid rgba(250,248,244,.6);color:var(--white);background:transparent;padding:12.5px 26px;}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.section{padding:110px 24px;}
.section.tight{padding:80px 24px;}
.eyebrow{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:18px;}
.goldrule{width:56px;height:1.5px;background:var(--gold);margin:26px 0;}
.center{text-align:center;}
.center .goldrule{margin-left:auto;margin-right:auto;}
h2{font-size:clamp(28px,4vw,40px);margin-bottom:20px;}
.lede{font-size:18px;max-width:680px;opacity:.85;}
.center .lede{margin:0 auto;}

/* ---------- hero ---------- */
.hero{background:var(--ink);color:var(--white);padding:150px 24px 130px;position:relative;}
.hero .wrap{max-width:900px;}
.hero-h{font-size:clamp(36px,5.5vw,58px);font-style:italic;color:var(--white);}
.hero-sub{font-size:18px;margin-top:24px;max-width:640px;opacity:.85;}
.hero-ctas{margin-top:38px;display:flex;gap:14px;flex-wrap:wrap;}
.hero-tag{margin-top:44px;font-size:11px;letter-spacing:4px;text-transform:uppercase;color:var(--gold);}
/* PHOTO SLOT: hero background image goes here as .hero.has-photo with overlay */
.hero.has-photo{background:linear-gradient(rgba(23,27,36,.72),rgba(23,27,36,.72)) center/cover no-repeat var(--ink);}
.page-hero{padding:120px 24px 90px;}
.page-hero.plum-room{background:var(--blush);}
.page-hero.plum-room h1{color:var(--plum);}
.page-hero h1{font-size:clamp(32px,4.5vw,48px);font-style:italic;max-width:860px;}

.loc-pill{display:inline-block;background:rgba(250,248,244,.14);border:1px solid rgba(250,248,244,.25);color:var(--white);font-size:12.5px;letter-spacing:.5px;padding:8px 16px;border-radius:999px;margin-bottom:26px;}
.hero-h .again{font-style:italic;color:var(--gold);}
.goldtxt{color:var(--gold);}

/* ---------- cards & grids ---------- */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.card{background:#fff;border:1px solid rgba(23,27,36,.08);border-radius:10px;padding:36px 30px;box-shadow:0 4px 20px rgba(23,27,36,.04);position:relative;transition:transform .18s ease, box-shadow .18s ease;}
.card:has(.cardlink):hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(23,27,36,.12);cursor:pointer;}
.card .cardlink::after{content:"";position:absolute;inset:0;border-radius:10px;}
.card h3{font-size:22px;margin-bottom:12px;}
.card p{font-size:14.5px;opacity:.85;}
.card .cardlink{display:inline-block;margin-top:18px;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;text-decoration:none;border-bottom:1.5px solid var(--gold);padding-bottom:2px;}
.photo-slot{background:var(--lightteal);border-radius:10px;min-height:220px;display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--teal);opacity:.7;}
.plum .photo-slot{background:var(--blush);color:var(--plum);}

.cardimg{width:100%;height:220px;object-fit:cover;border-radius:10px;}
.sideimg{width:100%;border-radius:10px;object-fit:cover;}

/* ---------- stat band ---------- */
.stats{background:var(--ink);color:var(--white);}
.stats h2{color:var(--white);}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:50px;}
.stat b{display:block;font-family:'Playfair Display',serif;font-size:34px;font-weight:500;color:var(--gold);margin-bottom:8px;line-height:1.1;}
.stat span{font-size:13.5px;opacity:.8;}
.stat-note{font-size:11px;opacity:.5;margin-top:36px;}

/* ---------- plum room ---------- */
.plum-section{background:var(--blush);}
.plum-section h2,.plum-section h3{color:var(--plum);}
.plum-section .eyebrow{color:var(--plum);}
.svc{background:#fff;border-radius:10px;padding:38px 34px;border:1px solid rgba(23,27,36,.07);margin-bottom:26px;}
.svc h3{font-size:24px;margin-bottom:10px;}
.plum-section .svc h3{color:var(--plum);}
.svc .ctas{margin-top:20px;display:flex;gap:12px;flex-wrap:wrap;}
.svc p{font-size:15px;opacity:.88;}
.svc .fine{font-size:12.5px;opacity:.6;margin-top:12px;}

/* ---------- forms ---------- */
.leadform{background:#fff;border:1px solid rgba(23,27,36,.08);border-radius:12px;padding:38px 34px;max-width:560px;}
.leadform label{font-size:12px;letter-spacing:1px;text-transform:uppercase;font-weight:600;display:block;margin:16px 0 6px;}
.leadform input[type=text],.leadform input[type=email],.leadform input[type=tel],.leadform select,.leadform textarea,
.nl-form input[type=email]{width:100%;padding:13px 14px;border:1px solid rgba(23,27,36,.2);border-radius:6px;font-family:'Montserrat',sans-serif;font-size:14px;background:var(--white);}
.leadform button{margin-top:22px;width:100%;}
.form-note{font-size:12px;opacity:.55;margin-top:12px;}
/* quiz */
.quiz{background:#fff;border:1px solid rgba(23,27,36,.08);border-radius:12px;padding:38px 34px;max-width:640px;margin:0 auto;}
.qstep{display:none;}
.qstep.on{display:block;}
.qstep h3{font-size:21px;margin-bottom:18px;}
.plum-section .quiz h3{color:var(--plum);}
.qopt{display:block;border:1.5px solid rgba(23,27,36,.15);border-radius:8px;padding:14px 16px;margin-bottom:10px;font-size:14.5px;cursor:pointer;}
.qopt:hover{border-color:var(--plum);}
.qopt input{margin-right:10px;}
.qnav{margin-top:20px;display:flex;justify-content:space-between;gap:12px;}
.qprogress{font-size:11px;letter-spacing:2px;text-transform:uppercase;opacity:.5;margin-bottom:14px;}

.video-card{position:relative;display:block;border-radius:12px;overflow:hidden;box-shadow:0 8px 30px rgba(23,27,36,.14);}
.video-card img{width:100%;display:block;filter:brightness(.82);}
.playbtn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:74px;height:74px;border-radius:50%;background:rgba(250,248,244,.92);}
.playbtn::after{content:"";position:absolute;top:50%;left:54%;transform:translate(-50%,-50%);border-style:solid;border-width:14px 0 14px 23px;border-color:transparent transparent transparent var(--plum);}
.video-card:hover .playbtn{background:var(--gold);}
.video-card:hover .playbtn::after{border-left-color:var(--ink);}
.video-cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(23,27,36,.85));color:var(--white);font-size:13px;font-weight:600;letter-spacing:.5px;padding:26px 18px 14px;}

/* ---------- quote ---------- */
.bigquote{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(22px,3vw,30px);max-width:820px;margin:0 auto;line-height:1.5;}
.quote-attr{margin-top:22px;font-size:12px;letter-spacing:2px;text-transform:uppercase;opacity:.6;}

/* ---------- blog ---------- */
.quick-answer{background:var(--lightteal);border-left:3px solid var(--teal);border-radius:0 10px 10px 0;padding:26px 30px;margin:34px 0;}
.quick-answer h3{font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--teal);font-family:'Montserrat',sans-serif;font-weight:600;margin-bottom:10px;}
.quick-answer-body{font-size:16px;}
.article{max-width:760px;margin:0 auto;}
.article h2{font-size:28px;margin:48px 0 16px;}
.article p{margin-bottom:18px;}
.article ul{margin:0 0 18px 22px;}
.article li{margin-bottom:8px;}
.blog-lede{font-size:19px;opacity:.9;}
.blog-faq-answer p:first-child{margin-top:6px;}
.blog-meta{font-size:12px;letter-spacing:2px;text-transform:uppercase;opacity:.55;margin-bottom:26px;}

/* ---------- faq ---------- */
.faq-item{border-bottom:1px solid rgba(23,27,36,.1);padding:26px 0;max-width:820px;}
.faq-item h3{font-size:20px;margin-bottom:10px;}
.faq-item p{font-size:15px;opacity:.85;}

/* ---------- footer ---------- */
.footer{background:var(--ink);color:var(--white);padding:70px 24px 30px;margin-top:0;}
.footer a{color:var(--white);}
.footer-body{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:48px;}
.brand.foot .brandname{color:var(--white);}
.foot-addr{font-size:13.5px;opacity:.75;margin-top:16px;line-height:1.8;}
.footer-cols{display:flex;gap:48px;}
.footer h4{font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-bottom:14px;}
.footer-cols a{display:block;font-size:13.5px;text-decoration:none;opacity:.8;margin-bottom:9px;}
.footer-cols a:hover{opacity:1;}
.newsletter p{font-size:13px;opacity:.75;margin-bottom:14px;}
.nl-form{display:flex;gap:10px;}
.nl-form input{flex:1;border:none;}
.footer-legal{max-width:var(--maxw);margin:50px auto 0;border-top:1px solid rgba(250,248,244,.15);padding-top:26px;}
.footer-legal p{font-size:11px;opacity:.55;line-height:1.7;margin-bottom:10px;}
.footer-legal a{text-decoration:underline;}

/* ---------- sticky mobile cta ---------- */
.sticky-cta{display:none;}

/* ---------- responsive ---------- */
@media (max-width: 768px){
  .nav{padding:14px 20px;}
  .nav-links{display:none;}
  .nav-mobile-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
  .nav-mobile-toggle span{width:24px;height:2px;background:var(--ink);}
  .nav-drawer.open{display:flex;flex-direction:column;gap:4px;background:var(--white);border-bottom:1px solid rgba(23,27,36,.1);padding:12px 20px 20px;}
  .nav-drawer a{text-decoration:none;font-size:15px;padding:10px 4px;}
  .nav-drawer a.btn{margin-top:8px;}
  .grid3,.grid2,.stat-grid{grid-template-columns:1fr !important;}
  .hero{padding:100px 24px 70px;}
  .page-hero{padding:90px 24px 56px;}
  .section{padding:64px 20px;}
  .section.tight{padding:52px 20px;}
  .footer{padding:48px 24px 90px;}
  .footer-body{grid-template-columns:1fr;}
  .footer-cols{flex-direction:column;gap:28px;}
  .stat-grid{gap:26px;}
  .sticky-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:rgba(250,248,244,.97);border-top:1px solid rgba(23,27,36,.12);padding:10px 14px;gap:10px;}
  .sticky-cta .btn{flex:1;padding:13px 10px;}
  .nl-form{flex-direction:column;}
}
@media (max-width: 480px){
  .hero-h{font-size:32px;}
  .hero-ctas .btn{width:100%;}
  .svc{padding:28px 22px;}
  .quiz,.leadform{padding:28px 22px;}
}
@media (prefers-reduced-motion: reduce){*{transition:none !important;animation:none !important;}}
