/* =========================================================
   Hofenbrass – Joomla 5 Template Stylesheet
   Designsystem aus dem abgestimmten HTML/CSS-Entwurf.
   ========================================================= */

:root{
  --ink:#15110d;
  --ink-soft:#221c16;
  --paper:#fbf7f0;
  --white:#ffffff;
  --signal:#ff9426;
  --signal-deep:#c66a00;
  --smoke:#6e655a;
  --line:#15110d;
  --radius-plate:10px;
  --radius-card:16px;
  --maxw:1180px;
  --gap:clamp(1.2rem, 3vw, 2.4rem);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,.display{
  font-family:'Oswald', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.01em;
  font-weight:700;
  margin:0;
  line-height:1.05;
}

.mono{
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:0.03em;
}

a{color:inherit; text-decoration:none;}

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

.wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 clamp(1.2rem, 4vw, 2.5rem);
}

/* ---------- Zusatzschild (signature eyebrow plate) ---------- */
.plate{
  display:inline-flex;
  align-items:center;
  gap:0.5em;
  background:var(--signal);
  border:2px solid var(--ink);
  border-radius:8px;
  padding:0.35em 0.9em;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--ink);
  box-shadow:inset 0 0 0 2px var(--signal), inset 0 0 0 4px var(--ink);
}
.plate--on-dark{
  background:var(--signal);
  color:var(--ink);
  border-color:var(--ink);
  box-shadow:inset 0 0 0 2px var(--signal), inset 0 0 0 4px var(--ink);
}
.plate--signal{
  background:var(--signal);
  border-color:var(--ink);
  box-shadow:inset 0 0 0 2px var(--signal), inset 0 0 0 4px var(--ink);
}

/* ---------- Großes Eyebrow-Schild ---------- */
.plate--large{
  font-size:1.3rem;
  padding:0.5em 1.4em;
  border-radius:10px;
  letter-spacing:0.08em;
  border-width:3px;
  box-shadow:inset 0 0 0 2px var(--signal), inset 0 0 0 5px var(--ink);
}

/* ---------- Nav ---------- */
header.site{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--ink);
  border-bottom:3px solid var(--signal);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:1.3rem clamp(1.2rem, 4vw, 2.5rem);
  max-width:var(--maxw);
  margin:0 auto;
}
.nav__brand{
  display:flex;
  align-items:center;
  gap:0.6rem;
}

/* Shirt-Wortmark: HOFEN / gerader Streifen / BRASS, wie auf den Bandshirts */
.wordmark{
  display:inline-flex;
  flex-direction:column;
  align-items:stretch;
  font-family:'Oswald', sans-serif;
  font-weight:700;
  text-transform:uppercase;
  color:var(--white);
  font-size:clamp(1.3rem, 2.6vw, 1.7rem);
  line-height:1;
  letter-spacing:0.02em;
  gap:0.38em;
}
.wordmark__row{
  white-space:nowrap;
}
.wordmark__stripe{
  height:3px;
  width:100%;
  background:var(--signal);
  border-radius:1px;
}

/* Container um das Menümodul (Hauptnavigation) */
.nav__links{
  display:flex;
  gap:clamp(1rem, 3vw, 2.2rem);
}
.nav__links ul.menu{
  display:contents;
  list-style:none;
  margin:0;
  padding:0;
}
.nav__links ul.menu li{
  display:contents;
}
.nav__links ul.menu a{
  color:var(--white);
  font-family:'Oswald', sans-serif;
  font-size:1rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-weight:600;
  padding:0.4rem 0.1rem;
  border-bottom:2px solid transparent;
  transition:border-color 0.2s ease, color 0.2s ease;
}
.nav__links ul.menu li.current a{
  border-color:var(--signal);
  color:var(--signal);
}
.nav__links ul.menu a:hover, .nav__links ul.menu a:focus-visible{
  border-color:var(--signal);
  color:var(--signal);
}

.nav__toggle{display:none;}
.nav__burger{
  display:none;
  width:38px; height:38px;
  border:2px solid var(--white);
  border-radius:6px;
  background:transparent;
  cursor:pointer;
  position:relative;
}
.nav__burger span, .nav__burger span::before, .nav__burger span::after{
  content:'';
  position:absolute;
  left:8px; right:8px;
  height:2px;
  background:var(--white);
}
.nav__burger span{top:18px;}
.nav__burger span::before{top:-7px;}
.nav__burger span::after{top:7px;}

