/* ==========================================================================
   Venues NSW MindBody - Main Stylesheet

   Table of Contents:
   1. CSS Custom Properties (Variables)
   2. Base Styles / Reset
   3. Typography
   4. Layout Components
   5. Navigation Components
   6. Form Components
   7. Button Components
   8. Widget Components
   9. Footer Components
   10. Utility Classes
   ========================================================================== */

/* ==========================================================================
   1. CSS Custom Properties (Variables)
   ========================================================================== */
:root {
  /* Colors */
  --color-primary: #151f6d;
  --color-secondary: #162166;
  --color-accent: #2d3a8c;
  --color-text: #1a1a2e;
  --color-text-muted: #6b7280;
  --color-background-light: #f5f6fa;
  --color-background-white: #fff;
  --color-error: #d30f09;
  --color-border: #e5e7eb;

  /* Spacing */
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 32px;

  /* Layout */
  --container-max-width: 420px;
  --container-padding: 16px;

  /* Typography */
  --font-family-primary: "Monument Grotesk", sans-serif;
  --font-family-secondary: "Roboto", sans-serif;
  --font-size-base: 15px;
  --font-size-small: 13px;
  --font-size-h1: 28px;
  --font-size-h3: 20px;
  --line-height-base: 1.5;

  /* Borders & Radius */
  --border-radius-medium: 8px;
  --border-radius-pill: 100px;

  /* Transitions */
  --transition-base: all 0.2s ease;

  /* Shadows */
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08);
  --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.1);
  --shadow-focus: 0 0 0 3px rgba(21, 31, 109, 0.2);
}

/* ==========================================================================
   2. Base Styles / Reset
   ========================================================================== */
* {
  box-sizing: border-box;
}

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-family-secondary);
  color: var(--color-text);
  font-size: var(--font-size-base);
  letter-spacing: -0.01em;
  line-height: var(--line-height-base);
  margin: 0;
  padding: 0;
  background-color: #f0f1f5;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ==========================================================================
   3. Typography
   ========================================================================== */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-family-primary);
  margin: 0 0 var(--spacing-md) 0;
  line-height: 1.25;
  color: var(--color-text);
}

h1,
.heading-primary {
  font-size: var(--font-size-h1);
  font-weight: 700;
  word-wrap: break-word;
}

h3,
.heading-tertiary {
  font-size: var(--font-size-h3);
  font-weight: 700;
  word-wrap: break-word;
}

p {
  margin-bottom: 1rem;
}

p:last-child {
  margin-bottom: 0;
}

a {
  color: var(--color-primary);
  text-decoration: none;
  transition: var(--transition-base);
}

a:hover {
  color: var(--color-accent);
  text-decoration: none;
}

/* ==========================================================================
   4. Layout Components
   ========================================================================== */
.container {
  width: 100%;
  max-width: var(--container-max-width);
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
  margin: 0 auto;
}

.page {
  width: 100%;
  max-width: var(--container-max-width);
  margin: 0 auto;
  background-color: var(--color-background-white);
  height: 100vh;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 0 40px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.main {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.section {
  padding: var(--spacing-xl) 0;
  overflow-x: hidden;
}

/* ==========================================================================
   5. Navigation Components
   ========================================================================== */

/* Header */
.page > .header {
  background: linear-gradient(
    135deg,
    var(--color-primary) 0%,
    var(--color-secondary) 100%
  );
  padding: 12px 0;
  flex-shrink: 0;
}

.page > .header .header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.page > .header img {
  height: 44px;
  width: auto;
}

.logo {
  display: block;
}

/* Header Nav Trigger Button */
.nav-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: rgba(255, 255, 255, 0.15);
  border: 1.5px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--border-radius-pill);
  color: #fff;
  font-family: var(--font-family-secondary);
  font-size: var(--font-size-small);
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-base);
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
}

.nav-trigger:hover,
.nav-trigger:focus-visible {
  background: rgba(255, 255, 255, 0.25);
  border-color: rgba(255, 255, 255, 0.5);
}

.nav-trigger:active {
  transform: scale(0.96);
}

.nav-trigger-icon {
  display: block;
  flex-shrink: 0;
}

/* Navigation Drawer - Backdrop */
.nav-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  z-index: 998;
  pointer-events: none;
  transition: background 0.3s ease;
}

.nav-drawer-backdrop.active {
  background: rgba(0, 0, 0, 0.5);
  pointer-events: auto;
}

/* Body scroll lock when drawer is open */
body.overflow-hidden {
  position: fixed;
  width: 100%;
  overflow: hidden;
}

/* Navigation Drawer - Full Screen Overlay */
.nav-drawer {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  background: var(--color-background-white);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.25s ease,
    visibility 0.25s ease;
  max-width: var(--container-max-width);
  margin: 0 auto;
}

.nav-drawer.active {
  opacity: 1;
  visibility: visible;
}

/* Drawer Handle - hidden for fullscreen */
.nav-drawer-handle {
  display: none;
}

/* Drawer Header */
.nav-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px 12px;
  flex-shrink: 0;
}

.nav-drawer-title {
  font-family: var(--font-family-primary);
  font-size: 18px;
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
}

.nav-drawer-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: var(--color-background-light);
  border-radius: 50%;
  color: var(--color-text-muted);
  cursor: pointer;
  transition: var(--transition-base);
  -webkit-tap-highlight-color: transparent;
}

.nav-drawer-close:hover,
.nav-drawer-close:focus-visible {
  background: var(--color-border);
  color: var(--color-text);
}

/* Drawer Body */
.nav-drawer-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 0 20px 24px;
}

/* Drawer Groups */
.nav-drawer-group {
  margin-bottom: 16px;
}

.nav-drawer-group:last-child {
  margin-bottom: 0;
}

.nav-drawer-group-title {
  font-family: var(--font-family-secondary);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-text-muted);
  margin: 0 0 4px 4px;
  line-height: 1;
}

/* Drawer Link List */
.nav-drawer-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-drawer-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border-radius: var(--border-radius-medium);
  text-decoration: none;
  color: var(--color-text);
  font-family: var(--font-family-secondary);
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  transition: var(--transition-base);
  -webkit-tap-highlight-color: transparent;
}

.nav-drawer-link:hover {
  background: var(--color-background-light);
  color: var(--color-text);
  text-decoration: none;
}

