/*
Theme Name:   Al Capone Klosters Child
Theme URI:    https://www.alcapone-klosters.ch
Description:  Child-Theme von Twenty Twenty-Five für das Restaurant Al Capone Klosters. Enthält u.a. den Custom Post Type "Getränke" für die Getränkekarte sowie das Design-Fundament des Relaunch 2026 (Cormorant Garamond / Montserrat / Lato, warme Alpine-Hospitality-Palette).
Author:       AFO Solutions
Author URI:   https://afo-solutions.ch
Template:     twentytwentyfive
Version:      1.28.0
Text Domain:  alcapone-klosters-child
*/

/* Lato in zusätzlichen Strichstärken laden (500/600), damit "etwas dicker"
   wirklich rendert. MUSS ganz oben stehen (vor allen anderen Regeln). */
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap');

/* =====================================================================
   AL CAPONE KLOSTERS — DESIGN-FUNDAMENT (Relaunch 2026)
   Quelle: Claude-Design-System "Al Capone Design System" (brand.css).
   Diese Tokens sind die Single Source of Truth für Farben, Schriften,
   Abstände und Effekte. Alle Block-Patterns/Seiten bauen darauf auf.
   ===================================================================== */

:root {
  /* ── Schriftfamilien ── */
  --font-display: "Cormorant Garamond", "Hoefler Text", Georgia, serif;
  --font-ui:      "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --font-body:    "Lato", "Helvetica Neue", Arial, sans-serif;

  /* ── Logo-Farben (NUR im/neben dem Logo verwenden) ── */
  --logo-red:   #CC0000;
  --logo-green: #66CC00;

  /* ── Marken-Akzente (im gerenderten Design verwendet) ── */
  --accent-red:   #E30613;   /* Capone Rot — Tricolor-Strich, Reservieren/Buchen */
  --accent-green: #14C82C;   /* Capone Grün — Take-Away, Tricolor-Strich */

  /* ── Rot (warm, abgedunkelt) ── */
  --red-800: #7E1C18;
  --red-700: #9E2420;
  --red-600: #BC2E26;   /* primäre Aktion (Buttons) */
  --red-500: #C9362C;
  --red-300: #E7B6B0;
  --red-100: #F6E3DF;

  /* ── Grün (Aktion / Take-Away) ── */
  --green-700: #17820A;
  --green-600: #1FA80C;
  --green-500: #28C410;

  /* ── Sage / Olive (alpiner Akzent) ── */
  --sage-700: #44503A;
  --sage-600: #5C6B49;
  --sage-500: #788666;
  --sage-300: #B7C0A6;
  --sage-100: #E8ECDF;

  /* ── Espresso-Töne (warme Fast-Schwarz) ── */
  --ink-900: #211A14;
  --ink-800: #2C241C;
  --ink-700: #3F352A;
  --ink-600: #564A3C;

  /* ── Paper / Cream Flächen ── */
  --paper:   #FBF7EF;
  --paper-2: #F4ECDD;
  --paper-3: #ECE1CE;
  --white:   #FFFFFF;

  /* ── Warme Neutraltöne (Taupe) ── */
  --taupe-100: #EDE6D8;
  --taupe-200: #DED4C2;
  --taupe-300: #C8BBA3;
  --taupe-400: #AC9D82;
  --taupe-500: #918065;
  --taupe-600: #6F6049;
  --taupe-700: #51442F;

  /* ── Semantisch — Flächen ── */
  --color-bg:           var(--paper);
  --color-bg-alt:       var(--paper-2);
  --color-bg-dark:      var(--ink-900);
  --color-surface:      var(--white);
  --color-surface-alt:  var(--paper-2);
  --color-surface-sunk: var(--paper-3);

  /* ── Semantisch — Linien ── */
  --color-border:        var(--taupe-200);
  --color-border-strong: var(--taupe-300);
  --color-border-dark:   rgba(255, 255, 255, 0.14);

  /* ── Semantisch — Text ── */
  --color-text-primary:   var(--ink-900);
  --color-text-secondary: var(--ink-600);
  --color-text-muted:     var(--taupe-500);
  --color-text-inverse:   var(--paper);
  --color-text-brand:     var(--red-700);
  --color-text-accent:    var(--sage-600);

  /* ── Semantisch — Aktionen ── */
  --color-action:           var(--red-600);
  --color-action-hover:     var(--red-700);
  --color-action-press:     var(--red-800);
  --color-action-secondary: var(--green-500);
  --color-action-sec-hover: var(--green-600);

  /* ── Overlays ── */
  --color-overlay-strong: rgba(33, 26, 20, 0.66);
  --color-overlay-medium: rgba(33, 26, 20, 0.40);
  --color-scrim-bottom:   linear-gradient(to top, rgba(33,26,20,0.78) 0%, rgba(33,26,20,0) 70%);

  /* ── Radius ── */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 14px;
  --radius-card: var(--radius-lg);
  --radius-pill: 999px;

  /* ── Schatten (warmer Espresso-Ton, weich) ── */
  --shadow-xs: 0 1px 2px rgba(33, 26, 20, 0.06);
  --shadow-sm: 0 2px 8px rgba(33, 26, 20, 0.07);
  --shadow-md: 0 8px 24px rgba(33, 26, 20, 0.09), 0 2px 6px rgba(33,26,20,0.05);
  --shadow-lg: 0 18px 48px rgba(33, 26, 20, 0.12), 0 4px 12px rgba(33,26,20,0.06);

  /* ── Motion ── */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --duration-fast: 140ms;
  --duration-normal: 240ms;
}