@media (max-width:780px){
  .nav__links{
    position:absolute;
    top:100%; left:0; right:0;
    background:var(--ink);
    flex-direction:column;
    align-items:flex-start;
    padding:1rem clamp(1.2rem, 4vw, 2.5rem) 1.4rem;
    gap:0;
    border-bottom:3px solid var(--signal);
    max-height:0;
    overflow:hidden;
    transition:max-height 0.25s ease;
  }
  .nav__links ul.menu{
    display:flex;
    flex-direction:column;
    gap:0.9rem;
    width:100%;
  }
  .nav__links ul.menu li{display:block;}
  .nav__toggle:checked ~ .nav__links{
    max-height:320px;
  }
  .nav__burger{display:inline-flex;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:min(92vh, 760px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:5rem 1.2rem 4rem;
  background-image:
    linear-gradient(to bottom, rgba(21,17,13,0.35) 0%, rgba(21,17,13,0.55) 55%, rgba(21,17,13,0.96) 100%),
    url('../images/hero-band.jpg');
  background-size:cover;
  background-position:center 30%;
  overflow:hidden;
}
.hero__sign{
  width:min(78vw, 380px);
  filter:drop-shadow(0 18px 30px rgba(0,0,0,0.45));
  animation:dropIn 0.7s ease both;
}
.hero__poles{
  width:min(78vw, 380px);
  display:flex;
  justify-content:space-between;
  margin-top:-4px;
}
.hero__poles span{
  width:10px;
  height:34px;
  background:linear-gradient(to bottom, #8a8a8a, #4a4a4a);
  border-radius:0 0 3px 3px;
}
.hero__tagline{
  margin-top:1.6rem;
  animation:dropIn 0.7s ease 0.15s both;
}
.hero__scroll{
  position:absolute;
  bottom:1.6rem;
  left:50%;
  transform:translateX(-50%);
  color:var(--white);
  font-family:'IBM Plex Mono', monospace;
  font-size:0.68rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.4rem;
  opacity:0.85;
}
.hero__scroll svg{animation:bob 2s ease-in-out infinite;}

@keyframes dropIn{
  from{opacity:0; transform:translateY(-14px);}
  to{opacity:1; transform:translateY(0);}
}
@keyframes bob{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(6px);}
}

/* ---------- Seitenkopf für Unterseiten (Termine/Band/Booking) ---------- */
.page-header{
  background:var(--ink);
  padding:clamp(3rem, 8vw, 5rem) 0;
  border-bottom:3px solid var(--signal);
}
.page-header h1{
  color:var(--white);
  font-size:clamp(1.9rem, 4vw, 2.8rem);
  margin-top:0.7rem;
}

/* ---------- Generic section ---------- */
section{
  padding:clamp(3.2rem, 7vw, 5.5rem) 0;
}
section.alt{
  background:var(--white);
  border-top:1px solid rgba(21,17,13,0.08);
  border-bottom:1px solid rgba(21,17,13,0.08);
}
section.dark{
  background:var(--ink);
  color:var(--paper);
}
.section__head{
  margin-bottom:clamp(1.8rem, 4vw, 2.6rem);
}
.section__head h2{
  font-size:clamp(1.8rem, 4vw, 2.7rem);
  margin-top:0.7rem;
}
.section__lede{
  max-width:640px;
  color:var(--smoke);
  font-size:1.02rem;
  margin-top:0.9rem;
}
section.dark .section__lede{color:#c9c2b6;}

/* ---------- Intro / Band copy ---------- */
.intro-grid{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:var(--gap);
  align-items:start;
}
.intro-grid p{margin:0 0 1rem; max-width:46ch;}
.intro-grid p:last-child{margin-bottom:0;}
.intro-photo{
  border-radius:var(--radius-card);
  overflow:hidden;
  border:3px solid var(--ink);
  aspect-ratio:4/3;
}
.intro-photo img{width:100%; height:100%; object-fit:cover;}

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

/* ---------- Termine: signpost rows ---------- */
.termine-list{
  list-style:none;
  margin:0;
  padding:0;
  border-top:2px dashed var(--ink);
}
.termine-row{
  display:grid;
  grid-template-columns:90px 1fr auto;
  gap:1.1rem;
  align-items:center;
  padding:1.1rem 0;
  border-bottom:2px dashed rgba(21,17,13,0.35);
}
.termine-date{
  background:var(--signal);
  border:2px solid var(--ink);
  border-radius:var(--radius-plate);
  text-align:center;
  padding:0.5rem 0.3rem;
  line-height:1.1;
}
.termine-date .day{
  display:block;
  font-family:'Oswald', sans-serif;
  font-weight:700;
  font-size:1.5rem;
}
.termine-date .month{
  display:block;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.62rem;
  text-transform:uppercase;
  letter-spacing:0.1em;
}
.termine-info h3{
  font-family:'Work Sans', sans-serif;
  text-transform:none;
  font-weight:700;
  font-size:1.08rem;
  letter-spacing:0;
}
.termine-info p{
  margin:0.2rem 0 0;
  color:var(--smoke);
  font-size:0.94rem;
}
.termine-tag{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.7rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--smoke);
  white-space:nowrap;
}
@media (max-width:600px){
  .termine-row{grid-template-columns:70px 1fr; }
  .termine-tag{display:none;}
}

.home-termine{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1.2rem;
  margin-top:1.6rem;
}
@media (max-width:1000px){
  .home-termine{grid-template-columns:1fr 1fr;}
}
@media (max-width:600px){
  .home-termine{grid-template-columns:1fr;}
}
.home-termine-card{
  display:flex;
  gap:1rem;
  background:var(--signal);
  border:3px solid var(--ink);
  border-radius:var(--radius-plate);
  padding:1.1rem;
  align-items:center;
  transition:transform 0.15s ease, box-shadow 0.15s ease;
  position:relative;
}
.home-termine-card::before{
  content:'';
  position:absolute;
  inset:5px;
  border:2px solid var(--ink);
  border-radius:6px;
  pointer-events:none;
}
.home-termine-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(21,17,13,0.3);
}
.home-termine-card .termine-date{
  background:var(--ink);
  border-color:var(--ink);
  flex-shrink:0;
  position:relative;
  z-index:1;
}
.home-termine-card .termine-date .day{
  color:var(--signal);
}
.home-termine-card .termine-date .month{
  color:var(--signal);
}
.home-termine-card .termine-info{
  position:relative;
  z-index:1;
}
.home-termine-card .termine-info h3{
  color:var(--ink);
  font-family:'Oswald', sans-serif;
  text-transform:uppercase;
  font-weight:700;
  font-size:1.1rem;
  letter-spacing:0.02em;
}
.home-termine-card .termine-info p{
  color:var(--ink-soft);
  font-weight:600;
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:0.5em;
  background:var(--ink);
  color:var(--white);
  font-family:'Oswald', sans-serif;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:0.85rem;
  font-weight:600;
  padding:0.75em 1.4em;
  border-radius:8px;
  border:2px solid var(--ink);
  transition:transform 0.15s ease, background 0.2s ease, color 0.2s ease;
}
.btn:hover{background:var(--signal); color:var(--ink); border-color:var(--ink); transform:translateY(-2px);}
.btn--outline{
  background:transparent;
  color:var(--ink);
}
.btn--outline:hover{background:var(--ink); color:var(--white);}
.btn-row{margin-top:1.8rem;}

/* ---------- Instagram placeholder grid ---------- */
.insta-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:0.9rem;
  margin-top:1.6rem;
}
@media (max-width:760px){
  .insta-grid{grid-template-columns:repeat(2, 1fr);}
}
.insta-tile{
  aspect-ratio:1/1;
  border-radius:var(--radius-card);
  border:2px solid var(--ink);
  background:linear-gradient(135deg, #ffb45c, #ff9426 45%, #2c2118);
  display:flex;
  align-items:flex-end;
  padding:0.7rem;
  position:relative;
  overflow:hidden;
}
.insta-tile::after{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 30% 20%, rgba(255,255,255,0.25), transparent 60%);
}
.insta-tile span{
  position:relative;
  z-index:1;
  color:var(--white);
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  letter-spacing:0.05em;
  background:rgba(21,17,13,0.55);
  padding:0.25em 0.5em;
  border-radius:5px;
}
.insta-note{
  margin-top:1.2rem;
  font-size:0.88rem;
  color:var(--smoke);
}

