/* ===================================================================
   Homeosphere — Premium PropTech Theme
   Deep Navy (#0B1F3A) + Gold (#D4A017) on Light Grey (#F7F8FA)
   =================================================================== */

:root {
  --navy-50:#eef2f8;--navy-100:#d6e0ee;--navy-200:#adc1dd;--navy-300:#7e9bc6;
  --navy-400:#4f73aa;--navy-500:#2e5290;--navy-600:#1f3c72;--navy-700:#15294f;
  --navy-800:#0b1f3a;--navy-900:#07152a;--navy-950:#040d1c;
  --gold-50:#fdf8ec;--gold-100:#faedcf;--gold-200:#f4d99e;--gold-300:#edbf66;
  --gold-400:#e6a93b;--gold-500:#d4a017;--gold-600:#b07f0d;--gold-700:#8a6010;
  --sand-50:#f7f8fa;--sand-100:#eef0f4;--sand-200:#e1e4ec;--sand-300:#ccd2df;
  --white:#fff;--black:#000;
  --font-sans:"Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --font-serif:"Fraunces",Georgia,serif;
  --sh-soft:0 2px 8px rgba(11,31,58,.06),0 1px 2px rgba(11,31,58,.04);
  --sh-card:0 8px 24px rgba(11,31,58,.08),0 2px 6px rgba(11,31,58,.05);
  --sh-lift:0 18px 48px rgba(11,31,58,.14),0 6px 16px rgba(11,31,58,.08);
  --sh-glow:0 0 0 1px rgba(212,160,23,.35),0 12px 32px rgba(212,160,23,.18);
  --t:220ms cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);font-size:17px;line-height:1.6;color:var(--navy-800);background:var(--sand-50);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--navy-700);text-decoration:none;transition:color var(--t)}
a:hover{color:var(--navy-500)}
h1,h2,h3,h4{font-family:var(--font-sans);font-weight:800;line-height:1.15;letter-spacing:-.01em;color:var(--navy-900);margin:0 0 1rem;text-wrap:balance}
h1{font-size:clamp(2.2rem,1.3rem+3.5vw,3.75rem)}
h2{font-size:clamp(1.75rem,1.2rem+2vw,2.5rem)}
h3{font-size:clamp(1.2rem,1rem+1vw,1.5rem)}
p{margin:0 0 1rem}
ul,ol{margin:0 0 1rem;padding-left:1.3rem}
li{margin-bottom:.5rem}
hr{border:0;border-top:1px solid var(--sand-200);margin:2rem 0}
strong{font-weight:700}
::selection{background:var(--gold-200);color:var(--navy-900)}

/* Layout */
.container-x{width:100%;max-width:80rem;margin:0 auto;padding:0 1rem}
@media(min-width:640px){.container-x{padding:0 1.5rem}}
@media(min-width:1024px){.container-x{padding:0 2rem}}
.section{padding:5rem 0}
.section-alt{background:var(--sand-100)}
.grid{display:grid;gap:1.5rem}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.center{text-align:center}
.mx-auto{margin-left:auto;margin-right:auto}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.15em;color:var(--gold-600)}
.lead{font-size:1.1rem;color:var(--navy-500)}
.section-title{font-size:clamp(1.75rem,1.2rem+2vw,2.5rem);font-weight:800;letter-spacing:-.01em;color:var(--navy-900);text-wrap:balance}

