:root {
  --wine: #5d1537;
  --wine-dark: #351020;
  --wine-soft: #7e2d53;
  --rose: #d4a0ad;
  --blush: #f5e9e6;
  --cream: #fbf7f1;
  --ink: #1f171a;
  --muted: #6f6268;
  --gold: #b99255;
  --white: #ffffff;
  --line: rgba(58, 29, 40, .13);
  --shadow: 0 25px 70px rgba(56, 21, 39, .14);
  --serif: "Italiana", Georgia, serif;
  --sans: "DM Sans", system-ui, sans-serif;
  --header-height: 84px;
}
[data-bs-theme="dark"] {
  --cream: #171214;
  --blush: #21181c;
  --ink: #f9f4ef;
  --muted: #b8aeb2;
  --line: rgba(255,255,255,.12);
  --white: #23191d;
  --shadow: 0 25px 70px rgba(0,0,0,.28);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body {
  margin: 0; background: var(--cream); color: var(--ink); font-family: var(--sans);
  overflow-x: hidden; -webkit-font-smoothing: antialiased;
}
body.booking-open { overflow: hidden; }
img { max-width: 100%; display: block; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--wine); color: #fff; }
.skip-link { position: fixed; z-index: 99999; left: 1rem; top: -100px; background: #fff; color: #000; padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }
.page-loader {
  position: fixed; inset: 0; z-index: 10000; background: var(--wine-dark); display: grid;
  place-items: center; transition: opacity .65s ease, visibility .65s ease;
}
.page-loader.loaded { opacity: 0; visibility: hidden; }
.loader-mark { font-family: var(--serif); font-size: 7rem; color: #fff; line-height: 1; }
.loader-line { position: absolute; bottom: 0; left: 0; height: 3px; width: 0; background: var(--rose); animation: loadline 1.15s ease forwards; }
@keyframes loadline { to { width: 100%; } }
.announcement-bar { background: var(--wine-dark); color: #fff; min-height: 34px; display: flex; align-items: center; overflow: hidden; font-size: .74rem; letter-spacing: .045em; }
.announcement-track { display: flex; justify-content: center; gap: 5vw; white-space: nowrap; }
.announcement-track i { margin-right: .45rem; color: var(--rose); }
.site-header {
  height: var(--header-height); position: absolute; top: 34px; left: 0; width: 100%; z-index: 1020;
  transition: background .35s, box-shadow .35s, transform .35s;
}
.site-header .navbar { height: 100%; }
.site-header.scrolled { position: fixed; top: 0; background: color-mix(in srgb, var(--cream) 91%, transparent); backdrop-filter: blur(18px); box-shadow: 0 10px 35px rgba(48,19,33,.09); }
.brand-lockup { display: inline-flex; align-items: center; gap: .8rem; min-width: max-content; }
.brand-monogram {
  width: 42px; height: 42px; border: 1px solid currentColor; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--serif); font-size: 1.6rem; color: var(--wine);
}
.brand-lockup strong { display:block; font-family:var(--serif); font-size:1.55rem; font-weight:400; line-height:.85; letter-spacing:.02em; }
.brand-lockup small { display:block; font-size:.62rem; text-transform:uppercase; letter-spacing:.22em; margin-top:.42rem; color:var(--muted); }
.navbar-nav { gap: .28rem; }
.navbar .nav-link { color: var(--ink); font-size: .86rem; font-weight: 600; padding: 1rem .75rem !important; position: relative; }
.navbar .nav-link::after {
  content:""; position:absolute; left:.75rem; right:.75rem; bottom:.6rem; height:1px; background:var(--wine);
  transform:scaleX(0); transform-origin:right; transition:transform .3s ease;
}
.navbar .nav-link:hover::after, .navbar .nav-link.active::after { transform:scaleX(1); transform-origin:left; }
.navbar .dropdown-toggle::after { border: 0; margin:0; }
.icon-button { border:0; background:transparent; width:42px; height:42px; border-radius:50%; color:var(--ink); transition:.25s; }
.icon-button:hover { background: var(--blush); transform: rotate(8deg); }
.btn-brand { --bs-btn-color:#fff; --bs-btn-bg:var(--wine); --bs-btn-border-color:var(--wine); --bs-btn-hover-color:#fff; --bs-btn-hover-bg:var(--wine-dark); --bs-btn-hover-border-color:var(--wine-dark); box-shadow:none; }
.btn-outline-brand { --bs-btn-color:var(--wine); --bs-btn-border-color:rgba(93,21,55,.35); --bs-btn-hover-color:#fff; --bs-btn-hover-bg:var(--wine); --bs-btn-hover-border-color:var(--wine); }
.btn-ghost { border:1px solid var(--line); color:var(--ink); }
.btn-ghost:hover { border-color:var(--wine); color:var(--wine); }
.btn { font-weight: 600; transition: transform .25s ease, background .25s ease, color .25s ease, border .25s ease; }
.btn:hover { transform: translateY(-2px); }
.menu-lines { width:28px; height:24px; display:flex; flex-direction:column; justify-content:center; gap:5px; }
.menu-lines i { display:block; height:1px; width:100%; background:currentColor; }
.mobile-menu { background: var(--cream); }
.mobile-menu .offcanvas-header { padding:1.5rem; }
.mobile-menu .offcanvas-body { padding:1.5rem; }
.mobile-nav { display:flex; flex-direction:column; }
.mobile-nav a { font-family:var(--serif); font-size:2rem; padding:.7rem 0; border-bottom:1px solid var(--line); }
.mega-dropdown { position:static; }
.mega-menu { width:min(1000px, calc(100vw - 3rem)); left:50% !important; transform:translateX(-50%) !important; top:74px !important; padding:0; background:var(--cream); border-radius:0; overflow:hidden; }
.mega-service-link { display:flex; align-items:center; gap:.85rem; padding:.8rem; border:1px solid transparent; transition:.25s; }
.mega-service-link:hover { border-color:var(--line); background:var(--blush); }
.mega-service-link i { color:var(--wine); font-size:1.25rem; }
.mega-service-link strong { display:block; font-size:.9rem; }
.mega-service-link small { color:var(--muted); }
.mega-feature { background:linear-gradient(145deg, rgba(93,21,55,.82),rgba(53,16,32,.97)), url("https://images.unsplash.com/photo-1516975080664-ed2fc6a32937?auto=format&fit=crop&w=800&q=80") center/cover; color:#fff; padding:3rem; display:flex; flex-direction:column; justify-content:flex-end; min-height:380px; }
.mega-feature h3 { font-family:var(--serif); font-size:2.4rem; }
.mega-feature p { color:rgba(255,255,255,.72); }
.hero { min-height:100vh; position:relative; overflow:hidden; padding-top:var(--header-height); }
.hero::before { content:""; position:absolute; width:34vw; height:34vw; border:1px solid rgba(93,21,55,.08); border-radius:50%; left:-15vw; top:18vh; }
.hero-ambient { position:absolute; border-radius:50%; filter:blur(2px); pointer-events:none; }
.hero-ambient-one { width:320px;height:320px;background:radial-gradient(circle,rgba(212,160,173,.36),transparent 70%);top:15%;right:45%; }
.hero-ambient-two { width:420px;height:420px;background:radial-gradient(circle,rgba(185,146,85,.12),transparent 70%);bottom:-12%;left:30%; }
.eyebrow { font-size:.73rem; text-transform:uppercase; letter-spacing:.24em; font-weight:700; color:var(--wine); }
.display-title, .section-title { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; }
.display-title { font-size:clamp(4.2rem, 7.1vw, 8.2rem); line-height:.88; margin:1.4rem 0 1.8rem; }
.display-title em, .section-title em, .contact-copy h2 em, .booking-header h2 em { color:var(--wine); font-style:italic; }
.hero-lead { font-size:clamp(1rem,1.5vw,1.25rem); line-height:1.7; max-width:660px; color:var(--muted); margin-bottom:2rem; }
.hero-trust { display:flex; flex-wrap:wrap; gap:1rem 2rem; margin-top:3.2rem; color:var(--muted); font-size:.8rem; }
.hero-trust div { display:flex; align-items:center; gap:.6rem; }
.hero-trust span { font-family:var(--serif); color:var(--wine); font-size:1.2rem; }
.hero-visual { position:relative; min-height:700px; width:min(620px,100%); margin-inline:auto; }
.hero-image-main { position:absolute; inset:5% 5% 6% 11%; overflow:hidden; border-radius:48% 48% 5px 5px; box-shadow:var(--shadow); }
.hero-image-main img { width:100%; height:100%; object-fit:cover; }
.image-shade { position:absolute; inset:0; background:linear-gradient(to top,rgba(35,10,23,.58),transparent 50%); }
.hero-image-caption { position:absolute; left:2rem; bottom:2rem; color:#fff; }
.hero-image-caption span { display:block;text-transform:uppercase;letter-spacing:.24em;font-size:.64rem; }
.hero-image-caption strong { font-family:var(--serif);font-size:2.5rem;font-weight:400; }
.hero-card { position:absolute; z-index:2; background:color-mix(in srgb,var(--cream) 90%,transparent); backdrop-filter:blur(13px); border:1px solid rgba(255,255,255,.35); box-shadow:var(--shadow); }
.hero-card-top { right:-2%; top:18%; padding:1.25rem 1.5rem; display:flex;align-items:center;gap:1rem; }
.hero-card-top i { font-size:1.8rem;color:var(--wine); }
.hero-card-top span { font-size:.78rem;line-height:1.45; }
.hero-card-bottom { left:0; bottom:17%; padding:1.25rem 1.5rem; display:flex;align-items:center;gap:.8rem; }
.hero-card-bottom strong { font-family:var(--serif);font-size:3.3rem;color:var(--wine);font-weight:400;line-height:1; }
.hero-card-bottom span { font-size:.72rem;text-transform:uppercase;letter-spacing:.08em; }
.hero-orbit-text, .contact-orbit { position:absolute; width:150px;height:150px;display:grid;place-items:center;border-radius:50%; font-size:.61rem;letter-spacing:.15em; animation:spin 18s linear infinite; }
.hero-orbit-text { right:0;bottom:2%;color:var(--wine); }
@keyframes spin { to { transform:rotate(360deg); } }
.scroll-cue { position:absolute;left:50%;bottom:1.8rem;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.35rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;color:var(--muted); }
.scroll-cue i { animation:bounce 1.5s infinite; }
@keyframes bounce { 50% { transform:translateY(5px); } }
.section-soft { background:var(--blush); }
.brand-marquee { overflow:hidden; padding:1.1rem 0; border-block:1px solid var(--line); }
.marquee-content { min-width:max-content;display:flex;gap:1.5rem;align-items:center;animation:marquee 30s linear infinite; }
.marquee-content span { font-family:var(--serif);font-size:1.4rem; }
.marquee-content i { color:var(--wine);font-style:normal; }
@keyframes marquee { to { transform:translateX(-50%); } }
.section-pad { padding:clamp(5.5rem,9vw,9rem) 0; }
.section-heading { margin-bottom:3.5rem; }
.section-heading.centered { text-align:center;max-width:780px;margin-inline:auto; }
.section-title { font-size:clamp(3.1rem,5.7vw,6.4rem);line-height:.95;margin:1rem 0 1.5rem; }
.section-heading p, .section-copy p, .area-copy p { color:var(--muted);line-height:1.8; }
.story-section { overflow:hidden; }
.story-collage { position:relative;min-height:680px; }
.story-photo { position:absolute;overflow:hidden;box-shadow:var(--shadow); }
.story-photo img { width:100%;height:100%;object-fit:cover; }
.story-photo-large { width:75%;height:82%;left:0;top:0;border-radius:44% 44% 0 0; }
.story-photo-small { width:43%;height:43%;right:0;bottom:0;border:10px solid var(--cream); }
.story-seal { position:absolute;right:8%;top:7%;width:160px;height:160px;border-radius:50%;background:var(--wine);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;box-shadow:var(--shadow); }
.story-seal strong { font-family:var(--serif);font-size:2.2rem;font-weight:400; }
.story-seal span { font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;max-width:100px; }
.section-copy .lead { color:var(--ink);font-size:1.22rem; }
.signature-line { display:flex;align-items:center;gap:1rem;margin:2rem 0; }
.signature { font-family:cursive;font-size:2.5rem;color:var(--wine);transform:rotate(-5deg); }
.signature-line strong,.signature-line span { display:block; }
.signature-line span { color:var(--muted);font-size:.76rem;margin-top:.2rem; }
.text-link { font-weight:700;font-size:.88rem;display:inline-flex;align-items:center;gap:.5rem;border-bottom:1px solid currentColor;padding-bottom:.2rem; }
.services-section { background:var(--blush); }
.services-grid { display:grid;grid-template-columns:repeat(12,1fr);gap:1.1rem; }
.service-card { position:relative;min-height:470px;overflow:hidden;grid-column:span 4;background:var(--ink);color:#fff;border:0;text-align:left;padding:0;isolation:isolate; }
.service-card:nth-child(1),.service-card:nth-child(5) { grid-column:span 7; }
.service-card:nth-child(2),.service-card:nth-child(6) { grid-column:span 5; }
.service-card:nth-child(3),.service-card:nth-child(4) { grid-column:span 6; }
.service-card img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1);z-index:-2; }
.service-card::after { content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(27,9,18,.9),transparent 65%);z-index:-1; }
.service-card:hover img { transform:scale(1.07); }
.service-card-top { position:absolute;left:1.5rem;right:1.5rem;top:1.5rem;display:flex;justify-content:space-between;align-items:center; }
.service-card-top span { font-family:var(--serif);font-size:1.3rem; }
.service-card-top i { width:46px;height:46px;border:1px solid rgba(255,255,255,.4);border-radius:50%;display:grid;place-items:center;font-size:1.2rem; }
.service-card-copy { position:absolute;left:1.5rem;right:1.5rem;bottom:1.8rem; }
.service-card h3 { font-family:var(--serif);font-size:clamp(2.1rem,3vw,3.6rem);font-weight:400;margin-bottom:.65rem; }
.service-card p { max-width:520px;color:rgba(255,255,255,.76);margin-bottom:1.2rem; }
.service-card-link { display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.25);padding-top:1rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.15em; }
.service-card-link i { transition:.3s; }
.service-card:hover .service-card-link i { transform:translate(5px,-5px); }
.bridal-feature { padding-block:0; }
.bridal-feature-image { min-height:720px;position:relative;overflow:hidden; }
.bridal-feature-image img { width:100%;height:100%;object-fit:cover;position:absolute;inset:0; }
.vertical-label { position:absolute;left:1.5rem;bottom:2rem;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.65rem;letter-spacing:.2em;color:#fff; }
.bridal-feature-copy { background:var(--wine-dark);display:flex;align-items:center; }
.p-xl-6 { padding:clamp(3rem,8vw,8rem)!important; }
.text-white-75 { color:rgba(255,255,255,.72);line-height:1.8; }
.bridal-includes { display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:2rem;color:#fff; }
.bridal-includes span { display:flex;gap:.6rem;align-items:flex-start;font-size:.86rem; }
.bridal-includes i { color:var(--rose);font-size:1.1rem; }
.occasion-intro { max-width:390px;color:var(--muted);margin:0; }
.occasion-swiper { overflow:visible; }
.occasion-card { min-height:380px;background:var(--blush);padding:2rem;border:1px solid var(--line);display:flex;flex-direction:column;transition:.35s; }
.occasion-card:hover { transform:translateY(-8px);background:var(--wine);color:#fff; }
.occasion-card>i { font-size:2rem;color:var(--wine);margin:2rem 0; }
.occasion-card:hover>i { color:var(--rose); }
.occasion-index { align-self:flex-end;font-family:var(--serif);font-size:1.2rem; }
.occasion-card h3 { font-family:var(--serif);font-size:2rem;font-weight:400; }
.occasion-card p { color:var(--muted);line-height:1.65; }
.occasion-card:hover p { color:rgba(255,255,255,.7); }
.occasion-card button { margin-top:auto;border:0;background:transparent;color:inherit;padding:0;text-align:left;font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;display:flex;justify-content:space-between; }
.occasion-controls { margin-top:2rem;display:flex;align-items:center;justify-content:center;gap:1.2rem; }
.occasion-controls button { border:1px solid var(--line);background:transparent;color:var(--ink);width:48px;height:48px;border-radius:50%; }
.occasion-controls .swiper-pagination { position:static;width:auto; }
.swiper-pagination-bullet-active { background:var(--wine); }
.process-section { background:var(--blush); }
.sticky-heading { position:sticky;top:130px; }
.process-list { border-top:1px solid var(--line); }
.process-item { display:grid;grid-template-columns:80px 1fr;gap:1rem;padding:2.2rem 0;border-bottom:1px solid var(--line); }
.process-item>span { font-family:var(--serif);font-size:1.5rem;color:var(--wine); }
.process-item h3 { font-family:var(--serif);font-size:2rem;font-weight:400; }
.process-item p { color:var(--muted);line-height:1.7;margin:0; }
.gallery-section { overflow:hidden; }
.gallery-filter { display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;margin-bottom:2.5rem; }
.gallery-filter button { border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:100px;padding:.7rem 1.2rem;font-size:.77rem;font-weight:700; }
.gallery-filter button.active,.gallery-filter button:hover { background:var(--wine);color:#fff;border-color:var(--wine); }
.gallery-grid { display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:300px;gap:1rem; }
.gallery-item { position:relative;border:0;padding:0;overflow:hidden;background:#ddd;transition:opacity .35s,transform .35s; }
.gallery-item.hidden { display:none; }
.gallery-item img { width:100%;height:100%;object-fit:cover;transition:transform .7s; }
.gallery-item::after { content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(34,10,21,.7),transparent 60%); }
.gallery-item:hover img { transform:scale(1.06); }
.gallery-item span { position:absolute;z-index:2;left:1.3rem;bottom:1.3rem;color:#fff;font-family:var(--serif);font-size:1.6rem;text-align:left; }
.gallery-item small { display:block;font-family:var(--sans);font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;margin-bottom:.35rem; }
.gallery-tall { grid-row:span 2; }
.gallery-wide { grid-column:span 2; }
.area-section { background:var(--blush); }
.area-panel { position:relative;overflow:hidden;background:var(--cream);border:1px solid var(--line);min-height:610px;display:grid;grid-template-columns:1.05fr .95fr;box-shadow:var(--shadow); }
.area-map-art { position:relative;min-height:610px;background:radial-gradient(circle at 40% 40%,rgba(212,160,173,.5),transparent 40%),linear-gradient(145deg,#f1dfd9,#d7b8b0);overflow:hidden; }
.area-map-art svg { position:absolute;inset:5%;width:90%;height:90%;fill:rgba(255,255,255,.45);stroke:rgba(93,21,55,.23);stroke-width:2; }
.area-dot { position:absolute;width:14px;height:14px;border-radius:50%;background:var(--wine);z-index:2;box-shadow:0 0 0 9px rgba(93,21,55,.12); }
.dot-vellore{left:43%;top:48%}.dot-ranipet{left:56%;top:41%}.dot-arani{left:40%;top:69%}.dot-kanchi{left:68%;top:58%}
.area-copy { padding:clamp(2rem,6vw,6rem);display:flex;flex-direction:column;justify-content:center; }
.area-chips { display:flex;flex-wrap:wrap;gap:.55rem;margin:1.5rem 0; }
.area-chips span { padding:.6rem 1rem;border:1px solid var(--line);border-radius:100px;font-size:.76rem; }
.reviews-section { background:var(--wine-dark);color:#fff;overflow:hidden; }
.reviews-section .eyebrow { color:var(--rose); }
.reviews-section .section-title em { color:var(--rose); }
.reviews-section .text-body-secondary { color:rgba(255,255,255,.55)!important; }
.reviews-swiper { overflow:visible; }
.review-card { min-height:400px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);padding:2.2rem;display:flex;flex-direction:column; }
.review-status { align-self:flex-start;border:1px solid rgba(255,255,255,.2);padding:.35rem .6rem;border-radius:100px;font-size:.58rem;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.6); }
.quote-mark { font-family:var(--serif);font-size:6rem;color:var(--rose);line-height:1;margin-top:1rem; }
.review-card>p { font-family:var(--serif);font-size:1.75rem;line-height:1.35; }
.review-person { margin-top:auto;display:flex;gap:.8rem;align-items:center; }
.avatar { width:46px;height:46px;border-radius:50%;background:var(--rose);color:var(--wine-dark);display:grid;place-items:center;font-family:var(--serif);font-size:1.4rem; }
.review-person strong,.review-person span { display:block; }
.review-person span { color:rgba(255,255,255,.55);font-size:.75rem; }
.reviews-pagination { position:static!important;margin-top:2rem; }
.reviews-pagination .swiper-pagination-bullet { background:#fff; }
.premium-accordion { border-top:1px solid var(--line); }
.premium-accordion .accordion-item { background:transparent;border-color:var(--line); }
.premium-accordion .accordion-button { background:transparent;color:var(--ink);font-family:var(--serif);font-size:1.55rem;padding:1.7rem 0;box-shadow:none; }
.premium-accordion .accordion-button:not(.collapsed) { color:var(--wine); }
.premium-accordion .accordion-body { color:var(--muted);padding:0 3rem 1.8rem 0;line-height:1.75; }
.contact-section { padding:0 0 2rem; }
.contact-panel { background:linear-gradient(135deg,var(--wine),var(--wine-dark));color:#fff;min-height:620px;padding:clamp(2rem,7vw,7rem);display:grid;grid-template-columns:1.2fr .8fr;align-items:center;position:relative;overflow:hidden; }
.contact-panel::before { content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-120px;top:-120px;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.02); }
.contact-copy h2,.booking-header h2 { font-family:var(--serif);font-size:clamp(4rem,7vw,7.5rem);line-height:.9;font-weight:400;margin:1.2rem 0; }
.contact-copy h2 em { color:var(--rose); }
.contact-copy p { max-width:650px;color:rgba(255,255,255,.68);line-height:1.8; }
.contact-links { display:flex;flex-wrap:wrap;gap:1rem 2rem;margin-top:2.5rem; }
.contact-links>a,.contact-links>div { display:flex;align-items:center;gap:.8rem; }
.contact-links i { width:46px;height:46px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:grid;place-items:center; }
.contact-links small,.contact-links span { display:block; }
.contact-links small { color:rgba(255,255,255,.48);font-size:.62rem;text-transform:uppercase;letter-spacing:.15em;margin-bottom:.2rem; }
.contact-action { position:relative;display:grid;place-items:center;min-height:350px;z-index:2; }
.contact-circle { width:220px;height:220px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:#fff;color:var(--wine);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);font-size:2rem;line-height:1;transition:.35s; }
.contact-circle:hover { transform:scale(1.04) rotate(-3deg); }
.contact-circle i { margin-top:1rem;font-size:1.3rem; }
.contact-orbit { color:rgba(255,255,255,.65);width:310px;height:310px; }
.site-footer { padding:4.5rem 0 1.5rem;background:var(--cream); }
.footer-top { display:grid;grid-template-columns:2fr repeat(3,1fr);gap:3rem;padding-bottom:3rem;border-bottom:1px solid var(--line); }
.footer-brand p { color:var(--muted);max-width:360px;margin-top:1.5rem; }
.footer-top h3 { font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;margin-bottom:1.2rem; }
.footer-top a,.footer-top span,.footer-link-button { display:block;color:var(--muted);font-size:.84rem;margin:.65rem 0;border:0;background:transparent;padding:0;text-align:left; }
.footer-top a:hover,.footer-link-button:hover { color:var(--wine); }
.footer-bottom { display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.5rem;color:var(--muted);font-size:.72rem; }
.floating-enquiry { position:fixed;z-index:1010;right:1.4rem;bottom:1.4rem;width:64px;height:64px;border-radius:50%;border:0;background:var(--wine);color:#fff;display:grid;place-items:center;box-shadow:0 15px 35px rgba(93,21,55,.35); }
.floating-enquiry i { font-size:1.3rem; }
.floating-enquiry em { font-style:normal;font-size:.55rem;text-transform:uppercase;letter-spacing:.12em; }
.pulse-ring { position:absolute;inset:-5px;border:1px solid var(--wine);border-radius:50%;animation:pulse 2s infinite; }
@keyframes pulse { 70%,100% { transform:scale(1.28);opacity:0; } }
.service-modal .modal-content { background:var(--cream);border-radius:0;overflow:hidden;box-shadow:var(--shadow); }
.modal-close { position:absolute;right:1rem;top:1rem;z-index:2;width:44px;height:44px;border:0;border-radius:50%;background:var(--cream);color:var(--ink); }
.service-modal-image { min-height:650px; }
.service-modal-image img { width:100%;height:100%;object-fit:cover; }
.service-modal-copy { padding:clamp(2rem,5vw,5rem);max-height:85vh;overflow:auto; }
.service-modal-copy h2 { font-family:var(--serif);font-size:clamp(3rem,5vw,5rem);font-weight:400;margin:.8rem 0; }
.service-modal-copy>p { color:var(--muted);line-height:1.7; }
.service-varieties { display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;margin:2rem 0; }
.service-varieties span { display:flex;align-items:flex-start;gap:.5rem;font-size:.79rem;border-bottom:1px solid var(--line);padding-bottom:.55rem; }
.service-varieties span::before { content:"✦";color:var(--wine);font-size:.65rem;margin-top:.15rem; }
.gallery-modal img { max-height:85vh;width:100%;object-fit:contain; }
.gallery-close { position:absolute;right:0;top:-50px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;z-index:2; }
.gallery-modal-caption { color:#fff;text-align:center;margin-top:1rem;font-family:var(--serif);font-size:1.5rem; }
.booking-drawer { position:fixed;inset:0;z-index:5000;visibility:hidden; }
.booking-drawer.open { visibility:visible; }
.booking-backdrop { position:absolute;inset:0;background:rgba(21,8,14,.62);backdrop-filter:blur(7px);opacity:0;transition:.35s; }
.booking-drawer.open .booking-backdrop { opacity:1; }
.booking-panel { position:absolute;right:0;top:0;height:100%;width:min(600px,100%);background:var(--cream);padding:clamp(1.5rem,5vw,4rem);overflow:auto;transform:translateX(100%);transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.booking-drawer.open .booking-panel { transform:translateX(0); }
.booking-close { position:absolute;right:1.25rem;top:1.25rem;border:1px solid var(--line);background:transparent;color:var(--ink);width:44px;height:44px;border-radius:50%; }
.booking-header h2 { font-size:clamp(3.1rem,6vw,5.5rem);margin-bottom:1.5rem; }
.booking-progress { height:3px;background:var(--blush);margin-bottom:2rem; }
.booking-progress span { display:block;height:100%;width:33.333%;background:var(--wine);transition:.35s; }
.booking-step { display:none; }
.booking-step.active { display:block;animation:stepin .35s ease; }
@keyframes stepin { from { opacity:0;transform:translateX(12px); } }
.form-control,.form-select { background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:0;min-height:58px; }
.form-control:focus,.form-select:focus { background:transparent;color:var(--ink);border-color:var(--wine);box-shadow:0 0 0 .2rem rgba(93,21,55,.08); }
.form-floating>label { color:var(--muted); }
.field-label { display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.15em;font-weight:700;margin:1.5rem 0 .8rem; }
.booking-choice-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem; }
.booking-choice { cursor:pointer; }
.booking-choice input { position:absolute;opacity:0; }
.booking-choice span { display:flex;align-items:center;gap:.65rem;border:1px solid var(--line);padding:.85rem;font-size:.78rem;transition:.25s; }
.booking-choice input:checked+span { background:var(--wine);color:#fff;border-color:var(--wine); }
.booking-nav { display:flex;justify-content:space-between;gap:1rem;margin-top:2rem; }
.booking-nav .btn { min-width:130px; }
.contact-methods { display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem; }
.contact-methods label { cursor:pointer; }
.contact-methods input { position:absolute;opacity:0; }
.contact-methods span { min-height:82px;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;font-size:.72rem; }
.contact-methods input:checked+span { background:var(--wine);color:#fff;border-color:var(--wine); }
.contact-methods label.disabled { opacity:.4;pointer-events:none; }
.booking-summary { background:var(--blush);padding:1rem;margin-top:1.5rem;font-size:.78rem;line-height:1.75; }
.booking-success { display:none;text-align:center;padding-top:12vh; }
.booking-success.active { display:block; }
.success-icon { width:86px;height:86px;border-radius:50%;background:var(--wine);color:#fff;display:grid;place-items:center;margin:0 auto 2rem;font-size:2.4rem; }
.booking-success h2 { font-family:var(--serif);font-size:3rem; }
.booking-success p { color:var(--muted);line-height:1.7; }
.premium-toast { background:var(--wine-dark);color:#fff;box-shadow:var(--shadow); }
.reveal-up,.reveal-left,.reveal-right,.reveal-scale { opacity:0;transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal-up { transform:translateY(35px); }.reveal-left{transform:translateX(-45px)}.reveal-right{transform:translateX(45px)}.reveal-scale{transform:scale(.94)}
.revealed { opacity:1;transform:none; }
@media (max-width:1199.98px) {
  .site-header { top:34px; }
  .hero { padding-top:120px; }
  .hero-visual { min-height:620px; }
  .gallery-grid { grid-template-columns:repeat(3,1fr); }
  .gallery-item:nth-child(7) { grid-column:span 2; }
}
@media (max-width:991.98px) {
  .announcement-track { justify-content:flex-start;animation:marquee 22s linear infinite; }
  .display-title { font-size:clamp(4rem,13vw,7rem); }
  .hero .min-vh-100 { min-height:auto!important; }
  .hero-visual { min-height:650px; }
  .scroll-cue { display:none; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .service-card,.service-card:nth-child(n) { grid-column:auto; }
  .bridal-feature-image { min-height:560px; }
  .area-panel { grid-template-columns:1fr; }
  .area-map-art { min-height:420px; }
  .footer-top { grid-template-columns:2fr 1fr 1fr; }
  .footer-top>div:last-child { grid-column:2/4; }
  .gallery-grid { grid-template-columns:repeat(2,1fr);grid-auto-rows:280px; }
  .gallery-wide { grid-column:span 2; }
  .contact-panel { grid-template-columns:1fr; }
  .contact-action { min-height:320px; }
}
@media (max-width:767.98px) {
  :root { --header-height:70px; }
  .announcement-bar { min-height:30px; }
  .site-header { top:30px; }
  .site-header.scrolled { top:0; }
  .brand-monogram { width:38px;height:38px; }
  .brand-lockup strong { font-size:1.3rem; }
  .hero { padding-top:110px; }
  .hero-copy { text-align:center; }
  .hero-lead { margin-inline:auto; }
  .hero-copy .d-flex,.hero-trust { justify-content:center; }
  .display-title { font-size:clamp(3.7rem,17vw,5.3rem); }
  .hero-visual { min-height:520px; }
  .hero-image-main { inset:4% 3% 5% 5%; }
  .hero-card-top { right:0;top:12%; }
  .hero-card-bottom { bottom:9%; }
  .hero-orbit-text { display:none; }
  .section-pad { padding:5.2rem 0; }
  .section-title { font-size:clamp(3rem,14vw,4.7rem); }
  .story-collage { min-height:560px; }
  .story-photo-large { width:84%;height:82%; }
  .story-photo-small { width:48%;height:38%; }
  .story-seal { width:130px;height:130px;right:2%; }
  .services-grid { grid-template-columns:1fr; }
  .service-card { min-height:430px; }
  .bridal-includes { grid-template-columns:1fr; }
  .process-item { grid-template-columns:55px 1fr; }
  .gallery-grid { grid-template-columns:1fr;grid-auto-rows:360px; }
  .gallery-item,.gallery-wide,.gallery-tall { grid-column:auto;grid-row:auto; }
  .gallery-item:nth-child(1),.gallery-item:nth-child(5) { min-height:500px; }
  .area-map-art { min-height:330px; }
  .contact-copy h2 { font-size:clamp(3.6rem,17vw,5.2rem); }
  .contact-links { flex-direction:column; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/3; }
  .footer-top>div:last-child { grid-column:auto; }
  .service-modal-image { min-height:330px;max-height:330px; }
  .service-varieties { grid-template-columns:1fr; }
  .booking-choice-grid { grid-template-columns:1fr; }
}
@media (max-width:575.98px) {
  .hero-trust { display:grid;grid-template-columns:1fr;justify-items:center; }
  .hero-card-top { padding:.85rem; }
  .hero-card-bottom { padding:.85rem; }
  .hero-card-bottom strong { font-size:2.5rem; }
  .hero-image-caption strong { font-size:1.9rem; }
  .story-collage { min-height:480px; }
  .contact-methods { grid-template-columns:1fr; }
  .contact-methods span { min-height:58px;flex-direction:row; }
  .booking-nav .btn { min-width:auto;flex:1; }
  .footer-top { grid-template-columns:1fr; }
  .footer-brand,.footer-top>div:last-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
}
