

:root{

    /* ---------- Core Palette ---------- */

    --navy:#101918;
    --navy2:#172622;
    --navy3:#20372f;

    --forest:#29453b;
    --forest-soft:#e9f0eb;

    --gold:#b89155;
    --gold2:#d2b477;
    --gold3:#e2ca99;
    --gold-soft:#f4ecdc;

    --copper:#b57d50;
    --copper-soft:#f3e5d8;

    --cream:#fbf9f4;
    --cream2:#f4f1e9;
    --cream3:#eeebe3;

    --white:#ffffff;

    --ink:#202725;
    --ink-soft:#3e4844;
    --muted:#6b7671;
    --muted2:#89918d;

    --line:#e4e1d9;
    --line-dark:rgba(255,255,255,.10);

    /* ---------- Shadows ---------- */

    --shadow-xs:
        0 3px 12px rgba(16,25,24,.035);

    --shadow-sm:
        0 10px 30px rgba(16,25,24,.065);

    --shadow:
        0 20px 55px rgba(16,25,24,.105);

    --shadow-lg:
        0 35px 90px rgba(16,25,24,.17);

    --shadow-gold:
        0 15px 40px rgba(184,145,85,.16);

    /* ---------- Radius ---------- */

    --radius-sm:12px;
    --radius:18px;
    --radius-lg:27px;
    --radius-xl:34px;

    /* ---------- Motion ---------- */

    --ease:
        cubic-bezier(.22,1,.36,1);

    --ease-soft:
        cubic-bezier(.16,1,.3,1);
}


/* =========================================================
   GLOBAL RESET
   ========================================================= */

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    scroll-padding-top:90px;
}

body{

    margin:0;

    background:
        radial-gradient(
            circle at 8% 0%,
            rgba(184,145,85,.055),
            transparent 25%
        ),
        radial-gradient(
            circle at 95% 55%,
            rgba(41,69,59,.035),
            transparent 30%
        ),
        var(--cream);

    color:var(--ink);

    font-family:
        Inter,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    line-height:1.7;

    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

::selection{
    background:rgba(184,145,85,.22);
    color:var(--navy);
}

h1,
h2,
h3,
h4{

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    line-height:1.1;

    margin:0;

    color:var(--navy);

    letter-spacing:-.018em;
}

p{
    margin-top:0;
}

a{
    color:inherit;
    text-decoration:none;
}

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

button,
input,
select,
textarea{
    font:inherit;
}

button{
    -webkit-tap-highlight-color:transparent;
}

.container{

    width:min(
        1180px,
        calc(100% - 40px)
    );

    margin-inline:auto;
}

.section{
    padding:105px 0;
}

.section-tight{
    padding:72px 0;
}

.muted{
    color:var(--muted);
}


/* =========================================================
   TYPOGRAPHY
   ========================================================= */

.eyebrow{

    display:inline-flex;

    align-items:center;

    gap:12px;

    color:var(--gold);

    font-size:.69rem;

    font-weight:850;

    letter-spacing:.22em;

    text-transform:uppercase;
}

.eyebrow:before{

    content:"";

    width:38px;

    height:1px;

    background:
        linear-gradient(
            90deg,
            var(--gold),
            var(--gold2)
        );
}

.section-heading{
    max-width:790px;
}

.section-heading h1,
.section-heading h2{

    font-size:
        clamp(
            2.6rem,
            5vw,
            4.55rem
        );

    margin-top:14px;
}

.section-heading p{

    color:var(--muted);

    max-width:710px;

    margin:22px 0 0;

    font-size:1.02rem;

    line-height:1.8;
}

.center{
    text-align:center;
    margin-inline:auto;
}

.center p{
    margin-inline:auto;
}


/* =========================================================
   HEADER
   ========================================================= */

.header{

    position:sticky;

    top:0;

    z-index:1000;

    background:
        rgba(251,249,244,.82);

    backdrop-filter:
        blur(24px)
        saturate(150%);

    -webkit-backdrop-filter:
        blur(24px)
        saturate(150%);

    border-bottom:
        1px solid rgba(16,25,24,.065);

    box-shadow:
        0 5px 30px rgba(16,25,24,.025);

    transition:
        background .35s var(--ease),
        box-shadow .35s var(--ease);
}

.nav{

    height:84px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:30px;
}


/* ---------- Brand ---------- */

.brand{

    display:flex;

    align-items:center;

    gap:13px;

    font-weight:800;

    letter-spacing:.03em;

    flex-shrink:0;
}

.brand-mark{

    width:46px;
    height:46px;

    display:grid;

    place-items:center;

    border:
        1px solid
        rgba(210,180,119,.6);

    border-radius:14px;

    background:
        radial-gradient(
            circle at 25% 20%,
            rgba(255,255,255,.09),
            transparent 35%
        ),
        linear-gradient(
            145deg,
            #0d1817,
            #274239
        );

    color:#fff;

    font-family:
        "Playfair Display",
        serif;

    font-size:1.35rem;

    box-shadow:
        0 9px 25px rgba(16,25,24,.17);

    position:relative;

    overflow:hidden;
}

.brand-mark:after{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            120deg,
            transparent 30%,
            rgba(255,255,255,.09),
            transparent 65%
        );

    transform:
        translateX(-100%);

    transition:
        transform .7s var(--ease);
}

