@import 'tailwindcss';

@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';
@source '../../storage/framework/views/*.php';
@source '../**/*.blade.php';
@source '../**/*.js';

@theme {
    /* Fonts */
    --font-headline: 'Manrope', sans-serif;
    --font-body: 'Inter', sans-serif;
    --font-label: 'Inter', sans-serif;

    /* Material Design 3 — The Digital Atelier */
    --color-primary: #f2c08d;
    --color-primary-container: #d4a574;
    --color-primary-fixed: #ffdcbc;
    --color-primary-fixed-dim: #efbd8a;
    --color-on-primary: #472a03;
    --color-on-primary-container: #5b3a13;
    --color-on-primary-fixed: #2c1700;
    --color-on-primary-fixed-variant: #614018;
    --color-inverse-primary: #7c572d;

    --color-secondary: #c8c6c5;
    --color-secondary-container: #474746;
    --color-secondary-fixed: #e4e2e1;
    --color-secondary-fixed-dim: #c8c6c5;
    --color-on-secondary: #303030;
    --color-on-secondary-container: #b6b5b4;
    --color-on-secondary-fixed: #1b1c1c;
    --color-on-secondary-fixed-variant: #474746;

    --color-tertiary: #a5d0e6;
    --color-tertiary-container: #8ab4ca;
    --color-tertiary-fixed: #bfe8ff;
    --color-tertiary-fixed-dim: #a2cde3;
    --color-on-tertiary: #003547;
    --color-on-tertiary-container: #194659;
    --color-on-tertiary-fixed: #001f2a;
    --color-on-tertiary-fixed-variant: #204c5f;

    --color-error: #ffb4ab;
    --color-error-container: #93000a;
    --color-on-error: #690005;
    --color-on-error-container: #ffdad6;

    --color-surface: #131313;
    --color-surface-dim: #131313;
    --color-surface-bright: #3a3939;
    --color-surface-container: #201f1f;
    --color-surface-container-low: #1c1b1b;
    --color-surface-container-high: #2a2a2a;
    --color-surface-container-highest: #353534;
    --color-surface-container-lowest: #0e0e0e;
    --color-surface-variant: #353534;
    --color-surface-tint: #efbd8a;

    --color-on-surface: #e5e2e1;
    --color-on-surface-variant: #d4c4b7;
    --color-on-background: #e5e2e1;
    --color-background: #131313;

    --color-outline: #9c8e82;
    --color-outline-variant: #50453b;

    --color-inverse-surface: #e5e2e1;
    --color-inverse-on-surface: #313030;

    /* Border Radius */
    --radius-DEFAULT: 0.25rem;
    --radius-lg: 0.5rem;
    --radius-xl: 0.75rem;
    --radius-full: 9999px;
}

/* Focus styles for accessibility */
*:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* ── Material Symbols ────────────────────────────────────────────────── */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* ── Base ────────────────────────────────────────────────────────────── */
body {
    background-color: var(--color-surface);
    color: var(--color-on-surface);
    font-family: 'Inter', sans-serif;
}

/* ── Trust Bar ───────────────────────────────────────────────────────── */
.trust-bar {
    width: 100%;
    background-color: var(--color-surface-container-low);
}
.trust-bar-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0.55rem 2rem;
    max-width: 1920px;
    margin: 0 auto;
    overflow-x: auto;
    scrollbar-width: none;
}
.trust-bar-inner::-webkit-scrollbar { display: none; }

.trust-item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-on-surface-variant);
    white-space: nowrap;
    padding: 0 1.5rem;
    transition: color 0.2s ease;
}
.trust-item:hover { color: var(--color-primary); }

.trust-icon {
    font-size: 0.95rem !important;
    color: var(--color-primary);
    opacity: 0.85;
    flex-shrink: 0;
}

.trust-divider {
    display: inline-block;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background-color: var(--color-outline-variant);
    flex-shrink: 0;
}

@media (max-width: 640px) {
    .trust-bar-inner {
        justify-content: flex-start;
    }
    .trust-item { padding: 0 1rem; }
}

/* ══════════════════════════════════════════════════════════════════════
   Hero Section — Single image, clear CTA
   ══════════════════════════════════════════════════════════════════════ */

.hero-section {
    position: relative;
    width: 100%;
    min-height: 680px;
    height: 85vh;
    max-height: 900px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    overflow: hidden;
    margin-bottom: 5rem;
}

.hero-bg-base {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse 120% 80% at 60% 40%,
        #2a1f14 0%,
        var(--color-surface-container) 45%,
        var(--color-surface) 100%
    );
    z-index: 0;
}
.hero-bg-glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse 60% 50% at 65% 35%,
        rgba(212, 165, 116, 0.07) 0%,
        transparent 70%
    );
    z-index: 1;
}
.hero-bg-vignette {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        var(--color-surface) 0%,
        rgba(19,19,19,0.3) 40%,
        transparent 100%
    );
    z-index: 2;
}

.hero-inner {
    position: relative;
    z-index: 10;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 0;
    height: 100%;
    max-width: 1920px;
    margin: 0 auto;
    padding: 4rem 4rem 6rem;
}

.hero-text-col {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-right: 2rem;
}

.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-on-surface-variant);
    margin-bottom: 1.5rem;
}
.hero-eyebrow-icon {
    font-size: 0.85rem !important;
    color: var(--color-primary);
    opacity: 0.8;
}

