:root {
    --ink: #302727;
    --ink-deep: #241d1d;
    --ink-soft: #4d4141;
    --ink-muted: #665b5b;
    --ink-faint: #706464;
    --paper: #f7f3ee;
    --paper-light: #fffdf9;
    --white: #ffffff;
    --brand: #7a1d23;
    --brand-accent: #a52a30;
    --brand-deep: #62171c;
    --brand-soft: #eee8df;
    --brand-wash: #f8f5f0;
    --on-dark: #fffdf9;
    --on-dark-muted: rgba(255, 255, 255, .78);
    --on-dark-soft: rgba(255, 255, 255, .72);
    --surface-sand: #eee8df;
    --surface-warm: #f8f5f0;
    --gold: var(--brand);
    --gold-light: var(--brand-accent);
    --gold-ink: var(--brand);
    --gold-deep: var(--brand-deep);
    --burgundy: var(--brand);
    --burgundy-deep: var(--brand-deep);
    --rose: #9f9188;
    --sage: #aa9f98;
    --mist-72: rgba(48, 39, 39, .72);
    --mist-58: rgba(48, 39, 39, .62);
    --mist-45: rgba(48, 39, 39, .68);
    --mist-ghost: rgba(122, 29, 35, .72);
    --line-dark: rgba(122, 29, 35, .18);
    --line-light: rgba(48, 39, 39, .15);
    --line-gold: rgba(122, 29, 35, .38);
    --sans: "Avenir Next", "Segoe UI", Arial, sans-serif;
    --serif: "Iowan Old Style", "Palatino Linotype", Palatino, Baskerville, Georgia, serif;

    /* Typo-Skala */
    --text-2xs: 0.75rem;
    --text-xs: 0.8125rem;
    --text-sm: 0.9375rem;
    --text-base: 1.0625rem;
    --text-lg: clamp(1.0625rem, 1rem + 0.35vw, 1.1875rem);
    --text-xl: clamp(1.3125rem, 1.2rem + 0.55vw, 1.625rem);
    --text-2xl: clamp(1.625rem, 1.4rem + 1vw, 2.125rem);
    --text-3xl: clamp(2.375rem, 1.75rem + 2.9vw, 3.875rem);
    --text-4xl: clamp(3.25rem, 2.25rem + 4.5vw, 5.5rem);

    --track-tight: -0.03em;
    --track-wide: 0.08em;
    --track-caps: 0.16em;
    --track-mega: 0.3em;

    --leading-display: 1.05;
    --leading-heading: 1.2;
    --leading-body: 1.7;
    --leading-relaxed: 1.85;

    /* Abstands-Skala */
    --space-1: 0.5rem;
    --space-2: 0.75rem;
    --space-3: 1rem;
    --space-4: 1.5rem;
    --space-5: 2rem;
    --space-6: 2.75rem;
    --space-7: 4rem;
    --space-8: 5rem;
    --gap-section: clamp(3rem, 2rem + 4vw, 6.5rem);
    --section-pad: clamp(4.75rem, 3.25rem + 4.5vw, 7rem);

    --container: min(1160px, calc(100vw - 48px));
    --shadow: 0 28px 80px rgba(56, 44, 40, .12);
}

* { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
}

html.is-anchor-settling { scroll-behavior: auto; }

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--sans);
    font-size: var(--text-base);
    line-height: var(--leading-body);
    -webkit-font-smoothing: antialiased;
}

body.nav-open { overflow: hidden; }

::selection { background: var(--burgundy); color: var(--white); }

a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img, svg { display: block; max-width: 100%; }

:focus-visible {
    outline: 2px solid var(--brand-accent);
    outline-offset: 4px;
}

.container { width: var(--container); margin-inline: auto; }
.section-pad { padding: var(--section-pad) 0; }
section[id] { scroll-margin-top: 96px; }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link {
    position: fixed;
    top: 10px;
    left: 10px;
    z-index: 1000;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    background: var(--white);
    color: var(--ink);
}

.skip-link:focus-visible { width: auto; height: auto; padding: 10px 15px; overflow: visible; clip-path: none; }

.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 100;
    background: rgba(247, 243, 238, .96);
    color: var(--ink);
    border-bottom: 1px solid rgba(122, 29, 35, .1);
    transition: background .35s, border-color .35s, transform .35s;
}

.site-header.is-scrolled {
    background: rgba(247, 243, 238, .97);
    border-color: rgba(122, 29, 35, .17);
    backdrop-filter: blur(18px);
    box-shadow: 0 10px 35px rgba(71, 42, 42, .07);
}

.header-inner {
    height: 88px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand {
    display: inline-flex;
    align-items: center;
    color: inherit;
    text-decoration: none;
    text-transform: uppercase;
}

.brand-mark-logo { display: block; width: 46px; height: auto; }
.brand-logo { display: block; width: 98px; height: auto; }
.brand-footer .brand-logo { width: 118px; }

.main-nav { display: flex; align-items: center; gap: 38px; }
.main-nav-links { display: contents; }
.mobile-nav-heading, .mobile-nav-foot { display: none; }
.main-nav a {
    position: relative;
    color: var(--ink-muted);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: var(--track-wide);
    text-decoration: none;
    text-transform: uppercase;
    transition: color .2s;
}
.main-nav a:not(.nav-cta)::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -7px;
    height: 1px;
    background: var(--gold);
    transition: right .25s;
}
.main-nav a:hover { color: var(--brand); }
.main-nav a:hover::after { right: 0; }
.main-nav a[aria-current="page"] { color: var(--brand); }
.main-nav a[aria-current="page"]::after { right: 0; }
.main-nav .nav-cta {
    padding: 11px 18px;
    border: 1px solid var(--brand);
    color: var(--brand);
}
.nav-cta:hover { background: var(--brand); color: var(--white) !important; }
.nav-toggle { display: none; }

.hero {
    position: relative;
    min-height: 760px;
    overflow: hidden;
    background: linear-gradient(135deg, var(--paper-light) 0%, var(--paper) 68%, var(--surface-sand) 100%);
    color: var(--ink);
}

.hero-grid {
    position: relative;
    z-index: 2;
    min-height: 760px;
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(390px, .98fr);
    gap: clamp(2rem, 5vw, 6rem);
    align-items: center;
    padding-top: 94px;
}

.hero-copy { max-width: 670px; padding: var(--space-7) 0 var(--space-6); }
.hero-brand-name {
    margin: 0 0 1.15rem;
    color: var(--brand);
    font-family: var(--serif);
    font-size: clamp(1.05rem, .94rem + .42vw, 1.28rem);
    font-weight: 500;
    letter-spacing: .18em;
    line-height: 1.2;
    text-transform: uppercase;
}
.hero-visual {
    position: relative;
    height: 535px;
    margin: 125px 0 45px;
    background: var(--white);
    box-shadow: 0 32px 85px rgba(56, 44, 40, .14);
}
.hero-visual::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -22px 24px 22px -24px;
    border: 1px solid rgba(122, 29, 35, .48);
}
.hero-visual picture, .hero-visual img { width: 100%; height: 100%; }
.hero-visual img { object-fit: cover; object-position: 52% center; }
.hero-seal { position: absolute; right: -19px; bottom: -22px; width: 88px; height: 88px; display: grid; place-items: center; padding: 16px; background: var(--paper-light); border: 1px solid rgba(122, 29, 35, .3); box-shadow: 0 14px 40px rgba(71, 42, 42, .13); }
.hero-seal img { width: 100%; height: 100%; object-fit: contain; }
.eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 var(--space-5);
    color: var(--brand);
    font-size: var(--text-2xs);
    font-weight: 600;
    letter-spacing: var(--track-caps);
    text-transform: uppercase;
}
.eyebrow > span { width: 42px; height: 1px; background: var(--gold); }

.hero h1,
.section-head h2,
.boundary-panel h2,
.security h2,
.inquiry h2,
.status-card h1,
.legal-hero h1 {
    margin: 0;
    font-family: var(--serif);
    font-weight: 400;
    line-height: var(--leading-display);
    letter-spacing: var(--track-tight);
}
.hero h1 { max-width: 720px; font-size: var(--text-4xl); }
h1 em, h2 em, blockquote em, .final-word em {
    color: var(--brand);
    font-weight: 400;
    font-style: italic;
}
.editorial-heading { font-family: var(--serif); font-weight: 400; letter-spacing: var(--track-tight); text-wrap: balance; }
.editorial-heading > span, .editorial-heading > em { display: block; }
.editorial-heading > em { color: var(--brand); font-style: italic; font-weight: 400; }
.hero-lead {
    max-width: 700px;
    margin: var(--space-5) 0 0;
    color: var(--ink-muted);
    font-size: var(--text-lg);
    line-height: var(--leading-body);
}

.hero-actions { display: flex; align-items: center; gap: var(--space-5); margin-top: var(--space-6); }
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-5);
    min-height: 55px;
    padding: 0 25px;
    border: 1px solid transparent;
    border-radius: 0;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: var(--track-wide);
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .25s, color .25s, border-color .25s, transform .25s;
}
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--brand); color: var(--white); }
.button-primary:hover { background: var(--brand-accent); }
.text-link {
    display: inline-flex;
    gap: 15px;
    color: var(--ink-muted);
    font-size: var(--text-xs);
    letter-spacing: var(--track-wide);
    text-decoration: none;
    text-transform: uppercase;
}
.text-link span { color: var(--gold); }
.hero-trust { display: flex; gap: var(--space-5); margin-top: var(--space-7); }
.hero-trust span {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--mist-45);
    font-size: var(--text-2xs);
    letter-spacing: var(--track-caps);
    text-transform: uppercase;
}
.hero-trust i { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); }
.hero-reassurance { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 11px; margin: var(--space-5) 0 0; color: var(--ink-muted); font-size: var(--text-2xs); letter-spacing: .08em; line-height: 1.55; text-transform: uppercase; }
.hero-reassurance strong { color: var(--brand); font-size: var(--text-sm); }
.hero-reassurance > span { flex: 1 1 300px; color: var(--ink-muted); }
.hero-reassurance i { margin-right: 10px; color: rgba(122, 29, 35, .52); font-style: normal; }

.statement { background: var(--paper-light); border-top: 1px solid rgba(48, 39, 39, .07); }
.statement-grid { display: grid; grid-template-columns: 1fr 3.1fr; gap: var(--gap-section); }
.section-index {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--ink-faint);
    font-size: var(--text-2xs);
    font-weight: 600;
    letter-spacing: var(--track-caps);
    text-transform: uppercase;
}
.section-index span { width: 34px; height: 1px; background: var(--gold); }
.section-index.on-dark { color: var(--on-dark-muted); }
.section-index.on-dark span { background: currentColor; }
.statement-lead { max-width: 850px; margin: 0; font: 400 var(--text-3xl)/1.16 var(--serif); letter-spacing: var(--track-tight); }
.statement-lead em { color: var(--burgundy); }
.statement-columns { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-7); margin-top: var(--space-6); padding-top: var(--space-6); border-top: 1px solid var(--line-light); }
.statement-columns p { margin: 0; color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-relaxed); }
.editorial-diptych {
    display: grid;
    grid-template-columns: 1.35fr .65fr;
    gap: var(--space-3);
    height: 310px;
    margin: var(--space-8) 0 0;
}
.editorial-diptych picture, .editorial-diptych img { width: 100%; height: 100%; }
.editorial-diptych img { object-fit: cover; }
.editorial-diptych picture:last-child img { object-position: 60% center; }

.expertise { position: relative; overflow: clip; background: var(--white); color: var(--ink); border-top: 1px solid rgba(48, 39, 39, .07); }
.expertise::before { content: ""; position: absolute; top: -180px; right: -160px; width: 520px; height: 520px; border: 1px solid rgba(122, 29, 35, .08); transform: rotate(28deg); pointer-events: none; }
.expertise .container { position: relative; z-index: 1; }
.section-head { display: grid; grid-template-columns: 2fr 1fr; align-items: end; gap: var(--gap-section); margin-bottom: var(--space-8); }
.section-head h2, .boundary-panel h2, .security h2, .inquiry h2 { margin-top: var(--space-4); font-size: var(--text-3xl); }
.section-head > p { margin: 0 0 5px; color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-body); }
.services-heading { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: clamp(3rem, 8vw, 8rem); align-items: end; margin-bottom: var(--space-8); }
.services-heading h2 { max-width: 820px; margin: var(--space-4) 0 0; font: 400 var(--text-3xl)/1.06 var(--serif); letter-spacing: var(--track-tight); }
.services-heading-copy { padding: 0 0 5px var(--space-5); border-left: 1px solid var(--line-gold); }
.services-heading-copy > p { margin: 0; color: var(--ink-muted); font-size: var(--text-base); line-height: 1.75; }
.services-principles { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: var(--space-5); }
.services-principles span { display: inline-flex; align-items: center; gap: 8px; color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.services-principles span::before { content: ""; width: 18px; height: 1px; background: currentColor; }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.service-card { position: relative; isolation: isolate; display: flex; flex-direction: column; min-height: 450px; padding: clamp(2rem, 3vw, 2.75rem); border: 1px solid var(--line-dark); overflow: hidden; background: var(--paper-light); transition: background .35s ease, transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.service-card::before { content: ""; position: absolute; z-index: 2; inset: 0 0 auto; height: 3px; background: var(--brand); transform: scaleX(0); transform-origin: left; transition: transform .7s cubic-bezier(.2,.75,.25,1); }
.service-card::after { content: ""; position: absolute; z-index: -1; right: -70px; top: -80px; width: 190px; height: 190px; border: 1px solid rgba(122, 29, 35, .08); border-radius: 50%; transition: transform .55s ease, border-color .55s ease; }
.service-card:hover { z-index: 2; border-color: rgba(122, 29, 35, .42); background: var(--white); transform: translateY(-7px); box-shadow: 0 24px 60px rgba(56, 44, 40, .12); }
.service-card:hover::after { border-color: rgba(122, 29, 35, .19); transform: scale(1.15); }
.service-card.is-visible::before { transform: scaleX(1); }
.card-number { position: absolute; right: clamp(1.75rem, 3vw, 2.75rem); top: clamp(1.65rem, 2.5vw, 2.25rem); color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-wide); }
.service-icon { width: 64px; height: 64px; display: grid; place-items: center; margin-bottom: var(--space-5); border: 1px solid var(--line-gold); background: var(--white); }
.service-icon svg { width: 31px; color: var(--gold); }
.service-icon path, .service-icon circle { fill: none; stroke: currentColor; stroke-width: 1.4; }
.service-card-label { margin-bottom: 12px; color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.service-card h3 { max-width: 300px; margin: 0 0 var(--space-3); font: 400 var(--text-xl)/1.16 var(--serif); }
.service-card > p:not(.service-card-result) { max-width: 315px; margin: 0; color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-body); }
.service-card-result { margin: auto 0 0; padding-top: var(--space-5); border-top: 1px solid var(--line-dark); color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.65; }
.service-card-result span { display: block; margin-bottom: 7px; color: var(--brand); font-size: .6875rem; font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.services-deliverable { position: relative; display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; margin-top: 18px; padding: clamp(2.5rem, 5vw, 5rem); border: 1px solid var(--line-dark); background: var(--surface-sand); overflow: hidden; }
.services-deliverable::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--brand); }
.services-result-label { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.services-deliverable-copy h3 { max-width: 580px; margin: var(--space-3) 0 var(--space-4); font: 400 var(--text-2xl)/1.12 var(--serif); letter-spacing: var(--track-tight); }
.services-deliverable-copy > p { max-width: 580px; margin: 0; color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-body); }
.services-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px var(--space-5); margin-top: var(--space-5); }
.services-actions .text-link { align-items: center; white-space: nowrap; }
.services-deliverable-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line-dark); background: var(--paper-light); }
.services-deliverable-grid article { min-height: 148px; display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-3); padding: var(--space-5); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); transition: background .3s ease, transform .3s ease; }
.services-deliverable-grid article:nth-child(2n) { border-right: 0; }
.services-deliverable-grid article:nth-last-child(-n+2) { border-bottom: 0; }
.services-deliverable-grid article:hover { background: var(--white); transform: translateY(-3px); }
.services-deliverable-grid span { color: var(--brand); font-size: .6875rem; font-weight: 700; letter-spacing: var(--track-wide); }
.services-deliverable-grid strong { max-width: 210px; font: 400 var(--text-lg)/1.25 var(--serif); }
.js .services-deliverable-grid article { opacity: 0; transform: translateY(14px); }
.js .services-deliverable.is-visible .services-deliverable-grid article { opacity: 1; transform: none; transition: opacity .48s ease, transform .48s ease, background .3s ease; }
.js .services-deliverable.is-visible .services-deliverable-grid article:nth-child(2) { transition-delay: 80ms; }
.js .services-deliverable.is-visible .services-deliverable-grid article:nth-child(3) { transition-delay: 160ms; }
.js .services-deliverable.is-visible .services-deliverable-grid article:nth-child(4) { transition-delay: 240ms; }
.case-types { display: grid; grid-template-columns: 1fr 3fr; align-items: start; gap: var(--space-5); margin-top: var(--space-7); }
.services-scope { margin-top: var(--space-6); }
.case-types > span { color: var(--gold); font-size: var(--text-2xs); letter-spacing: var(--track-caps); text-transform: uppercase; }
.case-types > div { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-5); }
.case-types p { margin: 0; padding: var(--space-2) 0; border-top: 1px solid var(--line-dark); color: var(--ink-muted); font-size: var(--text-sm); }
.case-types p::before { content: "—"; margin-right: 15px; color: var(--gold); }

