/* =========================================================================
   IMEA THEME — warm cream / yarn-brown palette, rounded corners, compact scale.
   Loaded after bootstrap.min.css and style.css, so it overrides both.
   ========================================================================= */

:root {
    --primary: #A9764E;        /* yarn / raw-cotton brown accent */
    --primary-hover: #8B5E3B;
    --secondary: #C9A978;      /* lighter straw / fibre tone, used for subtle accents */
    --dark: #3B2E22;           /* warm dark brown — heading / body text */
    --light: #F8F2E8;          /* cream section background */
    --muted: #8A7560;          /* warm taupe for secondary text */
    --surface: #F2E8D8;        /* header / footer / stats strip — cream, NOT gray or black */
    --surface-border: #E6D7BE;
    --border: #E9DCC4;
    --cream: #FBF7EF;          /* page background wash */
    --radius: 14px;
    --radius-sm: 8px;
    --shadow: 0 4px 18px rgba(59, 46, 34, .09);
}

/* ---------- 1. Overall scale: everything ~20% smaller ---------- */
html {
    font-size: 80%;             /* Bootstrap uses rem, so all text/spacing shrinks 20% */
    overflow-x: hidden;         /* safety net: nothing should ever force a horizontal scrollbar */
    max-width: 100%;
}

body {
    color: var(--dark);
    background: #ffffff;
    overflow-x: hidden;
    max-width: 100%;
}

/* ---------- 2. Typography sizes ---------- */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
    color: var(--dark);
}

.display-2 { font-size: clamp(1.9rem, 4.2vw, 3.4rem); line-height: 1.15; }
.display-3 { font-size: clamp(1.8rem, 3.6vw, 2.8rem); }
.display-4 { font-size: clamp(1.6rem, 3vw, 2.4rem); }
.display-5 { font-size: clamp(1.5rem, 2.6vw, 2.2rem); line-height: 1.25; }
h3, .h3 { font-size: 1.5rem; }
h4, .h4 { font-size: 1.2rem; }

.py-6 { padding-top: 60px; padding-bottom: 60px; }
.pt-6 { padding-top: 60px; }
.pb-6 { padding-bottom: 60px; }

/* ---------- 3. Colour overrides ---------- */
a { color: var(--primary); }
a:hover { color: var(--dark); }

.text-primary  { color: var(--primary) !important; }
.bg-primary    { background-color: var(--primary) !important; }
.border-primary { border-color: var(--primary) !important; }

/* Header / footer / stats strip: warm cream, not a dark/black "dark mode" band */
.bg-dark {
    background-color: var(--surface) !important;
}

.bg-light      { background-color: var(--light) !important; }
.text-body     { color: var(--dark) !important; }

/* Remove the dotted "radial" textures */
.bg-light-radial,
.bg-dark-radial {
    background-image: none !important;
}

/* ---------- 3b. Flip white-on-dark text to dark-on-light for the former "dark" surfaces ---------- */
.text-white    { color: var(--dark) !important; }
.text-white-50 { color: var(--muted) !important; }

a.text-white-50:hover { color: var(--dark) !important; }

header, footer {
    border-color: var(--surface-border) !important;
}

/* Photo-backed banners (hero carousel, inner page header) stay white-on-photo —
   that's a normal darkened-photo overlay, not site chrome, so restore white text there. */
.carousel-caption .text-white,
.carousel-caption h1,
.carousel-caption p,
.page-header .text-white,
.page-header h1,
.page-header h6 {
    color: #ffffff !important;
}

/* Footer's solid accent chip keeps white text so it stays readable on its own dark-brown fill */
footer .bg-primary,
footer .bg-primary * {
    color: #ffffff !important;
}

/* ---------- 4. Buttons & forms (rounded) ---------- */
.btn {
    border-radius: var(--radius-sm);
    font-size: 1rem;
}

.btn::after { display: none; }   /* remove template's sharp underline effect */

.btn-primary {
    background-color: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
    color: #fff;
}

.btn-outline-primary {
    color: var(--primary);
    border-color: var(--primary);
}

