@font-face{font-family:"Founders Grotesk";src:url("fonts/FoundersGrotesk-Regular.otf") format("opentype");font-weight:400;font-display:swap}
@font-face{font-family:"Founders Grotesk";src:url("fonts/FoundersGrotesk-Medium.otf") format("opentype");font-weight:500;font-display:swap}
@font-face{font-family:"Flecha M";src:url("fonts/FlechM.ttf") format("truetype");font-weight:400;font-display:swap}

:root{
  --font-sans:"Founders Grotesk","Helvetica Neue",Arial,sans-serif;
  --font-serif:"Flecha M","Times New Roman",Georgia,serif;
  --bg:#E9EDEF;--surface:#fff;--elevated:#F4F4F4;--ink:#262933;--ink-hover:#3D414D;
  --muted:#6B707D;--subtle:#A3A8B3;--line:#D3DBDE;
  --wine:#911A46;--wine-hover:#731336;--mist:#C5F0F7;--sand:#E9E7DB;--blush:#FFDEDE;--blue:#3898EC;
  --text-display:2.75rem;--text-h1:2.5rem;--text-h2:2rem;--text-h3:1.5rem;--text-h4:1.25rem;--text-base:1rem;--text-sm:1rem;--text-xs:1rem;--text-label:.625rem;
  --s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.25rem;--s6:1.5rem;--s8:2rem;--s10:2.5rem;--s12:3rem;--s16:4rem;--s24:6rem;
  --pad:var(--s5);--rail:320px;--bar:64px;
  --fast:120ms;--base:200ms;--ease:cubic-bezier(.16,1,.3,1);
}
@media (min-width:768px){:root{--text-display:4.5rem;--text-h1:3.5rem;--text-h2:2.5rem;--text-h3:1.75rem;--text-h4:1.375rem;--text-base:1.0625rem;--text-sm:1rem;--pad:var(--s8)}}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
p{text-wrap:pretty}
ul[role="list"]{list-style:none}
:focus{outline:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

h1,h2,h3,.serif{font-family:var(--font-serif);font-weight:400;text-wrap:balance}
h1{font-size:var(--text-h1);line-height:1.02;letter-spacing:-.02em}
h2{font-size:var(--text-h2);line-height:1.05;letter-spacing:-.02em}
h3{font-size:var(--text-h3);line-height:1.15;letter-spacing:-.01em}
h4{font-family:var(--font-sans);font-weight:400;font-size:var(--text-h4);line-height:1.25}
.display{font-size:var(--text-display);line-height:1;letter-spacing:-.025em}
.lead{font-family:var(--font-serif);font-size:var(--text-h3);line-height:1.2;letter-spacing:-.01em;max-width:34ch}
.muted{color:var(--muted)}
.label{font-size:var(--text-label);line-height:1.5;letter-spacing:.1em;text-transform:uppercase;color:var(--subtle);font-variant-numeric:tabular-nums}
.small{font-size:var(--text-sm);line-height:1.45;letter-spacing:.01em}
.placeholder{color:var(--subtle);border-bottom:1px dashed var(--subtle);align-self:flex-start;width:max-content}

.layout{display:flex;align-items:flex-start;min-height:100vh}
main{flex:1;min-width:0}

.rail{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--line)}
.rail-top{height:var(--bar);display:flex;align-items:center;justify-content:space-between;padding:0 var(--s5)}
.wordmark{display:inline-flex;align-items:center;gap:.28em;font-family:var(--font-serif);font-weight:400;font-size:24px;line-height:1;letter-spacing:-.02em}
.wordmark-f{width:32px;height:32px;margin-right:4px}
.wordmark:hover{text-decoration:none}
.monogram-wrap{display:none}
.monogram-wrap{display:flex;flex:1;min-height:0;align-items:center;justify-content:center}
.monogram{width:160px;height:160px;color:var(--ink);overflow:visible;transform-origin:center;will-change:transform,opacity}
.rail-nav{will-change:transform}
.menu-toggle{display:flex;align-items:center;gap:var(--s3);background:none;border:0;cursor:pointer;font-size:var(--text-sm);font-weight:500;height:44px;padding:0 var(--s2)}
.glyph{position:relative;width:18px;height:12px;display:inline-block;transition:transform var(--base) var(--ease)}
.glyph::before,.glyph::after{content:"";position:absolute;background:currentColor}
.glyph::before{left:0;top:50%;width:14px;height:1px}
.glyph::after{right:0;top:0;width:1px;height:12px}
.nav-open .glyph{transform:rotate(90deg)}
.rail-panel{display:none;position:fixed;top:var(--bar);left:0;right:0;bottom:0;background:var(--bg);padding:var(--s5);flex-direction:column;gap:var(--s8);overflow:auto}
.nav-open .rail-panel{display:flex}
.nav-open{overflow:hidden}
.rail-nav ul{display:flex;flex-direction:column}
.rail-nav li{border-top:1px solid var(--line)}
.rail-nav li:last-child{border-bottom:1px solid var(--line)}
.rail-nav a{display:flex;justify-content:space-between;align-items:baseline;padding:var(--s3) 0;color:var(--muted);transition:color var(--fast) linear}
.rail-nav a:hover,.rail-nav a[aria-current="page"]{color:var(--ink);text-decoration:none}
.rail-nav a[aria-current="page"]{font-weight:500}
.rail-nav a .label{color:var(--subtle)}
.rail-foot{display:flex;flex-direction:column;gap:var(--s4)}
main{padding-top:var(--bar)}