.nav-drawer-link:active {
  transform: scale(0.98);
}

.nav-drawer-link.is-active {
  background: var(--color-primary);
  color: #fff;
}

.nav-drawer-link-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  background: rgba(21, 31, 109, 0.08);
  border-radius: 8px;
  color: var(--color-primary);
  transition: var(--transition-base);
}

.nav-drawer-link:hover .nav-drawer-link-icon {
  background: rgba(21, 31, 109, 0.12);
}

.nav-drawer-link.is-active .nav-drawer-link-icon {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}

/* Navigation Icons (CSS mask-image, no inline SVGs) */
.nav-drawer-link-icon:before,
.icon-close:before {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background-color: currentcolor;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.icon-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.icon-close:before {
  width: 20px;
  height: 20px;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
}
.icon-calendar:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M200-80q-33%200-56.5-23.5T120-160v-560q0-33%2023.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33%200%2056.5%2023.5T840-720v560q0%2033-23.5%2056.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0%200v-80%2080Zm280%20240q-17%200-28.5-11.5T440-440q0-17%2011.5-28.5T480-480q17%200%2028.5%2011.5T520-440q0%2017-11.5%2028.5T480-400Zm-188.5-11.5Q280-423%20280-440t11.5-28.5Q303-480%20320-480t28.5%2011.5Q360-457%20360-440t-11.5%2028.5Q337-400%20320-400t-28.5-11.5ZM640-400q-17%200-28.5-11.5T600-440q0-17%2011.5-28.5T640-480q17%200%2028.5%2011.5T680-440q0%2017-11.5%2028.5T640-400ZM480-240q-17%200-28.5-11.5T440-280q0-17%2011.5-28.5T480-320q17%200%2028.5%2011.5T520-280q0%2017-11.5%2028.5T480-240Zm-188.5-11.5Q280-263%20280-280t11.5-28.5Q303-320%20320-320t28.5%2011.5Q360-297%20360-280t-11.5%2028.5Q337-240%20320-240t-28.5-11.5ZM640-240q-17%200-28.5-11.5T600-280q0-17%2011.5-28.5T640-320q17%200%2028.5%2011.5T680-280q0%2017-11.5%2028.5T640-240Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M200-80q-33%200-56.5-23.5T120-160v-560q0-33%2023.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33%200%2056.5%2023.5T840-720v560q0%2033-23.5%2056.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0%200v-80%2080Zm280%20240q-17%200-28.5-11.5T440-440q0-17%2011.5-28.5T480-480q17%200%2028.5%2011.5T520-440q0%2017-11.5%2028.5T480-400Zm-188.5-11.5Q280-423%20280-440t11.5-28.5Q303-480%20320-480t28.5%2011.5Q360-457%20360-440t-11.5%2028.5Q337-400%20320-400t-28.5-11.5ZM640-400q-17%200-28.5-11.5T600-440q0-17%2011.5-28.5T640-480q17%200%2028.5%2011.5T680-440q0%2017-11.5%2028.5T640-400ZM480-240q-17%200-28.5-11.5T440-280q0-17%2011.5-28.5T480-320q17%200%2028.5%2011.5T520-280q0%2017-11.5%2028.5T480-240Zm-188.5-11.5Q280-263%20280-280t11.5-28.5Q303-320%20320-320t28.5%2011.5Q360-297%20360-280t-11.5%2028.5Q337-240%20320-240t-28.5-11.5ZM640-240q-17%200-28.5-11.5T600-280q0-17%2011.5-28.5T640-320q17%200%2028.5%2011.5T680-280q0%2017-11.5%2028.5T640-240Z'/%3E%3C/svg%3E");
}
.icon-yoga:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M272-160q-30%200-51-21t-21-51q0-21%2012-39.5t32-26.5l156-62v-90q-54%2063-125.5%2096.5T120-320v-80q68%200%20123.5-28T344-508l54-64q12-14%2028-21t34-7h40q18%200%2034%207t28%2021l54%2064q45%2052%20100.5%2080T840-400v80q-83%200-154.5-33.5T560-450v90l156%2062q20%208%2032%2026.5t12%2039.5q0%2030-21%2051t-51%2021H400v-20q0-26%2017-43t43-17h120q9%200%2014.5-5.5T600-260q0-9-5.5-14.5T580-280H460q-42%200-71%2029t-29%2071v20h-88Zm151.5-503.5Q400-687%20400-720t23.5-56.5Q447-800%20480-800t56.5%2023.5Q560-753%20560-720t-23.5%2056.5Q513-640%20480-640t-56.5-23.5Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M272-160q-30%200-51-21t-21-51q0-21%2012-39.5t32-26.5l156-62v-90q-54%2063-125.5%2096.5T120-320v-80q68%200%20123.5-28T344-508l54-64q12-14%2028-21t34-7h40q18%200%2034%207t28%2021l54%2064q45%2052%20100.5%2080T840-400v80q-83%200-154.5-33.5T560-450v90l156%2062q20%208%2032%2026.5t12%2039.5q0%2030-21%2051t-51%2021H400v-20q0-26%2017-43t43-17h120q9%200%2014.5-5.5T600-260q0-9-5.5-14.5T580-280H460q-42%200-71%2029t-29%2071v20h-88Zm151.5-503.5Q400-687%20400-720t23.5-56.5Q447-800%20480-800t56.5%2023.5Q560-753%20560-720t-23.5%2056.5Q513-640%20480-640t-56.5-23.5Z'/%3E%3C/svg%3E");
}
.icon-pilates:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M481-276ZM120-160v-160q0-83%2058.5-141.5T320-520h429q38%200%2064.5%2026t26.5%2064q0%2031-19%2055.5T773-342l-93%2027v155q0%2021-9.5%2038T645-94q-16%2011-35%2013.5T571-86l-189-74H120Zm480-120H375q-7%200-10.5%204t-4.5%209q-1%205%201.5%209.5t8.5%206.5l230%2091v-120Zm-400%2040h84q-2-6-3-12t-1-13q0-39%2028-67t67-28h163l214-59q5-2%207-5t1-7q-1-4-3.5-6.5T749-440H320q-50%200-85%2035t-35%2085v80Zm87-367q-47-47-47-113t47-113q47-47%20113-47t113%2047q47%2047%2047%20113t-47%20113q-47%2047-113%2047t-113-47Zm169.5-56.5Q480-687%20480-720t-23.5-56.5Q433-800%20400-800t-56.5%2023.5Q320-753%20320-720t23.5%2056.5Q367-640%20400-640t56.5-23.5ZM481-276Zm-81-444Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M481-276ZM120-160v-160q0-83%2058.5-141.5T320-520h429q38%200%2064.5%2026t26.5%2064q0%2031-19%2055.5T773-342l-93%2027v155q0%2021-9.5%2038T645-94q-16%2011-35%2013.5T571-86l-189-74H120Zm480-120H375q-7%200-10.5%204t-4.5%209q-1%205%201.5%209.5t8.5%206.5l230%2091v-120Zm-400%2040h84q-2-6-3-12t-1-13q0-39%2028-67t67-28h163l214-59q5-2%207-5t1-7q-1-4-3.5-6.5T749-440H320q-50%200-85%2035t-35%2085v80Zm87-367q-47-47-47-113t47-113q47-47%20113-47t113%2047q47%2047%2047%20113t-47%20113q-47%2047-113%2047t-113-47Zm169.5-56.5Q480-687%20480-720t-23.5-56.5Q433-800%20400-800t-56.5%2023.5Q320-753%20320-720t23.5%2056.5Q367-640%20400-640t56.5-23.5ZM481-276Zm-81-444Z'/%3E%3C/svg%3E");
}
.icon-cycle:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M200-80q-83%200-141.5-58.5T0-280q0-83%2058.5-141.5T200-480q83%200%20141.5%2058.5T400-280q0%2083-58.5%20141.5T200-80Zm85-115q35-35%2035-85t-35-85q-35-35-85-35t-85%2035q-35%2035-35%2085t35%2085q35%2035%2085%2035t85-35Zm155-5v-200L312-512q-12-11-18-25.5t-6-30.5q0-16%206.5-30.5T312-624l112-112q12-12%2027.5-18t32.5-6q17%200%2032.5%206t27.5%2018l76%2076q28%2028%2064%2044t76%2016v80q-57%200-108.5-22T560-604l-32-32-96%2096%2088%2092v248h-80Zm123.5-563.5Q540-787%20540-820t23.5-56.5Q587-900%20620-900t56.5%2023.5Q700-853%20700-820t-23.5%2056.5Q653-740%20620-740t-56.5-23.5ZM760-80q-83%200-141.5-58.5T560-280q0-83%2058.5-141.5T760-480q83%200%20141.5%2058.5T960-280q0%2083-58.5%20141.5T760-80Zm85-115q35-35%2035-85t-35-85q-35-35-85-35t-85%2035q-35%2035-35%2085t35%2085q35%2035%2085%2035t85-35Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M200-80q-83%200-141.5-58.5T0-280q0-83%2058.5-141.5T200-480q83%200%20141.5%2058.5T400-280q0%2083-58.5%20141.5T200-80Zm85-115q35-35%2035-85t-35-85q-35-35-85-35t-85%2035q-35%2035-35%2085t35%2085q35%2035%2085%2035t85-35Zm155-5v-200L312-512q-12-11-18-25.5t-6-30.5q0-16%206.5-30.5T312-624l112-112q12-12%2027.5-18t32.5-6q17%200%2032.5%206t27.5%2018l76%2076q28%2028%2064%2044t76%2016v80q-57%200-108.5-22T560-604l-32-32-96%2096%2088%2092v248h-80Zm123.5-563.5Q540-787%20540-820t23.5-56.5Q587-900%20620-900t56.5%2023.5Q700-853%20700-820t-23.5%2056.5Q653-740%20620-740t-56.5-23.5ZM760-80q-83%200-141.5-58.5T560-280q0-83%2058.5-141.5T760-480q83%200%20141.5%2058.5T960-280q0%2083-58.5%20141.5T760-80Zm85-115q35-35%2035-85t-35-85q-35-35-85-35t-85%2035q-35%2035-35%2085t35%2085q35%2035%2085%2035t85-35Z'/%3E%3C/svg%3E");
}
.icon-hiit:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='m422-232%20207-248H469l29-227-185%20267h139l-30%20208ZM320-80l40-280H160l360-520h80l-40%20320h240L400-80h-80Zm151-390Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='m422-232%20207-248H469l29-227-185%20267h139l-30%20208ZM320-80l40-280H160l360-520h80l-40%20320h240L400-80h-80Zm151-390Z'/%3E%3C/svg%3E");
}
.icon-boxing:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M320-120q-17%200-28.5-11.5T280-160v-120h400v120q0%2017-11.5%2028.5T640-120H320Zm440-520v120q0%203-2%208l-30%20152q-3%2018-16.5%2029T680-320H280q-18%200-31.5-11T232-360l-30-152q-2-5-2-8v-240q0-33%2023.5-56.5T280-840h320q33%200%2056.5%2023.5T680-760v120q0-17%2011.5-28.5T720-680q17%200%2028.5%2011.5T760-640ZM306-400h348l26-136v-24h-80v-200H280v224l26%20136Zm14-160h240v-120H320v120Zm160-20Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M320-120q-17%200-28.5-11.5T280-160v-120h400v120q0%2017-11.5%2028.5T640-120H320Zm440-520v120q0%203-2%208l-30%20152q-3%2018-16.5%2029T680-320H280q-18%200-31.5-11T232-360l-30-152q-2-5-2-8v-240q0-33%2023.5-56.5T280-840h320q33%200%2056.5%2023.5T680-760v120q0-17%2011.5-28.5T720-680q17%200%2028.5%2011.5T760-640ZM306-400h348l26-136v-24h-80v-200H280v224l26%20136Zm14-160h240v-120H320v120Zm160-20Z'/%3E%3C/svg%3E");
}
.icon-waves:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M80-146v-78q29%200%2049.5-9t41.5-19.5q21-10.5%2046.5-19t63-8.5q37.5%200%2062%208.5t45.5%2019q21%2010.5%2042%2019.5t50%209q29%200%2050-9t42-19.5q21-10.5%2046-19t62.5-8.5q37.5%200%2062.5%208.5t46%2019q21%2010.5%2042%2019.5t49%209v78q-38%200-63.5-9T770-174.5q-21-10.5-41-19t-49-8.5q-28%200-48.5%208.5t-41%2019Q570-164%20544.5-155t-64.5%209q-39%200-64.5-9t-46-19.5Q349-185%20329-193.5t-48.5-8.5q-28.5%200-49%208.5t-41.5%2019Q169-164%20143.5-155T80-146Zm0-178v-78q29%200%2049.5-9t41.5-19.5q21-10.5%2046.5-19t63-8.5q37.5%200%2062%208.5t45.5%2019q21%2010.5%2042%2019.5t50%209q29%200%2050-9t42-19.5q21-10.5%2046-19t62-8.5q38%200%2063%208.5t46%2019q21%2010.5%2042%2019.5t49%209v78q-38%200-63.5-9T770-352.5q-21-10.5-41-19t-49-8.5q-29%200-49.5%208.5t-41%2019Q569-342%20544-333t-64%209q-39%200-64.5-9t-46-19.5Q349-363%20329-371.5t-48.5-8.5q-28.5%200-49%208.5t-41.5%2019Q169-342%20143.5-333T80-324Zm0-178v-78q29%200%2049.5-9t41.5-19.5q21-10.5%2046.5-19t63-8.5q37.5%200%2062%208.5t45.5%2019q21%2010.5%2042%2019.5t50%209q29%200%2050-9t42-19.5q21-10.5%2046-19t62-8.5q38%200%2063%208.5t46%2019q21%2010.5%2042%2019.5t49%209v78q-38%200-63.5-9T770-530.5q-21-10.5-41-19t-49-8.5q-28%200-48.5%208.5t-41%2019Q570-520%20544.5-511t-64.5%209q-39%200-64.5-9t-46-19.5Q349-541%20329-549.5t-48.5-8.5q-28.5%200-49%208.5t-41.5%2019Q169-520%20143.5-511T80-502Zm0-178v-78q29%200%2049.5-9t41.5-19.5q21-10.5%2046.5-19t63-8.5q37.5%200%2062%208.5t45.5%2019q21%2010.5%2042%2019.5t50%209q29%200%2050-9t42-19.5q21-10.5%2046-19t62-8.5q38%200%2063%208.5t46%2019q21%2010.5%2042%2019.5t49%209v78q-38%200-63.5-9T770-708.5q-21-10.5-41-19t-49-8.5q-28%200-48.5%208.5t-41%2019Q570-698%20544.5-689t-64.5%209q-39%200-64.5-9t-46-19.5Q349-719%20329-727.5t-48.5-8.5q-28.5%200-49%208.5t-41.5%2019Q169-698%20143.5-689T80-680Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M80-146v-78q29%200%2049.5-9t41.5-19.5q21-10.5%2046.5-19t63-8.5q37.5%200%2062%208.5t45.5%2019q21%2010.5%2042%2019.5t50%209q29%200%2050-9t42-19.5q21-10.5%2046-19t62.5-8.5q37.5%200%2062.5%208.5t46%2019q21%2010.5%2042%2019.5t49%209v78q-38%200-63.5-9T770-174.5q-21-10.5-41-19t-49-8.5q-28%200-48.5%208.5t-41%2019Q570-164%20544.5-155t-64.5%209q-39%200-64.5-9t-46-19.5Q349-185%20329-193.5t-48.5-8.5q-28.5%200-49%208.5t-41.5%2019Q169-164%20143.5-155T80-146Zm0-178v-78q29%200%2049.5-9t41.5-19.5q21-10.5%2046.5-19t63-8.5q37.5%200%2062%208.5t45.5%2019q21%2010.5%2042%2019.5t50%209q29%200%2050-9t42-19.5q21-10.5%2046-19t62-8.5q38%200%2063%208.5t46%2019q21%2010.5%2042%2019.5t49%209v78q-38%200-63.5-9T770-352.5q-21-10.5-41-19t-49-8.5q-29%200-49.5%208.5t-41%2019Q569-342%20544-333t-64%209q-39%200-64.5-9t-46-19.5Q349-363%20329-371.5t-48.5-8.5q-28.5%200-49%208.5t-41.5%2019Q169-342%20143.5-333T80-324Zm0-178v-78q29%200%2049.5-9t41.5-19.5q21-10.5%2046.5-19t63-8.5q37.5%200%2062%208.5t45.5%2019q21%2010.5%2042%2019.5t50%209q29%200%2050-9t42-19.5q21-10.5%2046-19t62-8.5q38%200%2063%208.5t46%2019q21%2010.5%2042%2019.5t49%209v78q-38%200-63.5-9T770-530.5q-21-10.5-41-19t-49-8.5q-28%200-48.5%208.5t-41%2019Q570-520%20544.5-511t-64.5%209q-39%200-64.5-9t-46-19.5Q349-541%20329-549.5t-48.5-8.5q-28.5%200-49%208.5t-41.5%2019Q169-520%20143.5-511T80-502Zm0-178v-78q29%200%2049.5-9t41.5-19.5q21-10.5%2046.5-19t63-8.5q37.5%200%2062%208.5t45.5%2019q21%2010.5%2042%2019.5t50%209q29%200%2050-9t42-19.5q21-10.5%2046-19t62-8.5q38%200%2063%208.5t46%2019q21%2010.5%2042%2019.5t49%209v78q-38%200-63.5-9T770-708.5q-21-10.5-41-19t-49-8.5q-28%200-48.5%208.5t-41%2019Q570-698%20544.5-689t-64.5%209q-39%200-64.5-9t-46-19.5Q349-719%20329-727.5t-48.5-8.5q-28.5%200-49%208.5t-41.5%2019Q169-698%20143.5-689T80-680Z'/%3E%3C/svg%3E");
}
.icon-heartbeat:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M80-120v-80q38%200%2057-20t75-20q56%200%2077%2020t57%2020q36%200%2057-20t77-20q56%200%2077%2020t57%2020q36%200%2057-20t77-20q56%200%2075%2020t57%2020v80q-59%200-77.5-20T748-160q-36%200-57%2020t-77%2020q-56%200-77-20t-57-20q-36%200-57%2020t-77%2020q-56%200-77-20t-57-20q-36%200-54.5%2020T80-120Zm0-180v-80q38%200%2057-20t75-20q56%200%2077.5%2020t56.5%2020q36%200%2057-20t77-20q56%200%2077%2020t57%2020q36%200%2057-20t77-20q56%200%2075%2020t57%2020v80q-59%200-77.5-20T748-340q-36%200-55.5%2020T614-300q-57%200-77.5-20T480-340q-38%200-56.5%2020T346-300q-59%200-78.5-20T212-340q-36%200-54.5%2020T80-300Zm196-204%20133-133-40-40q-33-33-70-48t-91-15v-100q75%200%20124%2016.5t96%2063.5l256%20256q-17%2011-33%2017.5t-37%206.5q-36%200-57-20t-77-20q-56%200-77%2020t-57%2020q-21%200-37-6.5T276-504Zm463-306.5q29%2029.5%2029%2070.5%200%2042-29%2071t-71%2029q-42%200-71-29t-29-71q0-41%2029-70.5t71-29.5q42%200%2071%2029.5Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M80-120v-80q38%200%2057-20t75-20q56%200%2077%2020t57%2020q36%200%2057-20t77-20q56%200%2077%2020t57%2020q36%200%2057-20t77-20q56%200%2075%2020t57%2020v80q-59%200-77.5-20T748-160q-36%200-57%2020t-77%2020q-56%200-77-20t-57-20q-36%200-57%2020t-77%2020q-56%200-77-20t-57-20q-36%200-54.5%2020T80-120Zm0-180v-80q38%200%2057-20t75-20q56%200%2077.5%2020t56.5%2020q36%200%2057-20t77-20q56%200%2077%2020t57%2020q36%200%2057-20t77-20q56%200%2075%2020t57%2020v80q-59%200-77.5-20T748-340q-36%200-55.5%2020T614-300q-57%200-77.5-20T480-340q-38%200-56.5%2020T346-300q-59%200-78.5-20T212-340q-36%200-54.5%2020T80-300Zm196-204%20133-133-40-40q-33-33-70-48t-91-15v-100q75%200%20124%2016.5t96%2063.5l256%20256q-17%2011-33%2017.5t-37%206.5q-36%200-57-20t-77-20q-56%200-77%2020t-57%2020q-21%200-37-6.5T276-504Zm463-306.5q29%2029.5%2029%2070.5%200%2042-29%2071t-71%2029q-42%200-71-29t-29-71q0-41%2029-70.5t71-29.5q42%200%2071%2029.5Z'/%3E%3C/svg%3E");
}
.icon-heart:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M718-313%20604-426l57-56%2057%2056%20141-141%2057%2056-198%20198ZM440-501Zm0%20381L313-234q-72-65-123.5-116t-85-96q-33.5-45-49-87T40-621q0-94%2063-156.5T260-840q52%200%2099%2022t81%2062q34-40%2081-62t99-22q81%200%20136%2045.5T831-680h-85q-18-40-53-60t-73-20q-51%200-88%2027.5T463-660h-46q-31-45-70.5-72.5T260-760q-57%200-98.5%2039.5T120-621q0%2033%2014%2067t50%2078.5q36%2044.5%2098%20104T440-228q26-23%2061-53t56-50l9%209%2019.5%2019.5L605-283l9%209q-22%2020-56%2049.5T498-172l-58%2052Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M718-313%20604-426l57-56%2057%2056%20141-141%2057%2056-198%20198ZM440-501Zm0%20381L313-234q-72-65-123.5-116t-85-96q-33.5-45-49-87T40-621q0-94%2063-156.5T260-840q52%200%2099%2022t81%2062q34-40%2081-62t99-22q81%200%20136%2045.5T831-680h-85q-18-40-53-60t-73-20q-51%200-88%2027.5T463-660h-46q-31-45-70.5-72.5T260-760q-57%200-98.5%2039.5T120-621q0%2033%2014%2067t50%2078.5q36%2044.5%2098%20104T440-228q26-23%2061-53t56-50l9%209%2019.5%2019.5L605-283l9%209q-22%2020-56%2049.5T498-172l-58%2052Z'/%3E%3C/svg%3E");
}
.icon-sauna:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M160-80q-33%200-56.5-23.5T80-160v-640q0-33%2023.5-56.5T160-880h640q33%200%2056.5%2023.5T880-800v640q0%2033-23.5%2056.5T800-80H160Zm0-240v160h80v-80h-40v-80h-40Zm0-80h40q0-17%2011.5-28.5T240-440v-100q0-25%2017.5-42.5T300-600h80q25%200%2042.5%2017.5T440-540v100q17%200%2028.5%2011.5T480-400h320v-400H160v400Zm100%20100h160v-80H260v80Zm80-340q-25%200-42.5-17.5T280-700q0-25%2017.5-42.5T340-760q25%200%2042.5%2017.5T400-700q0%2025-17.5%2042.5T340-640Zm-20%20480h40v-80h-40v80Zm120%200h360v-160H480v80h-40v80Zm50-400q2-13%202.5-19.5t.5-13.5q0-11-4.5-21T470-641q-15-19-22.5-38t-7.5-39q0-8%201-16.5l3-25.5h60q-2%2011-3%2020.5t-1%2021.5q0%2011%204.5%2021.5T520-674q18%2022%2026%2041.5t8%2039.5q0%2011-1%2018t-3%2015h-60Zm100%200q2-13%202.5-19.5t.5-13.5q0-11-4.5-21T570-641q-15-19-22.5-38t-7.5-39q0-8%201-16.5l3-25.5h60q-2%2011-3%2020.5t-1%2021.5q0%2011%204.5%2021.5T620-674q18%2022%2026%2041.5t8%2039.5q0%2011-1%2018t-3%2015h-60Zm102%200q2-13%202.5-19.5t.5-13.5q0-11-4.5-21T672-641q-15-19-22.5-38t-7.5-39q0-8%201-16.5l3-25.5h60q-2%2011-3%2020.5t-1%2021.5q0%2011%204.5%2021.5T722-674q18%2022%2026%2041.5t8%2039.5q0%2011-1%2018t-3%2015h-60ZM260-300v-80%2080Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M160-80q-33%200-56.5-23.5T80-160v-640q0-33%2023.5-56.5T160-880h640q33%200%2056.5%2023.5T880-800v640q0%2033-23.5%2056.5T800-80H160Zm0-240v160h80v-80h-40v-80h-40Zm0-80h40q0-17%2011.5-28.5T240-440v-100q0-25%2017.5-42.5T300-600h80q25%200%2042.5%2017.5T440-540v100q17%200%2028.5%2011.5T480-400h320v-400H160v400Zm100%20100h160v-80H260v80Zm80-340q-25%200-42.5-17.5T280-700q0-25%2017.5-42.5T340-760q25%200%2042.5%2017.5T400-700q0%2025-17.5%2042.5T340-640Zm-20%20480h40v-80h-40v80Zm120%200h360v-160H480v80h-40v80Zm50-400q2-13%202.5-19.5t.5-13.5q0-11-4.5-21T470-641q-15-19-22.5-38t-7.5-39q0-8%201-16.5l3-25.5h60q-2%2011-3%2020.5t-1%2021.5q0%2011%204.5%2021.5T520-674q18%2022%2026%2041.5t8%2039.5q0%2011-1%2018t-3%2015h-60Zm100%200q2-13%202.5-19.5t.5-13.5q0-11-4.5-21T570-641q-15-19-22.5-38t-7.5-39q0-8%201-16.5l3-25.5h60q-2%2011-3%2020.5t-1%2021.5q0%2011%204.5%2021.5T620-674q18%2022%2026%2041.5t8%2039.5q0%2011-1%2018t-3%2015h-60Zm102%200q2-13%202.5-19.5t.5-13.5q0-11-4.5-21T672-641q-15-19-22.5-38t-7.5-39q0-8%201-16.5l3-25.5h60q-2%2011-3%2020.5t-1%2021.5q0%2011%204.5%2021.5T722-674q18%2022%2026%2041.5t8%2039.5q0%2011-1%2018t-3%2015h-60ZM260-300v-80%2080Z'/%3E%3C/svg%3E");
}
.icon-spa:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M480-80q-73-9-145-39.5T206.5-207Q150-264%20115-351T80-560v-40h40q51%200%20105%2013t101%2039q12-86%2054.5-176.5T480-880q57%2065%2099.5%20155.5T634-548q47-26%20101-39t105-13h40v40q0%20122-35%20209t-91.5%20144q-56.5%2057-128%2087.5T480-80Zm-2-82q-11-166-98.5-251T162-518q11%20171%20101.5%20255T478-162Zm2-254q15-22%2036.5-45.5T558-502q-2-57-22.5-119T480-742q-35%2059-55.5%20121T402-502q20%2017%2042%2040.5t36%2045.5Zm78%20236q37-12%2077-35t74.5-62.5q34.5-39.5%2059-98.5T798-518q-94%2014-165%2062.5T524-332q12%2032%2020.5%2070t13.5%2082Zm-78-236Zm78%20236Zm-80%2018Zm46-170ZM480-80Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M480-80q-73-9-145-39.5T206.5-207Q150-264%20115-351T80-560v-40h40q51%200%20105%2013t101%2039q12-86%2054.5-176.5T480-880q57%2065%2099.5%20155.5T634-548q47-26%20101-39t105-13h40v40q0%20122-35%20209t-91.5%20144q-56.5%2057-128%2087.5T480-80Zm-2-82q-11-166-98.5-251T162-518q11%20171%20101.5%20255T478-162Zm2-254q15-22%2036.5-45.5T558-502q-2-57-22.5-119T480-742q-35%2059-55.5%20121T402-502q20%2017%2042%2040.5t36%2045.5Zm78%20236q37-12%2077-35t74.5-62.5q34.5-39.5%2059-98.5T798-518q-94%2014-165%2062.5T524-332q12%2032%2020.5%2070t13.5%2082Zm-78-236Zm78%20236Zm-80%2018Zm46-170ZM480-80Z'/%3E%3C/svg%3E");
}
.icon-squash:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='m137-160-57-56%20164-164q31-31%2042.5-77.5T298-600q0-58%2026-114t74-104q91-91%20201-103t181%2061q72%2072%2060%20182T738-478q-48%2048-104%2074t-114%2026q-97%200-142%2011t-77%2043L137-160Zm275-334q47%2046%20127%2034t143-75q64-64%2076.5-143.5T724-803q-48-48-125.5-36T456-763q-63%2063-76.5%20142.5T412-494ZM607-87q-47-47-47-113t47-113q47-47%20113-47t113%2047q47%2047%2047%20113T833-87q-47%2047-113%2047T607-87Zm169.5-56.5Q800-167%20800-200t-23.5-56.5Q753-280%20720-280t-56.5%2023.5Q640-233%20640-200t23.5%2056.5Q687-120%20720-120t56.5-23.5ZM720-200Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='m137-160-57-56%20164-164q31-31%2042.5-77.5T298-600q0-58%2026-114t74-104q91-91%20201-103t181%2061q72%2072%2060%20182T738-478q-48%2048-104%2074t-114%2026q-97%200-142%2011t-77%2043L137-160Zm275-334q47%2046%20127%2034t143-75q64-64%2076.5-143.5T724-803q-48-48-125.5-36T456-763q-63%2063-76.5%20142.5T412-494ZM607-87q-47-47-47-113t47-113q47-47%20113-47t113%2047q47%2047%2047%20113T833-87q-47%2047-113%2047T607-87Zm169.5-56.5Q800-167%20800-200t-23.5-56.5Q753-280%20720-280t-56.5%2023.5Q640-233%20640-200t23.5%2056.5Q687-120%20720-120t56.5-23.5ZM720-200Z'/%3E%3C/svg%3E");
}
.icon-flag:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M281.5-401.5Q200-483%20200-600t81.5-198.5Q363-880%20480-880t198.5%2081.5Q760-717%20760-600t-81.5%20198.5Q597-320%20480-320t-198.5-81.5Zm340-57Q680-517%20680-600t-58.5-141.5Q563-800%20480-800t-141.5%2058.5Q280-683%20280-600t58.5%20141.5Q397-400%20480-400t141.5-58.5Zm-193-153Q440-623%20440-640t-11.5-28.5Q417-680%20400-680t-28.5%2011.5Q360-657%20360-640t11.5%2028.5Q383-600%20400-600t28.5-11.5Zm160%200Q600-623%20600-640t-11.5-28.5Q577-680%20560-680t-28.5%2011.5Q520-657%20520-640t11.5%2028.5Q543-600%20560-600t28.5-11.5Zm-80-80Q520-703%20520-720t-11.5-28.5Q497-760%20480-760t-28.5%2011.5Q440-737%20440-720t11.5%2028.5Q463-680%20480-680t28.5-11.5ZM440-80v-40q0-33-23.5-56.5T360-200h-80v-80h400v80h-80q-33%200-56.5%2023.5T520-120v40h-80Zm40-520Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M281.5-401.5Q200-483%20200-600t81.5-198.5Q363-880%20480-880t198.5%2081.5Q760-717%20760-600t-81.5%20198.5Q597-320%20480-320t-198.5-81.5Zm340-57Q680-517%20680-600t-58.5-141.5Q563-800%20480-800t-141.5%2058.5Q280-683%20280-600t58.5%20141.5Q397-400%20480-400t141.5-58.5Zm-193-153Q440-623%20440-640t-11.5-28.5Q417-680%20400-680t-28.5%2011.5Q360-657%20360-640t11.5%2028.5Q383-600%20400-600t28.5-11.5Zm160%200Q600-623%20600-640t-11.5-28.5Q577-680%20560-680t-28.5%2011.5Q520-657%20520-640t11.5%2028.5Q543-600%20560-600t28.5-11.5Zm-80-80Q520-703%20520-720t-11.5-28.5Q497-760%20480-760t-28.5%2011.5Q440-737%20440-720t11.5%2028.5Q463-680%20480-680t28.5-11.5ZM440-80v-40q0-33-23.5-56.5T360-200h-80v-80h400v80h-80q-33%200-56.5%2023.5T520-120v40h-80Zm40-520Z'/%3E%3C/svg%3E");
}
.icon-gym:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='m370-80-16-128q-13-5-24.5-12T307-235l-119%2050L78-375l103-78q-1-7-1-13.5v-27q0-6.5%201-13.5L78-585l110-190%20119%2050q11-8%2023-15t24-12l16-128h220l16%20128q13%205%2024.5%2012t22.5%2015l119-50%20110%20190-103%2078q1%207%201%2013.5v27q0%206.5-2%2013.5l103%2078-110%20190-118-50q-11%208-23%2015t-24%2012L590-80H370Zm70-80h79l14-106q31-8%2057.5-23.5T639-327l99%2041%2039-68-86-65q5-14%207-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99%2042q-22-23-48.5-38.5T533-694l-13-106h-79l-14%20106q-31%208-57.5%2023.5T321-633l-99-41-39%2068%2086%2064q-5%2015-7%2030t-2%2032q0%2016%202%2031t7%2030l-86%2065%2039%2068%2099-42q22%2023%2048.5%2038.5T427-266l13%20106Zm42-180q58%200%2099-41t41-99q0-58-41-99t-99-41q-59%200-99.5%2041T342-480q0%2058%2040.5%2099t99.5%2041Zm-2-140Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='m370-80-16-128q-13-5-24.5-12T307-235l-119%2050L78-375l103-78q-1-7-1-13.5v-27q0-6.5%201-13.5L78-585l110-190%20119%2050q11-8%2023-15t24-12l16-128h220l16%20128q13%205%2024.5%2012t22.5%2015l119-50%20110%20190-103%2078q1%207%201%2013.5v27q0%206.5-2%2013.5l103%2078-110%20190-118-50q-11%208-23%2015t-24%2012L590-80H370Zm70-80h79l14-106q31-8%2057.5-23.5T639-327l99%2041%2039-68-86-65q5-14%207-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99%2042q-22-23-48.5-38.5T533-694l-13-106h-79l-14%20106q-31%208-57.5%2023.5T321-633l-99-41-39%2068%2086%2064q-5%2015-7%2030t-2%2032q0%2016%202%2031t7%2030l-86%2065%2039%2068%2099-42q22%2023%2048.5%2038.5T427-266l13%20106Zm42-180q58%200%2099-41t41-99q0-58-41-99t-99-41q-59%200-99.5%2041T342-480q0%2058%2040.5%2099t99.5%2041Zm-2-140Z'/%3E%3C/svg%3E");
}
.icon-people:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M544.5-504.5Q530-519%20530-540t14.5-35.5Q559-590%20580-590t35.5%2014.5Q630-561%20630-540t-14.5%2035.5Q601-490%20580-490t-35.5-14.5Zm-200%200Q330-519%20330-540t14.5-35.5Q359-590%20380-590t35.5%2014.5Q430-561%20430-540t-14.5%2035.5Q401-490%20380-490t-35.5-14.5Zm27%20191.5Q323-346%20300-400h360q-23%2054-71.5%2087T480-280q-60%200-108.5-33Zm-32%20164.5q-65.5-28.5-114-77t-77-114Q120-405%20120-480t28.5-140.5q28.5-65.5%2077-114t114-77Q405-840%20480-840t140.5%2028.5q65.5%2028.5%20114%2077t77%20114Q840-555%20840-480t-28.5%20140.5q-28.5%2065.5-77%20114t-114%2077Q555-120%20480-120t-140.5-28.5ZM678-282q82-82%2082-198t-82-198q-82-82-198-82h-12q-6%200-12%202-6%206-8%2013t-2%2015q0%2021%2014.5%2035.5T496-680q9%200%2016.5-3t15.5-3q12%200%2020%209t8%2021q0%2023-21.5%2029.5T496-620q-45%200-77.5-32.5T386-730v-6q0-3%201-8-83%2030-135%20101t-52%20163q0%20116%2082%20198t198%2082q116%200%20198-82ZM480-480Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='M544.5-504.5Q530-519%20530-540t14.5-35.5Q559-590%20580-590t35.5%2014.5Q630-561%20630-540t-14.5%2035.5Q601-490%20580-490t-35.5-14.5Zm-200%200Q330-519%20330-540t14.5-35.5Q359-590%20380-590t35.5%2014.5Q430-561%20430-540t-14.5%2035.5Q401-490%20380-490t-35.5-14.5Zm27%20191.5Q323-346%20300-400h360q-23%2054-71.5%2087T480-280q-60%200-108.5-33Zm-32%20164.5q-65.5-28.5-114-77t-77-114Q120-405%20120-480t28.5-140.5q28.5-65.5%2077-114t114-77Q405-840%20480-840t140.5%2028.5q65.5%2028.5%20114%2077t77%20114Q840-555%20840-480t-28.5%20140.5q-28.5%2065.5-77%20114t-114%2077Q555-120%20480-120t-140.5-28.5ZM678-282q82-82%2082-198t-82-198q-82-82-198-82h-12q-6%200-12%202-6%206-8%2013t-2%2015q0%2021%2014.5%2035.5T496-680q9%200%2016.5-3t15.5-3q12%200%2020%209t8%2021q0%2023-21.5%2029.5T496-620q-45%200-77.5-32.5T386-730v-6q0-3%201-8-83%2030-135%20101t-52%20163q0%20116%2082%20198t198%2082q116%200%20198-82ZM480-480Z'/%3E%3C/svg%3E");
}
.icon-star:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='m536-84-56-56%20142-142-340-340-142%20142-56-56%2056-58-56-56%2084-84-56-58%2056-56%2058%2056%2084-84%2056%2056%2058-56%2056%2056-142%20142%20340%20340%20142-142%2056%2056-56%2058%2056%2056-84%2084%2056%2058-56%2056-58-56-84%2084-56-56-58%2056Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20height='24px'%20viewBox='0%20-960%20960%20960'%20width='24px'%20fill='%23000'%3E%3Cpath%20d='m536-84-56-56%20142-142-340-340-142%20142-56-56%2056-58-56-56%2084-84-56-58%2056-56%2058%2056%2084-84%2056%2056%2058-56%2056%2056-142%20142%20340%20340%20142-142%2056%2056-56%2058%2056%2056-84%2084%2056%2058-56%2056-58-56-84%2084-56-56-58%2056Z'/%3E%3C/svg%3E");
}
.icon-pin:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