/* Glass */
.glass{background:rgba(255,255,255,.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.6)}
.glass-dark{background:rgba(7,21,42,.4);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:9999px;font-weight:600;font-size:.875rem;padding:.625rem 1.25rem;border:1px solid transparent;cursor:pointer;transition:all var(--t);font-family:inherit;line-height:1;text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--navy-800);color:#fff}
.btn-primary:hover{background:var(--navy-700);color:#fff;transform:translateY(-2px);box-shadow:var(--sh-lift)}
.btn-gold{background:var(--gold-500);color:var(--navy-900)}
.btn-gold:hover{background:var(--gold-400);color:var(--navy-900);transform:translateY(-2px);box-shadow:var(--sh-glow)}
.btn-ghost{background:#fff;color:var(--navy-800);border-color:var(--sand-200)}
.btn-ghost:hover{border-color:var(--navy-300);background:var(--navy-50);color:var(--navy-800)}
.btn-light{background:#fff;color:var(--navy-800)}
.btn-light:hover{background:var(--sand-100)}
.btn-lg{padding:.875rem 1.75rem;font-size:1rem}
.btn-block{width:100%}
.btn-sm{padding:.5rem 1rem;font-size:.8rem}

/* Pills */
.pill{display:inline-flex;align-items:center;gap:.375rem;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600}
.pill-navy{background:var(--navy-800);color:#fff}
.pill-gold{background:var(--gold-500);color:var(--navy-900)}
.pill-gold-soft{background:var(--gold-100);color:var(--gold-700)}
.pill-sand{background:var(--sand-100);color:var(--navy-600)}
.pill-navy-soft{background:var(--navy-50);color:var(--navy-700)}

/* Cards */
.card{border-radius:1.5rem;background:#fff;border:1px solid var(--sand-200);box-shadow:var(--sh-card);transition:all .3s var(--t)}
.card-hover:hover{transform:translateY(-6px);box-shadow:var(--sh-lift);border-color:var(--sand-300)}
.card-pad{padding:1.5rem}

/* Forms */
.label{display:block;font-size:.875rem;font-weight:600;color:var(--navy-700);margin-bottom:.375rem}
.input{width:100%;border-radius:.75rem;border:1px solid var(--sand-300);background:#fff;padding:.75rem 1rem;font-size:.875rem;color:var(--navy-800);font-family:inherit;transition:border-color var(--t),box-shadow var(--t)}
.input:focus{outline:none;border-color:var(--gold-400);box-shadow:0 0 0 3px rgba(212,160,23,.25)}
.input::placeholder{color:var(--navy-300)}
textarea.input{min-height:130px;resize:vertical}

/* Navbar */
.navbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.6)}
.navbar-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:4rem}
.brand{display:flex;align-items:center;gap:.625rem;font-weight:800;color:var(--navy-900);font-size:1.125rem}
.brand-mark{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:.75rem;background:var(--navy-800);color:var(--gold-500);flex-shrink:0}
.brand-name b{color:var(--navy-900)}
.brand-name span{color:var(--gold-600)}
.nav-links{display:none;align-items:center;gap:.25rem}
.nav-link{border-radius:9999px;padding:.5rem .875rem;font-size:.875rem;font-weight:600;color:var(--navy-600);transition:all var(--t)}
.nav-link:hover{background:var(--navy-50);color:var(--navy-900)}
.nav-link.active{background:var(--navy-800);color:#fff}
.nav-cta{display:none;align-items:center;gap:.5rem}
.nav-toggle{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:#fff;border:1px solid var(--sand-200);color:var(--navy-800);cursor:pointer}
@media(min-width:1024px){.nav-links{display:flex}.nav-cta{display:flex}.nav-toggle{display:none}}
.mobile-menu{display:none;border-top:1px solid var(--sand-200);background:#fff}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;padding:.75rem 1rem;font-size:.875rem;font-weight:600;color:var(--navy-600);border-radius:.75rem}
.mobile-menu a:hover{background:var(--navy-50)}
.mobile-cta{display:flex;gap:.5rem;padding:.75rem 0}

/* Hero */
.hero{position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(7,21,42,.92),rgba(11,31,58,.7),rgba(31,60,114,.5))}
.hero-content{position:relative;padding:5rem 0 6rem}
@media(min-width:640px){.hero-content{padding:7rem 0 8rem}}
.hero h1{color:#fff}
.hero h1 .gold{color:var(--gold-500)}
.hero .lead{color:var(--navy-100);font-size:1.125rem;max-width:36rem}
.search-card{margin-top:2rem;background:#fff;border-radius:1.5rem;padding:1rem;box-shadow:var(--sh-lift)}
.search-tabs{display:flex;flex-wrap:wrap;gap:.375rem;padding-bottom:.75rem;border-bottom:1px solid var(--sand-200)}
.search-tab{border-radius:9999px;padding:.5rem .875rem;font-size:.75rem;font-weight:600;color:var(--navy-500);cursor:pointer;background:transparent;border:0;font-family:inherit;transition:all var(--t)}
.search-tab.active{background:var(--navy-800);color:#fff}
.search-tab:hover:not(.active){background:var(--sand-100)}
.search-row{display:flex;flex-direction:column;gap:.75rem;padding-top:.75rem}
@media(min-width:640px){.search-row{flex-direction:row;align-items:center}}
.search-input-wrap{position:relative;flex:1}
.search-input-wrap .ic{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--navy-400);pointer-events:none}
.search-input{width:100%;border-radius:.75rem;border:1px solid var(--sand-300);background:var(--sand-50);padding:.75rem 1rem .75rem 2.75rem;font-size:.875rem;color:var(--navy-800);font-family:inherit}
.search-input:focus{outline:none;border-color:var(--gold-400);box-shadow:0 0 0 3px rgba(212,160,23,.2)}
.trust-row{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:2rem}
.trust-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#fff}
.trust-icon{display:grid;place-items:center;width:2rem;height:2rem;border-radius:9999px;background:rgba(255,255,255,.1);color:var(--gold-500)}

/* Stats band */
.stats-band{position:relative;z-index:10;margin-top:-2.5rem}
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;background:#fff;border-radius:1.5rem;padding:1.5rem;box-shadow:var(--sh-lift)}
@media(min-width:640px){.stats-grid{grid-template-columns:repeat(4,1fr);padding:2rem}}
.stat{text-align:center}
.stat-value{font-size:1.5rem;font-weight:800;color:var(--navy-900)}
@media(min-width:640px){.stat-value{font-size:2.25rem}}
.stat-label{font-size:.75rem;font-weight:600;color:var(--navy-500);margin-top:.25rem}
@media(min-width:640px){.stat-label{font-size:.875rem}}

/* Property card */
.prop-card{overflow:hidden}
.prop-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--sand-100)}
.prop-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--t)}
.prop-card:hover .prop-media img{transform:scale(1.05)}
.prop-badges{position:absolute;inset:.75rem .75rem auto .75rem;display:flex;justify-content:space-between;gap:.5rem}
.prop-verified{position:absolute;bottom:.75rem;left:.75rem}
.prop-body{padding:1.25rem}
.prop-title{font-size:1rem;font-weight:700;color:var(--navy-900);margin:0;line-height:1.3}
.prop-loc{display:flex;align-items:center;gap:.375rem;font-size:.875rem;color:var(--navy-500);margin-top:.25rem}
.prop-price{display:flex;align-items:baseline;gap:.5rem;margin-top:.75rem}
.prop-price b{font-size:1.125rem;font-weight:800;color:var(--navy-900)}
.prop-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--sand-200);font-size:.75rem;font-weight:600;color:var(--navy-600)}
.prop-stat{display:flex;align-items:center;gap:.375rem}
.prop-amenities{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.75rem}
.prop-foot{display:flex;align-items:center;justify-content:space-between;margin-top:1rem}
.prop-rating{display:flex;align-items:center;gap:.25rem;font-size:.875rem;font-weight:700;color:var(--navy-800)}

/* Service card */
.svc-card{overflow:hidden}
.svc-media{position:relative;aspect-ratio:5/3;overflow:hidden;background:var(--sand-100)}
.svc-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--t)}
.svc-card:hover .svc-media img{transform:scale(1.05)}
.svc-rating{position:absolute;left:.75rem;top:.75rem}
.svc-body{padding:1.25rem}
.svc-name{font-size:1rem;font-weight:700;color:var(--navy-900);margin:0}
.svc-price{font-size:.875rem;color:var(--navy-500);margin-top:.25rem}
.svc-price b{font-weight:700;color:var(--navy-800)}

