@font-face{font-family:"Cormorant";src:url(fonts/cg-400.woff2) format("woff2");font-weight:400}
@font-face{font-family:"Cormorant";src:url(fonts/cg-500.woff2) format("woff2");font-weight:500}
@font-face{font-family:"Cormorant";src:url(fonts/cg-600.woff2) format("woff2");font-weight:600}
@font-face{font-family:"Serif4";src:url(fonts/ss-500.woff2) format("woff2");font-weight:500}
@font-face{font-family:"Serif4";src:url(fonts/ss-600.woff2) format("woff2");font-weight:600}
@font-face{font-family:"Jost";src:url(fonts/jost-300.woff2) format("woff2");font-weight:300}
@font-face{font-family:"Jost";src:url(fonts/jost-400.woff2) format("woff2");font-weight:400}
@font-face{font-family:"Jost";src:url(fonts/jost-500.woff2) format("woff2");font-weight:500}

:root{
  --navy:#172D3D; --navy-2:#1F3A4E; --teal:#527C7C; --teal-soft:#DCE5E2;
  --ivory:#F2F4F4; --paper:#F7F7F5; --stone:#E8ECEC; --gold:#7F97A3; --gold-soft:#DDE4E7;
  --ink:#172D3D; --ink-2:#4A5A66; --rule:#D9DEDF;
  --serif:"Serif4", Georgia, serif; --sans:"Jost", "Inter", sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}html,body{background:var(--paper)}
body{font-variant-numeric:lining-nums;font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;}
img{display:block}



.site{background:var(--paper)}
.wrap{max-width:1200px;margin:0 auto}
.narrow{max-width:760px;margin:0 auto}

/* header */
header.top{height:104px;display:flex;align-items:center;justify-content:space-between;max-width:1280px;margin:0 auto;border-bottom:1px solid var(--rule)}
header.top img{height:74px}
nav{display:flex;gap:38px;align-items:center}
nav a{font:400 14px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding:6px 0;border-bottom:1px solid transparent}
nav a.on{border-bottom-color:var(--gold);color:var(--navy)}
.btn{display:inline-flex;align-items:center;gap:12px;font:500 13px var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:17px 30px;border-radius:2px;background:var(--navy);color:var(--ivory);border:1px solid var(--navy)}
.btn.sm{padding:13px 22px;font-size:12px}
.btn.gold{background:#F2F4F4;border-color:#F2F4F4;color:var(--navy)}
.btn.ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn.ghost-light{background:transparent;color:var(--ivory);border-color:rgba(242,244,244,.6)}
.btn .arr{width:18px;height:1px;background:currentColor;position:relative}
.btn .arr:after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.link{font:500 13px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--teal);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:4px}

/* type */
.eyebrow{font:500 13px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--teal);display:flex;align-items:center;gap:16px}
.eyebrow:before{content:"";width:36px;height:1px;background:var(--gold)}
.eyebrow.c{justify-content:center}
.eyebrow.c:after{content:"";width:36px;height:1px;background:var(--gold)}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--navy);letter-spacing:-.005em}
h1{font-size:76px;line-height:1.02}
h2{font-size:54px;line-height:1.08}
h3{font-size:30px;line-height:1.15}
p{font:400 18px/1.75 var(--sans);color:var(--ink-2)}
p + p{margin-top:16px}
.lead{font:400 21px/1.7 var(--sans);color:var(--ink-2)}
.statement{font-family:var(--serif);font-weight:500;color:var(--navy);font-size:34px;line-height:1.3}
.gold-t{color:var(--gold)}
.rule{width:64px;height:1px;background:var(--gold);margin:28px 0}
.rule.c{margin:28px auto}
.center{text-align:center}