/* ── Basis-Typografie ── */
body {
  font-family: var(--font-body);
  color: var(--color-text-primary);
  background-color: var(--color-bg);
  line-height: 1.72;
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--color-text-primary);
}
h1 { line-height: 1.04; }

/* Eyebrow-/Label-Stil (tracked Sans) — Überschrift-Zeile über Section-Titeln.
   Immer GROSSBUCHSTABEN und Logo-Rot (#E30613). */
.acw-eyebrow,
.is-style-eyebrow {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.6875rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent-red);
}
/* Auf dunklem Hintergrund (.acw-dark): Eyebrow grün — gleiches Grün wie der
   grüne Button auf dunklem Grund. */
.acw-dark .acw-eyebrow,
.acw-dark .is-style-eyebrow {
  color: var(--green-500);
}
/* Hero-Untertitel (Eyebrow direkt unter dem H1) dunkel statt rot — wie Claude Design */
h1.wp-block-heading + .acw-eyebrow { color: var(--ink-900) !important; }

/* Karten (mit Rahmen): Fliesstext lesbar, Titel dunkel
   (WordPress hatte den Text versehentlich auf die helle Rahmenfarbe gesetzt) */
.wp-block-group.has-border-color { color: var(--ink-700); }
.wp-block-group.has-border-color p { color: var(--ink-700) !important; }
.wp-block-group.has-border-color h3 { color: var(--ink-900) !important; }
/* Eyebrows in umrandeten Karten bleiben rot (sonst vom obigen Text-Override geschluckt) */
.wp-block-group.has-border-color .acw-eyebrow,
.wp-block-group.has-border-color .is-style-eyebrow { color: var(--accent-red) !important; }

/* ── Tricolor-Strich (Rot/Grün) ── */
.acw-tricolor {
  display: flex;
  height: 2px;
  width: 100px;
  border-radius: 2px;
  overflow: hidden;
  margin-inline: auto;
}
.acw-tricolor > span { flex: 1; }
.acw-tricolor > span:first-child { background: var(--accent-red); }
.acw-tricolor > span:last-child  { background: var(--accent-green); }

/* ── Button-Stile (Marke) ── */
.acw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.8125rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1;
  border: 2px solid transparent;
  border-radius: var(--radius-pill);
  padding: 1rem 2.1rem;
  cursor: pointer;
  text-decoration: none;
  transition: background-color var(--duration-fast) var(--ease-out),
              border-color var(--duration-fast) var(--ease-out),
              box-shadow var(--duration-normal) var(--ease-out),
              transform var(--duration-normal) var(--ease-out);
}
/* Reservieren / Buchen / primäre Aktion = Rot */
.acw-btn--reserve {
  background: var(--accent-red);
  border-color: var(--accent-red);
  color: #fff;
}
.acw-btn--reserve:hover { background: var(--red-700); border-color: var(--red-700); transform: translateY(-1px); box-shadow: var(--shadow-md); }
/* Take-Away / Bestätigung = Grün */
.acw-btn--takeaway {
  background: var(--green-500);
  border-color: var(--green-500);
  color: #fff;
}
.acw-btn--takeaway:hover { background: var(--green-600); border-color: var(--green-600); transform: translateY(-1px); box-shadow: var(--shadow-md); }
/* Sekundär = Outline */
.acw-btn--outline {
  background: transparent;
  border-color: rgba(33, 26, 20, 0.25);
  color: var(--ink-900);
}
.acw-btn--outline:hover { border-color: rgba(33, 26, 20, 0.6); }

/* Auf dunklem Hintergrund: rote Aktions-Buttons werden grün (besserer Kontrast).
   Dunkle Sektionen mit .acw-dark markieren — dann greift die Regel automatisch. */
.acw-dark .acw-btn--reserve {
  background: var(--green-500);
  border-color: var(--green-500);
  color: #fff;
}
.acw-dark .acw-btn--reserve:hover {
  background: var(--green-600);
  border-color: var(--green-600);
}

