/* Manrope variable font, served locally; license: ../fonts/manrope/OFL.txt. */
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-ext-wght.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: 'Manrope';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/manrope/manrope-latin-wght.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
    --site-font: 'Manrope', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    --bs-font-sans-serif: var(--site-font);
    --bs-body-font-family: var(--site-font);
    color-scheme: dark;
    --site-bg: #242729;
    --site-surface: #303437;
    --site-raised: #383d40;
    --site-text: #f3efe8;
    --site-muted: #c0bdb7;
    --site-sand: #d7bd96;
    --site-sand-hover: #e4cfae;
    --site-bronze: #ae8256;
    --site-line: rgba(215, 189, 150, .19);
    --bs-primary: #d7bd96;
    --bs-primary-rgb: 215, 189, 150;
    --bs-body-bg: #242729;
    --bs-body-color: #f3efe8;
    --bs-border-color: rgba(215, 189, 150, .19);
    --bs-link-color: #d7bd96;
    --bs-link-hover-color: #e4cfae;
}
body.site-theme {
    margin: 0;
    background: var(--site-bg);
    color: var(--site-text);
    font-family: var(--site-font);
    -webkit-font-smoothing: antialiased;
    --bs-body-bg: var(--site-bg);
    --bs-body-color: var(--site-text);
    --bs-secondary-color: var(--site-muted);
    --bs-emphasis-color: var(--site-text);
    --bs-border-color: var(--site-line);
    --bs-link-color-rgb: 215, 189, 150;
    --bs-link-hover-color-rgb: 228, 207, 174;
}
::selection { background: var(--site-sand); color: var(--site-bg); }
a { color: var(--site-sand); text-underline-offset: 4px; }
a:hover { color: var(--site-sand-hover); }
:focus-visible { outline: 2px solid var(--site-sand-hover); outline-offset: 5px; }
#main:focus { outline: none; }
.text-primary { color: var(--site-sand) !important; }
.text-dark, .text-white { color: var(--site-text) !important; }
.text-muted { color: var(--site-muted) !important; }
.bg-white { background-color: var(--site-bg) !important; }
.bg-light { background-color: var(--site-surface) !important; }
.bg-primary { background-color: var(--site-sand) !important; }
.bg-primary.text-white { color: var(--site-bg) !important; }
.border-light { border-color: var(--site-line) !important; }
.link-light { color: var(--site-text) !important; }
.link-light:hover { color: var(--site-sand) !important; }
.badge { font-weight: 500; }

/* Navigation */
html { scroll-padding-top: 107px; }
body.site-theme > header {
    position: sticky;
    top: 0;
    z-index: 1020;
}
@media (max-width: 575.98px) {
    html { scroll-padding-top: 91px; }
}
.site-nav {
    background: #202325;
    border-bottom: 1px solid var(--site-line);
    padding: 0;
    --bs-navbar-color: var(--site-muted);
    --bs-navbar-hover-color: var(--site-sand);
    --bs-navbar-active-color: var(--site-sand);
}
.site-nav .navbar-brand { color: var(--site-text) !important; font-size: 1.25rem; letter-spacing: -.04em; }
.site-nav .navbar-brand > i { color: var(--site-sand); margin-right: 6px; }
.site-nav .nav-link { color: var(--site-muted); font-size: .88rem; transition: color .2s ease; }
.site-nav .nav-link:hover, .site-nav .nav-link:focus-visible { color: var(--site-sand); }
.site-nav .nav-contact { color: var(--site-sand); }
.site-nav .navbar-toggler { border-color: var(--site-line); border-radius: 8px; padding: 8px; }
.site-nav .navbar-toggler:focus { box-shadow: 0 0 0 3px rgba(215, 189, 150, .3); }

