/* 84-codex – illuminierte Handschrift. EB Garamond + Uncial Antiqua (Labels) + UnifrakturMaguntia (Initialen, kurze Titel) */
:root {
  --parch: #f1e3c2; --parch2: #e8d4a8; --ink: #2a1d14; --ink2: #4a3826; --red: #a3261b; --red2: #8a1c13; --lap: #234a8c; --grn: #3d7a5c;
  --gold: #c99a2e; --gold-l: #f3dc8c; --gold-d: #8c6418;
  --gilt: linear-gradient(135deg, #a77b22, #f5df8f 35%, #d4a83e 55%, #8c6418);
  --font-t: 'EB Garamond', Garamond, 'Times New Roman', serif;
  --font-l: 'Uncial Antiqua', 'EB Garamond', Georgia, serif;
  --font-f: 'UnifrakturMaguntia', 'EB Garamond', Georgia, serif;
  --pad: clamp(16px, 3.4vw, 48px); --max: 1280px;
  --vine-v: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='140' viewBox='0 0 60 140'%3E%3Cpath d='M30 0C44 22 44 48 30 70C16 92 16 118 30 140' fill='none' stroke='%232a1d14' stroke-width='2.6'/%3E%3Cpath d='M30 0C44 22 44 48 30 70C16 92 16 118 30 140' fill='none' stroke='%233d7a5c' stroke-width='1.2'/%3E%3Cpath d='M40 34C47 32 49 24 44 21C40 19 38 24 41 26' fill='none' stroke='%232a1d14' stroke-width='1.3'/%3E%3Cpath d='M20 104C13 102 11 94 16 91C20 89 22 94 19 96' fill='none' stroke='%232a1d14' stroke-width='1.3'/%3E%3Cpath d='M0 0C6 -8 14 -8 16 -2C18 4 12 10 0 0Z' transform='translate%2839 48%29 rotate%28-20%29' fill='%23a3261b' stroke='%232a1d14' stroke-width='1.2'/%3E%3Cpath d='M0 0C6 -8 14 -8 16 -2C18 4 12 10 0 0Z' transform='translate%2821 118%29 rotate%28160%29' fill='%23234a8c' stroke='%232a1d14' stroke-width='1.2'/%3E%3Cpath d='M0 0C6 -8 14 -8 16 -2C18 4 12 10 0 0Z' transform='translate%2838 12%29 rotate%2830%29' fill='%23234a8c' stroke='%232a1d14' stroke-width='1.2'/%3E%3Cpath d='M0 0C6 -8 14 -8 16 -2C18 4 12 10 0 0Z' transform='translate%2821 84%29 rotate%28-150%29' fill='%23a3261b' stroke='%232a1d14' stroke-width='1.2'/%3E%3Ccircle cx='46' cy='62' r='3' fill='%23c99a2e' stroke='%232a1d14' stroke-width='1'/%3E%3Ccircle cx='14' cy='130' r='3' fill='%23c99a2e' stroke='%232a1d14' stroke-width='1'/%3E%3C/svg%3E");
  --ini-b: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Crect width='100' height='100' fill='%23234a8c'/%3E%3Cg fill='none' stroke='%23e8c86a' stroke-width='1.6' opacity='.55'%3E%3Cpath d='M6 94C20 70 10 50 30 40S60 30 70 8'/%3E%3Cpath d='M94 6C80 30 90 50 70 60S40 70 30 92'/%3E%3Ccircle cx='30' cy='40' r='4'/%3E%3Ccircle cx='70' cy='60' r='4'/%3E%3Cpath d='M14 20c6 0 8 6 4 8M86 80c-6 0-8-6-4-8'/%3E%3C/g%3E%3Cg fill='%23f3e6c8' opacity='.7'%3E%3Ccircle cx='12' cy='12' r='1.6'/%3E%3Ccircle cx='88' cy='88' r='1.6'/%3E%3Ccircle cx='88' cy='14' r='1.6'/%3E%3Ccircle cx='12' cy='86' r='1.6'/%3E%3C/g%3E%3C/svg%3E");
  --ini-r: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Crect width='100' height='100' fill='%23a3261b'/%3E%3Cg fill='none' stroke='%23e8c86a' stroke-width='1.6' opacity='.55'%3E%3Cpath d='M6 94C20 70 10 50 30 40S60 30 70 8'/%3E%3Cpath d='M94 6C80 30 90 50 70 60S40 70 30 92'/%3E%3Ccircle cx='30' cy='40' r='4'/%3E%3Ccircle cx='70' cy='60' r='4'/%3E%3Cpath d='M14 20c6 0 8 6 4 8M86 80c-6 0-8-6-4-8'/%3E%3C/g%3E%3Cg fill='%23f3e6c8' opacity='.7'%3E%3Ccircle cx='12' cy='12' r='1.6'/%3E%3Ccircle cx='88' cy='88' r='1.6'/%3E%3Ccircle cx='88' cy='14' r='1.6'/%3E%3Ccircle cx='12' cy='86' r='1.6'/%3E%3C/g%3E%3C/svg%3E");
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42  0 0 0 0 .3  0 0 0 0 .14  0 0 0 .16 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E");
  --mottle: radial-gradient(38% 30% at 22% 18%, rgba(170, 120, 50, .16), transparent 70%), radial-gradient(30% 26% at 78% 46%, rgba(170, 120, 50, .13), transparent 70%), radial-gradient(26% 22% at 34% 78%, rgba(150, 100, 40, .12), transparent 70%), radial-gradient(18% 14% at 88% 88%, rgba(150, 100, 40, .14), transparent 70%);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; color: var(--ink); font: 400 1.25rem/1.55 var(--font-t); font-variant-numeric: oldstyle-nums; overflow-x: hidden;
  background: var(--grain), var(--mottle), radial-gradient(130% 80% at 50% 40%, transparent 55%, rgba(120, 80, 30, .2)), var(--parch); background-size: 300px, 1400px 1700px, 1400px 1700px, 1400px 1700px, 1400px 1700px, 100% 100%, auto; }
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, p, figure { margin: 0; }
.wrap { max-width: var(--max); margin-inline: auto; padding-inline: var(--pad); }
.skip { position: absolute; left: 12px; top: -60px; z-index: 300; background: var(--red); color: var(--parch); padding: 10px 16px; font-family: var(--font-l); }
.skip:focus { top: 12px; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
em { font-style: italic; }

/* ---------- Initialen ---------- */
.ini { font: 400 clamp(2.6rem, 5.9vw, 5.5rem)/1.06 var(--font-f); color: var(--ink); letter-spacing: .005em; }
.ini::first-letter { float: left; font: 400 2.05em/.86 var(--font-f); margin: .06em .16em 0 0; padding: .14em .12em .05em; color: var(--gold-l);
  background: var(--ini-b) center / 100% 100%; border: 4px solid var(--gold); outline: 2px solid var(--ink); outline-offset: 0;
  box-shadow: 0 0 0 6px var(--parch), 0 0 0 7px var(--gold-d); text-shadow: 0 2px 0 var(--gold-d), 0 -1px 0 #fff6cf, 0 0 10px rgba(245, 223, 143, .5); }
.ini--sm { display: flow-root; font: 500 clamp(1.9rem, 3.2vw, 2.85rem)/1.14 var(--font-t); color: var(--red); letter-spacing: .005em; }
.ini--sm::first-letter { font-family: var(--font-l); font-size: 2.05em; line-height: .9; padding: .1em .16em .08em; margin-right: .16em; }
.ini--red::first-letter { background-image: var(--ini-r); }
.rubric { font: 400 .9375rem/1.4 var(--font-l); color: var(--red); letter-spacing: .06em; margin-bottom: 18px; }
.lead { font-size: 1.3rem; color: var(--ink2); max-width: 62ch; margin-top: 22px; hyphens: auto; }

/* ---------- Kopf ---------- */
.top { position: relative; z-index: 50; border-bottom: 1px solid rgba(163, 38, 27, .35); box-shadow: 0 4px 0 -3px rgba(163, 38, 27, .35); }
.top__in { display: flex; align-items: center; gap: 28px; min-height: 96px; }
.logo { flex: none; display: block; }
.logo img { width: 84px; height: auto; aspect-ratio: 1510 / 1300; }
.nav { display: flex; align-items: center; flex: 1; gap: 24px; }
.nav ul { display: flex; gap: 6px; list-style: none; margin: 0 auto; padding: 0; }
.nav ul a { display: flex; align-items: baseline; gap: 8px; padding: 10px 14px; font: 400 1rem/1 var(--font-l); text-decoration: none; letter-spacing: .02em; }
.nav ul a span { color: var(--red); font-size: .8125rem; }
.nav ul a:hover, .nav ul a:focus-visible { color: var(--red); text-decoration: underline; text-decoration-color: var(--gold); text-decoration-thickness: 2px; text-underline-offset: 6px; }
.nav__end { display: flex; align-items: center; gap: 16px; }
.tel { font: italic 500 1.125rem/1 var(--font-t); text-decoration: none; }
.tel:hover { color: var(--red); }
.lang { display: grid; place-items: center; width: 46px; height: 46px; background: var(--red); color: var(--gold-l); font: 400 1rem/1 var(--font-l); text-decoration: none; border: 2px solid var(--gold); outline: 1px solid var(--ink); }
.lang:hover { background: var(--lap); }
.menu { display: none; }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 12px 28px; font: 400 1.0625rem/1.2 var(--font-l); text-decoration: none; letter-spacing: .03em; transition: background .2s, color .2s, transform .2s; }
.btn--rubric { background: var(--red); color: #fbeed0; border: 3px double var(--gold); box-shadow: 0 0 0 1px var(--ink), 3px 4px 0 rgba(42, 29, 20, .35); }
.btn--rubric:hover { background: var(--lap); transform: translateY(-1px); }
.btn--ink { border: 1px solid var(--ink); box-shadow: inset 0 0 0 3px var(--parch), inset 0 0 0 4px rgba(42, 29, 20, .5); color: var(--ink); }
.btn--ink:hover { background: rgba(163, 38, 27, .08); color: var(--red); }
.ctas { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 34px; }

/* ---------- Kodex-Seite ---------- */
.codex { position: relative; padding-top: clamp(40px, 5vw, 64px); }
.vine { position: absolute; top: 0; bottom: 0; left: var(--pad); width: 60px; background: var(--vine-v) center top / 60px 140px repeat-y; opacity: .95; }
.vine::before, .vine::after { content: ""; position: absolute; left: 50%; width: 16px; height: 16px; margin-left: -8px; border-radius: 50%; background: var(--gilt); border: 1.5px solid var(--ink); }
.vine::before { top: -8px; } .vine::after { bottom: -8px; }
.folio { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: clamp(32px, 4.5vw, 64px); padding-left: 96px; }
.margo { border-left: 1px solid rgba(163, 38, 27, .35); box-shadow: -4px 0 0 -3px rgba(163, 38, 27, .35); padding: 8px 0 8px 26px; display: grid; align-content: start; gap: 22px; }
.note { font: italic 400 1.0625rem/1.4 var(--font-t); color: var(--ink2); }
.note--red { color: var(--red); font: 400 .9375rem/1.45 var(--font-l); font-style: normal; }
.hand { display: block; width: 52px; height: 24px; margin-bottom: 6px; }
.margo__plane { width: 180px; height: 96px; transform: rotate(-12deg); margin: 10px 0 0 -10px; }
.margo__ship { width: 150px; height: 122px; margin-top: 20px; }
.margo__camel { width: 170px; height: 124px; margin-top: 16px; }
.divider { display: flex; justify-content: center; padding: clamp(56px, 7vw, 96px) 0; padding-left: 96px; }
.divider svg { width: 120px; height: 60px; }

/* Hero */
.hero { min-height: calc(100svh - 200px); }
.hero .col { padding-top: 8px; }
.hero .rubric { font-size: 1rem; }
.hero h1 { max-width: 12em; }
.hero__text { margin-top: 32px; column-count: 2; column-gap: 46px; column-rule: 1px solid rgba(163, 38, 27, .3); text-align: justify; hyphens: auto; font-size: 1.4375rem; line-height: 1.55; max-width: 900px; }
.hero__text::first-line { font-variant: small-caps; letter-spacing: .03em; }
.bas { position: relative; margin-top: 40px; height: 90px; }
.bas__camel { position: absolute; left: 6%; bottom: 0; width: 124px; height: 90px; z-index: 1; }
.bas__line { position: absolute; left: 0; right: 0; bottom: 6px; height: 3px; background: var(--grn); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.bas__line::after { content: ""; position: absolute; right: -6px; top: -7px; width: 14px; height: 14px; border-radius: 50%; background: var(--gilt); border: 1.5px solid var(--ink); }
@media (prefers-reduced-motion: no-preference) {
  .bas__camel { animation: walk 38s linear infinite alternate; }
  @keyframes walk { to { transform: translateX(min(560px, 52vw)); } }
}

/* Schwerpunkt */
.cases { list-style: none; margin: 44px 0 0; padding: 0; columns: 2; column-gap: 46px; column-rule: 1px solid rgba(163, 38, 27, .3); }
.cases li { break-inside: avoid; padding-bottom: 22px; }
.cases h3 { display: flex; align-items: baseline; gap: 8px; font: 600 1.3125rem/1.3 var(--font-t); color: var(--red); font-variant: small-caps; letter-spacing: .03em; }
.cases h3 svg { width: 14px; height: 20px; flex: none; transform: translateY(2px); }
.cases p { hyphens: auto; }
.mappa { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 40px; align-items: center; margin-top: 52px; padding: 30px; border: 2px solid var(--gold); outline: 1px solid var(--ink); outline-offset: 4px; background: rgba(255, 248, 225, .35); }
.mappa__disc { filter: drop-shadow(2px 3px 0 rgba(42, 29, 20, .25)); }
.mappa__svg { width: 100%; height: auto; display: block; }
.mappa figcaption { display: grid; gap: 12px; }
.mappa figcaption .rubric { margin: 0; }
.mappa__codes { font: 400 1.5rem/1.3 var(--font-l); letter-spacing: .04em; color: var(--lap); }
.mappa__note { font-style: italic; color: var(--red); }
.stats { margin: 0; display: grid; gap: 30px; }
.stat { display: flex; flex-direction: column-reverse; gap: 2px; }
.stat dd { margin: 0; font: 500 2.6rem/1 var(--font-t); color: var(--red); font-variant-numeric: lining-nums; }
.stat dd::before { content: ""; display: block; width: 46px; height: 21px; margin-bottom: 10px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 30'%3E%3Cg stroke='%232a1d14' stroke-width='1.8' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M2 8H12V25H2Z' fill='%23a3261b'/%3E%3Cpath d='M12 8C20 5 26 5 30 7L58 9C62 9.5 62 15 58 15H36C38 18 38 23 33 25H14C12 25 12 23 12 21Z' fill='%23f4e8cb'/%3E%3Cpath d='M30 15H36M28 19H35M26 23H32' fill='none'/%3E%3C/g%3E%3C/svg%3E") left center / contain no-repeat; }
.stat dt { font: italic 400 1.0625rem/1.35 var(--font-t); color: var(--ink2); }

/* Leistungen */
.mini { position: relative; padding: 10px; background: var(--gilt); border: 1px solid var(--ink); box-shadow: 0 0 0 5px var(--lap), 0 0 0 6px var(--ink), 0 0 0 10px var(--red), 0 0 0 11px var(--ink), 4px 6px 0 11px rgba(42, 29, 20, .25); }
.mini img { width: 100%; height: auto; border: 1px solid var(--ink); filter: sepia(.28) saturate(.85) contrast(1.02); }
.mini--wide { margin: 44px 11px 0; }
.mini--wide img { aspect-ratio: 2.6; object-fit: cover; object-position: 50% 60%; }
.svcs { list-style: none; margin: 48px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 46px; }
.svcs li { padding-top: 4px; }
.svcs h3 { font: 600 1.4rem/1.25 var(--font-t); font-variant: small-caps; letter-spacing: .02em; margin-bottom: 6px; }
.svcs h3::first-letter { font: 400 1.75em/1 var(--font-l); color: var(--red); font-variant: normal; margin-right: .03em; }
.svcs li:nth-child(2n) h3::first-letter { color: var(--lap); }
.svcs li:nth-child(4n+3) h3::first-letter { color: var(--lap); } .svcs li:nth-child(4n+4) h3::first-letter { color: var(--red); }
.svcs p { hyphens: auto; color: var(--ink2); }

/* Ablauf */
.steps { list-style: none; margin: 44px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 46px; }
.steps li { display: grid; grid-template-columns: 84px minmax(0, 1fr); column-gap: 22px; align-content: start; }
.steps li .medal { grid-row: 1 / 3; }
.medal { position: relative; width: 84px; height: 84px; display: grid; place-items: center; }
.medal svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.medal b { position: relative; font: 400 1.75rem/1 var(--font-l); color: var(--gold-l); text-shadow: 0 1px 0 var(--gold-d), 0 0 8px rgba(245, 223, 143, .4); }
.steps h3 { font: 600 1.3rem/1.2 var(--font-t); color: var(--red); font-variant: small-caps; letter-spacing: .03em; }
.steps h3 { align-self: end; margin-top: 10px; }
.steps p { color: var(--ink2); hyphens: auto; }

/* Über uns */
.about { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.mini--arch { padding: 10px; border-radius: 999px 999px 4px 4px; margin: 11px; }
.mini--arch img { aspect-ratio: .8; object-fit: cover; object-position: 50% 30%; border-radius: 999px 999px 0 0; }
.mini--arch figcaption { position: absolute; left: 50%; bottom: -24px; transform: translateX(-50%); white-space: nowrap; padding: 6px 18px; background: var(--red); color: var(--gold-l); font: 400 .875rem/1.2 var(--font-l); border: 2px solid var(--gold); outline: 1px solid var(--ink); }
.about__copy { display: grid; gap: 0; }
.about__copy > p:not(.rubric) { margin-top: 22px; hyphens: auto; text-align: justify; }
.feats { list-style: none; margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 30px; }
.feats li { position: relative; padding-left: 22px; font-variant: small-caps; letter-spacing: .02em; font-weight: 500; }
.feats li::before { content: "¶"; position: absolute; left: 0; top: 0; color: var(--red); font-variant: normal; }

/* Kontakt */
.contact { position: relative; }
.tabula { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 40px; border-top: 2px solid var(--red); border-bottom: 2px solid var(--red); }
.tabula > div { padding: 24px 26px 26px 0; }
.tabula > div:nth-child(2n) { padding-left: 26px; border-left: 1px solid rgba(163, 38, 27, .35); }
.tabula > div:nth-child(n+3) { border-top: 1px solid rgba(163, 38, 27, .35); }
.tabula h3 { font: 400 .9375rem/1.3 var(--font-l); color: var(--red); margin-bottom: 8px; letter-spacing: .03em; }
.tabula a { text-decoration-color: var(--red); text-underline-offset: 4px; overflow-wrap: anywhere; }
.tabula a:hover { color: var(--red); }
.tabula .big { font-size: 1.6rem; font-variant-numeric: lining-nums; }
.seal { position: absolute; right: 2%; top: 30px; width: 120px; height: 120px; transform: rotate(-12deg); filter: drop-shadow(2px 3px 2px rgba(60, 20, 10, .35)); }

/* ---------- Fuß: Kolophon ---------- */
.foot { margin-top: clamp(80px, 10vw, 140px); padding: 0 0 56px; }
.foot__in { display: grid; justify-items: center; text-align: center; gap: 14px; }
.foot__fleur { width: 160px; height: 80px; }
.colophon { font: 400 clamp(1.6rem, 3vw, 2.3rem)/1.2 var(--font-f); color: var(--red); max-width: 22ch; }
.logo--foot img { width: 96px; margin: 10px 0; }
.foot__addr { font-style: italic; color: var(--ink2); max-width: 40ch; }
.foot__addr a { text-decoration: none; }
.foot__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 26px; font: 400 .9375rem/1 var(--font-l); }
.foot__nav a { text-decoration: none; padding: 8px 0; }
.foot__nav a:hover { color: var(--red); }
.foot__copy { font-size: 1rem; color: var(--ink2); }
.explicit { font: 400 .875rem/1 var(--font-l); color: var(--red); letter-spacing: .3em; text-transform: uppercase; margin-top: 4px; }
.explicit::before, .explicit::after { content: " · "; }

/* ---------- Rechtsseiten ---------- */
.legal .folio { grid-template-columns: minmax(0, 1fr) 230px; }
.back { display: inline-block; font: 400 1rem/1.3 var(--font-l); color: var(--red); text-decoration: none; margin-bottom: 32px; }
.back:hover { text-decoration: underline; }
.legal-head { margin-bottom: 40px; }
.legal-head h1 { hyphens: auto; overflow-wrap: break-word; }
.legal-body { max-width: 68ch; hyphens: auto; }
.legal-body h2 { font: 600 1.45rem/1.25 var(--font-t); color: var(--red); font-variant: small-caps; letter-spacing: .02em; margin: 1.9em 0 .5em; }
.legal-body h2:first-child { margin-top: 0; }
.legal-body p, .legal-body ul { margin: 0 0 .9em; }
.legal-body ul { padding-left: 1.3em; list-style: none; }
.legal-body li { position: relative; margin-bottom: .35em; }
.legal-body li::before { content: "¶"; position: absolute; left: -1.1em; color: var(--red); }
.legal-body a { text-decoration-color: var(--red); text-underline-offset: 3px; overflow-wrap: anywhere; }
.legal-note { padding: 14px 20px; border: 2px solid var(--gold); outline: 1px solid var(--ink); outline-offset: 3px; background: rgba(255, 248, 225, .5); font-style: italic; }
.legal-address { padding-left: 18px; border-left: 3px double var(--red); }

/* ---------- Responsiv ---------- */
@media (max-width: 1180px) {
  .hero__text, .about__copy > p:not(.rubric) { text-align: left; }
  .folio { grid-template-columns: minmax(0, 1fr) 190px; padding-left: 80px; }
  .divider { padding-left: 80px; }
  .vine { width: 48px; background-size: 48px 112px; }
  .nav ul a { padding-inline: 10px; }
  .mappa { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .mappa__disc { width: min(100%, 380px); }
}
@media (max-width: 900px) {
  .top__in { min-height: 84px; }
  .logo img { width: 72px; }
  .menu { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; min-height: 48px; padding: 8px 18px; background: var(--red); color: var(--gold-l); border: 2px solid var(--gold); outline: 1px solid var(--ink); font: 400 1rem/1 var(--font-l); cursor: pointer; }
  .menu__ico { position: relative; width: 18px; height: 12px; border-top: 2px solid; border-bottom: 2px solid; }
  .menu__ico::before { content: ""; position: absolute; left: 0; right: 0; top: 3px; border-top: 2px solid; }
  .menu[aria-expanded="true"] .menu__ico { border-color: transparent; }
  .menu[aria-expanded="true"] .menu__ico::before { transform: rotate(45deg); }
  .menu[aria-expanded="true"] .menu__ico::after { content: ""; position: absolute; left: 0; right: 0; top: 3px; border-top: 2px solid; transform: rotate(-45deg); }
  .js .nav { position: absolute; top: 100%; left: var(--pad); right: var(--pad); display: none; flex-direction: column; align-items: stretch; gap: 14px; padding: 10px 22px 22px; background: var(--parch); border: 2px solid var(--gold); outline: 1px solid var(--ink); box-shadow: 0 20px 40px -12px rgba(42, 29, 20, .5); }
  .js .top.open .nav { display: flex; }
  .nav ul { flex-direction: column; margin: 0; gap: 0; }
  .nav ul a { padding: 16px 2px; font-size: 1.15rem; border-bottom: 1px solid rgba(163, 38, 27, .3); }
  .nav__end { justify-content: space-between; }
  html:not(.js) .top__in { flex-wrap: wrap; padding-block: 12px; }
  html:not(.js) .nav { flex-wrap: wrap; }
  .folio, .legal .folio { grid-template-columns: 1fr; padding-left: 52px; gap: 28px; }
  .divider { padding-left: 52px; }
  .vine { width: 32px; background-size: 32px 75px; left: calc(var(--pad) - 6px); }
  .margo { border-left: 0; box-shadow: none; padding: 18px 0 0; border-top: 1px solid rgba(163, 38, 27, .35); grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: start; }
  .margo:empty { display: none; }
  .margo__plane, .margo__ship, .margo__camel { display: none; }
  .stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; grid-column: 1 / -1; }
  .hero { min-height: 0; }
  .about { grid-template-columns: 1fr; }
  .mini--arch { max-width: 340px; }
}
@media (max-width: 640px) {
  body { font-size: 1.1875rem; }
  .folio, .legal .folio { padding-left: 34px; }
  .divider { padding-left: 34px; padding-block: 48px; }
  .vine { width: 22px; background-size: 22px 52px; left: 10px; }
  .ini { font-size: clamp(2.2rem, 10.5vw, 2.8rem); }
  .ini--sm { font-size: clamp(1.6rem, 7vw, 2rem); }
  .hero__text { column-count: 1; font-size: 1.1875rem; }
  .cases { columns: 1; }
  .svcs, .feats, .tabula { grid-template-columns: 1fr; }
  .tabula > div:nth-child(n) { padding: 20px 0; border-left: 0; }
  .tabula > div + div { border-top: 1px solid rgba(163, 38, 27, .35); }
  .steps { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr; }
  .btn { width: 100%; }
  .mini--wide img { aspect-ratio: 1.6; }
  .mappa { padding: 18px; }
  .seal { width: 84px; height: 84px; top: -10px; right: 0; }
  .bas__camel { width: 96px; height: 70px; }
}
