/* Mobile-first finishing layer: keeps every storefront page within the viewport. */
.mobile-menu-toggle,.mobile-menu { display: none; }
@media (max-width: 650px) {
    html, body { max-width: 100%; overflow-x: hidden; }

    .site-header {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .6rem 1rem;
        min-height: auto;
        padding: .6rem 1rem .75rem;
    }
    .brand--logo { width: 145px; }
    .brand--logo img { height: 52px; }
    .site-header .primary-nav { display: none; }
    .mobile-menu-toggle { display:grid; order:2; justify-self:end; width:2.5rem; height:2.5rem; padding:.65rem .45rem; border:1px solid #dfd1c3; background:#fffdf9; cursor:pointer; }
    .mobile-menu-toggle i { display:block; height:1px; background:#54202a; }
    .header-utilities { display:none; }
    .header-icon { width: 1.55rem; height: 1.55rem; font-size: 1.2rem; }
    .topbar { padding: .5rem .9rem; font-size: .53rem; letter-spacing: .08em; }
    .topbar span { margin: 0 .25rem; }

    .mobile-menu { width:min(88vw,370px); height:100dvh; max-height:none; margin:0 0 0 auto; padding:1.25rem 1.3rem 1.6rem; border:0; background:#fffaf4; color:#382027; box-shadow:-18px 0 48px rgba(30,8,13,.17); }
    .mobile-menu[open] { display:flex; flex-direction:column; }
    .mobile-menu::backdrop { background:rgba(32,8,14,.62); backdrop-filter:blur(2px); }
    .mobile-menu__head { display:flex; align-items:center; justify-content:space-between; padding-bottom:1.25rem; border-bottom:1px solid #dfd1c3; }
    .mobile-menu__head img { width:145px; height:58px; object-fit:contain; object-position:left center; }
    .mobile-menu__head button { width:2.35rem; height:2.35rem; border:1px solid #dfd1c3; background:transparent; color:#4e1d28; font-size:1.7rem; line-height:1; cursor:pointer; }
    .mobile-menu__links { display:block; margin-top:1.35rem; }
    .mobile-menu__links > a,.mobile-menu__links summary { display:flex; align-items:center; justify-content:space-between; padding:1rem 0; border-bottom:1px solid #e8ded4; color:#382027; font:600 1.5rem 'Cormorant Garamond',serif; text-decoration:none; cursor:pointer; list-style:none; }
    .mobile-menu__links summary::-webkit-details-marker { display:none; }
    .mobile-menu__links summary span,.mobile-menu__links > a span { color:#8b2a3c; font:400 1.2rem 'DM Sans',sans-serif; }
    .mobile-menu__links details[open] summary span { transform:rotate(45deg); }
    .mobile-menu__links details div { padding:.3rem 0 .85rem; }
    .mobile-menu__links details a { display:block; padding:.48rem 0; color:#705c56; font-size:.82rem; text-decoration:none; }
    .mobile-menu__footer { margin-top:auto; padding-top:1.25rem; border-top:1px solid #dfd1c3; }
    .mobile-menu__footer p { margin:0 0 .55rem; color:#a47746; font-size:.58rem; font-weight:700; letter-spacing:.16em; }
    .mobile-menu__footer a { display:flex; justify-content:space-between; color:#5d1830; font:600 1.35rem 'Cormorant Garamond',serif; text-decoration:none; }

    .container { padding-left: 1.1rem; padding-right: 1.1rem; }
    .page-title { padding: 4.2rem 1.35rem 3.4rem; }
    .page-title h1 { font-size: clamp(2.8rem, 13vw, 3.7rem); }
    .section { padding: 4.4rem 0; }
    .section-head { display: block; margin-bottom: 2rem; }
    .section-head .text-link { display: inline-block; margin-top: 1.2rem; }

    footer {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2.2rem 1.25rem;
        padding: 3.5rem 1.35rem 1.5rem;
    }
    footer > div { min-width: 0; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-brand--logo img { width: 174px; height: 100px; margin: -17px 0 -13px; }
    footer h4 { font-size: 1.15rem; }
    footer a { display: block; margin: .65rem 0; font-size: .77rem; overflow-wrap: anywhere; }
    .footer-bottom { grid-column: 1 / -1; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.14); font-size: .7rem; }

    .detail-actions { align-items: stretch; flex-direction: column; }
    .detail-actions .btn { width: 100%; }
    .form-grid { grid-template-columns: 1fr; }
    .form-grid textarea { grid-column: auto; }
}

@media (max-width: 380px) {
    .brand--logo { width: 132px; }
    .brand--logo img { height: 48px; }
    .site-header { padding-left: .8rem; padding-right: .8rem; }
    .site-header .primary-nav { width: calc(100vw - 1.6rem); }
    footer { grid-template-columns: 1fr; }
    .footer-brand { grid-column: auto; }
    .footer-bottom { grid-column: auto; }
}
