/* ==========================================================================
   Due-Diligence.ro - stiluri
   Identitate proprie, tip „dosar / registru”: petrol închis, hârtie caldă,
   titluri serif (Newsreader) cu cuvântul-cheie în italic arămiu, un singur
   accent (arămiu), etichete și numere mono, poze în duoton.
   ========================================================================== */

/* ── Fonturi (găzduite local, latin + latin-ext pentru diacritice) ─────── */
@font-face {
    font-family: 'Newsreader';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/newsreader-latin-ext-opsz-normal.woff2') format('woff2-variations');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Newsreader';
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/newsreader-latin-opsz-normal.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Newsreader';
    font-style: italic;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/newsreader-latin-ext-opsz-italic.woff2') format('woff2-variations');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Newsreader';
    font-style: italic;
    font-weight: 200 800;
    font-display: swap;
    src: url('../fonts/newsreader-latin-opsz-italic.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Sans';
    font-style: normal;
    font-weight: 100 700;
    font-display: swap;
    src: url('../fonts/ibm-plex-sans-latin-ext-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'IBM Plex Sans';
    font-style: normal;
    font-weight: 100 700;
    font-display: swap;
    src: url('../fonts/ibm-plex-sans-latin-wght-normal.woff2') format('woff2-variations');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/ibm-plex-mono-latin-ext-400-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/ibm-plex-mono-latin-ext-500-normal.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Tokens ────────────────────────────────────────────────────────────── */
:root {
    --ink: #0f1b1d;             /* petrol închis: secțiunile închise, titlurile pe fundal deschis */
    --ink-deep: #0a1315;        /* footer */
    --duo: #1f464c;             /* nuanța pozelor (duoton) */
    --paper: #f3f0e8;           /* hârtie caldă: secțiunile „light” */
    --paper-deep: #e8e3d6;
    --white: #fcfbf8;           /* secțiunile „white” */
    --accent: #a85530;          /* arămiu: singurul accent, pe fundal deschis */
    --accent-light: #dd9770;    /* arămiu pe fundal închis */
    --text: #2c3537;
    --muted: #5f6a6c;
    --on-dark: rgba(243, 240, 232, 0.76);
    --line: rgba(15, 27, 29, 0.16);
    --line-dark: rgba(243, 240, 232, 0.16);
    --mark: 14px;               /* reperele de colț: lungimea unui braț */
    --mark-gap: 9px;            /* reperele de colț: distanța față de cadru */
    /* Granulația hârtiei: zgomot SVG în culoarea --ink (#0f1b1d), doar punctele mai dense, la opacitate foarte mică */
    --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.059 0 0 0 0 0.106 0 0 0 0 0.114 3 0 0 0 -1.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.09'/%3E%3C/svg%3E");

    --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
    --sans: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;
    --mono: 'IBM Plex Mono', ui-monospace, 'Courier New', monospace;

    --gutter: clamp(18px, 4vw, 32px);
    --container: min(1180px, 100vw - 2 * var(--gutter));
    --header-h: 78px;
    --section-y: clamp(4rem, 9vw, 7rem);
    --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* ── Bază ──────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: var(--header-h);
}

body {
    margin: 0;
    background: var(--white);
    color: var(--text);
    font-family: var(--sans);
    font-size: 1.0625rem;
    font-weight: 400;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.nav-open { overflow: hidden; }

img { display: block; max-width: 100%; height: auto; }

a { color: inherit; }

h1, h2, h3 { margin: 0; font-weight: 400; }

p { margin: 0 0 1.2em; }
p:last-child { margin-bottom: 0; }

strong { font-weight: 600; color: var(--ink); }

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

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

.container {
    width: min(1180px, 100% - 2 * var(--gutter));
    margin-inline: auto;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.skip-link {
    position: absolute;
    top: -100px;
    left: 16px;
    z-index: 100;
    padding: 0.6em 1em;
    background: var(--paper);
    color: var(--ink);
    font-weight: 600;
}
.skip-link:focus { top: 16px; }

/* Cuvântul accentuat din titluri: [text] în config devine <em> (italic, arămiu) */
h1 em, h2 em, .statement__text em {
    font-style: italic;
    color: var(--accent);
}

/* Poze în duoton: luminozitatea pozei peste nuanța petrol */
.duo { background: var(--duo); }
.duo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(1) contrast(1.08);
    mix-blend-mode: luminosity;
}

/* Repere de colț, ca pe un document tehnic: patru colțuri în L, în arămiu, puțin în afara cadrului.
   Același motiv pe cadrele cu poze (duoton), pe locul fotografiei fondatorului, pe caseta de contact,
   pe formular și pe fișa din îndemnul final (acolo în --ink, ca să se vadă pe arămiu). Cadrele nu taie conținutul (overflow vizibil), ca reperele să rămână vizibile. */
.text-block__figure,
.text-block__media,
.expertise__frame,
.founder-intro__photo,
.contact-card,
.cta__file,
.form { position: relative; }
.text-block__figure::after,
.text-block__media::after,
.expertise__frame::after,
.founder-intro__photo::after,
.contact-card::after,
.cta__file::after,
.form::after {
    --mark-color: var(--accent);
    content: '';
    position: absolute;
    inset: calc(-1 * var(--mark-gap));
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(var(--mark-color), var(--mark-color)) left top / var(--mark) 1px,
        linear-gradient(var(--mark-color), var(--mark-color)) left top / 1px var(--mark),
        linear-gradient(var(--mark-color), var(--mark-color)) right top / var(--mark) 1px,
        linear-gradient(var(--mark-color), var(--mark-color)) right top / 1px var(--mark),
        linear-gradient(var(--mark-color), var(--mark-color)) left bottom / var(--mark) 1px,
        linear-gradient(var(--mark-color), var(--mark-color)) left bottom / 1px var(--mark),
        linear-gradient(var(--mark-color), var(--mark-color)) right bottom / var(--mark) 1px,
        linear-gradient(var(--mark-color), var(--mark-color)) right bottom / 1px var(--mark);
    background-repeat: no-repeat;
}
.section--dark :is(.text-block__figure, .text-block__media)::after { --mark-color: var(--accent-light); }
.cta__file::after { --mark-color: var(--ink); }

/* Loc marcat pentru conținut lipsă (doar local) */
.placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4em 0.8em;
    border: 1px dashed var(--accent);
    color: var(--accent);
    font-family: var(--mono);
    font-size: 0.78rem;
}

/* ── Tipografie comună ─────────────────────────────────────────────────── */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.8em;
    margin: 0 0 1.3rem;
    color: var(--accent);
    font-family: var(--mono);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}
.eyebrow::before {
    content: '';
    width: 7px;
    height: 7px;
    background: currentColor;
}

.section-title {
    margin-bottom: 1.4rem;
    color: var(--ink);
    font-family: var(--serif);
    font-size: clamp(2rem, 3.6vw, 3.1rem);
    letter-spacing: -0.015em;
    line-height: 1.12;
    text-wrap: balance;
}

.lead {
    color: var(--ink);
    font-family: var(--serif);
    font-size: clamp(1.25rem, 1.9vw, 1.5rem);
    line-height: 1.5;
}

/* Fraza scoasă în evidență: highlight (config) și paragrafele scrise integral cu **bold** */
.highlight,
.pull {
    margin: 2.2rem 0;
    padding-left: 1.4rem;
    border-left: 2px solid var(--accent);
    color: var(--ink);
    font-family: var(--serif);
    font-size: clamp(1.3rem, 2vw, 1.6rem);
    font-style: italic;
    line-height: 1.4;
}
.pull strong { color: inherit; font-weight: inherit; }
.highlight:last-child,
.pull:last-child { margin-bottom: 0; }

/* ── Butoane ───────────────────────────────────────────────────────────── */
.btn-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
    margin-top: 2.2rem;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.7em;
    padding: 0.95em 1.5em;
    border: 1px solid var(--accent);
    border-radius: 2px;
    background: var(--accent);
    color: var(--white);
    font-family: var(--sans);
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.25s, border-color 0.25s, color 0.25s, transform 0.25s;
}
.btn::after {
    content: '\2192';
    transition: transform 0.35s var(--ease);
}
.btn:hover { background: var(--ink); border-color: var(--ink); }
.btn:hover::after { transform: translateX(4px); }
.btn:active { transform: translateY(1px); }
.btn:disabled { opacity: 0.6; cursor: wait; }

.btn--ghost {
    background: transparent;
    border-color: rgba(243, 240, 232, 0.4);
    color: var(--paper);
}
.btn--ghost::after { content: none; }
.btn--ghost:hover {
    background: transparent;
    border-color: var(--paper);
}

/* Pe fundal închis, butonul plin trece pe hârtie la hover */
.hero .btn:not(.btn--ghost):hover,
.section--dark .btn:not(.btn--ghost):hover,
.contact-card .btn:hover {
    background: var(--paper);
    border-color: var(--paper);
    color: var(--ink);
}

/* ── Header ────────────────────────────────────────────────────────────── */
.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 50;
    height: var(--header-h);
    background: linear-gradient(180deg, rgba(10, 19, 21, 0.7), rgba(10, 19, 21, 0));
    transition: background-color 0.35s, box-shadow 0.35s;
}
.site-header.is-scrolled,
body.nav-open .site-header {
    background: rgba(15, 27, 29, 0.97);
    box-shadow: 0 1px 0 var(--line-dark);
}

