@font-face { font-family: "Archivo Black"; src: url("fonts/archivo-black.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: Inter; src: url("fonts/inter-400.ttf") format("truetype"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: Inter; src: url("fonts/inter-500.ttf") format("truetype"); font-style: normal; font-weight: 500; font-display: swap; }
@font-face { font-family: Inter; src: url("fonts/inter-600.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; }
@font-face { font-family: Inter; src: url("fonts/inter-700.ttf") format("truetype"); font-style: normal; font-weight: 700; font-display: swap; }
@font-face { font-family: Inter; src: url("fonts/inter-800.ttf") format("truetype"); font-style: normal; font-weight: 800; font-display: swap; }

:root { --red:#EF4B44; --ink:#161616; --paper:#FFFFFF; --line:rgba(22,22,22,.14); --muted:rgba(22,22,22,.67); --max:1180px; --shadow:0 18px 50px rgba(22,22,22,.11); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:86px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter,sans-serif; font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:3px solid rgba(239,75,68,.38); outline-offset:3px; }
h1,h2,.section-title,.page-hero h1,.cta-copy h2 { font-family:"Archivo Black",sans-serif; font-weight:400; }

.skip-link { position:fixed; top:10px; left:10px; z-index:999; padding:10px 14px; background:var(--paper); border:2px solid var(--red); transform:translateY(-150%); transition:transform .2s ease; }
.skip-link:focus { transform:translateY(0); }
.container { width:min(calc(100% - 40px),var(--max)); margin-inline:auto; }
.section { padding:88px 0; }
.section--wash { background:rgba(22,22,22,.035); }
.section--dark { color:var(--paper); background:var(--ink); }
.eyebrow { display:inline-flex; align-items:center; gap:10px; margin:0 0 13px; color:var(--red); font-size:.75rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.eyebrow::before { width:32px; height:2px; content:""; background:currentColor; }
.section-title { max-width:760px; margin:0; font-size:clamp(2.05rem,4vw,4rem); line-height:1.02; letter-spacing:-.04em; }
.section-lead { max-width:700px; margin:22px 0 0; color:var(--muted); font-size:1.02rem; }
.section--dark .section-lead { color:rgba(255,255,255,.72); }
.title-row { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:40px; }

.site-header { position:sticky; top:0; z-index:100; min-height:82px; border-bottom:1px solid rgba(22,22,22,.08); background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.nav-shell { min-height:82px; display:flex; align-items:center; gap:26px; }
.brand { display:inline-flex; flex:0 0 auto; width:210px; line-height:1; }
.brand img { width:100%; height:auto; }
.nav-links { margin-left:auto; display:flex; align-items:center; gap:21px; }
.nav-links a { position:relative; font-size:.86rem; font-weight:700; white-space:nowrap; }
.nav-links a:not(.btn)::after { position:absolute; left:0; right:100%; bottom:-8px; height:2px; content:""; background:var(--red); transition:right .2s ease; }
.nav-links a:not(.btn):hover::after,.nav-links a[aria-current="page"]::after { right:0; }
.menu-toggle { position:relative; display:none; margin-left:auto; width:48px; height:44px; padding:0; border:1px solid var(--line); background:var(--paper); color:var(--ink); cursor:pointer; }
.menu-toggle span { position:absolute; left:12px; width:22px; height:2px; background:currentColor; transition:transform .25s ease,opacity .2s ease,top .25s ease; }
.menu-toggle span:nth-child(1) { top:13px; }
.menu-toggle span:nth-child(2) { top:20px; }
.menu-toggle span:nth-child(3) { top:27px; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { top:20px; transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { top:20px; transform:rotate(-45deg); }
.btn { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:10px; padding:0 21px; border:2px solid transparent; border-radius:2px; background:var(--red); color:var(--paper); font-weight:800; cursor:pointer; transition:transform .2s ease,opacity .2s ease,border-color .2s ease; }
.btn::after { content:"→"; transition:transform .2s ease; }
.btn:hover { opacity:.9; transform:translateY(-2px); }
.btn:hover::after { transform:translateX(4px); }
.btn--small { min-height:42px; padding-inline:16px; font-size:.82rem; }
.btn--outline { border-color:rgba(255,255,255,.55); background:transparent; color:var(--paper); }

.hero { position:relative; min-height:720px; overflow:hidden; background:var(--ink); color:var(--paper); isolation:isolate; }
.hero::after { position:absolute; z-index:-1; inset:0; content:""; background:linear-gradient(90deg,var(--ink) 0%,rgba(22,22,22,.98) 29%,rgba(22,22,22,.77) 50%,rgba(22,22,22,.18) 75%,rgba(22,22,22,.08) 100%); }
.hero-slides { position:absolute; z-index:-2; inset:0; }
.hero-slide { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:0; transition:opacity .8s ease; }
.hero-slide:nth-child(3) { object-position:53% 22%; filter:brightness(1.06); }
.hero-slide.active { opacity:1; }
.hero-grid { min-height:720px; display:grid; grid-template-columns:minmax(0,670px) 1fr; align-items:center; }
.hero-copy { padding:88px 0 145px; }
.hero-kicker { display:inline-flex; align-items:center; margin-bottom:22px; padding:9px 13px; border-left:3px solid var(--red); background:rgba(22,22,22,.64); color:var(--paper); font-size:.78rem; font-weight:800; letter-spacing:.045em; }
.hero h1 { max-width:710px; margin:0; font-size:clamp(3.8rem,7vw,7rem); line-height:.88; letter-spacing:-.055em; }
.hero h1 span { display:block; color:var(--red); }
.hero-intro { max-width:635px; margin:28px 0 0; color:rgba(255,255,255,.88); font-size:1.06rem; }
.hero-intro strong { color:var(--paper); font-weight:800; }
.hero-note { max-width:570px; margin:16px 0 0; padding-left:16px; border-left:2px solid var(--red); color:rgba(255,255,255,.68); font-size:.89rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:13px; margin-top:31px; }

.proof-strip { position:relative; z-index:2; margin-top:-65px; }
.proof-grid { display:grid; min-height:130px; grid-template-columns:repeat(4,1fr); background:var(--paper); color:var(--ink); box-shadow:var(--shadow); }
.proof-item { padding:26px 28px; border-right:1px solid var(--line); }
.proof-item:last-child { border-right:0; }
.proof-item strong { display:block; font-family:"Archivo Black",sans-serif; font-size:1.18rem; font-weight:400; line-height:1.18; }
.proof-item span { display:block; margin-top:6px; color:var(--muted); font-size:.8rem; line-height:1.4; }
.proof-item::before { display:block; width:26px; height:3px; margin-bottom:13px; content:""; background:var(--red); }

.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card { min-height:180px; padding:25px 27px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper); transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
.service-card:hover { position:relative; z-index:1; border-color:transparent; box-shadow:var(--shadow); transform:translateY(-4px); }
.service-code { color:var(--red); font-size:.7rem; font-weight:800; letter-spacing:.12em; }
.service-card h3 { margin:20px 0 7px; font-size:1.22rem; line-height:1.2; }
.service-card p { margin:0; color:var(--muted); font-size:.89rem; }
.service-tail { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-top:24px; padding:19px 23px; background:var(--ink); color:var(--paper); }
.service-tail p { margin:0; }

.process-section { position:relative; overflow:hidden; }
.process-shell { position:relative; z-index:1; }
.process-giant-number { position:absolute; z-index:0; color:var(--red); font-family:"Archivo Black",sans-serif; font-size:clamp(22rem,34vw,36rem); line-height:1; opacity:.055; pointer-events:none; }
.process-giant-number--one { top:-165px; left:-3%; }
.process-giant-number--two { bottom:-225px; left:31%; }
.process-giant-number--three { top:-110px; right:2%; }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:72px; margin-top:40px; counter-reset:process; }
.process-card { position:relative; padding:30px 28px; background:rgba(255,255,255,.82); box-shadow:0 12px 32px rgba(22,22,22,.07); counter-increment:process; }
.process-card:not(:last-child)::after { position:absolute; top:50%; right:-54px; content:"→"; color:var(--red); font-family:"Archivo Black",sans-serif; font-size:2rem; line-height:1; transform:translateY(-50%); }
.process-card::before { content:"0" counter(process); color:var(--red); font-family:"Archivo Black",sans-serif; font-size:1rem; }
.process-card h3 { margin:20px 0 9px; font-size:1.12rem; line-height:1.25; }
.process-card p { margin:0; color:var(--muted); font-size:.88rem; }

.why-grid { position:relative; max-width:980px; margin:54px auto 0; display:grid; grid-template-columns:1fr 84px 1fr; row-gap:18px; }
.why-grid::before { position:absolute; left:50%; top:0; bottom:0; width:2px; content:""; background:rgba(22,22,22,.18); transform:translateX(-1px); }
.why-card { position:relative; padding:27px 29px; background:var(--paper); box-shadow:0 12px 32px rgba(22,22,22,.08); }
.why-card:nth-child(1) { grid-column:1; grid-row:1; }
.why-card:nth-child(2) { grid-column:3; grid-row:2; }
.why-card:nth-child(3) { grid-column:1; grid-row:3; }
.why-card:nth-child(4) { grid-column:3; grid-row:4; }
.why-card:nth-child(5) { grid-column:1; grid-row:5; }
.why-card::after { position:absolute; top:50%; width:14px; height:14px; content:""; border:4px solid var(--paper); border-radius:50%; background:var(--red); box-shadow:0 0 0 2px var(--red); transform:translateY(-50%); }
.why-card:nth-child(odd)::after { right:-53px; }
.why-card:nth-child(even)::after { left:-53px; }
.why-card h3 { margin:0 0 8px; font-size:1.13rem; line-height:1.3; }
.why-card p { margin:0; color:var(--muted); font-size:.9rem; }

.reference-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.reference-card { position:relative; min-height:330px; padding:31px; overflow:hidden; border:0; background-color:var(--ink); background-position:center; background-size:cover; isolation:isolate; }
.reference-card::before { position:absolute; z-index:0; inset:0; content:""; background:linear-gradient(180deg,rgba(22,22,22,.62),rgba(22,22,22,.92)); }
.reference-card > * { position:relative; z-index:1; }
.reference-card--alukov { background-image:url("references/ALUKOV_pozadi_karty.jpg"); }
.reference-card--alukov::before { background:linear-gradient(180deg,rgba(22,22,22,.58),rgba(22,22,22,.94)); }
.reference-card--bramac { background-image:url("references/BRAMAC_stresni_taskky.png"); }
.reference-card--bramac::before { background:linear-gradient(180deg,rgba(22,22,22,.57),rgba(22,22,22,.94)); }
.reference-card--lekarna { background-image:url("references/LEKARNA_pozadi_karty.jpeg"); }
.reference-card--lekarna::before { background:linear-gradient(180deg,rgba(22,22,22,.62),rgba(22,22,22,.95)); }
.reference-type { color:rgba(255,255,255,.58); font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.reference-card h3 { margin:29px 0 8px; font-family:"Archivo Black",sans-serif; font-size:1.85rem; font-weight:400; line-height:1.05; letter-spacing:-.025em; }
.reference-card p { position:relative; z-index:1; margin:0; color:rgba(255,255,255,.76); font-size:.91rem; }
.reference-card .reference-legal { min-height:42px; margin:0 0 13px; color:rgba(255,255,255,.55); font-size:.73rem; line-height:1.35; }
.reference-year { display:inline-block; margin-top:24px; padding:7px 10px; border-left:3px solid var(--red); background:rgba(255,255,255,.07); color:var(--paper); font-size:.78rem; font-weight:800; }

.map-layout { display:grid; grid-template-columns:1.12fr .88fr; gap:56px; align-items:center; }
.map-wrap { position:relative; padding:0; border:2px solid rgba(22,22,22,.16); background:var(--paper); overflow:hidden; transition:border-color .25s ease,box-shadow .25s ease; }
.map-wrap.outside-active { border-color:var(--red); box-shadow:inset 0 0 0 5px rgba(239,75,68,.12); }
.region-map { position:relative; width:100%; aspect-ratio:690 / 575; }
.map-base { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:.82; }
.map-point { position:absolute; z-index:2; width:28px; height:28px; padding:0; border:0; border-radius:50%; background:#b8bdc1; box-shadow:0 0 0 6px rgba(125,132,138,.14); cursor:pointer; transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease; }
.map-point::after { position:absolute; left:50%; top:50%; width:6px; height:6px; content:""; border-radius:50%; background:var(--paper); transform:translate(-50%,-50%); }
.map-point { transform:translate(-50%,-50%); }
.map-point:hover,.map-point.active { background:var(--red); transform:translate(-50%,-50%) scale(1.18); box-shadow:0 0 0 10px rgba(239,75,68,.2); }
.map-point[data-location="hradec"] { left:54.184%; top:27.052%; }
.map-point[data-location="pardubice"] { left:50.009%; top:51.130%; }
.map-point[data-location="chrudim"] { left:51.896%; top:64.880%; }
.map-point[data-city="vysoke-myto"] { left:77.206%; top:63.941%; }
.map-point[data-city="holice"] { left:67.511%; top:47.934%; }
.map-point[data-city="prelouc"] { left:34.394%; top:51.130%; }
.map-point[data-city="hermanuv-mestec"] { left:41.930%; top:66.115%; }
.map-point[data-city="caslav"] { left:21.212%; top:69.711%; }
.map-point--main { width:36px; height:36px; }
.map-point--medium { width:27px; height:27px; }
.map-point--small { width:21px; height:21px; box-shadow:0 0 0 4px rgba(125,132,138,.12); }
.map-point--small::after { width:4px; height:4px; }
.map-wrap.sequence-active .map-point--small.active { animation:map-city-jump 2.3s cubic-bezier(.2,.75,.25,1) infinite; }
.map-wrap.sequence-active .map-point--small[data-city="prelouc"] { animation-delay:0s; }
.map-wrap.sequence-active .map-point--small[data-city="vysoke-myto"] { animation-delay:.38s; }
.map-wrap.sequence-active .map-point--small[data-city="caslav"] { animation-delay:.76s; }
.map-wrap.sequence-active .map-point--small[data-city="hermanuv-mestec"] { animation-delay:1.14s; }
.map-wrap.sequence-active .map-point--small[data-city="holice"] { animation-delay:1.52s; }
@keyframes map-city-jump {
  0%,30%,100% { transform:translate(-50%,-50%) scale(1); }
  14% { transform:translate(-50%,-50%) scale(1.42); }
}
.map-label { position:absolute; z-index:3; padding:7px 10px; background:var(--paper); border:1px solid var(--line); box-shadow:0 8px 20px rgba(22,22,22,.09); font-size:.73rem; font-weight:800; white-space:nowrap; }
.map-label--hk { left:59%; top:20%; }
.map-label--pce { left:50%; top:40%; transform:translateX(-50%); }
.map-label--chr { left:57%; top:58%; }
.map-label--small { padding:4px 7px; color:rgba(22,22,22,.78); font-size:.61rem; font-weight:700; }
.map-label--holice { left:70%; top:41%; }
.map-label--prelouc { left:34.394%; top:44.5%; transform:translateX(-50%); }
.map-label--hermanuv { left:39.5%; top:69%; transform:translateX(-50%); }
.map-label--caslav { left:21.212%; top:63.5%; transform:translateX(-50%); }
.map-label--vysoke-myto { left:79.5%; top:59%; }
.location-list { display:grid; gap:8px; }
.location-button { width:100%; padding:20px 22px; border:1px solid var(--line); background:var(--paper); color:var(--ink); text-align:left; cursor:pointer; transition:border-color .2s ease,background .2s ease,transform .2s ease; }
.location-button:hover,.location-button.active { border-color:var(--red); background:rgba(239,75,68,.045); transform:translateX(6px); }
.location-button strong { display:block; font-size:1.05rem; }
.location-button span { display:block; margin-top:6px; color:var(--muted); font-size:.87rem; }
.location-button small { display:inline-block; margin-left:7px; padding:2px 7px; border-radius:12px; background:var(--red); color:var(--paper); font-size:.63rem; }
.outside-card { margin-top:16px; padding:21px 22px; border:1px solid rgba(239,75,68,.35); background:rgba(239,75,68,.035); cursor:pointer; }
.outside-card strong { display:block; }
.outside-card p { margin:7px 0 0; color:var(--muted); font-size:.88rem; }

.cta-shell { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); background:var(--ink); box-shadow:0 30px 80px rgba(22,22,22,.22); }
.cta-copy { position:relative; min-width:0; padding:62px 48px; overflow:hidden; color:var(--paper); }
.cta-copy h2 { position:relative; z-index:1; max-width:100%; margin:0; color:var(--paper); font-size:clamp(2.45rem,3.75vw,3.65rem); line-height:.98; letter-spacing:-.04em; }
.cta-copy > p { position:relative; z-index:1; color:rgba(255,255,255,.75); }
.cta-copy .eyebrow { position:relative; z-index:1; }
.cta-symbol { position:absolute; z-index:0; left:-9%; bottom:-18%; width:60%; max-height:none; opacity:.14; pointer-events:none; }
.contact-lines { position:relative; z-index:1; display:grid; gap:14px; margin-top:34px; }
.contact-lines a { color:var(--paper); font-weight:800; overflow-wrap:anywhere; }
.contact-lines .icon-link::before { width:27px; height:27px; padding:6px; border:1px solid rgba(255,255,255,.24); background-color:var(--red); background-origin:content-box; }
.personal-note { position:relative; z-index:1; margin-top:39px; padding-top:22px; border-top:1px solid rgba(255,255,255,.18); }
.personal-note strong { display:block; color:var(--paper); }
.personal-note p { margin:7px 0 0; color:rgba(255,255,255,.7); font-size:.89rem; }
.form-card { padding:46px; background:var(--paper); color:var(--ink); }
.form-card h3 { margin:0 0 6px; font-size:1.5rem; }
.form-card > p { margin:0 0 26px; color:var(--muted); }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.field { display:grid; min-width:0; gap:7px; }
.field--full { grid-column:1 / -1; }
.field label { font-size:.78rem; font-weight:800; }
.field input,.field textarea,.field select { display:block; width:100%; max-width:100%; min-width:0; min-height:48px; padding:12px 13px; border:1px solid rgba(22,22,22,.22); border-radius:2px; background:var(--paper); color:var(--ink); }
.field input[type="date"] { -webkit-appearance:none; appearance:none; }
.field textarea { min-height:98px; resize:vertical; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--red); outline:3px solid rgba(239,75,68,.13); }
.field input:invalid:not(:placeholder-shown) { border-color:var(--red); }
.form-actions { margin-top:21px; }
.privacy-note { margin:13px 0 0; color:var(--muted); font-size:.76rem; }
.privacy-note a { color:var(--red); text-decoration:underline; text-underline-offset:3px; }
.form-status { display:none; margin-top:18px; padding:14px 16px; border-left:4px solid var(--red); background:rgba(239,75,68,.07); color:var(--ink); font-weight:700; }
.form-status.visible { display:block; }
.required-mark { color:var(--red); }
.field.has-error input,.field.has-error textarea { border-color:var(--red); box-shadow:0 0 0 1px var(--red); }
.field-error { display:block; margin-top:6px; color:#b42318; font-size:.78rem; font-weight:700; line-height:1.35; }
.form-status.is-error { border-color:#b42318; color:#7a271a; background:#fff5f3; }
.form-status.is-success { border-color:#27864b; color:#14532d; background:#f2fbf5; }
.form-card button:disabled { cursor:wait; opacity:.7; }
.form-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

.page-hero { position:relative; padding:88px 0 70px; overflow:hidden; background:var(--ink); color:var(--paper); isolation:isolate; }
.page-hero .container { position:relative; z-index:1; }
.page-hero-symbol { position:absolute; z-index:0; right:-4%; top:50%; width:clamp(280px,35vw,520px); max-width:none; opacity:.13; transform:translateY(-50%) rotate(-8deg); pointer-events:none; }
.page-hero h1 { max-width:900px; margin:0; font-size:clamp(3.1rem,7vw,6.6rem); line-height:.92; letter-spacing:-.045em; }
.page-hero p { max-width:650px; margin:23px 0 0; color:rgba(255,255,255,.76); font-size:1.08rem; }
.story-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:86px; }
.story-aside { position:sticky; top:116px; align-self:start; }
.story-aside .big-number { color:var(--red); font-family:"Archivo Black",sans-serif; font-size:clamp(5rem,11vw,9rem); line-height:.8; letter-spacing:-.05em; }
.story-aside p { max-width:270px; margin:18px 0 0; color:var(--muted); }
.story-content { display:grid; gap:49px; }
.story-block { padding-top:25px; border-top:1px solid var(--line); }
.story-block h2 { margin:0 0 16px; font-size:clamp(1.7rem,3vw,2.65rem); line-height:1.1; letter-spacing:-.025em; }
.story-block p { margin:0 0 14px; color:var(--muted); }
.role-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:25px; }
.role-card { padding:24px; background:rgba(22,22,22,.04); }
.role-card strong { display:block; margin-bottom:7px; }
.role-card p { margin:0; font-size:.9rem; }
.quote-band { padding:52px; background:var(--red); color:var(--paper); font-family:"Archivo Black",sans-serif; font-size:clamp(1.45rem,3vw,2.55rem); line-height:1.2; letter-spacing:-.025em; }
.contact-page-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:42px; align-items:start; }
.contact-panel { padding:40px; background:var(--ink); color:var(--paper); }
.contact-panel h2 { margin:0 0 24px; font-size:2rem; }
.contact-person { padding:20px 0; border-top:1px solid rgba(255,255,255,.16); }
.contact-person h3 { margin:0; font-size:1rem; }
.contact-role { margin:4px 0 11px; color:rgba(255,255,255,.54); font-size:.76rem; font-weight:700; letter-spacing:.035em; text-transform:uppercase; }
.contact-person--primary { margin-inline:-14px; padding-inline:14px; border-left:3px solid var(--red); background:rgba(239,75,68,.06); }
.contact-person .icon-link { margin:8px 0; color:rgba(255,255,255,.82); font-size:.9rem; font-weight:700; overflow-wrap:anywhere; }
.personal-contact { padding-top:20px; border-top:1px solid rgba(255,255,255,.16); }
.personal-contact strong { display:block; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }
.personal-contact p { margin:6px 0 0; color:rgba(255,255,255,.72); font-size:.9rem; }
.company-data { margin-top:36px; padding-top:23px; border-top:1px solid rgba(255,255,255,.18); }
.company-data p { margin:6px 0; color:rgba(255,255,255,.74); font-size:.89rem; }
.contact-form-card { border:1px solid var(--line); box-shadow:var(--shadow); }
.legal { max-width:880px; }
.legal h2 { margin:46px 0 14px; font-size:1.55rem; letter-spacing:-.02em; }
.legal h2:first-child { margin-top:0; }
.legal h3 { margin:28px 0 9px; font-size:1.07rem; }
.legal p,.legal li { color:var(--muted); }
.legal ul { padding-left:20px; }
.legal-alert { margin:32px 0; padding:22px 24px; border-left:4px solid var(--red); background:rgba(239,75,68,.06); }
.legal-alert strong { display:block; margin-bottom:6px; }
.legal-alert p { margin:0; }

.site-footer { padding:44px 0 25px; background:var(--ink); color:var(--paper); }
.footer-grid { display:grid; grid-template-columns:1.35fr 1fr .8fr; gap:56px; }
.brand--footer { width:220px; }
.footer-brand p { max-width:340px; margin-top:15px; color:rgba(255,255,255,.6); font-size:.89rem; }
.footer-col h2 { margin:0 0 15px; color:rgba(255,255,255,.46); font-family:Inter,sans-serif; font-size:.7rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.footer-col a,.footer-col span { display:block; margin:7px 0; color:rgba(255,255,255,.82); font-size:.89rem; }
.icon-link { display:flex; align-items:center; gap:9px; min-width:0; }
.icon-link::before { flex:0 0 auto; width:18px; height:18px; content:""; background-color:currentColor; background-position:center; background-repeat:no-repeat; background-size:contain; mask-position:center; mask-repeat:no-repeat; mask-size:contain; }
.icon-phone::before { mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.79 19.79 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.69 2.8a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.28-1.28a2 2 0 0 1 2.11-.45c.9.33 1.84.56 2.8.69A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E"); }
.icon-mail::before { mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.icon-pin::before { mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E"); }
.footer-col .icon-link { display:flex; overflow-wrap:anywhere; }
.footer-bottom { display:flex; justify-content:space-between; gap:30px; margin-top:36px; padding-top:22px; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.45); font-size:.74rem; }

@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } .hero-slide:not(:first-child) { display:none; } .map-wrap.sequence-active .map-point--small.active { animation:none; } }
@media (max-width:1100px) {
  .site-header { background:#fff; backdrop-filter:none; }
  .nav-links { position:fixed; inset:82px 0 0; display:flex; height:calc(100vh - 82px); height:calc(100dvh - 82px); padding:28px max(28px,calc((100vw - var(--max))/2)) max(36px,env(safe-area-inset-bottom)); background:#fff; box-shadow:0 18px 55px rgba(22,22,22,.14); align-items:stretch; flex-direction:column; gap:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(-14px); transition:opacity .24s ease,transform .24s ease,visibility 0s linear .24s; }
  .nav-links.open { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); transition-delay:0s; }
  .nav-links a { padding:15px 0; border-bottom:1px solid var(--line); font-size:1.02rem; }
  .nav-links .btn { margin-top:20px; }
  .menu-toggle { display:block; }
  .hero-grid { grid-template-columns:1fr; }
  .hero::after { background:linear-gradient(90deg,rgba(22,22,22,.98),rgba(22,22,22,.74)); }
  .proof-grid { grid-template-columns:repeat(2,1fr); }
  .proof-item:nth-child(2) { border-right:0; }
  .proof-item:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid { grid-template-columns:1fr; gap:58px; }
  .process-card:not(:last-child)::after { top:auto; right:auto; bottom:-43px; left:50%; content:"↓"; transform:translateX(-50%); }
  .process-giant-number--one,.process-giant-number--two { display:none; }
  .process-giant-number--three { top:-40px; right:-3%; font-size:24rem; }
  .reference-grid { grid-template-columns:1fr; }
  .reference-card { min-height:235px; }
  .map-layout,.cta-shell,.story-grid,.contact-page-grid { grid-template-columns:1fr; }
  .cta-copy h2 { font-size:clamp(2.6rem,7vw,4.2rem); }
  .story-grid { gap:43px; }
  .story-aside { position:static; display:flex; align-items:end; gap:30px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1 / -1; }
}
@media (max-width:680px) {
  .container { width:min(calc(100% - 28px),var(--max)); }
  .section { padding:68px 0; }
  .section-title { font-size:clamp(2.15rem,11vw,3.25rem); }
  .title-row { align-items:start; flex-direction:column; margin-bottom:32px; }
  .brand { width:180px; }
  .hero,.hero-grid { min-height:590px; }
  .hero-copy { padding:52px 0 108px; }
  .hero-kicker { margin-bottom:17px; font-size:.72rem; }
  .hero h1 { font-size:clamp(2.85rem,14vw,4rem); line-height:.92; letter-spacing:-.045em; }
  .hero-intro { margin-top:22px; font-size:.97rem; line-height:1.55; }
  .hero-note { margin-top:13px; font-size:.82rem; }
  .hero-actions { margin-top:24px; }
  .hero-actions .btn { width:100%; }
  .proof-grid { grid-template-columns:1fr; }
  .proof-item { border-right:0; border-bottom:1px solid var(--line); }
  .proof-item:last-child { border-bottom:0; }
  .service-grid { grid-template-columns:1fr; }
  .service-tail { align-items:start; flex-direction:column; }
  .process-grid { grid-template-columns:1fr; gap:54px; }
  .process-card { padding:26px 23px; }
  .process-card:not(:last-child)::after { right:auto; bottom:-41px; }
  .process-giant-number--three { top:10px; right:-10%; font-size:17rem; }
  .why-grid { grid-template-columns:26px 1fr; row-gap:18px; }
  .why-grid::before { left:7px; }
  .why-card:nth-child(1),.why-card:nth-child(2),.why-card:nth-child(3),.why-card:nth-child(4),.why-card:nth-child(5) { grid-column:2; width:auto; justify-self:stretch; margin-top:0; text-align:left; }
  .why-card:nth-child(odd)::after,.why-card:nth-child(even)::after { left:-30px; right:auto; top:50%; transform:translateY(-50%); }
  .map-wrap { padding:0; }
  .map-label { padding:4px 6px; font-family:Inter,sans-serif; font-size:.58rem; letter-spacing:0; white-space:nowrap; }
  .map-label--small { padding:2px 4px; box-shadow:0 4px 10px rgba(22,22,22,.07); font-size:.5rem; }
  .cta-copy,.form-card { min-width:0; padding:36px 23px; }
  .cta-symbol { width:75%; }
  .form-grid { grid-template-columns:1fr; }
  .field--full { grid-column:auto; }
  .page-hero { padding:66px 0 55px; }
  .page-hero h1 { font-size:clamp(2.65rem,13vw,4rem); }
  .page-hero-symbol { right:-24%; width:390px; opacity:.11; }
  .story-aside { align-items:start; flex-direction:column; gap:5px; }
  .role-grid { grid-template-columns:1fr; }
  .quote-band { padding:35px 27px; }
  .contact-panel { padding:31px 24px; }
  .footer-grid { grid-template-columns:1fr; gap:31px; }
  .footer-brand { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
}
