/* Shared public shell: keep navigation and footer identical across public pages. */
:root { --public-shell-ink: #171717; --public-shell-paper: #f8f8f6; --public-shell-accent: #9380ef; --public-shell-gutter: 5.1vw; }
.public-shell-page, .products-page, .services-page { --site-gutter: var(--public-shell-gutter); }
.topbar { height: 98px !important; padding: 0 var(--public-shell-gutter) !important; display: flex !important; align-items: center; justify-content: space-between; background: #fff !important; border-bottom: 1px solid #ededeb !important; color: var(--public-shell-ink); position: relative; z-index: 20; }
.topbar .menu-button { height: 42px; border: 0; color: #fff; background: var(--public-shell-accent); padding: 0 18px 0 0; font: 500 14px "DM Sans", sans-serif; gap: 14px; }
.topbar .menu-icon { height: 42px; width: 42px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border-right: 1px solid rgb(255 255 255 / 55%); }
.topbar .menu-icon i { display: block; width: 16px; height: 1px; background: #fff; }
.topbar .logo { color: var(--public-shell-ink); font: 500 37px "Playfair Display", serif; letter-spacing: -3px; text-decoration: none; }
.topbar .logo span { color: var(--public-shell-accent); }
.topbar .header-actions { display: flex; align-items: center; gap: 10px; }
.language-switch select { border: 1px solid #d5d5d2; background: #fff; color: #171717; padding: 8px 6px; font: 700 10px 'DM Sans', sans-serif; letter-spacing: .08em; }
.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; }
.topbar .cart { width: 43px; height: 42px; display: flex; align-items: center; justify-content: center; background: var(--public-shell-accent); color: #fff; font-size: 25px; text-decoration: none; }
.mobile-nav { max-height: 0; overflow: hidden; display: flex; gap: 26px; align-items: center; justify-content: center; background: var(--public-shell-ink); transition: max-height .35s ease, padding .35s ease; position: relative; z-index: 19; }
.mobile-nav a { color: #fff; text-decoration: none; text-transform: uppercase; font-size: 10px; letter-spacing: .12em; }
.mobile-nav.is-open, body.nav-open .mobile-nav { max-height: 64px; padding: 22px 20px; }
footer { display: grid !important; grid-template-columns: 1.5fr 1fr 1.2fr 1.3fr; gap: 34px; margin: 0 !important; padding: 68px var(--public-shell-gutter) 26px !important; background: var(--public-shell-ink) !important; color: #fff !important; }
footer .footer-brand, footer .footer-column { min-width: 0; }
footer .footer-logo { color: #fff; font: 500 37px "Playfair Display", serif; letter-spacing: -3px; text-decoration: none; }
footer .footer-logo span { color: var(--public-shell-accent); }
footer p { max-width: 230px; color: #aaa; font-size: 12px; line-height: 1.55; }
footer strong { display: block; margin-bottom: 18px; color: #aaa; font-size: 9px; letter-spacing: .14em; }
footer a, footer span { color: #fff; text-decoration: none; font-size: 9px; letter-spacing: .12em; }
footer .footer-column { display: flex; flex-direction: column; gap: 12px; }
footer .footer-book { display: inline-flex; align-items: center; gap: 8px; color: #fff; border-bottom: 1px solid #fff; padding-bottom: 6px; }
footer .footer-book span { color: var(--public-shell-accent); }
footer .footer-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid #444; padding-top: 20px; margin-top: 28px; }
@media (max-width: 760px) { .topbar { height: 76px !important; padding-inline: 20px !important; }.topbar .logo { font-size: 30px; }.topbar .menu-button { padding-right: 12px; font-size: 11px; }.mobile-nav.is-open, body.nav-open .mobile-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; padding: 20px; max-height: 220px; } footer { grid-template-columns: 1fr 1fr; gap: 28px 20px; padding: 40px 20px 22px !important; } }
@media (max-width: 520px) { footer { grid-template-columns: 1fr; } footer .footer-bottom { align-items: flex-start; flex-direction: column; } }
@media (prefers-reduced-motion: reduce) { .mobile-nav { transition: none; } }