/* =====================================================================
   SEITEN-LAYOUT & SEKTIONEN  —  gescoped unter .acw-page
   Der Seiteninhalt (Custom-HTML-Block) wird in <div class="acw-page"> gelegt.
   So gelten generische Klassennamen nur innerhalb der Seite (keine Kollision).
   ===================================================================== */
.acw-page{font-family:var(--font-body);color:var(--ink-900);line-height:1.72}

/* =====================================================================
   FLIESSTEXT BESSER SICHTBAR — grösser, dunkler, etwas dicker
   (gleiche Schriftart Lato). Greift auch bei inline gesetztem --ink-600.
   ===================================================================== */
body { -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto; }
/* den hellbraunen Fliesstext-Ton deutlich dunkler machen */
.acw-page { --ink-600: #2C241C; }
/* etwas dickerer Strich für allen Fliesstext der Seite */
.acw-page, .acw-page p, .acw-page span, .acw-page .lead,
.acw-page .ln-l, .acw-page .faq .ans { font-weight: 500; }
/* grösser: Karten- und Menükarten-Beschreibungen, Lead, FAQ */
.acw-page .card .bd p,
.acw-page .menucard span { font-size: 16.5px !important; }
.acw-page .lead { font-size: 20px !important; }
.acw-page .faq .ans { font-size: 17px !important; }
.acw-page h1,.acw-page h2,.acw-page h3{font-family:var(--font-display);font-weight:600;line-height:1.2;letter-spacing:-.01em}
.acw-page img{display:block;max-width:100%}
.acw-page .wrap{max-width:1240px;margin:0 auto;padding:0 48px}
.acw-page .center{text-align:center}
.acw-page .title{font-family:var(--font-display);font-weight:600;line-height:1.08;letter-spacing:-.01em;color:var(--ink-900)}
.acw-page .lead{font-family:var(--font-body);font-size:18px;line-height:1.75;color:var(--ink-700)}

/* Eyebrow / Tricolor (innerhalb der Seite) */
.acw-page .eyebrow,.acw-page .eyebrow--green{font-family:var(--font-ui);font-weight:600;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-red);font-style:normal}
.acw-page .band-dark .eyebrow,.acw-page .band-dark .eyebrow--green{color:var(--green-500)}
.acw-page .tricolor{display:flex;height:2px;width:120px;border-radius:2px;overflow:hidden;margin:0 auto}
.acw-page .tricolor i{flex:1}
.acw-page .tricolor i:first-child{background:var(--accent-red)}
.acw-page .tricolor i:last-child{background:var(--accent-green)}

/* Buttons (innerhalb der Seite) */
.acw-page .btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;font-family:var(--font-ui);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;line-height:1;border:2px solid transparent;border-radius:var(--radius-pill);padding:15px 34px;cursor:pointer;text-decoration:none;transition:.18s}
.acw-page .btn--reserve{background:var(--accent-red);border-color:var(--accent-red);color:#fff!important}
.acw-page .btn--reserve:hover{background:var(--red-700);border-color:var(--red-700)}
.acw-page .btn--takeaway{background:var(--green-500);border-color:var(--green-500);color:#fff!important}
.acw-page .btn--takeaway:hover{background:var(--green-600);border-color:var(--green-600)}
.acw-page .btn--outline{background:transparent;border-color:rgba(33,26,20,.25);color:var(--ink-900)}
.acw-page .btn--outline:hover{border-color:rgba(33,26,20,.6)}

/* Bänder / Sektionen */
.acw-page section{padding:84px 0}
.acw-page .band-white{background:var(--paper)}
.acw-page .band-paper{background:var(--paper)}
.acw-page .band-paper2{background:var(--paper)}
.acw-page .band-dark{background:var(--ink-900);color:var(--paper)}

/* Grids */
.acw-page .grid2{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.acw-page .grid22{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.acw-page .grid3,.acw-page .menugrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.acw-page .hours3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px;max-width:1040px;margin:0 auto}

/* Foto-Platzhalter */
.acw-page .ph{width:100%;padding-top:74%;background:var(--paper-2);border-radius:var(--radius-card);position:relative;border:1px solid var(--border)}
.acw-page .ph span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--taupe-500);text-align:center;padding:0 20px}

/* Hero */
.acw-page .hero-photo{width:100%;height:480px;background:var(--paper-2) center/cover no-repeat;position:relative}
.acw-page .hero-photo:empty::after{content:"Hero-Bild im Editor setzen (Hintergrundbild)";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe-500)}
.acw-page .hero-panel{background:var(--paper);padding:88px 48px 92px;text-align:center}
.acw-page .hero-panel h1{font-size:64px;font-weight:700;line-height:1.02;color:var(--ink-900);margin:0}
.acw-page .hero-sub{font-family:var(--font-body);font-size:18px;line-height:1.7;color:var(--ink-600);max-width:600px;margin:22px auto 0}