@media (min-width:1024px){
  .rail{position:sticky;height:100vh;width:var(--rail);flex:none;right:auto;border-bottom:0;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:var(--s6)}
  .rail-top{height:auto;padding:0}
  .wordmark{flex-direction:column;align-items:flex-start;gap:0;font-size:30px;line-height:.95}
  .wordmark-f{display:none}
  .wordmark span:last-child{padding-left:1.35em}
  .monogram{width:200px;height:200px}
  .menu-toggle{display:none}
  .rail-panel{display:flex;position:static;flex:1;min-height:0;padding:0;margin-top:var(--s6);overflow:visible;gap:var(--s8)}
  main{padding-top:0}
}

.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:44px;padding:0 var(--s4);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;border:1px solid transparent;background:var(--ink);color:#fff;transition:background-color var(--fast) linear,transform var(--fast) var(--ease)}
.btn:hover{text-decoration:none;background:var(--ink-hover)}
.btn:active{transform:translateY(1px)}
.btn--lg{height:56px;padding:0 var(--s6)}
.btn--secondary{background:var(--wine)}
.btn--secondary:hover{background:var(--wine-hover)}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--outline:hover{background:var(--elevated)}
.btn--block{width:100%;min-height:96px;height:auto;padding:var(--s5);align-items:flex-end;justify-content:flex-start;white-space:normal;text-align:left}
.bracket::after{content:"";position:absolute;top:var(--s4);right:var(--s4);width:20px;height:20px;border-top:1px solid currentColor;border-right:1px solid currentColor;transition:transform var(--base) var(--ease)}
.bracket:hover::after{transform:translate(2px,-2px)}

.sprite{display:none}
section,.page-hero{border-bottom:1px solid var(--line)}
.page-hero{padding:var(--s16) var(--pad) var(--s12);display:flex;flex-direction:column;gap:var(--s8)}
.page-hero .lead{align-self:flex-start;margin-top:var(--s4)}
.page-hero p.intro{max-width:56ch;color:var(--muted)}

.hero{display:flex;flex-direction:column;min-height:calc(100vh - var(--bar))}
.hero-text{display:flex;flex-direction:column;gap:var(--s8);padding:var(--s12) var(--pad)}
.hero-intro{max-width:52ch;color:var(--muted)}
.hero-text h1{font-size:calc(var(--text-display) * 1.15);max-width:none}
.hero-media{flex:1;min-height:280px;aspect-ratio:16/9;padding:0;border-top:1px solid var(--line)}
@media (min-width:768px){
  .hero-text{padding:var(--s16) var(--pad) var(--s12)}
  .hero-media{aspect-ratio:auto;min-height:360px}
}
@media (min-width:1024px){.hero{min-height:100vh}}
.media{background:var(--sand);display:flex;align-items:flex-end;padding:var(--s4);overflow:hidden;position:relative}
.media img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover;filter:saturate(.7) contrast(.95);transform:translateY(var(--shift,0));will-change:transform}
@media (prefers-reduced-motion:reduce){.media img{top:0;height:100%;transform:none}}
.media.hero-media img{filter:none}
.media--portrait{aspect-ratio:4/5;width:100%;max-width:360px}
.media--wide{aspect-ratio:16/9}
.media--blush{background:var(--blush)}

