@import "tailwindcss" source(none);

@source "../../assets/**/*.js";
@source "../../assets/**/*.scss";
@source "../../assets/**/*.css";
@source "../../src/Bridge/Symfony/Bundle/Resources/views/**/*.twig";

@theme {
    /* Fonts */
    --font-sans: "Montserrat", sans-serif;
    --font-serif: "trajan-pro-3", serif;

    /* Colors */
    --color-light: #fbf9f5;
    --color-dark: #383838;
    --color-gold: #ad9c76;
    --color-silver: #bfbfbf;

    /* Semantic front tokens */
    --color-page: #f7f2ea;
    --color-surface: #ffffff;
    --color-surface-muted: #fcfaf7;
    --color-surface-subtle: #f8f2e8;
    --color-surface-disabled: #f3eee6;
    --color-surface-contrast: #1c1c1c;
    --color-foreground: #201917;
    --color-foreground-muted: #5d4b41;
    --color-foreground-subtle: #9f8b72;
    --color-link-muted: #707070;
    --color-depot-available: #58733c;
    --color-label: #382d28;
    --color-accent: #9d7c47;
    --color-accent-hover: #b89657;
    --color-accent-soft: #c0af86;
    --color-border: #eadfcf;
    --color-panel-border: #e5d8c7;
    --color-border-muted: #efe3d4;
    --color-border-strong: #d9c7ae;
    --color-input-border: #e3d6c2;
    --color-control-border: #cfb183;
    --color-toggle-border: #c8b79c;
    --color-disabled: #b7ac9d;
    --color-disabled-border: #c7b8a1;
    --color-on-foreground: #ffffff;

    /* Typography */
    --text-caption: 0.6875rem;
    --text-micro: 0.5625rem;
    --tracking-form-label: 0.10em;
    --tracking-card-title: 0.12em;
    --tracking-status: 0.16em;
    --tracking-label: 0.18em;
    --tracking-action: 0.20em;
    --tracking-meta: 0.22em;
    --tracking-button: 0.24em;
    --tracking-eyebrow: 0.40em;

    --color-success: oklch(89% 0.18 150);
    --color-success-dark: oklch(0.532 0.109 151.407);
    --color-error: oklch(75% 0.26 20);
    --color-error-dark: oklch(0.549 0.204 19.245);
    --color-warning: oklch(85% 0.19 70);
    --color-info: oklch(85% 0.21 250);
    --color-success-surface: #ecfdf5;
    --color-success-border: #a7f3d0;
    --color-success-foreground: #047857;
    --color-error-surface: #fef2f2;
    --color-error-border: #fecaca;
    --color-error-foreground: #b91c1c;
    --color-warning-surface: #fffbeb;
    --color-warning-border: #fde68a;
    --color-warning-foreground: #b45309;

    /* Shadows */
    --shadow-panel: 0 18px 45px rgba(61, 43, 23, 0.08);
    --shadow-card: 0 30px 80px -45px rgba(17, 17, 17, 0.45);
    --shadow-card-soft: 0 16px 40px rgba(56, 56, 56, 0.04);
    --shadow-surface: 0 20px 80px -40px rgba(56, 56, 56, 0.35);
    --shadow-surface-strong: 0 25px 90px -40px rgba(17, 17, 17, 0.75);
    --shadow-product-panel: 0 20px 60px rgba(56, 56, 56, 0.06);
    --shadow-promo-line: 0 18px 45px -30px rgba(173, 156, 118, 0.55);
    --shadow-sticky-bar: 0 -10px 30px rgba(56, 56, 56, 0.08);
    --shadow-announcement: 0 8px 24px rgba(0, 0, 0, 0.24);
    --shadow-soft: 0 6px 18px rgba(15, 23, 42, 0.05);
    --shadow-gold-soft: 0 18px 42px -28px rgba(96, 78, 38, 0.42);
    --shadow-gold-action: 0 10px 24px -18px rgba(173, 156, 118, 0.9);

    /* Breakpoints */
    --breakpoint-large: 1850px;

    /* Container/max width custom */
    --container-large: 1800px;

    /* Animations */
    --animate-toast: toast 500ms ease-in-out;
    --animate-cart-open: cartOpen 600ms ease-in-out forwards;
    --animate-cart-close: cartClose 600ms ease-in-out forwards;

    @keyframes toast {
        0% {
            transform: translate(100%);
        }
        100% {
            transform: translate(0);
        }
    }

    @keyframes cartOpen {
        0% {
            transform: translate(100%);
        }
        100% {
            transform: translate(0);
        }
    }

    @keyframes cartClose {
        0% {
            transform: translate(0);
        }
        100% {
            transform: translate(100%);
        }
    }
}

