/* Swiss Valley public website (FrontendWebsite module). Dark and light themes share one set of tokens. */

/* Theme tokens: dark is the base; light applies via [data-theme="light"] or, without JavaScript, the system setting.
   .sv-invert flips to the opposite scheme for one band. */
:root,
:root[data-theme="light"] .sv-invert {
    --sv-bg: #0E1A33;
    --sv-bg-alt: #14213D;
    --sv-text: #EEF2F8;
    --sv-muted: #B4C3DA;
    --sv-soft: #9FB7D9;
    --sv-line: rgba(159, 183, 217, 0.2);
    --sv-card: rgba(14, 26, 51, 0.6);
    --sv-glass: linear-gradient(160deg, rgba(43, 63, 107, 0.55), rgba(20, 33, 61, 0.45));
    --sv-glass-border: rgba(159, 183, 217, 0.22);
    --sv-shadow: 0 30px 60px -32px rgba(0, 0, 0, 0.7);
    --sv-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    --sv-accent-text: #F6C25B;
    --sv-accent-label: #E9A01B;
    --sv-accent-wash: rgba(233, 160, 27, 0.08);
    --sv-accent-line: rgba(233, 160, 27, 0.55);
    --sv-ghost: rgba(238, 242, 248, 0.35);
    --sv-chip: rgba(255, 255, 255, 0.05);
    --sv-hover: rgba(255, 255, 255, 0.06);
    --sv-grid: rgba(159, 183, 217, 0.26);
    --sv-globe-1: #2B3F6B;
    --sv-globe-2: #14213D;
    --sv-header: rgba(14, 26, 51, 0.8);
    --sv-image-fade: 0.42;
    --sv-show-dark: inline-block;
    --sv-show-light: none;
    color-scheme: dark;
}

:root[data-theme="light"],
:root:not([data-theme="light"]) .sv-invert {
    --sv-bg: #F7F4EE;
    --sv-bg-alt: #EFE9DD;
    --sv-text: #14213D;
    --sv-muted: #45536F;
    --sv-soft: #52668B;
    --sv-line: rgba(20, 33, 61, 0.13);
    --sv-card: #FFFFFF;
    --sv-glass: linear-gradient(160deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.62));
    --sv-glass-border: rgba(20, 33, 61, 0.1);
    --sv-shadow: 0 30px 60px -36px rgba(20, 33, 61, 0.35);
    --sv-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.9);
    --sv-accent-text: #8A5A00;
    --sv-accent-label: #8A5A00;
    --sv-accent-wash: rgba(233, 160, 27, 0.12);
    --sv-accent-line: rgba(184, 120, 0, 0.55);
    --sv-ghost: rgba(20, 33, 61, 0.3);
    --sv-chip: rgba(20, 33, 61, 0.04);
    --sv-hover: rgba(20, 33, 61, 0.05);
    --sv-grid: rgba(20, 33, 61, 0.16);
    --sv-globe-1: #FFFFFF;
    --sv-globe-2: #E3EAF4;
    --sv-header: rgba(247, 244, 238, 0.86);
    --sv-image-fade: 0.3;
    --sv-show-dark: none;
    --sv-show-light: inline-block;
    color-scheme: light;
}

@media (prefers-color-scheme: light) {
    :root:not([data-theme]) {
        --sv-bg: #F7F4EE; --sv-bg-alt: #EFE9DD; --sv-text: #14213D; --sv-muted: #45536F; --sv-soft: #52668B;
        --sv-line: rgba(20, 33, 61, 0.13); --sv-card: #FFFFFF;
        --sv-glass: linear-gradient(160deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.62));
        --sv-glass-border: rgba(20, 33, 61, 0.1); --sv-shadow: 0 30px 60px -36px rgba(20, 33, 61, 0.35);
        --sv-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.9); --sv-accent-text: #8A5A00; --sv-accent-label: #8A5A00;
        --sv-accent-wash: rgba(233, 160, 27, 0.12); --sv-accent-line: rgba(184, 120, 0, 0.55); --sv-ghost: rgba(20, 33, 61, 0.3);
        --sv-chip: rgba(20, 33, 61, 0.04); --sv-hover: rgba(20, 33, 61, 0.05); --sv-grid: rgba(20, 33, 61, 0.16);
        --sv-globe-1: #FFFFFF; --sv-globe-2: #E3EAF4; --sv-header: rgba(247, 244, 238, 0.86); --sv-image-fade: 0.3;
        --sv-show-dark: none; --sv-show-light: inline-block; color-scheme: light;
    }
}

:root {
    --sv-gold: #E9A01B;
    --sv-gold-soft: #F6C25B;
    --sv-navy: #14213D;
    --sv-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
    --sv-body: "Manrope", "Helvetica Neue", Arial, sans-serif;
    --sv-gutter: clamp(16px, 4vw, 40px);
    --sv-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 88px; -webkit-text-size-adjust: 100%; }

body.sv-body { margin: 0; background: var(--sv-bg); color: var(--sv-text); font: 400 17px/1.65 var(--sv-body); overflow-x: clip; transition: background-color 0.3s; }

img, svg { display: block; max-width: 100%; }
a { color: inherit; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; hyphens: manual; overflow-wrap: break-word; }
blockquote, figure { margin: 0; }
address { font-style: normal; }

::selection { background: var(--sv-gold); color: var(--sv-navy); }
:focus-visible { outline: 2px solid var(--sv-gold); outline-offset: 3px; border-radius: 6px; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sv-skip { position: absolute; left: 16px; top: -60px; z-index: 100; background: var(--sv-gold); color: var(--sv-navy); padding: 10px 16px; border-radius: 999px; font-weight: 700; text-decoration: none; }
.sv-skip:focus { top: 12px; }

.sv-wrap { width: min(1200px, 100%); margin-inline: auto; padding-inline: var(--sv-gutter); }
.sv-wrap-narrow { width: min(860px, 100%); }

.sv-show-dark { display: var(--sv-show-dark); }
.sv-show-light { display: var(--sv-show-light); }

/* Type */
.sv-hero-title, .sv-h1, .sv-h2, .sv-h3, .sv-h4, .sv-price, .sv-footer-mark, .sv-big-number {
    font-family: var(--sv-display); font-stretch: 125%; letter-spacing: -0.015em;
}
.sv-h1 { font-size: clamp(36px, 5vw, 68px); line-height: 1; font-weight: 750; font-stretch: 115%; letter-spacing: -0.03em; }
.sv-h2 { font-size: clamp(27px, 3.6vw, 48px); line-height: 1.06; font-weight: 700; max-width: 22ch; }
.sv-h3 { font-size: clamp(21px, 2.1vw, 28px); line-height: 1.12; font-weight: 700; }
.sv-h4 { font-size: 18px; line-height: 1.25; font-weight: 650; font-stretch: 112%; }
.sv-eyebrow { margin: 0 0 14px; color: var(--sv-accent-label); font-weight: 700; font-size: 14px; letter-spacing: 0.02em; display: inline-flex; align-items: center; gap: 10px; }
.sv-eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.sv-lead { color: var(--sv-muted); font-size: clamp(17px, 1.4vw, 19px); max-width: 62ch; margin: 18px 0 0; }
.sv-lead strong { color: var(--sv-text); font-weight: 600; }
.sv-prose p { color: var(--sv-muted); max-width: 68ch; }
.sv-prose p:last-child { margin-bottom: 0; }
.sv-prose strong { color: var(--sv-text); }

/* Buttons and links */
.sv-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 24px; border-radius: 999px;
    font: 700 15px/1.2 var(--sv-body); text-decoration: none; text-align: center; border: 1px solid transparent; cursor: pointer;
    transition: transform 0.25s var(--sv-ease), box-shadow 0.25s var(--sv-ease), background-color 0.25s, border-color 0.25s, color 0.25s;
}
.sv-btn-gold { background: var(--sv-gold); color: var(--sv-navy); box-shadow: 0 10px 30px -12px rgba(233, 160, 27, 0.8); }
.sv-btn-gold:hover { background: var(--sv-gold-soft); transform: translateY(-1px); box-shadow: 0 16px 36px -12px rgba(233, 160, 27, 0.9); }
.sv-btn-ghost { color: var(--sv-text); border-color: var(--sv-ghost); background: var(--sv-chip); }
.sv-btn-ghost:hover { border-color: var(--sv-text); background: var(--sv-hover); }
.sv-btn-line { color: var(--sv-text); border-color: var(--sv-line); }
.sv-btn-line:hover { border-color: var(--sv-gold); color: var(--sv-accent-text); }
.sv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 32px; }

