/*
 Theme Name:   gigi
 Theme URI:    https://gigi-bites.de
 Description:  gigi. Pizza Karlsruhe — App-Style Theme mit Design System, Custom Templates und Sides-Integration.
 Author:       STRYKE Marketing
 Author URI:   https://stryke.marketing
 Template:     hello-elementor
 Version:      3.2.0
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  gigi-pizza
 Tags:         elementor, restaurant, pizza, app-style
*/

/* ==========================================================================
   1. CSS Custom Properties
   ========================================================================== */

:root {
	/* Layout */
	--gigi-header-height: 60px;
	--gigi-appbar-height: 64px;
	--gigi-content-max-w: 1200px;
	--gigi-section-padding: 100px 32px;

	/* Backgrounds */
	--gigi-bg-light:      #f5f0e8;   /* Primärer Seitenhintergrund — warmes Crème */
	--gigi-bg-light-2:    #e8e0d0;   /* Sekundär — dunkleres Crème, Karten, Trennflächen */
	--gigi-bg-dark:       #1a472a;   /* Dark Background — sattes Dunkelgrün */
	--gigi-bg-dark-2:     #0f2d1a;   /* Dark 2 — tiefes Waldgrün, Hover, Tiefe */
	--gigi-bg-dark-rgb:   26, 71, 42;

	/* Brand */
	--gigi-primary:       #126133;   /* Hauptfarbe — Buttons, Badges, Headlines auf hellem Grund */

	/* Detail-Akzente */
	--gigi-detail-1:      #2e7eb8;   /* Stahlblau — Links, Info-Elemente, sekundäre CTAs */
	--gigi-detail-2:      #c93b5a;   /* Himbeere — Highlights, Tags, Preis-Akzente, aktive States */

	/* Schriftfarben */
	--gigi-font-dark:     #2d4a35;   /* Dunkelgrünes Grau — Fließtext auf hellem Grund */
	--gigi-font-muted:    #5C5248;   /* Gedämpft — Subtexte, Labels */
	--gigi-font-light:    #c8bfa8;   /* Warmes Sand — Text auf dunklem Grund */

	/* Utility */
	--gigi-white:         #f5f0e8;   /* Crème statt Reinweiß */
	--gigi-error:         #e53935;

	/* Typography */
	--gigi-font-headline: 'Montserrat', sans-serif;
	--gigi-font-body:     'Poppins', sans-serif;

	/* Spacing */
	--gigi-heading-gap: 12px;
	--gigi-rule-gap: 24px;

	/* Borders & Radius */
	--gigi-radius: 0;
	--gigi-radius-sm: 0;
	--gigi-border-width: 2px;

	/* Shadows */
	--gigi-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	--gigi-shadow-lg: 0 6px 28px rgba(0, 0, 0, 0.12);
}

@media (max-width: 767px) {
	:root {
		--gigi-section-padding: 60px 24px;
	}
}

/* --- Override Hello Elementor accent color --- */
:root,
body,
[class*="elementor-kit-"] {
	--e-global-color-accent: var(--gigi-primary);
}

/* ==========================================================================
   Grain Texture — subtle noise overlay for all dark-green panels
   ========================================================================== */

.gigi-hero-section::after,
.gigi-section--menu-preview::after,
.gigi-pizza-abo::after,
.gigi-section--kontakt::after,
.gigi-footer-nav::after,
.gigi-abo-hero::after,
.gigi-abo-cta::after,
.gigi-hero__location-bar::after {
	content: "";
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	opacity: 0.06;
	pointer-events: none;
	z-index: 0;
	mix-blend-mode: overlay;
}

/* ==========================================================================
   2. Base / Reset
   ========================================================================== */

html {
	scroll-behavior: smooth;
	scroll-padding-top: 88px;
}

body.gigi-app-style {
	padding: 0;
	overscroll-behavior-y: none;
	-webkit-overflow-scrolling: touch;
	font-family: var(--gigi-font-body);
	color: var(--gigi-font-dark);
	background-color: var(--gigi-bg-light);
}

/* Subtle grain texture — papierartige Wärme */
body.gigi-app-style::before {
	content: '';
	position: fixed;
	inset: 0;
	z-index: 9999;
	pointer-events: none;
	opacity: 0.07;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-repeat: repeat;
	background-size: 180px 180px;
}


/* ==========================================================================
   3. Floating Nav Bar
   ========================================================================== */

.gigi-site-nav {
	position: sticky;
	top: 16px;
	z-index: 100;
	background: var(--gigi-bg-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	padding: 0 20px;
	height: 56px;
	border-radius: 0;
	width: 100%;
	margin: -28px 0 -28px;
	box-shadow: var(--gigi-shadow-lg);
}

/* -- Left group: logo + burger -- */

.gigi-site-nav__left {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-shrink: 0;
}

.gigi-site-nav__logo {
	display: flex;
	align-items: center;
	transform: rotate(-6deg);
	transition: transform 0.3s ease;
}

.gigi-site-nav__logo:hover {
	transform: rotate(0deg) scale(1.1);
}

.gigi-site-nav__logo img {
	height: 32px;
	width: auto;
}

/* -- Nav icons (visible on mobile, hidden on desktop) -- */

.gigi-site-nav__icon {
	display: none;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

/* -- Center: nav links with pipe separators -- */

.gigi-site-nav__links {
	display: flex;
	align-items: center;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gigi-site-nav__links li {
	display: flex;
	align-items: center;
}

.gigi-site-nav__links li + li::before {
	content: "|";
	color: rgba(200, 191, 168, 0.35);
	margin: 0 20px;
	font-size: 14px;
	font-weight: 300;
}

.gigi-site-nav__links a {
	font-family: var(--gigi-font-headline);
	font-size: 14px;
	font-weight: 700;
	color: var(--gigi-font-light);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	transition: color 0.2s ease;
	white-space: nowrap;
}

.gigi-site-nav__links a:hover {
	color: var(--gigi-bg-light-2);
}

/* -- Right: circular "ORDER NOW" badge -- */

.gigi-site-nav__badge {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 92px;
	height: 92px;
	border-radius: 50%;
	background: var(--gigi-bg-light-2);
	text-decoration: none;
	margin-left: 0;
	flex-shrink: 0;
	transform: rotate(-12deg);
	transition: transform 0.3s ease;
	position: relative;
}

.gigi-site-nav__badge::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 2px dashed var(--gigi-primary);
	border-radius: 50%;
	opacity: 0.5;
	animation: gigi-badge-spin 12s linear infinite;
}

@keyframes gigi-badge-spin {
	to { transform: rotate(360deg); }
}

.gigi-site-nav__badge:hover {
	transform: rotate(0deg) scale(1.08);
}

.gigi-site-nav__badge-text {
	font-family: var(--gigi-font-headline);
	font-size: 13px;
	font-weight: 900;
	color: var(--gigi-primary);
	text-transform: uppercase;
	text-align: center;
	line-height: 1.2;
	letter-spacing: 0.05em;
	position: relative;
	z-index: 1;
}


/* -- Mobile -- */

@media (max-width: 767px) {
	.gigi-site-nav {
		padding: 0 16px;
		gap: 14px;
		height: 48px;
		top: 12px;
		margin: -24px 0 -24px;
	}

	.gigi-site-nav__links {
		margin: 0;
		gap: 0;
	}

	.gigi-site-nav__links li + li::before {
		display: none;
	}

	.gigi-site-nav__links a {
		padding: 6px 8px;
		display: flex;
		align-items: center;
	}

	.gigi-site-nav__icon {
		display: block;
	}

	.gigi-site-nav__label {
		display: none;
	}

	.gigi-site-nav__left {
		gap: 10px;
	}

	.gigi-site-nav__logo img {
		height: 26px;
	}

	.gigi-site-nav__badge {
		width: 76px;
		height: 76px;
		margin-left: 0;
	}

	.gigi-site-nav__badge-text {
		font-size: 11px;
	}
}

/* -- Subpage override: no negative margin (no hero overlap) -- */

.gigi-site-nav--subpage {
	margin: 16px 0 24px;
}

@media (max-width: 767px) {
	.gigi-site-nav--subpage {
		margin: 12px 0 0;
	}
}

/* ==========================================================================
   4. Buttons
   ========================================================================== */

.gigi-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 36px;
	border-radius: 0;
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: 18px;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	transition: all 0.25s ease;
	cursor: pointer;
	border: var(--gigi-border-width) solid transparent;
	line-height: 1.2;
}

/* Primary: solid brand green */
.gigi-btn--primary {
	background: var(--gigi-primary);
	color: var(--gigi-bg-light);
	border-color: var(--gigi-primary);
}

.gigi-btn--primary:hover {
	background: transparent;
	color: var(--gigi-primary);
}

/* Outline: transparent with white border (for dark backgrounds) */
.gigi-btn--outline {
	background: transparent;
	color: var(--gigi-bg-light);
	border-color: var(--gigi-bg-light);
}

.gigi-btn--outline:hover {
	background: var(--gigi-bg-light);
	color: var(--gigi-primary);
}

/* White: solid white fill */
.gigi-btn--white {
	background: var(--gigi-bg-light);
	color: var(--gigi-primary);
	border-color: var(--gigi-bg-light);
}

.gigi-btn--white:hover {
	background: transparent;
	color: var(--gigi-bg-light);
}

/* Dark outline: for cream backgrounds */
.gigi-btn--dark-outline {
	background: transparent;
	color: var(--gigi-primary);
	border-color: var(--gigi-primary);
}

.gigi-btn--dark-outline:hover {
	background: var(--gigi-primary);
	color: var(--gigi-bg-light);
}

@media (max-width: 767px) {
	.gigi-btn {
		font-size: 16px;
		padding: 12px 28px;
	}
}

/* ==========================================================================
   5. Hero Section — Two-Column Collage
   ========================================================================== */

/* Hero: Vertikaler Stack — Animation → Text → Location Bar */
.gigi-hero-section {
	display: flex;
	flex-direction: column;
	background: var(--gigi-bg-dark);
	position: relative;
	overflow: hidden;
}

/* ROW 1: Fullscreen animation with text overlay */
.gigi-hero__animation {
	width: 100%;
	aspect-ratio: 16 / 9;
	max-height: 80vh;
	position: relative;
	overflow: hidden;
}

/* Text + CTAs — overlaid at bottom of animation */
.gigi-hero__text-panel {
	position: absolute;
	bottom: 12%;
	left: 0;
	right: 0;
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 32px 40px;
	background: none;
}

.gigi-hero__h1 {
	font-family: var(--gigi-font-body);
	font-weight: 400;
	font-size: clamp(16px, 1.8vw, 20px);
	color: var(--gigi-font-light);
	line-height: 1.7;
	margin: 0 0 32px;
	max-width: 640px;
}

.gigi-hero__cta-group {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	justify-content: center;
}

/* Location bar — compact taskbar, expands on hover */
.gigi-hero__location-bar {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 4;
	overflow: visible;
	padding: 14px 40px;
	background: transparent;
	box-shadow: none;
	transition: padding 0.4s ease, box-shadow 0.4s ease, background 0.4s ease;
}

.gigi-hero__location-bar:hover,
.gigi-hero__location-bar:focus-within,
.gigi-hero__location-bar.is-open {
	padding: 16px 40px;
	background: var(--gigi-bg-dark-2);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4);
}

