:root {
  --navy: #073858;
  --navy-deep: #03283f;
  --ink: #0a2f45;
  --blue: #0d527b;
  --red: #f4434d;
  --red-bright: #ff5360;
  --paper: #fbfcfd;
  --mist: #f0f5f8;
  --line: #d9e4ea;
  --muted: #617787;
  --white: #ffffff;
  --serif: "Instrument Serif", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: #e8eef2; }
body { width: 100%; max-width: 1400px; min-height: 100vh; margin: 0 auto; color: var(--ink); background: var(--paper); box-shadow: 0 0 54px rgba(3,40,63,.12); font-family: var(--sans); font-size: 16px; line-height: 1.65; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.container { width: min(1400px, calc(100% - 48px)); margin: 0 auto; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; padding: 12px 18px; background: white; border-radius: 8px; }
.skip-link:focus { top: 12px; }

.topbar { background: var(--navy-deep); color: #b8ceda; font-size: 11px; letter-spacing: .08em; }
.topbar-inner { height: 30px; display: flex; align-items: center; justify-content: space-between; }
.topbar-right { display: flex; gap: 24px; }
.header { position: relative; z-index: 100; background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(7,56,88,.08); }
.header-inner { height: 88px; display: flex; align-items: center; justify-content: space-between; }
.logo { display: inline-flex; align-items: center; }
.logo img { display:block;width:190px;height:auto; }
.nav { display: flex; align-items: center; gap: 31px; font-size: 18.72px; font-weight: 600; }
.nav .button { font-size: 15.6px; }
.nav > li { display: contents; list-style: none; }
.nav a:not(.button) { position: relative; padding: 32px 0; }
.nav a:not(.button)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 25px; height: 2px; background: var(--red); transition: right .25s ease; }
.nav a:hover::after, .nav a[aria-current="page"]::after, .nav .current-menu-item > a::after { right: 0; }
.menu-toggle { display: none; width: 46px; height: 46px; border: 0; background: var(--mist); border-radius: 50%; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content: ""; display: block; width: 20px; height: 2px; margin: 4px auto; background: var(--ink); transition: .25s; }

.button { min-height: 49px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; padding: 0 23px; border: 1px solid transparent; font-size: 13px; font-weight: 700; transition: transform .25s, background .25s, box-shadow .25s; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: white; background: var(--red); box-shadow: 0 12px 32px rgba(244,67,77,.24); }
.button-primary:hover { background: var(--red-bright); box-shadow: 0 15px 36px rgba(244,67,77,.34); }
.button-small { min-height: 44px; padding: 0 19px; }
.button-ghost { color: white; border-color: rgba(255,255,255,.4); }
.button-ghost:hover { background: rgba(255,255,255,.08); }

.hero { position: relative; min-height: 720px; display: flex; align-items: center; overflow: hidden; color: white; background: var(--navy-deep); }
.hero::before { content: ""; position: absolute; z-index:1; inset: 0; background: linear-gradient(90deg, rgba(2,31,49,.90) 0%, rgba(3,40,63,.70) 34%, rgba(3,40,63,.18) 69%, rgba(3,40,63,.04) 100%); }
.hero::after { content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(0deg,rgba(2,31,49,.48),transparent 38%); }
.hero-photo { --hero-x:0px;--hero-y:0px;position:absolute;inset:-22px;margin:0;transform:translate3d(var(--hero-x),var(--hero-y),0);transition:transform 1.2s cubic-bezier(.2,.75,.2,1); }
.hero-photo picture { display:block;width:100%;height:100%; }
.hero-photo img { width:100%;height:100%;object-fit:cover;object-position:center;animation:heroReveal 13s cubic-bezier(.16,.8,.18,1) both; }
.hero-cinematic-wash { position:absolute;z-index:1;inset:-30% auto -30% -22%;width:34%;background:linear-gradient(105deg,transparent 15%,rgba(255,255,255,.16) 48%,transparent 78%);filter:blur(28px);transform:translateX(-120%) skewX(-10deg);animation:lightSweep 9s 2.1s cubic-bezier(.2,.7,.2,1) infinite;pointer-events:none; }
.hero-layout { position: relative; z-index: 2; display:block; padding: 112px 0 128px; }
.hero-copy { max-width:690px; }
.eyebrow { margin: 0 0 21px; color: var(--red); font-size: 11px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; }
.eyebrow.light { color: #83b5d0; }
.hero h1 { max-width: 680px; margin: 0; font-family: var(--serif); font-size: clamp(56px, 5.5vw, 84px); font-weight: 400; line-height: .98; letter-spacing: -.035em; }
.hero h1 span { color: var(--red-bright); font-style: italic; }
.hero-lead { max-width: 610px; margin: 30px 0 34px; color: #c9d9e3; font-size: 17px; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-proof { display: flex; align-items: center; gap: 12px; margin-top: 39px; color: #8fb0c1; font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.hero-proof i { width: 22px; height: 1px; background: rgba(255,255,255,.23); }
.hero-scroll { position: absolute; z-index: 2; bottom: 27px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; color: #6e98af; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; }
.hero-scroll span { width: 34px; height: 1px; background: #6e98af; }

.answer-engine { position: relative; min-height: 510px; border: 1px solid rgba(255,255,255,.14); background: rgba(3,40,63,.34); backdrop-filter: blur(12px); box-shadow: 0 30px 90px rgba(1,21,34,.3); }
.engine-topline { height: 48px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.12); color: #8fb4c8; font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.engine-live { display: inline-flex; align-items: center; gap: 7px; color: #99d6b1; }
.engine-live::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #58c98a; box-shadow: 0 0 12px #58c98a; animation: blink 1.6s infinite; }
.engine-stage { position: relative; height: 370px; overflow: hidden; }
.engine-core { position: absolute; z-index: 3; left: 50%; top: 51%; transform: translate(-50%,-50%); width: 108px; height: 108px; border-radius: 50%; display: grid; place-content: center; text-align: center; background: linear-gradient(145deg, var(--red), #e42f54); box-shadow: 0 0 0 12px rgba(244,67,77,.08), 0 18px 48px rgba(244,67,77,.28); }
.engine-core span { position: absolute; left: 13px; top: 2px; font: 72px/1 var(--serif); color: rgba(255,255,255,.14); }
.engine-core small { position: relative; font-size: 10px; font-weight: 700; line-height: 1.3; letter-spacing: .11em; text-transform: uppercase; }
.connections { position: absolute; inset: 0; width: 100%; height: 100%; }
.connections path { fill: none; stroke: rgba(132,185,212,.35); stroke-width: 1.3; stroke-dasharray: 7 8; animation: dash 9s linear infinite; }
.signal { position: absolute; z-index: 2; padding: 8px 12px; border: 1px solid rgba(255,255,255,.15); background: rgba(5,47,73,.85); color: #bcd2de; font-size: 10px; letter-spacing: .05em; animation: float 5s ease-in-out infinite; }
.signal::before { content: ""; display: inline-block; width: 5px; height: 5px; margin-right: 7px; border-radius: 50%; background: #6da6c4; }
.signal-a { left: 8%; top: 10%; }
.signal-b { right: 7%; top: 12%; animation-delay: -.8s; }
.signal-c { left: 7%; bottom: 11%; animation-delay: -1.6s; }
.signal-d { right: 6%; bottom: 10%; animation-delay: -2.4s; }
.pulse-ring { position: absolute; left: 50%; top: 51%; width: 108px; height: 108px; transform: translate(-50%,-50%); border: 1px solid rgba(244,67,77,.3); border-radius: 50%; animation: pulse 3s ease-out infinite; }
.ring-b { animation-delay: -1.5s; }
.engine-result { min-height: 91px; display: grid; grid-template-columns: 1fr auto; align-content: center; padding: 15px 20px; border-top: 1px solid rgba(255,255,255,.12); background: rgba(1,25,40,.3); }
.result-kicker { color: #6c9ab2; font-size: 9px; letter-spacing: .15em; }
.result-score { grid-row: span 2; align-self: center; color: white; font: 34px var(--serif); }
.result-copy { color: #c0d4de; font-size: 11px; }

.section { padding: 130px 0; }
.section-intro { display: grid; grid-template-columns: .9fr 1.15fr .8fr; gap: 56px; align-items: end; margin-bottom: 66px; }
.section-intro .eyebrow { align-self: start; padding-top: 8px; }
.section-intro h2 { margin: 0; font: 400 clamp(40px, 4vw, 62px)/1.04 var(--serif); letter-spacing: -.025em; }
.section-intro h2 em { color: var(--red); font-weight: 400; }
.section-intro > p:last-child { margin: 0; color: var(--muted); font-size: 15px; }
.service-grid { display: grid; grid-template-columns: repeat(6,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { position: relative; grid-column: span 2; min-height: 410px; padding: 34px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; transition: transform .3s, box-shadow .3s, background .3s; }
.service-card:hover { z-index: 2; transform: translateY(-8px); box-shadow: 0 28px 55px rgba(7,56,88,.12); }
.service-card.featured { color: white; background: var(--navy); }
.service-card.featured p { color: #b5cbd8; }
.card-index { position: absolute; right: 24px; top: 23px; color: #9db0bb; font: italic 17px var(--serif); }
.card-icon { width: 45px; height: 45px; display: grid; place-items: center; margin-bottom: 58px; color: var(--navy); background: var(--mist); font: 22px var(--serif); }
.featured .card-icon { color: white; background: var(--red); }
.service-card h3 { margin: 0 0 19px; font: 400 29px/1.08 var(--serif); }
.service-card p { min-height: 94px; margin: 0 0 28px; color: var(--muted); font-size: 14px; }
.text-link { color: var(--red); font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.text-link b { margin-left: 8px; }

.portal-strip { position: relative; padding: 68px 0; overflow: hidden; color: white; background: var(--navy-deep); }
.portal-strip-inner { display: grid; grid-template-columns: 260px 1fr 74px; align-items: center; gap: 46px; }
.portal-strip h2 { margin: 0; font: 38px/1.1 var(--serif); }
.portal-marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent); }
.marquee-track { width: max-content; display: flex; align-items: center; gap: 26px; animation: marquee 24s linear infinite; }
.marquee-track span { color: #adc6d4; font-size: 11px; letter-spacing: .17em; }
.marquee-track b { color: var(--red); font-size: 10px; }
.round-link { width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; font-size: 22px; transition: .25s; }
.round-link:hover { color: var(--navy); background: white; transform: rotate(45deg); }

.split-story { background: white; }
.split-story-grid { display: grid; grid-template-columns: .88fr 1.12fr; gap: 95px; align-items: center; }
.story-visual { position: relative; min-height: 500px; overflow: hidden; color: white; background: var(--navy); box-shadow: 0 32px 70px rgba(7,56,88,.18); }
.story-visual::after { content: ""; position: absolute; inset: 8%; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; }
.story-label { position:absolute;left:24px;top:24px;color:#83aac0;font-size:9px;letter-spacing:.18em; }
.story-a { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:270px/.7 var(--serif);color:rgba(255,255,255,.06); }
.story-node { position:absolute;z-index:2;width:72px;height:72px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(3,40,63,.75);font-size:11px;letter-spacing:.12em;box-shadow:0 0 0 8px rgba(255,255,255,.02); }
.node-1{left:14%;top:20%}.node-2{right:13%;top:25%}.node-3{left:20%;bottom:15%}.node-4{right:17%;bottom:13%}
.story-line { position:absolute;left:25%;top:50%;width:50%;height:1px;background:linear-gradient(90deg,var(--red),rgba(255,255,255,.2),var(--red));transform:rotate(32deg); }
.line-2 { transform:rotate(-36deg); }
.story-copy h2 { margin:0 0 30px;font:400 clamp(42px,4.5vw,64px)/1.04 var(--serif);letter-spacing:-.025em; }
.story-copy h2 em { color:var(--red);font-weight:400; }
.story-copy > p:not(.eyebrow) { color:var(--muted);font-size:16px; }
.check-list { display:grid;gap:0;margin:32px 0 34px;padding:0;list-style:none;border-top:1px solid var(--line); }
.check-list li { position:relative;padding:15px 0 15px 28px;border-bottom:1px solid var(--line);font-size:14px;font-weight:600; }
.check-list li::before { content:"✓";position:absolute;left:2px;color:var(--red); }
.arrow-link { display:inline-flex;align-items:center;gap:20px;color:var(--red);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase; }

.package-preview { background:var(--mist); }
.center-heading { max-width:760px;margin:0 auto 60px;text-align:center; }
.center-heading h2 { margin:0 0 22px;font:400 clamp(42px,4.5vw,64px)/1.04 var(--serif);letter-spacing:-.025em; }
.center-heading h2 em { color:var(--red);font-weight:400; }
.center-heading p:last-child { max-width:590px;margin:0 auto;color:var(--muted); }
.package-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch; }
.package-card { position:relative;padding:36px 34px 32px;border:1px solid var(--line);background:white;box-shadow:0 12px 30px rgba(7,56,88,.04); }
.package-card h3 { margin:0;font:34px var(--serif); }
.package-tag { color:var(--red);font-size:10px;font-weight:700;letter-spacing:.18em; }
.package-for { min-height:52px;margin:8px 0 26px;color:var(--muted);font-size:13px; }
.package-price { padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:32px var(--serif); }
.package-price small { color:var(--muted);font:11px var(--sans); }
.package-card ul { min-height:176px;display:grid;gap:11px;margin:28px 0;padding:0;list-style:none;color:#4c6676;font-size:13px; }
.package-card li::before { content:"✓";margin-right:9px;color:var(--red); }
.package-card .button { width:100%; }
.package-featured { border:1px solid var(--red);box-shadow:0 25px 55px rgba(244,67,77,.12);transform:translateY(-10px); }
.popular { position:absolute;left:50%;top:0;transform:translate(-50%,-50%);padding:7px 17px;color:white;background:var(--red);font-size:9px;font-weight:700;letter-spacing:.18em; }
.button-outline-dark { color:var(--navy);border-color:var(--navy); }
.button-outline-dark:hover { color:white;background:var(--navy); }

.contact-stage { padding:115px 0;color:white;background:var(--navy); }
.contact-stage-grid { display:grid;grid-template-columns:.72fr 1.28fr;gap:90px;align-items:start; }
.contact-stage h2 { margin:0 0 24px;font:400 clamp(48px,5vw,72px)/.98 var(--serif); }
.contact-stage h2 em { color:var(--red);font-weight:400; }
.contact-stage-copy > p:not(.eyebrow) { color:#b6cbd7; }
.contact-meta { display:flex;flex-wrap:wrap;gap:10px;margin-top:32px; }
.contact-meta span { padding:7px 10px;border:1px solid rgba(255,255,255,.17);color:#a7c0ce;font-size:10px;letter-spacing:.08em;text-transform:uppercase; }
.contact-form { display:grid;gap:16px;padding:36px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.045); }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
.contact-form label { display:grid;gap:7px;color:#9fb9c8;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase; }
.contact-form label span { opacity:.65; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%;border:1px solid rgba(255,255,255,.16);border-radius:0;outline:0;padding:13px 14px;color:white;background:rgba(255,255,255,.055);font-size:14px;letter-spacing:0;text-transform:none;transition:border-color .2s,background .2s; }
.contact-form textarea { resize:vertical; }
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { border-color:var(--red);background:rgba(255,255,255,.08); }
.contact-form input::placeholder,.contact-form textarea::placeholder { color:#7898aa; }
.contact-form select option { color:var(--ink); }
.form-action { display:flex;align-items:center;gap:18px;margin-top:5px; }
.form-action small { color:#7597a9;font-size:10px; }
.form-honeypot { position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important; }
.form-status { margin:0;padding:12px 14px;font-size:13px; }
.form-status.is-success { color:#bde7cb;border:1px solid rgba(88,201,138,.4);background:rgba(88,201,138,.08); }
.form-status.is-error { color:#ffd2d5;border:1px solid rgba(244,67,77,.52);background:rgba(244,67,77,.1); }
.form-notice { margin:0 0 18px;padding:14px 16px;border-radius:3px;font-weight:600; }
.form-notice.is-success { color:#07543d;background:#e8f7f1;border:1px solid #a9ddca; }
.form-notice.is-error { color:#8e1f2a;background:#fff0f1;border:1px solid #efb6bc; }
.contact-form button:disabled { cursor:wait;opacity:.65;transform:none; }
.form-action small a { color:inherit;text-decoration:underline;text-underline-offset:2px; }

.footer { color:#a9c0cd;background:#021f31; }
.footer-main { display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:80px;padding:78px 0 65px; }
.logo-footer img { width:150px;filter:brightness(0) invert(1);opacity:.92; }
.footer-brand p,.footer-main > div > p { max-width:260px;margin-top:23px;color:#7898aa;font-size:14.95px; }
.footer-main h2 { margin:5px 0 22px;color:white;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase; }
.footer-main > div:not(.footer-brand) > a:not(.arrow-link),.footer-main > div > span { display:block;margin:8px 0;color:#91adbc;font-size:13.8px; }
.footer-main a:hover { color:white; }
.light-link { margin-top:20px; }
.footer-bottom { display:flex;justify-content:space-between;gap:24px;padding:22px 0;border-top:1px solid rgba(255,255,255,.08);color:#5f8193;font-size:11.5px; }
.footer-bottom div { display:flex;gap:20px; }

/* Compact front-page rhythm */
.home .hero { min-height: 650px; }
.home .hero-layout { padding: 88px 0 98px; }
.home .hero-lead { margin-top: 24px; margin-bottom: 28px; }
.home .hero-proof { margin-top: 30px; }
.home .section { padding: 92px 0; }
.home .section-intro { margin-bottom: 44px; }
.home .service-card { min-height: 360px; padding: 30px; }
.home .card-icon { margin-bottom: 40px; }
.home .service-card p { min-height: 72px; margin-bottom: 22px; }
.home .portal-strip { padding: 52px 0; }
.home .story-visual { min-height: 430px; }
.home .story-copy h2 { margin-bottom: 24px; }
.home .check-list { margin-top: 24px; margin-bottom: 28px; }
.home .check-list li { padding-top: 12px; padding-bottom: 12px; }
.home .center-heading { margin-bottom: 44px; }
.home .package-card { padding-top: 31px; padding-bottom: 28px; }
.home .package-card ul { min-height: 150px; margin: 22px 0; }
.home .contact-stage { padding: 82px 0; }
.home .contact-form { padding: 30px; }
.home .footer .footer-main { padding-top: 60px; padding-bottom: 52px; }

/* Interior pages */
.page-hero { position:relative;overflow:hidden;padding:115px 0 108px;color:white;background:var(--navy); }
.page-hero::before { content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(3,40,63,.72),transparent 72%); }
.page-hero-orbit { position:absolute;width:490px;height:490px;right:-80px;top:-235px;border:1px solid rgba(255,255,255,.12);border-radius:50%; }
.page-hero-orbit::before,.page-hero-orbit::after { content:"";position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%; }
.page-hero-orbit::before { inset:55px; }.page-hero-orbit::after { inset:115px; }
.page-hero-grid { position:relative;z-index:1;display:grid;grid-template-columns:1.45fr .55fr;gap:100px;align-items:end; }
.page-hero h1 { max-width:820px;margin:0;font:400 clamp(52px,6vw,82px)/.98 var(--serif);letter-spacing:-.035em; }
.page-hero h1 em { color:var(--red);font-weight:400; }
.page-hero-grid > p { margin:0 0 5px;color:#b9cfda;font-size:15px; }
.detail-section { border-bottom:1px solid var(--line); }
.detail-section.alt { background:var(--mist); }
.detail-grid { display:grid;grid-template-columns:90px .8fr 1fr;gap:65px;align-items:start; }
.detail-number { color:var(--red);font:italic 25px var(--serif); }
.detail-grid h2 { max-width:520px;margin:0 0 25px;font:400 clamp(42px,4.5vw,62px)/1.02 var(--serif);letter-spacing:-.025em; }
.detail-grid h2 em { color:var(--red);font-weight:400; }
.detail-lead { color:var(--muted); }
.feature-list { border-top:1px solid var(--line); }
.feature-list article { padding:23px 0;border-bottom:1px solid var(--line); }
.feature-list h3 { margin:0 0 7px;font:25px var(--serif); }
.feature-list p { margin:0;color:var(--muted);font-size:14px; }
.mini-cta { padding:78px 0;color:white;background:var(--navy-deep); }
.mini-cta-inner { display:flex;align-items:center;justify-content:space-between;gap:60px; }
.mini-cta h2 { max-width:720px;margin:0;font:42px/1.06 var(--serif); }
.section-intro.compact { grid-template-columns:.55fr 1.3fr .75fr; }
.portal-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:14px; }
.portal-page-hero .page-hero-grid { grid-template-columns:minmax(0,1.2fr) minmax(390px,.65fr);align-items:center; }
.portal-hero-access { padding:25px 26px 23px;border:1px solid rgba(255,255,255,.2);background:rgba(2,31,49,.58);box-shadow:0 24px 55px rgba(0,0,0,.16);backdrop-filter:blur(12px); }
.portal-hero-access .eyebrow { margin-bottom:9px; }
.portal-hero-access h2 { margin:0 0 17px;font:31px/1.05 var(--serif); }
.portal-hero-access small { display:block;margin-top:12px;color:#9fb9c8;font-size:10px;text-align:right; }
.portal-login-form { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end; }
.portal-login-form label { display:grid;gap:6px;color:#b9cfda;font-size:8px;font-weight:700;letter-spacing:.14em;text-transform:uppercase; }
.portal-login-form input { width:100%;height:48px;padding:0 13px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:white;font:500 14px var(--sans);outline:none; }
.portal-login-form input::placeholder { color:#9eb5c2; }
.portal-login-form input:focus { border-color:var(--red);box-shadow:0 0 0 3px rgba(244,67,77,.15); }
.portal-login-form .button { min-height:48px;padding:0 18px;white-space:nowrap; }
.portal-portfolio { background:var(--mist); }
.portfolio-intro { display:grid;grid-template-columns:1.15fr .75fr;gap:90px;align-items:end;margin-bottom:52px; }
.portfolio-intro h2 { margin:0;font:400 clamp(42px,4.4vw,64px)/1.03 var(--serif);letter-spacing:-.025em; }
.portfolio-intro > p { margin:0;color:var(--muted);line-height:1.8; }
.portfolio-toolbar { position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(280px,1fr) 260px auto;gap:18px;align-items:end;margin:0 0 30px;padding:18px 20px;border:1px solid var(--line);background:rgba(255,255,255,.95);box-shadow:0 12px 35px rgba(7,56,88,.07);backdrop-filter:blur(12px); }
.portfolio-toolbar label span { display:block;margin:0 0 7px;color:#7390a1;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase; }
.portfolio-toolbar input,.portfolio-toolbar select { width:100%;height:48px;padding:0 14px;border:1px solid #d8e2e8;background:white;color:var(--ink);font:500 14px var(--sans);outline:none; }
.portfolio-toolbar input:focus,.portfolio-toolbar select:focus { border-color:var(--red);box-shadow:0 0 0 3px rgba(244,67,77,.1); }
.portfolio-count { min-width:92px;margin:0 0 12px;color:#6d8796;font-size:12px;text-align:right; }
.portfolio-count strong { color:var(--navy);font:400 30px/1 var(--serif); }
.portal-portfolio-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px; }
.portfolio-card { min-width:0;overflow:hidden;border:1px solid var(--line);background:white;box-shadow:0 12px 32px rgba(7,56,88,.05);transition:transform .3s ease,box-shadow .3s ease; }
.portfolio-card:hover { transform:translateY(-5px);box-shadow:0 22px 48px rgba(7,56,88,.12); }
.portfolio-card[hidden] { display:none; }
.portal-card-image { position:relative;display:block;overflow:hidden;aspect-ratio:16/10;background:#dfe8ed; }
.portal-card-image::after { content:"";position:absolute;inset:0;border-bottom:1px solid rgba(7,56,88,.08);box-shadow:inset 0 -40px 50px rgba(7,56,88,.08);pointer-events:none; }
.portal-card-image img { width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .55s ease; }
.portfolio-card:hover .portal-card-image img { transform:scale(1.035); }
.portal-card-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 7px; }
.portal-dr { flex:0 0 auto;display:flex;align-items:baseline;gap:5px;padding:8px 10px;color:white;background:var(--navy);font-size:13px;font-weight:700; }
.portal-dr small { color:#9ec2d5;font-size:8px;letter-spacing:.09em;text-transform:uppercase; }
.portal-card-body { padding:24px 24px 27px; }
.portal-card-body h2 { min-width:0;margin:0;font:400 27px/1.1 var(--serif);letter-spacing:-.015em; }
.portal-card-body h2 a { display:flex;align-items:center;justify-content:space-between;gap:15px; }
.portal-card-body h2 span { color:var(--red);font:16px var(--sans); }
.portal-url { margin:0 0 18px;color:#8aa0ad;font-size:10px;letter-spacing:.02em; }
.portal-topics { min-height:46px;margin:0;padding-top:17px;border-top:1px solid var(--line);color:#536d7d;font-size:13px;line-height:1.65; }
.portfolio-empty { margin:40px 0 0;padding:35px;border:1px solid var(--line);background:white;text-align:center; }

.price-page-hero .page-hero-grid > p { max-width:560px; }
.price-login-section { background:var(--mist); }
.price-login-grid { display:grid;grid-template-columns:1fr minmax(390px,.72fr);gap:100px;align-items:center;max-width:1120px; }
.price-login-grid h2,.price-intro-grid h2,.price-section-head h2 { margin:0;font:400 clamp(40px,4vw,60px)/1.03 var(--serif);letter-spacing:-.02em; }
.price-login-grid > div > p:last-child { max-width:620px;color:var(--muted);line-height:1.8; }
.price-login-card { display:grid;gap:18px;padding:38px;border:1px solid var(--line);background:white;box-shadow:0 24px 60px rgba(7,56,88,.11); }
.price-login-card label { display:grid;gap:7px;color:#6f8998;font-size:13px;font-weight:700;letter-spacing:.13em;text-transform:uppercase; }
.price-login-card input { width:100%;height:52px;padding:0 15px;border:1px solid #cfdae1;background:#fbfcfd;color:var(--ink);font-size:20.8px;outline:none; }
.price-login-card input:focus { border-color:var(--red);box-shadow:0 0 0 3px rgba(244,67,77,.1); }
.price-login-card .button { width:100%;margin-top:4px;font-size:16.9px; }
.price-login-card small { color:#849aa7;font-size:17.3px;text-align:center; }
.price-login-message { margin:0;padding:12px 14px;font-size:16.9px; }
.price-login-message.is-error { color:#8e1f2a;background:#fff0f1;border:1px solid #efb6bc; }
.price-content { background:var(--mist); }
.price-access-bar { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:55px;padding:15px 18px;border:1px solid #b9ddd0;background:#eef9f5;color:#24644f;font-size:15.6px;font-weight:700; }
.price-access-bar p { margin:0; }
.price-access-bar p span { display:inline-block;width:8px;height:8px;margin-right:9px;border-radius:50%;background:#43b984;box-shadow:0 0 0 4px rgba(67,185,132,.13); }
.price-access-bar a { color:var(--navy);text-decoration:underline;text-underline-offset:3px; }
.price-intro-grid { display:grid;grid-template-columns:1.05fr .8fr;gap:90px;align-items:end;margin-bottom:42px; }
.price-intro-grid > p { margin:0;color:var(--muted);line-height:1.8; }
.price-terms-grid { display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:90px; }
.price-terms-grid article { padding:32px;border:1px solid var(--line);background:white; }
.price-terms-grid h3 { margin:0 0 22px;font:30px var(--serif); }
.price-terms-grid ul,.price-package-card ul,.price-booking ul { margin:0;padding:0;list-style:none; }
.price-terms-grid li,.price-package-card li,.price-booking li { position:relative;margin:0;padding:10px 0 10px 24px;border-top:1px solid var(--line);color:#536d7d;font-size:16.9px;line-height:1.65; }
.price-terms-grid li::before,.price-package-card li::before,.price-booking li::before { content:"✓";position:absolute;left:0;color:var(--red);font-weight:700; }
.price-section-head { display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:30px; }
.price-package-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:100px; }
.price-package-card { display:flex;flex-direction:column;padding:30px;border:1px solid var(--line);background:white;box-shadow:0 12px 30px rgba(7,56,88,.045); }
.price-package-card h3 { margin:0;font:31px/1.08 var(--serif); }
.price-package-price { margin:18px 0 22px;color:var(--red);font-size:24.7px;font-weight:700; }
.price-package-card li { font-size:15.6px; }
.price-table-panel { margin-top:10px;padding:30px;border:1px solid #c3d2db;background:#f7fafb;box-shadow:0 22px 52px rgba(7,56,88,.08); }
.price-table-heading { margin-bottom:24px; }
.price-search { width:min(100%,390px);color:#6f8998;font-size:11.7px;font-weight:700;letter-spacing:.14em;text-transform:uppercase; }
.price-search span { display:block;margin-bottom:7px; }
.price-search input { width:100%;height:50px;padding:0 15px;border:1px solid #cfdce3;background:white;color:var(--ink);font:500 18.2px var(--sans);outline:none; }
.price-search input:focus { border-color:var(--red);box-shadow:0 0 0 3px rgba(244,67,77,.1); }
.price-table-wrap { overflow-x:auto;border:1px solid #b9cbd5;background:white;box-shadow:0 12px 28px rgba(7,56,88,.055); }
.price-table { width:100%;min-width:860px;border-collapse:collapse;font-size:15.6px;line-height:1.5; }
.price-table th { padding:15px 16px;border-right:1px solid rgba(255,255,255,.12);color:#b7cbd6;background:var(--navy-deep);font-size:11.7px;letter-spacing:.12em;text-align:left;text-transform:uppercase; }
.price-table th:last-child { border-right:0; }
.price-table td { padding:17px 16px;border-right:1px solid #e3eaee;border-bottom:1px solid #d7e1e7;vertical-align:top; }
.price-table td:last-child { border-right:0; }
.price-table tbody tr:nth-child(even) { background:#f7fafb; }
.price-table tbody tr:hover { background:#eef5f8; }
.price-table td:first-child { min-width:190px; }
.price-table td:first-child a { color:var(--navy);font-weight:700; }
.price-table td:first-child a span { color:var(--red); }
.price-table td:nth-child(2) { min-width:285px;color:#536d7d; }
.price-table td:nth-child(3) { white-space:nowrap;color:var(--red); }
.price-table td:nth-child(4),.price-table th:nth-child(4) { text-align:center; }
.price-table td:nth-child(5),.price-table th:nth-child(5) { text-align:right; }
.price-empty { margin:0;padding:36px;font-size:20.8px;text-align:center; }
.price-booking { display:grid;grid-template-columns:1fr 1fr auto;gap:50px;align-items:center;margin-top:80px;padding:48px;color:white;background:var(--navy); }
.price-booking h2 { margin:0;font:42px/1.05 var(--serif); }
.price-booking li { border-color:rgba(255,255,255,.14);color:#bfd1db; }
.price-booking .button { font-size:16.9px; }
.portal-grid .portal-card { min-height:245px;display:flex;flex-direction:column;padding:27px;border:1px solid var(--line);background:white;transition:transform .25s,box-shadow .25s; }
.portal-grid .portal-card:hover { transform:translateY(-5px);box-shadow:0 20px 40px rgba(7,56,88,.09); }
.portal-grid .portal-card > span { color:var(--red);font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase; }
.portal-grid .portal-card h3 { margin:28px 0 11px;font:28px var(--serif); }
.portal-grid .portal-card p { margin:0;color:var(--muted);font-size:13px; }
.portal-grid .portal-card a,.portal-grid .portal-card b { margin-top:auto;padding-top:25px;color:var(--red);font-size:10px;letter-spacing:.1em;text-transform:uppercase; }
.portal-grid .portal-card b { color:#90a6b3;font-weight:600; }
.portal-primary { color:white;background:var(--blue);border-color:var(--blue); }.portal-primary p{color:#b9cfda}.portal-primary h3{font-size:31px}
.portal-dark { color:white;background:var(--navy-deep);border-color:var(--navy-deep); }.portal-dark p{color:#a6c0cf}
.process-section { background:var(--mist); }
.process-grid { display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #cfdce3; }
.process-grid article { padding:34px 28px;border-right:1px solid #cfdce3; }
.process-grid article:first-child { border-left:1px solid #cfdce3; }
.process-grid span { color:var(--red);font:italic 18px var(--serif); }
.process-grid h3 { margin:55px 0 12px;font:27px var(--serif); }
.process-grid p { margin:0;color:var(--muted);font-size:13px; }
.package-page { background:var(--mist); }
.package-page .package-card h2 { margin:0;font:34px var(--serif); }
.package-page .package-card ul { min-height:225px; }
.package-note { max-width:760px;margin:35px auto 0;color:#748996;text-align:center;font-size:12px; }
.cases { background:white; }
.case-card { display:grid;grid-template-columns:.45fr 1.15fr .8fr;gap:65px;padding:70px 55px;border:1px solid var(--line);border-bottom:0; }
.case-card:last-child { border-bottom:1px solid var(--line); }
.case-card.case-dark { color:white;background:var(--navy);border-color:var(--navy); }
.case-meta { display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start; }
.case-meta span { color:var(--red);font:italic 24px var(--serif); }
.case-meta b { color:#829ba9;font-size:9px;letter-spacing:.14em; }
.case-card h2 { margin:0;font:400 clamp(36px,4vw,52px)/1.04 var(--serif); }
.case-card h3 { margin:3px 0 6px;color:var(--red);font-size:10px;letter-spacing:.15em;text-transform:uppercase; }
.case-card p { margin:0 0 27px;color:var(--muted);font-size:14px; }
.case-dark p { color:#adc4d1; }
.contact-page { padding:110px 0;color:white;background:var(--navy); }
.contact-page-grid { display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:start; }
.contact-page h1 { margin:0 0 30px;font:400 clamp(52px,6vw,78px)/.98 var(--serif); }
.contact-page h1 em { color:var(--red);font-weight:400; }
.contact-page-copy > p:not(.eyebrow) { max-width:560px;color:#b7cdd8; }
.direct-contact { display:grid;grid-template-columns:90px 1fr;gap:8px 20px;margin-top:54px;padding-top:30px;border-top:1px solid rgba(255,255,255,.14); }
.direct-contact span { color:#789cac;font-size:9px;letter-spacing:.15em;text-transform:uppercase; }
.direct-contact a,.direct-contact p { margin:0 0 16px;color:white;font-size:14px; }
.contact-form-light { padding:45px;background:white;border:0;box-shadow:0 35px 70px rgba(1,24,38,.28); }
.contact-form-light .form-title { margin:0 0 12px;color:var(--ink);font:34px var(--serif); }
.contact-form-light label { color:#607887; }
.contact-form-light input,.contact-form-light select,.contact-form-light textarea { color:var(--ink);background:var(--mist);border-color:#d9e4e9; }
.contact-form-light input:focus,.contact-form-light select:focus,.contact-form-light textarea:focus { background:white;border-color:var(--red); }
.consent { grid-template-columns:18px 1fr!important;align-items:start;line-height:1.45;letter-spacing:0!important;text-transform:none!important;font-size:12px!important; }
.consent input { width:16px;height:16px;margin:2px 0;accent-color:var(--red); }
.consent a { color:var(--red);text-decoration:underline; }
.contact-form-light .form-status.is-success { color:#237947;border-color:#8fd1a7;background:#effaf3; }
.contact-form-light .form-status.is-error { color:#9e2d34;border-color:#efadb1;background:#fff2f3; }
.legal-hero { padding:85px 0;color:white;background:var(--navy); }
.legal-hero h1 { margin:0;font:64px var(--serif); }
.legal-page { background:white; }
.legal-grid { display:grid;grid-template-columns:240px minmax(0,740px);gap:100px; }
.legal-grid aside { color:var(--red);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase; }
.legal-grid h2 { margin:0 0 15px;font:38px var(--serif); }
.legal-grid h2:not(:first-child) { margin-top:52px; }
.legal-grid h3 { margin:38px 0 9px;font:25px var(--serif); }
.legal-grid p { color:#4e6675; }
.legal-grid a { color:var(--red);text-decoration:underline; }
.legal-note { margin-top:55px!important;padding:18px;border-left:3px solid var(--red);background:var(--mist);font-size:13px; }
.page-impressum .legal-grid { font-size: 18.4px; }
.page-impressum .legal-grid aside { font-size: 11.5px; }
.page-impressum .legal-grid h2 { font-size: 43.7px; }
.page-impressum .legal-grid h3 { font-size: 28.75px; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .75s ease, transform .75s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes breathe { 50% { transform: scale(1.12); opacity: .7; } }
@keyframes blink { 50% { opacity: .3; } }
@keyframes dash { to { stroke-dashoffset: -120; } }
@keyframes float { 50% { transform: translateY(-8px); } }
@keyframes pulse { 0% { width:108px;height:108px;opacity:.8 } 100% { width:300px;height:300px;opacity:0 } }
@keyframes marquee { to { transform: translateX(-50%); } }
@keyframes heroReveal { from { transform:scale(1.12);filter:saturate(.72) brightness(.72); } to { transform:scale(1.025);filter:saturate(.94) brightness(.9); } }
@keyframes lightSweep { 0%,58% { transform:translateX(-130%) skewX(-10deg);opacity:0 } 70% { opacity:.55 } 88%,100% { transform:translateX(460%) skewX(-10deg);opacity:0 } }

@media (max-width: 980px) {
  .topbar { display: none; }
  .header-inner { height: 72px; }
  .menu-toggle { display: block; }
  .nav { position: absolute; left: 0; right: 0; top: 72px; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 24px; background: white; border-top: 1px solid var(--line); box-shadow: 0 18px 30px rgba(7,56,88,.12); }
  .nav.open { display: flex; }
  .nav a:not(.button) { padding: 13px 0; }
  .nav a:not(.button)::after { display:none; }
  .hero-layout { padding-top: 92px; }
  .hero-copy { max-width: 720px; }
  .section-intro { grid-template-columns: 1fr; gap: 20px; }
  .section-intro .eyebrow { padding: 0; }
  .section-intro > p:last-child { max-width: 650px; }
  .portal-strip-inner { grid-template-columns: 1fr 64px; }
  .portal-marquee { grid-column: 1 / -1; grid-row: 2; }
  .round-link { grid-column: 2; grid-row: 1; }
  .split-story-grid { grid-template-columns:1fr;gap:60px; }
  .story-visual { min-height:420px; }
  .package-grid { grid-template-columns:1fr;max-width:620px;margin:0 auto; }
  .package-featured { transform:none; }
  .contact-stage-grid { grid-template-columns:1fr;gap:50px; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .page-hero-grid { grid-template-columns:1fr;gap:35px; }
  .page-hero-grid > p { max-width:650px; }
  .portal-hero-access { width:100%;max-width:650px; }
  .detail-grid { grid-template-columns:55px 1fr; }
  .feature-list { grid-column:2; }
  .section-intro.compact { grid-template-columns:1fr; }
  .portal-grid { grid-template-columns:repeat(2,1fr); }
  .portfolio-intro { grid-template-columns:1fr;gap:24px; }
  .portal-portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .portfolio-toolbar { grid-template-columns:1fr 220px; }
  .portfolio-count { grid-column:1/-1;margin:0;text-align:left; }
  .price-login-grid { grid-template-columns:1fr;gap:45px; }
  .price-intro-grid { grid-template-columns:1fr;gap:24px; }
  .price-package-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .price-booking { grid-template-columns:1fr 1fr; }
  .price-booking .button { grid-column:1/-1;justify-self:start; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .process-grid article { border-bottom:1px solid #cfdce3; }
  .case-card { grid-template-columns:100px 1fr;padding:50px 38px; }
  .case-card > div:last-child { grid-column:2; }
  .contact-page-grid { grid-template-columns:1fr;gap:55px; }
  .legal-grid { grid-template-columns:1fr;gap:35px; }
}

@media (max-width: 720px) {
  .container { width: min(100% - 32px, 1400px); }
  .hero { min-height: 0;flex-direction:column;align-items:stretch; }
  .home .hero { min-height: 0; }
  .hero-layout { order:1;width:100%;padding:64px 0 42px; }
  .hero h1 { font-size: clamp(48px, 14vw, 68px); }
  .hero-lead { font-size: 16px; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .button { width: 100%; }
  .hero-proof, .hero-scroll { display: none; }
  .hero::before { background:linear-gradient(180deg,rgba(2,31,49,.98) 0%,rgba(3,40,63,.96) 53%,rgba(3,40,63,.35) 76%,rgba(3,40,63,.08) 100%); }
  .hero-cinematic-wash { display:none; }
  .hero-photo { position:relative;inset:auto;order:2;width:100%;height:430px;overflow:hidden;transform:none;transition:none; }
  .hero-photo img { object-position:center 58%; }
  .section { padding: 90px 0; }
  .section-intro { margin-bottom: 40px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card, .service-card:nth-last-child(-n+2) { grid-column: auto; min-height: 350px; }
  .portal-strip { padding: 54px 0; }
  .portal-strip-inner { gap: 28px; }
  .portal-strip h2 { font-size: 31px; }
  .round-link { width: 54px; height: 54px; }
  .story-visual { min-height:360px; }
  .form-row { grid-template-columns:1fr; }
  .contact-form { padding:24px; }
  .form-action { align-items:stretch;flex-direction:column; }
  .footer-main { grid-template-columns:1fr;gap:32px;padding:58px 0 45px; }
  .footer-bottom { flex-direction:column; }
  .page-hero { padding:85px 0 78px; }
  .page-hero h1 { font-size:50px; }
  .detail-grid { grid-template-columns:1fr;gap:24px; }
  .feature-list { grid-column:1; }
  .detail-number { order:-1; }
  .mini-cta-inner { align-items:flex-start;flex-direction:column; }
  .mini-cta h2 { font-size:34px; }
  .portal-grid { grid-template-columns:1fr; }
  .portfolio-toolbar { position:relative;grid-template-columns:1fr;padding:16px; }
  .portfolio-count { grid-column:auto; }
  .portal-portfolio-grid { grid-template-columns:1fr; }
  .portal-card-heading { gap:10px; }
  .portal-card-body h2 { font-size:23px; }
  .portal-login-form { grid-template-columns:1fr; }
  .portal-login-form .button { width:100%; }
  .portal-hero-access small { text-align:left; }
  .price-login-card { padding:26px; }
  .price-terms-grid,.price-package-grid { grid-template-columns:1fr; }
  .price-section-head { align-items:stretch;flex-direction:column; }
  .price-search { width:100%; }
  .price-table-panel { padding:18px 16px; }
  .price-booking { grid-template-columns:1fr;padding:32px 26px; }
  .price-booking .button { grid-column:auto;width:100%; }
  .process-grid { grid-template-columns:1fr; }
  .process-grid article,.process-grid article:first-child { border-left:1px solid #cfdce3; }
  .process-grid h3 { margin-top:28px; }
  .case-card { grid-template-columns:1fr;gap:30px;padding:38px 28px; }
  .case-card > div:last-child { grid-column:1; }
  .case-meta { flex-direction:row; }
  .contact-page { padding:78px 0; }
  .contact-page h1 { font-size:50px; }
  .contact-form-light { padding:26px; }
  .legal-hero h1 { font-size:48px; }
}

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