/* Karten */
.acw-page .card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-sm)}
.acw-page .card .bd{padding:22px 24px 26px}
.acw-page .featurecard{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:32px 30px;box-shadow:var(--shadow-sm)}
.acw-page .infocard{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:40px;box-shadow:var(--shadow-sm);text-align:center;max-width:680px;margin:0 auto}
.acw-page .addrcard{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:32px 30px;box-shadow:var(--shadow-sm)}
.acw-page .infocard2{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:40px 40px 36px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.acw-page .menucard{text-align:left;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px 26px;display:flex;flex-direction:column;gap:8px;text-decoration:none}
.acw-page .arr{display:inline-flex;align-items:center;gap:7px;color:var(--accent-red);font-family:var(--font-ui);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}

/* Testimonials / Zitat */
.acw-page .quote{margin:0;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:28px 28px 24px}
.acw-page .quote blockquote{margin:0;font-family:var(--font-display);font-style:italic;font-weight:500;font-size:22px;line-height:1.36;color:var(--ink-800)}
.acw-page .quote figcaption{margin-top:16px;font-family:var(--font-ui);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--taupe-500)}
.acw-page .stars{color:var(--sage-600);letter-spacing:2px;margin-bottom:12px}
.acw-page .credo{max-width:780px;margin:0 auto;font-family:var(--font-display);font-style:italic;font-weight:500;font-size:26px;line-height:1.42;color:var(--red-700);text-align:center}

/* Öffnungszeiten */
.acw-page .hcol{padding:0 8px}
.acw-page .hcol .hd{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.acw-page .hcol .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.acw-page .hcol .nm{font-family:var(--font-display);font-weight:600;font-size:22px}
.acw-page .light-hr{height:1px;background:var(--border);margin-bottom:20px}
.acw-page .ln-l{font-size:17px;color:var(--ink-800);line-height:1.95}
.acw-page .hrow{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--border)}
.acw-page .hrow:last-child{border-bottom:none}
.acw-page .hrow .d{font-size:16px;color:var(--ink-600)}
.acw-page .hrow .t{font-family:var(--font-display);font-weight:600;font-size:18px;color:var(--ink-900)}
.acw-page .tline{margin-top:14px;font-family:var(--font-ui);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sage-700);display:flex;align-items:center;gap:8px}
.acw-page .tline .dot{width:7px;height:7px;border-radius:50%;background:var(--accent-green);display:inline-block;flex-shrink:0}

/* Schritte (Take Away) */
.acw-page .step{text-align:center}
.acw-page .stepnum{width:54px;height:54px;border-radius:50%;background:var(--green-500);color:#fff;font-family:var(--font-display);font-weight:700;font-size:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}

/* Karten-Kopf */
.acw-page .kartenkopf{background:var(--paper);padding:80px 48px 64px;text-align:center}
.acw-page .kartenkopf .sub,.acw-page .kartenkopf .team{font-family:var(--font-display);font-style:italic;color:var(--accent-red)}
.acw-page .kartenkopf .sub{font-weight:500;font-size:24px;margin-top:8px}
.acw-page .kartenkopf .team{font-size:18px;margin-top:22px}
.acw-page .kartenkopf .intro{max-width:680px;margin:22px auto 0}

/* Newsletter-Eingabe */
.acw-page .nl-input{display:flex;gap:10px;max-width:460px;margin:0 auto}
.acw-page .nl-input input{flex:1;font-family:var(--font-body);font-size:16px;padding:14px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);color:var(--paper)}

/* FAQ */
.acw-page .faq{max-width:760px;margin:0 auto}
.acw-page .faq details{border-bottom:1px solid var(--border)}
.acw-page .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;font-family:var(--font-display);font-weight:600;font-size:24px;color:var(--ink-900)}
.acw-page .faq summary::-webkit-details-marker{display:none}
.acw-page .faq summary .pm{flex-shrink:0;width:34px;height:34px;border-radius:50%;border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:300;transition:transform .24s}
.acw-page .faq details[open] summary .pm{transform:rotate(45deg)}
.acw-page .faq .ans{padding-bottom:22px;max-width:60ch;font-size:16px;line-height:1.72;color:var(--ink-600)}

/* Lunchgate-iFrame zentrieren */
.acw-page .reviews-embed{display:flex;justify-content:center}

/* Responsive */
@media(max-width:980px){
  .acw-page .wrap{padding-left:24px;padding-right:24px}
  .acw-page .grid2,.acw-page .grid22,.acw-page .grid3,.acw-page .menugrid{grid-template-columns:1fr;gap:28px}
  .acw-page .hours3{grid-template-columns:1fr}
  .acw-page .hero-panel h1{font-size:44px}
}
@media(max-width:620px){
  .acw-page .hero-photo{height:300px}
  .acw-page .hero-panel{padding:48px 24px 56px}
}

