:root{
 --navy-900:#001a33; --navy-800:#002244; --navy-700:#0c2340;
 --gold-500:#c5a059; --gold-600:#b38f4d;
 --paper:#fdfdfd; --card:#ffffff; --sand:#f4efe4;
 --ink:var(--navy-900); --muted:rgba(0,26,51,.62); --border:rgba(0,26,51,.12);
 --primary:var(--navy-900); --accent:var(--gold-500);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Montserrat',system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased}
a{color:var(--navy-800)}
h1,h2,h3{font-family:'Libre Baskerville',Georgia,serif;font-weight:400;letter-spacing:-.01em;line-height:1.15}
img{max-width:100%;display:block}

/* topbar */
.topbar{display:none;background:var(--navy-900);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;padding:.6rem 1.6rem;justify-content:space-between}
@media(min-width:768px){.topbar{display:flex}}

/* nav */
.nav{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--border)}
.nav-inner{position:relative;max-width:1280px;margin:0 auto;min-height:80px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem 1rem;padding:.85rem 1.5rem}
.brand{display:flex;align-items:baseline;gap:.65rem;color:var(--ink);text-decoration:none;order:0}
.wordmark{font-family:'Montserrat',system-ui,sans-serif;font-size:1.5rem;font-weight:800;letter-spacing:-.04em;color:var(--navy-900)}
.wordmark .gold{color:var(--gold-500)}
.brand .bs{display:none;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:rgba(0,26,51,.4)}
@media(min-width:640px){.brand .bs{display:inline}}