/* ---------- Band ---------- */
.band-photo{
  border-radius:var(--radius-card);
  overflow:hidden;
  border:3px solid var(--paper);
}

/* ---------- Register-Kacheln ---------- */
.register-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1rem;
  margin-top:1.8rem;
}
@media (max-width:860px){
  .register-grid{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width:520px){
  .register-grid{grid-template-columns:1fr;}
}
.register-tile{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
  background:var(--ink-soft);
  border:2px solid var(--signal);
  border-radius:var(--radius-card);
  padding:1.3rem 1.2rem;
  min-height:148px;
  transition:transform 0.15s ease, background 0.2s ease, color 0.2s ease;
}
.register-tile h3{
  font-size:1.2rem;
  color:var(--paper);
}
.register-tile p{
  margin:0;
  font-size:0.86rem;
  color:#c9c2b6;
}
.register-tile__arrow{
  margin-top:auto;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.07em;
  text-transform:uppercase;
  color:var(--signal);
}
.register-tile:hover{
  transform:translateY(-3px);
  background:var(--signal);
}
.register-tile:hover h3, .register-tile:hover p, .register-tile:hover .register-tile__arrow{
  color:var(--ink);
}

/* ---------- Musiker-Karten (Register-Unterseite) ---------- */
.musiker-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.2rem;
  margin-top:1.8rem;
}
@media (max-width:760px){
  .musiker-grid{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width:520px){
  .musiker-grid{grid-template-columns:1fr;}
}
.musiker-card{
  display:block;
  background:var(--white);
  border:2px solid var(--ink);
  border-radius:var(--radius-card);
  overflow:hidden;
  transition:transform 0.15s ease;
}
.musiker-card:hover{transform:translateY(-3px);}
.musiker-card__photo{
  aspect-ratio:4/5;
  background:linear-gradient(150deg, #382a1c, #15110d 70%);
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.musiker-card__photo img{
  width:100%; height:100%; object-fit:cover;
}
.musiker-card__initial{
  font-family:'Oswald', sans-serif;
  font-weight:700;
  font-size:3.4rem;
  color:var(--signal);
}
.musiker-card__photo-tag{
  position:absolute;
  bottom:0.6rem;
  left:0.6rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.6rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:#e7e1d4;
  background:rgba(21,17,13,0.6);
  padding:0.2em 0.5em;
  border-radius:4px;
}
.musiker-card__body{padding:1rem 1.1rem 1.3rem;}
.musiker-card__body h3{
  font-family:'Work Sans', sans-serif;
  text-transform:none;
  font-weight:700;
  font-size:1.05rem;
}
.musiker-card__tag{
  display:inline-block;
  margin-top:0.4rem;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--signal-deep);
  background:#fff1de;
  padding:0.2em 0.55em;
  border-radius:5px;
}
.musiker-card__quote{
  margin:0.7rem 0 0;
  font-size:0.86rem;
  color:var(--smoke);
  font-style:italic;
}
.musiker-card__more{
  display:inline-block;
  margin-top:0.9rem;
  font-family:'Oswald', sans-serif;
  font-size:0.72rem;
  letter-spacing:0.09em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--ink);
  border-bottom:2px solid var(--signal);
}

/* ---------- Termin-Detailseite ---------- */
.termin-detail-card{
  background:var(--white);
  border:2px solid var(--ink);
  border-radius:var(--radius-card);
  padding:1.6rem;
  margin-bottom:1.8rem;
  max-width:560px;
}
.termin-detail-row{
  display:flex;
  gap:1rem;
  align-items:baseline;
  padding:0.6rem 0;
  border-bottom:1px solid rgba(21,17,13,0.1);
  font-size:1rem;
}
.termin-detail-row:last-child{border-bottom:none;}
.termin-detail-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.7rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--smoke);
  min-width:5em;
}