.sv-link { color: var(--sv-text); font-weight: 600; text-decoration: underline; text-decoration-color: var(--sv-accent-line); text-underline-offset: 5px; text-decoration-thickness: 1px; }
.sv-link:hover { color: var(--sv-accent-text); text-decoration-color: currentColor; }

.sv-chip-tag { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; border: 1px solid var(--sv-accent-line); background: var(--sv-accent-wash); color: var(--sv-accent-text); font-size: 13px; font-weight: 700; }

/* Glass */
.sv-glass {
    background: var(--sv-glass); border: 1px solid var(--sv-glass-border); box-shadow: var(--sv-highlight), var(--sv-shadow);
    -webkit-backdrop-filter: blur(18px) saturate(140%); backdrop-filter: blur(18px) saturate(140%);
}

/* Media: photos with a soft frame */
.sv-media { position: relative; border-radius: 26px; overflow: hidden; background: var(--sv-bg-alt); box-shadow: var(--sv-shadow); }
.sv-media img { width: 100%; height: 100%; object-fit: cover; }
.sv-media figcaption { position: absolute; left: 16px; right: 16px; bottom: 16px; padding: 12px 16px; border-radius: 16px; background: var(--sv-header); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid var(--sv-glass-border); font-size: 14px; color: var(--sv-muted); display: grid; gap: 2px; }
.sv-media figcaption strong { color: var(--sv-text); font-size: 15px; }

/* Header */
.sv-header { position: sticky; top: 0; z-index: 50; transition: background-color 0.3s, border-color 0.3s; border-bottom: 1px solid transparent; }
.sv-header.is-scrolled { background: var(--sv-header); border-bottom-color: var(--sv-line); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.sv-header.is-open { background: var(--sv-bg); border-bottom-color: var(--sv-line); -webkit-backdrop-filter: none; backdrop-filter: none; }
.sv-header-inner { display: flex; align-items: center; gap: 20px; min-height: 72px; }
.sv-brand { display: inline-flex; align-items: center; text-decoration: none; flex: none; padding-block: 4px; }
.sv-brand img { height: 34px; width: auto; }
.sv-nav { display: flex; align-items: center; gap: 18px; margin-left: auto; }
.sv-nav-list { display: flex; gap: 2px; align-items: center; }
.sv-nav-list > li { position: relative; }
.sv-nav-list > li > a, .sv-nav-trigger {
    display: inline-flex; align-items: center; gap: 6px; padding: 10px 12px; border-radius: 999px; text-decoration: none; font: 600 15px/1.2 var(--sv-body);
    color: var(--sv-muted); background: none; border: 0; cursor: pointer;
}
.sv-nav-list > li > a:hover, .sv-nav-trigger:hover, .sv-nav-trigger[aria-expanded="true"], .sv-nav-list a[aria-current="page"] { color: var(--sv-text); background: var(--sv-hover); }
.sv-nav-trigger::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform 0.25s var(--sv-ease); }
.sv-nav-trigger[aria-expanded="true"]::after { transform: translateY(1px) rotate(-135deg); }
.sv-subnav { position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%); width: 320px; padding: 8px; border-radius: 20px; display: grid; gap: 2px; z-index: 60; background: var(--sv-bg); }
.sv-subnav[hidden] { display: none; }
.sv-subnav a { display: grid; gap: 2px; padding: 12px 14px; border-radius: 14px; text-decoration: none; }
.sv-subnav a:hover, .sv-subnav a[aria-current="page"] { background: var(--sv-hover); }
.sv-subnav strong { font-size: 15px; }
.sv-subnav span { font-size: 13px; color: var(--sv-muted); }
.sv-nav-cta { min-height: 42px; padding: 10px 18px; font-size: 14px; }
.sv-header-tools { display: flex; align-items: center; gap: 8px; }

.sv-theme-toggle, .sv-menu-toggle { width: 42px; height: 42px; border-radius: 999px; border: 1px solid var(--sv-line); background: var(--sv-chip); color: var(--sv-text); cursor: pointer; display: grid; place-items: center; flex: none; }
.sv-theme-toggle:hover, .sv-menu-toggle:hover { background: var(--sv-hover); }
.sv-theme-toggle svg { width: 18px; height: 18px; }
.sv-theme-toggle .sv-icon-sun { display: var(--sv-show-dark); }
.sv-theme-toggle .sv-icon-moon { display: var(--sv-show-light); }

.mg-locale-switch-public { display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: var(--sv-chip); border: 1px solid var(--sv-line); margin: 0; }
.mg-locale-switch-public button { border: 0; background: transparent; color: var(--sv-muted); font: 700 12px/1 var(--sv-body); letter-spacing: 0.06em; padding: 8px 11px; border-radius: 999px; cursor: pointer; min-height: 32px; }
.mg-locale-switch-public button.is-active { background: var(--sv-gold); color: var(--sv-navy); }

.sv-menu-toggle { display: none; }
.sv-menu-bars, .sv-menu-bars::before, .sv-menu-bars::after { display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px; transition: transform 0.25s var(--sv-ease), background-color 0.2s; }
.sv-menu-bars { position: relative; }
.sv-menu-bars::before, .sv-menu-bars::after { content: ""; position: absolute; left: 0; }
.sv-menu-bars::before { top: -6px; }
.sv-menu-bars::after { top: 6px; }
.sv-menu-toggle[aria-expanded="true"] .sv-menu-bars { background: transparent; }
.sv-menu-toggle[aria-expanded="true"] .sv-menu-bars::before { transform: translateY(6px) rotate(45deg); }
.sv-menu-toggle[aria-expanded="true"] .sv-menu-bars::after { transform: translateY(-6px) rotate(-45deg); }