.boundaries { background: var(--surface-sand); color: var(--ink); border-top: 1px solid rgba(48, 39, 39, .08); border-bottom: 1px solid rgba(48, 39, 39, .08); }
.boundaries-grid { display: grid; grid-template-columns: 1.1fr .62fr .78fr; gap: clamp(1.5rem, 3vw, 3.5rem); align-items: center; }
.boundaries-quote { position: relative; padding: var(--space-8) 25px var(--space-8) 75px; }
.boundaries-quote::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 1px; background: linear-gradient(transparent, var(--gold), transparent); }
.quote-mark { position: absolute; top: 20px; left: 68px; color: rgba(48, 39, 39, .35); font: 110px/1 var(--serif); }
.boundaries blockquote { position: relative; margin: 0; font: 400 var(--text-3xl)/1.12 var(--serif); letter-spacing: var(--track-tight); }
.boundaries-image { height: 470px; margin: 0; overflow: hidden; border: 1px solid rgba(122, 29, 35, .26); }
.boundaries-image picture, .boundaries-image img { width: 100%; height: 100%; }
.boundaries-image img { object-fit: cover; object-position: 52% center; filter: contrast(1.06) sepia(.025); }
.boundary-panel { padding: var(--space-6); border: 1px solid rgba(122, 29, 35, .22); background: var(--paper-light); }
.panel-label { color: var(--gold); font-size: var(--text-2xs); letter-spacing: var(--track-caps); text-transform: uppercase; }
.boundary-panel h2 { margin-top: var(--space-3); font-size: var(--text-2xl); }
.boundary-panel > p { color: var(--ink-muted); font-size: var(--text-sm); }
.boundary-panel ul { margin: var(--space-5) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--line-dark); }
.boundary-panel li { display: flex; gap: 14px; padding: var(--space-2) 0; border-bottom: 1px solid var(--line-dark); color: var(--ink-muted); font-size: var(--text-xs); letter-spacing: .04em; }
.boundary-panel li span { color: var(--gold); }

.process { background: var(--paper-light); border-top: 1px solid rgba(48, 39, 39, .07); }
.process-head > p { color: var(--ink-muted); }
.process-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(260px, .45fr); gap: var(--space-5); align-items: stretch; }
.process-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-light); }
.process-list li { display: grid; grid-template-columns: .55fr 2.45fr 50px; gap: var(--space-6); align-items: center; min-height: 154px; border-bottom: 1px solid var(--line-light); }
.process-number { color: var(--burgundy); font: italic var(--text-xl) var(--serif); }
.process-list li > div { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: var(--space-7); }
.process-list h3 { margin: 0; font: 400 var(--text-xl)/var(--leading-heading) var(--serif); }
.process-list p { margin: 0; color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-body); }
.process-arrow, .process-check { justify-self: end; color: var(--gold-ink); font-size: 25px; font-weight: 300; }
.process-check { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; font-size: var(--text-xs); }
.process-image { min-height: 100%; margin: 0; overflow: hidden; }
.process-image picture, .process-image img { width: 100%; height: 100%; }
.process-image img { object-fit: cover; object-position: 48% center; filter: saturate(.85); }

.pricing { background: var(--paper-light); color: var(--ink); border-top: 1px solid rgba(48, 39, 39, .07); }
.pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); align-items: stretch; }
.price-card { position: relative; min-height: 450px; padding: var(--space-6); border: 1px solid var(--line-dark); background: var(--white); }
.price-card.featured { border-color: rgba(122, 29, 35, .58); background: var(--surface-warm); box-shadow: 0 22px 55px rgba(56, 44, 40, .09); }
.price-card-link { display: block; color: inherit; text-decoration: none; cursor: pointer; transition: transform .35s ease, border-color .35s ease, box-shadow .35s ease, background .35s ease; }
.price-card-link::before { content: ""; position: absolute; z-index: 0; inset: 0; background: linear-gradient(115deg, transparent 18%, rgba(255,255,255,.52) 48%, transparent 78%); opacity: 0; transition: opacity .5s ease; pointer-events: none; }
.price-card-link > * { position: relative; z-index: 1; }
.price-card-link:hover { border-color: var(--brand); background: var(--paper-light); transform: translateY(-8px); box-shadow: 0 30px 75px rgba(56, 44, 40, .15); }
.price-card-link:hover::before { opacity: 1; }
.price-card-link:focus-visible { outline: 2px solid var(--brand); outline-offset: 5px; }
.price-tag { position: absolute; top: 0; left: var(--space-6); padding: 6px 10px; background: var(--brand); color: var(--white); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; transform: translateY(-50%); }
.price-top { min-height: 105px; display: flex; flex-direction: column; justify-content: space-between; padding-bottom: var(--space-4); border-bottom: 1px solid var(--line-dark); }
.price-top > span { color: var(--ink-faint); font-size: var(--text-2xs); letter-spacing: var(--track-caps); text-transform: uppercase; }
.price-top strong { font: 400 var(--text-3xl)/1 var(--serif); }
.price-top small { color: var(--gold-light); font: 400 var(--text-sm) var(--sans); }
.price-card > p { min-height: 78px; margin: var(--space-4) 0; color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-body); }
.price-card ul { margin: 0; padding: 0; list-style: none; }
.price-card li { margin: 8px 0; color: var(--ink-muted); font-size: var(--text-xs); }
.price-card li::before { content: "✓"; margin-right: 11px; color: var(--gold); }
.price-card-cta { position: absolute !important; left: var(--space-6); right: var(--space-6); bottom: 35px; display: flex; justify-content: space-between; padding-top: var(--space-3); border-top: 1px solid rgba(122, 29, 35, .28); color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-wide); text-transform: uppercase; }
.price-card-cta i { font-size: 1rem; font-style: normal; transition: transform .3s ease; }
.price-card-link:hover .price-card-cta i, .price-card-link:focus-visible .price-card-cta i { transform: translate(4px, -4px); }
.pricing-note { margin: var(--space-5) 0 0; color: var(--ink-faint); font-size: var(--text-2xs); text-align: center; }

.security { overflow: hidden; background: var(--white); border-top: 1px solid rgba(48, 39, 39, .07); }
.security-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap-section); align-items: center; }
.security h2 em { color: var(--gold-ink); }
.security-grid > div:last-child > p { max-width: 580px; color: var(--ink-muted); }
.security-visual { position: relative; min-height: 490px; display: grid; grid-template-columns: minmax(0, 1fr) 200px; align-items: end; padding: 34px 0; }
.security-location-card { z-index: 1; grid-column: 1; grid-row: 1; width: calc(100% + 34px); min-height: 410px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(34px, 4vw, 48px) clamp(54px, 5vw, 72px) clamp(34px, 4vw, 48px) clamp(34px, 4vw, 48px); border: 1px solid var(--line-dark); background: var(--paper); }
.security-location-label { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.security-location-icon { width: 68px; margin: var(--space-5) 0; color: var(--brand); }
.security-location-icon * { fill: none; stroke: currentColor; stroke-width: 1.5; }
.security-location-card strong { font: 400 var(--text-2xl)/1.08 var(--serif); }
.security-location-card > small { margin-top: 8px; color: var(--ink-muted); font-size: var(--text-xs); letter-spacing: .08em; text-transform: uppercase; }
.security-route { max-width: 245px; display: flex; flex-wrap: wrap; align-items: center; gap: 9px 12px; margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid var(--line-dark); color: var(--ink-muted); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-wide); line-height: 1.5; text-transform: uppercase; }
.security-route i { color: var(--brand); font-style: normal; }
.security-ring { position: absolute; border: 1px solid rgba(122, 29, 35, .14); border-radius: 50%; }
.ring-one { width: 470px; height: 470px; }
.ring-two { width: 340px; height: 340px; border-style: dashed; }
.lock-card { position: relative; z-index: 2; grid-column: 2; grid-row: 1; justify-self: end; width: 200px; min-height: 230px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--space-5); background: var(--burgundy-deep); color: var(--white); box-shadow: var(--shadow); text-align: center; transition: transform .35s ease, box-shadow .35s ease; }
.security-visual:hover .lock-card { transform: translateY(-7px); box-shadow: 0 32px 85px rgba(56, 44, 40, .18); }
.lock-card svg { width: 62px; margin-bottom: var(--space-5); color: var(--paper); }
.lock-card svg * { fill: none; stroke: currentColor; stroke-width: 1.5; }
.lock-card span { font: 400 var(--text-xl) var(--serif); }
.lock-card small { margin-top: 10px; color: rgba(255,255,255,.7); font-size: var(--text-2xs); line-height: 1.6; letter-spacing: var(--track-wide); text-transform: uppercase; }
.security-points { display: grid; margin-top: var(--space-6); border-top: 1px solid var(--line-light); }
.security-points span { display: flex; gap: var(--space-4); padding: var(--space-3) 0; border-bottom: 1px solid var(--line-light); color: var(--ink-muted); font-size: var(--text-sm); }
.security-points i { color: var(--gold-ink); font-size: var(--text-2xs); font-style: normal; letter-spacing: var(--track-wide); }

.data-trust { background: var(--paper); border-top: 1px solid rgba(48, 39, 39, .08); border-bottom: 1px solid rgba(48, 39, 39, .08); }
.data-trust-head { display: grid; grid-template-columns: 1.2fr .8fr; gap: var(--gap-section); align-items: end; margin-bottom: var(--space-7); }
.data-trust h2 { margin: var(--space-4) 0 0; font: 400 var(--text-3xl)/var(--leading-display) var(--serif); letter-spacing: var(--track-tight); }
.data-trust h2 em { color: var(--brand); font-weight: 400; }
.data-trust-head > p { max-width: 560px; margin: 0 0 5px; color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-relaxed); }
.data-trust-grid { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line-dark); background: var(--paper-light); }
.data-trust-card { position: relative; min-height: 260px; padding: var(--space-5); border-right: 1px solid var(--line-dark); transition: background .3s ease, transform .3s ease, box-shadow .3s ease; }
.data-trust-card:hover { z-index: 2; background: var(--white); transform: translateY(-5px); box-shadow: 0 18px 45px rgba(56, 44, 40, .09); }
.data-trust-card:last-child { border-right: 0; }
.data-trust-card > span { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-wide); }
.data-trust-card h3 { margin: var(--space-7) 0 var(--space-3); font: 400 var(--text-xl)/var(--leading-heading) var(--serif); }
.data-trust-card p { margin: 0; color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-body); }

.inquiry { background: var(--surface-sand); color: var(--ink); border-top: 1px solid rgba(48, 39, 39, .08); }
.inquiry-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: var(--gap-section); align-items: start; }
.inquiry-intro > p { max-width: 470px; color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-relaxed); }
.inquiry-contact { margin-top: var(--space-6); padding-top: var(--space-4); border-top: 1px solid var(--line-dark); }
.inquiry-contact span { display: block; color: var(--ink-faint); font-size: var(--text-2xs); letter-spacing: var(--track-caps); text-transform: uppercase; }
.inquiry-contact a { display: inline-block; margin-top: 8px; color: var(--gold-light); font: 400 var(--text-xl) var(--serif); text-decoration: none; }
.inquiry-intro .service-notice { display: flex; gap: 12px; margin-top: var(--space-5); color: var(--ink-faint); font-size: var(--text-2xs); line-height: 1.6; }
.service-notice > span { flex: 0 0 5px; width: 5px; height: 5px; margin-top: 6px; border-radius: 50%; background: var(--gold); }