/* ---------- Termine-Karten (Unterseite) ---------- */
.termine-cards-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.2rem;
  margin-top:1.8rem;
}
@media (max-width:700px){
  .termine-cards-grid{grid-template-columns:1fr;}
}
.termine-card{
  display:flex;
  gap:1rem;
  background:var(--signal);
  border:3px solid var(--ink);
  border-radius:var(--radius-plate);
  padding:1.2rem;
  align-items:center;
  transition:transform 0.15s ease, box-shadow 0.15s ease;
  position:relative;
}
.termine-card::before{
  content:'';
  position:absolute;
  inset:5px;
  border:2px solid var(--ink);
  border-radius:6px;
  pointer-events:none;
}
.termine-card:hover{
  transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(21,17,13,0.3);
}
.termine-card .termine-date{
  background:var(--ink);
  border-color:var(--ink);
  flex-shrink:0;
  position:relative;
  z-index:1;
}
.termine-card .termine-date .day{
  color:var(--signal);
}
.termine-card .termine-date .month{
  color:var(--signal);
}
.termine-card .termine-info{
  position:relative;
  z-index:1;
}
.termine-card .termine-info h3{
  margin:0 0 0.2rem;
  color:var(--ink);
  font-family:'Oswald', sans-serif;
  text-transform:uppercase;
  font-weight:700;
  font-size:1.1rem;
  letter-spacing:0.02em;
}
.termine-card .termine-info p{
  margin:0;
  color:var(--ink-soft);
  font-size:0.94rem;
  font-weight:600;
}