/* =====================================================================
   SITE-HEADER & FOOTER  (Template-Parts im Site-Editor)
   ===================================================================== */
.acw-topbar{background:var(--ink-900);color:var(--paper)}
.acw-topbar .in{max-width:1240px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:9px 48px;font-family:var(--font-ui);font-size:11px;letter-spacing:.08em}
.acw-topbar a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:7px}
.acw-topbar svg{stroke:var(--accent-red)}
.acw-topbar .sec{display:flex;gap:20px}
.acw-topbar .sec a{color:rgba(251,247,239,.78);font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.acw-header{background:var(--white);border-bottom:1px solid var(--border)}
.acw-header .in{display:flex;align-items:center;justify-content:space-between;padding:18px 48px;max-width:1240px;margin:0 auto}
.acw-header .logo{height:84px;width:auto}
/* Menü-Button als Pille mit Symbol + Text (wie Claude Design) */
.acw-menu-btn{display:flex;align-items:center;justify-content:center;gap:17px;background:none;border:2px solid var(--border-strong);border-radius:var(--radius-pill);height:auto;padding:34px 96px;cursor:pointer;font-family:var(--font-ui);font-weight:600;font-size:18px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-800);transition:.18s;text-decoration:none}
.acw-menu-btn:hover{border-color:var(--accent-red);color:var(--accent-red)}
/* Hamburger-Symbol mitwachsen lassen (HTML hat fixe 20px → hier überschreiben) */
.acw-menu-btn svg{width:28px !important;height:28px !important}

/* Reservieren-Button (nativer Block) = runde rote Pille (kein eckiger Hintergrund) */
.acw-btn--reserve{background:transparent !important;border:0 !important;padding:0 !important}
.acw-btn--reserve .wp-block-button__link{background-color:var(--accent-red) !important;color:#fff !important;border-radius:999px !important;border:0 !important}
.acw-btn--reserve .wp-block-button__link:hover{background-color:var(--red-700) !important}
.acw-footer{background:var(--white);padding:48px 0 30px;font-family:var(--font-body)}
.acw-footer .in{max-width:1240px;margin:0 auto;padding:0 48px}
.acw-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.acw-footer .logo{height:72px;margin-bottom:18px}
.acw-footer h4{font-family:var(--font-ui);font-weight:600;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--taupe-600);margin-bottom:12px}
.acw-footer p,.acw-footer a{font-size:14px;color:var(--ink-600);line-height:1.7;text-decoration:none}
.acw-footer .copy{border-top:1px solid var(--border);margin-top:34px;padding-top:18px;font-size:11.5px;color:var(--taupe-500)}
@media(max-width:980px){
  .acw-topbar .in,.acw-header .in,.acw-footer .in{padding-left:24px;padding-right:24px}
  .acw-topbar .in{flex-wrap:wrap;gap:6px 16px;justify-content:center}
  .acw-footer .cols{grid-template-columns:1fr;gap:28px}
}
/* Mobile: Telefon + Adresse in der Topbar ausblenden (nur Desktop) */
@media(max-width:782px){
  .acw-topbar .in > span:not(.sec){display:none !important}
  .acw-topbar .in{justify-content:center}
  /* Logo auf dem Handy kompakt halten (Desktop = 84px) */
  .acw-header .logo{height:58px}
}

/* =====================================================================
   FIX: Header/Footer wirklich über die ganze Breite + kein Seitentitel
   + kein Creme-Abstand zwischen Header und erstem Inhalt.
   (Twenty Twenty-Five legt seitliche Abstände/Breiten an — hier neutralisiert.)
   ===================================================================== */
/* Begrenzungen NUR innerhalb der Template-Teile (Header/Footer) lösen:
   alignwide-Breite (1240px), globalen 32px-Rand und Flex-Layout aufheben,
   damit Header/Footer über die ganze Breite gehen. Inhalt bleibt unberührt. */
.wp-block-template-part .wp-block-group { max-width: none !important; padding-top: 0 !important; padding-bottom: 0 !important; }
.acw-site-header .acw-header .in { padding-top: 42px !important; padding-bottom: 42px !important; }
.wp-site-blocks { gap: 0 !important; }
.wp-site-blocks > header.wp-block-template-part { margin-bottom: 0 !important; }
.wp-site-blocks > footer.wp-block-template-part { margin-top: 0 !important; margin-block-start: 0 !important; }
.wp-site-blocks > main { margin-bottom: 0 !important; margin-block-end: 0 !important; }
.wp-block-template-part .has-global-padding { padding-left: 0 !important; padding-right: 0 !important; }
.wp-block-template-part .is-layout-flex { display: block !important; }
.wp-block-template-part .alignwide,
.wp-block-template-part .alignfull {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
  width: auto !important;
}
.acw-site-header { width: 100% !important; max-width: none !important; margin: 0 !important; }
.acw-site-header .acw-topbar,
.acw-site-header .acw-header { width: 100% !important; max-width: 100% !important; margin: 0 !important; }