/* Home hero */
.sv-hero { position: relative; margin-top: -72px; padding: calc(72px + clamp(32px, 6vw, 72px)) 0 clamp(56px, 7vw, 96px); overflow: hidden; background: var(--sv-bg); }
.sv-hero-photo { position: absolute; inset: 0; z-index: 0; }
.sv-hero-photo img { width: 100%; height: 100%; object-fit: cover; opacity: var(--sv-image-fade); }
.sv-hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--sv-bg) 18%, transparent 75%), linear-gradient(0deg, var(--sv-bg) 4%, transparent 45%), linear-gradient(180deg, var(--sv-bg) 0, transparent 22%); }
.sv-hero > .sv-wrap { position: relative; z-index: 1; }
.sv-hero-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.sv-hero-title { font-size: clamp(38px, 5.2vw, 76px); font-stretch: 112%; line-height: 1; font-weight: 750; letter-spacing: -0.03em; max-width: 15ch; }
.sv-hero-quote { margin: 28px 0 0; max-width: 52ch; color: var(--sv-muted); font-size: clamp(17px, 1.5vw, 20px); line-height: 1.6; border-left: 2px solid var(--sv-gold); padding-left: 18px; }

.sv-globe { position: relative; margin: 0; aspect-ratio: 1; width: 100%; max-width: 560px; justify-self: end; }
.sv-globe svg { width: 100%; height: 100%; overflow: visible; }
.sv-globe-stop-1 { stop-color: var(--sv-globe-1); }
.sv-globe-stop-2 { stop-color: var(--sv-globe-2); }
.sv-globe-grid { fill: none; stroke: var(--sv-grid); stroke-width: 1; }
.sv-route-path { fill: none; stroke-width: 2.5; stroke-linecap: round; filter: drop-shadow(0 0 8px rgba(233, 160, 27, 0.6)); }
.sv-pin circle { fill: var(--sv-gold); }
.sv-pin .sv-pin-halo { fill: rgba(233, 160, 27, 0.18); stroke: rgba(233, 160, 27, 0.6); stroke-width: 1; transform-box: fill-box; transform-origin: center; }
.sv-globe-labels { position: absolute; inset: 0; pointer-events: none; }
.sv-place { position: absolute; display: grid; gap: 2px; padding: 10px 14px; border-radius: 14px; background: var(--sv-header); border: 1px solid var(--sv-line); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); font-size: 13px; color: var(--sv-muted); line-height: 1.35; }
.sv-place strong { color: var(--sv-text); font-size: 14px; }
.sv-place > span { white-space: nowrap; }
.sv-place time { font: 700 22px/1.1 var(--sv-display); font-stretch: 125%; color: var(--sv-accent-text); font-variant-numeric: tabular-nums; margin-top: 4px; }
.sv-place-ch { left: 72%; top: 6%; }
.sv-place-py { left: 0; top: 76%; }

.sv-mandate { margin-top: clamp(40px, 6vw, 72px); border-radius: 28px; padding: clamp(24px, 4vw, 40px); display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 24px; align-items: start; }
.sv-mandate h2 { font: 700 15px/1.4 var(--sv-body); color: var(--sv-accent-label); }
.sv-mandate p { margin: 0; font-size: clamp(19px, 2vw, 26px); line-height: 1.45; max-width: 60ch; }

/* Entrance: one orchestrated moment on the home hero, a light rise on subpage heroes */
.js .sv-hero-title, .js .sv-hero-quote, .js .sv-hero .sv-actions, .js .sv-page-hero-copy > * { animation: sv-rise 0.9s var(--sv-ease) both; }
.js .sv-hero-quote, .js .sv-page-hero-copy > :nth-child(2) { animation-delay: 0.12s; }
.js .sv-hero .sv-actions, .js .sv-page-hero-copy > :nth-child(n + 3) { animation-delay: 0.22s; }
.js .sv-route-path { stroke-dasharray: 1; stroke-dashoffset: 1; animation: sv-draw 1.8s 0.5s var(--sv-ease) forwards; }
.js .sv-pin-ch { animation: sv-fade 0.5s 0.3s both; }
.js .sv-pin-py { animation: sv-fade 0.5s 2.1s both; }
.js .sv-pin-py .sv-pin-halo { animation: sv-pulse 2.4s 2.3s 3 ease-out; }
.js .sv-place-ch { animation: sv-fade 0.6s 0.5s both; }
.js .sv-place-py { animation: sv-fade 0.6s 2.2s both; }

@keyframes sv-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes sv-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sv-draw { to { stroke-dashoffset: 0; } }
@keyframes sv-pulse { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(2.4); opacity: 0; } }

/* Sections */
.sv-section { padding-block: clamp(64px, 9vw, 120px); position: relative; background: var(--sv-bg); color: var(--sv-text); }
.sv-section-alt { background: var(--sv-bg-alt); }
.sv-section-tight { padding-top: 0; }
.sv-invert { background: var(--sv-bg); color: var(--sv-text); }
.sv-section-head { margin-bottom: clamp(32px, 4vw, 52px); }
.sv-section-head-row { display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; }
.sv-section-foot { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }

/* Offers console */
.sv-console { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 20px; align-items: stretch; }
.sv-console-tabs { display: grid; gap: 10px; align-content: start; }
.sv-console-tab { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; text-align: left; padding: 18px 20px 18px 24px; border-radius: 18px; border: 1px solid var(--sv-line); background: var(--sv-chip); color: var(--sv-text); font: inherit; cursor: pointer; transition: background-color 0.25s, border-color 0.25s; }
.sv-console-tab::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px; border-radius: 0 3px 3px 0; background: var(--sv-gold); transform: scaleY(0); transition: transform 0.35s var(--sv-ease); }
.sv-console-tab:hover { background: var(--sv-hover); }
.sv-console-tab[aria-selected="true"] { background: var(--sv-accent-wash); border-color: var(--sv-accent-line); }
.sv-console-tab[aria-selected="true"]::before { transform: scaleY(1); }
.sv-console-tab-number { grid-column: 1 / -1; font-size: 13px; color: var(--sv-accent-label); font-weight: 700; }
.sv-console-tab-name { font: 700 19px/1.2 var(--sv-display); font-stretch: 115%; }
.sv-console-tab-price { grid-row: 2 / 4; grid-column: 2; align-self: center; font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sv-console-tab-tag { color: var(--sv-muted); font-size: 14px; }

.sv-console-panel { border-radius: 28px; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr); position: relative; }
.sv-console-panel + .sv-console-panel { margin-top: 16px; }
.js .sv-console-panel + .sv-console-panel { margin-top: 0; }
.js .sv-console-panel[hidden] { display: none; }
.js .sv-console-panel.is-entering { animation: sv-rise 0.5s var(--sv-ease) both; }
.sv-console-image { height: 190px; position: relative; }
.sv-console-image img { width: 100%; height: 100%; object-fit: cover; }
.sv-console-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14, 26, 51, 0.55), transparent 60%); }
.sv-console-body { padding: clamp(24px, 3.5vw, 40px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 260px); gap: 32px; }
.sv-console-lead { margin: 16px 0 24px; font-size: clamp(18px, 1.6vw, 21px); max-width: 46ch; }
.sv-checks { display: grid; gap: 12px; }
.sv-checks li { position: relative; padding-left: 34px; color: var(--sv-muted); }
.sv-checks li::before { content: ""; position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 50%; border: 1px solid var(--sv-gold); background: radial-gradient(circle, var(--sv-gold) 0 3px, transparent 4px); }
.sv-console-side { display: grid; gap: 14px; align-content: end; justify-items: start; }
.sv-price { font-size: clamp(26px, 2.4vw, 34px); font-weight: 750; line-height: 1; margin: 0 0 8px; color: var(--sv-accent-text); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Properties */
.sv-property-contact { display: grid; gap: 2px; margin: 0; font-size: 15px; color: var(--sv-muted); }
.sv-property-contact a { color: var(--sv-text); }
.sv-property-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sv-property { border-radius: 22px; overflow: hidden; border: 1px solid var(--sv-line); background: var(--sv-card); display: flex; flex-direction: column; }
.sv-property-visual { position: relative; aspect-ratio: 4 / 3; padding: 18px; display: flex; flex-direction: column; justify-content: space-between; color: #fff; }
.sv-property-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sv-property-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(10, 18, 36, 0.8), rgba(10, 18, 36, 0) 55%); }
.sv-property-visual > :not(img) { position: relative; z-index: 1; }
.sv-property-number { align-self: flex-start; font-size: 13px; font-weight: 700; color: var(--sv-navy); background: var(--sv-gold); padding: 4px 10px; border-radius: 999px; }
.sv-property-price { margin: 0; font: 750 clamp(28px, 2.8vw, 38px)/1 var(--sv-display); font-stretch: 125%; font-variant-numeric: tabular-nums; color: #fff; }
.sv-property-price small { font-size: 0.42em; font-weight: 600; letter-spacing: 0; opacity: 0.85; }
.sv-amenities { display: flex; flex-wrap: wrap; gap: 8px; }
.sv-amenities li { padding: 6px 12px; border-radius: 999px; border: 1px solid rgba(246, 194, 91, 0.7); background: rgba(10, 18, 36, 0.65); font-size: 13px; font-weight: 600; color: #fff; }
.sv-property-body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.sv-property-body > p { color: var(--sv-muted); font-size: 16px; }
.sv-property-body > .sv-property-tag { color: var(--sv-soft); font-weight: 600; font-size: 14px; margin-bottom: 12px; }
.sv-facts { margin: 4px 0 20px; display: grid; }
.sv-facts > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-top: 1px solid var(--sv-line); font-size: 15px; }
.sv-facts dt { color: var(--sv-muted); }
.sv-facts dd { margin: 0; font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.sv-property-links { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.sv-property-links .sv-link { font-size: 15px; }

/* Insights and video */
.sv-insights-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 40px; }
.sv-insights-grid .sv-section-head { grid-column: 1 / -1; }
.sv-video { border-radius: 26px; overflow: hidden; position: relative; aspect-ratio: 16 / 9; display: grid; }
.sv-video-play {
    position: relative; width: 100%; height: 100%; border: 0; cursor: pointer; color: var(--sv-text); text-align: left; font: inherit; display: flex; align-items: flex-end; gap: 18px; padding: clamp(18px, 3vw, 28px);
    background: radial-gradient(70% 90% at 70% 20%, rgba(233, 160, 27, 0.25), transparent 70%), radial-gradient(60% 80% at 20% 80%, rgba(159, 183, 217, 0.18), transparent 70%), transparent;
}
.sv-video-icon { flex: none; width: 64px; height: 64px; border-radius: 50%; background: var(--sv-gold); position: relative; box-shadow: 0 0 0 10px rgba(233, 160, 27, 0.18); transition: transform 0.3s var(--sv-ease); }
.sv-video-icon::after { content: ""; position: absolute; left: 26px; top: 21px; border-left: 17px solid var(--sv-navy); border-top: 11px solid transparent; border-bottom: 11px solid transparent; }
.sv-video-play:hover .sv-video-icon { transform: scale(1.06); }
.sv-video-text { display: grid; gap: 2px; }
.sv-video-text strong { font: 700 clamp(20px, 2vw, 26px)/1.15 var(--sv-display); font-stretch: 115%; }
.sv-video-source { color: var(--sv-muted); font-size: 14px; }
.sv-video-hint { position: absolute; top: 16px; left: 20px; right: 20px; margin: 0; font-size: 13px; color: var(--sv-muted); pointer-events: none; }
.sv-video iframe { width: 100%; height: 100%; border: 0; }
.sv-explainers { display: flex; flex-direction: column; gap: 16px; }
.sv-explainers ul { display: grid; gap: 10px; }
.sv-explainers li a { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; border-radius: 16px; border: 1px solid var(--sv-line); text-decoration: none; transition: border-color 0.25s, background-color 0.25s; }
.sv-explainers li a:hover { border-color: var(--sv-accent-line); background: var(--sv-accent-wash); }
.sv-explainer-number { color: var(--sv-accent-label); font-size: 13px; font-weight: 700; order: 2; white-space: nowrap; }
.sv-explainer-title { font-weight: 650; font-size: 17px; }

/* Voices */
.sv-demo-note { margin: 16px 0 0; display: inline-block; font-size: 13px; color: var(--sv-soft); border: 1px dashed var(--sv-ghost); border-radius: 999px; padding: 6px 14px; }
.sv-voice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sv-voice { border-radius: 22px; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; gap: 28px; }
.sv-voice blockquote p { margin: 0; font-size: 18px; line-height: 1.55; }
.sv-voice figcaption { display: flex; align-items: center; gap: 14px; }
.sv-voice figcaption > span:last-child { display: grid; font-size: 14px; color: var(--sv-muted); }
.sv-voice figcaption strong { color: var(--sv-text); font-size: 16px; }
.sv-avatar { flex: none; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--sv-bg), 0 0 0 3px var(--sv-gold); }
.sv-avatar-lg { width: 64px; height: 64px; }

/* Review fit */
.sv-review-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 80px); align-items: start; }
.sv-review-grid .sv-section-head { margin-bottom: 0; }
.sv-review-grid .sv-media { margin-top: 32px; aspect-ratio: 4 / 3; }
.sv-review-points { display: grid; gap: 14px; }
.sv-review-points li { position: relative; padding: 24px 24px 24px 64px; border-radius: 20px; border: 1px solid var(--sv-line); background: var(--sv-card); font-size: 17px; }
.sv-review-points li::before { content: ""; position: absolute; left: 24px; top: 34px; width: 22px; height: 2px; background: var(--sv-gold); box-shadow: 0 0 12px rgba(233, 160, 27, 0.7); }