.btn-outline-primary:hover,
.btn-outline-primary.active {
    background-color: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

.btn-outline-dark { border-radius: 50rem; }

.btn.rounded-0,
.btn-lg-square.rounded-0 { border-radius: var(--radius-sm) !important; }

.form-control,
.form-select,
.input-group > .form-control,
.input-group > .btn {
    border-radius: var(--radius-sm) !important;
}

.input-group > :not(:last-child) { margin-right: 8px; }

.form-control:focus,
.form-select:focus {
    border-color: var(--secondary);
    box-shadow: 0 0 0 .2rem rgba(59, 46, 34, .15);
}

/* ---------- 5. Rounded boxes / cards / images ---------- */
section .bg-light,
section .bg-white,
.service-item,
.contact-form,
.portfolio-box,
.alert,
.dropdown-menu,
iframe {
    border-radius: var(--radius) !important;
    overflow: hidden;
}

.service-item,
section .bg-white {
    box-shadow: var(--shadow);
}

section img.img-fluid,
.portfolio-box img,
.position-relative > img.position-absolute {
    border-radius: var(--radius);
}

.service-item img.img-fluid { border-radius: 0; }  /* image sits flush inside the rounded card */

.service-item .service-icon {
    border-radius: 50%;
}

.rounded { border-radius: var(--radius) !important; }

/* ---------- 6. Topbar + regular horizontal navbar (desktop & tablet) ---------- */
:root {
    --glass-bg: rgba(255, 255, 255, .7);
    --glass-border: rgba(255, 255, 255, .5);
    --glass-blur: blur(18px);
}

.glass {
    background: var(--glass-bg);
    -webkit-backdrop-filter: var(--glass-blur) saturate(140%);
    backdrop-filter: var(--glass-blur) saturate(140%);
    border: 1px solid var(--glass-border);
}

/* Warm cream mesh accent behind the whole page — raw-cotton & fibre tones, not neon */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(640px 420px at 8% -5%, rgba(201, 169, 120, .28), transparent 60%),
        radial-gradient(520px 380px at 96% 10%, rgba(242, 232, 216, .55), transparent 60%),
        radial-gradient(600px 460px at 40% 100%, rgba(233, 220, 196, .3), transparent 65%),
        #fbf7ef;
}

/* ---- Topbar: slim contact/social strip ---- */
.topbar {
    position: relative;
    z-index: 1050;
    border-left: 0;
    border-right: 0;
    border-top: 0;
}

.topbar-row {
    display: flex;
    align-items: center;
    min-height: 44px;
    gap: 16px;
}

.topbar-info {
    gap: 22px;
    color: var(--muted);
    font-size: .82rem;
}

.topbar-info a { color: var(--muted); }
.topbar-info a:hover { color: var(--dark); }

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.topbar-socials { gap: 8px; }

.topbar-social {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(201, 169, 120, .28);
    color: var(--primary);
    font-size: .78rem;
    transition: background .2s, color .2s, transform .2s;
}

.topbar-social:hover {
    background: var(--primary);
    color: #fff;
    transform: translateY(-2px);
}

.custom-language-wrapper { flex-shrink: 0; }

.custom-language-btn {
    border-radius: 50rem !important;
    background: rgba(201, 169, 120, .28) !important;
    color: var(--primary) !important;
}

/* ---- Navbar: regular horizontal nav, desktop + tablet ---- */
.navbar-shell {
    top: 0;
    z-index: 1040;
    border-left: 0;
    border-right: 0;
    border-top: 0;
    border-bottom: 2px solid transparent;
    border-image: linear-gradient(90deg, var(--primary), var(--secondary), var(--primary)) 1;
    box-shadow: var(--shadow);
    transition: box-shadow .3s, border-image .3s;
}

.navbar-shell.is-scrolled {
    box-shadow: 0 10px 28px rgba(59, 46, 34, .16);
}

/* 3-zone grid: logo | centered nav links | actions — keeps About…Contact
   truly centered in the bar regardless of how wide the logo or actions are */
.navbar-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    min-height: 88px;
    gap: 20px;
    transition: min-height .3s ease;
}

