/* Dominic Carubba: edit brand values here */
:root{
  --navy:#193261; --gold:#c9a74a; --sand:#edcd99; --mist:#f4f2f0; --paper:#fcfbfa; --white:#fff;
  --title:"Nunito Sans",sans-serif;   /* Title + subheading */
  --heading:"Montserrat",sans-serif;  /* Headings */
  --body:"Inter",sans-serif;          /* Paragraph */
  --slab:"Rokkitt",serif;             /* Numbers, pull line, big CTA button */
  --body-weight:400;                  /* Set to 700 for all-bold paragraphs */
  --btn-text:#fff;                    /* Set to var(--navy) for stronger contrast */
  --fs-title:clamp(38px,4.6vw,72px);
  --fs-h2:clamp(30px,3.85vw,60px);
  --fs-h3:clamp(21px,2.05vw,32px);
  --fs-lead:clamp(18px,1.85vw,29px);
  --fs-body:clamp(16px,1.42vw,22px);
  --fs-label:clamp(15px,1.6vw,25px);
  --gut:clamp(20px,13vw,203px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--navy);color:var(--white);font:var(--body-weight) var(--fs-body)/1.5 var(--body);letter-spacing:.01em;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p,ul{margin:0}
strong{font-weight:700}
.wrap{padding-inline:var(--gut);max-width:1600px;margin-inline:auto}

/* Header */
.site-head{background:var(--navy);padding:clamp(14px,2.5vw,38px) var(--gut) clamp(14px,1.8vw,28px);display:flex;align-items:center;justify-content:space-between;gap:24px;padding-left:clamp(20px,12vw,186px);padding-right:clamp(20px,12.5vw,195px)}
.logo img{width:clamp(170px,17vw,265px);height:auto}
.site-nav{display:flex;align-items:center;gap:clamp(24px,4.6vw,72px)}
.site-nav a{font:700 clamp(13px,1.1vw,17px)/1 var(--title);text-transform:uppercase;text-decoration:none}
.site-nav a:not(.btn):hover{color:var(--sand)}
.site-nav .btn{font-size:clamp(12px,1vw,15px);padding:.95em 0;width:clamp(170px,15.2vw,236px);margin-left:calc(clamp(24px,4.6vw,72px)*-.1)}
.menu-btn{display:none;background:none;border:0;color:#fff;font:700 15px var(--title);letter-spacing:.06em;cursor:pointer;padding:10px 0}
.menu-panel{position:fixed;inset:0;z-index:50;background:var(--navy);display:none;flex-direction:column;align-items:center;justify-content:center;gap:28px}
.menu-panel.open{display:flex}
.menu-panel a{font:700 24px var(--title);text-transform:uppercase;text-decoration:none}
.menu-panel .close{position:absolute;top:22px;right:20px;background:none;border:0;color:#fff;font:700 15px var(--title);cursor:pointer}

/* Buttons */
.btn{display:inline-block;background:var(--gold);color:var(--btn-text);font:700 clamp(15px,1.55vw,24px)/1 var(--body);letter-spacing:.05em;text-transform:uppercase;text-decoration:none;text-align:center;border:0;border-radius:8px;padding:.8em 1.6em;min-width:clamp(190px,17.8vw,277px);transition:filter .15s}
.btn:hover{filter:brightness(1.07)}
.btn-white{background:#fff;color:var(--gold)}
.btn-navy{background:var(--navy);color:var(--gold)}
.btn-slab{font:800 clamp(18px,1.7vw,27px)/1 var(--slab);letter-spacing:.08em;color:var(--navy);padding:1.25em 1.6em;min-width:clamp(240px,22vw,344px)}
:focus-visible{outline:3px solid var(--sand);outline-offset:3px}

/* Hero */
.hero{position:relative;overflow:hidden;background:var(--navy);isolation:isolate}
.pattern{position:absolute;inset:0;z-index:-2;background:url(../img/pattern-light.svg) 0 0/1600px auto;opacity:.17}
.hero-photo{position:absolute;top:0;right:0;bottom:0;z-index:-1;width:40%;height:100%;object-fit:cover;object-position:right center;-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%);mask-image:linear-gradient(90deg,transparent,#000 18%)}
.hero-photo.wide{width:54%}
.hero-copy{padding:clamp(40px,5.8vw,90px) 0 clamp(40px,5vw,78px) clamp(20px,13.35vw,208px);width:66%}
.eyebrow{font:700 clamp(15px,1.62vw,25px)/1.2 var(--title);color:var(--gold);text-transform:uppercase;letter-spacing:.03em}
.hero h1{font:700 var(--fs-title)/.98 var(--title);margin:.2em 0 .2em}
.hero-sub{font:700 clamp(18px,1.95vw,30px)/1.4 var(--title);letter-spacing:.03em}
.hero .btn{margin-top:clamp(28px,3vw,46px)}
.stats{display:flex;gap:clamp(40px,7vw,110px);margin-top:clamp(36px,4.2vw,64px)}
.stats b{display:block;font:800 clamp(26px,2.4vw,37px)/1 var(--slab);color:var(--gold)}
.stats span{font:700 clamp(15px,1.45vw,22px)/1.3 var(--title);letter-spacing:.03em}
.hero.about .hero-copy,.hero.services .hero-copy{width:62%}
.hero.contact .hero-copy{width:70%;padding-bottom:clamp(36px,3.4vw,52px)}

/* Sections */
.sec{padding-block:clamp(40px,4vw,62px);border-top:8px solid var(--gold)}
.sec.first{border-top:0}
.light{background:#fff;color:var(--navy)}
.num{font:400 var(--fs-label)/1.2 var(--body);color:var(--gold);text-transform:uppercase;margin-bottom:.35em}
h2{font:600 var(--fs-h2)/1.17 var(--heading)}
.sub{font:400 var(--fs-lead)/1.35 var(--title);letter-spacing:.04em;margin-top:.35em}
.sub.bold{font-weight:700}
.prose p+p{margin-top:1.45em}
.prose{margin-top:clamp(20px,2vw,32px)}
.problem ul{list-style:disc;font:700 clamp(18px,1.95vw,30px)/1.3 var(--title);letter-spacing:.03em;margin:clamp(18px,1.8vw,28px) 0 0;padding-left:1.8em}
.pull{font:italic 800 clamp(24px,2.9vw,45px)/1.5 var(--slab);color:var(--gold);text-align:center;margin:clamp(40px,4vw,62px) auto clamp(10px,1.6vw,25px);max-width:1040px}
.split{display:grid;gap:clamp(24px,3vw,46px);align-items:start}

/* Home proof */
.proof-home{padding:0;position:relative}
.proof-grid{display:grid;grid-template-columns:36fr 64fr;min-height:clamp(300px,34vw,530px)}
.proof-img{min-width:0;position:relative}
.proof-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.proof-copy{padding:clamp(40px,3vw,46px) 12% clamp(24px,2vw,30px) 3.2%}
.quote-block{text-align:center;padding:clamp(40px,4vw,62px) var(--gut)}
.quote-block q,.q-mark{font:600 var(--fs-h2)/1.17 var(--heading);quotes:none}
.cite{display:block;font:700 clamp(17px,1.8vw,28px)/1.3 var(--title);letter-spacing:.04em;margin-top:.9em}
.quote-block .btn{margin-top:clamp(24px,2.6vw,40px)}

/* Steps */
.steps{list-style:none;padding:0;margin:clamp(28px,4vw,62px) 0 0}
.step{display:grid;grid-template-columns:clamp(58px,5.8vw,90px) 1fr;column-gap:4px}
.step b{font:800 clamp(44px,4.4vw,68px)/.95 var(--slab);color:var(--gold)}
.step h3{font:600 var(--fs-h3)/1.2 var(--heading);text-transform:uppercase}
.step small{display:block;font:700 clamp(15px,1.35vw,21px)/1.3 var(--body);color:var(--gold);margin-top:.3em}
.step p{font-size:clamp(16px,1.3vw,20px);margin-top:.5em}
.step>div{padding-bottom:clamp(24px,2.1vw,32px);margin-bottom:clamp(24px,2.1vw,32px);border-bottom:1px solid rgba(255,255,255,.45)}
.light .step>div{border-color:rgba(25,50,97,.4)}
.step:last-child>div{border:0;margin:0;padding-bottom:0}
.center{text-align:center}
.mt-cta{margin-top:clamp(36px,4vw,62px)}
.change-list{margin:.7em 0 0;padding-left:2.5em;line-height:1.55}
.h-gold{font:700 clamp(20px,1.95vw,30px)/1.2 var(--title);color:var(--gold);text-transform:uppercase;letter-spacing:.03em;margin-top:clamp(36px,3.8vw,58px)}

/* Portrait split */
.portrait-grid{display:grid;grid-template-columns:34.3fr 65.7fr;border-top:8px solid var(--gold)}
.portrait-grid.about-side{grid-template-columns:35.7fr 64.3fr}
.portrait{border-top-right-radius:clamp(76px,6vw,92px);overflow:hidden;box-shadow:4px 0 8px rgba(0,0,0,.28);min-height:100%;position:relative}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;position:absolute;inset:0}
.portrait-copy{padding:clamp(32px,3.6vw,56px) var(--gut) clamp(32px,3.4vw,52px) 3%}
.portrait-copy h2.small{font-size:clamp(23px,2.05vw,32px)}
.portrait-copy p.tall{line-height:1.95;margin-top:1.5em}
.portrait-copy .btn{display:block;width:max-content;margin:clamp(28px,4vw,60px) auto 0}

/* Final CTA */
.cta{position:relative;border-top:8px solid var(--gold);overflow:hidden}
.cta::before{content:"";position:absolute;inset:0 auto 0 0;width:22.7%;background:url(../img/pattern-gold.svg) 0 0/1600px auto}
.cta-inner{margin-left:22.7%;padding:clamp(50px,7.4vw,115px) clamp(20px,7vw,110px);text-align:center;max-width:980px}
.cta h2{font:700 var(--fs-h2)/1 var(--title);color:var(--gold)}
.cta h2.upper{text-transform:uppercase}
.cta p{font-size:clamp(18px,1.85vw,29px);letter-spacing:.05em;margin:.9em auto 0;max-width:30em;font-weight:500}
.cta .btn{margin-top:clamp(32px,3.6vw,56px)}
.cta .tag{font-size:clamp(15px,1.3vw,20px);letter-spacing:0;margin-top:.9em}
.cta.light p,.cta.light .tag{color:var(--navy)}

/* Services */
.method{display:grid;grid-template-columns:31.9fr 68.1fr;background:#fff;color:var(--navy)}
.method-img{position:relative;min-height:320px}
.method-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.method-copy{padding:clamp(36px,4.4vw,68px) var(--gut) clamp(36px,3.6vw,56px) 3.8%}
.method .step>div{border:0;padding-bottom:clamp(16px,3.6vw,56px);margin:0}
.proof-side{display:grid;grid-template-columns:60fr 40fr;border-top:8px solid var(--gold);background:#fff;color:var(--navy)}
.proof-side .copy{padding:clamp(40px,5vw,78px) 5% clamp(40px,4.8vw,74px) var(--gut)}
.proof-side h2{margin-top:.2em}
.proof-side .btn{margin-top:clamp(40px,6vw,92px)}
.fade-side{position:relative;min-height:280px;background:linear-gradient(90deg,#fff,var(--navy))}
.fade-side img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:clamp(32px,4.5vw,70px) -1.5vw 0}
.card{background:var(--mist);padding:clamp(22px,1.9vw,30px) 1.5vw clamp(24px,2.6vw,40px);min-height:clamp(240px,23vw,360px)}
.card.dark{background:var(--navy);color:#fff}
.card h3{font:700 clamp(20px,1.95vw,30px)/1.2 var(--title);color:var(--gold);text-transform:uppercase;letter-spacing:.03em}
.card small{display:block;font:700 clamp(15px,1.4vw,22px)/1.2 var(--title);letter-spacing:.04em;margin:.45em 0 1.5em}

/* About */
.about-grid{display:grid;grid-template-columns:47fr 53fr;margin-top:clamp(20px,2vw,32px);margin-right:calc(var(--gut)*-1);gap:clamp(30px,4.5vw,70px)}
.facts{background:var(--navy);color:#fff;padding:clamp(24px,2.2vw,34px);align-self:start}
.facts h3{font:700 clamp(21px,1.95vw,30px)/1.2 var(--title);color:var(--gold);text-transform:uppercase;letter-spacing:.03em}
.facts dl{margin:0}
.facts dt{font:700 clamp(16px,1.4vw,22px)/1.2 var(--title);color:var(--sand);margin-top:1.05em}
.facts dd{margin:.2em 0 0;line-height:1.35}
.learned{display:grid;grid-template-columns:72fr 25.1fr 2.9fr;border-top:8px solid var(--gold);background:#fff;color:var(--navy)}
.learned .copy{padding:clamp(36px,3vw,46px) 12% clamp(36px,3vw,48px) clamp(20px,13.7vw,213px)}
.learned-img{position:relative;min-height:300px;overflow:hidden}
.learned-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%);mask-image:linear-gradient(90deg,transparent,#000 40%)}
.line-list{list-style:none;padding:0;margin:clamp(36px,3.6vw,56px) 0 0}
.line-list li{padding-bottom:clamp(22px,2.5vw,38px);margin-bottom:clamp(22px,2.5vw,38px);border-bottom:1px solid rgba(25,50,97,.45)}
.line-list li:last-child{border:0;margin:0;padding-bottom:0}
.line-list small{display:block;font:700 clamp(15px,1.35vw,21px)/1.2 var(--body);color:var(--gold);margin-bottom:.9em}
.line-list h3{font:600 var(--fs-h3)/1.2 var(--heading);text-transform:uppercase;margin-bottom:.15em}

/* Contact */
.contact-grid{display:grid;grid-template-columns:68.6fr 31.4fr;align-items:stretch}
.calendar{padding:clamp(24px,3vw,46px) clamp(20px,4vw,62px) clamp(24px,3vw,46px) clamp(20px,13.35vw,208px);display:flex}
.cal-slot{flex:1;min-height:clamp(360px,44vw,680px);border:2px dashed var(--sand);border-radius:10px;display:grid;place-items:center;text-align:center;padding:20px;color:var(--sand);font:600 clamp(18px,1.7vw,26px)/1.3 var(--heading)}
.cal-slot iframe{width:100%;height:100%;min-height:680px;border:0;background:#fff;border-radius:10px}
.contact-img img{width:100%;height:100%;object-fit:cover;border-radius:12px}

/* Footer */
.site-foot{background:var(--navy);border-top:8px solid var(--gold);padding:clamp(24px,2vw,30px) 0 clamp(18px,1.5vw,24px);text-align:center}
.site-foot.flush{border-top:0}
.foot-nav{display:grid;grid-template-columns:repeat(4,1fr);align-items:center;justify-items:center;padding-inline:clamp(10px,7vw,110px) clamp(10px,10vw,150px)}
.foot-nav a{font:700 clamp(16px,1.6vw,25px)/1 var(--body);letter-spacing:.05em;text-decoration:none}
.foot-nav a:hover{color:var(--sand)}
.foot-nav .pill{background:#fff;color:var(--navy);padding:.68em 1.6em;border-radius:9px}
.foot-nav .pill:hover{color:var(--navy);background:var(--mist)}
.social{display:flex;justify-content:center;gap:14px;margin-top:clamp(36px,3.6vw,56px);align-items:center}
.social a{display:block;line-height:0}
.social svg{height:34px;width:auto;fill:#fff}
.legal{font-size:12.5px;margin-top:9px;letter-spacing:0}
.legal a{text-decoration:none}
.legal a:hover{text-decoration:underline}
.credit{font:500 12px var(--body);letter-spacing:.08em;margin-top:9px}

/* Legal pages */
.legal-page{padding-block:clamp(40px,5vw,78px)}
.legal-page h1{font:700 var(--fs-title)/1.05 var(--title);margin-bottom:.5em}

/* Proof pop-up */
.proof-modal{border:0;padding:0;background:transparent;width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 32px);color:var(--navy)}
.proof-modal::backdrop{background:rgba(25,50,97,.8)}
.modal-card{background:var(--paper);border-radius:12px;border-top:8px solid var(--gold);padding:clamp(28px,4vw,52px);position:relative}
.modal-close{position:absolute;top:14px;right:18px;background:none;border:0;color:var(--navy);font:700 14px var(--title);letter-spacing:.05em;cursor:pointer;padding:6px}
.slide h2{font-size:clamp(28px,3vw,42px);padding-right:60px}
.slide p{margin-top:.9em;font-size:clamp(16px,1.3vw,19px)}
.slide .said{font:italic 800 clamp(22px,2.2vw,32px)/1.3 var(--slab);color:#a98a33;margin-top:1em}
.slide .who{font:700 16px var(--title);margin-top:.5em}
.slide[hidden]{display:none}
.modal-nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px}
.modal-nav button{width:46px;height:46px;border-radius:50%;background:var(--navy);color:var(--gold);border:0;font-size:20px;cursor:pointer}
.modal-nav span{font:700 14px var(--title)}

@media (max-width:820px){
  :root{--gut:20px}
  .site-nav{display:none}.menu-btn{display:block}
  .site-head{padding-inline:20px}
  .hero-copy,.hero.about .hero-copy,.hero.services .hero-copy,.hero.contact .hero-copy{width:100%;padding:36px 20px}
  .hero{display:flex;flex-direction:column}
  .hero-copy{order:1}
  .hero-photo,.hero-photo.wide{order:2;position:static;width:100%;height:auto;aspect-ratio:4/3;object-position:center;-webkit-mask-image:none;mask-image:none}
  .hero.home .hero-photo{object-position:right center}
  .proof-grid,.portrait-grid,.portrait-grid.about-side,.method,.proof-side,.learned,.about-grid,.contact-grid{grid-template-columns:1fr}
  .proof-img:not(:has(img)){display:none}
  .proof-img{min-height:260px}
  .proof-img:not(:has(img)){min-height:0}
  .proof-copy,.portrait-copy,.method-copy,.proof-side .copy,.learned .copy,.calendar{padding:36px 20px}
  .portrait{min-height:0;aspect-ratio:1/1;margin-right:20px}
  .method-img{order:-1;min-height:0;aspect-ratio:4/3}
  .about-grid{margin-right:0}
  .facts{margin-inline:-20px}
  .fade-side{min-height:0;height:120px}
  .fade-side:not(:has(img)){display:none}
  .learned-img{min-height:0;aspect-ratio:1/1;grid-row:2}
  .learned>div:last-child{display:none}
  .cards{grid-template-columns:1fr;margin-inline:0}
  .card{min-height:0;padding:24px 20px}
  .cta::before{display:none}
  .cta-inner{margin-left:0;padding:48px 20px;max-width:none}
  .stats{gap:28px;flex-wrap:wrap}
  .contact-img{padding:0 20px 28px}
  .foot-nav{grid-template-columns:1fr 1fr;row-gap:22px;padding-inline:20px}
  .btn{max-width:100%}
  .legal{padding-inline:16px;line-height:1.7}
}

/* Rich-text fields */
.rich>:first-child{margin-top:0}
.problem .rich ul{margin-top:clamp(18px,1.8vw,28px)}
.change-list ul,.change-list{list-style:disc}
.rich-list ul{margin:.7em 0 0;padding-left:2.5em;line-height:1.55}
