:root{--site-content-width:1180px;--site-gutter:44px}
body>.site-header{position:sticky;top:0;z-index:40;background:var(--paper);box-shadow:0 4px 18px #24463908;width:100%;max-width:calc(var(--site-content-width) + 2 * var(--site-gutter));padding-inline:var(--site-gutter);margin-inline:auto}
body .container{width:min(var(--site-content-width),calc(100% - 2 * var(--site-gutter)));margin-inline:auto}
.site-integrated{min-height:100svh;display:flex;flex-direction:column}
.site-integrated>.site-header,.site-integrated>footer{flex-shrink:0}
.site-integrated>main{flex:1}
.site-integrated>.customer-login,.site-integrated>.booking-page{width:min(var(--site-content-width),calc(100% - 2 * var(--site-gutter)));max-width:none;min-height:0;margin:48px auto 64px;padding:0;justify-content:flex-start}
.site-integrated>main>.portal-card{border:1px solid var(--line);border-radius:20px;background:var(--paper);padding:32px;box-shadow:0 12px 42px #15332608}
.site-integrated>.customer-login>.portal-card{width:100%;max-width:620px;margin-inline:auto}
.site-integrated>main [hidden]{display:none!important}
.site-integrated .site-header .brand{margin:0}
.site-integrated>.site-header nav a[aria-current=page]{text-decoration:underline;text-underline-offset:5px}
@media(max-width:760px){:root{--site-gutter:20px}}
@media(max-width:600px){.site-integrated>.customer-login,.site-integrated>.booking-page{margin:28px auto 40px}.site-integrated>main>.portal-card{padding:24px 20px}}

.site-header .header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-shrink:0;margin-left:auto}
.site-header .header-actions .button{white-space:nowrap}
@media(max-width:1050px){body>.site-header{flex-wrap:wrap}.site-header nav{order:3;width:100%;justify-content:center}.site-header .header-actions{order:2}}
@media(max-width:760px){.site-header .header-actions .button{font-size:12px;padding:8px 15px}.site-header nav{justify-content:space-between}}

.site-header .header-contact{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.site-header .header-contact:hover{background:#183c2d;color:var(--paper)}
/* A quiet, spacious masthead becomes a compact surface while reading. */
body>.site-header{padding-block:28px;background:var(--paper);box-shadow:none;border-radius:0;transition:padding .3s cubic-bezier(.22,1,.36,1),background-color .3s ease,box-shadow .3s ease,border-radius .3s ease,border-color .3s ease}
.site-header .brand img{transition:width .3s ease,height .3s ease;flex-shrink:0}
.site-header .brand small{max-height:20px;opacity:1;overflow:hidden;transition:max-height .3s ease,opacity .2s ease}
.site-header .header-actions .button{border-radius:9px;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease}
.site-header .header-contact{box-shadow:0 3px 10px #24463914}
.site-header .header-contact:hover{transform:translateY(-1px);box-shadow:0 5px 14px #24463926}
body>.site-header.is-scrolled{padding-block:13px;background:rgba(251,250,246,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:#dfe3d880;border-radius:0 0 18px 18px;box-shadow:0 8px 28px #24463914}
.site-header.is-scrolled .brand img{width:34px;height:34px}
.site-header.is-scrolled .brand small{max-height:0;opacity:0}
@media(max-width:760px){body>.site-header{padding-block:20px;gap:14px}body>.site-header.is-scrolled{padding-block:11px}.site-header.is-scrolled .brand img{width:30px;height:30px}}
@media(prefers-reduced-motion:reduce){body>.site-header,.site-header .brand img,.site-header .brand small,.site-header .header-actions .button{transition:none}.site-header .header-contact:hover{transform:none}}
/* Catalog cards stay still; only their cover moves within the padded image area. */
.product-card:hover{translate:none;box-shadow:none;border-color:#e3e5da}
.product-card .text-link:hover{translate:none}
.product-card .product-image{overflow:hidden}
.product-card .product-image img{transform:rotate(-3deg);transition:none}
@media(prefers-reduced-motion:no-preference){
 .product-card .product-image img{transition:transform .38s cubic-bezier(.22,1,.36,1)}
 .product-card:focus-within .product-image img{transform:translateY(-3px) rotate(0) scale(1.035)}
 @media(hover:hover) and (pointer:fine){.product-card:hover .product-image img{transform:translateY(-3px) rotate(0) scale(1.035)}}
}
/* Articles without a cover keep a clean text-only presentation. */
.article-card:hover{translate:none;box-shadow:none;border-color:transparent}
.article-card .text-link:hover{translate:none}
.article-card .article-image img{transform:scale(1);transition:none}
.article-card h3 a{transition:color .2s ease}
@media(prefers-reduced-motion:no-preference){
 .article-card .article-image img{transition:transform .4s cubic-bezier(.22,1,.36,1)}
 .article-card:focus-within .article-image img{transform:scale(1.035)}
 @media(hover:hover) and (pointer:fine){.article-card:hover .article-image img{transform:scale(1.035)}}
}
@media(prefers-reduced-motion:reduce){.article-card h3 a{transition:none}}

/* Initial/restored geometry is applied without replaying the scroll animation. */
html:not(.header-motion-ready) body>.site-header,html:not(.header-motion-ready) .site-header .brand img,html:not(.header-motion-ready) .site-header .brand small{transition:none}
.site-header [data-header-account]{min-width:132px;justify-content:center}
@view-transition{navigation:auto}
body>.site-header{view-transition-name:site-header}
body>footer{view-transition-name:site-footer}
::view-transition-group(site-header),::view-transition-group(site-footer){animation:none}
::view-transition-old(site-header),::view-transition-old(site-footer){display:none}
::view-transition-new(site-header),::view-transition-new(site-footer){animation:none;mix-blend-mode:normal}
::view-transition-old(root){animation:none;opacity:0}
::view-transition-new(root){animation:site-content-arrive .12s ease-out}
@keyframes site-content-arrive{from{opacity:.85}to{opacity:1}}
@media(max-width:760px){.site-header [data-header-account]{min-width:122px}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-new(root){animation:none}}

/* Shared navigation: centered desktop links, compact mobile disclosure. */
body>.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:24px}
.site-header>.brand{grid-column:1;grid-row:1;justify-self:start}
.header-menu{display:contents}
.site-header .header-menu nav{grid-column:2;grid-row:1;width:auto;justify-content:center;flex-wrap:nowrap;gap:24px;white-space:nowrap}
.site-header .header-actions{grid-column:3;grid-row:1;margin:0 54px 0 0;justify-self:end}
.header-tools{grid-column:3;grid-row:1;justify-self:end;display:flex;align-items:center;gap:10px}
.header-menu-toggle{display:none;width:42px;height:42px;padding:10px;border:1px solid #cbd4c2;border-radius:50%;background:#edf1e6;color:#294435;cursor:pointer}
.header-menu-toggle svg{display:block;width:100%;height:100%;transition:transform .2s ease}
.header-menu-toggle[aria-expanded=true]{background:#294435;color:#fafbf6}
.header-menu-toggle[aria-expanded=true] svg{transform:rotate(90deg)}
.header-menu-toggle:focus-visible{outline:3px solid #809574;outline-offset:3px}
footer .footer-legal{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;padding-top:30px;margin-top:30px;border-top:1px solid #d9dfcc;font-size:12px;line-height:1.6;color:var(--muted)}
.footer-legal a{text-decoration:none;text-underline-offset:4px;transition:color .2s ease}
.footer-legal a:hover,.footer-legal a:focus-visible{color:var(--ink);text-decoration:underline}
footer .footer-bottom{border-top:0;margin-top:0;padding-top:18px;padding-bottom:28px}
@media(max-width:1150px){
 body>.site-header{grid-template-columns:minmax(0,1fr) auto;column-gap:12px}
 .header-tools{grid-column:2}
 .header-menu-toggle{display:grid;place-items:center}
 .site-header .header-menu{display:none;position:absolute;top:calc(100% + 8px);right:var(--site-gutter);width:min(340px,calc(100vw - 40px));max-height:calc(100dvh - 110px);overflow:auto;padding:18px;border:1px solid #dce3d5;border-radius:20px;background:#fafbf6;box-shadow:0 18px 50px #29443524}
 .site-header.menu-open .header-menu{display:grid;gap:18px;animation:header-menu-enter .2s ease-out}
 .site-header .header-menu nav{display:grid;grid-column:auto;grid-row:auto;justify-content:stretch;gap:4px;font-size:16px;width:100%;order:initial}
 .header-menu nav a{padding:12px 14px;border-radius:10px}
 .header-menu nav a:hover,.header-menu nav a[aria-current]{background:#edf1e6;text-decoration:none}
 .site-header .header-menu .header-actions{display:grid;grid-template-columns:1fr 1fr;grid-column:auto;grid-row:auto;justify-self:stretch;margin:0;padding-top:18px;border-top:1px solid #dce3d5;gap:10px}
 .site-header .header-actions .button{min-width:0;justify-content:center;padding:12px 10px;font-size:13px}
 .site-header .brand{font-size:18px;gap:9px;min-width:0}
 .site-header .brand small{font-size:10px}
 .site-header .brand img{width:34px;height:34px}
 .header-tools .cart-toggle{width:42px;height:42px}
}
@media(max-width:380px){body>.site-header{padding-inline:14px}.site-header .brand{font-size:16px}.header-tools{gap:7px}.site-header .brand img{width:28px;height:28px}}
@keyframes header-menu-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.site-header.menu-open .header-menu{animation:none}.header-menu-toggle svg{transition:none}}

/* Keep reCAPTCHA active; its disclosure is rendered in the shared footer. */
.grecaptcha-badge{visibility:hidden}
.recaptcha-disclosure{margin:10px 0 0;font-size:12px;line-height:1.5;color:inherit}