/* ---------- Booking ---------- */
.booking-grid{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:var(--gap);
  align-items:start;
}
@media (max-width:860px){
  .booking-grid{grid-template-columns:1fr;}
}
.contact-plate{
  background:var(--paper);
  color:var(--ink);
  border:2px solid var(--ink);
  border-radius:var(--radius-card);
  padding:1.6rem;
}
.contact-plate h3{
  text-transform:none;
  font-family:'Work Sans', sans-serif;
  font-weight:700;
  font-size:1.1rem;
  margin-bottom:0.8rem;
}
.contact-row{
  display:flex;
  align-items:baseline;
  gap:0.6rem;
  padding:0.45rem 0;
  border-bottom:1px solid rgba(21,17,13,0.15);
  font-size:0.95rem;
}
.contact-row:last-child{border-bottom:none;}
.contact-row .k{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.68rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--smoke);
  min-width:5.5em;
}

.form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}
.form .full{grid-column:1 / -1;}
.form label{
  display:block;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.68rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:#c9c2b6;
  margin-bottom:0.35rem;
}
.form input, .form textarea, .form select{
  width:100%;
  background:var(--ink-soft);
  border:2px solid #443a2e;
  border-radius:8px;
  color:var(--paper);
  font-family:'Work Sans', sans-serif;
  font-size:0.95rem;
  padding:0.7em 0.8em;
}
.form input:focus, .form textarea:focus, .form select:focus{
  outline:2px solid var(--signal);
  outline-offset:1px;
  border-color:var(--signal);
}
.form textarea{resize:vertical; min-height:100px;}
@media (max-width:560px){
  .form{grid-template-columns:1fr;}
}
.form-note{
  grid-column:1/-1;
  font-size:0.8rem;
  color:#9c9384;
  margin-top:-0.3rem;
}

/* ---------- Footer ---------- */
footer{
  background:var(--ink);
  color:#c9c2b6;
  padding:2.6rem 0 1.6rem;
}
.footer-top{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:1.6rem;
  padding-bottom:1.8rem;
  border-bottom:1px solid #3a3128;
}
.footer-social{
  display:flex;
  gap:0.7rem;
  flex-wrap:wrap;
}
.pill{
  border:1.5px solid #5c5142;
  border-radius:999px;
  padding:0.45em 1.1em;
  font-size:0.8rem;
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:0.04em;
  color:var(--paper);
  transition:border-color 0.2s, color 0.2s;
  display:inline-flex;
  align-items:center;
  gap:0.5em;
}
.pill:hover{border-color:var(--signal); color:var(--signal);}
.pill svg{flex-shrink:0;}
.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding-top:1.6rem;
  font-size:0.78rem;
  color:#8b8273;
}
.footer-menu-links ul.menu{
  display:flex;
  flex-wrap:wrap;
  gap:1.2rem;
  list-style:none;
  margin:0;
  padding:0;
}
.footer-menu-links ul.menu a{
  color:#8b8273;
  font-size:0.78rem;
  transition:color 0.2s;
}
.footer-menu-links ul.menu a:hover{color:var(--signal);}

.ortsausgang{
  margin-top:2.2rem;
  display:flex;
  justify-content:center;
}
.ortsausgang-sign{
  position:relative;
  background:var(--white);
  color:var(--ink);
  border:3px solid var(--ink);
  border-radius:6px;
  padding:0.5em 1.6em;
  font-family:'Oswald', sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.05em;
  font-size:0.95rem;
  overflow:hidden;
}
.ortsausgang-sign::after{
  content:'';
  position:absolute;
  left:-6%;
  right:-6%;
  top:50%;
  height:3px;
  background:var(--ink);
  transform:translateY(-50%) rotate(-9deg);
}

/* Elfsight Instagram Feed Container */
.elfsight-app-2ce87576-e9f8-41d3-8ebf-59f195974fab {
  background: #15110d;
  border-radius: 16px;
  padding: 1.5rem;
  border: 4px solid #ff9426;
}

/* === Hofenbrass Startseiten-Video === */
/* Eyebrow kommt jetzt aus .section__head/.plate--large (wie die anderen Abschnitte) – kein Extra-CSS nötig. */
.hb-reel{position:relative;width:100%;max-width:360px;margin:1.6rem auto 0;border-radius:16px;overflow:hidden;background:#000;line-height:0;box-shadow:0 12px 34px rgba(0,0,0,.28)} /* Video zentriert */
.hb-reel video{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;background:#000}

/* Video-Modul aus dem Termine-Raster über die volle Breite ziehen */
/* #mod-custom114{grid-column:1 / -1} */

/* Instagram-Bereich (Elfsight) vorübergehend ausblenden */
body > section:has(.elfsight-app-2ce87576-e9f8-41d3-8ebf-59f195974fab){display:none}