/* mobile hamburger toggle — hidden on desktop */
.nav-toggle{order:2;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:40px;height:40px;padding:0;border:1px solid var(--border);background:#fff;cursor:pointer}
.nav-toggle span{display:block;width:18px;height:2px;background:var(--navy-900);transition:transform .2s,opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(min-width:1024px){.nav-toggle{display:none}}

/* mobile nav — collapsed dropdown panel by default, toggled open by nav.js */
.nav-links{display:none;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:0 12px 24px rgba(0,26,51,.12);padding:.5rem 1.5rem 1rem}
.nav-links.open{display:flex}
.nav-links a{display:block;color:var(--ink);text-decoration:none;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;padding:.85rem 0;border-bottom:1px solid var(--border);transition:color .15s}
.nav-links a:last-child{border-bottom:none}
.nav-links a:hover{color:var(--gold-600)}
.nav-links a.active{color:var(--gold-600)}

/* desktop nav — always-visible inline row, unaffected by the mobile toggle */
@media(min-width:1024px){
  .nav-links{display:flex !important;flex-direction:row;position:static;order:1;flex-basis:auto;gap:0 2rem;justify-content:center;background:none;border:0;box-shadow:none;padding:0}
  .nav-links a{padding:0;border-bottom:0}
}

.navbtn{order:3;background:var(--navy-900);color:#fff;text-decoration:none;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;padding:.65rem 1.25rem;transition:all .2s}
.navbtn:hover{background:var(--gold-500);color:var(--navy-900)}

/* hero — full-bleed photo under navy gradient mask */
.hero{position:relative;background:var(--navy-900);background-size:cover;background-position:center;min-height:clamp(380px,52vw,540px);display:flex;align-items:flex-end}
.hero-mask{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,20,40,.35) 0%,rgba(0,20,40,.55) 55%,rgba(0,20,40,.9) 100%)}
.hero-inner{position:relative;max-width:1120px;width:100%;margin:0 auto;padding:2.8rem 1.6rem 3rem}
.hero .eyebrow{color:var(--gold-500);font-size:.72rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;margin-bottom:1rem}
.hero h1{color:#fff;font-size:clamp(2.3rem,5.6vw,3.8rem);line-height:1.06;max-width:19ch;font-weight:400}
.hero-cta{display:inline-block;margin-top:1.5rem;background:transparent;border:2px solid var(--gold-500);color:var(--gold-500);text-decoration:none;font-family:'Montserrat',sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;padding:.95rem 1.7rem;transition:all .18s}
.hero-cta:hover{background:var(--gold-500);color:var(--navy-900)}
.hero-cta span{margin-left:.4rem}
.hero-plain{min-height:0;background:var(--navy-900);display:block}
.hero-plain .hero-inner{padding:2.8rem 1.6rem 2.6rem}
.hero-plain .hero-mask{display:none}

/* homepage split hero */
.split-hero{display:grid;grid-template-columns:1fr}
@media(min-width:1024px){.split-hero{grid-template-columns:7fr 5fr}}
.split-hero-copy{background:var(--navy-900);color:#fff;padding:2.5rem 1.6rem;display:flex;flex-direction:column;justify-content:center}
@media(min-width:640px){.split-hero-copy{padding:4rem}}
@media(min-width:1024px){.split-hero-copy{padding:6rem}}
.split-hero-rule{width:64px;height:4px;background:var(--gold-500);margin-bottom:2rem}
.split-hero-copy .eyebrow{color:var(--gold-500);font-size:.68rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;margin-bottom:1.5rem}
.split-hero-copy h1{color:#fff;font-size:clamp(2.25rem,6vw,4.5rem);line-height:1.05;margin-bottom:2rem;font-weight:400}
.split-hero-copy h1 em{color:var(--gold-500);font-style:italic}
.split-hero-copy .lead-copy{max-width:32rem;color:rgba(255,255,255,.7);font-size:1.0625rem;line-height:1.7;margin-bottom:2.5rem}
.split-hero-actions{display:flex;flex-wrap:wrap;gap:1rem}
.split-hero-actions .ghost-btn{background:rgba(255,255,255,.1);color:#fff;text-decoration:none;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;padding:1rem 2rem;transition:background .18s}
.split-hero-actions .ghost-btn:hover{background:rgba(255,255,255,.2)}
.split-hero-photo{position:relative;min-height:420px}
.split-hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* glance strip */
.glance{border-bottom:1px solid var(--border);background:#fff}
.glance-grid{max-width:1280px;margin:0 auto;padding:2.5rem 1.5rem;display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
@media(min-width:768px){.glance-grid{grid-template-columns:repeat(4,1fr)}}
.glance-item{display:flex;flex-direction:column;gap:.25rem}
.glance-item .gk{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-600)}
.glance-item .gv{font-family:'Libre Baskerville',Georgia,serif;font-size:1.25rem;color:var(--navy-900)}

/* pillars — homepage feature grid, matches reference exactly (image + text, no card box) */
.pillar-section{max-width:1280px;margin:0 auto;padding:6rem 1.5rem}
.pillar-intro{margin-bottom:3.5rem;max-width:42rem}
.pillar-intro .eyebrow-label{color:var(--gold-600);font-size:.68rem;letter-spacing:.3em;margin-bottom:.75rem}
.pillar-intro h2{font-size:1.9rem;line-height:1.2;color:var(--navy-900)}
@media(min-width:640px){.pillar-intro h2{font-size:2.25rem}}
.pillar-grid{display:grid;grid-template-columns:1fr;gap:2.5rem}
@media(min-width:640px){.pillar-grid{grid-template-columns:1fr 1fr;gap:2rem}}
@media(min-width:1024px){.pillar-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1280px){.pillar-grid{grid-template-columns:repeat(4,1fr)}}
.pillar-card{display:block;text-decoration:none;color:inherit}
.pillar-card-img{margin-bottom:1.5rem;aspect-ratio:4/3;width:100%;overflow:hidden;background:var(--sand);outline:1px solid rgba(0,26,51,.06);outline-offset:-1px}
.pillar-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.pillar-card:hover .pillar-card-img img{transform:scale(1.04)}
.pillar-card .peyebrow{margin-bottom:.5rem;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-600)}
.pillar-card h3{margin-bottom:.5rem;font-size:1.25rem;color:var(--navy-900);font-weight:400}
.pillar-card p{font-size:.9rem;line-height:1.6;color:rgba(0,26,51,.6);margin:0}

/* wide photo band — full-bleed, matches reference "The Ceremony" section */
.band{position:relative;height:60vh;min-height:420px;width:100%;overflow:hidden}
.band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.band::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,26,51,.85) 0%,rgba(0,26,51,.3) 55%,transparent 100%)}
.band-copy{position:absolute;inset:auto 0 0 0;max-width:1280px;margin:0 auto;padding:0 1.5rem 4rem;color:#fff}
.band-copy .eyebrow{display:block;color:var(--gold-500);font-size:.68rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;margin-bottom:.75rem}
.band-copy h2{max-width:36rem;color:#fff;font-size:1.9rem;line-height:1.2;font-weight:400}
@media(min-width:640px){.band-copy h2{font-size:3rem}}

/* navy info section — matches reference "Pass-in-Review Calendar" section */
.info-band{background:var(--navy-900);padding:6rem 1.5rem}
.info-band-head{max-width:56rem;margin:0 auto 4rem;text-align:center}
.info-band-head .eyebrow{display:block;color:var(--gold-500);font-size:.72rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;margin-bottom:1rem}
.info-band-head h2{color:#fff;font-size:1.9rem;font-weight:400}
@media(min-width:640px){.info-band-head h2{font-size:2.25rem}}
.info-rows{max-width:56rem;margin:0 auto;display:flex;flex-direction:column;gap:1rem}
.info-row{display:flex;flex-direction:column;gap:1rem;justify-content:space-between;padding:1.5rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:background .15s}
.info-row:hover{background:rgba(255,255,255,.1)}
@media(min-width:768px){.info-row{flex-direction:row;align-items:center;gap:1.5rem}}
.info-row .ik{display:block;font-family:'Libre Baskerville',Georgia,serif;font-size:1.1rem;color:var(--gold-500)}
.info-row .il{color:#fff;font-weight:700}
.info-row .idesc{font-size:.9rem;color:rgba(255,255,255,.6)}
.info-row .ilink{border-bottom:1px solid var(--gold-500);padding-bottom:.2rem;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-500);text-decoration:none;white-space:nowrap}
.info-band-note{margin:2.5rem auto 0;max-width:56rem;text-align:center;font-size:.8rem;color:rgba(255,255,255,.5)}

/* layout */
.wrap{max-width:780px;margin:0 auto;padding:3rem 1.6rem 3.5rem}
h1{font-size:2.6rem;color:var(--ink);margin-bottom:1rem;font-weight:400}
h2{font-size:1.85rem;color:var(--navy-900);margin:2.8rem 0 .9rem;font-weight:400}
h3{font-size:1.18rem;color:var(--ink);margin:.2rem 0 .4rem;font-weight:700;font-family:'Montserrat',sans-serif}
p{margin:.9rem 0}
.lead{font-size:1.22rem;line-height:1.6;color:rgba(0,26,51,.78);font-weight:400;margin-bottom:1.5rem}
ul{margin:.7rem 0 1.1rem 1.2rem}
li{margin:.45rem 0}
.small{font-size:.88rem;color:var(--muted)}

/* section label used before H2s where applied inline via .eyebrow-label */
.eyebrow-label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-600);margin-bottom:.5rem}

/* photos — square corners, no radius */
.photo{margin:1.8rem 0;overflow:hidden;background:var(--sand);outline:1px solid rgba(0,26,51,.06);outline-offset:-1px}
.photo img{width:100%;height:auto;object-fit:cover}
.photo figcaption{font-family:'Libre Baskerville',Georgia,serif;font-style:italic;font-size:.8rem;letter-spacing:.02em;color:var(--muted);padding:.6rem .2rem 0}
.photo.ph{position:relative;min-height:220px;background:repeating-linear-gradient(135deg,#eef1f4,#eef1f4 14px,#e3e8ed 14px,#e3e8ed 28px);display:flex;align-items:center;justify-content:center;border:1px solid var(--border)}
.photo.ph::after{content:"Photo: " attr(data-ph);font-family:'Libre Baskerville',Georgia,serif;font-style:italic;font-size:.8rem;color:var(--muted);text-align:center;padding:1rem 1.4rem;max-width:82%}
.photo.ph img{display:none}
.photo-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;margin:1.8rem 0 2rem}
.photo-row .photo{margin:0}
.photo-row .photo img,.photo-row .photo.ph{height:150px}
.photo-row .photo.ph{min-height:150px}

/* wide photo band (interior page section, optional) */
.photo-band{position:relative;min-height:340px;overflow:hidden;margin:2.4rem 0}
.photo-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo-band::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,20,40,.85) 0%,rgba(0,20,40,.15) 60%,transparent 100%)}
.photo-band-copy{position:relative;padding:2.2rem 1.8rem;color:#fff}
.photo-band-copy .eyebrow-label{color:var(--gold-500)}
.photo-band-copy h3{color:#fff;font-family:'Libre Baskerville',Georgia,serif;font-size:1.5rem;font-weight:400}

/* tables */
.gtable{width:100%;border-collapse:collapse;margin:1.4rem 0 1.8rem;font-size:.96rem;border:1px solid var(--border)}
.gtable th,.gtable td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--border)}
.gtable thead th{background:var(--navy-900);color:#fff;font-family:'Montserrat',sans-serif;font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.76rem}
.gtable tbody tr:nth-child(odd){background:var(--card)}
.gtable tbody tr:nth-child(even){background:var(--sand)}
.gtable td:first-child{font-weight:700;color:var(--navy-900);white-space:nowrap}

/* factbox */
.factbox{background:var(--card);border:1px solid var(--border);border-left:3px solid var(--gold-500);padding:1.5rem 1.7rem;margin:1.9rem 0}
.factbox h2{margin-top:0;font-size:1.35rem;color:var(--navy-900)}
.factbox ul{margin-bottom:.4rem}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.4rem;margin:1.3rem 0 1.8rem}
.card{position:relative;display:block;padding:1.4rem 1.4rem 3rem;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--border);border-top:3px solid var(--gold-500);transition:transform .15s,box-shadow .15s,border-color .15s}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,26,51,.14);border-top-color:var(--navy-900)}
.card h3{margin:0 0 .35rem;color:var(--navy-900);font-family:'Libre Baskerville',Georgia,serif;font-size:1.15rem;font-weight:400}
.card:hover h3{text-decoration:underline;text-decoration-color:var(--gold-500)}
.card p{font-size:.92rem;color:var(--muted);margin:0}
.card::after{content:"Open Guide →";position:absolute;left:1.4rem;bottom:1.15rem;font-family:'Montserrat',sans-serif;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-600);transition:transform .15s,color .15s}
.card:hover::after{transform:translateX(4px);color:var(--navy-900)}