.split{display:grid;gap:var(--s8);padding:var(--s16) var(--pad) var(--s12)}
.split .copy{display:flex;flex-direction:column;gap:var(--s5);color:var(--muted);max-width:52ch}
.split h2{max-width:14ch}
@media (min-width:768px){
  .split{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .split .copy{align-self:end}
  .split--end .copy{align-self:end}
}
.sec-head{padding:var(--s16) var(--pad) var(--s12);display:flex;flex-direction:column;gap:var(--s6)}
.sec-head h2{max-width:16ch}
.sec-head p{max-width:56ch;color:var(--muted)}
@media (min-width:768px){.sec-head{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:var(--s8)}}

.cells{display:grid;border-top:1px solid var(--line)}
.cell{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:var(--s10);padding:var(--pad);border-bottom:1px solid var(--line);transition:background-color var(--fast) linear}
.cell:last-child{border-bottom:0}
.cell .label{display:block}
.cell-body{display:flex;flex-direction:column;gap:var(--s3)}
.cell-body p{color:var(--muted);font-size:var(--text-sm);line-height:1.45}
.cell--accent{background:var(--mist)}
.cell--accent .cell-body p{color:var(--ink)}
.cell--surface{background:var(--surface)}
.cell--sand{background:var(--sand)}
a.cell:hover{background:var(--elevated);text-decoration:none}
a.cell:hover h3,a.cell:hover h4{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
@media (min-width:768px){
  .cells--2{grid-template-columns:1fr 1fr}
  .cells--2 .cell:nth-child(odd){border-right:1px solid var(--line)}
  .cells--2 .cell:nth-last-child(2):nth-child(odd){border-bottom:0}
  .cells--3{grid-template-columns:repeat(3,1fr)}
  .cells--3 .cell{border-bottom:0;border-right:1px solid var(--line)}
  .cells--3 .cell:last-child{border-right:0}
  .cells--4{grid-template-columns:repeat(4,1fr)}
  .cells--4 .cell{border-bottom:0;border-right:1px solid var(--line)}
  .cells--4 .cell:last-child{border-right:0}
}
.cell--tall{min-height:360px}

.sec-link{display:flex;justify-content:flex-end;padding:var(--s5) var(--pad);border-top:1px solid var(--line)}
.sec-link a{display:inline-flex;align-items:baseline;gap:var(--s3)}
.arrow{display:inline-block;width:18px;height:1px;background:currentColor;position:relative;top:-4px}
.arrow::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)}