.form-card { padding: var(--space-6); background: var(--white); color: var(--ink); box-shadow: 0 22px 60px rgba(56, 44, 40, .11); }
.form-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-5); padding-bottom: var(--space-4); border-bottom: 1px solid var(--line-light); }
.form-heading > div { display: grid; }
.form-heading span { color: var(--gold-deep); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.form-heading strong { margin-top: 7px; font: 400 var(--text-xl) var(--serif); }
.form-heading .form-lock { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line-gold); border-radius: 50%; font-size: 18px; }
.form-alert { display: grid; gap: 4px; margin: -10px 0 var(--space-5); padding: 15px 18px; border-left: 3px solid var(--brand); background: #f1ece5; color: var(--brand-deep); font-size: var(--text-xs); }
.form-alert-info { border-color: #8b7350; background: #f3eee5; color: #5f5140; }
.form-alert a { font-weight: 700; }
.honeypot { position: absolute !important; left: -10000px !important; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.form-card form > label, .form-row label, .upload-field > label:first-child { display: block; margin-bottom: var(--space-4); color: var(--ink-muted); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-wide); text-transform: uppercase; }
.form-card label > span, .upload-field > label span { color: var(--gold-deep); }
.form-card input[type="text"], .form-card input[type="email"], .form-card select, .form-card textarea {
    width: 100%;
    margin-top: 8px;
    border: 0;
    border-bottom: 1px solid rgba(16, 27, 34, .23);
    border-radius: 0;
    padding: 12px 0 11px;
    background: transparent;
    color: var(--ink);
    font-size: var(--text-sm);
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    outline: 0;
    transition: border-color .2s;
}
.form-card textarea { min-height: 135px; resize: vertical; line-height: 1.6; }
.form-card select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #657177 50%), linear-gradient(135deg, #657177 50%, transparent 50%); background-position: calc(100% - 6px) 50%, 100% 50%; background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; }
.form-card input:focus, .form-card select:focus, .form-card textarea:focus { border-bottom-color: var(--gold); }
.field-hint { display: flex; justify-content: space-between; margin-top: 6px; color: var(--ink-faint); font-size: var(--text-2xs); font-weight: 400; letter-spacing: .04em; text-transform: none; }
.field-hint span { color: inherit !important; }
.upload-field { margin-top: var(--space-5); }
.dropzone { min-height: 155px; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 3px !important; margin: 0 !important; border: 1px dashed rgba(122, 29, 35, .45); background: rgba(122, 29, 35, .035); text-align: center; cursor: pointer; transition: background .2s, border-color .2s; }
.dropzone:hover, .dropzone.is-dragging { border-color: var(--brand); background: rgba(122, 29, 35, .075); }
.dropzone input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.dropzone .upload-icon { width: 30px; height: 30px; display: grid; place-items: center; margin-bottom: 4px; border: 1px solid rgba(160, 131, 82, .5); border-radius: 50%; color: var(--gold-deep); font-size: 16px; }
.dropzone strong { color: var(--ink-muted); font-size: var(--text-xs); letter-spacing: var(--track-wide); }
.dropzone > span:not(.upload-icon) { color: var(--ink-faint); font-size: var(--text-2xs); font-weight: 400; letter-spacing: .04em; text-transform: none; }
.dropzone small { margin-top: 8px; color: var(--ink-faint); font-size: var(--text-2xs); font-weight: 400; letter-spacing: .04em; text-transform: none; }
.file-list { display: grid; gap: 6px; margin-top: 10px; }
.file-item { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; background: #ebe6dc; color: var(--ink-muted); font-size: var(--text-2xs); }
.file-item span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-item.is-invalid { color: var(--brand-deep); background: #f1ece5; }
.check-field { display: grid !important; grid-template-columns: 18px 1fr !important; align-items: start; gap: 11px !important; margin: var(--space-4) 0 var(--space-4) !important; color: var(--ink-muted) !important; font-size: var(--text-2xs) !important; font-weight: 400 !important; letter-spacing: .02em !important; line-height: 1.6; text-transform: none !important; }
.check-field input { width: 15px; height: 15px; margin: 2px 0 0; accent-color: var(--ink); }
.check-field span { color: inherit !important; }
.check-field a { color: var(--gold-deep); }
.check-field b { color: var(--gold-deep); }
.button-submit { width: 100%; justify-content: space-between; min-height: 60px; padding-inline: 22px; border-color: var(--brand); background: var(--brand); color: var(--white); }
.button-submit i { color: var(--paper); font-size: 17px; font-style: normal; }
.button-submit:hover { background: var(--brand-accent); }
.button-submit:disabled { border-color: #746a66; background: #746a66; color: var(--white); opacity: 1; cursor: not-allowed; transform: none; }
.form-footnote { display: flex; align-items: center; justify-content: center; gap: 8px; margin: var(--space-2) 0 0; color: var(--ink-faint); font-size: var(--text-2xs); letter-spacing: .04em; }
.form-footnote span { color: var(--gold); font-size: 0.5rem; }

.final-word { padding: var(--section-pad) 0; background: var(--paper-light); color: var(--ink); text-align: center; border-top: 1px solid rgba(122, 29, 35, .14); }
.final-word span { color: var(--gold); font-size: var(--text-2xs); letter-spacing: var(--track-mega); text-transform: uppercase; }
.final-word p { margin: var(--space-3) 0 0; font: 400 var(--text-3xl) var(--serif); }

.site-footer { padding: var(--space-8) 0 var(--space-4); background: var(--paper); color: var(--ink); border-top: 1px solid rgba(122, 29, 35, .18); }
.footer-main { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: var(--gap-section); padding-bottom: var(--space-7); }
.brand-footer { margin-bottom: var(--space-4); }
.footer-main > div:first-child p { max-width: 400px; margin: 0; color: var(--ink-faint); font-size: var(--text-xs); }
.footer-contact, .footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; color: var(--ink-muted); font-size: var(--text-xs); }
.footer-label { margin-bottom: 9px; color: var(--gold) !important; font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.footer-contact a, .footer-links a { text-decoration: none; }
.footer-contact a:hover, .footer-links a:hover { color: var(--gold-light); }
.footer-bottom { display: flex; justify-content: space-between; padding-top: var(--space-4); border-top: 1px solid rgba(122, 29, 35, .14); color: var(--ink-faint); font-size: var(--text-2xs); letter-spacing: var(--track-wide); text-transform: uppercase; }

.legal-hero { padding: 190px 0 90px; background: var(--surface-sand); color: var(--ink); border-bottom: 1px solid rgba(48, 39, 39, .08); }
.legal-hero h1 { font-size: var(--text-4xl); }
.legal-hero > .container > p:last-child { max-width: 620px; margin: var(--space-4) 0 0; color: var(--ink-muted); }
.legal-content { background: var(--paper-light); }
.legal-grid { display: grid; grid-template-columns: .7fr 2.3fr; gap: var(--gap-section); align-items: start; }
.legal-grid aside { position: sticky; top: 125px; display: grid; align-items: start; }
.legal-grid aside span { color: var(--ink-faint); font-size: var(--text-2xs); letter-spacing: var(--track-caps); text-transform: uppercase; }
.legal-grid aside strong { margin-top: 5px; font: 400 var(--text-lg) var(--serif); }
.legal-grid aside a { margin-top: var(--space-5); color: var(--gold-deep); font-size: var(--text-2xs); letter-spacing: var(--track-wide); text-decoration: none; text-transform: uppercase; }
.legal-grid article { max-width: 780px; }
.legal-grid article h2 { margin: var(--space-7) 0 var(--space-3); padding-top: var(--space-5); border-top: 1px solid var(--line-light); font: 400 var(--text-xl) var(--serif); }
.legal-grid article h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.legal-grid article p { color: var(--ink-muted); font-size: var(--text-sm); line-height: var(--leading-relaxed); }
.legal-grid article a { color: var(--gold-deep); }

.status-page { min-height: 760px; display: grid; place-items: center; padding: 150px 0 90px; background: radial-gradient(circle at center, var(--paper-light), var(--surface-sand)); color: var(--ink); }
.status-card { max-width: 750px; text-align: center; }
.status-card .eyebrow { justify-content: center; }
.status-card h1 { font-size: var(--text-4xl); }
.status-card > p:not(.eyebrow) { max-width: 590px; margin: var(--space-5) auto; color: var(--mist-58); }
.status-icon { width: 68px; height: 68px; display: grid; place-items: center; margin: 0 auto var(--space-5); border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-light); font-size: 23px; }
.status-code { display: block; margin-bottom: var(--space-4); color: rgba(122, 29, 35, .48); font: 400 var(--text-2xl) var(--serif); }
.reference { max-width: 420px; display: grid; gap: 5px; margin: var(--space-5) auto; padding: var(--space-3); border: 1px solid rgba(122, 29, 35, .3); }
.reference span { color: var(--mist-45); font-size: var(--text-2xs); letter-spacing: var(--track-caps); text-transform: uppercase; }
.reference strong { color: var(--gold-light); font-size: var(--text-base); letter-spacing: var(--track-wide); }

[data-reveal] { opacity: 1; transform: none; }
.js [data-reveal] {
    --reveal-delay: 0ms;
    opacity: 1;
    transform: translateY(10px);
    transition: opacity .52s cubic-bezier(.2,.75,.25,1), transform .52s cubic-bezier(.2,.75,.25,1), box-shadow .3s ease, border-color .3s ease, background-color .3s ease;
    transition-delay: var(--reveal-delay);
    will-change: transform;
}
.js [data-reveal="left"] { transform: translateX(-10px); }
.js [data-reveal="scale"] { transform: translateY(7px) scale(.992); }
.js [data-reveal].is-visible { opacity: 1; transform: none; will-change: auto; }
.js [data-delay="1"] { --reveal-delay: 90ms; }
.js [data-delay="2"] { --reveal-delay: 180ms; }
.js [data-delay="3"] { --reveal-delay: 270ms; }
.js [data-stagger="1"] { --reveal-delay: 55ms; }
.js [data-stagger="2"] { --reveal-delay: 110ms; }
.js [data-stagger="3"] { --reveal-delay: 165ms; }
.js [data-stagger="4"] { --reveal-delay: 220ms; }
.js [data-reveal].is-visible.price-card-link:hover { transform: translateY(-8px); }
.js [data-reveal].is-visible.data-trust-card:hover,
.js [data-reveal].is-visible.service-card:hover { transform: translateY(-5px); }

.hero-visual img,
.editorial-diptych img,
.expertise-image img,
.boundaries-image img,
.process-image img { transition: transform 1.1s cubic-bezier(.2,.7,.2,1), filter .8s ease; }
.hero-visual:hover img { transform: scale(1.025); }
.editorial-diptych:hover img,
.expertise-image:hover img,
.boundaries-image:hover img,
.process-image:hover img { transform: scale(1.018); }
.button span, .text-link span { display: inline-block; transition: transform .25s ease; }
.button:hover span { transform: translate(3px, -3px); }
.text-link:hover span { transform: translateY(3px); }

@keyframes mark-arrive {
    0% { opacity: 0; transform: translateY(-10px) scale(.92); }
    100% { opacity: 1; transform: none; }
}
@keyframes shield-draw {
    from { stroke-dashoffset: 180; }
    to { stroke-dashoffset: 0; }
}
@keyframes service-icon-draw {
    from { stroke-dashoffset: 120; }
    to { stroke-dashoffset: 0; }
}
.js .brand-mark-logo { animation: mark-arrive .7s .08s both cubic-bezier(.2,.8,.2,1); }
.js .security-location-icon path { stroke-dasharray: 180; stroke-dashoffset: 180; }
.js .security-visual.is-visible .security-location-icon path { animation: shield-draw 1.05s .25s forwards ease-out; }
.js .service-card .service-icon path, .js .service-card .service-icon circle { stroke-dasharray: 120; stroke-dashoffset: 120; }
.js .service-card.is-visible .service-icon path, .js .service-card.is-visible .service-icon circle { animation: service-icon-draw .9s .22s forwards ease-out; }

@media (max-width: 1050px) {
    :root { --container: min(100% - 40px, 900px); }
    .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(330px, .8fr); gap: var(--space-5); }
    .form-card { padding: var(--space-5); }
}

@media (max-width: 820px) {
    :root { --container: min(100% - 34px, 680px); }
    body.page-case_hub, body.page-case_detail { overflow-x: clip; }
    .header-inner { height: 76px; }
    .site-header.is-scrolled { -webkit-backdrop-filter: none; backdrop-filter: none; }
    .nav-toggle { width: 44px; height: 44px; display: grid; place-content: center; gap: 6px; border: 1px solid rgba(122, 29, 35, .42); background: transparent; color: var(--brand); }
    .nav-toggle span:not(.sr-only) { width: 19px; height: 1px; background: currentColor; transition: transform .2s; }
    .nav-toggle[aria-expanded="true"] { border-color: var(--brand); background: var(--brand); color: var(--white); }
    .nav-toggle[aria-expanded="true"] span:nth-last-child(2) { transform: translateY(3.5px) rotate(45deg); }
    .nav-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
    .main-nav { position: fixed; inset: 76px 0 auto; width: 100%; height: calc(100vh - 76px); height: calc(100dvh - 76px); display: grid; grid-template-rows: auto auto minmax(70px, 1fr); align-items: stretch; gap: 0; overflow-y: auto; overscroll-behavior: contain; padding: 27px clamp(20px, 6vw, 32px) max(24px, env(safe-area-inset-bottom)); background: linear-gradient(145deg, var(--paper-light), var(--paper) 66%, var(--surface-sand)); transform: translateX(100%); visibility: hidden; transition: transform .34s cubic-bezier(.2,.75,.25,1), visibility .34s; }
    .main-nav.is-open { transform: translateX(0); visibility: visible; }
    .mobile-nav-heading { display: grid; gap: 5px; padding: 0 0 22px; border-bottom: 1px solid var(--line-dark); opacity: 0; transform: translateX(14px); transition: opacity .3s .08s, transform .3s .08s; }
    .mobile-nav-heading span { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
    .mobile-nav-heading strong { color: var(--ink); font: 400 clamp(1.75rem, 7.5vw, 2.25rem)/1.12 var(--serif); }
    .main-nav-links { display: grid; align-content: start; counter-reset: mobile-nav; }
    .main-nav-links > a { min-height: 72px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 15px 0; border-bottom: 1px solid var(--line-dark); color: var(--ink); font: 400 clamp(1.55rem, 6vw, 1.85rem)/1.15 var(--serif); letter-spacing: 0; text-transform: none; opacity: 0; transform: translateX(14px); transition: color .2s, opacity .3s, transform .3s; }
    .main-nav-links > a:not(.nav-cta)::before { counter-increment: mobile-nav; content: "0" counter(mobile-nav); color: var(--brand); font: 700 var(--text-2xs)/1 var(--sans); letter-spacing: .1em; }
    .main-nav-links > a:not(.nav-cta)::after { position: static; content: "↗"; width: auto; height: auto; background: none; color: var(--brand); font: 400 1rem/1 var(--sans); transition: transform .2s; }
    .main-nav-links > a.nav-scroll:not(.nav-cta)::after { content: "↓"; }
    .main-nav-links > a[aria-current="page"] { color: var(--brand); }
    .main-nav-links > a[aria-current="page"]::before { font-weight: 800; }
    .main-nav-links > a:nth-child(1) { transition-delay: .11s; }
    .main-nav-links > a:nth-child(2) { transition-delay: .15s; }
    .main-nav-links > a:nth-child(3) { transition-delay: .19s; }
    .main-nav-links > a:nth-child(4) { transition-delay: .23s; }
    .main-nav-links > a:nth-child(5) { transition-delay: .27s; }
    .main-nav .nav-cta { min-height: 56px; display: flex; justify-content: space-between; margin-top: 22px; padding: 0 18px; border: 1px solid var(--brand); background: var(--brand); color: var(--white); font: 700 var(--text-xs)/1 var(--sans); letter-spacing: var(--track-wide); text-align: left; text-transform: uppercase; }
    .main-nav .nav-cta::after { content: "↗"; font-size: 1rem; font-weight: 400; }
    .main-nav .nav-cta.nav-scroll::after { content: "↓"; }
    .main-nav .nav-cta:hover { background: var(--brand-accent); color: var(--white); }
    .mobile-nav-foot { align-self: end; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 7px 18px; padding-top: 20px; border-top: 1px solid var(--line-dark); color: var(--ink-muted); opacity: 0; transform: translateY(8px); transition: opacity .3s .3s, transform .3s .3s; }
    .mobile-nav-foot span, .mobile-nav-foot small { font-size: var(--text-2xs); font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
    .mobile-nav-foot span { color: var(--brand); }
    .main-nav.is-open .mobile-nav-heading, .main-nav.is-open .main-nav-links > a, .main-nav.is-open .mobile-nav-foot { opacity: 1; transform: none; }
    .hero, .hero-grid { min-height: auto; }
    .hero-grid { grid-template-columns: 1fr; padding-top: 118px; padding-bottom: var(--space-8); }
    .hero-copy { padding: var(--space-6) 0 5px; }
    .hero-visual { height: clamp(310px, 62vw, 430px); margin: 0; }
    .hero-seal { right: 16px; bottom: -22px; }
    .hero-lead { max-width: 640px; }
    .statement-grid, .section-head, .boundaries-grid, .security-grid, .inquiry-grid, .legal-grid { grid-template-columns: 1fr; gap: var(--space-6); }
    .editorial-diptych { height: 270px; margin-top: var(--space-6); }
    .expertise-image { margin-top: 0; }
    .boundaries-image { width: min(100%, 520px); height: 390px; }
    .process-layout { grid-template-columns: 1fr; }
    .process-image { height: 410px; order: -1; }
    .statement-columns { gap: var(--space-5); }
    .section-head { align-items: start; margin-bottom: var(--space-7); }
    .section-head > p { max-width: 560px; }
    .services-heading, .services-deliverable { grid-template-columns: 1fr; }
    .services-heading { gap: var(--space-5); }
    .services-heading-copy { max-width: 620px; }
    .service-grid { grid-template-columns: 1fr; }
    .service-card { min-height: 350px; }
    .service-icon { margin-bottom: var(--space-6); }
    .services-deliverable { gap: var(--space-6); }
    .case-types { grid-template-columns: 1fr; }
    .boundaries-quote { padding: var(--space-7) 20px var(--space-7) 45px; }
    .quote-mark { left: 40px; }
    .boundary-panel { max-width: 520px; }
    .process-list li { grid-template-columns: 60px 1fr 35px; gap: var(--space-4); }
    .process-list li > div { grid-template-columns: 1fr; gap: 7px; padding: var(--space-4) 0; }
    .pricing-grid { grid-template-columns: 1fr; gap: var(--space-4); }
    .price-card { min-height: 420px; }
    .security-visual { order: 2; min-height: 420px; padding: 30px 0; }
    .data-trust-head { grid-template-columns: 1fr; gap: var(--space-5); }
    .data-trust-grid { grid-template-columns: 1fr 1fr; }
    .data-trust-card:nth-child(2) { border-right: 0; }
    .data-trust-card:nth-child(-n+2) { border-bottom: 1px solid var(--line-dark); }
    .footer-main { grid-template-columns: 1.5fr 1fr 1fr; gap: var(--space-5); }
    .legal-grid aside { position: static; }
}

@media (max-width: 820px) and (max-height: 650px) {
    .main-nav { grid-template-rows: auto auto minmax(44px, 1fr); padding-top: 15px; padding-bottom: max(14px, env(safe-area-inset-bottom)); }
    .mobile-nav-heading { gap: 2px; padding-bottom: 12px; }
    .mobile-nav-heading strong { font-size: 1.55rem; }
    .main-nav-links > a { min-height: 54px; padding-block: 8px; font-size: 1.35rem; }
    .main-nav .nav-cta { min-height: 48px; margin-top: 12px; }
    .mobile-nav-foot { gap: 4px 14px; padding-top: 10px; }
}

@media (max-width: 560px) {
    :root {
        --container: calc(100% - 30px);
        --section-pad: clamp(3.5rem, 14vw, 4rem);
    }
    .hero-grid { padding-top: 88px; padding-bottom: 58px; }
    .hero-copy { padding: 28px 0 0; }
    .eyebrow { margin-bottom: 24px; }
    .hero-lead { margin-top: 20px; line-height: 1.65; }
    .hero-actions { align-items: stretch; flex-direction: column; gap: 18px; margin-top: 28px; }
    .button { width: 100%; }
    .text-link { min-height: 44px; align-items: center; justify-content: center; }
    .hero-reassurance { margin-top: 24px; gap: 6px 8px; }
    .hero-visual { height: clamp(260px, 58vw, 310px); }
    .hero-seal { right: 12px; bottom: -18px; width: 72px; height: 72px; padding: 13px; }

    .statement-grid { gap: 32px; }
    .statement-columns { grid-template-columns: 1fr; gap: 18px; margin-top: 28px; padding-top: 24px; }
    .statement-columns p,
    .section-head > p,
    .service-card p,
    .case-types p,
    .boundary-panel > p,
    .process-list p,
    .price-card > p,
    .security-grid > div:last-child > p,
    .data-trust-head > p,
    .data-trust-card p,
    .inquiry-intro > p,
    .legal-grid article p { font-size: 1rem; line-height: 1.68; }
    .hero-reassurance, .pricing-note, .inquiry-intro .service-notice { font-size: .875rem; line-height: 1.6; }
    .editorial-diptych { grid-template-columns: 1.25fr .75fr; height: 220px; margin-top: 36px; }
    .editorial-diptych picture { height: 100%; }

    .section-head { gap: 24px; margin-bottom: 38px; }
    .services-heading { gap: 28px; margin-bottom: 42px; }
    .services-heading h2 { font-size: clamp(2.3rem, 11vw, 3.15rem); line-height: 1.04; text-wrap: balance; }
    .services-heading-copy { padding: 22px 0 0; border-top: 1px solid var(--line-gold); border-left: 0; }
    .services-heading-copy > p { font-size: 1rem; line-height: 1.7; }
    .services-principles { gap: 8px 14px; margin-top: 20px; }
    .expertise .service-card {
        min-height: 0;
        display: flex;
        align-items: stretch;
        padding: 28px 24px;
    }
    .service-icon { width: 52px; height: 52px; margin: 0 0 22px; }
    .service-icon svg { width: 27px; }
    .service-card-label { margin-bottom: 9px; }
    .service-card h3 { max-width: 280px; margin: 0 30px 12px 0; font-size: clamp(1.55rem, 7.3vw, 1.9rem); }
    .service-card > p:not(.service-card-result) { max-width: none; }
    .service-card-result { margin-top: 24px; padding-top: 20px; }
    .card-number { top: 28px; right: 24px; }
    .services-deliverable { gap: 30px; margin-top: 14px; padding: 34px 24px 28px; }
    .services-deliverable-copy h3 { font-size: clamp(1.95rem, 8.7vw, 2.45rem); line-height: 1.12; }
    .services-deliverable-copy > p { font-size: 1rem; line-height: 1.68; }
    .services-actions { align-items: stretch; flex-direction: column; gap: 12px; margin-top: 26px; }
    .services-actions .button, .services-actions .text-link { width: 100%; }
    .services-deliverable-grid { grid-template-columns: 1fr; }
    .services-deliverable-grid article { min-height: 104px; padding: 20px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
    .services-deliverable-grid article:nth-last-child(-n+2) { border-bottom: 1px solid var(--line-dark); }
    .services-deliverable-grid article:last-child { border-bottom: 0; }
    .services-deliverable-grid strong { max-width: none; font-size: 1.25rem; }
    .case-types { gap: 16px; margin-top: 32px; }
    .case-types > div { grid-template-columns: 1fr; gap: 0; }
    .case-types p { padding: 10px 0; }

    .boundaries-grid { gap: var(--space-4); }
    .boundaries-quote { padding: 30px 5px 34px 28px; }
    .boundaries blockquote { font-size: clamp(2rem, 9vw, 2.5rem); }
    .quote-mark { top: -4px; left: 25px; font-size: 86px; }
    .boundaries-image { height: 270px; }
    .boundary-panel { padding: 28px 24px; }
    .boundary-panel ul { margin-top: 22px; }
    .boundary-panel li { min-height: 44px; align-items: center; padding: 9px 0; font-size: 1rem; line-height: 1.55; }

    .process-image { height: 300px; }
    .process-list li { grid-template-columns: 32px 1fr 28px; gap: 12px; min-height: 0; }
    .process-list li > div { gap: 8px; padding: 20px 0; }
    .process-number { font-size: var(--text-lg); }

    .pricing-grid { gap: 18px; }
    .price-card { min-height: 0; padding: 28px 24px; }
    .price-tag { left: 24px; }
    .price-top { min-height: 74px; gap: 18px; padding-bottom: 16px; }
    .price-card > p { min-height: 0; margin: 16px 0 12px; line-height: 1.65; }
    .price-card li { margin: 7px 0; font-size: 1rem; line-height: 1.5; }
    .price-card-cta { position: relative !important; inset: auto; margin-top: 20px; padding-top: 14px; }
    .pricing-note { margin-top: 24px; line-height: 1.6; }

    .security-grid { gap: 30px; }
    .security-points { margin-top: 26px; }
    .security-points span { font-size: 1rem; line-height: 1.55; }
    .security-visual { min-height: 0; grid-template-columns: 1fr; align-items: start; padding: 0 0 24px; margin: 0; }
    .security-location-card { grid-column: 1; grid-row: 1; width: calc(100% - 20px); min-height: 350px; padding: 30px 28px 94px; }
    .security-route { max-width: 100%; }
    .lock-card { grid-column: 1; grid-row: 2; width: 150px; min-height: 150px; justify-self: end; margin-top: -72px; padding: 18px 14px; }
    .lock-card svg { width: 38px; margin-bottom: 12px; }
    .lock-card span { font-size: var(--text-base); }
    .lock-card small { margin-top: 7px; line-height: 1.45; }
    .data-trust-grid { grid-template-columns: 1fr; }
    .data-trust-card { min-height: 0; padding: 26px 22px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
    .data-trust-card:nth-child(2) { border-right: 0; }
    .data-trust-card:nth-child(-n+2) { border-bottom: 1px solid var(--line-dark); }
    .data-trust-card:last-child { border-bottom: 0; }
    .data-trust-card h3 { margin-top: 24px; }

    .inquiry-grid { gap: 30px; }
    .inquiry-contact { margin-top: 28px; padding-top: 20px; }
    .inquiry-contact a { overflow-wrap: anywhere; }
    .inquiry-intro .service-notice { margin-top: 20px; }
    .form-card { margin-inline: -3px; padding: 26px 20px; }
    .form-heading { margin-bottom: 22px; padding-bottom: 16px; }
    .form-card form > label, .form-row label, .upload-field > label:first-child { margin-bottom: 18px; }
    .form-row { grid-template-columns: 1fr; gap: 0; }
    .form-card input[type="text"], .form-card input[type="email"], .form-card select, .form-card textarea { padding: 10px 0; font-size: 1rem; }
    .form-card textarea { min-height: 115px; }
    .upload-field { margin-top: 24px; }
    .dropzone { min-height: 132px; padding: 14px 10px; }
    .field-hint, .dropzone > span:not(.upload-icon), .dropzone small, .form-footnote { font-size: .875rem; line-height: 1.55; }
    .check-field { grid-template-columns: 21px 1fr !important; gap: 12px !important; margin: 20px 0 !important; font-size: 1rem !important; line-height: 1.6; }
    .check-field input { width: 18px; height: 18px; margin-top: 3px; }
    .button-submit { min-height: 56px; }
    .form-footnote { line-height: 1.45; text-align: center; }

    .final-word { padding: 64px 0; }
    .site-footer { padding: 56px 0 24px; }
    .footer-main { grid-template-columns: 1fr; gap: 28px; padding-bottom: 36px; }
    .brand-footer { margin-bottom: 20px; }
    .footer-contact a { overflow-wrap: anywhere; }
    .footer-contact, .footer-links { gap: 2px; }
    .footer-contact a, .footer-links a { min-height: 44px; display: inline-flex; align-items: center; }
    .footer-bottom { flex-direction: column; gap: 8px; padding-top: 20px; }

    .legal-hero { padding: 120px 0 56px; }
    .legal-grid { gap: 32px; }
    .legal-grid article h2 { margin-top: 36px; padding-top: 24px; }
}

@media (max-width: 380px) {
    :root { --container: calc(100% - 28px); }
    .hero h1 { font-size: clamp(2.85rem, 14.5vw, 3.15rem); }
    .brand-mark-logo { width: 40px; }
    .brand-logo { width: 82px; }
    .brand-footer .brand-logo { width: 108px; }
    .editorial-diptych { grid-template-columns: 1fr; height: auto; }
    .editorial-diptych picture { height: 150px; }
    .case-types > div { grid-template-columns: 1fr; }
    .process-list li { grid-template-columns: 28px 1fr 24px; gap: 9px; }
    .security-visual { padding-right: 0; }
    .lock-card { width: 148px; min-height: 150px; }
    .form-card { margin-inline: -2px; padding-inline: 18px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .js [data-reveal] { opacity: 1 !important; transform: none !important; }
    .js .security-location-icon path { stroke-dashoffset: 0 !important; }
    .js .service-card .service-icon path, .js .service-card .service-icon circle { stroke-dashoffset: 0 !important; }
    .js .services-deliverable-grid article { opacity: 1 !important; transform: none !important; }
}

/* Fallbeispiele und Aktenstruktur */
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 var(--space-5); color: var(--ink-faint); font-size: var(--text-2xs); letter-spacing: .08em; text-transform: uppercase; }
.breadcrumbs a { text-decoration: none; }
.breadcrumbs a:hover { color: var(--brand); }
.section-heading { margin-bottom: var(--space-6); }
.section-heading h2, .split-heading h2 { margin: 12px 0 0; font: 400 var(--text-3xl)/1.08 var(--serif); letter-spacing: var(--track-tight); }
.section-heading h2 em, .split-heading h2 em { color: var(--brand); font-weight: 400; }
.split-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: var(--space-7); align-items: end; }
.split-heading > p, .split-heading > div:last-child > p { margin: 0; color: var(--ink-muted); }

.case-hero, .case-detail-hero, .service-detail-hero { padding-top: clamp(7.5rem, 9vw, 10rem); overflow: hidden; background: linear-gradient(120deg, var(--paper) 0 69%, var(--surface-sand) 69% 100%); }
.case-hero-grid, .case-detail-hero-grid, .service-detail-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); align-items: center; min-height: 570px; }
.case-hero-grid, .case-detail-hero-grid { grid-template-areas: "heading visual" "summary visual"; column-gap: clamp(3rem, 7vw, 8rem); row-gap: 0; align-content: center; }
.case-detail-hero-grid { grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); column-gap: clamp(2.5rem, 5vw, 5.5rem); }
.service-detail-grid { gap: clamp(3rem, 7vw, 8rem); }
.case-hero-heading, .case-detail-hero-heading { grid-area: heading; align-self: end; min-width: 0; }
.case-hero-summary, .case-detail-hero-summary { grid-area: summary; align-self: start; min-width: 0; }
.case-hero-visual, .case-file-visual { grid-area: visual; }
.case-hero h1, .case-detail-hero h1, .service-detail-hero h1 { max-width: 760px; margin: 18px 0 var(--space-4); font: 400 var(--text-4xl)/.98 var(--serif); letter-spacing: -.045em; overflow-wrap: normal; hyphens: none; }
.case-hero h1 > span, .case-hero h1 > em, .case-detail-hero h1 > span, .case-detail-hero h1 > em { display: block; }
.case-hero h1 em, .case-detail-hero h1 em, .service-detail-hero h1 em { color: var(--brand); font-weight: 400; }
.case-hero-lead { max-width: 680px; margin: 0 0 var(--space-5); color: var(--ink-muted); font-size: var(--text-lg); }
.case-hero-actions { display: flex; align-items: center; gap: var(--space-5); }
.case-badge { display: inline-flex; align-items: center; gap: 10px; color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.case-badge span { width: 28px; height: 1px; background: currentColor; }

.case-hero-visual { position: relative; width: min(420px, 100%); height: 480px; justify-self: end; }
.case-sheet { position: absolute; width: 74%; height: 82%; border: 1px solid rgba(122,29,35,.22); background: var(--paper-light); box-shadow: 0 28px 80px rgba(48,39,39,.12); }
.case-sheet-back { inset: 3% auto auto 2%; transform: rotate(-6deg); opacity: .52; }
.case-sheet-mid { inset: 7% auto auto 13%; transform: rotate(3deg); opacity: .78; }
.case-sheet-front { inset: 12% 2% auto auto; display: flex; flex-direction: column; justify-content: flex-end; padding: 42px; background: linear-gradient(155deg, #fffdfa, #f2ece4); }
.case-sheet-front img { position: absolute; top: 35px; left: 38px; width: 46px; }
.case-sheet-front > span { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.case-sheet-front strong { margin: 6px 0 0; font: 400 6rem/.8 var(--serif); color: var(--ink); }
.case-sheet-front small { margin: 12px 0 26px; color: var(--ink-faint); letter-spacing: .08em; text-transform: uppercase; }
.case-sheet-front i { height: 1px; margin-top: 16px; background: rgba(122,29,35,.2); }
.js .case-hero-visual.is-visible .case-sheet-back { animation: case-sheet-arrive .8s .1s both cubic-bezier(.2,.75,.25,1); }
.js .case-hero-visual.is-visible .case-sheet-mid { animation: case-sheet-arrive .8s .2s both cubic-bezier(.2,.75,.25,1); }
.js .case-hero-visual.is-visible .case-sheet-front { animation: case-sheet-arrive .8s .3s both cubic-bezier(.2,.75,.25,1); }
@keyframes case-sheet-arrive { from { opacity: 0; translate: 0 34px; rotate: -2deg; } }

.case-directory { background: var(--paper-light); }
.case-filters { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: var(--space-6); }
.case-filters button { min-height: 44px; padding: 10px 16px; border: 1px solid var(--line-dark); background: transparent; color: var(--ink-muted); cursor: pointer; transition: background .25s, color .25s, border-color .25s, transform .25s; }
.case-filters button:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); }
.case-filters button.is-active { border-color: var(--brand); background: var(--brand); color: var(--white); }
.case-filter-select { display: none; }
.case-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.case-card { min-height: 390px; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: var(--paper-light); transition: opacity .25s, transform .35s, box-shadow .35s, background .35s; }
.case-card[hidden] { display: none; }
.case-card > a { position: relative; height: 100%; display: flex; flex-direction: column; padding: 34px; color: inherit; text-decoration: none; overflow: hidden; }
.case-card > a::before { content: ""; position: absolute; inset: 0; background: linear-gradient(125deg, transparent 22%, rgba(255,255,255,.75) 50%, transparent 78%); opacity: 0; transform: translateX(-35%); transition: opacity .4s, transform .6s; }
.case-card:hover { z-index: 2; background: var(--surface-warm); transform: translateY(-8px); box-shadow: 0 28px 70px rgba(48,39,39,.13); }
.case-card:hover > a::before { opacity: 1; transform: translateX(35%); }
.case-card-top { position: relative; display: flex; justify-content: space-between; gap: 12px; color: var(--brand); font-size: var(--text-2xs); letter-spacing: .1em; text-transform: uppercase; }
.case-card-top span { font: 400 var(--text-xl) var(--serif); }
.case-card h3 { position: relative; margin: auto 0 18px; font: 400 var(--text-2xl)/1.1 var(--serif); overflow-wrap: normal; hyphens: none; }
/* Keep editorial card titles intact; move whole words to the next line. */
.case-card h3.has-long-word { -webkit-hyphens: none; hyphens: none; overflow-wrap: normal; }
.case-card h3 em { display: block; color: var(--brand); font-weight: 400; }
.case-card p { position: relative; margin: 0 0 var(--space-5); color: var(--ink-muted); font-size: var(--text-sm); }
.case-card-link { position: relative; display: flex; justify-content: space-between; padding-top: 14px; border-top: 1px solid var(--line-dark); color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.case-card-link i { font-style: normal; transition: transform .25s; }
.case-card:hover .case-card-link i { transform: translate(4px,-4px); }
.case-more-wrap { display: flex; justify-content: center; margin-top: var(--space-5); }
.case-more-wrap[hidden] { display: none; }
.case-more-button { min-width: min(100%, 360px); border-color: var(--brand); background: transparent; color: var(--brand); }
.case-more-button:hover { background: var(--brand); color: var(--white); }
.case-more-button i { font-style: normal; transition: transform .25s; }
.case-more-button:hover i { transform: translateY(3px); }
.case-fiction-note { max-width: 820px; margin: var(--space-5) 0 0; color: var(--ink-faint); font-size: var(--text-xs); }

.case-products { background: var(--surface-sand); }
.case-products-grid { display: grid; grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr); gap: clamp(3rem, 6vw, 6rem); align-items: start; }
.case-products h2 { margin: 12px 0 var(--space-4); font: 400 clamp(2.3rem, 1.9rem + 1.8vw, 3.35rem)/1.08 var(--serif); }
.case-products-grid > div:first-child > p { color: var(--ink-muted); }
.product-mini-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.product-mini-grid article { min-height: 220px; padding: var(--space-5); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: rgba(255,255,255,.38); }
.product-mini-grid article > span { color: var(--brand); font-size: var(--text-2xs); letter-spacing: .12em; }
.product-mini-grid strong { display: block; margin: var(--space-4) 0 10px; font: 400 var(--text-xl) var(--serif); }
.product-mini-grid p { margin: 0; color: var(--ink-muted); font-size: var(--text-sm); }

.case-discretion { overflow: hidden; border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: linear-gradient(118deg, var(--paper-light) 0 68%, var(--surface-warm) 68% 100%); }
.case-discretion-head { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(400px, .75fr); gap: clamp(2.5rem, 4vw, 4rem); align-items: center; margin-bottom: var(--space-7); }
.case-discretion h2 { max-width: none; margin: 12px 0 0; font: 400 var(--text-3xl)/1.05 var(--serif); letter-spacing: var(--track-tight); }
.case-discretion-title { white-space: nowrap; }
.case-discretion h2 em { color: var(--brand); font-weight: 400; }
.case-discretion-intro { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: var(--space-4); align-items: start; }
.case-discretion-intro svg { width: 68px; color: var(--brand); }
.case-discretion-intro svg * { fill: none; stroke: currentColor; stroke-width: 1.5; }
.case-discretion-intro p { margin: 0; color: var(--ink-muted); }
.case-discretion-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); background: var(--paper-light); box-shadow: 0 28px 75px rgba(48,39,39,.08); }
.case-discretion-grid article { min-width: 0; min-height: 300px; display: flex; flex-direction: column; padding: var(--space-5); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); transition: transform .3s, background .3s, box-shadow .3s; }
.case-discretion-grid article:first-child { border-color: rgba(255,255,255,.16); background: var(--brand-deep); color: var(--white); }
.case-discretion-grid article:hover { z-index: 1; transform: translateY(-7px); background: var(--surface-warm); box-shadow: 0 24px 65px rgba(48,39,39,.12); }
.case-discretion-grid article:first-child:hover { background: var(--brand); }
.case-discretion-grid article > span { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .15em; }
.case-discretion-grid article:first-child > span { color: var(--on-dark-muted); }
.case-discretion-grid h3 { margin: auto 0 14px; font: 400 var(--text-xl)/1.2 var(--serif); overflow-wrap: break-word; hyphens: auto; }
.case-discretion-grid p { margin: 0; color: var(--ink-muted); font-size: var(--text-sm); }
.case-discretion-grid article:first-child p { color: var(--on-dark-muted); }
.case-discretion-note { display: flex; align-items: center; gap: 14px; margin: var(--space-5) 0 0; color: var(--brand); font: italic 400 var(--text-lg) var(--serif); }
.case-discretion-note span { flex: 0 0 auto; width: 26px; height: 1px; background: currentColor; }

.case-cta { background: var(--brand-deep); color: var(--white); }
.case-cta-inner { display: grid; grid-template-columns: 1fr auto; gap: var(--space-7); align-items: center; }
.case-cta h2 { max-width: 780px; margin: 12px 0 10px; font: 400 var(--text-3xl)/1.08 var(--serif); overflow-wrap: normal; hyphens: none; text-wrap: balance; }
.case-cta p { max-width: 700px; margin: 0; color: var(--on-dark-muted); }
.button-light { border-color: var(--white); background: var(--white); color: var(--brand-deep); text-decoration: none; white-space: nowrap; }

.case-file-visual { position: relative; width: min(420px, 100%); height: 500px; justify-self: end; }
.case-file-paper { position: absolute; inset: 25px 18px 0 0; padding: 58px 50px; border: 1px solid rgba(122,29,35,.22); background: var(--paper-light); box-shadow: var(--shadow); }
.case-file-paper img { margin-bottom: 45px; }
.case-file-paper small { display: block; color: var(--brand); font-size: var(--text-2xs); letter-spacing: var(--track-caps); text-transform: uppercase; }
.case-file-paper strong { display: block; margin: 10px 0 34px; font: 400 var(--text-2xl)/1.08 var(--serif); }
.case-file-paper ol { margin: 0; padding: 0; list-style: none; }
.case-file-paper li { position: relative; height: 34px; border-top: 1px solid var(--line-dark); }
.case-file-paper li::before { content: "0" counter(list-item); position: absolute; top: 8px; color: var(--brand); font-size: .65rem; }
.case-file-paper li span { position: absolute; top: 13px; left: 34px; right: 0; height: 4px; background: linear-gradient(90deg, rgba(48,39,39,.16) 72%, transparent 72%); }
.case-file-tab { position: absolute; z-index: 2; top: 0; right: 0; padding: 10px 17px; background: var(--brand); color: var(--white); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.case-file-stamp { position: absolute; z-index: 2; right: -18px; bottom: 35px; padding: 22px 18px; border: 1px solid var(--brand); background: var(--paper); color: var(--brand); font: italic 400 var(--text-lg) var(--serif); rotate: -7deg; }
.js .case-file-visual.is-visible .case-file-stamp { animation: case-stamp .55s .65s both cubic-bezier(.2,.8,.3,1.3); }
@keyframes case-stamp { from { opacity: 0; scale: 1.45; rotate: 8deg; } }

.case-narrative, .service-intro { background: var(--paper-light); }
.narrative-grid { display: grid; grid-template-columns: 180px minmax(0, 820px); gap: clamp(2rem, 7vw, 7rem); justify-content: center; }
.narrative-index { display: grid; align-content: start; gap: 8px; color: var(--brand); }
.narrative-index span { font: 400 var(--text-3xl) var(--serif); }
.narrative-index strong { font-size: var(--text-2xs); letter-spacing: var(--track-caps); text-transform: uppercase; }
.narrative-index i { width: 1px; height: 130px; margin: 18px 0 0 15px; background: linear-gradient(var(--brand), transparent); }
.narrative-copy h2, .material-grid h2, .output-grid h2, .conclusion-grid h2 { margin: 0 0 var(--space-5); font: 400 var(--text-3xl)/1.08 var(--serif); }
.narrative-copy h2 em, .material-grid h2 em, .output-grid h2 em, .conclusion-grid h2 em { color: var(--brand); font-weight: 400; }
.narrative-copy > p, .material-grid > div:first-child > p, .conclusion-grid > div > p { color: var(--ink-muted); font-size: var(--text-lg); }
.case-insight { margin-top: var(--space-6); padding: var(--space-5); border-left: 2px solid var(--brand); background: var(--surface-warm); }
.case-insight strong { color: var(--brand); font-size: var(--text-xs); letter-spacing: .1em; text-transform: uppercase; }
.case-insight p { margin: 12px 0 0; color: var(--ink-muted); }

.material-grid, .output-grid, .conclusion-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.case-rich-list { padding: var(--space-6); border: 1px solid var(--line-dark); background: var(--paper-light); box-shadow: 0 24px 65px rgba(48,39,39,.08); }
.case-rich-list ul { margin: 0; padding: 0; list-style: none; }
.case-rich-list li { position: relative; padding: 15px 0 15px 38px; border-bottom: 1px solid var(--line-dark); color: var(--ink-muted); }
.case-rich-list li:last-child { border-bottom: 0; }
.case-rich-list li::before { content: ""; position: absolute; top: 22px; left: 3px; width: 14px; height: 14px; border: 1px solid var(--brand); transform: rotate(45deg); }

.case-method { background: var(--brand-deep); color: var(--white); overflow: hidden; }
.case-method h2, .case-method h3, .case-method h2 em, .case-method h3 em { color: var(--on-dark); }
.case-method .section-heading h2 em, .case-method .split-heading h2 em { color: var(--on-dark); }
.case-method .split-heading > p { color: var(--on-dark-muted); }
.case-method-line { position: relative; height: 1px; margin: var(--space-6) 0 0; background: rgba(255,255,255,.2); }
.case-method-line span { position: absolute; inset: 0 auto 0 0; width: 0; background: var(--white); transition: width 1.4s cubic-bezier(.2,.75,.25,1); }
.case-method-line.is-visible span { width: 100%; }
.case-result-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.case-result-grid article { min-height: 260px; padding: var(--space-5); border-right: 1px solid rgba(255,255,255,.18); }
.case-result-grid article:last-child { border-right: 0; }
.case-result-grid article > span { color: var(--on-dark-soft); font-size: var(--text-2xs); letter-spacing: .15em; }
.case-result-grid h3 { margin: 80px 0 12px; font: 400 var(--text-xl) var(--serif); }
.case-result-grid p { margin: 0; color: var(--on-dark-muted); font-size: var(--text-sm); }

.case-output { background: var(--surface-sand); }
.output-note { padding: var(--space-6); background: var(--brand); color: var(--white); box-shadow: var(--shadow); }
.output-note h2, .output-note h3, .output-note em { color: var(--on-dark); }
.output-note > span { font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.output-note p { margin: var(--space-5) 0; color: rgba(255,255,255,.84); }
.output-note a { color: var(--white); font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.case-conclusion { background: var(--paper-light); }
.case-conclusion blockquote { margin: 0; padding: var(--space-6); border: 1px solid var(--line-dark); background: var(--surface-warm); }
.case-conclusion blockquote span { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.case-conclusion blockquote p { margin: var(--space-4) 0 0; font: 400 var(--text-xl)/1.5 var(--serif); }

.case-boundary { background: var(--ink-deep); color: var(--white); }
.case-boundary h2, .case-boundary h3, .case-boundary em,
.case-cta h2, .case-cta h3, .case-cta em { color: var(--on-dark); }
.boundary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-7); align-items: end; }
.boundary-grid h2 { margin: 12px 0 0; font: 400 var(--text-3xl)/1.08 var(--serif); }
.boundary-grid h2 em { color: var(--on-dark); font-weight: 400; }
.boundary-grid > p { margin: 0; color: var(--on-dark-muted); }
.case-partner-copy > p { margin: 0; color: var(--on-dark-muted); font-size: var(--text-md); line-height: 1.75; }
.scope-details { margin-top: var(--space-4); border-top: 1px solid rgba(255,255,255,.24); border-bottom: 1px solid rgba(255,255,255,.24); }
.scope-details summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 54px; padding: 12px 0; color: var(--on-dark); cursor: pointer; list-style: none; font-size: var(--text-xs); font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.scope-details summary::-webkit-details-marker { display: none; }
.scope-details summary span { color: var(--gold-light); font: 300 1.4rem/1 var(--sans); transition: transform .25s ease; }
.scope-details[open] summary span { transform: rotate(45deg); }
.scope-details > p { margin: 0; padding: 0 0 var(--space-4); color: var(--on-dark-muted); font-size: var(--text-sm); line-height: 1.7; }
.boundary-mark { display: inline-grid; place-items: center; width: 48px; height: 48px; margin-bottom: var(--space-4); border: 1px solid rgba(255,255,255,.5); color: var(--on-dark); font: 300 2rem var(--serif); }

.related-cases { background: var(--paper); }
.related-case-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.related-case-grid a { min-height: 240px; display: flex; flex-direction: column; padding: var(--space-5); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); color: inherit; text-decoration: none; transition: transform .3s, background .3s, box-shadow .3s; }
.related-case-grid a:hover { z-index: 2; background: var(--paper-light); transform: translateY(-6px); box-shadow: 0 24px 60px rgba(48,39,39,.1); }
.related-case-grid small { color: var(--brand); letter-spacing: .1em; text-transform: uppercase; }
.related-case-grid strong { margin: auto 0 var(--space-4); font: 400 var(--text-xl)/1.25 var(--serif); }
.related-case-grid span { color: var(--brand); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.service-index-visual { position: relative; width: min(420px,100%); min-height: 460px; display: grid; grid-template-columns: repeat(2,1fr); align-content: end; padding: 45px; border: 1px solid var(--line-dark); background: var(--paper-light); box-shadow: var(--shadow); }
.service-index-visual span { display: grid; place-items: center; height: 76px; border: 1px solid var(--line-dark); color: var(--brand); font: 400 var(--text-xl) var(--serif); }
.service-index-visual strong { grid-column: 1 / -1; margin: 42px 0 12px; font: 400 var(--text-2xl) var(--serif); }
.service-index-visual i { grid-column: 1 / -1; height: 1px; margin-top: 16px; background: var(--line-dark); }
.service-modules { background: var(--paper-light); }
.service-module-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.service-module-grid article { min-height: 310px; padding: var(--space-5); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); transition: transform .3s, background .3s, box-shadow .3s; }
.service-module-grid article:hover { z-index: 1; background: var(--surface-warm); transform: translateY(-6px); box-shadow: 0 24px 60px rgba(48,39,39,.09); }
.service-module-grid article > span { color: var(--brand); font-size: var(--text-2xs); letter-spacing: .15em; }
.service-module-grid h3 { margin: 100px 0 12px; font: 400 var(--text-xl) var(--serif); }
.service-module-grid p { margin: 0; color: var(--ink-muted); font-size: var(--text-sm); }

.home-cases { background: var(--surface-warm); }
.home-case-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.home-case-grid a { min-height: 330px; display: flex; flex-direction: column; padding: var(--space-5); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); color: inherit; text-decoration: none; transition: transform .3s, background .3s, box-shadow .3s; }
.home-case-grid a:hover { z-index: 2; background: var(--paper-light); transform: translateY(-7px); box-shadow: 0 25px 65px rgba(48,39,39,.1); }
.home-case-grid small { color: var(--brand); font-size: var(--text-2xs); letter-spacing: .1em; text-transform: uppercase; }
.home-case-grid strong { margin: auto 0 14px; font: 400 var(--text-xl)/1.22 var(--serif); }
.home-case-grid strong em { display: block; color: var(--brand); font-weight: 400; }
.home-case-grid p { color: var(--ink-muted); font-size: var(--text-sm); }
.home-case-grid a > span { padding-top: 12px; border-top: 1px solid var(--line-dark); color: var(--brand); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

@media (max-width: 1050px) {
    .case-card-grid, .service-module-grid { grid-template-columns: repeat(2, 1fr); }
    .case-discretion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .case-hero-grid, .case-detail-hero-grid { column-gap: 3rem; row-gap: 0; }
    .service-detail-grid { gap: 3rem; }
    .main-nav { gap: 24px; }
    .case-discretion-head { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); align-items: start; }
    .case-discretion-title { white-space: normal; }
}

@media (min-width: 821px) {
    .case-detail-hero h1.has-long-word { max-width: none; font-size: clamp(3.35rem, 4.45vw, 4.15rem); line-height: 1; letter-spacing: -.04em; }
    .seo-hero h1.has-long-word, .guide-detail-hero h1.has-long-word, .service-detail-hero h1.has-long-word { font-size: clamp(3.35rem, 4.45vw, 4.15rem); line-height: 1; letter-spacing: -.04em; }
}

@media (min-width: 821px) and (max-width: 1050px) {
    .case-detail-hero-grid { grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); }
    .case-detail-hero h1.has-long-word { font-size: clamp(3rem, 5.1vw, 3.35rem); }
    .seo-hero h1.has-long-word, .guide-detail-hero h1.has-long-word, .service-detail-hero h1.has-long-word { font-size: clamp(3rem, 5.1vw, 3.35rem); }
}

@media (max-width: 820px) {
    .case-hero, .case-detail-hero, .service-detail-hero { padding-top: 7rem; background: linear-gradient(180deg, var(--paper) 0 72%, var(--surface-sand) 72%); }
    .case-hero-grid, .case-detail-hero-grid, .service-detail-grid, .case-products-grid, .material-grid, .output-grid, .conclusion-grid, .boundary-grid { grid-template-columns: minmax(0, 1fr); }
    .case-hero-grid, .case-detail-hero-grid { grid-template-areas: "heading" "summary" "visual"; row-gap: 0; }
    .case-hero-grid, .case-detail-hero-grid, .service-detail-grid { min-height: 0; }
    .case-hero-visual, .case-file-visual, .service-index-visual { justify-self: center; margin-top: var(--space-4); }
    .case-file-stamp { right: 0; }
    .split-heading { grid-template-columns: 1fr; gap: var(--space-4); align-items: start; }
    .case-card-grid, .product-mini-grid, .case-result-grid, .related-case-grid, .service-module-grid, .home-case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .case-card-grid > *, .product-mini-grid > *, .case-result-grid > *, .related-case-grid > *, .service-module-grid > *, .home-case-grid > * { min-width: 0; }
    .case-result-grid article:nth-child(2) { border-right: 0; }
    .case-result-grid article { border-bottom: 1px solid rgba(255,255,255,.18); }
    .narrative-grid { grid-template-columns: 90px 1fr; gap: var(--space-5); }
    .case-cta-inner { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
    .case-discretion-head { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); align-items: start; }
    .case-discretion-title { white-space: normal; }
    .case-card p, .product-mini-grid p, .case-discretion-grid p, .case-result-grid p, .service-module-grid p, .home-case-grid p { font-size: 1rem; line-height: 1.65; }
}

@media (max-width: 560px) {
    .case-hero-grid > *, .case-detail-hero-grid > *, .service-detail-grid > * { min-width: 0; }
    .case-hero, .case-detail-hero, .service-detail-hero { padding-top: 6.5rem; }
    .case-hero h1, .case-detail-hero h1, .service-detail-hero h1 { font-size: clamp(2.5rem, 11vw, 3.15rem); line-height: 1.04; overflow-wrap: break-word; hyphens: auto; }
    .case-detail-hero h1 { font-size: clamp(2.4rem, 10.5vw, 3rem); line-height: 1.03; }
    .case-hero-lead { font-size: 1.0625rem; line-height: 1.68; }
    .case-hero-actions { align-items: stretch; flex-direction: column; }
    .case-hero-copy > .button, .case-hero-actions .button { max-width: 100%; text-align: center; white-space: normal; }
    .case-hero-visual, .case-file-visual { height: clamp(350px, 105vw, 390px); }
    .case-sheet-front { padding: 28px; }
    .case-sheet-front strong { font-size: 4.6rem; }
    .case-file-paper { padding: 38px 28px; }
    .case-file-stamp { right: 0; }
    .section-heading, .case-directory .section-heading { margin-bottom: 32px; }
    .split-heading { gap: 20px; }
    .split-heading > p, .split-heading > div:last-child > p { font-size: 1rem; line-height: 1.68; }
    .case-card-grid, .product-mini-grid, .case-result-grid, .related-case-grid, .service-module-grid, .home-case-grid { grid-template-columns: minmax(0, 1fr); }
    .case-cta-inner > *, .case-card-grid > *, .product-mini-grid > *, .related-case-grid > *, .service-module-grid > *, .home-case-grid > * { min-width: 0; }
    .case-card { min-height: 0; }
    .case-card:hover, .home-case-grid a:hover, .related-case-grid a:hover, .service-module-grid article:hover { transform: none; }
    .narrative-grid { grid-template-columns: 1fr; }
    .narrative-index { grid-template-columns: auto 1fr; align-items: center; }
    .narrative-index i { display: none; }
    .case-rich-list, .output-note { padding: 26px 22px; }
    .case-rich-list li { padding-block: 14px; font-size: 1rem; line-height: 1.65; }
    .case-result-grid article { min-height: 0; padding: 26px 22px; border-right: 0; }
    .case-result-grid h3 { margin: 34px 0 10px; }
    .case-result-grid p { font-size: 1rem; line-height: 1.65; }
    .case-filters { display: none; }
    .case-filter-select { position: static; z-index: auto; display: grid; gap: 10px; margin: 0 0 24px; padding: 15px 14px 14px; border: 1px solid var(--line-dark); background: var(--paper-light); box-shadow: none; color: var(--brand); font-size: var(--text-2xs); font-weight: 700; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; -webkit-backdrop-filter: none; backdrop-filter: none; }
    .case-filter-select select { width: 100%; min-height: 48px; padding: 0 42px 0 14px; border: 1px solid var(--line-dark); border-radius: 0; background: var(--paper-light); color: var(--ink); font-size: 1rem; letter-spacing: normal; text-transform: none; }
    .case-card > a { min-height: 0; padding: 25px 22px; }
    .case-card-top small { max-width: 68%; text-align: right; }
    .case-card h3 { margin: 34px 0 16px; font-size: clamp(1.65rem, 8.2vw, 2rem); line-height: 1.13; }
    .case-card p { margin-bottom: 22px; font-size: 1rem; line-height: 1.65; }
    .case-card-link { min-height: 44px; align-items: center; }
    .js .case-card[data-reveal] { transform: translateY(8px) scale(.995); }
    .js .case-card[data-reveal].is-visible { transform: none; }
    .case-more-wrap { margin-top: 20px; }
    .case-more-button { width: 100%; min-width: 0; white-space: normal; }
    .case-fiction-note { font-size: .875rem; line-height: 1.6; }
    .product-mini-grid article, .related-case-grid a, .service-module-grid article, .home-case-grid a { min-height: 0; padding: 26px 22px; }
    .product-mini-grid strong, .service-module-grid h3 { margin: 30px 0 10px; }
    .related-case-grid strong, .home-case-grid strong { margin: 32px 0 14px; }
    .product-mini-grid p, .related-case-grid strong, .service-module-grid p, .home-case-grid p { overflow-wrap: break-word; hyphens: auto; }
    .case-discretion { background: var(--paper-light); }
    .case-discretion-head { gap: 28px; margin-bottom: 38px; }
    .case-discretion-intro { grid-template-columns: 52px minmax(0, 1fr); gap: 18px; }
    .case-discretion-intro svg { width: 52px; }
    .case-discretion-intro p { font-size: 1rem; line-height: 1.68; }
    .case-discretion-grid { grid-template-columns: minmax(0, 1fr); }
    .case-discretion-grid article { min-height: 0; padding: 26px 22px; }
    .case-discretion-grid h3 { margin: 34px 0 12px; }
    .case-discretion-grid p { font-size: 1rem; line-height: 1.65; }
    .case-discretion-note { align-items: flex-start; font-size: 1.0625rem; line-height: 1.55; }
    .case-discretion-grid article:hover { transform: none; }
    .case-cta-inner { gap: 28px; }
    .case-cta h2 { font-size: clamp(2.25rem, 10vw, 2.7rem); line-height: 1.08; }
    .case-cta p, .boundary-grid > p, .case-partner-copy > p, .output-note p { font-size: 1rem; line-height: 1.68; }
    .boundary-grid { gap: 32px; }
    .boundary-grid h2 { font-size: clamp(2.25rem, 10vw, 2.7rem); line-height: 1.08; }
    .js [data-reveal] { transition-duration: .42s; }
    .js [data-stagger="1"] { --reveal-delay: 35ms; }
    .js [data-stagger="2"] { --reveal-delay: 70ms; }
    .js [data-stagger="3"] { --reveal-delay: 105ms; }
    .js [data-stagger="4"] { --reveal-delay: 140ms; }
}

/* Gemeinsames mobiles System für Fallübersicht und sämtliche Musterfälle */
@media (max-width: 560px) {
    .case-hero, .case-detail-hero {
        padding-top: 6.15rem;
        padding-bottom: 3.5rem;
        background: linear-gradient(155deg, var(--paper) 0 82%, var(--surface-sand) 82% 100%);
    }
    .case-hero-grid, .case-detail-hero-grid {
        grid-template-areas: "heading" "summary" "visual";
        grid-template-columns: minmax(0, 1fr);
        row-gap: 0;
    }
    .case-hero-heading, .case-detail-hero-heading,
    .case-hero-summary, .case-detail-hero-summary { min-width: 0; }
    .case-hero .breadcrumbs, .case-detail-hero .breadcrumbs {
        gap: 7px;
        margin-bottom: 20px;
        font-size: .6875rem;
        line-height: 1.5;
    }
    .case-detail-hero .breadcrumbs > span:nth-last-child(-n + 2) { display: none; }
    .case-hero-heading > .section-index { margin: 0; line-height: 1.55; }
    .case-hero h1, .case-detail-hero h1 {
        margin: 14px 0 22px;
        font-size: clamp(2.25rem, 10vw, 2.75rem);
        line-height: 1.04;
        letter-spacing: -.038em;
        text-wrap: balance;
        word-break: normal;
        overflow-wrap: normal;
        -webkit-hyphens: none;
        hyphens: none;
    }
    .case-hero h1.is-long-title, .case-detail-hero h1.is-long-title {
        font-size: clamp(2.125rem, 9.2vw, 2.45rem);
        line-height: 1.06;
    }
    .case-hero h1.has-long-word, .case-detail-hero h1.has-long-word {
        -webkit-hyphens: none;
        hyphens: none;
        overflow-wrap: normal;
    }
    .case-detail-hero h1.has-long-word > span { font-size: .86em; line-height: 1.08; letter-spacing: -.045em; }
    .case-hero-lead {
        margin: 0 0 20px;
        font-size: 1rem;
        line-height: 1.64;
    }
    .case-hero-summary > .button, .case-detail-hero-summary .button {
        width: 100%;
        max-width: none;
        min-height: 56px;
        text-align: center;
        white-space: normal;
    }
    .case-hero-actions { gap: 20px; }
    .case-hero-actions .text-link { min-height: 44px; justify-content: center; }

    .case-hero-visual {
        width: min(330px, 88%);
        height: 150px;
        margin-top: 22px;
        justify-self: center;
    }
    .case-sheet { width: 72%; height: 88%; box-shadow: 0 18px 48px rgba(48,39,39,.11); }
    .case-sheet-back { inset: 0 auto auto 4%; }
    .case-sheet-mid { inset: 5% auto auto 15%; }
    .case-sheet-front { inset: 9% 1% auto auto; padding: 17px 22px; }
    .case-sheet-front img { top: 15px; left: 20px; width: 25px; height: auto; }
    .case-sheet-front > span { position: absolute; top: 21px; left: 58px; font-size: .625rem; }
    .case-sheet-front strong { margin-top: 2px; font-size: 3.25rem; line-height: .86; }
    .case-sheet-front small { margin: 5px 0 0; font-size: .58rem; }
    .case-sheet-front i { display: none; }

    .case-file-visual {
        width: min(350px, 94%);
        height: 190px;
        margin-top: 28px;
        justify-self: center;
    }
    .case-file-paper { inset: 12px 10px 0 0; padding: 25px 27px; box-shadow: 0 18px 48px rgba(48,39,39,.11); }
    .case-file-paper img { width: 28px; height: auto; margin-bottom: 13px; }
    .case-file-paper small { font-size: .625rem; }
    .case-file-paper strong { margin: 5px 0 10px; font-size: 1.4rem; line-height: 1.05; }
    .case-file-paper li { height: 20px; }
    .case-file-paper li::before { top: 4px; font-size: .55rem; }
    .case-file-paper li span { top: 8px; left: 28px; }
    .case-file-tab { max-width: 72%; padding: 8px 11px; font-size: .57rem; line-height: 1.35; text-align: right; }
    .case-file-stamp { right: 0; bottom: 16px; padding: 11px 13px; font-size: .95rem; }

    .case-directory .section-heading, .case-products-grid > div:first-child,
    .case-discretion-head, .case-detail .section-heading { min-width: 0; }
    .case-directory .section-heading h2, .case-products h2, .case-discretion h2,
    .narrative-copy h2, .material-grid h2, .output-grid h2, .conclusion-grid h2,
    .case-method .split-heading h2, .related-cases .section-heading h2 {
        font-size: clamp(2.05rem, 9.1vw, 2.55rem);
        line-height: 1.08;
        text-wrap: balance;
        word-break: normal;
        overflow-wrap: normal;
        -webkit-hyphens: auto;
        hyphens: auto;
        hyphenate-limit-chars: 14 6 5;
    }
    .case-directory .section-heading { gap: 18px; margin-bottom: 26px; }
    .case-directory .section-heading > p { margin: 0; }
    .case-filter-select { margin-bottom: 20px; }

    .case-card > a { padding: 21px 20px; }
    .case-card-top { align-items: start; }
    .case-card-top span { font-size: 1.35rem; }
    .case-card-top small { line-height: 1.45; }
    .case-card h3 {
        margin: 23px 0 13px;
        font-size: clamp(1.62rem, 7.4vw, 1.9rem);
        line-height: 1.12;
        text-wrap: balance;
        word-break: normal;
        overflow-wrap: normal;
        -webkit-hyphens: none;
        hyphens: none;
    }
    /* Keep editorial card titles intact; move whole words to the next line. */
    .case-card h3.has-long-word {
        -webkit-hyphens: none;
        hyphens: none;
        overflow-wrap: normal;
    }
    .case-card p {
        display: -webkit-box;
        margin-bottom: 17px;
        overflow: hidden;
        font-size: .9375rem;
        line-height: 1.58;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }
    .case-card-link { min-height: 42px; padding-top: 11px; }
    .case-more-wrap { margin-top: 18px; }
    .case-more-button[aria-expanded="true"] i { transform: none; }
    .case-fiction-note { margin-top: 25px; }

    .case-products-grid { gap: 31px; }
    .case-products h2 { margin-bottom: 18px; }
    .case-products-grid > div:first-child > p { margin-bottom: 18px; }
    .product-mini-grid article { padding: 21px 19px; }
    .product-mini-grid strong { margin: 17px 0 8px; font-size: 1.35rem; line-height: 1.15; }
    .product-mini-grid p {
        display: -webkit-box;
        overflow: hidden;
        font-size: .9375rem;
        line-height: 1.55;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .case-discretion { background: var(--paper-light); }
    .case-discretion-head { gap: 22px; margin-bottom: 28px; }
    .case-discretion-title { white-space: normal; }
    .case-discretion-intro { grid-template-columns: 42px minmax(0, 1fr); gap: 14px; }
    .case-discretion-intro svg { width: 42px; }
    .case-discretion-intro p { font-size: .9375rem; line-height: 1.62; }
    .case-discretion-grid article { min-height: 0; padding: 21px 20px; }
    .case-discretion-grid article:first-child { display: flex; color: var(--on-dark); }
    .case-discretion-grid article:not(:first-child) {
        display: grid;
        grid-template-columns: 32px minmax(0, 1fr);
        column-gap: 10px;
        align-items: start;
    }
    .case-discretion-grid article:not(:first-child) > span { grid-column: 1; grid-row: 1 / span 2; padding-top: 5px; }
    .case-discretion-grid article:not(:first-child) h3,
    .case-discretion-grid article:not(:first-child) p { grid-column: 2; }
    .case-discretion-grid h3 { margin: 0 0 7px; font-size: 1.45rem; line-height: 1.16; }
    .case-discretion-grid article:first-child h3 { margin: 18px 0 9px; color: var(--on-dark); }
    .case-discretion-grid p { font-size: .9375rem; line-height: 1.58; }
    .case-discretion-grid article:first-child p { color: var(--on-dark-muted); }
    .case-discretion-note { gap: 12px; margin-top: 23px; font-size: 1rem; }

    .case-detail .narrative-grid { gap: 23px; }
    .case-detail .narrative-index { grid-template-columns: auto auto 1fr; gap: 10px; }
    .case-detail .narrative-index span { font-size: 1.55rem; }
    .case-detail .narrative-index i { display: block; width: auto; height: 1px; margin: 0; background: linear-gradient(90deg, var(--brand), transparent); }
    .narrative-copy h2, .material-grid h2, .output-grid h2, .conclusion-grid h2 { margin-bottom: 20px; }
    .narrative-copy > p, .material-grid > div:first-child > p, .conclusion-grid > div > p {
        font-size: 1rem;
        line-height: 1.68;
    }
    .case-insight { margin-top: 30px; padding: 21px 20px; }
    .case-insight p { line-height: 1.65; }
    .material-grid, .output-grid, .conclusion-grid { gap: 28px; }
    .case-rich-list, .output-note { padding: 22px 20px; }
    .case-rich-list li { padding: 12px 0 12px 33px; font-size: .9375rem; line-height: 1.55; }
    .case-rich-list li::before { top: 18px; width: 12px; height: 12px; }
    .case-method .split-heading { gap: 20px; }
    .case-method .split-heading > p { margin: 0; color: var(--on-dark-muted); }
    .case-method-line { margin-top: 28px; }
    .case-result-grid article {
        display: grid;
        grid-template-columns: 33px minmax(0, 1fr);
        gap: 5px 10px;
        padding: 20px;
        border-right: 0;
    }
    .case-result-grid article > span { grid-row: 1 / span 2; padding-top: 4px; }
    .case-result-grid h3 { margin: 0; font-size: 1.4rem; line-height: 1.15; }
    .case-result-grid p { font-size: .9375rem; line-height: 1.56; }
    .output-note p { margin: 18px 0; }
    .case-conclusion blockquote { padding: 23px 20px; }
    .case-conclusion blockquote p { font-size: 1.25rem; line-height: 1.45; }
    .boundary-grid { gap: 25px; }
    .boundary-grid h2, .case-cta h2 {
        color: var(--on-dark);
        font-size: clamp(2.05rem, 9.1vw, 2.55rem);
        line-height: 1.08;
        text-wrap: balance;
        hyphenate-limit-chars: 14 6 5;
    }
    .case-cta h2.has-long-word { font-size: clamp(1.8rem, 8vw, 2.2rem); overflow-wrap: normal; hyphens: none; }
    .boundary-grid > p, .case-cta p, .output-note p { color: var(--on-dark-muted); }
    .related-case-grid a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px 15px; padding: 20px; }
    .related-case-grid small { grid-column: 1 / -1; font-size: .6875rem; }
    .related-case-grid strong { grid-column: 1 / -1; margin: 10px 0 5px; font-size: 1.3rem; line-height: 1.28; }
    .related-case-grid span { grid-column: 1 / -1; padding-top: 10px; border-top: 1px solid var(--line-dark); }
    .case-cta-inner { gap: 23px; }
    .case-cta .button-light { width: 100%; min-height: 56px; white-space: normal; }
}

@media (max-width: 380px) {
    .case-discretion-intro { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; }
    .case-discretion-intro svg { width: 44px; }
    .case-card-top { gap: 8px; }
    .case-card-top small { max-width: 64%; }
}

@media (min-width: 390px) and (max-width: 560px) {
    .product-mini-grid, .case-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .product-mini-grid article { padding: 19px 17px; }
    .product-mini-grid strong { font-size: 1.22rem; }
    .product-mini-grid p { font-size: .875rem; line-height: 1.5; }
    .case-result-grid article { display: block; padding: 20px 18px; }
    .case-result-grid h3 { margin: 24px 0 8px; }
    .case-result-grid article:nth-child(2) { border-right: 0; }
}

@media (hover: none), (pointer: coarse) {
    .button:hover, .price-card-link:hover, .service-card:hover, .data-trust-card:hover,
    .case-card:hover, .case-discretion-grid article:hover, .home-case-grid a:hover,
    .related-case-grid a:hover, .service-module-grid article:hover, .security-visual:hover .lock-card { transform: none; }
    .hero-visual:hover img, .editorial-diptych:hover img, .expertise-image:hover img,
    .boundaries-image:hover img, .process-image:hover img { transform: none; }
}

/* SEO-Leistungsseiten, Ratgeber und Arbeitsweise */
.seo-page { overflow: clip; }
.seo-hero { padding-top: clamp(8.5rem, 10vw, 10.5rem); background: linear-gradient(122deg, var(--paper-light) 0 68%, var(--surface-sand) 68% 100%); border-bottom: 1px solid var(--line-dark); }
.seo-hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); gap: clamp(3rem, 7vw, 7.5rem); align-items: center; min-height: 570px; }
.seo-hero h1, .guide-detail-hero h1 { max-width: 790px; margin: 18px 0 var(--space-5); font: 400 var(--text-4xl)/.99 var(--serif); letter-spacing: -.045em; }
.seo-hero h1 > span, .seo-hero h1 > em, .guide-detail-hero h1 > span, .guide-detail-hero h1 > em { display: block; }
.seo-hero h1 em, .guide-detail-hero h1 em { color: var(--brand); font-weight: 400; }
.seo-hero-lead { max-width: 690px; margin: 0 0 var(--space-5); color: var(--ink-muted); font-size: var(--text-lg); line-height: 1.72; }
.seo-hero-actions { display: flex; align-items: center; gap: var(--space-5); }

