/* =====================================================================
   Mainzer Adventskalender – modernes, dunkel-elegantes Theme
   ===================================================================== */

:root{
	--bg:        #0c0e14;
	--bg-2:      #11141d;
	--surface:   #161a24;
	--surface-2: #1d2230;
	--border:    rgba(255,255,255,.08);
	--border-2:  rgba(255,255,255,.14);
	--text:      #e9ecf2;
	--muted:     #9aa3b2;
	--gold:      #ffcf01;
	--gold-soft: #ffe27a;
	--blue:      #2f7fd1;
	--blue-deep: #00529a;
	--radius:    16px;
	--radius-sm: 10px;
	--shadow:    0 18px 48px rgba(0,0,0,.45);
	--maxw:      1180px;
}

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; font-size:18px; }

body.advent-body{
	margin:0;
	background:
		radial-gradient(1100px 600px at 80% -10%, rgba(0,82,154,.22), transparent 60%),
		radial-gradient(900px 500px at -10% 10%, rgba(255,207,1,.10), transparent 55%),
		var(--bg);
	color:var(--text);
	font-family:'Inter', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	font-size:18px;
	line-height:1.7;
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
	overflow-x:hidden;
}

a{ color:var(--gold-soft); text-decoration:none; transition:color .2s ease; }
a:hover,a:focus{ color:var(--gold); }

