/* ================================================================
   LUMIÈRE PREMIUM — Apple-smooth · Editorial · Cinematic
   ================================================================ */

:root {
    --ease-apple: cubic-bezier(0.25, 0.1, 0.25, 1);
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in-out-quart: cubic-bezier(0.76, 0, 0.24, 1);
    --duration-fast: 0.35s;
    --duration-medium: 0.65s;
    --duration-slow: 1.1s;
    --blur-reveal: 12px;
}

/* Global rendering polish */
.maison-body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* Scroll progress — Apple-style top bar */
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 2px;
    width: 0%;
    background: linear-gradient(90deg, var(--champagne-gold), var(--berry-accent));
    z-index: 10001;
    transition: width 0.08s linear;
    pointer-events: none;
}

/* Cinematic hero overlays */
.maison-hero-media {
    position: relative;
    overflow: hidden;
}

.cinematic-vignette {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        radial-gradient(ellipse 80% 70% at 50% 50%, transparent 40%, rgba(74, 64, 53, 0.12) 100%),
        linear-gradient(to right, rgba(255,254,249,0.15) 0%, transparent 35%);
}

.cinematic-grain {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    opacity: 0.04;
    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");
    mix-blend-mode: overlay;
}

.maison-hero-slide img,
.maison-hero-slide video {
    animation: kenBurns 18s var(--ease-in-out-quart) infinite alternate;
    will-change: transform;
}

.home-page .maison-hero-slide video,
.home-page .hero-banner-video {
    animation: none !important;
    transform: none !important;
    will-change: auto !important;
}

.maison-hero-slide.active img,
.maison-hero-slide.active video {
    animation-play-state: running;
}

.maison-hero-slide:not(.active) img,
.maison-hero-slide:not(.active) video {
    animation-play-state: paused;
}

@keyframes kenBurns {
    0% { transform: scale(1) translate(0, 0); }
    100% { transform: scale(1.08) translate(-1%, -1%); }
}

/* Hero typography reveal */
.maison-hero-panel .display-title {
    overflow: hidden;
}

.maison-hero-panel .display-title .line {
    display: block;
    transform: translateY(110%);
    opacity: 0;
    transition: transform var(--duration-slow) var(--ease-out-expo), opacity var(--duration-medium) ease;
}

.page-wrapper.revealed .maison-hero-panel .display-title .line {
    transform: translateY(0);
    opacity: 1;
}

.page-wrapper.revealed .maison-hero-panel .display-title .line:nth-child(2) {
    transition-delay: 0.12s;
}

.maison-hero-panel .editorial-lead,
.maison-hero-panel .maison-hero-actions,
.maison-hero-panel .maison-label,
.maison-hero-panel .maison-hero-accent {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity var(--duration-medium) var(--ease-out-expo), transform var(--duration-medium) var(--ease-out-expo);
}

.page-wrapper.revealed .maison-hero-panel .maison-label { opacity: 1; transform: none; transition-delay: 0.2s; }
.page-wrapper.revealed .maison-hero-panel .editorial-lead { opacity: 1; transform: none; transition-delay: 0.35s; }
.page-wrapper.revealed .maison-hero-panel .maison-hero-actions { opacity: 1; transform: none; transition-delay: 0.5s; }
.page-wrapper.revealed .maison-hero-panel .maison-hero-accent { opacity: 1; transform: none; transition-delay: 0.65s; }

/* Apple-style scroll reveal with blur */
.reveal-premium {
    opacity: 0;
    transform: translateY(48px);
    filter: blur(var(--blur-reveal));
    transition:
        opacity var(--duration-slow) var(--ease-out-expo),
        transform var(--duration-slow) var(--ease-out-expo),
        filter var(--duration-slow) var(--ease-out-expo);
}

.reveal-premium.visible {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
}

.fade-in, .fade-in-left, .fade-in-right, .fade-in-scale {
    filter: blur(6px);
    transition-duration: var(--duration-slow) !important;
    transition-timing-function: var(--ease-out-expo) !important;
}