.seo-order-visual { position: relative; width: min(430px, 100%); height: 480px; justify-self: end; }
.seo-paper { position: absolute; width: 76%; height: 80%; border: 1px solid var(--line-dark); background: var(--paper-light); box-shadow: 0 28px 70px rgba(48,39,39,.1); }
.seo-paper-back { top: 1%; left: 1%; transform: rotate(-5deg); opacity: .45; }
.seo-paper-mid { top: 7%; left: 12%; transform: rotate(2.5deg); opacity: .72; }
.seo-paper-front { right: 0; bottom: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 42px; }
.seo-paper-front img { position: absolute; top: 34px; left: 38px; }
.seo-paper-front > span { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: var(--track-caps); text-transform: uppercase; }
.seo-paper-front strong { margin: 7px 0 20px; color: var(--ink); font: 400 6rem/.8 var(--serif); }
.seo-paper-front i { height: 1px; margin-top: 15px; background: var(--line-dark); }
.seo-paper-front small { margin-top: 22px; color: var(--ink-faint); font-size: var(--text-2xs); letter-spacing: .09em; text-transform: uppercase; }
.js .seo-order-visual.is-visible .seo-paper-back { animation: case-sheet-arrive .8s .08s both cubic-bezier(.2,.75,.25,1); }
.js .seo-order-visual.is-visible .seo-paper-mid { animation: case-sheet-arrive .8s .17s both cubic-bezier(.2,.75,.25,1); }
.js .seo-order-visual.is-visible .seo-paper-front { animation: case-sheet-arrive .8s .26s both cubic-bezier(.2,.75,.25,1); }

