:root {
  --ink: #18211c;
  --forest: #24372c;
  --cream: #f7f3eb;
  --paper: #fffdf8;
  --gold: #bd9664;
  --rose: #b98978;
  --line: #dcd5ca;
  --muted: #686d67;
  --serif: "Italiana", serif;
  --sans: "DM Sans", sans-serif;
}

/* Guided wedding qualifier */
.mobile-summary-bar,.bottom-sheet,.sheet-backdrop{display:none!important}
.guided-builder{max-width:1240px;margin:0 auto;color:#20251f}.guided-builder>header{text-align:center;margin-bottom:2rem}.guided-builder>header h2{margin:.35rem 0 1.4rem}.guided-progress{display:flex;justify-content:center;gap:.35rem;flex-wrap:wrap}.guided-progress span{padding:.55rem .85rem;border-bottom:1px solid #cfc8bb;color:#79776f;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.guided-progress span.current{color:#a9783c;border-color:#a9783c;font-weight:600}.guided-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:2rem;align-items:start}.guided-stage{min-width:0}.guided-question,.recommendation-card,.guided-success{background:#fff;border:1px solid #ded8ce;padding:clamp(1.35rem,3vw,3rem);box-shadow:0 18px 45px rgba(29,34,28,.07)}.guided-question>h3,.recommendation-card>h3,.guided-success h3{font-family:Italiana,serif;font-size:clamp(2rem,4vw,3.35rem);line-height:1.08;margin:.4rem 0 1rem;font-weight:400}.guided-question>p:not(.kicker),.recommendation-card>p{max-width:720px;line-height:1.7;color:#686a64}.hero-field{display:block;max-width:620px;margin:1.3rem 0}.hero-field>span,.guided-contact label>span{display:block;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.11em;font-size:.75rem;font-weight:600;color:#625f57}.hero-field input,.hero-field select,.guided-contact input,.guided-contact select,.guided-contact textarea{width:100%;box-sizing:border-box;border:1px solid #cfc9bd;background:#fbfaf7;border-radius:0;padding:1rem;font:inherit;color:#20251f;min-height:52px}.guided-status{min-height:1.5rem;margin:1rem 0;color:#725b37}.guided-status.available{color:#315d42}.guided-status.unavailable,.guided-status.error{color:#8c443a}.guided-actions,.recommend-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem}.guided-back{border:0;background:transparent;padding:.85rem 0;color:#585c55;font:inherit;cursor:pointer}.coverage-card-grid,.target-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.7rem 0}.coverage-card,.target-card{position:relative;text-align:left;border:1px solid #d8d2c8;background:#fbfaf7;padding:1.35rem;min-height:150px;cursor:pointer;color:#20251f;transition:.16s ease}.coverage-card:hover,.coverage-card.selected,.target-card:hover,.target-card.selected{border-color:#a9783c;box-shadow:0 10px 26px rgba(89,65,32,.09);transform:translateY(-2px)}.coverage-card>span{position:absolute;right:1rem;top:1rem;width:24px;height:24px;border:1px solid #b8b2a6;border-radius:50%;display:grid;place-items:center;color:transparent}.coverage-card.selected>span{background:#a9783c;border-color:#a9783c;color:#fff}.coverage-card strong{display:block;font-family:Italiana,serif;font-size:1.55rem;margin:1.6rem 0 .45rem;font-weight:400}.coverage-card small{display:block;line-height:1.55;color:#74746e}.coverage-card.compact{min-height:95px}.coverage-card.compact strong{margin:1.35rem 0 0}.quiet-disclosure{font-size:.82rem;font-style:italic}.guided-summary{position:sticky;top:92px;border:1px solid #d8d2c8;background:#f8f5ef;padding:1.1rem}.summary-toggle{width:100%;display:flex;justify-content:space-between;border:0;background:transparent;padding:0;font:600 .75rem DM Sans,sans-serif;letter-spacing:.1em;text-transform:uppercase}.summary-toggle span{display:none}.summary-body p{margin:.85rem 0;padding-bottom:.75rem;border-bottom:1px solid #dfd9cf;font-size:.9rem;line-height:1.45}.summary-body small{display:block;margin:.45rem 0;color:#686a64}.included-reassurance{margin:1.5rem 0 2rem;padding:1.5rem;background:#f4f0e9;border-left:3px solid #a9783c}.included-reassurance h3{font-family:Italiana,serif;font-size:1.8rem;font-weight:400;margin:.35rem 0 1rem}.included-reassurance>div{display:grid;grid-template-columns:1fr 1fr;gap:.65rem 1.4rem}.included-reassurance span{font-size:.9rem;line-height:1.45}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.choice-grid.single{grid-template-columns:minmax(0,650px)}.experience-choice{border:1px solid #d8d2c8;background:#fff;position:relative}.experience-choice.selected{border-color:#a9783c;background:#fffcf6}.choice-main{width:100%;min-height:190px;border:0;background:transparent;text-align:left;padding:1.35rem;cursor:pointer;color:inherit}.choice-check{float:right;width:24px;height:24px;border:1px solid #b8b2a6;border-radius:50%;display:grid;place-items:center;color:transparent}.selected .choice-check{background:#a9783c;border-color:#a9783c;color:#fff}.choice-main strong{display:block;font-family:Italiana,serif;font-size:1.55rem;font-weight:400;margin:1.4rem 0 .5rem}.choice-main small{display:block;color:#74746e;line-height:1.5}.choice-main b{display:block;margin-top:1.25rem;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:#8c6737}.proof-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding:0 1.35rem 1.25rem}.proof-actions button,.memory-options button{border:0;border-bottom:1px solid #9a7a4f;background:transparent;padding:.35rem 0;color:#6b5539;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;cursor:pointer}.memory-options{display:flex;gap:.65rem;padding:0 1.35rem 1.2rem}.memory-options button.selected{font-weight:700;color:#20251f}.completion-note{text-align:center;margin:2rem auto 0!important;font-family:Italiana,serif;font-size:1.4rem!important;color:#516057!important}.enhance-heading{font-family:Italiana,serif;font-size:1.75rem;font-weight:400;margin:2rem 0 1rem}.target-grid{grid-template-columns:repeat(2,1fr)}.target-card{min-height:82px;display:flex;align-items:center;justify-content:center;text-align:center;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}.skip-target{display:block;margin:1rem auto;border:0;background:transparent}.best-fit-label{display:inline-block!important;margin:1rem 0 0!important;padding:.45rem .7rem;background:#a9783c;color:#fff!important;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}.why-fit,.experience-list{margin:1.5rem 0;padding:1.2rem;border:1px solid #ded8ce}.why-fit p{margin:.5rem 0 0;color:#686a64;line-height:1.55}.experience-list>p{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.experience-list span{display:block;margin:.5rem 0}.investment,.review-package,.live-total{margin:1.5rem 0;background:#1f2a23;color:#fff;padding:1.4rem}.investment span,.review-package span,.live-total span{display:block;text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;color:#d7bd91}.investment strong,.review-package strong,.live-total strong{display:block;font-family:Italiana,serif;font-size:2.6rem;font-weight:400;margin:.35rem 0}.investment small,.review-package small{display:block;color:#d2d5d0;line-height:1.5}.target-note{padding:1rem;border-left:3px solid #a9783c;background:#f8f3ea}.other-experiences{margin:1.4rem 0}.other-experiences summary{cursor:pointer;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem}.other-experiences>div{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin-top:.8rem}.other-experiences button{border:1px solid #d8d2c8;background:#fff;padding:1rem;text-align:left}.other-experiences small{display:block;margin-top:.35rem;color:#777}.btn.outline{background:transparent;border:1px solid #263129;color:#263129}.locked-foundation{display:flex;justify-content:space-between;gap:1rem;padding:1rem;background:#f0ede6}.locked-foundation span{color:#735d3f;font-size:.8rem}.customize-list{margin:1rem 0}.custom-row{display:flex;align-items:center;gap:.8rem;border-bottom:1px solid #e2ddd4;padding:1rem .4rem}.custom-row input{width:20px;height:20px;accent-color:#9b743f}.custom-row span{display:flex;justify-content:space-between;gap:1rem;flex:1}.custom-row small{color:#777}.custom-row.locked{background:#f8f6f1}.review-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid #ded8ce}.review-grid>div{padding:1rem;border-bottom:1px solid #e4ded4}.review-grid span{display:block;text-transform:uppercase;font-size:.67rem;letter-spacing:.1em;color:#777}.review-grid strong{display:block;margin-top:.35rem}.guided-contact{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem}.guided-contact .span2{grid-column:span 2}.guided-contact em{font-weight:400;text-transform:none;letter-spacing:0}.guided-success{text-align:center;padding:4rem 2rem}.guided-success>span{display:grid;place-items:center;margin:0 auto 1.4rem;width:54px;height:54px;border-radius:50%;background:#a9783c;color:#fff;font-size:1.4rem}.guided-success p{margin-left:auto;margin-right:auto}.conditional-location{margin-top:1rem}.guided-builder .btn{min-height:48px}.guided-builder button:focus-visible,.guided-builder input:focus-visible,.guided-builder select:focus-visible,.guided-builder textarea:focus-visible{outline:3px solid rgba(169,120,60,.3);outline-offset:2px}
@media(max-width:900px){.guided-layout{grid-template-columns:1fr}.guided-summary{position:sticky;bottom:12px;top:auto;z-index:5;order:-1;padding:.85rem 1rem;box-shadow:0 8px 28px rgba(0,0,0,.14)}.summary-toggle span{display:inline}.summary-body{display:none}.guided-summary.open .summary-body{display:block;max-height:38vh;overflow:auto}.guided-progress{overflow-x:auto;justify-content:flex-start;flex-wrap:nowrap;padding-bottom:.35rem}.guided-progress span{white-space:nowrap}.choice-grid.enhancements{grid-template-columns:1fr 1fr}}
@media(max-width:620px){#builder.section{padding-left:12px;padding-right:12px}.guided-builder>header{margin-bottom:1rem}.guided-builder>header h2{font-size:2.2rem}.guided-question,.recommendation-card{padding:1.2rem}.guided-question>h3,.recommendation-card>h3{font-size:2.15rem}.coverage-card-grid,.coverage-card-grid.three,.target-grid,.choice-grid,.choice-grid.enhancements,.included-reassurance>div,.review-grid,.guided-contact{grid-template-columns:1fr}.coverage-card{min-height:112px}.coverage-card strong{margin:1rem 0 .35rem}.coverage-card-grid{gap:.7rem}.choice-main{min-height:155px}.guided-contact .span2{grid-column:auto}.guided-actions,.recommend-actions{align-items:stretch;flex-direction:column-reverse}.guided-actions .btn,.recommend-actions .btn{width:100%}.guided-back{align-self:flex-start}.other-experiences>div{grid-template-columns:1fr}.custom-row span{display:block}.custom-row small{display:block;margin-top:.25rem}.investment strong,.review-package strong,.live-total strong{font-size:2.2rem}}
.cocktail-options{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.included-choice .choice-main{cursor:default}.choice-explainer{text-align:center;font-style:italic}.subtle-proof{margin-top:1rem;border:0;border-bottom:1px solid #a9783c;background:transparent;padding:.4rem 0;color:#6b5539;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;cursor:pointer}.media-pending{font-size:.72rem;color:#7b776e;font-style:italic}.inline-included{margin:0 1.2rem 1.2rem;padding:1rem;background:#f6f2ea;border-left:2px solid #a9783c}.inline-included strong{display:block;margin-bottom:.6rem}.inline-included span{display:block;margin:.35rem 0;font-size:.85rem}.v39-summary .summary-body section{padding:.75rem 0;border-bottom:1px solid #dfd9cf}.v39-summary .summary-body section:last-child{border:0}.v39-summary .summary-body section>strong{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:#8a673b;margin-bottom:.45rem}.target-actions{flex-direction:row!important}.target-actions .skip-target{margin:0 0 0 auto;padding:.85rem 0}.perfect-entry,.foundation-panel,.value-hint{margin:1.4rem 0;padding:1.2rem;background:#f7f3eb;border:1px solid #ddd4c7}.perfect-entry h4,.foundation-panel h4{font-family:Italiana,serif;font-size:1.6rem;font-weight:400;margin:.35rem 0 1rem}.perfect-entry small{display:block;margin-top:.7rem;color:#777}.priority-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}.priority-grid.two{grid-template-columns:1fr 1fr}.priority-grid button{border:1px solid #d8d2c8;background:#fbfaf7;padding:1.3rem;text-align:left;min-height:145px;cursor:pointer}.priority-grid strong{display:block;font-family:Italiana,serif;font-size:1.35rem;font-weight:400;margin-bottom:.55rem}.priority-grid small{line-height:1.5;color:#6e706a}.perfect-actions{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-top:1.5rem}.foundation-panel details{margin-top:1rem}.foundation-panel summary{cursor:pointer;text-transform:uppercase;letter-spacing:.09em;font-size:.72rem}.foundation-panel details div{display:flex;gap:.5rem;margin-top:.7rem}.foundation-panel details button,.value-hint button{border:0;border-bottom:1px solid #a9783c;background:transparent;padding:.4rem 0;color:#6b5539;cursor:pointer}.foundation-notice{padding:.9rem 1rem;background:#eef3ed;color:#405446!important}.required-foundation{display:flex;justify-content:space-between;gap:1rem;padding:1rem;background:#202b24;color:#fff}.required-foundation span{color:#dcc69f}.value-hint{border-left:3px solid #a9783c}.value-hint p{line-height:1.55}.proposal-sections{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin:1rem 0}.proposal-sections section{border:1px solid #ded8ce;padding:1rem}.proposal-sections strong{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;color:#8a673b;margin-bottom:.55rem}.proposal-sections span{display:block;margin:.35rem 0}.spe-info-modal{position:fixed;inset:0;z-index:1000;background:rgba(14,19,16,.78);display:none;align-items:center;justify-content:center;padding:1rem}.spe-info-modal.open{display:flex}.spe-info-modal>div{position:relative;background:#fffdf8;max-width:600px;width:100%;padding:clamp(1.5rem,4vw,3rem);box-shadow:0 30px 80px rgba(0,0,0,.3)}.spe-info-modal h3{font-family:Italiana,serif;font-size:2.25rem;font-weight:400;margin:.4rem 0 1rem}.spe-info-content p{line-height:1.7;color:#62665f}.spe-info-close{position:absolute;right:1rem;top:1rem;border:0;background:transparent;font-size:2rem;cursor:pointer}.audio-example-placeholder{margin-top:1rem;padding:1.2rem;border:1px dashed #c9bda9;text-align:center;color:#7b6b54}.guided-v39 .choice-main b{pointer-events:none}
.spe-info-content video,.spe-info-content img{display:block;width:100%;max-height:68vh;object-fit:contain;background:#111}
@media(max-width:700px){.cocktail-options,.priority-grid,.priority-grid.two,.proposal-sections{grid-template-columns:1fr}.target-actions{align-items:center!important}.required-foundation{display:block}.required-foundation span{display:block;margin-top:.45rem}.perfect-actions{align-items:stretch;flex-direction:column}.perfect-actions .btn,.perfect-actions .line-link{width:100%;text-align:center}.foundation-panel details div{flex-direction:column;align-items:flex-start}}

/* Single featured Wedding Reel on the public homepage */
.featured-wedding-reel {
  padding: clamp(76px, 8vw, 112px) clamp(18px, 5vw, 76px);
  background: var(--forest);
}
.wedding-reel-frame {
  position: relative;
  width: min(100%, 1440px);
  aspect-ratio: 16 / 9;
  margin: 0 auto;
  overflow: hidden;
  background: #17231b;
  box-shadow: 0 22px 58px #18211c24;
}
.wedding-reel-video {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #17231b;
  object-fit: cover;
}
.wedding-reel-poster {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(9px, 1.4vw, 18px);
  width: 100%;
  height: 100%;
  padding: 20px;
  border: 0;
  color: #fffdf8;
  text-align: center;
  cursor: pointer;
  background: linear-gradient(180deg, #10181212 0%, #10181230 100%);
  text-shadow: 0 2px 18px #10181280;
  -webkit-tap-highlight-color: transparent;
}
.wedding-reel-poster[hidden],
.wedding-reel-error[hidden] {
  display: none !important;
}
.wedding-reel-brand {
  font: 500 clamp(10px, 1vw, 13px)/1.3 var(--sans);
  letter-spacing: .32em;
  text-transform: uppercase;
}
.wedding-reel-title {
  font: 400 clamp(42px, 8vw, 102px)/.98 var(--serif);
}
.wedding-reel-tagline {
  font: 400 clamp(13px, 1.55vw, 19px)/1.4 var(--sans);
  letter-spacing: .035em;
}
.wedding-reel-play-icon {
  display: grid;
  place-items: center;
  width: clamp(52px, 6.2vw, 72px);
  height: clamp(52px, 6.2vw, 72px);
  margin-top: clamp(3px, .7vw, 9px);
  border: 1px solid #f5e5c6c9;
  border-radius: 50%;
  color: #fffdf8;
  background: #18211c5c;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  transition: background-color .2s ease, transform .2s ease, border-color .2s ease;
}
.wedding-reel-play-icon svg {
  width: 26px;
  height: 26px;
  fill: currentColor;
  transform: translateX(2px);
}
.wedding-reel-poster:hover .wedding-reel-play-icon {
  transform: scale(1.06);
  border-color: #fff;
  background: #18211c9c;
}
.wedding-reel-poster:focus-visible {
  outline: 3px solid #fffdf8;
  outline-offset: -7px;
}
.wedding-reel-error {
  position: absolute;
  z-index: 2;
  right: 12px;
  bottom: 12px;
  max-width: calc(100% - 24px);
  margin: 0;
  padding: 8px 12px;
  color: #fff;
  background: #18211cdb;
  font: 400 13px/1.45 var(--sans);
}
@media (max-width: 600px) {
  .featured-wedding-reel {
    padding: 40px 14px 44px;
  }
  .wedding-reel-poster {
    gap: 8px;
    padding: 12px;
  }
  .wedding-reel-brand {
    font-size: 9px;
    letter-spacing: .24em;
  }
  .wedding-reel-title {
    font-size: clamp(36px, 10vw, 54px);
  }
  .wedding-reel-tagline {
    font-size: 13px;
  }
  .wedding-reel-play-icon {
    width: 48px;
    height: 48px;
  }
  .wedding-reel-play-icon svg {
    width: 21px;
    height: 21px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .wedding-reel-play-icon { transition: none; }
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 400;
  background: var(--paper);
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
a {
  color: inherit;
  text-decoration: none;
}
.nav {
  height: 88px;
  padding: 0 clamp(24px, 5vw, 76px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: absolute;
  z-index: 20;
  width: 100%;
  color: #fff;
  border-bottom: 1px solid #ffffff30;
}
.brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}
.brand span {
  font-family: var(--serif);
  font-size: 24px;
  letter-spacing: 0.18em;
}
.brand small {
  font-size: 8px;
  letter-spacing: 0.36em;
  margin-top: 7px;
}
.nav nav,
footer nav {
  display: flex;
  gap: 34px;
  font-size: 13px;
}
.nav nav a {
  opacity: 0.82;
  transition: 0.2s;
}
.nav nav a:hover {
  opacity: 1;
}
.nav-cta {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 7px;
}
.menu {
  display: none;
  background: 0;
  border: 0;
}
.hero {
  height: min(900px, 100svh);
  min-height: 680px;
  position: relative;
  color: #fff;
  display: flex;
  align-items: center;
  padding: 120px clamp(24px, 8vw, 130px) 60px;
  overflow: hidden;
}
.hero-media {
  position: absolute;
  inset: 0;
  background: url(https://images.unsplash.com/photo-1519167758481-83f550bb49b3?auto=format&fit=crop&w=2100&q=88)
    center 55% / cover;
  transform: scale(1.02);
}
.hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, #0e1814d9, #17201a8c 45%, #10161232 80%),
    linear-gradient(0deg, #0b100d90, transparent 55%);
}
.hero-copy {
  position: relative;
  width: min(750px, 100%);
}
.kicker {
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 10px;
  font-weight: 600;
  color: #907556;
  margin: 0 0 19px;
}
.kicker.light {
  color: #dfbd91;
}
.hero h1,
.closing h2 {
  font: 400 clamp(52px, 7vw, 96px) / 0.98 var(--serif);
  margin: 0;
  letter-spacing: -0.025em;
}
.hero h1 em {
  font-weight: 400;
  color: #e7c8a0;
}
.hero-text {
  font: 300 18px/1.7 var(--sans);
  max-width: 580px;
  margin: 28px 0 37px;
  color: #f4f1eb;
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 30px;
}
.btn {
  border: 0;
  padding: 18px 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 25px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: 0.25s;
}
.btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}
.btn.gold {
  background: var(--gold);
  color: #fff;
}
.btn.gold:hover {
  background: #cba778;
  transform: translateY(-2px);
}
.btn.dark {
  background: var(--ink);
  color: #fff;
}
.btn.dark:hover:not(:disabled) {
  background: var(--forest);
}
.text-btn {
  color: #fff;
  background: none;
  border: 0;
  border-bottom: 1px solid #ffffff66;
  padding: 8px 0;
  cursor: pointer;
}
.text-btn span {
  font-size: 9px;
  margin-left: 10px;
}
.scroll-note {
  position: absolute;
  right: 5vw;
  bottom: 45px;
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  display: flex;
  align-items: center;
  gap: 10px;
}
.scroll-note span {
  width: 1px;
  height: 45px;
  background: #fff;
}
.section {
  padding: clamp(85px, 11vw, 150px) clamp(24px, 7vw, 110px);
}
.intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10vw;
  align-items: center;
  background: var(--cream);
}
h2 {
  font: 400 clamp(39px, 5vw, 65px) / 1.08 var(--serif);
  margin: 0;
}
.intro > div:last-child {
  max-width: 590px;
}
.intro > div:last-child p {
  font-size: 16px;
  line-height: 1.9;
  color: var(--muted);
}
.line-link {
  border: 0;
  background: transparent;
  border-bottom: 1px solid var(--gold);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 10px;
  padding: 10px 0;
  display: inline-flex;
  gap: 40px;
  margin-top: 15px;
  cursor: pointer;
}
.centered {
  text-align: center;
}
.moments h2 {
  max-width: 800px;
  margin: 0 auto 60px;
}
.moment-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 22px;
  align-items: center;
}
.moment {
  position: relative;
}
.moment:nth-child(2) {
  margin-top: 70px;
}
.moment .photo {
  height: 500px;
  background-size: cover;
  background-position: center;
  filter: saturate(0.72);
}
.moment.ceremony .photo {
  background-image: url(https://images.unsplash.com/photo-1606800052052-a08af7148866?auto=format&fit=crop&w=900&q=85);
}
.moment.reception .photo {
  background-image: url(https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&w=900&q=85);
}
.moment.memories .photo {
  background-image: url(https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=900&q=85);
}
.moment > p {
  font-size: 9px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #9b7957;
  margin: 20px 0 10px;
}
.moment h3 {
  font: 28px/1.2 var(--serif);
  margin: 0;
}
.circle {
  position: absolute;
  right: 20px;
  top: 455px;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  border: 0;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 8px 30px #0002;
  cursor: pointer;
}
.builder {
  background: var(--cream);
}
.builder-heading {
  text-align: center;
  max-width: 720px;
  margin: auto;
}
.builder-heading > p:last-child,
.step-head > p:last-child {
  color: var(--muted);
  line-height: 1.7;
}
.progress-wrap {
  max-width: 900px;
  margin: 55px auto 28px;
}
.progress {
  height: 1px;
  background: var(--line);
}
.progress i {
  display: block;
  width: 25%;
  height: 2px;
  background: var(--gold);
  transition: 0.4s;
}
.steps {
  display: flex;
  justify-content: space-between;
  margin-top: 15px;
}
.progress-hint {
  margin: 11px 0 0;
  color: var(--muted);
  font-size: 8px;
  letter-spacing: 0.16em;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
}
.steps span {
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #aaa;
}
.steps span.active {
  color: var(--ink);
}
.builder-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 35px;
  max-width: 1350px;
  margin: auto;
}
.builder-main {
  min-width: 0;
}
.builder-step {
  display: none;
}
.builder-step.active {
  display: block;
  animation: fade 0.45s ease;
}
.step-head {
  margin-bottom: 30px;
}
.step-head h3,
.success h3 {
  font: 40px/1.1 var(--serif);
  margin: 0 0 10px;
}
.package-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.package-card,
.enhancement-card {
  appearance: none;
  text-align: left;
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 30px;
  position: relative;
  color: var(--ink);
  cursor: pointer;
  transition: 0.25s;
}
.package-card:hover,
.enhancement-card:hover:not(:disabled) {
  border-color: var(--gold);
  transform: translateY(-3px);
  box-shadow: 0 13px 35px #4c3b2510;
}
.package-card.selected,
.enhancement-card.selected {
  border: 1.5px solid var(--gold);
  background: #fff;
}
.package-card > p {
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #9b7957;
}
.package-card h4,
.enhancement-card h4 {
  font: 31px var(--serif);
  margin: 7px 0;
}
.package-card > strong {
  font-size: 14px;
  font-weight: 500;
}
.package-card > small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
  margin: 15px 0;
}
.package-card ul {
  padding: 15px 0 0;
  border-top: 1px solid #e6e0d7;
  list-style: none;
  margin: 0;
}
.package-card li {
  font-size: 11px;
  color: #555f59;
  margin: 8px 0;
  padding-left: 16px;
  position: relative;
}
.package-card li:before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--gold);
}
.select-label {
  display: flex;
  justify-content: space-between;
  margin-top: 22px;
  padding-top: 17px;
  border-top: 1px solid #e6e0d7;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 9px;
}
.check {
  position: absolute;
  right: 20px;
  top: 20px;
  width: 22px;
  height: 22px;
  border: 1px solid var(--line);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: transparent;
}
.selected .check {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
}
.popular {
  position: absolute;
  right: 18px;
  top: -11px;
  background: var(--forest);
  color: #fff;
  padding: 6px 12px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 8px;
}
.step-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 35px;
}
.step-nav.right {
  justify-content: flex-end;
}
.back {
  border: 0;
  background: none;
  cursor: pointer;
  color: var(--muted);
  padding: 15px 0;
}
.summary-card {
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 28px;
  align-self: start;
  position: sticky;
  top: 25px;
}
.summary-content {
  border-top: 1px solid var(--line);
  padding-top: 20px;
}
.sum-package,
.sum-row {
  display: flex;
  justify-content: space-between;
  gap: 15px;
}
.sum-package span,
.sum-label {
  display: block;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  color: #977958;
  margin-bottom: 4px;
}
.sum-package strong {
  font: 24px var(--serif);
}
.sum-package b,
.sum-row b {
  font-size: 11px;
  font-weight: 500;
}
.sum-label {
  border-top: 1px solid var(--line);
  padding-top: 17px;
  margin-top: 20px;
}
.sum-row {
  font-size: 11px;
  margin: 11px 0;
  color: var(--muted);
}
.empty {
  font-size: 12px;
  line-height: 1.6;
  color: var(--muted);
}
.summary-total {
  display: flex;
  align-items: end;
  justify-content: space-between;
  border-top: 1px solid var(--line);
  margin-top: 20px;
  padding-top: 20px;
}
.summary-total span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.summary-total strong {
  font: 26px var(--serif);
}
.summary-card > small {
  display: block;
  font-size: 9px;
  line-height: 1.5;
  color: #8a8e89;
  margin: 15px 0;
}
.summary-card .btn {
  width: 100%;
}
.enhancement-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
.enhancement-card {
  padding: 25px 24px;
  min-height: 205px;
}
.enhancement-card h4 {
  font-size: 24px;
  padding-right: 30px;
}
.enhancement-card p {
  font-size: 11px;
  line-height: 1.55;
  color: var(--muted);
  max-width: 320px;
}
.enhancement-card strong {
  display: block;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: #927354;
  margin-top: 17px;
}
.enhancement-card .plus {
  position: absolute;
  right: 20px;
  top: 20px;
  width: 26px;
  height: 26px;
  border: 1px solid var(--line);
  border-radius: 50%;
  display: grid;
  place-items: center;
}
.enhancement-card.selected .plus,
.enhancement-card.included .plus {
  background: var(--gold);
  color: #fff;
}
.enhancement-card.included {
  cursor: default;
  background: #f3efe7;
}
.preview {
  position: absolute;
  right: 20px;
  bottom: 20px;
  font-size: 9px;
  text-decoration: underline;
}
.recommendation {
  margin-top: 18px;
  padding: 24px;
  display: flex;
  gap: 20px;
  background: #e5e9e2;
  border-left: 2px solid var(--forest);
}
.recommendation[hidden] {
  display: none;
}
.recommendation > span {
  font-size: 22px;
}
.recommendation strong {
  font-family: var(--serif);
  font-size: 22px;
}
.recommendation p {
  font-size: 11px;
  color: var(--muted);
}
.recommendation button {
  border: 0;
  background: none;
  padding: 0;
  border-bottom: 1px solid;
  font-size: 10px;
  cursor: pointer;
}
.details-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.span2 {
  grid-column: 1/-1;
}
.field label,
.message-form label,
legend {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.11em;
}
.field input,
.field select,
.message-form textarea {
  width: 100%;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #bfb9ae;
  padding: 13px 3px;
  border-radius: 0;
  color: var(--ink);
  outline: none;
}
.field input:focus,
.field select:focus,
.message-form textarea:focus {
  border-color: var(--gold);
}
.conditional {
  display: contents;
}
.details-form fieldset {
  border: 0;
  padding: 10px 0;
}
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.chips input {
  display: none;
}
.chips span {
  display: block;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 30px;
  font-size: 10px;
  cursor: pointer;
}
.chips input:checked + span {
  background: var(--forest);
  color: #fff;
}
.final-summary {
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 35px;
}
.final-top,
.final-details > div,
.final-investment {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.final-top p {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: #927354;
}
.final-top h4 {
  font: 32px var(--serif);
  margin: 0;
}
.final-top > strong {
  font: 24px var(--serif);
}
.final-details {
  margin: 25px 0;
  padding: 18px 0;
  border-block: 1px solid var(--line);
}
.final-details > div {
  font-size: 12px;
  padding: 7px 0;
}
.final-details b {
  font-weight: 500;
}
.final-investment span {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.final-investment strong {
  font: 28px var(--serif);
}
.couple-details {
  margin-top: 25px;
  padding: 16px 20px;
  background: var(--cream);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}
.couple-details p {
  font: 18px var(--serif);
  margin: 0;
}
.couple-details span {
  display: block;
  font: 8px var(--sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #927354;
  margin-bottom: 6px;
}
.message-form {
  margin-top: 25px;
}
.message-form textarea {
  margin-top: 10px;
}
.privacy {
  font-size: 9px;
  color: var(--muted);
  margin-top: 12px;
}
.success {
  text-align: center;
  background: var(--paper);
  border: 1px solid var(--line);
  padding: 80px 40px;
}
.success-mark {
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold);
  margin: 0 auto 30px;
}
.success p:not(.kicker) {
  max-width: 570px;
  margin: 20px auto;
  color: var(--muted);
  line-height: 1.7;
}
.testimonial{background:var(--forest);color:#fff}.testimonial-head{text-align:center;margin:0 auto 52px}.testimonial-head .kicker{margin-bottom:10px}.testimonial-head h2{margin:0;font:clamp(42px,6vw,72px)/.95 var(--serif);font-weight:400;letter-spacing:.08em}.testimonial-stage{display:grid;grid-template-columns:56px minmax(0,900px) 56px;grid-template-areas:"prev carousel next";align-items:center;justify-content:center;gap:0 28px}.review-prev{grid-area:prev}.review-next{grid-area:next}.testimonial-stage>button{display:grid;place-items:center;width:52px;height:52px;border:1px solid #ffffff66;border-radius:50%;background:transparent;color:#fff;font-size:20px;cursor:pointer;transition:border-color .2s,color .2s,transform .2s}.testimonial-stage>button:hover,.testimonial-stage>button:focus-visible{border-color:var(--gold);color:var(--gold);transform:translateY(-1px)}.review-carousel{grid-area:carousel;min-width:0;overflow:hidden}.review-track{display:flex;gap:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-inline:contain}.review-track::-webkit-scrollbar{display:none}.review-card{flex:0 0 100%;min-width:0;box-sizing:border-box;padding:clamp(40px,6vw,72px);border:1px solid var(--line);background:#f1ede4;color:var(--forest);text-align:center;scroll-snap-align:start}.review-card .stars{color:var(--gold);letter-spacing:.32em;font-size:12px}.review-text{display:-webkit-box;overflow:hidden;max-width:720px;margin:26px auto 16px;color:var(--forest);font:600 clamp(20px,2.1vw,28px)/1.6 var(--serif);letter-spacing:.01em;-webkit-box-orient:vertical;-webkit-line-clamp:7}.review-card.expanded .review-text,.review-card-full .review-text{display:block;overflow:visible}.review-more{border:0;border-bottom:1px solid var(--gold);background:transparent;padding:3px 0;color:var(--gold);font:600 10px var(--sans);letter-spacing:.13em;text-transform:uppercase;cursor:pointer}.review-card footer{max-width:310px;margin:34px auto 0;padding:22px 0 0;border-top:1px solid var(--line);background:transparent;color:inherit;text-align:center}.review-card footer strong,.review-card footer span{display:block}.review-card footer strong{font:18px var(--serif);letter-spacing:.05em;text-transform:uppercase}.review-card footer span{margin-top:6px;color:var(--muted);font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.closing {
  min-height: 600px;
  display: grid;
  place-items: center;
  text-align: center;
  color: #fff;
  background:
    linear-gradient(#1420188c, #142018bd),
    url(https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&w=900&q=85)
      center/cover;
  padding: 80px 24px;
}
.closing h2 {
  margin: 15px 0 35px;
}
footer {
  background: #111713;
  color: #eee;
  text-align: center;
  padding: 60px 25px 30px;
}
footer > .brand {
  width: max-content;
  margin: auto;
}
footer > p {
  font: 20px var(--serif);
  color: #c1a17b;
}
footer nav {
  justify-content: center;
  margin: 35px 0;
}
footer .footer-client-login {
  opacity: 0.72;
  font-size: 11px;
  letter-spacing: 0.08em;
}
footer > small {
  font-size: 8px;
  letter-spacing: 0.12em;
  color: #858b87;
}
.mobile-summary,
.mobile-summary-bar,
.mobile-review-page-submit,
.bottom-sheet,
.sheet-backdrop {
  display: none;
}
.modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: #0b100df2;
  display: none;
  place-items: center;
  color: #fff;
  text-align: center;
  padding: 20px;
}
.modal-close,
.sheet-close {
  position: absolute;
  right: 25px;
  top: 20px;
  color: #fff;
  background: none;
  border: 0;
  font-size: 34px;
  cursor: pointer;
}
.modal-content {
  width: min(900px, 100%);
  height: min(560px, 70vh);
  background:
    linear-gradient(#17251b55, #17251b99),
    url(https://images.unsplash.com/photo-1465495976277-4387d4b0e4a6?auto=format&fit=crop&w=1500&q=80)
      center/cover;
  display: grid;
  place-content: center;
  padding: 40px;
}
.modal-content .play {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  border: 1px solid white;
  display: grid;
  place-items: center;
  margin: 0 auto 30px;
  padding-left: 5px;
}
.modal-content h3 {
  font: 40px var(--serif);
  margin: 8px;
}
.modal-content p:last-child {
  font-size: 13px;
}
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: 0.8s ease;
}
.reveal.visible {
  opacity: 1;
  transform: none;
}
@keyframes fade {
  0% {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (max-width: 900px) {
  .nav {
    height: 72px;
  }
  .nav nav,
  .nav-cta {
    display: none;
  }
  .menu {
    display: block;
    color: #fff;
  }
  .menu i {
    display: block;
    width: 24px;
    height: 1px;
    background: #fff;
    margin: 6px;
  }
  .nav nav.open {
    display: flex;
    position: absolute;
    top: 72px;
    left: 0;
    right: 0;
    background: var(--ink);
    padding: 25px;
    flex-direction: column;
  }
  .hero {
    padding-left: 28px;
  }
  .intro {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .moment-grid {
    grid-template-columns: 1fr;
  }
  .moment:nth-child(2) {
    margin-top: 20px;
  }
  .moment .photo {
    height: 450px;
  }
  .circle {
    top: 405px;
  }
  .builder-layout {
    grid-template-columns: 1fr;
  }
  .summary-card {
    display: none;
  }
  .mobile-summary-bar {
    --mobile-summary-height: 72px;
    display: block;
    position: fixed;
    z-index: 50;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--ink);
    color: #fff;
    box-shadow: 0 -8px 25px #0003;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  .mobile-summary {
    display: flex;
    position: relative;
    width: 100%;
    min-height: 62px;
    background: transparent;
    color: inherit;
    border: 0;
    align-items: center;
    padding: 12px 22px;
    gap: 10px;
    text-align: left;
  }
  .mobile-summary.has-savings {
    min-height: 72px;
  }
  .mobile-summary-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 4px;
  }
  .mobile-summary-hint {
    color: #c9c2b8;
    font-size: 7px;
    letter-spacing: 0.12em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  .mobile-summary-bar.drawer-open .mobile-summary-hint {
    display: none;
  }
  .mobile-summary-title {
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 9px;
    white-space: nowrap;
  }
  .mobile-bundle-saving {
    display: block;
    color: var(--gold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 7px;
    white-space: nowrap;
  }
  .mobile-bundle-saving[hidden] {
    display: none;
  }
  .mobile-summary strong {
    font: 20px var(--serif);
    margin-left: auto;
    white-space: nowrap;
  }
  .mobile-summary i {
    font-style: normal;
    color: var(--gold);
    margin-left: 8px;
    transition: transform 0.25s ease;
  }
  .mobile-summary-bar.drawer-open .mobile-summary i {
    transform: rotate(180deg);
  }
  .review-nav .mobile-review-page-submit {
    display: inline-flex;
  }
  .sheet-backdrop {
    position: fixed;
    z-index: 48;
    inset: 0;
    background: #0008;
  }
  .sheet-backdrop.open {
    display: block;
  }
  .bottom-sheet {
    display: block;
    position: fixed;
    z-index: 49;
    bottom: calc(
      var(--mobile-summary-height, 72px) + env(safe-area-inset-bottom, 0px)
    );
    left: 0;
    right: 0;
    background: var(--paper);
    padding: 30px 25px;
    transform: translateY(110%);
    transition: 0.35s;
    border-radius: 18px 18px 0 0;
  }
  .bottom-sheet.open {
    transform: none;
  }
  .sheet-close {
    color: var(--ink);
    top: 12px;
  }
  .bottom-sheet .btn {
    width: 100%;
    margin-top: 20px;
  }
}
@media (max-width: 600px) {
  .hero {
    min-height: 720px;
    align-items: flex-end;
    padding-bottom: 110px;
  }
  .hero h1 {
    font-size: 52px;
  }
  .hero-text {
    font-size: 15px;
  }
  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 13px;
  }
  .scroll-note {
    display: none;
  }
  .section {
    padding: 80px 20px;
  }
  .intro h2,
  .builder-heading h2 {
    font-size: 43px;
  }
  .moment .photo {
    height: 390px;
  }
  .circle {
    top: 345px;
  }
  .progress-wrap {
    margin: 40px 0 24px;
  }
  .steps span {
    font-size: 7px;
  }
  .package-grid,
  .enhancement-grid,
  .details-form {
    grid-template-columns: 1fr;
  }
  .span2 {
    grid-column: auto;
  }
  .package-card {
    padding: 25px 22px;
  }
  .builder {
    padding-inline: 14px;
  }
  .builder-heading {
    padding-inline: 8px;
  }
  .step-head {
    padding-inline: 6px;
  }
  .step-head h3 {
    font-size: 34px;
  }
  .step-nav .btn {
    padding: 16px 14px;
    gap: 12px;
  }
  .builder-step[data-step="4"].active {
    padding-bottom: 84px;
  }
  .review-nav {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
  }
  .review-nav .back {
    align-self: flex-start;
  }
  .review-nav .mobile-review-page-submit {
    justify-content: center;
    width: 100%;
  }
  .enhancement-card {
    min-height: 180px;
  }
  .conditional {
    display: contents;
  }
  .couple-details {
    grid-template-columns: 1fr;
  }
  .final-summary {
    padding: 25px 20px;
  }
  .final-investment strong {
    font-size: 22px;
  }
  .testimonial-head{margin-bottom:40px}.testimonial-head h2{font-size:42px}.testimonial-stage{grid-template-columns:48px minmax(0,1fr) 48px;grid-template-areas:"carousel carousel carousel" "prev . next";gap:20px 14px}.testimonial-stage>button{width:44px;height:44px}.review-prev{justify-self:end}.review-next{justify-self:start}.review-card{flex-basis:100%;padding:34px 24px}.review-text{font-size:19px;line-height:1.6;-webkit-line-clamp:9}.review-card footer{margin-top:27px}
  footer {
    padding-bottom: 90px;
  }
  footer nav {
    flex-wrap: wrap;
    gap: 14px 24px;
  }
}
.hero {
  justify-content: center;
  background: #140f0b;
  padding-inline: 0;
}
.hero-media {
  background-image: url(/assets/spe-website-hero.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  transform: none;
}
.hero-shade {
  background: linear-gradient(0deg, #0d0906b8 0%, transparent 24%);
  pointer-events: none;
}
.hero-cta {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: clamp(28px, 5vh, 54px);
  transform: translate(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 52px;
  padding: 15px clamp(24px, 3vw, 42px);
  border: 1px solid #d6aa69;
  background: #120d09a8;
  color: #fff6e8;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1.3;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
  transition:
    background-color 0.25s ease,
    border-color 0.25s ease,
    color 0.25s ease,
    transform 0.25s ease;
}
.hero-cta:hover {
  background: #23170fd9;
  border-color: #f0c783;
  color: #fff;
  transform: translate(-50%, -2px);
}
.hero-cta:focus-visible {
  outline: 2px solid #fff6e8;
  outline-offset: 4px;
}
@media (max-width: 600px) {
  .nav {
    justify-content: flex-end;
  }
  .nav > .brand {
    display: none;
  }
  .hero {
    display: block;
    height: auto;
    min-height: 0;
    max-height: none;
    padding: 56.28vw 14px 20px;
  }
  .hero-media {
    inset: 0 0 auto;
    height: 56.28vw;
    background-size: contain;
    background-position: center top;
  }
  .hero-shade {
    inset: 0 0 auto;
    height: 56.28vw;
    background: linear-gradient(0deg, #0d090650 0%, transparent 22%);
  }
  .hero-cta {
    position: relative;
    left: auto;
    bottom: auto;
    transform: none;
    display: flex;
    width: fit-content;
    max-width: 100%;
    min-height: 50px;
    margin: 16px auto 0;
    padding: 13px 18px;
    gap: 10px;
    font-size: 9px;
    letter-spacing: 0.12em;
    white-space: normal;
  }
  .hero-cta:hover {
    transform: translateY(-2px);
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }
  .reveal {
    opacity: 1;
    transform: none;
  }
}
.presentation {
  background: var(--paper);
}
.presentation-heading {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 42px;
}
.presentation-heading > p:last-child {
  color: var(--muted);
  line-height: 1.7;
}
.presentation-tabs {
  display: flex;
  justify-content: center;
  margin-bottom: 25px;
}
.presentation-tabs button {
  border: 0;
  border-bottom: 1px solid var(--line);
  background: none;
  padding: 14px 28px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 9px;
  color: #8a8e89;
  cursor: pointer;
}
.presentation-tabs button.active {
  color: var(--ink);
  border-bottom: 2px solid var(--gold);
}
.presentation-stage {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.75fr);
  min-height: 600px;
  max-width: 1350px;
  margin: auto;
  background: var(--cream);
  opacity: 1;
  transition: opacity 0.3s;
}
.presentation-stage:not(.show) {
  opacity: 1;
}
.presentation-stage .presentation-image {
  position: relative;
  align-self: center;
  background: none;
}
.presentation-stage.signature .presentation-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.presentation-stage.signature .presentation-image > span,
.presentation-stage.signature .presentation-image > .circle {
  display: none;
}
.presentation-stage.minimal .presentation-image {
  align-self: stretch;
  min-height: 590px;
  background-image:
    linear-gradient(0deg, #17201a70, #17201a10),
    url(https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1400&q=86);
  background-position: center;
  background-size: cover;
}
.presentation-stage.minimal .presentation-image img {
  display: none;
}
.presentation-image > span {
  position: absolute;
  left: 25px;
  bottom: 22px;
  color: #fff;
  font-size: 8px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.presentation-image .circle {
  top: auto;
  bottom: 22px;
}
.presentation-copy {
  padding: clamp(38px, 5vw, 70px);
  align-self: center;
}
.presentation-copy h3 {
  font: clamp(34px, 4vw, 48px) / 1.08 var(--serif);
  margin: 0 0 22px;
}
.presentation-copy > p:not(.kicker) {
  color: var(--muted);
  line-height: 1.8;
  font-size: 14px;
}
.presentation-copy ul {
  list-style: none;
  padding: 15px 0;
  margin: 15px 0;
  border-block: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.presentation-copy li {
  font-size: 11px;
  padding-left: 16px;
  position: relative;
}
.presentation-copy li:before {
  content: "✦";
  position: absolute;
  left: 0;
  color: var(--gold);
  font-size: 8px;
}
.presentation-copy small {
  display: block;
  color: #7b807b;
  line-height: 1.7;
  font-size: 10px;
}
.enhancement-card .state-tag {
  display: inline-block;
  margin: 0 0 9px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 8px;
  color: #9a8061;
}
.enhancement-card.included {
  background: #f0eee7;
  border-color: #c9bba8;
  opacity: 1;
}
.enhancement-card.included:after {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid #d7cbbb;
  pointer-events: none;
}
.enhancement-card.included strong,
.enhancement-card.included .state-tag {
  color: var(--forest);
}
.enhancement-card.selected .state-tag {
  color: var(--gold);
}
.sum-label.first {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}
.included-row span {
  color: var(--forest);
}
.included-row b {
  color: #9a8061;
  text-transform: uppercase;
  font-size: 8px;
  letter-spacing: 0.08em;
}
.location-section {
  padding: 8px 0;
}
.form-section-title {
  font: 25px var(--serif);
  margin: 0 0 20px;
}
.setting-grid {
  display: grid;
  gap: 17px;
}
.setting-group {
  border: 0 !important;
  padding: 0 !important;
}
.setting-group legend {
  margin-bottom: 10px;
}
.choice-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.choice-row input {
  display: none;
}
.choice-row span {
  display: block;
  border: 1px solid var(--line);
  padding: 10px 14px;
  font-size: 10px;
  cursor: pointer;
  background: var(--paper);
}
.choice-row input:checked + span {
  background: var(--forest);
  border-color: var(--forest);
  color: #fff;
}
.contact-fields {
  display: contents;
}
.field label em {
  font-size: 8px;
  color: #9a8061;
  font-style: normal;
  margin-left: 8px;
}
.field[hidden] {
  display: none !important;
}
@media (max-width: 900px) {
  .presentation-stage {
    grid-template-columns: 1fr;
  }
  .presentation-stage.minimal .presentation-image {
    min-height: 500px;
  }
  .presentation-copy {
    padding: 45px 30px;
  }
}
@media (max-width: 600px) {
  .presentation {
    padding-inline: 14px;
  }
  .presentation-tabs {
    scroll-margin-top: 12px;
  }
  .presentation-tabs button {
    padding: 12px 10px;
    font-size: 7px;
    flex: 1;
  }
  .presentation-stage.minimal .presentation-image {
    min-height: 390px;
  }
  .presentation-copy ul {
    grid-template-columns: 1fr;
  }
  .choice-row span {
    padding: 9px 11px;
  }
  .setting-grid {
    gap: 20px;
  }
  .contact-fields {
    display: contents;
  }
}
.presentation-stage {
  transition: none;
}
.presentation-copy h3,
.custom-visual-placeholder h3 {
  font: clamp(34px, 4vw, 48px) / 1.08 var(--serif);
  margin: 0 0 22px;
}
.custom-visuals {
  border: 1px solid #d8cfc1;
  margin-top: 28px;
  padding: 24px 26px 25px;
  background: #faf7f0;
  transform-origin: center;
  transition:
    transform 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease;
}
.custom-visuals h4 {
  font: 25px/1.15 var(--serif);
  margin: 8px 0 12px;
}
.custom-visuals > p:not(.kicker) {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}
.custom-visuals[role="button"] {
  cursor: pointer;
  outline: none;
}
.custom-visuals[role="button"]:focus-visible {
  outline: 1px solid var(--gold);
  outline-offset: 4px;
}
.custom-visuals-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 7px;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 9px;
  font-weight: 600;
}
.custom-visuals-cta i {
  font-style: normal;
  transition: transform 0.2s ease;
}
@media (hover: hover) and (pointer: fine) {
  .custom-visuals[role="button"]:hover {
    transform: translateY(-2px) scale(1.012);
    border-color: #c9b89f;
    box-shadow: 0 8px 20px #18211c12;
  }
  .custom-visuals[role="button"]:hover .custom-visuals-cta i {
    transform: translate(3px);
  }
}
.display-visual-overlay {
  position: absolute !important;
  top: 49.9%;
  left: 39.32%;
  width: 21.03% !important;
  height: 19.43% !important;
  object-fit: fill !important;
  z-index: 2;
  pointer-events: none;
}
.display-visual-overlay[hidden] {
  display: none !important;
}
.presentation-stage.signature {
  grid-template-columns: minmax(0, 1.45fr) minmax(340px, 0.8fr);
  min-height: 600px;
  align-items: center;
}
.presentation-interactive {
  min-width: 0;
  align-self: center;
}
.presentation-stage.signature .presentation-image {
  position: relative;
  min-width: 0;
}
.presentation-stage.signature .presentation-base {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.presentation-stage.signature > .presentation-copy {
  padding: clamp(38px, 5vw, 70px);
  align-self: center;
}
.included-visuals-selector-wrap {
  padding: 18px clamp(18px, 2.4vw, 34px) 28px;
}
.included-visuals-selector-wrap .kicker {
  margin-bottom: 8px;
}
.included-instruction {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}
.mobile-instruction {
  display: none;
}
.included-visual-selector {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  margin-top: 16px;
}
.included-visual-selector button {
  appearance: none;
  min-width: 0;
  aspect-ratio: 16 / 9;
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  transition:
    border-color 0.2s,
    box-shadow 0.2s;
}
.included-visual-selector button:hover,
.included-visual-selector button:focus-visible,
.included-visual-selector button.selected {
  border-color: var(--gold);
  box-shadow: 0 0 0 1px var(--gold);
}
.included-visual-selector img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
  background: #111;
}
.presentation-stage.custom {
  grid-template-columns: minmax(0, 1.45fr) minmax(340px, 0.8fr);
  min-height: 600px;
  align-items: center;
}
.presentation-stage.custom .presentation-image {
  position: relative;
  min-width: 0;
}
.presentation-stage.custom .presentation-base {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.presentation-stage.custom .display-visual-overlay {
  object-fit: contain !important;
  background: #000;
}
.custom-visual-placeholder {
  padding: clamp(38px, 5vw, 70px);
  align-self: center;
}
.custom-visual-placeholder > p:not(.kicker) {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.8;
}
.custom-coming-soon {
  margin-top: 28px !important;
  color: #907556 !important;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 9px !important;
}
@media (min-width: 901px) and (max-width: 1199px) {
  .included-visual-selector {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .presentation-stage.signature,
  .presentation-stage.custom {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .presentation-interactive {
    min-width: 0;
  }
  .presentation-stage.signature > .presentation-copy {
    padding: 36px 30px 42px;
  }
  .included-visuals-selector-wrap {
    padding: 26px 30px 30px;
    border-bottom: 1px solid var(--line);
  }
  .desktop-instruction {
    display: none;
  }
  .mobile-instruction {
    display: inline;
  }
  .included-visual-selector {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    padding: 2px 2px 10px;
    scrollbar-width: thin;
  }
  .included-visual-selector button {
    flex: 0 0 clamp(118px, 28vw, 155px);
  }
  .custom-visual-placeholder {
    padding: 36px 30px 42px;
  }
}
@media (max-width: 600px) {
  .included-visuals-selector-wrap {
    padding: 16px 20px 24px;
  }
  .included-visual-selector {
    margin-top: 12px;
  }
  .included-visual-selector button {
    flex-basis: 128px;
    min-height: 0;
  }
  .presentation-stage.signature > .presentation-copy {
    padding: 30px 20px 36px;
  }
  .custom-visuals {
    padding: 22px 20px 23px;
  }
  .custom-visual-placeholder {
    padding: 30px 20px 36px;
  }
}
.enhancement-grid {
  display: block;
}
.enhancement-section + .enhancement-section {
  margin-top: 34px;
}
.enhancement-section-title {
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 9px;
  color: #907556;
}
.enhancement-section-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}
@media (max-width: 600px) {
  .enhancement-section-grid {
    grid-template-columns: 1fr;
  }
  .enhancement-section + .enhancement-section {
    margin-top: 30px;
  }
}
.coverage-panel {
  border: 1px solid var(--line);
  background: #faf7f0;
  padding: 22px 26px;
  margin: 0 0 24px;
}
.coverage-title {
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: 0.17em;
  font-size: 9px;
  color: #907556;
}
.coverage-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.coverage-item {
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid #e1dbd1;
  padding: 13px 15px;
  color: #a3a49f;
  background: #f7f4ee;
  transition:
    border-color 0.3s,
    background-color 0.3s,
    color 0.3s;
}
.coverage-item > span {
  width: 22px;
  height: 22px;
  border: 1px solid #d4cec4;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 10px;
  color: transparent;
  transition: 0.3s;
}
.coverage-item strong {
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 9px;
}
.coverage-item small {
  display: block;
  margin-top: 3px;
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #a3a49f;
}
.coverage-item.active {
  background: var(--paper);
  border-color: #c9b99f;
  color: var(--ink);
}
.coverage-item.active > span {
  background: var(--gold);
  border-color: var(--gold);
  color: #fff;
}
.coverage-item.active small {
  color: #907556;
}
.coverage-copy {
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 11px;
}
.recommendation .rec-label {
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 8px;
  color: #907556;
  margin-bottom: 5px;
}
.recommendation .rec-label + strong {
  display: block;
  font-size: 27px;
}
@media (max-width: 600px) {
  .coverage-panel {
    padding: 20px 17px;
  }
  .coverage-options {
    gap: 8px;
  }
  .coverage-item {
    padding: 11px 10px;
    gap: 8px;
  }
  .coverage-item > span {
    width: 20px;
    height: 20px;
  }
  .coverage-item strong {
    font-size: 8px;
  }
  .coverage-copy {
    line-height: 1.5;
  }
}
.coverage-panel.interactive .coverage-item {
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.coverage-panel.compact {
  margin-bottom: 34px;
}
.coverage-notice,
.violin-nudge {
  margin-top: 15px;
  border-top: 1px solid var(--line);
  padding-top: 15px;
}
.coverage-notice[hidden],
.violin-nudge[hidden],
.memory-options[hidden] {
  display: none;
}
.coverage-notice p {
  font-size: 11px;
  line-height: 1.6;
  color: var(--muted);
  margin: 0;
}
.coverage-notice > div {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}
.coverage-notice button,
.violin-nudge button,
.remove-memory {
  border: 0;
  background: none;
  border-bottom: 1px solid var(--gold);
  padding: 6px 0;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  font-size: 8px;
  color: var(--ink);
  cursor: pointer;
}
.violin-nudge {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.violin-nudge small {
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-size: 8px;
  color: #907556;
}
.violin-nudge strong {
  display: block;
  font: 20px var(--serif);
  margin-top: 4px;
}
.violin-nudge strong b {
  font: 10px var(--sans);
  color: #907556;
}
.violin-nudge p {
  font-size: 10px;
  color: var(--muted);
  margin: 5px 0 0;
}
.enhancement-section-copy {
  font-size: 11px;
  color: var(--muted);
  margin: -6px 0 15px;
}
.memory-options {
  margin-top: 14px;
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 24px;
}
.memory-options > .kicker {
  margin-bottom: 15px;
}
.memory-option {
  width: 100%;
  display: grid;
  grid-template-columns: 25px 1fr auto;
  align-items: center;
  gap: 12px;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
  text-align: left;
  padding: 16px 4px;
  color: var(--ink);
  cursor: pointer;
}
.memory-option:first-of-type {
  border-top: 0;
}
.memory-option > span {
  width: 22px;
  height: 22px;
  border: 1px solid var(--line);
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 10px;
}
.memory-option.selected > span {
  background: var(--gold);
  border-color: var(--gold);
  color: #fff;
}
.memory-option strong {
  display: block;
  font: 19px var(--serif);
}
.memory-option small {
  display: block;
  color: var(--muted);
  font-size: 9px;
  line-height: 1.5;
  margin-top: 3px;
}
.memory-option > b {
  font-size: 11px;
  font-weight: 500;
}
.remove-memory {
  margin-top: 10px;
  color: #777;
}
@media (max-width: 600px) {
  .violin-nudge {
    align-items: flex-start;
    flex-direction: column;
  }
  .memory-options {
    padding: 18px 14px;
  }
  .memory-option {
    grid-template-columns: 22px 1fr;
  }
  .memory-option > b {
    grid-column: 2;
  }
  .coverage-notice > div {
    flex-direction: column;
    align-items: flex-start;
  }
}
.violin-nudge .premier-more {
  display: block;
  margin-top: 7px;
  font: 600 11px var(--sans);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
}
.violin-nudge em {
  display: block;
  margin-top: 6px;
  font: normal 8px var(--sans);
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #907556;
}
.recommendation.subtle {
  background: transparent;
  border: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.recommendation .rec-value {
  display: block;
  margin: 8px 0 12px;
  font-size: 9px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #907556;
}
.recommendation .rec-includes-title {
  display: block;
  margin-top: 14px;
  font-size: 8px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #907556;
}
.recommendation .rec-includes {
  list-style: none;
  margin: 7px 0 14px;
  padding: 0;
}
.recommendation .rec-includes li {
  font-size: 10px;
  line-height: 1.8;
  color: var(--ink);
}
.enhancement-section-grid > .recommendation {
  grid-column: 1/-1;
  margin-top: 0;
}
.violin-nudge .package-math {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 18px;
  margin-top: 7px;
}
.violin-nudge .package-math span {
  font-size: 9px;
  color: var(--muted);
}
.violin-nudge .package-math b {
  font-weight: 600;
  color: var(--ink);
  margin-left: 4px;
}
.violin-nudge .package-math s {
  margin-left: 4px;
  color: #8f8171;
  text-decoration-color: var(--gold);
}
.ceremony-sound-toggle {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 7px 0;
  text-align: left;
  cursor: pointer;
  color: var(--muted);
}
.ceremony-sound-toggle span {
  display: flex;
  align-items: center;
  gap: 5px;
}
.ceremony-sound-toggle i {
  font-style: normal;
  color: #907556;
  font-size: 10px;
}
.ceremony-sound-details {
  border-left: 1px solid var(--gold);
  margin: 3px 0 13px 5px;
  padding: 8px 0 4px 12px;
}
.ceremony-sound-details[hidden] {
  display: none;
}
.ceremony-sound-details small {
  display: block;
  margin-bottom: 7px;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  font-size: 8px;
  color: #907556;
}
.ceremony-sound-details span {
  display: block;
  margin: 5px 0;
  font-size: 9px;
  line-height: 1.45;
  color: var(--muted);
}
.ceremony-sound-toggle {
  min-height: 38px;
}
.ceremony-sound-toggle {
  min-height: 44px;
  align-items: center;
}
.ceremony-sound-toggle > span:first-child {
  display: block;
}
.ceremony-sound-toggle .ceremony-sound-action {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
}
.ceremony-sound-toggle .ceremony-sound-action i {
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}
.capture-section .memory-options {
  grid-column: 1/-1;
  margin-top: 0;
}
.bundle-note {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: -5px 0 15px;
  padding-top: 9px;
  border-top: 1px solid var(--line);
}
.bundle-note small {
  color: #907556;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  white-space: nowrap;
}
.bundle-note span {
  color: var(--muted);
  font-size: 9px;
  line-height: 1.45;
}
.bundle-note.applied small {
  color: var(--forest);
}
.bundle-savings-row {
  color: var(--forest);
  border-top: 1px solid var(--line);
  padding-top: 10px;
}
.bundle-savings-row b {
  color: var(--forest);
}
@media (max-width: 600px) {
  .bundle-note {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
}
.travel-summary,
.separate-location-summary {
  border-top: 1px solid var(--line);
  padding: 13px 0 0;
  margin-top: 12px;
}
.travel-summary[hidden],
.separate-location-summary[hidden] {
  display: none;
}
.travel-line,
.separate-location-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 9px;
}
.travel-line b,
.separate-location-line b {
  color: #9a8061;
  font-size: 9px;
}
.separate-location-note {
  font-size: 10px;
  line-height: 1.55;
  color: #777b75;
  margin-top: 3px;
  max-width: 430px;
}
.separate-location-note[hidden] {
  display: none;
}
.field-helper {
  display: block;
  margin: -3px 0 8px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}
.ceremony-distance {
  margin: 0;
}
.ceremony-distance[hidden] {
  display: none;
}
.ceremony-distance .choice-row {
  flex-wrap: wrap;
}
.ceremony-distance .choice-row label {
  flex: 1 1 150px;
}
.separate-location-line span small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 8px;
  letter-spacing: 0.08em;
}
.reception-logistics[hidden],
.ceremony-logistics[hidden],
.separate-ceremony-fields[hidden] {
  display: none;
}
.separate-ceremony-fields {
  display: contents;
}
.separate-location-note.span2 {
  display: block;
  margin-top: -3px;
}
.details-form textarea {
  width: 100%;
  resize: vertical;
  background: transparent;
  border: 0;
  border-bottom: 1px solid #bfb9ae;
  padding: 13px 3px;
  border-radius: 0;
  color: var(--ink);
  outline: none;
}
.details-form textarea:focus {
  border-color: var(--gold);
}
.review-group {
  margin-top: 25px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.review-group-title {
  margin: 0 0 10px;
  color: #927354;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.review-rows > div {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  padding: 7px 0;
  font-size: 12px;
}
.review-rows b {
  max-width: 58%;
  font-weight: 500;
  text-align: right;
}
.review-empty {
  margin: 5px 0;
  color: var(--muted);
  font-size: 12px;
}
.investment-group .review-rows > div span {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 10px;
}
.investment-group .final-investment {
  margin-top: 14px;
  padding-top: 17px;
  border-top: 1px solid var(--line);
}
.couple-details p {
  line-height: 1.35;
}
@media (max-width: 600px) {
  .review-rows > div {
    gap: 16px;
  }
  .review-rows b {
    max-width: 55%;
  }
}
.included-premium > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 24px;
}
.included-premium span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.included-premium span:first-letter {
  color: var(--gold);
}
@media (max-width: 600px) {
  .included-premium > div {
    grid-template-columns: 1fr;
  }
}
.bundle-price {
  display: inline-flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 6px;
}
.bundle-price s {
  color: #9a9d98;
  font-weight: 400;
}
.bundle-price .bundle-current {
  color: var(--forest);
  font-weight: 600;
}
.enhancement-card .bundle-price {
  font-size: 10px;
}
.memory-option > b > .bundle-price {
  font-size: 11px;
}
.sum-row > .bundle-price {
  margin-left: auto;
  font-size: 11px;
}
.review-list {
  display: grid;
  gap: 8px;
}
.review-list p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.wedding-details-panel {
  margin-top: 25px;
  padding: 20px;
  background: var(--cream);
}
.wedding-details-panel > .review-group-title {
  margin-bottom: 15px;
}
.wedding-details-panel > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 24px;
}
.wedding-details-panel p {
  margin: 0;
  font: 18px/1.35 var(--serif);
}
.wedding-details-panel span {
  display: block;
  margin-bottom: 6px;
  color: #927354;
  font: 8px var(--sans);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.wedding-details-panel .venue-setting-detail {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font: 10px/1.45 var(--sans);
  letter-spacing: 0;
  text-transform: none;
}
@media (max-width: 600px) {
  .wedding-details-panel > div {
    grid-template-columns: 1fr;
  }
}
.steps {
  margin-top: 4px;
}
.steps button {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 11px 0;
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #aaa;
  cursor: default;
  min-height: 40px;
}
.steps button.reached {
  color: #777d78;
  cursor: pointer;
}
.steps button.current {
  color: var(--ink);
}
.steps button:disabled {
  color: #bbb;
  cursor: default;
}
@media (max-width: 600px) {
  .steps button {
    font-size: 7px;
    padding-inline: 3px;
  }
}
.package-savings-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--line);
  margin-top: 20px;
  padding-top: 14px;
  color: var(--forest);
}
.package-savings-summary[hidden] {
  display: none;
}
.package-savings-summary span {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.package-savings-summary b {
  font-size: 11px;
  font-weight: 600;
  color: #907556;
}
.package-savings-summary + .summary-total {
  margin-top: 14px;
}
.mobile-savings {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mobile-package-saving {
  display: block;
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 7px;
  white-space: nowrap;
}
.mobile-package-saving[hidden] {
  display: none;
}
@media (max-width: 900px) {
  .mobile-summary.has-savings {
    min-height: 76px;
  }
}
.enhancement-card {
  display: block;
}
.enhancement-card[role="button"]:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
.enhancement-card .preview {
  position: absolute;
  right: 20px;
  bottom: 18px;
  z-index: 2;
  border: 0;
  border-bottom: 1px solid #b99a72;
  background: transparent;
  padding: 5px 0;
  color: #765f45;
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  cursor: pointer;
}
.enhancement-card .preview-actions {
  position: absolute;
  right: 20px;
  bottom: 13px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 18px;
}
.enhancement-card .preview-actions .preview {
  position: static;
  min-height: 32px;
}
.enhancement-card .preview:hover {
  color: var(--ink);
  border-color: var(--ink);
}
.enhancement-card .preview:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}
.enhancement-card:has(.preview) > strong {
  padding-bottom: 25px;
}
body.modal-open {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
}
.modal {
  background: #0b100db8;
  padding: clamp(12px, 3vw, 30px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.modal.open {
  display: grid;
}
.modal-panel {
  position: relative;
  width: min(900px, 100%);
  max-height: calc(100svh - 32px);
  overflow: auto;
  background: var(--paper);
  color: var(--ink);
  border: 1px solid #d4c4ad;
  box-shadow: 0 28px 80px #07100b66;
  text-align: left;
}
.modal-close {
  position: sticky;
  z-index: 5;
  display: grid;
  place-items: center;
  float: right;
  right: 14px;
  top: 14px;
  width: 42px;
  height: 42px;
  margin: 14px 14px -56px 0;
  border: 1px solid #ffffff70;
  border-radius: 50%;
  background: #17251cd9;
  color: #fff;
  font: 30px/1 var(--sans);
}
.modal-media {
  clear: both;
  min-height: 360px;
  background: var(--forest);
  color: #fff;
  display: grid;
  place-items: center;
}
.media-placeholder {
  width: 100%;
  min-height: 360px;
  padding: 60px clamp(28px, 6vw, 70px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: radial-gradient(circle at 50% 25%, #405547, #24372c 65%);
}
.media-placeholder > span {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  border: 1px solid #bd9664;
  border-radius: 50%;
  color: #d5b081;
  font: 30px var(--serif);
  margin-bottom: 24px;
}
.media-placeholder strong {
  font: clamp(24px, 4vw, 36px) var(--serif);
  font-weight: 400;
}
.media-placeholder small {
  max-width: 520px;
  margin-top: 12px;
  color: #e5dfd4;
  font-size: 11px;
  line-height: 1.65;
}
.placeholder-controls {
  width: min(430px, 100%);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 14px;
  margin-top: 30px;
  color: #e4cfb1;
}
.placeholder-controls i {
  font-style: normal;
}
.placeholder-controls b {
  height: 2px;
  background: #ffffff50;
  position: relative;
}
.placeholder-controls b:before {
  content: "";
  position: absolute;
  left: 0;
  top: -3px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gold);
}
.example-media-frame {
  position: relative;
  width: 100%;
  min-height: 360px;
  display: grid;
  place-items: center;
}
.example-media-frame img,
.example-media-frame video {
  display: block;
  width: 100%;
  max-height: 65vh;
  object-fit: contain;
}
.example-media-frame.ceremony-reel-frame {
  min-height: 0;
  aspect-ratio: 16 / 9;
}
.example-media-frame.ceremony-reel-frame video {
  width: 100%;
  height: 100%;
  max-height: none;
}
.example-media-frame.image-example-frame {
  min-height: 0;
}
.example-media-frame.image-example-frame img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.example-media-frame audio {
  width: min(620px, calc(100% - 60px));
}
.gallery-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border: 1px solid #ffffff80;
  border-radius: 50%;
  background: #142219c9;
  color: #fff;
  cursor: pointer;
}
.gallery-nav.previous {
  left: 16px;
}
.gallery-nav.next {
  right: 16px;
}
.gallery-count {
  position: absolute;
  right: 16px;
  bottom: 14px;
  padding: 6px 9px;
  background: #142219c9;
  color: #fff;
  font-size: 9px;
  letter-spacing: 0.1em;
}
.modal-copy {
  padding: clamp(25px, 5vw, 48px);
}
.modal-copy .kicker {
  margin-bottom: 12px;
}
.modal-copy h3 {
  font: clamp(31px, 5vw, 47px) / 1.1 var(--serif);
  margin: 0;
}
.modal-copy .example-copy {
  max-width: 690px;
  margin: 15px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}
@media (max-width: 600px) {
  .enhancement-card .preview {
    right: 18px;
  }
  .enhancement-card .preview-actions {
    right: 18px;
    gap: 16px;
  }
  .modal {
    align-items: center;
    padding: 10px;
  }
  .modal-panel {
    max-height: calc(100svh - 20px);
  }
  .modal-media,
  .media-placeholder,
  .example-media-frame {
    min-height: 290px;
  }
  .example-media-frame.ceremony-reel-frame {
    min-height: 0;
  }
  .media-placeholder {
    padding: 52px 24px;
  }
  .modal-close {
    right: 8px;
    top: 8px;
    margin: 8px 8px -50px 0;
    width: 40px;
    height: 40px;
  }
  .modal-copy {
    padding: 25px 22px 30px;
  }
  .modal-copy .example-copy {
    font-size: 13px;
  }
  .gallery-nav {
    width: 40px;
    height: 40px;
  }
  .gallery-nav.previous {
    left: 10px;
  }
  .gallery-nav.next {
    right: 10px;
  }
}
.availability-status {
  margin-top: 7px;
  padding: 12px 14px;
  border-left: 2px solid var(--gold);
  background: #f1ece2;
  color: var(--muted);
}
.availability-status[hidden] {
  display: none;
}
.availability-status strong {
  display: block;
  color: var(--forest);
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.availability-status span {
  display: block;
  margin-top: 5px;
  font-size: 10px;
  line-height: 1.5;
}
.availability-status .try-date {
  margin-top: 9px;
  padding: 0 0 3px;
  border: 0;
  border-bottom: 1px solid var(--gold);
  background: transparent;
  color: var(--forest);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
}

/* Guided builder Version 40 refinements */
.guided-progress button{padding:.55rem .85rem;border:0;border-bottom:1px solid #cfc8bb;background:transparent;color:#79776f;font:inherit;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;white-space:nowrap}.guided-progress button.current{color:#a9783c;border-color:#a9783c;font-weight:600}.guided-progress button:disabled{cursor:default;opacity:.48}.choice-badge{display:inline-block;padding:.28rem .45rem;background:#a9783c;color:#fff;font-style:normal;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}.package-included{background:#f5f1e9}.package-included .choice-main{cursor:default}.included-benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:1rem 0 1.5rem}.included-benefit{padding:.85rem 1rem;border:1px solid #d5c7b2;background:#f8f4ed}.included-benefit strong,.included-benefit span{display:block}.included-benefit span{margin-top:.25rem;color:#8a673b;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.enhancement-category{margin:1.4rem 0 .7rem;color:#7b664a;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}.summary-close,.summary-backdrop{display:none}.make-yours-control{margin:1rem 0}.make-yours-control summary{cursor:pointer;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem}.make-yours-control .btn{margin-top:.8rem}
@media(max-width:900px){.guided-progress{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}.guided-summary{position:sticky;bottom:max(8px,env(safe-area-inset-bottom));z-index:30;order:2;border-radius:2px;padding:.72rem .9rem}.guided-summary.open .summary-backdrop{display:block;position:fixed;inset:0;background:#111a15aa;z-index:40}.guided-summary.open .summary-body{display:block;position:fixed;left:0;right:0;bottom:0;z-index:41;max-height:72svh;overflow:auto;padding:2.5rem 1.2rem calc(1.2rem + env(safe-area-inset-bottom));background:#fbf8f2;border-radius:18px 18px 0 0;box-shadow:0 -20px 55px #1117}.guided-summary.open .summary-close{display:grid;place-items:center;position:absolute;right:1rem;top:.7rem;width:36px;height:36px;border:0;background:transparent;font-size:1.8rem}.guided-layout{padding-bottom:4rem}}
@media(max-width:620px){html,body,#app,#builder,.guided-builder,.guided-layout,.guided-stage{max-width:100%;overflow-x:clip}.guided-builder>header h2{font-size:1.8rem;margin-bottom:.65rem}.guided-builder>header .kicker{margin-bottom:.2rem}.guided-progress{gap:.15rem}.guided-progress button{padding:.45rem .5rem;font-size:.62rem}.guided-question,.recommendation-card{padding:1rem}.guided-question>h3,.recommendation-card>h3{font-size:1.9rem;margin-bottom:.7rem}.guided-question>p:not(.kicker),.recommendation-card>p{line-height:1.5;margin:.55rem 0}.hero-field{max-width:100%;margin:.85rem 0}.hero-field input,.hero-field select,.guided-contact input,.guided-contact select,.guided-contact textarea{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:.8rem;min-height:46px}.coverage-card-grid,.coverage-card-grid.three,.target-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:1rem 0}.coverage-card{min-height:104px;padding:.8rem}.coverage-card strong{font-size:1.15rem;margin:1.1rem 0 .25rem}.coverage-card small{font-size:.75rem;line-height:1.35}.coverage-card-grid .coverage-card:last-child:nth-child(odd){grid-column:span 2}.included-reassurance{margin:1rem 0;padding:1rem}.included-reassurance h3{font-size:1.45rem;margin:.25rem 0 .65rem}.included-reassurance>div{grid-template-columns:1fr 1fr;gap:.45rem .7rem}.included-reassurance span{font-size:.76rem}.choice-grid,.choice-grid.enhancements,.cocktail-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:1rem 0}.experience-choice{min-width:0}.choice-main{min-height:138px;padding:.8rem}.choice-check{width:21px;height:21px}.choice-main strong{font-size:1.15rem;margin:.8rem 0 .35rem}.choice-main small{font-size:.75rem;line-height:1.35}.choice-main b{margin-top:.7rem;font-size:.62rem}.proof-actions{gap:.5rem;padding:0 .8rem .8rem}.proof-actions button{font-size:.59rem;line-height:1.3}.target-card{min-height:58px;padding:.65rem;font-size:.72rem}.included-benefits{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.included-benefit{padding:.7rem}.enhancement-category{margin-top:1rem}.guided-actions,.recommend-actions{margin-top:1.2rem}.investment,.review-package,.live-total{padding:1rem;margin:1rem 0}.investment strong,.review-package strong,.live-total strong{font-size:2rem}.why-fit,.experience-list{margin:1rem 0;padding:.9rem}.perfect-entry{padding:.9rem;margin:1rem 0}.priority-grid,.priority-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:1rem 0}.priority-grid button{padding:.8rem;min-height:112px}.priority-grid strong{font-size:1.1rem}.guided-contact{gap:.7rem}.proposal-sections{grid-template-columns:1fr}.summary-body section{padding:.6rem 0!important}}

/* Existing-client utility shown only inside the mobile hamburger menu. */
.mobile-client-login{display:none}
@media(max-width:900px){.nav nav.open .mobile-client-login{display:block}}

/* Minimal heading above the existing Wedding Reel */
.wedding-reel-section-heading {
  max-width: 820px;
  margin: 0 auto clamp(22px, 3vw, 36px);
  text-align: center;
}
.wedding-reel-section-heading h2 {
  margin: 0;
  font: 400 clamp(38px, 5vw, 65px)/1.08 var(--serif);
  color: var(--paper);
}
.wedding-reel-section-heading p {
  margin: 12px 0 0;
  color: var(--cream);
  font: 400 16px/1.65 var(--sans);
}
@media (max-width: 600px) {
  #story.section {
    padding-bottom: 34px;
  }
  .wedding-reel-section-heading {
    margin-bottom: 20px;
  }
  .wedding-reel-section-heading h2 {
    font-size: clamp(34px, 8.5vw, 44px);
  }
  .wedding-reel-section-heading p {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.55;
  }
}