/* Professional card */
.pro-card{padding:1.25rem}
.pro-head{display:flex;align-items:center;gap:1rem}
.pro-avatar{width:4rem;height:4rem;border-radius:1rem;object-fit:cover;ring:2px solid var(--sand-200)}
.pro-name{font-size:1rem;font-weight:700;color:var(--navy-900);margin:0;display:flex;align-items:center;gap:.375rem}
.pro-role{font-size:.875rem;font-weight:600;color:var(--gold-600);margin:0}
.pro-loc{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--navy-500);margin-top:.125rem}
.pro-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem;text-align:center;font-size:.75rem;font-weight:600}
.pro-stat{background:var(--sand-100);border-radius:.75rem;padding:.5rem}
.pro-stat b{display:block;font-size:.875rem;color:var(--navy-900)}
.pro-stat span{color:var(--navy-400)}
.pro-skills{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:1rem}
.pro-portfolio{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem}
.pro-portfolio img{aspect-ratio:1;width:100%;border-radius:.75rem;object-fit:cover}
.pro-actions{display:flex;gap:.5rem;margin-top:1rem}

/* Blog card */
.blog-card{overflow:hidden;display:block}
.blog-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--sand-100)}
.blog-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--t)}
.blog-card:hover .blog-media img{transform:scale(1.05)}
.blog-cat{position:absolute;left:.75rem;top:.75rem}
.blog-body{padding:1.25rem}
.blog-title{font-size:1rem;font-weight:700;color:var(--navy-900);margin:0;line-height:1.3}
.blog-card:hover .blog-title{color:var(--navy-600)}
.blog-excerpt{font-size:.875rem;color:var(--navy-500);margin-top:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.blog-foot{display:flex;align-items:center;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--sand-200);font-size:.75rem;color:var(--navy-400)}