.seo-section-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: end; margin-bottom: var(--space-7); }
.seo-section-head h2, .seo-boundary-grid h2, .seo-faq h2, .guide-next h2, .method-responsibility h2 { margin: 12px 0 0; font: 400 var(--text-3xl)/1.08 var(--serif); letter-spacing: var(--track-tight); }
.seo-section-head h2 em, .seo-boundary-grid h2 em, .seo-faq h2 em, .guide-next h2 em { color: var(--brand); font-weight: 400; }
.seo-section-head > p { margin: 0 0 4px; color: var(--ink-muted); line-height: 1.78; }
.seo-problems { background: var(--paper-light); }
.seo-deliverables, .seo-related-guides { background: var(--paper); border-top: 1px solid var(--line-dark); }
.seo-card-grid { display: grid; border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.seo-card-grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.seo-card-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.seo-card-grid-six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.seo-card-grid article { min-width: 0; min-height: 285px; padding: var(--space-5); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: rgba(255,255,255,.34); transition: transform .3s, background .3s, box-shadow .3s; }
.seo-card-grid article:hover { z-index: 2; background: var(--white); transform: translateY(-6px); box-shadow: 0 24px 60px rgba(48,39,39,.1); }
.seo-card-grid article > span { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .12em; }
.seo-card-grid h3 { margin: var(--space-7) 0 var(--space-3); font: 400 var(--text-xl)/1.18 var(--serif); }
.seo-card-grid p { margin: 0; color: var(--ink-muted); font-size: var(--text-sm); line-height: 1.72; }
.seo-inline-link { margin-top: var(--space-5); }

.seo-process { background: var(--brand-deep); color: var(--on-dark); }
.seo-section-head-light h2 { color: var(--on-dark); }
.seo-section-head-light > p { color: var(--on-dark-muted); }
.seo-process-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.22); border-left: 1px solid rgba(255,255,255,.22); list-style: none; }
.seo-process-list li { min-width: 0; min-height: 310px; display: flex; flex-direction: column; padding: var(--space-5); border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); }
.seo-process-list li > span { color: rgba(255,255,255,.66); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .12em; }
.seo-process-list li > div { margin-top: auto; }
.seo-process-list h3 { margin: 0 0 var(--space-3); color: var(--on-dark); font: 400 var(--text-xl)/1.2 var(--serif); }
.seo-process-list p { margin: 0; color: var(--on-dark-muted); font-size: var(--text-sm); line-height: 1.72; }