/* Team */
.sv-team-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: clamp(24px, 4vw, 56px); align-items: end; margin-bottom: clamp(32px, 4vw, 52px); }
.sv-team-head .sv-section-head { margin-bottom: 0; }
.sv-team-head .sv-media { aspect-ratio: 16 / 9; }
.sv-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sv-member { position: relative; padding: 28px; display: flex; flex-direction: column; gap: 14px; background: var(--sv-glass); clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 0 100%); border-radius: 4px 0 4px 4px; }
.sv-member::before { content: ""; position: absolute; inset: 0; border: 1px solid var(--sv-line); pointer-events: none; clip-path: inherit; }
.sv-member-head { display: flex; align-items: center; gap: 14px; }
.sv-member-role { margin: 4px 0 0; color: var(--sv-muted); font-size: 14px; line-height: 1.4; }
.sv-member-focus { margin: 0; color: var(--sv-accent-text); font-size: 14px; font-weight: 700; }
.sv-member blockquote p { margin: 0; font-size: 16px; }
.sv-member-regions { margin: auto 0 0; padding-top: 14px; border-top: 1px solid var(--sv-line); color: var(--sv-soft); font-size: 13px; font-weight: 600; }

/* Context band (inverted) */
.sv-context-grid { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: clamp(32px, 6vw, 80px); align-items: start; }
.sv-context-grid .sv-section-head { margin-bottom: 0; position: sticky; top: 100px; }
.sv-sources { margin-top: 24px; }
details > summary { cursor: pointer; list-style: none; }
details > summary::-webkit-details-marker { display: none; }
.sv-sources summary { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; padding: 10px 18px; border-radius: 999px; border: 1px solid var(--sv-ghost); }
.sv-sources summary::after, .sv-disclaimer summary::after { content: "+"; font-size: 18px; line-height: 1; color: var(--sv-accent-label); }
.sv-sources[open] summary::after, .sv-disclaimer[open] summary::after { content: "−"; }
.sv-sources p { margin: 16px 0 10px; color: var(--sv-muted); font-size: 16px; }
.sv-sources ul, .sv-topic ul { display: grid; gap: 4px; font-size: 15px; }
.sv-sources a, .sv-topic a { color: var(--sv-text); text-underline-offset: 3px; overflow-wrap: anywhere; }
.sv-topics { display: grid; gap: 10px; }
.sv-topics .sv-h4 { margin-bottom: 10px; }
.sv-topic { border-radius: 16px; background: var(--sv-card); border: 1px solid var(--sv-line); box-shadow: 0 12px 30px -24px rgba(20, 33, 61, 0.45); }
.sv-topic summary { position: relative; padding: 18px 56px 18px 20px; font-weight: 650; }
.sv-topic summary::after, .sv-faq-item summary::after { content: ""; position: absolute; right: 20px; top: 50%; width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-70%) rotate(45deg); transition: transform 0.3s var(--sv-ease); }
.sv-topic[open] summary::after, .sv-faq-item[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.sv-topic-body { padding: 0 20px 20px; color: var(--sv-muted); font-size: 16px; }
.sv-topic-sources { margin: 0 0 6px; font-weight: 700; color: var(--sv-text); font-size: 14px; }

/* Audience */
.sv-audience-inner { border-radius: 32px; padding: clamp(28px, 5vw, 64px); display: grid; gap: 28px; justify-items: start; position: relative; overflow: hidden; isolation: isolate; }
.sv-audience-photo { position: absolute; inset: 0; z-index: -1; }
.sv-audience-photo img { width: 100%; height: 100%; object-fit: cover; opacity: var(--sv-image-fade); }
.sv-audience-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, var(--sv-bg) 30%, transparent 90%); opacity: 0.9; }
.sv-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.sv-chips li { padding: 10px 18px; border-radius: 999px; border: 1px solid var(--sv-ghost); background: var(--sv-header); font-weight: 600; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }

/* FAQ */
.sv-faq-grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 80px); align-items: start; }
.sv-faq-grid .sv-section-head { position: sticky; top: 100px; margin-bottom: 0; }
.sv-faq-list { border-top: 1px solid var(--sv-line); }
.sv-faq-item { border-bottom: 1px solid var(--sv-line); }
.sv-faq-item summary { position: relative; padding: 22px 48px 22px 0; font-weight: 650; font-size: 18px; }
.sv-faq-item summary:hover { color: var(--sv-accent-text); }
.sv-faq-item summary::after { right: 8px; color: var(--sv-accent-label); }
.sv-faq-item p { margin: 0; padding: 0 0 24px; color: var(--sv-muted); max-width: 68ch; }

/* Subpage hero */
.sv-page-hero { position: relative; margin-top: -72px; padding: calc(72px + clamp(28px, 5vw, 64px)) 0 clamp(48px, 6vw, 88px); overflow: hidden; background: var(--sv-bg); }
.sv-page-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(50% 60% at 85% 20%, var(--sv-accent-wash), transparent 70%), radial-gradient(60% 50% at 10% 0%, var(--sv-hover), transparent 70%); pointer-events: none; }
.sv-page-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.sv-page-hero-grid-solo { grid-template-columns: minmax(0, 1fr); }
.sv-page-hero-copy .sv-chip-tag { margin-bottom: 18px; }
.sv-page-hero-copy .sv-lead { margin-top: 20px; }
.sv-page-hero .sv-media { aspect-ratio: 1; max-height: 560px; overflow: visible; }
.sv-page-hero .sv-media > img { border-radius: 26px; }
.sv-page-hero .sv-media-wide { aspect-ratio: 16 / 10; }
.sv-media img.sv-stamp { position: absolute; right: -14px; top: -14px; width: 120px; height: 120px; object-fit: contain; z-index: 2; transform: rotate(-12deg); filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.35)); }

/* Split text and media */
.sv-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.sv-split .sv-media { aspect-ratio: 4 / 3; }
.sv-split-reverse .sv-media { order: -1; }

/* Offer page spacing */
.sv-intro-checks { margin-top: 28px; }
.sv-video-link { margin: 14px 0 0; }
.sv-aspects-wrap { margin-top: 20px; }
.sv-chapter-more { margin-top: 48px; align-items: start; }
.sv-cta-band .sv-actions { margin-top: 0; }

/* Point cards */
.sv-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.sv-point { padding: 28px; border-radius: 22px; border: 1px solid var(--sv-line); background: var(--sv-card); position: relative; overflow: hidden; }
.sv-point::before { content: ""; position: absolute; left: 28px; top: 0; width: 48px; height: 3px; background: var(--sv-gold); border-radius: 0 0 3px 3px; box-shadow: 0 0 14px rgba(233, 160, 27, 0.6); }
.sv-point .sv-h4 { margin: 8px 0 10px; }
.sv-point p { margin: 0; color: var(--sv-muted); }

/* Included and not included */
.sv-scope { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 16px; }
.sv-scope-card { padding: 24px; border-radius: 20px; border: 1px solid var(--sv-line); background: var(--sv-card); }
.sv-scope-card .sv-h4 { margin-bottom: 14px; }
.sv-scope-card ul { display: grid; gap: 10px; }
.sv-scope-card li { position: relative; padding-left: 28px; color: var(--sv-muted); font-size: 16px; }
.sv-scope-card li::before { content: ""; position: absolute; left: 0; top: 7px; width: 14px; height: 8px; border-left: 2px solid var(--sv-gold); border-bottom: 2px solid var(--sv-gold); transform: rotate(-45deg); }
.sv-scope-card.is-excluded { border-style: dashed; background: transparent; }
.sv-scope-card.is-excluded li::before { top: 11px; height: 0; border-left: 0; transform: none; border-bottom-color: var(--sv-soft); }
.sv-scope-note { margin-top: 24px; font-size: 18px; max-width: 60ch; }