/* Shrink slightly once the page has scrolled — a little "advanced" polish */
.navbar-shell.is-scrolled .navbar-row { min-height: 64px; }
.navbar-shell.is-scrolled .brand-logo img { height: 34px; }

.brand-logo {
    display: flex;
    align-items: center;
}

.brand-logo img {
    height: 60px;        /* fills most of the navbar height on desktop & tablet */
    width: auto;
    display: block;
    transition: height .3s ease, transform .25s ease;
}

.brand-logo:hover img { transform: scale(1.05) rotate(-1deg); }

.main-nav {
    grid-column: 2;
    justify-content: center;
    gap: 6px;
    align-items: center;
}

.main-nav-link {
    position: relative;
    padding: 10px 16px;
    border-radius: 50rem;
    color: var(--primary);
    font-weight: 600;
    text-transform: uppercase;
    font-size: .88rem;
    letter-spacing: .02em;
    transition: background .2s, color .2s;
    white-space: nowrap;
    overflow: hidden;
}

/* Animated underline sweep on hover */
.main-nav-link::after {
    content: "";
    position: absolute;
    left: 16px;
    right: 16px;
    bottom: 6px;
    height: 2px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s ease;
    opacity: .5;
}

.main-nav-link:hover::after { transform: scaleX(1); }
.main-nav-link.active::after { display: none; }

.main-nav-link:hover {
    background: rgba(201, 169, 120, .28);
    color: var(--dark);
}

.main-nav-link.active {
    background: linear-gradient(120deg, var(--primary), var(--primary-hover));
    color: #fff;
    box-shadow: 0 4px 14px rgba(169, 118, 78, .35);
}

.navbar-actions {
    grid-column: 3;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 14px;
}

/* "Get A Quote": solid pill, stays on one line everywhere */
.btn-quote {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    flex-shrink: 0;
    background: var(--primary);
    color: #fff !important;
    border-radius: 50rem;
    padding: 11px 22px;
    font-weight: 700;
    text-transform: uppercase;
    font-size: .85rem;
    letter-spacing: .02em;
    position: relative;
    overflow: hidden;
    transition: transform .25s, box-shadow .25s, background .25s;
}

.btn-quote i { transition: transform .25s; }

.btn-quote::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%);
    transform: translateX(-120%);
    transition: transform .6s ease;
}

.btn-quote:hover {
    background: var(--primary-hover);
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(59, 46, 34, .35);
}

.btn-quote:hover::before { transform: translateX(120%); }
.btn-quote:hover i { transform: translateX(3px); }

.menu-toggle {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 0;
    background: rgba(201, 169, 120, .28);
    color: var(--dark);
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* ---- Mobile off-canvas drawer: hidden by default, mobile-only trigger shows it ---- */
.sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 82vw;
    max-width: 300px;
    z-index: 1070;
    border-radius: 0 24px 24px 0;
    box-shadow: var(--shadow);
    display: flex;
    flex-direction: column;
    padding: 22px 18px;
    transform: translateX(-110%);
    transition: transform .35s ease;
    overflow-y: auto;            /* whole drawer scrolls if content is taller than the screen */
    -webkit-overflow-scrolling: touch;
}

body.sidebar-open .sidebar { transform: translateX(0); }

.sidebar-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 4px 18px;
}

.sidebar-logo img { height: 34px; width: auto; }

.sidebar-close {
    border: 0;
    background: rgba(201, 169, 120, .28);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-size: 1rem;
    color: var(--primary);
}

/* Language switcher, relocated here on mobile by js/main.js */
.sidebar-lang-slot {
    padding: 0 4px 14px;
    border-bottom: 1px solid var(--surface-border);
    margin-bottom: 10px;
}

.sidebar-lang-slot .custom-language-wrapper { width: 100%; }
.sidebar-lang-slot .custom-language-btn { width: 100%; justify-content: center; }

.sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1 0 auto;    /* natural height; the drawer itself scrolls (see .sidebar) */
}

.sidebar-link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 13px 14px;
    border-radius: 14px;
    color: var(--primary);
    font-weight: 600;
    text-transform: uppercase;
    font-size: .92rem;
    letter-spacing: .02em;
    transition: background .25s, color .25s, transform .2s;
    white-space: nowrap;
}