@media (max-width: 991.98px) {
    html.mobile-nav-open, html.mobile-nav-open body { overflow: hidden; overscroll-behavior: none; }
    body > header:has(.site-nav .navbar-collapse.show, .site-nav .navbar-collapse.collapsing) { z-index: 1040; }
    .site-nav .navbar-collapse {
        position: fixed;
        inset: 0;
        z-index: 1;
        height: 100vh;
        height: 100dvh;
        flex-direction: column;
        align-items: stretch;
        padding: max(96px, calc(env(safe-area-inset-top) + 72px)) max(24px, env(safe-area-inset-right)) max(96px, calc(env(safe-area-inset-bottom) + 72px)) max(24px, env(safe-area-inset-left));
        overflow-y: auto;
        overscroll-behavior: contain;
        background: #202325;
    }
    .site-nav .navbar-collapse.show, .site-nav .navbar-collapse.collapsing {
        display: flex;
        height: 100vh !important;
        height: 100dvh !important;
        transition: none;
    }
    .site-nav .navbar-collapse .navbar-nav {
        flex-shrink: 0;
        align-items: center;
        gap: 16px;
        width: 100%;
        margin-block: auto;
        margin-inline: 0 !important;
        padding: 0 !important;
        text-align: center;
    }
    .site-nav .navbar-nav .nav-item { max-width: 100%; }
    .site-nav .navbar-nav .nav-link { padding: 10px 16px; overflow-wrap: anywhere; }
    .site-nav .navbar-toggler { min-width: 44px; min-height: 44px; }
    .site-nav:has(.navbar-collapse.show, .navbar-collapse.collapsing) .navbar-toggler {
        position: fixed;
        top: max(16px, env(safe-area-inset-top));
        right: max(16px, env(safe-area-inset-right));
        z-index: 2;
        background: #202325;
    }
    .site-nav:has(.navbar-collapse.show, .navbar-collapse.collapsing) .navbar-toggler-icon { position: relative; background-image: none; }
    .site-nav:has(.navbar-collapse.show, .navbar-collapse.collapsing) .navbar-toggler-icon::before,
    .site-nav:has(.navbar-collapse.show, .navbar-collapse.collapsing) .navbar-toggler-icon::after {
        content: '';
        position: absolute;
        top: calc(50% - 1px);
        left: 10%;
        width: 80%;
        height: 2px;
        background: var(--site-muted);
        transform: rotate(45deg);
    }
    .site-nav:has(.navbar-collapse.show, .navbar-collapse.collapsing) .navbar-toggler-icon::after { transform: rotate(-45deg); }
}

/* Shared controls and all Bootstrap interaction states */
.btn {
    min-height: 44px;
    padding: .7rem 1.25rem;
    border-radius: 999px;
    font-weight: 600;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.btn-primary {
    --bs-btn-color: #242729;
    --bs-btn-bg: #d7bd96;
    --bs-btn-border-color: #d7bd96;
    --bs-btn-hover-color: #242729;
    --bs-btn-hover-bg: #e4cfae;
    --bs-btn-hover-border-color: #e4cfae;
    --bs-btn-active-color: #242729;
    --bs-btn-active-bg: #c9ab80;
    --bs-btn-active-border-color: #c9ab80;
    --bs-btn-disabled-color: #242729;
    --bs-btn-disabled-bg: #d7bd96;
    --bs-btn-disabled-border-color: #d7bd96;
    --bs-btn-focus-shadow-rgb: 215, 189, 150;
}
.btn-outline-primary {
    --bs-btn-color: #d7bd96;
    --bs-btn-border-color: #8e7e67;
    --bs-btn-hover-color: #242729;
    --bs-btn-hover-bg: #d7bd96;
    --bs-btn-hover-border-color: #d7bd96;
    --bs-btn-active-color: #242729;
    --bs-btn-active-bg: #d7bd96;
    --bs-btn-active-border-color: #d7bd96;
    --bs-btn-disabled-color: #c0bdb7;
    --bs-btn-disabled-border-color: #8e7e67;
    --bs-btn-focus-shadow-rgb: 215, 189, 150;
}
.btn:focus-visible { outline: 2px solid var(--site-sand-hover); outline-offset: 4px; }
.btn:disabled { opacity: .6; }

.back-to-top {
    position: fixed;
    right: calc(max(20px, env(safe-area-inset-right)) + 8px);
    bottom: calc(max(20px, env(safe-area-inset-bottom)) + 92px);
    z-index: 1041;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--site-sand);
    border-radius: 50%;
    background: var(--site-bg);
    color: var(--site-sand);
    box-shadow: none;
    font-size: 1.5rem;
    cursor: pointer;
    transition: background-color .2s ease, transform .2s ease;
}
.back-to-top[hidden] { display: none; }
.back-to-top:hover { background: var(--site-sand-hover); color: var(--site-bg); transform: translateY(-3px); }
@media (max-width: 991.98px) {
    html.mobile-nav-open .back-to-top { display: none; }
}