.brand:hover .brand-mark:after{
    transform:translateX(100%);
}

.brand-text strong{

    display:block;

    font-family:
        "Playfair Display",
        serif;

    font-size:1.3rem;

    color:var(--navy);

    letter-spacing:.01em;
}

.brand-text span{

    display:block;

    color:#858d89;

    font-size:.62rem;

    text-transform:uppercase;

    letter-spacing:.2em;

    margin-top:-2px;
}


/* ---------- Navigation ---------- */

.nav-links{

    display:flex;

    align-items:center;

    gap:29px;
}

.nav-links a{

    font-size:.88rem;

    color:#69736f;

    padding:9px 0;

    position:relative;

    transition:
        color .25s var(--ease);
}

.nav-links a:after{

    content:"";

    position:absolute;

    left:50%;

    right:50%;

    bottom:0;

    height:1px;

    background:
        linear-gradient(
            90deg,
            var(--gold),
            var(--gold2)
        );

    transition:
        left .3s var(--ease),
        right .3s var(--ease);
}

.nav-links a:hover{
    color:var(--navy);
}

.nav-links a:hover:after,
.nav-links a.active:after{

    left:0;

    right:0;
}

.nav-links a.active{

    color:var(--navy);

    font-weight:750;
}


/* =========================================================
   BUTTONS
   ========================================================= */

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    min-height:47px;

    border:
        1px solid transparent;

    border-radius:999px;

    padding:12px 23px;

    font-size:.87rem;

    font-weight:800;

    letter-spacing:.01em;

    transition:
        transform .3s var(--ease),
        box-shadow .3s var(--ease),
        background .3s var(--ease),
        border-color .3s var(--ease),
        color .3s var(--ease);

    cursor:pointer;

    position:relative;

    overflow:hidden;
}

.btn:before{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            110deg,
            transparent 20%,
            rgba(255,255,255,.14),
            transparent 80%
        );

    transform:
        translateX(-120%);

    transition:
        transform .65s var(--ease);

    pointer-events:none;
}

.btn:hover:before{
    transform:translateX(120%);
}

.btn-primary{

    background:
        linear-gradient(
            135deg,
            #101918,
            #294239
        );

    color:#fff;

    box-shadow:
        0 12px 30px rgba(16,25,24,.18);
}

.btn-primary:hover{

    transform:translateY(-3px);

    box-shadow:
        0 18px 38px rgba(16,25,24,.24);

    background:
        linear-gradient(
            135deg,
            #172622,
            #345247
        );
}

.btn-gold{

    background:
        linear-gradient(
            135deg,
            var(--gold),
            var(--gold2)
        );

    color:var(--navy);

    box-shadow:
        var(--shadow-gold);
}

.btn-gold:hover{

    transform:translateY(-3px);

    box-shadow:
        0 18px 40px rgba(184,145,85,.25);
}

.btn-ghost{

    border-color:
        rgba(16,25,24,.13);

    background:
        rgba(255,255,255,.68);

    color:var(--navy);

    backdrop-filter:blur(10px);
}

.btn-ghost:hover{

    border-color:
        rgba(184,145,85,.55);

    background:#fff;

    transform:translateY(-3px);

    box-shadow:
        0 12px 28px rgba(16,25,24,.07);
}


/* =========================================================
   MOBILE NAVIGATION
   ========================================================= */

.mobile-toggle{

    display:none;

    background:
        rgba(255,255,255,.8);

    border:
        1px solid var(--line);

    width:46px;

    height:46px;

    border-radius:14px;

    color:var(--navy);

    box-shadow:var(--shadow-xs);

    cursor:pointer;

    transition:
        transform .25s var(--ease),
        border-color .25s ease,
        box-shadow .25s ease;
}

.mobile-toggle:hover{

    transform:translateY(-2px);

    border-color:
        rgba(184,145,85,.4);

    box-shadow:var(--shadow-sm);
}

.mobile-panel{

    display:none;

    border-top:
        1px solid var(--line);

    background:
        rgba(255,255,255,.96);

    backdrop-filter:blur(20px);
}

.mobile-panel.open{
    display:block;
}

.mobile-panel .container{
    padding:18px 0 22px;
}

.mobile-panel a{

    display:block;

    padding:13px 0;

    color:#5f6a65;

    font-weight:700;

    border-bottom:
        1px solid rgba(16,25,24,.055);
}

.mobile-panel a:hover{
    color:var(--gold);
}

.mobile-panel .btn{

    margin-top:15px;

    width:100%;
}


/* =========================================================
   HERO
   ========================================================= */