.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    height: 100%;
}

.logo {
    display: inline-flex;
    flex-direction: column;
    gap: 0.4rem;
    color: var(--paper);
    text-decoration: none;
}
.logo__mark {
    font-family: var(--serif);
    font-size: 1.45rem;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.01em;
}
.logo__tld {
    color: var(--accent-light);
    font-style: italic;
}
.logo__tagline {
    display: flex;
    color: rgba(243, 240, 232, 0.7);
    font-family: var(--mono);
    font-size: 0.56rem;
    font-weight: 500;
    letter-spacing: 0.14em;
    line-height: 1;
    text-transform: uppercase;
}
.logo__tagline span + span {
    margin-left: 0.7em;
    padding-left: 0.7em;
    border-left: 1px solid rgba(243, 240, 232, 0.35);
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 2.2rem;
}
.site-nav__list {
    display: flex;
    gap: 2rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.site-nav__list a {
    position: relative;
    display: block;
    padding: 0.4rem 0;
    color: var(--on-dark);
    font-size: 0.92rem;
    text-decoration: none;
    transition: color 0.25s;
}
.site-nav__list a::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: var(--accent-light);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s var(--ease);
}
.site-nav__list a:hover,
.site-nav__list a.is-active { color: var(--paper); }
.site-nav__list a:hover::after,
.site-nav__list a.is-active::after { transform: scaleX(1); }

