/* Layout utilities (vendored from the original Tailwind build, colour rules removed).
   Colour lives only in tokens.css + components.css so both themes stay consistent. */
@font-face{font-family:sans;src:url(/fonts/Poppins_400-s.p.43zbiuwnnoiok.woff2)format("woff2");font-display:swap;font-weight:400}@font-face{font-family:sans;src:url(/fonts/Poppins_800-s.p.2mm3nq9i83l-m.woff2)format("woff2");font-display:swap;font-weight:800}@font-face{font-family:sans Fallback;src:local(Arial);ascent-override:92.83%;descent-override:30.94%;line-gap-override:8.84%;size-adjust:113.11%}
*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans), system-ui, sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:var(--font-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:.9375rem;line-height:1.875rem}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.wide{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:1.25rem;padding-right:1.25rem}.narrow{width:100%;max-width:860px;margin-left:auto;margin-right:auto;padding-left:1.25rem;padding-right:1.25rem}.section{padding-top:72px;padding-bottom:72px}@media (min-width:768px){.section{padding-top:100px;padding-bottom:100px}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-5{bottom:1.25rem}.left-\[-9999px\]{left:-9999px}.right-5{right:1.25rem}.top-0{top:0}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-auto{margin-top:auto;margin-bottom:auto}.mb-1{margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.\!table{display:table!important}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-video{aspect-ratio:16/9}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[51px\]{height:51px}.h-\[6px\]{height:6px}.h-\[86px\]{height:86px}.h-auto{height:auto}.h-full{height:100%}.min-h-\[450px\]{min-height:450px}.min-h-\[640px\]{min-height:640px}.min-h-\[70vh\]{min-height:70vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[100px\]{width:100px}.w-\[220px\]{width:220px}.w-\[260px\]{width:260px}.w-\[3px\]{width:3px}.w-auto{width:auto}.w-full{width:100%}.max-w-\[200px\]{max-width:200px}.max-w-\[460px\]{max-width:460px}.max-w-\[640px\]{max-width:640px}.max-w-\[900px\]{max-width:900px}.shrink-0{flex-shrink:0}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(4rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border-t{border-top-width:1px}.border-current{border-color:currentColor}.bg-cover{background-size:cover}.bg-center{background-position:50%}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.px-\[15px\]{padding-left:15px;padding-right:15px}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-\[72px\]{padding-top:72px;padding-bottom:72px}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-14{padding-bottom:3.5rem}.pb-20{padding-bottom:5rem}.pt-0{padding-top:0}.pt-6{padding-top:1.5rem}.pt-\[140px\]{padding-top:140px}.pt-\[146px\]{padding-top:146px}.pt-\[150px\]{padding-top:150px}.pt-\[160px\]{padding-top:160px}.text-center{text-align:center}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[21px\]{font-size:21px}.text-base{font-size:1rem;line-height:1.5rem}.text-card{font-size:1.3125rem;line-height:1.2}.text-hero{font-size:clamp(2.5rem,5.3vw,4.75rem);line-height:1.35}.text-page{font-size:clamp(2rem,3.5vw,3.125rem);line-height:1.3}.text-role{font-size:1.0625rem;line-height:1.2}.text-section{font-size:clamp(1.75rem,2.6vw,2.3125rem);line-height:1.25}.font-extrabold{font-weight:800}.font-normal{font-weight:400}.not-italic{font-style:normal}.leading-6{line-height:1.5rem}.leading-\[1\.5\]{line-height:1.5}.leading-\[70px\]{line-height:70px}.leading-none{line-height:1}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:.9375rem;line-height:1.875rem}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans), system-ui, sans-serif;font-weight:800}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.focus\:not-sr-only:focus{clip:auto;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:fixed:focus{position:fixed}.focus\:left-4:focus{left:1rem}.focus\:top-4:focus{top:1rem}.focus\:z-\[60\]:focus{z-index:60}.focus\:px-4:focus{padding-left:1rem;padding-right:1rem}.focus\:py-2:focus{padding-top:.5rem;padding-bottom:.5rem}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-white:focus-visible{outline-color:#fff}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-70:disabled{opacity:.7}@media (min-width:640px){.sm\:w-auto{width:auto}.sm\:max-w-\[60\%\]{max-width:60%}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}}@media (min-width:768px){.md\:order-2{order:2}.md\:col-span-2{grid-column:span 2/span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.md\:justify-end{justify-content:flex-end}.md\:justify-center{justify-content:center}.md\:gap-8{gap:2rem}.md\:justify-self-end{justify-self:end}.md\:py-\[100px\]{padding-top:100px;padding-bottom:100px}}@media (min-width:1024px){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-screen{height:100vh}.lg\:max-h-\[900px\]{max-height:900px}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-self-center{justify-self:center}}

/*
 * Design tokens — the only place colours are defined.
 *
 * Brand anchors come from the logo artwork:
 *   navy  #25336e   red  #db1f26   (dark-logo red #ff596d)
 *
 * Components consume the *semantic* tokens below (--surface, --heading …),
 * never raw hex values, so every component follows the active theme.
 * Contrast for text/accent tokens on every surface is enforced by
 * tests/theme.test.js (WCAG AA 4.5:1; borders-strong 3:1).
 */

:root {
  --font-sans: "sans", "sans Fallback", Arial, system-ui, sans-serif;

  --brand-navy: #25336e;
  --brand-red: #db1f26;
  --brand-red-bright: #ff596d;

  --radius-sm: 4px;
  --radius-md: 8px;
  --header-height: 86px;
}

/* Dark (default): deep navy surfaces derived from the brand navy. */
:root,
:root[data-theme="dark"] {
  color-scheme: dark;
  --surface: #0b0f1f;
  --surface-alt: #111730;
  --surface-raised: #1a2243;
  --heading: #f3f5fb;
  --body: #c4cadd;
  --muted: #a0a9c4;
  --accent: #ff6b7d;
  --solid: #db1f26;
  --solid-hover: #b5161d;
  --on-solid: #ffffff;
  --border: #253058;
  --border-strong: #6a76a0;
  --focus: #9db2ff;
  --shadow: #00000059;
  --logo-tile: #141b38;
}

:root[data-theme="light"] {
  color-scheme: light;
  --surface: #ffffff;
  --surface-alt: #f3f5fa;
  --surface-raised: #e7ebf4;
  --heading: #1b2554;
  --body: #3b4360;
  --muted: #535c7a;
  --accent: #c0141c;
  --solid: #db1f26;
  --solid-hover: #b3151c;
  --on-solid: #ffffff;
  --border: #dbe0ec;
  --border-strong: #737c97;
  --focus: #2747b8;
  --shadow: #1b25541a;
  --logo-tile: #f3f5fa;
}

/*
 * Media surfaces (video heroes) always sit on dark imagery, so they pin the
 * dark palette regardless of the page theme. Anything inside inherits it.
 */
.on-media {
  color-scheme: dark;
  --surface: #070a16;
  --heading: #ffffff;
  --body: #e4e7f1;
  --muted: #c9cee0;
  --accent: #ff6b7d;
  --border: #ffffff33;
  --border-strong: #ffffffb3;
  --focus: #ffffff;
}

/* Element defaults and accessibility primitives. Colours come from tokens.css. */

html { background: var(--surface); }
body { background: var(--surface); color: var(--body); }
h1, h2, h3, h4, h5, h6 { color: var(--heading); }
a { color: inherit; }
[hidden] { display: none !important; }

a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
a, button, select { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--focus) !important; outline-offset: 4px; }
::selection { background: var(--solid); color: var(--on-solid); }

.skip-link {
  position: fixed; top: 8px; left: 16px; z-index: 100;
  padding: 12px 18px; background: var(--surface); color: var(--heading);
  transform: translateY(-150%);
}
.skip-link:focus { transform: none; }

/* Semantic text roles used by templates (replace hard-coded colour utilities). */
.text-heading { color: var(--heading); }
.text-body { color: var(--body); }
.text-muted { color: var(--muted); }
.text-brand, .hover\:text-brand:hover { color: var(--accent); }
.hover\:text-heading:hover { color: var(--heading); }
.bg-brand { background-color: var(--solid); }
.border-subtle { border-color: var(--border); }
.divide-subtle > :not([hidden]) ~ :not([hidden]) { border-color: var(--border); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

/* Components. Every colour is a semantic token from tokens.css. */

/* ---------- Brand logos: one <img> per theme, CSS shows the right one ---------- */
.logo-on-light { display: none; }
[data-theme="light"] .logo-on-light { display: block; }
[data-theme="light"] .logo-on-dark { display: none; }
/* Media surfaces are always dark, so they always show the dark-surface artwork. */
[data-theme="light"] .on-media .logo-on-light { display: none; }
[data-theme="light"] .on-media .logo-on-dark { display: block; }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset: 0 0 auto; z-index: 50;
  background: var(--surface); color: var(--heading);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 2px 16px var(--shadow);
}
.header-inner { height: var(--header-height); display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.brand-home { flex-shrink: 0; }
.brand-logo { width: 220px; height: auto; }
.brand-mark { width: 220px; height: auto; margin-top: 40px; }
.desktop-nav ul, .header-actions { display: flex; align-items: center; }
.desktop-nav a { display: block; padding: 16px 10px; font-size: 13px; white-space: nowrap; color: var(--heading); }
.site-header a:hover, .site-header a[aria-current="page"] { color: var(--accent); }
.header-actions { gap: 12px; }
.theme-control select {
  min-height: 42px; max-width: 88px; padding: 8px;
  background: var(--surface-alt); color: var(--heading);
  border: 1px solid var(--border-strong); border-radius: 6px;
  font-size: 13px; cursor: pointer;
}
#menu-toggle { display: none; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; color: var(--heading); }
#mobile-menu {
  max-height: calc(100dvh - var(--header-height)); overflow-y: auto;
  padding: 16px 24px; border-top: 1px solid var(--border); background: var(--surface);
}
#mobile-menu a { display: block; padding: 14px 0; color: var(--heading); }

/* ---------- Sections ---------- */
.surface { background: var(--surface); color: var(--body); }
.surface-alt { background: var(--surface-alt); color: var(--body); }

/* ---------- Media hero ---------- */
.on-media { background: var(--surface); color: var(--body); }
.scrim { position: absolute; inset: 0; background: #070a16b8; }
.scrim-light { background: #070a1659; }

/* ---------- Buttons ---------- */
.btn-brand, .btn-outline {
  display: inline-block; padding: 10px 2.5rem; border: 2px solid; border-radius: 3px;
  font-family: var(--font-sans); font-size: 1.3125rem; font-weight: 800; line-height: 1;
  text-align: center; text-transform: lowercase; text-decoration: none; white-space: nowrap;
  transition: color .15s, background-color .15s, border-color .15s;
}
.btn-brand { border-color: var(--accent); color: var(--accent); }
.btn-brand:hover { background: var(--solid); border-color: var(--solid); color: var(--on-solid); }
.btn-outline { border-color: var(--heading); color: var(--heading); }
.btn-outline:hover { background: var(--heading); color: var(--surface); }
button:disabled { cursor: wait; opacity: .7; }

/* ---------- Forms ---------- */
.field {
  width: 100%; padding: .75rem 1rem; font-size: .9375rem; line-height: 1.875rem;
  color: var(--heading); background: var(--surface-alt);
  border: 1px solid var(--border-strong); border-radius: var(--radius-sm);
}
.field::placeholder { color: var(--muted); }
.field:focus { border-color: var(--focus); outline: none; box-shadow: 0 0 0 2px var(--focus); }
.field:user-invalid { border-color: var(--accent); }
.required-mark { color: var(--accent); }
#form-status { margin-top: 20px; color: var(--body); line-height: 1.7; }
#form-status a { color: var(--accent); text-decoration: underline; }

/* ---------- Clients ---------- */
.client-logo { background: var(--logo-tile); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 14px; }

/* ---------- Team ---------- */
.team-portrait {
  display: block; width: 100%; max-width: 460px; height: auto; aspect-ratio: 1;
  object-fit: cover; object-position: center 28%; border-radius: var(--radius-md);
  background: var(--surface-raised);
}
.team-gallery li { min-width: 0; }
.team-gallery .team-portrait { max-width: none; }
.team-profile h3 { overflow-wrap: anywhere; }

/* ---------- Skill meters ---------- */
.meter-track { height: .5rem; margin-top: .5rem; background: var(--surface-raised); border-radius: 999px; overflow: hidden; }
.meter-fill { height: 100%; background: var(--solid); border-radius: inherit; }
.meter-90 { width: 90%; } .meter-91 { width: 91%; } .meter-92 { width: 92%; } .meter-95 { width: 95%; }

/* ---------- Legal prose ---------- */
.prose-legal { color: var(--body); }
.prose-legal :is(h2, h3, h4, strong) { color: var(--heading); }
.prose-legal h2 { margin-top: 3rem; font-size: clamp(1.75rem, 2.6vw, 2.3125rem); line-height: 1.25; }
.prose-legal h2:first-child { margin-top: 0; }
.prose-legal h3 { margin-top: 2rem; font-size: 1.3125rem; line-height: 1.2; }
.prose-legal h4 { margin-top: 1.5rem; font-size: 1.0625rem; line-height: 1.2; }
.prose-legal strong { font-weight: 800; }
.prose-legal p, .prose-legal ul { margin-top: 1rem; }
.prose-legal ul { padding-left: 1.5rem; list-style: disc; }
.prose-legal ul > * + * { margin-top: .5rem; }
.prose-legal a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; overflow-wrap: break-word; }

/* ---------- Social ---------- */
.social-link { color: var(--heading); text-decoration: none; transition: color .15s; }
.social-link:hover { color: var(--accent); }
.social-icon {
  display: inline-flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center;
  border: 2px solid currentColor; border-radius: 999px; font-size: 15px; font-weight: 800; line-height: 1;
}
.social-lg .social-icon { width: 3rem; height: 3rem; font-size: 17px; }

/* ---------- Footer ---------- */
.site-footer { background: var(--surface); color: var(--body); border-top: 1px solid var(--border); }
.site-footer h2 { color: var(--heading); }
.site-footer a { color: var(--heading); text-decoration: none; transition: color .15s; }
.site-footer a:hover { color: var(--accent); }
.footer-bottom { border-top: 1px solid var(--border); }

/* ---------- Floating contact ---------- */
.floating-contact a {
  display: flex; width: 3rem; height: 3rem; align-items: center; justify-content: center;
  border-radius: 999px; background: var(--solid); color: var(--on-solid);
  box-shadow: 0 10px 15px -3px var(--shadow); transition: background-color .15s;
}
.floating-contact a:hover { background: var(--solid-hover); }

/* ---------- Error page ---------- */
.error-page { padding: 160px 24px 100px; min-height: 70vh; }

/* ---------- Responsive ---------- */
@media (max-width: 1199px) { .desktop-nav { display: none; } #menu-toggle { display: flex; } }
@media (min-width: 1200px) { #mobile-menu { display: none !important; } }
@media (max-width: 480px) {
  .brand-logo { width: 166px; }
  .header-inner { gap: 10px; }
  .header-actions { gap: 4px; }
  .theme-control select { max-width: 96px; padding: 6px; }
  .floating-contact { right: 12px; bottom: 12px; }
}
