*,*::before,*::after{
    box-sizing:border-box;
    -webkit-tap-highlight-color:transparent;
}

::selection{ background:#1B3A5C; color:#F5F1EB; }
::-moz-selection{ background:#1B3A5C; color:#F5F1EB; }

body.scroll-locked{
    overflow:hidden !important;
    height:100% !important;
    width:100% !important;
    position:fixed !important;
    top:0 !important;
    left:0 !important;
}


html{ scroll-behavior:smooth; }

body{
    margin:0;
    padding:0;
    font-family:'DM Sans',sans-serif;
    font-size:1rem;
    line-height:1.7;
    color:#2C2416;
    background:#F5F1EB;
}

img{ max-width:100%; height:auto; display:block; }

a{ color:#1B3A5C; text-decoration:none; }
a:hover{ text-decoration:underline; }

address{ font-style:normal; }

h1,h2,h3,h4,h5,h6{
    font-family:'Playfair Display',serif;
    line-height:1.25;
    color:#0F1928;
    margin:0 0 1rem;
}
h1{ font-size:clamp(2rem,4.5vw,3.2rem); font-weight:700; }
h2{ font-size:clamp(1.5rem,3vw,2.2rem); font-weight:600; }
h3{ font-size:clamp(1.2rem,2.2vw,1.6rem); font-weight:600; }
h4{ font-size:1.05rem; font-weight:600; font-family:'DM Sans',sans-serif; color:#1B3A5C; }

p{ margin:0 0 1rem; }
p:last-child{ margin-bottom:0; }

ul,ol{ margin:0; padding:0 0 0 1.4rem; }
ul li,ol li{ margin-bottom:0.4rem; }

hr{
    border:none;
    border-top:1px solid #D5CBBC;
    margin:1.5rem 0;
}

/* =========================================================
   LAYOUT
   ========================================================= */
.container{
    width:100%;
    max-width:1160px;
    margin:0 auto;
    padding:0 1.5rem;
}

.section{
    padding:5rem 0;
}
.section--alt{
    background:#ffffff;
}
.section--dark{
    background:#0F1928;
}
.section--accent{
    background:#1B3A5C;
}
.section--tinted{
    background:#EDE8E0;
}

/* =========================================================
   TYPOGRAPHY UTILITIES
   ========================================================= */
.overline{
    display:inline-block;
    font-family:'DM Sans',sans-serif;
    font-size:0.7rem;
    font-weight:700;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:#8A6A3E;
    margin-bottom:1rem;
}

.lead{
    font-size:1.15rem;
    color:#4A3F30;
    line-height:1.75;
    max-width:680px;
}

.tl{
    color:#1B3A5C;
    text-decoration:underline;
    text-underline-offset:3px;
}
.tl:hover{ color:#0F1928; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
    position:sticky;
    top:0;
    z-index:1000;
    background:#0F1928;
    border-bottom:1px solid rgba(255,255,255,0.08);
}

.site-header__inner{
    display:flex;
    align-items:center;
    height:72px;
    gap:2rem;
}

.logo{
    font-family:'Inter','Helvetica Neue',Arial,sans-serif;
    font-size:1.5rem;
    font-weight:800;
    color:#F5F1EB;
    letter-spacing:-0.01em;
    flex-shrink:0;
    text-decoration:none;
}
.logo span{
    color:#C9A84C;
    font-weight:800;
}
.logo:hover{ text-decoration:none; }

.main-nav{
    display:flex;
    align-items:center;
    gap:0.25rem;
    margin-left:auto;
}

.main-nav__ul{
    list-style:none;
    display:flex;
    align-items:center;
    gap:0.25rem;
    margin:0;
    padding:0;
}

.main-nav__item{
    position:relative;
}

.main-nav__link{
    display:flex;
    align-items:center;
    gap:0.3rem;
    padding:0.4rem 0.85rem;
    border-radius:4px;
    font-size:0.88rem;
    font-weight:500;
    color:rgba(245,241,235,0.82);
    letter-spacing:0.01em;
    text-decoration:none;
    transition:color 0.18s, background 0.18s;
    white-space:nowrap;
}
.main-nav__link:hover{
    color:#F5F1EB;
    background:rgba(255,255,255,0.08);
    text-decoration:none;
}
.main-nav__link .nav-chev{
    width:14px;
    height:14px;
    opacity:0.6;
    transition:transform 0.2s;
}
.main-nav__item:hover .nav-chev{ transform:rotate(180deg); }

.dropdown{
    position:absolute;
    top:calc(100% + 8px);
    left:0;
    background:#ffffff;
    border:1px solid #D5CBBC;
    border-radius:6px;
    min-width:220px;
    padding:0.5rem 0;
    box-shadow:0 16px 40px rgba(15,25,40,0.15);
    opacity:0;
    pointer-events:none;
    transform:translateY(-6px);
    transition:opacity 0.18s, transform 0.18s;
}
.main-nav__item:hover .dropdown{
    opacity:1;
    pointer-events:all;
    transform:translateY(0);
}
.dropdown__link{
    display:block;
    padding:0.5rem 1.2rem;
    font-size:0.875rem;
    color:#2C2416;
    text-decoration:none;
    transition:background 0.15s, color 0.15s;
}
.dropdown__link:hover{
    background:#F5F1EB;
    color:#1B3A5C;
    text-decoration:none;
}
.dropdown hr{
    margin:0.4rem 0;
    border-color:#E8E2D8;
}

.header-phone{
    display:flex;
    align-items:center;
    gap:0.5rem;
    padding:0.45rem 1rem;
    border:1.5px solid #C9A84C;
    border-radius:4px;
    font-size:0.85rem;
    font-weight:600;
    color:#C9A84C;
    text-decoration:none;
    flex-shrink:0;
    margin-left:0.75rem;
    transition:background 0.18s, color 0.18s;
}
.header-phone svg{ width:15px; height:15px; }
.header-phone:hover{
    background:#C9A84C;
    color:#0F1928;
    text-decoration:none;
}

/* Hamburger */
.hamburger{
    display:none;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:5px;
    width:42px;
    height:42px;
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.14);
    border-radius:4px;
    cursor:pointer;
    padding:0;
    flex-shrink:0;
    margin-left:auto;
    transition:background 0.18s;
}
.hamburger:hover{ background:rgba(255,255,255,0.14); }
.hamburger__line{
    display:block;
    width:20px;
    height:1.5px;
    background:#F5F1EB;
    border-radius:1px;
    transition:transform 0.28s, opacity 0.18s;
    transform-origin:center;
}
.hamburger.is-active .hamburger__line:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.hamburger.is-active .hamburger__line:nth-child(2){ opacity:0; transform:scaleX(0); }
.hamburger.is-active .hamburger__line:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* Phone FAB (mobile) */
.phone-fab{
    display:none;
    position:fixed;
    bottom:1.25rem;
    right:1.25rem;
    z-index:900;
    width:52px;
    height:52px;
    background:#C9A84C;
    border-radius:50%;
    align-items:center;
    justify-content:center;
    box-shadow:0 6px 20px rgba(0,0,0,0.2);
    text-decoration:none;
    transition:background 0.18s, transform 0.18s;
}
.phone-fab svg{ width:22px; height:22px; color:#0F1928; }
.phone-fab:hover{ background:#b8973d; transform:scale(1.06); text-decoration:none; }

/* Strap */
.site-header__strap{
    background:#C9A84C;
    text-align:center;
    font-size:0.72rem;
    font-weight:600;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:#0F1928;
    padding:0.35rem 1.5rem;
}

/* Nav Overlay */
.nav-overlay{
    position:fixed;
    inset:0;
    background:rgba(15,25,40,0.6);
    z-index:1100;
    opacity:0;
    pointer-events:none;
    transition:opacity 0.28s;
}
.nav-overlay.is-open{
    opacity:1;
    pointer-events:all;
}

/* Mobile Nav Panel */
.nav-panel{
    position:fixed;
    top:0;
    right:0;
    width:min(340px,90vw);
    height:100%;
    background:#0F1928;
    z-index:1200;
    transform:translateX(100%);
    transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);
    overflow-y:auto;
    padding:1.5rem 0 2rem;
    display:flex;
    flex-direction:column;
}
.nav-panel.is-open{ transform:translateX(0); }

.nav-panel__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 1.5rem 1.5rem;
    border-bottom:1px solid rgba(255,255,255,0.1);
    margin-bottom:1rem;
}
.nav-panel__logo{
    font-family:'Inter','Helvetica Neue',Arial,sans-serif;
    font-size:1.3rem;
    font-weight:800;
    color:#F5F1EB;
    letter-spacing:-0.01em;
    text-decoration:none;
}
.nav-panel__logo span{ font-weight:800; color:#C9A84C; }

.nav-panel__close{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    background:rgba(255,255,255,0.08);
    border:1px solid rgba(255,255,255,0.14);
    border-radius:4px;
    cursor:pointer;
    color:#F5F1EB;
    transition:background 0.18s;
}
.nav-panel__close:hover{ background:rgba(255,255,255,0.16); }
.nav-panel__close svg{ width:18px; height:18px; }

.nav-panel__list{
    list-style:none;
    padding:0;
    margin:0;
}
.nav-panel__item{
    border-bottom:1px solid rgba(255,255,255,0.06);
}
.nav-panel__link{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0.9rem 1.5rem;
    font-size:0.95rem;
    font-weight:500;
    color:rgba(245,241,235,0.82);
    text-decoration:none;
    transition:color 0.15s, background 0.15s;
}
.nav-panel__link:hover{
    color:#F5F1EB;
    background:rgba(255,255,255,0.05);
    text-decoration:none;
}
.nav-panel__sub{
    list-style:none;
    padding:0;
    margin:0;
    background:rgba(255,255,255,0.04);
    max-height:0;
    overflow:hidden;
    transition:max-height 0.3s ease;
}
.nav-panel__sub.is-open{ max-height:600px; }
.nav-panel__sub li a{
    display:block;
    padding:0.65rem 1.5rem 0.65rem 2.2rem;
    font-size:0.875rem;
    color:rgba(245,241,235,0.65);
    text-decoration:none;
    transition:color 0.15s;
}
.nav-panel__sub li a:hover{ color:#F5F1EB; text-decoration:none; }

.nav-panel__phone{
    display:flex;
    align-items:center;
    gap:0.6rem;
    margin:1.5rem 1.5rem 0;
    padding:0.9rem 1.2rem;
    background:rgba(201,168,76,0.12);
    border:1.5px solid rgba(201,168,76,0.35);
    border-radius:4px;
    font-size:0.9rem;
    font-weight:600;
    color:#C9A84C;
    text-decoration:none;
}
.nav-panel__phone svg{ width:18px; height:18px; }
.nav-panel__phone:hover{ background:rgba(201,168,76,0.2); text-decoration:none; }

/* =========================================================
   HERO
   ========================================================= */
.page-hero{
    background:#0F1928;
    padding:5rem 0 4.5rem;
    border-bottom:3px solid #C9A84C;
}
.page-hero .container{
    display:flex;
    flex-direction:column;
    gap:1rem;
}
.page-hero h1{ color:#F5F1EB; margin:0; }
.page-hero .lead{ color:rgba(245,241,235,0.72); max-width:640px; }

/* =========================================================
   SECTION INTRO
   ========================================================= */
.section-intro{
    display:flex;
    flex-direction:column;
    gap:0.5rem;
    margin-bottom:3rem;
}
.section-intro h2{ margin:0; }
.section-intro p{
    color:#4A3F30;
    max-width:640px;
    margin:0;
}

/* =========================================================
   PRODUCT GRID
   ========================================================= */
.product-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
    gap:1.5rem;
}
.product-grid--3col{
    grid-template-columns:repeat(3,1fr);
}

.product-card{
    background:#ffffff;
    border:1px solid #D5CBBC;
    border-radius:6px;
    padding:2rem;
    display:flex;
    flex-direction:column;
    gap:1rem;
    transition:box-shadow 0.22s, border-color 0.22s, transform 0.22s;
}
.product-card:hover{
    box-shadow:0 12px 32px rgba(15,25,40,0.1);
    border-color:#B8A898;
    transform:translateY(-3px);
}
.product-card__tag{
    font-size:0.68rem;
    font-weight:700;
    letter-spacing:0.15em;
    text-transform:uppercase;
    color:#8A6A3E;
}
.product-card h2{
    font-size:1.2rem;
    margin:0;
    color:#0F1928;
}
.product-card h2.h4-style{
    font-family:'DM Sans',sans-serif;
    font-size:1.05rem;
    font-weight:600;
    color:#1B3A5C;
}
.product-card p{
    color:#4A3F30;
    font-size:0.9rem;
    flex:1;
    margin:0;
}
            .product-card__link
{
        display : flex;
        align-items : center;
        justify-content : space-between;
        gap : 0.75rem;
        margin-top : 0.75rem;
        padding : 0.75rem 1rem;
        border : 2px solid currentColor;
        border-radius : 0.5rem;
        font-weight : 600;
        text-decoration : none;
        transition : background-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

.product-card__link svg
{
        flex : 0 0 auto;
        width : 1.25em;
        height : 1.25em;
        transition : transform 0.25s ease;
}

.product-card__link:hover,
.product-card__link:focus-visible
{
        background-color : rgba(0, 0, 0, 0.08);
        box-shadow : 0 4px 12px rgba(0, 0, 0, 0.18);
        transform : translateY(-2px);
}

.product-card__link:hover svg,
.product-card__link:focus-visible svg
{
        transform : translate(3px, -3px);
}

.product-card__link:focus-visible
{
        outline : 3px solid currentColor;
        outline-offset : 3px;
}

/* Coming tinted card variant */
.product-card--tinted{
    background:#F5F1EB;
    border-color:#D5CBBC;
}
.product-card--tinted:hover{
    box-shadow:none;
    transform:none;
}
.product-card--tinted .product-card__tag{ color:#B8A898; }
.product-card--tinted h2{ color:#6B5E4E; }
.product-card--tinted p{ color:#8A7A6A; }

/* =========================================================
   FEATURE STRIP (two-col)
   ========================================================= */
.feature-strip{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
    gap:1rem;
}

.feature-item{
    display:flex;
    gap:1rem;
    align-items:flex-start;
    padding:1.5rem;
    background:#ffffff;
    border:1px solid #D5CBBC;
    border-radius:6px;
}
.feature-item__icon{
    width:40px;
    height:40px;
    flex-shrink:0;
    background:#EDE8E0;
    border-radius:6px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#1B3A5C;
}
.feature-item__icon svg{ width:20px; height:20px; }
.feature-item__body h4{ margin:0 0 0.3rem; font-size:0.95rem; }
.feature-item__body p{ font-size:0.875rem; color:#4A3F30; margin:0; }

/* =========================================================
   CTA STRIP
   ========================================================= */
.cta-strip{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:1.5rem;
    padding:3rem;
    background:#1B3A5C;
    border-radius:8px;
}
.cta-strip__text h2{
    color:#F5F1EB;
    margin:0 0 0.4rem;
}
.cta-strip__text p{
    color:rgba(245,241,235,0.72);
    margin:0;
    max-width:480px;
}

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.5rem;
    padding:0.75rem 1.75rem;
    border-radius:4px;
    font-family:'DM Sans',sans-serif;
    font-size:0.875rem;
    font-weight:700;
    letter-spacing:0.04em;
    cursor:pointer;
    text-decoration:none;
    border:2px solid transparent;
    transition:background 0.18s,color 0.18s,border-color 0.18s,transform 0.18s;
    white-space:nowrap;
}
.btn:hover{ text-decoration:none; transform:translateY(-1px); }

.btn--primary{ background:#1B3A5C; color:#F5F1EB; border-color:#1B3A5C; }
.btn--primary:hover{ background:#142E4A; border-color:#142E4A; color:#F5F1EB; }

.btn--gold{ background:#C9A84C; color:#0F1928; border-color:#C9A84C; }
.btn--gold:hover{ background:#b8973d; border-color:#b8973d; color:#0F1928; }

.btn--outline{ background:transparent; color:#F5F1EB; border-color:rgba(245,241,235,0.5); }
.btn--outline:hover{ background:rgba(245,241,235,0.08); border-color:#F5F1EB; color:#F5F1EB; }

.btn--outline-dark{ background:transparent; color:#1B3A5C; border-color:#1B3A5C; }
.btn--outline-dark:hover{ background:#1B3A5C; color:#F5F1EB; }

/* =========================================================
   INFO BOX
   ========================================================= */
.info-box{
    background:#EDE8E0;
    border-left:4px solid #C9A84C;
    border-radius:0 4px 4px 0;
    padding:1.25rem 1.5rem;
    font-size:0.9rem;
    color:#4A3F30;
}
.info-box h3{
    font-size:1.1rem;
    margin:0 0 0.5rem;
    color:#0F1928;
}

.info-box p.updates{ color: #fff; }

.info-box p:last-child{ margin:0; }

.info-box--spaced{
    margin-top:1.5rem;
}

.info-box--accent{
    background:#1B3A5C;
    border-left-color:#C9A84C;
}
.info-box--accent h3{ color:#F5F1EB; }
.info-box--accent p{ color:rgba(245,241,235,0.8); }

/* =========================================================
   LEGAL CONTENT
   ========================================================= */
.legal-body h2{
    font-size:1.15rem;
    color:#0F1928;
    margin:2rem 0 0.75rem;
    font-family:'DM Sans',sans-serif;
    font-weight:700;
}
.legal-body p{ color:#2C2416; line-height:1.75; }
.legal-body ul{ color:#2C2416; line-height:1.75; }
.legal-body ul li{ margin-bottom:0.5rem; }
.legal-body strong{ color:#0F1928; }
.legal-body hr{ border-color:#E8E2D8; margin:1.5rem 0; }
.legal-body address{ line-height:1.9; }

/* =========================================================
   TWO-COL INFO GRID (contact page)
   ========================================================= */
.info-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
    gap:1.5rem;
}
.info-card{
    background:#ffffff;
    border:1px solid #D5CBBC;
    border-radius:6px;
    padding:1.75rem;
}
.info-card h4{ margin:0 0 0.5rem; }
.info-card p{ font-size:0.9rem; color:#4A3F30; margin:0; }

/* =========================================================
   ADDRESS
   ========================================================= */
.address-block{
    background:#ede8e0;
    border:1px solid #c9a84c;
    border-radius:6px;
    padding:2rem;
    display:inline-block;
    font-size:0.95rem;
    line-height:1.9;
    color:#2C2416;
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{
    background:#0F1928;
    color:rgba(245,241,235,0.65);
    padding:4rem 0 0;
}

.footer__grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:3rem;
    padding-bottom:3rem;
    border-bottom:1px solid rgba(255,255,255,0.1);
}

.footer__brand .logo{ display:inline-block; margin-bottom:1rem; color:#F5F1EB; }
.footer__brand .logo span{ color:#C9A84C; }
.footer__brand > p{
    font-size:0.875rem;
    max-width:260px;
    line-height:1.65;
}

.footer__social{
    display:flex;
    gap:0.75rem;
    margin-top:1.25rem;
}
.footer__social-link{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    border:1px solid rgba(255,255,255,0.16);
    border-radius:4px;
    color:rgba(245,241,235,0.65);
    text-decoration:none;
    transition:border-color 0.18s, color 0.18s, background 0.18s;
}
.footer__social-link:hover{
    border-color:#C9A84C;
    color:#C9A84C;
    background:rgba(201,168,76,0.08);
    text-decoration:none;
}
.footer__social-link svg{ width:16px; height:16px; }

.footer__col h5{
    font-family:'DM Sans',sans-serif;
    font-size:0.72rem;
    font-weight:700;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:#C9A84C;
    margin:0 0 1rem;
}
.footer__col ul{
    list-style:none;
    padding:0;
    margin:0;
    display:flex;
    flex-direction:column;
    gap:0.55rem;
}
.footer__col ul li a{
    font-size:0.875rem;
    color:rgba(245,241,235,0.65);
    text-decoration:none;
    transition:color 0.15s;
}
.footer__col ul li a:hover{ color:#F5F1EB; text-decoration:none; }

.footer__bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:0.75rem;
    padding:1.25rem 0;
    font-size:0.78rem;
    color:rgba(245,241,235,0.4);
}
.footer__bottom a{ color:rgba(245,241,235,0.4); text-decoration:none; }
.footer__bottom a:hover{ color:rgba(245,241,235,0.65); }

/* =========================================================
   QUICK CONTACT PANEL
   ========================================================= */
.contact-tab{
    position:fixed;
    right:0;
    top:50%;
    transform:translateY(-50%) rotate(180deg);
    writing-mode:vertical-rl;
    z-index:800;
    background:#1B3A5C;
    color:#F5F1EB;
    font-family:'DM Sans',sans-serif;
    font-size:0.75rem;
    font-weight:700;
    letter-spacing:0.12em;
    text-transform:uppercase;
    padding:1rem 0.65rem;
    border:none;
    border-radius:0 0 0 4px;
    cursor:pointer;
    transition:background 0.18s;
}
.contact-tab:hover{ background:#142E4A; }

.contact-overlay{
    position:fixed;
    inset:0;
    background:rgba(15,25,40,0.55);
    z-index:1300;
    opacity:0;
    pointer-events:none;
    transition:opacity 0.28s;
}
.contact-overlay.is-open{
    opacity:1;
    pointer-events:all;
}

.contact-panel{
    position:fixed;
    top:0;
    right:0;
    width:min(400px,95vw);
    height:100%;
    background:#ffffff;
    z-index:1400;
    transform:translateX(100%);
    transition:transform 0.32s cubic-bezier(0.4,0,0.2,1);
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.contact-panel.is-open{ transform:translateX(0); }

.contact-panel__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:1.25rem 1.5rem;
    background:#0F1928;
    flex-shrink:0;
}
.contact-panel__head span{
    font-family:'Playfair Display',serif;
    font-size:1.1rem;
    font-weight:600;
    color:#F5F1EB;
}
.contact-panel__close{
    display:flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    background:rgba(255,255,255,0.1);
    border:1px solid rgba(255,255,255,0.15);
    border-radius:4px;
    cursor:pointer;
    color:#F5F1EB;
    font-size:1.3rem;
    line-height:1;
    transition:background 0.18s;
}
.contact-panel__close:hover{ background:rgba(255,255,255,0.2); }

.contact-panel__intro{
    font-size:0.875rem;
    color:#4A3F30;
    padding:1.25rem 1.5rem 0;
    margin:0;
    flex-shrink:0;
}
.contact-panel__body{
    flex:1;
    overflow-y:auto;
    padding:1rem 1.5rem 1.5rem;
}

/* =========================================================
   BACK TO TOP
   ========================================================= */
.back-to-top{
    position:fixed;
    bottom:5.5rem;
    right:1.25rem;
    z-index:700;
    width:44px;
    height:44px;
    background:#0F1928;
    border:1.5px solid rgba(255,255,255,0.15);
    border-radius:4px;
    cursor:pointer;
    color:#F5F1EB;
    display:flex;
    align-items:center;
    justify-content:center;
    opacity:0;
    pointer-events:none;
    transition:opacity 0.22s, background 0.18s;
}
.back-to-top.is-visible{
    opacity:1;
    pointer-events:all;
}
.back-to-top:hover{ background:#1B3A5C; }
.back-to-top svg{ width:18px; height:18px; }

/* =========================================================
   NEWSLETTER SECTION
   ========================================================= */
.newsletter-benefits{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
    gap:1rem;
    margin-bottom:2rem;
}
.benefit-card{
    background:#ffffff;
    border:1px solid #D5CBBC;
    border-radius:6px;
    padding:1.5rem;
}
.benefit-card h4{ margin:0 0 0.4rem; }
.benefit-card p{ font-size:0.875rem; color:#4A3F30; margin:0; }

/* =========================================================
   FORM WRAPPER
   ========================================================= */
.mf-form-wrap{
    max-width:700px;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media(max-width:1024px){
    .footer__grid{
        grid-template-columns:1fr 1fr;
    }
    .footer__brand{
        grid-column:1/-1;
    }
}

@media(max-width:820px){
    .main-nav,.header-phone{ display:none; }
    .hamburger{ display:flex; }
    .phone-fab{ display:flex; }

    .back-to-top{ bottom:1.25rem; right:4.75rem; }

    .contact-tab{
        top:auto;
        bottom:4.5rem;
        right:0;
        transform:rotate(180deg);
    }

    .page-hero{ padding:3.5rem 0 3rem; }
    .section{ padding:3.5rem 0; }

    .product-grid,
    .product-grid--3col{ grid-template-columns:1fr; }
    .feature-strip{ grid-template-columns:1fr; }
    .info-grid{ grid-template-columns:1fr; }

    .cta-strip{
        padding:2rem;
        flex-direction:column;
        align-items:flex-start;
    }

    .footer__grid{
        grid-template-columns:1fr;
        gap:2rem;
    }
}

@media(max-width:540px){
    .site-header__strap{ display:none; }
    .site-header__inner{ height:62px; }

    h1{ font-size:clamp(1.7rem,6vw,2.4rem); }
    h2{ font-size:clamp(1.3rem,4.5vw,1.8rem); }

    .btn{ padding:0.7rem 1.2rem; font-size:0.82rem; }

    .contact-panel{ width:100vw; }
    .nav-panel{ width:100vw; }
}


.tl{
    color:#1B3A5C;
    text-decoration:none;
    font-weight:500;
    background-image:linear-gradient(#1B3A5C,#1B3A5C);
    background-position:0 100%;
    background-repeat:no-repeat;
    background-size:100% 1px;
    transition:color 0.25s, background-size 0.25s cubic-bezier(0.4,0,0.2,1);
}
.tl:hover{
    color:#1B3A5C;
    text-decoration:none;
    background-image:linear-gradient(#C9A84C,#C9A84C);
    background-size:100% 1px;
}

.section--accordion,
.accordion{
    padding:0;
}

.accordion__header{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
    padding:2.25rem 0 1.25rem;
    cursor:pointer;
}
.accordion__titles{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    min-width:0;
}
.accordion__titles .overline{
    margin-bottom:0.5rem;
}
.accordion__title{
    margin:0;
}
.accordion__toggle{
    background:none;
    border:0;
    margin:0;
    padding:0;
    font:inherit;
    color:inherit;
    text-align:left;
    cursor:pointer;
}
.accordion__toggle::after{
    content:'';
    position:absolute;
    inset:0;
    border-radius:4px;
}
.accordion__toggle:focus{
    outline:none;
}
.accordion__toggle:focus-visible::after{
    outline:2px solid #1B3A5C;
    outline-offset:-2px;
}

.accordion__meta{
    display:flex;
    align-items:center;
    gap:1rem;
    flex-shrink:0;
}
.accordion__count{
    font-size:0.72rem;
    font-weight:700;
    letter-spacing:0.12em;
    text-transform:uppercase;
    color:#8A6A3E;
    background:#ffffff;
    border:1px solid #D5CBBC;
    border-radius:999px;
    padding:0.3rem 0.85rem;
    white-space:nowrap;
}
.accordion__count:empty{
    display:none;
}
.section--alt .accordion__count{
    background:#F5F1EB;
}

.accordion__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    background:#ffffff;
    border:1px solid #D5CBBC;
    border-radius:4px;
    color:#1B3A5C;
    transition:background 0.22s, color 0.22s, border-color 0.22s;
}
.section--alt .accordion__icon{
    background:#F5F1EB;
}
.accordion__icon svg{
    width:18px;
    height:18px;
    transition:transform 0.4s cubic-bezier(0.4,0,0.2,1);
}
.accordion__header:hover .accordion__icon{
    background:#1B3A5C;
    border-color:#1B3A5C;
    color:#F5F1EB;
}
.accordion.is-open .accordion__icon svg{
    transform:rotate(180deg);
}

.accordion__panel{
    display:grid;
    grid-template-rows:1fr;
    transition:grid-template-rows 0.4s cubic-bezier(0.4,0,0.2,1), visibility 0s linear 0s;
}
.accordion__inner{
    min-height:0;
    overflow:hidden;
    margin:0 -1.5rem;
    padding:0.5rem 1.5rem 3.5rem;
    opacity:1;
    transition:opacity 0.35s ease 0.05s;
}
.accordion__intro{
    padding-bottom:2.25rem;
}
.accordion__intro p{
    color:#4A3F30;
    max-width:640px;
    margin:0 0 0.75rem;
}
.accordion__intro p:last-child{
    margin-bottom:0;
}

.js .accordion:not(.is-open) .accordion__panel{
    grid-template-rows:0fr;
    visibility:hidden;
    transition:grid-template-rows 0.4s cubic-bezier(0.4,0,0.2,1), visibility 0s linear 0.4s;
}
.js .accordion:not(.is-open) .accordion__inner{
    opacity:0;
    transition:opacity 0.2s ease;
}

@media(max-width:820px){
    .accordion__header{
        padding:1.75rem 0 1rem;
        gap:1rem;
    }
    .accordion__intro{
        padding-bottom:1.75rem;
    }
    .accordion__inner{
        padding-bottom:2.5rem;
    }
}

@media(max-width:540px){
    .accordion__meta{
        gap:0.6rem;
    }
    .accordion__count{
        font-size:0.65rem;
        padding:0.25rem 0.65rem;
    }
    .accordion__icon{
        width:36px;
        height:36px;
    }
}


.accordion__header{
    scroll-margin-top:7rem;
}

.accordion__foot{
    display:none;
    justify-content:center;
    margin-top:2.5rem;
    padding-top:2rem;
    border-top:1px solid #D5CBBC;
}
.js .accordion__foot{
    display:flex;
}
.accordion__close svg{
    width:16px;
    height:16px;
    flex-shrink:0;
    transition:transform 0.25s cubic-bezier(0.4,0,0.2,1);
}
.accordion__close:hover svg{
    transform:translateY(-3px);
}

.page-hero .overline
{
    color : #C9A84C;
    margin-bottom : 0;
}

.hero-ctas
{
    display : flex;
    flex-wrap : wrap;
    gap : 1rem;
    margin-top : 0.75rem;
}

.info-box--accent .overline
{
    color : #C9A84C;
}

.info-box--accent h2
{
    color : #F5F1EB;
}

.info-box--accent h3
{
    margin : 1.5rem 0 0.75rem;
}

.info-box--accent .tl
{
    color : #C9A84C;
}

.info-box--accent .tl:hover
{
    color : #F5F1EB;
}

.feature-list
{
    columns : 2;
    column-gap : 2.5rem;
    margin-bottom : 1.5rem;
    color : rgba(245, 241, 235, 0.8);
}

.feature-list li
{
    break-inside : avoid;
}

.info-card h3
{
    margin : 0 0 0.5rem;
    font-family : 'DM Sans', sans-serif;
    font-size : 1.05rem;
    font-weight : 600;
    color : #1B3A5C;
}

.info-card .overline
{
    margin-bottom : 0.5rem;
}

.price-figure
{
    margin-bottom : 0.5rem;
    font-family : 'Playfair Display', serif;
    font-size : clamp(2.2rem, 5vw, 3.2rem);
    font-weight : 700;
    line-height : 1.1;
    color : #0F1928;
}

.price-figure span
{
    margin-left : 0.25rem;
    font-family : 'DM Sans', sans-serif;
    font-size : 1rem;
    font-weight : 400;
    color : #4A3F30;
}

.price-table
{
    max-width : 520px;
    margin : 1.5rem 0 2.5rem;
    padding : 0.5rem 1.5rem;
    background : #ffffff;
    border : 1px solid #D5CBBC;
    border-radius : 6px;
}

.price-table__row
{
    display : flex;
    justify-content : space-between;
    gap : 1rem;
    padding : 0.75rem 0;
    border-bottom : 1px solid #E8E2D8;
}

.price-table__row:last-child
{
    border-bottom : none;
}

.price-table__row span:last-child
{
    font-weight : 700;
    color : #1B3A5C;
}

.calc
{
    max-width : 520px;
    margin : 1.5rem 0;
    padding : 1.5rem;
    background : #ffffff;
    border : 1px solid #D5CBBC;
    border-radius : 6px;
}

.calc__row
{
    display : flex;
    justify-content : space-between;
    align-items : baseline;
    gap : 1rem;
    padding : 0.5rem 0;
}

.calc__value
{
    font-weight : 700;
    color : #1B3A5C;
}

.calc__row--total
{
    margin-top : 0.5rem;
    padding-top : 0.75rem;
    border-top : 2px solid #C9A84C;
    font-weight : 700;
}

.calc__value--price
{
    font-family : 'Playfair Display', serif;
    font-size : 1.6rem;
}

.calc__slider
{
    display : block;
    width : 100%;
    margin : 1.25rem 0 0.5rem;
    accent-color : #1B3A5C;
    cursor : pointer;
}

.calc__scale
{
    display : flex;
    justify-content : space-between;
    font-size : 0.8rem;
    color : #6B5E4E;
}

.price-cta
{
    margin-top : 1.5rem;
}

@media(max-width:820px)
{
    .feature-list
    {
        columns : 1;
    }
}

.is-hidden
{
    display : none !important;
}

.visually-hidden
{
    position : absolute;
    width : 1px;
    height : 1px;
    margin : -1px;
    padding : 0;
    overflow : hidden;
    clip : rect(0, 0, 0, 0);
    white-space : nowrap;
    border : 0;
}

.cta-row
{
    display : flex;
    flex-wrap : wrap;
    gap : 1rem;
    margin-top : 2.5rem;
}

.compare-table-wrap
{
    overflow-x : auto;
    background : #ffffff;
    border : 1px solid #D5CBBC;
    border-radius : 6px;
}

.compare-table
{
    width : 100%;
    min-width : 480px;
    border-collapse : collapse;
}

.compare-table th,
.compare-table td
{
    padding : 0.85rem 1.25rem;
    text-align : center;
    border-bottom : 1px solid #E8E2D8;
}

.compare-table thead th
{
    background : #0F1928;
    border-bottom : 3px solid #C9A84C;
    font-family : 'DM Sans', sans-serif;
    font-size : 0.8rem;
    font-weight : 700;
    letter-spacing : 0.14em;
    text-transform : uppercase;
    color : #C9A84C;
}

.compare-table tbody th
{
    font-family : 'DM Sans', sans-serif;
    font-size : 1rem;
    font-weight : 500;
    text-align : left;
    color : #2C2416;
}

.compare-table__highlight
{
    background : #F5F1EB;
    font-weight : 600;
    color : #1B3A5C;
}

.compare-table__pricing-row th,
.compare-table__pricing-row td
{
    border-bottom : none;
    font-size : 1.05rem;
    font-weight : 700;
}