/* Timeline: a real sequence, so it is numbered */
.sv-timeline { counter-reset: sv-step; display: grid; gap: 0; position: relative; }
.sv-timeline > li { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 20px; padding-bottom: 28px; }
.sv-timeline > li:last-child { padding-bottom: 0; }
.sv-timeline > li::before { counter-increment: sv-step; content: counter(sv-step, decimal-leading-zero); width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; font: 700 16px/1 var(--sv-display); font-stretch: 115%; color: var(--sv-accent-text); border: 1px solid var(--sv-accent-line); background: var(--sv-bg); box-shadow: 0 0 0 6px var(--sv-accent-wash); position: relative; z-index: 1; }
.sv-timeline > li::after { content: ""; position: absolute; left: 27px; top: 56px; bottom: 0; width: 2px; background: linear-gradient(180deg, var(--sv-accent-line), var(--sv-line)); }
.sv-timeline > li:last-child::after { display: none; }
.sv-timeline-body { padding-top: 12px; }
.sv-timeline-body .sv-h4 { margin-bottom: 6px; }
.sv-timeline-body p { margin: 0; color: var(--sv-muted); }
.sv-actor { display: inline-block; margin-bottom: 6px; font-size: 12px; font-weight: 700; letter-spacing: 0.04em; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--sv-line); color: var(--sv-soft); }
.sv-actor-swissvalley { color: var(--sv-accent-text); border-color: var(--sv-accent-line); }
.sv-actor-together { color: var(--sv-text); border-color: var(--sv-ghost); }
.sv-timeline-links { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 10px; font-size: 15px; }

/* Offer summary */
.sv-offer-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: stretch; }
.sv-offer-card { border-radius: 28px; padding: clamp(24px, 4vw, 40px); display: grid; gap: 18px; align-content: start; }
.sv-offer-card .sv-price { font-size: clamp(34px, 4vw, 52px); margin: 0; }
.sv-price-label { color: var(--sv-muted); font-size: 15px; margin: 4px 0 0; }
.sv-price-options { display: grid; gap: 14px; }
.sv-price-option { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--sv-line); flex-wrap: wrap; }
.sv-price-option .sv-price { font-size: clamp(28px, 3vw, 40px); }
.sv-offer-card .sv-facts { margin: 0; }
.sv-price-options + .sv-facts > div:first-child { border-top: 0; }
.sv-offer-card .sv-btn { justify-self: start; }
.sv-offer-note { color: var(--sv-muted); font-size: 15px; margin: 0; }
.sv-aspects { padding: clamp(24px, 4vw, 40px); border-radius: 28px; border: 1px solid var(--sv-line); background: var(--sv-card); }
.sv-aspects .sv-h3 { margin-bottom: 18px; }

/* Roles */
.sv-roles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 32px; }
.sv-role { padding: 26px; border-radius: 22px; }
.sv-role .sv-h4 { margin-bottom: 10px; color: var(--sv-accent-text); }
.sv-role p { margin: 0; color: var(--sv-muted); }
.sv-callout { margin-top: 24px; padding: 20px 24px; border-radius: 18px; border-left: 3px solid var(--sv-gold); background: var(--sv-accent-wash); }
.sv-callout p { margin: 0; }
.sv-callout p + p { margin-top: 10px; }
.sv-callout .sv-h4 { margin-bottom: 8px; }
.sv-section-tight-top { padding-top: clamp(24px, 4vw, 48px); }

/* Final call to action band */
.sv-cta-band { position: relative; overflow: hidden; isolation: isolate; border-radius: 32px; padding: clamp(32px, 6vw, 72px); display: grid; gap: 22px; justify-items: start; }
.sv-cta-band-photo { position: absolute; inset: 0; z-index: -1; }
.sv-cta-band-photo img { width: 100%; height: 100%; object-fit: cover; }
.sv-cta-band-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(10, 18, 36, 0.92) 25%, rgba(10, 18, 36, 0.35)); }
.sv-cta-band, .sv-cta-band .sv-h2 { color: #fff; }
.sv-cta-band .sv-eyebrow { color: var(--sv-gold-soft); }
.sv-cta-band .sv-link { color: #fff; }

/* Application process page */
.sv-limit { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(24px, 5vw, 64px); align-items: center; border-radius: 32px; padding: clamp(28px, 5vw, 56px); }
.sv-big-number { font-size: clamp(88px, 16vw, 220px); line-height: 0.85; font-weight: 800; color: transparent; -webkit-text-stroke: 2px var(--sv-gold); letter-spacing: -0.05em; }
.sv-pay-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: sv-pay; }
.sv-pay-step { padding: 24px; border-radius: 20px; border: 1px solid var(--sv-line); background: var(--sv-card); display: flex; flex-direction: column; gap: 10px; }
.sv-pay-step::before { counter-increment: sv-pay; content: counter(sv-pay); font: 700 30px/1 var(--sv-display); font-stretch: 125%; color: var(--sv-accent-text); }
.sv-pay-step p { margin: 0; color: var(--sv-muted); font-size: 16px; }
.sv-amounts { margin-top: auto; display: grid; gap: 8px; padding-top: 12px; }
.sv-amounts div { display: grid; }
.sv-amounts strong { font: 700 20px/1.2 var(--sv-display); font-stretch: 115%; color: var(--sv-accent-text); }
.sv-amounts span { font-size: 13px; color: var(--sv-muted); }
.sv-outcomes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.sv-outcome { padding: 24px; border-radius: 20px; }
.sv-outcome .sv-h4 { margin-bottom: 8px; }
.sv-outcome p { margin: 0; color: var(--sv-muted); font-size: 16px; }

/* Partnerships page */
.sv-partners { display: grid; gap: 20px; }
.sv-partner { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(20px, 4vw, 48px); padding: clamp(24px, 4vw, 40px); border-radius: 26px; }
.sv-partner .sv-h3 { margin-bottom: 14px; }
.sv-partner p { color: var(--sv-muted); margin-bottom: 0; }
.sv-partner .sv-btn { margin-top: 22px; }

/* Reviews page */
.sv-filter { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 28px; }
.sv-filter button { border: 1px solid var(--sv-line); background: var(--sv-chip); color: var(--sv-text); font: 600 14px/1.2 var(--sv-body); padding: 10px 16px; border-radius: 999px; cursor: pointer; }
.sv-filter button:hover { background: var(--sv-hover); }
.sv-filter button[aria-pressed="true"] { background: var(--sv-gold); border-color: var(--sv-gold); color: var(--sv-navy); }
.sv-filter output { margin-left: auto; color: var(--sv-muted); font-size: 14px; }
.sv-review-list { display: grid; gap: 24px; }
.sv-review-card { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr) minmax(0, 260px); gap: clamp(20px, 3vw, 36px); padding: clamp(20px, 3vw, 32px); border-radius: 28px; align-items: start; }
.sv-review-card[hidden] { display: none; }
.sv-review-portrait { border-radius: 20px; overflow: hidden; aspect-ratio: 5 / 6; }
.sv-review-portrait img, .sv-review-place img { width: 100%; height: 100%; object-fit: cover; }
.sv-review-card blockquote p { font: 650 clamp(20px, 2vw, 25px)/1.35 var(--sv-body); margin: 10px 0 14px; }
.sv-review-card .sv-review-story { color: var(--sv-muted); }
.sv-review-highlights { display: grid; gap: 12px; margin-top: 18px; }
.sv-review-highlights li { padding-left: 16px; border-left: 2px solid var(--sv-gold); }
.sv-review-highlights strong { display: block; }
.sv-review-highlights span { color: var(--sv-muted); font-size: 15px; }
.sv-review-place { border-radius: 20px; overflow: hidden; aspect-ratio: 3 / 4; }
.sv-review-meta { color: var(--sv-accent-label); font-weight: 700; font-size: 14px; }