.lang-switch {
    padding: 0.4em 0.7em;
    border: 1px solid var(--line-dark);
    border-radius: 2px;
    color: var(--on-dark);
    font-family: var(--mono);
    font-size: 0.74rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-decoration: none;
    transition: border-color 0.25s, color 0.25s;
}
.lang-switch:hover { border-color: var(--paper); color: var(--paper); }

.nav-toggle {
    display: none;
    position: relative;
    width: 44px;
    height: 44px;
    margin-right: -10px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
}
.nav-toggle__bar {
    position: absolute;
    left: 10px;
    right: 10px;
    height: 1.5px;
    background: var(--paper);
    transition: transform 0.3s var(--ease), top 0.3s var(--ease);
}
.nav-toggle__bar:first-of-type { top: 17px; }
.nav-toggle__bar:last-of-type { top: 25px; }
.nav-toggle[aria-expanded='true'] .nav-toggle__bar:first-of-type { top: 21px; transform: rotate(45deg); }
.nav-toggle[aria-expanded='true'] .nav-toggle__bar:last-of-type { top: 21px; transform: rotate(-45deg); }

@media (max-width: 1000px) {
    .nav-toggle { display: block; }

    .site-nav {
        position: fixed;
        inset: var(--header-h) 0 0;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 2.4rem;
        padding: 2.5rem var(--gutter) 3rem;
        background: var(--ink);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-12px);
        transition: opacity 0.3s, transform 0.3s var(--ease), visibility 0s 0.3s;
        overflow-y: auto;
    }
    body.nav-open .site-nav {
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: opacity 0.3s, transform 0.3s var(--ease);
    }
    .site-nav__list {
        flex-direction: column;
        gap: 1.1rem;
    }
    .site-nav__list a {
        color: var(--paper);
        font-family: var(--serif);
        font-size: 1.9rem;
        letter-spacing: -0.01em;
        line-height: 1.2;
    }
    .site-nav__list a.is-active { color: var(--accent-light); font-style: italic; }
    .site-nav__list a::after { content: none; }
}

/* ── Hero: text pe fundal plin în stânga, poza (duoton) în panoul din dreapta ─ */
.hero {
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--ink);
    color: var(--paper);
}
.hero--full { min-height: 100svh; }
.hero--inner { min-height: clamp(420px, 60svh, 580px); }

.hero__media {
    position: absolute;
    inset: 0 0 0 62%;
}
.hero__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10, 19, 21, 0.6) 0%, rgba(10, 19, 21, 0) 30%, rgba(10, 19, 21, 0) 70%, rgba(10, 19, 21, 0.45) 100%);
}
.hero__media img { animation: hero-zoom 2.6s var(--ease) both; }
/* Acasă: poza stock e încadrată pe turnul din centru, ca să nu apară clădirea cu firmă din dreapta lui */
.page-home .hero__media img { object-position: 25% 50%; }

.hero__content {
    position: relative;
    z-index: 1;
    padding-block: calc(var(--header-h) + clamp(2.5rem, 7vh, 5rem)) clamp(3.5rem, 9vh, 6rem);
}
/* Textul se oprește înaintea panoului cu poza */
.hero--media .hero__content > * { max-width: calc(12vw + var(--container) / 2 - 3rem); }
.hero__content > * { animation: rise 1s var(--ease) both; }
.hero__content > :nth-child(2) { animation-delay: 0.12s; }
.hero__content > :nth-child(3) { animation-delay: 0.24s; }
.hero__content > :nth-child(4) { animation-delay: 0.36s; }
.hero__content > :nth-child(5) { animation-delay: 0.48s; }