.fade-in.visible, .fade-in-left.visible, .fade-in-right.visible, .fade-in-scale.visible {
    filter: blur(0);
}

/* Navbar — refined Apple scroll state */
.maison-nav {
    transition:
        padding var(--duration-medium) var(--ease-apple),
        background var(--duration-medium) var(--ease-apple),
        box-shadow var(--duration-medium) var(--ease-apple),
        transform var(--duration-medium) var(--ease-out-expo) !important;
}

.maison-nav.scrolled {
    padding: 6px 0 !important;
    background: rgba(123, 74, 87, 0.96) !important;
    box-shadow: 0 1px 0 rgba(181, 114, 129, 0.25), 0 8px 24px rgba(123, 74, 87, 0.35) !important;
}

.maison-nav.nav-hidden {
    transform: translateY(-100%);
}

.maison-nav .nav-link-luxury {
    transition: color var(--duration-fast) var(--ease-apple);
}

/* Buttons — Apple press + glow */
.btn-luxury {
    transition:
        transform var(--duration-fast) var(--ease-apple),
        box-shadow var(--duration-medium) var(--ease-apple),
        background var(--duration-medium) var(--ease-apple),
        color var(--duration-fast) ease !important;
}

.btn-luxury:active {
    transform: scale(0.97);
}

.btn-luxury-primary {
    letter-spacing: 0.14em;
    padding: 16px 36px !important;
}

/* Product frame — museum presentation */
.maison-product-frame {
    transition:
        transform var(--duration-medium) var(--ease-out-expo),
        box-shadow var(--duration-medium) var(--ease-out-expo),
        border-color var(--duration-medium) ease !important;
}

.maison-product:hover .maison-product-frame {
    transform: translateY(-4px);
}

/* Section rhythm — editorial breathing room */
.maison-edit,
.maison-lookbook,
.maison-arrivals,
.maison-salon,
.maison-voices {
    position: relative;
}

.maison-edit::before,
.maison-atelier::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: min(200px, 30vw);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--line-gold), transparent);
}

/* Swiper — silk transitions */
.swiper-slide {
    transition: opacity var(--duration-medium) var(--ease-apple);
}

.testimonial-swiper .swiper-slide-active .review-card,
.testimonial-swiper .swiper-slide-active .maison-quote-featured {
    transform: scale(1);
    opacity: 1;
}

.testimonial-swiper .swiper-slide:not(.swiper-slide-active) .review-card,
.testimonial-swiper .swiper-slide:not(.swiper-slide-active) .maison-quote-featured {
    opacity: 0.65;
    transform: scale(0.98);
}

/* Page hero — cinematic depth */
.maison-page-hero {
    position: relative;
}

.maison-page-hero::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 120px;
    background: linear-gradient(to top, var(--ivory), transparent);
    pointer-events: none;
}

/* Quick view & modal — Apple sheet feel */
.luxury-modal-dialog {
    transition: transform var(--duration-medium) var(--ease-out-expo), opacity var(--duration-medium) ease !important;
}

/* Image hover — subtle lift only */
.lookbook-item img {
    transition: transform 1.4s var(--ease-out-expo) !important;
}

/* Typography micro-refinements */
.display-title {
    font-feature-settings: "liga" 1, "kern" 1;
    text-wrap: balance;
}

.editorial-lead {
    text-wrap: pretty;
}

.section-title-maison {
    text-wrap: balance;
}

/* Sticky section index — fashion editorial */
.section-index {
    position: absolute;
    left: clamp(12px, 2vw, 24px);
    top: 50%;
    transform: translateY(-50%) rotate(-90deg);
    transform-origin: center;
    font-size: 0.6rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--text-light);
    opacity: 0.5;
    white-space: nowrap;
}

/* Premium empty & form states */
.maison-form-panel input:focus,
.maison-form-panel textarea:focus,
.maison-filters input:focus,
.maison-filters select:focus {
    transform: translateY(-1px);
    transition: border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) var(--ease-apple);
}

