/* Weddings: shared Femibranded typography, ivory, ink, and a little gold. */
.wedding-page { --wedding-text: #302b26; --wedding-muted: #696158; --wedding-line: #d4ccc0; background: var(--paper); color: var(--wedding-text); }
.wedding-page main { padding: 0; }
.wedding-page section[id] { scroll-margin-top: var(--nav-h); }
.wedding-page :focus-visible { outline: 2px solid var(--gold-dim); outline-offset: 5px; }
.wedding-page .nav { background: rgba(246,243,238,.96); border-bottom: 1px solid var(--wedding-line); gap: 24px; }
.wedding-page .nav-logo, .wedding-page .nav-links a { color: var(--wedding-text); text-shadow: none; }
.wedding-page .nav-links { gap: clamp(20px,2.2vw,36px); }
.wedding-page .nav-links a.nav-accent { color: var(--gold-dim); }
.brand-return { font-size: 11px; text-decoration: none; color: var(--wedding-muted); padding: 12px 0; white-space: nowrap; }
.brand-return span { margin-left: 5px; }
.wedding-page .nav-menu-btn span { background: var(--wedding-text); }
.wedding-page .nav-overlay { background: var(--paper); padding: calc(var(--nav-h) + 24px) var(--gutter) 24px; overflow-y: auto; align-items: flex-start; }
.wedding-page .nav-overlay-links { margin-block: auto; }
.wedding-page .nav-overlay-links a { color: var(--wedding-text); font-size: clamp(1.7rem,6vw,2.2rem); line-height: 1.15; padding: .22em 0; }
.wedding-page .nav-overlay-links a.nav-accent { color: var(--gold-dim); }
.wedding-page .nav-overlay-links .mobile-brand-return { font-family: var(--sans); font-size: .8rem; margin-top: 24px; padding: 16px 0; border-top: 1px solid var(--wedding-line); }
.wedding-eyebrow { font-size: .6875rem; font-weight: 400; letter-spacing: .19em; line-height: 1.8; text-transform: uppercase; color: var(--gold-dim); margin-bottom: 24px; }
.wedding-page h1, .wedding-page h2, .wedding-page h3 { font-family: var(--serif); font-weight: 400; }
.wedding-page h1 em, .wedding-page h2 em { font-weight: 300; }
.wedding-page h2 { font-size: clamp(2.5rem,4.2vw,4rem); line-height: 1.06; }
.wedding-button { background: var(--wedding-text); border-color: var(--wedding-text); color: var(--paper); letter-spacing: .12em; padding: 18px 28px; line-height: 1.5; }
.wedding-button:hover { color: var(--ink); background: var(--gold); border-color: var(--gold); }
.wedding-button:disabled { opacity: .6; cursor: wait; }
.wedding-text-link { display: inline-flex; align-items: center; gap: 12px; font-size: .8125rem; line-height: 1.6; text-decoration: none; padding: 12px 0; border-bottom: 1px solid var(--wedding-line); width: fit-content; }
.wedding-text-link:hover { color: var(--gold-dim); border-color: var(--gold-dim); }
.wedding-section-inner { max-width: var(--container); margin: auto; }
.wedding-section-heading { max-width: 45rem; margin-bottom: 48px; }
.wedding-section-heading > p:last-child:not(.wedding-eyebrow) { color: var(--wedding-muted); line-height: 1.8; max-width: 33rem; margin-top: 24px; }

.wedding-hero { padding: calc(var(--nav-h) + 48px) var(--gutter) 72px; }
.wedding-hero-inner { max-width: 1320px; margin: auto; display: grid; grid-template-columns: 1fr .95fr; gap: clamp(32px,5vw,96px); align-items: center; }
.wedding-hero h1 { font-size: clamp(3.8rem,6.2vw,6.5rem); line-height: .98; letter-spacing: -.035em; }
.wedding-hero h1 em { color: var(--gold-dim); line-height: 1.15; }
.wedding-intro { max-width: 23rem; margin: 28px 0 32px; color: var(--wedding-muted); font-size: 1rem; line-height: 1.8; }
.hero-location { font-size: .75rem; line-height: 1.8; color: var(--wedding-muted); margin-top: 24px; }
.wedding-hero-image { width: 100%; max-width: 480px; justify-self: end; }
.wedding-hero-image img { width: 100%; height: auto; }
.wedding-hero-image figcaption, .experience-image figcaption { font-size: .6875rem; letter-spacing: .09em; color: var(--wedding-muted); margin-top: 12px; line-height: 1.7; }
.wedding-hero-image figcaption { text-align: right; }
.wedding-section-nav { padding: 24px var(--gutter); border-top: 1px solid var(--wedding-line); display: flex; justify-content: space-between; gap: 24px; align-items: center; font-size: .75rem; line-height: 1.8; }
.wedding-section-nav > span { color: var(--gold-dim); }
.wedding-section-nav > div { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.wedding-section-nav a { text-decoration: none; padding-block: 8px; }
.wedding-section-nav a:hover { text-decoration: underline; text-underline-offset: 5px; }

.wedding-work { background: #efebe4; border-top: 1px solid var(--wedding-line); }
.work-heading { max-width: none; display: flex; align-items: end; justify-content: space-between; gap: 48px; }
.work-heading h2 { max-width: 35rem; }
.work-heading > p:last-child { max-width: 20rem !important; font-size: .9375rem; }
.wedding-story-spread { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(32px,6vw,96px); align-items: start; }
.wedding-story-spread a:not(.wedding-text-link) { display: block; }
.wedding-story-spread img { width: 100%; height: auto; }
.wedding-story-spread figcaption { margin-top: 12px; font-family: var(--serif); font-size: 1.125rem; font-style: italic; color: var(--wedding-muted); }
.story-right { margin-top: 96px; }
.story-detail { margin-top: 48px; border-top: 1px solid var(--wedding-line); padding-top: 24px; }
.story-detail .wedding-eyebrow { font-size: .625rem; display: block; margin-bottom: 12px; }
.story-detail h3 { font-size: 2.4rem; line-height: 1.1; margin-bottom: 16px; }
.story-count { font-size: .6875rem; color: var(--wedding-muted); padding-left: 8px; }
.coverage-price strong { font-family: var(--serif); font-size: 2.1rem; font-weight: 400; }
.coverage-inclusions { margin-top: 16px; list-style: none; color: var(--on-ink-70); font-size: .8125rem; line-height: 1.8; }
.coverage-inclusions li { padding: 5px 0; border-top: 1px solid var(--on-ink-10); }
.engagement-gallery-link { display: inline-block; color: var(--gold-light); font-size: .8125rem; margin-top: 20px; text-underline-offset: 5px; }

.wedding-experience-inner { max-width: 1100px; margin: auto; display: grid; grid-template-columns: .8fr 1fr; align-items: center; gap: clamp(40px,7vw,110px); }
.experience-image img { width: 100%; height: auto; }
.experience-copy h2 { font-size: clamp(2.5rem,3.7vw,3.5rem); }
.experience-copy > p:not(.wedding-eyebrow):not(.femi-signature) { color: var(--wedding-muted); line-height: 1.8; margin: 24px 0; }
.wedding-approach > div { border-top: 1px solid var(--wedding-line); padding: 20px 0; }
.wedding-approach dt { font-size: .875rem; font-weight: 500; margin-bottom: 8px; }
.wedding-approach dd { color: var(--wedding-muted); font-size: .9375rem; line-height: 1.8; }
.femi-signature { font-family: var(--serif); font-size: 1.75rem; font-style: italic; margin-top: 16px; }

.wedding-investment { background: var(--ink-1); color: var(--paper); }
.wedding-investment .wedding-eyebrow { color: var(--gold); }
.wedding-investment h2 em { color: var(--gold-light); }
.wedding-investment .wedding-section-heading > p:last-child { color: var(--on-ink-70); }
.coverage-list article { display: grid; grid-template-columns: 24px .8fr 1.3fr 1fr; gap: 32px; align-items: start; padding: 36px 0; border-top: 1px solid rgba(246,243,238,.25); }
.coverage-number { color: var(--gold); font-size: .6875rem; padding-top: 12px; }
.coverage-list h3 { font-size: 2.5rem; }
.coverage-list article > div > p:first-child { color: var(--on-ink-70); font-size: .9375rem; line-height: 1.8; }
.coverage-price { color: var(--gold-light); margin-top: 16px; font-size: .8125rem; line-height: 1.7; }
.wedding-investment .wedding-text-link { border-color: rgba(246,243,238,.3); color: var(--paper); padding-top: 8px; }
.wedding-investment .wedding-text-link:hover { color: var(--gold-light); }
.coverage-note { color: var(--on-ink-70); font-size: .875rem; line-height: 1.8; padding-top: 24px; border-top: 1px solid rgba(246,243,238,.25); max-width: 45rem; }

.questions-inner { max-width: var(--container); margin: auto; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(40px,7vw,96px); }
.wedding-faq details { border-bottom: 1px solid var(--wedding-line); }
.wedding-faq details:first-child { border-top: 1px solid var(--wedding-line); }
.wedding-faq summary { cursor: pointer; font-size: 1rem; line-height: 1.6; font-weight: 400; padding: 24px 32px 24px 0; position: relative; list-style: none; }
.wedding-faq summary::-webkit-details-marker { display: none; }
.wedding-faq summary::after { content: '+'; position: absolute; top: 22px; right: 4px; font-family: var(--serif); font-size: 1.5rem; color: var(--gold-dim); }
.wedding-faq details[open] summary::after { content: '−'; }
.wedding-faq details p { color: var(--wedding-muted); font-size: .9375rem; line-height: 1.8; padding: 0 32px 24px 0; }

.wedding-inquiry { background: #eae5dc; }
.inquiry-inner { max-width: var(--container); margin: auto; display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(40px,7vw,100px); align-items: start; }
.inquiry-intro > p:not(.wedding-eyebrow):not(.inquiry-location) { max-width: 25rem; color: var(--wedding-muted); line-height: 1.8; margin: 24px 0; }
.inquiry-email { font-size: .9375rem; text-underline-offset: 5px; overflow-wrap: anywhere; }
.inquiry-location { font-size: .75rem; line-height: 1.8; margin-top: 20px; color: var(--wedding-muted); }
.wedding-form { display: flex; flex-direction: column; gap: 24px; }
.wedding-form[hidden], .wedding-confirmation[hidden] { display: none; }
.form-note { font-size: .75rem; color: var(--wedding-muted); }
.wedding-form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.wedding-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.wedding-field label { font-size: .6875rem; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; line-height: 1.6; }
.wedding-field input, .wedding-field select, .wedding-field textarea { width: 100%; min-height: 44px; font: inherit; font-size: 1rem; line-height: 1.6; color: var(--wedding-text); background: transparent; padding: 10px 0; border: 0; border-bottom: 1px solid #9e9588; border-radius: 0; }
.wedding-field input::placeholder, .wedding-field textarea::placeholder { color: #6d665e; opacity: 1; }
.wedding-field select { appearance: none; -webkit-appearance: none; padding-right: 24px; background-image: linear-gradient(45deg, transparent 50%, var(--wedding-text) 50%), linear-gradient(135deg, var(--wedding-text) 50%, transparent 50%); background-position: calc(100% - 10px) 50%, calc(100% - 5px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.wedding-field textarea { resize: vertical; min-height: 110px; }
.wedding-form .wedding-button { align-self: flex-start; }
.wedding-page .hp-field { position: absolute; left: -5000px; width: 1px; height: 1px; overflow: hidden; }
.wedding-confirmation { border-top: 1px solid var(--wedding-line); padding-top: 32px; }
.wedding-confirmation h3 { font-size: 2.5rem; line-height: 1.1; }
.wedding-confirmation > p:not(.wedding-eyebrow) { margin: 20px 0; line-height: 1.8; }

.wedding-gallery { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; border: 0; padding: 24px var(--gutter); background: var(--ink); color: var(--paper); overflow-y: auto; }
.wedding-gallery[open] { display: grid; grid-template-rows: auto minmax(0,1fr) auto; gap: 16px; }
.wedding-gallery::backdrop { background: var(--ink); }
.gallery-toolbar, .gallery-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.wedding-page .gallery-toolbar h2 { font-size: 1.5rem; }
.gallery-close, .gallery-controls button { min-height: 44px; padding: 8px 12px; font-size: .8125rem; color: var(--paper); }
.gallery-close { flex-shrink: 0; white-space: nowrap; }
.gallery-close span { font-size: 1.5rem; margin-left: 8px; }
.gallery-figure { display: flex; flex-direction: column; min-height: 0; align-items: center; gap: 12px; }
.gallery-image { flex: 1; min-height: 0; height: 100%; width: 100%; object-fit: contain; }
.gallery-figure figcaption, .gallery-count { font-size: .8125rem; line-height: 1.6; color: var(--on-ink-70); }
.wedding-page .site-footer { color: var(--paper); }
.wedding-page .footer-socials { flex-wrap: wrap; }

@media (max-width: 1180px) { .brand-return { display: none; } .coverage-list article { grid-template-columns: 24px .8fr 1.3fr; } .coverage-list .wedding-text-link { grid-column: 3; } }
@media (max-width: 1000px) { .wedding-page .nav-links { display: none; } .wedding-page .nav-menu-btn { display: flex; } .brand-return { display: block; margin-left: auto; } .wedding-hero h1 { font-size: 4rem; } .work-heading { align-items: start; flex-direction: column; gap: 0; } .work-heading > p:last-child { max-width: 32rem !important; } .wedding-experience-inner { gap: 40px; } .inquiry-inner { grid-template-columns: 1fr; gap: 48px; } .inquiry-intro { max-width: 34rem; } }
@media (max-width: 760px) {
  .wedding-section-nav { flex-direction: column; align-items: start; gap: 12px; }
  .brand-return { display: none; }
  .wedding-hero { padding-top: calc(var(--nav-h) + 36px); padding-bottom: 48px; }
  .wedding-hero-inner { grid-template-columns: 1fr; gap: 36px; }
  .wedding-hero-copy { max-width: 34rem; }
  .wedding-hero-image { width: 100%; max-width: 32rem; margin: auto; }
  .wedding-hero h1 { font-size: 3.6rem; }
  .wedding-story-spread { grid-template-columns: 1fr; gap: 36px; }
  .story-portrait { width: 82%; }
  .story-right { margin-top: 0; }
  .story-detail { margin-top: 32px; }
  .story-count { display: none; }
  .wedding-experience-inner { grid-template-columns: 1fr; gap: 32px; }
  .experience-image { width: 80%; max-width: 22rem; margin: auto; }
  .experience-copy { order: -1; }
  .coverage-list article { grid-template-columns: 24px 1fr; gap: 16px; }
  .coverage-list article > div, .coverage-list .wedding-text-link { grid-column: 2; }
  .coverage-list h3 { font-size: 2.25rem; }
  .questions-inner { grid-template-columns: 1fr; gap: 32px; }
  .wedding-form-row { grid-template-columns: 1fr; }
  .wedding-gallery { padding: 16px; }
  .wedding-page .gallery-toolbar h2 { font-size: 1.25rem; }
}
@media (max-width: 380px) { .wedding-hero h1 { font-size: 3.2rem; } .wedding-button { padding: 16px 20px; letter-spacing: .07em; } }