.hero .eyebrow { color: var(--accent-light); }

.hero__title {
    color: var(--paper);
    font-family: var(--serif);
    font-size: clamp(2.3rem, 4.5vw, 4.1rem);
    letter-spacing: -0.02em;
    line-height: 1.08;
}
.hero__title em { color: var(--accent-light); }
.hero--inner .hero__title {
    font-size: clamp(2.2rem, 4.2vw, 3.7rem);
    text-wrap: balance;
}
/* Acasă: frazele pe rânduri separate, ultima (accentuată) în arămiu */
.hero__title span { display: block; }

.hero__subtitle {
    margin: 2rem 0 0;
    padding-top: 1.4rem;
    border-top: 1px solid var(--line-dark);
    color: var(--on-dark);
    font-size: clamp(1.05rem, 1.5vw, 1.25rem);
    line-height: 1.5;
}
.hero__line {
    margin: 0.4rem 0 0;
    color: rgba(243, 240, 232, 0.6);
    font-family: var(--mono);
    font-size: 0.8rem;
    letter-spacing: 0.04em;
}

/* Acasă: bara de la bază cu cuvintele din tagline, numerotate, în zona de text.
   Textul se centrează în spațiul rămas deasupra barei, deci nu se suprapun. */
.hero--full {
    flex-direction: column;
    align-items: stretch;
}
.hero--full .hero__content {
    margin-block: auto;
    padding-bottom: clamp(2rem, 5vh, 3.5rem);
}
.hero__bar {
    position: relative;
    z-index: 1;
}
.hero__index {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    max-width: calc(12vw + var(--container) / 2 - 3rem);
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--line-dark);
    list-style: none;
    animation: rise 1s 0.6s var(--ease) both;
}
.hero__index li {
    padding: clamp(0.9rem, 2.4vh, 1.4rem) 1rem clamp(1.3rem, 4vh, 2.2rem) clamp(0.9rem, 1.4vw, 1.4rem);
    border-left: 1px solid var(--line-dark);
    color: var(--paper);
    font-family: var(--serif);
    font-size: clamp(1.25rem, 1.8vw, 1.75rem);
    letter-spacing: -0.01em;
    line-height: 1.1;
}
/* Indicatorul de scroll: pe linia din stânga a primului cuvânt coboară un segment arămiu */
.hero__index li:first-child {
    border-left: 0;
    background: linear-gradient(var(--accent-light), var(--accent-light)) 0 -100% / 1px 45% no-repeat;
    box-shadow: inset 1px 0 var(--line-dark);
    animation: scroll-cue 2.4s var(--ease) 1.6s infinite;
}
.hero__index-num {
    display: block;
    margin-bottom: 0.7rem;
    color: var(--accent-light);
    font-family: var(--mono);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.1em;
}

@keyframes hero-zoom { from { transform: scale(1.06); } to { transform: scale(1); } }
@keyframes rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes scroll-cue { from { background-position: 0 -100%; } to { background-position: 0 200%; } }

/* Sub 900px poza trece în fundal, sub text */
@media (max-width: 900px) {
    .hero__media {
        inset: 0;
        opacity: 0.32;
    }
    .hero__media::after {
        background: linear-gradient(180deg, rgba(15, 27, 29, 0.5) 0%, rgba(15, 27, 29, 0.2) 40%, var(--ink) 100%);
    }
    .hero--media .hero__content > * { max-width: none; }
    .hero--inner { min-height: clamp(380px, 56svh, 520px); }
    .page-home .hero__media img { object-position: 45% 50%; }
    .hero__index { max-width: none; }
    .hero__index li {
        padding: 0.8rem 0.4rem 1.1rem 0.75rem;
        font-size: clamp(1rem, 3.6vw, 1.25rem);
    }
    .hero__index-num {
        margin-bottom: 0.35rem;
        font-size: 0.66rem;
    }
}

/* ── Secțiuni ──────────────────────────────────────────────────────────── */
.section { padding-block: var(--section-y); }
/* Secțiunile deschise au granulație fină de hârtie (--grain); cele închise rămân plate */
.section--white { background: var(--white) var(--grain); }
.section--light { background: var(--paper) var(--grain); }
.section--dark { background: var(--ink); color: var(--on-dark); }
/* Două secțiuni deschise la rând: o linie fină între ele */
.section--light + .section--light,
.section--white + .section--white { border-top: 1px solid var(--line); }
.section--dark .section-title,
.section--dark .lead,
.section--dark strong,
.section--dark .highlight,
.section--dark .pull { color: var(--paper); }
.section--dark .eyebrow,
.section--dark h2 em { color: var(--accent-light); }
.section--dark .highlight,
.section--dark .pull { border-left-color: var(--accent-light); }

