:root{--navy:#2E3440;--coral:#E2634D;--cream:#F6F5F2;--grey:#8A8D94;--ink:#2E3440;--soft:#4A505C;--line:#E3E1DC;--white:#FFFFFF;--wrap:1120px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:Poppins,system-ui,sans-serif;font-weight:300;color:var(--ink);background:var(--white);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:3px;border-radius:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}
h1,h2,h3{font-weight:500;line-height:1.2;margin:0;letter-spacing:-.01em}
p{margin:0 0 1em}
strong{font-weight:500}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:var(--white);padding:8px 12px;z-index:10}

/* header */
.top{padding:26px 0;border-bottom:1px solid transparent}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{text-decoration:none;display:flex;align-items:baseline;gap:14px}
.brand .word{font-weight:600;font-size:26px;letter-spacing:-.02em;color:var(--navy)}
.brand .tag{font-size:10.5px;font-weight:500;letter-spacing:.22em;color:var(--coral)}
.top nav{display:flex;gap:26px;font-size:15px;align-items:center}
.top nav > a,.top nav summary{text-decoration:none;color:var(--navy);cursor:pointer}
.top nav > a:hover,.top nav summary:hover{color:var(--coral)}
.top nav a[aria-current="page"]{color:var(--coral)}
.top nav .talk{font-weight:500;border-bottom:2px solid var(--coral);padding-bottom:2px;white-space:nowrap}
.menu{position:relative}
.menu summary{list-style:none}
.menu summary::-webkit-details-marker{display:none}
.menu summary::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-left:8px;vertical-align:3px}
.menu[open] summary::after{transform:rotate(-135deg);vertical-align:0}
.menu .panel{position:absolute;top:calc(100% + 14px);left:-18px;background:var(--white);border:1px solid var(--line);padding:10px 0;min-width:240px;z-index:5;box-shadow:0 8px 24px rgba(46,52,64,.08)}
.menu .panel a{display:block;padding:8px 18px;text-decoration:none}
.menu .panel a:hover{color:var(--coral);background:var(--cream)}

/* hero */
.hero{padding:40px 0 96px}
.hero .wrap{display:grid;grid-template-columns:1.25fr .9fr;gap:72px;align-items:center}
.hero h1{font-size:clamp(34px,4.4vw,54px);font-weight:500;letter-spacing:-.025em;line-height:1.08;max-width:15em}
.lede{font-size:19px;color:var(--soft);max-width:34em;margin:28px 0 36px}
.actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.btn{display:inline-block;text-decoration:none;font-weight:500;font-size:16px;padding:14px 24px;border-radius:3px;border:2px solid var(--navy)}
.btn.solid{background:var(--navy);color:var(--white)}
.btn.solid:hover{background:var(--coral);border-color:var(--coral)}
.btn.plain{color:var(--navy)}
.btn.plain:hover{border-color:var(--coral);color:var(--coral)}
.portrait{position:relative;margin:0}
.portrait img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.portrait::before{content:"";position:absolute;left:-18px;top:28px;bottom:-18px;width:6px;background:var(--coral)}
.portrait figcaption{font-size:14px;color:var(--grey);margin-top:14px}
.portrait figcaption strong{color:var(--navy)}

/* page hero (inner pages) */
.page-hero{padding:48px 0 72px}
.crumb{font-size:14px;color:var(--grey);margin-bottom:18px}
.crumb a{text-decoration:none}.crumb a:hover{color:var(--coral)}
.page-hero h1{font-size:clamp(34px,4.6vw,56px);letter-spacing:-.025em;line-height:1.08;max-width:14em}
.page-hero .lede{margin-bottom:0}

/* sections */
section{padding:96px 0}
.tint{background:var(--cream)}
.sec-head{display:grid;grid-template-columns:1fr 1.6fr;gap:72px;margin-bottom:56px}
.sec-head h2{font-size:clamp(28px,3.4vw,40px)}
.sec-head p{color:var(--soft);max-width:38em;margin:0}

/* service list on home */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:0 56px}
.service{padding:30px 0 34px;border-top:1px solid var(--line);display:flex;flex-direction:column}
.service h3{font-size:22px;margin-bottom:10px}
.service p{color:var(--soft);flex:1}
.more{font-weight:500;font-size:15px;text-decoration:none;border-bottom:2px solid var(--coral);align-self:flex-start;padding-bottom:1px}
.more:hover{color:var(--coral)}

/* two-col definition grid */
.grid2{display:grid;grid-template-columns:1fr 1fr;column-gap:72px;margin:0}
.grid2 .item{padding:26px 0;border-top:1px solid var(--line)}
.grid2 h3,.grid2 dt{font-weight:500;font-size:19px;margin-bottom:6px}
.grid2 p,.grid2 dd{margin:0;color:var(--soft)}

