:root {
  --paper: #f5efe6;
  --paper-2: #ece3d6;
  --ivory: #fffaf3;
  --ink: #2f2a24;
  --ink-soft: #6f665c;
  --line: rgba(62, 51, 39, 0.15);
  --gold: #a77c43;
  --gold-dark: #80613b;
  --gold-pale: #d5c09e;
  --brown: #4a3828;
  --deep: #241c16;
  --sage: #74715d;
  --white: #fff;
  --shadow: 0 28px 70px rgba(61, 45, 30, 0.14);
  --shadow-soft: 0 18px 42px rgba(61, 45, 30, 0.09);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --max: 1240px;
  --radius-xl: 34px;
  --radius-lg: 24px;
  --radius-md: 18px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: var(--sans);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.modal-open { overflow: hidden; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; text-decoration: none; }
img, video { max-width: 100%; display: block; }
button:focus-visible, a:focus-visible { outline: 3px solid rgba(167,124,67,.42); outline-offset: 4px; }

.page-grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  opacity: .18;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 70;
  padding: 16px 22px 0;
  transition: padding .25s ease;
}
.site-header.is-scrolled { padding-top: 10px; }
.nav-shell {
  max-width: var(--max);
  margin: 0 auto;
  min-height: 74px;
  padding: 10px 12px 10px 16px;
  border: 1px solid rgba(255,255,255,.58);
  background: rgba(248,243,235,.78);
  backdrop-filter: blur(18px) saturate(1.15);
  -webkit-backdrop-filter: blur(18px) saturate(1.15);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-radius: 22px;
  box-shadow: 0 10px 35px rgba(56,42,28,.08);
}
.brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.brand-monogram {
  width: 42px; height: 42px; border: 1px solid var(--gold-pale); border-radius: 50%;
  display: grid; place-items: center; font: 600 27px/1 var(--serif); color: var(--gold-dark); flex: 0 0 auto;
}
.brand-copy { display: grid; line-height: 1.08; min-width: 0; }
.brand-copy strong { font-family: var(--serif); letter-spacing: .16em; font-size: 18px; font-weight: 700; }
.brand-copy small { margin-top: 3px; color: var(--ink-soft); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.desktop-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.desktop-nav a { color: #5e554b; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; position: relative; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: var(--gold); transition: right .25s ease; }
@media (hover:hover) { .desktop-nav a:hover::after { right: 0; } }
.nav-actions { display: flex; align-items: center; gap: 10px; }
.nav-cta {
  display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 18px; border-radius: 999px;
  background: var(--deep); color: #fff8ec; font-size: 12px; font-weight: 700; letter-spacing: .04em;
  transition: transform .25s ease, background .25s ease;
}
.nav-cta span { color: var(--gold-pale); }
@media (hover:hover) { .nav-cta:hover { transform: translateY(-2px); background: #3a2b21; } }
.menu-toggle { display: none; width: 46px; height: 46px; border: 0; background: transparent; border-radius: 50%; cursor: pointer; padding: 12px; }
.menu-toggle span { display: block; height: 1px; background: var(--ink); margin: 5px 0; transition: transform .25s ease, opacity .25s ease; }
.menu-toggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.menu-toggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.mobile-nav { max-width: var(--max); margin: 6px auto 0; padding: 14px; border-radius: 20px; background: rgba(255,250,243,.97); box-shadow: var(--shadow-soft); border: 1px solid var(--line); display: grid; gap: 3px; transform-origin: top; }
.mobile-nav[hidden], .mobile-nav[aria-hidden="true"] { display: none; }
.mobile-nav a { padding: 13px 12px; border-radius: 12px; font-size: 14px; }
.mobile-nav .mobile-nav-cta { background: var(--deep); color: white; text-align: center; margin-top: 6px; }

.hero {
  position: relative;
  max-width: 1460px;
  margin: 0 auto;
  padding: 78px max(28px, calc((100% - var(--max)) / 2)) 88px;
  min-height: 700px;
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(480px, 1.08fr);
  gap: 70px;
  align-items: center;
}
.hero-copy { position: relative; z-index: 2; padding-left: 18px; }
.eyebrow { margin: 0 0 18px; display: flex; align-items: center; gap: 11px; text-transform: uppercase; letter-spacing: .17em; font-size: 10px; font-weight: 700; color: var(--gold-dark); }
.eyebrow > span { width: 34px; height: 1px; background: currentColor; display: inline-block; }
.hero h1, .section-heading h2, .experience-copy h2, .contact-copy h2 { font-family: var(--serif); font-weight: 600; letter-spacing: -.035em; margin: 0; }
.hero h1 { max-width: 690px; font-size: clamp(54px, 5.8vw, 92px); line-height: .91; }
.hero h1 em, .section-heading h2 em, .experience-copy h2 em, .contact-copy h2 em { color: var(--gold); font-weight: 600; }
.hero-lede { max-width: 610px; margin: 28px 0 0; color: var(--ink-soft); font-size: 16px; line-height: 1.8; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button { min-height: 52px; padding: 0 21px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; gap: 13px; font-size: 12px; font-weight: 700; letter-spacing: .04em; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.button-primary { background: var(--deep); color: var(--ivory); box-shadow: 0 12px 26px rgba(44,31,21,.16); }
.button-quiet { border: 1px solid rgba(56,43,32,.18); background: rgba(255,255,255,.28); }
@media (hover:hover) { .button:hover { transform: translateY(-2px); } .button-primary:hover { box-shadow: 0 16px 32px rgba(44,31,21,.21); } .button-quiet:hover { background: rgba(255,255,255,.55); } }
.hero-note { display: flex; align-items: center; gap: 12px; margin-top: 34px; color: #887d72; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.hero-note-line { width: 42px; height: 1px; background: var(--gold-pale); flex: 0 0 auto; }
.hero-note p { margin: 0; }
.hero-showcase { position: relative; min-width: 0; padding: 22px 0 46px 18px; }
.hero-carousel { position: relative; height: 545px; border-radius: 180px 180px 28px 28px; overflow: hidden; box-shadow: var(--shadow); isolation: isolate; background: #d5c6b2; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.04); transition: opacity .8s ease, transform 1.2s ease; pointer-events: none; }
.hero-slide.is-active { opacity: 1; transform: scale(1); pointer-events: auto; }
.hero-media { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 6s ease; }
.hero-slide.is-active .hero-media { transform: scale(1.045); }
.hero-media-fallback::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 20%, rgba(255,255,255,.44), transparent 26%), linear-gradient(135deg, #b9a27e, #6f665c 52%, #3e3329); }
.wedding-fallback::after, .corporate-fallback::after, .parties-fallback::after { content: ""; position: absolute; inset: 8% 8% auto auto; width: 58%; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; box-shadow: 0 0 0 30px rgba(255,255,255,.05), 0 0 0 70px rgba(255,255,255,.03); }
.corporate-fallback::before { background: radial-gradient(circle at 72% 22%, rgba(243,229,203,.42), transparent 24%), linear-gradient(145deg, #8f826d, #4c4a43 56%, #242622); }
.parties-fallback::before { background: radial-gradient(circle at 70% 20%, rgba(255,231,188,.48), transparent 24%), linear-gradient(145deg, #b78f71, #6f5046 52%, #382a29); }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(31,22,16,.78) 0%, rgba(31,22,16,.10) 58%, rgba(31,22,16,.02) 100%); }
.hero-slide-copy { position: absolute; left: 30px; right: 30px; bottom: 28px; color: white; z-index: 2; }
.hero-slide-copy > span { display: block; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; color: #ead9ba; margin-bottom: 8px; }
.hero-slide-copy strong { display: block; max-width: 430px; font: 600 clamp(28px,3.2vw,44px)/.98 var(--serif); }
.hero-slide-copy button { margin-top: 16px; min-height: 42px; padding: 0; border: 0; background: transparent; color: white; cursor: pointer; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; display: inline-flex; align-items: center; gap: 10px; }
.hero-slide-copy button b { color: #ead9ba; font-size: 14px; }
.hero-carousel-controls { position: absolute; left: 0; bottom: 0; display: flex; align-items: center; gap: 11px; z-index: 3; }
.round-control { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(64,49,36,.18); background: rgba(255,250,243,.72); backdrop-filter: blur(10px); cursor: pointer; color: var(--ink); transition: background .2s ease, transform .2s ease; }
@media (hover:hover) { .round-control:hover { background: white; transform: translateY(-2px); } }
.hero-dots { display: flex; gap: 7px; align-items: center; }
.hero-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px; background: #c8b9a4; cursor: pointer; transition: width .3s ease, background .3s ease; }
.hero-dot.is-active { width: 28px; background: var(--gold); }
.hero-floating-card { position: absolute; right: -28px; top: 66px; z-index: 4; width: 150px; min-height: 150px; padding: 23px; border-radius: 50%; background: rgba(255,250,243,.92); backdrop-filter: blur(10px); box-shadow: var(--shadow-soft); display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; transform: rotate(6deg); }
.hero-floating-card span { color: var(--gold-dark); font-size: 9px; letter-spacing: .18em; text-transform: uppercase; }
.hero-floating-card strong { margin-top: 2px; font: 600 26px/1 var(--serif); }
.hero-floating-card small { display: block; margin-top: 8px; color: var(--ink-soft); font-size: 8px; line-height: 1.45; text-transform: uppercase; letter-spacing: .05em; }
.hero-ornament { position: absolute; width: 150px; opacity: .26; color: var(--gold); pointer-events: none; }
.hero-ornament svg { width: 100%; fill: none; stroke: currentColor; stroke-width: 1.25; }
.hero-ornament-left { left: 0; bottom: 28px; transform: translateX(-40%); }
.hero-ornament-right { right: 0; top: 22px; transform: translateX(48%) scaleX(-1); }

.intro-band { overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,250,243,.34); }
.intro-band-track { width: max-content; display: flex; align-items: center; gap: 34px; padding: 18px 0; animation: marquee 26s linear infinite; color: #766b60; text-transform: uppercase; font-size: 10px; letter-spacing: .16em; }
.intro-band-track i { color: var(--gold); font-style: normal; }
@keyframes marquee { to { transform: translateX(-50%); } }

.section-shell { width: min(var(--max), calc(100% - 48px)); margin: 0 auto; }
.events-section { padding: 61px 0 118px; margin-top: -70px;}
.section-heading { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); align-items: end; gap: 72px; }
.section-heading h2 { font-size: clamp(46px,5vw,72px); line-height: .98; max-width: 720px; }
.section-copy { margin: 0 0 6px; color: var(--ink-soft); font-size: 14px; line-height: 1.85; max-width: 470px; }
.section-copy code { font-size: 12px; background: rgba(255,255,255,.5); border: 1px solid var(--line); border-radius: 7px; padding: 1px 5px; }
.category-carousel-wrap { position: relative; margin-top: 54px; }
.category-carousel { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(300px, 31.5%); gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 8px 2px 22px; scroll-behavior: smooth; overscroll-behavior-inline: contain; }
.category-carousel::-webkit-scrollbar { display: none; }
.category-card { position: relative; min-height: 465px; border: 0; padding: 0; border-radius: 28px; overflow: hidden; background: #b7a78f; cursor: pointer; scroll-snap-align: start; text-align: left; color: white; box-shadow: 0 14px 34px rgba(57,42,28,.09); isolation: isolate; }
.category-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(31,22,16,.82), rgba(31,22,16,.16) 55%, rgba(31,22,16,.05)); z-index: 1; }
.category-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.22,.61,.36,1), filter .4s ease; }
.category-card .card-fallback { position: absolute; inset: 0; background: linear-gradient(145deg, #af9a7c, #655b50 58%, #3c332b); }
.category-card-content { position: absolute; inset: auto 24px 24px; z-index: 2; }
.category-card-index { display: flex; justify-content: space-between; align-items: center; color: rgba(255,255,255,.78); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.category-card-index i { width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.42); border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 15px; transition: background .25s ease, color .25s ease; }
.category-card h3 { margin: 38px 0 8px; font: 600 35px/1 var(--serif); letter-spacing: -.02em; }
.category-card p { margin: 0; color: rgba(255,255,255,.76); font-size: 11px; line-height: 1.6; max-width: 270px; }
@media (hover:hover) { .category-card:hover img { transform: scale(1.06); } .category-card:hover .category-card-index i { background: white; color: var(--ink); } }
.carousel-arrow { position: absolute; top: 50%; z-index: 3; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.62); background: rgba(255,250,243,.88); backdrop-filter: blur(12px); box-shadow: 0 10px 26px rgba(52,40,29,.12); cursor: pointer; color: var(--ink); font-size: 18px; }
.carousel-arrow-left { left: -26px; }
.carousel-arrow-right { right: -26px; }
.carousel-arrow:disabled { opacity: .28; cursor: default; }
.carousel-hint { margin-top: 4px; color: #8a7e71; font-size: 10px; text-transform: uppercase; letter-spacing: .13em; display: flex; align-items: center; gap: 10px; }
.carousel-hint span { width: 46px; height: 1px; background: var(--gold-pale); }

.experience { padding: 118px 0; background: var(--deep); color: #f6eddf; overflow: hidden; position: relative; }
.experience::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 18% 26%, rgba(181,139,79,.11), transparent 27%), radial-gradient(circle at 82% 80%, rgba(255,255,255,.04), transparent 28%); }
.experience-grid { position: relative; display: grid; grid-template-columns: minmax(390px,.95fr) minmax(0,1.05fr); gap: 100px; align-items: center; }
.experience-visual { min-height: 630px; position: relative; }
.experience-photo { position: absolute; inset: 26px 54px 36px 0; border-radius: 180px 180px 24px 24px; overflow: hidden; background-size: cover; background-position: center; background-image: radial-gradient(circle at 58% 22%, rgba(255,255,255,.22), transparent 22%), linear-gradient(145deg, #80715c, #4e4539 55%, #2f2b26); }
.experience-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(22,16,12,.55), transparent 48%); }
.experience-card { position: absolute; left: 24px; bottom: 0; z-index: 2; width: 250px; padding: 24px 24px 22px; background: #f5eee3; color: var(--ink); border-radius: 18px; box-shadow: 0 24px 50px rgba(0,0,0,.22); }
.experience-card span { display: block; color: var(--gold-dark); font-size: 9px; letter-spacing: .17em; text-transform: uppercase; }
.experience-card strong { display: block; margin-top: 8px; font: 600 29px/1.02 var(--serif); }
.experience-seal { position: absolute; right: 0; top: 36px; width: 118px; height: 118px; border-radius: 50%; border: 1px solid rgba(224,199,159,.4); display: grid; place-items: center; align-content: center; color: #e2c79d; transform: rotate(8deg); background: rgba(36,28,22,.5); backdrop-filter: blur(7px); }
.experience-seal span { font: 600 48px/.8 var(--serif); }
.experience-seal small { margin-top: 8px; font-size: 8px; letter-spacing: .2em; }
.experience-copy { position: relative; z-index: 1; }
.experience-copy .eyebrow { color: #cda874; }
.experience-copy h2 { font-size: clamp(48px,5vw,72px); line-height: .98; }
.experience-copy h2 em { color: #cda874; }
.experience-lede { margin: 26px 0 0; color: rgba(247,238,224,.66); line-height: 1.85; font-size: 14px; max-width: 620px; }
.feature-list { margin-top: 36px; border-top: 1px solid rgba(255,255,255,.12); }
.feature-list article { display: grid; grid-template-columns: 42px 1fr; gap: 16px; padding: 21px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.feature-list article > span { color: #cda874; font: 600 18px/1 var(--serif); }
.feature-list h3 { margin: 0 0 6px; font: 600 24px/1.1 var(--serif); color: #000000;}
.feature-list p { margin: 0; color: rgba(247,238,224,.6); font-size: 12px; line-height: 1.65; }
.text-cta, .text-button { display: inline-flex; align-items: center; gap: 12px; border: 0; background: transparent; padding: 0; cursor: pointer; font-size: 11px; text-transform: uppercase; letter-spacing: .11em; font-weight: 700; }
.text-cta { margin-top: 30px; color: #f7ecdb; }
.text-cta span { color: #cda874; }

.process { padding: 112px 0 116px; }
.process-heading { align-items: start; }
.process-line { margin-top: 56px; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); }
.process-step { position: relative; padding: 30px 28px 12px 0; }
.process-step::before { content: ""; position: absolute; width: 10px; height: 10px; border-radius: 50%; background: var(--paper); border: 2px solid var(--gold); top: -6px; left: 0; box-shadow: 0 0 0 5px var(--paper); }
.process-step span { color: var(--gold-dark); font: 600 17px/1 var(--serif); }
.process-step h3 { margin: 22px 0 9px; font: 600 28px/1.08 var(--serif); }
.process-step p { margin: 0; color: var(--ink-soft); font-size: 12px; line-height: 1.7; max-width: 245px; }

.gallery-preview { padding: 0 0 118px; }
.section-heading.compact { align-items: center; }
.section-heading.compact h2 { font-size: clamp(44px,4.6vw,66px); }
.text-button { justify-self: end; color: var(--ink); }
.text-button span { color: var(--gold-dark); }
.preview-reel { margin-top: 42px; display: grid; grid-template-columns: 1.22fr .82fr .82fr; grid-template-rows: 240px 240px; gap: 16px; }
.preview-tile { position: relative; overflow: hidden; border: 0; border-radius: 22px; padding: 0; background: #cabaa3; cursor: pointer; min-width: 0; color: white; text-align: left; }
.preview-tile:first-child { grid-row: span 2; }
.preview-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.preview-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(25,17,12,.72), transparent 56%); }
.preview-tile span { position: absolute; left: 18px; bottom: 17px; z-index: 2; font: 600 24px/1 var(--serif); }
@media (hover:hover) { .preview-tile:hover img { transform: scale(1.045); } }

.contact-section { padding: 0 0 70px; background-color: #FDFBD4; }
.contact-panel { position: relative; overflow: hidden; min-height: 460px; border-radius: 34px; background: #8d6d46; color: white; display: grid; grid-template-columns: 1.3fr .7fr; gap: 72px; align-items: end; padding: 68px 74px; box-shadow: var(--shadow); }
.contact-panel::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 80% 15%, rgba(255,245,222,.15), transparent 25%), linear-gradient(120deg, rgba(48,31,19,.22), transparent 48%); }
.contact-copy, .contact-details { position: relative; z-index: 1; }
.contact-copy .eyebrow.light { color: #f1d7ad; }
.contact-copy h2 { color: #fff9f0; font-size: clamp(48px,5vw,76px); line-height: .95; }
.contact-copy h2 em { color: #f0d6ad; }
.contact-copy > p:not(.eyebrow) { max-width: 610px; margin: 24px 0 0; color: rgba(255,250,243,.72); font-size: 14px; line-height: 1.8; }
.contact-buttons { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 30px; }
.button-light { background: #fff8ed; color: var(--deep); }
.button-outline-light { color: white; border: 1px solid rgba(255,255,255,.42); }
.contact-details { border-left: 1px solid rgba(255,255,255,.22); padding-left: 34px; }
.contact-details a, .contact-details div { display: block; padding: 19px 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.contact-details span { display: block; color: rgba(255,255,255,.58); font-size: 9px; text-transform: uppercase; letter-spacing: .16em; }
.contact-details strong { display: block; margin-top: 6px; color: #fffaf2; font-size: 12px; line-height: 1.5; font-weight: 600; overflow-wrap: anywhere; }
.contact-ornament { position: absolute; right: -24px; top: -70px; width: 210px; opacity: .25; }
.contact-ornament svg { width: 100%; fill: none; stroke: #fae5c0; stroke-width: 1.2; }

.site-footer { width: min(var(--max), calc(100% - 48px)); margin: 0 auto; padding: 18px 0 30px; }
.footer-main { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding: 26px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.footer-brand { display: flex; align-items: center; gap: 10px; font-family: var(--serif); letter-spacing: .14em; }
.footer-brand span { width: 34px; height: 34px; border: 1px solid var(--gold-pale); border-radius: 50%; display: grid; place-items: center; font-size: 22px; color: var(--gold-dark); }
.footer-brand strong { font-size: 15px; }
.footer-main > p { margin: 0; color: var(--ink-soft); font: 500 19px/1 var(--serif); }
.footer-links { justify-self: end; display: flex; gap: 18px; font-size: 10px; text-transform: uppercase; letter-spacing: .11em; }
.footer-bottom { display: flex; justify-content: space-between; gap: 16px; padding-top: 16px; color: #8c8176; font-size: 9px; text-transform: uppercase; letter-spacing: .11em; }

.whatsapp-fab { position: fixed; right: 22px; bottom: 22px; z-index: 80; height: 58px; min-width: 58px; padding: 0 18px; border-radius: 999px; background: #1f9d55; color: white; display: flex; align-items: center; justify-content: center; gap: 9px; box-shadow: 0 12px 32px rgba(31,157,85,.32); transition: transform .25s ease; }
.whatsapp-fab svg { width: 26px; height: 26px; fill: currentColor; position: relative; z-index: 2; }
.whatsapp-label { font-size: 11px; font-weight: 700; position: relative; z-index: 2; }
.whatsapp-ring { position: absolute; inset: 0; border-radius: inherit; border: 1px solid rgba(255,255,255,.6); animation: whatsPulse 2.2s ease-out infinite; }
@keyframes whatsPulse { 0% { transform: scale(1); opacity: .6; } 80%,100% { transform: scale(1.35); opacity: 0; } }
@media (hover:hover) { .whatsapp-fab:hover { transform: translateY(-3px); } }

.gallery-modal, .all-events-drawer { position: fixed; inset: 0; z-index: 120; display: grid; place-items: end center; padding: 28px; }
.gallery-modal[hidden], .all-events-drawer[hidden], .lightbox[hidden] { display: none; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(25,19,14,.62); backdrop-filter: blur(8px); }
.gallery-sheet { position: relative; z-index: 1; width: min(1180px, 100%); max-height: calc(100vh - 56px); overflow: auto; border-radius: 28px; background: #f7f1e9; padding: 30px; box-shadow: 0 30px 90px rgba(0,0,0,.32); }
.gallery-header { display: flex; justify-content: space-between; gap: 20px; align-items: start; position: sticky; top: -30px; z-index: 5; margin: -30px -30px 0; padding: 30px 30px 20px; background: rgba(247,241,233,.94); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.gallery-header .eyebrow { margin-bottom: 8px; }
.gallery-header h2 { margin: 0; font: 600 clamp(36px,4vw,54px)/1 var(--serif); }
.gallery-header p:last-child { margin: 7px 0 0; color: var(--ink-soft); font-size: 11px; }
.modal-close, .all-events-sheet header button { width: 46px; height: 46px; flex: 0 0 auto; border-radius: 50%; border: 1px solid var(--line); background: #fffaf4; cursor: pointer; font-size: 26px; color: var(--ink); }
.gallery-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 19px 0 12px; }
.gallery-filters { display: flex; flex-wrap: wrap; gap: 7px; }
.gallery-filters button { border: 1px solid var(--line); background: transparent; padding: 8px 13px; border-radius: 999px; color: var(--ink-soft); cursor: pointer; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.gallery-filters button.is-active { background: var(--deep); color: white; border-color: var(--deep); }
#galleryCount { color: var(--ink-soft); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; }
.gallery-status { min-height: 22px; color: var(--ink-soft); font-size: 12px; padding: 14px 0; }
.gallery-grid { display: columns; columns: 3 260px; column-gap: 14px; }
.gallery-item { width: 100%; border: 0; padding: 0; margin: 0 0 14px; break-inside: avoid; border-radius: 16px; overflow: hidden; background: #ddd0bd; cursor: zoom-in; position: relative; }
.gallery-item img, .gallery-item video { width: 100%; height: auto; min-height: 180px; object-fit: cover; }
.gallery-item video { aspect-ratio: 4 / 3; }
.gallery-item::after { content: "View"; position: absolute; right: 12px; bottom: 12px; padding: 7px 10px; border-radius: 999px; background: rgba(29,21,15,.72); color: white; font-size: 9px; letter-spacing: .09em; text-transform: uppercase; opacity: 0; transform: translateY(4px); transition: opacity .2s ease, transform .2s ease; }
@media (hover:hover) { .gallery-item:hover::after { opacity: 1; transform: translateY(0); } }
.gallery-empty { padding: 52px 18px; border: 1px dashed rgba(70,56,43,.2); border-radius: 18px; text-align: center; color: var(--ink-soft); }
.gallery-empty strong { display: block; color: var(--ink); font: 600 28px/1.1 var(--serif); margin-bottom: 7px; }

.lightbox { position: fixed; inset: 0; z-index: 150; background: rgba(17,13,10,.95); display: grid; place-items: center; padding: 28px 84px; }
.lightbox-stage { width: 100%; height: 100%; display: grid; place-items: center; }
.lightbox-stage img, .lightbox-stage video { max-width: 100%; max-height: calc(100vh - 80px); object-fit: contain; border-radius: 10px; box-shadow: 0 24px 70px rgba(0,0,0,.32); }
.lightbox-close, .lightbox-nav { position: absolute; z-index: 2; width: 48px; height: 48px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.09); color: white; cursor: pointer; }
.lightbox-close { right: 24px; top: 22px; font-size: 26px; }
.lightbox-nav { top: 50%; transform: translateY(-50%); font-size: 19px; }
.lightbox-prev { left: 24px; }
.lightbox-next { right: 24px; }
.lightbox-counter { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); color: rgba(255,255,255,.7); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }

.all-events-sheet { position: relative; z-index: 1; width: min(960px,100%); background: #f7f1e9; border-radius: 28px; padding: 28px; box-shadow: 0 30px 90px rgba(0,0,0,.3); }
.all-events-sheet header { display: flex; justify-content: space-between; align-items: start; gap: 16px; }
.all-events-sheet header h2 { margin: 0; font: 600 clamp(38px,4vw,56px)/1 var(--serif); }
.all-events-grid { margin-top: 26px; display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.all-event-option { border: 1px solid var(--line); background: rgba(255,255,255,.38); border-radius: 16px; padding: 17px 18px; text-align: left; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; transition: transform .2s ease, background .2s ease; }
.all-event-option strong { font: 600 24px/1 var(--serif); }
.all-event-option span { color: var(--gold-dark); }
@media (hover:hover) { .all-event-option:hover { transform: translateY(-2px); background: white; } }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1100px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .hero { grid-template-columns: minmax(0,.88fr) minmax(420px,1.12fr); gap: 34px; }
  .hero h1 { font-size: clamp(52px,6.3vw,76px); }
  .hero-carousel { height: 500px; }
  .hero-floating-card { right: -12px; }
  .category-carousel { grid-auto-columns: minmax(290px, 43%); }
  .experience-grid { gap: 54px; }
  .contact-panel { padding: 58px 52px; gap: 40px; }
}

@media (max-width: 860px) {
  .site-header { padding: 12px 14px 0; }
  .nav-shell { min-height: 66px; border-radius: 19px; }
  .nav-cta { display: none; }
  .hero { padding: 70px 24px 76px; grid-template-columns: 1fr; gap: 46px; min-height: 0; }
  .hero-copy { padding-left: 0; text-align: center; }
  .hero-copy .eyebrow { justify-content: center; }
  .hero h1 { margin-inline: auto; }
  .hero-lede { margin-inline: auto; }
  .hero-actions, .hero-note { justify-content: center; }
  .hero-showcase { width: min(620px,100%); margin: 0 auto; padding-left: 0; }
  .hero-carousel { height: 560px; border-radius: 150px 150px 26px 26px; }
  .hero-floating-card { right: -12px; top: 60px; }
  .hero-carousel-controls { left: 12px; }
  .hero-ornament { width: 110px; }
  .section-shell { width: min(var(--max), calc(100% - 34px)); }
  .events-section, .process { padding: 88px 0 94px; }
  .section-heading { grid-template-columns: 1fr; gap: 24px; }
  .section-copy { max-width: 650px; }
  .category-carousel { grid-auto-columns: minmax(280px, 68%); }
  .carousel-arrow { display: none; }
  .experience { padding: 90px 0; }
  .experience-grid { grid-template-columns: 1fr; gap: 54px; }
  .experience-visual { min-height: 540px; width: min(560px,100%); }
  .experience-copy { max-width: 700px; }
  .process-line { grid-template-columns: repeat(2,1fr); row-gap: 30px; border-top: 0; }
  .process-step { border-top: 1px solid var(--line); }
  .preview-reel { grid-template-columns: 1fr 1fr; grid-template-rows: 320px 230px; }
  .preview-tile:first-child { grid-column: span 2; grid-row: auto; }
  .contact-panel { grid-template-columns: 1fr; align-items: start; padding: 54px 42px; }
  .contact-details { border-left: 0; border-top: 1px solid rgba(255,255,255,.22); padding: 12px 0 0; }
  .footer-main { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .footer-links { justify-self: center; }
}

@media (max-width: 620px) {
  .brand-copy small { display: none; }
  .brand-copy strong { font-size: 16px; }
  .brand-monogram { width: 38px; height: 38px; font-size: 24px; }
  .hero { padding: 54px 18px 66px; gap: 34px; }
  .hero h1 { font-size: clamp(47px,15vw,67px); line-height: .92; }
  .hero-lede { font-size: 14px; line-height: 1.72; }
  .hero-actions { display: grid; width: 100%; }
  .button { width: 100%; }
  .hero-note { align-items: flex-start; font-size: 9px; text-align: left; }
  .hero-carousel { height: 470px; border-radius: 118px 118px 22px 22px; }
  .hero-slide-copy { left: 20px; right: 20px; bottom: 22px; }
  .hero-slide-copy strong { font-size: 31px; }
  .hero-floating-card { width: 112px; min-height: 112px; padding: 16px; right: -4px; top: 46px; }
  .hero-floating-card strong { font-size: 22px; }
  .hero-floating-card small { display: none; }
  .hero-carousel-controls { bottom: -2px; left: 8px; }
  .round-control { width: 40px; height: 40px; }
  .intro-band-track { gap: 24px; padding: 15px 0; }
  .section-shell { width: min(var(--max), calc(100% - 28px)); }
  .events-section { padding: 76px 0 80px; }
  .section-heading h2, .experience-copy h2, .contact-copy h2 { font-size: clamp(42px,13vw,58px); }
  .section-copy { font-size: 13px; }
  .category-carousel-wrap { margin-top: 34px; }
  .category-carousel { grid-auto-columns: 84%; gap: 14px; }
  .category-card { min-height: 420px; border-radius: 24px; }
  .category-card h3 { font-size: 32px; }
  .experience { padding: 72px 0 80px; }
  .experience-visual { min-height: 470px; }
  .experience-photo { inset: 8px 22px 36px 0; border-radius: 120px 120px 20px 20px; }
  .experience-card { left: 10px; width: 220px; padding: 20px; }
  .experience-seal { width: 94px; height: 94px; right: -2px; top: 20px; }
  .experience-seal span { font-size: 39px; }
  .experience-lede { font-size: 13px; }
  .feature-list article { grid-template-columns: 34px 1fr; }
  .feature-list h3 { font-size: 22px; }
  .process { padding: 78px 0; }
  .process-line { grid-template-columns: 1fr; row-gap: 18px; margin-top: 38px; }
  .process-step { padding-top: 24px; }
  .process-step p { max-width: none; }
  .gallery-preview { padding-bottom: 82px; }
  .section-heading.compact .text-button { justify-self: start; }
  .preview-reel { grid-template-columns: 1fr 1fr; grid-template-rows: 270px 180px; gap: 10px; }
  .preview-tile { border-radius: 16px; }
  .preview-tile span { left: 13px; bottom: 12px; font-size: 19px; }
  .contact-section { padding-bottom: 42px; }
  .contact-panel { width: calc(100% - 20px); border-radius: 26px; padding: 44px 24px; }
  .contact-buttons { display: grid; }
  .contact-details strong { font-size: 11px; }
  .site-footer { width: calc(100% - 28px); }
  .footer-main > p { font-size: 17px; }
  .footer-bottom { flex-direction: column; align-items: center; text-align: center; }
  .whatsapp-fab { right: 14px; bottom: 14px; min-width: 54px; height: 54px; padding: 0; }
  .whatsapp-label { display: none; }
  .gallery-modal, .all-events-drawer { padding: 0; place-items: end; }
  .gallery-sheet, .all-events-sheet { width: 100%; max-height: calc(100vh - 22px); border-radius: 24px 24px 0 0; padding: 22px 16px 28px; }
  .gallery-header { top: -22px; margin: -22px -16px 0; padding: 22px 16px 16px; }
  .gallery-header h2 { font-size: 38px; }
  .gallery-toolbar { align-items: flex-start; flex-direction: column; }
  .gallery-grid { columns: 2 140px; column-gap: 8px; }
  .gallery-item { margin-bottom: 8px; border-radius: 12px; }
  .gallery-item img, .gallery-item video { min-height: 130px; }
  .lightbox { padding: 64px 10px 70px; }
  .lightbox-nav { top: auto; bottom: 14px; transform: none; width: 44px; height: 44px; }
  .lightbox-prev { left: calc(50% - 58px); }
  .lightbox-next { right: calc(50% - 58px); }
  .lightbox-counter { bottom: 64px; }
  .all-events-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* --------------------------------------------------------------------------
   Responsive refinement v2.1
   Mobile is intentionally composed as an image-led luxury hero instead of a
   compressed desktop layout. These overrides also improve tablet spacing,
   touch targets, galleries and very narrow screens.
   -------------------------------------------------------------------------- */

@media (max-width: 860px) {
  .site-header { padding-inline: clamp(10px, 2.8vw, 18px); }
  .nav-shell { width: 100%; }
  .hero { padding-top: 48px; }
  .hero-carousel { height: min(520px, 70vw); min-height: 440px; }
  .hero-floating-card { right: 10px; top: 38px; }
  .events-section, .process { padding-block: 78px 84px; }
  .experience { padding-block: 82px; }
  .gallery-preview { padding-bottom: 88px; }
}

@media (max-width: 620px) {
  html { scroll-padding-top: 76px; }
  body { background: #f5efe6; }
  .page-grain { opacity: .10; }

  /* Compact, reliable mobile header */
  .site-header { padding: 8px 8px 0; }
  .site-header.is-scrolled { padding-top: 6px; }
  .nav-shell {
    min-height: 58px;
    padding: 7px 7px 7px 10px;
    border-radius: 17px;
    gap: 8px;
    background: rgba(250,246,239,.91);
    box-shadow: 0 8px 24px rgba(56,42,28,.07);
  }
  .brand { gap: 8px; }
  .brand-monogram { width: 34px; height: 34px; font-size: 21px; }
  .brand-copy strong { font-size: 13px; letter-spacing: .15em; white-space: nowrap; }
  .brand-copy small { display: none; }
  .menu-toggle { display: block; width: 42px; height: 42px; padding: 10px; flex: 0 0 auto; }
  .mobile-nav {
    margin-top: 5px;
    padding: 9px;
    border-radius: 17px;
    box-shadow: 0 18px 46px rgba(53,39,27,.16);
  }
  .mobile-nav a { min-height: 44px; display: flex; align-items: center; padding: 10px 11px; }
  .mobile-nav .mobile-nav-cta { justify-content: center; }

  /* Mobile hero: image and message become one cinematic composition */
  .hero {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 12px 10px 56px;
    display: grid;
    grid-template-columns: minmax(0,1fr);
    grid-template-rows: auto;
    gap: 0;
    align-items: stretch;
  }
  .hero-showcase {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    margin: 0;
    padding: 0;
    z-index: 1;
  }
  .hero-carousel {
    height: clamp(500px, 145vw, 620px);
    min-height: 0;
    border-radius: 30px;
    box-shadow: 0 22px 55px rgba(55,40,27,.18);
  }
  .hero-overlay {
    background:
      linear-gradient(to top, rgba(24,17,12,.90) 0%, rgba(24,17,12,.73) 30%, rgba(24,17,12,.20) 66%, rgba(24,17,12,.05) 100%);
  }
  .hero-media { background-position: center 42%; }
  .hero-copy {
    grid-column: 1;
    grid-row: 1;
    align-self: end;
    z-index: 5;
    padding: 0 20px 24px;
    text-align: left;
    color: #fffaf2;
    min-width: 0;
  }
  .hero-copy .eyebrow {
    justify-content: flex-start;
    margin-bottom: 11px;
    color: #ead4ae;
    font-size: 8px;
    letter-spacing: .15em;
    text-shadow: 0 1px 8px rgba(0,0,0,.18);
  }
  .hero-copy .eyebrow > span { width: 24px; }
  .hero h1 {
    margin: 0;
    max-width: 510px;
    color: #fffaf2;
    font-size: clamp(42px, 11.7vw, 54px);
    line-height: .91;
    letter-spacing: -.04em;
    text-wrap: balance;
  }
  .hero h1 em { color: #e2bd82; }
  .hero-lede {
    max-width: 470px;
    margin: 16px 0 0;
    color: rgba(255,250,242,.76);
    font-size: 12.5px;
    line-height: 1.58;
  }
  .hero-actions {
    margin-top: 19px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 8px;
  }
  .hero-actions .button {
    width: auto;
    min-height: 45px;
    padding-inline: 15px;
    font-size: 10px;
    gap: 9px;
  }
  .hero-actions .button-primary {
    background: #fff8ec;
    color: #241c16;
    box-shadow: 0 10px 28px rgba(0,0,0,.20);
  }
  .hero-actions .button-quiet {
    color: #fffaf2;
    border-color: rgba(255,255,255,.36);
    background: rgba(24,17,12,.20);
    backdrop-filter: blur(8px);
  }
  .hero-note, .hero-slide-copy, .hero-floating-card, .hero-ornament { display: none; }
  .hero-carousel-controls {
    left: auto;
    right: 14px;
    top: 14px;
    bottom: auto;
    padding: 5px;
    border-radius: 999px;
    background: rgba(24,17,12,.24);
    backdrop-filter: blur(10px);
  }
  .round-control {
    width: 35px;
    height: 35px;
    color: white;
    border-color: rgba(255,255,255,.28);
    background: rgba(255,255,255,.08);
  }
  .hero-dots { gap: 5px; }
  .hero-dot { width: 5px; height: 5px; background: rgba(255,255,255,.44); }
  .hero-dot.is-active { width: 19px; background: #ead4ae; }

  .intro-band-track { padding-block: 13px; gap: 24px; font-size: 8.5px; letter-spacing: .14em; }

  /* Consistent mobile rhythm */
  .section-shell { width: calc(100% - 28px); }
  .events-section { padding: 68px 0 72px; }
  .process { padding: 70px 0 74px; }
  .experience { padding: 68px 0 72px; }
  .gallery-preview { padding-bottom: 72px; }
  .eyebrow { margin-bottom: 12px; font-size: 8.5px; }
  .eyebrow > span { width: 26px; }
  .section-heading { gap: 15px; }
  .section-heading h2,
  .experience-copy h2,
  .contact-copy h2 {
    font-size: clamp(39px, 11.5vw, 50px);
    line-height: .96;
    text-wrap: balance;
  }
  .section-copy { margin: 0; font-size: 12.5px; line-height: 1.7; }

  /* Event category rail: large touch cards with a visible next-card peek */
  .category-carousel-wrap { margin-top: 28px; }
  .category-carousel {
    grid-auto-columns: 88%;
    gap: 12px;
    padding: 4px 1px 16px;
    scroll-padding-inline: 1px;
  }
  .category-card { min-height: clamp(330px, 103vw, 410px); border-radius: 22px; }
  .category-card-content { inset: auto 18px 18px; }
  .category-card-index { font-size: 8.5px; }
  .category-card-index i { width: 32px; height: 32px; }
  .category-card h3 { margin: 28px 0 7px; font-size: clamp(28px, 8.8vw, 35px); }
  .category-card p { font-size: 10.5px; line-height: 1.55; }
  .carousel-hint { margin-top: 2px; font-size: 8.5px; }
  .carousel-hint span { width: 30px; }

  /* Experience becomes a clean card rather than several overlapping shapes */
  .experience-grid { gap: 38px; }
  .experience-visual { width: 100%; min-height: clamp(365px, 106vw, 455px); }
  .experience-photo { inset: 0 0 52px; border-radius: 24px; }
  .experience-card {
    left: 12px;
    right: 12px;
    bottom: 0;
    width: auto;
    padding: 17px 18px;
    border-radius: 16px;
  }
  .experience-card strong { font-size: 25px; }
  .experience-seal {
    width: 74px;
    height: 74px;
    right: 12px;
    top: 12px;
    background: rgba(36,28,22,.64);
  }
  .experience-seal span { font-size: 30px; }
  .experience-seal small { margin-top: 4px; font-size: 6px; }
  .experience-lede { margin-top: 18px; font-size: 12.5px; line-height: 1.7; }
  .feature-list { margin-top: 26px; }
  .feature-list article { grid-template-columns: 30px minmax(0,1fr); gap: 12px; padding: 17px 0; }
  .feature-list h3 { font-size: 21px; }
  .feature-list p { font-size: 11px; }

  /* Process reads as a vertical editorial timeline on phones */
  .process-line { position: relative; display: grid; grid-template-columns: 1fr; gap: 0; margin-top: 32px; border: 0; }
  .process-line::before { content: ""; position: absolute; left: 5px; top: 8px; bottom: 12px; width: 1px; background: var(--line); }
  .process-step { border: 0; padding: 0 0 25px 31px; }
  .process-step::before {
    top: 4px;
    left: 0;
    width: 9px;
    height: 9px;
    background: var(--paper);
    box-shadow: 0 0 0 4px var(--paper);
  }
  .process-step span { font-size: 15px; }
  .process-step h3 { margin: 8px 0 5px; font-size: 25px; }
  .process-step p { font-size: 11.5px; line-height: 1.6; }

  /* Gallery preview stays visual without becoming cramped */
  .section-heading.compact { gap: 18px; }
  .section-heading.compact .text-button { justify-self: start; min-height: 42px; }
  .preview-reel {
    margin-top: 28px;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 240px 156px 156px;
    gap: 9px;
  }
  .preview-tile:first-child { grid-column: span 2; grid-row: auto; }
  .preview-tile { border-radius: 16px; }
  .preview-tile span { left: 12px; bottom: 11px; font-size: 17px; }

  /* Contact card optimized for small screens */
  .contact-section { padding-bottom: 34px; }
  .contact-panel {
    width: calc(100% - 20px);
    min-height: 0;
    padding: 38px 22px 30px;
    border-radius: 24px;
    gap: 30px;
  }
  .contact-copy > p:not(.eyebrow) { margin-top: 17px; font-size: 12.5px; line-height: 1.65; }
  .contact-buttons { display: grid; margin-top: 23px; gap: 8px; }
  .contact-buttons .button { width: 100%; min-height: 47px; }
  .contact-details { padding-top: 2px; }
  .contact-details a, .contact-details div { padding: 14px 0; }
  .contact-details strong { font-size: 10.5px; }
  .contact-ornament { width: 150px; opacity: .18; }

  .site-footer { width: calc(100% - 28px); padding-bottom: 88px; }
  .footer-main { gap: 14px; padding-block: 22px; }
  .footer-main > p { font-size: 16px; line-height: 1.15; }
  .footer-links { flex-wrap: wrap; justify-content: center; gap: 13px; }
  .footer-bottom { font-size: 8px; }

  .whatsapp-fab { right: 12px; bottom: 12px; width: 52px; min-width: 52px; height: 52px; }
  .whatsapp-fab svg { width: 23px; height: 23px; }

  /* Bottom-sheet gallery tuned for thumb use */
  .gallery-sheet, .all-events-sheet {
    max-height: calc(100dvh - 10px);
    border-radius: 22px 22px 0 0;
    padding: 18px 13px 24px;
  }
  .gallery-header { top: -18px; margin: -18px -13px 0; padding: 19px 13px 13px; gap: 10px; }
  .gallery-header h2 { font-size: clamp(31px, 10vw, 40px); }
  .gallery-header p:last-child { max-width: 230px; font-size: 9.5px; line-height: 1.5; }
  .modal-close, .all-events-sheet header button { width: 42px; height: 42px; }
  .gallery-toolbar { padding-top: 13px; gap: 10px; }
  .gallery-filters { gap: 5px; }
  .gallery-filters button { min-height: 38px; padding: 7px 11px; }
  .gallery-grid { columns: 2 130px; column-gap: 7px; }
  .gallery-item { margin-bottom: 7px; border-radius: 10px; }
  .gallery-item img, .gallery-item video { min-height: 110px; }
  .all-events-sheet { padding-top: 22px; }
  .all-events-sheet header h2 { font-size: clamp(34px, 11vw, 44px); }
  .all-event-option { min-height: 60px; padding: 13px 14px; }
  .all-event-option strong { font-size: 21px; }
}

@media (max-width: 420px) {
  .hero { padding-inline: 8px; }
  .hero-carousel { height: clamp(490px, 151vw, 585px); border-radius: 26px; }
  .hero-copy { padding: 0 16px 20px; }
  .hero h1 { font-size: clamp(39px, 11.8vw, 49px); }
  .hero-lede { font-size: 12px; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .hero-actions .button { width: 100%; padding-inline: 10px; white-space: nowrap; }
  .hero-carousel-controls { top: 11px; right: 11px; }
  .round-control { width: 32px; height: 32px; }
  .category-carousel { grid-auto-columns: 90%; }
  .preview-reel { grid-template-rows: 225px 145px 145px; }
  .contact-panel { padding-inline: 19px; }
}

@media (max-width: 340px) {
  .site-header { padding-inline: 5px; }
  .nav-shell { min-height: 54px; padding-left: 8px; border-radius: 15px; }
  .brand-monogram { width: 31px; height: 31px; font-size: 19px; }
  .brand-copy strong { font-size: 11.5px; letter-spacing: .13em; }
  .menu-toggle { width: 39px; height: 39px; }

  .hero { padding: 8px 6px 48px; }
  .hero-carousel { height: 470px; border-radius: 22px; }
  .hero-copy { padding: 0 14px 17px; }
  .hero-copy .eyebrow { font-size: 7px; letter-spacing: .12em; }
  .hero h1 { font-size: 38px; line-height: .90; }
  .hero-lede { margin-top: 12px; font-size: 11px; line-height: 1.52; }
  .hero-actions { margin-top: 14px; grid-template-columns: 1fr; gap: 6px; }
  .hero-actions .button { min-height: 42px; font-size: 9.5px; }
  .hero-carousel-controls { transform: scale(.9); transform-origin: top right; }

  .section-shell { width: calc(100% - 22px); }
  .section-heading h2, .experience-copy h2, .contact-copy h2 { font-size: 36px; }
  .section-copy { font-size: 11.5px; }
  .category-carousel { grid-auto-columns: 94%; }
  .category-card { min-height: 315px; }
  .category-card h3 { font-size: 27px; }
  .experience-visual { min-height: 330px; }
  .experience-card { left: 8px; right: 8px; padding: 14px; }
  .experience-card strong { font-size: 22px; }
  .experience-seal { width: 62px; height: 62px; right: 8px; top: 8px; }
  .experience-seal span { font-size: 26px; }
  .feature-list h3 { font-size: 19px; }
  .preview-reel { display: grid; grid-template-columns: 1fr; grid-template-rows: none; }
  .preview-tile, .preview-tile:first-child { grid-column: auto; height: 190px; }
  .contact-panel { width: calc(100% - 12px); padding: 32px 16px 26px; }
  .gallery-grid { columns: 1; }
}


/* Final mobile safety refinements */
html, body { max-width: 100%; overflow-x: clip; }
@media (max-width: 620px) {
  .whatsapp-fab {
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px) scale(.96);
    transition: opacity .22s ease, transform .22s ease, box-shadow .22s ease;
  }
  .whatsapp-fab.is-visible { opacity: 1; pointer-events: auto; transform: none; }
}

/* ========================================================================== 
   NAYAN EVENTS — Royal Purple + Celebration Gold Theme
   Bright, festive and premium without compromising the responsive V3 layout.
   ========================================================================== */

:root {
  --paper: #fbf7ff;
  --paper-2: #f1e7ff;
  --ivory: #fffaf2;
  --ink: #261438;
  --ink-soft: #705f80;
  --line: rgba(92, 38, 130, .16);
  --gold: #e5ad37;
  --gold-dark: #ae7414;
  --gold-pale: #f2d583;
  --brown: #642f83;
  --deep: #2d0a49;
  --sage: #9166aa;
  --purple: #6b2caf;
  --purple-bright: #8b3ff2;
  --purple-soft: #efe1ff;
  --plum: #42105f;
  --champagne: #fff1c4;
  --shadow: 0 28px 70px rgba(66, 16, 95, .18);
  --shadow-soft: 0 18px 42px rgba(79, 31, 112, .12);
}

body {
  background:
    radial-gradient(circle at 8% 14%, rgba(161, 88, 232, .11), transparent 25%),
    radial-gradient(circle at 92% 28%, rgba(229, 173, 55, .12), transparent 23%),
    linear-gradient(180deg, #fffaff 0%, #fbf7ff 42%, #fffaf2 100%);
}

button:focus-visible, a:focus-visible {
  outline-color: rgba(139, 63, 242, .46);
}

.page-grain { opacity: .11; }

/* Header — glassy lilac with jewel-tone accents */
.nav-shell {
  border-color: rgba(229, 173, 55, .32);
  background: rgba(255, 251, 255, .86);
  box-shadow: 0 12px 38px rgba(72, 23, 101, .12), inset 0 1px 0 rgba(255,255,255,.9);
}
.brand-monogram {
  border: 1px solid rgba(242, 213, 131, .9);
  color: #fff8df;
  background: linear-gradient(145deg, var(--purple-bright), #552080 68%, var(--plum));
  box-shadow: 0 8px 20px rgba(96, 34, 148, .22), inset 0 0 0 3px rgba(255,255,255,.09);
}
.brand-copy strong { color: #3a1654; }
.brand-copy small { color: #876b99; }
.desktop-nav a { color: #5b3b6e; }
.desktop-nav a::after { height: 2px; background: linear-gradient(90deg, var(--purple-bright), var(--gold)); }
.nav-cta,
.mobile-nav .mobile-nav-cta {
  color: #fffaf2;
  background: linear-gradient(135deg, #7b32cd 0%, #5a208f 65%, #431064 100%);
  border: 1px solid rgba(242,213,131,.42);
  box-shadow: 0 10px 24px rgba(81, 25, 119, .22);
}
.nav-cta span { color: var(--gold-pale); }
@media (hover:hover) {
  .nav-cta:hover { background: linear-gradient(135deg, #8e43e2, #63239e 70%, #49116c); }
}
.mobile-nav {
  background: rgba(255, 251, 255, .97);
  border-color: rgba(229,173,55,.28);
}

/* Hero celebration canvas */
.hero { isolation: isolate; }
.hero::before {
  content: "";
  position: absolute;
  inset: 18px 2% 18px;
  z-index: 0;
  pointer-events: none;
  border-radius: 46px;
  background:
    radial-gradient(circle at 12% 20%, rgba(135, 61, 230, .16), transparent 25%),
    radial-gradient(circle at 79% 12%, rgba(238, 185, 63, .16), transparent 22%),
    radial-gradient(circle at 84% 82%, rgba(194, 76, 197, .10), transparent 22%),
    linear-gradient(135deg, rgba(255,255,255,.46), rgba(244,232,255,.35));
  border: 1px solid rgba(229,173,55,.12);
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .5;
  background-image:
    radial-gradient(circle, rgba(229,173,55,.75) 0 1.5px, transparent 1.8px),
    radial-gradient(circle, rgba(124,58,237,.34) 0 1px, transparent 1.3px);
  background-size: 86px 86px, 118px 118px;
  background-position: 12px 25px, 48px 64px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.9), transparent 86%);
}
.hero-copy, .hero-showcase, .hero-ornament { z-index: 2; }
.eyebrow { color: #873ad3; padding-left: 45px; padding-top: 20px;}
.hero h1 { color: #321548; text-shadow: 0 2px 0 rgba(255,255,255,.45); }
.hero h1 em,
.section-heading h2 em,
.contact-copy h2 em {
  color: transparent;
  background: linear-gradient(120deg, #bd7d12 0%, #f2c45d 48%, #c88716 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
.hero-lede { color: #715e80; }
.button-primary {
  color: #fffaf8;
  background: linear-gradient(135deg, #8439df 0%, #60249c 62%, #42105f 100%);
  border: 1px solid rgba(229,173,55,.45);
  box-shadow: 0 14px 30px rgba(89, 27, 132, .25);
}
.button-quiet {
  color: #4f226c;
  background: rgba(255,255,255,.68);
  border-color: rgba(166,104,211,.28);
  box-shadow: 0 10px 25px rgba(84,36,111,.07);
}
.hero-note { color: #826993; }
.hero-note-line { background: linear-gradient(90deg, var(--purple-bright), var(--gold)); }
.hero-carousel {
  background: #72439b;
  border: 2px solid rgba(240, 200, 99, .65);
  box-shadow: 0 32px 70px rgba(61, 16, 91, .26), 0 0 0 8px rgba(239,211,132,.08);
}
.hero-overlay {
  background: linear-gradient(to top, rgba(39, 5, 61, .9) 0%, rgba(69, 15, 101, .28) 58%, rgba(70, 21, 102, .05) 100%);
}
.hero-slide-copy > span { color: #ffe5a2; }
.hero-slide-copy button b { color: #ffd56f; }
.round-control {
  color: #51216f;
  border-color: rgba(229,173,55,.45);
  background: rgba(255,250,255,.9);
  box-shadow: 0 8px 20px rgba(77,22,111,.12);
}
.hero-dot { background: rgba(101,50,132,.25); }
.hero-dot.is-active { background: linear-gradient(90deg, var(--purple-bright), var(--gold)); }
.hero-floating-card {
  color: #37174e;
  background: linear-gradient(150deg, rgba(255,253,255,.97), rgba(255,244,207,.94));
  border: 1px solid rgba(229,173,55,.55);
  box-shadow: 0 20px 45px rgba(74,20,103,.18);
}
.hero-floating-card::before {
  content: "✦";
  position: absolute;
  top: 14px;
  color: var(--gold);
  font-size: 14px;
  animation: eventTwinkle 2.2s ease-in-out infinite;
}
.hero-floating-card span { color: #8b3fd0; }
.hero-ornament { color: #d59a28; opacity: .42; }

/* Animated decorative confetti and hanging celebration garland */
.hero-festive-decor,
.celebration-garland { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero-festive-decor .spark {
  position: absolute;
  color: var(--gold);
  filter: drop-shadow(0 4px 10px rgba(122,70,14,.12));
  animation: eventFloat 5s ease-in-out infinite;
}
.hero-festive-decor .spark:nth-child(even) { color: #a85de8; }
.spark-1 { left: 6%; top: 14%; font-size: 19px; }
.spark-2 { left: 45%; top: 9%; font-size: 14px; animation-delay: -.9s !important; }
.spark-3 { right: 4%; top: 36%; font-size: 11px; animation-delay: -2.1s !important; }
.spark-4 { left: 41%; bottom: 10%; font-size: 17px; animation-delay: -1.5s !important; }
.spark-5 { right: 48%; top: 48%; font-size: 7px; animation-delay: -3s !important; }
.spark-6 { left: 3%; bottom: 20%; font-size: 16px; animation-delay: -.4s !important; }
.celebration-garland { inset: 34px auto auto 53%; width: min(390px, 34vw); height: 86px; opacity: .72; }
.garland-line {
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 42px;
  border-bottom: 1.5px solid rgba(205,143,27,.68);
  border-radius: 0 0 50% 50%;
}
.garland-drop {
  position: absolute;
  top: 36px;
  color: #d29a27;
  font-style: normal;
  font-size: 11px;
  transform-origin: center -30px;
  animation: garlandSway 4s ease-in-out infinite;
}
.garland-drop::before { content: ""; position: absolute; width: 1px; height: 28px; background: rgba(205,143,27,.48); bottom: 11px; left: 50%; }
.drop-1 { left: 11%; }
.drop-2 { left: 31%; top: 47px; animation-delay: -.6s; }
.drop-3 { left: 50%; top: 53px; animation-delay: -1.2s; }
.drop-4 { left: 69%; top: 47px; animation-delay: -.9s; }
.drop-5 { left: 88%; animation-delay: -1.7s; }

@keyframes eventFloat { 0%,100% { transform: translateY(0) rotate(0); opacity:.65; } 50% { transform: translateY(-10px) rotate(12deg); opacity:1; } }
@keyframes eventTwinkle { 0%,100% { transform: scale(.86) rotate(0); opacity:.55; } 50% { transform: scale(1.16) rotate(18deg); opacity:1; } }
@keyframes garlandSway { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } }

/* Festive statement band */
.intro-band {
  border-color: rgba(236,190,74,.46);
  background: linear-gradient(90deg, #42105f, #7130aa 48%, #531477);
  box-shadow: inset 0 1px rgba(255,229,159,.14), inset 0 -1px rgba(255,229,159,.12);
}
.intro-band-track { color: #fff8f0; font-weight: 600; }
.intro-band-track i { color: #ffd56e; text-shadow: 0 0 18px rgba(255,213,110,.45); }

/* Section divider — tiny celebratory jewellery between chapters */
.celebration-divider {
  width: min(520px, calc(100% - 48px));
  margin: -18px auto 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #d49a25;
  position: relative;
  z-index: 5;
}
.celebration-divider span { width: min(150px, 24vw); height: 1px; background: linear-gradient(90deg, transparent, rgba(212,154,37,.72)); }
.celebration-divider span:last-child { transform: scaleX(-1); }
.celebration-divider i { font-style: normal; font-size: 11px; }
.celebration-divider b { color: #7f35bd; font-size: 8px; transform: rotate(45deg); }
.celebration-divider-dark { margin-top: 0; margin-bottom: 0; background: #35104f; width: 100%; max-width: none; padding: 17px 0; }
.celebration-divider-dark span { background: linear-gradient(90deg, transparent, rgba(242,200,95,.52)); }
.celebration-divider-dark b { color: #c88cf5; }

/* Event categories — jewel-framed cards */
.events-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 4% 80%, rgba(132,57,223,.10), transparent 23%),
    radial-gradient(circle at 96% 20%, rgba(231,179,60,.13), transparent 21%),
    linear-gradient(180deg, rgba(255,255,255,.30), rgba(247,237,255,.68));
}
.events-section::before,
.process::after {
  content: "✦   ·   ✧   ·   ✦";
  position: absolute;
  pointer-events: none;
  color: rgba(125,50,186,.13);
  font-family: var(--serif);
  font-size: clamp(70px, 9vw, 130px);
  letter-spacing: .12em;
  white-space: nowrap;
  transform: rotate(-12deg);
}
.events-section::before { right: -12%; top: 8%; }
.section-heading h2 { color: #331548; padding-left: 45px; }
.category-card {
  border: 1px solid rgba(237,194,86,.62);
  background: #765093;
  box-shadow: 0 18px 44px rgba(67,18,98,.16), 0 0 0 6px rgba(255,255,255,.38);
}
.category-card::after {
  background: linear-gradient(to top, rgba(43,5,66,.93), rgba(64,12,91,.24) 57%, rgba(68,18,99,.04));
}
.category-card .card-fallback { background: linear-gradient(145deg, #9f60d3, #65318d 55%, #321345); }
.category-card-index { color: rgba(255,243,205,.9); }
.category-card-index i {
  border-color: rgba(255,224,135,.72);
  background: rgba(91,30,130,.45);
  color: #ffe39a;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.category-card h3 { color: #fffafb; text-shadow: 0 2px 10px rgba(33,0,52,.18); }
.category-card p { color: rgba(255,247,255,.82); }
@media (hover:hover) {
  .category-card:hover {
    box-shadow: 0 24px 58px rgba(67,18,98,.24), 0 0 0 6px rgba(240,200,94,.12);
  }
  .category-card:hover .category-card-index i { background: #f0bd4f; color: #3e1258; }
}
.carousel-arrow {
  color: white;
  border-color: rgba(247,213,124,.7);
  background: linear-gradient(145deg, #8b3ff2, #562084);
  box-shadow: 0 14px 32px rgba(66,16,95,.22);
}
.carousel-hint { color: #805b96; }
.carousel-hint span { background: linear-gradient(90deg, #823bd0, #e4ad37); }

/* Experience — dramatic violet ballroom mood */
.experience {
  background:
    radial-gradient(circle at 15% 22%, rgba(169,88,230,.28), transparent 28%),
    radial-gradient(circle at 82% 78%, rgba(235,184,60,.16), transparent 27%),
    linear-gradient(145deg, #26053d 0%, #41105f 48%, #2b0846 100%);
}
.experience::before {
  background:
    radial-gradient(circle at 18% 26%, rgba(244,198,83,.13), transparent 27%),
    radial-gradient(circle at 82% 80%, rgba(194,125,237,.09), transparent 28%);
}
.experience::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .45;
  background-image: radial-gradient(circle, rgba(255,218,121,.72) 0 1px, transparent 1.4px);
  background-size: 84px 84px;
  background-position: 24px 10px;
  mask-image: linear-gradient(110deg, transparent 8%, black 35%, transparent 92%);
}
.experience-grid { z-index: 1; }
.experience-photo {
  border: 1.5px solid rgba(242,201,96,.68);
  box-shadow: 0 28px 60px rgba(13,0,23,.28), 0 0 0 7px rgba(229,173,55,.07);
}
.experience-card {
  background: linear-gradient(145deg, #fffaff, #fff0c9);
  border: 1px solid rgba(229,173,55,.52);
  box-shadow: 0 24px 56px rgba(21,0,35,.28);
}
.experience-card span { color: #8736c6; }
.experience-seal {
  color: #ffe092;
  border-color: rgba(242,202,100,.68);
  background: rgba(70,18,99,.72);
  box-shadow: 0 12px 30px rgba(0,0,0,.22), inset 0 0 0 4px rgba(255,255,255,.05);
}
.experience-copy .eyebrow,
.experience-copy h2 em,
.feature-list article > span,
.text-cta span { color: #f2c85f; }
.experience-copy h2 { color: #000000; }
.experience-lede,
.feature-list p { color: rgba(252,241,255,.72); }
.feature-list { border-color: rgba(242,200,95,.22); }
.feature-list article { border-color: rgba(242,200,95,.18); }
.text-cta { color: #fff8ff; }

/* Process — light lavender stationery with gold detailing */
.process {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 90% 16%, rgba(229,173,55,.12), transparent 20%),
    linear-gradient(180deg, #fbf7ff 0%, #f4eaff 100%);
}
.process::after { left: -11%; right: auto; top: 31%; transform: rotate(12deg); }
.process-line { border-color: rgba(136,67,183,.24); }
.process-step::before {
  background: #fffaff;
  border-color: #d99f28;
  box-shadow: 0 0 0 5px #f7efff, 0 0 22px rgba(218,159,40,.18);
}
.process-step span { color: #883bd0; }
.process-step h3 { color: #3d1a55; }

/* Gallery preview and modal */
.preview-tile { border: 1px solid rgba(229,173,55,.5); box-shadow: 0 14px 34px rgba(65,19,94,.12); }
.preview-tile::after { background: linear-gradient(to top, rgba(49,5,73,.82), transparent 58%); }
.gallery-sheet,
.all-events-sheet {
  background: linear-gradient(180deg, #fffaff, #f5ebff);
  border: 1px solid rgba(230,184,68,.4);
}
.gallery-header { background: rgba(252,247,255,.94); border-color: rgba(119,57,158,.15); }
.modal-close,
.all-events-sheet header button { background: #fffaff; color: #552075; border-color: rgba(145,73,190,.2); }
.gallery-filters button.is-active {
  background: linear-gradient(135deg, #8238d3, #562081);
  border-color: #7130ae;
}
.all-event-option { border-color: rgba(131,56,179,.17); background: rgba(255,255,255,.6); }
.all-event-option span { color: #b57c16; }
@media (hover:hover) { .all-event-option:hover { background: #fffdfd; box-shadow: 0 10px 26px rgba(72,22,99,.08); } }

/* Contact — festive finale */
.contact-panel {
  background:
    radial-gradient(circle at 83% 14%, rgba(255,219,125,.33), transparent 22%),
    radial-gradient(circle at 12% 82%, rgba(193,111,239,.26), transparent 26%),
    linear-gradient(135deg, #6e27a8 0%, #4b126f 56%, #2d083f 100%);
  border: 1px solid rgba(244,204,104,.68);
  box-shadow: 0 30px 80px rgba(58,13,82,.26), 0 0 0 8px rgba(231,184,70,.07);
}
.contact-panel::before {
  background:
    radial-gradient(circle at 80% 15%, rgba(255,241,193,.18), transparent 25%),
    linear-gradient(120deg, rgba(82,22,117,.08), transparent 48%);
}
.contact-panel::after {
  content: "✦  ✧  ◆  ✦  ·  ✧";
  position: absolute;
  right: 38px;
  top: 26px;
  color: rgba(255,225,142,.34);
  font-family: var(--serif);
  letter-spacing: .45em;
  font-size: 15px;
  animation: eventTwinkle 3.5s ease-in-out infinite;
}
.contact-copy .eyebrow.light { color: #ffd979; }
.contact-copy h2 { color: #fffaff; }
.contact-copy > p:not(.eyebrow) { color: rgba(255,247,255,.78); }
.button-light {
  background: linear-gradient(135deg, #fff9e7, #ffe6a0);
  color: #4a1667;
  box-shadow: 0 12px 26px rgba(31,4,47,.16);
}
.button-outline-light { border-color: rgba(255,224,139,.54); background: rgba(255,255,255,.05); }
.contact-details { border-color: rgba(255,224,139,.24); }
.contact-details a, .contact-details div { border-color: rgba(255,224,139,.18); }
.contact-details span { color: rgba(255,227,151,.72); }
.contact-ornament svg { stroke: #ffd979; }

/* Footer */
.site-footer { color: #4b2360; }
.footer-brand span {
  color: #fff8df;
  border-color: #e8ba4f;
  background: linear-gradient(145deg, #853bd3, #551c7b);
}
.footer-main { border-color: rgba(119,57,158,.15); }
.footer-bottom { color: #8a6b9b; }

/* WhatsApp remains recognizable, with a gold halo to belong to the palette */
.whatsapp-fab {
  box-shadow: 0 12px 34px rgba(31,157,85,.30), 0 0 0 4px rgba(229,173,55,.18);
  border: 1px solid rgba(255,230,158,.65);
}

/* Responsive decoration tuning */
@media (max-width: 1100px) {
  .celebration-garland { left: 48%; width: 34vw; opacity: .5; }
}

@media (max-width: 860px) {
  .hero::before { inset: 10px 10px 20px; border-radius: 34px; }
  .celebration-garland { display: none; }
  .events-section::before, .process::after { opacity: .65; font-size: 78px; }
  .celebration-divider { margin-top: -12px; }
}

@media (max-width: 620px) {
  .hero::before { inset: 0 5px 28px; border-radius: 30px; }
  .hero::after { opacity: .32; background-size: 68px 68px, 94px 94px; }
  .hero-festive-decor .spark { opacity: .7; }
  .spark-1 { left: 8%; top: 7%; }
  .spark-2 { left: 68%; top: 5%; }
  .spark-3 { right: 4%; top: 52%; }
  .spark-4 { left: 8%; bottom: 7%; }
  .spark-5, .spark-6 { display: none; }
  .hero h1 { color: #fffaff; text-shadow: 0 3px 18px rgba(25,0,38,.38); }
  .hero h1 em { background: none; color: #ffd774; -webkit-text-fill-color: #ffd774; }
  .hero-copy .eyebrow { color: #ffe091; }
  .hero-lede { color: rgba(255,248,255,.86); }
  .hero-actions .button-primary { background: linear-gradient(135deg, #a34df3, #7224ba); border-color: rgba(255,218,113,.62); }
  .hero-actions .button-quiet { color: white; background: rgba(255,255,255,.12); border-color: rgba(255,226,145,.38); }
  .hero-carousel { border-color: rgba(255,216,110,.72); box-shadow: 0 24px 50px rgba(53,10,78,.28); }
  .hero-overlay { background: linear-gradient(to top, rgba(44,5,68,.92) 0%, rgba(62,12,92,.48) 54%, rgba(48,4,74,.11) 100%); }
  .round-control { color: white; border-color: rgba(255,222,134,.5); background: rgba(65,15,95,.5); }
  .hero-dot { background: rgba(255,255,255,.42); }
  .hero-dot.is-active { background: #ffd875; }
  .intro-band { border-color: rgba(255,220,130,.36); }
  .events-section::before, .process::after { font-size: 54px; opacity: .4; }
  .celebration-divider { width: calc(100% - 30px); gap: 8px; margin-bottom: 12px; }
  .celebration-divider span { width: 22vw; }
  .celebration-divider-dark { width: 100%; }
  .category-card { box-shadow: 0 16px 38px rgba(66,17,95,.18), 0 0 0 3px rgba(255,255,255,.32); }
  .experience-photo { border-color: rgba(242,201,96,.72); }
  .process-step::before { background: #fffaff; box-shadow: 0 0 0 4px #f4eaff, 0 0 16px rgba(218,159,40,.18); }
  .contact-panel::after { right: 20px; top: 18px; font-size: 10px; letter-spacing: .25em; }
}

@media (max-width: 340px) {
  .hero-festive-decor .spark { font-size: 10px; }
  .events-section::before, .process::after { display: none; }
  .celebration-divider { gap: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-festive-decor .spark,
  .garland-drop,
  .hero-floating-card::before,
  .contact-panel::after { animation: none !important; }
}


/* =========================================================
   MOBILE HERO FIX
   The image carousel stays on top, while the main hero copy
   lives below it. Each changing image also shows its own
   caption and gallery link so mobile never becomes image-only.
   ========================================================= */
@media (max-width: 620px) {
  .hero {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    gap: 18px !important;
    padding: 12px 10px 46px !important;
    align-items: start !important;
  }

  .hero-showcase {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    z-index: 2 !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .hero-carousel {
    height: clamp(360px, 112vw, 475px) !important;
    min-height: 0 !important;
    border-radius: 28px !important;
    overflow: hidden !important;
  }

  .hero-overlay {
    background: linear-gradient(
      to top,
      rgba(31, 6, 48, .94) 0%,
      rgba(48, 11, 72, .72) 30%,
      rgba(52, 13, 78, .24) 62%,
      rgba(45, 9, 67, .06) 100%
    ) !important;
  }

  .hero-slide-copy {
    display: block !important;
    left: 18px !important;
    right: 18px !important;
    bottom: 18px !important;
    z-index: 6 !important;
    padding: 15px 16px 14px !important;
    border-radius: 18px !important;
    background: rgba(53, 17, 78, .56) !important;
    border: 1px solid rgba(255, 222, 140, .28) !important;
    backdrop-filter: blur(9px) !important;
    -webkit-backdrop-filter: blur(9px) !important;
    box-shadow: 0 12px 30px rgba(20, 3, 31, .18) !important;
  }

  .hero-slide-copy > span {
    display: block !important;
    margin-bottom: 6px !important;
    color: #ffe19a !important;
    font-size: 8.5px !important;
    line-height: 1.35 !important;
    letter-spacing: .11em !important;
  }

  .hero-slide-copy strong {
    display: block !important;
    max-width: 100% !important;
    color: #fffaf5 !important;
    font-size: clamp(24px, 7.2vw, 32px) !important;
    line-height: 1 !important;
    text-shadow: 0 2px 12px rgba(25, 2, 39, .25) !important;
  }

  .hero-slide-copy button {
    display: inline-flex !important;
    margin-top: 10px !important;
    min-height: 38px !important;
    padding: 0 !important;
    color: #fff9f0 !important;
    font-size: 9px !important;
    letter-spacing: .075em !important;
  }

  .hero-slide-copy button b {
    color: #ffd66f !important;
  }

  .hero-copy {
    grid-column: 1 !important;
    grid-row: 2 !important;
    align-self: auto !important;
    position: relative !important;
    z-index: 4 !important;
    padding: 4px 8px 0 !important;
    text-align: center !important;
    color: #3b164f !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .hero-copy.reveal,
  .hero-showcase.reveal {
    opacity: 1 !important;
    transform: none !important;
  }

  .hero-copy .eyebrow {
    justify-content: center !important;
    margin-bottom: 10px !important;
    color: #a36a17 !important;
    font-size: 8px !important;
    letter-spacing: .14em !important;
    text-shadow: none !important;
  }

  .hero h1 {
    margin: 0 auto !important;
    max-width: 9.5ch !important;
    color: #321548 !important;
    font-size: clamp(40px, 11.5vw, 52px) !important;
    line-height: .92 !important;
    text-shadow: none !important;
  }

  .hero h1 em {
    color: #b77b18 !important;
    -webkit-text-fill-color: #b77b18 !important;
  }

  .hero-lede {
    max-width: 480px !important;
    margin: 14px auto 0 !important;
    color: #735f7f !important;
    font-size: 12px !important;
    line-height: 1.62 !important;
  }

  .hero-actions {
    margin-top: 17px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    justify-content: center !important;
  }

  .hero-actions .button {
    width: 100% !important;
    min-height: 46px !important;
    padding: 10px 12px !important;
    font-size: 9.5px !important;
  }

  .hero-actions .button-primary {
    color: #fff !important;
    background: linear-gradient(135deg, #8f3ee7, #5b2187) !important;
    border-color: rgba(223, 176, 70, .45) !important;
    box-shadow: 0 11px 25px rgba(74, 23, 104, .18) !important;
  }

  .hero-actions .button-quiet {
    color: #572278 !important;
    background: rgba(255, 250, 244, .88) !important;
    border-color: rgba(100, 43, 137, .16) !important;
    backdrop-filter: none !important;
  }

  .hero-note,
  .hero-floating-card,
  .hero-ornament {
    display: none !important;
  }

  .hero-carousel-controls {
    left: auto !important;
    right: 12px !important;
    top: 12px !important;
    bottom: auto !important;
    z-index: 8 !important;
  }
}

@media (max-width: 420px) {
  .hero {
    padding-inline: 8px !important;
    gap: 15px !important;
  }
  .hero-carousel {
    height: clamp(350px, 112vw, 430px) !important;
    border-radius: 24px !important;
  }
  .hero-slide-copy {
    left: 14px !important;
    right: 14px !important;
    bottom: 14px !important;
    padding: 13px 14px 12px !important;
  }
  .hero-copy {
    padding-inline: 6px !important;
  }
  .hero h1 {
    font-size: clamp(38px, 11.7vw, 48px) !important;
  }
  .hero-actions {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 340px) {
  .hero-carousel {
    height: 340px !important;
  }
  .hero-slide-copy strong {
    font-size: 23px !important;
  }
  .hero-slide-copy > span {
    font-size: 7.5px !important;
  }
  .hero h1 {
    font-size: 37px !important;
  }
}

/* =========================================================
   HERO CATEGORY GRID REFRESH
   Smaller headline + all seven event categories in first view
   ========================================================= */
.hero {
  grid-template-columns: minmax(0, .82fr) minmax(520px, 1.18fr) !important;
  gap: 46px !important;
  min-height: 660px !important;
  align-items: center !important;
}
.hero-copy {
  padding-left: 18px !important;
}
.hero h1 {
  max-width: 560px !important;
  font-size: clamp(42px, 4.2vw, 64px) !important;
  line-height: .94 !important;
}
.hero-lede {
  max-width: 560px !important;
  margin-top: 20px !important;
  font-size: 14px !important;
  line-height: 1.72 !important;
}
.hero-actions {
  margin-top: 24px !important;
}
.hero-note {
  margin-top: 24px !important;
}

.hero-categories {
  position: relative;
  z-index: 4;
  min-width: 0;
  padding: 18px;
  border-radius: 30px;
  border: 1px solid rgba(229, 173, 55, .32);
  background:
    radial-gradient(circle at 92% 8%, rgba(232, 184, 70, .12), transparent 26%),
    linear-gradient(145deg, rgba(255, 252, 249, .90), rgba(247, 236, 255, .82));
  box-shadow: 0 24px 60px rgba(63, 17, 94, .13), inset 0 1px 0 rgba(255,255,255,.8);
  backdrop-filter: blur(10px);
}
.hero-categories::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(122, 52, 172, .09);
  border-radius: 24px;
  pointer-events: none;
}
.hero-categories-heading {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  padding: 3px 4px 14px;
}
.hero-categories-heading > span {
  color: #4a1a67;
  font: 600 25px/1 var(--serif);
}
.hero-categories-heading > small {
  color: #91779e;
  font-size: 9px;
  line-height: 1.4;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: right;
}
.hero-category-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 132px;
  gap: 10px;
}
.hero-category-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(255, 224, 146, .48);
  border-radius: 20px;
  background: #684083;
  box-shadow: 0 10px 26px rgba(51, 14, 77, .11);
  color: white;
  text-align: left;
  isolation: isolate;
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.hero-category-card::after {
  content: "";
  position: absolute;
  inset: 7px;
  z-index: 3;
  border: 1px solid rgba(255, 238, 194, .22);
  border-radius: 14px;
  pointer-events: none;
}
.hero-category-card img,
.hero-category-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.22,.61,.36,1);
}
.hero-category-fallback {
  background: linear-gradient(145deg, #a967d3, #5f287d 56%, #3a154e);
}
.hero-category-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to top, rgba(39, 8, 56, .88), rgba(47, 11, 66, .22) 65%, rgba(47, 11, 66, .05));
}
.hero-category-content {
  position: absolute;
  inset: auto 14px 13px;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  column-gap: 10px;
}
.hero-category-content small {
  grid-column: 1 / -1;
  margin-bottom: 3px;
  color: #f5d887;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .14em;
}
.hero-category-content strong {
  color: #fffaf5;
  font: 600 18px/.98 var(--serif);
  text-shadow: 0 2px 10px rgba(30, 5, 44, .28);
}
.hero-category-content i {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 228, 158, .54);
  background: rgba(75, 23, 104, .42);
  color: #ffe092;
  font-style: normal;
  font-size: 12px;
  backdrop-filter: blur(5px);
}
.hero-category-wedding {
  grid-column: span 2;
}
.hero-category-photography {
  grid-column: span 2;
}
@media (hover:hover) {
  .hero-category-card:hover {
    transform: translateY(-3px);
    border-color: rgba(239, 193, 77, .84);
    box-shadow: 0 16px 34px rgba(51, 14, 77, .18);
  }
  .hero-category-card:hover img { transform: scale(1.06); }
  .hero-category-card:hover .hero-category-content i {
    background: #f0bd4f;
    color: #3e1456;
  }
}

@media (max-width: 1120px) {
  .hero {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    min-height: 0 !important;
    padding-top: 56px !important;
  }
  .hero-copy {
    max-width: 760px !important;
    margin: 0 auto !important;
    padding-inline: 18px !important;
    text-align: center !important;
  }
  .hero-copy .eyebrow,
  .hero-actions,
  .hero-note { justify-content: center !important; }
  .hero h1,
  .hero-lede { margin-inline: auto !important; }
  .hero-categories {
    width: min(900px, 100%) !important;
    margin: 0 auto !important;
  }
  .hero-category-grid {
    grid-auto-rows: 142px;
  }
}

@media (max-width: 620px) {
  .hero {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    gap: 18px !important;
    padding: 38px 10px 52px !important;
  }
  .hero-copy {
    grid-column: 1 !important;
    grid-row: 1 !important;
    padding: 0 8px !important;
    text-align: center !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .hero-copy.reveal,
  .hero-categories.reveal {
    opacity: 1 !important;
    transform: none !important;
  }
  .hero-copy .eyebrow {
    justify-content: center !important;
    margin-bottom: 9px !important;
    font-size: 7.5px !important;
  }
  .hero h1 {
    max-width: 11ch !important;
    margin: 0 auto !important;
    font-size: clamp(31px, 9.4vw, 39px) !important;
    line-height: .96 !important;
  }
  .hero-lede {
    max-width: 520px !important;
    margin: 11px auto 0 !important;
    font-size: 11.5px !important;
    line-height: 1.56 !important;
  }
  .hero-actions {
    margin-top: 14px !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 7px !important;
  }
  .hero-actions .button {
    min-height: 42px !important;
    padding: 9px 8px !important;
    font-size: 8.7px !important;
  }
  .hero-note { display: none !important; }
  .hero-categories {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 13px !important;
    border-radius: 24px !important;
  }
  .hero-categories-heading {
    padding: 1px 2px 10px !important;
    align-items: center !important;
  }
  .hero-categories-heading > span {
    font-size: 20px !important;
  }
  .hero-categories-heading > small {
    max-width: 120px !important;
    font-size: 7px !important;
    line-height: 1.35 !important;
  }
  .hero-category-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: 112px !important;
    gap: 8px !important;
  }
  .hero-category-wedding,
  .hero-category-photography {
    grid-column: span 1 !important;
  }
  .hero-category-photography {
    grid-column: 1 / -1 !important;
  }
  .hero-category-card {
    border-radius: 17px !important;
  }
  .hero-category-card::after {
    inset: 6px !important;
    border-radius: 12px !important;
  }
  .hero-category-content {
    inset: auto 11px 10px !important;
  }
  .hero-category-content strong {
    font-size: 15px !important;
  }
  .hero-category-content i {
    width: 25px !important;
    height: 25px !important;
    font-size: 11px !important;
  }
  .hero-category-content small {
    font-size: 7px !important;
  }
}

@media (max-width: 360px) {
  .hero h1 {
    font-size: 30px !important;
  }
  .hero-actions {
    grid-template-columns: 1fr !important;
  }
  .hero-category-grid {
    grid-auto-rows: 104px !important;
  }
  .hero-category-content strong {
    font-size: 14px !important;
  }
  .hero-categories-heading > small {
    display: none !important;
  }
}

/* ========================================================================== 
   WARM CELEBRATION THEME — ivory, champagne, caramel and cocoa
   Category cards use the arched-photo + label treatment from the reference.
   ========================================================================== */
:root {
  --paper: #f8f0ea;
  --paper-2: #efddcc;
  --ivory: #fffaf5;
  --ink: #3b2319;
  --ink-soft: #7b6254;
  --line: rgba(109, 53, 31, .16);
  --gold: #d4a57d;
  --gold-dark: #835739;
  --gold-pale: #efddcc;
  --brown: #6d351f;
  --deep: #411815;
  --sage: #9b806c;
  --purple: #8f5b3f;
  --purple-bright: #bb7b50;
  --purple-soft: #f3e4d7;
  --plum: #4b2119;
  --champagne: #f4dfcc;
  --shadow: 0 28px 70px rgba(65, 24, 21, .15);
  --shadow-soft: 0 18px 42px rgba(109, 53, 31, .10);
}

body {
  color: var(--ink);
  background:
    radial-gradient(circle at 8% 14%, rgba(212, 165, 125, .16), transparent 25%),
    radial-gradient(circle at 92% 28%, rgba(239, 221, 204, .30), transparent 24%),
    linear-gradient(180deg, #fbf5ef 0%, #f8f0ea 48%, #fffaf5 100%);
}
button:focus-visible, a:focus-visible { outline-color: rgba(187, 123, 80, .52); }
.page-grain { opacity: .08; }

/* Header */
.nav-shell {
  border-color: rgba(187, 123, 80, .24);
  background: rgba(255, 250, 245, .90);
  box-shadow: 0 12px 38px rgba(109, 53, 31, .09), inset 0 1px 0 rgba(255,255,255,.9);
}
.brand-monogram {
  border-color: rgba(212,165,125,.92);
  color: #fff8f1;
  background: linear-gradient(145deg, #bb7b50 0%, #835739 65%, #5d2a1d 100%);
  box-shadow: 0 8px 20px rgba(109,53,31,.18), inset 0 0 0 3px rgba(255,255,255,.08);
}
.brand-copy strong { color: #4b2b20; }
.brand-copy small { color: #907565; }
.desktop-nav a { color: #674b3d; }
.desktop-nav a::after { background: linear-gradient(90deg, #bb7b50, #d4a57d); }
.nav-cta,
.mobile-nav .mobile-nav-cta,
.button-primary {
  color: #fffaf5;
  background: linear-gradient(135deg, #8c5236 0%, #6d351f 64%, #411815 100%);
  border-color: rgba(212,165,125,.50);
  box-shadow: 0 12px 28px rgba(65,24,21,.18);
}
@media (hover:hover) {
  .nav-cta:hover { background: linear-gradient(135deg, #9d6040, #76402a 68%, #4b2119); }
}
.mobile-nav { background: rgba(255,250,245,.98); border-color: rgba(187,123,80,.22); }

/* Hero */
.hero::before {
  background:
    radial-gradient(circle at 12% 20%, rgba(212,165,125,.18), transparent 25%),
    radial-gradient(circle at 79% 12%, rgba(239,221,204,.42), transparent 22%),
    radial-gradient(circle at 84% 82%, rgba(174,86,68,.09), transparent 22%),
    linear-gradient(135deg, rgba(255,255,255,.52), rgba(248,237,229,.55));
  border-color: rgba(187,123,80,.14);
}
.hero::after {
  opacity: .34;
  background-image:
    radial-gradient(circle, rgba(187,123,80,.60) 0 1.5px, transparent 1.8px),
    radial-gradient(circle, rgba(212,165,125,.38) 0 1px, transparent 1.3px);
}
.eyebrow { color: #9a6041; }
.hero h1 { color: #41261d; text-shadow: 0 2px 0 rgba(255,255,255,.45); }
.hero h1 em,
.section-heading h2 em,
.contact-copy h2 em {
  color: #D3AF37;
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  -webkit-text-fill-color: currentColor;
}
.hero-lede { color: #7b6254; }
.button-quiet {
  color: #644536;
  background: rgba(255,250,245,.72);
  border-color: rgba(187,123,80,.24);
  box-shadow: 0 10px 25px rgba(109,53,31,.06);
}
.hero-note { color: #8d7161; }
.hero-note-line { background: linear-gradient(90deg, #bb7b50, #d4a57d); }
.hero-ornament { color: #bb7b50; opacity: .34; }
.hero-festive-decor .spark,
.hero-festive-decor .spark:nth-child(even),
.garland-drop { color: #bb7b50; }
.garland-line { border-color: rgba(187,123,80,.58); }
.garland-drop::before { background: rgba(187,123,80,.42); }

/* Reference-style category strip */
.hero-categories {
  padding: 18px 18px 16px;
  border-radius: 28px;
  border: 1px solid rgba(187,123,80,.20);
  background:
    radial-gradient(circle at 94% 4%, rgba(212,165,125,.18), transparent 24%),
    linear-gradient(145deg, rgba(255,250,245,.96), rgba(248,237,229,.92));
  box-shadow: 0 22px 54px rgba(109,53,31,.10), inset 0 1px 0 rgba(255,255,255,.9);
}
.hero-categories::before { border-color: rgba(187,123,80,.10); }
.hero-categories-heading { align-items: center; }
.hero-categories-heading > span { color: #5f3929; }
.hero-categories-heading > small { color: #967866; }
.hero-category-grid {
  display: grid;
  grid-auto-flow: column;
  grid-template-columns: none;
  grid-auto-columns: 118px;
  grid-auto-rows: 218px;
  gap: 11px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 2px 2px 10px;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  overscroll-behavior-inline: contain;
}
.hero-category-grid::-webkit-scrollbar { display: none; }
.hero-category-card,
.hero-category-wedding,
.hero-category-photography {
  grid-column: auto;
  position: relative;
  min-width: 0;
  min-height: 218px;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(187,123,80,.22);
  border-radius: 62px 62px 16px 16px;
  background: #f8ede5;
  color: #5f3929;
  box-shadow: 0 10px 24px rgba(109,53,31,.10);
  scroll-snap-align: start;
}
.hero-category-card img,
.hero-category-fallback {
  inset: 0 0 auto;
  height: 166px;
  border-radius: 61px 61px 10px 10px;
  object-fit: cover;
}
.hero-category-fallback { background: linear-gradient(145deg, #d4a57d, #9d6243 55%, #6d351f); }
.hero-category-shade {
  inset: 0 0 auto;
  height: 166px;
  border-radius: 61px 61px 10px 10px;
  background: linear-gradient(to top, rgba(65,24,21,.34), rgba(65,24,21,.04) 68%, transparent);
}
.hero-category-card::after {
  inset: 7px 7px auto;
  height: 151px;
  border: 1px solid rgba(255,245,235,.46);
  border-radius: 55px 55px 8px 8px;
}
.hero-category-content {
  inset: auto 5px 6px;
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.hero-category-content small,
.hero-category-content i { display: none; }
.hero-category-content strong {
  color: #5a392b;
  font: 700 9px/1.25 var(--sans);
  letter-spacing: .055em;
  text-transform: uppercase;
  text-shadow: none;
}
.hero-category-card:hover {
  border-color: rgba(187,123,80,.48);
  box-shadow: 0 15px 32px rgba(109,53,31,.14);
}
.hero-category-card:hover img { transform: scale(1.045); }
.hero-category-card[data-category="birthday"] strong::after { content: "  🎂"; }
.hero-category-card[data-category="wedding"] strong::after { content: "  💍"; }
.hero-category-card[data-category="family"] strong::after { content: "  ♡"; }
.hero-category-card[data-category="parties"] strong::after { content: "  🎉"; }
.hero-category-card[data-category="theme"] strong::after { content: "  ✦"; }
.hero-category-card[data-category="photography"] strong::after { content: "  📷"; }
.hero-category-card[data-category="corporate"] strong::after { content: "  💼"; }

/* Warm editorial band */
.intro-band {
  border-color: rgba(187,123,80,.28);
  background: linear-gradient(90deg, #efd9c6 0%, #f8ede5 46%, #e9c9ae 100%);
  box-shadow: inset 0 1px rgba(255,255,255,.54), inset 0 -1px rgba(109,53,31,.06);
}
.intro-band-track { color: #684637; }
.intro-band-track i { color: #ae5644; text-shadow: none; }
.celebration-divider { color: #bb7b50; }
.celebration-divider span { background: linear-gradient(90deg, transparent, rgba(187,123,80,.62)); }
.celebration-divider b { color: #ae5644; }
.celebration-divider-dark { background: #5a2a1f; }
.celebration-divider-dark b { color: #d4a57d; }

/* Main event categories — same arched language, larger cards */
.events-section {
  background: #FDFBD4
}
.events-section::before,
.process::after { color: rgba(187,123,80,.10); }
.category-carousel { grid-auto-columns: minmax(176px, 19%); gap: 16px; }
.category-card {
  min-height: 330px;
  border: 5px solid #D3AF37;
  border-radius: 108px 108px 18px 18px;
  background: #7D8C6B;
  color: #5a392b;
  box-shadow: 0 14px 32px rgba(109,53,31,.10);
}
.category-card img,
.category-card .card-fallback {
  inset: 0 0 auto;
  height: 258px;
  border-radius: 106px 106px 10px 10px;
}
.category-card::after {
  inset: 0 0 auto;
  height: 258px;
  border-radius: 106px 106px 10px 10px;
  background: linear-gradient(to top, rgba(65,24,21,.34), rgba(65,24,21,.04) 66%, transparent);
}
.category-card .card-fallback { background: linear-gradient(145deg, #d4a57d, #9f6646 55%, #6d351f); }
.category-card-content {
  inset: auto 10px 13px;
  text-align: center;
}
.category-card-index,
.category-card p { display: none; }
.category-card h3 {
  margin: 0;
  color: #ffffff;
  font: 700 15px/1.28 var(--sans);
  font-style: italic;
  letter-spacing: .045em;
  text-transform: uppercase;
  text-shadow: none;
}
.category-card[data-category="birthday"] h3::after { content: "  🎂"; }
.category-card[data-category="wedding"] h3::after { content: "  💍"; }
.category-card[data-category="family"] h3::after { content: "  ♡"; }
.category-card[data-category="parties"] h3::after { content: "  🎉"; }
.category-card[data-category="theme"] h3::after { content: "  ✦"; }
.category-card[data-category="photography"] h3::after { content: "  📷"; }
.category-card[data-category="corporate"] h3::after { content: "  💼"; }
@media (hover:hover) {
  .category-card:hover {
    transform: translateY(-4px);
    border-color: rgba(187,123,80,.46);
    box-shadow: 0 18px 38px rgba(109,53,31,.14);
  }
}
.carousel-arrow { border-color: rgba(187,123,80,.24); background: rgba(255,250,245,.92); color: #6d351f; }
.carousel-hint { color: #8d7161; }
.carousel-hint span { background: #d4a57d; }

/* Dark sections use cocoa instead of purple */
.experience {
  background: #FDFBD4
}
.experience::before { background: radial-gradient(circle at 18% 26%, rgba(212,165,125,.12), transparent 27%), radial-gradient(circle at 82% 80%, rgba(255,255,255,.04), transparent 28%); }
.experience::after { background-image: radial-gradient(circle, rgba(239,221,204,.52) 0 1px, transparent 1.4px); }
.experience-photo { border-color: rgba(212,165,125,.58); box-shadow: 0 28px 60px rgba(29,10,9,.34), 0 0 0 7px rgba(212,165,125,.05); }
.experience-card { background: linear-gradient(145deg, #fffaf5, #efddcc); border-color: rgba(187,123,80,.38); box-shadow: 0 24px 56px rgba(29,10,9,.28); }
.experience-card span { color: #9a6041; }
.experience-seal { color: #efddcc; border-color: rgba(212,165,125,.54); background: rgba(65,24,21,.68); }
.experience-copy .eyebrow,
.experience-copy h2 em,
.feature-list article > span,
.text-cta span { color: #d4a57d; }
.experience-copy h2 { color: #000000; }
.experience-lede,
.feature-list p { color: #000000 }
.feature-list,
.feature-list article { border-color: rgba(212,165,125,.18); }
.text-cta { color: #fffaf5; }

.process {
  background: #FDFBD4;
}
.process-line { border-color: rgba(109,53,31,.18); }
.process-step::before { background: #fffaf5; border-color: #bb7b50; box-shadow: 0 0 0 5px #f8f0ea, 0 0 22px rgba(187,123,80,.16); }
.process-step span { color: #9a6041; }
.process-step h3 { color: #4b2b20; }

.preview-tile { border-color: rgba(187,123,80,.34); box-shadow: 0 14px 34px rgba(109,53,31,.10); }
.preview-tile::after { background: linear-gradient(to top, rgba(65,24,21,.80), transparent 58%); }
.gallery-sheet,
.all-events-sheet { background: linear-gradient(180deg, #fffaf5, #f8ede5); border-color: rgba(187,123,80,.28); }
.gallery-header { background: rgba(255,250,245,.95); border-color: rgba(109,53,31,.12); }
.modal-close,
.all-events-sheet header button { background: #fffaf5; color: #6d351f; border-color: rgba(109,53,31,.16); }
.gallery-filters button.is-active { background: #6d351f; border-color: #6d351f; }
.all-event-option { border-color: rgba(109,53,31,.14); background: rgba(255,255,255,.58); }
.all-event-option span { color: #9a6041; }

.contact-panel {
  background: #7D8C6B;
  border-color: rgba(212,165,125,.56);
  box-shadow: 0 30px 80px rgba(65,24,21,.22), 0 0 0 8px rgba(212,165,125,.05);
}
.contact-panel::before { background: radial-gradient(circle at 80% 15%, rgba(255,245,232,.16), transparent 25%), linear-gradient(120deg, rgba(65,24,21,.10), transparent 48%); }
.contact-panel::after { color: rgba(239,221,204,.36); }
.contact-copy .eyebrow.light { color: #efddcc; }
.contact-copy h2 { color: #fffaf5; }
.contact-copy > p:not(.eyebrow) { color: rgba(255,250,245,.78); }
.button-light { background: linear-gradient(135deg, #fffaf5, #efddcc); color: #5a2b1f; }
.button-outline-light { border-color: rgba(239,221,204,.48); background: rgba(255,255,255,.05); }
.contact-details { border-color: rgba(239,221,204,.22); }
.contact-details a, .contact-details div { border-color: rgba(239,221,204,.16); }
.contact-details span { color: rgba(239,221,204,.76); }
.contact-ornament svg { stroke: #efddcc; }
.site-footer { color: #5f4032; }
.footer-brand span { color: #fff8f1; border-color: #d4a57d; background: linear-gradient(145deg, #9a6041, #6d351f); }
.footer-main { border-color: rgba(109,53,31,.14); }
.footer-bottom { color: #947766; }

/* Responsive category sizing */
@media (max-width: 1120px) {
  .hero-category-grid { grid-auto-columns: 116px; }
}
@media (max-width: 860px) {
  .hero-categories { width: min(900px, 100%) !important; }
  .hero-category-grid { grid-auto-columns: 120px; }
  .category-carousel { grid-auto-columns: minmax(168px, 30%); }
}
@media (max-width: 620px) {
  .hero { color: var(--ink); }
  .hero h1 { color: #41261d !important; text-shadow: none !important; }
  .hero h1 em { color: #ae5644 !important; -webkit-text-fill-color: #ae5644 !important; }
  .hero-copy .eyebrow { color: #9a6041 !important; }
  .hero-lede { color: #7b6254 !important; }
  .hero-actions .button-primary { background: linear-gradient(135deg, #9a6041, #6d351f) !important; border-color: rgba(212,165,125,.56) !important; }
  .hero-actions .button-quiet { color: #654536 !important; background: rgba(255,250,245,.80) !important; border-color: rgba(187,123,80,.28) !important; }
  .hero-categories { padding: 12px !important; border-radius: 22px !important; }
  .hero-category-grid {
    grid-template-columns: none !important;
    grid-auto-flow: column !important;
    grid-auto-columns: 104px !important;
    grid-auto-rows: 190px !important;
    gap: 9px !important;
  }
  .hero-category-wedding,
  .hero-category-photography { grid-column: auto !important; }
  .hero-category-card { min-height: 190px; border-radius: 54px 54px 14px 14px !important; }
  .hero-category-card img,
  .hero-category-fallback,
  .hero-category-shade { height: 145px; border-radius: 53px 53px 9px 9px; }
  .hero-category-card::after { height: 131px; border-radius: 48px 48px 7px 7px !important; }
  .hero-category-content { inset: auto 4px 5px !important; min-height: 35px; }
  .hero-category-content strong { font-size: 8px !important; }

  .category-carousel { grid-auto-columns: 48%; gap: 10px; padding-bottom: 14px; }
  .category-card { min-height: 270px; border-radius: 88px 88px 15px 15px; }
  .category-card img,
  .category-card .card-fallback,
  .category-card::after { height: 210px; border-radius: 86px 86px 9px 9px; }
  .category-card-content { inset: auto 7px 10px; }
  .category-card h3 { font-size: 12px; }
  .celebration-divider-dark { background: #5a2a1f; }
}
@media (max-width: 360px) {
  .hero-category-grid { grid-auto-columns: 98px !important; grid-auto-rows: 180px !important; }
  .hero-category-card { min-height: 180px; }
  .hero-category-card img,
  .hero-category-fallback,
  .hero-category-shade { height: 137px; }
  .hero-category-card::after { height: 123px; }
  .category-carousel { grid-auto-columns: 62%; }
}
@media (max-width: 620px) {
  .hero-copy { color: #41261d !important; }
}