/* WhatsApp — softer entrance */
.whatsapp-float {
    animation: floatIn 0.8s var(--ease-out-expo) 1.5s both;
}

@keyframes floatIn {
    from { opacity: 0; transform: translateY(20px) scale(0.9); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Preloader — smoother exit */
.luxury-preloader {
    transition: opacity 1s var(--ease-out-expo), visibility 1s ease !important;
}

.page-wrapper {
    transition: opacity 1s var(--ease-out-expo), transform 1s var(--ease-out-expo) !important;
}

/* Hero scroll cue — refined */
.hero-scroll-cue {
    position: absolute;
    bottom: 48px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    z-index: 4;
    opacity: 0.6;
}

.hero-scroll-cue span {
    font-size: 0.6rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.hero-scroll-cue .cue-line {
    width: 1px;
    height: 48px;
    background: linear-gradient(to bottom, var(--warm-gold), transparent);
    animation: scrollCue 2.2s var(--ease-in-out-quart) infinite;
}

@keyframes scrollCue {
    0%, 100% { transform: scaleY(0.3); opacity: 0.3; transform-origin: top; }
    50% { transform: scaleY(1); opacity: 1; transform-origin: top; }
}

/* Atelier floating frame — gentle float */
.maison-atelier-float {
    animation: gentleFloat 8s var(--ease-in-out-quart) infinite;
}

@keyframes gentleFloat {
    0%, 100% { transform: rotate(3deg) translateY(0); }
    50% { transform: rotate(3deg) translateY(-12px); }
}

/* Reduce blur reveal on mobile for performance */
@media (max-width: 767px) {
    .reveal-premium { filter: none; transform: translateY(24px); }
    .reveal-premium.visible { filter: none; }
    .fade-in, .fade-in-left, .fade-in-right, .fade-in-scale { filter: none; }
    .maison-hero-slide img, .maison-hero-slide video { animation: none; }
}

@media (prefers-reduced-motion: reduce) {
    .maison-hero-slide img, .maison-hero-slide video { animation: none !important; }
    .reveal-premium, .fade-in, .fade-in-left, .fade-in-right, .fade-in-scale { filter: none !important; }
    .maison-atelier-float { animation: none !important; }
}

/* ——— Mobile & tablet: button sizing & alignment ——— */
@media (max-width: 991px) {
    .btn-luxury,
    a.btn-luxury,
    button.btn-luxury {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100%;
        max-width: 100%;
        min-height: 48px;
        padding: 13px 22px !important;
        font-size: 0.72rem !important;
        letter-spacing: 0.1em !important;
        line-height: 1.35;
        text-align: center;
        box-sizing: border-box;
        gap: 8px;
        white-space: normal;
    }

    .btn-luxury i {
        font-size: 1em;
        flex-shrink: 0;
    }

    .maison-hero-actions,
    .hero-buttons {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        gap: 12px;
    }

    .maison-hero-actions .btn-luxury,
    .hero-buttons .btn-luxury {
        flex: none;
        width: 100%;
    }

    .filter-toggle {
        display: inline-flex !important;
        width: 100%;
        min-height: 48px;
        justify-content: center;
        align-items: center;
    }

    .maison-filters form .btn-luxury,
    .maison-filters form a.btn-luxury {
        width: 100%;
    }

    .product-actions-row {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .product-actions-row .btn-luxury {
        width: 100%;
    }

    .luxury-modal-body .d-flex.flex-wrap,
    .luxury-modal-body .d-flex.gap-2 {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
    }

    .empty-state-luxury .btn-luxury {
        width: auto !important;
        min-width: min(100%, 260px);
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .maison-product-actions {
        top: auto;
        bottom: 10px;
        left: 50%;
        right: auto;
        transform: translateX(-50%) !important;
        opacity: 1;
        gap: 8px;
    }

    .maison-product-actions .card-action-btn {
        width: 38px;
        height: 38px;
        min-width: 38px;
        min-height: 38px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
    }

    .navbar-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        min-width: 44px;
        min-height: 44px;
        padding: 10px;
        margin-left: auto;
    }

    .navbar-inner {
        align-items: center;
        gap: 12px;
    }

    .navbar-brand {
        min-width: 0;
        flex: 1;
    }

    .brand-lockup .brand-text {
        font-size: clamp(1rem, 4vw, 1.25rem);
    }

    .newsletter-input-wrap {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .newsletter-input-wrap input {
        min-width: 0;
        width: 100%;
    }

    .newsletter-input-wrap .btn-luxury {
        width: 100%;
    }

    .products-toolbar {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .products-toolbar form {
        width: 100%;
    }

    .products-toolbar .sort-select {
        width: 100%;
        min-height: 44px;
    }

    .btn-luxury:active {
        transform: scale(0.98);
    }

    /* ——— Mobile center alignment ——— */
    .maison-hero-panel {
        align-items: center;
        text-align: center;
    }

    .maison-hero-panel::before {
        display: none;
    }

    .maison-hero-eyebrow {
        justify-content: center;
        width: 100%;
    }

    .maison-hero-accent {
        position: static;
        margin-top: 20px;
        width: 100%;
    }

    .display-title,
    .section-title-maison,
    .section-title,
    .section-header,
    .about-content h2,
    .about-content .section-subtitle {
        text-align: center;
    }

    .editorial-lead,
    .section-desc {
        margin-left: auto;
        margin-right: auto;
        text-align: center;
    }

    .maison-label {
        justify-content: center;
        width: 100%;
    }

    .maison-edit-header > div,
    .maison-edit-header .editorial-lead,
    .maison-salon > .container-maison > .fade-in-right,
    .about-content,
    .about-section .section-header,
    .maison-detail-info,
    .maison-form-panel,
    .maison-concierge-card,
    .products-toolbar,
    .products-count,
    .maison-filters h4,
    .maison-product-copy,
    .empty-state-luxury {
        text-align: center;
    }

    .maison-edit-header .editorial-lead,
    .maison-salon .editorial-lead {
        margin-left: auto !important;
        margin-right: auto;
    }

    /* New Arrivals — match desktop left-aligned editorial layout on mobile */
    .maison-arrivals > .container-maison > .fade-in,
    .maison-arrival-copy,
    .maison-arrival-product .maison-product-copy {
        text-align: left;
    }

    .maison-arrivals > .container-maison > .fade-in .maison-label {
        justify-content: flex-start;
        width: auto;
    }

    .maison-arrival-copy .maison-text-link {
        margin-left: 0;
        margin-right: auto;
    }

    .maison-arrival-product .maison-product-meta {
        align-items: flex-start;
    }

    .maison-text-link {
        display: inline-flex;
        margin-left: auto;
        margin-right: auto;
    }

    .maison-product-name,
    .maison-product-cat {
        text-align: center;
    }

    .maison-product-meta {
        align-items: center;
    }

    .maison-detail-info .display-title,
    .maison-detail-price,
    .product-description {
        text-align: center;
    }

    .maison-detail nav[aria-label="breadcrumb"] {
        display: flex;
        justify-content: center;
    }

    .maison-detail .breadcrumb {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }

    .gallery-thumbs {
        justify-content: center;
    }

    .timeline-item {
        text-align: center !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .timeline::before {
        left: 50%;
    }

    .timeline-item .timeline-dot {
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%);
    }

    .maison-event-item {
        grid-template-columns: 1fr;
        text-align: center;
        justify-items: center;
    }

    .maison-event-item:hover {
        padding-left: 0;
    }

    .newsletter-inner,
    .newsletter-inner .col-lg-5,
    .newsletter-inner .col-lg-7 {
        text-align: center;
    }

    .footer-top .row > [class*="col-"] {
        text-align: center;
    }

    .footer-social {
        justify-content: center;
    }

    .footer-contact li {
        justify-content: center;
    }

    .maison-concierge .footer-social {
        justify-content: center;
    }
}
