/* ============================================
   EOSS by Gaurav — Design System
   Gold / Ivory luxury, light-first
   ============================================ */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  /* Brand palette */
  --gold:#C9A96E;
  --gold-light:#E8D5B0;
  --gold-dark:#8B6914;
  --gold-pale:#F5EDD8;
  --ink:#0E0E0E;
  --charcoal:#2C2825;
  --ivory:#F9F6F0;
  --warm:#FDFBF7;
  --muted:#6B6560;
  --border:rgba(201,169,110,0.20);
  --border-strong:rgba(201,169,110,0.4);
  /* Fonts */
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',-apple-system,BlinkMacSystemFont,sans-serif;
  /* Layout */
  --max:1240px;
  --radius:4px;
}

html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--warm);color:var(--ink);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}

/* ---------- NAV ---------- */
/* FROZEN NAV — stays put on every scroll */
nav{position:fixed;top:0;left:0;right:0;z-index:500;background:rgba(253,251,247,0.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border);transition:box-shadow .25s,background .25s}
nav.scrolled{background:rgba(253,251,247,0.99);box-shadow:0 4px 24px rgba(14,14,14,0.07)}
body{padding-top:72px}
.nav-in{max-width:var(--max);margin:0 auto;padding:0 2rem;height:72px;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.logo{font-family:var(--serif);font-size:1.5rem;font-weight:600;color:var(--ink);letter-spacing:0.04em;text-decoration:none;flex-shrink:0}
.logo span{color:var(--gold)}
.navlinks{display:flex;align-items:center;gap:1.5rem;list-style:none}
.navlinks>li{position:relative}
.navlinks a{font-size:0.7rem;letter-spacing:0.13em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .2s;white-space:nowrap;font-weight:400}
.navlinks a:hover,.navlinks a.active{color:var(--gold)}
.navcta{background:var(--ink);color:var(--gold)!important;padding:0.7rem 1.3rem;border-radius:var(--radius);transition:all .25s;font-weight:500}
.navcta:hover{background:var(--gold);color:var(--ink)!important}
/* header YouTube link — reads as a nav item (icon + label), muted like the
   other links so it doesn't compete with the Book a Call CTA. The link is a
   NORMAL inline nav link (not flex) so the label shares the exact baseline of
   HOME/BLOG etc.; the icon is an inline SVG sized to the caps and nudged to
   sit on the text so the group isn't offset from the rest of the menu. */
.nav-yt a{color:var(--muted)}
.nav-yt a:hover{color:var(--gold)}
.nav-yt .ico{width:14px;height:14px;margin-right:0.4rem;vertical-align:middle;position:relative;top:-1px}
.nav-yt-label{display:inline}
/* dropdown */
.has-drop>a::after{content:'▾';margin-left:0.35rem;font-size:0.6rem;opacity:.6}
.drop{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(-6px);background:var(--warm);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 28px rgba(14,14,14,0.10);padding:0.6rem 0;min-width:190px;opacity:0;visibility:hidden;transition:all .2s;list-style:none}
.navlinks>li:hover .drop{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.drop::before{content:'';position:absolute;top:-12px;left:0;right:0;height:12px}
.drop li a{display:block;padding:0.6rem 1.3rem;font-size:0.72rem;letter-spacing:0.08em;line-height:1.5;text-transform:none;color:var(--muted)}
.drop li a:hover{background:var(--gold-pale);color:var(--gold-dark)}
.burger{display:none;background:none;border:none;cursor:pointer;font-size:1.4rem;color:var(--ink)}

/* ---------- TYPE ---------- */
h1{font-family:var(--serif);font-size:clamp(2.5rem,4.6vw,4rem);font-weight:300;line-height:1.08;letter-spacing:-0.01em}
h2{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);font-weight:300;line-height:1.15}
h3{font-family:var(--serif);font-size:1.35rem;font-weight:400;line-height:1.3}
h1 em,h2 em,h3 em{font-style:italic;color:var(--gold)}
.lead{font-size:1rem;font-weight:300;line-height:1.85;color:var(--muted);max-width:560px}
.eyebrow{font-size:0.62rem;letter-spacing:0.26em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:0.7rem;margin-bottom:1.1rem;font-weight:500}
.eyebrow::before{content:'';width:26px;height:1px;background:var(--gold)}
.eyebrow.ctr{justify-content:center}
.eyebrow.ctr::after{content:'';width:26px;height:1px;background:var(--gold)}

/* ---------- BUTTONS ---------- */
.btn{font-family:var(--sans);font-size:0.72rem;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;padding:0.95rem 1.9rem;border-radius:var(--radius);cursor:pointer;transition:all .25s;text-decoration:none;display:inline-block;border:1px solid transparent;text-align:center}
.btn-primary{background:var(--ink);color:var(--gold);border-color:var(--ink)}
.btn-primary:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.btn-outline{background:transparent;color:var(--gold-dark);border-color:var(--gold)}
.btn-outline:hover{background:var(--gold-pale)}
.btn-gold{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.btn-gold:hover{background:var(--gold-dark);color:#fff;border-color:var(--gold-dark)}
.btn-light{background:var(--gold);color:var(--charcoal);border-color:var(--gold)}
.btn-light:hover{background:var(--gold-light)}
.btn-sm{padding:0.6rem 1.1rem;font-size:0.65rem}

/* ---------- LAYOUT ---------- */
.sec{padding:5rem 2rem}
.sec-in{max-width:var(--max);margin:0 auto}
.alt{background:var(--ivory)}
.dark{background:var(--charcoal);color:var(--gold-light)}
.dark h1,.dark h2,.dark h3{color:var(--gold-light)}
.dark .lead{color:rgba(232,213,176,0.6)}
.dark .eyebrow{color:rgba(201,169,110,0.6)}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.ctr{text-align:center}
.ctr .lead{margin-left:auto;margin-right:auto}

/* ---------- CARDS ---------- */
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.8rem;transition:border-color .2s,box-shadow .2s,transform .2s;text-decoration:none;display:block;color:inherit}
.card:hover{border-color:var(--gold);box-shadow:0 6px 24px rgba(201,169,110,0.10);transform:translateY(-2px)}
.card-icon{font-size:1.6rem;margin-bottom:0.9rem}
.card h3{margin-bottom:0.5rem}
.card p{font-size:0.85rem;color:var(--muted);line-height:1.7}
.card-link{color:var(--gold-dark);font-size:0.63rem;letter-spacing:0.15em;text-transform:uppercase;margin-top:1.1rem;display:inline-block;font-weight:500}

/* ---------- FORMS ---------- */
.field{display:flex;flex-direction:column;gap:0.4rem;margin-bottom:1rem}
.lbl{font-size:0.58rem;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted)}
.inp,.sel,.txta{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:0.8rem 1rem;font-family:var(--sans);font-size:0.9rem;color:var(--ink);outline:none;transition:border-color .2s;width:100%}
.inp:focus,.sel:focus,.txta:focus{border-color:var(--gold)}
.txta{min-height:110px;resize:vertical}
.formcard{background:#fff;border:1px solid var(--border);border-top:3px solid var(--gold);border-radius:var(--radius);padding:2.2rem}
.form-note{font-size:0.65rem;color:var(--muted);text-align:center;margin-top:0.9rem;line-height:1.6}

/* ---------- STATS ---------- */
.statbar{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.statcell{background:#fff;padding:1.7rem 1rem;text-align:center}
.statnum{font-family:var(--serif);font-size:1.9rem;font-weight:300;color:var(--ink);line-height:1}
.statnum em{color:var(--gold);font-style:normal;font-size:1.1rem}
.statlbl{font-size:0.56rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted);margin-top:0.5rem}

/* ---------- CHECK ROWS ---------- */
.checkrow{display:flex;gap:0.75rem;align-items:flex-start;font-size:0.88rem;color:var(--muted);line-height:1.65;margin-bottom:0.8rem}
.checkrow::before{content:'✓';color:var(--gold);font-weight:700;flex-shrink:0}
.minusrow{display:flex;gap:0.75rem;align-items:flex-start;font-size:0.88rem;color:var(--muted);line-height:1.65;margin-bottom:0.8rem}
.minusrow::before{content:'—';color:var(--gold-dark);font-weight:700;flex-shrink:0}
.checkrow b,.minusrow b{color:var(--ink);font-weight:500}

/* ---------- CITY HERO ---------- */
.cityhero{background:var(--charcoal);padding:5.5rem 2rem;position:relative;overflow:hidden}
.cityhero .sec-in{position:relative;z-index:2}
.cityhero .bigemoji{position:absolute;right:4%;top:50%;transform:translateY(-50%);font-size:13rem;opacity:0.07;pointer-events:none;z-index:1}
.cityhero h1{color:var(--gold-light)}
.cityhero .eyebrow{color:rgba(201,169,110,0.6)}
.cityhero .lead{color:rgba(232,213,176,0.62)}

/* ---------- BADGES / TAGS ---------- */
.tag{display:inline-block;background:var(--gold-pale);color:var(--gold-dark);font-size:0.6rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;padding:0.25rem 0.6rem;border-radius:3px;border:1px solid var(--border)}
.tag-ink{background:var(--ink);color:var(--gold);border-color:var(--ink)}
.verify{display:inline-block;background:#fff4e0;color:#8a5a00;font-size:0.58rem;font-weight:600;letter-spacing:0.08em;padding:0.2rem 0.5rem;border-radius:3px;border:1px dashed #d9a441;margin-left:0.4rem;text-transform:uppercase}

/* ---------- BLOG ---------- */
.post-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:border-color .2s,box-shadow .2s,transform .2s}
.post-card:hover{border-color:var(--gold);box-shadow:0 6px 24px rgba(201,169,110,0.10);transform:translateY(-2px)}
.post-thumb{aspect-ratio:16/9;background:linear-gradient(135deg,var(--charcoal),#4a3f36);display:flex;align-items:center;justify-content:center;color:rgba(201,169,110,0.4);font-size:2rem}
.post-body{padding:1.4rem;flex:1;display:flex;flex-direction:column}
.post-meta{font-size:0.62rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);margin-bottom:0.6rem;display:flex;gap:0.6rem;align-items:center}
.post-card h3{margin-bottom:0.5rem;font-size:1.2rem}
.post-card p{font-size:0.82rem;color:var(--muted);line-height:1.65;flex:1}
/* article body */
.article{max-width:760px;margin:0 auto}
.article-body{font-size:1rem;line-height:1.9;color:#33302c}
.article-body h2{font-size:1.8rem;margin:2.2rem 0 0.9rem}
.article-body h3{font-size:1.35rem;margin:1.8rem 0 0.7rem}
.article-body p{margin-bottom:1.2rem}
.article-body ul,.article-body ol{margin:0 0 1.2rem 1.3rem}
.article-body li{margin-bottom:0.5rem}
.article-body img{border-radius:var(--radius);margin:1.5rem 0}
.article-body blockquote{border-left:3px solid var(--gold);padding:0.6rem 0 0.6rem 1.3rem;margin:1.5rem 0;font-family:var(--serif);font-size:1.25rem;font-style:italic;color:var(--ink)}
.article-body a{color:var(--gold-dark);text-decoration:underline}
.video-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--radius);margin:1.6rem 0;background:var(--charcoal)}
.video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}

/* ---------- FOOTER ---------- */
footer{background:var(--ink);padding:3rem 2rem 2rem}
.foot-in{max-width:var(--max);margin:0 auto}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;padding-bottom:2rem;border-bottom:1px solid rgba(201,169,110,0.15)}
.foot-logo{font-family:var(--serif);font-size:1.4rem;color:var(--gold-light);margin-bottom:0.7rem}
.foot-logo span{color:var(--gold)}
.foot-blurb{font-size:0.8rem;color:rgba(232,213,176,0.4);line-height:1.75;max-width:300px}
.foot-h{font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold);margin-bottom:0.9rem;font-weight:500}
.foot-links{list-style:none;display:flex;flex-direction:column;gap:0.5rem}
.foot-links a{font-size:0.78rem;color:rgba(232,213,176,0.45);text-decoration:none;transition:color .2s}
.foot-links a:hover{color:var(--gold)}
.foot-bot{padding-top:1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.foot-copy{font-size:0.62rem;color:rgba(232,213,176,0.28);line-height:1.7}
.foot-admin{font-size:0.6rem;color:rgba(201,169,110,0.35);text-decoration:none;letter-spacing:0.1em;text-transform:uppercase}
.foot-admin:hover{color:var(--gold)}

/* ---------- UTIL ---------- */
.mt1{margin-top:1rem}.mt2{margin-top:2rem}.mb1{margin-bottom:1rem}.mb2{margin-bottom:2rem}
.btn-row{display:flex;gap:1rem;flex-wrap:wrap}
/* home hero: tertiary YouTube link — lighter than both buttons, sits below them */
.hero-yt{display:inline-flex;align-items:center;gap:0.5rem;margin-top:1.15rem;color:var(--gold-light);opacity:0.82;font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:500;text-decoration:none;transition:opacity .2s}
.hero-yt:hover{opacity:1}
.hero-yt .ico{display:block}
.hide{display:none!important}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);background:var(--ink);color:var(--gold);padding:0.9rem 1.6rem;border-radius:var(--radius);font-size:0.8rem;z-index:999;opacity:0;transition:all .3s;box-shadow:0 8px 30px rgba(0,0,0,0.2)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- RESPONSIVE ---------- */
@media(max-width:980px){
  .grid3,.grid4{grid-template-columns:repeat(2,1fr)}
  .foot-top{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
  .nav-in{padding:0 1.2rem}
  .burger{display:block}
  .navlinks{position:fixed;top:72px;left:0;right:0;background:var(--warm);flex-direction:column;align-items:stretch;padding:1.2rem;gap:0.3rem;border-bottom:1px solid var(--border);max-height:calc(100vh - 72px);overflow-y:auto;display:none}
  .navlinks.open{display:flex}
  .navlinks a{padding:0.8rem 0.5rem;font-size:0.75rem}
  .nav-yt a{padding:0.8rem 0.5rem}
  .nav-yt-label{display:inline;font-size:0.75rem;letter-spacing:0.13em;text-transform:uppercase}
  .drop{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:none;background:var(--ivory);border-radius:0;padding:0.2rem 0 0.2rem 1rem;min-width:0;display:none}
  .navlinks>li.open-sub .drop{display:block}
  .navcta{display:inline-block;text-align:center;margin-top:0.9rem}
  .sec{padding:3rem 1.2rem}
  .grid2,.grid3,.grid4{grid-template-columns:1fr}
  .statbar{grid-template-columns:repeat(2,1fr)}
  .foot-top{grid-template-columns:1fr;gap:1.6rem}
  .cityhero .bigemoji{font-size:7rem;opacity:0.05}
}

/* ============================================
   ICONS — thin-line SVG (replaces all emoji)
   ============================================ */
.ico{display:inline-block;vertical-align:middle;flex-shrink:0}
.card-icon{color:var(--gold);margin-bottom:1rem;display:block}
.card-icon .ico{width:26px;height:26px}
.stars{display:inline-flex;gap:2px;color:var(--gold);margin-bottom:0.75rem}
.star-f{display:block}
.ico-badge{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0}
.burger .ico{width:20px;height:20px}

/* ============================================
   YOUTUBE
   ============================================ */
.foot-yt{display:inline-flex;align-items:center;gap:0.5rem;margin-top:1.1rem;color:var(--gold);text-decoration:none;font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;transition:opacity .2s}
.foot-yt:hover{opacity:0.75}
.yt-band{display:grid;grid-template-columns:auto 1fr auto;gap:1.75rem;align-items:center;background:var(--charcoal);border-radius:var(--radius);padding:2rem 2.25rem}
.yt-band .ico-badge{border-color:rgba(201,169,110,0.35);width:52px;height:52px}
.yt-band .ico-badge .ico{width:26px;height:26px}
.yt-band h2{color:var(--ivory);margin-bottom:0.4rem}
.yt-band p{color:rgba(232,213,176,0.55);font-size:0.88rem;line-height:1.7;max-width:520px;margin:0}
.yt-band .eyebrow{margin-bottom:0.5rem}
@media(max-width:820px){
  .yt-band{grid-template-columns:1fr;text-align:center;gap:1.1rem}
  .yt-band .ico-badge{margin:0 auto}
  .yt-band p{margin:0 auto}
}

/* ============================================
   TESTIMONIALS
   ============================================ */
.tm-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;display:flex;flex-direction:column;transition:border-color .2s,box-shadow .2s}
.tm-card:hover{border-color:var(--gold);box-shadow:0 4px 20px rgba(201,169,110,0.08)}
.tm-quote{font-family:var(--serif);font-style:italic;font-size:1.05rem;line-height:1.65;color:var(--ink);margin-bottom:1.1rem}
.tm-who{font-size:0.8rem;color:var(--muted);line-height:1.5;border-top:1px solid var(--border);padding-top:0.9rem;margin-top:auto}
.tm-who b{color:var(--ink);font-weight:500;display:block;font-size:0.86rem}