section{padding:120px 0}
.bg-ivory{background:var(--stone)}
.bg-navy{background:var(--navy)}
.bg-navy h2,.bg-navy h3{color:var(--ivory)}
.bg-navy p{color:rgba(242,244,244,.78)}
.bg-navy .eyebrow{color:#9FC0BC}

/* placeholder imagery */
.ph{position:relative;overflow:hidden;background:var(--teal-soft)}
.ph svg{position:absolute;inset:0;width:100%;height:100%}
.tag{position:absolute;left:18px;bottom:18px;background:rgba(251,249,245,.92);color:var(--ink-2);font:500 10.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:8px 12px;border-radius:2px;border:1px dashed rgba(23,45,61,.25);z-index:3}
.arch{border-radius:0;outline:1px solid var(--gold);outline-offset:16px}

/* grids */
.two{display:grid;grid-template-columns:1fr 1fr;gap:96px;align-items:center}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{background:var(--paper);border:1px solid var(--rule);padding:44px 40px 46px;border-radius:2px}
.card h3{font-size:28px;margin:22px 0 14px}
.card p{font-size:16.5px}
.icon{width:52px;height:52px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center}
.icon svg{width:24px;height:24px;stroke:var(--teal);fill:none;stroke-width:1.4}

/* footer */
footer{background:var(--navy);color:var(--ivory);padding:90px 0 40px;border-top:3px solid var(--gold)}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1.5fr;gap:80px;max-width:1200px;margin:0 auto}
footer img{height:96px}
footer .tl{font-family:var(--serif);font-size:24px;line-height:1.35;color:var(--ivory);margin-top:26px}
footer .sub{font:400 15px var(--sans);color:rgba(242,244,244,.65);margin-top:10px}
footer h4{font:500 12px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
footer ul{list-style:none}footer li{font:400 16px/2.1 var(--sans);color:rgba(242,244,244,.85)}
footer .notice{font:400 14.5px/1.75 var(--sans);color:rgba(242,244,244,.68)}
.fbot{max-width:1200px;margin:70px auto 0;padding-top:28px;border-top:1px solid rgba(242,244,244,.14);display:flex;justify-content:space-between;font:400 13.5px var(--sans);color:rgba(242,244,244,.55)}
.fbot span + span{margin-left:28px}

/* page hero (interior) */
.phero{padding:110px 0 100px;position:relative}
.phero h1{font-size:68px}

/* sturdier serif sizing */
h1,h2,h3,.statement,.sub,.focus,.qs div,.whens div,.step .n,.bigq,.pd,.who,.belief,.cred .v,.navyq,.resources div,.svc .n,.price,.opt div,.lines div,footer .tl,.ty,.ty2{font-size-adjust:0.44}
h1,h2{font-weight:600;letter-spacing:-.015em}

/* ===== Production + responsive layer (added on top of the approved design) ===== */
body{width:auto;min-width:0;overflow-x:hidden}
[hidden]{display:none!important}
a{color:inherit}
nav a,.btn,.link,footer a{text-decoration:none}
img{max-width:100%}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:12px 18px;z-index:100}
.skip:focus{left:12px;top:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hp{position:absolute;left:-9999px}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}

/* containers: max widths + side padding */
.wrap,.narrow,.hero,.ahero,.shero,.nhero,.cgrid,.chead,.phd,.art,.author,.feat-img,.fgrid,.fbot,.mhero .inner,.bhero .wrap,.w2{margin-left:auto;margin-right:auto}
@media (max-width:1280px){
  .wrap,.narrow,.hero,.ahero,.shero,.nhero,.cgrid,.chead,.phd,.art,.author,.fgrid,.fbot,.mhero .inner,.pc-wrap{padding-left:32px!important;padding-right:32px!important}
  header.top{padding:0 32px}
}

/* header */
header.top{width:auto;max-width:1280px;margin:0 auto;gap:24px;position:relative}
header.top .logo img{height:64px;width:auto}
header.top nav{gap:28px}
header.top nav a{white-space:nowrap}
header.top nav .nav-cta{display:none}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--rule);background:transparent;position:relative;cursor:pointer}
.menu-btn span,.menu-btn span:before,.menu-btn span:after{position:absolute;left:11px;width:20px;height:1.5px;background:var(--navy);content:"";transition:transform .2s}
.menu-btn span{top:21px}.menu-btn span:before{top:-6px;left:0}.menu-btn span:after{top:6px;left:0}
header.top.open .menu-btn span{background:transparent}
header.top.open .menu-btn span:before{transform:translateY(6px) rotate(45deg)}
header.top.open .menu-btn span:after{transform:translateY(-6px) rotate(-45deg)}
.promo a{color:#fff;border-bottom:1px solid #AFC0C8;margin-left:10px}
.qc{display:block;text-decoration:none}

/* booking card (replaces calendar until a scheduling tool is connected) */
.booking-card{background:var(--paper);border:1px solid var(--rule);padding:32px;box-shadow:0 30px 60px -40px rgba(23,45,61,.5)}
.bg-navy .booking-card p{color:var(--ink-2)}
.bk-top{display:flex;gap:14px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--rule);margin-bottom:18px}
.bk-av{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:48% 22%}
.bk-nm{font-family:var(--serif);font-weight:600;font-size:21px;color:var(--navy)}
.bk-sb{font:400 14px var(--sans);color:var(--ink-2)}
.booking-card p{font-size:16.5px;margin-bottom:22px}