.seo-boundary { background: var(--surface-sand); border-block: 1px solid var(--line-dark); }
.seo-boundary-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.seo-boundary-grid > p, .seo-boundary-grid > div:last-child > p { margin: 0; padding: var(--space-5); border-left: 2px solid var(--brand); background: rgba(255,255,255,.42); color: var(--ink-muted); line-height: 1.78; }

.guide-mini-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.guide-mini-grid > a { min-width: 0; min-height: 350px; display: flex; flex-direction: column; padding: var(--space-5); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: var(--paper-light); text-decoration: none; transition: transform .3s, background .3s, box-shadow .3s; }
.guide-mini-grid > a:hover { z-index: 2; background: var(--white); transform: translateY(-6px); box-shadow: 0 24px 60px rgba(48,39,39,.1); }
.guide-mini-grid > a > span { color: var(--brand); font: 400 var(--text-xl) var(--serif); }
.guide-mini-grid h3 { margin: var(--space-6) 0 var(--space-3); font: 400 var(--text-xl)/1.18 var(--serif); }
.guide-mini-grid h3 em { display: block; color: var(--brand); font-weight: 400; }
.guide-mini-grid p { margin: 0 0 var(--space-5); color: var(--ink-muted); font-size: var(--text-sm); line-height: 1.7; }
.guide-mini-grid strong { margin-top: auto; padding-top: var(--space-3); border-top: 1px solid var(--line-dark); color: var(--brand); font-size: var(--text-2xs); letter-spacing: .09em; text-transform: uppercase; }