.hero{

    position:relative;

    background:

        radial-gradient(
            circle at 4% 5%,
            rgba(184,145,85,.16),
            transparent 28%
        ),

        radial-gradient(
            circle at 88% 30%,
            rgba(41,69,59,.075),
            transparent 30%
        ),

        linear-gradient(
            180deg,
            #f3eee1 0%,
            #fbf9f4 78%
        );

    overflow:hidden;
}

.hero:before{

    content:"";

    position:absolute;

    width:650px;

    height:650px;

    left:-420px;

    bottom:-480px;

    border:
        1px solid
        rgba(184,145,85,.13);

    border-radius:50%;

    pointer-events:none;
}

.hero:after{

    content:"";

    position:absolute;

    width:520px;

    height:520px;

    right:-300px;

    top:-270px;

    border:
        1px solid
        rgba(184,145,85,.16);

    border-radius:50%;

    pointer-events:none;
}

.hero-grid{

    display:grid;

    grid-template-columns:
        1.06fr
        .94fr;

    gap:65px;

    align-items:center;

    min-height:700px;

    position:relative;

    z-index:1;
}

.hero h1{

    font-size:
        clamp(
            3.5rem,
            6.4vw,
            6.25rem
        );

    max-width:800px;

    letter-spacing:-.045em;
}

.hero h1 span{

    color:var(--gold);

    font-style:italic;

    position:relative;
}

.hero h1 span:after{

    content:"";

    position:absolute;

    left:4%;

    right:0;

    bottom:-3px;

    height:1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--gold),
            transparent
        );

    opacity:.45;
}

.hero-copy{

    font-size:1.06rem;

    color:#5f6966;

    max-width:670px;

    margin:29px 0 35px;

    line-height:1.85;
}

.hero-actions{

    display:flex;

    flex-wrap:wrap;

    gap:13px;
}

.trust-strip{

    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:11px;

    margin-top:36px;
}

.trust-card{

    padding:17px 18px;

    background:
        rgba(255,255,255,.68);

    border:
        1px solid
        rgba(16,25,24,.075);

    border-radius:15px;

    box-shadow:
        0 6px 22px rgba(16,25,24,.035);

    transition:
        transform .3s var(--ease),
        border-color .3s ease,
        box-shadow .3s ease;

    backdrop-filter:blur(8px);
}

.trust-card:hover{

    transform:translateY(-5px);

    border-color:
        rgba(184,145,85,.38);

    box-shadow:var(--shadow-sm);
}

.trust-card strong{

    display:block;

    color:var(--navy);

    font-size:.91rem;
}

.trust-card span{

    font-size:.77rem;

    color:var(--muted);
}

.hero-media{

    position:relative;

    perspective:1000px;
}

.hero-media img{

    border-radius:31px;

    box-shadow:var(--shadow-lg);

    height:640px;

    width:100%;

    object-fit:cover;

    border:
        1px solid
        rgba(255,255,255,.75);

    transition:
        transform .7s var(--ease),
        box-shadow .7s var(--ease);
}

.hero-media:hover img{

    transform:
        translateY(-5px)
        scale(1.008);

    box-shadow:
        0 42px 95px rgba(16,25,24,.20);
}

.hero-badge{

    position:absolute;

    left:-31px;

    bottom:36px;

    background:

        radial-gradient(
            circle at 85% 10%,
            rgba(210,180,119,.16),
            transparent 35%
        ),

        linear-gradient(
            145deg,
            #0d1817,
            #29453b
        );

    color:#fff;

    border-radius:19px;

    padding:23px 26px;

    box-shadow:
        0 22px 55px rgba(16,25,24,.27);

    max-width:265px;

    border:
        1px solid
        rgba(210,180,119,.18);

    backdrop-filter:blur(10px);
}

.hero-badge small{

    display:block;

    color:#c7d0ca;

    text-transform:uppercase;

    letter-spacing:.17em;

    font-size:.61rem;
}

.hero-badge strong{

    display:block;

    margin-top:7px;

    font-family:
        "Playfair Display",
        serif;

    font-size:1.32rem;

    line-height:1.25;
}


/* =========================================================
   CARDS
   ========================================================= */

.cards{

    display:grid;

    gap:22px;
}

.cards-3{
    grid-template-columns:repeat(3,1fr);
}

.cards-2{
    grid-template-columns:repeat(2,1fr);
}

.cards-6{
    grid-template-columns:repeat(3,1fr);
}

.card{

    position:relative;

    background:

        linear-gradient(
            145deg,
            #ffffff,
            #fbfaf6
        );

    border:
        1px solid var(--line);

    border-radius:var(--radius);

    padding:33px;

    box-shadow:var(--shadow-sm);

    transition:
        transform .4s var(--ease),
        box-shadow .4s var(--ease),
        border-color .4s ease;

    overflow:hidden;
}