/* Legal text */
.sv-legal { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.sv-toc { position: sticky; top: 100px; display: grid; gap: 2px; font-size: 14px; max-height: calc(100vh - 120px); overflow-y: auto; padding-right: 8px; }
.sv-toc a { display: block; padding: 6px 10px; border-radius: 10px; text-decoration: none; color: var(--sv-muted); }
.sv-toc a:hover { background: var(--sv-hover); color: var(--sv-text); }
.sv-legal-body section { padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid var(--sv-line); }
.sv-legal-body section:last-child { border-bottom: 0; }
.sv-legal-body .sv-h3 { margin-bottom: 16px; }
.sv-legal-body h4 { margin: 20px 0 8px; font-size: 17px; }
.sv-legal-body p, .sv-legal-body li { color: var(--sv-muted); max-width: 72ch; overflow-wrap: anywhere; white-space: pre-line; }
.sv-legal-body ul { display: grid; gap: 6px; margin: 0 0 1em; }
.sv-legal-body li { position: relative; padding-left: 20px; }
.sv-legal-body li::before { content: ""; position: absolute; left: 0; top: 11px; width: 8px; height: 2px; background: var(--sv-gold); }
.sv-legal-body a { color: var(--sv-text); }

/* Footer */
.sv-footer { background: var(--sv-bg-alt); border-top: 1px solid var(--sv-line); padding: clamp(48px, 6vw, 80px) 0 32px; overflow: hidden; }
.sv-footer-mark { margin: 0 0 clamp(28px, 4vw, 48px); font-size: clamp(40px, 9.6vw, 140px); line-height: 0.9; font-weight: 800; letter-spacing: -0.04em; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px var(--sv-ghost); }
.sv-footer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; font-size: 15px; color: var(--sv-muted); }
.sv-footer-grid p, .sv-footer-grid address { margin: 0; }
.sv-footer-grid a { color: var(--sv-text); text-underline-offset: 3px; }
.sv-footer-logo { height: 32px; width: auto; margin-bottom: 14px; }
.sv-footer-regions { font-weight: 700; color: var(--sv-soft); }
.sv-footer-title { font: 700 14px/1.4 var(--sv-body); color: var(--sv-accent-label); margin-bottom: 10px; }
.sv-footer-links { display: grid; gap: 4px; }
.sv-disclaimer { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--sv-line); color: var(--sv-muted); font-size: 14px; }
.sv-disclaimer summary { font-weight: 700; color: var(--sv-text); display: inline-flex; gap: 10px; align-items: center; }
.sv-disclaimer p { max-width: 90ch; margin: 12px 0 0; }
.sv-footer-copy { margin: 28px 0 0; font-size: 13px; color: var(--sv-muted); }

/* Responsive */
@media (max-width: 1080px) {
    .sv-nav-list > li > a, .sv-nav-trigger { padding-inline: 9px; }
    .sv-property-grid, .sv-team-grid, .sv-voice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sv-pay-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sv-review-card { grid-template-columns: minmax(0, 200px) minmax(0, 1fr); }
    .sv-review-place { display: none; }
}

@media (max-width: 1000px) {
    .sv-menu-toggle { display: grid; }
    .sv-nav { display: none; }
    .sv-header-tools { margin-left: auto; }
    .sv-header.is-open .sv-nav {
        display: grid; gap: 16px; position: absolute; left: 0; right: 0; top: 100%; padding: 12px var(--sv-gutter) 24px; background: var(--sv-bg);
        border-bottom: 1px solid var(--sv-line); box-shadow: 0 30px 40px -20px rgba(0, 0, 0, 0.45); max-height: calc(100vh - 72px); overflow-y: auto;
    }
    .sv-header.is-open .sv-nav-list { display: grid; gap: 2px; align-items: stretch; }
    .sv-header.is-open .sv-nav-list > li > a, .sv-header.is-open .sv-nav-trigger { width: 100%; justify-content: space-between; padding: 12px 4px; font-size: 18px; color: var(--sv-text); border-radius: 8px; }
    .sv-subnav { position: static; transform: none; width: auto; padding: 0 0 8px 8px; box-shadow: none; border: 0; background: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
    .sv-header.is-open .sv-nav-cta { justify-self: start; }

    .sv-hero-grid, .sv-page-hero-grid { grid-template-columns: minmax(0, 1fr); }
    .sv-globe { justify-self: center; max-width: 440px; }
    .sv-console { grid-template-columns: minmax(0, 1fr); }
    .sv-console-body { grid-template-columns: minmax(0, 1fr); }
    .sv-console-side { align-content: start; }
    .sv-insights-grid, .sv-review-grid, .sv-context-grid, .sv-faq-grid, .sv-team-head, .sv-split, .sv-offer-grid, .sv-partner, .sv-legal { grid-template-columns: minmax(0, 1fr); }
    .sv-split-reverse .sv-media { order: 0; }
    .sv-context-grid .sv-section-head, .sv-faq-grid .sv-section-head, .sv-toc { position: static; }
    .sv-toc { display: none; }
    .sv-mandate { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .sv-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sv-outcomes { grid-template-columns: minmax(0, 1fr); }
    .sv-page-hero .sv-media { aspect-ratio: 16 / 10; }
}

@media (max-width: 640px) {
    body.sv-body { font-size: 16px; }
    .sv-hero-title, .sv-h1, .sv-h2, .sv-h3 { font-stretch: 108%; }
    .sv-h1, .sv-h2, .sv-h3 { hyphens: auto; }
    .sv-hero-title { font-size: clamp(34px, 10vw, 44px); }
    .sv-h1 { font-size: clamp(30px, 8.6vw, 40px); }
    .sv-brand img { height: 26px; }
    .sv-header-inner { gap: 10px; }
    .sv-property-grid, .sv-team-grid, .sv-voice-grid, .sv-points, .sv-roles, .sv-pay-steps { grid-template-columns: minmax(0, 1fr); }
    .sv-place { padding: 8px 10px; font-size: 12px; }
    .sv-place time { font-size: 18px; }
    .sv-place-ch { left: auto; right: 0; top: 0; }
    .sv-place-py { top: 74%; }
    .sv-console-tab { padding: 14px 16px 14px 20px; }
    .sv-console-tab-name { font-size: 17px; }
    .sv-console-image { height: 140px; }
    .sv-review-points li { padding: 20px 20px 20px 52px; }
    .sv-review-points li::before { left: 20px; top: 31px; width: 18px; }
    .sv-actions .sv-btn { flex: 1 1 100%; }
    .sv-footer-grid { grid-template-columns: minmax(0, 1fr); }
    .sv-video-hint { display: none; }
    .sv-limit { grid-template-columns: minmax(0, 1fr); }
    .sv-review-card { grid-template-columns: minmax(0, 1fr); }
    .sv-review-portrait { max-width: 200px; }
    .sv-timeline > li { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; }
    .sv-timeline > li::before { width: 44px; height: 44px; font-size: 14px; }
    .sv-timeline > li::after { left: 21px; top: 44px; }
    .sv-timeline-body { padding-top: 8px; }
    .sv-filter output { margin-left: 0; width: 100%; }
    .sv-media img.sv-stamp { width: 84px; height: 84px; right: -6px; top: -6px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .js .sv-route-path { stroke-dashoffset: 0; }
}

/* ------------------------------------------------------------------
 * Futuristic layer: luminous glass edges, pointer light, hero grid floor,
 * orbit, scroll progress and button sheen. All motion stops under reduced motion.
 * ------------------------------------------------------------------ */
:where(.sv-glass) { position: relative; }
.sv-glass::before,
.sv-glass::after { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; pointer-events: none; }
/* 1px gradient edge: gold top-left fading to glacier bottom-right */
.sv-glass::before {
    padding: 1px;
    background: linear-gradient(135deg, rgba(246, 194, 91, 0.7), rgba(246, 194, 91, 0) 32%, rgba(159, 183, 217, 0) 62%, rgba(159, 183, 217, 0.55));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
/* Light that follows the pointer (position set by website.js) */
.sv-glass::after {
    background: radial-gradient(420px circle at var(--sv-mx, 50%) var(--sv-my, -20%), rgba(246, 194, 91, 0.12), transparent 60%);
    opacity: 0;
    transition: opacity 0.35s var(--sv-ease);
}
.sv-glass:hover::after { opacity: 1; }

/* Perspective grid floor under the heroes */
.sv-hero-grid::before,
.sv-page-hero::after {
    content: ""; position: absolute; left: -25%; right: -25%; bottom: -2px; height: 62%; z-index: 0; pointer-events: none;
    background-image: linear-gradient(rgba(233, 160, 27, 0.42) 1px, transparent 1px), linear-gradient(90deg, rgba(233, 160, 27, 0.42) 1px, transparent 1px);
    background-size: 72px 72px;
    transform: perspective(520px) rotateX(64deg);
    transform-origin: 50% 100%;
    -webkit-mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0.55) 35%, transparent 80%);
    mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0.55) 35%, transparent 80%);
    animation: sv-grid-run 7s linear infinite;
}
.sv-page-hero::after { height: 38%; opacity: 0.7; }
/* On the home hero the floor sits under the headline and globe, above the mandate card */
.sv-hero-grid::before { bottom: -36px; height: 80%; z-index: -1; }
.sv-page-hero-grid { z-index: 1; }
@keyframes sv-grid-run { to { background-position: 0 72px, 0 0; } }