.seo-faq { background: var(--paper-light); }
.seo-faq-grid { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr); gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.seo-faq-list { border-top: 1px solid var(--line-dark); }
.seo-faq-list details { border-bottom: 1px solid var(--line-dark); }
.seo-faq-list summary { min-height: 78px; display: grid; grid-template-columns: 1fr 30px; align-items: center; gap: 20px; padding: 16px 0; color: var(--ink); font: 400 var(--text-lg)/1.35 var(--serif); cursor: pointer; list-style: none; }
.seo-faq-list summary::-webkit-details-marker { display: none; }
.seo-faq-list summary span { width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line-dark); color: var(--brand); transition: transform .25s, background .25s, color .25s; }
.seo-faq-list details[open] summary span { background: var(--brand); color: var(--white); transform: rotate(45deg); }
.seo-faq-list details p { margin: 0; padding: 0 54px var(--space-5) 0; color: var(--ink-muted); line-height: 1.75; }

.guide-index-visual { position: relative; width: min(410px, 100%); min-height: 450px; justify-self: end; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(36px, 5vw, 55px); border: 1px solid var(--line-dark); background: var(--paper-light); box-shadow: var(--shadow); }
.guide-index-visual img { position: absolute; top: clamp(36px, 5vw, 55px); left: clamp(36px, 5vw, 55px); }
.guide-index-visual small { color: var(--brand); font-size: var(--text-2xs); letter-spacing: .12em; text-transform: uppercase; }
.guide-index-visual strong { margin: 8px 0 var(--space-5); font: 400 var(--text-2xl) var(--serif); }
.guide-index-visual ol { margin: 0; padding: 0; border-top: 1px solid var(--line-dark); list-style: none; counter-reset: guide-index; }
.guide-index-visual li { min-height: 54px; display: flex; align-items: center; gap: 15px; border-bottom: 1px solid var(--line-dark); color: var(--ink-muted); }
.guide-index-visual li::before { counter-increment: guide-index; content: "0" counter(guide-index); color: var(--brand); font-size: var(--text-2xs); letter-spacing: .1em; }
.guide-directory { background: var(--paper-light); }
.guide-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.guide-card-grid article { min-width: 0; min-height: 430px; border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: var(--paper-light); transition: transform .35s, background .35s, box-shadow .35s; }
.guide-card-grid article:hover { z-index: 2; background: var(--surface-warm); transform: translateY(-7px); box-shadow: 0 28px 68px rgba(48,39,39,.12); }
.guide-card-grid a { height: 100%; display: flex; flex-direction: column; padding: var(--space-5); text-decoration: none; }
.guide-card-grid a > div { display: flex; justify-content: space-between; gap: 15px; color: var(--brand); }
.guide-card-grid a > div span { font: 400 var(--text-xl) var(--serif); }
.guide-card-grid a > div small { max-width: 65%; font-size: var(--text-2xs); letter-spacing: .09em; text-align: right; text-transform: uppercase; }
.guide-card-grid h3 { margin: auto 0 var(--space-3); font: 400 var(--text-2xl)/1.1 var(--serif); }
.guide-card-grid h3 em { display: block; color: var(--brand); font-weight: 400; }
.guide-card-grid p { margin: 0 0 var(--space-5); color: var(--ink-muted); font-size: var(--text-sm); line-height: 1.7; }
.guide-card-grid a > strong { display: flex; justify-content: space-between; padding-top: var(--space-3); border-top: 1px solid var(--line-dark); color: var(--brand); font-size: var(--text-2xs); letter-spacing: .09em; text-transform: uppercase; }
.guide-card-grid a > strong i { font-style: normal; transition: transform .25s; }
.guide-card-grid article:hover i { transform: translate(4px,-4px); }
.guide-service-bridge { background: var(--surface-sand); border-top: 1px solid var(--line-dark); }
.guide-bridge-links { display: flex; flex-direction: column; align-items: flex-start; gap: 13px; margin-top: var(--space-5); }