.card:before{

    content:"";

    position:absolute;

    top:0;

    left:25px;

    right:25px;

    height:1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(184,145,85,.7),
            transparent
        );

    opacity:0;

    transition:
        opacity .35s ease;
}

.card:after{

    content:"";

    position:absolute;

    width:150px;

    height:150px;

    right:-90px;

    top:-90px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(184,145,85,.08),
            transparent 70%
        );

    pointer-events:none;
}

.card:hover{

    transform:translateY(-9px);

    box-shadow:var(--shadow);

    border-color:
        rgba(184,145,85,.38);
}

.card:hover:before{
    opacity:1;
}

.icon{

    width:56px;

    height:56px;

    border-radius:16px;

    display:grid;

    place-items:center;

    background:

        linear-gradient(
            145deg,
            #f5efe1,
            #e9e0cc
        );

    color:var(--navy);

    font-weight:900;

    font-family:
        "Playfair Display",
        serif;

    font-size:1.35rem;

    border:
        1px solid
        rgba(184,145,85,.17);

    box-shadow:
        0 7px 20px rgba(184,145,85,.08);

    transition:
        transform .35s var(--ease);
}

.card:hover .icon{

    transform:
        translateY(-3px)
        rotate(-2deg);
}

.card h3{

    font-size:1.48rem;

    margin:20px 0 10px;
}

.card p{

    color:var(--muted);

    font-size:.93rem;

    margin:0;

    line-height:1.75;
}


/* =========================================================
   DARK BAND
   ========================================================= */

.dark-band{

    background:

        radial-gradient(
            circle at 82% 15%,
            rgba(210,180,119,.14),
            transparent 28%
        ),

        radial-gradient(
            circle at 10% 90%,
            rgba(41,69,59,.45),
            transparent 35%
        ),

        linear-gradient(
            135deg,
            #0b1514,
            #172b25
        );

    color:#fff;

    position:relative;

    overflow:hidden;
}

.dark-band:before{

    content:"";

    position:absolute;

    width:500px;

    height:500px;

    left:-310px;

    top:-300px;

    border:
        1px solid
        rgba(210,180,119,.09);

    border-radius:50%;
}

.dark-band:after{

    content:"";

    position:absolute;

    width:460px;

    height:460px;

    right:-245px;

    bottom:-270px;

    border:
        1px solid
        rgba(210,180,119,.11);

    border-radius:50%;
}

.dark-band h2,
.dark-band h3{
    color:#fff;
}

.dark-band p{
    color:#c5cfca;
}


/* =========================================================
   SPLIT CONTENT
   ========================================================= */

.split{

    display:grid;

    grid-template-columns:
        1fr
        1fr;

    gap:62px;

    align-items:center;
}

.split img{

    width:100%;

    height:535px;

    object-fit:cover;

    border-radius:27px;

    box-shadow:var(--shadow);

    border:
        1px solid
        rgba(16,25,24,.08);

    transition:
        transform .55s var(--ease),
        box-shadow .55s var(--ease);
}

.split img:hover{

    transform:
        translateY(-5px)
        scale(1.008);

    box-shadow:var(--shadow-lg);
}

.list-check{

    display:grid;

    gap:14px;

    margin:25px 0 0;

    padding:0;

    list-style:none;
}

.list-check li{

    display:flex;

    gap:12px;

    color:#596560;

    align-items:flex-start;
}

.list-check li:before{

    content:"✓";

    width:25px;

    height:25px;

    display:grid;

    place-items:center;

    background:
        var(--gold-soft);

    border-radius:50%;

    font-weight:900;

    color:#82662d;

    font-size:.76rem;

    margin-top:3px;

    flex:0 0 auto;
}


/* =========================================================
   STEPS
   ========================================================= */

.steps{

    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:16px;
}

.step{

    padding:26px;

    background:#fff;

    border:
        1px solid var(--line);

    border-radius:18px;

    box-shadow:var(--shadow-sm);

    transition:
        transform .35s var(--ease),
        border-color .35s ease,
        box-shadow .35s ease;

    position:relative;

    overflow:hidden;
}

.step:after{

    content:"";

    position:absolute;

    width:120px;

    height:120px;

    right:-75px;

    top:-75px;

    border-radius:50%;

    background:
        rgba(184,145,85,.07);
}

.step:hover{

    transform:translateY(-7px);

    border-color:
        rgba(184,145,85,.38);

    box-shadow:var(--shadow);
}

.step .num{

    font-family:
        "Playfair Display",
        serif;

    font-size:2.15rem;

    color:var(--gold);
}

.step h3{

    margin:12px 0 8px;

    font-size:1.2rem;
}

.step p{

    font-size:.9rem;

    color:var(--muted);

    margin:0;
}


/* =========================================================
   QUOTE
   ========================================================= */