.floating-call {
    position: fixed;
    right: max(20px, env(safe-area-inset-right));
    bottom: max(20px, env(safe-area-inset-bottom));
    z-index: 1041;
    display: grid;
    place-items: center;
    width: 60px;
    height: 60px;
    border: 1px solid #16a34a;
    border-radius: 50%;
    background: #16a34a;
    color: #fff;
    box-shadow: 0 0 0 5px rgba(22, 163, 74, .16), 0 4px 18px rgba(0, 0, 0, .25);
    font-size: 1.75rem;
    text-decoration: none;
    transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.floating-call:hover { background: #15803d; color: #fff; transform: translateY(-3px); }
.floating-call:focus-visible { outline: 2px solid #fff; outline-offset: 5px; }

/* Full-width photo cover, with content and services strip in normal flow */
.hero-section { position: relative; isolation: isolate; background: #242729; overflow: hidden; }
.hero-media { position: absolute; inset: 0; z-index: -2; background: #242729; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 65% center; opacity: .65; }
.hero-section::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, rgba(22, 25, 27, .95) 0%, rgba(22, 25, 27, .87) 28%, rgba(22, 25, 27, .48) 53%, rgba(22, 25, 27, .06) 78%),
                linear-gradient(0deg, rgba(22, 25, 27, .95) 0%, rgba(22, 25, 27, .1) 50%);
}
.hero-layout { min-height: 740px; display: grid; grid-template-rows: 1fr auto; padding-top: 0; padding-bottom: 20px; }
.hero-copy { max-width: 650px; align-self: center; padding-block: 56px; }
.hero-eyebrow { display: flex; align-items: center; gap: 14px; margin: 0 0 24px; color: var(--site-sand); font-size: .72rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; line-height: 1.7; }
.hero-eyebrow::before { content: ''; width: 32px; height: 1px; flex-shrink: 0; background: var(--site-bronze); }
.hero-copy .hero-eyebrow::before { content: none; }
.hero-copy h1 { max-width: 650px; margin: 0 0 25px; font-size: clamp(3rem, 5.25vw, 5rem); font-weight: 600; line-height: 1.04; letter-spacing: -.04em; text-wrap: balance; }
.hero-copy h1 span { display: block; color: var(--site-sand); }
.hero-offer { max-width: 560px; margin: 0 0 30px; }
.hero-offer-intro { margin: 0 0 14px; color: var(--site-sand); font-size: 1rem; font-weight: 600; line-height: 1.5; }
.hero-offer-list { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; color: #d1cdc5; font-size: 17px; line-height: 1.5; text-align: left; }
.hero-offer-list li { display: grid; grid-template-columns: 10px minmax(0, 1fr); align-items: start; gap: 14px; }
.hero-offer-list li::before { content: ''; width: 7px; height: 7px; justify-self: center; margin-top: calc(.75em - 3.5px); border: 1px solid var(--site-sand); transform: rotate(45deg); }
.hero-offer-list li > span { min-width: 0; overflow-wrap: anywhere; }
.hero-offer-list strong { color: var(--site-text); font-weight: 600; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-actions .btn { min-height: 52px; display: inline-flex; align-items: center; justify-content: space-between; gap: 25px; padding: 15px 20px; font-size: .88rem; }
.hero-secondary { color: var(--site-text); background: rgba(36, 39, 41, .3); border: 1px solid rgba(243, 239, 232, .5); }
.hero-secondary:hover, .hero-secondary:active, .hero-secondary:focus-visible { color: var(--site-bg); background: var(--site-text); border-color: var(--site-text); }
.hero-trust { position: relative; isolation: isolate; margin-top: 0; }
.hero-trust::before { content: ''; position: absolute; z-index: -1; inset: -28px calc(50% - 50vw) -20px; background: linear-gradient(180deg, rgba(22, 25, 27, .35), rgba(22, 25, 27, .88) 35%, rgba(22, 25, 27, .96)); pointer-events: none; }
.trust-heading { margin: 0 0 28px; color: var(--site-text); font-size: clamp(1.3rem, 2vw, 1.65rem); font-weight: 600; line-height: 1.3; letter-spacing: -.025em; }
.trust-heading span { color: var(--site-sand); }
.trust-strip { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin: 0; padding: 8px 0 4px; }
.trust-item { position: relative; isolation: isolate; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; min-width: 0; padding: 0 20px 20px 0; opacity: 1; transform: translateY(0); transition: opacity 800ms ease, transform 850ms cubic-bezier(.22, 1, .36, 1); }
.trust-item:not(:last-child)::after { content: ''; position: absolute; top: 24px; left: 64px; right: -24px; height: 1px; background: linear-gradient(90deg, rgba(215, 189, 150, .9), rgba(215, 189, 150, .5)); transform: scaleX(1); transform-origin: left center; transition: transform 650ms cubic-bezier(.22, 1, .36, 1) 300ms; }
.trust-item > div { min-width: 0; max-width: 310px; overflow-wrap: anywhere; text-shadow: 0 2px 8px rgba(0, 0, 0, .6); }
.trust-item.is-pending { opacity: 0; transform: translateY(24px); transition: none; }
.trust-item.is-pending::after { transform: scaleX(0); transition: none; }
.trust-item strong { display: block; color: #fff; font-weight: 700; font-size: 20px; line-height: 1.4; letter-spacing: -.02em; }
.trust-icon { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; border-radius: 50%; background: var(--site-sand); color: #242729; box-shadow: 0 0 24px rgba(215, 189, 150, .16); font-size: 1.65rem; }
.trust-label { display: block; color: #e7e2d9; margin-top: 10px; font-size: 14px; line-height: 1.7; }

/* Anthracite surfaces throughout the existing sections */
main > section:not(.hero-section) { padding-top: 76px !important; padding-bottom: 76px !important; }
main > section:not(.hero-section) .display-6 { font-weight: 600 !important; letter-spacing: -.03em; line-height: 1.2; }
main > section:not(.hero-section) .text-uppercase { letter-spacing: .15em; font-size: .72rem; }
.card { background: var(--site-surface); color: var(--site-text); --bs-card-border-color: var(--site-line); }
.bg-light .card { background: var(--site-bg); }
.shadow-sm { box-shadow: 0 8px 28px rgba(0, 0, 0, .1) !important; }
.ratio[role="img"] { border: 1px solid var(--site-line); background-image: linear-gradient(145deg, rgba(215, 189, 150, .035), transparent 60%); }
#productsCarousel .carousel-inner { background: var(--site-surface) !important; }
#productsCarousel .product-media { background: var(--site-surface); }
.product-gallery-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 16px; max-width: 100%; min-height: 48px; padding: 12px 18px; font-size: .88rem; text-align: left; }
.product-gallery-link > span { min-width: 0; }
.product-gallery-link > i { flex-shrink: 0; }
.gallery-overview-link { --bs-btn-bg: rgba(215, 189, 150, .06); --bs-btn-border-color: var(--site-sand); display: inline-flex; align-items: center; justify-content: center; min-height: 48px; font-size: .9rem; }
.about-collage { position: relative; isolation: isolate; width: 100%; padding-bottom: 40%; }
.about-image { width: 74%; aspect-ratio: 4 / 3; overflow: hidden; background: var(--site-surface); border: 1px solid rgba(215, 189, 150, .32); border-radius: 16px; box-shadow: 0 10px 28px rgba(0, 0, 0, .16); }
.about-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.about-image--installation { margin-left: auto; }
.about-image--workshop { position: absolute; z-index: 1; left: 0; bottom: 0; }

#productsCarousel .product-collage { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 4px; }
#productsCarousel .product-collage img { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: cover; object-position: center; }
.product-carousel-stage { position: relative; container-type: inline-size; }
.product-carousel-arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    padding: 0;
    border: 1px solid rgba(215, 189, 150, .6);
    border-radius: 50%;
    background: var(--site-bg);
    color: var(--site-sand);
    box-shadow: 0 6px 20px rgba(0, 0, 0, .25);
    font-size: 1.25rem;
    transform: translateY(-50%);
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.product-carousel-arrow--prev { left: -26px; }
.product-carousel-arrow--next { right: -26px; }
.product-carousel-arrow:hover { background: var(--site-sand); color: var(--site-bg); border-color: var(--site-sand); }
.product-carousel-dots { display: flex; justify-content: center; margin-top: 16px; }
.product-carousel-dot { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: transparent; }
.product-carousel-dot::before { content: ""; width: 10px; height: 10px; border: 1px solid rgba(215, 189, 150, .55); border-radius: 50%; background: rgba(215, 189, 150, .2); transition: background-color .2s ease, border-color .2s ease; }
.product-carousel-dot:hover::before { border-color: var(--site-sand); background: rgba(215, 189, 150, .5); }
.product-carousel-dot.active::before { background: var(--site-sand); border-color: var(--site-sand); }
.product-carousel-arrow:focus-visible, .product-carousel-dot:focus-visible { outline: 2px solid var(--site-sand-hover); outline-offset: 3px; }
@media (max-width: 991.98px) {
    /* The square collage stays centered at half the stage width, including its symmetric padding. */
    .product-carousel-arrow { top: 50cqw; width: 44px; height: 44px; }
    .product-carousel-arrow--prev { left: 8px; }
    .product-carousel-arrow--next { right: 8px; }
}
#clients .bi-quote { color: var(--site-bronze) !important; }
#contact.bg-primary { background: #1d2022 !important; color: var(--site-text) !important; border-top: 1px solid var(--site-line); }
#contact > .bg-dark { background: transparent !important; }
#contact h2 { font-weight: 600 !important; letter-spacing: -.03em; }
#contact .bg-white { background: var(--site-surface) !important; border: 1px solid var(--site-line); }
#contact .text-uppercase { color: var(--site-sand); letter-spacing: .15em; font-size: .72rem; }
#contact p { color: var(--site-muted); }
#contact .link-light { text-decoration: none; }
#contact .container { padding-bottom: 16px; }

/* Contact channels */
.contact-header { margin-bottom: 36px; text-align: left; }
.contact-intro { max-width: 680px; line-height: 1.8; }
.contact-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 36px; margin-bottom: 24px; }
.contact-copy, .contact-methods { min-width: 0; }
.contact-section-title { margin: 0 0 20px; font-size: 1.25rem; font-weight: 600; letter-spacing: -.03em; }
.contact-section-title > i { color: var(--site-sand); }
.contact-details { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin: 0; color: var(--site-text); font-size: 1rem; font-weight: 400; line-height: 1.6; }
.contact-detail { display: flex; align-items: baseline; gap: 10px; max-width: 100%; }
.contact-detail dt { flex: 0 0 20px; color: var(--site-sand); font-size: 1rem; font-weight: 400; text-align: center; }
.contact-detail dd { min-width: 0; margin: 0; }
.contact-details dd { overflow-wrap: anywhere; }
.contact-details a { color: inherit; text-decoration: none; }
.contact-details a:hover, .contact-details a:focus-visible { color: var(--site-sand); text-decoration: underline; }
.contact-details .contact-phone { white-space: nowrap; }
.contact-hint { margin: 24px 0 16px; font-size: .9rem; line-height: 1.6; }
.contact-channels { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px; }
.contact-channel {
    --channel-color: var(--site-sand);
    --channel-tint: rgba(215, 189, 150, .1);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: auto;
    padding: 0;
    color: var(--site-text);
    font-size: clamp(.72rem, 1.1vw, .9rem);
    font-weight: 500;
    line-height: 1.4;
    text-align: center;
    text-decoration: none;
    overflow-wrap: anywhere;
    border: 0;
    background: transparent;
    transition: color .2s ease;
}
.contact-channel--viber { --channel-color: #c1b1e8; --channel-tint: rgba(159, 131, 215, .12); }
.contact-channel--whatsapp { --channel-color: #9fd7b7; --channel-tint: rgba(103, 189, 141, .1); }
.contact-channel--instagram { --channel-color: #e1acc5; --channel-tint: rgba(209, 125, 166, .1); }
.contact-channel:hover, .contact-channel:focus-visible { color: var(--channel-color); }
.contact-channel:focus-visible { outline: 2px solid var(--channel-color); outline-offset: 5px; }
.contact-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: clamp(32px, 4vw, 48px);
    height: clamp(32px, 4vw, 48px);
    border-radius: 50%;
    background: var(--channel-tint);
    color: var(--channel-color);
    font-size: clamp(1.25rem, 3vw, 1.8rem);
    line-height: 1;
}
.contact-icon svg { width: 75%; height: 75%; }

@media (max-width: 575.98px) {
    .contact-channels { width: 100%; }
    .contact-icon { width: 64px; height: 64px; font-size: 2.4rem; }
    .contact-icon svg { width: 1.3em; height: 1.3em; }
}

/* Address and compact embedded location beside the contact channels */
.contact-address { margin: 0 0 20px; color: var(--site-text); font-style: normal; line-height: 1.8; overflow-wrap: anywhere; }
.contact-map { min-width: 0; }
.contact-map-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin-top: 8px; color: var(--site-sand); font-size: .8rem; font-weight: 600; text-decoration: none; }
.contact-map-frame { overflow: hidden; border: 1px solid var(--site-line); border-radius: 18px; background: var(--site-surface); }
.contact-map-frame iframe { display: block; width: 100%; height: 280px; border: 0; }

@media (min-width: 992px) {
    .contact-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto; align-items: stretch; column-gap: 40px; row-gap: 0; }
    .contact-copy { grid-column: 1; grid-row: 1; }
    .contact-map { display: grid; grid-column: 2; grid-row: 1 / span 2; grid-template-rows: subgrid; text-align: right; }
    .contact-location { display: flex; flex-direction: column; min-width: 0; }
    .contact-map-frame { position: relative; flex: 1; min-height: 280px; aspect-ratio: 2 / 1; }
    .contact-map-frame iframe { position: absolute; inset: 0; height: 100%; }
    .contact-map-link { justify-self: end; align-self: start; }
    .hero-copy { padding-top: 24px; padding-bottom: 88px; }
}
@media (min-width: 1600px) {
    .hero-layout { min-height: 800px; }
}
@media (max-width: 1199.98px) {
    .hero-copy { max-width: 580px; }
}
@media (max-width: 991.98px) {
    .site-nav .navbar-nav { padding-bottom: 8px; }
    .site-nav .nav-link { padding: 10px 0; }
    .hero-layout { min-height: 780px; }
    .hero-copy { max-width: 550px; }
    .hero-copy h1 { font-size: 4rem; }
    .hero-section::before { background: linear-gradient(90deg, rgba(22, 25, 27, .92), rgba(22, 25, 27, .66) 65%, rgba(22, 25, 27, .25)), linear-gradient(0deg, #1d2022, transparent 65%); }
    .trust-strip { grid-template-columns: 1fr; gap: 0; }
    .trust-item { display: block; min-height: 112px; padding: 0 0 32px 72px; }
    .trust-item:last-child { min-height: 0; padding-bottom: 12px; }
    .trust-icon { position: absolute; top: 0; left: 0; }
    .trust-item:not(:last-child)::after { top: 62px; bottom: 14px; left: 24px; right: auto; width: 1px; height: auto; background: linear-gradient(180deg, rgba(215, 189, 150, .9), rgba(215, 189, 150, .5)); }
    .trust-item:not(:last-child)::after { transform: scaleY(1); transform-origin: center top; }
    .trust-item.is-pending::after { transform: scaleY(0); }
    .trust-item > div { max-width: 440px; }
    main > section:not(.hero-section) { padding-top: 56px !important; padding-bottom: 56px !important; }
}
@media (max-width: 575.98px) {
    .product-gallery-link { width: 100%; }
    .site-nav .navbar-brand { font-size: 1.1rem; }
    .hero-media img { object-position: 72% center; }
    .hero-section::before { background: linear-gradient(90deg, rgba(22, 25, 27, .84), rgba(22, 25, 27, .5)), linear-gradient(0deg, #1d2022 0%, rgba(22, 25, 27, .3) 75%); }
    .hero-layout { min-height: 0; padding-bottom: 18px; padding-inline: 20px; }
    .hero-copy { width: 100%; justify-self: center; padding-block: 40px; text-align: center; }
    .hero-copy .hero-eyebrow { justify-content: center; }
    .hero-eyebrow { font-size: .59rem; letter-spacing: .11em; gap: 10px; margin-bottom: 24px; }
    .hero-eyebrow::before { width: 20px; }
    .hero-copy h1 { font-size: clamp(2.5rem, 11.6vw, 3.75rem); line-height: 1.08; margin-bottom: 22px; }
    .hero-offer { width: 100%; max-width: 345px; margin-inline: auto; margin-bottom: 26px; text-align: left; }
    .hero-offer-intro { text-align: center; }
    .hero-offer-list { width: 100%; font-size: 15px; text-align: left; }
    .hero-actions { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 10px; }
    .hero-actions .btn { width: auto; max-width: 100%; min-height: 44px; padding: 10px 14px; font-size: .8rem; gap: 12px; overflow-wrap: anywhere; }
    main > section:not(.hero-section) { padding-top: 44px !important; padding-bottom: 44px !important; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
    .trust-item.is-pending { opacity: 1; transform: none; }
    .trust-item.is-pending::after { transform: none; }
}

/* Gallery: category panels aligned with the shared site container. */
.site-nav .nav-link.active { color: var(--site-sand); }
.gallery-page { min-height: 100vh; display: flex; flex-direction: column; }
.gallery-main { flex: 1; padding-top: 32px; padding-bottom: 40px; }
.gallery-heading { margin-bottom: 24px; }
.gallery-heading .hero-eyebrow { margin: 0; }
.gallery-tabs { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; padding-bottom: 22px; border-bottom: 1px solid var(--site-line); }
.gallery-tab { display: inline-flex; align-items: center; justify-content: center; gap: 20px; min-height: 48px; padding: 12px 22px; border: 1px solid var(--site-line); border-radius: 999px; background: transparent; color: var(--site-muted); font: inherit; font-size: .9rem; font-weight: 600; transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
.gallery-tab:hover { color: var(--site-text); border-color: var(--site-sand); }
.gallery-tab[aria-selected="true"] { color: var(--site-bg); background: var(--site-sand); border-color: var(--site-sand); }
.gallery-panel[hidden] { display: none !important; }
.gallery-main > .gallery-panel { padding: 0 !important; }
.gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.gallery-thumbnail { position: relative; display: block; overflow: hidden; min-width: 0; border: 1px solid var(--site-line); border-radius: 10px; background: var(--site-surface); color: var(--site-text); text-decoration: none; }
.gallery-thumbnail img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s ease; }
.gallery-thumbnail:hover img { transform: scale(1.035); }
.gallery-thumbnail:focus-visible { outline-offset: 4px; }
.gallery-caption { position: absolute; right: 18px; bottom: 18px; color: #fff; }
.gallery-caption i { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid rgba(255, 255, 255, .4); border-radius: 50%; background: rgba(16, 20, 22, .35); }
.gallery-demo-note { margin: 28px 0 0; color: var(--site-muted); font-size: .72rem; line-height: 1.9; }
.gallery-demo-note > i { color: var(--site-sand); margin-right: 6px; }
.gallery-demo-note a { white-space: normal; }
.gallery-footer { padding: 24px 0; border-top: 1px solid var(--site-line); color: var(--site-muted); font-size: .75rem; }
.gallery-footer-content { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.gallery-footer a { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; }

/* Viewer.js: only previous/next controls and the thumbnail strip. */
.gallery-viewer.viewer-backdrop { background-color: rgba(15, 18, 20, .97); }
.gallery-viewer .viewer-canvas { bottom: 100px; }
.gallery-viewer .viewer-footer { padding: 12px 0 max(16px, env(safe-area-inset-bottom)); background: rgba(15, 18, 20, .9); }
.gallery-viewer .viewer-navbar { position: relative; z-index: 1; padding: 4px 0; }
.gallery-viewer .viewer-list { height: 58px; }
.gallery-viewer .viewer-list > li { width: 72px; height: 54px; margin-right: 0; border: 2px solid transparent; border-radius: 6px; opacity: .55; }
.gallery-viewer .viewer-list > li + li { margin-left: 8px; }
.gallery-viewer .viewer-list > .viewer-active { border-color: var(--site-sand); opacity: 1; }
.gallery-viewer .viewer-list > li:hover { opacity: 1; }
.gallery-viewer .viewer-toolbar { position: fixed; inset: 0; margin: 0; pointer-events: none; }
.gallery-viewer .viewer-toolbar > ul { display: block; width: 100%; height: 100%; margin: 0; padding: 0; }
.gallery-viewer .viewer-toolbar li { position: absolute; top: calc(50% - 70px); display: grid; place-items: center; width: 52px; height: 52px; margin: 0; border: 1px solid rgba(215, 189, 150, .5); border-radius: 50%; background: rgba(30, 34, 36, .85); pointer-events: auto; }
.gallery-viewer .viewer-toolbar .viewer-prev { left: 24px; }
.gallery-viewer .viewer-toolbar .viewer-next { right: 24px; }
.gallery-viewer .viewer-toolbar li:hover { background: #4b4942; }
.gallery-viewer .viewer-toolbar > ul > li:focus { position: absolute; }
.gallery-viewer .viewer-toolbar li::before { float: none; margin: 0; }
.gallery-viewer .viewer-button { top: 16px; right: 16px; width: 44px; height: 44px; border: 1px solid rgba(215, 189, 150, .5); border-radius: 50%; background: rgba(30, 34, 36, .85); }
.gallery-viewer .viewer-button::before { bottom: 11px; left: 11px; }
.gallery-viewer [role="button"]:focus-visible { outline: 2px solid var(--site-sand); outline-offset: 2px; }

@media (max-width: 991.98px) {
    .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}
@media (max-width: 575.98px) {
    .gallery-main { padding-top: 24px; padding-bottom: 28px; }
    .gallery-heading .hero-eyebrow { font-size: .63rem; }
    .gallery-tabs { gap: 8px; margin-bottom: 20px; padding-bottom: 18px; }
    .gallery-tab { flex: 1 1 calc(50% - 4px); gap: 8px; padding: 12px 8px; font-size: .8rem; }
    .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .gallery-caption { right: 10px; bottom: 10px; }
    .gallery-caption i { width: 24px; height: 24px; }
    .gallery-viewer .viewer-toolbar li { width: 44px; height: 44px; }
    .gallery-viewer .viewer-toolbar .viewer-prev { left: 12px; }
    .gallery-viewer .viewer-toolbar .viewer-next { right: 12px; }
    .gallery-viewer .viewer-list { height: 52px; }
    .gallery-viewer .viewer-list > li { width: 60px; height: 48px; }
    .gallery-viewer .viewer-list > li + li { margin-left: 6px; }
}

/* Homepage handle selection */
#products { padding-bottom: 0 !important; }
#handles { padding-top: 24px !important; }
.handles-description { max-width: 560px; margin-inline: auto; font-size: .95rem; line-height: 1.8; }
.handles-carousel { position: relative; }
.handles-carousel-arrow { top: 50%; }
.handles-viewport {
    --handles-gap: clamp(16px, 2vw, 28px);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.handles-viewport::-webkit-scrollbar { display: none; }
.handles-viewport:focus-visible { outline-offset: -3px; }
.handles-track {
    display: flex;
    width: max-content;
    align-items: flex-start;
    gap: var(--handles-gap);
}
.handles-card {
    flex: 0 0 auto;
    width: clamp(202.5px, 30.78vw, 413.1px);
    scroll-snap-align: start;
    min-width: 0;
    overflow: hidden;
    padding: 4px;
    border: 1px solid var(--site-line);
    border-radius: 18px;
    background: var(--site-surface);
}
.handles-card img { display: block; width: 100%; height: auto; object-fit: contain; border-radius: 13px; }
@media (max-width: 575.98px) {
    .handles-card { width: 59.94vw; }
}

/* Footer company details */
.footer-info { row-gap: 1.5rem; }
.footer-company { display: flex; align-items: center; gap: 24px; }
.footer-logo-link { display: block; flex: 0 0 auto; }
.brand-logo-footer { width: 112px; }
.footer-company-details { min-width: 0; color: var(--site-muted); font-size: .8125rem; line-height: 1.7; overflow-wrap: anywhere; }
.footer-company-details p { margin: 0 0 .35rem; }
.footer-company-details p:last-child { margin-bottom: 0; }
@media (max-width: 575.98px) {
    .footer-company { flex-direction: column; align-items: flex-start; gap: 16px; }
    .brand-logo-footer { width: 96px; }
}

/* Privacy policy: shared footer trigger and scrollable Bootstrap modal. */
.footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; color: var(--site-muted); }
.footer-bottom > p { min-width: 0; overflow-wrap: anywhere; }
.footer-privacy-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex-shrink: 0; min-height: 44px; padding: 8px 0; border: 0; border-radius: 0; outline: none; box-shadow: none; background: transparent; color: var(--site-sand); font: inherit; text-decoration: none; text-underline-offset: 4px; cursor: pointer; transition: color .2s ease; }
.footer-privacy-button:hover, .footer-privacy-button:focus, .footer-privacy-button:active { border: 0; outline: none; box-shadow: none; background: transparent; }
.footer-privacy-button:hover, .footer-privacy-button:focus-visible { color: var(--site-sand-hover); text-decoration: underline; }
.privacy-modal { --bs-modal-width: 800px; --bs-modal-bg: var(--site-bg); --bs-modal-color: var(--site-text); --bs-modal-border-color: var(--site-line); --bs-modal-header-border-color: var(--site-line); --bs-modal-footer-border-color: var(--site-line); --bs-modal-border-radius: 16px; }
.privacy-modal .modal-header, .privacy-modal .modal-footer { flex-shrink: 0; background: var(--site-surface); }
.privacy-modal .modal-header { align-items: flex-start; padding: 24px; gap: 16px; }
.privacy-modal .modal-title { font-size: clamp(1.25rem, 4vw, 1.6rem); font-weight: 600; letter-spacing: -.025em; }
.privacy-updated { margin-top: 8px; color: var(--site-muted); font-size: .8rem; line-height: 1.6; }
.privacy-modal .btn-close { flex-shrink: 0; margin: -6px -6px 0 0; padding: 14px; }
.privacy-modal .modal-body { padding: 24px; color: var(--site-muted); font-size: .9375rem; line-height: 1.8; overflow-wrap: anywhere; overscroll-behavior-y: contain; }
.privacy-modal .modal-body > p { margin-bottom: 24px; }
.privacy-modal section + section { margin-top: 28px; }
.privacy-modal h3 { margin: 0 0 12px; color: var(--site-text); font-size: 1.05rem; font-weight: 600; line-height: 1.5; }
.privacy-modal section p { margin: 0 0 12px; }
.privacy-modal section p:last-child { margin-bottom: 0; }
.privacy-modal strong { color: var(--site-text); font-weight: 600; }
.privacy-modal .modal-footer { padding: 12px 20px; }
@media (max-width: 575.98px) {
    .footer-bottom { flex-direction: column-reverse; align-items: flex-start; gap: 12px; }
    .footer-privacy-button { padding-inline: 0; }
    .privacy-modal .modal-header, .privacy-modal .modal-body { padding: 20px; }
    .privacy-modal .modal-footer { padding-inline: 16px; }
}

/* Company logo */
.brand-logo { display: block; max-width: 100%; height: auto; object-fit: contain; }
.brand-logo-header { width: 84px; }
@media (max-width: 575.98px) {
    .brand-logo-header { width: 68px; }
}

/* Center mobile content outside the hero and privacy modal. */
@media (max-width: 575.98px) {
    .hero-trust .trust-heading { text-align: center; }

    #products, #handles, #about, #contact, .gallery-main {
        text-align: center;
    }

    .product-gallery-link {
        justify-content: center;
        text-align: center;
    }

    .contact-header { text-align: center; }
    .contact-intro { margin-inline: auto; }
    .contact-details { align-items: center; }
    .contact-detail { justify-content: center; }
    .contact-channels { justify-content: center; }
    .contact-map-link { justify-content: center; }

    .gallery-heading .hero-eyebrow { justify-content: center; }
    .gallery-tabs { justify-content: center; }

    .footer-company { align-items: center; }
    .footer-info .list-unstyled { justify-content: center; }
    .footer-bottom { align-items: center; justify-content: center; }
}
