/* Identidad pública MAURYTENG: negro, dorado y blanco. */
:root {
    color-scheme: dark;
    --espresso: var(--brand-background);
    --coffee: #d6d6d6;
    --caramel: var(--brand-gold);
    --cream: var(--brand-background);
    --beige: var(--brand-border);
    --dark: var(--brand-text);
    --white: var(--brand-text);
    --muted: var(--brand-muted);
    --gold-light: var(--brand-gold-light);
    --gradient: linear-gradient(135deg, #c29a4d, #f0d99e 60%, #d4af62);
    --gradient-deep: linear-gradient(150deg, #050505, #131313 65%, #241e12);
    --reserva-espresso: #d4af62;
    --reserva-coffee: #d6d6d6;
    --reserva-caramel: #d4af62;
    --reserva-cream: #080808;
    --reserva-beige: #3d3423;
    --reserva-dark: #ffffff;
    --reserva-white: #111111;
    --reserva-border: #3d3423;
    --reserva-shadow: 0 20px 50px #00000040;
}

body, .home-services, .home-location { background: #080808; }
.public-header { background: rgba(8, 8, 8, 0.97); }
.home-hero {
    background: radial-gradient(ellipse at 85% 20%, #d4af6214, transparent 50%), #080808;
}
.home-service-card, .home-team-card, .home-location-info {
    background: #111111;
    border-color: var(--beige);
}
.public-brand, .public-brand:hover, .public-section-title,
.home-hero h1, .navbar-toggler,
.home-service-title h3, .home-service-title h2,
.home-team-content h3, .home-location-item strong,
.home-service-footer a, .home-team-footer a,
.home-secondary-button { color: var(--white); }
.public-navbar .nav-link { color: #dddddd; }
.public-navbar .nav-link:hover,
.home-service-footer a:hover, .home-team-footer a:hover { color: var(--caramel); }
.home-hero-benefits { color: #dddddd; }
.home-hero-benefits span { background: #ffffff05; }
.home-service-footer span, .home-team-footer span,
.public-precio-anterior, .public-footer-bottom { color: #bcbcbc; }
.home-hero h1 span {
    font-family: "Barlow Condensed", Impact, sans-serif;
    font-weight: 900;
    font-size: 1em;
    line-height: 1.15;
}
.home-hero-visual-text strong {
    font-family: "Inter", sans-serif;
    font-weight: 700;
    font-size: clamp(1.5rem, 5vw, 2.6rem);
    letter-spacing: 0.04em;
    overflow-wrap: anywhere;
}
.public-brand { letter-spacing: 0.1em; }
.public-footer { background: #050505; }
.home-secondary-button:hover { border-color: var(--caramel); }
.reserva-progress-step { background: #242424; }
.reserva-empty, .reserva-summary, .reserva-confirmation-item,
.reserva-confirmation-observation { background: #ffffff05; }
.reserva-card, .reserva-option, .reserva-time-button,
.reserva-entry-card, .reserva-day-card, .reserva-professional-card {
    border-color: var(--reserva-border);
}
.reserva-date-input, .reserva-form-control {
    color: #ffffff;
    background-color: #161616;
    border-color: var(--reserva-border);
}
.reserva-date-input:focus, .reserva-form-control:focus {
    color: #ffffff;
    background-color: #161616;
}
.reserva-form-control::placeholder { color: #a8a8a8; }
.reserva-next-button, .reserva-next-button:hover,
.reserva-time-button.selected, .reserva-progress-step.active,
.reserva-price-summary, .reserva-confirmation-number,
.reserva-entry-icon { color: #080808; }
.reserva-back-button:hover { background: #ffffff08; }
.reserva-professional-photo, .reserva-professional-placeholder {
    background: var(--gradient-deep);
}
.reserva-confirmation-item, .reserva-option,
.reserva-time-button, .reserva-back-button,
.reserva-confirmation-observation { border-color: var(--reserva-border); }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; }
}

/* Dirección urbana: tipografía de cartel, tinta plana y cortes diagonales. */
:root { --display: var(--brand-display); }
.public-navbar { min-height: 82px; }
.public-brand { font-weight: 800; letter-spacing: -0.03em; font-size: 1.3rem; }
.public-logo { width: 42px; height: 42px; flex-basis: 42px; }
.public-nav-book, .home-primary-button, .home-secondary-button,
.home-final-cta-button {
    border-radius: 0;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 0.04em;
    box-shadow: none;
}
.public-nav-book, .home-primary-button, .home-final-cta-button {
    background: var(--caramel);
}
.public-nav-book:hover, .home-primary-button:hover, .home-final-cta-button:hover {
    background: var(--gold-light);
    box-shadow: 5px 5px 0 #d4af6240;
}
.home-secondary-button:hover { color: #080808; background: var(--caramel); }
.home-hero { padding: 72px 0 85px; background: #080808; }
.home-hero::before { display: none; }
.home-hero .row { --bs-gutter-x: 4rem; }
.public-eyebrow { font-size: .69rem; letter-spacing: .18em; }
.home-hero h1 {
    font-family: var(--display);
    font-size: clamp(4.6rem, 8.4vw, 8rem);
    font-weight: 900;
    letter-spacing: -.025em;
    line-height: .86;
    max-width: 760px;
}
.home-hero h1 span {
    margin-top: 9px;
    padding-bottom: .07em;
    line-height: .9;
    background: none;
    color: var(--caramel);
}
.home-hero-description { max-width: 440px; font-size: 1rem; line-height: 1.7; }
.home-hero-actions { margin-top: 28px; }
.home-primary-button, .home-secondary-button { min-height: 54px; }
.home-hero-benefits { gap: 18px; margin-top: 30px; }
.home-hero-benefits span { border: 0; padding: 0; background: none; border-radius: 0; }
.home-hero-visual {
    display: flex;
    min-height: 450px;
    padding: 24px;
    justify-content: flex-start;
    align-items: stretch;
    border-radius: 0;
    border: 1px solid #d4af6270;
    background: repeating-linear-gradient(125deg, transparent 0 24px, #ffffff04 24px 25px), #111111;
    box-shadow: 12px 12px 0 #d4af6218;
    transform: rotate(2deg);
    isolation: isolate;
}
.home-hero-visual::before {
    width: 185px; height: 185px; right: -60px; top: -70px;
    border-radius: 0; border: 28px solid #d4af6218; transform: rotate(45deg);
}
.home-hero-visual::after { display: none; }
.urban-poster-top {
    display: flex; align-items: center; justify-content: space-between;
    gap: 10px; padding-bottom: 16px; border-bottom: 1px solid #ffffff30;
    font-size: .58rem; font-weight: 700; letter-spacing: .15em;
}
.urban-poster-top i { font-size: 1.3rem; color: var(--caramel); }
.urban-poster-logo {
    display: block;
    align-self: center;
    width: min(100%, 280px);
    height: 280px;
    margin: 18px 0 24px;
    object-fit: contain;
    object-position: center;
}
.urban-poster-name {
    font-family: var(--display); font-size: clamp(2rem, 3.6vw, 3.5rem);
    font-weight: 800; letter-spacing: .045em; text-align: center;
    line-height: 1; margin-top: -10px;
}
.urban-poster-tape {
    background: var(--caramel); color: #080808; padding: 12px 8px;
    margin: 22px -35px 20px; transform: rotate(-6deg);
    text-align: center; font-size: .72rem; font-weight: 800; letter-spacing: .08em;
}
.urban-poster-instagram {
    display: flex; gap: 10px; align-items: center; justify-content: center;
    margin-top: auto; color: #ffffff; font-size: .85rem; padding: 8px;
}
.urban-poster-instagram:hover { color: var(--caramel); }
.urban-strip { overflow: hidden; background: var(--caramel); color: #080808; }
.urban-strip > div {
    width: max-content; padding: 13px 0; white-space: nowrap;
    font-family: var(--display); font-size: 1.6rem; font-weight: 800;
    letter-spacing: .04em;
}
.urban-strip span { margin: 0 26px; }
.public-section-title, .home-final-cta h2 {
    font-family: var(--display); font-weight: 800; text-transform: uppercase;
    letter-spacing: -.01em; font-size: clamp(2.8rem, 5vw, 4.5rem); line-height: .98;
}
.home-services, .home-team, .home-gallery, .home-location { padding: 85px 0; }
.home-team { background: #0e0e0e; }
.home-service-card, .home-team-card, .home-location-info, .home-map,
.home-gallery-item { border-radius: 0; }
.home-service-card { border-color: #ffffff25; background: #101010; }
.home-services .row { counter-reset: service; }
.home-service-icon {
    counter-increment: service; background: none; border-bottom: 1px solid #ffffff20;
    border-radius: 0; display: flex; justify-content: space-between;
}
.home-service-icon::after {
    content: counter(service, decimal-leading-zero);
    font-family: var(--display); font-size: 1.5rem; color: #ffffff55;
}
.home-service-title h3, .home-team-content h3, .home-service-title strong {
    font-family: var(--display); font-size: 1.65rem; font-weight: 700;
}
.home-service-card:hover, .home-team-card:hover {
    box-shadow: 5px 5px 0 #d4af6220; transform: translateY(-3px);
}
.home-gallery, .home-final-cta { background: #080808; }
.home-gallery { border-top: 1px solid #ffffff20; }
.urban-social {
    padding: 55px 0; background: #111111;
    border-top: 1px solid #ffffff20; border-bottom: 1px solid #ffffff20;
}
.urban-social .container {
    display: flex; align-items: center; justify-content: space-between;
    gap: 24px; flex-wrap: wrap;
}
.urban-social p { margin: 10px 0 0; color: var(--muted); }
.urban-social a {
    display: inline-flex; align-items: center; gap: 14px;
    padding: 16px 0; border-bottom: 2px solid var(--caramel);
    color: var(--caramel); font-weight: 700; font-size: 1.2rem;
}
.urban-social a:hover { color: #ffffff; }
.home-location-item strong a { color: var(--caramel); }
.home-location-item strong a:hover { color: #ffffff; }
.home-final-cta { border-top: 0; }
.reserva-title, .reserva-entry-content h2, .reserva-step-title,
.reserva-day-number, .reserva-professional-content h3,
.home-service-title h2, .home-gallery-overlay strong, .home-map-placeholder strong {
    font-family: var(--display); font-weight: 800; text-transform: uppercase;
}
.reserva-card, .reserva-entry-card, .reserva-professional-card,
.reserva-day-card, .reserva-option { border-radius: 3px; }
.reserva-next-button, .reserva-back-button { border-radius: 0; }
@media (max-width: 991.98px) {
    .home-hero { padding: 50px 0 60px; }
    .home-hero-visual { max-width: 470px; margin: 0 auto; transform: rotate(1deg); }
    .home-hero .row { --bs-gutter-x: 1.5rem; }
    .urban-poster-logo { height: 250px; }
    .urban-poster-name { font-size: 3rem; }
}
@media (max-width: 575.98px) {
    .public-brand { font-size: 1.15rem; }
    .public-navbar { min-height: 70px; }
    .home-hero h1 { font-size: clamp(3.8rem, 16vw, 5.6rem); }
    .home-hero-visual { min-height: 390px; padding: 20px; margin: 0 8px; }
    .urban-poster-logo { height: 210px; }
    .urban-poster-name { font-size: 2.8rem; }
    .home-hero-benefits { gap: 12px; font-size: .7rem; }
    .home-services, .home-team, .home-gallery, .home-location { padding: 60px 0; }
    .home-primary-button, .home-secondary-button { padding: 0 16px; font-size: .78rem; }
    .home-section-heading { margin-bottom: 30px; }
}