.quote{

    padding:40px;

    background:

        radial-gradient(
            circle at 100% 0%,
            rgba(184,145,85,.12),
            transparent 30%
        ),

        linear-gradient(
            135deg,
            #ffffff,
            #f5eddd
        );

    border:
        1px solid
        #e4d5b1;

    border-radius:25px;

    box-shadow:
        0 12px 38px rgba(16,25,24,.05);

    position:relative;

    overflow:hidden;
}

.quote:before{

    content:"“";

    position:absolute;

    right:30px;

    top:-25px;

    font-family:
        "Playfair Display",
        serif;

    font-size:10rem;

    color:rgba(184,145,85,.08);

    line-height:1;
}

.quote p{

    font-family:
        "Playfair Display",
        serif;

    font-size:1.42rem;

    color:var(--navy);

    margin:0;

    position:relative;

    z-index:1;
}

.quote footer{

    margin-top:20px;

    color:#707973;

    font-size:.76rem;

    text-transform:uppercase;

    letter-spacing:.14em;
}


/* =========================================================
   CTA
   ========================================================= */

.cta{

    position:relative;

    overflow:hidden;

    background:

        radial-gradient(
            circle at 88% 5%,
            rgba(210,180,119,.19),
            transparent 28%
        ),

        radial-gradient(
            circle at 5% 100%,
            rgba(54,91,76,.38),
            transparent 35%
        ),

        linear-gradient(
            135deg,
            #0b1514,
            #1b342c
        );

    border-radius:30px;

    padding:55px;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:30px;

    box-shadow:var(--shadow-lg);

    border:
        1px solid
        rgba(210,180,119,.13);
}

.cta:after{

    content:"";

    position:absolute;

    width:300px;

    height:300px;

    right:-180px;

    bottom:-190px;

    border:
        1px solid
        rgba(210,180,119,.10);

    border-radius:50%;
}

.cta h2{

    color:#fff;

    font-size:
        clamp(
            2rem,
            4vw,
            3.4rem
        );

    position:relative;

    z-index:1;
}

.cta p{

    margin:12px 0 0;

    color:#c7d0cb;

    max-width:700px;

    position:relative;

    z-index:1;
}

.cta .btn{
    position:relative;
    z-index:2;
}


/* =========================================================
   BLOG
   ========================================================= */

.kicker{

    display:flex;

    justify-content:space-between;

    gap:20px;

    align-items:end;

    margin-bottom:34px;
}

.kicker h2{

    font-size:
        clamp(
            2rem,
            4vw,
            3.25rem
        );
}

.kicker a{

    color:var(--navy);

    font-weight:800;

    position:relative;
}

.kicker a:after{

    content:"";

    position:absolute;

    left:0;

    right:0;

    bottom:-6px;

    height:1px;

    background:var(--gold);

    transition:
        left .3s var(--ease),
        right .3s var(--ease);
}

.kicker a:hover:after{

    left:20%;

    right:20%;
}

.image-card{

    overflow:hidden;

    padding:0;

}

.image-card img{

    width:100%;

    height:auto;

    max-width:100%;

    display:block;

    object-fit:contain;

    transition:
        transform .65s var(--ease);
}

.image-card:hover img{
    transform:scale(1.035);
}

.image-card .body{
    padding:29px;
}

.tag{

    display:inline-flex;

    padding:6px 11px;

    border-radius:999px;

    background:
        var(--gold-soft);

    color:#80642d;

    font-size:.66rem;

    font-weight:850;

    letter-spacing:.14em;

    text-transform:uppercase;
}


/* =========================================================
   FORMS
   ========================================================= */

.form-grid{

    display:grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:20px;
}

.field{

    display:grid;

    gap:7px;
}

.field.full{
    grid-column:1/-1;
}

.field label{

    font-size:.78rem;

    font-weight:800;

    color:#394541;
}

.field input,
.field select,
.field textarea{

    width:100%;

    border:
        1px solid #dcded8;

    background:
        rgba(255,255,255,.88);

    border-radius:13px;

    padding:14px 15px;

    outline:none;

    color:var(--ink);

    transition:
        border-color .25s ease,
        box-shadow .25s ease,
        background .25s ease,
        transform .25s var(--ease);
}

.field textarea{

    min-height:150px;

    resize:vertical;
}

.field input::placeholder,
.field textarea::placeholder{
    color:#9ba19d;
}

.field input:hover,
.field select:hover,
.field textarea:hover{

    border-color:#c5cbc5;

    background:#fff;
}

.field input:focus,
.field select:focus,
.field textarea:focus{

    border-color:var(--gold);

    background:#fff;

    box-shadow:
        0 0 0 4px rgba(184,145,85,.09),
        0 8px 25px rgba(16,25,24,.035);
}

.form-note{

    font-size:.76rem;

    color:#7a837f;
}


/* =========================================================
   CONTACT / MAP
   ========================================================= */

.map-wrap{

    border-radius:25px;

    overflow:hidden;

    border:
        1px solid var(--line);

    min-height:460px;

    background:#eae8e0;

    box-shadow:var(--shadow-sm);
}

