/* ═══════════════════════════════════════════════════════════════
   SAMUI SPA — Soft layer
   Rounded "island" blocks, pill buttons & chips, filled inputs,
   glass header. Palette and fonts stay SAMUI (sand · dark · gold).
   Loaded last — overrides style.css and per-page styles.
═══════════════════════════════════════════════════════════════ */
:root {
  --r-sm: 12px;
  --r: 20px;
  --r-lg: 28px;
  --gutter: clamp(12px, 2vw, 20px);
  --surface: var(--sand-1);
  --surface-2: var(--sand-2);
  --dark-card: #241d15;
  --dark-card-2: #2c241a;
  --shadow-soft: 0 1px 2px rgba(28,22,16,.04), 0 8px 24px rgba(28,22,16,.06);
  --shadow-lg: 0 24px 80px rgba(28,22,16,.22);
}
body { background: var(--sand-0); }

/* ── TYPE: calmer UI labels (headings stay Cormorant) ───────── */
.eyebrow, .sd-eyebrow, .sidebar-label, .hsc-v2-cat, .smodal-cat, .mmodal-label, .prow-label, .cs-label {
  letter-spacing: .12em;
}
.gold-line { display: none; }

/* ── BUTTONS → pills ────────────────────────────────────────── */
.btn-gold, .btn-gold-sm, .btn-gold-outline, .btn-outline, .btn-outline-light, .btn-request,
.hero-btn, .section-btn:is(a,button), .sd-btn-primary, .sd-btn-outline, .cbtn, .smodal-add-btn, .psub-btn,
.mobile-nav-request, .ps-btn, .ps-btn-outline, .btn-checkout, .cpromo-btn, .scard-detail-btn,
.lead-form button, .cform button, .masters-callback-form button, .ccert-form button,
.ac-btns a, .vip-hero-btns a, .vip-cta-btns a, .mmodal-actions a, .mmodal-actions button,
.payment-result-btns a, #booking-modal-overlay button[type=submit], #cookie-banner button {
  border-radius: 999px !important;
  text-transform: none !important;
  letter-spacing: .01em !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  transition: transform .08s, background .15s, color .15s, border-color .15s, opacity .15s !important;
}
.btn-gold:active, .hero-btn:active, .btn-request:active, .sd-btn-primary:active, .cbtn:active,
.smodal-add-btn:active, .section-btn:active, .btn-outline:active { transform: scale(.97); }
.btn-gold, .btn-outline, .btn-outline-light, .btn-gold-outline, .hero-btn, .section-btn:is(a,button),
.sd-btn-primary, .sd-btn-outline, .smodal-add-btn {
  min-height: 48px; padding: 0 26px !important;
  display: inline-flex !important; align-items: center; justify-content: center; gap: 8px;
}
.btn-request { height: 40px; padding: 0 20px !important; font-size: 14px !important; }
.btn-gold-sm { padding: 8px 16px !important; font-size: 13px !important; }
.hero-btn-outline, .btn-outline-light {
  background: rgba(255,255,255,.12) !important; border-color: transparent !important; color: #fff !important;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.hero-btn-outline:hover, .btn-outline-light:hover { background: rgba(255,255,255,.22) !important; }
.btn-outline, .sd-btn-outline, .section-btn:is(a,button), .cbtn-out {
  border-color: transparent !important; background: var(--surface) !important; color: var(--dark) !important;
}
.btn-outline:hover, .sd-btn-outline:hover, .cbtn-out:hover { background: var(--surface-2) !important; }
.hs-v2 .section-btn:is(a,button), .hm-v2 .section-btn a, .hm-v2 .section-btn button, .hpr-v2-card a,
.hm-v2 .btn-outline, .hpr-v2 .btn-outline {
  background: rgba(255,255,255,.08) !important; color: var(--gold-2) !important; border-color: transparent !important;
  border-radius: 999px !important; text-transform: none !important; letter-spacing: .01em !important; font-size: 14px !important;
}
.hm-v2 .section-btn a:hover, .hpr-v2-card a:hover { background: rgba(255,255,255,.14) !important; }

/* icon-only buttons → circles */
.cart-btn, .hsc-v2-btn, .scard-cart-btn, .hsc-cart, .btn-add-to-cart, .smodal-close, .mmodal-close,
.home-smodal-close, .smodal-arr, .mobile-nav-close, .citem-rm, .ci-del {
  border-radius: 50% !important;
}
.cart-btn { width: 40px; height: 40px; background: var(--surface); display: grid !important; place-items: center; position: relative; }
.cart-btn:hover { background: var(--surface-2); }
.cart-count { border-radius: 999px !important; }
.scard-cart-btn, .hsc-v2-btn { border: 0 !important; background: var(--sand-0) !important; width: 40px !important; height: 40px !important; }
.scard-cart-btn:hover, .scard-cart-btn.added { background: var(--gold) !important; color: #fff !important; }
.hsc-v2-btn { background: rgba(255,255,255,.08) !important; }
.hsc-v2:hover .hsc-v2-btn { background: var(--gold) !important; color: #fff !important; }
.scard-detail-btn { height: 40px; padding: 0 14px !important; font-size: 13px !important; background: transparent; }
.scard-detail-btn:hover { background: var(--surface) !important; }

/* ── ANNOUNCE + HEADER (glass, pill nav) ────────────────────── */
.announce-bar { font-size: 13px; letter-spacing: .02em; text-transform: none; padding-block: 9px; }
.announce-bar span, .announce-bar a { text-transform: none; letter-spacing: .02em; font-size: 13px; }
.site-header {
  position: sticky; top: 0; z-index: 900;
  background: color-mix(in srgb, var(--sand-0) 84%, transparent) !important;
  backdrop-filter: saturate(180%) blur(18px); -webkit-backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 1px solid var(--sand-2);
  box-shadow: none !important;
}
.site-header .container { max-width: 1360px; padding-inline: clamp(16px, 3vw, 40px); height: 72px; min-height: 0; gap: 20px; }
.logo-img { max-height: 44px; width: auto; }
.main-nav { gap: 2px; flex-wrap: nowrap; }
.nav-link {
  text-transform: none !important; letter-spacing: 0 !important;
  font-size: 14px !important; font-weight: 500 !important; color: var(--dark-2) !important;
  padding: 8px 13px !important; border-radius: 999px; white-space: nowrap;
  transition: background .15s, color .15s;
}
.nav-link::after, .nav-link::before { display: none !important; }
.nav-link:hover { background: var(--surface); color: var(--dark) !important; }
.nav-link.active { background: var(--dark); color: var(--sand-0) !important; }
.header-actions { gap: 8px; }
.header-phone { font-size: 14px; font-weight: 500; white-space: nowrap; padding: 8px 12px; border-radius: 999px; }
.header-phone:hover { background: var(--surface); }
.burger-btn { width: 40px; height: 40px; border-radius: 50%; background: var(--surface); display: none; align-items: center; justify-content: center; flex-direction: column; gap: 4px; }
.burger-btn span { width: 16px !important; margin: 0 !important; }
@media (max-width: 1280px) { .header-phone { display: none !important; } }
@media (max-width: 1100px) { .burger-btn { display: flex !important; } }

/* mobile drawer */
.mobile-nav { border-radius: var(--r-lg) 0 0 var(--r-lg); }
.mobile-nav a:not(.mobile-nav-phone) { border-radius: var(--r-sm); padding-inline: 14px !important; text-transform: none; letter-spacing: 0; }
.mobile-nav a:not(.mobile-nav-phone):hover { background: rgba(176,141,90,.08); }
.mobile-nav-request { width: 100%; min-height: 48px; }
.mobile-nav-close { width: 40px; height: 40px; background: var(--surface) !important; display: grid; place-items: center; }

/* ── ISLAND BLOCKS: rounded full-bleed sections ─────────────── */
.hero, .hstats, .hs-v2, .hm-v2, .hcert-v2, .hpr-v2,
.catalog-hero, .sd-hero, .vip-hero, .ah, .masters-hero, .ph, .ch, .page-hero,
.vip-cta, .ac, .masters-callback, .psub, .ccert, .sd-related, .vip-includes, .masters-philosophy,
.av, .ap, .why, .hr-v2, .hcon {
  margin-inline: var(--gutter);
  border-radius: var(--r-lg);
  overflow: hidden;
  position: relative;
  isolation: isolate;
}
.hero, .catalog-hero, .sd-hero, .vip-hero, .ah, .masters-hero, .ph, .ch, .page-hero { margin-top: 12px; }
.hstats, .hs-v2, .hm-v2, .hcert-v2, .hpr-v2, .hr-v2, .hcon,
.vip-cta, .ac, .masters-callback, .psub, .ccert, .sd-related, .vip-includes, .masters-philosophy,
.av, .ap, .why { margin-top: 16px; }
.hero { height: min(86vh, 860px); min-height: 560px; }
.hstats + .hs-v2 { margin-top: 16px; }

/* hero details */
.hero-badge, .sd-hero-tag, .slide-promo-badge {
  border-radius: 999px !important; text-transform: none !important; letter-spacing: .02em !important;
  font-size: 13px !important; padding: 7px 16px !important;
  background: rgba(255,255,255,.12) !important; border-color: transparent !important;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.sd-hero-tag.hit { background: var(--gold) !important; color: #fff !important; }
.hero-prev, .hero-next, .slider-prev, .slider-next, .reviews-prev, .reviews-next {
  width: 48px !important; height: 48px !important; border-radius: 50% !important;
  background: rgba(255,255,255,.12) !important; border: 0 !important; color: #fff;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.hero-prev:hover, .hero-next:hover { background: rgba(255,255,255,.24) !important; }
.hero-dot, .slider-dot, .smodal-dot { border-radius: 999px !important; height: 6px !important; width: 6px; }
.hero-dot.active, .slider-dot.active, .smodal-dot.active { width: 22px !important; }
.hero-scroll { display: none; }

/* stats strip → 4 tiles */
.hstats { background: transparent !important; overflow: visible; }
.hstats-inner { gap: 12px; border: 0 !important; }
.hstat-item { background: var(--dark); border-radius: var(--r); border: 0 !important; padding: 40px 24px !important; }
.hstat-item::before { display: none; }

/* ── DARK GRIDS → rounded tiles ─────────────────────────────── */
.hs-v2-grid, .hpr-v2-inner { gap: 16px !important; background: transparent !important; }
.hs-v2 .container, .hm-v2 .container, .hr-v2 .container { max-width: 1280px; }
.hsc-v2 { background: var(--dark-card) !important; border-radius: var(--r); overflow: hidden; }
.hsc-v2:hover { background: var(--dark-card-2) !important; }
.hsc-v2-img { border-radius: 0; }
.hsc-v2 [class*=badge], .hsc-badge, .scard-badge, .scard-discount, .tag-bestseller, .tag-sale,
.prow-badge, .promo-badge, .promo-full-badge, .smodal-tag, .scard-tag, .cpromo-disc {
  border-radius: 999px !important;
}
.hpr-v2-inner { padding: 16px; }
.hpr-v2-card { background: var(--dark-card) !important; border-radius: var(--r); }
.hpr-v2-card:hover { background: var(--dark-card-2) !important; }
.hm-v2-track { gap: 12px; }
.hmc-v2 { border-radius: var(--r); overflow: hidden; }
.hmc-v2-photo { border-radius: var(--r); }
.hcert-v2-content .btn-gold, .hcert-v2-content .btn-outline-light { margin: 4px; }

/* light sections */
.hr-v2 { background: var(--sand-1) !important; }
.hrc-v2 { background: var(--sand-0) !important; border-radius: var(--r); border: 0 !important; padding: 32px !important; box-shadow: none; }
.hrc-v2:hover { box-shadow: var(--shadow-soft); }
.hr-v2-grid { gap: 16px !important; }
.hcon { background: var(--sand-1) !important; border: 0 !important; }
.hcon-map, .cmap-wrap, .contacts-home-map { border-radius: var(--r); overflow: hidden; }
.hcon-social, .cmsg-link, .social-link {
  border-radius: 999px !important; border-color: transparent !important; background: var(--sand-0) !important;
  text-transform: none !important; letter-spacing: .01em !important;
}
.social-link { background: rgba(255,255,255,.06) !important; width: 40px; height: 40px; display: grid !important; place-items: center; }
.hcon-social:hover, .cmsg-link:hover { background: var(--sand-2) !important; }

/* about teaser */
.ha-v2-photo-main, .ha-v2-photo-sec, .as-photo-main, .as-photo-sec, .vip-about-photo-main, .vip-about-photo-sec,
.about-img-main, .about-img-secondary { border-radius: var(--r-lg); overflow: hidden; }
.ha-v2-photo-sec, .as-photo-sec, .vip-about-photo-sec { border: 6px solid var(--sand-0) !important; }
.ha-v2-tag, .about-stat-badge { border-radius: var(--r); }
.ha-stats, .as-stats { border-color: var(--sand-2) !important; }

/* gallery strip */
.hgallery-item, .gallery-item, .gallery-grid > * { border-radius: var(--r); overflow: hidden; }
.hgallery-track { gap: 12px; }

/* ── CATALOG ────────────────────────────────────────────────── */
.catalog-hero { background: var(--sand-1) !important; }
.category-tabs { background: transparent !important; border: 0 !important; position: sticky; top: 72px; z-index: 50; }
.category-tabs-inner { gap: 8px; padding-block: 16px; border: 0 !important; }
.tab-btn, .filter-btn, .cat-btn, .dtab, .ctbtn, .smodal-tag, .scard-meta-item {
  text-transform: none !important; letter-spacing: 0 !important;
}
.tab-btn {
  height: 40px; padding: 0 18px !important; border-radius: 999px !important; border: 0 !important;
  background: var(--surface) !important; color: var(--dark-2) !important;
  font-size: 14px !important; font-weight: 500 !important; white-space: nowrap;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}
.tab-btn:hover { background: var(--surface-2) !important; }
.tab-btn.active { background: var(--dark) !important; color: var(--sand-0) !important; }
.tab-btn.active svg { color: var(--gold-2); }
.tab-btn::after, .tab-btn::before { display: none !important; }
.catalog-sidebar-v2 .sidebar-block { background: var(--surface); border-radius: var(--r); padding: 20px; margin-bottom: 12px; border: 0; }
.sidebar-divider { display: none; }
.filter-list { display: flex !important; flex-wrap: wrap; gap: 6px; }
.filter-btn {
  width: auto !important; display: inline-flex !important; align-items: center; gap: 6px; border-radius: 999px !important; padding: 7px 14px !important;
  background: var(--sand-0) !important; font-size: 13px !important; border: 0 !important;
}
.filter-btn:hover { background: var(--sand-2) !important; }
.filter-btn.active { background: var(--dark) !important; color: var(--sand-0) !important; }
.filter-btn.active::after { display: none !important; }
.sidebar-cta, .sidebar-cert-cta { border-radius: var(--r); }
.catalog-toolbar-v2 { border: 0 !important; }
.sort-select select, .sort-select {
  border-radius: 999px !important;
}
.sort-select select { height: 40px; padding: 0 36px 0 16px !important; background-color: var(--surface) !important; border: 0 !important; font-size: 14px !important; }
.catalog-grid-v2 { gap: 16px !important; background: transparent !important; }
.scard {
  border-radius: var(--r) !important; overflow: hidden; border: 0 !important;
  background: var(--surface) !important; box-shadow: none !important;
  transition: background .15s, box-shadow .2s, transform .2s !important;
}
.scard:hover { background: #fff !important; box-shadow: var(--shadow-soft) !important; transform: translateY(-2px); }
.scard-img { border-radius: var(--r) var(--r) 0 0; }
.scard-footer { border-color: var(--sand-2) !important; }
.catalog-empty-v2 { border-radius: var(--r); background: var(--surface); }

/* product/service modal */
.smodal, .mmodal, .mmodal-inner { border-radius: var(--r-lg) !important; overflow: hidden; }
.smodal-img, .mmodal-img { border-radius: 0; }
.smodal-close, .mmodal-close, .home-smodal-close {
  width: 40px !important; height: 40px !important; background: rgba(255,255,255,.9) !important; color: var(--dark) !important;
  display: grid !important; place-items: center; border: 0 !important;
}
.smodal-includes { border-radius: var(--r); background: var(--surface); padding: 16px 18px !important; border: 0 !important; }

/* ── SERVICE DETAIL ─────────────────────────────────────────── */
.sd-gallery-strip { gap: 8px; padding: 12px var(--gutter) 0; }
.sd-thumb-item { border-radius: var(--r-sm); overflow: hidden; }
.sd-price-card, .sd-info-card, .sd-contact-card { border-radius: var(--r-lg) !important; border: 0 !important; }
.sd-price-card::before, .sd-price-card::after { display: none !important; }
.sd-info-card, .sd-contact-card { background: var(--surface) !important; }
.sd-include-item, .sd-info-row { border-color: var(--sand-2) !important; }
.sd-await-item { border-radius: var(--r); }
.sd-sidebar { gap: 12px; display: flex; flex-direction: column; }
.sd-sidebar > * { margin-bottom: 0 !important; }
.sd-btn-primary, .sd-btn-outline { width: 100%; min-height: 54px; }
.sd-related-grid { gap: 16px !important; background: transparent !important; }
.sd-rel-card { border-radius: var(--r); overflow: hidden; background: var(--dark-card) !important; }
.sd-rel-card:hover { background: var(--dark-card-2) !important; }

/* ── MASTERS / PROMO / VIP / ABOUT / CONTACTS ───────────────── */
.masters-grid-v2, .promotions-grid, .vip-occasions-grid, .av-grid, .ap-steps, .why-grid, .masters-philosophy-inner {
  gap: 16px !important;
}
.mcard, .ocard, .avcard, .apstep, .why-item, .philosophy-item, .promo-full-card, .promo-card, .vip-inc-item,
.cinfo-block, .payment-result-card, .review-card, .faq-item {
  border-radius: var(--r) !important; overflow: hidden;
}
.mcard, .ocard, .avcard, .apstep, .why-item, .vip-inc-item {
  border: 0 !important; background: var(--surface) !important;
}
.mcard:hover, .ocard:hover, .apstep:hover, .why-item:hover { background: #fff !important; box-shadow: var(--shadow-soft); }
.mcard-photo { border-radius: var(--r) var(--r) 0 0; }
.vip-includes-list { gap: 12px !important; background: transparent !important; }
.pl { display: flex; flex-direction: column; gap: 16px; padding-bottom: 0 !important; }
.prow { margin-inline: var(--gutter); gap: 16px !important; background: transparent !important; margin-bottom: 0 !important; border: 0 !important; }
.prow-img { border-radius: var(--r-lg); overflow: hidden; }
.prow-body { background: var(--surface); border-radius: var(--r-lg); }
.faq-item { background: var(--surface); margin-bottom: 8px; border: 0 !important; padding-inline: 20px; }
.masters-callback-form-wrap, .cform-wrap, .clegal, .ccert-result { border-radius: var(--r-lg) !important; }
.cinfo-block { background: var(--surface); padding: 18px 20px !important; margin-bottom: 10px; border: 0 !important; }
.cinfo-icon, .contact-icon, .hcon-icon, .philosophy-icon, .ocard-icon, .why-ic, .apstep-icon, .vip-inc-icon, .sd-include-icon {
  border-radius: 50% !important;
}

/* ── CART ───────────────────────────────────────────────────── */
.cbox { border-radius: var(--r-lg) !important; border: 0 !important; background: var(--surface) !important; }
.citem { border-color: var(--sand-2) !important; }
.citem-img { border-radius: var(--r-sm); overflow: hidden; }
.cqty, .ci-ctrl { border-radius: 999px !important; background: var(--surface); border: 0 !important; overflow: hidden; }
.cqty button, .ci-q { border-radius: 50% !important; border: 0 !important; }
.dtab, .cpack-item, .cs-radio-box { border-radius: var(--r) !important; }
.ctoggle { border-radius: 999px; background: var(--surface); padding: 4px; border: 0 !important; gap: 4px; display: inline-flex; }
.ctbtn { border-radius: 999px !important; border: 0 !important; }
.ctbtn.on { background: var(--dark) !important; color: var(--sand-0) !important; }
.cstep-n { border-radius: 50% !important; }
.cart-empty, .csuccess-box, .cpromo-box { border-radius: var(--r-lg) !important; }

/* ── FORMS: filled, rounded ─────────────────────────────────── */
.cf-in, .cs-input, .cform-input, .cform-textarea, .mcf-input, .psub-input, .ccert-input, .lead-form input,
#booking-modal-overlay input[type=text], #booking-modal-overlay input[type=tel], #booking-modal-overlay select {
  border-radius: 14px !important;
  border: 1.5px solid transparent !important;
  background: var(--surface) !important;
  min-height: 52px;
  padding-inline: 16px !important;
  font-size: 15px !important;
  transition: border-color .15s, background .15s;
}
.cform-textarea { padding-block: 14px !important; }
.cf-in:focus, .cs-input:focus, .cform-input:focus, .cform-textarea:focus, .mcf-input:focus, .psub-input:focus,
.ccert-input:focus, #booking-modal-overlay input:focus, #booking-modal-overlay select:focus {
  outline: none; border-color: var(--gold) !important; background: var(--sand-0) !important;
}
.cf-phone { border-radius: 14px; overflow: hidden; }
.cf-prefix { border-radius: 14px 0 0 14px; border: 0 !important; }
.cf-phone .cf-in { border-radius: 0 14px 14px 0 !important; }
.masters-callback-form-wrap .mcf-input, .footer-lead input { background: rgba(255,255,255,.06) !important; color: #fff; }
.lead-form input { background: rgba(255,255,255,.06) !important; }
.lead-form input:focus { background: rgba(255,255,255,.1) !important; }
.lead-form { gap: 10px !important; }

/* booking modal (inline styles in base.html) */
#booking-modal-overlay > div { border-radius: var(--r-lg) !important; padding: 36px 32px !important; box-shadow: var(--shadow-lg) !important; }
#booking-modal-overlay > div > button:first-child {
  width: 40px; height: 40px; border-radius: 50% !important; background: var(--surface) !important;
  display: grid; place-items: center; font-size: 15px !important;
}
#booking-modal-overlay form > div { border-radius: 14px; overflow: hidden; background: var(--surface); }
#booking-modal-overlay form > div > span { border: 0 !important; background: var(--sand-2) !important; display: flex; align-items: center; }
#booking-modal-overlay form > div > input { border-radius: 0 !important; }
#booking-modal-overlay button[type=submit] { min-height: 52px; }

/* cookie banner → floating card */
#cookie-banner {
  left: 12px !important; right: 12px !important; bottom: 12px !important;
  border-radius: var(--r) !important; border: 0 !important;
  box-shadow: var(--shadow-lg); max-width: 1100px; margin-inline: auto;
}

/* ── FOOTER ─────────────────────────────────────────────────── */
.site-footer { margin: 16px var(--gutter) var(--gutter); border-radius: var(--r-lg); overflow: hidden; }
.footer-col h4, .footer-col h3 { letter-spacing: .1em; }
.footer-col ul li { margin-bottom: 4px; }
.footer-col ul li a { line-height: 1.5; }
.float-chat { border-radius: 50% !important; }

/* toasts */
.toast { border-radius: 999px !important; }

/* ── MOBILE ─────────────────────────────────────────────────── */
@media (max-width: 768px) {
  :root { --r-lg: 22px; --r: 18px; }
  .site-header .container { height: 60px; }
  .category-tabs { top: 60px; }
  .hero { height: 78vh; min-height: 520px; }
  .hero-btns { gap: 10px !important; }
  .hero-btn { width: 100%; }
  .hstats-inner { gap: 8px; }
  .hstat-item { padding: 28px 12px !important; }
  .hs-v2, .hm-v2, .hr-v2, .hcon, .sd-related, .vip-includes, .masters-philosophy { padding-block: 56px !important; }
  .hpr-v2-inner { padding: 8px; gap: 8px !important; }
  .hsc-v2-img { border-radius: 0; }
  .announce-bar { font-size: 11.5px; padding-block: 7px; }
  #booking-modal-overlay { align-items: flex-end !important; padding: 8px !important; }
  #booking-modal-overlay > div { padding: 28px 20px !important; }
  .footer-top .container { padding-inline: 20px; }
}

/* home gallery slider (inline-styled markup) */
#gal-track > div { border-radius: var(--r) !important; }
#gal-track ~ button { border-radius: 50% !important; background: rgba(28,22,16,.55) !important; backdrop-filter: blur(8px); }
#gal-dots button { border-radius: 999px !important; }
.gal-modal-img, #gal-modal img { border-radius: var(--r-lg); }

/* ── DARK SECTIONS: keep tiles and fields dark ──────────────── */
:is(.av, .ac, .vip-includes, .masters-philosophy, .sd-related, .psub, .hs-v2, .hm-v2, .hpr-v2, .hcert-v2)
  :is(.avcard, .vip-inc-item, .philosophy-item, .ocard, .mcard, .why-item, .apstep) {
  background: rgba(255,255,255,.05) !important;
}
:is(.av, .ac, .vip-includes, .masters-philosophy, .sd-related, .psub, .hs-v2, .hm-v2, .hpr-v2)
  :is(.avcard, .vip-inc-item, .philosophy-item):hover { background: rgba(255,255,255,.09) !important; }
.psub-input, .site-footer input, .lead-form input, .masters-callback-form-wrap .mcf-input {
  background: rgba(255,255,255,.07) !important; color: #fff !important; border-color: transparent !important;
}
.psub-input:focus, .site-footer input:focus, .lead-form input:focus {
  background: rgba(255,255,255,.12) !important; border-color: var(--gold) !important;
}
.psub-btn { border-color: transparent !important; background: var(--gold) !important; color: #fff !important; min-height: 52px; }
.psub-btn:hover { background: var(--gold-2) !important; }

/* master card: booking button below the details */
.mcard-body { display: flex; flex-direction: column; gap: 6px; }
.mcard-body > button, .mcard-body > .mcard-spec, .mcard-body > .mcard-exp { order: 2; }
.mcard-body > button { order: 3; margin-top: 12px !important; }
.mcard-body > button, [onclick*="openBookingModal"]:not(.btn-gold):not(.sd-btn-primary):not(.hero-btn) {
  border-radius: 999px !important; border: 0 !important; background: var(--sand-2) !important;
  text-transform: none !important; letter-spacing: 0 !important; font-size: 14px !important;
  font-weight: 500 !important; padding: 12px 18px !important; color: var(--dark) !important;
}
.mcard-body > button:hover { background: var(--gold) !important; color: #fff !important; }

/* primary button = solid gold (was an outline that vanished on dark) */
.btn-gold, .btn-gold-sm {
  background: var(--gold) !important; color: #fff !important; border-color: transparent !important;
}
.btn-gold:hover, .btn-gold-sm:hover { background: var(--gold-2) !important; color: #fff !important; }
.btn-gold-outline {
  background: transparent !important; border: 1px solid var(--gold) !important; color: var(--gold) !important;
}
.btn-gold-outline:hover { background: var(--gold) !important; color: #fff !important; }

/* equal master cards, button pinned to the bottom */
.mcard { display: flex; flex-direction: column; }
.mcard-body { flex: 1; }
.mcard-body > button { margin-top: auto !important; }

/* promo rows: buttons keep their natural width */
.prow-body :is(a, button) { width: auto !important; display: inline-flex !important; }

/* cart advantages: tiles on their own background, no hairlines */
.why-item { background: var(--sand-0) !important; border: 0 !important; padding: 24px !important; }
.why-item::before, .why-item::after { display: none !important; }
.cart-empty { background: var(--surface); padding: 56px 24px !important; }

/* page headers: the original hero files were never uploaded — use real photos */
.page-hero { background-size: cover; background-position: center; }
.page-hero--gallery    { background-image: url('/static/images/gallery/A7C03640.jpg') !important; }
.page-hero--about      { background-image: url('/static/images/about/interior1.jpg') !important; }
.page-hero--catalog    { background-image: url('/static/images/gallery/A7C03626.jpg') !important; }
.page-hero--masters    { background-image: url('/static/images/gallery/A7C03672.jpg') !important; }
.page-hero--promotions { background-image: url('/static/images/gallery/A7C03694.jpg') !important; }
.page-hero--contacts   { background-image: url('/static/images/about/interior2.jpg') !important; }
.page-hero--vip        { background-image: url('/static/images/vip/vip1.jpg') !important; }

/* ── TOUCH TARGETS (mobile) ─────────────────────────────────── */
@media (max-width: 768px) {
  .footer-col ul li a, .footer-bottom-links a, .footer-contacts a,
  .hcon-detail a, .contact-detail a, .cinfo-val a, .announce-bar a, .breadcrumb a {
    display: inline-block; padding-block: 7px;
  }
  .footer-col ul li { margin-bottom: 0; }
  .mobile-nav-close { width: 44px !important; height: 44px !important; }
  /* slider dots: keep the dot small, make the hit area finger-sized */
  #gal-dots button, .hero-dot, .slider-dot, .smodal-dot { position: relative; }
  #gal-dots button::after, .hero-dot::after, .slider-dot::after, .smodal-dot::after {
    content: ''; position: absolute; inset: -14px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   HOME — second pass: readability and rhythm
═══════════════════════════════════════════════════════════════ */

/* ── HERO: one readable column on the left ──────────────────── */
.hero { height: min(88vh, 880px); }
.hero-slide-overlay {
  background:
    linear-gradient(90deg, rgba(15,12,7,.88) 0%, rgba(15,12,7,.62) 42%, rgba(15,12,7,.22) 100%),
    linear-gradient(to top, rgba(15,12,7,.65) 0%, transparent 42%) !important;
}
.hero-slide-content { text-align: left !important; }
.hero-slide-inner, .hero-slide-left { align-items: flex-start !important; }
.hero-slide-left { max-width: 760px; }
.hero-badge { margin-bottom: 20px !important; font-size: 12px !important; }
.hero-title { font-size: clamp(2.6rem, 5.4vw, 5rem) !important; margin-bottom: 18px !important; text-wrap: balance; }
.hero-sub {
  text-align: left !important; font-size: 17px !important; line-height: 1.65 !important;
  color: rgba(255,255,255,.88) !important; max-width: 52ch; margin-bottom: 32px !important;
}
.hero-btns { justify-content: flex-start !important; }
.hero-btn { min-height: 52px; font-size: 15px !important; }
/* a single slide needs no arrows or dots */
.hero:has(.hero-slide:only-child) :is(.hero-prev, .hero-next, .hero-dots) { display: none !important; }
.hero-prev { left: 24px !important; }
.hero-next { right: 24px !important; }

/* ── SECTION HEADERS: left-aligned, readable sub ────────────── */
.section-header { text-align: left !important; margin-bottom: 40px !important; max-width: none; }
.section-title { font-size: clamp(2rem, 3.6vw, 3rem) !important; letter-spacing: -.01em; }
.section-sub {
  margin: 12px 0 0 !important; max-width: 56ch; font-size: 16px !important; line-height: 1.6 !important;
}
.hs-v2 .section-sub, .hm-v2 .section-sub, .hcert-v2 .section-sub {
  color: rgba(255,255,255,.68) !important;
}
.eyebrow { font-size: 12px !important; margin-bottom: 14px !important; }

/* CTA of a section sits top-right, next to its heading */
@media (min-width: 900px) {
  .hm-v2 .container, .hs-v2 .container { position: relative; }
  .hm-v2 .section-btn, .hs-v2 .section-btn { position: absolute; top: 4px; right: 0; margin: 0 !important; }
}

/* ── STATS ──────────────────────────────────────────────────── */
.hstat-num { font-size: clamp(2.4rem, 3.6vw, 3.4rem) !important; }
.hstat-label {
  color: rgba(255,255,255,.62) !important; font-size: 12px !important;
  letter-spacing: .08em !important; line-height: 1.5 !important; margin-top: 8px;
}

/* ── PROGRAM CARDS ──────────────────────────────────────────── */
.hsc-v2 { transition: background .2s, transform .2s, box-shadow .2s !important; }
.hsc-v2:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.hsc-v2-body { padding: 32px 30px !important; gap: 10px; }
.hsc-v2-cat { font-size: 12px !important; letter-spacing: .1em !important; margin-bottom: 10px !important; }
.hsc-v2-name { font-size: clamp(1.35rem, 2vw, 1.7rem) !important; margin-bottom: 10px !important; }
.hsc-v2-desc {
  font-size: 14px !important; font-weight: 400 !important; line-height: 1.6 !important;
  color: rgba(255,255,255,.62) !important; margin-bottom: 20px !important;
}
.hsc-v2-foot { padding-top: 18px !important; border-top-color: rgba(255,255,255,.12) !important; gap: 12px; }
.hsc-v2-price { font-size: 1.8rem !important; }
.hsc-v2-dur {
  font-size: 12px !important; letter-spacing: .04em !important; text-transform: none !important;
  color: rgba(255,255,255,.55) !important;
}
.hsc-badge {
  font-size: 11px !important; letter-spacing: .06em !important; padding: 6px 12px !important;
  background: rgba(15,12,7,.72) !important; color: var(--gold-2) !important;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}

/* ── MASTERS STRIP ──────────────────────────────────────────── */
.hmc-v2-overlay {
  background: linear-gradient(to top, rgba(15,12,7,.92) 0%, rgba(15,12,7,.45) 45%, transparent 75%) !important;
}
.hmc-v2-name { font-size: 1.2rem !important; }
.hmc-v2-spec {
  font-size: 12px !important; letter-spacing: .06em !important;
  color: var(--gold-2) !important; opacity: 1 !important;
}

/* ── PROMO TILES ────────────────────────────────────────────── */
.hpr-v2-num { opacity: .12 !important; font-size: 4rem !important; }
.hpr-v2-label { font-size: 12px !important; letter-spacing: .1em !important; }
.hpr-v2-title { font-size: 1.4rem !important; }
.hpr-v2-text {
  font-size: 14px !important; line-height: 1.6 !important;
  color: rgba(255,255,255,.62) !important; font-weight: 400 !important;
}
.hpr-v2-card { padding: 40px 36px !important; }

/* ── REVIEWS ────────────────────────────────────────────────── */
.hrc-v2-text { font-size: 16px !important; line-height: 1.65 !important; color: var(--dark-2) !important; }
.hrc-v2-author { font-size: 13px !important; letter-spacing: .06em !important; }
.hrc-v2-service { font-size: 12px !important; letter-spacing: .04em !important; text-transform: none !important; }
.hrc-v2-stars { color: var(--gold) !important; letter-spacing: 2px; }

/* ── CERTIFICATE BANNER ─────────────────────────────────────── */
.hcert-v2 { min-height: 420px !important; }
.hcert-v2-content h2 { font-size: clamp(2.2rem, 4vw, 3.4rem) !important; }
.hcert-v2-content p { font-size: 16px !important; line-height: 1.6 !important; color: rgba(255,255,255,.72) !important; max-width: 46ch; }

/* ── CONTACTS ───────────────────────────────────────────────── */
.hcon-detail span, .hcon-detail a { font-size: 15px !important; }
.hcon-detail strong { font-size: 12px !important; letter-spacing: .08em !important; }

@media (max-width: 768px) {
  .hero-title { font-size: clamp(2.1rem, 9vw, 3rem) !important; }
  .hero-sub { font-size: 16px !important; margin-bottom: 26px !important; }
  .hero-btn { width: 100%; }
  .section-header { margin-bottom: 28px !important; }
  .hsc-v2-body { padding: 24px 20px !important; }
  .hpr-v2-card { padding: 28px 22px !important; }
}

/* hero: anchor the copy to the bottom-left, like a poster */
.hero-slide { align-items: flex-end !important; }
.hero-slide-content { padding-bottom: clamp(48px, 7vh, 84px); }
.hero-badge { background: rgba(255,255,255,.14) !important; color: #fff !important; }
/* gallery strip on the home page */
#gal-track > div { border-radius: var(--r) !important; }
.hsc-badge { border-radius: 999px !important; }

/* secondary pill: visible on both sand tones */
.btn-outline, .sd-btn-outline, .cbtn-out, .section-btn:is(a, button) {
  background: transparent !important;
  border: 1px solid var(--sand-3) !important;
  color: var(--dark) !important;
}
.btn-outline:hover, .sd-btn-outline:hover, .cbtn-out:hover, .section-btn:is(a, button):hover {
  background: var(--sand-2) !important; border-color: var(--sand-4) !important;
}
:is(.hs-v2, .hm-v2, .hpr-v2, .hcert-v2, .av, .ac, .vip-includes, .masters-philosophy, .sd-related, .psub) .btn-outline {
  border-color: rgba(255,255,255,.22) !important; color: var(--gold-2) !important;
}
:is(.hs-v2, .hm-v2, .hpr-v2, .hcert-v2, .av, .ac, .vip-includes, .masters-philosophy, .sd-related, .psub) .btn-outline:hover {
  background: rgba(255,255,255,.1) !important; border-color: var(--gold) !important;
}

/* floating chat buttons must not sit on top of the hero CTAs */
@media (max-width: 768px) {
  .float-chat { transform: scale(.88); }
  .float-chat:first-of-type { bottom: 148px !important; }
}

/* ── MESSENGER DOCK ─────────────────────────────────────────── */
.chat-dock {
  position: fixed; right: 20px; bottom: 20px; z-index: 999;
  display: flex; flex-direction: column; gap: 10px; align-items: flex-end;
}
.chat-dock a { width: 48px !important; height: 48px !important; box-shadow: 0 6px 20px rgba(28,22,16,.22) !important; }
@media (max-width: 768px) {
  .chat-dock { right: 14px; bottom: 14px; }
  .chat-dock a { width: 44px !important; height: 44px !important; }
  body:has(#cookie-banner[style*="display: flex"]) .chat-dock { bottom: 176px; }
}

/* ── VERTICAL RHYTHM: one spacing scale for every home section ─ */
.hs-v2, .hm-v2, .hr-v2, .hcon, .hs, .hm, .hr, .hfaq, .ha-v2, .section {
  padding-block: 96px !important;
}
.hpr-v2 { padding-block: 16px !important; }
.hcert-v2 { padding-block: 72px !important; }
@media (max-width: 900px) {
  .hs-v2, .hm-v2, .hr-v2, .hcon, .hs, .hm, .hr, .hfaq, .ha-v2, .section { padding-block: 56px !important; }
  .hcert-v2 { padding-block: 48px !important; }
}

/* reviews: a quiet quotation mark instead of a plain card */
.hrc-v2 { position: relative; padding-top: 36px !important; }
.hrc-v2::before {
  content: '“'; position: absolute; top: 6px; left: 28px;
  font-family: var(--font-serif); font-size: 4rem; line-height: 1;
  color: var(--gold); opacity: .3;
}
.hrc-v2-stars { position: relative; }

/* dock stays out of the way until the first screen is scrolled past */
.chat-dock { opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity .25s, transform .25s; }
.chat-dock.is-on { opacity: 1; pointer-events: auto; transform: none; }