/* Corpul de text: rânduri de cel mult ~70 de caractere, primul paragraf în serif */
.text-block__body { max-width: 40rem; }
.text-block__body p { font-size: 1.125rem; }
.text-block__body > p:first-child {
    color: var(--ink);
    font-family: var(--serif);
    font-size: clamp(1.25rem, 1.9vw, 1.5rem);
    line-height: 1.5;
}
.section--dark .text-block__body > p:first-child { color: var(--paper); }
.text-block__body .highlight,
.text-block__body .pull { font-size: clamp(1.3rem, 2vw, 1.6rem); }

/* Text: titlu stânga / text dreapta */
.text-block--split .text-block__grid {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
}
.text-block--split .text-block__head {
    position: sticky;
    top: calc(var(--header-h) + 2rem);
}
/* Split cu poză sub titlu: capul coloanei devine prea înalt pentru sticky, deci rămâne pe loc */
.text-block--figure .text-block__head { position: static; }
.text-block__figure {
    margin: 2.4rem 0 0;
    aspect-ratio: 1 / 1;
}
/* Acasă: poza stock e mai mult cer, deci încadrarea coboară spre clădiri */
.page-home .text-block__figure img { object-position: 50% 85%; }

/* Text: coloană centrală */
.text-block--narrow .text-block__grid { max-width: 44rem; }
.text-block--narrow .text-block__body { max-width: none; }
.text-block--narrow .text-block__body > .lead {
    margin-bottom: 1.4em;
    font-size: clamp(1.45rem, 2.5vw, 1.95rem);
    line-height: 1.38;
    letter-spacing: -0.01em;
}

/* Text: imagine + text, centrate pe verticală */
.text-block--media .text-block__grid {
    display: grid;
    grid-template-columns: 5fr 6fr;
    grid-template-rows: 1fr auto auto 1fr;
    column-gap: clamp(2.5rem, 7vw, 7rem);
}
.text-block--media .text-block__media {
    grid-row: 1 / -1;
    margin: 0;
    aspect-ratio: 1 / 1;
}
.text-block--media .text-block__head { grid-area: 2 / 2; }
.text-block--media .text-block__body { grid-area: 3 / 2; }

@media (max-width: 860px) {
    .text-block--split .text-block__grid,
    .text-block--media .text-block__grid {
        grid-template-columns: 1fr;
        grid-template-rows: none;
    }
    .text-block--split .text-block__head { position: static; }
    .text-block__figure {
        margin-top: 1.8rem;
        aspect-ratio: 3 / 2;
    }
    .text-block--media .text-block__media {
        grid-row: auto;
        margin-bottom: 2.5rem;
        aspect-ratio: 16 / 11;
    }
    .text-block--media .text-block__head,
    .text-block--media .text-block__body { grid-area: auto; }
}

/* Numerotarea secțiunilor (decorativ), ca într-un dosar: fiecare secțiune de conținut cu titlu
   primește numărul ei deasupra titlului, de la 01 pe fiecare pagină. Nu se numără hero-ul,
   banda cu frază mare, îndemnul final și secțiunile fără titlu (introduceri, formular, semnătură). */
main { counter-reset: chapter; }
.text-block__head,
.expertise__head,
.contact-block__grid > :first-child { counter-increment: chapter; }
.text-block__head::before,
.expertise__head::before,
.contact-block__grid > :first-child::before {
    content: counter(chapter, decimal-leading-zero);
    display: block;
    width: 3rem;
    margin-bottom: 1.3rem;
    padding-top: 0.9rem;
    border-top: 1px solid var(--accent);
    color: var(--accent);
    font-family: var(--mono);
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.08em;
}
.section--dark .text-block__head::before {
    border-top-color: var(--accent-light);
    color: var(--accent-light);
}

/* ── Arii de expertiză (registru: număr, titlu, rezumat) ───────────────── */
.expertise__grid {
    display: grid;
    grid-template-columns: 4fr 8fr;
    gap: clamp(2rem, 6vw, 6rem);
    align-items: start;
}
.expertise__head {
    position: sticky;
    top: calc(var(--header-h) + 2rem);
    display: flex;
    flex-direction: column;
    max-height: calc(100svh - var(--header-h) - 4rem);
}