.map-wrap iframe{

    width:100%;

    height:100%;

    min-height:460px;

    border:0;
}

.info-stack{

    display:grid;

    gap:14px;
}

.info-item{

    display:flex;

    gap:14px;

    padding:20px;

    background:#fff;

    border:
        1px solid var(--line);

    border-radius:17px;

    box-shadow:var(--shadow-xs);

    transition:
        transform .35s var(--ease),
        border-color .3s ease,
        box-shadow .3s ease;
}

.info-item:hover{

    transform:translateX(6px);

    border-color:
        rgba(184,145,85,.4);

    box-shadow:var(--shadow-sm);
}

.info-item .icon{

    width:46px;

    height:46px;

    border-radius:13px;

    flex:0 0 auto;

    font-size:1rem;
}

.info-item strong{
    display:block;
}

.info-item span{

    font-size:.84rem;

    color:var(--muted);
}


/* =========================================================
   FAQ
   ========================================================= */

.faq{

    border-top:
        1px solid var(--line);
}

.faq-item{

    border-bottom:
        1px solid var(--line);
}

.faq-q{

    width:100%;

    display:flex;

    justify-content:space-between;

    gap:16px;

    text-align:left;

    background:none;

    border:0;

    padding:24px 0;

    font-weight:800;

    color:var(--navy);

    cursor:pointer;

    transition:
        color .25s ease;
}

.faq-q:hover{
    color:var(--gold);
}

.faq-a{

    display:grid;

    grid-template-rows:0fr;

    transition:
        grid-template-rows .4s var(--ease);
}

.faq-a>div{

    overflow:hidden;

    color:var(--muted);

    padding-right:45px;
}

.faq-item.open .faq-a{
    grid-template-rows:1fr;
}

.faq-symbol{

    font-size:1.35rem;

    color:var(--gold);

    transition:
        transform .35s var(--ease);

    flex:0 0 auto;
}

.faq-item.open .faq-symbol{
    transform:rotate(45deg);
}


/* =========================================================
   LEGAL ARTICLE
   ========================================================= */

.article-content{

    color:#303a36;

    font-size:1rem;

    line-height:1.76;

    max-width:900px;
}

.article-content p{
    margin:0 0 12px;
}

.article-content p:last-child{
    margin-bottom:0;
}

.article-content h2{

    font-size:
        clamp(
            1.75rem,
            3vw,
            2.4rem
        );

    margin:34px 0 12px;

    padding-bottom:9px;

    border-bottom:
        1px solid var(--line);

    color:var(--navy);
}

.article-content h3{

    font-size:1.38rem;

    margin:23px 0 8px;

    color:var(--navy);
}

.article-content h4{

    font-size:1.1rem;

    margin:19px 0 7px;

    color:var(--navy);
}

.article-content strong{

    color:var(--navy);

    font-weight:800;
}

.article-content em{
    color:#4f5a55;
}

.article-content blockquote{

    margin:18px 0;

    padding:19px 22px;

    background:

        linear-gradient(
            135deg,
            #faf8f1,
            #f3ecdc
        );

    border-left:
        4px solid var(--gold);

    border-radius:
        0 15px 15px 0;

    color:#3d4843;

    font-family:
        "Playfair Display",
        Georgia,
        serif;

    font-size:1.05rem;

    line-height:1.68;

    box-shadow:
        0 7px 25px rgba(16,25,24,.035);
}

.article-content ul,
.article-content ol{

    margin:8px 0 14px;

    padding-left:26px;
}

.article-content li{

    margin:4px 0;

    padding-left:3px;
}

.article-content hr{

    border:0;

    border-top:
        1px solid var(--line);

    margin:24px 0;
}

.article-content a{

    color:#85672b;

    text-decoration:underline;

    text-decoration-color:
        rgba(184,145,85,.5);

    text-underline-offset:3px;

    transition:
        color .2s ease;
}

.article-content a:hover{
    color:var(--navy);
}

.article-content img{

    display:block;

    width:100%;

    height:auto;

    max-width:100%;

    margin:19px 0;

    border-radius:18px;

    box-shadow:var(--shadow-sm);
}

.article-content table{

    width:100%;

    border-collapse:collapse;

    margin:19px 0;

    background:#fff;

    border:
        1px solid var(--line);

    border-radius:14px;

    overflow:hidden;
}

.article-content th,
.article-content td{

    padding:12px 14px;

    border-bottom:
        1px solid var(--line);

    text-align:left;
}

.article-content th{

    background:#f4f0e6;

    color:var(--navy);

    font-weight:800;
}

.article-content code{

    background:#eef0ed;

    padding:2px 6px;

    border-radius:5px;

    font-size:.9em;
}

.article-content pre{

    background:#0b1514;

    color:#e8eeea;

    padding:20px;

    border-radius:15px;

    overflow-x:auto;

    margin:19px 0;

    box-shadow:
        0 12px 35px rgba(16,25,24,.12);
}

