/* Cavallo & Co webfonts.
   SUBSTITUTION: brand spec calls for "TWK Everett" (licensed, not bundled).
   Instrument Sans is the nearest Google Fonts grotesk; swap in Everett WOFF2s
   via @font-face here when license files are provided. No mono fonts — by brand rule. */
@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap');
:root{
  /* Primary — Ocean Blue */
  --primary-50:#EFF8FF; --primary-100:#DBEEFE; --primary-200:#C0E6FF; --primary-300:#8ECDFF;
  --primary-400:#63B4FF; --primary-500:#4DA2FF; --primary-600:#2E86F0; --primary-700:#1F6CD0;
  --primary-800:#1E57A6; --primary-900:#173E75; --primary-950:#011829;
  /* Secondary — Aqua */
  --secondary-100:#D8F7FB; --secondary-300:#7DE7F4; --secondary-400:#3FD5E8;
  --secondary-500:#17BCD3; --secondary-600:#0E93AC; --secondary-700:#0F7186;
  /* Neutral — navy-tinted slate */
  --neutral-0:#FFFFFF; --neutral-50:#F6F9FC; --neutral-100:#EDF2F7; --neutral-200:#DCE4EE;
  --neutral-300:#C2CEDC; --neutral-400:#93A5BA; --neutral-500:#64788F; --neutral-600:#485B70;
  --neutral-700:#334252; --neutral-800:#1D2B3A; --neutral-900:#0E1B29; --neutral-950:#030F1C;
  /* Status */
  --success-500:#16A34A; --success-500-dark:#34D399; --success-subtle:#E7F8EE; --success-subtle-dark:#0B2E20;
  --warning-500:#D97706; --warning-500-dark:#FBBF24; --warning-subtle:#FDF3E1; --warning-subtle-dark:#33260A;
  --error-500:#DC2626; --error-500-dark:#F87171; --error-subtle:#FDEAEA; --error-subtle-dark:#3A1212;
  /* Semantic aliases — light (default) */
  color-scheme:light;
  --color-bg-page:#F6F9FC; --color-bg-surface:#FFFFFF; --color-bg-elevated:#FFFFFF; --color-bg-subtle:#EDF2F7;
  --color-text-primary:#0E1B29; --color-text-secondary:#64788F; --color-text-placeholder:#93A5BA;
  --color-text-inverse:#FFFFFF; --color-text-link:#2E86F0;
  --color-border-default:#DCE4EE; --color-border-strong:#C2CEDC;
  --color-action-primary:#2E86F0; --color-action-primary-hover:#1F6CD0; --color-action-primary-active:#1E57A6;
  --color-focus-ring:#4DA2FF; --color-overlay:rgb(1 24 41 / 0.60);
  --color-status-success:#16A34A; --color-status-success-bg:#E7F8EE;
  --color-status-warning:#D97706; --color-status-warning-bg:#FDF3E1;
  --color-status-error:#DC2626; --color-status-error-bg:#FDEAEA;
  --shadow-elevated:0 4px 24px rgb(1 24 41 / 0.08);
}
.dark{
  color-scheme:dark;
  --color-bg-page:#011829; --color-bg-surface:#0E1B29; --color-bg-elevated:#1D2B3A; --color-bg-subtle:#16283A;
  --color-text-primary:#FFFFFF; --color-text-secondary:#93A5BA; --color-text-placeholder:#64788F;
  --color-text-inverse:#011829; --color-text-link:#63B4FF;
  --color-border-default:#24384C; --color-border-strong:#334252;
  --color-action-primary:#4DA2FF; --color-action-primary-hover:#63B4FF; --color-action-primary-active:#2E86F0;
  --color-focus-ring:#8ECDFF; --color-overlay:rgb(1 24 41 / 0.78);
  --color-status-success:#34D399; --color-status-success-bg:#0B2E20;
  --color-status-warning:#FBBF24; --color-status-warning-bg:#33260A;
  --color-status-error:#F87171; --color-status-error-bg:#3A1212;
  --shadow-elevated:0 4px 24px rgb(0 0 0 / 0.4);
}
:root{
  /* No mono font anywhere — brand rule. */
  --font-display:"Instrument Sans","Inter",ui-sans-serif,system-ui,sans-serif;
  --font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --text-xs:0.75rem; --text-sm:0.875rem; --text-base:1rem; --text-lg:1.125rem; --text-xl:1.25rem;
  --text-2xl:1.5rem; --text-3xl:2rem; --text-4xl:2.5rem; --text-5xl:3.5rem; --text-6xl:4.5rem; --text-7xl:6rem;
  --font-regular:400; /* @kind other */
  --font-medium:500; /* @kind other */
  --font-semibold:600; /* @kind other */
  --font-bold:700; /* @kind other */
}
/* Type scale classes */
.display-2xl{font-family:var(--font-display);font-size:6rem;line-height:1.02;letter-spacing:-0.03em;font-weight:500}
.display-xl{font-family:var(--font-display);font-size:4.5rem;line-height:1.05;letter-spacing:-0.025em;font-weight:500}
.display-lg{font-family:var(--font-display);font-size:3.5rem;line-height:1.08;letter-spacing:-0.02em;font-weight:500}
.heading-xl{font-family:var(--font-display);font-size:2.5rem;line-height:1.15;letter-spacing:-0.015em;font-weight:600}
.heading-lg{font-family:var(--font-sans);font-size:2rem;line-height:1.2;letter-spacing:-0.01em;font-weight:600}
.heading-md{font-family:var(--font-sans);font-size:1.5rem;line-height:1.3;letter-spacing:-0.005em;font-weight:600}
.heading-sm{font-family:var(--font-sans);font-size:1.25rem;line-height:1.4;font-weight:600}
.body-lg{font-family:var(--font-sans);font-size:1.125rem;line-height:1.6;font-weight:400}
.body-md{font-family:var(--font-sans);font-size:1rem;line-height:1.55;font-weight:400}
.body-sm{font-family:var(--font-sans);font-size:0.875rem;line-height:1.5;font-weight:400}
.caption{font-family:var(--font-sans);font-size:0.75rem;line-height:1.4;letter-spacing:0.01em;font-weight:500}
:root{
  --space-0:0px; --space-px:1px; --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px;
  --space-16:64px; --space-20:80px; --space-24:96px; --space-32:128px;
  --container-max:1280px; --container-prose:768px;
}
:root{
  --radius-none:0px; --radius-sm:6px; --radius-md:10px; --radius-lg:16px;
  --radius-xl:24px; --radius-2xl:32px; --radius-full:9999px;
}
:root{
  --z-base:0; /* @kind other */
  --z-raised:10; /* @kind other */
  --z-dropdown:20; /* @kind other */
  --z-sticky:30; /* @kind other */
  --z-overlay:40; /* @kind other */
  --z-modal:50; /* @kind other */
  --z-popover:60; /* @kind other */
  --z-toast:70; /* @kind other */
  --z-tooltip:80; /* @kind other */
  --z-max:9999; /* @kind other */
}
:root{
  --duration-instant:100ms; /* @kind other */
  --duration-fast:150ms; /* @kind other */
  --duration-base:200ms; /* @kind other */
  --duration-slow:250ms; /* @kind other */
  --duration-reveal:450ms; /* @kind other */
  --ease-out:cubic-bezier(0.16,1,0.3,1); /* @kind other */
  --ease-in:cubic-bezier(0.7,0,0.84,0); /* @kind other */
  --ease-inout:cubic-bezier(0.65,0,0.35,1); /* @kind other */
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.55;background:var(--color-bg-page);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--color-text-link);text-decoration:none;text-underline-offset:4px}
a:hover{text-decoration:underline}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:inherit}
:where(a,button,input,select,textarea,[tabindex]):focus:not(:focus-visible){outline:none}
.container{width:100%;max-width:var(--container-max,1280px);margin-inline:auto;padding-inline:var(--space-4)}
@media (min-width:640px){.container{padding-inline:var(--space-6)}}
@media (min-width:1024px){.container{padding-inline:var(--space-8)}}
.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}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.divider{border:0;border-top:1px solid var(--color-border-default)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}
body.tx-dots{background-image:radial-gradient(rgb(255 255 255 / 0.07) 1px, transparent 1px);background-size:22px 22px}
body.tx-grid{background-image:linear-gradient(rgb(255 255 255 / 0.045) 1px, transparent 1px),linear-gradient(90deg, rgb(255 255 255 / 0.045) 1px, transparent 1px);background-size:56px 56px}
body.tx-hatch{background-image:repeating-linear-gradient(45deg, rgb(255 255 255 / 0.035) 0, rgb(255 255 255 / 0.035) 1px, transparent 1px, transparent 12px)}
.site-header{position:sticky;top:0;z-index:var(--z-sticky);background:rgb(1 24 41 / 0.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border-default)}
.site-header .container{display:flex;align-items:center;gap:var(--space-6);height:68px}
.wordmark{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:500;letter-spacing:-0.02em;font-size:21px;color:var(--color-text-primary);text-decoration:none}
.wordmark img{width:26px;height:26px;display:block}
.wordmark:hover{text-decoration:none}
.site-nav{display:none;margin-left:auto;align-items:center;gap:var(--space-6)}
.site-nav a{font-size:14px;font-weight:500;color:var(--color-text-secondary)}
.site-nav a:hover{color:var(--color-text-primary);text-decoration:none}
.site-nav a[aria-current="page"]{color:var(--color-text-primary)}
.site-nav a.btn,.site-nav a.btn:hover{color:var(--color-text-inverse)}
.nav-toggle{margin-left:auto;background:none;border:1px solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-text-primary);font:inherit;font-size:13px;padding:6px 14px;cursor:pointer}
@media (min-width:800px){.site-nav{display:flex}.nav-toggle{display:none}}
.site-header.open .site-nav{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--color-bg-page);border-bottom:1px solid var(--color-border-default);padding:var(--space-5) var(--space-4) var(--space-6);gap:var(--space-4)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:500;border-radius:var(--radius-full);border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;height:44px;padding:0 22px;font-size:15px;background:var(--color-action-primary);color:var(--color-text-inverse);transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-instant) var(--ease-out)}
.btn:hover{background:var(--color-action-primary-hover);text-decoration:none}
.btn:active{transform:scale(0.98);background:var(--color-action-primary-active)}
.btn-outline{background:transparent;color:var(--color-text-primary);border-color:var(--color-border-strong)}
.btn-outline:hover{background:var(--color-bg-subtle)}
.btn-sm{height:34px;padding:0 var(--space-4);font-size:13px}
.hero{padding:var(--space-24) 0 var(--space-16)}
.hero-grid{display:grid;gap:var(--space-10);align-items:center}
@media (min-width:900px){.hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
.hero-media{min-height:260px}
@media (min-width:900px){.hero-media{min-height:340px}}
.hero-grid h1{font-size:clamp(2.5rem,1rem + 4.2vw,4.5rem)}
@media (min-width:800px){.hero{padding:var(--space-32) 0 var(--space-24)}}
.hero h1{font-family:var(--font-display);font-weight:500;font-size:clamp(2.5rem,1.2rem + 5.5vw,6rem);line-height:1.02;letter-spacing:-0.03em;margin:0;max-width:900px;text-wrap:pretty}
.hero .lede{font-size:18px;line-height:1.6;color:var(--color-text-secondary);max-width:560px;margin:var(--space-6) 0 0}
.hero .note{font-size:14px;color:var(--color-text-secondary);margin:var(--space-8) 0 0}
.section{padding:var(--space-16) 0}
@media (min-width:800px){.section{padding:var(--space-24) 0}}
.section.bordered{border-top:1px solid var(--color-border-default)}
.section h2{font-family:var(--font-display);font-size:clamp(1.75rem,1rem + 2.4vw,3.5rem);line-height:1.08;letter-spacing:-0.02em;font-weight:500;margin:0 0 var(--space-6);max-width:760px;text-wrap:pretty}
.prose{max-width:65ch;color:var(--color-text-secondary);font-size:17px;line-height:1.65}
.prose p{margin:0 0 var(--space-4)}
.prose p:last-child{margin-bottom:0}
.prose strong{color:var(--color-text-primary)}
.service-links{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-8)}
.cta{border-top:1px solid var(--color-border-default);padding:var(--space-20) 0}
.cta-grid{display:grid;gap:var(--space-10);align-items:center}
@media (min-width:900px){.cta-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.cta-media{min-height:280px}
.cta h2{font-family:var(--font-display);font-size:clamp(1.9rem,1rem + 3vw,3.5rem);line-height:1.1;letter-spacing:-0.02em;font-weight:500;margin:0 0 var(--space-4);max-width:680px;text-wrap:pretty}
.cta p{color:var(--color-text-secondary);max-width:560px;margin:0 0 var(--space-8);font-size:17px;line-height:1.6}
.card{background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:16px;padding:var(--space-6)}
.card h3{font-size:1.25rem;line-height:1.4;font-weight:600;margin:0 0 var(--space-3)}
.card ul{margin:0;padding-left:1.1em;color:var(--color-text-secondary);line-height:1.7;font-size:15px}
.two-col{display:grid;gap:var(--space-5);margin-top:var(--space-8)}
@media (min-width:700px){.two-col{grid-template-columns:1fr 1fr}}
.value-grid{display:grid;gap:var(--space-5);margin-top:var(--space-8)}
@media (min-width:700px){.value-grid{grid-template-columns:1fr 1fr}}
.value-grid p{margin:var(--space-2) 0 0;color:var(--color-text-secondary);font-size:15px;line-height:1.6}
.plain-list{list-style:none;margin:var(--space-6) 0 0;padding:0;max-width:560px}
.plain-list li{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-default);font-size:16px}
.plain-list li:first-child{border-top:1px solid var(--color-border-default)}
.clients-grid{display:grid;gap:var(--space-10);align-items:start}
@media (min-width:900px){.clients-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}.clients-grid .clients-media{margin-top:var(--space-8)}}
.clients-media{min-height:320px}
.strategy{padding:var(--space-16) 0;border-top:1px solid var(--color-border-default)}
.strategy:first-of-type{border-top:0}
.strategy .sub{font-size:19px;color:var(--color-text-primary);margin:0 0 var(--space-4);max-width:60ch;font-weight:500}
.case{padding:var(--space-16) 0;border-top:1px solid var(--color-border-default)}
.case h2{margin-bottom:var(--space-8)}
.case-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-5);border:1px solid var(--color-border-default);border-radius:16px;padding:var(--space-6);margin-bottom:var(--space-10)}
.case-meta dt{font-size:12px;letter-spacing:0.01em;font-weight:500;color:var(--color-text-secondary);margin:0}
.case-meta dd{margin:var(--space-1) 0 0;font-size:15px;font-weight:500}
.case h3{font-family:var(--font-display);font-size:1.6rem;letter-spacing:-0.01em;font-weight:500;margin:var(--space-10) 0 var(--space-4)}
.case h4{font-size:1.1rem;font-weight:600;margin:var(--space-6) 0 var(--space-2)}
.case ul{color:var(--color-text-secondary);line-height:1.7;font-size:16px;max-width:65ch;padding-left:1.2em;margin:var(--space-3) 0}
blockquote{margin:var(--space-8) 0 0;border-left:2px solid var(--color-action-primary);padding-left:var(--space-6);max-width:60ch}
blockquote p{font-family:var(--font-display);font-size:1.35rem;line-height:1.4;letter-spacing:-0.01em;margin:0 0 var(--space-3)}
blockquote footer{font-size:14px;color:var(--color-text-secondary)}
.contact-grid{display:grid;gap:var(--space-12);margin-top:var(--space-4)}
@media (min-width:900px){.contact-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}
form{display:flex;flex-direction:column;gap:var(--space-5)}
.field{display:flex;flex-direction:column;gap:var(--space-2)}
.field label{font-size:14px;font-weight:500}
.field input,.field textarea{background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:10px;color:var(--color-text-primary);font:inherit;font-size:15px;padding:12px 14px}
.field input::placeholder,.field textarea::placeholder{color:var(--color-text-placeholder)}
.field textarea{min-height:140px;resize:vertical}
.form-note{font-size:14px;color:var(--color-status-success);margin:0}
.office h2{font-size:1.5rem;margin-bottom:var(--space-5)}
.office ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3);color:var(--color-text-secondary);font-size:16px}
.split{display:grid;gap:var(--space-8)}
@media (min-width:800px){.split{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.split.centered{display:flex;justify-content:center;gap:var(--space-12);max-width:960px;margin-left:auto;margin-right:auto}.split>h2{margin-bottom:0}.split.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.split.flip>h2{order:2}.split.flip>.split-body{order:1}}
.stack-links{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}
@media (min-width:800px){.offset-right{margin-left:auto;max-width:720px}.offset-right .prose{margin-left:auto}}
.kicker{font-size:13px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--primary-400);margin:0 0 var(--space-4)}
.statement{font-family:var(--font-display);font-weight:500;font-size:clamp(1.5rem,1rem + 2vw,2.6rem);line-height:1.25;letter-spacing:-0.02em;max-width:26ch;margin:0}
.media-img{width:100%;height:100%;min-height:inherit;object-fit:cover;border-radius:16px;display:block}
.policy .prose h2{font-family:var(--font-display);font-size:1.6rem;letter-spacing:-0.01em;font-weight:500;color:var(--color-text-primary);margin:var(--space-10) 0 var(--space-4)}
.policy .prose h2:first-child{margin-top:0}
.policy .prose h3{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:var(--space-6) 0 var(--space-2)}
.cookie-banner{position:fixed;left:var(--space-4);right:var(--space-4);bottom:var(--space-4);z-index:var(--z-toast, 600);background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:16px;padding:var(--space-5);max-width:420px;box-shadow:0 12px 40px rgb(0 0 0 / 0.4)}
.cookie-banner p{margin:0 0 var(--space-4);font-size:14px;line-height:1.55;color:var(--color-text-secondary)}
.cookie-banner .cookie-actions{display:flex;gap:var(--space-3)}
.site-footer{border-top:1px solid var(--color-border-default);padding:var(--space-10) 0;margin-top:var(--space-16)}
.site-footer .container{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;justify-content:space-between;font-size:13px;color:var(--color-text-secondary)}