/* Cadrul cu poza ariei: titlul + cadrul încap în fereastră cât timp coloana e sticky */
.expertise__frame {
    position: relative;
    flex: 0 1 auto;
    min-height: 12rem;
    aspect-ratio: 4 / 5;
    isolation: isolate;
}
.expertise__frame img {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 0.5s var(--ease);
}
/* Implicit poza primului rând; la hover / focus, poza rândului activ (fără :has() rămâne prima) */
.expertise__frame img:first-child { opacity: 1; }
.expertise:has(.registry__item:is(:hover, :focus-visible)) .expertise__frame img:first-child { opacity: 0; }
.expertise:has(.registry li:nth-child(1) > .registry__item:is(:hover, :focus-visible)) .expertise__frame img:nth-child(1),
.expertise:has(.registry li:nth-child(2) > .registry__item:is(:hover, :focus-visible)) .expertise__frame img:nth-child(2),
.expertise:has(.registry li:nth-child(3) > .registry__item:is(:hover, :focus-visible)) .expertise__frame img:nth-child(3),
.expertise:has(.registry li:nth-child(4) > .registry__item:is(:hover, :focus-visible)) .expertise__frame img:nth-child(4),
.expertise:has(.registry li:nth-child(5) > .registry__item:is(:hover, :focus-visible)) .expertise__frame img:nth-child(5),
.expertise:has(.registry li:nth-child(6) > .registry__item:is(:hover, :focus-visible)) .expertise__frame img:nth-child(6) { opacity: 1; }

.registry {
    margin: 0;
    padding: 0;
    border-bottom: 1px solid var(--line);
    list-style: none;
}
.registry__item {
    display: grid;
    grid-template-columns: 3.2rem 1fr auto;
    gap: 0 1.2rem;
    align-items: start;
    padding: 1.7rem 0 1.8rem;
    border-top: 1px solid var(--line);
    text-decoration: none;
}
.registry__num {
    padding-top: 0.55rem;
    color: var(--muted);
    font-family: var(--mono);
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    transition: color 0.3s;
}
.registry__title {
    color: var(--ink);
    font-family: var(--serif);
    font-size: clamp(1.4rem, 2.1vw, 1.75rem);
    letter-spacing: -0.01em;
    line-height: 1.2;
    transition: color 0.3s;
}
.registry__summary {
    max-width: 36rem;
    margin: 0.6rem 0 0;
    color: var(--text);
    font-size: 1rem;
    line-height: 1.65;
}
.registry__more {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    padding-top: 0.5rem;
    color: var(--muted);
    font-family: var(--mono);
    font-size: 0.74rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    white-space: nowrap;
    transition: color 0.3s;
}
.registry__more::after {
    content: '\2192';
    font-size: 1rem;
    letter-spacing: 0;
    transition: transform 0.35s var(--ease);
}
/* Miniatura rândului: doar pe mobil, unde cadrul mare dispare */
.registry__thumb { display: none; }
.registry__item:hover .registry__num,
.registry__item:hover .registry__title,
.registry__item:hover .registry__more { color: var(--accent); }
.registry__item:hover .registry__more::after { transform: translateX(5px); }

@media (max-width: 860px) {
    .expertise__grid { grid-template-columns: 1fr; }
    .expertise__head {
        position: static;
        max-height: none;
    }
    .expertise__frame { display: none; }
    /* Rândul: număr, titlu și miniatură pe primul rând (centrate), rezumatul pe toată lățimea dedesubt */
    .registry__item {
        grid-template-columns: 3.2rem 1fr auto;
        align-items: center;
    }
    .registry__text { display: contents; }
    .registry__num {
        grid-row: 1;
        padding-top: 0;
    }
    .registry__title {
        grid-column: 2;
        grid-row: 1;
    }
    .registry__summary {
        grid-column: 2 / -1;
        grid-row: 2;
    }
    .registry__more {
        grid-column: 2;
        grid-row: 3;
        justify-self: start;
        margin-top: 0.8rem;
    }
    .registry__thumb {
        display: block;
        grid-column: 3;
        grid-row: 1;
        width: 3.5rem;
        aspect-ratio: 1;
        overflow: hidden;
        isolation: isolate;
    }
}
@media (max-width: 620px) {
    .registry__item {
        grid-template-columns: 2.4rem 1fr auto;
        padding: 1.4rem 0 1.5rem;
    }
}

/* ── Bandă cu frază mare ───────────────────────────────────────────────── */
.statement {
    position: relative;
    overflow: hidden;
    padding-block: clamp(4.5rem, 9vw, 7.5rem);
    background: var(--ink);
    color: var(--paper);
}
/* Desktop: poza ocupă dreapta benzii (de la ~56% din container până la margine) și se topește spre stânga */
.statement__media {
    position: absolute;
    inset: 0 0 0 calc((100% - var(--container)) / 2 + var(--container) * 0.56);
}
.statement__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--ink) 0%, rgba(15, 27, 29, 0.75) 22%, rgba(15, 27, 29, 0.2) 60%, rgba(15, 27, 29, 0) 100%);
}
.statement .container { position: relative; }
.statement__text {
    max-width: min(22em, var(--container) * 0.56 - 3rem);
    margin: 0;
    font-family: var(--serif);
    font-size: clamp(1.7rem, 3.3vw, 2.9rem);
    letter-spacing: -0.015em;
    line-height: 1.2;
    text-wrap: balance;
}
.statement__text em { color: var(--accent-light); }