/* ==========================================================================
   6. Form Components
   ========================================================================== */
.form-group {
  margin-bottom: var(--spacing-xl);
}

.form-label {
  font-weight: 600;
  display: block;
  margin-bottom: var(--spacing-sm);
  font-size: var(--font-size-small);
  color: var(--color-text);
}

.form-control {
  width: 100%;
  padding: 12px 14px;
  background: var(--color-background-light);
  border-radius: var(--border-radius-medium);
  border: 1.5px solid var(--color-border);
  outline: none;
  box-shadow: none;
  font-weight: 400;
  font-size: var(--font-size-base);
  color: var(--color-text);
  transition: var(--transition-base);
}

.form-control:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: var(--shadow-focus);
  background: var(--color-background-white);
}

.form-error-msg {
  color: var(--color-error);
  font-size: var(--font-size-small);
  margin-top: var(--spacing-xs);
  display: none;
}

.form-error-state .form-error-msg {
  display: block;
}

.form-error-state .form-control {
  border-color: var(--color-error);
  box-shadow: 0 0 0 3px rgba(211, 15, 9, 0.15);
}

/* ==========================================================================
   7. Button Components
   ========================================================================== */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border-radius: var(--border-radius-medium);
  font-size: var(--font-size-base);
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: var(--transition-base);
  line-height: 1.2;
  white-space: nowrap;
  vertical-align: middle;
}

