:root {
  --ink: #fff3e4;
  --cream: #170f18;
  --plum: #261725;
  --muted: #d5c1ce;
  --line: #e7b9813d;
  --champagne: #f0c995;
  --glass: linear-gradient(145deg, #492e43c9, #241825ec 76%);
  color-scheme: dark;
}

body {
  background: radial-gradient(ellipse at 12% 4%, #4d2439 0, transparent 43rem),
    radial-gradient(ellipse at 86% 22%, #432c32 0, transparent 35rem), var(--cream);
}

.preview {
  background: #110b13;
  color: var(--champagne);
  border-bottom: 1px solid var(--line);
}

header {
  width: min(94%, 1320px);
  margin: 16px auto 0;
  padding: 14px clamp(16px, 3vw, 40px);
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #2f2031c7;
  box-shadow: inset 0 1px #ffffff1c, 0 14px 40px #08050857;
}

.brand { font-family: Georgia, serif; font-weight: normal; }
.brand small, .eyebrow { color: var(--champagne); }
.brand img { box-shadow: 0 0 0 1px #e7b98150; border-radius: 28%; }
nav a:not(.button):hover, .explore:hover { color: var(--champagne); }

.button {
  background: linear-gradient(120deg, #f7dcaf, #d9a671);
  color: #281522;
  border-color: #f7dcaf;
  box-shadow: 0 6px 20px #d9a6712b, inset 0 1px #fff5df;
}
.button:hover { background: #ffe2b8; color: #281522; }
.hero .button { background: linear-gradient(120deg, #f7dcaf, #d9a671); color: #281522; border-color: #f7dcaf; }

.hero { padding-top: clamp(40px, 6vw, 85px); perspective: none; }
.hero h1 { font-size: clamp(46px, 5.6vw, 84px); }
.hero h1 em { color: var(--champagne); }
.hero .eyebrow:before { background: var(--champagne); }
.hero .intro, .hero .fine, .hero-tags span { color: var(--muted); }
.hero-tags span { border-color: var(--line); background: #ffe7cc0a; }

.art {
  border-radius: 42% 42% 24px 24px / 23% 23% 24px 24px;
  transform: none;
  transform-style: flat;
  isolation: isolate;
  background: #291a27;
  box-shadow: 0 0 0 1px #e7b98185, 0 0 0 7px #e7b98115, 0 28px 68px #0a050bb3;
}
.art::before { display: none; }
.art::after {
  background: linear-gradient(180deg, #210f1c08 33%, #170d17e8 100%);
  box-shadow: inset 0 0 0 1px #ffe9be65;
}
.art .event-photo { object-position: center; transform: none; transition: none; }
.art .floating-note {
  background: linear-gradient(145deg, #573949ed, #241625f5);
  border: 1px solid #efc79599;
  color: #ffe4bd;
  box-shadow: inset 0 1px #ffffff32, 0 12px 26px #10071091;
}
.hero-video-controls {
  background: #261927e8;
  border-color: #e7b98170;
  box-shadow: inset 0 1px #ffffff25;
}

.occasion-ribbon {
  background: #f1c9950d;
  border-block: 1px solid var(--line);
  color: var(--champagne);
}
.occasion-ribbon span:before { color: inherit; }

.event-card, .package, .package.gold, .approach, .enquiry form {
  background: var(--glass);
  border-color: var(--line);
  box-shadow: inset 0 1px #ffffff16, 0 16px 36px #0805086e;
}
.event-card:hover, .package:hover, .event-card:focus-within, .package:focus-within {
  box-shadow: inset 0 1px #ffffff20, 0 18px 32px #0805089c;
}
.event-card p, .package-scope { color: var(--muted); }
.event-card a, .package-price strong, .package-label { color: var(--champagne); }
.event-symbol { border: 1px solid #e7b9813d; }
.package-section { background: radial-gradient(ellipse at 18% 0, #43273f, transparent 68%), #1b131e; }
.package { border-top-color: var(--tier); }
.package.gold { border-top-color: #f0c995; }
.package-picker select, .enquiry :is(input, select, textarea) {
  background: #211723;
  color: var(--ink);
  border-color: var(--line);
}

.editorial {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(20px, 5vw, 72px);
  align-items: start;
  scroll-margin-top: 20px;
}
.editorial p:not(.eyebrow) { color: var(--muted); }
.editorial-panel {
  padding: clamp(18px, 3vw, 34px);
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--glass);
  box-shadow: inset 0 1px #ffffff16, 0 16px 36px #0805086e;
}
.editorial-panel h3 { margin: 10px 0; }
.editorial-panel summary { cursor: pointer; color: var(--champagne); font-weight: bold; }
.blog { padding-top: 20px; }
.blog-grid { display: grid; gap: 12px; }
.editorial-panel .button, .enquiry > div > .button { text-align: center; }

.site-footer {
  display: block;
  padding-bottom: 78px;
  background: radial-gradient(ellipse at 14% 85%, #45283b, transparent 55%), #170f18;
}
.footer-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 14px; }
.footer-panel {
  min-width: 0;
  padding: clamp(16px, 2vw, 28px);
  background: var(--glass);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: inset 0 1px #ffffff18, 0 10px 22px #0e080f61;
}
.footer-panel h3 { margin: 0 0 10px; color: var(--champagne); font-size: 21px; }
.footer-panel .brand { font-size: clamp(18px, 2.3vw, 31px); }
.footer-panel .brand + p { margin: 14px 0 20px; }
.footer-panel p, .footer-panel li { font-size: 14px; color: var(--muted); }
.footer-panel ul { list-style: none; margin: 0; padding: 0; }
.footer-panel a:not(.brand) { display: inline-block; padding: 5px 0; text-underline-offset: 4px; }
.footer-panel a:hover { color: var(--champagne); }
.footer-coverage { display: flex; align-items: center; gap: 16px; }
.footer-journal { grid-column: span 2; }
.site-footer .footer-status { margin-top: 18px; }
#blog details { scroll-margin-top: 24px; }

.coverage-orbit {
  width: 96px;
  aspect-ratio: 1;
  flex: none;
  position: relative;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 25%, #e2a986, #734662 48%, #261626 79%);
  box-shadow: inset 0 0 0 1px #f0c99560, 0 12px 22px #120b166b;
  perspective: 240px;
}
.coverage-orbit span { position: absolute; inset: 5%; border: 1px solid #ffe1bb9c; border-radius: 50%; }
.coverage-orbit span:nth-child(1) { transform: rotateX(62deg) rotateZ(-25deg); }
.coverage-orbit span:nth-child(2) { transform: rotateY(62deg) rotateZ(24deg); }
.coverage-orbit span:nth-child(3) { transform: rotateY(-58deg) rotateZ(-24deg); }
.coverage-orbit i {
  position: absolute;
  left: 34%;
  top: 35%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff3db;
  box-shadow: 0 0 13px #fbc883;
}

.floating-whatsapp {
  position: fixed;
  z-index: 5;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  color: #301c2a;
  border: 1px solid #fff1cc;
  border-radius: 50%;
  background: linear-gradient(145deg, #fff0c9, #d6a06d);
  box-shadow: 0 8px 28px #120917a3;
  transition: transform 220ms ease;
}
.floating-whatsapp svg { width: 27px; height: 27px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .floating-whatsapp:hover { transform: translateY(-4px); }
  .coverage-orbit { transition: transform 350ms ease; }
  .footer-coverage:hover .coverage-orbit { transform: rotate(-8deg) translateY(-4px); }
}

@supports (backdrop-filter: blur(1px)) {
  header { backdrop-filter: blur(16px) saturate(120%); }
}

@media (max-width: 800px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  header nav { display: contents; }
  header nav > a:not(.button):not(.editorial-nav) { display: none; }
  header nav > .button { grid-area: 1 / 2; }
  header nav > .editorial-nav { display: inline-block; grid-row: 2; padding: 4px 7px; justify-self: start; }
  header .brand { grid-area: 1 / 1; }
}

@media (max-width: 650px) {
  header { margin-top: 10px; padding-inline: 12px; }
  .hero { background: none; margin: 0; }
  .hero h1 { font-size: clamp(40px, 10vw, 59px); }
  .art .floating-note { right: 4px; }
  .event-card, .package { transform: none; }
  .editorial { grid-template-columns: minmax(0, 1fr); }
  .footer-grid { grid-template-columns: minmax(0, 1fr); }
  .footer-journal { grid-column: auto; }
  .coverage-orbit { width: 72px; }
}

@media (prefers-reduced-motion: no-preference) {
  .hero-copy { animation: hero-arrival 560ms cubic-bezier(.2,.7,.2,1) both; }
  @keyframes hero-arrival {
    from { opacity: 0; translate: 0 12px; }
    to { opacity: 1; translate: 0 0; }
  }
}