/* Testimonial */
.tst-card{padding:1.5rem}
.tst-quote{color:var(--gold-400)}
.tst-stars{display:flex;gap:.125rem;margin-top:.75rem}
.tst-text{font-size:.875rem;line-height:1.6;color:var(--navy-700);margin-top:1rem}
.tst-author{display:flex;align-items:center;gap:.75rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--sand-200)}
.tst-avatar{width:2.5rem;height:2.5rem;border-radius:9999px;object-fit:cover}
.tst-name{font-size:.875rem;font-weight:700;color:var(--navy-900);margin:0}
.tst-role{font-size:.75rem;color:var(--navy-500);margin:0}

/* FAQ */
.faq{max-width:48rem;margin:0 auto;border-radius:1.5rem;overflow:hidden;border:1px solid var(--sand-200);background:#fff;box-shadow:var(--sh-card)}
.faq-item{border-bottom:1px solid var(--sand-100)}
.faq-item:last-child{border-bottom:0}
.faq-q{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;background:none;border:0;text-align:left;cursor:pointer;font-family:inherit}
.faq-q span{font-size:.875rem;font-weight:700;color:var(--navy-900)}
@media(min-width:640px){.faq-q span{font-size:1rem}}
.faq-ic{flex-shrink:0;color:var(--gold-600);transition:transform .3s var(--t)}
.faq-item.open .faq-ic{transform:rotate(45deg)}
.faq-item.open .faq-q{background:var(--navy-50)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s var(--t)}
.faq-a-inner{padding:0 1.5rem 1.25rem;font-size:.875rem;line-height:1.6;color:var(--navy-600)}

/* CTA band */
.cta-band{position:relative;overflow:hidden;border-radius:2rem;background:var(--navy-800);padding:2rem;color:#fff}
@media(min-width:640px){.cta-band{padding:3rem}}
.cta-band::before{content:"";position:absolute;right:-5rem;top:-5rem;width:16rem;height:16rem;border-radius:9999px;background:rgba(212,160,23,.2);filter:blur(60px)}
.cta-band::after{content:"";position:absolute;bottom:-6rem;left:-4rem;width:18rem;height:18rem;border-radius:9999px;background:rgba(47,73,144,.2);filter:blur(60px)}
.cta-grid{position:relative;display:grid;gap:1.5rem;align-items:center}
@media(min-width:640px){.cta-grid{grid-template-columns:1.4fr 1fr}}
.cta-band h2{color:#fff;margin:0}
.cta-band p{color:var(--navy-200);margin:.75rem 0 0}
.cta-actions{display:flex;flex-wrap:wrap;gap:.75rem}
@media(min-width:640px){.cta-actions{justify-content:flex-end}}

/* Page head */
.page-head{background:var(--navy-900);color:#fff;padding:3.5rem 0}
@media(min-width:640px){.page-head{padding:4rem 0}}
.page-head h1{color:#fff;margin-top:.75rem}
.page-head p{color:var(--navy-200);max-width:36rem;margin-top:.75rem;font-size:1.1rem}
.page-head .eyebrow{color:var(--gold-500)}
.breadcrumb{font-size:.8rem;color:var(--navy-300);margin-bottom:.5rem}
.breadcrumb a{color:var(--navy-200)}
.breadcrumb a:hover{color:var(--gold-500)}
.breadcrumb .sep{margin:0 .375rem;color:var(--navy-500)}

/* Filters sidebar */
.filters{padding:1.25rem}
.filters h2{font-size:1rem;margin:0 0 1rem;padding-bottom:.75rem;border-bottom:1px solid var(--sand-200);display:flex;align-items:center;gap:.5rem}
.filter-group{margin-bottom:1.25rem}
.filter-chips{display:flex;flex-wrap:wrap;gap:.375rem}
.filter-chip{border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;color:var(--navy-600);background:var(--sand-100);border:0;cursor:pointer;font-family:inherit;transition:all var(--t)}
.filter-chip.active{background:var(--navy-800);color:#fff}
.filter-chip:hover:not(.active){background:var(--sand-200)}

/* Dashboard */
.dash-grid{display:grid;gap:1.5rem}
@media(min-width:1024px){.dash-grid{grid-template-columns:15rem 1fr}}
.dash-sidebar{padding:.75rem}
@media(min-width:1024px){.dash-sidebar{position:sticky;top:5rem;align-self:start}}
.dash-user{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:1rem;background:var(--sand-100);margin-bottom:.75rem}
.dash-user-avatar{width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--navy-800);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.875rem}
.dash-nav{display:flex;flex-direction:column;gap:.25rem}
.dash-nav-btn{display:flex;width:100%;align-items:center;gap:.75rem;border-radius:.75rem;padding:.625rem .75rem;font-size:.875rem;font-weight:600;color:var(--navy-600);background:none;border:0;cursor:pointer;font-family:inherit;text-align:left;transition:all var(--t)}
.dash-nav-btn:hover{background:var(--sand-100)}
.dash-nav-btn.active{background:var(--navy-800);color:#fff}
.dash-stat{padding:1.25rem}
.dash-stat-top{display:flex;align-items:center;justify-content:space-between}
.dash-stat-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--navy-50);color:var(--navy-800)}
.dash-stat-val{font-size:1.5rem;font-weight:800;color:var(--navy-900);margin-top:.75rem}
.dash-stat-lbl{font-size:.75rem;color:var(--navy-500)}
.dash-stat-d{font-size:.75rem;font-weight:600;color:var(--navy-400);margin-top:.25rem}
.table{width:100%;border-collapse:collapse;font-size:.875rem}
.table th{background:var(--sand-50);text-align:left;padding:.75rem 1.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--navy-400)}
.table td{padding:1rem 1.25rem;border-top:1px solid var(--sand-200)}
.table tr:hover td{background:var(--sand-50)}
.chart-bars{display:flex;align-items:flex-end;gap:.75rem;height:11rem;margin-top:1.5rem}
.chart-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.chart-bar-fill{width:100%;border-radius:.5rem .5rem 0 0;background:linear-gradient(to top,var(--navy-700),var(--navy-400))}
.chart-bar-lbl{font-size:.75rem;color:var(--navy-400)}

/* Map view */
.map-view{position:relative;height:32rem;border-radius:1.5rem;overflow:hidden;border:1px solid var(--sand-200);background:var(--navy-50)}
.map-grid{position:absolute;inset:0;opacity:.4;background-image:linear-gradient(rgba(11,31,58,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(11,31,58,.08) 1px,transparent 1px);background-size:40px 40px}
.map-pin{position:absolute;transform:translate(-50%,-50%)}
.map-pin-pill{display:flex;align-items:center;gap:.25rem;border-radius:9999px;background:var(--navy-800);color:#fff;padding:.375rem .625rem;font-size:.75rem;font-weight:700;box-shadow:var(--sh-lift);cursor:pointer;transition:transform var(--t)}
.map-pin-pill:hover{transform:scale(1.08);background:var(--navy-700)}

/* Footer */
.footer{margin-top:6rem;background:var(--navy-900);color:var(--navy-100);padding:4rem 0 1.5rem}
.footer-grid{display:grid;gap:3rem}
@media(min-width:800px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.footer h4{color:#fff;font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem}
.footer ul{list-style:none;padding:0;margin:0}
.footer li{margin-bottom:.625rem;font-size:.875rem}
.footer a{color:var(--navy-300)}
.footer a:hover{color:var(--gold-500)}
.footer-brand .brand{color:#fff;margin-bottom:1rem}
.footer-brand p{font-size:.875rem;color:var(--navy-300);max-width:24rem}
.footer-social{display:flex;gap:.75rem;margin-top:1.5rem}
.footer-social a{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:9999px;background:rgba(255,255,255,.1);color:var(--navy-100)}
.footer-social a:hover{background:var(--gold-500);color:var(--navy-900)}
.footer-bottom{margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:.5rem;font-size:.75rem;color:var(--navy-400)}
@media(min-width:640px){.footer-bottom{flex-direction:row;align-items:center;justify-content:space-between}}
.footer-contact{display:grid;gap:1.5rem;margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.1);font-size:.875rem;color:var(--navy-300)}
@media(min-width:640px){.footer-contact{grid-template-columns:repeat(3,1fr)}}
.footer-contact span{display:flex;align-items:center;gap:.5rem}
.footer-contact svg{color:var(--gold-500)}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{opacity:1;transform:translateY(0)}

/* Prose (blog articles) */
.prose{max-width:48rem;margin:0 auto}
.prose p{color:var(--navy-700);line-height:1.7}
.prose h2{margin-top:2.5rem}
.prose .takeaways{margin-top:3rem;border-radius:1.5rem;background:var(--sand-100);padding:1.5rem}
.prose .takeaways h3{margin-top:0;color:var(--navy-900)}
.prose .takeaways ul{list-style:none;padding:0;margin:.75rem 0 0}
.prose .takeaways li{display:flex;gap:.5rem;font-size:.875rem;color:var(--navy-600);margin-bottom:.5rem}
.prose .takeaways li::before{content:"•";color:var(--gold-600);font-weight:700}

/* Article layout */
.article-layout{display:grid;gap:2rem;align-items:start}
@media(min-width:980px){.article-layout{grid-template-columns:1fr 20rem}}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding-bottom:1.5rem;border-bottom:1px solid var(--sand-200);font-size:.875rem;color:var(--navy-400)}
.article-meta .author{display:flex;align-items:center;gap:.75rem}
.article-meta .author-avatar{width:2.5rem;height:2.5rem;border-radius:9999px;background:var(--navy-800);color:#fff;display:grid;place-items:center;font-weight:700}

/* Skip link */
.skip-link{position:absolute;left:-999px;top:0;background:var(--navy-800);color:#fff;padding:.625rem 1rem;z-index:200;border-radius:0 0 .5rem 0}
.skip-link:focus{left:0}

/* Misc */
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.scrollbar-hide::-webkit-scrollbar{display:none}
.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}
/* Force reveal elements to show even if JS fails */
.reveal {
  opacity: 1 !important;
  transform: none !important;
}