.gigi-hero__location-bar::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("/wp-content/uploads/2025/12/footer_bg_gigi.png") center / cover no-repeat;
	opacity: 0;
	z-index: 0;
	overflow: hidden;
	transition: opacity 0.4s ease;
}

.gigi-hero__location-bar:hover::before,
.gigi-hero__location-bar:focus-within::before,
.gigi-hero__location-bar.is-open::before {
	opacity: 0.35;
}

.gigi-hero__location-bg {
	display: none;
}

.gigi-hero__location-content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	max-width: 720px;
	margin: 0 auto;
}

/* --- Collapsed: Hint mit Button-Pill --- */
.gigi-hero__location-hint {
	position: relative;
	z-index: 3;
	font-family: var(--gigi-font-headline);
	font-size: 14px;
	font-weight: 800;
	color: var(--gigi-bg-light);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	white-space: nowrap;
	background: none;
	padding: 0;
	cursor: pointer;
	opacity: 1;
	max-height: 50px;
	display: flex;
	align-items: center;
	transition: opacity 0.25s ease 0.15s, max-height 0.25s ease 0.15s;
}

.gigi-hero__location-hint-btn {
	display: inline-block;
	background: var(--gigi-bg-light);
	color: var(--gigi-font-dark);
	padding: 8px 22px;
	border-radius: 0;
	margin: 0 8px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}


.gigi-hero__location-bar:hover .gigi-hero__location-hint,
.gigi-hero__location-bar:focus-within .gigi-hero__location-hint,
.gigi-hero__location-bar.is-open .gigi-hero__location-hint {
	opacity: 0;
	pointer-events: none;
	max-height: 0;
	overflow: hidden;
	padding: 0;
	margin: 0;
	transition: opacity 0.2s ease, max-height 0.2s ease;
}

/* --- Expanded: Text + Formular — gestaffelt --- */
.gigi-hero__location-text {
	flex-shrink: 0;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	text-align: center;
	transform: translateY(10px);
	transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.15s,
	            opacity 0.35s ease 0.2s,
	            transform 0.35s ease 0.2s;
}

.gigi-hero__location-bar:hover .gigi-hero__location-text,
.gigi-hero__location-bar:focus-within .gigi-hero__location-text,
.gigi-hero__location-bar.is-open .gigi-hero__location-text {
	max-height: 50px;
	opacity: 1;
	transform: translateY(0);
}

.gigi-hero__location-content .gigi-plz-check--hero {
	width: 100%;
	max-width: 420px;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	margin-top: 0;
	transform: translateY(10px);
	transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1) 0.25s,
	            opacity 0.35s ease 0.3s,
	            transform 0.35s ease 0.3s,
	            margin 0.4s ease 0.25s;
}

.gigi-hero__location-bar:hover .gigi-plz-check--hero,
.gigi-hero__location-bar:focus-within .gigi-plz-check--hero,
.gigi-hero__location-bar.is-open .gigi-plz-check--hero {
	max-height: 140px;
	opacity: 1;
	margin-top: 8px;
	transform: translateY(0);
}

/* --- Widescreen (>1440px) — Hero-Höhe deckeln --- */
@media (min-width: 1441px) {

	.gigi-hero__animation {
		max-height: 700px;
	}

	.gigi-hero__text-panel {
		bottom: 14%;
	}
}

/* --- Tablet (768–1024px) — 4:3 --- */
@media (max-width: 1024px) {

	.gigi-hero__animation {
		aspect-ratio: 4 / 3;
		max-height: none;
	}

	.gigi-hero__text-panel {
		bottom: 10%;
		padding: 24px 32px;
	}

	.gigi-hero__cta-group {
		gap: 16px;
	}
}

/* --- Mobile (≤767px) — vh-basiert, kein aspect-ratio --- */
@media (max-width: 767px) {

	.gigi-hero__animation {
		aspect-ratio: 4 / 3;
		max-height: 55svh;
	}

	.gigi-hero__text-panel {
		bottom: 22%;
		padding: 20px 24px;
	}

	.gigi-hero__h1 {
		font-size: clamp(14px, 3.5vw, 17px);
		margin-bottom: 20px;
	}

	/* CTA Buttons — nebeneinander, wrap bei Platzmangel */
	.gigi-hero__cta-group {
		gap: 10px;
		flex-wrap: wrap;
		justify-content: center;
	}

	.gigi-hero__cta-group .gigi-btn {
		font-size: 13px;
		padding: 10px 20px;
	}

	/* Location bar — kompakte Taskleiste, mobile */
	.gigi-hero__location-content {
		flex-direction: column;
		text-align: center;
		gap: 12px;
	}

	.gigi-hero__location-bar {
		padding: 12px 20px;
	}

	.gigi-hero__location-bar:hover,
	.gigi-hero__location-bar:focus-within,
	.gigi-hero__location-bar.is-open {
		padding: 14px 16px;
	}

	.gigi-hero__plz-heading {
		font-size: 14px;
	}

	.gigi-hero__location-bar:hover .gigi-hero__plz-heading,
	.gigi-hero__location-bar:focus-within .gigi-hero__plz-heading,
	.gigi-hero__location-bar.is-open .gigi-hero__plz-heading {
		font-size: 16px;
	}

	.gigi-plz-check--hero .gigi-plz-check__input {
		padding: 10px 16px;
		font-size: 14px;
	}

	.gigi-plz-check--hero .gigi-plz-check__button {
		padding: 10px 20px;
		font-size: 14px;
	}

}

/* --- Small Mobile (≤390px) — weniger Höhe, Buttons gestackt --- */
@media (max-width: 390px) {

	.gigi-hero__animation {
		max-height: 55svh;
	}

	.gigi-hero__text-panel {
		bottom: 6%;
	}

	/* Buttons vertikal gestackt — zu eng nebeneinander */
	.gigi-hero__cta-group {
		flex-direction: column;
		flex-wrap: wrap;
		align-items: center;
		gap: 10px;
	}

	.gigi-hero__cta-group .gigi-btn {
		width: 100%;
		max-width: 260px;
		text-align: center;
	}
}

/* ==========================================================================
   6. Section Shared Styles
   ========================================================================== */

.gigi-section__inner {
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
}

.gigi-section__label {
	display: inline-block;
	font-family: var(--gigi-font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gigi-font-muted);
	margin-bottom: 16px;
}

.gigi-section__heading {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(40px, 6vw, 72px);
	color: var(--gigi-font-dark);
	margin: 0 0 var(--gigi-heading-gap);
	text-transform: uppercase;
	letter-spacing: -0.01em;
	line-height: 1;
}

.gigi-section__rule {
	width: 48px;
	height: 2px;
	background: var(--gigi-primary);
	margin: 0 auto var(--gigi-rule-gap);
	display: block;
}

.gigi-section__intro {
	font-family: var(--gigi-font-body);
	font-weight: 400;
	font-size: 17px;
	color: var(--gigi-font-muted);
	max-width: 600px;
	margin: 0 auto 64px;
	line-height: 1.75;
}

/* Dark section modifier */
.gigi-section--dark .gigi-section__label {
	color: rgba(245, 240, 232, 0.5);
}

.gigi-section--dark .gigi-section__heading {
	color: var(--gigi-bg-light);
}

