/* Fugindo da Casinha — identidade visual e interface pública. */
:root  {
    --forest:#213e2b;
    --deep:#13251b;
    --orange:#f77a24;
    --cream:#f6f3ec;
    --ink:#1d2821;
    --muted:#62685f;
    --line:#e5e6dd;
    --white:#fff;
    --radius:12px;
}

*  {
    box-sizing:border-box;
}

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

body  {
    margin:0;
    color:var(--ink);
    background:#fff;
    font:15px/1.6 Arial,Helvetica,sans-serif;
}

h1,h2,h3,p  {
    margin:0;
}

h1,h2  {
    font-family:Georgia,'Times New Roman',serif;
    font-weight:700;
    line-height:1.07;
    letter-spacing:-1.2px;
}

h1  {
    font-size:clamp(38px,4.2vw,65px);
}

h2  {
    font-size:clamp(28px,2.6vw,38px);
}

h3  {
    font-size:17px;
    line-height:1.35;
}

p  {
    margin:14px 0;
    color:var(--muted);
}

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

a:hover  {
    color:#a9470d;
}

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

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

button,a,input,select,textarea  {
    -webkit-tap-highlight-color:transparent;
}

button  {
    cursor:pointer;
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible  {
    outline:3px solid #c36527;
    outline-offset:4px;
}

.wrap  {
    width:min(1320px,90%);
    margin:auto;
}

.top  {
    background:rgba(250,248,242,.98);
    border-bottom:1px solid var(--line);
    position:relative;
    z-index:20;
}

.nav  {
    min-height:84px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}

.brand  {
    display:flex;
    align-items:center;
    gap:9px;
    line-height:1;
    flex-shrink:0;
}

.brand span  {
    font-family:Arial,Helvetica,sans-serif;
    font-stretch:condensed;
    font-size:16px;
    letter-spacing:-.6px;
    font-weight:900;
}

.brand small  {
    display:block;
    font-size:7px;
    letter-spacing:1.4px;
    margin-top:6px;
    font-weight:600;
}

.custom-logo  {
    width:220px;
    height:65px;
    object-fit:contain;
}

.nav nav  {
    display:flex;
    gap:26px;
    align-items:center;
    font-size:13px;
    font-weight:600;
}

.nav nav a  {
    padding:29px 0;
    border-bottom:2px solid transparent;
}

.nav nav a:hover  {
    border-color:var(--forest);
}

.button  {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    background:var(--forest);
    color:#fff;
    border:1px solid var(--forest);
    border-radius:9px;
    padding:12px 20px;
    min-height:46px;
    font-weight:600;
    font-size:14px;
    text-align:center;
    line-height:1.3;
    transition:background .2s,transform .2s;
}

.button:hover  {
    background:#33573c;
    color:white;
    transform:translateY(-1px);
}

.button.orange  {
    background:var(--orange);
    border-color:var(--orange);
    color:#fff;
}

.button.orange:hover  {
    background:#d85f12;
}

.button.outline  {
    color:var(--ink);
    background:transparent;
    border-color:#58635a;
}

.button.outline:hover  {
    background:var(--cream);
}

.button.glass  {
    border-color:#fff;
    color:#fff;
    background:#15221933;
}

.button.small  {
    font-size:12px;
    padding:9px 15px;
    min-height:37px;
}

.menu-toggle  {
    display:none;
}

.hero  {
    position:relative;
    min-height:510px;
    color:white;
    display:flex;
    align-items:center;
    overflow:hidden;
}

.hero-bg,.hero-shade  {
    position:absolute;
    width:100%;
    height:100%;
    inset:0;
    object-fit:cover;
    object-position:center 53%;
}

.hero-shade  {
    background:linear-gradient(90deg,rgba(10,22,15,.88),rgba(10,22,15,.50) 46%,rgba(10,22,15,.04) 100%);
}

.hero-content  {
    position:relative;
    padding:50px 0;
}

.eyebrow  {
    display:block;
    font-size:9px;
    font-weight:700;
    letter-spacing:3.2px;
    margin-bottom:13px;
    line-height:1.6;
}

.hero h1  {
    max-width:650px;
    white-space:normal;
}

.hero p  {
    color:#fff;
    max-width:470px;
    font-size:16px;
    line-height:1.5;
    margin:20px 0 26px;
}

.actions  {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
}

.values  {
    display:flex;
    gap:24px;
    flex-wrap:wrap;
    font-size:12px;
    margin-top:27px;
}

.hero-note  {
    position:absolute;
    right:7%;
    top:30%;
    font:italic 26px/1.25 Georgia,serif;
    transform:rotate(-9deg);
    text-align:center;
}

.section  {
    padding:42px 0;
}

.cream  {
    background:var(--cream);
}

.shelf  {
    display:grid;
    grid-template-columns:240px minmax(0,1fr);
    gap:36px;
}

.section-intro p  {
    font-size:14px;
    line-height:1.5;
    margin:12px 0 18px;
}

.trips-grid,.equipment-grid  {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:17px;
    align-items:start;
}

.trip-image  {
    position:relative;
    overflow:hidden;
    border-radius:9px;
    background:var(--cream);
    aspect-ratio:1.38;
}

.trip-image img  {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .3s;
}

.trip-card a:hover img  {
    transform:scale(1.045);
}

.trip-card h3  {
    font-size:14px;
    margin-top:3px;
}

.location  {
    font-size:10px;
    color:var(--muted);
    margin-top:9px;
    display:block;
}

.play  {
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    border:2px solid white;
    background:#142419b3;
    color:#fff;
    border-radius:50%;
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
}

.equipment-card  {
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:0 3px 15px #14271906;
    background:#fff;
    height:100%;
    display:flex;
    flex-direction:column;
}

.product-image  {
    display:block;
    position:relative;
    padding:20px 14px 0;
    aspect-ratio:1.25;
}

.product-image img  {
    width:100%;
    height:100%;
    object-fit:contain;
}

.badge  {
    position:absolute;
    top:10px;
    left:10px;
    border-radius:5px;
    padding:3px 8px;
    background:var(--orange);
    font-size:10px;
    color:white;
    font-weight:700;
    max-width:90%;
    overflow-wrap:anywhere;
}

.card-body  {
    padding:14px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    flex:1;
}

.card-body p  {
    font-size:12px;
    line-height:1.5;
    margin:9px 0 14px;
}

.card-body .button  {
    margin-top:auto;
}

.equipment-card h3  {
    font-size:14px;
}

.about  {
    padding:34px 0;
}

.about-grid  {
    display:grid;
    grid-template-columns:300px minmax(0,1fr) 220px;
    gap:35px;
    align-items:center;
}

.about-grid>img  {
    width:100%;
    height:240px;
    object-fit:cover;
    border-radius:10px;
}

.about h2  {
    font-size:32px;
}

.about p  {
    font-size:14px;
}

.about .values  {
    margin-top:18px;
    font-size:11px;
    gap:20px;
}

blockquote  {
    margin:0;
    padding:32px 15px;
    color:white;
    text-align:center;
    background:var(--forest);
    border-radius:8px 35px 9px 40px;
    transform:rotate(-3deg);
    font:italic 20px/1.6 Georgia,serif;
}

blockquote span  {
    display:block;
    font-size:32px;
    line-height:1;
}

.community-band  {
    background:var(--forest);
    color:white;
    padding:30px 0;
    border-bottom:1px solid #ffffff30;
}

.community-grid  {
    display:grid;
    grid-template-columns:1.5fr repeat(3,1fr);
    gap:18px;
    align-items:center;
}

.community-grid h2  {
    font-size:28px;
}

.community-grid .eyebrow  {
    font-size:8px;
    letter-spacing:2px;
    margin-bottom:8px;
}

.social-card  {
    display:flex;
    gap:13px;
    align-items:center;
    border:1px solid #ffffff24;
    padding:16px;
    border-radius:10px;
    background:#ffffff05;
    line-height:1.3;
}

.social-card:hover  {
    color:white;
    background:#ffffff13;
}

.social-card strong  {
    font-size:13px;
}

.social-card small  {
    display:block;
    font-size:11px;
    margin-top:5px;
    color:#e0e5da;
}

.social-card>span:last-child  {
    margin-left:auto;
}

.social-icon  {
    font-size:30px;
}

.youtube  {
    color:#ff4136;
}

.instagram  {
    color:#ffa9c9;
}

.footer  {
    background:var(--deep);
    color:#eff1e9;
    padding:26px 0 16px;
}

.footer-top,.footer-bottom  {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.footer-top  {
    padding-bottom:24px;
    border-bottom:1px solid #ffffff24;
}

.footer-top>span  {
    font:italic 18px Georgia,serif;
}

.footer-bottom  {
    font-size:11px;
    padding-top:14px;
}

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

.skip  {
    position:fixed;
    top:-100px;
    left:12px;
    background:white;
    padding:15px;
    z-index:100;
}

.skip:focus  {
    top:10px;
}

.listing,.detail  {
    padding:45px 0 65px;
    min-height:65vh;
}

.listing h1  {
    margin:8px 0 15px;
}

.crumb  {
    font-size:12px;
    color:var(--muted);
    display:inline-block;
    margin-bottom:28px;
}

.lead  {
    font-size:18px;
    max-width:760px;
}

.filters  {
    display:flex;
    gap:15px;
    align-items:flex-end;
    padding:24px 0 35px;
    flex-wrap:wrap;
}

.filters label  {
    min-width:200px;
    flex:1;
    max-width:420px;
}

.filters>a  {
    align-self:center;
}

.gallery-grid,.catalog-grid  {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:25px;
}

.gallery-grid .trip-card  {
    margin-bottom:20px;
}

.gallery-grid h3  {
    font-size:20px;
}

.catalog-grid .equipment-card h3  {
    font-size:19px;
}

.catalog-grid .card-body  {
    padding:20px;
}

.catalog-grid .card-body p  {
    font-size:14px;
}

.empty  {
    padding:40px;
    background:var(--cream);
    border-radius:var(--radius);
    margin:10px 0;
    grid-column:1/-1;
}

.empty h2,.empty h3  {
    font:700 30px/1.2 Georgia,serif;
}

.editorial  {
    margin:0;
    background:#e8ebe1;
    min-height:240px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
}

.editorial p  {
    max-width:580px;
}

.detail h1  {
    max-width:1000px;
    margin:0 0 30px;
}

.detail-cover  {
    width:100%;
    max-height:650px;
    object-fit:cover;
    border-radius:15px;
}

.story  {
    font-size:17px;
    line-height:1.85;
    max-width:900px;
    overflow-wrap:anywhere;
}

.video-section  {
    margin:35px 0;
}

.video-section h2  {
    margin-bottom:20px;
}

.video  {
    width:100%;
    aspect-ratio:16/9;
    border:0;
    border-radius:12px;
    background:#111;
}

.photo-grid  {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    margin-top:30px;
}

.photo  {
    border:0;
    padding:0;
    background:none;
}

.photo img  {
    width:100%;
    aspect-ratio:1.4;
    object-fit:cover;
    border-radius:10px;
}

.product-detail  {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:start;
}

.product-detail>img  {
    width:100%;
    height:500px;
    object-fit:contain;
    background:var(--cream);
    border-radius:18px;
    padding:30px;
}

.product-detail h1  {
    font-size:42px;
}

.disclosure  {
    font-size:12px;
    color:var(--muted);
    margin-top:25px;
}

dialog  {
    border:0;
    border-radius:12px;
    max-width:92vw;
    max-height:92vh;
    padding:40px 18px 12px;
}

dialog::backdrop  {
    background:#0a140ded;
}

dialog img  {
    max-height:72vh;
    object-fit:contain;
    margin:auto;
}

dialog p  {
    text-align:center;
}

.close-dialog  {
    position:absolute;
    right:8px;
    top:4px;
    background:white;
    border:0;
    font-size:23px;
    padding:5px 12px;
}

label  {
    display:block;
    font-size:13px;
    font-weight:600;
}

input,select,textarea  {
    display:block;
    width:100%;
    padding:12px;
    border:1px solid #cbd2c7;
    border-radius:7px;
    background:#fff;
    color:var(--ink);
    margin-top:6px;
}

textarea  {
    min-height:130px;
    resize:vertical;
}

input[type=checkbox]  {
    width:18px;
    display:inline-block;
    margin-right:8px;
    vertical-align:middle;
}

input[type=file]  {
    padding:9px;
}

label small  {
    display:block;
    font-weight:400;
    color:var(--muted);
}

@media(min-width:1600px)  {
    .hero  {
        min-height:570px;
    }

}

@media(max-width:1150px)  {
    .community  {
        display:none;
    }

    .shelf  {
        grid-template-columns:210px minmax(0,1fr);
        gap:24px;
    }

    .equipment-grid,.trips-grid  {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .about-grid  {
        grid-template-columns:240px 1fr;
    }

    .about blockquote  {
        display:none;
    }

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

    .community-grid>div  {
        grid-column:1/-1;
    }

    .hero-note  {
        right:4%;
        font-size:23px;
    }

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

}

@media(max-width:760px)  {
    .wrap  {
        width:90%;
    }

    .nav  {
        min-height:75px;
    }

    .nav nav  {
        display:none;
        position:absolute;
        top:75px;
        left:0;
        right:0;
        background:var(--cream);
        padding:15px 5%;
        box-shadow:0 8px 10px #0001;
    }

    .nav nav.open  {
        display:flex;
        flex-direction:column;
        gap:0;
        align-items:stretch;
    }

    .nav nav a  {
        padding:12px;
    }

    .menu-toggle  {
        display:block;
        border:1px solid #c6cec3;
        padding:8px;
        border-radius:5px;
        color:var(--forest);
        background:none;
        font-size:12px;
    }

    .brand span  {
        font-size:14px;
    }

    .brand img  {
        max-width:45px;
    }

    .brand img.custom-logo  {
        max-width:180px;
    }

    .brand small  {
        font-size:6px;
    }

    .hero  {
        min-height:570px;
    }

    .hero-bg  {
        object-position:60% center;
    }

    .hero-shade  {
        background:linear-gradient(90deg,#101e16d9,#15251b70);
    }

    .hero-content  {
        padding:40px 0;
    }

    .hero h1  {
        font-size:47px;
        max-width:470px;
    }

    .hero p  {
        font-size:15px;
        max-width:380px;
    }

    .hero-note  {
        display:none;
    }

    .hero .actions  {
        max-width:400px;
    }

    .actions .button  {
        font-size:12px;
        padding:11px 13px;
    }

    .hero .values  {
        gap:13px;
        font-size:10px;
    }

    .eyebrow  {
        font-size:8px;
        letter-spacing:2.3px;
    }

    .shelf  {
        grid-template-columns:1fr;
        gap:25px;
    }

    .section  {
        padding:34px 0;
    }

    .section-intro h2 br  {
        display:none;
    }

    .section-intro p  {
        max-width:530px;
    }

    .trips-grid,.equipment-grid  {
        gap:13px;
    }

    .trip-card h3  {
        font-size:14px;
    }

    .card-body  {
        padding:12px;
    }

    .about-grid  {
        grid-template-columns:1fr;
        gap:24px;
    }

    .about-grid>img  {
        height:300px;
    }

    .about h2  {
        font-size:30px;
    }

    .community-grid  {
        grid-template-columns:1fr;
    }

    .community-grid>div  {
        margin-bottom:5px;
    }

    .social-card  {
        padding:15px;
    }

    .footer-top,.footer-bottom  {
        align-items:flex-start;
        flex-direction:column;
        gap:16px;
    }

    .footer-top>span  {
        font-size:16px;
    }

    .listing,.detail  {
        padding:30px 0 45px;
    }

    .catalog-grid,.gallery-grid  {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:15px;
    }

    .gallery-grid h3  {
        font-size:17px;
    }

    .catalog-grid .card-body  {
        padding:14px;
    }

    .catalog-grid .equipment-card h3  {
        font-size:16px;
    }

    .catalog-grid .card-body p  {
        font-size:12px;
    }

    .product-detail  {
        grid-template-columns:1fr;
        gap:25px;
    }

    .product-detail>img  {
        height:330px;
    }

    .product-detail h1  {
        font-size:36px;
    }

    .filters  {
        gap:12px;
    }

    .filters label  {
        max-width:100%;
        flex-basis:100%;
    }

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

    .empty  {
        padding:25px;
    }

    .empty h2,.empty h3  {
        font-size:25px;
    }

}

@media(prefers-reduced-motion:reduce)  {
    html  {
        scroll-behavior:auto;
    }

    *,*::before,*::after  {
        transition:none!important;
        animation:none!important;
    }

}

/* V3 — biblioteca, detalhes e componentes acessíveis. */
[hidden]  {
    display: none !important;
}

.skip  {
    position: fixed;
    top: -80px;
    left: 1rem;
    padding: 1rem;
    background: #fff;
    z-index: 1000;
}

.skip:focus  {
    top: 1rem;
}

.sr-only  {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}

:root  {
    --orange: #b9501b;
}

.button.orange:hover  {
    background: #983e12;
}

.notice-bar  {
    padding: 14px 5%;
    background: #fff2dc;
    color: #584022;
    text-align: center;
}

.alert  {
    padding: 16px 20px;
    border: 1px solid #d7c5a5;
    background: #faf2e2;
    border-radius: 10px;
    margin: 16px 0;
    color: #614a27;
}

.alert.error  {
    background: #fff0ef;
    border-color: #dfb3b1;
    color: #852c2c;
}

.alert.success  {
    background: #edf5eb;
    border-color: #bdd4b8;
    color: #234c2b;
}

.section-heading  {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: end;
    margin-bottom: 24px;
}

.text-link  {
    color: var(--forest);
    font-size: 13px;
    font-weight: 700;
    background: none;
    border: 0;
    padding: 0;
}

.memories-grid  {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.memory-card  {
    margin: 0;
    min-width: 0;
}

.photo-button  {
    border: 0;
    padding: 0;
    display: block;
    width: 100%;
    background: transparent;
    cursor: zoom-in;
    border-radius: 12px;
    overflow: hidden;
}

.memory-card img, .memory-card video  {
    width: 100%;
    height: 230px;
    object-fit: cover;
    border-radius: 12px;
    background: #e6e7dc;
}

.memory-card figcaption  {
    margin-top: 10px;
    color: var(--muted);
    font-size: 12px;
    overflow-wrap: anywhere;
}

.empty.editorial  {
    min-height: 270px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: start;
    background: var(--cream);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 32px;
    grid-column: 1 / -1;
}

.cream .empty.editorial  {
    background: #fffdf8;
}

.editorial h3  {
    font-family: Georgia, serif;
    font-size: 27px;
    line-height: 1.2;
    max-width: 450px;
}

.equipment-card .card-body  {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 18px;
}

.equipment-card  {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
}

.card-body .button  {
    margin-top: auto;
}

.breadcrumbs  {
    margin-bottom: 24px;
    font-size: 13px;
    color: var(--muted);
}

.product-detail  {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 56px;
    align-items: start;
}

.detail-visual  {
    background: var(--cream);
    border-radius: 18px;
    padding: 25px;
}

.detail-product-image  {
    width: 100%;
    max-height: 600px;
    height: auto;
    aspect-ratio: 6 / 5;
    object-fit: contain;
}

.detail-copy h1  {
    font-size: clamp(30px, 3vw, 46px);
}

.detail-copy .button  {
    margin-top: 20px;
}

.inline-badge  {
    display: inline-block;
    position: static;
    margin: 16px 0 0;
}

.lead  {
    font-size: 19px;
    line-height: 1.6;
}

.affiliate-note  {
    font-size: 12px;
    line-height: 1.6;
}

.prose  {
    overflow-wrap: anywhere;
    line-height: 1.85;
}

.prose h2  {
    margin: 32px 0 16px;
    font-size: 27px;
}

.trip-cover  {
    width: 100%;
    max-height: 650px;
    object-fit: cover;
    border-radius: 18px;
}

.trip-story  {
    max-width: 800px;
    margin: 30px auto;
}

.video-block  {
    width: 100%;
    max-width: 1000px;
    margin: 35px auto;
    border-radius: 16px;
    overflow: hidden;
    background: var(--deep);
    color: #fff;
}

.video-block video, .video-block iframe  {
    width: 100%;
    aspect-ratio: 16 / 9;
    display: block;
    border: 0;
}

.embed-consent  {
    padding: 50px 30px;
    text-align: center;
}

.embed-consent p  {
    color: #deded4;
}

.embed-consent .eyebrow  {
    color: #deded4;
}

#lightbox  {
    max-width: min(1200px, 94vw);
    max-height: 94dvh;
    padding: 42px 18px 14px;
    border: 0;
    border-radius: 12px;
    background: #122318;
    color: #fff;
}

#lightbox::backdrop  {
    background: rgb(0 0 0 / 85%);
}

#lightbox img  {
    max-height: 75dvh;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    margin: auto;
}

#lightbox p  {
    color: #fff;
    margin: 12px 0 0;
}

.close-dialog  {
    position: absolute;
    top: 6px;
    right: 10px;
    border: 0;
    background: none;
    color: #fff;
    font-size: 24px;
    min-width: 36px;
    min-height: 36px;
}

.narrow  {
    max-width: 900px;
    min-height: 50vh;
}

.contact-cards  {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 35px 0;
}

.contact-cards .panel  {
    padding: 30px;
    border: 1px solid var(--line);
    border-radius: 16px;
}

.contact-cards h2  {
    font-size: 27px;
}

.contact-cards p  {
    overflow-wrap: anywhere;
}

@media (max-width: 1000px)  {
    .memories-grid  {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .product-detail  {
        gap: 30px;
    }

}

@media (max-width: 680px)  {
    .section-heading  {
        align-items: start;
        flex-direction: column;
        gap: 16px;
    }

    .memories-grid  {
        gap: 13px;
    }

    .memory-card img, .memory-card video  {
        height: 170px;
    }

    .product-detail  {
        grid-template-columns: 1fr;
    }

    .gallery-detail  {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-cards  {
        grid-template-columns: 1fr;
    }

    .hero-note  {
        display: none;
    }

    .footer-bottom  {
        gap: 14px;
        flex-wrap: wrap;
    }

}

@media (prefers-reduced-motion: reduce)  {
    html  {
        scroll-behavior: auto;
    }

    *, *::before, *::after  {
        animation: none !important;
        transition: none !important;
    }

}

/* 3.1: portrait-safe hero and albums. */
.hero-couple {background:linear-gradient(125deg,#142b20,#304d35);min-height:0;padding:36px 0;color:#fff;}
.couple-layout {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6%;align-items:center;}
.hero-couple .hero-content {padding:24px 0;}
.hero-couple h1 {font-size:clamp(36px,4.4vw,64px);max-width:600px;}
.hero-couple .eyebrow {color:#f8c18d;}
.hero-couple .values {gap:18px;color:#d1dccf;}
.hero-portrait {margin:0;border:1px solid #ffffff38;border-radius:18px;overflow:hidden;background:#15271d;box-shadow:0 18px 55px #06110b55;}
.hero-stage {width:100%;aspect-ratio:1/1;overflow:hidden;background:#142219;}
.hero-stage img {display:block;width:100%;height:100%;max-width:none;}
.hero-portrait figcaption {padding:12px 16px;text-align:center;font:italic 16px Georgia,serif;color:#e9e7d7;background:#1d3425;}
.album-meta {display:block;font-size:12px;color:var(--muted);margin:6px 0;}
.album-cover {object-fit:contain!important;background:var(--cream);height:auto;max-height:75vh;}
.album-filters {display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:24px 0 32px;}
.album-filters label {display:grid;gap:6px;flex:1;min-width:160px;}
.album-filters input,.album-filters select {padding:12px;border:1px solid var(--line);border-radius:8px;background:white;min-height:46px;}
.pagination {display:flex;justify-content:center;align-items:center;gap:20px;margin:32px 0;}
.lightbox-tools {display:flex;justify-content:center;align-items:center;gap:14px;margin:4px 40px 14px;color:white;}
#lightbox .lightbox-tools button {position:static;min-width:44px;}
#lightbox img {object-fit:contain;max-height:70vh;}
#lightbox p {overflow-wrap:anywhere;}
@media(max-width:760px) {
 .couple-layout {grid-template-columns:1fr;gap:22px;}
 .hero-couple {padding:24px 0 30px;}
 .hero-portrait {grid-row:1;max-width:480px;width:100%;margin:auto;}
 .hero-stage {aspect-ratio:4/5;}
 .hero-couple .hero-content {padding:6px 0;}
 .hero-couple h1 {font-size:clamp(34px,9vw,48px);}
 .hero-couple .actions {display:grid;grid-template-columns:1fr;}
 .lightbox-tools {margin:30px 0 12px;gap:8px;}
}
@media(prefers-reduced-motion:reduce) {html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important;}}
