/* Self-hosted Jost (variable font, weights 100–900) */
@font-face {
    font-family: "Jost";
    src: url("/fonts/Jost.woff2") format("woff2"),
         url("/fonts/Jost.ttf") format("truetype");
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

:root {
    --iff-blue: #26548f;
    --iff-ink: #1b1b1b;
    --bg-top: #eef2f7;
    --bg-bottom: #dbe3ee;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    height: 100%;
}

body {
    font-family: "Jost", sans-serif;
    background: linear-gradient(160deg, var(--bg-top) 0%, var(--bg-bottom) 100%);
    color: var(--iff-ink);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100dvh;
}

/* Logo block grows to fill the space, keeping content centered */
.logo {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(0.6rem, 3vh, 1.6rem);
    text-align: center;
    padding: 2rem;
}

.logo-mark {
    font-family: "Jost", sans-serif;
    font-weight: 800;
    font-optical-sizing: auto;
    color: var(--iff-blue);
    line-height: 0.9;
    font-size: clamp(5rem, 22vw, 14rem);
    letter-spacing: 0.07em;
    /* optischer Ausgleich: extra Abstand rechts, damit das Wort mittig bleibt */
    text-indent: 0.07em;
}

.logo-name {
    font-family: "Jost", sans-serif;
    font-weight: 400;
    font-optical-sizing: auto;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    line-height: 1.12;
    font-size: clamp(1.2rem, 5vw, 2.6rem);
}

/* Minimalist email capture: a single underlined line with a subtle arrow */
.subscribe {
    margin-top: clamp(0.8rem, 4vh, 2.4rem);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: min(26rem, 82vw);
    border-bottom: 1px solid rgba(38, 84, 143, 0.35);
    padding-bottom: 0.35rem;
    transition: border-color 0.2s ease;
}

.subscribe:focus-within {
    border-color: var(--iff-blue);
}

.subscribe-input {
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    font-family: "Jost", sans-serif;
    font-weight: 300;
    font-size: clamp(0.95rem, 2.6vw, 1.1rem);
    letter-spacing: 0.02em;
    color: var(--iff-ink);
    min-width: 0;
}

.subscribe-input::placeholder {
    color: rgba(27, 27, 27, 0.45);
}

/* Honeypot: keep in DOM but out of sight for humans */
.subscribe-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.subscribe-btn {
    border: 0;
    background: transparent;
    cursor: pointer;
    color: var(--iff-blue);
    font-size: 1.4rem;
    line-height: 1;
    padding: 0 0.15rem;
    transition: transform 0.15s ease, opacity 0.2s ease;
}

.subscribe-btn:hover {
    transform: translateX(2px);
}

.subscribe-btn:disabled {
    opacity: 0.4;
    cursor: default;
}

.subscribe-note {
    position: absolute;
    transform: translateY(2rem);
    font-family: "Jost", sans-serif;
    font-weight: 300;
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    min-height: 1.2em;
}

.subscribe-note.is-ok {
    color: var(--iff-blue);
}

.subscribe-note.is-error {
    color: #b3352e;
}

/* Sehr dezente Fusszeile am unteren Seitenrand */
.site-footer {
    flex-shrink: 0;
    padding: 1rem 1.5rem 1.25rem;
    text-align: center;
    font-family: "Jost", sans-serif;
    font-weight: 300;
    font-size: clamp(0.7rem, 1.6vw, 0.8rem);
    line-height: 1.5;
    letter-spacing: 0.01em;
    color: rgba(27, 27, 27, 0.4);
}

.site-footer a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.site-footer a:hover {
    color: var(--iff-blue);
}