.gigi-section--dark .gigi-section__rule {
	background: rgba(245, 240, 232, 0.3);
}

.gigi-section--dark .gigi-section__intro {
	color: var(--gigi-font-light);
}

@media (max-width: 767px) {
	.gigi-section__heading {
		margin-bottom: 16px;
	}

	.gigi-section__rule {
		margin: 16px auto 32px;
	}

	.gigi-section__intro {
		margin-bottom: 48px;
		font-size: 16px;
	}
}

/* ==========================================================================
   7. USP Section — "Trust No Hype"
   ========================================================================== */

.gigi-section--usp {
	background: var(--gigi-bg-light);
	padding: var(--gigi-section-padding);
}

.gigi-usp__inner {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	gap: 48px;
	align-items: center;
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
}

.gigi-usp__text-col {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
}


.gigi-usp__text-col .gigi-section__rule--left {
	margin-left: auto;
	margin-right: 0;
}

@media (max-width: 1024px) {
	.gigi-usp__text-col .gigi-section__rule--left {
		margin-left: auto;
		margin-right: auto;
	}
}

.gigi-usp__text {
	font-family: var(--gigi-font-body);
	font-weight: 400;
	font-size: 16px;
	color: var(--gigi-font-muted);
	line-height: 1.75;
	margin: 0;
}

.gigi-usp__video-col {
	overflow: hidden;
	max-width: 420px;
}

.gigi-usp__video-col video {
	display: block;
	width: 100%;
	height: auto;
}

@media (max-width: 767px) {
	.gigi-usp__inner {
		grid-template-columns: 1fr;
		gap: 24px;
		text-align: center;
	}

	.gigi-usp__text-col {
		align-items: center;
		text-align: center;
	}

	.gigi-usp__video-col {
		margin: 0 auto;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.gigi-usp__inner {
		grid-template-columns: 1fr;
		gap: 32px;
		text-align: center;
	}

	.gigi-usp__text-col {
		align-items: center;
	}

	.gigi-usp__video-col {
		margin: 0 auto;
	}
}

/* ==========================================================================
   8. Menu Preview Section — Dark BG, Portrait Cards
   ========================================================================== */

.gigi-section--menu-preview {
	background: var(--gigi-bg-dark);
	padding: var(--gigi-section-padding);
	text-align: center;
	position: relative;
}

.gigi-section--menu-preview > * {
	position: relative;
	z-index: 1;
}

.gigi-menu-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 48px;
}

.gigi-menu-card {
	border-radius: var(--gigi-radius);
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: transform 0.3s ease;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	padding: 20px 20px 24px;
	background: var(--gigi-bg-dark-2);
	text-align: center;
	position: relative;
	min-height: 180px;
	aspect-ratio: 1 / 1;
}

.gigi-menu-card__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transition: transform 0.5s ease;
	z-index: 0;
}

.gigi-menu-card::after {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg, rgba(15,45,26,0.15) 0%, rgba(15,45,26,0.75) 100%);
	z-index: 1;
}

.gigi-menu-card:hover {
	transform: scale(1.02);
}

.gigi-menu-card:hover .gigi-menu-card__bg {
	transform: scale(1.06);
}

.gigi-menu-card__title {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(24px, 2.6vw, 36px);
	color: var(--gigi-bg-light);
	text-transform: uppercase;
	margin: 0;
	letter-spacing: 0.02em;
	position: relative;
	z-index: 2;
	text-shadow: 0 2px 12px rgba(15,45,26,0.6);
}

@media (max-width: 767px) {
	.gigi-menu-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 4px;
		margin-bottom: 32px;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.gigi-menu-grid {
		gap: 12px;
	}
}

/* ==========================================================================
   8b. Stamp Card Section — Cream BG, Two-Column
   ========================================================================== */

.gigi-stamp-card {
	background: var(--gigi-bg-light);
	padding: var(--gigi-section-padding);
	position: relative;
	overflow: visible;
}

.gigi-stamp-card::before,
.gigi-stamp-card::after {
	display: none;
}

/* Header now lives inside text-col — no separate block needed */

.gigi-stamp-card__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
}

/* --- Left: Phone mockup column --- */
.gigi-stamp-card__phone-col {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 2;
}

.gigi-stamp-card__phone-img {
	width: 100%;
	max-width: 520px;
	height: auto;
	display: block;
	object-fit: cover;
}

/* --- Right: Text column --- */
.gigi-stamp-card__text-col {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}

.gigi-stamp-card__text-col .gigi-section__label,
.gigi-stamp-card__text-col .gigi-section__heading {
	margin: 0;
}

.gigi-stamp-card__text-col .gigi-section__rule {
	margin: 0;
}

.gigi-stamp-card__subline {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(14px, 1.6vw, 18px);
	color: var(--gigi-primary);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	margin: 0;
}

.gigi-stamp-card__text {
	font-family: var(--gigi-font-body);
	font-size: 16px;
	color: var(--gigi-font-muted);
	line-height: 1.7;
	margin: 0;
	max-width: 440px;
}

/* Wallet badges row */
.gigi-stamp-card__wallets {
	display: flex;
	gap: 12px;
	margin: 0 0 24px;
}

.gigi-stamp-card__wallet-badge {
	display: inline-block;
	transition: opacity 0.25s ease;
}

.gigi-stamp-card__wallet-badge:hover {
	opacity: 0.8;
}

.gigi-stamp-card__wallet-badge img {
	height: 44px;
	width: auto;
	display: block;
	border-radius: 0;
}

/* --- Responsive --- */
@media (max-width: 767px) {
	.gigi-stamp-card::before,
	.gigi-stamp-card::after {
		height: 32px;
	}

	.gigi-stamp-card__inner {
		grid-template-columns: 1fr;
		gap: 12px;
		text-align: center;
	}

	.gigi-stamp-card__phone-col {
		margin-top: -24px;
		margin-bottom: 0;
	}

	.gigi-stamp-card__phone-img {
		max-width: 100%;
	}

	.gigi-stamp-card__text-col {
		align-items: center;
		gap: 12px;
	}

	.gigi-stamp-card__text {
		max-width: 100%;
		margin-bottom: 8px;
	}

	.gigi-stamp-card__wallets {
		flex-direction: column;
		align-items: center;
		gap: 16px;
		margin-top: 8px;
		margin-bottom: 0;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.gigi-stamp-card__inner {
		gap: 32px;
	}

	.gigi-stamp-card__phone-col {
		margin-top: -64px;
		margin-bottom: -64px;
	}

	.gigi-stamp-card__phone-img {
		max-width: 360px;
	}
}

/* ==========================================================================
   9. CTA Banner
   ========================================================================== */

/* --- Pizza Abo Section --- */

.gigi-pizza-abo {
	background: var(--gigi-bg-dark);
	padding: 60px 40px;
	overflow: hidden;
	position: relative;
}


.gigi-pizza-abo__inner {
	position: relative;
	z-index: 1;
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 3fr 2fr;
	align-items: center;
	gap: 24px;
}

.gigi-pizza-abo__text-col {
	position: relative;
	text-align: right;
	z-index: 2;
}

.gigi-pizza-abo__heading {
	position: relative;
	z-index: 10;
	color: var(--gigi-bg-light);
	margin-bottom: 12px;
}

.gigi-pizza-abo__rule {
	background: rgba(245, 240, 232, 0.3);
	margin-left: auto;
	margin-right: 0;
}

.gigi-pizza-abo__intro {
	color: var(--gigi-font-light);
	text-align: right;
	max-width: none;
	margin: 0 0 24px;
}

.gigi-pizza-abo__image-col {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

.gigi-pizza-abo__pizza-img {
	max-width: 420px;
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
}

/* Cream Button Variant */
.gigi-btn--cream {
	display: inline-block;
	padding: 14px 40px;
	background: var(--gigi-bg-light);
	color: var(--gigi-primary);
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: 16px;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: 0;
	letter-spacing: 0.05em;
	transition: background 0.2s ease, transform 0.2s ease;
}

.gigi-btn--cream:hover {
	background: var(--gigi-primary);
	color: var(--gigi-bg-light);
}

@media (max-width: 767px) {
	.gigi-pizza-abo {
		padding: 64px 24px;
		position: relative;
		overflow: hidden;
	}

	.gigi-pizza-abo__inner {
		grid-template-columns: 1fr;
		gap: 32px;
		position: relative;
		z-index: 2;
	}

	.gigi-pizza-abo__text-col {
		padding-left: 0;
		text-align: center;
		position: relative;
		z-index: 2;
	}

	.gigi-pizza-abo__image-col {
		justify-content: center;
	}

	.gigi-pizza-abo__pizza-img {
		max-width: 100%;
	}

	.gigi-pizza-abo__heading {
		font-size: clamp(28px, 8vw, 40px);
		text-align: center;
	}

	.gigi-pizza-abo__intro {
		text-align: center;
	}

	.gigi-pizza-abo__rule {
		margin-left: auto;
		margin-right: auto;
	}

	.gigi-pizza-abo__subline {
		margin-bottom: 24px;
	}
}

/* ==========================================================================
   10. Local / Trust Section — Cream BG
   ========================================================================== */

.gigi-section--local {
	background: var(--gigi-bg-light);
	padding: var(--gigi-section-padding);
	color: var(--gigi-font-dark);
}

.gigi-local-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: center;
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
}

.gigi-local-grid--text-first .gigi-local-grid__text-col {
	text-align: right;
}

.gigi-local-grid--text-first .gigi-local-grid__text-col .gigi-section__rule--left {
	margin-left: auto;
	margin-right: 0;
}

.gigi-local-grid--text-first .gigi-trust-badges {
	justify-content: flex-end;
}

.gigi-local-grid__image img {
	width: 100%;
	border-radius: var(--gigi-radius);
	object-fit: cover;
	aspect-ratio: 4 / 3;
}

.gigi-local-grid__image-placeholder {
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: var(--gigi-radius);
	background: rgba(0, 58, 24, 0.06);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: rgba(0, 58, 24, 0.3);
	border: 1px dashed rgba(0, 58, 24, 0.2);
}

.gigi-local-grid__image-placeholder svg {
	width: 64px;
	height: 64px;
	margin-bottom: 12px;
	opacity: 0.5;
}

.gigi-local-grid__heading {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(36px, 4vw, 56px);
	color: var(--gigi-font-dark);
	text-transform: uppercase;
	margin: 0 0 20px;
	line-height: 1;
}

.gigi-local-grid__text {
	font-family: var(--gigi-font-body);
	font-weight: 400;
	font-size: 16px;
	line-height: 1.8;
	color: var(--gigi-font-muted);
	margin: 0 0 40px;
}

.gigi-trust-badges {
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.gigi-trust-badge {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 20px;
	background: rgba(0, 58, 24, 0.06);
	border-radius: var(--gigi-radius-sm);
	border: 1px solid rgba(0, 58, 24, 0.12);
}

.gigi-trust-badge__icon {
	color: var(--gigi-primary);
	flex-shrink: 0;
}

.gigi-trust-badge__icon svg {
	width: 24px;
	height: 24px;
}

.gigi-trust-badge__text {
	font-family: var(--gigi-font-body);
	font-weight: 600;
	font-size: 14px;
	color: var(--gigi-font-dark);
}

.gigi-trust-badge__sub {
	font-weight: 400;
	font-size: 12px;
	color: var(--gigi-font-muted);
	display: block;
}

@media (max-width: 767px) {
	.gigi-local-grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.gigi-local-grid__image {
		order: 2;
	}

	.gigi-local-grid--text-first .gigi-local-grid__text-col {
		text-align: center;
	}

	.gigi-local-grid--text-first .gigi-local-grid__text-col .gigi-section__rule--left {
		margin-left: auto;
		margin-right: auto;
	}

	.gigi-local-grid--text-first .gigi-trust-badges {
		justify-content: center;
	}

	.gigi-local-grid__heading {
		font-size: clamp(32px, 8vw, 48px);
	}

	.gigi-trust-badges {
		gap: 8px;
		flex-wrap: nowrap;
	}

	.gigi-trust-badge {
		flex: 1 1 0;
		justify-content: center;
		padding: 10px 8px;
		flex-direction: column;
		text-align: center;
		gap: 6px;
	}
}

/* ==========================================================================
   11. Kontakt Section — Dark BG
   ========================================================================== */

.gigi-section--kontakt {
	background: var(--gigi-bg-dark);
	padding: var(--gigi-section-padding);
	color: var(--gigi-font-light);
	position: relative;
	z-index: 0;
}

/* Karten-Hintergrundbild */
.gigi-section--kontakt::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("/wp-content/uploads/2025/12/footer_bg_gigi.png") center / cover no-repeat;
	opacity: 0.2;
	z-index: -1;
}

.gigi-kontakt-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
}