.hero-headline {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(2.8rem, 5vw, 4.5rem);
    font-weight: 800;
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--color-on-surface);
    margin: 0 0 1.75rem;
}
.hero-headline-accent {
    background: linear-gradient(
        135deg,
        var(--color-primary) 0%,
        var(--color-primary-container) 60%,
        var(--color-primary) 100%
    );
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-body {
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--color-on-surface-variant);
    max-width: 38ch;
    margin: 0 0 2.5rem;
}

.hero-cta-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}

.hero-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background-color: var(--color-primary-container);
    color: var(--color-on-primary-container);
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    padding: 0.875rem 1.75rem;
    border-radius: 0.75rem;
    text-decoration: none;
    transition: background-color 0.25s ease, transform 0.2s ease;
}
.hero-btn-primary:hover {
    background-color: var(--color-primary-fixed-dim);
}
.hero-btn-icon {
    font-size: 1.1rem !important;
    transition: transform 0.2s ease;
}
.hero-btn-primary:hover .hero-btn-icon {
    transform: translateX(3px);
}

.hero-btn-secondary {
    display: inline-flex;
    align-items: center;
    font-family: 'Inter', sans-serif;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    padding: 0.875rem 1.5rem;
    border-radius: 0.75rem;
    box-shadow: inset 0 0 0 1px rgba(242, 192, 141, 0.20);
    transition: box-shadow 0.25s ease, color 0.25s ease;
}
.hero-btn-secondary:hover {
    box-shadow: inset 0 0 0 1px rgba(242, 192, 141, 0.40);
    color: var(--color-primary-fixed-dim);
}

.hero-social-proof {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    color: var(--color-on-surface-variant);
    margin: 0;
}
.hero-proof-icon {
    font-size: 0.9rem !important;
    color: var(--color-tertiary);
}

.hero-visual-col {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-left: 2rem;
}
.hero-visual-frame {
    position: relative;
    width: 100%;
    max-width: 480px;
    aspect-ratio: 4 / 5;
}
.hero-visual-inner {
    width: 100%;
    height: 100%;
    border-radius: 1.5rem;
    background: var(--color-surface-container-high);
    overflow: hidden;
    position: relative;
}
.hero-visual-layer-1 {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        ellipse 80% 60% at 50% 30%,
        rgba(212, 165, 116, 0.12) 0%,
        transparent 70%
    );
}
.hero-visual-layer-2 {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 50%;
    background: linear-gradient(
        to top,
        var(--color-surface-container) 0%,
        transparent 100%
    );
}
.hero-visual-icon-wrap {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero-visual-icon {
    font-size: 6rem !important;
    color: var(--color-primary);
    opacity: 0.15;
}

.hero-price-badge {
    position: absolute;
    bottom: 1.5rem;
    right: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    background: rgba(32, 31, 31, 0.85);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-radius: 0.75rem;
    padding: 0.75rem 1rem;
    box-shadow:
        inset 0 0 0 1px rgba(80, 69, 59, 0.35),
        0 24px 48px rgba(0, 0, 0, 0.35);
}
.hero-price-from {
    font-family: 'Inter', sans-serif;
    font-size: 0.65rem;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-outline);
    line-height: 1;
    margin-bottom: 0.1rem;
}
.hero-price-value {
    font-family: 'Manrope', sans-serif;
    font-size: 1.6rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1;
    background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-container) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-scroll-hint {
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    animation: hero-bounce 2s ease-in-out infinite;
}
.hero-scroll-icon {
    font-size: 1.6rem !important;
    color: var(--color-outline);
    opacity: 0.5;
}
@keyframes hero-bounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50%       { transform: translateX(-50%) translateY(5px); }
}

@media (max-width: 900px) {
    .hero-inner {
        grid-template-columns: 1fr;
        padding: 3rem 2rem 4rem;
        gap: 3rem;
    }
    .hero-text-col { padding-right: 0; }
    .hero-visual-col { padding-left: 0; }
    .hero-visual-frame { max-width: 340px; }
    .hero-headline { font-size: clamp(2.4rem, 8vw, 3.5rem); }
}
@media (max-width: 580px) {
    .hero-section { height: auto; min-height: 560px; margin-bottom: 3rem; }
    .hero-inner { padding: 2.5rem 1.25rem 3rem; gap: 2.5rem; }
    .hero-visual-col { display: none; }
    .hero-cta-row { flex-direction: column; align-items: flex-start; }
    .hero-btn-primary, .hero-btn-secondary { width: 100%; justify-content: center; }
}

/* ── Nav Dropdown — JS-gesteuerter offener Zustand ───────────────────
   CSS-Hover bleibt erhalten (group-hover:opacity-100 / group-hover:visible).
   JS fügt zusätzlich die Klasse nav-dropdown-open hinzu für Tastatur/Focus.
─────────────────────────────────────────────────────────────────────── */
.nav-dropdown-panel.nav-dropdown-open {
    opacity: 1 !important;
    visibility: visible !important;
}

.nav-dropdown-trigger {
    background: none;
    border: none;
    padding: 0;
    font-family: inherit;
    color: inherit;
}
.nav-dropdown-trigger:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 3px;
    border-radius: 4px;
}