/* CTA buttons */
.cta-row{margin:1.7rem 0}
.cta-btn{display:inline-block;background:var(--navy-900);color:#fff;text-decoration:none;font-family:'Montserrat',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:1rem 1.8rem;transition:background .15s}
.cta-btn:hover{background:var(--gold-600)}
.cta-sub{display:block;font-size:.7rem;font-weight:500;letter-spacing:.04em;text-transform:none;opacity:.85;margin-top:.25rem}
.aff-note{background:var(--sand);border:1px solid var(--border);border-left:3px solid var(--gold-500);padding:.75rem 1.05rem;font-size:.85rem;color:rgba(0,26,51,.72);margin:0 0 1.5rem}
.aff-note a{color:var(--navy-900);font-weight:600}

/* faq */
.faq{margin-top:3rem;border-top:3px solid var(--navy-900);padding-top:.5rem}
.faq h2{margin-top:1.1rem}
.faq-item{padding:1.2rem 0;border-bottom:1px solid var(--border)}
.faq-item h3{margin:0 0 .4rem;font-family:'Libre Baskerville',Georgia,serif;font-weight:400;font-size:1.05rem}
.faq-item p{margin:0;color:rgba(0,26,51,.72);font-size:.97rem}

/* footer — navy */
.site-footer{background:var(--navy-900);color:rgba(255,255,255,.7);padding:3.2rem 1.6rem 2rem;margin-top:2.5rem}
.foot-cols{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:2rem}
.foot-brand{color:#fff;font-family:'Montserrat',sans-serif;font-size:1.3rem;font-weight:800;letter-spacing:-.02em}
.foot-cols p{font-size:.86rem;color:rgba(255,255,255,.55);margin-top:.6rem;line-height:1.65}
.foot-h{color:var(--gold-500);font-size:.66rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.8rem}
.foot-cols a{display:block;color:rgba(255,255,255,.72);text-decoration:none;font-size:.87rem;margin:.4rem 0}
.foot-cols a:hover{color:var(--gold-500)}
.disclaimer{max-width:1280px;margin:2.2rem auto 0;border-top:1px solid rgba(255,255,255,.14);padding-top:1.3rem;font-size:.78rem;color:rgba(255,255,255,.5);line-height:1.65}
.disclaimer a{color:rgba(255,255,255,.75)}

@media(max-width:720px){
 .wrap{padding-top:2.2rem}
 .foot-cols{grid-template-columns:1fr 1fr}
 .photo-row{grid-template-columns:1fr 1fr}
 .photo-row .photo:last-child{grid-column:1/-1}
}