.gigi-kontakt-grid > :first-child {
	padding-left: 64px;
}

@media (max-width: 767px) {
	.gigi-kontakt-grid > :first-child {
		padding-left: 0;
	}
}

.gigi-kontakt-list {
	list-style: none;
	padding: 0;
	margin: 24px 0 0;
}

.gigi-kontakt-list__item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 14px 0;
	border-bottom: 1px solid rgba(245, 240, 232, 0.1);
}

.gigi-kontakt-list__item:last-child {
	border-bottom: none;
}

.gigi-kontakt-list__icon {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	color: var(--gigi-bg-light);
	margin-top: 2px;
}

.gigi-kontakt-list__icon svg {
	width: 100%;
	height: 100%;
}

.gigi-kontakt-list__label {
	font-family: var(--gigi-font-body);
	font-weight: 600;
	font-size: 12px;
	color: rgba(245, 240, 232, 0.5);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	display: block;
}

.gigi-kontakt-list__value {
	font-family: var(--gigi-font-body);
	font-weight: 400;
	font-size: 16px;
	color: var(--gigi-bg-light);
	display: block;
}

.gigi-kontakt-list__value a {
	color: var(--gigi-font-light);
	text-decoration: none;
}

.gigi-kontakt-list__value a:hover {
	color: var(--gigi-bg-light-2);
	text-decoration: underline;
}

/* ── Kontakt Map Placeholder ───────────────────── */

.gigi-kontakt-map {
	width: 100%;
	height: 100%;
}

.gigi-kontakt-map__embed {
	position: relative;
	width: 100%;
	height: 100%;
	border-radius: var(--gigi-radius);
	overflow: hidden;
}

.gigi-kontakt-map__embed::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--gigi-bg-light);
	opacity: 0.35;
	pointer-events: none;
	z-index: 1;
	transition: opacity 0.4s ease;
}

.gigi-kontakt-map__embed:hover::after {
	opacity: 0;
}

.gigi-kontakt-map__embed iframe {
	display: block;
	width: 100%;
	height: 100%;
	filter: grayscale(1);
	transition: filter 0.4s ease;
}

.gigi-kontakt-map__embed:hover iframe {
	filter: grayscale(0);
}

/* ── Hero PLZ-Check Overlay ───────────────────── */

.gigi-hero__plz-overlay {
	position: absolute;
	top: 0;
	left: 0;
	padding: 28px 32px;
	z-index: 2;
	text-align: left;
	max-width: 400px;
}

.gigi-hero__plz-heading {
	font-family: var(--gigi-font-headline);
	font-size: 16px;
	color: var(--gigi-bg-light);
	margin: 0;
	line-height: 1.2;
	white-space: nowrap;
	transition: font-size 0.4s ease;
}

.gigi-hero__location-bar:hover .gigi-hero__plz-heading,
.gigi-hero__location-bar:focus-within .gigi-hero__plz-heading {
	font-size: 18px;
}

.gigi-hero__plz-subline {
	font-family: var(--gigi-font-body);
	font-size: 11px;
	color: var(--gigi-bg-light-2);
	margin: 2px 0 0;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 600;
	opacity: 0.6;
	transition: opacity 0.4s ease;
}

.gigi-hero__location-bar:hover .gigi-hero__plz-subline,
.gigi-hero__location-bar:focus-within .gigi-hero__plz-subline {
	opacity: 1;
}

/* PLZ-Check Variante im Hero — Pill-in-Pill */
.gigi-plz-check--hero .gigi-plz-check__form {
	display: flex;
	gap: 0;
	align-items: stretch;
	background: var(--gigi-bg-light);
	border-radius: 0;
	padding: 4px;
	box-shadow: var(--gigi-shadow-lg);
}

.gigi-plz-check--hero .gigi-plz-check__input {
	flex: 1 1 0;
	min-width: 0;
	padding: 10px 16px;
	font-size: 14px;
	border: none;
	border-radius: 0;
	background: transparent;
	color: var(--gigi-font-dark);
	font-family: var(--gigi-font-body);
	font-weight: 500;
	outline: none;
}

.gigi-plz-check--hero .gigi-plz-check__input::placeholder {
	color: var(--gigi-font-dark);
	opacity: 0.4;
}

.gigi-plz-check--hero .gigi-plz-check__input:focus {
	outline: none;
}

.gigi-plz-check--hero .gigi-plz-check__input--invalid {
	color: var(--gigi-detail-2);
}

.gigi-plz-check--hero .gigi-plz-check__button {
	flex: 0 0 auto;
	padding: 10px 24px;
	font-size: 14px;
	border: none;
	border-radius: 0;
	background: var(--gigi-primary);
	color: var(--gigi-white);
	font-family: var(--gigi-font-body);
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color 0.2s ease, transform 0.1s ease;
}

.gigi-plz-check--hero .gigi-plz-check__button:hover {
	background: var(--gigi-bg-dark-2);
	color: var(--gigi-white);
}

.gigi-plz-check--hero .gigi-plz-check__button:active {
	transform: scale(0.97);
}

/* Result Panel — slides down under the pill */
.gigi-plz-check--hero .gigi-plz-check__result {
	margin-top: 10px;
	border-radius: 0;
	padding: 0;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	transition: max-height 0.35s ease, opacity 0.3s ease, padding 0.35s ease;
	font-family: var(--gigi-font-body);
	font-size: 14px;
	line-height: 1.5;
	box-shadow: var(--gigi-shadow-lg);
}

.gigi-plz-check--hero .gigi-plz-check__result.is-visible {
	max-height: 100px;
	opacity: 1;
	padding: 16px 20px;
}