:root {
    --viti-layout-chrome-height: 13rem;
    --viti-cart-offset: 5rem;
    --viti-field-area-min-height: 5.5rem;
    --viti-modal-margin: 2rem;
    --viti-modal-body-offset: 9rem;
    --viti-announcement-height: 2.625rem;
    --viti-announcement-height-sm: 2.875rem;
    --viti-hero-min-height: 40.625rem;
    --viti-product-hero-spacer: 18rem;
    --viti-product-hero-spacer-sm: 20rem;
    --viti-map-min-height: 26rem;
    --viti-map-min-height-lg: 42rem;
    --viti-modal-z-index: 90;
    --viti-banner-z-index: 80;
    --viti-age-gate-z-index: 180;
    --viti-map-control-z-index: 500;
    --viti-cart-drawer-width: 23.75rem;
    --viti-ribbon-stack-max-width: calc(100% - 1.5rem);
    --viti-ribbon-stack-compact-max-width: calc(100% - 1rem);
    --viti-product-gallery-thumb-size: 5.5rem;
    --viti-product-gallery-height: 22rem;
    --viti-product-gallery-height-sm: 30rem;
    --viti-product-modal-gallery-width: 20rem;
    --viti-product-modal-image-max-height: 26rem;
    --viti-award-modal-image-max-height: 24rem;
    --viti-announcement-media-width: 16rem;
    --viti-announcement-media-width-sm: 13rem;
    --viti-announcement-logo-width: 11rem;
    --viti-logo-width: 11.25rem;
    --viti-logo-width-sm: 13.75rem;
    --viti-information-slide-width: 60vw;
    --viti-information-slide-width-md: 58vw;
    --viti-safe-bottom-padding: calc(1rem + env(safe-area-inset-bottom));
    --viti-grid-account: 0.95fr 1.05fr;
    --viti-grid-order-summary: 1.3fr 0.7fr;
    --viti-grid-offline-payment: 1.2fr 0.8fr;
    --viti-grid-inline-action: 1fr auto;
    --viti-grid-depot-locator: minmax(0, 1.35fr) minmax(22rem, 0.65fr);
    --viti-grid-product-detail: minmax(0, 1fr) minmax(22rem, 28rem);
    --viti-grid-product-gallery: 5.5rem minmax(0, 1fr);
    --viti-grid-product-modal: minmax(240px, 320px) minmax(0, 1fr);
    --viti-grid-degressivity: 1.2fr 1fr;
    --viti-grid-degressivity-sm: 1fr 1fr 1.2fr;
    --viti-grid-checkout: minmax(0, 1.25fr) 420px;
}

@utility min-h-page {
    min-height: calc(100vh - var(--viti-layout-chrome-height));
}

@utility min-h-field-area {
    min-height: var(--viti-field-area-min-height);
}

@utility min-h-shop-hero {
    min-height: var(--viti-hero-min-height);
}

@utility min-h-product-hero-spacer {
    min-height: var(--viti-product-hero-spacer);
}

@utility min-h-product-hero-spacer-sm {
    min-height: var(--viti-product-hero-spacer-sm);
}

@utility min-h-map {
    min-height: var(--viti-map-min-height);
}

@utility min-h-map-lg {
    min-height: var(--viti-map-min-height-lg);
}

@utility max-h-map-lg {
    max-height: var(--viti-map-min-height-lg);
}

@utility h-cart-drawer {
    height: calc(100vh - var(--viti-cart-offset));
}