/* problems list */
.problems{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;column-gap:72px}
.problems li{padding:16px 0 16px 30px;border-top:1px solid var(--line);position:relative}
.problems li::before{content:"";position:absolute;left:0;top:28px;width:14px;height:2px;background:var(--coral)}

/* ways */
.ways-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.ways-grid > div{border-top:3px solid var(--coral);padding-top:22px}
.ways-grid h3{font-size:19px;margin-bottom:10px}
.ways-grid p{color:var(--soft);margin:0;font-size:16px}

/* cases */
.case{display:grid;grid-template-columns:1fr 1.6fr;gap:72px;padding:44px 0;border-top:1px solid var(--line)}
.case:last-child{border-bottom:1px solid var(--line)}
.case h3{font-size:24px}
.case .who{color:var(--grey);font-size:15px;margin-top:8px}
.case .body p:last-child{margin:0}
.case .what{margin-top:18px;padding-left:18px;border-left:3px solid var(--coral);color:var(--navy)}

/* note */
.note{max-width:46em;padding:22px 26px;background:var(--cream);border-left:3px solid var(--navy);margin-top:40px}
.note p:last-child{margin:0}

/* statement */
.statement p{font-size:clamp(22px,2.6vw,30px);font-weight:300;line-height:1.45;max-width:30em;margin:0}

/* about */
.prose{max-width:40em}
.prose h2{font-size:clamp(26px,3vw,34px);margin:56px 0 18px}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--soft)}
.about-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:72px;align-items:start}

/* placeholder (security) */
.placeholder{display:block;margin-top:12px;padding:12px 16px;background:#FFF6D6;border:1px dashed #D9B84A;color:var(--navy);font-size:15px}
.draft-banner{background:#FFF6D6;border-bottom:1px solid #D9B84A;padding:10px 0;font-size:14px;color:var(--navy)}

/* contact */
.contact .wrap{display:grid;grid-template-columns:.8fr 1.4fr;gap:72px;align-items:center}
.contact img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.contact h2{font-size:clamp(32px,4vw,48px);letter-spacing:-.02em}
.contact .lede{margin:20px 0 32px;max-width:32em}
.lines{list-style:none;padding:0;margin:32px 0 0;font-size:16px}
.lines li{padding:12px 0;border-top:1px solid var(--line);display:flex;gap:20px}
.lines li:last-child{border-bottom:1px solid var(--line)}
.lines span{color:var(--grey);min-width:90px}
.lines a{text-decoration:none;font-weight:400}
.lines a:hover{color:var(--coral)}

/* footer */
footer.site{background:var(--cream);padding:56px 0 40px;font-size:14px;color:var(--grey)}
.foot{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:48px;margin-bottom:40px}
footer.site .word{font-weight:600;color:var(--navy);font-size:20px;display:block;margin-bottom:8px}
footer.site h3{font-size:14px;color:var(--navy);margin-bottom:10px}
footer.site ul{list-style:none;padding:0;margin:0}
footer.site li{margin:4px 0}
footer.site a{text-decoration:none}
footer.site a:hover{color:var(--coral)}
.legal{border-top:1px solid var(--line);padding-top:20px;font-size:13px}

@media (max-width:1000px){.ways-grid{grid-template-columns:1fr 1fr}.services{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
  body{font-size:16px}
  .top nav > a:not(.talk),.top nav .menu{display:none}
  .brand .tag{display:none}
  .hero{padding:16px 0 72px}
  .page-hero{padding:24px 0 48px}
  .hero .wrap,.sec-head,.case,.contact .wrap,.about-grid{grid-template-columns:1fr;gap:32px}
  .portrait{max-width:420px;margin-left:18px}
  .grid2,.problems,.services{grid-template-columns:1fr}
  section{padding:72px 0}
  .contact img{max-width:340px}
  .foot{grid-template-columns:1fr;gap:28px}
}
@media (max-width:560px){.ways-grid{grid-template-columns:1fr}}

/* utility strip + services bar */
.utility{background:var(--navy);color:#C9CCD2;font-size:13.5px}
.utility .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:8px;padding-bottom:8px}
.utility a{color:var(--white);text-decoration:none;font-weight:400}
.utility a:hover{color:#F5C9BF}
.top{padding:20px 0}
.svcbar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}
.svcbar .wrap{display:flex;gap:0;overflow-x:auto;scrollbar-width:none}
.svcbar .wrap::-webkit-scrollbar{display:none}
.svcbar a{flex:1;text-align:center;white-space:nowrap;text-decoration:none;font-size:15px;font-weight:400;padding:14px 18px;border-bottom:2px solid transparent;color:var(--navy)}
.svcbar a:hover{color:var(--coral)}
.svcbar a[aria-current="page"]{color:var(--coral);border-bottom-color:var(--coral)}
@media (max-width:860px){
  .utility span{display:none}
  .utility .wrap{justify-content:center}
  .svcbar a{flex:none;font-size:14px;padding:12px 14px}
}