/* real form fields */
.form .fld{margin-top:18px}
.form label{display:block;font:500 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin-bottom:8px}
.form label span{color:#8D979E;letter-spacing:.04em;text-transform:none;font-weight:400}
.form input[type=text],.form input[type=email],.form input[type=tel],.form select,.form textarea,.news-form .in{width:100%;height:52px;border:1px solid #CBD2D5;background:#fff;border-radius:2px;padding:0 14px;font:400 16px var(--sans);color:var(--navy)}
.form textarea{height:auto;padding:12px 14px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus,.news-form .in:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px rgba(82,124,124,.18)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
label.smsbox{display:flex;gap:12px;align-items:flex-start;margin-top:18px;font:400 13px/1.55 var(--sans);letter-spacing:0;text-transform:none;color:var(--ink-2);background:var(--stone);padding:14px 16px;cursor:pointer}
label.smsbox input{margin-top:3px;flex:none;width:17px;height:17px;accent-color:var(--navy)}
button.btn{cursor:pointer;font-family:var(--sans)}
.news-form{display:flex;gap:12px;align-items:center}
.news-form .in{flex:1}
footer ul a,.fbot a{color:inherit}
footer .fgrid{grid-template-columns:1.2fr .8fr .9fr 1.4fr;gap:60px}
.fbot .fl a + a{margin-left:28px}

/* ---------- tablet ---------- */
@media (max-width:1100px){
  header.top nav{gap:20px}
  header.top nav a{font-size:12.5px;letter-spacing:.1em}
  header.top .head-cta{display:none}
}
@media (max-width:980px){
  /* collapse menu */
  .menu-btn{display:block;margin-left:auto}
  header.top{height:80px}
  header.top .logo img{height:52px}
  header.top nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:stretch;gap:0;padding:8px 24px 24px;border-bottom:1px solid var(--rule);box-shadow:0 20px 40px -20px rgba(23,45,61,.3);z-index:50}
  header.top.open nav{display:flex}
  header.top nav a{padding:16px 0;border-bottom:1px solid var(--rule);font-size:14px}
  header.top nav .nav-cta{display:inline-flex;justify-content:center;margin-top:18px;border-bottom:0;color:var(--ivory)}

  /* stack every multi-column layout except calendars/small grids */
  .site [style*="grid-template-columns"],
  .two,.cards,.hero,.ahero,.shero,.nhero,.cgrid,.offer,.steps,.how,.feat,.small4,.fw4,.res,.cred-grid,.topics,.svc2,.tlist,.bgrid,.faqgrid,.journey,.fgrid,.pcband,.bookA,.founder,.collab,.scope,.honor,.news,.pc-intro,.pc-res,.bpost.big,.svc,.trust .wrap,.fw,.scr3,.flowA,.ben{grid-template-columns:1fr!important}
  .row2{grid-template-columns:1fr}
  .site [style*="gap:"]{gap:28px!important}

  section{padding:72px 0}
  h1{font-size:44px!important;line-height:1.1}
  h2{font-size:34px!important;line-height:1.15}
  h3{font-size:24px}
  .statement,.subhero,.belief,.navyq{font-size:24px!important}
  .lead{font-size:18px}
  p{font-size:16.5px}

  .hero,.ahero,.shero,.nhero{padding-top:48px!important;padding-bottom:56px!important}
  .ph[style*="height"]{height:420px!important}
  .arch{outline-offset:8px}
  .mhero{height:auto!important;padding:56px 0}
  .mhero .ph{opacity:.35}
  .trust .wrap{gap:18px}
  .trust .wrap > div{border-left:0!important;padding:0!important}
  .fw-strip{flex-direction:column;align-items:flex-start;gap:18px}
  .fw-strip .w{flex-wrap:wrap;font-size:22px}
  .offer .box,.pcband,.news,.honor{padding:40px 28px!important}
  .feat-img{height:320px!important}
  .fbot{flex-direction:column;gap:12px}
  .pc-card{padding:30px 24px}
  .pc-photo{height:300px}
  .pc-intro h1{font-size:36px!important}
}

/* ---------- phone ---------- */
@media (max-width:600px){
  .wrap,.narrow,.hero,.ahero,.shero,.nhero,.cgrid,.chead,.phd,.art,.author,.fgrid,.fbot,.mhero .inner,.pc-wrap{padding-left:20px!important;padding-right:20px!important}
  header.top{padding:0 20px}
  .promo{font-size:12.5px;padding:10px 16px}
  h1{font-size:36px!important}
  h2{font-size:29px!important}
  .ph[style*="height"]{height:340px!important}
  .ctas{flex-direction:column;align-items:stretch!important}
  .ctas .btn,.hero .ctas .btn{justify-content:center;white-space:normal}
  .btn{padding:16px 22px}
  .news-form{flex-direction:column;align-items:stretch}
  .author{grid-template-columns:80px 1fr!important;gap:18px}
  .author .ph{height:80px!important}
  .crisis{flex-direction:column;align-items:flex-start;gap:8px}
  .q .a{padding-right:0}
}

/* booking buttons */
.btn.book-btn{background:var(--teal);border-color:var(--teal);color:#fff}
.btn.book-btn:hover{background:#45696A;border-color:#45696A}
header.top .head-cta{white-space:nowrap}
header.top nav .nav-book{display:none}
@media (min-width:981px) and (max-width:1100px){header.top nav .nav-book{display:inline}}
