/* Weddings refinement: preserve the Ranch's sage, ivory and editorial photography. */
.er-wedding-page { --wedding-ease: cubic-bezier(.23,1,.32,1); }
.er-wedding-page ::selection { background:#d7e0cf; color:#223b30; }
.er-wedding-page main h1,.er-wedding-page main h2 { letter-spacing:-.03em; text-wrap:balance; }
.er-wedding-page main .eyebrow { display:none; }
.er-wedding-page .hero { height:auto; min-height:660px; display:flex; flex-direction:column; justify-content:center; }
.er-wedding-page .hero-copy { width:100%; max-width:820px; padding:72px 6.5vw 48px; }
.er-wedding-page .hero h1 { font-size:clamp(58px,6.5vw,96px); line-height:1.02; margin-bottom:28px; }
.er-wedding-page .hero h1 em { display:block; font-size:.55em; line-height:1.15; margin-top:20px; max-width:20ch; }
.er-wedding-page .hero-description { font-size:16px; max-width:46ch; }
.er-wedding-page .hero-actions { flex-wrap:wrap; gap:16px 28px; margin-top:28px; }
.er-wedding-page .hero-foot { position:relative; inset:auto; margin:0 6.5vw 28px; flex-wrap:wrap; }
.er-wedding-page .hero-foot a { min-height:44px; display:inline-flex; align-items:center; }
.er-wedding-page .hero-shade { background:linear-gradient(90deg,rgba(21,35,27,.78),rgba(21,35,27,.4) 46%,rgba(21,35,27,.06) 85%); }
.er-wedding-page .section { padding-top:clamp(64px,7vw,104px); padding-bottom:clamp(64px,7vw,104px); }
.er-wedding-page main :is(.feature-grid p,.section-heading p:last-child,.gallery-bottom p,.pricing-benefits,.accordion p,.location p:not(.eyebrow),.location address,.steps-grid p,.story p:not(.eyebrow),.final-cta p:not(.eyebrow)) { font-size:16px; line-height:1.65; }
.er-wedding-page .proof-strip span { font-size:14px; color:#53634f; }
.er-wedding-page .feature-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 48px; max-width:1000px; margin:40px auto 0; }
.er-wedding-page .feature-icon { display:none; }
.er-wedding-page .feature-grid h3 { font-size:28px; margin-bottom:10px; }
.er-wedding-page .feature-grid p { color:#4d5b48; }
.er-wedding-page .section-heading { gap:32px; }
.er-wedding-page :is(.button,.text-button,.link) { min-height:48px; font-size:16px; }
.er-wedding-page .button { background:#435f4d; gap:20px; transition:background-color 160ms ease,transform 160ms var(--wedding-ease); }
.er-wedding-page .button.ivory { background:var(--cream); color:var(--green); }
.er-wedding-page .button:hover { transform:none; }
.er-wedding-page .gallery-tile:hover img { transform:none; }
.er-wedding-page .gallery-tile img { transition:transform 240ms var(--wedding-ease); }
.er-wedding-page :is(a,button,summary):focus-visible { outline:3px solid #b79b68; outline-offset:5px; }
.er-wedding-page main :is(a,button,summary):focus-visible { box-shadow:0 0 0 2px var(--cream); }
.er-wedding-page .pricing { background:#435f4d; }
.er-wedding-page .pricing-copy { padding-top:64px; padding-bottom:64px; }
.er-wedding-page .pricing > img { min-height:580px; }
.er-wedding-page .fine-print { font-size:14px; color:#e1e7dc; max-width:52ch; }
.er-wedding-page .pricing-benefits span::before { color:#e1e7dc; }
.er-wedding-page .accordion summary { min-height:48px; font-weight:500; }
.er-wedding-page .accordion p { color:#4d5b48; }
.er-wedding-page .lightbox-controls button,.er-wedding-page .dialog-close { min-width:48px; min-height:48px; }
.er-wedding-page .gallery-grid,.er-wedding-page .experience-grid { scrollbar-color:#63766e #efede3; scrollbar-width:thin; }
.er-wedding-page .steps-grid p { min-height:0; }
.er-wedding-page .final-cta h2 { font-size:clamp(52px,7vw,96px); }
@media(hover:hover) and (pointer:fine) {
 .er-wedding-page .button:hover { background:#354e3e; transform:translateY(-1px); }
 .er-wedding-page .button.ivory:hover { background:#fff; }
 .er-wedding-page .gallery-tile:hover img { transform:scale(1.025); }
 .er-wedding-page .button:active { transform:scale(.98); }
}
@media(max-width:1000px) {
 .er-wedding-page .hero { min-height:620px; }
 .er-wedding-page .hero-copy { max-width:720px; }
 .er-wedding-page .experience-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
 .er-wedding-page .experience-grid img { height:240px; }
}
@media(max-width:700px) {
 .er-wedding-page .hero { min-height:0; }
 .er-wedding-page .hero-copy { padding:52px 24px 32px; }
 .er-wedding-page .hero h1 { font-size:clamp(48px,11.5vw,72px); }
 .er-wedding-page .hero h1 em { font-size:.56em; margin-top:18px; }
 .er-wedding-page .hero-img { object-position:60% center; }
 .er-wedding-page .hero-shade { background:linear-gradient(90deg,rgba(21,35,27,.76),rgba(21,35,27,.46)); }
 .er-wedding-page .hero-description br { display:none; }
 .er-wedding-page .hero-actions { align-items:stretch; flex-direction:column; gap:12px; }
 .er-wedding-page .hero-actions .button { width:100%; gap:20px; font-size:16px; }
 .er-wedding-page .text-button { text-align:center; align-self:center; padding:12px 0; }
 .er-wedding-page .hero-foot { display:flex; margin:0 24px 24px; gap:4px 16px; font-size:12px; }
 .er-wedding-page .hero-foot a { display:none; }
 .er-wedding-page .proof-strip { gap:0; }
 .er-wedding-page .proof-strip strong { font-size:24px; }
 .er-wedding-page .proof-strip span { font-size:13px; }
 .er-wedding-page .feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 20px; }
 .er-wedding-page .feature-grid h3 { font-size:25px; }
 .er-wedding-page .feature-grid p br { display:none; }
 .er-wedding-page .gallery-tile { height:380px; }
 .er-wedding-page .experience-grid { display:flex; scroll-padding-inline:0; }
 .er-wedding-page .experience-grid article { flex:0 0 78%; }
 .er-wedding-page .experience-grid img { height:280px; }
 .er-wedding-page .pricing > img { min-height:0; height:340px; }
 .er-wedding-page .pricing-copy { padding:52px 24px; }
 .er-wedding-page .pricing .button { width:100%; gap:16px; }
 .er-wedding-page .intro-copy h2,.er-wedding-page .pricing h2,.er-wedding-page .reviews h2,.er-wedding-page .steps h2 { font-size:clamp(36px,9vw,46px); }
 .er-wedding-page .story h2 { font-size:clamp(36px,9vw,46px); }
 .er-wedding-page .image-frame img { height:auto; aspect-ratio:4/5; }
}
@media(prefers-reduced-motion:reduce) {
 .er-wedding-page .button:hover,.er-wedding-page .button:active,.er-wedding-page .gallery-tile:hover img { transform:none; }
}
/* The shared shell uses white text on these surfaces; deepen sage for contrast. */
.er-wedding-page :is(.features.section,.location.section,.pricing) { background:#435f4d !important; }