/* carousel — arrows sit in their own side tracks, never over the cards */
.tm-carousel-wrap{display:flex;align-items:center;gap:1rem}
.tm-carousel{flex:1 1 auto;min-width:0;display:flex;align-items:stretch;gap:1.4rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0.5rem 0 1.2rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tm-carousel::-webkit-scrollbar{display:none}
.tm-carousel .tm-card{flex:0 0 calc((100% - 2 * 1.4rem) / 3);scroll-snap-align:start}
.tm-more{align-self:flex-start;margin:0 0 1.1rem;padding:0;background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:500;color:var(--gold-dark)}
.tm-more:hover{color:var(--gold)}
.tm-arrow{flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid var(--border);box-shadow:0 6px 18px rgba(14,14,14,0.10);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .2s,border-color .2s,color .2s}
.tm-arrow:hover{border-color:var(--gold);color:var(--gold-dark)}
.tm-arrow:disabled{opacity:0;pointer-events:none}
.tm-arrow.prev .ico{transform:rotate(180deg)}
@media(max-width:980px){ .tm-carousel .tm-card{flex-basis:calc((100% - 1.4rem) / 2)} }
@media(max-width:640px){ .tm-carousel .tm-card{flex-basis:86%} .tm-arrow{display:none} }

/* ============================================
   CITY — pros & cons
   ============================================ */
.pc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.pc-box{border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}
.pc-box.pros{background:rgba(201,169,110,0.05)}
.pc-box.cons{background:var(--ivory)}
.pc-h{display:flex;align-items:center;gap:0.6rem;font-family:var(--serif);font-size:1.2rem;font-weight:400;margin-bottom:1rem;color:var(--ink)}
.pc-h .ico{width:18px;height:18px}
.pc-box.pros .pc-h .ico{color:var(--gold-dark)}
.pc-box.cons .pc-h .ico{color:var(--muted)}
.pc-item{display:flex;gap:0.65rem;font-size:0.85rem;color:var(--muted);line-height:1.6;margin-bottom:0.7rem}
.pc-item .ico{width:15px;height:15px;margin-top:3px;flex-shrink:0}
.pc-box.pros .pc-item .ico{color:var(--gold)}
.pc-box.cons .pc-item .ico{color:var(--muted);opacity:0.6}
.pc-note{font-size:0.76rem;color:var(--muted);font-style:italic;line-height:1.65;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}
@media(max-width:820px){ .pc-grid{grid-template-columns:1fr} }

/* Verify flag */
.vflag{display:inline-block;background:rgba(176,96,16,0.12);color:#8a4a08;font-size:0.6rem;font-weight:600;letter-spacing:0.08em;padding:0.1rem 0.4rem;border-radius:2px;margin-left:0.35rem;vertical-align:middle}

/* points list (why section) */
.pts{display:flex;flex-direction:column;gap:0.9rem}
.pt{display:flex;gap:0.7rem;align-items:flex-start;font-size:0.88rem;color:var(--muted);line-height:1.6}
.pt .ico{color:var(--gold);margin-top:3px}
.pt b{color:var(--ink);font-weight:500}

/* post cover image */
.post-cover{margin:-1.6rem -1.6rem 1rem;height:170px;overflow:hidden;border-radius:var(--radius) var(--radius) 0 0;background:var(--ivory)}
.post-cover img{width:100%;height:100%;object-fit:cover;display:block}

/* multi-field forms: 2-col grid, First/Last paired, full-width button */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem 0.9rem;align-items:start}
.form-grid .field{grid-column:1 / -1;margin-bottom:0}
.form-grid .field.half{grid-column:span 1}
.form-grid .form-btn{grid-column:1 / -1;width:100%;margin-top:0.35rem}
.lbl .req{color:var(--gold-dark);font-weight:700;margin-left:1px}
.lbl .opt{text-transform:none;letter-spacing:0;font-weight:400;opacity:0.7;font-size:0.92em}
/* CASL newsletter consent — a distinct, prominent opt-in block (unchecked by
   default). Whole block is the tap target (label wraps the input); no emoji. */
.consent{grid-column:1 / -1;display:flex;align-items:flex-start;gap:0.75rem;background:#FDFBF7;border-left:3px solid #C9A96E;padding:14px;margin:12px 0;font-family:var(--sans);letter-spacing:0;text-transform:none;cursor:pointer}
.consent input[type=checkbox]{flex:0 0 auto;width:20px;height:20px;margin:0;accent-color:#C9A96E;cursor:pointer}
.consent .consent-txt{display:flex;flex-direction:column;gap:2px}
.consent .consent-txt b{font-family:var(--sans);font-size:15px;line-height:20px;font-weight:600;color:#1C1B19}
.consent .consent-txt>span{font-family:var(--sans);font-size:13px;line-height:1.45;font-weight:400;color:#3A3835}

/* compact inline newsletter block (First/Last then Email/Phone, 2×2) */
.inline-form{max-width:440px;margin:0 auto;text-align:left}
.inline-form .form-grid{gap:0.6rem 0.8rem}

/* newsletter band (blog page): light bordered card, full-width, slim.
   Copy on the left, the compact 4-field form on the right; stacks on mobile. */
.news-band{display:grid;grid-template-columns:1fr minmax(300px,420px);gap:1.5rem 3rem;align-items:center;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:1.9rem 2.1rem}
.news-band .eyebrow{margin-bottom:0.7rem}
.news-band h2{font-size:1.5rem;margin-bottom:0.4rem}
.news-band .news-sub{color:var(--muted);font-size:0.9rem;line-height:1.65;max-width:440px;margin:0}
@media(max-width:760px){ .news-band{grid-template-columns:1fr;gap:1.3rem;padding:1.7rem 1.4rem} }

@media(max-width:520px){
  .form-grid{grid-template-columns:1fr}
  .form-grid .field.half{grid-column:1 / -1}
}

/* blog post page */
.narrow{max-width:760px}
.back{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);text-decoration:none}
.back:hover{color:var(--gold)}
.flip{transform:rotate(180deg)}
.post-hero{max-width:1000px;margin:0 auto;padding:0 2rem}
.post-hero img{width:100%;height:auto;max-height:460px;object-fit:cover;border-radius:var(--radius);display:block}
.prose{font-size:1rem;line-height:1.85;color:var(--muted)}
.prose h2{font-size:1.6rem;margin:2rem 0 0.8rem;color:var(--ink)}
.prose h3{font-size:1.2rem;margin:1.6rem 0 0.6rem;color:var(--ink);font-family:var(--serif);font-weight:500}
.prose p{margin-bottom:1.1rem}
.prose ul,.prose ol{margin:0 0 1.1rem 1.2rem}
.prose li{margin-bottom:0.4rem}
.prose a{color:var(--gold-dark)}
.prose img{max-width:100%;height:auto;border-radius:var(--radius);margin:1.5rem 0;display:block}
.prose blockquote{border-left:3px solid var(--gold);padding:0.5rem 0 0.5rem 1.2rem;margin:1.5rem 0;font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--ink)}
.prose .embed{position:relative;padding-bottom:56.25%;height:0;margin:1.75rem 0;border-radius:var(--radius);overflow:hidden;background:var(--ink)}
.prose .embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
.post-foot{display:flex;align-items:center;gap:1rem;border-top:1px solid var(--border);margin-top:2.5rem;padding-top:1.5rem;flex-wrap:wrap}
.post-foot b{display:block;font-size:0.9rem;color:var(--ink)}
.post-foot span{display:block;font-size:0.76rem;color:var(--muted)}
.post-foot > div:nth-child(2){flex:1}
.yt-link{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.72rem;color:var(--gold-dark);text-decoration:none;margin-top:0.3rem}
.cat-row{display:flex;gap:0.5rem;flex-wrap:wrap}
.cat{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:var(--sans);font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.45rem 0.9rem;border-radius:2px;cursor:pointer;transition:all .2s}
.cat:hover{border-color:var(--gold);color:var(--gold-dark)}
.cat.on{background:var(--ink);border-color:var(--ink);color:var(--gold)}

/* ============================================
   SPLIT HERO (Book a Call)
   ============================================ */
.split-hero{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 72px)}
.split-dark{background:var(--charcoal);padding:4rem 3rem;display:flex;flex-direction:column;justify-content:center}
.split-dark h1{color:var(--gold-light)}
.split-light{background:var(--warm);height:calc(100vh - 72px);overflow:hidden}
/* Book a Call: the Typeform fills the entire light column edge-to-edge and
   flush top-to-bottom, matching the dark panel — no cream gap, no scrollbox.
   Explicit definite heights all the way down, and !important on the iframe so
   Typeform's own inline height can't shrink it back into a floating box. */
.split-light #formZone{width:100%;height:100%}
.split-light #formZone > [data-tf-live]{width:100% !important;height:100% !important;border-radius:0;overflow:hidden}
.split-light #formZone iframe{width:100% !important;height:100% !important;border:0;display:block}
.split-light #formZone > form{max-width:520px;margin:3rem auto;padding:0 1.5rem}
.step{display:flex;gap:1rem;margin-bottom:1.4rem;align-items:flex-start}
.step-n{font-family:var(--serif);font-size:1.3rem;color:rgba(201,169,110,0.45);flex-shrink:0;line-height:1.2}
.step-t{color:var(--gold-light);font-size:0.92rem;font-weight:500}
.step-d{color:rgba(232,213,176,0.42);font-size:0.8rem;line-height:1.55;margin-top:0.15rem}
@media(max-width:900px){ .split-hero{grid-template-columns:1fr} .split-dark{padding:3rem 1.5rem} }

/* city hero */
.city-hero{padding-top:4.5rem;padding-bottom:3.5rem}
.city-hero h1{color:var(--gold-light)}
/* At-a-glance stats sit inside the charcoal hero (no photo): charcoal cells
   divided by thin gold rules, with gold-light numbers — a clean typographic
   stat strip that reads as part of the hero. */
.city-hero .statbar{background:rgba(201,169,110,0.30);border-color:rgba(201,169,110,0.30);max-width:760px}
.city-hero .statcell{background:var(--charcoal)}
.city-hero .statnum{color:var(--gold-light)}
.city-hero .statnum em{color:var(--gold)}
.city-hero .statlbl{color:rgba(232,213,176,0.55)}

/* ============================================
   MODAL
   ============================================ */
.modal{display:none;position:fixed;inset:0;background:rgba(14,14,14,0.55);backdrop-filter:blur(4px);z-index:900;align-items:center;justify-content:center;padding:1.5rem}
.modal.open{display:flex}
.modal-box{background:#fff;border-radius:var(--radius);padding:2rem;max-width:440px;width:100%;max-height:88vh;overflow-y:auto;position:relative;border-top:3px solid var(--gold)}
.modal-box h3{font-family:var(--serif);font-size:1.35rem;font-weight:400;margin-bottom:0.3rem}
.modal-x{position:absolute;top:0.9rem;right:0.9rem;background:none;border:0;cursor:pointer;color:var(--muted);transform:rotate(45deg);display:flex;padding:0.3rem}
.modal-x:hover{color:var(--ink)}

/* form bits */
.form-sub{font-size:0.78rem;color:var(--muted);margin-bottom:1.25rem;line-height:1.6}
.fine{font-size:0.66rem;color:var(--muted);text-align:center;margin-top:0.75rem;line-height:1.5}
.ok{text-align:center;padding:1.5rem 0;color:var(--gold-dark)}
.ok .ico{color:var(--gold);margin-bottom:0.5rem}
.ok h3{margin-bottom:0.4rem;color:var(--ink)}
.ok p{font-size:0.9rem;color:var(--ink);line-height:1.6}