.sidebar-icon { width: 22px; text-align: center; flex-shrink: 0; }

.sidebar-link:hover {
    background: rgba(201, 169, 120, .28);
    color: var(--dark);
    transform: translateX(2px);
}

.sidebar-link.active {
    background: var(--primary);
    color: #fff;
    box-shadow: 0 6px 18px rgba(59, 46, 34, .3);
}

.sidebar-bottom {
    padding-top: 14px;
    border-top: 1px solid var(--surface-border);
}

.sidebar-socials {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 14px;
}

.sidebar-social {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(201, 169, 120, .28);
    color: var(--primary);
    font-size: .9rem;
    transition: background .2s, color .2s, transform .2s;
}

.sidebar-social:hover {
    background: var(--primary);
    color: #fff;
    transform: translateY(-2px);
}

.sidebar-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--primary);
    color: #fff;
    border-radius: 50rem;
    padding: 12px 16px;
    font-weight: 700;
    text-transform: uppercase;
    font-size: .85rem;
    white-space: nowrap;
    transition: transform .25s, box-shadow .25s, background .25s;
}

.sidebar-cta:hover {
    background: var(--primary-hover);
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(59, 46, 34, .35);
}

.sidebar-contact { margin-top: 14px; font-size: .8rem; color: var(--muted); }
.sidebar-contact p { margin-bottom: 6px; word-break: break-word; }

.sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1060;
    background: rgba(59, 46, 34, .4);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

body.sidebar-open .sidebar-overlay { display: block; }
body.sidebar-open { overflow: hidden; }

/* ---- Breakpoints: navbar is "regular" from tablet upward; drawer is mobile-only ---- */
@media (max-width: 767.98px) {
    .navbar-row { min-height: 64px; }
    .brand-logo img { height: 38px; }   /* scaled down to fit the shorter mobile bar */
    .topbar-row { min-height: 38px; }
    html { font-size: 78%; }
}
/* ---------- 7. Hero / carousel ---------- */
.hero-rounded,
.hero-rounded .carousel-inner,
.hero-rounded .carousel-item {
    border-radius: 28px;
    overflow: hidden;
}

.hero-rounded { box-shadow: var(--shadow); }

.carousel-item img,
.carousel-item video {
    height: 78vh;
    min-height: 380px;
    object-fit: cover;
}

.carousel-caption {
    background: rgba(59, 46, 34, .5);
    border-radius: 28px;
}

@media (max-width: 576px) {
    .carousel-item img,
    .carousel-item video { height: 60vh; min-height: 320px; }

    .hero-rounded,
    .hero-rounded .carousel-inner,
    .hero-rounded .carousel-item,
    .carousel-caption { border-radius: 18px; }
}

/* ---------- 8. Inner page banner ---------- */
.page-header {
    height: 220px;
    width: calc(100% - 48px);   /* .container-fluid is width:100%, so subtract the margin below or it overflows the viewport */
    margin: 24px 24px 0;
    border-radius: 24px;
    background: linear-gradient(rgba(59, 46, 34, .62), rgba(59, 46, 34, .62)), url(../img/carousel-1.jpg) center center / cover no-repeat;
}

.page-header a { color: var(--secondary); }

@media (max-width: 575.98px) {
    .page-header { width: calc(100% - 28px); margin: 14px 14px 0; border-radius: 16px; height: 180px; }
}

/* ---------- 9. Footer ---------- */
.footer-shape::before { display: none; }

footer .bg-primary {
    background-color: var(--primary-hover) !important;
}

/* Woven thread/yarn texture — a subtle cross-hatch over the cream header/footer panels */
.topbar,
.navbar-shell,
footer .footer,
.footer-bottom-bar-wrap {
    position: relative;
    isolation: isolate;
}

.topbar::before,
.navbar-shell::before,
footer .footer::before {
    content: "";
    position: absolute;
    inset: -20px;     /* overshoot so the drifting pattern never shows a hard edge */
    z-index: -1;
    pointer-events: none;
    opacity: .5;
    background-image:
        repeating-linear-gradient(45deg, rgba(169, 118, 78, .07) 0, rgba(169, 118, 78, .07) 1px, transparent 1px, transparent 10px),
        repeating-linear-gradient(-45deg, rgba(169, 118, 78, .05) 0, rgba(169, 118, 78, .05) 1px, transparent 1px, transparent 10px);
    background-size: 28px 28px;
    animation: weave-drift 22s linear infinite;
}

