/* =========================
   FONTS (deine Schriften, mit font-display)
   ========================= */

/* Runholdy Regular */
@font-face {
  font-family: 'Runholdy';
  src: url('/static/fonts/Runholdy-Regular.woff2') format('woff2'),
       url('/static/fonts/Runholdy-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* Runholdy Italic */
@font-face {
  font-family: 'Runholdy';
  src: url('/static/fonts/Runholdy-Italic.woff2') format('woff2'),
       url('/static/fonts/Runholdy-Italic.woff') format('woff');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
/* Swift Light Italic */
@font-face {
  font-family: 'Swift';
  src: url('/static/fonts/Swift-LightItalic.woff2') format('woff2'),
       url('/static/fonts/Swift-LightItalic.woff') format('woff');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
/* Swift Bold Italic */
@font-face {
  font-family: 'Swift';
  src: url('/static/fonts/Swift-BoldItalic.woff2') format('woff2'),
       url('/static/fonts/Swift-BoldItalic.woff') format('woff');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
/* Swift Extra Bold Italic */
@font-face {
  font-family: 'Swift';
  src: url('/static/fonts/Swift-ExtraBoldItalic.woff2') format('woff2'),
       url('/static/fonts/Swift-ExtraBoldItalic.woff') format('woff');
  font-weight: 800;
  font-style: italic;
  font-display: swap;
}

/* Optionale Alias-Familien */
@font-face {
  font-family: 'SwiftLI';
  src: url('/static/fonts/Swift-LightItalic.woff2') format('woff2'),
       url('/static/fonts/Swift-LightItalic.woff') format('woff');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'SwiftBI';
  src: url('/static/fonts/Swift-BoldItalic.woff2') format('woff2'),
       url('/static/fonts/Swift-BoldItalic.woff') format('woff');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'SwiftXBI';
  src: url('/static/fonts/Swift-ExtraBoldItalic.woff2') format('woff2'),
       url('/static/fonts/Swift-ExtraBoldItalic.woff') format('woff');
  font-weight: 800;
  font-style: italic;
  font-display: swap;
}

/* =========================
   THEME TOKENS
   ========================= */
:root{
  --bg: #fffdf9;
  --card: #ffffff;
  --ink: #2e2a27;
  --muted: #6b665f;
  --brand: #7a8f7a;
  --brand-strong: #5f745f;
  --line: #ece7df;
  --radius: 14px;
  --shadow: 0 6px 30px rgba(34,32,29,.08);
}

/* =========================
   BASE
   ========================= */
* { box-sizing: border-box; }
html, body { margin:0; padding:0; background:var(--bg); color:var(--ink); }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
.wrap { max-width: 960px; margin: 0 auto; padding: 24px; }

body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.6;
  letter-spacing: .2px;
}
h1,h2,h3 { margin: 0 0 .6em; }
p { margin: 0 0 1em; }

/* =========================
   TYPO-UTILS
   ========================= */
.font-runholdy { font-family: 'Runholdy', cursive; }
.font-swift    { font-family: 'Swift', Georgia, 'Times New Roman', Times, serif; }
.font-swift-li { font-family: 'SwiftLI', 'Swift', Georgia, serif; }
.font-swift-bi { font-family: 'SwiftBI', 'Swift', Georgia, serif; }
.font-swift-xbi{ font-family: 'SwiftXBI','Swift', Georgia, serif; }

.italic { font-style: italic; }
.fw-300 { font-weight: 300; }
.fw-400 { font-weight: 400; }
.fw-700 { font-weight: 700; }
.fw-800 { font-weight: 800; }

.fs-xxl { font-size: clamp(48px, 7vw, 92px); line-height:1.1; }
.fs-xl  { font-size: clamp(36px, 4.4vw, 56px); line-height:1.1; }
.fs-lg  { font-size: clamp(22px, 2.2vw, 28px); }
.fs-md  { font-size: 18px; }
.fs-sm  { font-size: 14px; }

.ls-tight { letter-spacing: .1px; }
.ls-wide  { letter-spacing: .3px; }
.muted { color: var(--muted); }

.display {
  font-family: 'Runholdy', cursive;
  font-size: clamp(48px, 7vw, 92px);
  line-height: 1.1;
  letter-spacing: .3px;
}

/* =========================
   HERO / SECTIONS
   ========================= */
.hero { padding:56px 24px 40px; text-align:center; }
.hero .card{
  background:var(--card);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  border-radius:var(--radius);
  padding:28px;
}

.section{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:24px;
  margin:20px 0;
}
.section .lead{ color:var(--muted); margin-bottom:8px; }

/* =========================
   GRID
   ========================= */
.grid { display:grid; gap:16px; }
@media (min-width:860px){
  .grid-2{ grid-template-columns:1fr 1fr; }
  .grid-3{ grid-template-columns:1fr 1fr 1fr; }
}

/* =========================
   BUTTONS
   ========================= */
.btn{
  display:inline-block;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid var(--brand);
  background:var(--brand);
  color:#fff;
  font-weight:600;
  letter-spacing:.2px;
  transition:.18s ease;
}
.btn:hover{ background:var(--brand-strong); border-color:var(--brand-strong); }
.btn.outline{ background:transparent; color:var(--brand); }
.btn.outline:hover{ background:#f0f4f0; }

/* Kleine Buttons (Admin) */
.btn-small{
  padding:6px 10px;
  border:1px solid #ccc;
  border-radius:8px;
  background:#fff;
  cursor:pointer;
}
.btn-small:hover{ background:var(--blue); }

/* =========================
   STICKY RSVP CTA
   ========================= */
.sticky-cta{
  position:fixed; left:50%; bottom:18px; transform:translateX(-50%);
  z-index:1000;
  padding:14px 22px;
  border-radius:999px;
  background:var(--brand);
  color:#fff; font-weight:700; letter-spacing:.3px;
  box-shadow:0 12px 30px rgba(90,110,90,.25);
  border:1px solid var(--brand);
}
.sticky-cta:hover{ background:var(--brand-strong); border-color:var(--brand-strong); }

/* Platz nach unten, damit die Sticky-CTA nichts überlappt */
body { padding-bottom: 88px; }

/* =========================
   KLEINKRAM / ADMIN-TABELLEN
   ========================= */
hr{ border:0; height:1px; background:var(--line); margin:22px 0; }
.kicker{ letter-spacing:.18em; text-transform:uppercase; font-size:.85rem; color:var(--muted); }

table{ width:100%; border-collapse:collapse; margin:14px 0; }
th,td{ border:1px solid #e5e5e5; padding:8px; vertical-align:top; }
th{ background:#fafafa; text-align:left; }
.row-actions{ white-space:nowrap; }
.edit-row{ background:#fffdf2; }

/* ====== Wedding theme overrides (global) ====== */
/* Farben + gemeinsame Rundung */
:root{
  --blue: #0f1d36;        /* dunkles Blau */
  --gold: #c5a253;        /* Gold */
  --btn-radius: 9999px;   /* einheitliche, pillenförmige Rundung */

  /* bestehende Tokens mit neuen Farben koppeln */
  --brand: var(--blue);
  --brand-strong: #172a4a; /* etwas dunkleres Blau für Hover */
}

/* Fließtext: Swift Light Italic + dunkles Blau */
body{
  font-family: 'SwiftLI', 'Swift', Georgia, 'Times New Roman', Times, serif !important;
  color: var(--blue) !important;
}

/* Headlines: Runholdy Regular + Gold (Größen passen wir später an) */
h1, h2, h3{
  font-family: 'Runholdy', cursive !important;
  font-weight: 400 !important;
}


/* === Runholdy: alle verfügbaren OpenType-Features aktivieren === */
h1, h2, h3,
.btn,
.font-runholdy,
[data-font="runholdy"]{
  font-family: 'Runholdy', cursive !important;

  /* Ligaturen/Alternativen allgemein aktivieren */
  font-variant-ligatures: common-ligatures discretionary-ligatures contextual historical-ligatures;

  /* Exakte OpenType-Tags, die in der Font vorhanden sind */
  -webkit-font-feature-settings:
    "kern" 1,   /* Kerning */
    "liga" 1,   /* Standardligaturen */
    "dlig" 1,   /* Discretionary Ligatures */
    "ccmp" 1,   /* Glyph-Komposition */
    "locl" 1,   /* Sprachbezogene Formen */
    "aalt" 1,   /* All Alternates (nur falls vorhanden sinnvoll) */
    "salt" 1,   /* Stylistic Alternates */
    "ss01" 1, "ss02" 1, "ss03" 1, /* Stylistic Sets 1–3 */
    "frac" 1,   /* Brüche */
    "ordn" 1,   /* Ordinale (1st, 2nd …) */
    "sups" 1,   /* Superscripts */
    "mark" 1, "mkmk" 1; /* Mark-Positionierung */
  font-feature-settings:
    "kern" 1,
    "liga" 1,
    "dlig" 1,
    "ccmp" 1,
    "locl" 1,
    "aalt" 1,
    "salt" 1,
    "ss01" 1, "ss02" 1, "ss03" 1,
    "frac" 1,
    "ordn" 1,
    "sups" 1,
    "mark" 1, "mkmk" 1;

  /* Optional, für schöne Kurven/Kerning auf Desktop */
  text-rendering: optimizeLegibility;
}

/* Falls du die volle „Zier-Dröhnung“ nur punktuell willst */
.runholdy-all-features{
  -webkit-font-feature-settings:
    "kern" 1,"liga" 1,"dlig" 1,"ccmp" 1,"locl" 1,"aalt" 1,"salt" 1,
    "ss01" 1,"ss02" 1,"ss03" 1,"frac" 1,"ordn" 1,"sups" 1,"mark" 1,"mkmk" 1;
  font-feature-settings:
    "kern" 1,"liga" 1,"dlig" 1,"ccmp" 1,"locl" 1,"aalt" 1,"salt" 1,
    "ss01" 1,"ss02" 1,"ss03" 1,"frac" 1,"ordn" 1,"sups" 1,"mark" 1,"mkmk" 1;
}

/* Notbremse, falls ein Bereich zu verspielt wird */
.runholdy-features-off{
  font-variant-ligatures: none;
  -webkit-font-feature-settings: normal;
  font-feature-settings: normal;
}


/* ====== Buttons: zentriert, größer, dunkelblau; Hover invertiert auf weiß + gold ====== */
.btn,
.sticky-cta,
button,
input[type="submit"],
input[type="button"]{
  /* Zentrierung (vertikal & horizontal) */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  vertical-align: middle !important;

  /* Optik */
  background: #fff !important;
  color: var(--blue) !important;                     /* weiße Schrift */
  border: 1px solid transparent !important;   /* kein Rand im Normalzustand */
  border-radius: var(--btn-radius) !important;

  /* Typo */
  font-family: 'Runholdy', cursive !important; /* Runholdy Regular */
  font-weight: 400 !important;
  font-size: clamp(28px, 2.5vw, 38px) !important;  /* größer */
  line-height: 1 !important;                  /* saubere vertikale Mitte */
  text-transform: lowercase !important;       /* immer minuskel */
  letter-spacing: 1.5px;

  /* Größe/Abstand */
  min-height: calc(56px - 2px) !important; /* Höhe kompensieren */
  padding: 0 28px !important;                 /* nur horizontal, vertikal via Höhe */
  padding-top: 4px !important;
  white-space: nowrap;

  /* Interaktionen */
  transition: background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
  cursor: pointer;

  /* Browser-Defaults neutralisieren */
  -webkit-appearance: none;
  appearance: none;
}

.btn:hover,
.sticky-cta:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover{
  background: var(--blue) !important;          /* invertiert auf weiß */
  color: var(--gold) !important;         /* Schrift gold */
  border-color: var(--gold) !important;  /* goldener Rand erst bei Hover */
}

/* Tastaturfokus sichtbar & konsistent */
.btn:focus-visible,
.sticky-cta:focus-visible,
button:focus-visible,
input[type="submit"]:focus-visible,
input[type="button"]:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px rgba(197,162,83,.35);
  border-color: var(--gold) !important;
}

/* Admin-Mini-Buttons auch vereinheitlichen */
.btn-small{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  vertical-align: middle !important;

  background: #fff !important;
  color: var(--blue) !important;
  border: 1px solid transparent !important;
  border-radius: var(--btn-radius) !important;

  font-family: 'Runholdy', cursive !important;
  font-size: clamp(18px, 1.4vw, 20px) !important;
  line-height: 1 !important;
  text-transform: lowercase !important;

  min-height: calc(40px - 2px) !important;
  padding: 10px 16px !important;
  padding-top: 3px !important;
}
.btn-small:hover{
  background:var(--blue) !important;
  color: var(--gold) !important;
  border-color: var(--gold) !important;
}

/* Sticky-CTA Schatten beibehalten */
.sticky-cta{
  box-shadow: 0 12px 30px rgba(15,29,54,.25);
}