/* Valid state */
.gigi-plz-check--hero .gigi-plz-check__result--valid {
	background: var(--gigi-bg-light);
	color: var(--gigi-font-dark);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

/* Animated checkmark */
.gigi-plz-check--hero .gigi-plz-check__result-check {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
}

.gigi-plz-check--hero .gigi-plz-check__result-check svg {
	width: 36px;
	height: 36px;
}

.gigi-plz-check--hero .gigi-plz-check__result-check circle {
	fill: none;
	stroke: var(--gigi-primary);
	stroke-width: 2;
	stroke-dasharray: 166;
	stroke-dashoffset: 166;
	animation: gigi-check-circle 0.5s ease-out 0.1s forwards;
}

.gigi-plz-check--hero .gigi-plz-check__result-check path {
	fill: none;
	stroke: var(--gigi-primary);
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 48;
	stroke-dashoffset: 48;
	animation: gigi-check-tick 0.35s ease-out 0.45s forwards;
}

@keyframes gigi-check-circle {
	to { stroke-dashoffset: 0; }
}

@keyframes gigi-check-tick {
	to { stroke-dashoffset: 0; }
}

.gigi-plz-check--hero .gigi-plz-check__result--valid .gigi-plz-check__result-text {
	flex: 1 1 auto;
	font-weight: 500;
}

.gigi-plz-check--hero .gigi-plz-check__result--valid .gigi-plz-check__result-cta {
	flex: 0 0 auto;
	display: inline-block;
	background: var(--gigi-primary);
	color: var(--gigi-white);
	font-family: var(--gigi-font-body);
	font-weight: 700;
	font-size: 14px;
	padding: 10px 24px;
	border-radius: 0;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s ease, transform 0.1s ease;
}

.gigi-plz-check--hero .gigi-plz-check__result--valid .gigi-plz-check__result-cta:hover {
	background: var(--gigi-bg-dark-2);
}

.gigi-plz-check--hero .gigi-plz-check__result--valid .gigi-plz-check__result-cta:active {
	transform: scale(0.97);
}

/* Invalid state */
.gigi-plz-check--hero .gigi-plz-check__result--invalid {
	background: var(--gigi-bg-light-2);
	color: var(--gigi-font-dark);
}

.gigi-plz-check--hero .gigi-plz-check__result--invalid a {
	color: var(--gigi-detail-1);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.gigi-plz-check--hero .gigi-plz-check__result--invalid a:hover {
	color: var(--gigi-primary);
}

/* Format error (not 5 digits) */
.gigi-plz-check--hero .gigi-plz-check__result--error {
	background: var(--gigi-bg-light-2);
	color: var(--gigi-detail-2);
}

@media (max-width: 767px) {
	.gigi-kontakt-grid {
		grid-template-columns: 1fr;
		gap: 48px;
	}

	.gigi-kontakt-map {
		height: 220px;
	}

	/* Hero PLZ-Overlay wird im Hero-Text-Panel gezeigt auf Mobile */
	.gigi-hero__plz-overlay {
		position: static;
		max-width: 100%;
		padding: 24px 0 0;
	}
}

/* ==========================================================================
   11b. Footer Discover Block
   ========================================================================== */

.gigi-footer-discover {
	background: var(--gigi-bg-dark);
	padding: 48px 40px;
	border-top: 1px solid rgba(245, 240, 232, 0.08);
}

.gigi-footer-discover__inner {
	max-width: 1200px;
	margin: 0 auto;
	border: 1px solid rgba(245, 240, 232, 0.25);
	border-radius: var(--gigi-radius);
	padding: 40px 48px;
}

@media (max-width: 575px) {
	.gigi-footer-discover__inner {
		padding: 28px 24px;
	}
}

.gigi-footer-discover__heading {
	font-family: var(--gigi-font-headline);
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--gigi-font-light);
	margin: 0 0 24px;
	opacity: 0.7;
}

.gigi-footer-discover__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px 32px;
}

.gigi-footer-discover__links a {
	font-family: var(--gigi-font-body);
	font-weight: 400;
	font-size: 14px;
	color: var(--gigi-font-light);
	text-decoration: none;
	transition: color 0.2s ease;
}

.gigi-footer-discover__links a:hover {
	color: var(--gigi-bg-light);
}