h1,h2,h3,h4{ font-family:'Cormorant Garamond', Georgia, serif; font-weight:600; line-height:1.15; color:#fff; margin:0 0 .4em; }
h1{ font-size:clamp(2.1rem,5vw,3.4rem); }
h2{ font-size:clamp(1.7rem,3.5vw,2.5rem); }
h3{ font-size:1.35rem; }

p{ margin:0 0 1rem; }

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

.advent-skip{
	position:absolute; left:-9999px; top:0; background:var(--gold); color:#000;
	padding:.6rem 1rem; border-radius:0 0 8px 0; z-index:2000; font-weight:600;
}
.advent-skip:focus{ left:0; }

/* ---------- Header / Navigation ---------- */
.advent-header{ position:sticky; top:0; z-index:1000; }

.advent-nav{
	position:relative; z-index:2;
	background:rgba(12,14,20,.72);
	backdrop-filter:blur(14px);
	-webkit-backdrop-filter:blur(14px);
	border-bottom:1px solid var(--border);
	transition:background .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.advent-nav.is-scrolled{ background:rgba(12,14,20,.94); box-shadow:0 8px 30px rgba(0,0,0,.4); }

.advent-nav__inner{
	max-width:none; margin:0; padding:.7rem 1.75rem;
	display:flex; align-items:center; gap:1rem; justify-content:space-between;
}
@media (min-width:861px){
	.advent-nav__list{ flex-wrap:nowrap; }
}

.advent-brand{ display:flex; align-items:center; gap:.6rem; color:#fff; }
.advent-brand:hover{ color:#fff; }
.advent-brand__mark{ color:var(--gold); font-size:1.6rem; line-height:1; filter:drop-shadow(0 0 8px rgba(255,207,1,.5)); }
.advent-brand__text{ font-family:'Cormorant Garamond',serif; font-weight:700; font-size:1.18rem; line-height:1.05; letter-spacing:.3px; }

.advent-nav__list{
	list-style:none; display:flex; gap:.25rem; margin:0; padding:0; align-items:center; flex-wrap:wrap;
}
.advent-nav__item a{
	display:block; padding:.55rem .85rem; border-radius:999px;
	color:var(--text); font-weight:500; font-size:1rem; letter-spacing:.2px;
	transition:background .2s ease, color .2s ease;
}
.advent-nav__item a:hover{ background:rgba(255,255,255,.07); color:#fff; }
.advent-nav__item.is-active a{ background:var(--gold); color:#1a1a1a; }

.advent-nav__toggle{
	display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:.4rem;
}
.advent-nav__toggle span{ width:26px; height:2px; background:#fff; border-radius:2px; transition:transform .25s ease, opacity .2s ease; }
.advent-nav__toggle.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.advent-nav__toggle.is-open span:nth-child(2){ opacity:0; }
.advent-nav__toggle.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- Lauftext / Ticker ---------- */
.advent-ticker{
	position:relative; z-index:1;
	background:linear-gradient(90deg, var(--blue-deep), #073a6b);
	color:#fff; overflow:hidden; border-bottom:1px solid var(--border);
}
.advent-ticker__track{
	display:flex; white-space:nowrap; width:max-content;
	padding:.5rem 0; animation:advent-scroll 28s linear infinite; will-change:transform;
}
.advent-ticker__track span{ font-weight:500; font-size:1.05rem; padding-right:4rem; }
.advent-ticker:hover .advent-ticker__track{ animation-play-state:paused; }
@keyframes advent-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-33.3333%); } }

/* ---------- Layout-Bausteine ---------- */
.advent-main{ min-height:60vh; }

.advent-section{ padding:clamp(2.5rem,6vw,5rem) 1.25rem; }
.advent-section--tight{ padding-top:clamp(1.5rem,3vw,2.5rem); }
.advent-container{ max-width:var(--maxw); margin:0 auto; }
.advent-anchor{ scroll-margin-top:130px; }

/* ---------- Schnellsuche Losnummer ---------- */
.advent-search{ max-width:560px; margin:1.8rem auto 3rem; background:linear-gradient(180deg,#ffdb45,#ffcf01); color:#1a1a1a; border-radius:var(--radius); padding:1.5rem 1.6rem; box-shadow:0 12px 32px rgba(255,207,1,.22); }
.advent-search h3{ color:#1a1a1a; font-family:'Inter',sans-serif; font-weight:600; font-size:1.2rem; margin:0 0 .3rem; }
.advent-search h3 .fa{ margin-right:.4rem; }
.advent-search > p{ color:#5a4900; margin:0 0 1.1rem; font-size:1rem; }
.advent-search__form{ display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; }
.advent-search__input{ font-size:1.15rem; padding:.7rem 1.1rem; border:2px solid rgba(0,0,0,.28); border-radius:999px; width:200px; max-width:100%; text-align:center; background:#fff; color:#1a1a1a; font-variant-numeric:tabular-nums; }
.advent-search__input:focus{ outline:none; border-color:#1a1a1a; box-shadow:0 0 0 3px rgba(0,0,0,.12); }
.advent-search__btn{ font-size:1.05rem; font-weight:600; padding:.7rem 1.5rem; border:0; border-radius:999px; background:#1a1a1a; color:var(--gold); cursor:pointer; transition:transform .15s ease, background .2s ease; }
.advent-search__btn:hover{ background:#000; transform:translateY(-1px); }
.advent-search__result{ margin-top:1.1rem; }
.advent-search__hit{ background:rgba(0,0,0,.10); border-radius:12px; padding:1rem 1.2rem; text-align:left; line-height:1.6; }
.advent-search__hit-title{ font-weight:600; font-size:1.12rem; margin-bottom:.4rem; }
.advent-search__hit-note{ margin-top:.5rem; font-size:.9rem; color:#5a4900; }
.advent-search__miss{ background:rgba(0,0,0,.08); border-radius:12px; padding:.9rem 1.2rem; font-weight:500; }
.advent-container--narrow{ max-width:820px; }

.advent-section__head{ text-align:center; margin-bottom:2.5rem; }
.advent-section__head h2{ position:relative; display:inline-block; }
.advent-section__head h2::after{
	content:""; display:block; width:64px; height:3px; margin:.6rem auto 0;
	background:var(--gold); border-radius:2px;
}
.advent-section__sub{ color:var(--muted); font-size:1.05rem; max-width:680px; margin:.5rem auto 0; }

.advent-section--alt{ background:linear-gradient(180deg, var(--bg-2), transparent); }

.advent-subhead{ text-align:center; margin:2.8rem 0 1.2rem; }
.advent-subhead h3{ display:inline-block; font-size:1.8rem; margin:0; }
.advent-subhead h3::after{ content:""; display:block; width:52px; height:3px; background:var(--gold); border-radius:2px; margin:.5rem auto 0; }

/* ---------- Hero / Startseite ---------- */
.advent-hero{ text-align:center; padding:clamp(2.2rem,5vw,3.8rem) 1.25rem 1rem; }
.advent-hero__kicker{ color:var(--gold); letter-spacing:3px; text-transform:uppercase; font-size:.8rem; font-weight:600; }
.advent-hero h1{ margin:.4rem 0 .6rem; }
.advent-hero__lead{ color:var(--muted); max-width:620px; margin:0 auto 1.6rem; font-size:1.12rem; }
.advent-hero__rollups{ display:flex; gap:2rem; justify-content:center; align-items:center; flex-wrap:wrap; margin-top:1.5rem; }
.advent-hero__rollups img{ height:200px; width:auto; filter:drop-shadow(0 10px 24px rgba(0,0,0,.5)); }

.advent-cta{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin:1.4rem 0 .4rem; }

.advent-btn{
	display:inline-flex; align-items:center; gap:.5rem;
	padding:.8rem 1.5rem; border-radius:999px; font-weight:600; font-size:1rem;
	border:1px solid transparent; cursor:pointer; transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.advent-btn--primary{ background:var(--gold); color:#1a1a1a; box-shadow:0 8px 22px rgba(255,207,1,.28); }
.advent-btn--primary:hover{ color:#1a1a1a; transform:translateY(-2px); box-shadow:0 12px 28px rgba(255,207,1,.4); }
.advent-btn--ghost{ background:transparent; color:#fff; border:2px solid rgba(255,207,1,.55); }
.advent-btn--ghost:hover{ color:#1a1a1a; background:var(--gold); border-color:var(--gold); transform:translateY(-2px); }

/* ---------- Kalender (Türchen-Bild + Imagemap) ---------- */
.advent-calendar{ text-align:center; }
.advent-calendar__frame{
	position:relative; display:inline-block; max-width:1000px; width:100%;
	padding:14px; border-radius:var(--radius);
	background:linear-gradient(180deg, var(--surface), var(--surface-2));
	border:1px solid var(--border); box-shadow:var(--shadow);
}
.advent-calendar__frame img{ display:block; width:100%; height:auto; border-radius:10px; }
.advent-calendar__hint{ color:var(--muted); margin-top:1rem; font-size:1rem; }
#overlayr1{
	position:absolute; display:none; z-index:5; pointer-events:none;
	background:rgba(255,207,1,.16); border:3px solid var(--gold); border-radius:8px;
	box-shadow:0 0 0 4px rgba(255,207,1,.18), 0 0 18px rgba(255,207,1,.35);
	transition:left .05s linear, top .05s linear, width .05s linear, height .05s linear;
}
area.mapping{ cursor:pointer; }
#m_kalender area{ cursor:pointer; }

/* ---------- Karten / Cards ---------- */
.advent-cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1.25rem; }
.advent-card{
	background:linear-gradient(180deg, var(--surface), var(--surface-2));
	border:1px solid var(--border); border-radius:var(--radius); padding:1.4rem;
	transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease; text-align:center;
}
.advent-card:hover{ transform:translateY(-4px); border-color:var(--border-2); box-shadow:var(--shadow); }
.advent-card__logo{ height:84px; display:flex; align-items:center; justify-content:center; margin-bottom:1rem; }
.advent-card__logo img{ max-height:84px; width:auto; }
.advent-card h4{ margin:.2rem 0 .3rem; font-family:'Inter',sans-serif; font-weight:600; font-size:1.1rem; color:#fff; }
.advent-card p{ color:var(--muted); font-size:1rem; margin:0; }
.advent-card a.advent-card__link{ font-size:1rem; }

/* ---------- Tabellen (Gewinne / Losnummern) ---------- */
.advent-tablewrap{
	overflow-x:auto; border:1px solid var(--border); border-radius:var(--radius);
	background:var(--surface); box-shadow:var(--shadow);
}
.advent-table{ width:100%; border-collapse:collapse; min-width:680px; }
.advent-table thead th{
	background:var(--surface-2); color:var(--gold); text-align:left; font-weight:600;
	font-size:.8rem; letter-spacing:.4px; text-transform:uppercase;
	padding:.75rem .85rem; border-bottom:1px solid var(--border-2); position:sticky; top:0;
}
.advent-table tbody td{ padding:.65rem .85rem; border-bottom:1px solid var(--border); vertical-align:top; font-size:.87rem; }
.advent-table tbody tr:last-child td{ border-bottom:0; }
.advent-table tbody tr:hover{ background:rgba(255,255,255,.03); }
.advent-table .advent-lot{ font-variant-numeric:tabular-nums; font-weight:700; color:var(--gold-soft); }

/* ---------- Türchen-/Sponsor-Modals (Bootstrap-Override) ---------- */
.portfolio-modal .modal-content,
.modal-content{
	background:linear-gradient(180deg, var(--surface), var(--surface-2)) !important;
	color:var(--text) !important; border:1px solid var(--border-2); border-radius:var(--radius);
	box-shadow:var(--shadow);
}
/* Bootstrap .container im Modal hat feste Breite (bis 1170px) und läuft sonst
   rechts aus dem Modal heraus – hier auf volle Modalbreite zwingen. */
.modal-content .container{ width:100% !important; max-width:100% !important; padding-left:0; padding-right:0; margin:0; }
.modal-content .container > .row{ margin-left:0; margin-right:0; }
@media (min-width:768px){ .modal-dialog{ width:720px; } }

.modal-body{ padding:2rem 1.5rem 2.5rem; font-size:1.05rem; }
.modal-body h3{ color:var(--gold); text-align:center; }
.modal-body h4.service-heading{ font-family:'Inter',sans-serif; font-weight:600; color:#fff; font-size:1.15rem; margin-top:1rem; }

/* Mehrere Sponsoren eines Tages untereinander statt nebeneinander stapeln */
.modal-body .row{ margin-left:0; margin-right:0; display:block; }
.modal-body [class*="col-md-"],
.modal-body [class*="col-sm-"],
.modal-body [class*="col-lg-"]{
	width:100% !important; max-width:100% !important; float:none !important;
	margin-left:0 !important; margin-right:0 !important; left:auto !important;
	display:block; padding:1.25rem 0; border-top:1px solid var(--border);
}
.modal-body .row > [class*="col-"]:first-child{ border-top:0; }

.modal-body table{ margin:.8rem 0 0; border-collapse:collapse; width:100%; max-width:100%; }
.modal-body table td{ border:1px solid var(--border-2) !important; padding:.55rem .8rem !important; text-align:center; font-variant-numeric:tabular-nums; font-size:1.05rem; }

/* Sponsorenlogo: zentriert über den Losnummern, Breite bis max. 75% (kein Quadrat-Zwang) */
.modal-body .fa-stack{ display:block; width:auto; height:auto; line-height:normal; font-size:inherit; margin:0 auto 1rem; text-align:center; }
.modal-body .fa-stack img{ display:block; margin:0 auto; width:auto; height:auto; max-width:50%; max-height:none; }
.modal-body img{ border-radius:10px; }
.close-modal{ background:transparent; }
.close-modal .lr{ background:var(--gold); }
.close-modal .lr .rl{ background:var(--gold); }

/* ---------- Historie-Timeline ---------- */
.advent-section .timeline{ list-style:none; padding:0; position:relative; }
.advent-section .timeline::before{
	content:""; position:absolute; top:0; bottom:0; left:50%; width:2px; margin-left:-1px;
	background:linear-gradient(180deg, transparent, var(--border-2) 8%, var(--border-2) 92%, transparent);
}
.advent-section .timeline > li{ position:relative; margin-bottom:2.5rem; min-height:120px; }
.advent-section .timeline > li .timeline-image{ float:left; width:46%; text-align:right; }
.advent-section .timeline > li .timeline-image a{ display:inline-block; }
.advent-section .timeline > li .timeline-image img{ display:inline-block; border-radius:12px; border:1px solid var(--border); box-shadow:var(--shadow); }
.advent-section .timeline > li .timeline-panel{ float:right; width:46%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:1.2rem 1.4rem; }
.advent-section .timeline > li.timeline-inverted .timeline-image{ float:right; text-align:left; }
.advent-section .timeline > li.timeline-inverted .timeline-panel{ float:left; }
.advent-section .timeline > li::after{ content:""; display:table; clear:both; }
.advent-section .timeline-heading h4{ color:#fff; margin:0; }
.advent-section .timeline-heading h4.subheading{ color:var(--gold); font-family:'Inter',sans-serif; font-weight:600; font-size:1rem; margin-top:.2rem; }
.advent-section .timeline-body p{ color:var(--muted); margin:.6rem 0 0; }

/* ---------- Prose (Regeln, Über uns, Geldspender) ---------- */
.advent-prose{ font-size:1.05rem; }
.advent-prose h2,.advent-prose h3{ margin-top:1.6rem; }
.advent-prose ul,.advent-prose ol{ padding-left:1.3rem; }
.advent-prose li{ margin:.3rem 0; }
.advent-prose img{ border-radius:12px; }
.advent-prose a{ text-decoration:underline; }
.text-muted{ color:var(--muted) !important; }

/* ---------- Verkaufsstellen ---------- */
.advent-sales{ text-align:center; }
.advent-sales img{ border-radius:var(--radius); border:1px solid var(--border); box-shadow:var(--shadow); }
.advent-sales__pdf{ margin-top:1.4rem; }

/* ---------- Footer ---------- */
.advent-footer{ border-top:1px solid var(--border); background:var(--bg-2); margin-top:3rem; }
.advent-footer__inner{
	max-width:var(--maxw); margin:0 auto; padding:2rem 1.25rem;
	display:flex; flex-wrap:wrap; gap:1rem 2rem; align-items:center; justify-content:space-between;
}
.advent-footer__title{ display:block; color:var(--gold); font-weight:600; }
.advent-footer__sub{ display:block; color:var(--muted); font-size:.95rem; }
.advent-footer__links{ display:flex; gap:1.4rem; }
.advent-footer__links a{ color:var(--text); font-size:1rem; }
.advent-footer__copy{ color:var(--muted); font-size:.92rem; width:100%; border-top:1px solid var(--border); padding-top:1rem; margin-top:.5rem; }

/* ---------- "Nach oben"-Button ---------- */
.advent-totop{
	position:fixed; right:1.4rem; bottom:1.4rem; z-index:1200;
	width:52px; height:52px; border-radius:50%; border:0; cursor:pointer;
	background:var(--gold); color:#1a1a1a; font-size:1.3rem;
	box-shadow:0 8px 22px rgba(0,0,0,.4);
	display:flex; align-items:center; justify-content:center;
	opacity:0; visibility:hidden; transform:translateY(12px);
	transition:opacity .25s ease, transform .25s ease, visibility .25s ease, background .2s ease;
}
.advent-totop.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.advent-totop:hover{ background:var(--gold-soft); transform:translateY(-3px); }

/* ---------- Responsive ---------- */
@media (max-width: 860px){
	.advent-nav__toggle{ display:flex; }
	.advent-nav__list{
		position:absolute; left:0; right:0; top:100%;
		flex-direction:column; align-items:stretch; gap:0;
		background:rgba(12,14,20,.98); border-bottom:1px solid var(--border);
		max-height:0; overflow:hidden; transition:max-height .3s ease; padding:0 1rem;
	}
	.advent-nav__list.is-open{ max-height:70vh; padding:.5rem 1rem 1rem; }
	.advent-nav__item a{ padding:.85rem .6rem; border-radius:8px; }

	.advent-section .timeline::before{ left:24px; }
	.advent-section .timeline > li .timeline-image,
	.advent-section .timeline > li .timeline-panel,
	.advent-section .timeline > li.timeline-inverted .timeline-image,
	.advent-section .timeline > li.timeline-inverted .timeline-panel{ float:none; width:auto; text-align:left; margin-left:54px; }
	.advent-section .timeline > li .timeline-image{ margin-bottom:.8rem; }
	.advent-hero__rollups img{ height:140px; }
}