.contact-block{display:grid}
.contact-block .left{padding:var(--s16) var(--pad);display:flex;flex-direction:column;justify-content:space-between;gap:var(--s8);border-bottom:1px solid var(--line)}
.contact-block .left p{color:var(--muted);max-width:44ch}
.contact-block .right{display:flex;flex-direction:column}
.office{display:grid;flex:1}
.office div{padding:var(--pad);display:flex;flex-direction:column;gap:var(--s2);border-bottom:1px solid var(--line)}
.office .placeholder,.office a{align-self:flex-start}
@media (min-width:768px){
  .contact-block{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .contact-block .left{border-bottom:0;border-right:1px solid var(--line)}
  .office{grid-template-columns:1fr 1fr}
  .office div:first-child{border-right:1px solid var(--line)}
}

.case{border-bottom:1px solid var(--line)}
.case:last-of-type{border-bottom:0}
.case-head{padding:var(--s16) var(--pad) var(--s10);display:flex;flex-direction:column;gap:var(--s5)}
.case-head h2{max-width:20ch}
.case-grid{display:grid;border-top:1px solid var(--line)}
.case-grid>div{padding:var(--pad);display:flex;flex-direction:column;gap:var(--s4);border-bottom:1px solid var(--line)}
.case-grid>div:last-child{border-bottom:0}
.case-grid p,.case-grid li{color:var(--muted);font-size:var(--text-sm);line-height:1.45}
.case-grid ul{display:flex;flex-direction:column;gap:var(--s3)}
.case-grid li{padding-top:var(--s3);border-top:1px solid var(--line)}
.case-grid h4{margin-top:var(--s2)}
@media (min-width:1024px){
  .case-grid{grid-template-columns:repeat(3,1fr)}
  .case-grid>div{border-bottom:0;border-right:1px solid var(--line)}
  .case-grid>div:last-child{border-right:0}
}
.case-grid .outcomes{background:var(--surface)}

.form-block{display:grid}
.form-block .left{padding:var(--s16) var(--pad);display:flex;flex-direction:column;gap:var(--s6);border-bottom:1px solid var(--line)}
.form-block .left ul{display:flex;flex-direction:column;color:var(--muted);font-size:var(--text-sm);line-height:1.45}
.form-block .left li{padding:var(--s3) 0;border-top:1px solid var(--line)}
.form-block .left p{color:var(--muted);max-width:44ch}
.form{padding:var(--s16) var(--pad);display:grid;gap:var(--s8) var(--s6);align-content:start}
.field{display:flex;flex-direction:column;gap:var(--s2)}
.field label{font-size:var(--text-sm);letter-spacing:.01em;color:var(--muted);line-height:1.4}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);padding:var(--s3) 0;height:44px;transition:border-color var(--fast) linear,box-shadow var(--fast) linear}
.field textarea{height:auto;resize:vertical;line-height:1.5}
.field input:hover,.field textarea:hover{border-color:var(--muted)}
.field input:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 1px 0 0 var(--blue)}
.field--full{grid-column:1 / -1}
.honey{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-foot{grid-column:1 / -1;display:flex;justify-content:flex-start}
@media (min-width:768px){
  .form-block{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .form-block .left{border-bottom:0;border-right:1px solid var(--line)}
  .form{grid-template-columns:1fr 1fr}
}

.cta-row{display:flex;flex-wrap:wrap;gap:var(--s3);padding:var(--s12) var(--pad)}

footer{display:grid;border-top:0}
footer>div{padding:var(--s6) var(--pad);display:flex;flex-direction:column;gap:var(--s2);border-bottom:1px solid var(--line)}
footer>div:last-child{border-bottom:0}
footer .small{color:var(--muted)}
footer .wordmark{font-size:24px;flex-direction:row;gap:.28em;line-height:1}
footer .wordmark span:last-child{padding-left:0}
@media (min-width:768px){
  footer{grid-template-columns:2fr 1fr 1fr}
  footer>div{border-bottom:0;border-right:1px solid var(--line)}
  footer>div:last-child{border-right:0}
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:0s!important}}

.head{display:flex;flex-direction:column;gap:var(--s5);align-items:flex-start}
.iso,.icon{width:40px;height:40px;flex:none;color:var(--ink);overflow:visible;transition:transform var(--base) var(--ease)}
.icon{fill:none;stroke:currentColor;stroke-width:1;stroke-linejoin:round;stroke-linecap:round}
.cell-body .icon{margin-bottom:var(--s2)}
.cell:hover .icon,.head:hover .iso,.case-head:hover .iso{transform:translate(2px,-2px)}

.is-loading{overflow:hidden}
.preloader{position:fixed;inset:0;z-index:1000;background:var(--bg);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s6);transition:opacity 400ms var(--ease),visibility 0s linear 400ms}
.preloader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.preloader-mark{width:120px;height:120px;overflow:visible}
.preloader-progress{position:absolute;left:var(--pad);right:var(--pad);bottom:var(--pad);display:flex;align-items:center;gap:var(--s4)}
.preloader-bar{flex:1;height:1px;background:var(--line);position:relative}
.preloader-bar::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(var(--p,0));transform-origin:left;transition:transform 200ms linear}
.preloader-count{font-size:var(--text-label);letter-spacing:.1em;color:var(--muted);font-variant-numeric:tabular-nums;min-width:3ch;text-align:right}
.preloader-word{display:flex;flex-direction:column;font-family:var(--font-serif);font-size:30px;line-height:.95;letter-spacing:-.02em;opacity:0;transform:translateY(8px);transition:opacity 500ms var(--ease) 150ms,transform 500ms var(--ease) 150ms}
.preloader.is-ready .preloader-word{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.preloader{display:none}.is-loading{overflow:auto}}
.preloader-word span:last-child{padding-left:1.35em}