.guide-detail-hero { padding-top: clamp(9rem, 11vw, 11rem); background: linear-gradient(122deg, var(--paper-light), var(--paper)); border-bottom: 1px solid var(--line-dark); }
.guide-detail-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: clamp(3rem, 7vw, 7rem); align-items: end; min-height: 580px; }
.guide-byline { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--line-dark); color: var(--ink-faint); font-size: var(--text-2xs); letter-spacing: .05em; }
.guide-byline span:first-child { color: var(--brand); font-weight: 700; }
.guide-toc { position: sticky; top: 120px; display: flex; flex-direction: column; padding: var(--space-5); border: 1px solid var(--line-dark); background: var(--paper-light); box-shadow: 0 18px 55px rgba(48,39,39,.08); }
.guide-toc > span { margin-bottom: var(--space-3); color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.guide-toc a { padding: 12px 0; border-top: 1px solid var(--line-dark); color: var(--ink-muted); font-size: var(--text-sm); line-height: 1.45; text-decoration: none; }
.guide-toc a:hover { color: var(--brand); }
.guide-intro, .guide-example { background: var(--paper-light); }
.guide-copy-grid { display: grid; grid-template-columns: 180px minmax(0, 760px); gap: clamp(2rem, 6vw, 6rem); justify-content: center; }
.guide-copy-grid > aside { display: flex; flex-direction: column; color: var(--brand); }
.guide-copy-grid > aside span { font: 400 var(--text-2xl) var(--serif); }
.guide-copy-grid > aside strong { margin-top: 8px; font-size: var(--text-2xs); letter-spacing: .11em; text-transform: uppercase; }
.guide-copy-grid h2, .guide-sections h2 { margin: 0 0 var(--space-4); font: 400 var(--text-2xl)/1.14 var(--serif); }
.guide-copy-grid > div > p { margin: 0; color: var(--ink-muted); font-size: var(--text-lg); line-height: 1.8; }
.guide-article-body { background: var(--paper); }
.guide-sections { display: grid; gap: var(--space-8); }
.guide-sections > section { scroll-margin-top: 120px; }
.guide-rich { color: var(--ink-muted); line-height: 1.82; }
.guide-rich p { margin: 0 0 var(--space-4); }
.guide-rich ul { margin: var(--space-4) 0; padding: 0; border-top: 1px solid var(--line-dark); list-style: none; }
.guide-rich li { position: relative; padding: 13px 0 13px 30px; border-bottom: 1px solid var(--line-dark); }
.guide-rich li::before { content: ""; position: absolute; left: 2px; top: 21px; width: 12px; height: 1px; background: var(--brand); }
.guide-checklist { scroll-margin-top: 100px; background: var(--brand-deep); color: var(--on-dark); }
.guide-checklist-grid { display: grid; grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr); gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.guide-checklist h2 { margin: 14px 0 0; color: var(--on-dark); font: 400 var(--text-3xl)/1.08 var(--serif); }
.guide-checklist-card { padding: var(--space-5); border: 1px solid rgba(255,255,255,.24); background: rgba(255,255,255,.06); }
.guide-checklist-card ul { margin: 0; padding: 0; list-style: none; }
.guide-checklist-card li { position: relative; padding: 14px 0 14px 34px; border-bottom: 1px solid rgba(255,255,255,.2); color: var(--on-dark-muted); }
.guide-checklist-card li:last-child { border-bottom: 0; }
.guide-checklist-card li::before { content: "✓"; position: absolute; left: 0; color: var(--on-dark); }
.guide-next { background: var(--paper-light); }
.guide-next-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.guide-next-grid > div:last-child > p { margin: 0 0 var(--space-4); color: var(--ink-muted); }
.guide-next-grid .text-link { margin: 8px 24px 8px 0; }

.method-seal { width: min(420px, 100%); min-height: 430px; justify-self: end; display: grid; place-content: center; gap: 0; padding: var(--space-6); border: 1px solid var(--line-dark); background: var(--paper-light); box-shadow: var(--shadow); }
.method-seal img { width: 50px; margin: 0 auto var(--space-5); }
.method-seal span { min-width: 245px; padding: 12px 0; border-top: 1px solid var(--line-dark); color: var(--ink-muted); font: 400 var(--text-lg) var(--serif); text-align: center; }
.method-seal span:last-child { border-bottom: 1px solid var(--line-dark); }
.method-responsibility { background: var(--paper-light); }
.method-responsibility-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(3rem, 7vw, 7rem); align-items: stretch; }
.method-responsibility-grid > div:first-child { align-self: center; }
.method-responsibility-grid > div:first-child > p { color: var(--ink-muted); line-height: 1.78; }
.method-responsibility-grid > div:first-child > strong { display: block; margin-top: var(--space-5); color: var(--brand); font: 400 var(--text-xl) var(--serif); }
.method-responsibility-grid > div:first-child > span { color: var(--ink-faint); font-size: var(--text-2xs); letter-spacing: .09em; text-transform: uppercase; }
.method-security-card { padding: clamp(2.5rem, 5vw, 4.5rem); background: var(--brand-deep); color: var(--on-dark); }
.method-security-card > span { color: var(--on-dark-muted); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.method-security-card h2 { color: var(--on-dark); }
.method-security-card p { color: var(--on-dark-muted); line-height: 1.78; }
.method-security-card a { display: inline-block; margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid rgba(255,255,255,.25); color: var(--on-dark); font-size: var(--text-xs); letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }

.home-pathways { background: var(--surface-sand); border-block: 1px solid var(--line-dark); }
.home-pathways .seo-section-head h2 em { color: var(--brand); font-weight: 400; }
.home-pathway-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); border-left: 1px solid var(--line-dark); }
.home-pathway-grid a { min-width: 0; min-height: 330px; display: flex; flex-direction: column; padding: var(--space-5); border-right: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); background: rgba(255,255,255,.4); text-decoration: none; transition: background .3s, transform .3s, box-shadow .3s; }
.home-pathway-grid a:hover { z-index: 2; background: var(--paper-light); transform: translateY(-6px); box-shadow: 0 24px 60px rgba(48,39,39,.1); }
.home-pathway-grid a > span { color: var(--brand); font-size: var(--text-2xs); font-weight: 700; letter-spacing: .12em; }
.home-pathway-grid h3 { margin: var(--space-7) 0 var(--space-3); font: 400 var(--text-xl)/1.18 var(--serif); }
.home-pathway-grid p { margin: 0 0 var(--space-5); color: var(--ink-muted); font-size: var(--text-sm); line-height: 1.7; }
.home-pathway-grid strong { margin-top: auto; padding-top: var(--space-3); border-top: 1px solid var(--line-dark); color: var(--brand); font-size: var(--text-2xs); letter-spacing: .09em; text-transform: uppercase; }
.output-note-links, .case-product-links { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.output-note-links a + a, .case-product-links a + a { margin-top: 0; }
.footer-main { grid-template-columns: minmax(260px, 1.55fr) repeat(3, minmax(150px, 1fr)); gap: clamp(2rem, 4vw, 4rem); }

@media (max-width: 1050px) {
    .main-nav { gap: 24px; }
    .main-nav a { font-size: .73rem; }
    .seo-card-grid-four, .seo-process-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-main { grid-template-columns: 1.4fr repeat(3, 1fr); gap: 24px; }
}

@media (max-width: 820px) {
    body.page-seo_service, body.page-guide_hub, body.page-guide_detail, body.page-work_method { overflow-x: clip; }
    .seo-hero-grid, .guide-detail-hero-grid { grid-template-columns: minmax(0, 1fr); min-height: 0; }
    .seo-hero-grid { gap: var(--space-6); }
    .seo-order-visual, .guide-index-visual, .method-seal { justify-self: center; }
    .seo-section-head, .seo-boundary-grid, .seo-faq-grid, .guide-copy-grid, .guide-checklist-grid, .guide-next-grid, .method-responsibility-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
    .seo-card-grid-three, .seo-card-grid-six, .guide-mini-grid, .guide-card-grid, .home-pathway-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .guide-detail-hero-grid { gap: var(--space-6); }
    .guide-toc { position: static; top: auto; }
    .guide-copy-grid { justify-content: stretch; }
    .guide-copy-grid > aside { flex-direction: row; align-items: center; gap: 14px; }
    .guide-copy-grid > aside strong { margin: 0; }
    .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .footer-about { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
    .seo-hero, .guide-detail-hero { padding-top: 6.2rem; padding-bottom: 3.7rem; }
    .seo-hero { background: linear-gradient(155deg, var(--paper-light) 0 86%, var(--surface-sand) 86% 100%); }
    .seo-hero h1, .guide-detail-hero h1 { margin: 14px 0 20px; font-size: clamp(2.25rem, 10vw, 2.75rem); line-height: 1.04; letter-spacing: -.038em; text-wrap: balance; overflow-wrap: normal; hyphens: none; }
    .seo-hero h1.is-long-title, .guide-detail-hero h1.is-long-title { font-size: clamp(2.05rem, 9vw, 2.42rem); }
    .seo-hero h1.has-long-word, .guide-detail-hero h1.has-long-word { overflow-wrap: normal; hyphens: none; }
    .service-detail-hero h1.is-long-title { font-size: clamp(2.05rem, 9vw, 2.42rem); line-height: 1.06; }
    .service-detail-hero h1.has-long-word { overflow-wrap: normal; hyphens: none; }
    .service-detail-hero h1.has-long-word > span { font-size: .86em; line-height: 1.08; letter-spacing: -.045em; }
    .seo-hero-lead { margin-bottom: 22px; font-size: 1rem; line-height: 1.65; }
    .seo-hero-actions { align-items: stretch; flex-direction: column; gap: 17px; }
    .seo-order-visual { width: min(330px, 92%); height: 190px; margin-top: 10px; }
    .seo-paper { height: 88%; box-shadow: 0 18px 45px rgba(48,39,39,.1); }
    .seo-paper-front { padding: 18px 22px; }
    .seo-paper-front img { top: 16px; left: 20px; width: 25px; height: auto; }
    .seo-paper-front > span { font-size: .58rem; }
    .seo-paper-front strong { margin: 4px 0 7px; font-size: 3.2rem; }
    .seo-paper-front i { margin-top: 8px; }
    .seo-paper-front small { margin-top: 9px; font-size: .55rem; }
    .seo-section-head { gap: 20px; margin-bottom: 30px; }
    .seo-section-head h2, .seo-boundary-grid h2, .seo-faq h2, .guide-next h2, .method-responsibility h2, .guide-checklist h2 { font-size: clamp(2.05rem, 9vw, 2.5rem); line-height: 1.08; text-wrap: balance; }
    .seo-section-head > p, .seo-boundary-grid > p, .seo-boundary-grid > div:last-child > p { font-size: 1rem; line-height: 1.67; }
    .seo-card-grid-three, .seo-card-grid-four, .seo-card-grid-six, .seo-process-list, .guide-mini-grid, .guide-card-grid, .home-pathway-grid { grid-template-columns: minmax(0, 1fr); }
    .seo-card-grid article { min-height: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 7px 10px; padding: 22px 20px; }
    .seo-card-grid article > span { grid-row: 1 / span 2; padding-top: 5px; }
    .seo-card-grid h3 { margin: 0; font-size: 1.45rem; }
    .seo-card-grid p { font-size: .9375rem; line-height: 1.6; }
    .seo-card-grid article:hover, .guide-mini-grid > a:hover, .guide-card-grid article:hover, .home-pathway-grid a:hover { transform: none; }
    .seo-process-list li { min-height: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); padding: 22px 20px; }
    .seo-process-list li > div { margin: 0; }
    .seo-process-list h3 { margin-bottom: 8px; font-size: 1.4rem; }
    .seo-process-list p { font-size: .9375rem; line-height: 1.6; }
    .seo-boundary-grid { gap: 22px; }
    .seo-boundary-grid > p, .seo-boundary-grid > div:last-child > p { padding: 20px; }
    .guide-mini-grid > a { min-height: 0; padding: 22px 20px; }
    .guide-mini-grid h3 { margin: 25px 0 10px; }
    .guide-index-visual, .method-seal { width: min(330px, 94%); min-height: 330px; padding: 28px 24px; }
    .guide-index-visual img { position: static; margin-bottom: 24px; }
    .guide-card-grid article { min-height: 0; }
    .guide-card-grid a { padding: 22px 20px; }
    .guide-card-grid h3 { margin: 30px 0 13px; font-size: 1.75rem; }
    .guide-card-grid p { font-size: .9375rem; line-height: 1.6; }
    .guide-detail-hero-grid { align-items: start; }
    .guide-byline { flex-direction: column; gap: 5px; font-size: .75rem; line-height: 1.5; }
    .guide-toc { padding: 20px; }
    .guide-toc a { min-height: 44px; display: flex; align-items: center; font-size: .9375rem; }
    .guide-copy-grid { gap: 22px; }
    .guide-copy-grid > aside span { font-size: 1.6rem; }
    .guide-copy-grid h2, .guide-sections h2 { font-size: 1.8rem; line-height: 1.15; }
    .guide-copy-grid > div > p, .guide-rich { font-size: 1rem; line-height: 1.72; }
    .guide-sections { gap: 46px; }
    .guide-rich li { padding-block: 12px; }
    .guide-checklist-grid { gap: 26px; }
    .guide-checklist-card { padding: 20px; }
    .guide-checklist-card li { font-size: .9375rem; line-height: 1.58; }
    .guide-next-grid .text-link { width: 100%; justify-content: flex-start; margin: 6px 0; }
    .method-seal span { min-width: 220px; }
    .method-responsibility-grid { gap: 30px; }
    .method-security-card { padding: 28px 22px; }
    .home-pathway-grid a { min-height: 0; padding: 22px 20px; }
    .home-pathway-grid h3 { margin: 26px 0 10px; }
    .seo-faq-list summary { min-height: 70px; font-size: 1.2rem; }
    .seo-faq-list details p { padding-right: 0; font-size: .9375rem; line-height: 1.62; }
    .footer-main { grid-template-columns: minmax(0, 1fr); }
    .footer-about { grid-column: auto; }
}

@media (hover: none), (pointer: coarse) {
    .seo-card-grid article:hover, .guide-mini-grid > a:hover, .guide-card-grid article:hover, .home-pathway-grid a:hover { transform: none; }
}
