@font-face {
            font-family: "Material Symbols Outlined";
            font-style: normal;
            font-weight: 400;
            font-display: block;
            src: url("/fonts/material-symbols-barbercore.woff2?v=3") format("woff2");
        }

        :root {
            --dorado: #C9A227;
            --fondo: #FAF8F2;
            --blanco: #FFFFFF;
            --texto: #1C1C1C;
            --gris: #6B6B6B;
            --borde: #E5E0D6;
            --oscuro: #111111;
            --verde: #25D366;
        }

        *, *::before, *::after { box-sizing: border-box; }
        html { scroll-behavior: smooth; }
        body { margin: 0; background: var(--fondo); color: var(--texto); font-family: Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; }
        a { color: inherit; text-decoration: none; }
        svg, img { display: block; }
        img { max-width: 100%; }
        :focus-visible { outline: 3px solid rgba(201, 162, 39, .5); outline-offset: 3px; }

        .container { width: min(1200px, calc(100% - 48px)); margin-inline: auto; }
        .material-symbol { width: 1em; height: 1em; display: inline-grid; place-items: center; flex: 0 0 auto; overflow: hidden; font-family: "Material Symbols Outlined"; font-size: 20px; font-weight: normal; font-style: normal; line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap; word-wrap: normal; direction: ltr; font-feature-settings: "liga"; -webkit-font-feature-settings: "liga"; -webkit-font-smoothing: antialiased; }

        .topbar { background: var(--oscuro); color: var(--blanco); }
        .topbar-inner { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 24px; font-size: 11px; font-weight: 700; letter-spacing: .06em; }
        .topbar-group { display: flex; align-items: center; gap: 24px; }
        .topbar-item { display: inline-flex; align-items: center; gap: 7px; color: var(--borde); }
        .topbar-item .material-symbol { color: var(--dorado); font-size: 14px; }
        .topbar-tag { color: var(--dorado); text-transform: uppercase; letter-spacing: .14em; }
        .topbar-group-status { display: flex; align-items: center; gap: 20px; }
        .topbar-status { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
        .topbar-status.is-open { color: var(--verde); }
        .topbar-status.is-closed { color: #E2795A; }
        .topbar-status-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }

        .header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--borde); background: rgba(255, 255, 255, .96); backdrop-filter: blur(12px); }
        .header-inner { min-height: 88px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; }
        .nav-list { display: flex; align-items: center; gap: 30px; }
        .nav-list:last-child { justify-content: flex-end; }
        .nav-link { color: var(--gris); font-size: 12px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; transition: color .2s ease; }
        .nav-link:hover { color: var(--dorado); }

        .brand { display: inline-flex; align-items: center; gap: 11px; justify-self: center; }
        .brand-logo { width: 62px; height: 62px; object-fit: contain; }
        .brand-name { font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 700; letter-spacing: -.02em; white-space: nowrap; }
        .brand-name small { display: block; margin-top: 3px; color: var(--dorado); font-family: Arial, sans-serif; font-size: 9px; font-weight: 900; letter-spacing: .22em; text-align: center; text-transform: uppercase; }

        .btn { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid transparent; padding: 12px 19px; font-size: 12px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease; }
        .btn > .material-symbol { font-size: 20px; }
        .btn:hover { transform: translateY(-2px); }
        .btn-gold { background: var(--dorado); color: var(--blanco); box-shadow: 0 12px 28px rgba(201, 162, 39, .22); }
        .btn-dark { background: var(--oscuro); color: var(--blanco); }
        .btn-light { border-color: rgba(255, 255, 255, .48); background: rgba(17, 17, 17, .12); color: var(--blanco); backdrop-filter: blur(7px); }

        .hero { position: relative; min-height: 720px; display: flex; align-items: center; isolation: isolate; overflow: hidden; background: var(--oscuro); color: var(--blanco); }
        .hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: url('/images/landing/hero-barbershop-premium.png') center center / cover no-repeat; }
        .hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(17,17,17,.98) 0%, rgba(17,17,17,.90) 28%, rgba(17,17,17,.42) 59%, rgba(17,17,17,.12) 100%); }
        .hero-content { width: min(650px, 58%); padding: 105px 0 145px; }
        .eyebrow { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 24px; color: var(--dorado); font-size: 11px; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; }
        .eyebrow::before { content: ""; width: 42px; height: 1px; background: var(--dorado); }
        .hero h1 { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(54px, 6.5vw, 88px); font-weight: 700; letter-spacing: -.05em; line-height: .96; }
        .hero h1 em { color: var(--dorado); font-style: normal; }
        .hero-copy { max-width: 570px; margin: 28px 0 32px; color: var(--borde); font-size: 17px; line-height: 1.75; }
        .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
        .hero-signature { display: flex; align-items: center; gap: 13px; margin-top: 38px; color: var(--borde); font-family: Georgia, serif; font-size: 14px; font-style: italic; }
        .hero-signature::before { content: ""; width: 52px; height: 1px; background: rgba(229, 224, 214, .45); }
        .hero-content > * { opacity: 0; animation: hero-reveal .7s cubic-bezier(.22,.8,.3,1) forwards; }
        .hero-content > :nth-child(2) { animation-delay: .08s; }
        .hero-content > :nth-child(3) { animation-delay: .16s; }
        .hero-content > :nth-child(4) { animation-delay: .24s; }
        .hero-content > :nth-child(5) { animation-delay: .32s; }
        @keyframes hero-reveal { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

        .js [data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .58s ease, transform .58s cubic-bezier(.22,.8,.3,1); transition-delay: var(--reveal-delay, 0ms); }
        .js [data-reveal].is-visible { opacity: 1; transform: none; }

        .trust-wrap { position: relative; z-index: 5; margin-top: -56px; }
        .trust-bar { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--borde); background: var(--blanco); box-shadow: 0 22px 55px rgba(17,17,17,.11); }
        .trust-item { min-height: 112px; display: grid; grid-template-columns: 48px 1fr; gap: 15px; align-items: center; padding: 24px 30px; }
        .trust-item + .trust-item { border-left: 1px solid var(--borde); }
        .trust-icon { width: 45px; height: 45px; display: grid; place-items: center; border: 1px solid var(--borde); border-radius: 50%; color: var(--dorado); }
        .trust-item strong { display: block; margin-bottom: 5px; font-family: Georgia, serif; font-size: 16px; }
        .trust-item > div > span { color: var(--gris); font-size: 12px; line-height: 1.5; }
        .trust-icon .material-symbol { color: inherit; font-size: 22px; }

        .section { padding: 104px 0; }
        .section-head { display: grid; grid-template-columns: 1fr .72fr; gap: 80px; align-items: end; margin-bottom: 48px; }
        .kicker { display: block; margin-bottom: 13px; color: var(--dorado); font-size: 10px; font-weight: 900; letter-spacing: .22em; text-transform: uppercase; }
        .title { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(39px, 4.5vw, 58px); letter-spacing: -.04em; line-height: 1.03; }
        .copy { margin: 0; color: var(--gris); font-size: 15px; line-height: 1.8; }

        .services { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
        .carousel-controls { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: -22px 0 20px; }
        .carousel-navigation { min-width: 0; display: flex; align-items: center; gap: 15px; }
        .carousel-status { min-width: 42px; color: var(--gris); font-size: 10px; font-weight: 900; letter-spacing: .13em; white-space: nowrap; }
        .carousel-status strong { color: var(--texto); font-size: 13px; }
        .carousel-progress { width: clamp(74px, 10vw, 132px); height: 2px; overflow: hidden; border-radius: 99px; background: var(--borde); }
        .carousel-progress-bar { width: 100%; height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #b78a12, var(--dorado)); transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.22, 1, .36, 1); }
        .carousel-dots { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
        .carousel-dot { width: 7px; height: 7px; border-radius: 5px; border: 0; padding: 0; background: var(--borde); cursor: pointer; transition: background .3s ease, width .4s cubic-bezier(.22, 1, .36, 1), transform .25s ease; }
        .carousel-dot:hover { background: rgba(201, 162, 39, .62); transform: scale(1.12); }
        .carousel-dot.is-active { width: 24px; background: var(--dorado); }
        .carousel-buttons { display: flex; gap: 5px; padding: 5px; border: 1px solid var(--borde); border-radius: 999px; background: var(--blanco); box-shadow: 0 10px 28px rgba(17, 17, 17, .07); }
        .carousel-button { width: 39px; height: 39px; border-radius: 50%; display: grid; place-items: center; border: 0; background: transparent; color: var(--texto); cursor: pointer; transition: background .3s ease, color .3s ease, box-shadow .3s ease, transform .25s ease, opacity .25s ease; }
        .carousel-button .material-symbol { font-size: 22px; }
        .carousel-button:hover:not(:disabled) { background: var(--oscuro); color: var(--blanco); box-shadow: 0 8px 18px rgba(17, 17, 17, .18); transform: scale(1.04); }
        .carousel-button:active:not(:disabled) { transform: translateY(0); }
        .carousel-button:disabled { opacity: .3; cursor: default; box-shadow: none; transform: none; }
        .services-carousel { position: relative; }
        .services-carousel.is-active .services { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - 54px) / 4); overflow-x: auto; padding: 8px 2px 29px; scroll-snap-type: x mandatory; scroll-padding-inline: 2px; overscroll-behavior-inline: contain; scrollbar-width: none; cursor: grab; }
        .services-carousel.is-active .services::-webkit-scrollbar { display: none; }
        .services-carousel.is-active .services.is-dragging, .services-carousel.is-active .services.is-animating { scroll-snap-type: none; }
        .services-carousel.is-active .services.is-dragging { cursor: grabbing; user-select: none; }
        .services-carousel.is-active .service { scroll-snap-align: start; scroll-snap-stop: always; }
        .service { min-height: 470px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--borde); background: var(--blanco); box-shadow: 0 10px 28px rgba(17,17,17,.045); transition: background .25s ease, transform .25s ease, box-shadow .25s ease; }
        .service:hover { position: relative; z-index: 2; background: var(--oscuro); color: var(--blanco); transform: translateY(-7px); box-shadow: 0 24px 46px rgba(17,17,17,.15); }
        .service-media { position: relative; height: 205px; overflow: hidden; background: var(--oscuro); }
        .service-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(17,17,17,.38)); pointer-events: none; }
        .service-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
        .service:hover .service-media img { transform: scale(1.045); }
        .service-media-empty { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: rgba(229, 224, 214, .68); background: linear-gradient(145deg, #191919, #0e0e0e); }
        .service-media-empty .material-symbol { color: var(--dorado); font-size: 38px; opacity: .8; }
        .service-media-empty .service-media-label { font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
        .service-body { flex: 1; display: flex; flex-direction: column; padding: 24px 24px 26px; }
        .service-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
        .service-icon { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--borde); color: var(--dorado); }
        .service-icon .material-symbol { font-size: 24px; }
        .service-index { color: var(--borde); font-family: Georgia, serif; font-size: 28px; }
        .service h3 { margin: 0 0 12px; font-family: Georgia, serif; font-size: 22px; line-height: 1.2; }
        .service p { margin: 0 0 22px; color: var(--gris); font-size: 13px; line-height: 1.7; }
        .service:hover p { color: var(--borde); }
        .service-footer { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--borde); }
        .price { color: var(--dorado); font-size: 20px; font-weight: 900; }
        .duration { display: inline-flex; align-items: center; gap: 6px; color: var(--gris); font-size: 11px; }
        .duration .material-symbol { font-size: 14px; }
        .services-empty { grid-column: 1 / -1; padding: 38px; border: 1px solid var(--borde); background: var(--blanco); text-align: center; }
        .services-empty strong { display: block; margin-bottom: 8px; font-family: Georgia, serif; font-size: 22px; }

        .standard { background: var(--blanco); }
        .standard-grid { display: grid; grid-template-columns: .85fr 1.15fr; min-height: 570px; }
        .standard-dark { position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 64px; background: var(--oscuro); color: var(--blanco); }
        .standard-dark::after { content: "BC"; position: absolute; right: -28px; bottom: -62px; color: rgba(201,162,39,.09); font-family: Georgia, serif; font-size: 250px; font-weight: 700; line-height: 1; }
        .standard-logo { position: relative; z-index: 1; width: 118px; height: 118px; object-fit: contain; }
        .standard-quote { position: relative; z-index: 1; max-width: 450px; }
        .standard-quote span { color: var(--dorado); font-size: 10px; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; }
        .standard-quote h2 { margin: 17px 0 0; font-family: Georgia, serif; font-size: clamp(36px, 4vw, 53px); letter-spacing: -.04em; line-height: 1.07; }
        .standards-list { display: grid; align-content: center; padding: 55px 70px; background: var(--fondo); }
        .standard-item { display: grid; grid-template-columns: 54px 1fr; gap: 20px; padding: 27px 0; border-bottom: 1px solid var(--borde); }
        .standard-item:last-child { border-bottom: 0; }
        .standard-number { color: var(--dorado); font-family: Georgia, serif; font-size: 18px; }
        .standard-item h3 { margin: 0 0 7px; font-family: Georgia, serif; font-size: 19px; }
        .standard-item p { margin: 0; color: var(--gris); font-size: 13px; line-height: 1.7; }

        .contact-section { padding: 96px 0; }
        .contact-card { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid var(--borde); background: var(--blanco); box-shadow: 0 24px 60px rgba(17,17,17,.08); }
        .contact-copy { padding: 60px; }
        .contact-copy .copy { max-width: 470px; margin: 20px 0 30px; }
        .contact-details { display: grid; border-left: 1px solid var(--borde); }
        .detail { display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: center; padding: 27px 36px; border-bottom: 1px solid var(--borde); }
        .detail:last-child { border-bottom: 0; }
        .detail-icon { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; background: var(--fondo); color: var(--dorado); }
        .detail-icon .material-symbol { font-size: 22px; }
        .detail small { display: block; margin-bottom: 5px; color: var(--gris); font-size: 9px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
        .detail strong { font-family: Georgia, serif; font-size: 15px; line-height: 1.45; }
        .contact-actions { display: flex; flex-wrap: wrap; gap: 10px; }
        .btn-map { border-color: var(--borde); background: var(--blanco); color: var(--texto); }
        .hours-summary { display: grid; gap: 5px; }
        .hours-line { display: flex; justify-content: space-between; gap: 18px; color: var(--gris); font-size: 11px; line-height: 1.45; }
        .hours-line b { color: var(--texto); font-weight: 800; }

        .faq-section { padding: 72px 0; background: var(--blanco); }
        .faq-wrap { display: grid; grid-template-columns: .72fr 1.28fr; gap: 56px; align-items: start; }
        .faq-intro { position: sticky; top: 125px; }
        .faq-intro .copy { margin-top: 20px; }
        .faq-list { border-top: 1px solid var(--borde); }
        .faq-item { border-bottom: 1px solid var(--borde); }
        .faq-item summary { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 4px; cursor: pointer; list-style: none; font-family: Georgia, serif; font-size: 17px; font-weight: 700; }
        .faq-item summary::-webkit-details-marker { display: none; }
        .faq-toggle { width: 30px; height: 30px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid var(--borde); border-radius: 50%; color: var(--dorado); font-size: 18px; transition: transform .3s ease, background .3s ease, color .3s ease, border-color .3s ease; }
        .faq-item.is-expanded .faq-toggle { background: var(--oscuro); border-color: var(--oscuro); color: var(--blanco); transform: rotate(45deg); }
        .faq-answer { display: grid; grid-template-rows: 0fr; opacity: 0; color: var(--gris); font-size: 13px; line-height: 1.75; transition: grid-template-rows .32s cubic-bezier(.22,.8,.3,1), opacity .25s ease; }
        .faq-answer-inner { min-height: 0; overflow: hidden; padding: 0 52px 0 4px; transition: padding-bottom .32s ease; }
        .faq-item.is-expanded .faq-answer { grid-template-rows: 1fr; opacity: 1; }
        .faq-item.is-expanded .faq-answer-inner { padding-bottom: 18px; }

        .cta { background: var(--dorado); color: var(--blanco); }
        .cta-inner { min-height: 200px; display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; }
        .cta h2 { margin: 0 0 8px; font-family: Georgia, serif; font-size: clamp(34px, 4vw, 49px); letter-spacing: -.04em; }
        .cta p { margin: 0; font-size: 14px; opacity: .9; }

        body.booking-open { overflow: hidden; }
        .booking-modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 22px; background: rgba(17,17,17,.72); opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s ease; }
        .booking-modal.is-open { opacity: 1; visibility: visible; }
        .booking-dialog { width: min(640px, 100%); min-width: 0; max-width: 100%; max-height: calc(100vh - 44px); overflow-x: hidden; overflow-y: auto; border: 1px solid var(--borde); background: var(--blanco); box-shadow: 0 28px 80px rgba(0,0,0,.3); transform: translateY(12px); transition: transform .2s ease; }
        .booking-modal.is-open .booking-dialog { transform: none; }
        .booking-head { display: grid; grid-template-columns: 1fr 42px; gap: 20px; align-items: start; padding: 26px 28px; background: var(--oscuro); color: var(--blanco); }
        .booking-head .kicker { margin-bottom: 8px; }
        .booking-head h2 { margin: 0; font-family: Georgia, serif; font-size: 29px; }
        .booking-close { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: transparent; color: var(--blanco); cursor: pointer; }
        .booking-close .material-symbol { font-size: 20px; }
        .booking-body { padding: 28px; }
        .booking-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
        .booking-field.full { grid-column: 1 / -1; }
        .booking-field label { display: block; margin-bottom: 7px; color: var(--texto); font-size: 11px; font-weight: 800; letter-spacing: .04em; }
        .booking-field input, .booking-field select, .booking-field textarea { width: 100%; border: 1px solid var(--borde); border-radius: 0; padding: 12px 13px; background: var(--blanco); color: var(--texto); font: inherit; font-size: 13px; outline: none; }
        .booking-field textarea { min-height: 85px; resize: vertical; }
        .booking-field input:focus, .booking-field select:focus, .booking-field textarea:focus { border-color: var(--dorado); box-shadow: 0 0 0 3px rgba(201,162,39,.12); }
        .booking-native-picker { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; border: 0 !important; opacity: 0; pointer-events: none; }
        .booking-picker { position: relative; width: 100%; }
        .booking-picker-trigger { width: 100%; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--borde); padding: 11px 13px; background: var(--blanco); color: var(--texto); cursor: pointer; font: inherit; font-size: 13px; font-weight: 700; text-align: left; }
        .booking-picker-trigger:hover, .booking-picker-trigger[aria-expanded="true"] { border-color: var(--dorado); box-shadow: 0 0 0 3px rgba(201,162,39,.12); }
        .booking-picker-trigger:disabled { opacity: .55; cursor: not-allowed; border-color: var(--borde); box-shadow: none; }
        .booking-picker-trigger .material-symbol { color: var(--dorado); font-size: 18px; }
        .booking-calendar, .booking-time-panel { position: fixed; z-index: 120; display: none; width: 310px; border: 1px solid var(--borde); border-radius: 18px; padding: 16px; background: var(--blanco); box-shadow: 0 22px 55px rgba(17,17,17,.2); }
        .booking-calendar.open, .booking-time-panel.open { display: block; animation: picker-in .16s ease-out; }
        @keyframes picker-in { from { opacity: 0; transform: translateY(-5px) scale(.98); } to { opacity: 1; transform: none; } }
        .booking-calendar-head, .booking-time-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 14px; }
        .booking-calendar-head strong, .booking-time-head strong { font-family: Arial, sans-serif; font-size: 14px; text-transform: capitalize; }
        .booking-calendar-nav { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--borde); border-radius: 9px; background: var(--blanco); color: var(--texto); cursor: pointer; }
        .booking-calendar-nav .material-symbol { font-size: 20px; }
        .booking-calendar-nav:hover { border-color: var(--dorado); color: var(--dorado); }
        .booking-calendar-week, .booking-calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
        .booking-calendar-week span { padding-bottom: 7px; color: var(--gris); font-size: 9px; font-weight: 800; text-align: center; text-transform: uppercase; }
        .booking-calendar-day { aspect-ratio: 1; border: 0; border-radius: 9px; background: transparent; color: var(--texto); cursor: pointer; font-size: 11px; font-weight: 700; }
        .booking-calendar-day:hover { background: rgba(201,162,39,.12); color: var(--dorado); }
        .booking-calendar-day.outside { color: #bbb5aa; font-weight: 500; }
        .booking-calendar-day.today { box-shadow: inset 0 0 0 1px var(--dorado); color: var(--dorado); }
        .booking-calendar-day.selected { background: var(--dorado); color: var(--blanco); box-shadow: 0 5px 12px rgba(201,162,39,.25); }
        .booking-calendar-day:disabled { opacity: .28; cursor: not-allowed; background: transparent; color: var(--gris); }
        .booking-calendar-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--borde); }
        .booking-calendar-footer button { border: 0; background: transparent; color: var(--dorado); padding: 4px; cursor: pointer; font-size: 11px; font-weight: 800; }
        .booking-calendar-footer span, .booking-time-head span { color: var(--gris); font-size: 10px; }
        .booking-time-panel { width: 330px; max-height: min(390px, calc(100vh - 24px)); overflow-y: auto; scrollbar-width: none; }
        .booking-time-panel::-webkit-scrollbar { display: none; }
        .booking-time-period + .booking-time-period { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--borde); }
        .booking-time-label { display: flex; align-items: center; gap: 7px; margin-bottom: 9px; color: var(--gris); font-size: 9px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
        .booking-time-label::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--dorado); }
        .booking-time-slots { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
        .booking-time-slot { border: 1px solid var(--borde); border-radius: 9px; padding: 8px 5px; background: var(--blanco); color: var(--texto); cursor: pointer; font-size: 10px; font-weight: 700; }
        .booking-time-slot:hover { border-color: var(--dorado); background: rgba(201,162,39,.08); color: var(--dorado); }
        .booking-time-slot.selected { border-color: var(--dorado); background: var(--dorado); color: var(--blanco); box-shadow: 0 5px 12px rgba(201,162,39,.22); }
        .booking-time-empty { grid-column: 1 / -1; padding: 16px 8px; color: var(--gris); font-size: 11px; line-height: 1.5; text-align: center; }
        .booking-note { margin: 18px 0; padding: 13px 14px; border-left: 3px solid var(--dorado); background: var(--fondo); color: var(--gris); font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; }
        .booking-submit { width: 100%; border: 0; background: var(--verde); color: var(--blanco); cursor: pointer; }

        .rewards-submit { width: 100%; margin-top: 6px; }
        .rewards-result { min-width: 0; max-width: 100%; margin-top: 22px; }
        .rewards-client { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 7px 12px; min-width: 0; padding: 16px 18px; border: 1px solid var(--borde); background: var(--fondo); margin-bottom: 16px; }
        .rewards-client strong { min-width: 0; font-family: Georgia, serif; font-size: 16px; overflow-wrap: anywhere; }
        .rewards-summary { max-width: 100%; color: var(--dorado); font-size: 12px; font-weight: 900; line-height: 1.35; text-align: right; overflow-wrap: anywhere; }
        .reward-item { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 14px; min-width: 0; padding: 13px 16px; border: 1px solid var(--borde); margin-bottom: 8px; }
        .reward-item.is-available { border-color: var(--dorado); background: rgba(201, 162, 39, .06); }
        .reward-item-copy { flex: 1 1 180px; min-width: 0; }
        .reward-item-name { font-weight: 800; font-size: 13px; overflow-wrap: anywhere; }
        .reward-item-desc { margin-top: 3px; color: var(--gris); font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
        .reward-item-points { flex: 0 1 auto; max-width: 100%; color: var(--gris); font-size: 11px; font-weight: 800; text-align: right; white-space: normal; overflow-wrap: anywhere; }
        .reward-item.is-available .reward-item-points { color: var(--dorado); }
        .rewards-empty, .rewards-error { padding: 18px; border: 1px dashed var(--borde); color: var(--gris); font-size: 13px; text-align: center; overflow-wrap: anywhere; }
        .rewards-error { border-color: #c0392b; color: #c0392b; }

        .footer { padding: 55px 0 25px; background: var(--oscuro); color: var(--blanco); }
        .footer-grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 55px; padding-bottom: 42px; }
        .footer-brand { display: flex; align-items: center; gap: 13px; margin-bottom: 17px; }
        .footer-brand img { width: 66px; height: 66px; object-fit: contain; }
        .footer-brand strong { font-family: Georgia, serif; font-size: 22px; }
        .footer-about { max-width: 360px; margin: 0; color: var(--borde); font-size: 12px; line-height: 1.75; }
        .socials { display: flex; align-items: center; gap: 10px; margin-top: 22px; }
        .social-link { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(229,224,214,.22); border-radius: 50%; color: var(--dorado); transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
        .social-link:hover { border-color: var(--dorado); background: var(--dorado); color: var(--oscuro); transform: translateY(-3px); }
        .social-link svg { width: 16px; height: 16px; fill: currentColor; }
        .footer-title { margin: 5px 0 17px; color: var(--dorado); font-size: 9px; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; }
        .footer-links { display: grid; gap: 12px; color: var(--borde); font-size: 12px; }
        .footer-links a:hover { color: var(--dorado); }
        .footer-links button { border: 0; background: none; padding: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; }
        .footer-links button:hover { color: var(--dorado); }
        .footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 22px; border-top: 1px solid rgba(229,224,214,.16); color: var(--gris); font-size: 10px; }

        .whatsapp-widget { position: fixed; right: 22px; bottom: 22px; z-index: 70; font-family: Arial, Helvetica, sans-serif; }
        .whatsapp-toggle { appearance: none; position: relative; width: 62px; height: 62px; display: grid; place-items: center; padding: 0; border: 3px solid var(--blanco); border-radius: 50%; background: var(--verde); color: var(--blanco); box-shadow: 0 14px 32px rgba(17,17,17,.25); cursor: pointer; line-height: 0; transition: transform .2s ease, box-shadow .2s ease; }
        .whatsapp-toggle:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(17,17,17,.3); }
        .whatsapp-toggle > .whatsapp-icon { width: 28px; height: 28px; aspect-ratio: 1; display: block; overflow: hidden; flex: none; transform: none; pointer-events: none; }
        .whatsapp-badge { position: absolute; top: -2px; right: -2px; width: 18px; height: 18px; display: grid; place-items: center; border: 2px solid var(--blanco); border-radius: 50%; background: var(--dorado); color: var(--oscuro); font-size: 9px; font-weight: 900; }
        .whatsapp-prompt { position: absolute; right: 74px; bottom: 8px; width: max-content; max-width: 210px; border: 1px solid var(--borde); border-radius: 10px; padding: 11px 14px; background: var(--blanco); color: var(--texto); box-shadow: 0 10px 28px rgba(17,17,17,.12); font-size: 12px; font-weight: 700; opacity: 0; visibility: hidden; transform: translateX(8px); transition: opacity .25s ease, transform .25s ease, visibility .25s ease; }
        .whatsapp-prompt::after { content: ""; position: absolute; right: -6px; bottom: 15px; width: 10px; height: 10px; border-top: 1px solid var(--borde); border-right: 1px solid var(--borde); background: var(--blanco); transform: rotate(45deg); }
        .whatsapp-widget.show-prompt:not(.is-open) .whatsapp-prompt { opacity: 1; visibility: visible; transform: translateX(0); }
        .whatsapp-widget.is-open .whatsapp-badge { display: none; }

        .whatsapp-panel { position: absolute; right: 0; bottom: 78px; width: 350px; overflow: hidden; border: 1px solid var(--borde); border-radius: 18px; background: var(--blanco); box-shadow: 0 24px 65px rgba(17,17,17,.23); opacity: 0; visibility: hidden; transform: translateY(16px) scale(.97); transform-origin: bottom right; transition: opacity .25s ease, transform .25s ease, visibility .25s ease; }
        .whatsapp-widget.is-open .whatsapp-panel { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
        .chat-header { display: grid; grid-template-columns: 48px 1fr 32px; gap: 12px; align-items: center; padding: 17px 16px; background: var(--oscuro); color: var(--blanco); }
        .chat-avatar { position: relative; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--blanco); }
        .chat-avatar img { width: 42px; height: 42px; object-fit: contain; }
        .chat-avatar::after { content: ""; position: absolute; right: 0; bottom: 1px; width: 11px; height: 11px; border: 2px solid var(--oscuro); border-radius: 50%; background: var(--verde); }
        .chat-identity strong { display: block; margin-bottom: 3px; font-family: Georgia, serif; font-size: 15px; }
        .chat-identity span { display: flex; align-items: center; gap: 6px; color: var(--borde); font-size: 10px; }
        .chat-close { width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.08); color: var(--blanco); cursor: pointer; }
        .chat-close:hover { background: rgba(255,255,255,.16); }
        .chat-close .material-symbol { font-size: 18px; }
        .chat-body { padding: 22px 17px 17px; background-color: var(--fondo); background-image: radial-gradient(rgba(201,162,39,.12) 1px, transparent 1px); background-size: 17px 17px; }
        .chat-bubble { position: relative; max-width: 88%; border: 1px solid var(--borde); border-radius: 4px 14px 14px 14px; padding: 14px 15px 11px; background: var(--blanco); box-shadow: 0 6px 17px rgba(17,17,17,.06); color: var(--texto); font-size: 13px; line-height: 1.55; }
        .chat-bubble strong { display: block; margin-bottom: 4px; }
        .chat-time { display: block; margin-top: 8px; color: var(--gris); font-size: 9px; text-align: right; }
        .chat-form { margin-top: 16px; }
        .chat-label { display: block; margin-bottom: 7px; color: var(--gris); font-size: 10px; font-weight: 800; }
        .chat-message { width: 100%; min-height: 74px; display: block; resize: vertical; border: 1px solid var(--borde); border-radius: 9px; padding: 11px 12px; background: var(--blanco); color: var(--texto); font: inherit; font-size: 12px; line-height: 1.5; outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
        .chat-message::placeholder { color: var(--gris); }
        .chat-message:focus { border-color: var(--dorado); box-shadow: 0 0 0 3px rgba(201,162,39,.13); }
        .chat-action { width: 100%; display: flex; align-items: center; justify-content: center; gap: 9px; margin-top: 10px; border: 0; border-radius: 9px; padding: 13px 16px; background: var(--verde); color: var(--blanco); font: inherit; font-size: 12px; font-weight: 900; cursor: pointer; transition: filter .2s ease, transform .2s ease; }
        .chat-action:hover { filter: brightness(.95); transform: translateY(-1px); }
        .chat-action .whatsapp-icon { width: 18px; height: 18px; aspect-ratio: 1; display: block; overflow: hidden; flex: 0 0 18px; transform: none; }
        .chat-note { display: block; margin-top: 10px; color: var(--gris); font-size: 9px; text-align: center; }

        @media (max-width: 1050px) {
            .header-inner { grid-template-columns: auto 1fr auto; }
            .brand { justify-self: start; }
            .nav-left { display: none; }
            .nav-right .nav-link { display: none; }
            .services { grid-template-columns: repeat(2, 1fr); }
            .services-carousel.is-active .services { grid-auto-columns: calc((100% - 18px) / 2); }
            .standard-grid { grid-template-columns: 1fr 1fr; }
            .standard-dark { padding: 45px; }
            .standards-list { padding: 40px; }
        }

        @media (max-width: 760px) {
            .container { width: min(100% - 28px, 620px); }
            .topbar-inner { justify-content: center; }
            .topbar-group:first-child, .topbar-tag { display: none; }
            .header-inner { min-height: 74px; }
            .brand-logo { width: 50px; height: 50px; }
            .brand-name { font-size: 17px; }
            .nav-right .btn > span:not(.material-symbol) { display: none; }
            .nav-right .btn { width: 44px; min-height: 44px; padding: 0; }
            .hero { min-height: 660px; align-items: end; }
            .hero::before { background-position: 62% center; }
            .hero::after { background: linear-gradient(0deg, rgba(17,17,17,.98) 0%, rgba(17,17,17,.85) 50%, rgba(17,17,17,.22) 100%); }
            .hero-content { width: 100%; padding: 210px 0 105px; }
            .hero h1 { font-size: clamp(47px, 13vw, 68px); }
            .hero-copy { font-size: 15px; }
            .trust-wrap { margin-top: 0; }
            .trust-bar { grid-template-columns: 1fr; }
            .trust-item { min-height: 95px; }
            .trust-item + .trust-item { border-top: 1px solid var(--borde); border-left: 0; }
            .section { padding: 72px 0; }
            .section-head { grid-template-columns: 1fr; gap: 20px; margin-bottom: 34px; }
            .standard-grid, .contact-card { grid-template-columns: 1fr; }
            .standard-dark { min-height: 440px; }
            .contact-details { border-top: 1px solid var(--borde); border-left: 0; }
            .contact-copy { padding: 42px 28px; }
            .faq-wrap { grid-template-columns: 1fr; gap: 38px; }
            .faq-intro { position: static; }
            .cta-inner { grid-template-columns: 1fr; gap: 25px; padding: 45px 0; }
            .cta-inner .btn { justify-self: start; }
            .footer-grid { grid-template-columns: 1fr; gap: 32px; }
        }

        @media (max-width: 500px) {
            .brand-name small { display: none; }
            .header-inner { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
            .brand { min-width: 0; }
            .brand-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
            .nav-right { gap: 8px; }
            .hero-actions { display: grid; }
            .hero-actions .btn { width: 100%; }
            .hero-signature { display: none; }
            .services { grid-template-columns: 1fr; }
            .services-carousel.is-active .services { grid-auto-columns: 88%; }
            .carousel-controls { margin-top: -28px; }
            .carousel-progress { display: none; }
            .carousel-navigation { gap: 10px; }
            .service { min-height: 455px; }
            .standard-dark { min-height: 390px; padding: 32px; }
            .standard-logo { width: 86px; height: 86px; }
            .standards-list { padding: 25px; }
            .detail { padding: 22px; }
            .footer-bottom { display: block; line-height: 1.7; }
            .whatsapp-widget { right: 15px; bottom: 15px; }
            .whatsapp-panel { right: 0; width: min(350px, calc(100vw - 30px)); }
            .whatsapp-prompt { display: none; }
            .booking-modal { padding: 10px; }
            .booking-dialog { max-height: calc(100vh - 20px); }
            .booking-head, .booking-body { padding: 21px; }
            .booking-grid { grid-template-columns: 1fr; }
            .booking-field.full { grid-column: auto; }
            .booking-field input, .booking-field select, .booking-field textarea { font-size: 16px; }
            .booking-calendar, .booking-time-panel { width: min(330px, calc(100vw - 24px)); }
            .rewards-client { align-items: flex-start; padding: 14px; }
            .rewards-summary { text-align: left; }
            .reward-item { align-items: flex-start; padding: 13px 14px; }
            .reward-item-points { text-align: left; }
        }

        @media (prefers-reduced-motion: reduce) {
            html { scroll-behavior: auto; }
            *, *::before, *::after { transition-duration: .01ms !important; }
            .services-carousel.is-active .services { scroll-behavior: auto; }
            .hero-content > * { opacity: 1; animation: none; }
            .js [data-reveal] { opacity: 1; transform: none; }
        }
/* Reusable reveal timing helpers keep animation styling out of the markup. */
.reveal-delay-70 { --reveal-delay: 70ms; }
.reveal-delay-140 { --reveal-delay: 140ms; }
