:root {
  --profile-bg: #edf1ed;
  --profile-surface: #f9faf7;
  --profile-surface-strong: #ffffff;
  --profile-ink: #101a1c;
  --profile-muted: #65716d;
  --profile-line: rgba(18, 42, 38, .12);
  --profile-deep: #0a1517;
  --profile-deep-soft: #102427;
  --profile-teal: #64c5ad;
  --profile-gold: #d4a64c;
  --profile-gold-light: #f0d28a;
  --profile-radius: 30px;
  --profile-ease: cubic-bezier(.2, .8, .2, 1);
}

html { scroll-padding-top: 92px; }
.profile-body {
  min-height: 100vh;
  overflow-x: clip;
  background:
    radial-gradient(circle at 8% 15%, rgba(64, 138, 119, .10), transparent 30rem),
    radial-gradient(circle at 94% 72%, rgba(194, 146, 54, .10), transparent 34rem),
    var(--profile-bg);
  color: var(--profile-ink);
}
.profile-body:has(dialog[open]) { overflow: hidden; }
.profile-body button, .profile-body a { -webkit-tap-highlight-color: transparent; }
.profile-body :focus-visible { outline: 3px solid #69bca8; outline-offset: 4px; }

.profile-error-body {
  display: grid;
  place-items: center;
  padding: 22px;
  background:
    radial-gradient(circle at 18% 16%, rgba(212, 166, 76, .16), transparent 26rem),
    radial-gradient(circle at 82% 84%, rgba(100, 197, 173, .12), transparent 30rem),
    #081315;
  color: #eef6f3;
}
.profile-error {
  width: min(760px, 100%);
  min-height: min(720px, calc(100vh - 44px));
  display: grid;
  grid-template-rows: auto 1fr auto;
  align-items: center;
  padding: clamp(24px, 6vw, 58px);
  border: 1px solid rgba(255, 255, 255, .10);
  border-radius: clamp(28px, 5vw, 48px);
  background: linear-gradient(145deg, rgba(15, 34, 36, .94), rgba(7, 19, 21, .98));
  box-shadow: 0 34px 100px rgba(0, 0, 0, .28);
  isolation: isolate;
}
.profile-error-brand { width: fit-content; color: #edf7f3; }
.profile-error > section { max-width: 590px; position: relative; }
.profile-error-code {
  position: absolute;
  z-index: -1;
  inset: 50% auto auto 50%;
  color: rgba(255, 255, 255, .035);
  font-size: clamp(150px, 36vw, 300px);
  font-weight: 900;
  letter-spacing: -.09em;
  line-height: 1;
  transform: translate(-50%, -50%);
}
.profile-error h1 { margin: 12px 0 8px; color: #fff; font-size: clamp(36px, 7vw, 66px); line-height: 1.25; }
.profile-error p { max-width: 520px; margin: 0; color: #9eb2ac; font-size: 14px; line-height: 2; }
.profile-error-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.profile-error-actions a {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 19px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 15px;
  font: inherit;
  font-size: 11px;
  font-weight: 900;
}
.profile-error-actions a { border-color: rgba(228, 194, 113, .34); background: #e8d6a8; color: #152224; }
.profile-error-actions .profile-error-retry { border-color: rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .05); color: #d8e7e2; }
.profile-error > small { color: #738a84; font-size: 9px; letter-spacing: .05em; }
.skip-link {
  position: fixed;
  z-index: 200;
  top: 10px;
  right: 10px;
  padding: 10px 14px;
  border-radius: 12px;
  background: #fff;
  color: #123d35;
  transform: translateY(-150%);
}
.skip-link:focus { transform: none; }

.profile-nav {
  width: min(1380px, calc(100% - 40px));
  min-height: 70px;
  position: sticky;
  z-index: 60;
  top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 12px auto -82px;
  padding: 10px 12px 10px 16px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 20px;
  background: rgba(7, 17, 19, .83);
  color: #eef7f3;
  box-shadow: 0 18px 48px rgba(3, 13, 15, .18);
  backdrop-filter: blur(16px);
}
.profile-platform { display: inline-flex; align-items: center; gap: 10px; }
.profile-platform img { width: 42px; height: 42px; object-fit: contain; }
.profile-platform > span { display: grid; gap: 1px; }
.profile-platform b { font-size: 12px; }
.profile-platform small { color: #91aaa3; font-size: 8px; letter-spacing: .11em; text-transform: uppercase; }
.profile-nav-actions { display: flex; align-items: center; gap: 8px; }
.profile-icon-button {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 13px;
  background: rgba(255, 255, 255, .055);
  color: #d6e6e1;
}
.profile-icon-button svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.profile-manager-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 0 16px;
  border-radius: 13px;
  background: #efe4c7;
  color: #152326;
  font-size: 10px;
  font-weight: 900;
}

.public-profile {
  width: min(1440px, 100%);
  max-width: none;
  position: relative;
  z-index: 1;
  overflow: visible;
  margin: 0 auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.profile-hero { padding: 0 20px; }
.cover {
  min-height: clamp(680px, 88vh, 860px);
  position: relative;
  overflow: hidden;
  border-radius: 0 0 42px 42px;
  background: #102326;
  box-shadow: 0 32px 90px rgba(7, 25, 25, .22);
  isolation: isolate;
}
.cover > img {
  --hero-shift: 0px;
  width: 100%;
  height: calc(100% + 60px);
  position: absolute;
  inset: -30px 0 auto;
  display: block;
  object-fit: cover;
  transform: translate3d(0, var(--hero-shift), 0) scale(1.035);
  filter: saturate(.82) contrast(1.04);
  transition: filter 1.1s ease;
}
.hero-is-ready .cover > img { filter: saturate(.96) contrast(1.03); }
.cover-shade {
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(4, 13, 15, .90) 0%, rgba(5, 17, 19, .65) 47%, rgba(5, 15, 17, .20) 80%),
    linear-gradient(0deg, rgba(4, 14, 16, .92) 0%, transparent 62%),
    linear-gradient(180deg, rgba(3, 11, 13, .48), transparent 35%);
}
.profile-back {
  min-height: 42px;
  position: absolute;
  z-index: 3;
  top: 112px;
  right: clamp(24px, 5vw, 76px);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #cadbd5;
  font-size: 10px;
  font-weight: 800;
}
.profile-back:hover { color: var(--profile-gold-light); }
.cover-content {
  width: min(850px, 78%);
  position: absolute;
  z-index: 3;
  right: clamp(24px, 6vw, 90px);
  bottom: clamp(52px, 9vh, 90px);
  color: #fff;
}
.business-logo {
  width: 102px;
  height: 102px;
  position: relative;
  overflow: hidden;
  margin-bottom: 24px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 27px;
  background: rgba(245, 239, 223, .94);
  box-shadow: 0 18px 45px rgba(0, 0, 0, .28);
}
.business-logo img {
  width: 100%;
  height: 100%;
  position: static;
  inset: auto;
  display: block;
  object-fit: cover;
  animation: none;
}
.business-logo-fallback {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #f5edda, #dfc891);
  color: #203b38;
  font-size: 43px;
  font-weight: 900;
}
.profile-badges { display: flex; flex-wrap: wrap; gap: 7px; }
.profile-badges > span {
  min-height: 31px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 11px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px;
  background: rgba(12, 28, 30, .54);
  color: #dce9e4;
  font-size: 9px;
  font-weight: 800;
}
.profile-badges .verified-badge { border-color: rgba(229, 192, 112, .32); color: #efd38d; }
.verified-badge i {
  width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e4c271;
  color: #17282a;
  font-size: 9px;
  font-style: normal;
}
.cover-content h1 {
  max-width: 850px;
  margin: 15px 0 8px;
  color: #fff;
  font-size: clamp(50px, 6.6vw, 94px);
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -.055em;
  text-wrap: balance;
  text-shadow: 0 18px 42px rgba(0, 0, 0, .28);
}
.business-tagline {
  max-width: 660px;
  margin: 0;
  color: #c4d5cf;
  font-size: clamp(15px, 1.8vw, 21px);
  line-height: 1.9;
}
.hero-facts { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.hero-location {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 15px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 16px;
  background: rgba(7, 22, 24, .48);
  color: #d4e2dd;
  font-size: 11px;
  font-weight: 800;
}
.hero-location svg { width: 19px; fill: none; stroke: var(--profile-gold-light); stroke-width: 1.7; }
.operating-status {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  gap: 11px;
  padding: 8px 15px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 16px;
  background: rgba(7, 22, 24, .48);
}
.operating-status > span { display: grid; gap: 1px; }
.operating-status b { color: #eaf5f1; font-size: 10px; }
.operating-status small { color: #96aaa4; font-size: 8px; }
.status-lamp {
  width: 12px;
  height: 12px;
  position: relative;
  display: block;
  flex: 0 0 12px;
  border-radius: 50%;
  background: #8b9894;
  box-shadow: 0 0 0 5px rgba(139, 152, 148, .10);
}
.operating-status--open .status-lamp {
  background: #5fe0a7;
  box-shadow: 0 0 0 5px rgba(95, 224, 167, .13), 0 0 22px rgba(95, 224, 167, .58);
  animation: statusBreath 2.8s ease-in-out infinite;
}
.operating-status--closed .status-lamp { background: #ef766e; box-shadow: 0 0 0 5px rgba(239, 118, 110, .12), 0 0 18px rgba(239, 118, 110, .3); }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px; margin-top: 24px; }
.hero-action {
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 17px;
  border: 1px solid rgba(255, 255, 255, .17);
  border-radius: 15px;
  background: rgba(255, 255, 255, .075);
  color: #edf5f2;
  font-size: 10px;
  font-weight: 900;
  transition: transform .22s ease, border-color .22s ease, background .22s ease;
}
.hero-action svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-action--primary { border-color: #f0ddaa; background: #efe4c7; color: #142628; }
.hero-action:hover { transform: translateY(-2px); border-color: rgba(240, 210, 138, .65); }
.hero-scroll-cue {
  position: absolute;
  z-index: 3;
  left: 38px;
  bottom: 32px;
  display: grid;
  place-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, .5);
  font-size: 7px;
  letter-spacing: .12em;
}
.hero-scroll-cue i { width: 1px; height: 42px; display: block; background: linear-gradient(#e4ca89, transparent); }

.profile-motion:not(.hero-is-ready) .cover-content [data-hero-item],
.profile-motion:not(.hero-is-ready) .cover-content [data-hero-title] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .78s var(--profile-ease), transform .78s var(--profile-ease);
}
.hero-is-ready .cover-content [data-hero-item], .hero-is-ready .cover-content [data-hero-title] { opacity: 1; transform: none; }
.hero-is-ready .cover-content [data-hero-title] { transition-delay: .12s; }
.hero-is-ready .cover-content [data-hero-item]:nth-child(4) { transition-delay: .18s; }
.hero-is-ready .cover-content [data-hero-item]:nth-child(5) { transition-delay: .24s; }
.hero-is-ready .cover-content [data-hero-item]:nth-child(6) { transition-delay: .30s; }

.profile-content {
  width: min(1280px, calc(100% - 40px));
  display: grid;
  gap: 24px;
  margin: 0 auto;
  padding: 34px 0 60px;
}
.section-kicker { display: block; margin-bottom: 6px; color: #3b7969; font-size: 9px; font-weight: 900; letter-spacing: .06em; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.section-heading h2, .profile-intro h2 { margin: 0; color: var(--profile-ink); font-size: clamp(25px, 3vw, 38px); line-height: 1.3; }
.section-heading > small { color: var(--profile-muted); font-size: 9px; }

.offer {
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  --light-x: 50%;
  --light-y: 50%;
  width: 100%;
  min-height: 420px;
  position: relative;
  overflow: hidden;
  padding: 1px;
  border-radius: 34px;
  background: linear-gradient(125deg, #765018, #e0bb68 25%, #7a571d 48%, #f0d48c 72%, #6d4a18);
  box-shadow: 0 28px 80px rgba(81, 58, 15, .22);
  transform: perspective(1200px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style: preserve-3d;
  transition: transform .22s ease, opacity .72s var(--profile-ease);
  isolation: isolate;
  animation: offerBorderGlow 4.8s ease-in-out infinite;
}
.offer::before {
  content: "";
  position: absolute;
  z-index: 4;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at var(--light-x) var(--light-y), rgba(255, 236, 176, .16), transparent 28%);
}
.offer-frame { height: 100%; min-height: inherit; padding: 1px; border-radius: 33px; background: rgba(6, 12, 13, .92); }
.offer-card {
  min-height: inherit;
  position: relative;
  overflow: hidden;
  padding: 34px clamp(28px, 5vw, 70px) 46px;
  border-radius: 32px;
  background:
    radial-gradient(circle at 90% 10%, rgba(213, 170, 78, .13), transparent 30%),
    radial-gradient(circle at 5% 92%, rgba(70, 148, 132, .08), transparent 31%),
    repeating-linear-gradient(115deg, rgba(255, 255, 255, .013) 0 1px, transparent 1px 7px),
    linear-gradient(145deg, #080b0c, #171b1c 45%, #0b0e0f 78%, #181c1d);
  color: #f4eee0;
  box-shadow: inset 0 1px rgba(255, 255, 255, .08), inset 0 -40px 90px rgba(0, 0, 0, .28);
}
.offer-reflection {
  width: 35%;
  position: absolute;
  z-index: 5;
  inset-block: -30%;
  right: -45%;
  pointer-events: none;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255, 235, 178, .13), transparent);
  filter: blur(8px);
  animation: goldSweep 7s ease-in-out infinite;
}
.offer-orbit { position: absolute; z-index: 3; border: 1px solid rgba(230, 192, 105, .18); border-radius: 50%; pointer-events: none; }
.offer-orbit--one { width: 240px; height: 240px; top: -160px; left: 10%; }
.offer-orbit--two { width: 180px; height: 180px; right: -110px; bottom: -90px; }
.offer-head { position: relative; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.offer-badge {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border: 1px solid rgba(235, 203, 130, .34);
  border-radius: 999px;
  background: rgba(203, 154, 55, .08);
  color: #e6c675;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .14em;
}
.offer-badge i { font-size: 12px; font-style: normal; }
.offer-state-label { color: #8da09a; font-size: 9px; font-weight: 800; }
.offer-layout { min-height: 310px; position: relative; z-index: 3; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr); align-items: center; gap: clamp(30px, 6vw, 90px); }
.offer-copy { max-width: 720px; text-align: right; }
.offer-eyebrow { color: #a59a7d; font-size: 9px; font-weight: 800; letter-spacing: .04em; }
.offer h2 {
  margin: 7px 0 12px;
  background: linear-gradient(90deg, #a37329, #f5dda0 30%, #d3a448 58%, #fff0be 78%, #9c6d26);
  background-size: 180% auto;
  color: transparent;
  font-size: clamp(34px, 5vw, 66px);
  line-height: 1.22;
  letter-spacing: -.04em;
  -webkit-background-clip: text;
  background-clip: text;
  animation: offerTextShine 5.5s linear infinite;
}
.offer-copy > p { max-width: 680px; margin: 0; color: #bac5c0; font-size: 13px; line-height: 2; }
.offer-features { display: flex; flex-wrap: wrap; gap: 7px; margin: 19px 0 0; padding: 0; list-style: none; }
.offer-features li { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid rgba(255, 255, 255, .08); border-radius: 10px; background: rgba(255, 255, 255, .035); color: #c8d2ce; font-size: 9px; }
.offer-features li span { width: 16px; height: 16px; display: grid; place-items: center; border-radius: 50%; background: rgba(211, 164, 72, .13); color: #e4c370; font-size: 8px; }
.offer-conversion { padding-right: clamp(20px, 4vw, 52px); border-right: 1px solid rgba(231, 199, 126, .14); text-align: center; }
.offer-pricing { display: flex; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: 7px; margin-bottom: 22px; }
.offer-pricing del { color: #77837f; font-size: 13px; text-decoration-color: #b96655; text-decoration-thickness: 2px; }
.offer-pricing strong { color: #efd588; font-size: clamp(31px, 4.5vw, 54px); line-height: 1; }
.offer-pricing span { color: #8e8265; font-size: 9px; }
.offer-cta {
  width: 100%;
  min-height: 54px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 0 20px;
  border: 1px solid #f4dfa9;
  border-radius: 15px;
  background: linear-gradient(135deg, #9b6a21, #d6a84f 42%, #ecd188 68%, #b67d28);
  color: #152122;
  font-size: 11px;
  font-weight: 950;
  box-shadow: 0 15px 35px rgba(190, 139, 43, .18), inset 0 1px rgba(255, 255, 255, .42);
  transition: transform .22s ease, filter .22s ease;
}
.offer-cta svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 2; transition: transform .22s ease; }
.offer-cta:hover { transform: translateY(-2px); filter: brightness(1.06); }
.offer-cta:hover svg { transform: translateX(-3px); }
.offer-cta:active { transform: scale(.975); }
.offer-cta:disabled { border-color: #505957; background: #2d3332; color: #808b87; box-shadow: none; }
.offer-timer { display: grid; gap: 3px; margin-top: 12px; color: #788983; }
.offer-timer span { font-size: 8px; }
.offer-timer b { color: #baa66d; font-size: 9px; font-weight: 700; }
.offer[data-offer-state="claimed"] { background: linear-gradient(125deg, #34695e, #e0bb68 34%, #4f8c7c 64%, #d4a64c); }
.offer[data-offer-state="claimed"] .offer-state-label { color: #80d7bc; }
.offer[data-offer-state="expiring"] .offer-state-label { color: #efbd72; }
.offer[data-offer-state="expired"] { filter: saturate(.35); box-shadow: 0 20px 48px rgba(25, 30, 28, .13); }
.offer[data-offer-state="expired"] .offer-reflection { display: none; }

.profile-intro {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  padding: clamp(30px, 5vw, 60px);
  border: 1px solid var(--profile-line);
  border-radius: var(--profile-radius);
  background: var(--profile-surface);
}
.rich-text { max-width: none; color: var(--profile-muted); font-size: 14px; line-height: 2.15; }
.rich-text :first-child { margin-top: 0; }
.rich-text :last-child { margin-bottom: 0; }
.rich-text a { color: #2d7563; text-decoration: underline; text-underline-offset: 3px; }

.profile-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
  margin: 0;
}
.profile-actions a {
  min-width: 145px;
  flex: 1 1 145px;
  max-width: 190px;
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px;
  border: 1px solid var(--profile-line);
  border-radius: 19px;
  background: var(--profile-surface-strong);
  box-shadow: 0 8px 24px rgba(18, 43, 38, .045);
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.profile-actions a:hover { transform: translateY(-3px); border-color: rgba(56, 128, 109, .34); box-shadow: 0 16px 34px rgba(18, 43, 38, .09); }
.profile-actions a > span:last-child { min-width: 0; }
.action-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 42px; border-radius: 13px; background: #122b2d; color: #dfc47f; }
.action-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.profile-actions b, .profile-actions small { display: block; }
.profile-actions b { overflow: hidden; color: #1a3833; font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.profile-actions small { overflow: hidden; margin-top: 3px; color: #7b8984; font-size: 8px; white-space: nowrap; text-overflow: ellipsis; }
.profile-actions .booking-action { border-color: rgba(193, 147, 57, .28); background: linear-gradient(145deg, rgba(232, 211, 162, .28), var(--profile-surface-strong)); }

.customer-club-card {
  min-height: 108px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(18px, 3vw, 36px);
  padding: clamp(15px, 2.2vw, 23px);
  border: 1px solid rgba(218, 195, 139, .2);
  border-radius: var(--profile-radius);
  background: linear-gradient(128deg, #0b191b 0%, #102729 58%, #152f2b 100%);
  box-shadow: 0 24px 55px rgba(9, 29, 28, .12);
  color: #f3f8f5;
}
.customer-club-card::after { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 16% 25%, rgba(220, 183, 99, .12), transparent 33%), linear-gradient(105deg, transparent 62%, rgba(93, 192, 165, .08)); }
.customer-club-aura { width: 220px; height: 220px; position: absolute; z-index: -1; left: -80px; bottom: -135px; border: 1px solid rgba(230, 203, 137, .14); border-radius: 50%; box-shadow: 0 0 0 32px rgba(230, 203, 137, .025), 0 0 0 64px rgba(230, 203, 137, .018); }
.customer-club-mark { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(241, 215, 154, .28); border-radius: 15px; background: linear-gradient(145deg, rgba(235, 201, 124, .17), rgba(255, 255, 255, .025)); color: #e8c775; font-size: 19px; box-shadow: inset 0 1px rgba(255, 255, 255, .12); }
.customer-club-copy h2 { margin: 3px 0; color: #fff; font-size: clamp(16px, 2vw, 22px); line-height: 1.45; }
.customer-club-copy p { max-width: 690px; margin: 0; color: #9fb6af; font-size: 11px; line-height: 2; }
.customer-club-join { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 15px; padding: 0 21px; border: 1px solid #e3bf68; border-radius: 16px; background: linear-gradient(145deg, #ecd188, #c9993e); color: #15231f; font: inherit; font-size: 10px; font-weight: 950; box-shadow: 0 13px 32px rgba(194, 145, 52, .15); cursor: pointer; transition: transform .2s ease, filter .2s ease, border-color .2s ease; }
.customer-club-join:hover { transform: translateY(-2px); filter: brightness(1.04); }
.customer-club-join:active { transform: scale(.975); }
.customer-club-join i { font-size: 17px; font-style: normal; transition: transform .2s ease; }
.customer-club-join:hover i { transform: translateX(-3px); }
.customer-club-join.is-loading { cursor: wait; opacity: .75; }
.customer-club-join.is-joined { border-color: rgba(111, 219, 179, .38); background: rgba(87, 186, 151, .13); color: #a9ecd3; box-shadow: none; }

.services-section, .gallery-section {
  padding: clamp(30px, 5vw, 58px);
  border: 1px solid var(--profile-line);
  border-radius: var(--profile-radius);
  background: var(--profile-surface);
}
.service-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.service-list article {
  min-height: 94px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px;
  border: 1px solid var(--profile-line);
  border-radius: 18px;
  background: var(--profile-surface-strong);
	box-shadow: inset 0 1px rgba(255, 255, 255, .6);
	transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.service-list article:hover { transform: translateY(-3px); box-shadow: 0 16px 30px rgba(20, 52, 44, .08), inset 0 1px rgba(255, 255, 255, .7); }
.service-list span { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 32px; border-radius: 10px; background: #e9eee9; color: #6c7f78; font-size: 9px; font-weight: 900; }
.service-list b { color: #243e39; font-size: 11px; line-height: 1.8; }
.service-list .service-tone-1 { border-color: rgba(45, 133, 105, .2); background: linear-gradient(145deg, rgba(223, 245, 236, .72), var(--profile-surface-strong)); }
.service-list .service-tone-2 { border-color: rgba(179, 134, 48, .2); background: linear-gradient(145deg, rgba(247, 237, 210, .72), var(--profile-surface-strong)); }
.service-list .service-tone-3 { border-color: rgba(87, 113, 176, .18); background: linear-gradient(145deg, rgba(229, 235, 249, .72), var(--profile-surface-strong)); }
.service-list .service-tone-4 { border-color: rgba(157, 91, 119, .17); background: linear-gradient(145deg, rgba(247, 229, 237, .68), var(--profile-surface-strong)); }
.service-list .service-tone-5 { border-color: rgba(123, 105, 176, .17); background: linear-gradient(145deg, rgba(235, 231, 249, .68), var(--profile-surface-strong)); }
.service-list .service-tone-6 { border-color: rgba(184, 105, 70, .17); background: linear-gradient(145deg, rgba(249, 232, 220, .68), var(--profile-surface-strong)); }
.service-list .service-tone-1 span { background: #d7eee5; color: #24735b; }
.service-list .service-tone-2 span { background: #f0e2bd; color: #8d681e; }
.service-list .service-tone-3 span { background: #dfe6f6; color: #526ca9; }
.service-list .service-tone-4 span { background: #f1dfe7; color: #95566f; }
.service-list .service-tone-5 span { background: #e6e0f4; color: #6e5aa5; }
.service-list .service-tone-6 span { background: #f4dfd1; color: #a25f3e; }

.profile-information { display: block; }
.address-card, .hours-card {
  min-height: 390px;
  position: relative;
  overflow: hidden;
  padding: clamp(27px, 4vw, 46px);
  border-radius: var(--profile-radius);
}
.address-card { display: flex; align-items: flex-start; gap: 20px; background: var(--profile-deep-soft); color: #edf5f1; }
.address-card::after { content: ""; width: 210px; height: 210px; position: absolute; left: -90px; bottom: -130px; border: 36px solid rgba(255, 255, 255, .025); border-radius: 50%; }
.info-number { position: absolute; top: 24px; left: 28px; color: rgba(255, 255, 255, .12); font-size: 34px; font-weight: 300; }
.info-icon { width: 52px; height: 52px; position: relative; z-index: 1; display: grid; place-items: center; flex: 0 0 52px; border: 1px solid rgba(255, 255, 255, .09); border-radius: 16px; background: rgba(255, 255, 255, .055); color: #e4c778; }
.info-icon svg { width: 23px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.address-card > div { position: relative; z-index: 1; padding-top: 5px; }
.address-card > div > span, .hours-card-head > div > span { color: #7dc5b3; font-size: 9px; font-weight: 800; }
.address-card h2, .hours-card h2 { margin: 7px 0 13px; font-size: clamp(23px, 3vw, 34px); }
.address-card p { max-width: 440px; margin: 0; color: #b6c8c2; font-size: 13px; line-height: 2.1; }
.address-card a { display: inline-flex; align-items: center; gap: 7px; margin-top: 25px; color: #e6cb81; font-size: 9px; font-weight: 900; }
.hours-card { border: 1px solid var(--profile-line); background: var(--profile-surface-strong); }
.hours-card .info-number { color: rgba(15, 35, 31, .09); }
.hours-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 12px; }
.hours-card h2 { color: #1a3430; }
.hours-mini-status { min-height: 34px; display: inline-flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid var(--profile-line); border-radius: 999px; color: #6f7d78; font-size: 8px; font-weight: 900; }
.hours-mini-status i { width: 7px; height: 7px; border-radius: 50%; background: #909b97; }
.hours-mini-status--open i { background: #35b882; box-shadow: 0 0 0 4px rgba(53, 184, 130, .11); }
.hours-mini-status--closed i { background: #dc6f67; box-shadow: 0 0 0 4px rgba(220, 111, 103, .10); }
.hours-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 25px; }
.hours-list > div { min-height: 43px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--profile-line); }
.hours-list span { color: #66766f; font-size: 9px; }
.hours-list b { color: #263f39; font-size: 9px; }
.hours-list .is-closed b { color: #b16a62; }
.hours-list .is-friday { grid-column: 1 / -1; }

.editorial-gallery { display: grid; grid-template-columns: 1.2fr .8fr .8fr; grid-auto-rows: 220px; gap: 10px; }
.editorial-gallery button {
  position: relative;
  overflow: hidden;
  padding: 0;
  border: 0;
  border-radius: 20px;
  background: #dbe2dd;
}
.editorial-gallery button:first-child { grid-row: span 2; }
.editorial-gallery button:nth-child(4n) { grid-column: span 2; }
.editorial-gallery img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .65s var(--profile-ease), filter .45s ease; }
.editorial-gallery button::after { content: "↗"; width: 38px; height: 38px; position: absolute; left: 12px; bottom: 12px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .26); border-radius: 12px; background: rgba(8, 20, 20, .55); color: #fff; opacity: 0; transform: translateY(6px); transition: .25s ease; }
.editorial-gallery button:hover img { transform: scale(1.045); filter: saturate(1.05); }
.editorial-gallery button:hover::after { opacity: 1; transform: none; }

.profile-content footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 0;
  padding: 26px 4px 0;
  border-top: 1px solid var(--profile-line);
  color: var(--profile-muted);
}
.footer-brand { display: flex; align-items: center; gap: 10px; }
.footer-brand img { width: 42px; height: 42px; object-fit: contain; }
.footer-brand > span { display: grid; gap: 2px; }
.footer-brand b { color: #315f54; font-size: 10px; }
.footer-brand small { color: #7a8a84; font-size: 8px; }
.profile-content footer > a { color: #315f54; font-size: 9px; font-weight: 900; }

.profile-motion [data-reveal] { opacity: 0; transform: translateY(20px); transition: opacity .72s var(--profile-ease), transform .72s var(--profile-ease); }
.profile-motion [data-reveal].is-visible { opacity: 1; transform: none; }

.offer-reveal, .gallery-viewer {
  padding: 0;
  border: 0;
  background: transparent;
  color: #f5efdf;
}
.offer-reveal::backdrop, .gallery-viewer::backdrop { background: rgba(2, 8, 9, .88); backdrop-filter: blur(10px); }
.offer-reveal { width: min(620px, calc(100% - 24px)); }
.offer-reveal-shell {
  position: relative;
  overflow: hidden;
  padding: clamp(34px, 7vw, 66px);
  border: 1px solid rgba(229, 195, 115, .4);
  border-radius: 30px;
  background: radial-gradient(circle at 50% 0, rgba(213, 167, 68, .16), transparent 33%), linear-gradient(145deg, #101516, #080b0c);
  box-shadow: 0 38px 100px rgba(0, 0, 0, .5);
  text-align: center;
}
.offer-reveal[open] .offer-reveal-shell { animation: revealDialog .5s var(--profile-ease) both; }
.dialog-close, .gallery-close {
  width: 42px;
  height: 42px;
  position: absolute;
  z-index: 3;
  top: 14px;
  left: 14px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 13px;
  background: rgba(255, 255, 255, .055);
  color: #e9f1ed;
  font-size: 22px;
}
.reveal-mark { width: 72px; height: 72px; display: grid; place-items: center; margin: 0 auto 22px; border: 1px solid rgba(230, 195, 113, .33); border-radius: 24px; background: rgba(211, 163, 65, .09); color: #efd58e; font-size: 27px; box-shadow: 0 0 50px rgba(207, 157, 55, .12); }
.offer-reveal h2 { margin: 8px 0 12px; color: #efd58c; font-size: clamp(28px, 6vw, 45px); }
.offer-reveal p { margin: 0 auto; color: #aebdb7; font-size: 12px; line-height: 2; }
.reveal-code { display: grid; gap: 7px; margin: 27px 0 14px; padding: 18px; border: 1px dashed rgba(232, 199, 121, .34); border-radius: 18px; background: rgba(255, 255, 255, .035); }
.reveal-code small { color: #889b94; font-size: 8px; }
.reveal-code code { color: #f4dda3; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: clamp(24px, 6vw, 36px); letter-spacing: .1em; direction: ltr; }
.reveal-code button { min-height: 40px; border: 0; border-radius: 11px; background: rgba(227, 194, 114, .12); color: #e5cb89; font-size: 9px; font-weight: 900; }
.reveal-action { min-height: 51px; display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 13px; border-radius: 14px; background: #dfbd6c; color: #162122; font-size: 10px; font-weight: 950; }
.reveal-note { display: block; margin-top: 18px; color: #687772; font-size: 7px; }

.gallery-viewer {
  width: min(1180px, calc(100% - 30px));
  height: min(88vh, 860px);
  max-width: none;
  max-height: none;
  overflow: visible;
}
.gallery-viewer[open] { display: grid; grid-template-columns: 54px minmax(0, 1fr) 54px; align-items: center; gap: 12px; }
.gallery-viewer figure { height: 100%; min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; place-items: center; gap: 11px; margin: 0; }
.gallery-viewer figure img { max-width: 100%; max-height: 100%; border-radius: 20px; object-fit: contain; box-shadow: 0 34px 90px rgba(0, 0, 0, .42); }
.gallery-viewer figcaption { color: #a8b6b1; font-size: 9px; text-align: center; }
.gallery-close { top: -6px; left: 0; }
.gallery-nav { width: 50px; height: 50px; display: grid; place-items: center; padding: 0; border: 1px solid rgba(255, 255, 255, .15); border-radius: 15px; background: rgba(255, 255, 255, .07); color: #f1f6f3; font-size: 19px; }
.profile-toast {
  position: fixed;
  z-index: 160;
  left: 22px;
  bottom: 22px;
  max-width: calc(100% - 44px);
  padding: 12px 16px;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 13px;
  background: #132628;
  color: #eef6f2;
  box-shadow: 0 18px 42px rgba(0, 0, 0, .26);
  font-size: 10px;
  font-weight: 800;
  opacity: 0;
  transform: translateY(24px);
  pointer-events: none;
  transition: .25s ease;
}
.profile-toast.is-visible { opacity: 1; transform: none; }

@keyframes statusBreath {
  0%, 100% { box-shadow: 0 0 0 5px rgba(95, 224, 167, .10), 0 0 15px rgba(95, 224, 167, .35); }
  50% { box-shadow: 0 0 0 7px rgba(95, 224, 167, .05), 0 0 27px rgba(95, 224, 167, .7); }
}
@keyframes goldSweep {
  0%, 35% { right: -45%; opacity: 0; }
  52% { opacity: 1; }
  72%, 100% { right: 125%; opacity: 0; }
}
@keyframes revealDialog {
  from { opacity: 0; transform: scale(.94); filter: blur(8px); }
  to { opacity: 1; transform: none; filter: none; }
}

@media (prefers-color-scheme: dark) {
  :root {
    --profile-bg: #0d1719;
    --profile-surface: #132022;
    --profile-surface-strong: #172527;
    --profile-ink: #edf4f1;
    --profile-muted: #9aaca6;
    --profile-line: rgba(218, 235, 229, .11);
  }
  .profile-body { background: radial-gradient(circle at 12% 16%, rgba(66, 139, 121, .11), transparent 30rem), #0d1719; }
  .profile-intro, .services-section, .gallery-section, .hours-card, .profile-actions a { color: var(--profile-ink); }
  .profile-actions b, .service-list b, .hours-card h2, .hours-list b { color: #e4eeea; }
  .service-list span { background: #203032; color: #9fb2ac; }
  .hours-list span, .rich-text { color: #9baca7; }
  .section-kicker, .hours-card-head > div > span { color: #73bca9; }
  .profile-actions .booking-action { background: linear-gradient(145deg, rgba(164, 126, 53, .17), var(--profile-surface-strong)); }
	.service-list article[class*="service-tone-"] { background: linear-gradient(145deg, rgba(255, 255, 255, .045), var(--profile-surface-strong)); box-shadow: none; }
  .footer-brand b, .profile-content footer > a { color: #86bcae; }
}

@media (max-width: 1080px) {
  .cover-content { width: min(820px, 84%); }
  .profile-actions { grid-template-columns: repeat(3, 1fr); }
  .offer-layout { grid-template-columns: 1fr .58fr; gap: 35px; }
  .profile-information { grid-template-columns: 1fr 1fr; }
  .hours-list { grid-template-columns: 1fr; }
  .editorial-gallery { grid-auto-rows: 190px; }
}

@media (max-width: 780px) {
  .profile-nav { width: calc(100% - 24px); top: 8px; margin-top: 8px; padding: 8px; border-radius: 17px; }
  .profile-platform small { display: none; }
  .profile-manager-link { padding-inline: 12px; }
  .profile-hero { padding: 0; }
  .cover { min-height: min(780px, 94svh); border-radius: 0 0 30px 30px; }
  .cover-shade { background: linear-gradient(0deg, rgba(3, 12, 14, .94) 0%, rgba(4, 15, 17, .56) 56%, rgba(4, 14, 16, .30)); }
  .profile-back { top: 98px; right: 20px; }
  .cover-content { width: auto; right: 20px; left: 20px; bottom: 35px; }
  .business-logo { width: 84px; height: 84px; margin-bottom: 18px; border-radius: 23px; }
  .business-logo-fallback { font-size: 36px; }
  .cover-content h1 { font-size: clamp(42px, 13vw, 68px); }
  .hero-facts { align-items: stretch; }
  .operating-status { flex: 1; min-width: 190px; }
  .hero-location { flex: 0 0 auto; }
  .hero-actions { display: flex; justify-content: center; }
  .hero-action { padding-inline: 10px; }
  .hero-scroll-cue { display: none; }
  .profile-content { width: calc(100% - 24px); gap: 14px; padding-top: 16px; }
  .offer { min-height: 0; border-radius: 27px; }
  .offer-frame, .offer-card { border-radius: 26px; }
  .offer-card { padding: 25px 20px 26px; }
  .offer-layout { min-height: 0; grid-template-columns: 1fr; gap: 24px; padding-top: 28px; }
  .offer-copy { text-align: center; }
  .offer-copy > p { font-size: 11px; }
  .offer-features { justify-content: center; }
  .offer-conversion { padding: 22px 0 0; border-top: 1px solid rgba(231, 199, 126, .14); border-right: 0; }
  .offer-pricing { margin-bottom: 16px; }
  .profile-intro { grid-template-columns: 1fr; gap: 22px; padding: 28px 22px; border-radius: 24px; }
  .profile-actions { display: flex; justify-content: center; }
  .profile-actions a { min-height: 76px; padding: 11px; border-radius: 16px; }
  .services-section, .gallery-section { padding: 28px 20px; border-radius: 24px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .service-list { grid-template-columns: 1fr; }
  .service-list article { min-height: 75px; }
	.customer-club-card { grid-template-columns: auto 1fr; }
	.customer-club-join { grid-column: 1 / -1; width: 100%; }
  .profile-information { grid-template-columns: 1fr; }
  .address-card, .hours-card { min-height: 0; padding: 28px 22px; border-radius: 24px; }
  .hours-list { grid-template-columns: 1fr 1fr; gap: 0 14px; }
  .editorial-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 160px; }
  .editorial-gallery button:first-child { grid-column: span 2; grid-row: span 2; }
  .editorial-gallery button:nth-child(4n) { grid-column: auto; }
  .profile-content footer { align-items: flex-start; flex-direction: column; padding: 21px 5px 0; }
  .gallery-viewer[open] { grid-template-columns: 1fr; }
  .gallery-viewer { height: 84vh; }
  .gallery-nav { position: absolute; z-index: 3; bottom: 12px; }
  .gallery-nav--previous { right: 12px; }
  .gallery-nav--next { left: 12px; }
}

@media (max-width: 430px) {
  .profile-nav { min-height: 62px; }
  .profile-platform img { width: 37px; height: 37px; }
  .profile-platform b { font-size: 10px; }
  .profile-icon-button { width: 40px; height: 40px; }
  .profile-manager-link { min-height: 40px; font-size: 9px; }
  .cover { min-height: 92svh; }
  .profile-back { top: 85px; }
  .cover-content { bottom: 27px; }
  .business-logo { width: 76px; height: 76px; }
  .profile-badges > span { min-height: 28px; font-size: 8px; }
  .cover-content h1 { margin-top: 11px; font-size: clamp(39px, 13vw, 54px); }
  .business-tagline { font-size: 13px; }
  .hero-facts { margin-top: 16px; }
  .hero-location, .operating-status { min-height: 48px; border-radius: 14px; }
  .hero-location { padding-inline: 12px; }
  .operating-status small { max-width: 190px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .hero-actions { margin-top: 16px; }
  .hero-action { min-height: 47px; border-radius: 13px; }
  .offer h2 { font-size: clamp(31px, 10vw, 42px); }
  .offer-head { align-items: flex-start; }
  .offer-badge { font-size: 7px; }
  .offer-features li { width: 100%; justify-content: flex-start; }
  .offer-cta { min-height: 51px; }
  .profile-actions a { gap: 8px; }
	.customer-club-card { grid-template-columns: 1fr; text-align: center; }
	.customer-club-mark { margin-inline: auto; }
  .action-icon { width: 38px; height: 38px; flex-basis: 38px; }
  .hours-card-head { flex-direction: column; }
  .hours-list { grid-template-columns: 1fr; }
  .editorial-gallery { grid-auto-rows: 135px; gap: 7px; }
  .editorial-gallery button { border-radius: 15px; }
  .offer-reveal-shell { border-radius: 24px; }
}

@media (max-width: 370px) {
  .profile-nav { width: calc(100% - 16px); }
  .profile-manager-link { display: none; }
  .cover-content { right: 15px; left: 15px; }
  .profile-badges .verified-badge { display: none; }
  .hero-facts { display: grid; grid-template-columns: 1fr; }
  .hero-location, .operating-status { width: 100%; }
  .profile-content { width: calc(100% - 16px); }
  .profile-actions { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .profile-body *, .profile-body *::before, .profile-body *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .cover > img, .offer { transform: none !important; }
  [data-reveal], .cover-content [data-hero-item], .cover-content [data-hero-title] { opacity: 1; transform: none; }
  .offer-reflection { display: none; }
}

@keyframes offerBorderGlow { 0%,100%{box-shadow:0 28px 80px rgba(81,58,15,.22),0 0 0 1px rgba(226,185,92,.12)} 50%{box-shadow:0 34px 95px rgba(140,96,17,.3),0 0 24px rgba(240,196,91,.25),0 0 0 1px rgba(255,222,142,.72)} }
@keyframes offerTextShine { to{background-position:180% center} }
@keyframes heroActionFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@media(max-width:620px){
  .hero-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:6px;justify-content:stretch}
  .hero-action{min-width:0;min-height:44px;padding:0 7px;gap:5px;border-radius:12px;font-size:8px;animation:heroActionFloat 4s ease-in-out infinite}
  .hero-action:nth-child(3n+2){animation-delay:.3s}.hero-action:nth-child(3n){animation-delay:.6s}.hero-action svg{width:15px;height:15px}
  .customer-club-card{grid-template-columns:auto minmax(0,1fr);gap:10px}.customer-club-join{grid-column:1/-1;min-height:44px}.customer-club-copy p{display:none}
}

@media (forced-colors: active) {
  .status-lamp, .hours-mini-status i { forced-color-adjust: none; }
  .offer h2 { color: CanvasText; background: none; }
}