/* Orbit around the globe */
.sv-orbit { fill: none; stroke: rgba(246, 194, 91, 0.55); stroke-width: 2; stroke-dasharray: 5 11; }
.sv-satellite { fill: var(--sv-gold-soft); filter: drop-shadow(0 0 6px rgba(246, 194, 91, 0.9)); }

/* Scroll progress along the header's lower edge */
.sv-header::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; pointer-events: none;
    background: linear-gradient(90deg, var(--sv-gold), var(--sv-gold-soft));
    box-shadow: 0 0 10px rgba(233, 160, 27, 0.6);
    transform: scaleX(var(--sv-progress, 0));
    transform-origin: 0 50%;
}

/* Gold buttons: a light sweep on hover */
.sv-btn-gold { position: relative; overflow: hidden; isolation: isolate; }
.sv-btn-gold::after {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.55) 50%, transparent 70%);
    transform: translateX(-120%);
    transition: transform 0.7s var(--sv-ease);
}
.sv-btn-gold:hover::after, .sv-btn-gold:focus-visible::after { transform: translateX(120%); }

/* Eyebrow line glows like an instrument trace */
.sv-eyebrow::before { box-shadow: 0 0 8px currentColor; }

@media (prefers-reduced-motion: reduce) {
    .sv-glass::after { display: none; }
}

/* ------------------------------------------------------------------
 * Futuristic layer 2: hero network, HUD corner brackets, heading scan wipe, card tilt.
 * ------------------------------------------------------------------ */
.sv-hero-net { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; }

/* Instrument-style corner brackets on glass panels and photos: eight thin bars, two per corner */
.sv-glass:not(.sv-subnav),
.sv-media::after {
    --sv-corner-bar: linear-gradient(var(--sv-corner), var(--sv-corner));
    background-repeat: no-repeat;
    background-size: 16px 2px, 2px 16px, 16px 2px, 2px 16px, 16px 2px, 2px 16px, 16px 2px, 2px 16px, auto;
    background-position: 14px 14px, 14px 14px, calc(100% - 14px) 14px, calc(100% - 14px) 14px,
        14px calc(100% - 14px), 14px calc(100% - 14px), calc(100% - 14px) calc(100% - 14px), calc(100% - 14px) calc(100% - 14px), 0 0;
}
.sv-glass:not(.sv-subnav) {
    --sv-corner: var(--sv-accent-text);
    background-image: var(--sv-corner-bar), var(--sv-corner-bar), var(--sv-corner-bar), var(--sv-corner-bar),
        var(--sv-corner-bar), var(--sv-corner-bar), var(--sv-corner-bar), var(--sv-corner-bar), var(--sv-glass);
}
.sv-media::after {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    --sv-corner: rgba(246, 194, 91, 0.9);
    background-image: var(--sv-corner-bar), var(--sv-corner-bar), var(--sv-corner-bar), var(--sv-corner-bar),
        var(--sv-corner-bar), var(--sv-corner-bar), var(--sv-corner-bar), var(--sv-corner-bar);
}
.sv-media figcaption { z-index: 2; }

/* Headings wipe in with a gold scan line when they reach the screen (JS adds .is-in) */
.js .sv-section-head .sv-h2 { clip-path: inset(0 100% 0 0); transition: clip-path 1s var(--sv-ease); }
.js .sv-section-head.is-in .sv-h2 { clip-path: inset(0 0 0 0); }
.js .sv-section-head .sv-eyebrow::before { width: 0; transition: width 0.6s var(--sv-ease) 0.1s; }
.js .sv-section-head.is-in .sv-eyebrow::before { width: 28px; }

/* Cards lean toward the pointer (transform set by website.js) */
.sv-property, .sv-member, .sv-point, .sv-voice, .sv-scope-card, .sv-pay-step { transition: transform 0.25s var(--sv-ease), box-shadow 0.25s var(--sv-ease); will-change: transform; }
.sv-property:hover, .sv-point:hover, .sv-scope-card:hover, .sv-pay-step:hover { box-shadow: 0 24px 48px -28px rgba(0, 0, 0, 0.55), 0 0 0 1px var(--sv-accent-line); }