.article-content .article-highlight{

    margin:18px 0;

    padding:17px 20px;

    background:#f4f0e5;

    border:
        1px solid #e6d9b8;

    border-radius:14px;
}

.article-content .article-highlight strong{
    color:#806326;
}


/* =========================================================
   ARTICLE HEADER
   ========================================================= */

.article-header{

    max-width:900px;

    margin-bottom:28px;
}

.article-header .tag{
    margin-bottom:13px;
}

.article-header h1{

    font-size:
        clamp(
            2.6rem,
            5vw,
            4.65rem
        );

    line-height:1.06;

    margin-bottom:14px;

    letter-spacing:-.035em;
}

.article-header .article-meta{

    color:var(--muted);

    font-size:.81rem;
}


/* =========================================================
   ARTICLE COVER
   ========================================================= */

.article-cover{

    width:100%;

    margin:0 0 28px;

    border-radius:25px;

    overflow:hidden;

    border:
        1px solid var(--line);

    background:#fff;

    box-shadow:var(--shadow-sm);
}

.article-cover img{

    display:block;

    width:100%;

    height:auto;

    max-width:100%;

    transition:
        transform .7s var(--ease);
}

.article-cover:hover img{
    transform:scale(1.012);
}


/* =========================================================
   ARTICLE GALLERY
   ========================================================= */

.article-gallery{

    display:grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(280px,1fr)
        );

    gap:20px;

    margin-top:29px;

    align-items:start;
}

.article-gallery figure{

    margin:0;

    background:#fff;

    border:
        1px solid var(--line);

    border-radius:19px;

    overflow:hidden;

    box-shadow:var(--shadow-sm);

    transition:
        transform .35s var(--ease),
        box-shadow .35s var(--ease);
}

.article-gallery figure:hover{

    transform:translateY(-5px);

    box-shadow:var(--shadow);
}

.article-gallery img{

    display:block;

    width:100%;

    height:auto;

    max-width:100%;

    margin:0;

    border-radius:0;

    box-shadow:none;
}

.article-gallery figcaption{

    padding:11px 14px;

    color:var(--muted);

    font-size:.74rem;

    line-height:1.5;
}


/* =========================================================
   NOTICES
   ========================================================= */

.notice{

    padding:16px 18px;

    border-radius:13px;

    background:#f0f4f1;

    border:
        1px solid #dce5df;

    color:#596560;

    font-size:.82rem;
}

.alert{

    padding:16px 18px;

    border-radius:13px;

    margin-bottom:18px;

    font-size:.86rem;
}

.alert-success{

    background:#edf7f1;

    color:#22603b;

    border:
        1px solid #cfe8d9;
}

.alert-error{

    background:#fff2f0;

    color:#8a2d21;

    border:
        1px solid #f1cec7;
}


/* =========================================================
   FOOTER
   ========================================================= */

.footer{

    margin-top:110px;

    background:

        radial-gradient(
            circle at 85% 0%,
            rgba(184,145,85,.11),
            transparent 26%
        ),

        radial-gradient(
            circle at 10% 100%,
            rgba(41,69,59,.28),
            transparent 30%
        ),

        #091311;

    color:#dfe7e2;

    position:relative;

    overflow:hidden;
}

.footer:after{

    content:"";

    position:absolute;

    width:500px;

    height:500px;

    right:-360px;

    top:-360px;

    border:
        1px solid
        rgba(210,180,119,.08);

    border-radius:50%;
}

.footer-main{

    display:grid;

    grid-template-columns:
        1.2fr
        .8fr
        .8fr
        .9fr;

    gap:45px;

    padding:70px 0;
}

.footer h3,
.footer h4{
    color:#fff;
}

.footer h4{

    font-size:1rem;

    margin-bottom:16px;
}

.footer p,
.footer li,
.footer a{

    color:#aab7b0;

    font-size:.84rem;
}

.footer a{

    transition:
        color .25s ease,
        transform .25s var(--ease);
}

.footer a:hover{
    color:#d6b96f;
}

.footer ul{

    padding:0;

    margin:0;

    list-style:none;

    display:grid;

    gap:9px;
}

.footer-bottom{

    border-top:
        1px solid rgba(255,255,255,.075);

    padding:20px 0;

    color:#77847e;

    font-size:.73rem;

    display:flex;

    justify-content:space-between;

    gap:20px;

    flex-wrap:wrap;

    position:relative;

    z-index:1;
}

.disclaimer{

    font-size:.74rem!important;

    line-height:1.65;
}


/* =========================================================
   ANIMATIONS
   ========================================================= */

.reveal{

    opacity:0;

    transform:
        translateY(25px);

    transition:
        opacity .75s var(--ease),
        transform .75s var(--ease);
}

.reveal.in{

    opacity:1;

    transform:none;
}

.nav-spacer{
    height:1px;
}

.sr-only{

    position:absolute;

    width:1px;

    height:1px;

    padding:0;

    margin:-1px;

    overflow:hidden;

    clip:rect(0,0,0,0);

    white-space:nowrap;

    border:0;
}