/* Mobil: poza revine ca fundal discret, sub text */
@media (max-width: 860px) {
    .statement__media {
        inset: 0;
        opacity: 0.55;
    }
    .statement__media::after {
        background: linear-gradient(90deg, var(--ink) 0%, rgba(15, 27, 29, 0.88) 45%, rgba(15, 27, 29, 0.35) 100%);
    }
    .statement__text { max-width: 22em; }
}

/* ── Îndemn final (Acasă): singura suprafață plină în culoarea de accent, cu granulația hârtiei.
   Stânga: titlu + butoane; dreapta: fișa numerotată cu serviciile (repere de colț în --ink) ── */
.cta {
    padding-block: clamp(4.5rem, 9vw, 7rem);
    background: var(--accent) var(--grain);
    color: var(--paper);
}
.cta__inner {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: center;
}
.cta__inner:not(:has(.cta__file)) { grid-template-columns: 1fr; }
.cta__title {
    max-width: 16em;
    margin-bottom: 0;
    color: var(--white);
    font-size: clamp(2.2rem, 4.4vw, 3.8rem);
}
.cta__title em { color: var(--ink); }
.cta__buttons { margin-top: 2.2rem; }
.cta .btn {
    background: var(--ink);
    border-color: var(--ink);
}
.cta .btn:hover {
    background: var(--paper);
    border-color: var(--paper);
    color: var(--ink);
}
.cta .btn--ghost {
    background: transparent;
    border-color: rgba(252, 251, 248, 0.6);
    color: var(--white);
}

.cta__file {
    margin: 0;
    padding: clamp(1.5rem, 3vw, 2.2rem);
    border: 1px solid rgba(252, 251, 248, 0.35);
    list-style: none;
}
.cta__file li {
    display: flex;
    align-items: baseline;
    gap: 1.1rem;
    padding: 1.1rem 0;
    color: var(--white);
    font-size: clamp(1.05rem, 1.4vw, 1.15rem);
    line-height: 1.4;
}
.cta__file li:first-child { padding-top: 0; }
.cta__file li:last-child { padding-bottom: 0; }
.cta__file li + li { border-top: 1px solid rgba(252, 251, 248, 0.35); }
.cta__num {
    flex: none;
    color: var(--ink);
    font-family: var(--mono);
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.08em;
}

@media (max-width: 860px) {
    .cta__inner { grid-template-columns: 1fr; }
}

/* ── Bloc de contact + caseta cu date ──────────────────────────────────── */
.contact-block__grid {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: center;
}
.contact-block__grid p {
    max-width: 36rem;
    font-size: 1.125rem;
}

.contact-card {
    padding: clamp(1.8rem, 4vw, 2.6rem);
    background: var(--ink);
    color: var(--paper);
}
.contact-card__list {
    display: grid;
    gap: 1.4rem;
    margin: 0;
}
.contact-card__list dt {
    margin-bottom: 0.3rem;
    color: var(--accent-light);
    font-family: var(--mono);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.contact-card__list dd { margin: 0; }
.contact-card__list a {
    color: var(--paper);
    font-family: var(--serif);
    font-size: clamp(1.2rem, 1.9vw, 1.45rem);
    text-decoration: none;
    overflow-wrap: anywhere;
    transition: color 0.25s;
}
.contact-card__list a:hover { color: var(--accent-light); }
.contact-card .btn { margin-top: 2rem; }

@media (max-width: 860px) {
    .contact-block__grid { grid-template-columns: 1fr; }
}

/* ── Despre fondator ───────────────────────────────────────────────────── */
.founder-intro__grid {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: start;
}
.founder-intro--text .founder-intro__grid {
    grid-template-columns: 1fr;
    max-width: 44rem;
}
.founder-intro__photo {
    display: grid;
    aspect-ratio: 4 / 5;
    margin: 0;
    background: var(--paper-deep);
}
.founder-intro__photo > * {
    width: 100%;
    height: 100%;
}
.founder-intro__photo img { object-fit: cover; }
.founder-intro__photo .placeholder { border-color: var(--line); }
.founder-intro__text { max-width: 40rem; }
.founder-intro__text p { font-size: 1.125rem; }
.founder-intro__text .lead {
    margin-bottom: 1.3em;
    font-size: clamp(1.4rem, 2.3vw, 1.85rem);
    line-height: 1.38;
    letter-spacing: -0.01em;
}
.founder-intro__text .lead strong { font-weight: 500; }

.signature__grid {
    display: grid;
    grid-template-columns: 7fr 5fr;
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: center;
}
.signature__text p {
    max-width: 36rem;
    font-size: 1.125rem;
}
.signature__text .signature__motto {
    max-width: 30rem;
    margin-top: 2rem;
    padding-left: 1.4rem;
    border-left: 2px solid var(--accent);
    color: var(--ink);
    font-family: var(--serif);
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    font-style: italic;
    line-height: 1.4;
}
.signature__sign { margin-top: 2.4rem; }
.signature__text .signature__name {
    margin: 0 0 0.3rem;
    color: var(--ink);
    font-family: var(--serif);
    font-size: 1.5rem;
    line-height: 1.2;
}
.signature__text .signature__role {
    margin: 0;
    color: var(--muted);
    font-family: var(--mono);
    font-size: 0.8rem;
    letter-spacing: 0.02em;
}

@media (max-width: 860px) {
    .founder-intro__grid,
    .signature__grid { grid-template-columns: 1fr; }
    .founder-intro__photo { aspect-ratio: 4 / 3; }
}

/* ── Formular de contact ───────────────────────────────────────────────── */
.contact-form__grid {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: clamp(2.5rem, 7vw, 6rem);
    align-items: start;
}
.contact-form__intro p { font-size: 1.125rem; }
.contact-form__intro .lead { font-size: clamp(1.2rem, 1.7vw, 1.4rem); }
.contact-form__intro .contact-card { margin-top: 2.4rem; }

.form {
    position: relative;
    padding: clamp(1.6rem, 4vw, 3rem);
    border: 1px solid var(--line);
    background: var(--white) var(--grain);
}
.form__hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1.8rem;
}

