:root{--bg:#100d23;--panel:#1b1633;--text:#f4f0ff;--muted:#bcb5cf;--purple:#b09aff;--blue:#88dcff;--line:#3a3153}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit}button,input,select{font:inherit}a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:0;z-index:50;background:white;color:black;padding:10px}header{max-width:1280px;margin:auto;padding:26px 38px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-weight:800;font-size:14px;letter-spacing:1px}.brand img{width:56px;height:56px;object-fit:contain}.brand small{display:block;font-size:9px;font-weight:400;color:var(--muted);letter-spacing:1.7px;margin-top:4px}nav{display:flex;gap:26px;align-items:center;font-size:13px}nav a{text-decoration:none}.small-button{background:var(--text);color:var(--bg);padding:10px 20px;border-radius:30px;font-weight:bold}.hero{max-width:1280px;margin:auto;min-height:650px;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:64px 38px 78px;gap:26px;overflow:hidden}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:2.8px;color:var(--blue);margin:0 0 20px}h1{font-size:clamp(45px,4.6vw,67px);line-height:1.04;letter-spacing:-3px;margin:0 0 26px}em{font-style:normal;color:var(--purple)}.intro{max-width:475px;font-size:17px;color:var(--muted)}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 18px}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--purple);color:#160c30;font-weight:700;text-decoration:none;border:1px solid var(--purple);border-radius:6px;padding:14px 21px;font-size:14px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px);background:#c5b4ff}.button.outline{background:transparent;color:var(--text);border-color:#645781}.micro{font-size:12px;color:var(--muted)}.hero-art{position:relative;text-align:center}.hero-art img{width:100%;max-width:535px;position:relative;filter:drop-shadow(0 0 30px #693aa64a)}.orbit{position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse,#6944aa60,transparent 65%)}.art-tag{display:block;font-size:10px;letter-spacing:4px;color:var(--muted);margin-top:16px}.road-strip{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;padding:19px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#17122a;color:var(--muted);font-size:10px;font-weight:bold;letter-spacing:2px}.road-strip b{color:var(--purple)}.section{max-width:1140px;margin:auto;padding:86px 32px}h2{font-size:clamp(36px,4vw,52px);line-height:1.08;letter-spacing:-2px;margin:0 0 24px}.section-heading>p:last-child{max-width:540px;color:var(--muted);font-size:16px}.rates-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:65px;margin-top:38px}.finder{border:1px solid #66518a;background:linear-gradient(145deg,#251b41,#18152b);border-radius:12px;padding:28px}.finder>label:first-child{display:block;margin-bottom:9px;font-weight:bold;font-size:15px}select{width:100%;background:#110d21;color:white;border:1px solid #6b5b86;padding:13px;border-radius:5px;font-size:15px}.check{display:flex;align-items:flex-start;gap:10px;font-size:13px;margin-top:18px;color:var(--muted)}input[type=checkbox]{accent-color:var(--purple);width:18px;height:18px;flex-shrink:0}.estimate{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.estimate>span{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--blue)}.estimate strong{display:block;font-size:38px;line-height:1.3;letter-spacing:-1px;margin:8px 0}.estimate p{font-size:14px;color:var(--muted)}.full{width:100%}.rate-table>div{display:flex;justify-content:space-between;gap:22px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.rate-table b{font-size:31px;color:var(--purple);white-space:nowrap}.rate-table span{max-width:330px;font-size:17px}.rate-table>p{font-size:13px;color:var(--muted);margin-top:22px}.rate-table .night-note{border:0}.night-note span{font-size:11px;letter-spacing:2px}.night-note b{font-size:19px;color:var(--blue)}.booking-section{padding:74px max(24px,calc((100vw - 1076px)/2));background:linear-gradient(140deg,#251640,#14263b);border-block:1px solid #3c3659}.booking-notice{border-left:3px solid var(--blue);padding:4px 0 4px 22px;max-width:750px;margin:30px 0}.booking-notice p{color:#d2cee0}.booking-notice .button{padding:9px 17px}.evening-booking{font-size:13px;color:#ded6ef}.booking-frame{background:#fff;color:#151515;border-radius:10px;overflow:hidden;min-height:440px;padding:12px;margin-top:26px}.booking-frame iframe{width:100%;border:0;min-height:650px}.booking-fallback{text-align:center;font-size:14px}.center{text-align:center}.prepare{display:grid;grid-template-columns:1fr 1fr;gap:80px}.prepare>div>p:not(.eyebrow){color:var(--muted)}.text-link{color:var(--blue);font-weight:bold}.steps{counter-reset:step;list-style:none;padding:0;margin:0}.steps li{counter-increment:step;position:relative;padding:0 0 26px 54px}.steps li:before{content:'0' counter(step);position:absolute;left:0;top:0;color:var(--purple);font-size:18px;font-weight:bold}.steps b{display:block;font-size:16px}.steps span{display:block;color:var(--muted);font-size:14px;margin-top:6px}.about{border-top:1px solid var(--line);display:grid;grid-template-columns:.7fr 1fr;align-items:center;gap:85px;padding-top:65px}.portrait img{width:100%;display:block;max-height:420px;object-fit:cover;object-position:center 25%;border-radius:100px 100px 14px 14px}.about>div>p:not(.eyebrow){color:var(--muted);margin-bottom:26px}.policies{padding-top:35px}details{border-bottom:1px solid var(--line);padding:20px 0}summary{font-weight:bold;font-size:17px;cursor:pointer}details p{color:var(--muted);font-size:14px;max-width:880px}.legal{background:#231c38;border:1px solid #66547d;border-radius:8px;margin-top:38px;padding:25px}.legal strong{font-size:11px;letter-spacing:1.7px;color:var(--blue)}.legal p{font-size:16px;line-height:1.65;margin-bottom:0}footer{max-width:1280px;border-top:1px solid var(--line);margin:auto;padding:38px;display:flex;justify-content:space-between;gap:30px}footer strong{font-size:13px;letter-spacing:2px}footer p,footer span{font-size:12px;color:var(--muted)}footer a{display:block;font-size:14px;margin-bottom:8px}footer a:first-child{font-size:22px;color:var(--blue);text-decoration:none}@media(max-width:760px){header{padding:18px 20px}.brand{font-size:11px}.brand small{font-size:7px;letter-spacing:1px}.brand img{width:42px;height:42px}nav>a:not(.small-button){display:none}nav{gap:0}.small-button{font-size:11px;padding:9px 13px}.hero{grid-template-columns:1fr;padding:44px 24px 40px;gap:35px}h1{font-size:51px;letter-spacing:-2px}.hero-art{max-width:390px;margin:auto}.intro{font-size:16px}.road-strip{gap:14px;font-size:8px;letter-spacing:1px}.road-strip b{display:none}.section{padding:58px 24px}.rates-layout,.prepare,.about{grid-template-columns:1fr;gap:30px}.finder{padding:22px}.rate-table>div{padding:18px 0}.booking-section{padding:55px 20px}.booking-frame{padding:0}.booking-frame iframe{min-height:720px}.portrait{max-width:330px}.about{gap:35px}footer{padding:30px 24px;flex-direction:column}.legal{padding:20px}.legal p{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

#zip{width:100%;background:#110d21;color:white;border:1px solid #6b5b86;padding:13px;border-radius:5px;font-size:15px}.finder label[for=town]{display:block;font-weight:bold;margin:16px 0 9px}

/* A single location-to-fee flow replaces the duplicate price table. */
.streamlined{max-width:900px;padding:32px;margin-top:30px}.finder-fields{display:grid;grid-template-columns:1fr 2fr;gap:22px}.finder-fields label,.finder .finder-fields label[for=town]{display:block;font-size:14px;font-weight:700;margin:0 0 9px}.optional{font-weight:400;color:var(--muted);font-size:12px;margin-left:5px}.streamlined .estimate{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-top:24px}.streamlined .estimate[hidden]{display:none}.estimate #rate-label{text-transform:uppercase;font-size:11px;letter-spacing:2px;color:var(--blue)}.streamlined .estimate strong{font-size:50px;margin:2px 0}.streamlined .estimate p{margin:0;max-width:430px}.streamlined .estimate .button{flex-shrink:0}.finder-foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.finder-foot a{color:var(--blue)}.fee-disclosure{font-size:12px;color:var(--muted);max-width:900px;margin-top:18px}@media(max-width:600px){.streamlined{padding:22px}.finder-fields{grid-template-columns:1fr;gap:18px}.streamlined .estimate{align-items:flex-start;flex-direction:column}.streamlined .estimate .button{width:100%}}
/* Small-screen fit: preserve readable type and unbroken booking controls. */
.small-button{white-space:nowrap;flex-shrink:0}nav{flex-shrink:0}.brand{min-width:0}.brand img{flex-shrink:0}.finder-fields>div,.hero-copy,.prepare>div,.about>div{min-width:0}input,select{max-width:100%}footer a{overflow-wrap:anywhere}.booking-frame iframe{display:block;max-width:100%}
@media(max-width:760px){h1{font-size:clamp(36px,9.6vw,51px);letter-spacing:-1.8px}.hero{min-height:0}.brand small{line-height:1.5}.art-tag{letter-spacing:2px}}
@media(max-width:400px){header{padding:16px;gap:10px}.brand{gap:8px;font-size:10px;letter-spacing:.7px}.brand small{font-size:6px;letter-spacing:.6px}.brand img{width:36px;height:36px}.small-button{font-size:10px;padding:10px 12px}.hero{padding-top:34px}.hero .button{width:100%}.actions{gap:10px}.streamlined{padding:18px}.finder-foot{gap:12px}h2{font-size:34px}}
/* Lilac frame keeps Square's own checkout styling intact. */
.booking-frame{border:2px solid #bba2ef;background:#e6d9fa;padding:10px;border-radius:16px;box-shadow:0 0 0 5px #bd9af012,0 12px 40px #aa76df28,0 0 24px #b58ae21c}
.booking-frame iframe{border-radius:7px;background:#fff}
@media(max-width:760px){.booking-frame{padding:5px;border-radius:12px;box-shadow:0 0 0 3px #bd9af012,0 8px 26px #aa76df24}.booking-frame iframe{border-radius:5px}}
