@font-face {
  font-family: Manrope;
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('/fonts/manrope-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Manrope;
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('/fonts/manrope-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root { --navy:#0a2152; --red:#eb2e28; --paper:#f4f6fa; --ink:#0a2152; --muted:#5f6c86; --line:#dfe4ed; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:var(--ink); font-family:Manrope, Arial, sans-serif; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { color:inherit; }
.site-header { height:88px; display:flex; align-items:center; gap:42px; padding:0 clamp(24px,5vw,80px); background:rgba(255,255,255,.94); border-bottom:1px solid #e8ebf1; position:sticky; top:0; z-index:20; backdrop-filter:blur(16px); }
.brand { margin-right:auto; position:relative; z-index:2; }
.brand img { width:156px; height:auto; display:block; }
nav { display:flex; gap:34px; font-size:14px; font-weight:700; }
nav a { position:relative; }
nav a::after { content:''; position:absolute; height:2px; left:0; right:100%; bottom:-8px; background:var(--red); transition:right .25s ease; }
nav a:hover::after,nav a:focus-visible::after { right:0; }
nav .language-switch { color:var(--red); padding-left:18px; border-left:1px solid var(--line); }
.button { border:0; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:28px; border-radius:999px; background:var(--red); color:#fff; padding:17px 24px; font-weight:800; font-size:14px; box-shadow:0 12px 30px rgba(235,46,40,.2); transition:transform .25s ease, box-shadow .25s ease, background .25s ease; }
.button:hover,.button:focus-visible { transform:translateY(-2px); box-shadow:0 16px 38px rgba(235,46,40,.28); background:#d92420; }
.button-small { padding:13px 19px; font-size:13px; }
.menu-button { display:none; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; background:#fff; padding:12px; }
.menu-button span { height:2px; background:var(--navy); display:block; margin:4px 0; }
.hero { --mx:0px; --my:0px; min-height:calc(100vh - 88px); display:grid; grid-template-columns:minmax(0,1.02fr) minmax(420px,.98fr); background:var(--paper); overflow:hidden; }
.hero-copy { padding:clamp(62px,6vw,96px) clamp(28px,7vw,118px); align-self:stretch; display:flex; flex-direction:column; justify-content:center; position:relative; isolation:isolate; overflow:hidden; }
.hero-copy::before { content:''; position:absolute; inset:0; z-index:-2; opacity:.45; background-image:linear-gradient(rgba(10,33,82,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(10,33,82,.045) 1px,transparent 1px); background-size:48px 48px; mask-image:linear-gradient(135deg,#000,transparent 72%); }
.hero-copy::after { content:''; position:absolute; z-index:-1; width:330px; height:330px; border:1px solid rgba(235,46,40,.18); border-radius:50%; right:-90px; top:clamp(96px,10vw,128px); background-image:linear-gradient(rgba(244,246,250,.86),rgba(244,246,250,.86)),url('/favicon.png'); background-position:center; background-size:100% 100%,132px 132px; background-repeat:no-repeat; box-shadow:0 0 0 44px rgba(235,46,40,.025),0 0 0 88px rgba(10,33,82,.025); transform:translate3d(var(--mx),var(--my),0); transition:transform .18s ease-out; }
.hero-grid-mark { position:absolute; right:32px; top:32px; width:74px; height:74px; display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(3,1fr); gap:5px; transform:translate3d(var(--mx),var(--my),0); transition:transform .18s ease-out; }
.hero-grid-mark span { width:6px; height:6px; border-radius:50%; background:var(--red); opacity:.55; }
.hero-grid-mark span:nth-child(2) { grid-column:2; grid-row:2; opacity:.25; }
.hero-grid-mark span:nth-child(3) { grid-column:3; grid-row:3; opacity:.12; }
.eyebrow,.section-kicker { color:#43516e; font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:800; display:flex; align-items:center; gap:10px; }
.eyebrow span { width:26px; height:2px; background:var(--red); }
h1 { width:max-content; max-width:100%; margin:28px 0 26px; font-size:clamp(52px,5.45vw,88px); line-height:.9; letter-spacing:-.065em; font-weight:800; }
h1 em { color:var(--red); font-style:normal; }
.hero-title-line { display:block; white-space:nowrap; }
.hero-title-accent { margin-top:.24em; }
.hero-title-rotator { display:grid; width:max-content; max-width:100%; overflow:hidden; padding-bottom:.16em; margin-bottom:-.16em; font-size:clamp(40px,4.75vw,88px); }
.hero-title-rotator span { grid-area:1 / 1; display:block; white-space:nowrap; line-height:.98; opacity:0; transform:translateY(45%); animation:hero-title-cycle 9s cubic-bezier(.22,.75,.25,1) infinite both; }
.hero-title-rotator span:first-child { opacity:1; animation-delay:-.24s; }
.hero-title-rotator span:nth-child(2) { animation-delay:2.76s; }
.hero-title-rotator span:nth-child(3) { animation-delay:5.76s; }
.hero-lead { max-width:610px; font-size:clamp(17px,1.45vw,21px); line-height:1.65; color:#4e5b76; }
.hero-actions { margin-top:38px; display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.text-link { font-size:14px; font-weight:800; display:inline-flex; gap:14px; align-items:center; }
.underline { margin-top:26px; padding-bottom:7px; border-bottom:2px solid var(--red); }
.trust-row { margin-top:52px; display:flex; flex-wrap:wrap; gap:22px; color:#5d6880; font-size:12px; font-weight:700; }
.trust-row b { color:var(--red); margin-right:5px; }
.hero-scroll { position:absolute; right:30px; bottom:28px; display:flex; align-items:center; gap:12px; color:#778198; font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; writing-mode:vertical-rl; }
.hero-scroll i { display:block; width:1px; height:50px; background:linear-gradient(var(--red) 50%,rgba(10,33,82,.16) 50%); background-size:100% 200%; animation:scroll-line 2s ease-in-out infinite; }
.hero-media { --clean-x:58%; position:relative; min-height:660px; overflow:hidden; cursor:ew-resize; }
.hero-media::before { content:''; position:absolute; z-index:4; left:0; top:0; bottom:0; width:30px; background:linear-gradient(90deg,rgba(244,246,250,.78),rgba(244,246,250,.26) 45%,transparent); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); pointer-events:none; }
.hero-media::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,33,82,.18),transparent 30%),linear-gradient(0deg,rgba(10,33,82,.22),transparent 35%); }
.hero-media > img,.hero-clean-layer img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; transition:transform 1.2s cubic-bezier(.2,.8,.2,1),filter .35s ease; }
.hero-media > img,.hero-clean-layer img { transform:scaleX(-1); }
.hero-base-layer { filter:grayscale(.9) saturate(.35) brightness(.7) contrast(.95); }
.hero-clean-layer { position:absolute; z-index:1; inset:0; overflow:hidden; clip-path:inset(0 calc(100% - var(--clean-x)) 0 0); will-change:clip-path; }
.hero-media:hover > img,.hero-media:hover .hero-clean-layer img { transform:scaleX(-1) scale(1.025); }
.clean-swipe { position:absolute; z-index:5; top:0; bottom:0; left:var(--clean-x); width:2px; background:linear-gradient(transparent 4%,rgba(255,255,255,.92) 18%,var(--red) 50%,rgba(255,255,255,.92) 82%,transparent 96%); transform:translateX(-1px); pointer-events:none; will-change:left; box-shadow:0 0 24px rgba(255,255,255,.5); }
.clean-swipe span { position:absolute; left:50%; top:23%; transform:translateX(-50%) rotate(-90deg); transform-origin:center; white-space:nowrap; border-radius:999px; background:rgba(255,255,255,.92); color:var(--navy); padding:9px 13px; font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; box-shadow:0 10px 30px rgba(10,33,82,.18); }
.clean-swipe span b { color:var(--red); margin-right:6px; font-size:12px; }
.clean-hint { position:absolute; z-index:4; right:24px; bottom:26px; padding:10px 13px; border:1px solid rgba(255,255,255,.32); border-radius:999px; background:rgba(10,33,82,.46); color:#fff; backdrop-filter:blur(10px); font-size:8px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; pointer-events:none; }
.motion-lines { position:absolute; z-index:2; left:28px; top:28px; display:flex; flex-direction:column; gap:8px; transform:translate3d(var(--mx),var(--my),0); transition:transform .2s ease-out; }
.motion-lines span { display:block; height:2px; width:64px; background:#fff; opacity:.8; }
.motion-lines span:nth-child(2) { width:38px; background:var(--red); }
.motion-lines span:nth-child(3) { width:22px; }
.hero-badge { position:absolute; z-index:2; left:0; bottom:0; width:235px; min-height:128px; padding:24px; background:var(--navy); color:#fff; display:flex; gap:16px; align-items:center; }
.hero-badge strong { font-size:34px; color:var(--red); }
.hero-badge span { font-size:12px; line-height:1.45; font-weight:700; }
.section { padding:clamp(86px,9vw,150px) clamp(24px,7vw,118px); }
.section-heading { display:grid; grid-template-columns:1.25fr .55fr; align-items:end; gap:50px; margin-bottom:64px; }
.section-kicker span { color:var(--red); font-variant-numeric:tabular-nums; }
.section-heading h2,.about h2,.process h2,.split-feature h2,.inquiry h2,.faq h2 { margin:20px 0 0; font-size:clamp(42px,5vw,76px); line-height:1.02; letter-spacing:-.055em; }
.section-heading > p { color:var(--muted); line-height:1.8; font-size:15px; margin:0; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.service-card { min-height:390px; padding:30px; background:#fff; display:flex; flex-direction:column; position:relative; overflow:hidden; transition:background .35s ease,color .35s ease,transform .35s ease; }
.service-card::before { content:''; width:260px; height:260px; border:1px solid rgba(10,33,82,.08); border-radius:50%; position:absolute; right:-130px; bottom:-160px; transition:transform .5s ease,border-color .35s ease; }
.service-card:hover { transform:translateY(-5px); z-index:2; box-shadow:0 22px 60px rgba(10,33,82,.11); }
.service-card:hover::before { transform:scale(1.25); border-color:rgba(235,46,40,.3); }
.service-card.featured { color:#fff; background-color:var(--navy); background-image:linear-gradient(rgba(235,46,40,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(235,46,40,.14) 1px,transparent 1px); background-size:38px 38px; }
.service-top { display:flex; align-items:center; justify-content:space-between; font-size:12px; font-weight:800; color:var(--red); }
.service-top button { width:40px; height:40px; border-radius:50%; border:1px solid var(--line); background:transparent; cursor:pointer; transition:background .25s,color .25s,border .25s; }
.featured .service-top button { border-color:rgba(255,255,255,.24); color:#fff; }
.service-top button:hover { background:var(--red); color:#fff; border-color:var(--red); }
.service-card h3 { font-size:26px; margin:52px 0 15px; letter-spacing:-.035em; transition:margin .35s ease; }
.service-card p { color:var(--muted); font-size:14px; line-height:1.75; margin:0; }
.featured p { color:rgba(255,255,255,.7); }
.service-detail { font-size:12px; line-height:1.55; margin-top:16px; color:#75819a; max-height:0; opacity:0; transform:translateY(8px); transition:max-height .4s ease,opacity .3s ease,transform .4s ease; }
.featured .service-detail { color:rgba(255,255,255,.65); }
.service-card:hover h3,.service-card:focus-within h3 { margin-top:30px; }
.service-card:hover .service-detail,.service-card:focus-within .service-detail { max-height:145px; opacity:1; transform:translateY(0); }
.card-link { margin-top:auto; padding:22px 0 0; border:0; border-top:1px solid var(--line); background:transparent; display:flex; justify-content:space-between; font-size:12px; font-weight:800; cursor:pointer; }
.featured .card-link { border-color:rgba(255,255,255,.2); color:#fff; }
.card-link span { color:var(--red); }
.promise { background:var(--navy); color:#fff; padding:clamp(78px,8vw,130px) clamp(24px,7vw,118px); display:grid; grid-template-columns:.78fr 1.6fr; gap:70px; position:relative; overflow:hidden; }
.promise::before { content:'CF'; position:absolute; right:-4vw; bottom:-12vw; font-weight:800; font-size:34vw; color:rgba(255,255,255,.025); letter-spacing:-.12em; }
.promise-title span { color:#fff; opacity:.55; font-size:11px; letter-spacing:.15em; text-transform:uppercase; }
.promise-title h2 { font-size:clamp(42px,4.4vw,70px); line-height:1; letter-spacing:-.05em; margin:22px 0; }
.promise-grid { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,.14); }
.promise-grid article { background:var(--navy); padding:34px; min-height:210px; }
.promise-grid article > span { color:var(--red); font-size:11px; font-weight:800; }
.promise-grid h3 { font-size:18px; margin:28px 0 10px; }
.promise-grid p { color:rgba(255,255,255,.65); font-size:13px; line-height:1.7; margin:0; }
.about { display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,8vw,130px); align-items:center; }
.about-photo { height:min(720px,68vw); min-height:560px; position:relative; overflow:hidden; }
.about-photo img { width:100%; height:100%; object-fit:cover; }
.photo-label { position:absolute; left:0; bottom:0; padding:19px 26px; background:var(--red); color:#fff; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.about-copy .large-copy { color:var(--ink); font-size:clamp(20px,2vw,28px); line-height:1.5; margin:34px 0 25px; letter-spacing:-.025em; }
.about-copy > p:not(.section-kicker):not(.large-copy) { color:var(--muted); line-height:1.8; font-size:15px; }
.process { background:#0f285b; color:#fff; }
.process-head { display:grid; grid-template-columns:1.15fr .65fr; column-gap:80px; align-items:end; }
.process-head .section-kicker,.light { color:rgba(255,255,255,.68); grid-column:1/-1; }
.process-head p:last-child { color:rgba(255,255,255,.62); line-height:1.8; margin:0 0 8px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); margin-top:70px; border-top:1px solid rgba(255,255,255,.18); }
.steps article { padding:34px 40px 0 0; min-height:270px; border-right:1px solid rgba(255,255,255,.18); }
.steps article:not(:first-child) { padding-left:40px; }
.steps article:last-child { border-right:0; }
.steps span { color:var(--red); font-size:12px; font-weight:800; }
.steps h3 { font-size:24px; margin:46px 0 14px; }
.steps p { color:rgba(255,255,255,.62); line-height:1.75; font-size:14px; }
.split-feature { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(50px,8vw,120px); align-items:center; background:var(--paper); }
.split-copy > p:not(.section-kicker) { color:var(--muted); font-size:15px; line-height:1.85; max-width:580px; }
.split-copy ul { list-style:none; padding:0; margin:32px 0 38px; display:grid; grid-template-columns:1fr 1fr; gap:14px; font-size:13px; font-weight:700; }
.split-copy li span { color:var(--red); margin-right:8px; }
.split-image { height:660px; position:relative; }
.split-image img { width:100%; height:100%; object-fit:cover; }
.image-stat { position:absolute; left:-50px; bottom:42px; width:210px; height:210px; border-radius:50%; background:var(--red); color:#fff; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:5px; text-align:center; box-shadow:0 22px 50px rgba(235,46,40,.25); }
.image-stat small { text-transform:uppercase; letter-spacing:.12em; font-size:9px; }
.image-stat strong { font-size:46px; line-height:.92; letter-spacing:-.06em; margin:5px 0 8px; }
.image-stat span { font-size:11px; line-height:1.3; }
.inquiry { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(50px,8vw,130px); background:var(--navy); color:#fff; }
.inquiry-intro > p:not(.section-kicker) { color:rgba(255,255,255,.65); line-height:1.8; font-size:14px; max-width:470px; }
.contact-box { margin-top:46px; padding-top:28px; border-top:1px solid rgba(255,255,255,.18); display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.contact-box > span { font-size:10px; letter-spacing:.14em; text-transform:uppercase; opacity:.55; margin-bottom:8px; }
.contact-box a:first-of-type { font-size:25px; font-weight:800; }
.contact-box a:nth-of-type(2) { color:#fff; opacity:.72; font-size:13px; }
.contact-box small { margin-top:18px; color:rgba(255,255,255,.5); line-height:1.6; }
.quote-form { background:#fff; color:var(--ink); padding:clamp(26px,4vw,56px); }
.quote-form fieldset { border:0; padding:0; margin:0 0 36px; }
.quote-form legend { font-size:14px; font-weight:800; margin-bottom:16px; }
.service-options { display:flex; flex-wrap:wrap; gap:8px; }
.service-options button { border:1px solid var(--line); border-radius:999px; padding:10px 13px; background:#fff; cursor:pointer; color:#66728a; font-size:11px; font-weight:700; transition:.2s ease; }
.service-options button.active,.service-options button:hover { background:var(--navy); color:#fff; border-color:var(--navy); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.form-grid label { display:flex; flex-direction:column; gap:9px; }
.form-grid label > span { font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#68748d; }
.form-grid .full { grid-column:1/-1; }
.form-grid input,.form-grid select,.form-grid textarea { width:100%; background:#f7f8fb; border:1px solid transparent; border-radius:0; padding:15px 16px; color:var(--ink); outline:none; transition:.2s ease; }
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus { border-color:var(--red); background:#fff; box-shadow:0 0 0 3px rgba(235,46,40,.08); }
.form-grid textarea { resize:vertical; }
.form-honeypot { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.consent { color:#758098; font-size:12px; margin:20px 0 25px; line-height:1.5; }
.consent a { color:var(--navy); text-decoration:underline; }
.consent input { accent-color:var(--red); margin-top:2px; }
.form-submit { width:100%; }
.form-submit:disabled { cursor:wait; opacity:.72; }
.form-note { color:#26704b; font-size:12px; background:#edf8f2; padding:12px 14px; margin:14px 0 0; }
.form-note-error { color:#9f2924; background:#fff0ef; }
.form-note a { color:inherit; text-decoration:underline; }
.faq { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(50px,8vw,130px); }
.faq-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); }
summary { list-style:none; cursor:pointer; display:grid; grid-template-columns:38px 1fr 30px; align-items:center; gap:12px; padding:26px 0; font-weight:800; font-size:16px; }
summary::-webkit-details-marker { display:none; }
summary > span { color:var(--red); font-size:10px; }
summary b { font-size:22px; font-weight:400; transition:transform .25s ease; }
details[open] summary b { transform:rotate(45deg); }
details p { margin:0 40px 26px 50px; color:var(--muted); font-size:13px; line-height:1.8; }
footer { background:#061636; color:#fff; }
.footer-main { padding:76px clamp(24px,7vw,118px); display:grid; grid-template-columns:1.25fr .65fr .75fr 1fr; gap:50px; }
.footer-logo { display:inline-block; padding:13px 16px; }
.footer-logo img { width:150px; display:block; }
.footer-brand p { max-width:290px; color:rgba(255,255,255,.55); line-height:1.7; font-size:13px; margin-top:22px; }
.footer-main > div:not(.footer-brand) { display:flex; flex-direction:column; gap:11px; font-size:12px; color:rgba(255,255,255,.6); }
.footer-main h3 { color:#fff; font-size:12px; text-transform:uppercase; letter-spacing:.12em; margin:0 0 12px; }
.footer-cta { background:var(--red); min-height:210px; padding:28px; display:flex; flex-direction:column; justify-content:space-between; transition:transform .25s ease; }
.footer-cta:hover { transform:translateY(-5px); }
.footer-cta span { font-size:20px; font-weight:800; line-height:1.25; }
.footer-cta b { font-size:12px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); padding:20px clamp(24px,7vw,118px); display:flex; justify-content:space-between; align-items:center; gap:22px; color:rgba(255,255,255,.42); font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.footer-bottom a,.footer-legal-link { transition:color .2s ease; }
.footer-bottom a:hover,.footer-bottom a:focus-visible,.footer-legal-link:hover,.footer-legal-link:focus-visible { color:#fff; }
.footer-legal-link { border:0; padding:0; background:transparent; color:inherit; text-transform:uppercase; letter-spacing:inherit; font-size:inherit; cursor:pointer; }

.cookie-banner { position:fixed; z-index:90; left:50%; bottom:22px; width:min(1120px,calc(100% - 32px)); transform:translateX(-50%); display:flex; align-items:center; justify-content:space-between; gap:30px; padding:22px 24px; border:1px solid rgba(10,33,82,.14); background:rgba(255,255,255,.97); color:var(--navy); box-shadow:0 24px 70px rgba(6,22,54,.2); backdrop-filter:blur(18px); border-radius:18px; text-transform:none; letter-spacing:normal; }
.cookie-banner-copy { max-width:610px; }
.cookie-banner-copy strong { font-size:16px; }
.cookie-banner-copy p { margin:7px 0 0; color:var(--muted); font-size:12px; line-height:1.65; }
.cookie-banner-copy a,.cookie-policy-link { color:var(--navy); font-weight:800; text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:4px; }
.cookie-banner-actions,.cookie-modal-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.cookie-action { min-height:43px; border-radius:999px; padding:11px 17px; font-size:11px; font-weight:800; cursor:pointer; transition:transform .2s ease,box-shadow .2s ease,background .2s ease; }
.cookie-action:hover,.cookie-action:focus-visible { transform:translateY(-2px); }
.cookie-action-red { border:1px solid var(--red); background:var(--red); color:#fff; box-shadow:0 10px 24px rgba(235,46,40,.18); }
.cookie-action-dark { border:1px solid var(--navy); background:var(--navy); color:#fff; }
.cookie-action-outline { border:1px solid var(--line); background:#fff; color:var(--navy); }
.cookie-modal-backdrop { position:fixed; z-index:100; inset:0; display:grid; place-items:center; padding:24px; background:rgba(6,22,54,.58); backdrop-filter:blur(8px); }
.cookie-modal { position:relative; width:min(680px,100%); max-height:calc(100dvh - 48px); overflow-y:auto; padding:42px; border-radius:22px; background:#fff; color:var(--navy); box-shadow:0 30px 100px rgba(6,22,54,.34); text-transform:none; letter-spacing:normal; }
.cookie-modal-close { position:absolute; top:18px; right:18px; width:38px; height:38px; border:1px solid var(--line); border-radius:50%; background:#fff; color:var(--navy); font-size:24px; line-height:1; cursor:pointer; }
.cookie-modal h2 { margin:17px 0 12px; font-size:clamp(34px,5vw,48px); letter-spacing:-.05em; }
.cookie-modal-intro { margin:0 0 28px; color:var(--muted); font-size:13px; line-height:1.7; }
.cookie-options { border-top:1px solid var(--line); }
.cookie-option { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:21px 0; border-bottom:1px solid var(--line); }
.cookie-option strong { font-size:14px; }
.cookie-option p { margin:5px 0 0; max-width:480px; color:var(--muted); font-size:11px; line-height:1.55; }
.cookie-status { flex-shrink:0; color:var(--red); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.cookie-switch { position:relative; width:46px; height:26px; flex-shrink:0; }
.cookie-switch input { position:absolute; opacity:0; width:1px; height:1px; }
.cookie-switch i { position:absolute; inset:0; border-radius:999px; background:#cbd2df; transition:background .2s ease; cursor:pointer; }
.cookie-switch i::after { content:''; position:absolute; width:20px; height:20px; left:3px; top:3px; border-radius:50%; background:#fff; box-shadow:0 2px 8px rgba(6,22,54,.2); transition:transform .2s ease; }
.cookie-switch input:checked + i { background:var(--red); }
.cookie-switch input:checked + i::after { transform:translateX(20px); }
.cookie-switch input:focus-visible + i { outline:3px solid rgba(235,46,40,.24); outline-offset:3px; }
.cookie-modal-actions { margin-top:28px; justify-content:flex-end; }
.cookie-policy-link { display:inline-block; margin-top:20px; font-size:11px; }

.legal-page { min-height:100vh; background:var(--paper); }
.legal-header { height:88px; padding:0 clamp(24px,7vw,118px); display:flex; align-items:center; gap:30px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.94); }
.legal-header .text-link { margin-left:auto; }
.legal-header-links { margin-left:auto; display:flex; align-items:center; gap:24px; }
.legal-header-links .text-link { margin-left:0; }
.legal-header .language-switch { color:var(--red); font-size:13px; font-weight:800; }
.legal-content { width:min(880px,calc(100% - 40px)); margin:0 auto; padding:100px 0 120px; }
.legal-content h1 { width:auto; margin:28px 0 24px; font-size:clamp(52px,7vw,86px); line-height:.95; }
.legal-lead { max-width:720px; color:var(--muted); font-size:19px; line-height:1.7; }
.legal-content section { padding:38px 0; border-bottom:1px solid var(--line); }
.legal-content h2 { margin:0 0 17px; font-size:25px; letter-spacing:-.035em; }
.legal-content section p,.legal-content li { color:var(--muted); font-size:14px; line-height:1.8; }
.legal-content section a { color:var(--navy); font-weight:800; text-decoration:underline; text-decoration-color:var(--red); text-underline-offset:4px; }
.legal-content ul { margin:0; padding-left:20px; }
.legal-content code { color:var(--navy); font-size:12px; overflow-wrap:anywhere; }
.legal-updated { margin-top:38px; color:#7b8599; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.legal-footer .footer-bottom { justify-content:flex-start; }
.legal-footer .footer-bottom > :last-child { margin-left:auto; }
.mobile-quote { display:none; }
@keyframes rise { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }
@keyframes signal-float { 0%,100% { transform:translateY(-4px); } 50% { transform:translateY(6px); } }
@keyframes scroll-line { 0% { background-position:0 100%; } 100% { background-position:0 -100%; } }
@keyframes hero-title-cycle { 0% { opacity:0; transform:translateY(45%); } 4% { opacity:1; transform:translateY(0); } 29% { opacity:1; transform:translateY(0); } 33.333% { opacity:0; transform:translateY(-45%); } 100% { opacity:0; transform:translateY(-45%); } }
@supports (animation-timeline:view()) { .reveal { animation-name:rise; animation-fill-mode:both; animation-timeline:view(); animation-range:entry 6% cover 28%; } }
@media (hover:none) { .hero-media { --clean-x:64%; cursor:auto; } .clean-hint,.clean-swipe span { display:none; } .service-card:focus-within h3 { margin-top:52px; } .service-card:focus-within .service-detail { max-height:0; opacity:0; transform:translateY(8px); } }
@media (max-width:1050px) { .service-grid { grid-template-columns:1fr 1fr; } .footer-main { grid-template-columns:1fr 1fr; } }
@media (max-width:900px) {
  .menu-button { display:block; z-index:2; } .header-cta { display:none; }
  nav { position:absolute; left:0; right:0; top:88px; background:#fff; padding:22px 24px 30px; flex-direction:column; gap:22px; border-bottom:1px solid var(--line); transform:translateY(-120%); opacity:0; pointer-events:none; transition:.3s ease; }
  nav.is-open { transform:translateY(0); opacity:1; pointer-events:auto; }
  nav .language-switch { padding-left:0; border-left:0; }
  .hero { grid-template-columns:1fr; min-height:auto; } .hero-copy { padding-top:80px; padding-bottom:74px; } .hero-copy::after { top:16%; } .hero-media { min-height:620px; } .hero-title-rotator { font-size:inherit; }
  .section-heading,.promise,.about,.process-head,.split-feature,.inquiry,.faq { grid-template-columns:1fr; }
  .section-heading { gap:28px; } .promise { gap:35px; } .about-photo { grid-row:2; } .process-head { gap:22px; }
  .split-image { height:600px; } .image-stat { left:20px; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .cookie-banner { align-items:flex-start; flex-direction:column; gap:18px; }
}
@media (max-width:620px) {
  .site-header { height:76px; padding:0 18px; } .brand img { width:132px; } nav { top:76px; }
  .hero-copy { padding:58px 20px 62px; } h1 { font-size:clamp(35px,11.2vw,50px); } .hero-lead { font-size:16px; } .trust-row { margin-top:38px; gap:12px; flex-direction:column; }
  .hero-grid-mark,.hero-scroll { display:none; } .hero-media { min-height:500px; } .hero-badge { width:205px; }
  .section { padding:78px 20px; } .section-heading h2,.about h2,.process h2,.split-feature h2,.inquiry h2,.faq h2 { font-size:43px; }
  .service-grid { grid-template-columns:1fr; } .service-card { min-height:330px; }
  .promise { padding:78px 20px; } .promise-grid { grid-template-columns:1fr; } .promise-grid article { min-height:185px; }
  .about-photo { min-height:460px; height:120vw; } .steps { grid-template-columns:1fr; } .steps article,.steps article:not(:first-child) { padding:30px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.18); min-height:auto; } .steps h3 { margin-top:28px; }
  .split-copy ul { grid-template-columns:1fr; } .split-image { height:500px; } .image-stat { width:165px; height:165px; } .image-stat strong { font-size:44px; }
  .form-grid { grid-template-columns:1fr; } .form-grid .full { grid-column:auto; } .quote-form { padding:28px 20px; margin-inline:-20px; }
  .faq-list { margin-top:18px; } details p { margin-left:0; margin-right:0; }
  .footer-main { padding:60px 20px; grid-template-columns:1fr; } .footer-cta { min-height:170px; } .footer-bottom { padding:18px 20px 88px; gap:14px; flex-wrap:wrap; }
  .cookie-banner { bottom:12px; width:calc(100% - 24px); padding:20px; border-radius:16px; }
  .cookie-banner-actions { width:100%; display:grid; grid-template-columns:1fr 1fr; }
  .cookie-banner-actions .cookie-action-outline { grid-column:1 / -1; grid-row:2; }
  .cookie-action { width:100%; }
  .cookie-modal-backdrop { align-items:end; padding:12px; }
  .cookie-modal { width:100%; max-height:calc(100dvh - 24px); padding:34px 20px 24px; border-radius:20px; }
  .cookie-option { align-items:flex-start; }
  .cookie-modal-actions { flex-direction:column-reverse; }
  .legal-header { height:76px; padding:0 20px; } .legal-header .brand img { width:132px; }
  .legal-header .text-link { font-size:11px; }
  .legal-content { padding:72px 0 90px; } .legal-content h1 { font-size:48px; }
  .legal-lead { font-size:16px; }
  .mobile-quote { display:flex; position:fixed; z-index:30; left:12px; right:12px; bottom:12px; background:var(--red); color:#fff; border-radius:999px; padding:16px 22px; justify-content:space-between; font-weight:800; font-size:13px; box-shadow:0 15px 35px rgba(10,33,82,.28); }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none !important; transition:none !important; } }