.field {
    display: block;
    margin-bottom: 1.6rem;
}
.field__label {
    display: block;
    margin-bottom: 0.3rem;
    color: var(--ink);
    font-family: var(--mono);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.field__label small {
    color: var(--muted);
    font-size: inherit;
    font-weight: 400;
    letter-spacing: 0.04em;
    text-transform: none;
}
.field input,
.field textarea {
    display: block;
    width: 100%;
    padding: 0.7em 0;
    border: 0;
    border-bottom: 1px solid var(--line);
    border-radius: 0;
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: 1.05rem;
    transition: border-color 0.25s;
}
.field textarea {
    resize: vertical;
    min-height: 9rem;
}
.field input:focus,
.field textarea:focus {
    border-bottom-color: var(--accent);
    outline: none;
}
.field input:focus-visible,
.field textarea:focus-visible { box-shadow: 0 1px 0 var(--accent); }

.form__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.6rem;
    margin-top: 0.6rem;
}
.form__status {
    flex: 1 1 16rem;
    margin: 0;
    font-size: 0.95rem;
}
.form__status.is-success { color: #1f6b4a; }
.form__status.is-error { color: #b3261e; }

@media (max-width: 860px) {
    .contact-form__grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .form__row { grid-template-columns: 1fr; }
}

/* ── Footer ────────────────────────────────────────────────────────────── */
.site-footer {
    padding-top: clamp(3.5rem, 7vw, 5rem);
    background: var(--ink-deep);
    color: rgba(243, 240, 232, 0.66);
    font-size: 0.95rem;
}
.site-footer__grid {
    display: grid;
    grid-template-columns: 1.3fr 0.9fr 1.4fr 1fr;
    gap: 2.5rem;
}
.site-footer__motto {
    margin-top: 1.6rem;
    color: var(--paper);
    font-family: var(--serif);
    font-size: 1.15rem;
    font-style: italic;
    line-height: 1.45;
}
.site-footer__title {
    margin-bottom: 1.1rem;
    color: var(--accent-light);
    font-family: var(--mono);
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.site-footer__list {
    display: grid;
    gap: 0.55rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.site-footer__list a {
    text-decoration: none;
    transition: color 0.25s;
}
.site-footer__list a:hover { color: var(--paper); }
.site-footer__contact a { overflow-wrap: anywhere; }

.site-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.6rem 2rem;
    margin-top: clamp(3rem, 6vw, 4rem);
    padding-block: 1.5rem;
    border-top: 1px solid var(--line-dark);
    font-family: var(--mono);
    font-size: 0.76rem;
}
.site-footer__bottom p { margin: 0; }

@media (max-width: 980px) {
    .site-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
    .site-footer__grid { grid-template-columns: 1fr; }
}

/* ── Apariție la scroll (doar cu JS; fără JS totul e vizibil) ──────────── */
.js [data-reveal] {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
    transition-delay: calc(var(--d, 0) * 70ms);
}
.js [data-reveal].is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation: none !important;
        transition-duration: 0.01ms !important;
    }
    .js [data-reveal] {
        opacity: 1;
        transform: none;
    }
}
