:root {
  --v2-cream: #f8f5ef;
  --v2-paper: #fffdf9;
  --v2-stone: #eae4dc;
  --v2-ink: #30252d;
  --v2-muted: #665d62;
  --v2-plum: #452a41;
  --v2-rose: #815868;
  --v2-gold: #ad8d60;
}

html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
.v2-body { background: var(--v2-cream); color: var(--v2-ink); font-family: Jost, sans-serif; }
.v2-body h1, .v2-body h2, .v2-body h3 { color: inherit; font-family: "Cormorant Garamond", Georgia, serif; }
.v2-body a, .v2-body button { -webkit-tap-highlight-color: transparent; }
.v2-body :focus-visible { outline: 2px solid var(--v2-rose); outline-offset: 4px; }
.v2-shell { width: min(100% - 3rem, 1240px); margin-inline: auto; }
.v2-skip { position: fixed; z-index: 100; top: -5rem; left: 1rem; padding: .7rem 1rem; background: var(--v2-plum); color: white; }
.v2-skip:focus { top: 1rem; }

.v2-loader { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; background: var(--v2-cream); color: var(--v2-plum); text-align: center; transition: opacity .5s ease, visibility 0s linear .5s; animation: v2-loader-fallback 0s linear 10s forwards; }
.v2-loader.is-leaving { opacity: 0; visibility: hidden; pointer-events: none; }
.v2-loader-content { display: flex; flex-direction: column; align-items: center; width: min(90vw, 500px); }
.v2-loader-mark { display: grid; place-items: center; width: 86px; height: 86px; border: 1px solid currentColor; border-radius: 50%; font: italic 500 3rem/.8 "Cormorant Garamond", Georgia, serif; letter-spacing: -.08em; padding-right: .15em; }
.v2-loader-name { margin-top: 1.8rem; font: 600 clamp(3rem, 6vw, 4.2rem)/.9 "Cormorant Garamond", Georgia, serif; letter-spacing: -.035em; }
.v2-loader-subtitle { margin-top: .7rem; font-size: .64rem; font-weight: 500; letter-spacing: .43em; }
.v2-loader-rule { display: block; overflow: hidden; width: 150px; height: 1px; margin-top: 2.7rem; background: #d8cec5; }
.v2-loader-rule span { display: block; width: 100%; height: 100%; background: var(--v2-gold); transform-origin: left; animation: v2-loader-line 2.6s ease-in-out infinite alternate; }
.v2-loader-tagline { margin-top: 1.3rem; color: var(--v2-muted); font: italic 500 1.1rem "Cormorant Garamond", Georgia, serif; }
@keyframes v2-loader-line { from { transform: scaleX(.06); } to { transform: scaleX(1); } }
@keyframes v2-loader-fallback { to { visibility: hidden; pointer-events: none; } }

.v2-header { position: sticky; top: 0; z-index: 40; background: rgba(248,245,239,.96); border-bottom: 1px solid #d9d0c6; backdrop-filter: blur(12px); }
.v2-header-inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.v2-brand { display: inline-flex; align-items: center; gap: .85rem; flex: none; }
.v2-monogram { display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid var(--v2-plum); border-radius: 50%; color: var(--v2-plum); font: italic 600 1.45rem/.8 "Cormorant Garamond", Georgia, serif; letter-spacing: -.08em; padding-right: .12em; }
.v2-brand-text { display: flex; flex-direction: column; line-height: .93; }
.v2-brand-text strong { font: 600 1.65rem/1 "Cormorant Garamond", Georgia, serif; letter-spacing: -.025em; }
.v2-brand-text small { margin-top: .38rem; font-size: .56rem; letter-spacing: .29em; font-weight: 500; }
.v2-nav { display: flex; gap: clamp(1.2rem,2.5vw,2.6rem); align-items: center; }
.v2-nav a, .v2-header-cta { font-size: .78rem; font-weight: 500; letter-spacing: .08em; }
.v2-nav a { transition: color .2s; }
.v2-nav a:hover, .v2-text-link:hover { color: var(--v2-rose); }
.v2-header-cta { border-bottom: 1px solid var(--v2-plum); padding-bottom: .28rem; white-space: nowrap; }
.v2-header-cta span { margin-left: .3rem; }
.v2-mobile-nav { display: none; }

.v2-hero { overflow: hidden; background: var(--v2-cream); }
.v2-hero-grid { display: grid; grid-template-columns: 1fr .94fr; min-height: min(740px, calc(100svh - 88px)); }
.v2-hero-copy { align-self: center; padding: 5.5rem 4rem 5.5rem 0; }
.v2-kicker { color: var(--v2-rose); font-size: .68rem; font-weight: 500; letter-spacing: .21em; line-height: 1.6; text-transform: uppercase; }
.v2-kicker span { margin: 0 .45rem; color: var(--v2-gold); }
.v2-hero h1 { max-width: 760px; margin-top: 1.6rem; font-size: clamp(4.3rem,6.2vw,7rem); font-weight: 500; line-height: .92; letter-spacing: -.045em; }
.v2-hero h1 em, .v2-section h2 em { color: var(--v2-rose); font-weight: 500; }
.v2-lede { max-width: 31rem; margin-top: 2rem; font-size: 1.12rem; line-height: 1.7; color: var(--v2-muted); }
.v2-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 2rem; margin-top: 2.4rem; }
.v2-button { display: inline-flex; align-items: center; justify-content: center; gap: 1.7rem; padding: 1rem 1.25rem; min-height: 52px; font-size: .78rem; font-weight: 500; letter-spacing: .06em; transition: background .2s, transform .2s; }
.v2-button:hover { transform: translateY(-2px); }
.v2-button-dark { background: var(--v2-plum); color: #fff; }
.v2-button-dark:hover { background: #61415a; }
.v2-text-link { display: inline-flex; align-items: center; gap: .75rem; border-bottom: 1px solid var(--v2-gold); padding-bottom: .3rem; font-size: .83rem; font-weight: 500; letter-spacing: .04em; transition: color .2s; }
.v2-hero-note { margin-top: 4rem; color: var(--v2-muted); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.35rem; font-style: italic; }
.v2-hero-visual { position: relative; align-self: stretch; min-height: 560px; padding: 2.5rem 0 3.5rem; }
.v2-hero-visual::before { content: ""; position: absolute; top: 0; right: -100vw; bottom: 0; left: 13%; background: var(--v2-stone); }
.v2-hero-visual img { position: relative; width: 100%; height: 100%; max-height: 660px; object-fit: cover; object-position: center 31%; }
.v2-image-caption { position: absolute; right: -1.1rem; bottom: 5.3rem; z-index: 1; padding: .78rem 1rem; background: var(--v2-paper); font: italic 500 1.25rem "Cormorant Garamond", Georgia, serif; }

.v2-section { padding-block: clamp(5rem,9vw,9rem); }
.v2-section-head { max-width: 42rem; }
.v2-section h2 { margin-top: .9rem; font-size: clamp(3.3rem,5vw,5.6rem); font-weight: 500; line-height: .98; letter-spacing: -.03em; }
.v2-section-head > p:last-child { max-width: 34rem; margin-top: 1.3rem; color: var(--v2-muted); font-size: 1rem; line-height: 1.75; }
.v2-services { background: var(--v2-paper); }
.v2-stage-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(2rem,4vw,4rem); margin-top: 4rem; }
.v2-stage { border-top: 1px solid var(--v2-gold); padding-top: 1.15rem; }
.v2-stage-number { color: var(--v2-rose); font: italic 500 1.2rem "Cormorant Garamond", Georgia, serif; }
.v2-stage h3 { margin-top: 1.7rem; font-size: clamp(2.15rem,3vw,3.2rem); line-height: 1; }
.v2-stage-intro { margin-top: .8rem; min-height: 3.3rem; color: var(--v2-muted); font-size: .95rem; line-height: 1.65; }
.v2-stage ul { margin-top: 1.5rem; border-top: 1px solid #ded8d0; }
.v2-stage li { padding: .8rem 0; border-bottom: 1px solid #ded8d0; font-size: .85rem; font-weight: 500; }
.v2-addons { margin-top: 3.6rem; padding-top: 1.2rem; border-top: 1px solid #ded8d0; color: var(--v2-muted); font-size: .85rem; line-height: 1.9; }
.v2-addons strong { color: var(--v2-plum); font-weight: 500; }

.v2-gallery { background: var(--v2-stone); }
.v2-gallery-head { display: flex; justify-content: space-between; align-items: end; gap: 3rem; max-width: none; }
.v2-gallery-head > p:last-child { max-width: 17rem; margin-bottom: .25rem; }
.v2-photo-grid { display: grid; grid-template-columns: 1.15fr .85fr .85fr; gap: 1.4rem; margin-top: 3.5rem; }
.v2-photo:first-child { grid-row: span 2; }
.v2-photo:nth-child(4) { grid-column: span 2; }
.v2-photo button { display: block; position: relative; overflow: hidden; width: 100%; height: 270px; background: #dad2ca; text-align: left; }
.v2-photo:first-child button { height: 638px; }
.v2-photo:nth-child(4) button { height: 270px; }
.v2-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s, filter .5s; }
.v2-photo button:hover img { transform: scale(1.035); filter: brightness(.83); }
.v2-photo:nth-child(2) img { object-position: center 55%; }
.v2-photo:nth-child(4) img { object-position: center 47%; }
.v2-view { position: absolute; left: 1rem; bottom: 1rem; padding: .5rem .75rem; background: var(--v2-paper); color: var(--v2-plum); font-size: .75rem; opacity: 0; transform: translateY(6px); transition: opacity .2s, transform .2s; }
.v2-photo button:hover .v2-view, .v2-photo button:focus-visible .v2-view { opacity: 1; transform: none; }
.v2-photo figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; padding-top: .65rem; }
.v2-photo figcaption strong { font: 500 1.5rem "Cormorant Garamond", Georgia, serif; }
.v2-photo figcaption span { color: var(--v2-muted); font-size: .7rem; letter-spacing: .07em; text-transform: uppercase; }
.v2-lightbox { max-width: min(95vw, 1100px); max-height: 92vh; margin: auto; padding: 1rem; background: var(--v2-paper); color: var(--v2-ink); }
.v2-lightbox::backdrop { background: rgba(24,18,23,.88); }
.v2-lightbox button { display: block; margin: 0 0 .6rem auto; font-size: .8rem; }
.v2-lightbox img { max-height: 74vh; max-width: 100%; object-fit: contain; }
.v2-lightbox p { margin-top: .5rem; font-size: .85rem; }

.v2-about { padding-bottom: 3rem; background: var(--v2-plum); color: #f8f5ef; }
.v2-about .v2-kicker { color: #d9b9c4; }
.v2-about-grid { display: grid; grid-template-columns: 1fr .72fr; gap: 8rem; }
.v2-about h2 { max-width: 42rem; }
.v2-about h2 em { color: #caaab4; }
.v2-about-copy { padding-top: 2.2rem; }
.v2-about-copy p { margin-bottom: 1.3rem; color: #ede2e9; font-size: 1.05rem; line-height: 1.8; }
.v2-about-copy .v2-text-link { margin-top: .6rem; color: #fff; }
.v2-location { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 7rem; padding-top: 1.4rem; border-top: 1px solid #82677b; color: #e7d7e1; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }
.v2-location span:nth-child(even) { color: #caaab4; }

/* The existing enquiry form and backend are shared with the original page. */
.v2-body #contact { background: var(--v2-cream); }
.v2-body #contact > div:first-child { padding-top: 7rem; padding-bottom: 7rem; }
.v2-body #contact .eyebrow { color: var(--v2-rose); font-size: .68rem; }
.v2-body #contact .section-title { color: var(--v2-ink); font-weight: 500; font-size: clamp(3.3rem,5vw,5.4rem); letter-spacing: -.03em; }
.v2-body #contact .gold-rule { background: var(--v2-gold); }
.v2-body #contact form { border: 1px solid #ddd3c9; border-radius: 2px; background: var(--v2-paper); box-shadow: none; }
.v2-body #contact .field { border-color: #d5c9c5; border-radius: 2px; background: transparent; }
.v2-body #contact form label { color: var(--v2-ink); }
.v2-body #contact form .btn-primary { border-radius: 2px; background: var(--v2-plum); box-shadow: none; }
.v2-body #contact form .btn-primary:hover { background: #61415a; }
.v2-body #contact aside > div { border-radius: 2px; background: var(--v2-plum); box-shadow: none; }
.v2-body #contact aside .btn-outline { border-radius: 2px; }
.v2-body #contact > .w-full { display: none; }
.v2-directions { background: var(--v2-cream); border-top: 1px solid #ded8d0; }
.v2-directions > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.2rem; color: var(--v2-muted); font-size: .82rem; }
.v2-directions a { color: var(--v2-plum); border-bottom: 1px solid var(--v2-gold); padding-bottom: .2rem; font-weight: 500; }

.v2-footer { background: #2c1f2b; color: #f5edea; }
.v2-footer-grid { display: grid; grid-template-columns: 1.4fr .65fr 1fr; gap: 3rem; padding-block: 4.5rem; }
.v2-footer .v2-monogram { border-color: #e1cbcf; color: #f5edea; }
.v2-footer-grid p { margin-top: 1.4rem; color: #d7c9d1; font: italic 1.35rem "Cormorant Garamond", Georgia, serif; }
.v2-footer-grid nav, .v2-footer-contact { display: flex; flex-direction: column; gap: .8rem; color: #e0d3dc; font-size: .82rem; }
.v2-footer-grid a:hover { color: #d6b9c4; }
.v2-footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding-block: 1.3rem; border-top: 1px solid #655163; color: #c6b5c0; font-size: .7rem; letter-spacing: .06em; }
.v2-footer-bottom a { color: #e0c5a7; text-decoration: underline; text-underline-offset: .2em; }
.v2-footer-bottom a:hover { color: #fff; }
.v2-whatsapp { position: fixed; z-index: 30; right: 1.2rem; bottom: 1.2rem; display: grid; place-items: center; width: 51px; height: 51px; border-radius: 50%; background: #385e4d; color: #fff; box-shadow: 0 5px 20px #2c1f2b33; }
.v2-whatsapp svg { width: 23px; height: 23px; }

@media (max-width: 1000px) {
  .v2-nav { gap: 1rem; }
  .v2-header-cta { display: none; }
  .v2-hero-grid { grid-template-columns: 1fr .85fr; }
  .v2-hero-copy { padding-right: 2rem; }
  .v2-hero h1 { font-size: clamp(3.6rem,6vw,5rem); }
  .v2-about-grid { gap: 3rem; }
}
@media (max-width: 700px) {
  .v2-shell { width: min(100% - 2rem, 1240px); }
  .v2-header-inner { min-height: 73px; }
  .v2-brand-text strong { font-size: 1.43rem; }
  .v2-monogram { width: 38px; height: 38px; }
  .v2-nav { display: none; }
  .v2-mobile-nav { display: block; position: relative; }
  .v2-mobile-nav summary { cursor: pointer; list-style: none; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
  .v2-mobile-nav summary::-webkit-details-marker { display: none; }
  .v2-mobile-nav summary span { margin-left: .4rem; font-size: 1rem; }
  .v2-mobile-nav nav { position: absolute; top: calc(100% + 1.6rem); right: -1rem; display: flex; flex-direction: column; width: min(300px,100vw); padding: 1rem 1.2rem; background: var(--v2-paper); border: 1px solid #d9d0c6; box-shadow: 0 14px 35px #30252d1b; }
  .v2-mobile-nav nav a { padding: .7rem 0; border-bottom: 1px solid #ebe4dd; font-size: .9rem; }
  .v2-hero-grid { display: flex; flex-direction: column; min-height: 0; }
  .v2-hero-copy { padding: 4.3rem 0 3rem; }
  .v2-hero h1 { font-size: clamp(3.5rem,12vw,5rem); line-height: .94; }
  .v2-lede { margin-top: 1.5rem; font-size: 1rem; }
  .v2-hero-actions { margin-top: 2rem; gap: 1.3rem; }
  .v2-hero-note { margin-top: 2.5rem; }
  .v2-hero-visual { width: 100%; min-height: 0; padding: 0 0 2rem; }
  .v2-hero-visual::before { top: 10%; left: 12%; bottom: 0; }
  .v2-hero-visual img { width: 88%; height: 480px; object-position: center 25%; }
  .v2-image-caption { right: 0; bottom: 3.4rem; }
  .v2-section { padding-block: 5rem; }
  .v2-section h2 { font-size: clamp(3.2rem,10vw,4.4rem); }
  .v2-stage-grid { display: block; margin-top: 2.8rem; }
  .v2-stage { margin-top: 2.5rem; }
  .v2-stage-intro { min-height: 0; }
  .v2-addons { margin-top: 2.5rem; }
  .v2-gallery-head { display: block; }
  .v2-gallery-head > p:last-child { max-width: 21rem; }
  .v2-photo-grid { grid-template-columns: repeat(2,1fr); gap: 1.3rem .8rem; margin-top: 2.5rem; }
  .v2-photo:first-child, .v2-photo:nth-child(4) { grid-column: span 2; grid-row: auto; }
  .v2-photo button, .v2-photo:nth-child(4) button { height: 220px; }
  .v2-photo:first-child button { height: 360px; }
  .v2-photo figcaption { display: block; }
  .v2-photo figcaption strong { display: block; }
  .v2-photo figcaption span { display: block; margin-top: .1rem; }
  .v2-about-grid { display: block; }
  .v2-about-copy { padding-top: 1.5rem; }
  .v2-location { flex-wrap: wrap; justify-content: flex-start; margin-top: 4rem; line-height: 1.8; }
  .v2-body #contact > div:first-child { padding-top: 5rem; padding-bottom: 5rem; }
  .v2-footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .v2-footer-grid > div:first-child { grid-column: 1/-1; }
}
@media (max-width: 430px) {
  .v2-hero h1 { font-size: 3.55rem; }
  .v2-hero-actions { align-items: flex-start; flex-direction: column; }
  .v2-hero-visual img { height: 410px; }
  .v2-photo:first-child button { height: 300px; }
  .v2-photo button { height: 170px; }
  .v2-footer-grid { grid-template-columns: 1fr; }
  .v2-footer-grid > div:first-child { grid-column: auto; }
  .v2-footer-bottom { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .v2-body *, .v2-body *::before, .v2-body *::after { transition-duration: .01ms !important; }
  .v2-loader-rule span { animation: none; transform: scaleX(1); }
}
