/* Luna Gardens — selected Garden House design. */
:root { color-scheme: light; --paper:#f7f5ee; --ink:#253d32; --muted:#536158; --line:#cbd0c5; --accent:#465b3b; --soft:#e7e9df; --serif:Georgia,'Times New Roman',serif; --sans:'Helvetica Neue',Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:70px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); line-height:1.65; }
a { color:inherit; text-decoration:none; }
button,a,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,summary:focus-visible { outline:3px solid #b46b33; outline-offset:6px; }
img { display:block; width:100%; height:100%; object-fit:cover; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:1.06; letter-spacing:-.04em; }
h1 { font-size:clamp(3.2rem,5.5vw,6.3rem); margin-bottom:26px; }
h2 { font-size:clamp(2.5rem,4.5vw,4.6rem); margin-bottom:24px; }
h3 { font-size:2.5rem; margin-bottom:20px; }
em { font-weight:400; }
p { margin-bottom:22px; }
.eyebrow { font-family:var(--sans); text-transform:uppercase; font-size:10px; letter-spacing:.19em; font-weight:600; line-height:1.7; margin-bottom:25px; }
.skip-link { position:fixed; top:8px; left:8px; transform:translateY(-200%); padding:12px; background:white; color:#173126; z-index:100; }
.skip-link:focus { transform:none; }
.review-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; position:sticky; top:0; z-index:50; background:#15251f; color:#faf8ee; padding:9px 3vw; font-size:11px; line-height:1.4; border-bottom:1px solid #506157; }
.review-home { font-weight:bold; white-space:nowrap; }
.review-bar nav { display:flex; flex-wrap:wrap; gap:5px; }
.review-bar nav a { padding:6px 12px; border:1px solid transparent; border-radius:3px; opacity:.75; }
.review-bar nav a:hover,.review-bar nav a[aria-current] { opacity:1; border-color:#9fae9b; background:#344a3e; }
.preview-label { font-size:10px; opacity:.7; white-space:nowrap; }
.site-header { min-height:105px; padding:20px 4.5vw; display:flex; justify-content:space-between; align-items:center; gap:25px; }
.brand { display:flex; align-items:center; gap:13px; flex-shrink:0; }
.brand img { width:52px; height:52px; border-radius:50%; background:white; }
.brand span { font-family:var(--serif); font-size:20px; letter-spacing:.08em; line-height:1.1; }
.brand small { display:block; font-family:var(--sans); font-size:8px; letter-spacing:.24em; margin-top:8px; }
.site-nav { display:flex; align-items:center; gap:27px; font-size:11px; }
.site-nav a { padding:5px 0; border-bottom:1px solid transparent; }
.site-nav a:hover,.site-nav a[aria-current] { border-color:currentColor; }
.header-cta { border-bottom:1px solid var(--ink); font-size:11px; padding:7px 0; white-space:nowrap; }
.header-cta span { margin-left:14px; }
.hero { position:relative; min-height:660px; margin:10px 5vw 55px; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:6vw; }
.hero-copy { grid-column:1; grid-row:1; padding:45px 0; max-width:610px; position:relative; z-index:2; }
.hero-description { max-width:415px; font-size:15px; color:var(--muted); }
.hero-image { grid-column:2; grid-row:1; position:relative; height:650px; min-width:0; }
.hero-image img { border-radius:48% 48% 2px 2px; }
.image-caption { display:block; position:absolute; bottom:16px; left:20px; right:20px; color:white; font-size:9px; letter-spacing:.12em; text-shadow:0 1px 6px #000; }
.hero-index { display:none; }
.actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:32px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; background:var(--ink); color:var(--paper); border:1px solid var(--ink); padding:15px 21px; font-size:11px; font-weight:500; line-height:1.5; transition:background .2s,transform .2s; }
.button:hover { transform:translateY(-2px); }
.button.secondary { background:transparent; color:inherit; border-color:var(--line); }
.button.secondary:hover { background:var(--soft); }
.hero-foot { font-size:10px; color:var(--muted); max-width:350px; margin-top:23px; }
.fact-strip { display:flex; justify-content:center; gap:5vw; padding:25px 4vw; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:11px; letter-spacing:.04em; }
.fact-strip span+span:before { content:'✦'; padding-right:5vw; font-size:10px; opacity:.55; }
.section { padding:100px 7vw; }
.section-intro { text-align:center; max-width:770px; margin:0 auto 60px; }
.section-intro>p:last-child { color:var(--muted); max-width:550px; margin-left:auto; margin-right:auto; font-size:14px; }
.experience-grid { display:grid; grid-template-columns:1fr 1fr; gap:35px; }
.experience { display:block; }
.experience>img { height:410px; transition:filter .2s; }
.experience:hover>img { filter:brightness(.93); }
.experience>div { padding:28px 0; border-bottom:1px solid var(--line); }
.experience .eyebrow { font-size:9px; }
.experience h3 { margin-top:13px; }
.experience h3 span { font-family:var(--sans); float:right; font-size:25px; }
.experience p { font-size:13px; color:var(--muted); margin-bottom:0; }
.story { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:10vw; background:var(--soft); }
.story-photo { height:580px; padding:20px; border:1px solid var(--line); }
.story-photo img { object-position:center 40%; }
.story>div:last-child { max-width:470px; }
.story p:not(.eyebrow) { font-size:14px; color:var(--muted); }
.text-link { display:table; font-size:12px; border-bottom:1px solid currentColor; margin-top:30px; padding-bottom:4px; }
.community { display:grid; grid-template-columns:1fr 1.3fr; gap:8vw; align-items:center; }
.community img { height:auto; object-fit:contain; }
.community p:not(.eyebrow) { font-size:14px; color:var(--muted); max-width:400px; }
.visit { text-align:center; border-top:1px solid var(--line); padding-top:110px; padding-bottom:110px; }
.visit>p:not(.eyebrow) { font-size:14px; max-width:470px; margin:0 auto 30px; color:var(--muted); }
.visit .text-link { margin:24px auto 0; }
footer { padding:50px 7vw 25px; border-top:1px solid var(--line); display:grid; grid-template-columns:2fr 1.5fr 1fr; gap:30px; font-size:12px; }
.footer-brand { font-family:var(--serif); font-size:28px; }
.footer-brand span { display:block; font-family:var(--sans); font-size:10px; margin-top:10px; color:var(--muted); }
.footer-note { grid-column:1/-1; font-size:9px; margin:20px 0 0; color:var(--muted); }
.photo-pair { display:grid; grid-template-columns:1.0037fr 1.3281fr; gap:24px; align-items:start; }
.photo-pair img,.photo-pair img:last-child { height:auto; }
.wedding-moments { padding-top:0; }
.wedding-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; align-items:start; }
.wedding-gallery img { height:auto; object-fit:contain; }
.packages { background:var(--soft); }
.package-grid { display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.package-card { border:1px solid var(--line); padding:45px; background:var(--paper); }
.package-card p,.package-card li { font-size:13px; }
.package-card .price { font-family:var(--serif); font-size:34px; }
.price small { display:block; font-family:var(--sans); font-size:10px; margin-top:4px; }
.package-card ul { padding-left:18px; margin:25px 0; }
.package-card li { padding-bottom:10px; }
.package-card .small { font-size:11px; color:var(--muted); }
.package-card.featured { background:var(--ink); color:var(--paper); }
.package-card.featured .small { color:inherit; opacity:.8; }
.package-card.featured .button { background:var(--paper); color:var(--ink); margin-top:10px; }
.weekend { text-align:center; }
.weekend>p:not(.eyebrow) { max-width:540px; margin:0 auto 30px; font-size:14px; color:var(--muted); }
.faq { border-top:1px solid var(--line); }
.questions { max-width:850px; margin:auto; }
details { border-bottom:1px solid var(--line); }
summary { display:flex; justify-content:space-between; gap:20px; cursor:pointer; padding:24px 0; list-style:none; font-size:15px; }
summary::-webkit-details-marker { display:none; }
summary>span { font-size:20px; line-height:1.2; }
details[open] summary>span { transform:rotate(45deg); }
details>p { font-size:13px; color:var(--muted); max-width:700px; padding-right:30px; }
.production .section-intro { margin-bottom:20px; }
.capacity-note { text-align:center; font-size:10px; color:var(--muted); margin:0 auto 60px; }
.production-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.production-grid article { border-top:1px solid var(--line); padding-top:25px; }
.production-grid article>span { font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.production-grid h3 { margin-top:25px; font-size:2.6rem; }
.production-grid p { font-size:13px; color:var(--muted); }
.night-band { position:relative; min-height:570px; display:flex; align-items:end; padding:60px 7vw; color:#fff9e9; background:#10241b; }
.night-band>img { position:absolute; inset:0; z-index:0; opacity:.65; }
.night-band:after { content:''; position:absolute; inset:0; background:linear-gradient(transparent,rgba(0,0,0,.6)); }
.night-band>div { position:relative; z-index:1; }
.night-band h2 { margin:0; }
.promoter { display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:center; }
.promoter>div>p:not(.eyebrow) { font-size:14px; color:var(--muted); }
.page-concerts h1 { font-family:var(--sans); font-weight:750; letter-spacing:-.06em; line-height:.98; }
.page-concerts h1 em { font-style:normal; }
.page-concerts .hero-image img { border-radius:0; }
.page-concerts.botanical .hero-image { height:570px; }
.page-concerts .production-grid h3 { font-family:var(--sans); font-size:2.2rem; font-weight:650; letter-spacing:-.055em; }
@media(min-width:1700px) { .hero,.section,.site-header,footer,.fact-strip { padding-left:max(7vw,calc((100vw - 1480px)/2)); padding-right:max(7vw,calc((100vw - 1480px)/2)); } .hero { margin-left:0; margin-right:0; } }
@media(max-width:1100px) { .site-header { gap:20px; padding-left:4vw; padding-right:4vw; } .site-nav { gap:18px; } .header-cta { display:none; } .hero { gap:4vw; min-height:590px; } .hero-image { height:580px; } h1 { font-size:clamp(3.2rem,6vw,5.5rem); } .section { padding:75px 5vw; } .package-card { padding:30px; } .story { gap:6vw; } .production-grid { gap:25px; } .fact-strip { gap:25px; } .fact-strip span+span:before { padding-right:25px; } }
@media(max-width:760px) {
 .wedding-gallery { grid-template-columns:1fr; gap:25px; }
 .review-bar { gap:10px; padding:8px 12px; } .review-bar nav { flex-wrap:nowrap; gap:4px; } .review-bar nav a { padding:5px 10px; } .review-bar nav a span,.preview-label { display:none; }
 .site-header { flex-wrap:wrap; gap:18px; padding:18px 5vw; } .brand img { width:43px; height:43px; } .brand span { font-size:17px; } .site-nav { width:100%; justify-content:space-between; gap:10px; font-size:10px; } .site-nav a { padding:5px 0; }
 .hero { display:flex; flex-direction:column; gap:20px; margin:10px 5vw 40px; min-height:0; } .hero-copy { order:0; width:100%; padding:25px 0 5px; } .hero-image { order:1; width:100%; height:450px; } h1 { font-size:clamp(3.3rem,11vw,5rem); } h2 { font-size:clamp(2.7rem,9vw,4rem); } h3 { font-size:2.3rem; } .hero-description { max-width:450px; font-size:14px; } .eyebrow { font-size:9px; margin-bottom:20px; } .actions { gap:10px; margin-top:26px; } .button { font-size:10px; gap:20px; padding:14px 17px; } .hero-foot { font-size:10px; margin-bottom:15px; max-width:100%; }
 .fact-strip { flex-direction:column; gap:9px; text-align:center; padding:23px 20px; font-size:11px; } .fact-strip span+span:before { display:none; } .section { padding:65px 6vw; } .section-intro { margin-bottom:35px; } .section-intro>p:last-child { font-size:13px; }
 .experience-grid,.story,.community,.package-grid,.photo-pair,.production-grid,.promoter { grid-template-columns:1fr; gap:32px; } .experience>img { height:330px; } .experience>div { padding:22px 0; } .story-photo { height:480px; max-width:420px; width:100%; margin:auto; } .story>div:last-child { max-width:none; } .community img { height:auto; } .visit { padding-top:70px; padding-bottom:70px; } footer { grid-template-columns:1fr 1fr; gap:25px; padding:40px 6vw 25px; } .footer-brand { grid-column:1/-1; } .footer-note { margin-top:5px; }
 .photo-pair img,.photo-pair img:last-child { height:auto; } .package-card { padding:28px; } .package-card h3 { font-size:2.5rem; } .package-card .eyebrow { font-size:9px; } summary { font-size:14px; } .production-grid h3 { font-size:2.3rem; } .night-band { min-height:440px; padding:40px 6vw; } .capacity-note { margin-bottom:35px; }
 .concept-grid { grid-template-columns:1fr; padding:0 6vw 60px; gap:30px; } .index-intro { padding-top:35px; } .index-brand { margin-bottom:35px; } .index-intro h1 { font-size:3.7rem; } .concept-art { height:360px; } .concept-details p { min-height:0; } .review-guide h2 { font-size:32px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { transition:none!important; } }

/* One photographic treatment across the selected site. The source photographs
   stay intact; modest per-image compensation balances different cameras/light. */
.site-photo { --photo-saturation:.9; --photo-brightness:1.03; --photo-contrast:.98; filter:brightness(var(--photo-brightness)) contrast(var(--photo-contrast)) saturate(var(--photo-saturation)) sepia(.025); }
.photo--entrance,.photo--ceremony,.photo--pond,.photo--reception,.photo--gardens,.photo--celebration { --photo-brightness:1; --photo-saturation:.86; }
.photo--concert-blue { --photo-saturation:.78; --photo-brightness:1.05; }
.photo--concert-vocalist { --photo-saturation:.74; --photo-brightness:1; }
.photo--concert-hospitality,.photo--concert-vendors { --photo-saturation:.84; --photo-brightness:1.04; }
.photo--concert-fireworks { --photo-saturation:.88; --photo-brightness:1.08; }
.photo--concert-main-stage { --photo-saturation:.85; }
.photo--night,.photo--event-tent,.photo--event-dinner,.photo--wedding-arch,.photo--wedding-table { --photo-brightness:1.08; --photo-saturation:.88; }
.photo--garden-pecan { --photo-saturation:.85; }
.photo--wedding-evening { --photo-saturation:.82; }
.photo--flower-bluebonnets { --photo-brightness:1.04; --photo-saturation:.96; }
.experience:hover>img { filter:brightness(var(--photo-brightness)) contrast(var(--photo-contrast)) saturate(var(--photo-saturation)) sepia(.025); opacity:.94; }
.site-header { position:sticky; top:0; z-index:30; border-bottom:1px solid var(--line); background:var(--paper); min-height:106px; }
html { scroll-padding-top:130px; }
.site-nav { gap:24px; }
.site-nav a { font-size:12px; }
.nav-group { position:relative; border:0; }
.nav-group>summary { padding:5px 0; display:flex; gap:8px; align-items:center; font-size:12px; line-height:1.65; border-bottom:1px solid transparent; }
.nav-group.active>summary,.nav-group[open]>summary { border-color:var(--ink); }
.nav-group>summary>span { font-size:12px; }
.nav-group[open]>summary>span { transform:none; }
.nav-dropdown { position:absolute; top:calc(100% + 15px); left:-20px; min-width:220px; background:var(--paper); border:1px solid var(--line); box-shadow:0 12px 30px #17302314; padding:15px 20px; }
.nav-dropdown a { display:block; padding:10px 0; }
.nav-toggle,.mobile-contact { display:none; }
.header-cta { font-size:12px; }
.hero { margin-top:25px; }
.section-after-intro { padding-top:0; }
.section-compact { padding-top:35px; padding-bottom:55px; }
.text-center { text-align:center; }
.page-intro { text-align:center; padding-top:75px; padding-bottom:60px; }
.page-intro h1 { font-size:clamp(3.5rem,6vw,6.5rem); }
.page-intro>p:last-child { max-width:650px; margin:0 auto; color:var(--muted); font-size:15px; }
.photo-gallery { display:grid; gap:24px; align-items:start; }
.gallery-row { display:flex; align-items:start; gap:24px; }
.gallery-row>figure { flex:var(--photo-ratio) 1 0%; }
.gallery-stacked { grid-template-columns:minmax(0,var(--stack-column)) minmax(0,1fr); }
.gallery-stack { display:grid; gap:24px; min-width:0; }
.photo-gallery figure,.town-photos figure { margin:0; min-width:0; }
.photo-gallery img,.natural-photo { width:100%; height:auto; object-fit:contain; }
.photo-gallery figcaption,.town-photos figcaption { color:var(--muted); font-size:11px; padding-top:13px; }
.concert-stage { display:grid; grid-template-columns:1.4fr 1fr; align-items:center; gap:6vw; margin:55px 0 65px; }
.concert-stage figure { margin:0; min-width:0; }
.concert-stage img { height:auto; }
.concert-stage figcaption { font-size:11px; color:var(--muted); margin-top:12px; }
.concert-stage h3 { font-size:clamp(30px,3.3vw,48px); }
.concert-stage p:not(.eyebrow) { color:var(--muted); font-size:14px; }
.concert-archive { background:var(--ink); color:var(--paper); }
.concert-gallery-heading { display:flex; justify-content:space-between; align-items:end; gap:32px; margin-bottom:32px; }
.concert-gallery-heading h2 { margin:0; }
.concert-gallery-heading>p { font-size:13px; max-width:300px; opacity:.8; margin-bottom:6px; }
.concert-collage { display:grid; gap:28px; }
.concert-photo-row { display:flex; gap:24px; align-items:start; }
.concert-photo-row>.concert-photo { flex:var(--photo-ratio) 1 0%; }
.concert-photo { margin:0; min-width:0; }
.concert-photo .photo-open { display:block; }
.concert-photo img { width:100%; height:auto; transition:opacity .25s; }
.concert-photo a:hover img { opacity:.85; }
.concert-photo figcaption { display:flex; gap:18px; border-top:1px solid #f7f5ee40; margin-top:17px; padding-top:12px; font-size:11px; letter-spacing:.015em; }
.concert-photo figcaption>span { opacity:.5; font-size:9px; padding-top:2px; }
.concert-interlude { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:20px 0; border-top:1px solid #f7f5ee40; border-bottom:1px solid #f7f5ee40; }
.concert-interlude>span { font-size:25px; opacity:.6; }
.concert-interlude>p { font-family:var(--serif); font-size:clamp(25px,2.8vw,40px); line-height:1.15; letter-spacing:-.04em; margin:0; }
.concert-interlude .text-link { font-size:11px; margin:0; flex-shrink:0; }
.concert-gallery-note { max-width:560px; font-size:11px; line-height:1.7; opacity:.7; margin:30px 0 0; }
.holiday-film { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:8vw; background:var(--soft); }
.holiday-film-copy { max-width:460px; justify-self:end; }
.holiday-film-copy>p:not(.eyebrow) { font-size:14px; color:var(--muted); }
.holiday-film-player { margin:0; width:100%; max-width:360px; min-width:0; justify-self:center; }
.portrait-video { width:100%; aspect-ratio:30/53; background:#10241b; }
.portrait-video iframe { display:block; width:100%; height:100%; border:0; }
.holiday-film-player figcaption { padding-top:15px; font-size:10px; color:var(--muted); }
.holiday-film-player figcaption a { text-decoration:underline; text-underline-offset:3px; }
.photo-open { display:block; }
.photo-open:focus-visible { outline-offset:4px; }
.gallery-note { font-size:11px; max-width:700px; color:var(--muted); margin:30px 0 0; }
.gallery-flowers figure { break-inside:avoid; }
.wedding-intro,.wedding-moments,.event-archive,.concert-archive,#landscapes,.flowers-section { padding-top:70px; padding-bottom:70px; }
.wedding-moments { padding-top:0; }
.wedding-intro .section-intro,.wedding-moments .section-intro,.event-archive .section-intro,#landscapes .section-intro,.flowers-section .section-intro { margin-bottom:36px; }
.flowers-section { background:var(--soft); }
.garden-invitation { display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center; border-top:1px solid var(--line); }
.garden-invitation>div:first-child { height:480px; }
.garden-invitation p:not(.eyebrow) { color:var(--muted); font-size:14px; }
.location { display:grid; grid-template-columns:1fr 1.15fr; gap:7vw; background:var(--soft); align-items:center; }
.location p { font-size:14px; }
.location iframe { width:100%; height:450px; border:0; }
.prose-layout { display:grid; grid-template-columns:1fr 1fr; gap:8vw; align-items:start; }
.prose-layout>div>p { font-size:14px; color:var(--muted); }
.prose-layout h3 { font-size:30px; margin-top:35px; }
.check-list { padding-left:20px; color:var(--muted); font-size:14px; }
.check-list li { margin-bottom:14px; }
.package-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.package-overview>article { border:1px solid var(--line); }
.package-overview>article>img { height:300px; }
.package-overview>article>div { padding:30px; }
.package-overview h2 { font-size:36px; }
.package-overview p:not(.eyebrow) { font-size:13px; color:var(--muted); }
.short-party-offer { background:var(--soft); }
.contact-layout,.booking-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:7vw; }
.contact-layout aside p { font-size:14px; color:var(--muted); }
.contact-layout { align-items:start; gap:6vw; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
.contact-welcome { padding-top:25px; }
.contact-welcome>p { max-width:350px; }
.contact-details { margin:35px 0; padding:26px 0 4px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.contact-details .eyebrow { display:block; font-size:9px; margin-bottom:6px; }
.contact-details a { text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:4px; overflow-wrap:anywhere; }
.contact-garden { margin:45px 0 0; max-width:380px; }
.contact-garden img { aspect-ratio:4/3; height:auto; border-radius:48% 48% 0 0; }
.contact-garden figcaption { font-family:var(--serif); font-size:19px; font-style:italic; padding-top:16px; }
.contact-form-panel { background:var(--soft); border:1px solid var(--line); padding:clamp(24px,3.2vw,50px); min-width:0; }
.contact-form-panel>.eyebrow { margin-bottom:30px; font-size:9px; }
.inquiry-form { width:100%; }
.inquiry-section { min-width:0; margin:0 0 30px; padding:0 0 30px; border:0; border-bottom:1px solid var(--line); }
.inquiry-section legend { font-family:var(--serif); font-size:29px; font-weight:400; letter-spacing:-.035em; line-height:1.15; padding:0; margin-bottom:12px; }
.inquiry-section>.field-help { margin:0 0 23px; }
.inquiry-section>.field-help span { display:block; margin-top:4px; }
.contact-form-panel .form-options,.contact-form-panel [data-tour-fields] { background:#f7f5ee99; border-color:#b6c0af; }
.contact-form-panel .form-options legend,.contact-form-panel [data-tour-fields] legend { padding:0 7px; }
.contact-form-panel .button { width:100%; margin-top:8px; font-size:12px; padding:17px 22px; }
.contact-form-panel input,.contact-form-panel select,.contact-form-panel textarea { border-color:#b3bdad; background:#fffdf7; }
.contact-form-panel input:hover,.contact-form-panel select:hover,.contact-form-panel textarea:hover { border-color:var(--muted); }
.inquiry-form>label { display:block; margin-top:22px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
label,legend { font-size:12px; font-weight:500; }
input,select,textarea { display:block; width:100%; max-width:100%; border:1px solid #9ca99a; border-radius:0; padding:13px 12px; color:var(--ink); background:#fffdf7; font-family:var(--sans); font-size:16px; line-height:1.5; margin-top:8px; }
textarea { resize:vertical; min-height:120px; }
input:focus,select:focus,textarea:focus { outline:2px solid var(--ink); outline-offset:2px; }
input[type=checkbox],input[type=radio] { display:inline-block; width:17px; height:17px; margin:0 8px 0 0; vertical-align:middle; accent-color:#294d3a; }
fieldset { margin:24px 0; padding:20px; border:1px solid var(--line); }
fieldset>label { display:block; margin:12px 0; }
fieldset[hidden] { display:none; }
.field-help,.form-note { font-size:11px; color:var(--muted); line-height:1.65; }
.field-help { margin:15px 0 0; }
.optional { font-size:10px; color:var(--muted); }
.form-note { margin:25px 0 15px; }
.captcha-note { font-size:10px; color:var(--muted); margin:15px 0 25px; }
.captcha-note a,.legal-copy a { text-decoration:underline; text-underline-offset:3px; }
.trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.form-status { padding:20px; border:1px solid var(--line); background:var(--soft); font-size:13px; margin-bottom:25px; }
.form-status.success { border-color:#597a57; }
button { font-family:inherit; cursor:pointer; }
button:disabled { cursor:default; opacity:.55; }
button:focus-visible { outline:3px solid #b46b33; outline-offset:4px; }
.booking-calendar { border:1px solid var(--line); padding:25px; align-self:start; }
.calendar-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.calendar-toolbar h2 { margin:0; font-size:30px; letter-spacing:-.04em; }
.calendar-toolbar button { border:1px solid var(--line); color:var(--ink); background:transparent; min-width:40px; height:40px; font-size:20px; }
.calendar-status { color:var(--muted); font-size:12px; margin:22px 0; min-height:40px; }
.calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.calendar-weekdays { text-align:center; font-size:10px; color:var(--muted); margin-bottom:10px; }
.calendar-days>button { border:1px solid var(--line); background:#fffdf7; color:var(--ink); font-size:13px; min-width:0; padding:0; height:50px; }
.calendar-days>button:hover:not(:disabled) { background:var(--soft); border-color:var(--ink); }
.calendar-days>button.booked { background:#e5dfd8; color:#674d40; text-decoration:line-through; opacity:1; }
.calendar-days>button.is-selected { background:var(--ink); color:var(--paper); }
.calendar-days>button[aria-current=date] { border:2px solid var(--ink); }
.calendar-legend { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:23px; font-size:10px; }
.calendar-legend i { display:inline-block; width:10px; height:10px; border:1px solid var(--line); margin-right:5px; }
.legend-booked { background:#e5dfd8; }.legend-selected { background:var(--ink); }
.text-button { background:none; border:0; border-bottom:1px solid currentColor; color:var(--ink); padding:0 0 3px; margin-top:20px; font-size:11px; }
.town-photos { display:grid; grid-template-columns:1.5fr 1.3333fr; gap:24px; align-items:start; }
.town-photos img { height:auto; }
.town-photos small { display:block; font-size:9px; padding-top:6px; }
.town-photos small a { text-decoration:underline; }
.town-offers { background:var(--soft); }
.town-offers h2 { font-size:44px; }
.regional-location { display:grid; grid-template-columns:1fr 1.2fr; gap:6vw; align-items:center; }
.regional-location .section-intro { text-align:left; margin-bottom:20px; }
.regional-location .section-intro p:last-child { margin:0; }
.regional-map { height:540px; width:100%; border:1px solid var(--line); background:var(--soft); z-index:0; }
.map-fallback { padding:30px; font-size:13px; }
.city-links { display:grid; grid-template-columns:1fr 1fr; gap:10px; font-size:11px; }
.city-links a { text-decoration:underline; text-underline-offset:4px; }
.city-label { font-family:var(--sans); font-size:11px; border:0!important; box-shadow:none!important; padding:3px 6px!important; background:#fffdf5ec!important; }
.city-label-lockhart { color:#71422f; font-weight:bold; }
.leaflet-container img.leaflet-tile { width:256px; height:256px; max-width:none; object-fit:fill; }
.leaflet-container { font-family:var(--sans); }
.leaflet-control a { color:#284131; }
.legal-copy { max-width:900px; margin:auto; padding-top:0; }
.legal-copy h2 { font-size:30px; margin-top:35px; }
.legal-copy p { font-size:14px; color:var(--muted); }
.legacy-content { max-width:1000px; margin:auto; }
.legacy-content .container { width:100%; }
.legacy-content .page-title { font-size:46px; }
.legacy-content p,.legacy-content li { font-size:14px; }
.legacy-content label { display:block; margin-bottom:20px; }
.legacy-content .rating-option,.legacy-content .radio-option { display:flex; align-items:center; }
.legacy-content h2 { font-size:34px; margin-top:35px; }
.legacy-content button,.legacy-content input[type=submit] { width:auto; padding:15px 25px; background:var(--ink); color:var(--paper); border:0; }
.legacy-content .contact-status { display:none; }.legacy-content .contact-status.is-visible { display:block; padding:20px; background:var(--soft); }
footer>nav { display:flex; flex-direction:column; gap:7px; }
.footer-bottom { grid-column:1/-1; display:flex; justify-content:space-between; gap:20px; font-size:10px; border-top:1px solid var(--line); padding-top:25px; }
.footer-bottom p { margin:0; }
.footer-bottom nav { display:flex; gap:20px; }
@media(max-width:1100px) {
 .site-header { min-height:85px; }
 .nav-toggle { display:flex; align-items:center; gap:12px; padding:10px 0 10px 18px; border:0; color:var(--ink); background:transparent; font-size:13px; }
 .site-nav { position:absolute; top:100%; left:0; right:0; background:var(--paper); padding:15px 5vw 25px; display:none; flex-direction:column; align-items:stretch; gap:0; border-bottom:1px solid var(--line); max-height:75vh; overflow-y:auto; box-shadow:0 15px 20px #17302310; width:auto; }
 .site-nav.is-open { display:flex; }
 .site-nav>a,.nav-group>summary { display:flex; justify-content:space-between; font-size:15px; padding:14px 0; border-bottom:1px solid var(--line); }
 .nav-dropdown { position:static; box-shadow:none; border:0; padding:0 0 10px 20px; min-width:0; }
 .nav-dropdown>a { padding:12px 0; font-size:14px; }
 .site-nav .mobile-contact { display:block; }
 .contact-layout,.booking-layout { gap:4vw; }
 .booking-calendar { padding:18px; }
 .calendar-days>button { height:44px; }
 .package-overview { gap:20px; }
 .package-overview>article>div { padding:22px; }
}
@media(max-width:760px) {
 .site-header { flex-wrap:nowrap; gap:15px; padding:18px 5vw; }
 .page-intro { padding-top:50px; padding-bottom:40px; }
 .page-intro h1 { font-size:clamp(3rem,11vw,4.5rem); }
 .page-intro>p:last-child { font-size:14px; }
 .section-after-intro { padding-top:0; }
 .section-compact { padding-top:25px; padding-bottom:40px; }
 .gallery-two,.gallery-three,.garden-invitation,.location,.prose-layout,.contact-layout,.booking-layout,.package-overview,.town-photos,.regional-location { grid-template-columns:1fr; gap:35px; }
 .photo-gallery,.gallery-stack { gap:24px; }
 .gallery-stacked { grid-template-columns:1fr; }
 .gallery-row { flex-direction:column; gap:24px; }
 .gallery-row>figure { flex:none; width:100%; }
 .concert-stage { grid-template-columns:1fr; gap:28px; margin:35px 0 45px; }
 .concert-stage h3 { font-size:36px; }
 .concert-gallery-heading { display:block; margin-bottom:35px; }
 .concert-gallery-heading>p { margin:24px 0 0; }
 .concert-collage { gap:24px; }
 .concert-photo-row { flex-direction:column; gap:24px; }
 .concert-photo-row>.concert-photo { flex:none; width:100%; }
 .concert-interlude { flex-wrap:wrap; gap:18px; padding:22px 0; }
 .concert-interlude>p { font-size:26px; }
 .concert-interlude .text-link { font-size:10px; margin-top:0; }
 .concert-photo figcaption { gap:9px; font-size:10px; }
 .concert-gallery-note { margin-top:35px; }
 .holiday-film { grid-template-columns:1fr; gap:32px; }
 .holiday-film-copy { max-width:none; justify-self:start; }
 .gallery-flowers { display:block; columns:2; column-gap:18px; }
 .gallery-flowers .gallery-row { display:contents; }
 .gallery-flowers figure { display:inline-block; margin-bottom:23px; }
 .wedding-intro,.event-archive,.concert-archive,#landscapes,.flowers-section { padding-top:55px; padding-bottom:55px; }
 .wedding-moments { padding-top:0; padding-bottom:55px; }
 .wedding-gallery { gap:18px; }
 .garden-invitation>div:first-child { height:340px; }
 .location iframe { height:340px; }
 .prose-layout h3 { font-size:28px; }
 .package-overview>article>img { height:280px; }
 .package-overview>article>div { padding:25px; }
 .form-grid { grid-template-columns:1fr; gap:20px; }
 .contact-welcome { padding-top:0; }
 .contact-welcome h2 { font-size:36px; }
 .contact-welcome>p { max-width:none; }
 .contact-details { display:grid; grid-template-columns:1fr; gap:0; margin:25px 0; padding-top:20px; }
 .contact-garden { display:none; }
 .contact-form-panel { padding:28px 22px; }
 .contact-form-panel>.eyebrow { font-size:8px; }
 .inquiry-section legend { font-size:27px; }
 .booking-calendar { padding:18px; }
 .calendar-toolbar h2 { font-size:29px; }
 .calendar-days>button { height:40px; font-size:12px; }
 .calendar-days,.calendar-weekdays { gap:4px; }
 .regional-map { height:460px; }
 .town-photos { gap:30px; }
 .town-offers h2 { font-size:40px; }
 .footer-bottom { flex-direction:column; gap:12px; }
 .footer-bottom nav { flex-wrap:wrap; gap:18px; }
}

@media(max-width:760px) { .page-concerts.botanical .hero-image { height:340px; } }

/* Final finishing pass: readable actions, balanced text, and a clear inquiry path. */
::selection { background:#cbd8bd; color:#1e3529; }
h1,h2,h3 { text-wrap:balance; }
.button { min-height:48px; font-size:12px; padding:15px 22px; }
.button:hover { background:#365343; }
.button.secondary:hover { background:var(--soft); }
.package-card.featured .button:hover { background:#e7e9df; }
.text-link { padding:10px 0 8px; line-height:1.6; min-height:38px; }
.header-cta { padding:12px 0; }
.site-nav>a,.nav-group>summary { min-height:44px; display:flex; align-items:center; font-size:13px; }
.site-nav>.mobile-contact { display:none; }
.nav-dropdown { top:calc(100% + 6px); }
.nav-dropdown>a { padding:12px 0; }
.nav-dropdown>a[aria-current] { font-weight:600; }
.page-intro+.prose-layout { padding-top:22px; }
.prose-layout { align-items:center; }
.prose-layout>div>h3:first-child { margin-top:0; }
.package-overview>article { display:flex; flex-direction:column; }
.package-overview>article>div { flex:1; display:flex; flex-direction:column; align-items:start; }
.package-overview .button { margin-top:auto; }
.contact-layout>.contact-form-panel { grid-column:2; grid-row:1; }
.contact-layout>.contact-welcome { grid-column:1; grid-row:1; }
.booking-layout { align-items:start; gap:5vw; }
.booking-calendar { background:#fffdf7; }
.calendar-toolbar button { min-width:44px; height:44px; }
.calendar-days>button:not(:disabled):hover { outline:1px solid var(--ink); }
.calendar-days>button.is-selected:hover { background:var(--ink); }
.inquiry-form fieldset { min-width:0; }
.form-options>label { display:flex; align-items:center; gap:10px; min-height:30px; }
.form-options input[type=checkbox] { flex-shrink:0; margin:0; }
.field-help,.form-note { font-size:12px; }
.form-status[hidden],.legacy-content .status-message:empty,.legacy-content .hidden-fields-container { display:none; }
.legacy-content .status-message.is-visible { padding:18px; background:var(--soft); border:1px solid var(--line); margin-bottom:24px; }
.legacy-content .page-title { font-size:clamp(40px,4.5vw,64px); }
footer { grid-template-columns:1.2fr 1fr 1.5fr; gap:35px; }
.footer-contact { display:flex; flex-direction:column; align-items:start; font-size:12px; }
.footer-contact .eyebrow { font-size:9px; margin-bottom:12px; }
.footer-contact>a { padding:5px 0; overflow-wrap:anywhere; max-width:100%; }
footer>nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; gap:3px 25px; }
footer>nav>a { padding:6px 0; }
footer a:hover { text-decoration:underline; text-underline-offset:4px; }
.footer-bottom { padding-top:18px; align-items:center; }
.footer-bottom nav>a { padding:8px 0; }
@media(min-width:1101px) and (min-height:850px) {
 .booking-calendar { position:sticky; top:126px; }
}
@media(max-width:1100px) {
 .site-nav>.mobile-contact { display:flex; }
 .site-nav>a,.nav-group>summary { font-size:15px; }
 .nav-dropdown { padding-left:20px; }
 footer { grid-template-columns:1fr 1fr; }
 .footer-brand { grid-column:1/-1; }
}
@media(max-width:760px) {
 .site-header { min-height:82px; padding-top:14px; padding-bottom:14px; }
 html { scroll-padding-top:100px; }
 .page-intro { padding-top:40px; }
 .button { font-size:12px; }
 .actions { gap:12px; }
 .contact-layout>.contact-form-panel,.contact-layout>.contact-welcome { grid-column:1; grid-row:auto; }
 .contact-layout>.contact-welcome { padding-top:12px; }
 .contact-details { margin:22px 0; }
 .booking-layout { gap:28px; }
 .contact-form-panel { padding:26px 20px; }
 .page-intro+.prose-layout { padding-top:0; }
 .visit { padding-top:60px; padding-bottom:60px; }
 footer { grid-template-columns:1fr; gap:28px; }
 .footer-brand { grid-column:1; }
 .footer-contact { font-size:13px; }
 footer>nav { gap:5px 22px; }
 footer>nav>a { padding:9px 0; font-size:12px; }
 .footer-bottom { align-items:start; }
}