/* Kein automatischer Seitentitel ("Homeseite", "Restaurant Pizzeria" …) */
.page .wp-block-post-title { display: none !important; }

/* Kein Abstand zwischen Header und erstem Inhalt */
.wp-site-blocks > main { margin-top: 0 !important; padding-top: 0 !important; }
.wp-site-blocks > main > .wp-block-group { padding-top: 0 !important; }
.wp-site-blocks > main > .wp-block-group:first-child,
.wp-site-blocks > main > .wp-block-cover:first-child { margin-top: 0 !important; }
.entry-content, .wp-block-post-content { padding-top: 0 !important; margin-top: 0 !important; }
html, body { overflow-x: hidden; }

/* Hero-Foto-Höhe (etwas flacher) */
.entry-content > .wp-block-cover:first-child { min-height: 440px !important; }
@media (max-width: 781px) {
  .entry-content > .wp-block-cover:first-child { min-height: 300px !important; }
}

/* =====================================================================
   SPEISEKARTEN-LISTE — Shortcode [alcapone_menukarte] im Marken-Design
   (Sektions-Titel rot/kursiv, Cormorant-Namen, Punktlinie zum Preis,
   sage-grüne Diät-Pillen). Greift auf allen Karten-Seiten.
   ===================================================================== */
.alcapone-menukarten { max-width: 760px; margin: 0 auto; }
.alcapone-menukarte { margin-bottom: 56px; }
.alcapone-menukarte:last-child { margin-bottom: 0; }

/* Sektions-Titel, z.B. „Antipasti / Vorspeisen" */
.alcapone-menukarte__title {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 600;
  font-size: 1.9rem;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--logo-red);
  margin: 0 0 6px;
}
.alcapone-menukarte__intro {
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--ink-600);
  margin: 0 0 26px;
}

/* Gericht-Liste */
.alcapone-menu-items { list-style: none; margin: 0; padding: 0; }
.alcapone-menu-item { padding: 18px 0; border-bottom: 1px solid var(--border); }
.alcapone-menu-item:last-child { border-bottom: none; }

/* Kopfzeile: Name · · · Punktlinie · · · Preis */
.alcapone-menu-item__head { display: flex; align-items: baseline; gap: 10px; }
.alcapone-menu-item__name {
  order: 1; flex: 0 1 auto;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.2;
  color: var(--ink-900);
}
.alcapone-menu-item__head::after {
  content: ""; order: 2; flex: 1 1 auto;
  align-self: flex-end;
  margin-bottom: 0.42em;
  border-bottom: 1px dotted var(--border-strong);
}
.alcapone-menu-item__price {
  order: 3; flex: 0 0 auto; white-space: nowrap;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.25rem;
  color: var(--ink-900);
}

/* Beschreibung */
.alcapone-menu-item__desc {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--ink-600);
  margin: 8px 0 0;
  max-width: 60ch;
}

/* Englische Übersetzung – dezent kursiv direkt unter der deutschen Zeile */
.alcapone-menu-item__name-en {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 0.92rem;
  line-height: 1.3;
  color: var(--taupe-500);
  margin: 2px 0 0;
}
.alcapone-menu-item__desc--en {
  font-style: italic;
  font-size: 0.92rem;
  color: var(--taupe-500);
  margin: 3px 0 0;
}
.alcapone-menukarte__intro--en {
  font-style: italic;
  color: var(--taupe-500);
  margin: -18px 0 26px;
}
.alcapone-menukarte__title-en {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 1.05rem;
  color: var(--taupe-500);
  margin: -2px 0 10px;
}

/* Diät-Kennzeichnung (VEGETARISCH / VEGAN …) als sage-grüne Pille */
.alcapone-menu-item__flags { margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.alcapone-flag {
  display: inline-block;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--logo-green);
  background: rgba(102, 204, 0, 0.14);
  border-radius: 999px;
  padding: 5px 12px;
  line-height: 1;
}

/* Allergene — Logo-Rot */
.alcapone-menu-item__allergens {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--logo-red);
  margin: 8px 0 0;
}
.alcapone-menukarte-empty { text-align: center; color: var(--taupe-500); font-family: var(--font-ui); }

/* Länder-Zwischenüberschrift (Flaschenweine: Schweiz, Italien …) */
.alcapone-menukarte__land {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sage-600);
  margin: 22px 0 4px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
}
.alcapone-menu-items + .alcapone-menukarte__land { margin-top: 26px; }