/* =========================================================
   FOCUS ACCESSIBILITY
   ========================================================= */

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{

    outline:
        2px solid var(--gold);

    outline-offset:4px;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width:980px){

    .nav-links{
        display:none;
    }

    .mobile-toggle{

        display:grid;

        place-items:center;
    }

    .hero-grid,
    .split{

        grid-template-columns:1fr;
    }

    .hero-grid{

        min-height:0;

        padding:85px 0;
    }

    .hero-media{
        order:-1;
    }

    .hero-media img{
        height:470px;
    }

    .hero-badge{
        left:20px;
    }

    .trust-strip{

        grid-template-columns:
            repeat(2,1fr);
    }

    .cards-3,
    .cards-6{

        grid-template-columns:
            repeat(2,1fr);
    }

    .steps{

        grid-template-columns:
            repeat(2,1fr);
    }

    .footer-main{

        grid-template-columns:
            repeat(2,1fr);
    }

    .split{
        gap:40px;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width:640px){

    .container{

        width:
            min(
                100% - 28px,
                1180px
            );
    }

    .section{
        padding:68px 0;
    }

    .section-tight{
        padding:50px 0;
    }

    .nav{
        height:72px;
    }

    .brand-text strong{
        font-size:1.18rem;
    }

    .brand-text span{
        font-size:.57rem;
    }

    .brand-mark{

        width:42px;

        height:42px;

        border-radius:12px;

        font-size:1.2rem;
    }

    .hero-grid{

        padding:60px 0 70px;
    }

    .hero h1{

        font-size:
            clamp(
                2.9rem,
                14vw,
                3.65rem
            );

        letter-spacing:-.04em;
    }

    .hero-copy{

        font-size:.98rem;

        line-height:1.75;

        margin:23px 0 29px;
    }

    .hero-actions{

        display:grid;

        grid-template-columns:1fr;

        gap:10px;
    }

    .hero-actions .btn{
        width:100%;
    }

    .hero-media img{

        height:350px;

        border-radius:23px;
    }

    .hero-badge{

        position:relative;

        left:auto;

        bottom:auto;

        margin-top:-20px;

        max-width:none;

        padding:20px 22px;

        border-radius:17px;
    }

    .trust-strip,
    .cards-2,
    .cards-3,
    .cards-6,
    .steps,
    .form-grid{

        grid-template-columns:1fr;
    }

    .trust-strip{
        gap:9px;
    }

    .trust-card{
        padding:15px 16px;
    }

    .section-heading h1,
    .section-heading h2{

        font-size:
            clamp(
                2.25rem,
                11vw,
                3.25rem
            );
    }

    .section-heading p{
        font-size:.95rem;
    }

    .card{
        padding:28px;
    }

    .split img{

        height:350px;

        border-radius:22px;
    }

    .cta{

        padding:34px 27px;

        display:block;

        border-radius:23px;
    }

    .cta h2{
        font-size:2.25rem;
    }

    .cta p{
        font-size:.94rem;
    }

    .cta .btn{

        margin-top:23px;

        width:100%;
    }

    .kicker{

        align-items:flex-start;

        flex-direction:column;

        gap:12px;
    }

    .footer-main{

        grid-template-columns:1fr;

        gap:34px;

        padding:55px 0;
    }

    .footer-bottom{

        display:block;

        padding:18px 0;
    }

    .footer-bottom>*{
        margin-bottom:8px;
    }

    /* ---------- Article ---------- */

    .article-content{

        font-size:.95rem;

        line-height:1.7;
    }

    .article-content p{
        margin-bottom:10px;
    }

    .article-content h2{

        font-size:1.62rem;

        margin-top:27px;

        margin-bottom:10px;
    }

    .article-content h3{

        font-size:1.25rem;

        margin-top:20px;
    }

    .article-content blockquote{

        padding:15px 17px;

        font-size:.95rem;
    }

    .article-header h1{

        font-size:
            clamp(
                2.35rem,
                11vw,
                3rem
            );
    }

    .article-gallery{

        grid-template-columns:1fr;

        gap:15px;
    }

    .article-cover{
        border-radius:21px;
    }

    .quote{
        padding:29px;
    }

    .quote p{
        font-size:1.18rem;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width:390px){

    .container{
        width:calc(100% - 24px);
    }

    .hero h1{
        font-size:2.75rem;
    }

    .brand-text span{
        letter-spacing:.14em;
    }

    .hero-media img{
        height:315px;
    }

    .card{
        padding:24px;
    }

    .cta{
        padding:30px 23px;
    }
}


/* =========================================================
   REDUCED MOTION
   ========================================================= */

@media (prefers-reduced-motion:reduce){

    html{
        scroll-behavior:auto;
    }

    .reveal{
        transition:none;
    }

    *,
    *:before,
    *:after{

        animation:none!important;

        transition:none!important;
    }
}