.policy-section{display:grid;gap:var(--s5);padding:var(--s12) var(--pad)}
.policy-section h2{font-size:var(--text-h3);max-width:18ch}
.policy-body{display:flex;flex-direction:column;gap:var(--s4);max-width:64ch;color:var(--muted)}
.policy-body h3{font-family:var(--font-sans);font-size:var(--text-h4);color:var(--ink)}
.policy-body ul{display:flex;flex-direction:column}
.policy-body li{padding:var(--s3) 0;border-top:1px solid var(--line)}
.policy-body li:last-child{border-bottom:1px solid var(--line)}
.policy-body a{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.policy-body a:hover{color:var(--blue)}
@media (min-width:768px){.policy-section{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s8);padding:var(--s16) var(--pad)}}
footer a.small{color:var(--muted)}

.link-btn{background:none;border:0;padding:0;cursor:pointer;text-align:left;color:var(--muted)}
.link-btn:hover{text-decoration:underline;text-underline-offset:4px}

.notfound{position:relative;min-height:calc(100vh - var(--bar));display:flex;align-items:center;padding:var(--pad);overflow:hidden}
.notfound-mark{position:absolute;right:-5%;top:50%;width:min(80vw,720px);height:min(80vw,720px);transform:translateY(-50%);color:var(--ink);opacity:.28;overflow:visible;pointer-events:none}
.notfound-copy{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:var(--s5);max-width:40ch}
.notfound-copy p{color:var(--muted)}
.notfound-copy .btn{margin-top:var(--s3)}
@media (min-width:1024px){.notfound{min-height:100vh}}

.cookie{position:fixed;left:var(--s4);right:var(--s4);bottom:var(--s4);z-index:900;background:var(--surface);border:1px solid var(--line);padding:var(--s6);display:flex;flex-direction:column;gap:var(--s5);max-height:calc(100vh - var(--s8));overflow:auto;transform:translateY(16px);opacity:0;visibility:hidden;transition:opacity var(--base) var(--ease),transform var(--base) var(--ease),visibility 0s linear var(--base)}
.cookie.is-open{transform:none;opacity:1;visibility:visible;transition-delay:0s}
.cookie h2{font-size:var(--text-h3)}
.cookie p{color:var(--muted);font-size:var(--text-sm);line-height:1.45}
.cookie-head{display:flex;flex-direction:column;gap:var(--s3)}
.cookie-list{display:flex;flex-direction:column}
.cookie-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s5);padding:var(--s4) 0;border-top:1px solid var(--line)}
.cookie-row:last-child{border-bottom:1px solid var(--line)}
.cookie-row div{display:flex;flex-direction:column;gap:2px}
.cookie-row strong{font-weight:500}
.switch{position:relative;flex:none;width:40px;height:22px;margin-top:2px;cursor:pointer}
.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.switch-track{position:absolute;inset:0;border:1px solid var(--ink);background:transparent;transition:background-color var(--fast) linear}
.switch-track::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;background:var(--ink);transition:transform var(--base) var(--ease),background-color var(--fast) linear}
.switch input:checked+.switch-track{background:var(--ink)}
.switch input:checked+.switch-track::after{transform:translateX(18px);background:var(--surface)}
.switch input:focus-visible+.switch-track{outline:2px solid var(--blue);outline-offset:2px}
.switch input:disabled+.switch-track{opacity:.4;cursor:not-allowed}
.cookie-actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.cookie-actions a{font-size:var(--text-sm);color:var(--muted);margin-left:auto}
@media (min-width:600px){.cookie{left:auto;width:440px;right:var(--s6);bottom:var(--s6)}}
@media (min-width:1024px){.cookie{right:var(--s8);bottom:var(--s8)}}

.award{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s6);padding:var(--s12) var(--pad)}
.award img{width:200px;height:auto}
.award-text{font-family:var(--font-serif);font-size:var(--text-h3);line-height:1.15;letter-spacing:-.01em;max-width:22ch}
@media (min-width:768px){.award{gap:var(--s8);padding:var(--s16) var(--pad)}.award img{width:240px}}

@media (hover:hover) and (pointer:fine){
  html,body,a,button,input,textarea,label,.switch,.switch input{cursor:none}
  .cursor{position:fixed;left:0;top:0;width:10px;height:10px;background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:9999;transition:width var(--base) var(--ease),height var(--base) var(--ease),opacity var(--fast) linear}
  .cursor.is-hidden{opacity:0}
  .cursor.is-link{width:16px;height:16px}
}
@media (prefers-reduced-motion:reduce){.cursor{transition:none}}