/* Region · Produzent (Wein) */
.alcapone-menu-item__herkunft {
  font-family: var(--font-body);
  font-size: 0.92rem;
  color: var(--taupe-500);
  margin: 2px 0 0;
}

/* Rebsorte als sage-grüne Pille (wie Diät-Flags) */
.alcapone-menu-item__rebsorte { margin: 10px 0 0; }
.alcapone-rebsorte {
  display: inline-block;
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.625rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sage-600);
  background: rgba(102, 204, 0, 0.14);
  border-radius: 999px;
  padding: 5px 12px;
  line-height: 1;
}

/* Speise-Varianten: untereinander, Preis rechts in derselben Zeile,
   grüner Logo-Balken links als farbliche Trennung, Mitte ohne Farbfläche
   (wie Spargelkarte). */
.alcapone-menu-item__variants {
  margin: 14px 0 2px;
  border-left: 3px solid #66CC00;   /* Logo-Grün — nur dieser Trennbalken */
  padding: 2px 0 2px 16px;
}
.alcapone-menu-item__variant {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 6px 0;
}
.alcapone-menu-item__variant-name {
  flex: 1 1 auto;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--ink-900);
}
.alcapone-menu-item__variant-en {     /* englischer Teil dezent grau-kursiv */
  color: var(--taupe-500);
  font-style: italic;
}
.alcapone-menu-item__variant-price {
  flex: 0 0 auto;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.18rem;
  color: var(--ink-900);
  white-space: nowrap;
}

/* Weitere Flaschenformate (Wein): Label … Preis, gestapelt */
.alcapone-menu-item__formate { margin: 12px 0 0; max-width: 340px; }
.alcapone-menu-item__format {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 3px 0;
}
.alcapone-menu-item__format span:first-child {
  font-family: var(--font-body);
  font-size: 0.92rem;
  color: var(--taupe-600);
}
.alcapone-menu-item__format span:last-child {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.15rem;
  color: var(--ink-900);
  white-space: nowrap;
}

@media (max-width: 600px) {
  .alcapone-menukarte__title { font-size: 1.6rem; }
  .alcapone-menu-item__name { font-size: 1.2rem; }
  .alcapone-menu-item__price { font-size: 1.1rem; }
}

/* Fokus in BEIDEN Navigationen — Header-Nav (.wp-block-navigation) UND
   Overlay-Menü (.acw-navlinks, liegt ausserhalb der Header-Nav):
   Maus-Klick zeigt kein Quadrat, Tastatur behält einen dezenten,
   barrierefreien grünen Fokusrahmen. Kein !important. */
.wp-block-navigation a:focus:not(:focus-visible),
.wp-block-navigation .wp-block-navigation-item__content:focus:not(:focus-visible),
.acw-navlinks a:focus:not(:focus-visible),
.acw-navlinks a:active {
  outline: none;
  box-shadow: none;
}
.wp-block-navigation a:focus-visible,
.wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.acw-navlinks a:focus-visible {
  outline: 2px solid #66CC00;
  outline-offset: 3px;
}

/* === Saisonale Navigation (Teil B) =================================== *
 * Body-Klasse (acw-season-sommer / acw-season-winter) kommt aus functions.php.
 * Sommer: Terrassen sichtbar, Take-Away + Raclette aus.
 * Winter: Take-Away + Raclette sichtbar, Terrassen aus.
 * Die betroffenen Links im Overlay-Menü tragen .acw-only-sommer / .acw-only-winter. */
.acw-season-sommer .acw-navlinks a.acw-only-winter { display: none; }
.acw-season-winter .acw-navlinks a.acw-only-sommer { display: none; }

/* Footer trägt dieselbe Saison-Steuerung wie das Overlay-Menü.
   Greift im Sommer DIREKT am Take-Away-Link (per href) — KEINE HTML-Anpassung
   im Footer-Template-Teil nötig. Das unmittelbar folgende <br> wird mit
   ausgeblendet, sonst bliebe eine Leerzeile. Die Klasse .acw-only-winter greift
   zusätzlich, falls der Footer doch von Hand damit ausgezeichnet wird. */
.acw-season-sommer .acw-footer a[href*="take-away"],
.acw-season-sommer .acw-footer a[href*="take-away"] + br,
.acw-season-sommer .acw-footer .acw-only-winter { display: none; }
.acw-season-winter .acw-footer a[href*="sommerterrasse"],
.acw-season-winter .acw-footer a[href*="sommerterrasse"] + br,
.acw-season-winter .acw-footer .acw-only-sommer { display: none; }

/* Footer-Menü „Entdecken": „Speisen & Getränke" ganzjährig ausblenden
   (Link + folgendes <br>, sonst bliebe eine Leerzeile). */
