/* ==========================================================================
   Grey Pigeon Studios — theme.css (block theme v1.0)
   Styles core block markup via class names set in the patterns.
   Concept: camera viewfinder. Dark, cinematic, square corners, Raleway.
   ========================================================================== */

:root {
  --ink: var(--wp--preset--color--ink, #0E1A21);
  --ink-2: var(--wp--preset--color--ink-2, #13242E);
  --ink-3: var(--wp--preset--color--navy, #1B303D);
  --mint: var(--wp--preset--color--mint, #95D7BC);
  --orange: var(--wp--preset--color--orange, #F88B2E);
  --cream: var(--wp--preset--color--cream, #F9F0DF);
  --text: var(--cream);
  --muted: rgba(249, 240, 223, .66);
  --faint: rgba(249, 240, 223, .42);
  --line: rgba(249, 240, 223, .12);
  --line-strong: rgba(249, 240, 223, .24);
  --on-mint: #0E1A21;
  --fs-xs: .75rem; --fs-sm: .875rem; --fs-base: 1rem; --fs-lg: 1.07rem;
  --fs-h4: clamp(1.08rem, 1rem + .35vw, 1.28rem);
  --fs-h3: clamp(1.22rem, 1.08rem + .55vw, 1.5rem);
  --fs-h2: clamp(1.65rem, 1.3rem + 1.5vw, 2.5rem);
  --fs-h1: clamp(2.2rem, 1.5rem + 3vw, 4.1rem);
  --section: clamp(72px, 5vw + 40px, 128px);
  --header-h: 76px;
  --adminbar: var(--wp-admin--admin-bar--height, 0px);
  --ease: cubic-bezier(.22, 1, .36, 1);
  --ease-in-out: cubic-bezier(.76, 0, .24, 1);
  color-scheme: dark;
}

@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .4s; }

*, *::before, *::after { box-sizing: border-box; border-radius: 0 !important; }
html { scroll-padding-top: calc(var(--header-h) + 16px); }
body { overflow-x: clip; -webkit-font-smoothing: antialiased; font-variant-numeric: lining-nums; }
::selection { background: var(--mint); color: var(--on-mint); }
:focus-visible { outline: 2px solid var(--mint); outline-offset: 3px; }
h1, h2, h3, h4 { text-wrap: balance; }
img { height: auto; }
.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
main.wp-block-group { margin-top: 0; }
.wp-block-post-content > .alignfull:first-child { margin-top: 0; }
.gps-page-content > :first-child:not(.hero):not(.hero-short):not(.status) { margin-top: calc(var(--header-h) + var(--adminbar) + 64px) !important; }
.gps-page-content { padding-bottom: 0; }
:where(.wp-block-post-content) > * + .alignfull { margin-block-start: 0; }
.is-grid > * { margin-block: 0 !important; }
.is-grid { margin-block-start: 0; }

/* ---------- Icons (CSS masks, set with has-ico + ico-NAME) ---------- */
.has-ico::before { content: ""; display: block; flex: none; width: var(--ico-size, 32px); height: var(--ico-size, 32px); background: var(--ico-color, var(--mint)); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }

.ico-area { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M4 9V4h5M15 4h5v5M20 15v5h-5M9 20H4v-5'/%3E%3C/svg%3E"); }
.ico-height { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 3v18M8 7l4-4 4 4M8 17l4 4 4-4'/%3E%3C/svg%3E"); }
.ico-bolt { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7l1-8z'/%3E%3C/svg%3E"); }
.ico-pin { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 21s-7-6.2-7-12a7 7 0 0 1 14 0c0 5.8-7 12-7 12z'/%3E%3Ccircle cx='12' cy='9' r='2.5'/%3E%3C/svg%3E"); }
.ico-cubes { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 3 8 5.2v4.4L12 12l4-2.4V5.2L12 3zM8 9.6 4 12v4.4L8 19l4-2.6M16 9.6l4 2.4v4.4L16 19l-4-2.6V12'/%3E%3C/svg%3E"); }
.ico-arrow { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); }
.ico-arrow-left { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M19 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E"); }
.ico-phone { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.ico-mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M3 6h18v12H3z'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.ico-clock { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E"); }
.ico-cap { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M2 9l10-5 10 5-10 5L2 9z'/%3E%3Cpath d='M6 11v5c3 2.5 9 2.5 12 0v-5M22 9v6'/%3E%3C/svg%3E"); }
.ico-doc { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M6 3h9l4 4v14H6z'/%3E%3Cpath d='M15 3v4h4M9 12h7M9 16h7M9 8h3'/%3E%3C/svg%3E"); }
.ico-info { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7.5v.5'/%3E%3C/svg%3E"); }
.ico-wrench { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M14.5 6.5a4 4 0 0 1 5-5l-2.5 2.5 1 2 2 1 2.5-2.5a4 4 0 0 1-5 5L8 20a2.1 2.1 0 0 1-3-3l9.5-10.5z'/%3E%3C/svg%3E"); }
.ico-spot { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M7 7h8l3 3v4l-3 3H7z'/%3E%3Cpath d='M18 9l3-2M18 15l3 2M11 17v4M8 21h6M4 9v6'/%3E%3C/svg%3E"); }
.ico-tripod { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 3v7M9 3h6M12 10l-6 11M12 10l6 11M12 10v11'/%3E%3C/svg%3E"); }
.ico-walls { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M3 5h5v15H3zM9.5 5h5v15h-5zM16 5h5v15h-5z'/%3E%3C/svg%3E"); }
.ico-table { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M3 8h18M5 8v12M19 8v12M3 12h18'/%3E%3C/svg%3E"); }
.ico-plug { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M9 3v5M15 3v5M6 8h12v4a6 6 0 0 1-12 0V8zM12 18v3'/%3E%3C/svg%3E"); }
.ico-heat { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M8 4c-2 3 2 5 0 8s2 5 0 8M12 4c-2 3 2 5 0 8s2 5 0 8M16 4c-2 3 2 5 0 8s2 5 0 8'/%3E%3C/svg%3E"); }
.ico-props { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M3 13h18l-2 7H5z'/%3E%3Cpath d='M8 13a4 4 0 0 1 8 0M12 5v4M9 6l1.5 2.5M15 6l-1.5 2.5'/%3E%3C/svg%3E"); }
.ico-palette { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 3a9 9 0 1 0 0 18c1.5 0 2-1 2-2s-1-1.6-1-2.6 1-1.4 2-1.4h2.5A3.5 3.5 0 0 0 21 11.5C21 6.8 17 3 12 3z'/%3E%3Ccircle cx='7.5' cy='11' r='1'/%3E%3Ccircle cx='10' cy='7' r='1'/%3E%3Ccircle cx='15' cy='7.5' r='1'/%3E%3C/svg%3E"); }
.ico-cube { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 2.5 3.5 7v10L12 21.5 20.5 17V7L12 2.5z'/%3E%3Cpath d='M3.5 7 12 11.5 20.5 7M12 11.5v10'/%3E%3C/svg%3E"); }
.ico-hammer { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M14 6 9 3 6 6l3 3M9 9l-6 6 3 3 6-6M12 9l3-3 6 6-3 3-6-6'/%3E%3C/svg%3E"); }
.ico-people { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3Ccircle cx='16.5' cy='9' r='2.5'/%3E%3Cpath d='M2.5 20c.5-3.5 3-5.5 5.5-5.5s5 2 5.5 5.5M14 15c3-.8 6.5.7 7 5'/%3E%3C/svg%3E"); }
.ico-film { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M3 4h18v16H3zM7 4v16M17 4v16M3 8h4M3 12h4M3 16h4M17 8h4M17 12h4M17 16h4'/%3E%3C/svg%3E"); }
.ico-camera { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M3 7h12v10H3zM15 10l6-3v10l-6-3'/%3E%3C/svg%3E"); }
.ico-check { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='m5 12 4.5 4.5L19 7'/%3E%3C/svg%3E"); }
.ico-x { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E"); }
.ico-alert { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 3 2 20h20L12 3z'/%3E%3Cpath d='M12 10v4.5M12 17.5v.5'/%3E%3C/svg%3E"); }
.ico-calendar { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M4 5h16v15H4zM4 10h16M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.ico-spark { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M6 18l2.5-2.5M15.5 8.5 18 6'/%3E%3C/svg%3E"); }
.ico-download { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E"); }
.ico-copy { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M9 9h11v11H9z'/%3E%3Cpath d='M5 15H4V4h11v1'/%3E%3C/svg%3E"); }
.ico-school { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M3 21h18M5 21V10l7-5 7 5v11M10 21v-5h4v5'/%3E%3C/svg%3E"); }
.ico-star { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='m12 3 2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9L12 3z'/%3E%3C/svg%3E"); }
.ico-facebook { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M14 8h3V4h-3a4 4 0 0 0-4 4v3H7v4h3v6h4v-6h3l1-4h-4V8z'/%3E%3C/svg%3E"); }
.ico-instagram { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Crect x='3.5' y='3.5' width='17' height='17'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M17 7v.5'/%3E%3C/svg%3E"); }
.ico-linkedin { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M4 9h3.5v11H4zM5.75 4.5v.5M10 9h3.3v1.6c.6-1 1.8-1.9 3.6-1.9 3 0 3.6 2 3.6 4.6V20H17v-5.6c0-1.4-.2-2.6-1.7-2.6s-1.8 1.1-1.8 2.5V20H10z'/%3E%3C/svg%3E"); }
:root { --ico-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); --ico-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E"); }

/* ---------- Primitives ---------- */
.gps-section { padding-block: var(--section) !important; margin-block: 0 !important; position: relative; }
.gps-section--tight { padding-block: calc(var(--section) * .55) !important; }
.gps-section--flush-top { padding-top: 0 !important; }
.gps-section--navy { background: var(--ink-2); }
.kicker { font-size: var(--fs-sm) !important; color: var(--mint); font-weight: 600; letter-spacing: .02em; display: flex; align-items: center; gap: .6em; margin-bottom: 0; }
.kicker::before { content: ""; width: 22px; height: 1px; background: currentColor; }
.lede { font-size: var(--fs-lg) !important; color: var(--muted); max-width: 60ch; line-height: 1.6; }
.muted { color: var(--muted); }
.prose { color: var(--muted); max-width: 66ch; }
.prose strong, .lede strong { color: var(--text); font-weight: 600; }
.stack > * + * { margin-block-start: 1.2rem; }
.stack { display: grid; gap: 1.2rem; align-content: start; }
.stack > * { margin-block: 0 !important; min-width: 0; }
.has-mint-color mark, mark.has-mint-color, mark { background: none; color: var(--mint); }

.sec-head { display: grid; gap: 1rem; margin-bottom: clamp(36px, 4vw, 64px) !important; max-width: 820px; }
.sec-head > * { margin-block: 0 !important; }
.sec-head h2 { font-size: var(--fs-h2); }
.sec-head--split { max-width: none; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: end; gap: 2rem 4rem; }

/* ---------- Buttons (core/buttons) ---------- */
.wp-block-buttons { gap: 12px; }
.wp-block-button__link {
  position: relative; display: inline-flex !important; align-items: center; justify-content: center; gap: .7em; min-height: 48px;
  overflow: hidden; isolation: isolate; white-space: nowrap; text-decoration: none;
  transition: color .55s var(--ease), border-color .55s var(--ease), background-color .55s var(--ease);
}
.wp-block-button__link::before { content: ""; position: absolute; inset: 0; background: var(--cream); transform: scaleY(0); transform-origin: bottom; transition: transform .7s var(--ease); z-index: -1; }
.wp-block-button__link:hover::before, .wp-block-button__link:focus-visible::before { transform: scaleY(1); }
.wp-block-button__link:hover, .wp-block-button__link:focus-visible { color: var(--ink) !important; border-color: var(--cream) !important; }
.wp-block-button.has-arrow .wp-block-button__link::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ico-arrow) center / contain no-repeat; mask: var(--ico-arrow) center / contain no-repeat; transition: transform .55s var(--ease); }
.wp-block-button.has-arrow .wp-block-button__link:hover::after { transform: translateX(3px); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent !important; color: var(--text) !important; border: 1px solid var(--line-strong) !important; padding: 16px 24px; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { color: var(--ink) !important; }
.wp-block-button.is-small .wp-block-button__link { min-height: 40px; padding: 10px 16px; }
.wp-block-button.is-full, .wp-block-button.is-full .wp-block-button__link { width: 100%; }

.link-arrow a, a.link-arrow { color: var(--mint); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: .55em; }
.link-arrow a::after, a.link-arrow::after { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ico-arrow) center / contain no-repeat; mask: var(--ico-arrow) center / contain no-repeat; transition: transform .5s var(--ease); }
.link-arrow a:hover::after, a.link-arrow:hover::after { transform: translateX(4px); }

/* ---------- Header ---------- */
.site-header-part { position: fixed; top: var(--adminbar); left: 0; right: 0; z-index: 50; margin: 0 !important; }
/* The blur lives on a pseudo-element: a backdrop-filter or transform on the header itself
   would trap the fixed mobile menu inside the header's 76px box. */
.site-header { position: relative; height: var(--header-h); border-bottom: 1px solid transparent; transition: border-color .6s var(--ease), top .7s var(--ease); }
.site-header::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(14, 26, 33, .86); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); opacity: 0; transition: opacity .6s var(--ease); pointer-events: none; }
.is-header-solid .site-header { border-color: var(--line); }
.is-header-solid .site-header::before { opacity: 1; }
.site-header-part { transition: translate .7s var(--ease); }
.is-header-hidden .site-header-part { translate: 0 -100%; }
.has-modal-open .site-header-part { translate: none !important; }
.site-header__inner { height: 100%; display: flex !important; align-items: center; gap: 24px; flex-wrap: nowrap !important; }
.site-header__inner > * { margin: 0 !important; }
.site-header .brand { flex: none; margin: 0; }
.site-header .brand img { height: 46px !important; width: auto !important; }
.site-header .wp-block-navigation { margin-left: auto !important; gap: 4px; font-size: var(--fs-sm); font-weight: 500; }
.site-header .wp-block-navigation-item__content { position: relative; padding: 10px 14px !important; color: var(--muted); text-decoration: none; transition: color .45s; }
.site-header .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 1px; background: var(--mint); transform: scaleX(0); transform-origin: left; transition: transform .55s var(--ease); }
.site-header .wp-block-navigation-item__content:hover, .site-header .wp-block-navigation-item__content[aria-current="page"] { color: var(--text); }
.site-header .wp-block-navigation-item__content:hover::after, .site-header .wp-block-navigation-item__content[aria-current="page"]::after { transform: scaleX(1); }
.header-tools { display: flex !important; align-items: center; gap: 14px; flex-wrap: nowrap !important; }
.header-tools > * { margin: 0 !important; }
.wp-block-navigation__responsive-container-open { width: 46px; height: 46px; border: 1px solid var(--line-strong); display: grid; place-items: center; color: var(--text); }
.wp-block-navigation__responsive-container.is-menu-open { position: fixed !important; inset: 0 !important; top: var(--adminbar) !important; width: 100vw !important; height: calc(100dvh - var(--adminbar)) !important; z-index: 100000 !important; overflow-y: auto; background: var(--ink) !important; color: var(--text) !important; padding: calc(var(--header-h) + 24px) max(20px, env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left)) !important; animation: menuIn .7s var(--ease-in-out) both; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close, .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { position: static; max-width: none; }
@keyframes menuIn { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 0 0); } }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; padding-top: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; gap: 0 !important; align-items: stretch !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--line); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: clamp(1.5rem, 6.5vw, 2.2rem); font-weight: 400; color: var(--text) !important; padding: 10px 0 !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none; }
.wp-block-navigation__responsive-container-close { position: fixed !important; top: calc(var(--adminbar) + (var(--header-h) - 46px) / 2) !important; right: max(20px, env(safe-area-inset-right)) !important; width: 46px; height: 46px; border: 1px solid var(--line-strong); display: grid; place-items: center; color: var(--text); z-index: 2; }
.wp-block-navigation__responsive-container.is-menu-open::before { content: ""; position: fixed; top: calc(var(--adminbar) + (var(--header-h) - 40px) / 2); left: max(20px, env(safe-area-inset-left)); width: 63px; height: 40px; background: var(--gps-logo) left center / contain no-repeat; }

.site-header .nav-cta { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .nav-cta { display: block; border-bottom: 0 !important; margin-top: 24px; }
.wp-block-navigation__responsive-container.is-menu-open .nav-cta .wp-block-navigation-item__content { background: var(--mint); color: var(--on-mint) !important; font-size: var(--fs-sm) !important; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 16px 20px !important; text-align: center; justify-content: center; }

/* GTranslate / language slot */
.gps-lang { font-size: var(--fs-xs); }
.gps-lang a { color: var(--muted); text-decoration: none; }
.gps-lang select { background: transparent; border: 1px solid var(--line); color: var(--text); padding: 4px 6px; }

/* ---------- Viewfinder (signature): 4 frame corners via gradients ---------- */
.vf-frame { position: relative; }
.vf-frame::after, .frame::after {
  content: ""; position: absolute; inset: var(--vf-inset, 12px); pointer-events: none; z-index: 3;
  --c: var(--vf-color, rgba(249, 240, 223, .6)); --l: var(--vf-len, 18px); --w: 1.5px;
  background:
    linear-gradient(var(--c), var(--c)) 0 0 / var(--l) var(--w) no-repeat,
    linear-gradient(var(--c), var(--c)) 0 0 / var(--w) var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) 100% 0 / var(--l) var(--w) no-repeat,
    linear-gradient(var(--c), var(--c)) 100% 0 / var(--w) var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) 0 100% / var(--l) var(--w) no-repeat,
    linear-gradient(var(--c), var(--c)) 0 100% / var(--w) var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) 100% 100% / var(--l) var(--w) no-repeat,
    linear-gradient(var(--c), var(--c)) 100% 100% / var(--w) var(--l) no-repeat;
}
.vf-hud { position: absolute; z-index: 4; left: clamp(36px, 4vw, 64px); right: clamp(36px, 4vw, 64px); bottom: clamp(24px, 2.6vw, 42px); display: flex; justify-content: space-between; gap: 16px; font-size: var(--fs-xs); font-weight: 600; letter-spacing: .08em; color: rgba(249, 240, 223, .82); font-variant-numeric: tabular-nums; pointer-events: none; }
.rec { display: inline-flex; align-items: center; gap: 8px; }
.rec::before { content: ""; width: 8px; height: 8px; background: var(--orange); border-radius: 50% !important; animation: rec 1.6s steps(1) infinite; }
@keyframes rec { 50% { opacity: .15; } }

/* ---------- Hero (core/cover) ---------- */
.wp-block-cover.hero { min-height: clamp(600px, 92vh, 960px) !important; align-items: flex-end !important; padding: 0 !important; overflow: hidden; margin-block: 0 !important; background: var(--ink); }
.wp-block-cover.hero--page { min-height: clamp(460px, 64vh, 680px) !important; }
.wp-block-cover.hero::after { --vf-inset: calc(var(--header-h) + 16px) clamp(14px, 2.2vw, 30px) clamp(14px, 2.2vw, 30px); --vf-len: clamp(22px, 3vw, 44px); --vf-color: rgba(249, 240, 223, .7); animation: vfIn 1.6s var(--ease) both; }
.wp-block-cover.hero .wp-block-cover__image-background, .wp-block-cover.hero .wp-block-cover__video-background { transform: scale(1.06); animation: heroZoom 14s var(--ease) forwards; }
@keyframes heroZoom { to { transform: scale(1); } }
.wp-block-cover.hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(14, 26, 33, .55) 0%, rgba(14, 26, 33, .1) 30%, rgba(14, 26, 33, .55) 62%, var(--ink) 100%), linear-gradient(90deg, rgba(14, 26, 33, .75) 0%, rgba(14, 26, 33, 0) 70%) !important; opacity: 1 !important; }
.wp-block-cover.hero .wp-block-cover__inner-container { width: 100% !important; max-width: none !important; padding-inline: max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right)); z-index: 4; }
.hero__body { max-width: 1320px; margin-inline: auto !important; padding-top: calc(var(--header-h) + 80px); padding-bottom: clamp(80px, 7vw, 100px); display: grid; gap: 26px; }
.hero__body > * { margin: 0 !important; }
.hero h1 { font-size: var(--fs-h1) !important; font-weight: 500; letter-spacing: -.025em; line-height: 1.06; max-width: none; }
.hero h1.is-fitted { font-size: var(--fit) !important; }
.hero--page h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.5rem) !important; max-width: none; }
.hero h1 .line { display: block; overflow: hidden; padding-bottom: .08em; }
.hero h1.is-fitted .line > span { display: inline-block; white-space: nowrap; }
.hero h1 .line > span { display: block; animation: rise 1.5s var(--ease) both; }
.hero h1 .line:nth-child(2) > span { animation-delay: .12s; }
.hero h1 .line:nth-child(3) > span { animation-delay: .24s; }
@keyframes rise { from { transform: translateY(105%); } to { transform: none; } }
.hero .hero__lede { max-width: 66ch; font-size: var(--fs-lg); color: rgba(249, 240, 223, .84); animation: fadeUp 1.4s .5s var(--ease) both; }
.hero .wp-block-buttons { animation: fadeUp 1.4s .65s var(--ease) both; }
.hero .kicker { animation: fadeUp 1.2s .2s var(--ease) both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes vfIn { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: none; } }

.hero-short { padding-top: calc(var(--header-h) + 96px) !important; padding-bottom: clamp(40px, 5vw, 64px) !important; background: radial-gradient(80% 120% at 0% 0%, rgba(27, 48, 61, .9), var(--ink) 70%); margin-block: 0 !important; }
.hero-short h1, .hero-short .wp-block-post-title { font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3.2rem) !important; max-width: 30ch; animation: fadeUp 1.2s var(--ease) both; }
.hero-short .hero__lede { color: rgba(249, 240, 223, .8); max-width: 70ch; }

/* Spec strip */
.specs-wrap { margin-block: 0 !important; position: relative; z-index: 2; }
.specs { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--line-strong); animation: fadeUp 1.4s .8s var(--ease) both; }
.spec { display: flex !important; align-items: center; gap: 14px; padding: 18px 18px 18px 0; min-width: 0; --ico-size: 28px; }
.spec + .spec { padding-left: 18px; border-left: 1px solid var(--line); }
.spec > div, .spec > .wp-block-group { margin: 0 !important; }
.spec p { margin: 0 !important; }
.spec p:first-child { font-size: var(--fs-lg); font-weight: 600; color: var(--orange); line-height: 1.15; white-space: nowrap; }
.spec p:last-child { font-size: var(--fs-xs); color: var(--muted); letter-spacing: .03em; }

/* ---------- Marquee ---------- */
.marquee { border-block: 1px solid var(--line); overflow: hidden; padding-block: 18px !important; margin-block: 0 !important; }
.marquee__track { display: flex !important; width: max-content; flex-wrap: nowrap !important; gap: 0 !important; }
.marquee.is-ready .marquee__track { animation: marquee 70s linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__track > p { margin: 0 !important; display: flex; align-items: center; gap: 28px; padding-right: 28px; white-space: nowrap; font-size: clamp(1.05rem, .95rem + .6vw, 1.45rem); }
.marquee__track > p:not(.marquee__label)::after { content: ""; width: 10px; height: 10px; border: 1.5px solid var(--orange); transform: rotate(45deg); }
.marquee__track > p.marquee__label { color: var(--mint); font-size: var(--fs-sm); font-weight: 600; letter-spacing: .04em; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Frames (core/image) ---------- */
.wp-block-image.frame { position: relative; overflow: hidden; background: var(--ink-2); margin: 0; }
.wp-block-image.frame img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.8s var(--ease); display: block; }
.wp-block-image.frame:hover img { transform: scale(1.03); }
.wp-block-image.frame.no-vf::after { display: none; }
.wp-block-image.frame figcaption, .wp-block-image.frame .wp-element-caption { position: absolute; left: 0; bottom: 0; z-index: 4; margin: 0; padding: 10px 14px; background: rgba(14, 26, 33, .82); font-size: var(--fs-xs); color: var(--muted); letter-spacing: .03em; text-align: left; }
.ratio-43 { aspect-ratio: 4 / 3; } .ratio-32 { aspect-ratio: 3 / 2; } .ratio-45 { aspect-ratio: 4 / 5; } .ratio-169 { aspect-ratio: 16 / 9; }

/* ---------- Split ---------- */
.split { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 88px); align-items: center; }
.split h2 { font-size: var(--fs-h2); }
.facts { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); }
.facts > .wp-block-group { padding: 18px 20px; display: grid; gap: 4px; min-width: 0; margin: 0 !important; }
.facts > .wp-block-group + .wp-block-group { border-left: 1px solid var(--line); }
.facts p { margin: 0 !important; }
.facts p:first-child { font-size: var(--fs-xs); color: var(--faint); letter-spacing: .04em; }
.facts p:last-child { font-size: var(--fs-h4); font-weight: 600; font-variant-numeric: tabular-nums; }

/* ---------- Band (core/cover image) ---------- */
.wp-block-cover.band { min-height: clamp(380px, 62vh, 640px) !important; align-items: flex-end !important; overflow: hidden; margin-block: 0 !important; padding: 0 !important; }
.wp-block-cover.band .wp-block-cover__image-background { inset: -12% 0 !important; height: 124% !important; will-change: transform; }
.wp-block-cover.band .wp-block-cover__background { background: linear-gradient(180deg, var(--ink) 0%, rgba(14, 26, 33, 0) 28%, rgba(14, 26, 33, .2) 60%, var(--ink) 100%) !important; opacity: 1 !important; }
.wp-block-cover.band .wp-block-cover__inner-container { width: 100%; max-width: 1320px; margin-inline: auto; padding: 0 max(20px, env(safe-area-inset-right)) clamp(32px, 5vw, 72px) max(20px, env(safe-area-inset-left)); }
.band__lead { font-size: clamp(1.35rem, 1rem + 1.6vw, 2.3rem) !important; line-height: 1.1; letter-spacing: -.02em; max-width: 20ch; text-wrap: balance; }

/* ---------- Service rows ---------- */
.svc-list { border-top: 1px solid var(--line); }
.svc-row { position: relative; display: grid !important; grid-template-columns: 64px minmax(0, 1.1fr) minmax(0, 1.4fr) 40px; gap: 24px; align-items: center; padding: 30px 0; border-bottom: 1px solid var(--line); transition: padding .7s var(--ease); --ico-size: 40px; }
.svc-row > * { margin: 0 !important; }
.svc-row h3 { font-size: var(--fs-h3); transition: color .5s; }
.svc-row h3 a { color: inherit; text-decoration: none; }
.svc-row h3 a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.svc-row p { color: var(--muted); font-size: var(--fs-sm); max-width: 52ch; }
.svc-row::after { content: ""; width: 40px; height: 40px; border: 1px solid var(--line-strong); background: var(--text); -webkit-mask: var(--ico-arrow) center / 16px no-repeat, linear-gradient(#000, #000); mask: var(--ico-arrow) center / 16px no-repeat; transition: transform .7s var(--ease), background .5s; }
.svc-row:hover { padding-left: 12px; }
.svc-row:hover h3 { color: var(--mint); }
.svc-row:hover::after { background: var(--mint); transform: rotate(-45deg); }
.svc-row .svc-row__img { display: none !important; }
.svc-peek { position: fixed; left: 0; top: 0; width: 300px; aspect-ratio: 4 / 3; pointer-events: none; z-index: 30; opacity: 0; transform: translate(-50%, -50%) scale(.85); transition: opacity .5s var(--ease), transform .6s var(--ease); overflow: hidden; }
.svc-peek.is-on { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.svc-peek img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Process ---------- */
.process { display: grid !important; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 96px); }
.process__sticky { position: sticky; top: calc(var(--header-h) + var(--adminbar) + 40px); align-self: start; }
.process__sticky h2 { font-size: var(--fs-h2); }
.steps { position: relative; display: grid !important; gap: clamp(28px, 4vw, 56px); counter-reset: step; }
.steps::before { content: ""; position: absolute; left: 23px; top: 8px; bottom: 8px; width: 1px; background: var(--line); }
.steps__progress { position: absolute; left: 23px; top: 8px; width: 1px; height: calc(var(--p, 0) * (100% - 16px)); background: var(--mint); }
.step { position: relative; display: grid !important; grid-template-columns: 48px minmax(0, 1fr); column-gap: 24px; row-gap: 14px; align-content: start; }
.step::before { counter-increment: step; content: counter(step, decimal-leading-zero); grid-row: 1 / span 3; grid-column: 1; width: 48px; height: 48px; border: 1px solid var(--line-strong); background: var(--ink-2); display: grid; place-items: center; font-weight: 600; font-variant-numeric: tabular-nums; position: relative; z-index: 1; transition: background .6s, color .6s, border-color .6s; }
.step.is-active::before { background: var(--mint); color: var(--on-mint); border-color: var(--mint); }
.step > * { grid-column: 2; margin: 0 !important; }
.step h3 { font-size: var(--fs-h3); }
.step p { color: var(--muted); max-width: 52ch; }
.step .wp-block-image { max-width: 520px; }

/* ---------- Equipment ---------- */
.gear { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.gear__item { padding: 28px 24px 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid !important; grid-template-columns: 1fr auto; grid-template-areas: "ico qty" "title title" "text text"; gap: 10px; align-content: start; transition: background .6s var(--ease); min-width: 0; --ico-size: 34px; }
.gear__item::before { grid-area: ico; margin-bottom: 8px; }
.gear__item:hover { background: var(--ink-2); }
.gear__item > * { margin: 0 !important; }
.gear__item .gear__qty { grid-area: qty; align-self: start; font-size: var(--fs-xs); font-weight: 600; letter-spacing: .06em; padding: 4px 8px; border: 1px solid var(--line-strong); white-space: nowrap; }
.gear__item h3 { grid-area: title; font-size: var(--fs-lg); color: var(--orange); font-weight: 600; }
.gear__item p:not(.gear__qty) { grid-area: text; color: var(--muted); font-size: var(--fs-sm); }
.gear__item--wide { grid-column: span 2; }
.gear__photo { grid-column: span 2; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); min-height: 220px; position: relative; }
.gear__photo img { position: absolute; inset: 0; }

/* ---------- Pricing (gps/pricing dynamic block) ---------- */
.pricing { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); }
.plan { position: relative; padding: 30px 26px 26px; display: grid; gap: 18px; align-content: start; cursor: pointer; background: transparent; border: 0; text-align: left; color: var(--text); font: inherit; transition: background .55s var(--ease); }
.plan + .plan { border-left: 1px solid var(--line); }
.plan:hover { background: var(--ink-2); }
.plan[aria-pressed="true"] { background: var(--ink-3); box-shadow: inset 0 0 0 1px var(--mint); }
.plan__dur { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.plan__clocks { display: flex; gap: 3px; color: var(--mint); }
.plan__clocks svg { width: 18px; height: 18px; }
.plan__price { font-size: clamp(2rem, 1.6rem + 1.3vw, 2.7rem); font-weight: 500; color: var(--orange); letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.plan__meta { font-size: var(--fs-sm); color: var(--muted); display: grid; gap: 4px; border-top: 1px solid var(--line); padding-top: 14px; }
.plan__meta span { display: flex; justify-content: space-between; gap: 8px; font-variant-numeric: tabular-nums; }
.plan__meta b { color: var(--text); font-weight: 600; }
.plan__tag { position: absolute; top: 0; right: 0; background: var(--mint); color: var(--on-mint); font-size: 11px; font-weight: 600; letter-spacing: .06em; padding: 4px 8px; text-transform: uppercase; }
.conditions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-top: 0; }
.cond { padding: 22px 26px; display: flex; gap: 16px; align-items: center; }
.cond + .cond { border-left: 1px solid var(--line); }
.cond svg { width: 30px; height: 30px; color: var(--mint); flex: none; }
.cond b { display: block; font-size: var(--fs-lg); color: var(--orange); font-weight: 600; }
.cond span { font-size: var(--fs-sm); color: var(--muted); }
.calc { border: 1px solid var(--line-strong); background: var(--ink-2); padding: 28px; display: grid; gap: 18px; position: sticky; top: calc(var(--header-h) + var(--adminbar) + 24px); }
.calc h3 { font-size: var(--fs-h4); margin: 0; }
.calc__rows { display: grid; font-variant-numeric: tabular-nums; }
.calc__row { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px dashed var(--line); font-size: var(--fs-sm); }
.calc__row > span:first-child { color: var(--muted); }
.calc__row small { display: block; color: var(--faint); font-size: var(--fs-xs); }
.calc__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 8px; }
.calc__total span { font-weight: 600; }
.calc__total b { font-size: 1.9rem; font-weight: 500; color: var(--orange); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.calc__dep { font-size: var(--fs-sm); color: var(--mint); font-variant-numeric: tabular-nums; margin: 0; }
.calc__note { font-size: var(--fs-xs); color: var(--faint); margin: 0; }
.calc .gps-btn { width: 100%; }
.flip { display: inline-block; animation: flip .6s var(--ease); }
@keyframes flip { from { opacity: 0; transform: translateY(40%); } to { opacity: 1; transform: none; } }
.gps-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .7em; min-height: 48px; padding: 0 24px; background: var(--mint); color: var(--on-mint) !important; border: 1px solid var(--mint); font-size: var(--fs-xs); font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; overflow: hidden; isolation: isolate; cursor: pointer; transition: border-color .55s var(--ease); }
.gps-btn::before { content: ""; position: absolute; inset: 0; background: var(--cream); transform: scaleY(0); transform-origin: bottom; transition: transform .7s var(--ease); z-index: -1; }
.gps-btn:hover::before, .gps-btn:focus-visible::before { transform: scaleY(1); }
.gps-btn:hover { border-color: var(--cream); }
.gps-btn svg { width: 16px; height: 16px; }
.price-aside { display: grid; gap: 20px; position: sticky; top: calc(var(--header-h) + var(--adminbar) + 24px); }
.aside-box { border: 1px solid var(--line); padding: 24px; display: grid; gap: 14px; }
.aside-box h3 { font-size: var(--fs-lg); margin: 0; }
.aside-box ul { list-style: none; display: grid; gap: 10px; font-size: var(--fs-sm); margin: 0; padding: 0; }
.aside-box li { display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.aside-box li b { color: var(--text); font-weight: 600; white-space: nowrap; }
.aside-box p { font-size: var(--fs-sm); color: var(--muted); margin: 0; }

/* ---------- Testimonials (core/quote) ---------- */
.quotes { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.quotes .wp-block-quote { margin: 0 !important; padding: 34px 32px 34px 0; border: 0; display: grid; gap: 22px; align-content: space-between; min-width: 0; }
.quotes .wp-block-quote + .wp-block-quote { padding-left: 32px; border-left: 1px solid var(--line); }
.quotes .wp-block-quote p { font-size: var(--fs-base); line-height: 1.65; margin: 0; }
.quotes .wp-block-quote p::before { content: "“"; display: block; font-size: 3.2rem; line-height: 1; height: .52em; overflow: hidden; color: var(--mint); }
.quotes .wp-block-quote cite { font-style: normal; font-weight: 600; font-size: var(--fs-base); }
.quotes .wp-block-quote cite span { display: block; font-weight: 400; color: var(--faint); font-size: var(--fs-sm); }

/* ---------- FAQ (core/details) ---------- */
.faq { display: grid !important; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 96px); }
.faq__intro { position: sticky; top: calc(var(--header-h) + var(--adminbar) + 40px); align-self: start; }
.faq__intro h2 { font-size: var(--fs-h2); }
.acc { border-top: 1px solid var(--line); }
.acc > .wp-block-details { border-bottom: 1px solid var(--line); margin: 0 !important; overflow: hidden; }
.acc summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 22px 0; font-weight: 500; transition: color .45s; }
.acc summary::-webkit-details-marker { display: none; }
.acc summary::after { content: ""; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--ico-plus) center / contain no-repeat; mask: var(--ico-plus) center / contain no-repeat; transition: transform .55s var(--ease); }
.acc details[open] summary::after { transform: rotate(45deg); }
.acc summary:hover { color: var(--mint); }
.acc details > :not(summary) { color: var(--muted); max-width: 64ch; margin: 0 48px .9em 0 !important; }
.acc details > :last-child { margin-bottom: 26px !important; }

/* ---------- CTA (core/cover image) ---------- */
.wp-block-cover.cta { padding-block: clamp(96px, 12vw, 180px) !important; margin-block: 0 !important; overflow: hidden; }
.wp-block-cover.cta .wp-block-cover__background { background: linear-gradient(90deg, rgba(14, 26, 33, .94) 0%, rgba(14, 26, 33, .78) 50%, rgba(14, 26, 33, .5) 100%) !important; opacity: 1 !important; }
.wp-block-cover.cta .wp-block-cover__inner-container { width: 100%; max-width: 1320px; margin-inline: auto; padding-inline: max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right)); display: grid; gap: 26px; }
.wp-block-cover.cta .wp-block-cover__inner-container > * { margin: 0 !important; }
.wp-block-cover.cta h2 { font-size: clamp(1.9rem, 1.3rem + 2.4vw, 3.4rem); letter-spacing: -.025em; max-width: 24ch; }
.wp-block-cover.cta p { max-width: 72ch; color: rgba(249, 240, 223, .8); font-size: var(--fs-lg); }
.wp-block-cover .wp-block-cover__image-background[data-parallax] { will-change: transform; }

/* ---------- Footer ---------- */
.site-footer { border-top: 1px solid var(--line); padding-top: clamp(56px, 7vw, 96px) !important; padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px)) !important; margin: 0 !important; }
.footer-grid { display: grid !important; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 40px; }
.footer-grid h4 { font-size: var(--fs-sm) !important; font-weight: 600; color: var(--faint); margin: 0 0 16px !important; letter-spacing: .02em; }
.footer-brand img { width: 150px !important; }
.footer-brand p { color: var(--muted); max-width: 36ch; font-size: var(--fs-sm); }
.footer-links { list-style: none; display: grid; gap: 10px; padding: 0 !important; margin: 0 !important; font-size: var(--fs-sm); }
.footer-links a { color: var(--text); text-decoration: none; transition: color .45s; }
.footer-links a:hover { color: var(--mint); }
.contact-list { display: grid !important; gap: 14px; font-size: var(--fs-sm); }
.contact-list p { display: flex; gap: 12px; align-items: flex-start; margin: 0 !important; --ico-size: 18px; }
.contact-list p::before { margin-top: 3px; }
.contact-list a { color: var(--text); text-decoration: none; }
.contact-list a:hover { color: var(--mint); }
.site-footer .wp-block-social-links { gap: 8px; margin-top: 4px; }
.site-footer .wp-social-link { background: transparent !important; color: var(--text) !important; border: 1px solid var(--line-strong); transition: background .5s, color .5s, border-color .5s; }
.site-footer .wp-social-link a { padding: 10px; }
.site-footer .wp-social-link:hover { background: var(--mint) !important; color: var(--on-mint) !important; border-color: var(--mint); transform: none; }
.footer-word { margin-top: clamp(48px, 6vw, 88px) !important; overflow: hidden; }
.footer-word img { width: 100% !important; opacity: .16; transition: opacity 1s var(--ease); }
.footer-word:hover img { opacity: .32; }
.footer-bottom { margin-top: 28px !important; padding-top: 22px; border-top: 1px solid var(--line); display: flex !important; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: var(--fs-xs); color: var(--faint); }
.footer-bottom p { margin: 0 !important; }
.footer-bottom a { color: var(--muted); }

/* ---------- Generic grids ---------- */
.grid-3 { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.grid-4 { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.tile { border: 1px solid var(--line); padding: 30px; display: grid !important; gap: 14px; align-content: start; min-width: 0; transition: border-color .55s, background .55s; --ico-size: 36px; }
.tile:hover { border-color: var(--line-strong); background: var(--ink-2); }
.tile > * { margin: 0 !important; }
.tile h3 { font-size: var(--fs-h4); }
.tile p { color: var(--muted); font-size: var(--fs-sm); }

.aud { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.aud__item { padding: 32px 32px 8px 0; display: grid !important; gap: 14px; align-content: start; --ico-size: 40px; }
.aud__item + .aud__item { padding-left: 32px; border-left: 1px solid var(--line); }
.aud__item > * { margin: 0 !important; }
.aud__item h3 { font-size: var(--fs-h4); }
.aud__item p { color: var(--muted); }

.founder { display: grid !important; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 88px); align-items: center; }
.founder__lead { font-size: clamp(1.12rem, 1rem + .5vw, 1.4rem) !important; line-height: 1.5; }
.team { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: clamp(48px, 6vw, 88px) !important; }
.member { display: grid !important; gap: 12px; align-content: start; }
.member > * { margin: 0 !important; }
.member img { filter: grayscale(1) contrast(1.05); transition: filter 1s var(--ease), transform 1.8s var(--ease) !important; }
.member:hover img { filter: none; }
.member h3 { font-size: var(--fs-lg); }
.member .role { color: var(--mint); font-size: var(--fs-sm); font-weight: 600; }
.member p:not(.role) { color: var(--muted); font-size: var(--fs-sm); }

.svc-detail { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 88px); align-items: center; padding-block: clamp(40px, 5vw, 72px); border-top: 1px solid var(--line); scroll-margin-top: calc(var(--header-h) + 24px); }
.svc-detail:nth-child(odd of .svc-detail) > .wp-block-image { order: 2; }
.svc-detail h2 { font-size: clamp(1.3rem, 1.1rem + 1.2vw, 2.2rem); --ico-size: 40px; }
.svc-detail h2.has-ico::before { margin-bottom: 18px; }
.ticks { list-style: none; display: grid; gap: 10px; padding: 0 !important; }
.ticks li { position: relative; padding-left: 28px; color: var(--muted); }
.ticks li::before { content: ""; position: absolute; left: 0; top: .78em; width: 14px; height: 1.5px; background: var(--mint); }
.pill { display: inline-flex !important; padding: 6px 12px; border: 1px solid var(--orange); color: var(--orange); font-size: var(--fs-xs) !important; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; width: max-content; }
.chips { display: flex !important; flex-wrap: wrap; gap: 8px; }
.chips p { margin: 0 !important; padding: 6px 12px; border: 1px solid var(--line-strong); font-size: var(--fs-sm); color: var(--muted); }

/* Contacts */
.contact-wrap { display: grid !important; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 96px); }
.contact-cards { border-top: 1px solid var(--line); }
.contact-card { display: grid !important; grid-template-columns: 44px minmax(0, 1fr); gap: 2px 16px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); --ico-size: 22px; }
.contact-card::before { grid-row: 1 / span 2; }
.contact-card > * { margin: 0 !important; grid-column: 2; }
.contact-card p:first-of-type { color: var(--faint); font-size: var(--fs-xs); }
.contact-card p:last-of-type { font-size: var(--fs-base); font-weight: 500; overflow-wrap: anywhere; }
.contact-card a { color: var(--text); text-decoration: none; }
.contact-card a:hover { color: var(--mint); }
.map-card { margin-top: 28px !important; border: 1px solid var(--line); aspect-ratio: 16 / 10; display: grid !important; place-content: center; justify-items: center; gap: 10px; text-align: center; padding: 20px; --ico-size: 44px; --ico-color: var(--orange);
  background: linear-gradient(var(--line) 1px, transparent 1px) 0 0 / 40px 40px, linear-gradient(90deg, var(--line) 1px, transparent 1px) 0 0 / 40px 40px, var(--ink-2); }
.map-card::before { animation: bob 2.4s var(--ease-in-out) infinite; }
.map-card > * { margin: 0 !important; }
@keyframes bob { 50% { transform: translateY(-6px); } }

/* Contact form (gps/contact-form) */
.gps-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.gps-field { display: grid; gap: 8px; min-width: 0; }
.gps-field--full { grid-column: 1 / -1; }
.gps-field label { font-size: var(--fs-sm); font-weight: 600; }
.gps-field label span { color: var(--orange); }
.gps-input { width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--line-strong); padding: 12px 0; font: inherit; color: var(--text); transition: border-color .5s; }
.gps-input:focus { outline: none; border-color: var(--mint); box-shadow: 0 1px 0 0 var(--mint); }
select.gps-input option { background: var(--ink); }
textarea.gps-input { resize: vertical; min-height: 130px; }
.gps-input[aria-invalid="true"] { border-color: var(--orange); }
.gps-err { font-size: var(--fs-xs); color: var(--orange); }
.gps-check { display: flex; gap: 12px; align-items: flex-start; font-size: var(--fs-sm); color: var(--muted); }
.gps-check input { width: 18px; height: 18px; accent-color: var(--mint); margin-top: 2px; flex: none; }
.gps-hp { position: absolute !important; left: -9999px !important; }
.gps-notice { border: 1px solid var(--mint); padding: 24px; display: grid; gap: 8px; margin-bottom: 24px; }
.gps-notice--error { border-color: var(--orange); }
.gps-notice strong { color: var(--mint); font-size: var(--fs-h4); font-weight: 500; }
.gps-notice--error strong { color: var(--orange); }

/* Blog */
.post-grid .wp-block-post-template { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 32px; }
.post-card { display: grid !important; gap: 14px; align-content: start; }
.post-card > * { margin: 0 !important; }
.post-card .wp-block-post-featured-image { position: relative; overflow: hidden; aspect-ratio: 3 / 2; }
.post-card .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.8s var(--ease); }
.post-card:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.post-card .wp-block-post-title { font-size: var(--fs-h3); }
.post-card .wp-block-post-title a { color: var(--text); text-decoration: none; transition: color .5s; }
.post-card .wp-block-post-title a:hover { color: var(--mint); }
.post-card .wp-block-post-excerpt { color: var(--muted); font-size: var(--fs-sm); }
.post-card .wp-block-post-excerpt__more-link { color: var(--mint); font-weight: 600; text-decoration: none; }
.post-meta { display: flex !important; flex-wrap: wrap; gap: 8px 18px; font-size: var(--fs-sm); color: var(--faint); }
.post-meta > * { margin: 0 !important; }
.single-media { margin-bottom: 56px !important; }
.single-media img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.entry-content { font-size: 1.1rem; line-height: 1.75; color: rgba(249, 240, 223, .86); }
.entry-content > p:first-child::first-letter { float: left; font-size: 3.6em; line-height: .86; color: var(--mint); padding: .06em .1em 0 0; }
.entry-content h2, .entry-content h3 { margin-top: 2em; }
.wp-block-query-pagination { margin-top: 48px; gap: 12px; }
.wp-block-query-pagination a { color: var(--mint); }

/* Legal (terms) */
.legal { display: grid !important; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(32px, 5vw, 88px); }
.legal > * { margin: 0 !important; }
.toc { position: sticky; top: calc(var(--header-h) + var(--adminbar) + 32px); align-self: start; display: grid; gap: 2px; font-size: var(--fs-sm); max-height: calc(100vh - var(--header-h) - 64px); overflow: auto; }
.toc a { text-decoration: none; color: var(--muted); padding: 7px 0 7px 14px; border-left: 1px solid var(--line); transition: color .45s, border-color .45s; }
.toc a:hover, .toc a.is-active { color: var(--text); border-color: var(--mint); }
.legal-body { max-width: 74ch; color: var(--muted); }
.legal-body > * { max-width: none !important; margin-left: 0 !important; }
.legal-body h2 { font-size: var(--fs-h4); color: var(--text); margin: 2.4em 0 .8em !important; padding-top: 1.2em; border-top: 1px solid var(--line); scroll-margin-top: calc(var(--header-h) + 24px); }
.legal-body h2:first-child { margin-top: 0 !important; padding-top: 0; border-top: 0; }
.legal-body h3 { font-size: var(--fs-lg); color: var(--text); margin: 1.6em 0 .6em !important; }
.legal-body ul { padding-left: 1.2em; display: grid; gap: .4em; }
.legal-body li::marker { color: var(--mint); }
.legal-body strong { color: var(--text); }
.legal-body .wp-block-spacer { display: none; }
.note-box { border: 1px solid var(--line-strong); border-left: 3px solid var(--orange) !important; padding: 18px 22px; color: var(--muted); font-size: var(--fs-sm) !important; }

/* Brand guide */
.swatches { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid var(--line); }
.swatch { display: grid !important; grid-template-rows: 160px auto auto; min-width: 0; }
.swatch + .swatch { border-left: 1px solid var(--line); }
.swatch > * { margin: 0 !important; }
.swatch__chip { border-bottom: 1px solid var(--line); min-height: 160px; }
.swatch p { padding: 0 16px; font-size: var(--fs-sm); }
.swatch p:nth-child(2) { padding-top: 14px; font-weight: 600; font-variant-numeric: tabular-nums; letter-spacing: .03em; }
.swatch p:nth-child(3) { padding-bottom: 14px; color: var(--faint); font-size: var(--fs-xs); }
.logos { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.logo-card { border: 1px solid var(--line); display: grid !important; grid-template-rows: auto 1fr; }
.logo-card > * { margin: 0 !important; }
.logo-card .wp-block-image { aspect-ratio: 4 / 3; display: grid; place-items: center; padding: 40px; background: var(--ink-2); }
.logo-card .wp-block-image img { max-height: 140px; width: auto; }
.logo-card__info { padding: 18px 20px; display: flex !important; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid var(--line); }
.logo-card__info > * { margin: 0 !important; }
.logo-card__info h3 { font-size: var(--fs-base); }
.logo-card__info p { font-size: var(--fs-sm); color: var(--muted); }
.type-specimen { border-top: 1px solid var(--line); }
.type-row { display: grid !important; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; align-items: baseline; padding: 22px 0; border-bottom: 1px solid var(--line); }
.type-row > * { margin: 0 !important; }
.type-row > p:first-child { color: var(--faint); font-size: var(--fs-xs) !important; letter-spacing: .03em; }

/* Status pages + 404 */
.wp-block-cover.status { min-height: 100vh !important; min-height: 100svh !important; padding: calc(var(--header-h) + 60px) max(20px, env(safe-area-inset-right)) 80px max(20px, env(safe-area-inset-left)) !important; margin: 0 !important; }
.wp-block-cover.status .wp-block-cover__image-background { filter: grayscale(1); }
.wp-block-cover.status .wp-block-cover__background { background: var(--ink) !important; opacity: .82 !important; }
.status__card { position: relative; max-width: 720px; width: 100%; margin-inline: auto; display: grid !important; gap: 22px; padding: clamp(32px, 5vw, 64px); border: 1px solid var(--line-strong); background: rgba(19, 36, 46, .7); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); --vf-inset: -1px; --vf-color: var(--mint); --vf-len: 22px; }
.status__card > * { margin: 0 !important; }
.status__card h1 { font-size: clamp(1.7rem, 1.3rem + 1.6vw, 2.5rem); }
.status__icon { width: 64px; height: 64px; display: grid !important; place-items: center; border: 1px solid currentColor; --ico-size: 30px; color: var(--mint); --ico-color: var(--mint); }
.status__icon--warn { color: var(--orange); --ico-color: var(--orange); }
.status__card ol { counter-reset: s; list-style: none; display: grid; gap: 12px; padding: 0; }
.status__card ol li { counter-increment: s; display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; color: var(--muted); }
.status__card ol li::before { content: counter(s); width: 28px; height: 28px; border: 1px solid var(--mint); color: var(--mint); display: grid; place-items: center; font-size: var(--fs-xs); font-weight: 600; }
.big-404 { font-size: clamp(5rem, 3rem + 10vw, 11rem) !important; font-weight: 300; line-height: .85; letter-spacing: -.06em; color: transparent !important; -webkit-text-stroke: 1.5px var(--mint); }

/* Booking page */
.booking { display: grid !important; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(24px, 3vw, 48px); align-items: start; }

/* ---------- Reveal (JS marks only below-fold items) ---------- */
.js [data-reveal].is-pending { opacity: 0; transform: translateY(18px); }
.js [data-reveal] { transition: opacity 1.4s var(--ease), transform 1.4s var(--ease); transition-delay: var(--d, 0s); }

/* ---------- Lenis ---------- */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: clip; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .header-tools .wp-block-buttons { display: none !important; }
  .specs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .spec:nth-child(4) { border-left: 0; padding-left: 0; }
  .spec:nth-child(n+4) { border-top: 1px solid var(--line); }
  .gear { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing, .booking { grid-template-columns: 1fr; }
  .calc, .price-aside { position: static; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .swatches { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .swatch:nth-child(4) { border-left: 0; }
  .swatch:nth-child(n+4) { border-top: 1px solid var(--line); }
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  :root { --header-h: 66px; }
  .site-header .brand img { height: 40px !important; }
  .split, .process, .faq, .founder, .contact-wrap, .svc-detail, .sec-head--split, .legal { grid-template-columns: 1fr; }
  .svc-detail:nth-child(odd of .svc-detail) > .wp-block-image { order: 0; }
  .process__sticky, .faq__intro, .toc { position: static; }
  .toc { display: none; }
  .quotes, .aud, .team, .grid-3, .logos { grid-template-columns: 1fr; }
  .quotes .wp-block-quote, .quotes .wp-block-quote + .wp-block-quote { padding: 28px 0; border-left: 0; border-top: 1px solid var(--line); }
  .quotes .wp-block-quote:first-child { border-top: 0; }
  .aud__item, .aud__item + .aud__item { padding: 28px 0; border-left: 0; border-top: 1px solid var(--line); }
  .aud__item:first-child { border-top: 0; }
  .plans { grid-template-columns: 1fr; }
  .plan + .plan { border-left: 0; border-top: 1px solid var(--line); }
  .plan { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .plan__meta { grid-column: 1 / -1; }
  .svc-row { grid-template-columns: 44px minmax(0, 1fr) 36px; gap: 8px 16px; --ico-size: 30px; }
  .svc-row::before { grid-row: 1; }
  .svc-row h3 { grid-column: 2; grid-row: 1; }
  .svc-row p { grid-column: 2 / 3; grid-row: 2; }
  .svc-row::after { grid-column: 3; grid-row: 1; width: 36px; height: 36px; }
  .svc-peek { display: none; }
  .type-row { grid-template-columns: 1fr; gap: 6px; }
  .post-grid .wp-block-post-template { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spec, .spec + .spec { padding: 14px 12px 14px 0; border-left: 0; }
  .spec:nth-child(even) { padding-left: 14px; border-left: 1px solid var(--line); }
  .spec:nth-child(n+3) { border-top: 1px solid var(--line); }
  .spec:nth-child(5) { grid-column: 1 / -1; }
  .facts { grid-template-columns: 1fr; }
  .facts > .wp-block-group + .wp-block-group { border-left: 0; border-top: 1px solid var(--line); }
  .gear { grid-template-columns: 1fr; }
  .gear__item--wide, .gear__photo { grid-column: auto; }
  .conditions { grid-template-columns: 1fr; }
  .cond + .cond { border-left: 0; border-top: 1px solid var(--line); }
  .gps-form, .grid-4 { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .swatches { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .swatch:nth-child(n) { border-left: 0; border-top: 1px solid var(--line); }
  .swatch:nth-child(even) { border-left: 1px solid var(--line); }
  .swatch:nth-child(-n+2) { border-top: 0; }
  .header-tools .gps-lang { display: none; }
  .vf-hud > span:last-child { display: none; }
  .hero .wp-block-buttons > .wp-block-button { flex: 1 1 auto; }
  .hero .wp-block-buttons .wp-block-button__link { width: 100%; }
  .calc { padding: 22px; }
  .acc details > :not(summary) { margin-right: 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .marquee__track { flex-wrap: wrap !important; width: auto; }
  .js [data-reveal].is-pending { opacity: 1; transform: none; }
  .marquee__track > [aria-hidden="true"] { display: none; }
}