@utility max-h-cart-drawer {
    max-height: calc(100svh - var(--viti-cart-offset));
}

@utility translate-y-cart-offset {
    transform: translateY(var(--viti-cart-offset));
}

@utility max-h-modal {
    max-height: calc(100vh - var(--viti-modal-margin));
}

@utility max-h-modal-body {
    max-height: calc(100vh - var(--viti-modal-body-offset));
}

@utility z-modal {
    z-index: var(--viti-modal-z-index);
}

@utility z-age-gate {
    z-index: var(--viti-age-gate-z-index);
}

@utility z-banner {
    z-index: var(--viti-banner-z-index);
}

@utility z-map-control {
    z-index: var(--viti-map-control-z-index);
}

@utility h-announcement {
    height: var(--viti-announcement-height);
}

@utility h-announcement-sm {
    height: var(--viti-announcement-height-sm);
}

@utility w-cart-drawer {
    width: var(--viti-cart-drawer-width);
}

@utility max-w-ribbon-stack {
    max-width: var(--viti-ribbon-stack-max-width);
}

@utility max-w-ribbon-stack-compact {
    max-width: var(--viti-ribbon-stack-compact-max-width);
}

@utility size-product-gallery-thumb {
    width: var(--viti-product-gallery-thumb-size);
    height: var(--viti-product-gallery-thumb-size);
}

@utility h-product-gallery {
    height: var(--viti-product-gallery-height);
}

@utility h-product-gallery-sm {
    height: var(--viti-product-gallery-height-sm);
}

@utility max-w-product-modal-gallery {
    max-width: var(--viti-product-modal-gallery-width);
}

@utility max-h-product-modal-image {
    max-height: var(--viti-product-modal-image-max-height);
}

@utility max-h-award-modal-image {
    max-height: var(--viti-award-modal-image-max-height);
}

@utility max-w-announcement-media {
    max-width: var(--viti-announcement-media-width);
}

@utility max-w-announcement-media-sm {
    max-width: var(--viti-announcement-media-width-sm);
}

@utility max-w-announcement-logo {
    max-width: var(--viti-announcement-logo-width);
}

@utility max-w-viti-logo {
    max-width: var(--viti-logo-width);
}

@utility max-w-viti-logo-sm {
    max-width: var(--viti-logo-width-sm);
}

@utility w-information-slide {
    width: var(--viti-information-slide-width);
}

@utility w-information-slide-md {
    width: var(--viti-information-slide-width-md);
}

@utility bg-checkout-glow {
    background: radial-gradient(circle at top, rgba(173, 156, 118, 0.20), transparent 60%);
}

@utility bg-information-card {
    background: linear-gradient(145deg, rgba(173, 156, 118, 0.14), rgba(255, 255, 255, 0.98) 24%, rgba(255, 255, 255, 0.96));
}

@utility border-l-information {
    border-left-width: 3px;
}

@utility pb-safe-bottom {
    padding-bottom: var(--viti-safe-bottom-padding);
}

@utility grid-cols-account {
    grid-template-columns: var(--viti-grid-account);
}

@utility grid-cols-order-summary {
    grid-template-columns: var(--viti-grid-order-summary);
}

@utility grid-cols-offline-payment {
    grid-template-columns: var(--viti-grid-offline-payment);
}

@utility grid-cols-inline-action {
    grid-template-columns: var(--viti-grid-inline-action);
}

@utility grid-cols-depot-locator {
    grid-template-columns: var(--viti-grid-depot-locator);
}

@utility grid-cols-product-detail {
    grid-template-columns: var(--viti-grid-product-detail);
}

@utility grid-cols-product-gallery {
    grid-template-columns: var(--viti-grid-product-gallery);
}

@utility grid-cols-product-modal {
    grid-template-columns: var(--viti-grid-product-modal);
}

@utility grid-cols-degressivity {
    grid-template-columns: var(--viti-grid-degressivity);
}

@utility grid-cols-degressivity-sm {
    grid-template-columns: var(--viti-grid-degressivity-sm);
}

@utility grid-cols-checkout {
    grid-template-columns: var(--viti-grid-checkout);
}