.button:hover {
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

.button:active {
  transform: translateY(0);
}

.btn-primary {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-background-white);
}

.btn-primary:hover,
.btn-primary:active {
  background-color: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-background-white);
}

.btn-outline {
  background-color: transparent;
  border-color: var(--color-primary);
  color: var(--color-primary);
}

.btn-outline:hover,
.btn-outline:active {
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-background-white);
}

/* ==========================================================================
   8. Widget Components (Portal / Membership)
   ========================================================================== */
.portal {
  position: fixed;
  top: 100%;
  z-index: 25;
  height: auto;
  margin-top: -35px;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  background-color: rgba(0, 0, 0, 0);
  width: 100%;
}

.portal-content {
  background-color: var(--color-background-white);
  border-radius: 16px 16px 0 0;
  padding: var(--spacing-lg);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
}

.portal.active {
  background-color: rgba(0, 0, 0, 0.5);
  height: 100%;
  top: 0;
  margin-top: 0;
}

.portal.active .portal-content {
  background-color: var(--color-background-light);
}

.portal-toggle {
  display: block;
  margin: 0 auto;
  text-align: center;
  font-size: 0;
  cursor: pointer;
  padding: var(--spacing-md);
}

.portal-toggle:after {
  content: "";
  display: inline-block;
  width: 40px;
  height: 4px;
  background: rgba(0, 0, 0, 0.15);
  border-radius: 4px;
}

