/* Pink + cyan — the selected SocialClub design. Base layout: style.css. */
:root {
  --bg: #454352;
  --surface: #514c62;
  --line: #837d93;
  --text: #fbf9ff;
  --muted: #e0dce9;
  --pink: #ff47be;
  --pink-text: #ff9bdf;
  --cyan: #54e7f2;
  --lime: #d6ff3f;
}

body { background: var(--bg); }
::selection { background: var(--cyan); color: #292638; }
.site-header {
  background: #454352f5;
  border-bottom-color: #ffffff40;
  box-shadow: 0 1px 16px #ff47be12;
}
.desktop-nav a, .footer-contact, .footer-socials { color: var(--text); }
.desktop-nav a::after { background: var(--cyan); box-shadow: 0 0 7px #54e7f2a6; }
.mobile-nav { background: #494354; box-shadow: 0 14px 28px #28233366; }
.mobile-nav a span { color: var(--cyan); }
.button { color: #1c2110; box-shadow: 0 0 15px #d6ff3f13; }
.button:hover { background: #e5ff8a; box-shadow: -3px 0 18px #54e7f244, 3px 0 18px #ff47be44; }
.text-link:hover, .inline-link, .policy-bottom .text-link { color: var(--cyan); }
.status-dot { background: var(--pink); box-shadow: 0 0 10px #ff47be99; }
.small-dot { background: var(--cyan); }
.section-label > span:first-child { color: var(--cyan); }
.muted-heading { color: var(--pink-text); }

/* Sharp type, two neon outlines and an open-corner photo frame. */
.hero-image {
  left: 50%;
  right: auto;
  width: min(100%, 1800px);
  max-width: 1800px;
  transform: translateX(-50%);
  overflow: hidden;
}
.hero::before {
  background: linear-gradient(90deg, #292637e0 0%, #292637b8 27%, #29263759 54%, #29263708 83%),
              linear-gradient(0deg, #454352 0%, #45435200 30%, #45435212 100%);
}
.hero-image img { filter: saturate(1.08) brightness(1.12); }
.hero-grid { opacity: .035; }
.hero-content { padding-top: 25px; }
.hero-eyebrow, .hero-description, .hero-footer, .hero-tags span { color: var(--text); }
.hero-description { text-shadow: 0 1px 8px #292637; }
.hero h1 { line-height: .95; text-shadow: 0 2px 20px #29263755; }
.hero h1 .neon-title {
  position: relative;
  isolation: isolate;
  display: inline-block;
  margin-top: .035em;
  color: var(--pink-text);
  text-shadow: 0 0 15px #ff47be55;
}
@supports (-webkit-text-stroke: 1px white) {
  .hero h1 .neon-title {
    color: #343043;
    -webkit-text-stroke: 3px #ffe0f6;
    paint-order: fill stroke;
    text-shadow: 0 0 2px var(--pink), 0 0 6px var(--pink), 0 0 18px #ff47be99;
    filter: drop-shadow(0 0 2px var(--pink)) drop-shadow(0 0 7px #ff47be66);
  }
  .hero h1 .neon-title::before {
    content: attr(data-text);
    position: absolute;
    inset: 0;
    z-index: -1;
    transform: translate(-5px, 4px);
    color: transparent;
    -webkit-text-stroke: 2.5px var(--cyan);
    text-shadow: 0 0 7px #54e7f280;
  }
}
@supports (content: "text" / "") {
  .hero h1 .neon-title::before { content: attr(data-text) / ""; }
}
.neon-frame { position: absolute; inset: 18px; z-index: -1; pointer-events: none; animation: neon-hum 5s ease-in-out infinite alternate; }
@keyframes neon-hum { from { opacity: .76; } to { opacity: 1; } }
.neon-frame i { position: absolute; width: 108px; height: 108px; }
.neon-frame i::before, .neon-frame i::after {
  content: "";
  position: absolute;
  inset: 0;
  border: solid var(--pink);
  border-width: 0;
  filter: drop-shadow(0 0 3px var(--pink)) drop-shadow(0 0 8px #ff47be99);
}
.neon-frame i::after { inset: 10px; border-color: var(--cyan); filter: drop-shadow(0 0 4px #54e7f2aa); }
.neon-corner--tl { top: 0; left: 0; }
.neon-corner--tr { top: 0; right: 0; }
.neon-corner--bl { bottom: 0; left: 0; }
.neon-corner--br { bottom: 0; right: 0; }
.neon-frame .neon-corner--tl::before, .neon-frame .neon-corner--tl::after { border-top-width: 2px; border-left-width: 2px; }
.neon-frame .neon-corner--tr::before, .neon-frame .neon-corner--tr::after { border-top-width: 2px; border-right-width: 2px; }
.neon-frame .neon-corner--bl::before, .neon-frame .neon-corner--bl::after { border-bottom-width: 2px; border-left-width: 2px; }
.neon-frame .neon-corner--br::before, .neon-frame .neon-corner--br::after { border-bottom-width: 2px; border-right-width: 2px; }
.hero-actions .text-link { padding-block: 10px; border-bottom: 1px solid var(--cyan); }
.hero-tags span { border-color: #ffffff66; background: #45435240; }
.hero-stamp {
  color: var(--lime);
  transform: none;
  background: #373345a8;
  border: 2px solid var(--pink);
  box-shadow: 0 0 7px #ff47beaa, inset 0 0 12px #ff47be22;
}
.stamp-ring { inset: -9px; border: 2px solid var(--cyan); box-shadow: 0 0 7px #54e7f266; animation: none; }
.hero-stamp span { color: var(--text); letter-spacing: .1em; }
.ticker {
  background: #51465f;
  color: var(--text);
  border-top: 1px solid #ff47be99;
  border-bottom: 1px solid #54e7f299;
  box-shadow: 0 -2px 16px #ff47be1a, 0 2px 16px #54e7f21a;
}
.ticker b { color: var(--pink-text); }

/* Reading surfaces keep a midtone plum base and solid text. */
.space-copy .footnote, .space-stats > div > span { color: var(--muted); }
.space-stats strong span { color: var(--cyan); }
.space-photo > img { filter: saturate(1.04); }
.space-photo { border: 1px solid #54e7f299; box-shadow: -3px 0 18px #54e7f218, 3px 0 18px #ff47be18; }
.photo-label { background: #3b354de6; color: var(--text); }
.photo-corner { border-color: var(--pink); filter: drop-shadow(0 0 4px #ff47be88); }
.photo-index { background: var(--bg); }
.features-section {
  background: radial-gradient(ellipse at 80% 0%, #ff47be12, transparent 55%), #494456;
  border-block-color: #a99bb34d;
}
.features-top { border-left: 3px solid var(--cyan); padding-left: 30px; }
.features-top .eyebrow { color: var(--text); }
.features-top h2 span { color: #ff76d5; }
.features-grid { gap: 20px; }
.features-grid article:nth-child(n) {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  column-gap: 20px;
  row-gap: 10px;
  align-content: start;
  padding: 30px 28px;
  border: 1px solid #b9b0ce55;
  border-left: 3px solid var(--pink);
  border-radius: 8px;
  background: linear-gradient(140deg, #5b4e6840, #42435350);
  box-shadow: -4px 0 14px #ff47be15;
  transition: border-color .2s, background .2s, transform .2s;
}
.features-grid article:nth-child(3n+2) { border-left-color: var(--cyan); box-shadow: -4px 0 14px #54e7f215; }
.features-grid article:hover { background: #65557566; transform: translateY(-3px); }
.features-grid article > svg { grid-column: 1; grid-row: 1 / span 2; width: 48px; height: 48px; margin-bottom: 0; color: var(--pink-text); filter: drop-shadow(0 0 4px #ff47be55); }
.features-grid article:nth-child(3n+2) > svg { color: var(--cyan); filter: drop-shadow(0 0 4px #54e7f255); }
.feature-number { color: #e0d8ed; right: 14px; top: 12px; font-size: 11px; }
.features-grid h3 { grid-column: 2; font-size: 19px; margin-bottom: 0; }
.features-grid p { grid-column: 2; color: var(--muted); max-width: none; }
.gallery-item { background: var(--surface); border: 1px solid #b9b0ce55; }
.gallery-item img { filter: saturate(1.04); }
.gallery-item:hover { border-color: var(--pink); box-shadow: 0 0 16px #ff47be2b; }
.gallery-caption svg { background: #45435299; color: var(--cyan); border-color: #54e7f299; }
.occasions-section {
  background: radial-gradient(ellipse at 80% 40%, #ff47be1a, transparent 60%), #595267;
  color: var(--text);
  border-block: 1px solid #9f8da766;
}
.occasions-inner > p > span { color: var(--pink-text); }
.occasion-tags { color: var(--cyan); }
.occasion-asterisk { color: var(--pink); }

/* The estimator stays informational; this file changes its appearance only. */
.price-builder { background: #4c465b; border-color: #a89bb65c; border-left: 2px solid var(--cyan); border-radius: 8px; }
.estimate-badge { background: #63546e; color: var(--text); border: 1px solid #ff47be66; }
.field-help, .range-labels { color: var(--muted); }
.control-row label, .guest-options legend > span, .extras-options legend > span, .late-control > label > span { color: var(--cyan); }
.control-row output { color: var(--cyan); }
.hours-range { accent-color: var(--cyan); }
.hours-range::-webkit-slider-runnable-track { background: linear-gradient(to right, var(--cyan) 0%, var(--cyan) var(--range-progress,0%), #91869f var(--range-progress,0%), #91869f 100%); }
.hours-range::-webkit-slider-thumb { background: var(--cyan); border-color: #454352; box-shadow: 0 0 0 1px var(--cyan), 0 0 10px #54e7f250; }
.hours-range::-moz-range-track { background: #91869f; }
.hours-range::-moz-range-progress { background: var(--cyan); }
.hours-range::-moz-range-thumb { background: var(--cyan); border-color: #454352; }
.guest-buttons label > span { border-color: #aa9eb966; color: var(--muted); background: #514b60; }
.guest-buttons input:checked + span { border-color: var(--cyan); background: #54e7f210; color: var(--cyan); box-shadow: 0 0 11px #54e7f21a; }
.guest-buttons input:checked + span strong { color: var(--cyan); }
.late-control select { background: #403b50; border-color: #b1a0c680; color: var(--text); }
.late-control option { color: var(--text); background: #403b50; }
.extras-options > label { border-color: #a89bb64d; }
.extras-options input { accent-color: var(--cyan); }
.extras-options strong { color: var(--text); }
.price-summary {
  color: var(--text);
  background: linear-gradient(140deg, #63536d, #484b5e);
  border: 1px solid var(--pink);
  border-left-color: var(--cyan);
  border-radius: 8px;
  box-shadow: -4px 0 18px #54e7f222, 4px 0 18px #ff47be22;
}
.summary-top .eyebrow, .total-label, .price-breakdown dt, .estimate-note { color: var(--muted); }
.equalizer i { background: var(--cyan); }
.estimate-total > strong { color: var(--lime); }
.price-breakdown { border-color: #d3c3e34d; }
.deposit-note svg { color: var(--cyan); }
.deposit-note strong { color: var(--text); }
.price-summary .button { color: #1c2110; background: var(--lime); border-color: var(--lime); }
.price-summary .button:hover { background: #e5ff8a; box-shadow: 0 0 16px #d6ff3f33; }
.save-estimate { color: var(--cyan); }
.save-status { color: var(--text); }
.price-summary a:focus-visible, .price-summary button:focus-visible { outline-color: var(--cyan); }
thead, .full-prices summary svg { color: var(--cyan); }

.faq-section { background: #4b455a; border-block-color: #b0a0bf4d; }
.faq-intro .eyebrow, .faq-list summary svg { color: var(--cyan); }
.faq-list details, .faq-list details:first-child { border-color: #b4a6c25c; }
.faq-list summary:hover { color: var(--pink-text); }
.faq-answer { color: var(--muted); }
.final-section > img { filter: saturate(1.08) brightness(1.08); }
.final-section::after { background: linear-gradient(90deg, #383047dc, #38304740), linear-gradient(0deg, #454352d9, transparent 65%); }
.final-content h2 span { color: var(--pink-text); text-shadow: 0 0 22px #ff47be22; }
.final-content .eyebrow, .final-note, .visit-section address { color: var(--muted); }
.visit-heading > svg, .visit-section address > span { color: var(--cyan); }

/* A continuous cyan/pink edge frames the complete policy, not just an excerpt. */
.policy-section { background: radial-gradient(ellipse at 90% 0%, #ff47be12, transparent 60%), #4d465d; border-top-color: #b6a3c84d; }
.policy-section > .container {
  width: min(calc(100% - 2 * var(--gutter)), 1432px);
  padding: 44px;
  border: 1px solid var(--pink);
  border-left: 2px solid var(--cyan);
  border-radius: 9px;
  box-shadow: -4px 0 15px #54e7f22b, 4px 0 15px #ff47be2b;
}
.policy-heading > p, .policy-content, .policy-content caption, .policy-rate-table tbody th span, .policy-bottom { color: var(--muted); }
.policy-content strong { color: var(--text); }
.policy-list details, .policy-list details:last-child { border-color: #b7a9c466; }
.policy-number, .policy-list summary > svg { color: var(--pink-text); }
.policy-list summary:hover { color: var(--cyan); }
.policy-content li::marker { color: var(--pink-text); }
.policy-heading h2 { font-size: clamp(36px, 3.8vw, 57px); }
.site-footer { background: #3c384a; border-top-color: #b0a0bf55; }
.footer-top > p > span { color: var(--pink-text); }
.footer-bottom { color: var(--muted); border-color: #b0a0bf55; }
.footer-bottom button { color: var(--text); }
.footer-contact a:hover, .footer-socials a:hover, .footer-bottom a:hover { color: var(--cyan); }
.motion-off #motion-toggle .small-dot { background: #b8b1c7; }
.lightbox { background: #454352; border-color: var(--cyan); box-shadow: 0 0 25px #ff47be33; }
.lightbox::backdrop { background: #292333ed; }
.lightbox button { background: #51465f; color: var(--cyan); border-color: #ac92bd; }
.lightbox button:hover { background: #6a537a; }
.lightbox-footer > span { color: var(--cyan); }

@media (max-width: 1100px) {
  .features-grid { gap: 16px; }
  .features-grid article:nth-child(n) { padding: 26px 22px; }
  .features-grid h3 { font-size: 18px; }
  .policy-section > .container { padding: 32px; }
}
@media (min-width: 1101px) {
  /* Feather the photo into the page on both sides; the existing overlay fades the bottom. */
  .hero-image {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  }
  .neon-frame {
    left: 50%;
    right: auto;
    width: min(calc(100% - 36px), 1764px);
    transform: translateX(-50%);
  }
}
@media (min-width: 1800px) {
  .hero-stamp { right: calc((100% - 1800px) / 2 + 140px); }
}
@media (max-width: 900px) {
  .features-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .features-top { padding-left: 22px; }
}
@media (max-width: 650px) {
  .hero::before { background: linear-gradient(90deg, #30283de0 0%, #30283db0 52%, #30283d30), linear-gradient(0deg, #454352 1%, #45435233 40%, transparent 80%); }
  .hero-content { padding-top: 64px; }
  .hero h1 { font-size: clamp(72px,17vw,110px); line-height: .98; }
  .hero h1 .neon-title { -webkit-text-stroke-width: 2px; }
  .hero h1 .neon-title::before { -webkit-text-stroke-width: 1.6px; transform: translate(-3px,2px); }
  .hero-description { max-width: 300px; font-size: 16px; margin-top: 23px; }
  .hero-tags { max-width: calc(100% - 8px); }
  .hero-tags span { letter-spacing: .07em; padding: 6px; }
  .neon-frame { inset: 11px; }
  .neon-frame i { width: 52px; height: 65px; }
  .neon-frame i::after { inset: 7px; }
  .hero-stamp { right: 29px; width: 88px; height: 88px; bottom: 79px; }
  .hero-stamp strong { font-size: 36px; }
  .hero-stamp span { font-size: 9px; }
  .stamp-ring { inset: -7px; }
  .hero-footer { bottom: 23px; }
  .features-top { padding-left: 18px; }
  .features-top h2 { font-size: clamp(48px, 13vw, 65px); }
  .features-grid { gap: 13px; }
  .features-grid article:nth-child(n) { display: block; padding: 24px 15px; }
  .features-grid h3 { font-size: 17px; margin-bottom: 10px; }
  .features-grid p { font-size: 15px; }
  .features-grid article > svg { width: 40px; height: 40px; margin-bottom: 22px; }
  .feature-number, .features-grid article:nth-child(2n) .feature-number { right: 13px; top: 25px; font-size: 11px; }
  .policy-section > .container { width: calc(100% - 36px); padding: 25px 18px; }
  .policy-section .section-label { flex-direction: column; gap: 7px; margin-bottom: 26px; }
  .policy-section .section-label > span:last-child { text-align: left; }
  .policy-heading h2 { font-size: 36px; }
  .policy-list summary { font-size: 16px; gap: 10px; }
  .policy-list summary > span { gap: 10px; }
  .policy-list summary > svg { width: 18px; height: 18px; }
  .policy-content th, .policy-content td { padding: 12px 4px; }
  .policy-content table { font-size: 14px; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 68px; }
  .hero-description { font-size: 15px; }
  .hero-actions { gap: 15px; }
  .hero-actions .button { padding-inline: 13px; gap: 14px; }
  .features-grid { grid-template-columns: 1fr; }
  .features-grid article:nth-child(n) { padding: 25px; }
  .policy-heading h2 { font-size: 32px; }
  .policy-content table { font-size: 13px; }
}
@media print {
  body, .features-section, .faq-section, .policy-section, .policy-section > .container, .price-builder, .price-summary { background: white; color: #111; box-shadow: none; }
  .policy-section > .container { width: 100%; padding: 20px 0; border: 0; }
  .policy-content, .policy-content strong, .policy-heading > p, .policy-content caption, .policy-rate-table tbody th span, .policy-bottom, .price-breakdown dt, .deposit-note strong, .estimate-note, .total-label, .estimate-total > strong { color: #111; }
  .features-grid article:nth-child(n) { background: white; border-color: #888; box-shadow: none; }
}