@media (max-width: 991px) {
	.gigi-footer-discover__links {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 575px) {
	.gigi-footer-discover {
		padding: 40px 24px;
	}

	.gigi-footer-discover__links {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.gigi-footer-discover__links a {
		font-size: 14px;
	}
}

/* ==========================================================================
   12. Footer Nav Strip
   ========================================================================== */

.gigi-footer-nav {
	background: var(--gigi-bg-dark);
	padding: 32px 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 24px;
	border-top: 1px solid rgba(245, 240, 232, 0.08);
	position: relative;
	overflow: hidden;
}

.gigi-footer-nav > * {
	position: relative;
	z-index: 1;
}

.gigi-footer-nav__logo {
	display: flex;
	align-items: center;
}

.gigi-footer-nav__logo img {
	height: 32px;
	width: auto;
}

.gigi-footer-nav__links {
	display: flex;
	gap: 32px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gigi-footer-nav__links a {
	font-family: var(--gigi-font-headline);
	font-size: 14px;
	font-weight: 700;
	color: var(--gigi-font-light);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	transition: color 0.2s ease;
}

.gigi-footer-nav__links a:hover {
	color: var(--gigi-bg-light-2);
}

.gigi-footer-nav__legal {
	display: flex;
	align-items: center;
	gap: 8px;
}

.gigi-footer-nav__legal a {
	font-family: var(--gigi-font-body);
	font-size: 12px;
	color: var(--gigi-font-light);
	text-decoration: none;
	opacity: 0.5;
	transition: opacity 0.2s ease;
}

.gigi-footer-nav__legal a:hover {
	opacity: 1;
	color: var(--gigi-white);
}

.gigi-footer-nav__legal-sep {
	color: var(--gigi-font-light);
	opacity: 0.3;
	font-size: 12px;
}

.gigi-footer-nav__copy {
	font-family: var(--gigi-font-body);
	font-size: 12px;
	color: var(--gigi-bg-light-2);
	margin: 0;
	opacity: 0.4;
}

@media (max-width: 767px) {
	.gigi-footer-nav {
		flex-direction: column;
		align-items: center;
		text-align: center;
		padding: 40px 24px 32px;
		gap: 24px;
	}

	.gigi-footer-nav__links {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		gap: 12px 24px;
	}

	.gigi-footer-nav__links a {
		font-size: 13px;
	}

	.gigi-footer-nav__legal {
		gap: 10px;
	}

	.gigi-footer-nav__copy {
		font-size: 11px;
	}
}

/* ==========================================================================
   13. Pizza Abo Subpage
   ========================================================================== */

/* --- Hero: Dark BG, Text left, Pizza right --- */
.gigi-abo-hero {
	background: var(--gigi-bg-dark);
	margin-top: 24px;
	padding: 40px 40px 60px;
	overflow: hidden;
	position: relative;
}

.gigi-abo-hero__inner {
	position: relative;
	z-index: 1;
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 0;
}

.gigi-abo-hero__text {
	position: relative;
	text-align: right;
	padding-left: 40px;
	z-index: 2;
}

.gigi-abo-hero__heading {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(40px, 5.5vw, 68px);
	color: var(--gigi-bg-light);
	text-transform: uppercase;
	margin: 0 0 16px;
	line-height: 1;
	letter-spacing: -0.01em;
}

.gigi-abo-hero__subline {
	font-family: var(--gigi-font-body);
	font-size: 17px;
	color: var(--gigi-font-light);
	line-height: 1.7;
	margin: 0 0 32px;
	max-width: 440px;
	margin-left: auto;
}

.gigi-abo-hero__image {
	display: flex;
	justify-content: center;
	align-items: center;
}

.gigi-abo-hero__pizza-img {
	width: 100%;
	max-width: 380px;
	height: auto;
	object-fit: cover;
	box-shadow: none;
}

@media (max-width: 767px) {
	.gigi-abo-hero {
		padding: 32px 24px 48px;
	}

	.gigi-abo-hero__inner {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.gigi-abo-hero__image {
		order: -1;
	}

	.gigi-abo-hero__text {
		padding-left: 0;
		text-align: center;
	}

	.gigi-abo-hero__heading {
		font-size: clamp(28px, 8vw, 40px);
	}

	.gigi-abo-hero__subline {
		margin-left: auto;
		margin-right: auto;
	}

	.gigi-abo-hero__pizza-img {
		max-width: 100%;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.gigi-abo-hero {
		padding: 100px 32px 80px;
	}

	.gigi-abo-hero__inner {
		gap: 32px;
	}

	.gigi-abo-hero__pizza-img {
		max-width: 320px;
	}
}

/* --- Steps Section: 3-column grid --- */
.gigi-abo-steps {
	background: var(--gigi-bg-light);
	padding: var(--gigi-section-padding);
}

.gigi-stamp-steps {
	background: var(--gigi-bg-dark);
	padding: var(--gigi-section-padding);
}

.gigi-stamp-steps .gigi-section__label {
	color: var(--gigi-font-light);
}

.gigi-stamp-steps .gigi-section__heading {
	color: var(--gigi-bg-light);
}

.gigi-stamp-steps .gigi-abo-steps__grid {
	border-color: rgba(245, 240, 232, 0.18);
}

.gigi-stamp-steps .gigi-abo-step {
	border-right-color: rgba(245, 240, 232, 0.18);
}

.gigi-stamp-steps .gigi-abo-step:hover {
	background: var(--gigi-bg-dark-2);
}

.gigi-stamp-steps .gigi-abo-step__number {
	color: var(--gigi-bg-light);
	opacity: 0.25;
}

.gigi-stamp-steps .gigi-abo-step__title {
	color: var(--gigi-bg-light);
}

.gigi-stamp-steps .gigi-abo-step__text {
	color: var(--gigi-font-light);
}

.gigi-abo-steps__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
	border: 1px solid rgba(26, 26, 26, 0.12);
	border-radius: var(--gigi-radius);
	overflow: hidden;
}

.gigi-abo-step {
	padding: 48px 36px;
	text-align: center;
	border-right: 1px solid rgba(26, 26, 26, 0.12);
	transition: background 0.2s ease;
}

.gigi-abo-step:last-child {
	border-right: none;
}

.gigi-abo-step:hover {
	background: var(--gigi-bg-light-2);
}

.gigi-abo-step__number {
	display: block;
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: 48px;
	color: var(--gigi-primary);
	opacity: 0.2;
	margin-bottom: 16px;
	line-height: 1;
}

.gigi-abo-step__title {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(20px, 2vw, 26px);
	color: var(--gigi-font-dark);
	text-transform: uppercase;
	margin: 0 0 16px;
}

.gigi-abo-step__text {
	font-family: var(--gigi-font-body);
	font-weight: 400;
	font-size: 15px;
	color: var(--gigi-font-muted);
	line-height: 1.75;
	margin: 0;
}

@media (max-width: 767px) {
	.gigi-abo-steps__grid {
		grid-template-columns: 1fr;
	}

	.gigi-abo-step {
		border-right: none;
		border-bottom: 1px solid rgba(26, 26, 26, 0.12);
		padding: 32px 24px;
	}

	.gigi-abo-step:last-child {
		border-bottom: none;
	}

	.gigi-abo-step__number {
		font-size: 32px;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.gigi-abo-step {
		padding: 36px 24px;
	}
}

/* --- CTA Section: Dark BG, centered --- */
.gigi-abo-cta {
	background: var(--gigi-bg-dark);
	padding: var(--gigi-section-padding);
	position: relative;
	overflow: hidden;
}

.gigi-abo-cta--light {
	background: var(--gigi-bg-light);
}

.gigi-abo-cta--light .gigi-abo-cta__heading {
	color: var(--gigi-font-dark);
}

.gigi-abo-cta--light .gigi-abo-cta__text {
	color: var(--gigi-font-muted);
}

.gigi-abo-cta > * {
	position: relative;
	z-index: 1;
}

.gigi-abo-cta__heading {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(36px, 5vw, 64px);
	color: var(--gigi-bg-light);
	text-transform: uppercase;
	margin: 0 0 16px;
	line-height: 1.05;
}

.gigi-abo-cta__text {
	font-family: var(--gigi-font-body);
	font-size: 17px;
	color: var(--gigi-font-light);
	margin: 0 0 32px;
	line-height: 1.7;
}

@media (max-width: 767px) {
	.gigi-abo-cta {
		padding: 64px 24px;
	}

	.gigi-abo-cta__heading {
		font-size: clamp(28px, 8vw, 48px);
	}

	.gigi-abo-cta__text {
		font-size: 15px;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.gigi-abo-cta {
		padding: 80px 32px;
	}
}

/* ==========================================================================
   14. Stamp Card Subpage
   ========================================================================== */

/* --- Hero: Cream BG, Phone left, Text right --- */
.gigi-stamp-hero {
	background: var(--gigi-bg-light);
	padding: 100px 40px 80px;
}

.gigi-stamp-hero__inner {
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: 64px;
}

.gigi-stamp-hero__image-col {
	display: flex;
	justify-content: center;
}

.gigi-stamp-hero__image {
	width: 100%;
	max-width: 380px;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.gigi-stamp-hero__heading {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(48px, 6vw, 80px);
	color: var(--gigi-font-dark);
	text-transform: uppercase;
	margin: 0 0 8px;
	line-height: 1;
}

.gigi-stamp-hero__subline {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(14px, 1.6vw, 18px);
	color: var(--gigi-primary);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	margin: 0 0 16px;
}

.gigi-stamp-hero__text {
	font-family: var(--gigi-font-body);
	font-size: 16px;
	color: var(--gigi-font-muted);
	line-height: 1.7;
	margin: 0 0 24px;
	max-width: 440px;
}

.gigi-stamp-hero__wallets {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

/* Stamp Steps reuses abo-steps__grid + abo-step styles (shared above) */

@media (max-width: 767px) {
	.gigi-stamp-hero {
		padding: 100px 24px 64px;
	}

	.gigi-stamp-hero__inner {
		grid-template-columns: 1fr;
		gap: 24px;
		text-align: center;
	}

	.gigi-stamp-hero__image {
		max-width: 100%;
	}

	.gigi-stamp-hero__text-col {
		align-items: center;
		display: flex;
		flex-direction: column;
	}

	.gigi-stamp-hero__text {
		max-width: 100%;
	}

	.gigi-stamp-hero__wallets {
		flex-direction: column;
		align-items: center;
		gap: 16px;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.gigi-stamp-hero {
		padding: 100px 32px 72px;
	}

	.gigi-stamp-hero__inner {
		gap: 40px;
	}

	.gigi-stamp-hero__image {
		max-width: 320px;
	}
}

/* ==========================================================================
   15. Elementor Editor Fix
   ========================================================================== */

.elementor-editor-active .gigi-site-nav {
	position: relative;
	top: auto;
}

/* ==========================================================================
   14. Utility Classes
   ========================================================================== */

.gigi-text-center {
	text-align: center;
}

/* Rule left-aligned variant (no auto-margin) */
.gigi-section__rule--left {
	margin-left: 0;
	margin-right: auto;
}


.gigi-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ==========================================================================
   15. Subpage Styles
   ========================================================================== */

body.gigi-subpage-style {
	font-family: var(--gigi-font-body);
	color: var(--gigi-font-dark);
	background-color: var(--gigi-bg-light);
}

/* Elementor content sits below the sticky nav bar */
body.gigi-subpage-style .elementor {
	padding-top: 80px;
}

@media (max-width: 767px) {
	body.gigi-subpage-style .elementor {
		padding-top: 64px;
	}
}

/* Admin bar offset for sticky nav on subpages */
body.admin-bar.gigi-subpage-style .gigi-site-nav {
	top: 48px;
}

/* ==========================================================================
   16. Shop Page — Redirect (kein eigenes CSS nötig, template-shop.php leitet weiter)
   ========================================================================== */

/* ==========================================================================
   17. Legal Pages (Datenschutz, Impressum)
   ========================================================================== */

.gigi-legal-page {
	padding-top: 100px;
	padding-bottom: 80px;
}

.gigi-legal {
	max-width: 780px;
	margin: 0 auto;
	padding: 0 24px;
}

.gigi-legal__header {
	margin-bottom: 48px;
}

.gigi-legal__title {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(32px, 5vw, 48px);
	color: var(--gigi-primary);
	margin: 0 0 8px;
}

.gigi-legal__meta {
	font-family: var(--gigi-font-body);
	font-size: 14px;
	color: var(--gigi-font-light);
	margin: 0;
}

.gigi-legal__content h2 {
	font-family: var(--gigi-font-headline);
	font-weight: 800;
	font-size: clamp(20px, 3vw, 26px);
	color: var(--gigi-primary);
	margin: 48px 0 16px;
	padding-top: 16px;
	border-top: 1px solid var(--gigi-bg-light-2);
}

.gigi-legal__content h2:first-child {
	border-top: none;
	padding-top: 0;
}

.gigi-legal__content h3 {
	font-family: var(--gigi-font-headline);
	font-weight: 700;
	font-size: clamp(16px, 2vw, 20px);
	color: var(--gigi-font-dark);
	margin: 32px 0 12px;
}

.gigi-legal__content p {
	font-family: var(--gigi-font-body);
	font-size: 15px;
	line-height: 1.75;
	color: var(--gigi-font-dark);
	margin: 0 0 16px;
}

.gigi-legal__content ul {
	font-family: var(--gigi-font-body);
	font-size: 15px;
	line-height: 1.75;
	color: var(--gigi-font-dark);
	margin: 0 0 16px;
	padding-left: 24px;
}

.gigi-legal__content li {
	margin-bottom: 6px;
}

.gigi-legal__content a {
	color: var(--gigi-detail-1);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.gigi-legal__content a:hover {
	color: var(--gigi-primary);
}

@media (max-width: 767px) {
	.gigi-legal-page {
		padding-top: 80px;
		padding-bottom: 64px;
	}

	.gigi-legal__content h2 {
		margin-top: 36px;
	}
}

/* ==========================================================================
   17b. Impressum — Karten-Layout
   ========================================================================== */

.gigi-impressum-card {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	background: var(--gigi-bg-light-2);
	border-radius: var(--gigi-radius-sm);
	padding: 28px 24px;
	margin-bottom: 20px;
}

.gigi-impressum-card__icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	background: var(--gigi-primary);
	border-radius: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px;
}

.gigi-impressum-card__icon svg {
	width: 24px;
	height: 24px;
	stroke: var(--gigi-white);
}

.gigi-impressum-card__title {
	font-family: var(--gigi-font-headline);
	font-weight: 700;
	font-size: 16px;
	color: var(--gigi-primary);
	margin: 0 0 8px;
	border: none;
	padding: 0;
}

.gigi-impressum-card__body p {
	font-family: var(--gigi-font-body);
	font-size: 15px;
	line-height: 1.7;
	color: var(--gigi-font-dark);
	margin: 0;
}

/* STRYKE Marketing Button */
.gigi-stryke-button {
	display: inline-block;
	margin-top: 12px;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.gigi-stryke-button:hover {
	transform: scale(1.05);
}

.gigi-stryke-button img {
	display: block;
	height: auto;
	max-width: 200px;
}

/* After cards, revert to standard legal h2 styling */
.gigi-impressum-page .gigi-legal__content h2 {
	font-family: var(--gigi-font-headline);
	font-weight: 800;
	font-size: clamp(20px, 3vw, 26px);
	color: var(--gigi-primary);
	margin: 48px 0 16px;
	padding-top: 16px;
	border-top: 1px solid var(--gigi-bg-light-2);
}

@media (max-width: 767px) {
	.gigi-impressum-card {
		flex-direction: column;
		gap: 12px;
		padding: 20px;
	}
}

/* ==========================================================================
   17c. Kontakt-Seite
   ========================================================================== */

.gigi-contact-page {
	background: var(--gigi-bg-light);
}

/* --- Hero (inline, left column) --- */
.gigi-contact-hero {
	padding: 0;
	text-align: right;
	align-self: start;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.gigi-contact-hero .gigi-section__intro {
	margin-bottom: 20px;
	max-width: 100%;
}

.gigi-contact-hero .gigi-section__rule {
	margin: 20px 0 0;
}

/* --- Main Grid (Form + Info) --- */
.gigi-contact-main {
	padding: var(--gigi-section-padding);
}

.gigi-contact-main__inner {
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 64px;
	align-items: start;
}

/* --- Form --- */
.gigi-contact-form-wrap {
	background: transparent;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
}

.gigi-contact-form__hp {
	position: absolute;
	left: -9999px;
	opacity: 0;
	height: 0;
	overflow: hidden;
}

.gigi-contact-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 20px;
}

.gigi-contact-form__field {
	display: flex;
	flex-direction: column;
	margin-bottom: 20px;
}

.gigi-contact-form__row .gigi-contact-form__field {
	margin-bottom: 0;
}

.gigi-contact-form__field label {
	font-family: var(--gigi-font-body);
	font-weight: 600;
	font-size: 14px;
	color: var(--gigi-font-dark);
	margin-bottom: 6px;
}

.gigi-contact-form__field label span {
	color: var(--gigi-primary);
}

.gigi-contact-form .gigi-contact-form__field input[type="text"],
.gigi-contact-form .gigi-contact-form__field input[type="email"],
.gigi-contact-form .gigi-contact-form__field input[type="tel"],
.gigi-contact-form .gigi-contact-form__field textarea {
	font-family: var(--gigi-font-body);
	font-size: 15px;
	color: var(--gigi-font-light);
	background: var(--gigi-bg-dark);
	border: var(--gigi-border-width) solid var(--gigi-bg-dark-2);
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
	padding: 16px 24px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	outline: none;
	resize: vertical;
}

.gigi-contact-form .gigi-contact-form__field textarea {
	-webkit-border-radius: 0;
	-moz-border-radius: 0;
	border-radius: 0;
	padding: 20px 24px;
}

.gigi-contact-form__field input::placeholder,
.gigi-contact-form__field textarea::placeholder {
	color: var(--gigi-font-light);
	opacity: 0.7;
}

.gigi-contact-form__field input:focus,
.gigi-contact-form__field textarea:focus {
	border-color: var(--gigi-primary);
	box-shadow: 0 0 0 3px rgba(18, 97, 51, 0.15);
	background: var(--gigi-bg-dark-2);
}

.gigi-contact-form__privacy {
	font-family: var(--gigi-font-body);
	font-size: 13px;
	color: var(--gigi-font-muted);
	margin: 0 0 20px;
	line-height: 1.6;
	text-align: right;
}

.gigi-contact-form {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.gigi-contact-form__row,
.gigi-contact-form__field,
.gigi-contact-form__hp,
.gigi-contact-errors {
	width: 100%;
}

.gigi-contact-form__privacy a {
	color: var(--gigi-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}

button.gigi-contact-form__submit,
.gigi-contact-form__submit,
.gigi-contact-form button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--gigi-font-body);
	font-weight: 600;
	font-size: 17px;
	letter-spacing: 0.03em;
	color: var(--gigi-white);
	background-color: var(--gigi-bg-dark);
	border: none;
	outline: none;
	border-radius: 0;
	padding: 20px 48px;
	margin-top: 16px;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
	width: auto;
	box-shadow: 0 4px 16px rgba(26, 71, 42, 0.25);
	text-decoration: none;
	-webkit-appearance: none;
	appearance: none;
}

.gigi-contact-form button.gigi-contact-form__submit:hover,
.gigi-contact-form .gigi-contact-form__submit:hover,
.gigi-contact-form button[type="submit"]:hover {
	background-color: var(--gigi-primary);
	box-shadow: 0 6px 24px rgba(26, 71, 42, 0.35);
	color: var(--gigi-bg-light);
}

.gigi-contact-form button.gigi-contact-form__submit:focus,
.gigi-contact-form .gigi-contact-form__submit:focus,
.gigi-contact-form button[type="submit"]:focus {
	outline: 2px solid var(--gigi-primary);
	outline-offset: 3px;
	background-color: var(--gigi-bg-dark);
}

.gigi-contact-form button.gigi-contact-form__submit:active,
.gigi-contact-form .gigi-contact-form__submit:active,
.gigi-contact-form button[type="submit"]:active {
	transform: scale(0.98);
}

/* --- Success State --- */
.gigi-contact-success {
	text-align: center;
	padding: 40px 20px;
}

.gigi-contact-success__icon {
	width: 64px;
	height: 64px;
	margin: 0 auto 24px;
	background: var(--gigi-primary);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}

.gigi-contact-success__icon svg {
	width: 32px;
	height: 32px;
	stroke: var(--gigi-white);
}

.gigi-contact-success__title {
	font-family: var(--gigi-font-headline);
	font-weight: 800;
	font-size: 24px;
	color: var(--gigi-primary);
	margin: 0 0 12px;
}

.gigi-contact-success__text {
	font-family: var(--gigi-font-body);
	font-size: 16px;
	color: var(--gigi-font-dark);
	margin: 0;
}

/* --- Error State --- */
.gigi-contact-errors {
	background: rgba(229, 57, 53, 0.08);
	border: 2px solid var(--gigi-error);
	border-radius: var(--gigi-radius-sm);
	padding: 16px 20px;
	margin-bottom: 24px;
}

.gigi-contact-errors p {
	font-family: var(--gigi-font-body);
	font-size: 14px;
	color: var(--gigi-error);
	margin: 0 0 4px;
}

.gigi-contact-errors p:last-child {
	margin-bottom: 0;
}

/* --- Info Cards (USP-Style) --- */
.gigi-contact-info {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	grid-column: 1 / -1;
	border: 1px solid rgba(26, 26, 26, 0.12);
	border-radius: var(--gigi-radius);
	overflow: hidden;
}

.gigi-contact-info__card {
	background: transparent;
	border-radius: 0;
	padding: 48px 36px;
	text-align: center;
	border-right: 1px solid rgba(26, 26, 26, 0.12);
	transition: background 0.2s ease;
}

.gigi-contact-info__card:last-child {
	border-right: none;
}

.gigi-contact-info__card:hover {
	background: var(--gigi-bg-light-2);
}

.gigi-contact-info__icon {
	width: 40px;
	height: 40px;
	margin: 0 auto 20px;
	background: transparent;
	border-radius: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.gigi-contact-info__icon svg {
	width: 24px;
	height: 24px;
	stroke: var(--gigi-primary);
}

.gigi-contact-info__title {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: clamp(16px, 2vw, 20px);
	color: var(--gigi-font-dark);
	text-transform: uppercase;
	margin: 0 0 16px;
}

.gigi-contact-info__card p {
	font-family: var(--gigi-font-body);
	font-weight: 400;
	font-size: 15px;
	line-height: 1.75;
	color: var(--gigi-font-muted);
	margin: 0;
}

.gigi-contact-info__card a {
	color: var(--gigi-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.gigi-contact-info__card a:hover {
	color: var(--gigi-bg-dark-2);
}

/* --- Map --- */
.gigi-contact-map {
	padding: 0 24px 80px;
}

.gigi-contact-map__inner {
	max-width: var(--gigi-content-max-w);
	margin: 0 auto;
}

.gigi-contact-map__title {
	font-family: var(--gigi-font-headline);
	font-weight: 800;
	font-size: clamp(24px, 3vw, 32px);
	color: var(--gigi-primary);
	text-align: center;
	margin: 0 0 32px;
}

.gigi-contact-map__embed {
	position: relative;
	border-radius: var(--gigi-radius);
	overflow: hidden;
	box-shadow: var(--gigi-shadow-lg);
}

.gigi-contact-map__embed::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--gigi-bg-dark);
	opacity: 0.35;
	pointer-events: none;
	z-index: 1;
	transition: opacity 0.4s ease;
}

.gigi-contact-map__embed:hover::after {
	opacity: 0;
}

.gigi-contact-map__embed iframe {
	display: block;
	width: 100%;
	filter: grayscale(1);
	transition: filter 0.4s ease;
	height: 400px;
}

.gigi-contact-map__embed:hover iframe {
	filter: grayscale(0);
}

/* --- Responsive --- */
@media (max-width: 767px) {
	.gigi-contact-hero {
		text-align: center;
		align-items: center;
	}

	.gigi-contact-hero .gigi-section__label,
	.gigi-contact-hero .gigi-section__heading {
		text-align: center;
	}

	.gigi-contact-hero .gigi-section__intro {
		margin-left: auto;
		margin-right: auto;
	}

	.gigi-contact-hero .gigi-section__rule,
	.gigi-contact-hero .gigi-section__rule--left {
		margin-left: auto;
		margin-right: auto;
	}

	.gigi-contact-main__inner {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.gigi-contact-info {
		grid-template-columns: 1fr;
	}

	.gigi-contact-info__card {
		border-right: none;
		border-bottom: 1px solid rgba(26, 26, 26, 0.12);
		padding: 40px 24px;
	}

	.gigi-contact-info__card:last-child {
		border-bottom: none;
	}

	.gigi-contact-form-wrap {
		padding: 0;
	}

	.gigi-contact-form__row {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.gigi-contact-form__row .gigi-contact-form__field {
		margin-bottom: 20px;
	}

	.gigi-contact-form__row .gigi-contact-form__field:last-child {
		margin-bottom: 0;
	}

	.gigi-contact-form__field label {
		margin-bottom: 8px;
	}

	.gigi-contact-form__privacy {
		text-align: center;
	}

	.gigi-contact-form {
		align-items: center;
	}

	.gigi-contact-map__embed iframe {
		height: 280px;
	}
}

/* ==========================================================================
   18. Cookie Consent Banner
   ========================================================================== */

.gigi-cookie {
	position: fixed;
	bottom: calc(var(--gigi-appbar-height) + 16px);
	left: 50%;
	transform: translateX(-50%) translateY(20px);
	z-index: 9999;
	width: calc(100% - 32px);
	max-width: 480px;
	background: rgba(var(--gigi-bg-dark-rgb), 0.85);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-radius: 0;
	padding: 24px 28px;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
	display: none;
	opacity: 0;
	transition: opacity 0.4s ease, transform 0.4s ease;
}

.gigi-cookie.is-visible {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
}

.gigi-cookie.is-hidden {
	opacity: 0;
	transform: translateX(-50%) translateY(20px);
}

.gigi-cookie__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 12px;
}

.gigi-cookie__header {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
}

/* Animated Pizza Icon */
.gigi-cookie__icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	animation: gigi-cookie-wobble 2.5s ease-in-out infinite;
	transform-origin: center center;
}

.gigi-cookie__icon svg {
	width: 100%;
	height: 100%;
}

@keyframes gigi-cookie-wobble {
	0%, 100% { transform: rotate(0deg) scale(1); }
	15% { transform: rotate(-12deg) scale(1.1); }
	30% { transform: rotate(8deg) scale(1.05); }
	45% { transform: rotate(-4deg) scale(1); }
	60% { transform: rotate(0deg) scale(1); }
}

.gigi-cookie__heading {
	font-family: var(--gigi-font-headline);
	font-weight: 800;
	font-size: 16px;
	color: var(--gigi-white);
	margin: 0;
}

.gigi-cookie__desc {
	font-family: var(--gigi-font-body);
	font-size: 13px;
	line-height: 1.6;
	color: var(--gigi-font-light);
	margin: 0 0 16px;
}

.gigi-cookie__desc a {
	color: var(--gigi-font-light);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.gigi-cookie__desc a:hover {
	color: var(--gigi-white);
}

.gigi-cookie__actions {
	display: flex;
	gap: 10px;
}

.gigi-cookie .gigi-cookie__accept {
	flex: 1;
	padding: 10px 20px;
	border: 1.5px solid var(--gigi-white);
	border-radius: 0;
	background: transparent;
	color: var(--gigi-white);
	font-family: var(--gigi-font-body);
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.15s ease;
}

.gigi-cookie .gigi-cookie__accept:hover,
.gigi-cookie .gigi-cookie__accept:focus {
	background: rgba(245, 240, 232, 0.15);
	color: var(--gigi-white);
	transform: scale(1.03);
}

.gigi-cookie .gigi-cookie__decline {
	padding: 10px 20px;
	border: 1.5px solid var(--gigi-white);
	border-radius: 0;
	background: transparent;
	color: var(--gigi-white);
	font-family: var(--gigi-font-body);
	font-weight: 500;
	font-size: 14px;
	cursor: pointer;
	transition: background 0.2s ease;
}

.gigi-cookie .gigi-cookie__decline:hover,
.gigi-cookie .gigi-cookie__decline:focus {
	background: rgba(245, 240, 232, 0.15);
	color: var(--gigi-white);
}

/* Mobile */
@media (max-width: 480px) {
	.gigi-cookie {
		bottom: calc(var(--gigi-appbar-height) + 12px);
		padding: 20px;
		border-radius: 0;
	}

	.gigi-cookie__inner {
		text-align: center;
	}

	.gigi-cookie__header {
		justify-content: center;
	}

	.gigi-cookie__actions {
		width: 100%;
		justify-content: center;
	}
}

/* ==========================================================================
   TYPEWRITER — Logo Animation (in Hero)
   ========================================================================== */

.gigi-typewriter {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: inherit;
}

.gigi-typewriter__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}


.gigi-typewriter__stage {
	position: absolute;
	top: 45%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 80%;
	aspect-ratio: 846 / 400;
	z-index: 2;
}

.gigi-typewriter__letter {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	opacity: 0;
	pointer-events: none;
}

.gigi-typewriter__letter.is-visible {
	opacity: 1;
}

.gigi-typewriter__dot {
	position: absolute;
	border-radius: 50%;
	background: #1a4a1a;
	pointer-events: none;
	opacity: 0;
}

.gigi-typewriter__dot.is-visible {
	opacity: var(--dot-opacity);
}

/* --- Typewriter Responsive --- */
@media (min-width: 1441px) {
	.gigi-typewriter__stage {
		width: 60%;
	}
}

@media (max-width: 1024px) {
	.gigi-typewriter__stage {
		width: 85%;
		top: 42%;
	}
}

@media (max-width: 767px) {
	.gigi-typewriter__stage {
		width: 90%;
		top: 50%;
	}
}

@media (max-width: 390px) {
	.gigi-typewriter__stage {
		width: 95%;
		top: 50%;
	}
}

/* ==========================================================================
   17. Gigi Club Popup
   ========================================================================== */

.gigi-club-popup {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.gigi-club-popup.is-open {
	display: flex;
	animation: gigi-popup-fade 0.3s ease both;
}

.gigi-club-popup__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 45, 26, 0.78);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.gigi-club-popup__dialog {
	position: relative;
	background: var(--gigi-bg-dark);
	color: var(--gigi-font-light);
	max-width: 440px;
	width: 100%;
	padding: 48px 32px 36px;
	text-align: center;
	box-shadow: var(--gigi-shadow-lg);
	animation: gigi-popup-pop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.gigi-club-popup__close {
	position: absolute;
	top: 12px;
	right: 12px;
	background: transparent;
	border: 0;
	color: var(--gigi-font-light);
	cursor: pointer;
	padding: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: color 0.2s ease, transform 0.2s ease;
}

.gigi-club-popup__close:hover {
	color: var(--gigi-bg-light);
	transform: rotate(90deg);
}

.gigi-club-popup__logo {
	display: block;
	margin: 0 auto 20px;
	height: 56px;
	width: auto;
	transform: rotate(-6deg);
}

.gigi-club-popup__title {
	font-family: var(--gigi-font-headline);
	font-weight: 900;
	font-size: 28px;
	line-height: 1.15;
	color: var(--gigi-bg-light);
	margin: 0 0 14px;
	text-transform: none;
}

.gigi-club-popup__text {
	font-family: var(--gigi-font-body);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--gigi-font-light);
	margin: 0 0 28px;
}

.gigi-club-popup__cta {
	display: inline-block;
	background: var(--gigi-bg-light-2);
	color: var(--gigi-primary);
	font-family: var(--gigi-font-headline);
	font-weight: 800;
	font-size: 14px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 16px 32px;
	transition: background 0.2s ease, transform 0.2s ease;
}

.gigi-club-popup__cta:hover {
	background: var(--gigi-white);
	transform: translateY(-2px);
}

@keyframes gigi-popup-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

@keyframes gigi-popup-pop {
	from { opacity: 0; transform: scale(0.92) translateY(12px); }
	to   { opacity: 1; transform: scale(1) translateY(0); }
}

@media (max-width: 480px) {
	.gigi-club-popup__dialog {
		padding: 40px 22px 28px;
	}

	.gigi-club-popup__title {
		font-size: 24px;
	}

	.gigi-club-popup__logo {
		height: 48px;
	}
}
