/* Template layout layer: containers, shared grid and accessible defaults. */
:root { --ink:#142e2b; --teal:#007f82; --dark:#093f3a; --mint:#d9f4e8; --paper:#f7faf7; --soft:#eff6f2; --muted:#526562; --line:#d9e5df; --white:#fff; --radius:22px; --body:'DM Sans',Arial,sans-serif; --heading:'Manrope',Arial,sans-serif; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:115px; -webkit-text-size-adjust:100%; }
body { margin:0; font:400 18px/1.65 var(--body); color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; }
[hidden] { display:none!important; }
img,svg { display:block; max-width:100%; }
img { height:auto; }
a { color:inherit; text-decoration:none; text-underline-offset:5px; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; color:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button { border:0; background:none; padding:0; }
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:3px solid #008f96; outline-offset:5px; }
input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid #9ce5d5; outline-offset:2px; }
p,h1,h2,h3,h4,ul,ol,blockquote,figure { margin:0; }
p + p { margin-top:18px; }
ul { padding-left:24px; }
h1,h2,h3,h4 { font-family:var(--heading); font-weight:750; }
h1 { font-size:clamp(42px,4.8vw,72px); line-height:1.09; letter-spacing:-.052em; }
h2 { font-size:clamp(34px,3.65vw,52px); line-height:1.14; letter-spacing:-.048em; }
h3 { font-size:24px; line-height:1.3; letter-spacing:-.025em; }
em { font-style:normal; color:var(--teal); }
.container { width:min(1320px,calc(100% - clamp(40px,7.6vw,112px))); margin-inline:auto; }
.section { padding:100px 0; }
.split,.grid-2 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:80px; }
.row { display:flex; flex-wrap:wrap; margin-inline:-12px; }
.row > * { padding-inline:12px; }
.col-lg-6 { width:50%; }
.row-2 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
.full-width { width:100%; }
.icon { width:22px; height:22px; flex:0 0 22px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:1000; top:-100px; left:20px; background:#fff; color:var(--dark); padding:12px 20px; border:2px solid var(--dark); }
.skip-link:focus { top:12px; }
::selection { background:#a5e9d8; color:#082e2a; }