/* Spa notice */
.spa-notice {
  background: var(--color-background-light);
  border-radius: var(--border-radius-medium);
  padding: 12px 16px;
  border-left: 3px solid #f59e0b;
}

.spa-notice p {
  font-size: var(--font-size-small);
  margin: 0;
}

/* ==========================================================================
   9. Footer Components
   ========================================================================== */
.footer {
  background: linear-gradient(
    135deg,
    var(--color-primary) 0%,
    var(--color-secondary) 100%
  );
  padding: 12px 0;
  flex-shrink: 0;
}

.footer-nav {
  margin: 0;
  padding: 0;
  list-style: none;
  text-align: center;
}

.footer-nav-item {
  display: inline-block;
  padding: 4px 8px;
}

.footer-nav-link {
  font-size: var(--font-size-small);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.8);
  display: block;
  padding: 4px 8px;
  text-decoration: none;
  font-family: var(--font-family-secondary);
  transition: var(--transition-base);
}

.footer-nav-link:hover {
  color: var(--color-background-white);
  text-decoration: none;
}

/* ==========================================================================
   10. Utility Classes
   ========================================================================== */
.text-center {
  text-align: center;
}

.text-muted {
  color: var(--color-text-muted);
}

.mt-auto {
  margin-top: auto;
}

.min-vh-100 {
  min-height: 100vh;
}

.d-flex {
  display: flex;
}

.flex-column {
  flex-direction: column;
}

.flex-shrink-0 {
  flex-shrink: 0;
}

/* Spacing utilities */
.py-2 {
  padding-top: var(--spacing-sm);
  padding-bottom: var(--spacing-sm);
}

.py-3 {
  padding-top: var(--spacing-md);
  padding-bottom: var(--spacing-md);
}

.py-4 {
  padding-top: var(--spacing-lg);
  padding-bottom: var(--spacing-lg);
}

.mb-4 {
  margin-bottom: var(--spacing-lg);
}

