@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');

:root {
  --forest-950: #071d18;
  --forest-900: #0b2b24;
  --forest-800: #123f35;
  --forest-700: #1c5648;
  --sage-600: #708871;
  --sage-200: #dce6dc;
  --sage-100: #edf3ed;
  --cream-100: #fbf8f1;
  --cream-200: #f4eee2;
  --gold-500: #d5b470;
  --gold-600: #bd9450;
  --ink: #25332e;
  --muted: #697770;
  --line: #e6e2d9;
  --white: #ffffff;
  --danger: #a43f3f;
  --shadow-sm: 0 12px 35px rgba(7, 29, 24, 0.08);
  --shadow-lg: 0 28px 80px rgba(7, 29, 24, 0.16);
  --radius-sm: 14px;
  --radius-md: 22px;
  --radius-lg: 34px;
  --sans: 'DM Sans', system-ui, sans-serif;
  --serif: 'Playfair Display', Georgia, serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; overflow-x: hidden; background: var(--white); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.72; }
body.modal-open, body.nav-open { overflow: hidden; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3 { color: var(--forest-900); font-family: var(--serif); font-weight: 500; line-height: 1.08; }
h1 { font-size: clamp(3.3rem, 6vw, 6.4rem); letter-spacing: -0.045em; }
h2 { font-size: clamp(2.5rem, 4.4vw, 4.4rem); letter-spacing: -0.04em; }
h3 { font-size: clamp(1.35rem, 2vw, 2rem); }
p { color: var(--muted); }
::selection { background: var(--gold-500); color: var(--forest-950); }

.container { width: min(1220px, calc(100% - 56px)); margin-inline: auto; }
.section { position: relative; padding: 112px 0; }
.lead { color: #405149; font-size: 1.13rem; line-height: 1.8; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; border-radius: 10px; background: var(--gold-500); color: var(--forest-950); font-weight: 700; padding: 12px 18px; transition: top .2s; }
.skip-link:focus { top: 16px; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; color: var(--gold-500); font-size: .75rem; font-weight: 700; letter-spacing: .2em; line-height: 1.3; text-transform: uppercase; }
.eyebrow.dark { color: var(--forest-700); }
.section-heading { max-width: 760px; margin-bottom: 50px; }
.section-heading.centered { margin-inline: auto; text-align: center; }
.section-heading.light h2, .section-heading.light p { color: var(--white); }
.section-heading > p { max-width: 650px; margin: 0 auto; font-size: 1.05rem; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: 13px; }
.btn { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 10px; border: 1px solid transparent; border-radius: 999px; padding: 13px 23px; font-size: .84rem; font-weight: 700; line-height: 1.2; transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease, box-shadow .25s ease; }
.btn:hover { transform: translateY(-2px); }
.btn i { font-size: .78rem; transition: transform .25s ease; }
.btn:hover i.fa-arrow-right { transform: translateX(4px); }
.btn-primary { background: var(--forest-800); color: var(--white); box-shadow: 0 12px 24px rgba(18, 63, 53, .18); }
.btn-primary:hover { background: var(--forest-950); }
.btn-gold { background: var(--gold-500); color: var(--forest-950); box-shadow: 0 12px 30px rgba(213, 180, 112, .2); }
.btn-gold:hover { background: #e4c88e; }
.btn-light { background: var(--white); color: var(--forest-900); }
.btn-light:hover { background: var(--gold-500); }
.btn-ghost { border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.06); color: var(--white); backdrop-filter: blur(7px); }
.btn-ghost:hover { border-color: var(--white); background: rgba(255,255,255,.14); }
.btn-outline { border-color: #cfd8d2; background: transparent; color: var(--forest-800); }
.btn-outline:hover { border-color: var(--forest-800); background: var(--sage-100); }
.text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--forest-800); font-size: .86rem; font-weight: 700; }
.text-link i { transition: transform .25s; }
.text-link:hover i { transform: translateX(5px); }

/* Header */
.topbar { position: relative; z-index: 102; background: var(--forest-950); color: #cfdbd6; font-size: .75rem; }
.topbar-inner { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.topbar-contact { display: flex; gap: 24px; }
.topbar a { display: inline-flex; align-items: center; gap: 8px; transition: color .2s; }
.topbar a:hover { color: var(--gold-500); }
.topbar i { color: var(--gold-500); font-size: .75rem; }
.topbar-location { min-width: 0; }
.topbar-location span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.site-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(255,255,255,.1); background: rgba(11,43,36,.97); color: var(--white); transition: box-shadow .3s, background .3s; }
.site-header.scrolled { background: rgba(7,29,24,.985); box-shadow: 0 12px 30px rgba(4,20,16,.18); }
.nav-shell { height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 36px; }
.site-brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; color: var(--white); }
.brand-logo { width: auto; height: 68px; object-fit: contain; }
.primary-nav { display: flex; align-items: center; gap: 26px; }
.primary-nav > a:not(.nav-cta) { position: relative; padding: 31px 0; color: #dce6e1; font-size: .78rem; font-weight: 600; }
.primary-nav > a:not(.nav-cta)::after { position: absolute; bottom: 21px; left: 50%; width: 0; height: 2px; content: ''; background: var(--gold-500); transform: translateX(-50%); transition: width .25s; }
.primary-nav > a:hover, .primary-nav > a.active { color: var(--white); }
.primary-nav > a:hover::after, .primary-nav > a.active::after { width: 18px; }
.nav-cta { display: inline-flex; align-items: center; gap: 12px; border-radius: 999px; background: var(--gold-500); color: var(--forest-950); padding: 12px 19px; font-size: .76rem; font-weight: 700; }
.nav-cta i { transition: transform .25s; }
.nav-cta:hover i { transform: translateX(4px); }
.menu-toggle { display: none; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; background: transparent; }
.menu-toggle span { display: block; width: 19px; height: 2px; margin: 4px auto; background: var(--white); transition: transform .25s, opacity .25s; }
.menu-toggle.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.menu-toggle.is-open span:nth-child(2) { opacity: 0; }
.menu-toggle.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.nav-scrim { position: fixed; inset: 0; z-index: 89; background: rgba(5,20,16,.58); backdrop-filter: blur(3px); }
.flash { position: relative; z-index: 90; display: flex; align-items: center; justify-content: center; gap: 24px; padding: 13px 24px; color: #174c31; background: #dff3e5; font-size: .85rem; }
.flash.error { color: #7f2d2d; background: #f9e1e1; }
.flash button { border: 0; background: transparent; color: inherit; }

/* Hero */
.hero-slider { position: relative; height: min(780px, calc(100vh - 110px)); min-height: 650px; overflow: hidden; background: var(--forest-950); color: var(--white); }
.hero-slide { position: absolute; inset: 0; display: grid; align-items: center; opacity: 0; pointer-events: none; transform: scale(1.025); transition: opacity .9s ease, transform 8s ease; }
.hero-slide::before { position: absolute; inset: 0; content: ''; background-image: linear-gradient(90deg, rgba(5,25,20,.93) 0%, rgba(5,25,20,.72) 48%, rgba(5,25,20,.2) 100%), var(--hero-image); background-position: center; background-size: cover; }
.hero-slide::after { position: absolute; inset: auto 0 0; height: 34%; content: ''; background: linear-gradient(0deg, rgba(5,25,20,.5), transparent); }
.hero-slide.is-active { z-index: 2; opacity: 1; pointer-events: auto; transform: scale(1); }
.hero-content { position: relative; z-index: 2; padding-bottom: 55px; }
.hero-content > * { max-width: 790px; }
.hero-kicker { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 22px; color: #ead59f; font-size: .75rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.hero-kicker i { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid rgba(213,180,112,.6); border-radius: 50%; }
.hero-content h1, .hero-content h2 { max-width: 800px; margin-bottom: 22px; color: var(--white); font-size: clamp(3.35rem, 6.5vw, 6.9rem); }
.hero-content p { max-width: 670px; margin-bottom: 32px; color: #e2ebe7; font-size: 1.08rem; line-height: 1.8; }
.hero-controls { position: absolute; right: 0; bottom: 34px; left: 0; z-index: 5; display: flex; align-items: center; gap: 12px; }
.hero-arrow, .carousel-buttons button { width: 43px; height: 43px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(255,255,255,.06); color: var(--white); transition: background .25s, border-color .25s; }
.hero-arrow:hover { border-color: var(--gold-500); background: var(--gold-500); color: var(--forest-950); }
.hero-dots { display: flex; gap: 8px; margin: 0 4px; }
.hero-dots button { width: 8px; height: 8px; border: 0; border-radius: 99px; background: rgba(255,255,255,.5); padding: 0; transition: width .3s, background .3s; }
.hero-dots button.active { width: 28px; background: var(--gold-500); }
.hero-progress { width: 90px; height: 2px; overflow: hidden; margin-left: 10px; background: rgba(255,255,255,.25); }
.hero-progress i { display: block; width: 100%; height: 100%; background: var(--gold-500); transform-origin: left; animation: heroProgress 8s linear; }
@keyframes heroProgress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.assurance-bar { position: relative; z-index: 8; margin-top: -1px; background: var(--cream-100); border-bottom: 1px solid var(--line); }
.assurance-grid { min-height: 112px; display: grid; grid-template-columns: repeat(4,1fr); }
.assurance-grid article { display: flex; align-items: center; gap: 16px; padding: 25px 27px; border-right: 1px solid var(--line); }
.assurance-grid article:first-child { border-left: 1px solid var(--line); }
.assurance-grid article > i { color: var(--gold-600); font-size: 1.4rem; }
.assurance-grid strong, .assurance-grid span { display: block; }
.assurance-grid strong { color: var(--forest-900); font-family: var(--serif); font-size: 1.08rem; font-weight: 600; }
.assurance-grid span { color: var(--muted); font-size: .75rem; }

/* Shared content */
.split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: clamp(55px,7vw,100px); }
.section-copy h2 { margin-bottom: 26px; }
.section-copy p { margin-bottom: 20px; }
.check-list { display: grid; gap: 13px; list-style: none; margin: 28px 0 32px; padding: 0; }
.check-list li { display: flex; align-items: flex-start; gap: 12px; color: #45554e; font-size: .91rem; }
.check-list i { width: 23px; height: 23px; display: grid; flex: 0 0 23px; place-items: center; border-radius: 50%; background: var(--sage-100); color: var(--forest-700); font-size: .75rem; }
.image-composition { position: relative; padding: 0 36px 36px 0; }
.image-main { width: 100%; height: 630px; border-radius: 4px 110px 4px 4px; object-fit: cover; box-shadow: var(--shadow-lg); }
.image-note { position: absolute; right: 0; bottom: 0; width: 245px; display: flex; align-items: center; gap: 14px; border-radius: 4px 24px 4px 4px; background: var(--forest-800); color: var(--white); padding: 22px; box-shadow: var(--shadow-sm); }
.image-note > i { color: var(--gold-500); font-size: 1.4rem; }
.image-note span, .image-note strong { display: block; }
.image-note strong { margin-bottom: 3px; font-family: var(--serif); font-size: 1.05rem; }
.image-note span { color: #d8e4df; font-size: .75rem; line-height: 1.5; }
.image-pattern { position: absolute; top: -23px; left: -23px; z-index: -1; width: 150px; height: 150px; opacity: .35; background-image: radial-gradient(var(--gold-600) 1.5px, transparent 1.5px); background-size: 12px 12px; }
.js .reveal { opacity: 0; transform: translateY(25px); transition: opacity .7s ease, transform .7s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }

/* Home services */
.services-section { overflow: hidden; background: var(--cream-100); }
.services-section::before { position: absolute; top: -190px; right: -170px; width: 430px; height: 430px; content: ''; border: 1px solid rgba(112,136,113,.2); border-radius: 50%; }
.service-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.service-card { position: relative; min-height: 375px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); padding: 33px 27px; transition: transform .3s, border-color .3s, box-shadow .3s; }
.service-card:hover { border-color: #cad8cc; transform: translateY(-8px); box-shadow: var(--shadow-sm); }
.service-card > i { width: 58px; height: 58px; display: grid; margin-bottom: 31px; place-items: center; border-radius: 18px 18px 18px 5px; background: var(--sage-100); color: var(--forest-700); font-size: 1.35rem; }
.service-card h3 { margin-bottom: 14px; font-size: 1.55rem; }
.service-card p { font-size: .84rem; }
.service-card > a { position: absolute; bottom: 27px; display: inline-flex; align-items: center; gap: 9px; color: var(--forest-700); font-size: .75rem; font-weight: 700; }
.service-number { position: absolute; top: 24px; right: 26px; color: #ccd6ce; font-family: var(--serif); font-size: 1.08rem; }

.home-life-section { overflow: hidden; background: var(--forest-900); }
.home-life-section::before { position: absolute; inset: 0; content: ''; opacity: .06; background-image: radial-gradient(var(--white) 1px, transparent 1px); background-size: 18px 18px; }
.home-life-grid { position: relative; display: grid; grid-template-columns: .82fr 1.18fr; align-items: center; gap: 72px; }
.home-life-copy h2, .home-life-copy p { color: var(--white); }
.home-life-copy p { color: #c9d8d2; }
.mini-features { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 30px 0; }
.mini-features span { display: flex; align-items: center; gap: 10px; color: #e3ebe7; font-size: .78rem; }
.mini-features i { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.08); color: var(--gold-500); }
.home-life-gallery { display: grid; grid-template-columns: 1.12fr .88fr; grid-template-rows: 1fr 1fr; gap: 14px; }
.home-life-gallery img { width: 100%; height: 275px; object-fit: cover; }
.home-life-gallery img:first-child { height: 564px; grid-row: 1 / 3; border-radius: 90px 6px 6px 6px; }
.home-life-gallery img:nth-child(2) { border-radius: 6px 70px 6px 6px; }

.journey-section { background: var(--white); }
.journey-grid { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 35px; }
.journey-grid::before { position: absolute; top: 29px; right: 9%; left: 9%; height: 1px; content: ''; background: #dfe6e1; }
.journey-grid article { position: relative; text-align: center; }
.journey-grid article > span { position: relative; z-index: 2; width: 59px; height: 59px; display: grid; margin: 0 auto 24px; place-items: center; border: 8px solid var(--white); border-radius: 50%; background: var(--forest-800); color: var(--white); font-family: var(--serif); }
.journey-grid h3 { margin-bottom: 12px; font-size: 1.45rem; }
.journey-grid p { font-size: .79rem; }

.testimonials-section { background: var(--cream-100); }
.testimonial-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 42px; }
.testimonial-heading h2 { margin: 0; }
.testimonial-actions { display: flex; align-items: center; gap: 22px; }
.carousel-buttons { display: flex; gap: 9px; }
.carousel-buttons button { border-color: #d7ded9; background: var(--white); color: var(--forest-800); }
.carousel-buttons button:hover { background: var(--forest-800); color: var(--white); }
.review-track { display: grid; grid-auto-columns: minmax(340px, 1fr); grid-auto-flow: column; gap: 20px; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; scroll-snap-type: x mandatory; }
.review-track::-webkit-scrollbar { display: none; }
.review-card, .review-page-card { position: relative; scroll-snap-align: start; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); padding: 34px; }
.quote-mark { position: absolute; top: 25px; right: 28px; color: var(--sage-200); font-size: 2.3rem; }
.stars { color: var(--gold-600); font-size: .92rem; letter-spacing: .12em; }
.stars span { color: #e4e7e4; }
.review-card blockquote, .review-page-card blockquote { margin: 22px 0 30px; color: #405048; font-family: var(--serif); font-size: 1.26rem; line-height: 1.65; }
.reviewer { display: flex; align-items: center; gap: 12px; }
.reviewer > span { width: 43px; height: 43px; display: grid; flex: 0 0 43px; place-items: center; border-radius: 50%; background: var(--forest-800); color: var(--white); font-family: var(--serif); }
.reviewer strong, .reviewer small { display: block; }
.reviewer strong { color: var(--forest-900); font-size: .83rem; }
.reviewer small { color: var(--muted); font-size: .75rem; }
.review-empty { min-height: 280px; }
.review-empty > i { color: var(--gold-600); font-size: 1.6rem; }
.review-share-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 30px; border-top: 1px solid var(--line); padding-top: 27px; }
.review-share-cta p { margin: 0; }

.visit-cta { position: relative; min-height: 610px; display: grid; align-items: center; overflow: hidden; background: var(--forest-950); }
.visit-cta-media { position: absolute; inset: 0; opacity: .5; background: linear-gradient(90deg, rgba(5,25,20,.98), rgba(5,25,20,.78) 55%, rgba(5,25,20,.2)), url('/media/gallery/g7.jpeg') center/cover; }
.visit-cta-content { position: relative; max-width: 1220px; }
.visit-cta-content h2 { max-width: 760px; color: var(--white); }
.visit-cta-content p { max-width: 630px; color: #d6e2dd; font-size: 1.04rem; }

/* Page heroes */
.page-hero { position: relative; min-height: 525px; display: grid; align-items: center; overflow: hidden; background-position: center; background-size: cover; color: var(--white); }
.page-hero::before { position: absolute; inset: 0; content: ''; background: linear-gradient(90deg, rgba(5,27,21,.93), rgba(5,27,21,.6) 62%, rgba(5,27,21,.25)); }
.page-hero-content { position: relative; z-index: 2; padding: 70px 0; }
.page-hero h1 { max-width: 820px; margin-bottom: 22px; color: var(--white); }
.page-hero p { max-width: 680px; margin-bottom: 32px; color: #dce8e3; font-size: 1.04rem; }
.breadcrumbs { display: flex; align-items: center; gap: 10px; color: #cbd8d3; font-size: .75rem; }
.breadcrumbs a:hover { color: var(--gold-500); }
.breadcrumbs i { color: var(--gold-500); font-size: .75rem; }
.about-hero { background-image: url('/media/gallery/g7.jpeg'); }
.care-hero { background-image: url('/media/gallery/g11.jpeg'); background-position: center 35%; }
.living-hero { background-image: url('/media/gallery/g10.jpeg'); }
.gallery-hero { background-image: url('/media/gallery/g1.jpeg'); }
.video-hero { background-image: url('/media/gallery/g8.jpeg'); }
.reviews-hero { background-image: url('/media/gallery/g5.jpeg'); }
.contact-hero { background-image: url('/media/gallery/g6.jpeg'); }
.application-hero { background-image: url('/media/gallery/g11.jpeg'); background-position: center 36%; }

/* About */
.about-image .image-main { border-radius: 100px 5px 5px; }
.purpose-band { padding: 90px 0; background: var(--forest-900); }
.purpose-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 90px; }
.purpose-grid h2 { color: var(--white); }
.purpose-grid p { color: #c7d8d0; }
.dimension-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dimension-grid span { display: flex; align-items: center; gap: 12px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px; color: var(--white); padding: 13px 16px; font-size: .8rem; }
.dimension-grid i { color: var(--gold-500); }
.values-section { background: var(--cream-100); }
.value-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.value-card { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); padding: 32px 26px; }
.value-card > span { width: 50px; height: 50px; display: grid; margin-bottom: 25px; place-items: center; border-radius: 50% 50% 50% 12px; background: var(--sage-100); color: var(--forest-700); }
.value-card h3 { margin-bottom: 11px; font-size: 1.45rem; }
.value-card p { margin: 0; font-size: .8rem; }
.team-image { position: relative; }
.team-image img { width: 100%; height: 560px; border-radius: 5px 100px 5px 5px; object-fit: cover; box-shadow: var(--shadow-lg); }

/* Care */
.care-intro { background: var(--cream-100); }
.care-card-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.care-card { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); padding: 32px; transition: transform .3s, box-shadow .3s; }
.care-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-sm); }
.care-card > span { width: 54px; height: 54px; display: grid; margin-bottom: 25px; place-items: center; border-radius: 16px 16px 16px 5px; background: var(--forest-800); color: var(--gold-500); }
.care-card h3 { margin-bottom: 12px; font-size: 1.45rem; }
.care-card p { margin: 0; font-size: .8rem; }
.care-detail-image { position: relative; }
.care-detail-image img { width: 100%; height: 620px; border-radius: 100px 5px 5px; object-fit: cover; }
.floating-badge { position: absolute; right: -24px; bottom: 35px; display: flex; align-items: center; gap: 10px; border-radius: 999px; background: var(--gold-500); color: var(--forest-950); padding: 14px 19px; font-size: .75rem; font-weight: 700; box-shadow: var(--shadow-sm); }
.detail-list { display: grid; gap: 9px; }
.detail-list article { display: grid; grid-template-columns: 44px 1fr; gap: 17px; border-top: 1px solid var(--line); padding: 20px 0 10px; }
.detail-list article > i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--sage-100); color: var(--forest-700); }
.detail-list h3 { margin-bottom: 7px; font-size: 1.2rem; }
.detail-list p { margin: 0; font-size: .78rem; }
.amenities-section { padding: 105px 0; background: var(--forest-900); }
.amenities-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 90px; }
.amenities-title h2, .amenities-title p { color: var(--white); }
.amenities-title p { color: #c9d8d2; }
.amenity-list { display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 0 28px; }
.amenity-list span { display: flex; align-items: center; gap: 13px; border-bottom: 1px solid rgba(255,255,255,.12); color: #e7efeb; padding: 18px 0; font-size: .8rem; }
.amenity-list i { color: var(--gold-500); }
.faq-layout { display: grid; grid-template-columns: .75fr 1.25fr; align-items: start; gap: 90px; }
.accordion { border-top: 1px solid var(--line); }
.accordion-item { border-bottom: 1px solid var(--line); }
.accordion-item > button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 0; background: transparent; color: var(--forest-900); padding: 23px 0; text-align: left; font-family: var(--serif); font-size: 1.2rem; }
.accordion-item > button i { width: 31px; height: 31px; display: grid; flex: 0 0 31px; place-items: center; border-radius: 50%; background: var(--sage-100); color: var(--forest-700); font-size: .75rem; transition: transform .25s; }
.accordion-item > button[aria-expanded=true] i { transform: rotate(45deg); }
.accordion-panel { padding: 0 52px 20px 0; }
.accordion-panel p { font-size: .82rem; }

/* Living */
.living-collage { position: relative; min-height: 635px; padding-right: 70px; }
.living-large { width: 100%; height: 600px; border-radius: 100px 5px 5px; object-fit: cover; }
.living-small { position: absolute; right: 0; bottom: 0; width: 245px; height: 220px; border: 9px solid var(--white); border-radius: 6px 45px 6px 6px; object-fit: cover; box-shadow: var(--shadow-sm); }
.living-caption { position: absolute; left: 24px; bottom: 22px; display: inline-flex; align-items: center; gap: 10px; border-radius: 999px; background: rgba(7,29,24,.88); color: var(--white); padding: 11px 16px; font-size: .75rem; backdrop-filter: blur(7px); }
.living-caption i { color: var(--gold-500); }
.spaces-showcase { padding: 110px 0; background: var(--forest-900); }
.space-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 16px; }
.space-card { position: relative; min-height: 460px; overflow: hidden; border-radius: var(--radius-md); }
.space-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.space-card:hover img { transform: scale(1.045); }
.space-card::after { position: absolute; inset: 40% 0 0; content: ''; background: linear-gradient(transparent, rgba(5,24,19,.9)); }
.space-card > div { position: absolute; right: 24px; bottom: 22px; left: 24px; z-index: 2; }
.space-card span { color: var(--white); font-family: var(--serif); font-size: 1.45rem; }
.space-card p { margin: 5px 0 0; color: #d4e0db; font-size: .75rem; }
.center-action { margin-top: 36px; text-align: center; }
.daily-rhythm { background: var(--cream-100); }
.rhythm-track { position: relative; display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
.rhythm-track::before { position: absolute; top: 61px; right: 10%; left: 10%; height: 1px; content: ''; background: #ccd8cf; }
.rhythm-track article { position: relative; text-align: center; }
.rhythm-track time { display: block; margin-bottom: 12px; color: var(--forest-700); font-size: .75rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.rhythm-track article > span { position: relative; z-index: 2; width: 66px; height: 66px; display: grid; margin: 0 auto 23px; place-items: center; border: 7px solid var(--cream-100); border-radius: 50%; background: var(--forest-800); color: var(--gold-500); }
.rhythm-track h3 { margin-bottom: 11px; font-size: 1.35rem; }
.rhythm-track p { font-size: .76rem; }
.feature-banner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 60px; border-radius: var(--radius-lg); background: var(--forest-800); padding: 55px 60px; }
.feature-banner h2 { margin: 0; color: var(--white); font-size: clamp(2.2rem,3.5vw,3.6rem); }

/* Gallery and videos */
.gallery-section { background: var(--cream-100); }
.gallery-intro { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 45px; }
.gallery-intro h2 { margin: 0; }
.gallery-tip, .gallery-switch { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--white); color: var(--muted); padding: 11px 16px; font-size: .75rem; }
.gallery-tip i, .gallery-switch i { color: var(--forest-700); }
.gallery-grid { display: grid; grid-template-columns: repeat(3,1fr); grid-auto-rows: 330px; gap: 16px; }
.gallery-archive-break { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin: 72px 0 28px; border-top: 1px solid var(--line); padding-top: 35px; }
.gallery-archive-break .eyebrow { margin: 0; }
.gallery-archive-break h3 { margin: 0; font-size: clamp(1.65rem,2.5vw,2.35rem); }
.gallery-archive-break p { max-width: 440px; margin: 0; font-size: .82rem; }
.gallery-item { min-width: 0; overflow: hidden; border: 0; border-radius: var(--radius-sm); background: #e8ece8; padding: 0; text-align: left; }
.gallery-item.gallery-featured { grid-row: span 2; }
.gallery-item { position: relative; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s, filter .55s; }
.gallery-item:hover img, .gallery-item:focus-visible img { filter: brightness(.76); transform: scale(1.045); }
.gallery-caption { position: absolute; inset: auto 0 0; display: flex; align-items: end; justify-content: space-between; gap: 20px; opacity: 0; background: linear-gradient(transparent, rgba(6,29,23,.9)); color: var(--white); padding: 70px 22px 21px; transform: translateY(10px); transition: opacity .35s, transform .35s; }
.gallery-item:hover .gallery-caption, .gallery-item:focus-visible .gallery-caption { opacity: 1; transform: none; }
.gallery-caption span, .gallery-caption strong, .gallery-caption small { display: block; }
.gallery-caption strong { font-family: var(--serif); font-size: 1.1rem; font-weight: 500; }
.gallery-caption small { color: #d5dfdb; font-size: .75rem; }
.gallery-caption > i { width: 37px; height: 37px; display: grid; flex: 0 0 37px; place-items: center; border-radius: 50%; background: var(--gold-500); color: var(--forest-950); }
.gallery-video-link { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 50px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 24px 0; }
.gallery-video-link > span { display: flex; align-items: center; gap: 16px; }
.gallery-video-link > span > i { color: var(--gold-600); font-size: 1.8rem; }
.gallery-video-link strong, .gallery-video-link span span { display: block; }
.gallery-video-link strong { color: var(--forest-900); font-family: var(--serif); }
.gallery-video-link span span { color: var(--muted); font-size: .75rem; }
.lightbox { position: fixed; inset: 0; z-index: 600; display: none; }
.lightbox.is-open { display: grid; place-items: center; }
.lightbox-backdrop { position: absolute; inset: 0; background: rgba(3,14,11,.94); backdrop-filter: blur(8px); }
.lightbox-dialog { position: relative; width: min(1180px, calc(100% - 40px)); max-height: calc(100vh - 32px); display: grid; grid-template-rows: auto minmax(0,1fr) auto; color: var(--white); }
.lightbox-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; }
.lightbox-header span { color: #becbc5; font-size: .75rem; letter-spacing: .12em; }
.lightbox-header button { width: 43px; height: 43px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: transparent; color: var(--white); }
.lightbox-stage { position: relative; min-height: 0; display: grid; place-items: center; }
.lightbox-stage img { max-width: 100%; max-height: calc(100vh - 190px); border-radius: 5px; object-fit: contain; }
.lightbox-nav { position: absolute; top: 50%; z-index: 3; width: 49px; height: 49px; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: rgba(7,29,24,.55); color: var(--white); transform: translateY(-50%); }
.lightbox-nav:hover { background: var(--gold-500); color: var(--forest-950); }
.lightbox-nav.prev { left: 14px; }
.lightbox-nav.next { right: 14px; }
.lightbox-footer { padding: 15px 0 4px; text-align: center; }
.lightbox-footer h2 { margin-bottom: 4px; color: var(--white); font-size: 1.35rem; }
.lightbox-footer p { margin: 0; color: #bdcbc5; font-size: .75rem; }
.video-section { background: var(--cream-100); }
.video-grid { display: grid; gap: 42px; }
.video-card { display: grid; grid-template-columns: 1.35fr .65fr; align-items: center; gap: 55px; border-bottom: 1px solid var(--line); padding-bottom: 42px; }
.video-card:nth-child(even) .video-frame { order: 2; }
.video-frame { position: relative; overflow: hidden; border-radius: var(--radius-md); background: var(--forest-950); box-shadow: var(--shadow-sm); }
.video-frame video { width: 100%; display: block; aspect-ratio: 16/9; background: #061712; }
.video-number { position: absolute; top: 15px; left: 15px; border-radius: 999px; background: rgba(7,29,24,.8); color: var(--white); padding: 5px 10px; font-size: .75rem; }
.video-copy h2 { margin-bottom: 14px; font-size: clamp(2rem,3.2vw,3.15rem); }
.video-error { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; background: var(--forest-950); color: var(--white); }
.video-error i { color: var(--gold-500); font-size: 1.7rem; }
.video-error p { margin: 8px 0 0; color: #d5e1dc; }
.empty-state { border: 1px dashed #cbd6cf; border-radius: var(--radius-md); background: var(--white); padding: 70px 30px; text-align: center; }
.empty-state > i { color: var(--gold-600); font-size: 2.4rem; }
.empty-state h2 { margin: 18px 0 12px; }
.empty-state p { max-width: 520px; margin: 0 auto 24px; }
.empty-state .actions { justify-content: center; }

/* Reviews */
.review-summary { border-bottom: 1px solid var(--line); background: var(--cream-100); padding: 34px 0; }
.summary-grid { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 35px; }
.summary-grid > div { display: flex; align-items: center; gap: 16px; }
.summary-grid > div > strong { color: var(--forest-900); font-family: var(--serif); font-size: 3.2rem; font-weight: 500; line-height: 1; }
.summary-grid small { display: block; color: var(--muted); font-size: .75rem; }
.summary-grid p { max-width: 560px; margin: 0; font-size: .8rem; }
.reviews-list-section { background: var(--white); }
.reviews-masonry { columns: 3 320px; column-gap: 20px; }
.review-page-card { display: inline-block; width: 100%; margin-bottom: 20px; break-inside: avoid; }
.review-page-card > i { float: right; color: var(--sage-200); font-size: 2rem; }
.review-form-section { overflow: hidden; background: var(--forest-900); }
.review-form-layout { display: grid; grid-template-columns: .78fr 1.22fr; align-items: start; gap: 80px; }
.review-form-copy h2, .review-form-copy p { color: var(--white); }
.review-form-copy p { color: #cbd9d3; }
.review-form-copy ul { display: grid; gap: 12px; list-style: none; padding: 0; color: #e3ebe7; font-size: .8rem; }
.review-form-copy li { display: flex; align-items: center; gap: 11px; }
.review-form-copy li i { color: var(--gold-500); }

/* Forms */
.public-form { display: grid; gap: 19px; border-radius: var(--radius-md); background: var(--white); padding: clamp(28px,4vw,46px); box-shadow: var(--shadow-lg); }
.form-heading { display: flex; align-items: center; gap: 15px; border-bottom: 1px solid var(--line); padding-bottom: 22px; }
.form-heading > span { width: 50px; height: 50px; display: grid; flex: 0 0 50px; place-items: center; border-radius: 16px 16px 16px 5px; background: var(--sage-100); color: var(--forest-700); }
.form-heading h3 { margin: 0 0 4px; font-size: 1.45rem; }
.form-heading p { margin: 0; font-size: .75rem; }
.public-form label { display: grid; gap: 7px; color: #415149; font-size: .76rem; font-weight: 600; }
.public-form input, .public-form select, .public-form textarea, .chat-welcome input, .chat-compose textarea { width: 100%; border: 1px solid #d8ded9; border-radius: 11px; outline: none; background: #fff; color: var(--ink); padding: 13px 14px; transition: border-color .2s, box-shadow .2s; }
.public-form input:focus, .public-form select:focus, .public-form textarea:focus, .chat-welcome input:focus, .chat-compose textarea:focus { border-color: var(--forest-700); box-shadow: 0 0 0 4px rgba(28,86,72,.09); }
.public-form textarea { min-height: 140px; resize: vertical; }
.public-form label > small { color: #929d98; font-size: .75rem; font-weight: 400; text-align: right; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.rating-field { margin: 0; border: 0; padding: 0; }
.rating-field legend { margin-bottom: 6px; color: #415149; font-size: .76rem; font-weight: 600; }
.star-picker { width: max-content; display: flex; flex-direction: row-reverse; gap: 4px; }
.star-picker input { position: absolute; opacity: 0; pointer-events: none; }
.star-picker label { color: #dfe3df; cursor: pointer; font-size: 2.1rem; line-height: 1; transition: color .2s, transform .2s; }
.star-picker label:hover, .star-picker label:hover ~ label, .star-picker input:checked ~ label { color: var(--gold-600); }
.star-picker label:hover { transform: scale(1.1); }
.submit-btn { width: max-content; min-width: 180px; border: 0; }
.submit-btn.loading { opacity: .75; pointer-events: none; }
.form-privacy { display: flex; align-items: center; gap: 8px; margin: 0; color: #87938d; font-size: .75rem; }

/* Contact */
.contact-cards { position: relative; z-index: 4; margin-top: -46px; }
.contact-card-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.contact-card { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 15px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--white); padding: 23px; box-shadow: var(--shadow-sm); transition: transform .25s, box-shadow .25s; }
.contact-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.contact-card > span { width: 47px; height: 47px; display: grid; place-items: center; border-radius: 50%; background: var(--sage-100); color: var(--forest-700); }
.contact-card small, .contact-card strong, .contact-card em { display: block; }
.contact-card small { color: var(--muted); font-size: .75rem; }
.contact-card strong { overflow-wrap: anywhere; color: var(--forest-900); font-family: var(--serif); font-size: .95rem; line-height: 1.35; }
.contact-card em { color: #8b9791; font-size: .75rem; font-style: normal; }
.contact-card > i { color: var(--gold-600); font-size: .75rem; }
.contact-layout { display: grid; grid-template-columns: .78fr 1.22fr; align-items: start; gap: 80px; }
.contact-expect { display: grid; gap: 22px; margin-top: 35px; }
.contact-expect article { display: grid; grid-template-columns: 40px 1fr; gap: 14px; }
.contact-expect article > span { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #d6dfd8; border-radius: 50%; color: var(--forest-700); font-family: var(--serif); }
.contact-expect h3 { margin-bottom: 4px; font-size: 1.12rem; }
.contact-expect p { margin: 0; font-size: .75rem; }
.map-section { position: relative; min-height: 550px; }
.map-section iframe { width: 100%; height: 550px; display: block; border: 0; filter: saturate(.7); }
.map-card { position: absolute; top: 50%; left: max(28px, calc((100% - 1220px) / 2)); width: min(410px, calc(100% - 56px)); border-radius: var(--radius-md); background: var(--white); padding: 34px; box-shadow: var(--shadow-lg); transform: translateY(-50%); }
.map-card h2 { font-size: 2.2rem; }

/* Errors */
.error-page { min-height: 650px; display: grid; place-items: center; background: var(--cream-100); }
.error-page > section { width: 100%; padding: 100px 0; }
.error-layout { display: grid; grid-template-columns: .7fr 1.3fr; align-items: center; gap: 80px; }
.error-code { position: relative; color: var(--forest-800); font-family: var(--serif); font-size: clamp(7rem,15vw,13rem); line-height: 1; letter-spacing: -.08em; }
.error-code > span { position: absolute; right: 9%; bottom: 2%; width: 65px; height: 65px; display: grid; place-items: center; border-radius: 50% 50% 50% 15px; background: var(--gold-500); color: var(--forest-950); font-size: 1.5rem; }
.error-layout h1 { font-size: clamp(2.7rem,5vw,4.6rem); }
.error-detail { margin-top: 28px; color: var(--muted); font-size: .75rem; }
.error-detail pre { max-width: 650px; overflow: auto; border-radius: 12px; background: #eee9df; padding: 15px; white-space: pre-wrap; }

/* Footer */
.prefooter { background: var(--gold-500); padding: 58px 0; }
.prefooter-inner { display: flex; align-items: center; justify-content: space-between; gap: 50px; }
.prefooter .eyebrow { color: var(--forest-800); }
.prefooter h2 { max-width: 730px; margin: 0; color: var(--forest-950); font-size: clamp(2.2rem,4vw,3.75rem); }
.site-footer { background: var(--forest-950); color: #c7d2cd; padding: 78px 0 0; }
.footer-grid { display: grid; grid-template-columns: 1.45fr .75fr 1.15fr 1fr; gap: 55px; }
.footer-logo { height: 82px; }
.footer-about p { max-width: 340px; margin: 24px 0; color: #aebdb6; font-size: .78rem; }
.footer-promise { display: inline-flex; align-items: center; gap: 8px; color: var(--gold-500); font-size: .75rem; font-weight: 700; }
.site-footer h3 { margin-bottom: 23px; color: var(--white); font-family: var(--sans); font-size: .75rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.site-footer p { color: #aebdb6; font-size: .76rem; }
.footer-links, .footer-contact { display: grid; gap: 11px; list-style: none; margin: 0; padding: 0; }
.footer-links a { color: #b7c5bf; font-size: .76rem; transition: color .2s, padding-left .2s; }
.footer-links a:hover { color: var(--gold-500); padding-left: 4px; }
.footer-contact li { display: grid; grid-template-columns: 18px 1fr; gap: 9px; color: #b7c5bf; font-size: .75rem; }
.footer-contact i { margin-top: 5px; color: var(--gold-500); font-size: .75rem; }
.footer-link-arrow { display: inline-flex; align-items: center; gap: 8px; color: var(--gold-500); font-size: .75rem; font-weight: 700; }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; margin-top: 60px; border-top: 1px solid rgba(255,255,255,.1); color: #81928a; padding: 22px 0; font-size: .75rem; }
.scroll-top { position: fixed; right: 24px; bottom: 105px; z-index: 80; width: 45px; height: 45px; border: 0; border-radius: 50%; opacity: 0; pointer-events: none; background: var(--gold-500); color: var(--forest-950); box-shadow: var(--shadow-sm); transform: translateY(10px); transition: opacity .25s, transform .25s; }
.scroll-top.visible { opacity: 1; pointer-events: auto; transform: none; }

/* Live chat */
.live-chat { position: fixed; right: 24px; bottom: 23px; z-index: 300; }
.chat-launcher { position: relative; display: flex; align-items: center; gap: 11px; border: 1px solid rgba(255,255,255,.15); border-radius: 999px; background: var(--forest-800); color: var(--white); padding: 10px 17px 10px 10px; box-shadow: 0 18px 48px rgba(7,29,24,.32); }
.chat-launcher-icon { position: relative; width: 41px; height: 41px; display: grid; flex: 0 0 41px; place-items: center; border-radius: 50%; background: var(--gold-500); color: var(--forest-950); }
.status-pulse { position: absolute; top: 0; right: 0; width: 10px; height: 10px; border: 2px solid var(--forest-800); border-radius: 50%; background: #68cb83; }
.chat-launcher > span:nth-child(2) { display: grid; text-align: left; line-height: 1.25; }
.chat-launcher strong { font-size: .76rem; }
.chat-launcher small { color: #bfcec8; font-size: .75rem; }
.chat-launcher > b { position: absolute; top: -7px; right: -5px; min-width: 22px; height: 22px; display: grid; place-items: center; border: 2px solid var(--white); border-radius: 999px; background: #b94343; color: var(--white); padding: 0 5px; font-size: .75rem; }
.chat-panel { position: absolute; right: 0; bottom: 70px; width: min(395px, calc(100vw - 28px)); height: min(625px, calc(100vh - 116px)); display: none; grid-template-rows: auto minmax(0,1fr); overflow: hidden; border: 1px solid rgba(7,29,24,.12); border-radius: 24px; background: var(--white); box-shadow: 0 30px 90px rgba(5,25,20,.3); transform-origin: bottom right; }
.chat-panel.open { display: grid; animation: chatOpen .28s ease both; }
@keyframes chatOpen { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
.chat-header { display: grid; grid-template-columns: 42px 1fr 35px; align-items: center; gap: 11px; background: linear-gradient(135deg,var(--forest-900),var(--forest-700)); color: var(--white); padding: 15px 16px; }
.chat-avatar { width: 41px; height: 41px; display: grid; place-items: center; border-radius: 50% 50% 50% 11px; background: var(--gold-500); color: var(--forest-950); }
.chat-header strong { display: block; font-family: var(--serif); font-size: 1rem; font-weight: 500; }
.chat-header small { display: flex; align-items: center; gap: 7px; margin-top: 2px; color: #cddbd5; font-size: .75rem; }
.chat-header small > i { width: 7px; height: 7px; border-radius: 50%; background: #9baaa3; }
.chat-header small > i.online { background: #71d08a; box-shadow: 0 0 0 3px rgba(113,208,138,.15); }
.chat-header button { width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(255,255,255,.08); color: var(--white); }
.chat-welcome, .chat-conversation { min-height: 0; }
.chat-welcome { overflow-y: auto; padding: 24px; }
.chat-kicker { color: var(--forest-700); font-size: .75rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.chat-welcome h3 { margin: 8px 0 8px; font-size: 1.8rem; }
.chat-welcome > p { margin-bottom: 19px; font-size: .78rem; line-height: 1.6; }
.chat-welcome form { display: grid; gap: 11px; }
.chat-welcome label { display: grid; gap: 5px; color: #45554e; font-size: .75rem; font-weight: 600; }
.chat-welcome label em { color: #8c9792; font-size: .75rem; font-style: normal; font-weight: 400; }
.chat-welcome input { padding: 11px 12px; font-size: .75rem; }
.chat-start { width: 100%; min-height: 46px; margin-top: 2px; border: 0; }
.chat-privacy { display: flex; align-items: flex-start; gap: 7px; margin-top: 13px; color: #8b9791; font-size: .75rem; line-height: 1.5; }
.chat-conversation { display: grid; grid-template-rows: minmax(0,1fr) auto auto; overflow: hidden; }
.chat-messages { overflow-y: auto; background: #f5f6f3; padding: 18px; scroll-behavior: smooth; }
.chat-message { display: flex; flex-direction: column; align-items: flex-start; margin-bottom: 13px; }
.chat-message.visitor { align-items: flex-end; }
.chat-message > div { max-width: 84%; border: 1px solid #e3e7e3; border-radius: 15px 15px 15px 5px; background: var(--white); color: #34423c; padding: 10px 12px; font-size: .77rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-message.visitor > div { border: 0; border-radius: 15px 15px 5px 15px; background: var(--forest-800); color: var(--white); }
.chat-message small { margin-top: 4px; color: #89958f; font-size: .75rem; }
.chat-typing { display: flex; align-items: center; gap: 3px; background: #f5f6f3; color: #77837d; padding: 6px 16px; font-size: .75rem; }
.chat-typing span { width: 4px; height: 4px; border-radius: 50%; background: var(--sage-600); animation: typingDot 1s infinite alternate; }
.chat-typing span:nth-child(2) { animation-delay: .2s; }
.chat-typing span:nth-child(3) { margin-right: 3px; animation-delay: .4s; }
@keyframes typingDot { to { transform: translateY(-3px); opacity: .5; } }
.chat-compose { display: grid; grid-template-columns: minmax(0,1fr) 43px; align-items: end; gap: 8px; border-top: 1px solid #e8ebe8; background: var(--white); padding: 11px; }
.chat-compose textarea { min-height: 42px; max-height: 100px; resize: none; padding: 10px 12px; font-size: .75rem; }
.chat-compose button { width: 43px; height: 43px; border: 0; border-radius: 50%; background: var(--forest-800); color: var(--white); }

/* Careers and employment application */
.career-welcome { background: var(--white); }
.career-welcome-grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(60px, 8vw, 115px); }
.career-copy h2 { max-width: 710px; }
.career-copy .lead { max-width: 690px; }
.career-benefits { display: grid; gap: 18px; margin-top: 35px; }
.career-benefits article { display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: start; }
.career-benefits article > i { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 15px 15px 15px 4px; background: var(--sage-100); color: var(--forest-700); }
.career-benefits h3 { margin: 0 0 4px; font-family: var(--sans); font-size: .91rem; font-weight: 700; }
.career-benefits p { margin: 0; font-size: .75rem; }
.career-photo { position: relative; padding: 0 0 34px 34px; }
.career-photo::before { position: absolute; inset: 34px 34px 0 0; z-index: -1; content: ''; border-radius: 95px 5px 5px; background: var(--cream-200); }
.career-photo img { width: 100%; height: 610px; border-radius: 95px 5px 5px; object-fit: cover; box-shadow: var(--shadow-lg); }
.career-photo > span { position: absolute; right: 0; bottom: 0; display: inline-flex; align-items: center; gap: 11px; border-radius: 18px 4px 4px; background: var(--forest-800); color: var(--white); padding: 17px 21px; font-family: var(--serif); font-size: .92rem; box-shadow: var(--shadow-sm); }
.career-photo > span i { color: var(--gold-500); }

.application-section { position: relative; overflow: hidden; background: var(--cream-100); padding: 105px 0 120px; }
.application-section::before { position: absolute; top: -280px; right: -250px; width: 620px; height: 620px; content: ''; border: 1px solid rgba(112,136,113,.2); border-radius: 50%; }
.application-layout { position: relative; display: grid; grid-template-columns: 320px minmax(0,1fr); align-items: start; gap: 30px; }
.application-aside { position: sticky; top: 120px; overflow: hidden; border-radius: var(--radius-md); background: linear-gradient(145deg,var(--forest-900),var(--forest-700)); color: var(--white); padding: 34px; box-shadow: var(--shadow-lg); }
.application-aside::after { position: absolute; right: -70px; bottom: -70px; width: 190px; height: 190px; content: ''; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; }
.application-aside h2 { margin-bottom: 18px; color: var(--white); font-size: 2.35rem; }
.application-aside > p { color: #cbd9d3; font-size: .78rem; }
.application-aside ul { display: grid; gap: 14px; list-style: none; margin: 28px 0 32px; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); padding: 25px 0; }
.application-aside li { display: grid; grid-template-columns: 21px 1fr; gap: 10px; color: #dce6e1; font-size: .75rem; line-height: 1.55; }
.application-aside li i { margin-top: 4px; color: var(--gold-500); }
.application-help { position: relative; z-index: 2; display: flex; align-items: center; gap: 13px; }
.application-help > i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.1); color: var(--gold-500); }
.application-help small, .application-help a { display: block; }
.application-help small { color: #aebfb7; font-size: .75rem; }
.application-help a { color: var(--white); font-family: var(--serif); font-size: 1rem; }

.application-panel { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--white); padding: clamp(25px, 4vw, 48px); box-shadow: var(--shadow-lg); }
.application-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 25px; margin-bottom: 28px; }
.application-heading h2 { margin: 0; font-size: clamp(2rem,3.3vw,3.2rem); }
.application-heading .eyebrow { margin-bottom: 9px; }
.application-secure { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; border-radius: 999px; background: var(--sage-100); color: var(--forest-700); padding: 9px 12px; font-size: .75rem; font-weight: 700; }
.application-progress { display: grid; grid-template-columns: repeat(7,1fr); margin-bottom: 40px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 20px 0; }
.application-progress button { position: relative; display: grid; justify-items: center; gap: 6px; border: 0; background: transparent; color: #97a19c; padding: 0 4px; }
.application-progress button::after { position: absolute; top: 15px; left: calc(50% + 18px); width: calc(100% - 36px); height: 1px; content: ''; background: #dde2de; }
.application-progress button:last-child::after { display: none; }
.application-progress button > span { position: relative; z-index: 2; width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid #d8ded9; border-radius: 50%; background: var(--white); font-size: .75rem; font-weight: 700; }
.application-progress button small { font-size: .75rem; font-weight: 700; }
.application-progress button.active, .application-progress button.complete { color: var(--forest-700); }
.application-progress button.active > span { border-color: var(--forest-700); background: var(--forest-700); color: var(--white); box-shadow: 0 0 0 5px rgba(28,86,72,.09); }
.application-progress button.complete > span { border-color: var(--gold-500); background: var(--gold-500); color: var(--forest-950); }

.application-form.public-form { display: block; border-radius: 0; background: transparent; padding: 0; box-shadow: none; }
.js .application-step:not(.is-active) { display: none; }
.application-step { animation: applicationStep .3s ease both; }
@keyframes applicationStep { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.step-heading { display: grid; grid-template-columns: 50px 1fr; align-items: center; gap: 15px; margin-bottom: 27px; }
.step-heading > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 16px 16px 16px 4px; background: var(--forest-800); color: var(--gold-500); font-family: var(--serif); }
.step-heading h3 { margin: 0 0 3px; font-size: 1.7rem; }
.step-heading p { margin: 0; font-size: .75rem; }
.form-grid { display: grid; gap: 17px; }
.form-grid.two { grid-template-columns: 1fr 1fr; }
.form-grid .span-2 { grid-column: 1 / -1; }
.application-form label > span:first-child, .application-form legend { color: #405049; font-size: .75rem; font-weight: 700; }
.application-form input, .application-form select, .application-form textarea { background: #fdfdfb; }
.application-form textarea { min-height: 105px; }
.money-input { position: relative; display: block; }
.money-input > i { position: absolute; top: 50%; left: 14px; z-index: 2; color: var(--forest-700); font-style: normal; transform: translateY(-50%); }
.money-input input { padding-left: 30px; }
.choice-field, .question-card, .repeat-card { min-width: 0; margin: 0; border: 0; padding: 0; }
.choice-field.full { margin-top: 21px; }
.choice-field > legend { margin-bottom: 8px; }
.choice-grid { display: grid; gap: 10px; }
.choice-grid.three { grid-template-columns: repeat(3,1fr); }
.choice-grid label, .compact-choices label, .yes-no label { cursor: pointer; }
.choice-grid input, .compact-choices input, .yes-no input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.choice-grid label > span { min-height: 73px; display: flex; align-items: center; gap: 11px; border: 1px solid #d8ded9; border-radius: 12px; background: #fdfdfb; padding: 13px; transition: border-color .2s, background .2s, box-shadow .2s; }
.choice-grid label > span i { color: var(--gold-600); }
.choice-grid input:checked + span, .compact-choices input:checked + span, .yes-no input:checked + span { border-color: var(--forest-700); background: var(--sage-100); color: var(--forest-800); box-shadow: 0 0 0 3px rgba(28,86,72,.07); }
.compact-choices, .yes-no { display: flex; flex-wrap: wrap; gap: 8px; }
.compact-choices label > span, .yes-no label > span { min-width: 72px; display: grid; place-items: center; border: 1px solid #d8ded9; border-radius: 999px; background: #fdfdfb; color: #526059; padding: 10px 15px; font-size: .75rem; font-weight: 700; transition: border-color .2s, background .2s; }
.question-stack, .repeat-stack { display: grid; gap: 17px; }
.question-card { border: 1px solid var(--line); border-radius: 16px; background: #fcfcf9; padding: 21px; }
.question-card > legend { padding: 0 5px; }
.question-card > .yes-no { margin-top: 8px; }
.question-card > label { margin-top: 16px; }
.question-card > p { margin: 7px 0 12px; font-size: .75rem; }
.conditional-field[hidden] { display: none !important; }
.privacy-callout, .equal-opportunity, .submission-notice { display: grid; grid-template-columns: 42px 1fr; align-items: start; gap: 13px; border-radius: 15px; background: var(--sage-100); padding: 17px; }
.privacy-callout { margin-top: 20px; }
.privacy-callout > i, .equal-opportunity > i { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: var(--white); color: var(--forest-700); }
.privacy-callout strong, .equal-opportunity strong, .submission-notice strong { color: var(--forest-900); font-size: .75rem; }
.privacy-callout p, .equal-opportunity p { margin: 3px 0 0; font-size: .75rem; }
.repeat-card { border: 1px solid var(--line); border-radius: 17px; padding: 25px; }
.repeat-card > legend { display: flex; align-items: center; gap: 9px; padding: 0 7px; font-family: var(--serif); font-size: 1rem; }
.repeat-card > legend span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--forest-800); color: var(--gold-500); font-family: var(--sans); font-size: .75rem; }
.military-fields { margin-top: 17px; border: 1px solid var(--line); border-radius: 16px; background: #fcfcf9; padding: 22px; }
.screening-question { margin-top: 20px; }
.step-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 32px; border-top: 1px solid var(--line); padding-top: 25px; }
.step-actions .btn { border-radius: 12px; }
.step-actions.final { align-items: stretch; }
.certification-copy { margin: 20px 0; border-left: 3px solid var(--gold-500); background: var(--cream-100); padding: 22px 24px; }
.certification-copy h4 { margin: 0 0 10px; color: var(--forest-900); font-family: var(--serif); font-size: 1.15rem; }
.certification-copy p { margin-bottom: 10px; font-size: .75rem; }
.certification-copy p:last-child { margin-bottom: 0; }
.consent-check { grid-template-columns: 22px 1fr !important; align-items: center; gap: 11px !important; border: 1px solid #d8ded9; border-radius: 13px; padding: 15px; cursor: pointer; }
.consent-check input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.consent-check > span { width: 21px; height: 21px; display: grid; place-items: center; border: 1px solid #cbd4cd; border-radius: 6px; color: transparent; }
.consent-check input:checked + span { border-color: var(--forest-700); background: var(--forest-700); color: var(--white); }
.consent-check strong { color: var(--forest-800); font-size: .75rem; }
.signature-grid { align-items: start; margin-top: 20px; }
.file-upload { grid-template-columns: 49px minmax(0,1fr) auto !important; align-items: center; gap: 14px !important; margin-top: 21px; border: 1px dashed #bfcac2; border-radius: 15px; background: #fcfcf9; padding: 17px; cursor: pointer; transition: border-color .2s, background .2s; }
.file-upload:hover, .file-upload.dragging { border-color: var(--forest-700); background: var(--sage-100); }
.file-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.file-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; background: var(--sage-100); color: var(--forest-700); font-size: 1.1rem; }
.file-upload strong, .file-upload small { display: block; }
.file-upload strong { color: var(--forest-900); font-size: .75rem; }
.file-upload strong em { margin-left: 5px; color: var(--muted); font-size: .75rem; font-style: normal; font-weight: 500; }
.file-upload small { color: var(--muted); font-size: .75rem; font-weight: 400; }
.file-upload > b { border: 1px solid #cbd4cd; border-radius: 999px; color: var(--forest-700); padding: 8px 12px; font-size: .75rem; }
.submission-notice { grid-template-columns: 25px 1fr; margin-top: 18px; background: transparent; border: 1px solid var(--line); padding: 13px 15px; }
.submission-notice > i { margin-top: 3px; color: var(--forest-700); }
.submission-notice strong, .submission-notice small { display: block; }
.submission-notice small { color: var(--muted); font-size: .75rem; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.form-error-summary { margin-bottom: 25px; border: 1px solid #e4b9b9; border-radius: 15px; background: #fff5f5; color: #772f2f; padding: 18px 20px; }
.form-error-summary > div { display: flex; align-items: center; gap: 11px; }
.form-error-summary > div > i { font-size: 1.2rem; }
.form-error-summary strong, .form-error-summary small { display: block; }
.form-error-summary small { font-size: .75rem; }
.form-error-summary ul { margin: 12px 0 0 31px; padding-left: 16px; }
.form-error-summary a { font-size: .75rem; text-decoration: underline; }
.application-form.was-validated :invalid { border-color: #c25a5a; }

.application-success { max-width: 720px; margin: 0 auto; padding: 15px 0; text-align: center; }
.success-icon { width: 78px; height: 78px; display: grid; margin: 0 auto 25px; place-items: center; border: 8px solid #e6f0e8; border-radius: 50%; background: var(--forest-700); color: var(--white); font-size: 1.35rem; }
.application-success h2 { margin-bottom: 14px; }
.application-success > p { max-width: 580px; margin: 0 auto 25px; }
.application-reference { display: inline-flex; align-items: center; gap: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--cream-100); padding: 14px 16px; }
.application-reference small, .application-reference strong { display: block; text-align: left; }
.application-reference small { color: var(--muted); font-size: .75rem; }
.application-reference strong { color: var(--forest-900); font-size: .84rem; letter-spacing: .05em; }
.application-reference button { border: 0; border-left: 1px solid var(--line); background: transparent; color: var(--forest-700); padding: 6px 0 6px 14px; font-size: .75rem; font-weight: 700; }
.success-next { margin: 32px 0; border-radius: 18px; background: var(--sage-100); padding: 25px; text-align: left; }
.success-next h3 { margin-bottom: 17px; font-size: 1.2rem; }
.success-next ol { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.success-next li { display: grid; grid-template-columns: 28px 1fr; align-items: center; gap: 10px; color: #4c5c54; font-size: .75rem; }
.success-next li span { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; background: var(--white); color: var(--forest-700); font-weight: 700; }
.application-success .actions { justify-content: center; }

/* Responsive */
@media (max-width: 1080px) {
  .primary-nav { gap: 17px; }
  .primary-nav > a:not(.nav-cta) { font-size: .75rem; }
  .service-grid, .value-grid { grid-template-columns: repeat(2,1fr); }
  .care-card-grid { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: 2 / 4; }
  .contact-card-grid { grid-template-columns: 1fr 1fr; }
  .contact-card:last-child { grid-column: 1 / 3; }
  .application-layout { grid-template-columns: 280px minmax(0,1fr); }
  .application-aside { padding: 27px; }
  .application-progress button small { display: none; }
}

@media (max-width: 900px) {
  .container { width: min(100% - 38px, 1220px); }
  .section { padding: 82px 0; }
  .topbar-location { max-width: 48%; }
  .menu-toggle { display: block; }
  .primary-nav { position: fixed; top: 0; right: 0; z-index: 101; width: min(380px, 88vw); height: 100dvh; display: flex; flex-direction: column; align-items: stretch; gap: 0; overflow-y: auto; background: var(--forest-950); padding: 115px 28px 30px; transform: translateX(105%); transition: transform .35s ease; }
  .primary-nav.open { transform: none; }
  .primary-nav > a:not(.nav-cta) { border-bottom: 1px solid rgba(255,255,255,.09); padding: 16px 3px; font-family: var(--serif); font-size: 1.3rem; font-weight: 500; }
  .primary-nav > a:not(.nav-cta)::after { display: none; }
  .nav-cta { justify-content: space-between; margin-top: 22px; padding: 15px 18px; }
  .menu-toggle { position: relative; z-index: 103; }
  .hero-slider { height: 710px; }
  .hero-content h1, .hero-content h2 { font-size: clamp(3.1rem,9vw,5.2rem); }
  .hero-slide::before { background-image: linear-gradient(90deg,rgba(5,25,20,.92),rgba(5,25,20,.55)),var(--hero-image); }
  .assurance-grid { grid-template-columns: 1fr 1fr; }
  .assurance-grid article:nth-child(2) { border-right: 1px solid var(--line); }
  .assurance-grid article:nth-child(n+3) { border-top: 1px solid var(--line); }
  .split, .home-life-grid, .purpose-grid, .amenities-layout, .faq-layout, .review-form-layout, .contact-layout, .career-welcome-grid, .application-layout { grid-template-columns: 1fr; gap: 55px; }
  .application-aside { position: relative; top: auto; }
  .application-aside ul { grid-template-columns: 1fr 1fr; }
  .career-photo { max-width: 680px; }
  .image-main { height: 540px; }
  .home-life-gallery { max-width: 720px; }
  .journey-grid, .rhythm-track { grid-template-columns: 1fr 1fr; gap: 40px 25px; }
  .journey-grid::before, .rhythm-track::before { display: none; }
  .page-hero { min-height: 480px; }
  .care-detail-image { max-width: 650px; }
  .space-grid { grid-template-columns: 1fr 1fr; }
  .space-card.space-wide { grid-column: 1 / 3; }
  .feature-banner { grid-template-columns: 1fr; }
  .gallery-grid { grid-template-columns: 1fr 1fr; }
  .video-card { grid-template-columns: 1fr; gap: 25px; }
  .video-card:nth-child(even) .video-frame { order: initial; }
  .summary-grid { grid-template-columns: auto 1fr; }
  .summary-grid .btn { grid-column: 1 / 3; width: max-content; }
  .map-card { left: 28px; }
  .error-layout { grid-template-columns: 1fr; gap: 35px; text-align: center; }
  .error-code { width: max-content; margin: auto; }
  .error-layout .actions { justify-content: center; }
}

@media (max-width: 680px) {
  body { font-size: 15px; }
  .container { width: min(100% - 28px, 1220px); }
  .topbar-inner { justify-content: center; }
  .topbar-contact a:nth-child(2), .topbar-location { display: none; }
  .nav-shell { height: 76px; }
  .brand-logo { height: 56px; }
  .hero-slider { height: 690px; min-height: 640px; }
  .hero-content { padding-bottom: 75px; }
  .hero-content h1, .hero-content h2 { font-size: clamp(2.75rem,13vw,4.35rem); }
  .hero-content p { font-size: .94rem; }
  .hero-controls { bottom: 24px; }
  .hero-progress { display: none; }
  .assurance-grid { grid-template-columns: 1fr; }
  .assurance-grid article { min-height: 86px; border-right: 1px solid var(--line); border-top: 1px solid var(--line); padding: 17px 20px; }
  .assurance-grid article:first-child { border-top: 0; }
  .service-grid, .value-grid, .care-card-grid, .journey-grid, .rhythm-track, .amenity-list, .dimension-grid, .mini-features { grid-template-columns: 1fr; }
  .service-card { min-height: 330px; }
  .image-composition { padding: 0 12px 55px 0; }
  .image-main { height: 460px; border-radius: 4px 70px 4px 4px; }
  .image-note { width: 220px; padding: 17px; }
  .home-life-gallery { grid-template-columns: 1fr; grid-template-rows: auto; }
  .home-life-gallery img, .home-life-gallery img:first-child { height: 320px; grid-row: auto; border-radius: 7px 55px 7px 7px; }
  .home-life-gallery img:nth-child(n+2) { display: none; }
  .testimonial-heading, .gallery-intro, .gallery-video-link, .prefooter-inner, .gallery-archive-break, .review-share-cta { align-items: flex-start; flex-direction: column; }
  .testimonial-actions { width: 100%; justify-content: space-between; }
  .review-track { grid-auto-columns: 88%; }
  .page-hero { min-height: 450px; }
  .page-hero h1 { font-size: clamp(3rem,14vw,4.4rem); }
  .purpose-grid { gap: 35px; }
  .floating-badge { right: 10px; }
  .living-collage { min-height: 520px; padding-right: 28px; }
  .living-large { height: 500px; }
  .living-small { width: 180px; height: 165px; }
  .space-grid { grid-template-columns: 1fr; }
  .space-card.space-wide { grid-column: auto; }
  .space-card { min-height: 390px; }
  .feature-banner { padding: 38px 26px; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 360px; }
  .gallery-item.gallery-featured { grid-row: span 1; }
  .gallery-caption { opacity: 1; transform: none; }
  .lightbox-dialog { width: calc(100% - 20px); }
  .lightbox-nav { width: 42px; height: 42px; }
  .lightbox-nav.prev { left: 5px; }
  .lightbox-nav.next { right: 5px; }
  .summary-grid { grid-template-columns: 1fr; }
  .summary-grid .btn { grid-column: auto; }
  .field-row { grid-template-columns: 1fr; }
  .career-photo { padding: 0 0 25px 20px; }
  .career-photo img { height: 500px; border-radius: 65px 5px 5px; }
  .application-section { padding: 72px 0 82px; }
  .application-aside ul { grid-template-columns: 1fr; }
  .application-panel { border-radius: 22px; padding: 24px 18px; }
  .application-heading { align-items: flex-start; flex-direction: column; }
  .application-progress { overflow-x: auto; grid-template-columns: repeat(7,56px); justify-content: space-between; }
  .application-progress button::after { display: none; }
  .form-grid.two, .choice-grid.three { grid-template-columns: 1fr; }
  .form-grid .span-2 { grid-column: auto; }
  .step-heading { grid-template-columns: 42px 1fr; }
  .step-heading > span { width: 41px; height: 41px; }
  .step-actions, .step-actions.final { align-items: stretch; flex-direction: column-reverse; }
  .step-actions .btn { width: 100%; }
  .file-upload { grid-template-columns: 42px minmax(0,1fr) !important; }
  .file-upload > b { display: none; }
  .application-reference { align-items: flex-start; flex-direction: column; }
  .application-reference button { width: 100%; border-top: 1px solid var(--line); border-left: 0; padding: 9px 0 0; text-align: left; }
  .contact-card-grid { grid-template-columns: 1fr; }
  .contact-card:last-child { grid-column: auto; }
  .contact-card { padding: 18px; }
  .map-card { right: 14px; bottom: 14px; left: 14px; top: auto; width: auto; transform: none; }
  .map-card h2 { font-size: 1.85rem; }
  .prefooter { padding: 48px 0; }
  .footer-grid { grid-template-columns: 1fr; gap: 36px; }
  .footer-grid > div:last-child { grid-column: auto; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .scroll-top { right: 14px; bottom: 84px; }
  .live-chat { right: 13px; bottom: 13px; }
  .chat-launcher { width: 55px; height: 55px; padding: 7px; }
  .chat-launcher > span:nth-child(2) { display: none; }
  .chat-launcher-icon { width: 41px; height: 41px; }
  .chat-panel { position: fixed; inset: 10px; width: auto; height: auto; max-height: none; border-radius: 20px; }
}

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

/* v6.2: managed heroes, gallery switching, review feedback and branded loading */
html.is-loading, html.is-loading body { overflow: hidden; }
.site-preloader { position: fixed; inset: 0; z-index: 3000; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 38%, #17483c 0, #0b2b24 36%, #061914 100%); color: var(--white); transition: opacity .55s ease, visibility .55s ease; }
.site-preloader::before, .site-preloader::after { position: absolute; content: ''; border-radius: 50%; pointer-events: none; }
.site-preloader::before { width: 720px; height: 720px; border: 1px solid rgba(213,180,112,.1); box-shadow: 0 0 0 110px rgba(255,255,255,.012), 0 0 0 220px rgba(255,255,255,.008); }
.site-preloader::after { width: 220px; height: 220px; background: radial-gradient(circle, rgba(213,180,112,.12), transparent 70%); filter: blur(8px); }
.site-preloader.is-complete { opacity: 0; visibility: hidden; pointer-events: none; }
.preloader-inner { position: relative; z-index: 2; width: min(420px, calc(100% - 48px)); display: grid; justify-items: center; text-align: center; }
.preloader-logo-wrap { position: relative; width: 220px; min-height: 146px; display: grid; place-items: center; margin-bottom: 20px; }
.preloader-logo-wrap img { position: relative; z-index: 2; width: 205px; height: auto; filter: drop-shadow(0 16px 25px rgba(0,0,0,.22)); animation: preloaderFloat 2.2s ease-in-out infinite; }
.preloader-orbit { position: absolute; width: 142px; height: 142px; border: 1px solid rgba(213,180,112,.22); border-top-color: var(--gold-500); border-radius: 50%; animation: preloaderSpin 1.9s linear infinite; }
.preloader-orbit::after { position: absolute; top: 6px; right: 19px; width: 8px; height: 8px; content: ''; border-radius: 50%; background: var(--gold-500); box-shadow: 0 0 18px rgba(213,180,112,.7); }
.preloader-copy strong, .preloader-copy span { display: block; }
.preloader-copy strong { color: #f8f4e9; font-family: var(--serif); font-size: 1.35rem; font-weight: 500; letter-spacing: .01em; }
.preloader-copy span { margin-top: 5px; color: #b9cbc4; font-size: .75rem; letter-spacing: .08em; }
.preloader-progress { width: 180px; height: 2px; overflow: hidden; margin-top: 22px; border-radius: 99px; background: rgba(255,255,255,.12); }
.preloader-progress i { display: block; width: 42%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, transparent, var(--gold-500), #f0dba9); animation: preloaderProgress 1.25s ease-in-out infinite; }
@keyframes preloaderSpin { to { transform: rotate(360deg); } }
@keyframes preloaderFloat { 50% { transform: translateY(-5px); } }
@keyframes preloaderProgress { from { transform: translateX(-120%); } to { transform: translateX(340%); } }

.brand-logo, .admin-brand-logo { background: transparent !important; }
.hero-slide::before { background-position: var(--hero-position, center center); }
.managed-page-hero { background: var(--forest-950); }
.managed-page-hero::before { display: none; }
.page-hero-slide { position: absolute; inset: 0; display: grid; align-items: center; opacity: 0; pointer-events: none; transform: scale(1.018); transition: opacity .8s ease, transform 7s ease; }
.page-hero-slide::before { position: absolute; inset: 0; content: ''; background-image: linear-gradient(90deg, rgba(5,27,21,.94), rgba(5,27,21,.62) 62%, rgba(5,27,21,.27)), var(--page-hero-image); background-position: var(--page-hero-position, center center); background-size: cover; }
.page-hero-slide::after { position: absolute; inset: auto 0 0; height: 34%; content: ''; background: linear-gradient(0deg, rgba(5,25,20,.38), transparent); }
.page-hero-slide.is-active { z-index: 2; opacity: 1; pointer-events: auto; transform: scale(1); }
.page-hero-slide .page-hero-content { width: 100%; }
.page-hero-actions { margin: -6px 0 26px; }
.page-hero-controls { position: absolute; right: 0; bottom: 28px; left: 0; z-index: 8; display: flex; align-items: center; justify-content: flex-end; gap: 9px; pointer-events: none; }
.page-hero-arrow, .page-hero-dots button { pointer-events: auto; }
.page-hero-arrow { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: rgba(5,29,24,.22); color: var(--white); backdrop-filter: blur(8px); transition: background .25s, border-color .25s, color .25s; }
.page-hero-arrow:hover { border-color: var(--gold-500); background: var(--gold-500); color: var(--forest-950); }
.page-hero-dots { display: flex; align-items: center; gap: 7px; margin: 0 5px; }
.page-hero-dots button { width: 8px; height: 8px; border: 0; border-radius: 99px; background: rgba(255,255,255,.48); padding: 0; transition: width .25s, background .25s; }
.page-hero-dots button.active { width: 25px; background: var(--gold-500); }

.gallery-mode-nav { position: relative; z-index: 5; border-bottom: 1px solid var(--line); background: var(--white); box-shadow: 0 14px 35px rgba(7,29,24,.045); }
.gallery-mode-nav-inner { min-height: 126px; display: flex; align-items: center; justify-content: space-between; gap: 34px; padding-block: 22px; }
.gallery-mode-nav-inner > div:first-child { display: grid; }
.gallery-mode-nav .eyebrow { margin-bottom: 7px; }
.gallery-mode-nav-inner > div:first-child strong { color: var(--forest-900); font-family: var(--serif); font-size: 1.32rem; font-weight: 500; }
.gallery-mode-actions { display: flex; gap: 12px; }
.gallery-mode-btn { min-width: 190px; min-height: 56px; display: inline-flex; align-items: center; justify-content: center; gap: 11px; border: 1px solid #d8e0db; border-radius: 999px; background: #fbfcfb; color: var(--forest-800); padding: 13px 20px; font-size: .82rem; font-weight: 700; box-shadow: 0 8px 18px rgba(7,29,24,.04); transition: transform .22s, border-color .22s, background .22s, color .22s, box-shadow .22s; }
.gallery-mode-btn:hover { transform: translateY(-2px); border-color: var(--forest-700); box-shadow: var(--shadow-sm); }
.gallery-mode-btn.is-active { border-color: var(--forest-800); background: var(--forest-800); color: var(--white); box-shadow: 0 12px 28px rgba(18,63,53,.18); }
.gallery-mode-btn i { color: var(--gold-600); }
.gallery-mode-btn.is-active i { color: var(--gold-500); }

.review-feedback { position: fixed; right: 28px; top: 142px; z-index: 1200; width: min(540px, calc(100% - 40px)); display: grid; grid-template-columns: 58px 1fr auto; align-items: start; gap: 17px; border: 1px solid #cdded2; border-radius: 22px; background: rgba(255,255,255,.98); padding: 22px; box-shadow: 0 24px 70px rgba(7,29,24,.2); backdrop-filter: blur(14px); animation: reviewFeedbackIn .45s cubic-bezier(.2,.8,.2,1); }
.review-feedback[hidden] { display: none !important; }
.review-feedback-icon { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--forest-800); color: var(--gold-500); box-shadow: 0 10px 25px rgba(18,63,53,.18); }
.review-feedback .eyebrow { margin-bottom: 5px; }
.review-feedback h3 { margin-bottom: 7px; font-size: 1.35rem; }
.review-feedback p { margin-bottom: 14px; font-size: .8rem; line-height: 1.65; }
.review-feedback > button { width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 50%; background: var(--sage-100); color: var(--forest-800); }
.review-feedback-steps { display: flex; flex-wrap: wrap; gap: 7px; }
.review-feedback-steps span { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; background: var(--cream-100); color: #53625b; padding: 6px 9px; font-size: .68rem; font-weight: 700; }
.review-feedback-steps span:first-child { background: #e2f2e7; color: #23633d; }
.review-feedback-steps i { color: var(--gold-600); }
.review-feedback-steps span:first-child i { color: #2b7a4a; }
@keyframes reviewFeedbackIn { from { opacity: 0; transform: translateY(-14px) scale(.97); } to { opacity: 1; transform: none; } }
.review-form.is-submitting { opacity: .72; pointer-events: none; }
.review-form.is-submitting .submit-btn { min-width: 178px; }

@media (max-width: 900px) {
  .gallery-mode-nav-inner { align-items: flex-start; flex-direction: column; gap: 18px; padding-block: 24px; }
  .gallery-mode-actions { width: 100%; }
  .gallery-mode-btn { flex: 1; min-width: 0; }
  .page-hero-controls { justify-content: flex-start; }
}
@media (max-width: 680px) {
  .preloader-logo-wrap { width: 190px; }
  .preloader-logo-wrap img { width: 178px; }
  .preloader-orbit { width: 126px; height: 126px; }
  .gallery-mode-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
  .gallery-mode-btn { min-height: 52px; padding: 10px 12px; font-size: .76rem; }
  .gallery-mode-nav-inner > div:first-child strong { font-size: 1.1rem; }
  .review-feedback { right: 14px; top: 105px; width: calc(100% - 28px); grid-template-columns: 46px 1fr auto; gap: 12px; padding: 17px; }
  .review-feedback-icon { width: 45px; height: 45px; }
  .review-feedback h3 { font-size: 1.15rem; }
  .review-feedback-steps span { font-size: .62rem; }
  .page-hero-controls { bottom: 18px; }
}
.review-feedback.is-error { border-color: #edc9c9; }
.review-feedback.is-error .review-feedback-icon { background: #8e3535; color: #fff; }
.review-feedback.is-error .review-feedback-steps { display: none; }
.managed-page-hero { background-image: none !important; background-position: center !important; }