footer .footer { position: relative; }

/* Slow drift so the woven texture feels gently alive, not static */
@keyframes weave-drift {
    from { background-position: 0 0, 0 0; }
    to   { background-position: 28px 28px, -28px 28px; }
}

@media (prefers-reduced-motion: reduce) {
    .topbar::before,
    .navbar-shell::before,
    footer .footer::before { animation: none; }
}

footer .form-control.border-light {
    background: #ffffff !important;
    border-color: var(--surface-border) !important;
    color: var(--dark) !important;
}

/* Bottom strip: a shade darker than the footer above it — no border line needed */
.footer-bottom-wrap {
    background: var(--primary-hover);
    color: #fff;
}

.footer-bottom-wrap.text-white { color: #fff !important; }
.footer-bottom-wrap .text-primary { color: var(--secondary) !important; }

/* Single-line bottom bar (algorvis.com reference): copyright left, links right */
.footer-bottom-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.footer-bottom-links a {
    color: rgba(255, 255, 255, .75);
    margin-left: 18px;
}

.footer-bottom-links a:hover { color: #fff; }

@media (max-width: 575.98px) {
    .footer-bottom-bar { flex-direction: column; text-align: center; }
    .footer-bottom-links a { margin: 0 9px; }
}

/* ---------- 10. Back to top ---------- */
.back-to-top {
    left: auto;
    right: 24px;
    bottom: 24px;
    margin-left: 0;
    border-radius: 50% !important;
}

/* ---------- 11. Product & blog detail helpers ---------- */

/* Hover-reveal note on the main product image */
.product-hero-wrap {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}

.product-hero-wrap img { display: block; width: 100%; transition: transform .5s ease; }
.product-hero-wrap:hover img { transform: scale(1.05); }

.product-hero-note {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 18px 20px;
    background: linear-gradient(0deg, rgba(59, 46, 34, .82), transparent);
    color: #fff;
    font-size: .88rem;
    transform: translateY(100%);
    opacity: 0;
    transition: transform .35s ease, opacity .35s ease;
}

.product-hero-wrap:hover .product-hero-note {
    transform: translateY(0);
    opacity: 1;
}

/* Accordion: Specifications / Applications / Shipping */
.product-accordion .accordion-item {
    border: 1px solid var(--surface-border);
    border-radius: var(--radius) !important;
    overflow: hidden;
    margin-bottom: 12px;
}

.product-accordion .accordion-button {
    font-weight: 700;
    text-transform: uppercase;
    font-size: .92rem;
    color: var(--dark);
    background: #fff;
    box-shadow: none !important;
}

.product-accordion .accordion-button:not(.collapsed) {
    background: var(--light);
    color: var(--primary);
}

.product-accordion .accordion-button::after {
    filter: grayscale(1) brightness(.4);
}

.product-accordion .accordion-body { color: var(--muted); }
.product-accordion .accordion-body ul { margin-bottom: 0; }

.spec-table {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}

.spec-table th {
    width: 38%;
    background: var(--light);
    font-weight: 600;
    color: var(--dark);
}

.spec-table th,
.spec-table td {
    padding: 12px 18px;
    border-color: var(--border);
}

.card-soft {
    background: #fff;
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.card-soft > img,
.card-soft > a > img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    border-radius: 0 !important;
}

.card-soft .card-body-soft {
    padding: 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.card-soft .card-actions {
    margin-top: auto;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.feature-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.feature-list li {
    padding: 6px 0 6px 28px;
    position: relative;
}

.feature-list li::before {
    content: "\f00c";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    position: absolute;
    left: 0;
    color: var(--primary);
}

.article-body p { line-height: 1.8; }

/* ---------- 12. Responsive spacing ---------- */
@media (max-width: 767.98px) {
    .px-5 { padding-left: 16px !important; padding-right: 16px !important; }
    .py-6 { padding-top: 44px; padding-bottom: 44px; }
    .p-5  { padding: 24px !important; }
}

/* ---------- 13. Card hover motion (image zoom + lift) ---------- */
.card-soft {
    transition: transform .3s ease, box-shadow .3s ease;
}

.card-soft:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 34px rgba(0, 0, 0, .14);
}

.card-soft > a { display: block; overflow: hidden; }

.card-soft > img,
.card-soft > a > img {
    transition: transform .5s ease;
}

.card-soft:hover > img,
.card-soft:hover > a > img {
    transform: scale(1.07);
}

.card-soft .card-body-soft h3 a { transition: color .2s; }
.card-soft .card-body-soft h3 a:hover { color: var(--primary) !important; }

/* Blog card chips: category tag + read time */
.card-chips {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 12px;
    border-radius: 50rem;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.chip-category {
    background: rgba(59, 46, 34, .1);
    color: var(--primary);
}

.chip-readtime {
    background: var(--light);
    color: var(--muted);
}

.card-soft .card-actions a.text-uppercase i {
    transition: transform .2s;
}

.card-soft .card-actions a.text-uppercase:hover i {
    transform: translateX(4px);
}

/* ---------- 14. Footer social pills (centered, glass, hover lift + glow) ---------- */
.footer-socials {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.footer-social-pill {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
    background: rgba(59, 46, 34, .1) !important;
    border-color: rgba(59, 46, 34, .15) !important;
    transition: transform .25s, box-shadow .25s, background .25s, color .25s;
}

.footer-social-pill:hover {
    transform: translateY(-4px) scale(1.06);
    background: var(--primary) !important;
    color: #fff;
    box-shadow: 0 10px 24px rgba(59, 46, 34, .35);
}

.footer-logo { height: 34px; width: auto; }

.newsletter-group {
    display: flex;
    gap: 8px;
}

.newsletter-group .form-control { flex: 1; min-height: 50px; }

@media (max-width: 575.98px) {
    .newsletter-group { flex-direction: column; }
}

/* ---------- 15. Magnetic / sheen buttons (lightweight motion, every button) ---------- */
.btn,
.magnetic {
    transition: transform .25s ease, box-shadow .25s ease;
}

.btn:active,
.magnetic:active { transform: scale(.96); }

.btn-primary.magnetic:hover,
a.btn.magnetic:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(59, 46, 34, .3);
}

/* ---------- 16. Scroll-reveal (fade + slide up on entering viewport) ---------- */
[data-reveal] {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .6s ease, transform .6s ease;
}

[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* ===== Responsive header (phones + tablets): drawer menu below 992px ===== */
@media (max-width: 991.98px) {
    .navbar-row { display: flex !important; align-items: center; gap: 10px; }
    .navbar-row .brand-logo { margin-right: auto; flex-shrink: 1; min-width: 0; }
    .navbar-row .brand-logo img { width: 150px !important; max-width: 100%; }
    .navbar-actions { gap: 10px; flex-shrink: 0; }
    .menu-toggle { display: inline-flex !important; }
}
@media (max-width: 575.98px) {
    .navbar-shell .container-fluid { padding-left: 14px !important; padding-right: 14px !important; }
    .navbar-row .brand-logo img { width: 118px !important; }
    /* brochure button becomes a round icon so the menu button always fits */
    .navbar-actions .sidebar-cta { width: 42px; height: 42px; padding: 0 !important; justify-content: center; border-radius: 50%; }
    .navbar-actions .sidebar-cta .sidebar-label { display: none; }
    .navbar-actions .sidebar-cta i { margin: 0 !important; font-size: 1.1rem; }
}

/* Back-to-top: jQuery fadeIn() sets display:block, which broke the flex centring of the arrow */
.back-to-top { width: 48px; height: 48px; padding: 0 !important; align-items: center; justify-content: center; line-height: 1; }
.back-to-top[style*="display: block"], .back-to-top[style*="display:block"], .back-to-top[style*="display: inline"], .back-to-top[style*="display:inline"] { display: flex !important; }
.back-to-top i { line-height: 1; display: block; margin: 0; }
