/* Final typography pass. Keep the established imagery, layout and cultural details. */
:root{--ink:#0a1c30;--muted:#405873;--type-secondary:#344d68;--type-tertiary:#4b6380;--type-accent:#345a85}
body{font-kerning:normal;text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance}
h1{font-weight:760;letter-spacing:-.047em}
h2{font-weight:740;letter-spacing:-.037em;line-height:1.13}
h3{letter-spacing:-.025em}
.eyebrow{color:var(--type-accent);font-weight:700;letter-spacing:.155em;line-height:1.5}
.button{font-weight:650;letter-spacing:-.015em}
/* A compact wordmark, quiet navigation and clear language selection. */
.header{border-bottom-color:#183c6010;background:#fffffff0}
.header-inner{gap:26px}
.header .brand{gap:20px;flex-shrink:0}
.header .brand strong{font-weight:820;letter-spacing:-.065em}
.header .brand span{color:#35506b;font-size:12px;font-weight:500;line-height:1.45;letter-spacing:.005em}
.header nav{gap:28px;font-weight:600;letter-spacing:-.012em}
.header nav a{position:relative;padding:10px 0;transition:color .2s}
.header nav a:after{content:'';position:absolute;left:0;right:0;bottom:3px;height:1px;background:#315d88;transform:scaleX(0);transform-origin:left;transition:transform .2s}
.header nav a:hover,.header nav a:focus-visible{color:#234d78}
.header nav a:hover:after,.header nav a:focus-visible:after{transform:scaleX(1)}
.header .header-cta{font-weight:650;border-color:#243e56;box-shadow:inset 0 1px 0 #ffffff18,0 3px 9px #102c4510}
.header.scrolled{box-shadow:0 5px 24px #142d4412;border-bottom-color:#dfe7ef}
.languages{gap:3px;flex-shrink:0;font-size:12px;font-weight:550}
.languages>span{color:#b4c2cf;font-size:11px}
.languages button,.languages>a{min-width:29px;min-height:36px;padding:9px 5px;border-radius:5px;color:#465c74;transition:background .2s,color .2s;text-align:center}
.languages button[aria-pressed=true],.languages>a[aria-current=page]{color:#102e4d;background:#eaf1f8;font-weight:750}
.languages button:hover,.languages>a:hover{background:#e5edf5;color:#0e3459}
/* Strong hero copy; the scenic layers and their motion remain untouched. */
.hero h1{line-height:1.075}
.hero-description{font-weight:450;color:#10253c;line-height:1.5;letter-spacing:-.012em}
.hero-extra{color:#354f6a;font-weight:450;line-height:1.6}
.hero-aside{font-weight:650;line-height:1.2;letter-spacing:-.025em;color:#0c243b}
.hero-bottom{font-weight:600}
.location{background:#081c30b3;letter-spacing:.005em;line-height:1.5}
/* Four levels of contrast keep supporting copy readable without competing. */
.benefits .benefit h3{font-weight:740;letter-spacing:-.02em;color:#091f34;text-shadow:none}
.benefits .benefit p{color:#304962;line-height:1.55;font-weight:480}
.section-heading>p{color:var(--type-secondary);line-height:1.65;font-weight:450}
.product-title h3{font-weight:720;letter-spacing:-.035em;line-height:1.2}
.product-description{color:#152c45;font-weight:500;line-height:1.55;letter-spacing:-.012em}
.product-detail{color:#405873;line-height:1.65;font-weight:450}
.product-ownership{color:#244d78;line-height:1.55;font-weight:500}
.badge{color:#163f76;font-weight:700;line-height:1.4}
.text-link{color:#174978;font-weight:700}
.service .service-title{font-weight:680;line-height:1.3;letter-spacing:-.025em;color:#102840}
.service .service-description{font-size:13px;line-height:1.6;font-weight:450;color:#405b76}
.process li{font-weight:550;color:#18334f;line-height:1.55}
.mountain-card h3{font-weight:680;line-height:1.25}
.mountain-card p{font-weight:550;line-height:1.55}
.mountain-card small{font-size:12px;color:#354e69;line-height:1.5;font-weight:450}
.cinematic h2{font-weight:740;line-height:1.12;letter-spacing:-.038em}
.cinematic .eyebrow{color:#c2dcf7}
.cinematic p:not(.eyebrow){color:#eef5fc;font-weight:450}
.cinematic ul{color:#f7fbff;font-weight:550;line-height:1.55}
/* Contact and legal copy: brighter on dark surfaces, darker on form surfaces. */
.footer-brand>p,.document-footer-grid>div>p{color:#dce7f3;line-height:1.65}
.contact-details{color:#e3edf7;line-height:1.6}
.contact-details .eyebrow{color:#c4d8ed}
.contact-details .phone{font-weight:650;letter-spacing:-.018em;font-variant-numeric:tabular-nums}
.contact-details .ownership{color:#c6d7e9;line-height:1.65}
.footer-grid form h3{color:#345679;font-size:12px;font-weight:700;line-height:1.5;letter-spacing:.13em}
.footer-grid label{font-size:13px;font-weight:550;color:#334d69;line-height:1.45;margin-bottom:12px}
.footer-grid label span{margin-bottom:6px}
input,textarea{border-color:#c8d7e5;line-height:1.5}
input::placeholder,textarea::placeholder{color:#566d84;opacity:1}
input:focus-visible,textarea:focus-visible{border-color:#527ca4;outline:2px solid #7098bd;outline-offset:2px}
.form-notice{color:#3b536d;line-height:1.65}
.form-policy{font-size:12px;color:#34577c;line-height:1.6}
.form-policy a{text-decoration-thickness:1px;text-underline-offset:3px}
.footer-bottom nav{font-size:13px;color:#d5e2ef;line-height:1.55}
.footer-bottom>div{font-size:12px;color:#b8cbdf;line-height:1.5}
.footer-bottom a:hover,.document-footer-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.document-footer-links a{color:#d5e2ef;line-height:1.6}
.document-section p,.document-section li{color:#354e69;line-height:1.75}
.document-meta,.breadcrumbs,.document-toc a{color:#46617c}
.document-section h2{font-weight:700}
dialog p:not(.eyebrow){color:#354e69;line-height:1.65}
@media(max-width:1150px){.header-inner{gap:20px}.header nav{gap:22px}}
@media(max-width:800px){.header-inner{gap:16px}.header nav{gap:18px}.hero h1{line-height:1.08}}
@media(max-width:600px){.header-inner{gap:10px}.header .brand{gap:12px}.header .brand span{font-size:10px;line-height:1.35}.header nav{gap:12px}.header nav a{padding:9px 0}.hero h1{line-height:1.07}.hero-description{line-height:1.55}.hero-extra{font-size:13px}.trust{font-size:10px;line-height:1.5;gap:8px 12px}.location{font-size:11px}.service .service-description{font-size:12px}.process li{font-size:12px}.cinematic ul{font-size:12px}.footer-bottom nav{font-size:12px}.footer-bottom>div{font-size:11px}}
@media(max-width:350px){.header .brand span{font-size:9px}.header .brand{gap:8px}.header-inner{gap:7px}.languages button,.languages>a{min-width:27px}}
@media(prefers-reduced-motion:reduce){.header,.header nav a,.header nav a:after,.languages button,.languages>a{transition:none}}