.acw-footer a[href$="/speisekarte/"],
.acw-footer a[href$="/speisekarte/"] + br { display: none; }

/* Automatische Nummerierung der SICHTBAREN Menüpunkte (display:none zählt nicht mit),
   damit keine Lücken (01, 02, 04 …) entstehen. Nur aktiv, wenn das neue Header-HTML
   mit <nav class="acw-navlinks acw-autonums"> und LEEREN <span> eingesetzt ist —
   so gibt es bei altem HTML keine doppelten Zahlen. */
.acw-navlinks.acw-autonums { counter-reset: acwnav; }
.acw-navlinks.acw-autonums a { counter-increment: acwnav; }
.acw-navlinks.acw-autonums a span::before { content: counter(acwnav, decimal-leading-zero); }

/* =====================================================================
   RESERVIERUNG — ForaTable-Overlay (Lightbox statt neuem Tab)
   Markup wird von assets/js/foratable-modal.js erzeugt. Gebrandet:
   Cormorant-Titel, rote Eyebrow, Paper-Hintergrund, Pill-Radius.
   ===================================================================== */
.acw-resv-lock { overflow: hidden !important; }

.acw-resv-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4vh 16px;
  opacity: 0;
  transition: opacity var(--duration-normal, .25s) var(--ease-out, ease);
}
.acw-resv-overlay.is-open { opacity: 1; }
.acw-resv-overlay[hidden] { display: none; }

.acw-resv-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(33, 26, 20, 0.62);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.acw-resv-dialog {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 480px;
  height: 92vh;
  max-height: 860px;
  background: var(--paper, #FBF7EF);
  border-radius: var(--radius-lg, 14px);
  box-shadow: var(--shadow-lg, 0 18px 48px rgba(33,26,20,.2));
  overflow: hidden;
  transform: translateY(14px) scale(.98);
  transition: transform var(--duration-normal, .25s) var(--ease-out, ease);
}
.acw-resv-overlay.is-open .acw-resv-dialog { transform: none; }

.acw-resv-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 16px 14px 22px;
  border-bottom: 1px solid var(--color-border, #DED4C2);
  background: var(--white, #fff);
}
.acw-resv-eyebrow {
  font-family: var(--font-ui, sans-serif);
  font-weight: 700;
  font-size: 0.62rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent-red, #E30613);
}
.acw-resv-title {
  font-family: var(--font-display, serif);
  font-weight: 600;
  font-size: 1.35rem;
  color: var(--ink-900, #211A14);
  line-height: 1;
  margin-right: auto;
}
.acw-resv-x {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--color-border, #DED4C2);
  border-radius: var(--radius-pill, 999px);
  background: var(--paper, #FBF7EF);
  color: var(--ink-700, #3F352A);
  cursor: pointer;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.acw-resv-x:hover {
  background: var(--accent-red, #E30613);
  border-color: var(--accent-red, #E30613);
  color: #fff;
}

.acw-resv-body {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  background: var(--white, #fff);
}
.acw-resv-frame {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  opacity: 0;
  transition: opacity .3s ease;
}
.acw-resv-overlay.is-loaded .acw-resv-frame { opacity: 1; }

/* Lade-Spinner (mittig), verschwindet sobald die Maske geladen ist. */
.acw-resv-spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 38px;
  height: 38px;
  margin: -19px 0 0 -19px;
  border: 3px solid var(--taupe-200, #DED4C2);
  border-top-color: var(--accent-red, #E30613);
  border-radius: 50%;
  animation: acw-resv-spin .8s linear infinite;
}
.acw-resv-overlay.is-loaded .acw-resv-spinner { display: none; }
@keyframes acw-resv-spin { to { transform: rotate(360deg); } }

.acw-resv-fallback {
  margin: 0;
  padding: 9px 22px;
  font-family: var(--font-body, sans-serif);
  font-size: 0.78rem;
  color: var(--color-text-muted, #918065);
  text-align: center;
  background: var(--white, #fff);
  border-top: 1px solid var(--color-border, #DED4C2);
}
.acw-resv-fallback-link {
  color: var(--red-700, #9E2420);
  font-weight: 700;
  text-decoration: none;
}
.acw-resv-fallback-link:hover { text-decoration: underline; }

/* Mobile: Overlay füllt den Bildschirm. */
@media (max-width: 600px) {
  .acw-resv-overlay { padding: 0; }
  .acw-resv-dialog {
    max-width: none;
    height: 100%;
    max-height: none;
    border-radius: 0;
  }
}

/* Reduzierte Bewegung respektieren. */
@media (prefers-reduced-motion: reduce) {
  .acw-resv-overlay,
  .acw-resv-dialog,
  .acw-resv-frame { transition: none; }
  .acw-resv-spinner { animation: none; }
}
