/* Shared web system. Source grid: original Hero, 1920px with 3.2vw gutters. */
:root {
  --site-width:1920px; --site-gutter:clamp(20px,3.2vw,64px);
  --brand-red:#DD2023; --brand-deep-red:#B1191C; --ink:#121212; --muted:#626262; --paper:#F5F5F5;
  --radius-sm:8px; --radius-md:16px; --radius-lg:24px; --radius-pill:999px;
  --section-xl:clamp(64px,7vw,112px); --section-l:clamp(48px,5vw,80px); --section-m:clamp(32px,3.5vw,56px); --section-s:24px;
  --type-display:clamp(64px,8.3vw,155px); --type-h1:clamp(48px,6vw,96px); --type-h2:clamp(38px,4.8vw,76px); --type-h3:clamp(22px,2vw,30px);
  --type-lead:clamp(18px,1.5vw,24px); --type-body:clamp(16px,1.1vw,18px); --type-small:14px; --type-caption:12px; --type-button:16px;
  --line-display:.95; --line-heading:1.12; --line-body:1.5; --line-ui:1.3;
  --weight-regular:400; --weight-medium:500; --weight-bold:700; --weight-display:900;
  --membership-red:var(--brand-red);
}
*,*::before,*::after { box-sizing:border-box; }
body { color:var(--ink); }
.site-container.site-container { width:100%; max-width:var(--site-width); margin-inline:auto; padding-inline:var(--site-gutter); }
.wh-hero .wc-header.site-container { max-width:var(--site-width); padding-inline:var(--site-gutter); }
.wh-controls.site-container { padding-inline:var(--site-gutter); }
:is(.wc-directions-route,.wct,.wc-numbers-block,.features-block,.wc-memberships,.wc-gallery,.wc-tour,.wc-faq) { padding-inline:0; padding-block:var(--section-l); margin-block:0; }
.wc-numbers-block .numbers.site-container { padding-block:0; }
.wc-contacts__wrapper { padding-inline:0; }
.wc-numbers-block,.features-block,.wc-tour,.wc-faq,.wc-contacts__wrapper { width:100%; max-width:none; }
.wc-numbers-block { font-family:var(--t-text-font); }
.features-block__background { display:none; }
.features-block { background:var(--paper); }
.hp-footer { padding:0; }
.hp-footer__container.site-container { padding-block:var(--section-m); }
.hp-footer__social:empty,.hp-footer__divider:first-of-type { display:none; }
.wh-actions { margin-top:28px; }
.wh-description { margin-bottom:0; }
.wh-title { font-size:var(--type-display); }
:is(.wc-directions-route__title,.wct-title,.numbers h2,.features-block__title,.wc-section__title,.wc-gallery__title,.wc-tour__title,.wc-faq__title,.wc-contacts__title) { font-size:var(--type-h2); line-height:var(--line-display); }
:is(.wc-memberships,.wc-membership-quiz) :is(h3,button,input,label,p,small,strong,li,span) { font-family:var(--t-text-font)!important; font-style:normal!important; }
.wc-membership-card__title { font-size:var(--type-h3); line-height:var(--line-heading); font-weight:var(--weight-bold); text-transform:none; }
:is(.wc-direction-card__name,.wct-name) { font-family:var(--t-text-font)!important; font-style:normal!important; font-weight:var(--weight-bold)!important; line-height:var(--line-heading); }
body .wc-directions-route .wc-direction-card__name,body .wct .wct-name { font-family:var(--t-text-font)!important; font-style:normal!important; font-weight:var(--weight-bold)!important; line-height:var(--line-heading); }
body .wc-directions-route .wc-direction-card__name { font-size:var(--type-h3); text-transform:none; }
.wc-memberships { --membership-red:var(--brand-red); }
.wc-gallery__image-wrap,.wc-gallery__item.is-active,.wc-tour__form-card,.wc-tour__image,.wc-tour__chip { box-shadow:none; }
.wc-tour__chip,.wc-tour__time-option { border-radius:var(--radius-md); }
.wc-tour__time-option { padding-inline:16px; }
.wc-contacts .wc-contacts__btn { min-height:52px; padding:14px 24px; }
:is(.wc-section__subtitle,.wc-tour__description,.numbers-subtitle,.wct-sub) { font-size:var(--type-lead); line-height:var(--line-body); }
.wc-direction-card__overlay { background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.12) 30%,rgba(0,0,0,.6)); }
.wc-direction-card:hover .wc-direction-card__overlay { background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.22) 30%,rgba(0,0,0,.65)); }
.wc-direction-card__image { object-fit:cover; object-position:center; }
.wc-direction-card--personal .wc-direction-card__image { object-position:50% 30%; }
.wc-direction-card__text,.wc-direction-card__tag { opacity:1!important; transform:none!important; visibility:visible!important; }
.wc-direction-card__tag { letter-spacing:.03em; }
.wc-directions-route__petal { width:clamp(80px,9vw,150px); opacity:.5; }
.wc-direction-card,.features-block__card,.wc-membership-card,.wc-tour__form-card,.wc-tour__image,.wc-gallery__image-wrap { border-radius:var(--radius-lg); }
.wc-memberships__tabs { display:flex; overflow-x:auto; gap:12px; scroll-snap-type:x mandatory; scrollbar-width:thin; touch-action:pan-x pan-y; }
.wc-memberships__tab { flex:1 0 220px; min-height:64px; padding:10px 18px; gap:12px; border-radius:var(--radius-md); box-shadow:none!important; scroll-snap-align:start; }
.wc-memberships__tab-icon { width:40px; height:40px; flex-basis:40px; }
.wc-membership-card { min-height:0; box-shadow:none; border:1px solid #dedede; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); }
.wc-membership-card__content { padding:clamp(20px,2.2vw,36px); }
.wc-membership-card__badges { margin-bottom:16px; }
.wc-membership-card__badge { border-radius:var(--radius-pill); }
.wc-membership-card__description { margin:12px 0 16px; font-size:var(--type-body); }
.wc-membership-card__features { margin-bottom:20px; gap:0 20px; }
.wc-membership-card__feature { min-height:48px; padding:9px 0; font-size:var(--type-small); line-height:var(--line-ui); }
.wc-membership-card__actions { display:block; }
.wc-membership-card__visual { min-height:0; }
.wc-membership-card__image { object-fit:contain; background:#eee; min-height:0; max-height:560px; pointer-events:none; }
.wc-membership-card__cta { position:relative; isolation:isolate; width:min(100%,360px); overflow:hidden; box-shadow:0 10px 26px rgba(221,32,35,.2); animation:membership-cta-pulse 3.8s ease-in-out infinite; }
.wc-membership-card__cta::after { content:""; position:absolute; z-index:1; inset:-40% auto -40% -45%; width:34%; transform:skewX(-18deg) translateX(-260%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent); animation:membership-cta-shine 3.8s ease-in-out infinite; pointer-events:none; }
.wc-membership-card__cta:hover { box-shadow:0 12px 30px rgba(177,25,28,.28); }
@keyframes membership-cta-pulse { 0%,72%,100% { box-shadow:0 10px 26px rgba(221,32,35,.2); } 82% { box-shadow:0 12px 34px rgba(221,32,35,.38); } }
@keyframes membership-cta-shine { 0%,68% { transform:skewX(-18deg) translateX(-260%); } 86%,100% { transform:skewX(-18deg) translateX(620%); } }
.wh-spa-announcement { max-width:none; border-radius:0; min-height:0; height:auto; margin:0; padding:0; }
.wh-spa-announcement__content.site-container { width:100%; min-width:0; padding-block:36px; min-height:320px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.wh-spa-announcement h2.wh-spa-announcement__title { font-size:clamp(48px,5vw,76px); line-height:1; margin:0 0 16px; }
.wh-spa-announcement__text { max-width:600px; font-size:var(--type-body); line-height:var(--line-body); }
.wh-spa-announcement__kicker { font-size:var(--type-small); color:#fff; letter-spacing:.04em; }
.wh-spa-announcement__kicker span { background:var(--brand-red); box-shadow:none; }
.wh-spa-announcement__actions { margin-top:20px; }
.wh-spa-announcement::before { background:linear-gradient(90deg,rgba(0,0,0,.85),rgba(0,0,0,.65) 40%,rgba(0,0,0,.08) 85%); }
.wc-gallery__header { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.gallery-tour-link { order:2; flex-shrink:0; }
button.wc-gallery__image-wrap { width:100%; border:0; padding:0; text-align:left; color:#fff; font:inherit; cursor:zoom-in; }
.wc-gallery__caption,.wc-gallery__caption-heading,.wc-gallery__caption-title,.wc-gallery__caption-text { display:block; }
.wc-tour__image { object-fit:cover; object-position:50% 45%; }
.wc-contacts__map-section.site-container { height:auto; padding-block:0 var(--section-l); background:transparent; }
.wc-contacts__map-section.site-container { filter:none; animation:none; border-top:0; }
.wc-contacts__map-section iframe { display:block; width:100%; height:clamp(320px,40vw,520px); border:0; border-radius:var(--radius-md); }
.site-faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 40px; margin-top:32px; }
.site-faq { border-top:1px solid #d7d7d7; padding:20px 0; }
.site-faq summary { cursor:pointer; font-size:var(--type-lead); font-weight:var(--weight-medium); line-height:var(--line-ui); padding-right:24px; }
.site-faq summary::marker { color:var(--brand-red); }
.site-faq p { font-size:var(--type-body); line-height:var(--line-body); color:var(--muted); margin:16px 0 0; }
.site-button,:is(.wh-button,.wc-button,.wc-membership-card__button,.wc-tour__button,.wc-contacts__btn,.features-block__cta-btn,.features-block__bottom-cta-btn) { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:52px; padding:14px 24px; border-radius:var(--radius-sm); font:var(--weight-bold) var(--type-button)/var(--line-ui) var(--t-text-font)!important; text-decoration:none; text-align:center; box-shadow:none; cursor:pointer; transition:background .2s,color .2s; }
.site-button--primary,.wh-button--primary,.wc-button--header,.wc-membership-card__button--primary,.wc-tour__button,.wc-contacts__btn--primary { background:var(--brand-red); color:white; border:1px solid var(--brand-red); }
.site-button--primary:hover,.wh-button--primary:hover,.wc-button--header:hover,.wc-membership-card__button--primary:hover,.wc-tour__button:hover { background:var(--brand-deep-red); }
.site-button--secondary { background:var(--paper); border:1px solid #d6d6d6; color:var(--ink); }
.site-button--outline { background:transparent; border:1px solid currentColor; color:inherit; }
.site-button--ghost { background:transparent; border:1px solid transparent; color:var(--brand-red); }
.site-button--text { min-height:44px; padding-inline:0; background:none; color:var(--brand-red); text-decoration:underline; }
.site-button:hover { filter:brightness(.93); }
.site-button:active { transform:translateY(1px); }
button:disabled { opacity:.55; cursor:wait; }
:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--brand-red); outline-offset:5px; }
.inner-hero { padding-block:var(--section-l); }
.inner-hero h1 { font:italic var(--weight-display) var(--type-h1)/var(--line-display) var(--t-headline-font); margin:16px 0; }
.site-lead { font-size:var(--type-lead); line-height:var(--line-body); max-width:840px; }
.text-media { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; padding-block:var(--section-l); }
.text-media h2 { font-size:var(--type-h2); margin:0 0 24px; }
.text-media p { font-size:var(--type-body); line-height:var(--line-body); }
.text-media img { width:100%; border-radius:var(--radius-lg); }
.text-media--reverse img { order:-1; }
@media(max-width:1024px) {
 .wc-membership-card { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }
 .wc-membership-card__features { grid-template-columns:1fr; }
 .wc-membership-card__actions { grid-template-columns:1fr; }
 .wh-spa-announcement__text { max-width:540px; }
}
@media(max-width:768px) {
 .wc-header__actions .wc-button--header { min-height:40px; padding:10px 12px; font-size:12px!important; }
 .wc-header__actions { min-width:0; gap:8px; }
 .wc-header__toggle { min-width:44px; padding-inline:10px; }
 .wc-membership-card { grid-template-columns:1fr; }
 .wc-membership-card__visual { order:-1; height:230px; }
 .wc-membership-card__image { height:230px; width:100%; object-fit:contain; }
 .wc-membership-card__content { display:flex; padding:20px; }
 .wc-membership-card__visual { min-height:0; }
 .wc-membership-card__badges,.wc-membership-card__title,.wc-membership-card__description,.wc-membership-card__features,.wc-membership-card__actions { padding-inline:0; }
 .wc-membership-card__features { grid-template-columns:1fr 1fr; }
 .wc-membership-card__actions { grid-template-columns:1fr 1fr; }
 .wc-gallery__header { align-items:flex-start; flex-direction:column; }
 .site-faq-grid,.text-media { grid-template-columns:1fr; }
 .wh-spa-announcement__content.site-container { padding-block:32px; min-height:340px; }
 .wh-spa-announcement__text { max-width:90%; }
 .wh-spa-announcement::before { background:linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.5)); }
 .wc-direction-card__text { font-size:16px; }
}
@media(max-width:430px) {
 .wc-membership-card__features,.wc-membership-card__actions { grid-template-columns:1fr; }
 .wc-membership-card__feature { min-height:44px; }
 .wc-memberships__tab { flex-basis:210px; }
 .wc-membership-card__badge { font-size:11px; }
 .wh-spa-announcement h2.wh-spa-announcement__title { font-size:48px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
