:root {
  --navy: #10182b;
  --navy-deep: #0b1322;
  --navy-light: #1b2840;
  --gold: #d5b574;
  --gold-light: #f0cf8d;
  --cream: #f6f0e5;
  --muted: #c4c8d2;
  --line: #d5b5743d;
  --ink: #172136;
}
body { background: var(--navy-deep); }
.shell { width: min(1280px, calc(100% - 7rem)); }
section { scroll-margin-top: 1rem; }
.top { background: var(--navy-deep); border: 0; }
.header-inner { min-height: 92px; }
.brand img { display: block; width: 58px; height: 58px; object-fit: contain; }
.brand small { display: block; font-size: .48rem; letter-spacing: .18em; }
.brand > span { color: var(--gold-light); font-size: 1.04rem; letter-spacing: .12em; }
.desktop-nav { margin-left: auto; gap: 2.2rem; color: var(--cream); font-size: .85rem; }
.header-cta { display: inline-flex; gap: .8rem; border: 1px solid #f2ce8e80; border-radius: 8px; background: linear-gradient(130deg, #edc980, #c39a52); color: #10182b; padding: .85rem 1.4rem; font-size: .8rem; font-weight: 600; }
.header-cta span { color: inherit; }
.eyebrow { letter-spacing: .23em; color: var(--gold-light); font-size: .64rem; }
.button { border-radius: 8px; min-height: 54px; padding: 1rem 1.65rem; font-size: .8rem; letter-spacing: .015em; }
.primary { background: linear-gradient(125deg, #edca86, #c59c55); color: #111827; border: 1px solid #efd19d85; }
.primary:hover, .header-cta:hover { background: linear-gradient(125deg, #f2d79f, #ddba77); }
.secondary { border-color: #d5b57466; }
.hero { position: relative; overflow: clip; padding: 3.1rem 0 0; background: linear-gradient(120deg, #0b1424, #111c2e 70%, #172032); }
.hero-grid { grid-template-columns: 1.45fr .85fr; gap: 2.5rem; padding-bottom: 3.7rem; }
.hero-copy { position: relative; z-index: 1; padding: 1.4rem 0; }
.hero-copy h1 { margin: 1.6rem 0 1.8rem; color: var(--cream); font-size: clamp(3.9rem, 6.7vw, 6.35rem); font-weight: 600; line-height: 1.025; letter-spacing: -.06em; }
.lead { max-width: 40ch; margin-bottom: 2.3rem; color: #e1e0e2; font-size: 1.03rem; line-height: 1.75; }
.hero-copy .actions { align-items: center; gap: 1.8rem; }
.hero-text-link { display: inline-flex; min-height: 48px; align-items: center; border-bottom: 1px solid var(--gold); font-size: .8rem; }
.hero-text-link:hover { color: var(--gold-light); }
.hero-note { margin-top: 1.8rem; font-size: .74rem; color: #c2c5cf; }
.hero-brand { display: block; position: relative; width: 100%; max-width: 290px; justify-self: center; padding: 0; }
.hero-brand img { position: relative; display: block; width: 100%; max-width: 100%; height: auto; margin: 0; filter: none; }
.hero-bottom { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 1.55rem 0; text-align: center; border-top-color: #d5b57455; color: var(--gold-light); font-size: .65rem; letter-spacing: .22em; }
.hero-bottom > span + span { border-left: 1px solid #d5b5748c; }
.rental { padding: 4.3rem 0 4rem; background: radial-gradient(ellipse at 14% 5%, #263951 0, transparent 57%), linear-gradient(125deg, #1b2a41, #101c30); color: var(--cream); }
.rental-grid { grid-template-columns: 1.1fr 1fr; gap: 4rem; }
.rental-copy { order: 2; }
.rental .eyebrow { color: var(--gold-light); }
.rental h2 { color: var(--cream); font-size: clamp(2.4rem, 3.65vw, 3.65rem); line-height: 1.16; letter-spacing: -.04em; }
.rental-copy > p:not(.eyebrow) { color: #d5d9e0; font-size: .91rem; line-height: 1.85; }
.rental-copy .rental-small { color: #adb8c8 !important; font-size: .7rem !important; margin-top: 1.25rem; }
.rental-copy .actions { gap: 1.6rem; align-items: center; }
.rental-request-link, .rental-tour-link, .service-link { display: inline-flex; align-items: center; gap: 1.2rem; min-height: 48px; padding: .6rem 0; border: 0; border-bottom: 1px solid var(--gold); background: transparent; color: var(--gold-light); font-size: .86rem; letter-spacing: .035em; }
.rental-request-link:hover, .rental-tour-link:hover, .service-link:hover { color: #fff1d1; border-color: #fff1d1; }
.rental-tour-link { font-size: .72rem; letter-spacing: 0; border-bottom-color: #d5b57466; color: #d4d7df; }
.tent-photo { order: 1; background: none; }
.tent-photo > a { background: none; }
.tent-photo img { aspect-ratio: 3 / 2; object-fit: contain; filter: drop-shadow(0 20px 16px #04091666); }
.tent-photo figcaption { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .3rem 1.4rem; padding: 1.2rem .2rem 0; border: 0; text-align: center; color: #d3d5df; }
.tent-photo figcaption::before, .tent-photo figcaption::after { content: ''; grid-row: 1; height: 1px; background: var(--gold); }
.tent-photo figcaption::before { grid-column: 1; }
.tent-photo figcaption::after { grid-column: 3; }
.tent-photo figcaption strong { grid-row: 1; grid-column: 2; color: var(--gold-light); font: 400 2.8rem/1.2 Georgia, serif; }
.tent-photo figcaption > span { grid-column: 1 / -1; grid-row: 2; margin-top: .35rem; font-size: .72rem; letter-spacing: .22em; }
.rental-details { border-top-color: var(--line); margin-top: 2rem; }
.rental-details > p, .rental-details .price-note { color: #c4c9d4; }
.rental-details .price-note strong { color: var(--gold-light); }
.room-section { border-top-color: var(--line); padding-top: 3rem; margin-top: 3rem; }
.room-intro > p, .room-disclaimer { color: #bcc5d3; }
.room-card { border-color: #d5b57455; border-radius: 10px; overflow: hidden; }
.room-plan { background: #111d31; }
.sessions { padding: 2.2rem 0 3.2rem; margin-top: 0; }
.sessions-panel { display: grid; grid-template-columns: 88px minmax(220px, 1fr) minmax(140px, 220px) 156px; align-items: center; gap: 1.7rem; border: 1px solid #94a6c33d; border-radius: 13px; padding: 1.65rem 1.9rem; background: linear-gradient(115deg, #0b1729cc, #0b1525ee); box-shadow: 0 12px 36px #030a151f; }
.sessions-heading h3 { color: var(--gold-light); font: 600 .8rem/1.5 Arial, sans-serif; letter-spacing: .23em; text-transform: uppercase; margin: 0 0 .4rem; }
.sessions-heading p { margin: 0; color: #c5cbd5; font-size: .7rem; letter-spacing: .065em; }
.sound-mark, .sound-wave { display: flex; align-items: center; justify-content: center; height: 52px; gap: 4px; }
.sound-mark { border-right: 1px solid #d5b57455; padding-right: 1.5rem; gap: 3px; }
.sound-mark i, .sound-wave i { display: block; width: 2px; height: 12px; background: var(--gold); transform-origin: center; }
.sound-mark i:nth-child(2n) { height: 32px; }
.sound-mark i:nth-child(3n) { height: 23px; }
.sound-mark i:nth-child(5n) { height: 45px; }
.sound-mark i:nth-child(7n) { height: 19px; }
.sound-wave { gap: 4px; }
.sound-wave i { width: 2px; height: 13px; background: #597190; }
.sound-wave i:nth-child(2n) { height: 26px; }
.sound-wave i:nth-child(3n) { height: 37px; }
.sound-wave i:nth-child(5n) { height: 17px; }
.sound-wave i:nth-child(7n) { height: 46px; }
.sessions-panel.is-playing .sound-wave i { background: #d5b574a6; animation: session-pulse 1.1s ease-in-out infinite alternate; }
.sessions-panel.is-playing .sound-wave i:nth-child(2n) { animation-delay: -.3s; }
.sessions-panel.is-playing .sound-wave i:nth-child(3n) { animation-delay: -.7s; }
@keyframes session-pulse { from { transform: scaleY(.4); } to { transform: scaleY(1); } }
.sound-toggle { display: inline-flex; justify-content: center; align-items: center; min-height: 53px; padding: .7rem 1rem; gap: .85rem; border: 1px solid var(--gold-light); border-radius: 40px; background: #071220; color: var(--cream); font-size: .8rem; white-space: nowrap; }
.sound-toggle:hover { background: #26344a; }
.sound-icon { color: var(--gold-light); font-size: 1.3rem; }
.sessions-player { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(155px, .9fr) minmax(170px, 1.4fr) 160px; gap: 2rem; align-items: center; padding-top: 1.4rem; border-top: 1px solid #d5b57426; }
.track-now { display: grid; grid-template-columns: 1fr; gap: .15rem; }
.track-kicker { font-size: .6rem; color: #aab6c9; margin-bottom: .3rem; }
.track-now strong { color: var(--cream); font: 400 1.22rem/1.3 Georgia, serif; }
.track-now > span:last-child { font-size: .7rem; color: #b8c2d2; }
.playback-controls { display: flex; gap: .65rem; align-items: center; }
.playback-controls button { flex: 0 0 40px; width: 40px; min-height: 44px; background: none; border: 1px solid #d5b57450; color: var(--gold-light); border-radius: 50%; }
.seek-field { width: 100%; }
.track-time { display: flex; justify-content: space-between; color: #bbc5d5; font-size: .6rem; line-height: 1; padding-top: .25rem; }
.sessions-panel input[type=range] { display: block; accent-color: var(--gold-light); height: 26px; padding: 0; margin: 0; background: transparent; border: 0; cursor: pointer; }
.sessions-panel input[type=range]:disabled { cursor: default; opacity: .6; }
.sessions-panel input[type=range]:focus-visible { outline-offset: 3px; outline-color: var(--gold); }
.volume-field { color: #bbc5d5; font-size: .65rem; }
.volume-field input { margin-top: .2rem !important; }
.session-tracks { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; padding: 0; margin: -.25rem 0 0; border-top: 1px solid #d5b57426; }
.session-tracks li { min-width: 0; }
.session-tracks button { width: 100%; display: grid; grid-template-columns: 23px 1fr 34px; align-items: center; gap: .6rem; min-height: 73px; border: 0; border-bottom: 2px solid transparent; background: none; color: #c0cad9; text-align: left; padding: .65rem .9rem; font-size: .75rem; }
.session-tracks button:hover, .session-tracks button[aria-pressed=true] { background: #d5b5740d; border-bottom-color: var(--gold); color: var(--gold-light); }
.session-tracks small { display: block; color: #adb9cb; font-size: .61rem; margin-top: .25rem; }
.track-number { color: #bda773; font-size: .65rem; }
.session-tracks button > span:last-child { font-size: .65rem; text-align: right; }
.sound-status, .music-credit { grid-column: 1 / -1; color: #b0bdd0; font-size: .64rem; line-height: 1.7; margin: -1rem 0 0; }
.music-credit { color: #8f9db2; font-size: .59rem; }
.music-credit a { text-decoration: underline; text-underline-offset: 3px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.events { background: var(--navy-deep); }
.events .section-intro { gap: 4.5rem; }
.events .section-intro > p { font-size: .96rem; }
.service { border-top-color: #d5b57466; }
.service h3 { color: var(--cream); }
.service p { font-size: .9rem; }
.service-link, .service > a { font-size: .73rem; letter-spacing: 0; }
.process { background: linear-gradient(125deg, #1b2840, #142137); }
.contact { background: #0b1424; }
footer { background: #091220; }
.footer-name { color: var(--gold-light); }
.request-dialog { border-radius: 12px; }
.request-dialog .primary { color: #111827; }
@media (min-width: 1550px) {
  .hero-grid { padding-bottom: 4.7rem; }
  .hero-copy h1 { font-size: 6.7rem; }
}
@media (max-width: 1100px) {
  .shell { width: calc(100% - 4rem); }
  .desktop-nav { gap: 1.3rem; font-size: .75rem; }
  .brand > span { font-size: .98rem; }
  .header-cta { padding: .75rem 1rem; font-size: .72rem; }
  .hero-copy h1 { font-size: clamp(3.4rem, 6.6vw, 5.5rem); }
  .hero-grid { grid-template-columns: 1.35fr .75fr; }
  .hero-brand { max-width: 245px; padding: 0; }
  .hero-copy .actions { gap: 1rem; }
  .hero-text-link { font-size: .73rem; }
  .rental-grid { gap: 2.5rem; }
  .sessions-panel { grid-template-columns: 65px 1fr 130px 140px; padding: 1.5rem; gap: 1.1rem; }
  .sound-mark { padding-right: 1rem; gap: 2px; }
  .sessions-player { gap: 1.2rem; grid-template-columns: minmax(130px, .9fr) minmax(170px, 1.3fr) 115px; }
}
@media (max-width: 760px) {
  .shell { width: calc(100% - 2.5rem); }
  .header-inner { min-height: 79px; }
  .header-cta, .desktop-nav { display: none; }
  .brand img { width: 46px; height: 46px; }
  .brand > span { font-size: .94rem; }
  .brand small { font-size: .43rem; letter-spacing: .15em; }
  .mobile-menu summary { border-radius: 6px; color: var(--gold-light); }
  .mobile-menu nav { background: #142037; border-radius: 8px; }
  .hero { padding-top: 1.6rem; }
  .hero-grid { grid-template-columns: 1fr; gap: .2rem; padding-bottom: 1.8rem; }
  .hero-copy { padding: 0; }
  .hero .eyebrow { font-size: .55rem; letter-spacing: .16em; }
  .hero-copy h1 { font-size: clamp(2.85rem, 14vw, 5.4rem); line-height: 1.04; margin: 1.35rem 0 1.5rem; }
  .lead { font-size: .95rem; margin-bottom: 1.6rem; max-width: 39ch; }
  .hero-copy .actions { gap: 1.2rem; }
  .hero-copy .button { padding: .85rem 1.2rem; min-height: 51px; font-size: .76rem; }
  .hero-text-link { font-size: .72rem; }
  .hero-note { font-size: .65rem; margin-top: 1.2rem; }
  .hero-brand { display: none; }
  .hero-bottom { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0; padding: 1.2rem 0; font-size: .5rem; letter-spacing: .07em; }
  .hero-bottom span { padding: 0 .45rem; }
  .rental { padding: 3.3rem 0; }
  .rental-grid { grid-template-columns: 1fr; gap: 2.6rem; }
  .rental-copy { order: 1; }
  .rental h2 { font-size: clamp(2.25rem, 8.7vw, 3.35rem); }
  .tent-photo { order: 2; }
  .tent-photo figcaption { padding-top: .8rem; }
  .tent-photo figcaption strong { font-size: 2.4rem; }
  .tent-photo figcaption > span { font-size: .64rem; }
  .sessions { margin-top: 0; padding: 1.8rem 0 2.4rem; }
  .sessions-panel { grid-template-columns: 42px 1fr; gap: 1.2rem; padding: 1.25rem; border-radius: 10px; }
  .sessions-heading h3 { font-size: .72rem; letter-spacing: .17em; }
  .sessions-heading p { font-size: .6rem; letter-spacing: .015em; }
  .sound-mark { height: 43px; padding-right: .7rem; gap: 2px; }
  .sound-mark i { flex-shrink: 0; width: 1px; }
  .sound-wave { display: none; }
  .sound-toggle { grid-column: 1 / -1; min-height: 49px; }
  .sessions-player { grid-template-columns: 1fr; gap: 1rem; padding-top: 1.2rem; }
  .track-now { grid-template-columns: 1fr auto; }
  .track-kicker { grid-column: 1 / -1; }
  .track-now > span:last-child { align-self: center; }
  .volume-field { display: flex; align-items: center; gap: 1rem; max-width: 210px; }
  .volume-field input { flex: 1; }
  .session-tracks { grid-template-columns: 1fr; margin-top: -.1rem; }
  .session-tracks button { min-height: 63px; padding: .6rem; }
  .sound-status, .music-credit { margin-top: -.3rem; font-size: .61rem; }
  .music-credit { font-size: .56rem; }
  .room-section { padding-top: 2.4rem; margin-top: 2.5rem; }
  .room-intro h3 { font-size: 1.9rem; }
  .room-disclaimer { font-size: .67rem; }
  .events { padding: 3.5rem 0; }
  .events .section-intro { gap: 1.5rem; }
  .section-intro h2 { font-size: 2.65rem; }
  .events .section-intro > p { font-size: .9rem; }
  .contact-grid h2 { font-size: 3.3rem; }
}
@media (prefers-reduced-motion: reduce) {
  .sessions-panel.is-playing .sound-wave i { animation: none; }
}
