.eyebrow { display: flex; align-items: center; gap: .7rem; color: var(--gold); font: 800 .65rem/1 var(--sans); letter-spacing: .19em; text-transform: uppercase; margin: 0 0 1.25rem; }
.eyebrow span { width: 24px; height: 1px; background: currentColor; display: inline-block; }
.eyebrow.light { color: var(--gold-light); justify-content: center; }
.btn-gold, .btn-outline-light { border: 1px solid transparent; border-radius: var(--radius-pill); display: inline-flex; justify-content: center; align-items: center; gap: .65rem; padding: .95rem 1.35rem; font: 800 .7rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.btn-gold { color: #1a1f1c; background: var(--gold); box-shadow: 0 10px 25px rgba(198,154,75,.24); }
.btn-gold:hover { color: #1a1f1c; background: #dcb466; transform: translateY(-2px); box-shadow: 0 15px 30px rgba(198,154,75,.32); }
.btn-outline-light { border-color: rgba(255,255,255,.55); color: var(--warm-white); background: transparent; }
.btn-outline-light:hover { color: var(--forest); background: var(--warm-white); }
.btn-text { color: var(--warm-white); display: inline-flex; gap: .45rem; align-items: center; border-bottom: 1px solid rgba(255,255,255,.45); padding-bottom: .35rem; font: 700 .69rem/1 var(--sans); letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.btn-text.dark { color: var(--ink); border-color: var(--gold); }
.section-heading h2, .copy-panel h2, .rsvp-copy h2, .venue-card h2 { font: 500 clamp(2.7rem,5.3vw,4.5rem)/.88 var(--serif); letter-spacing: -.04em; margin: 0; color: var(--ink); }
.section-heading h2 em, .rsvp-copy h2 em { color: var(--gold); font-weight: 500; }
.section-heading.centered { max-width: 720px; margin: 0 auto 3.5rem; text-align: center; }.section-heading.centered .eyebrow { justify-content: center; }
.lede { color: var(--muted); font: 400 1rem/1.8 var(--sans); max-width: 600px; margin: 1.35rem 0 0; }
.section-heading.centered .lede { margin-inline: auto; }
.detail-card { padding: 2.2rem 1.6rem; text-align: center; border: 1px solid var(--line); background: var(--warm-white); }.detail-card i { color: var(--gold); font-size: 1.2rem; margin-bottom: 1.25rem; }.detail-label { color: var(--gold); font: 800 .62rem/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; margin-bottom: .8rem; }.detail-card h3 { font: 600 1.75rem/1 var(--serif); margin: 0 0 .5rem; }.detail-card p:not(.detail-label) { color: var(--muted); font: .76rem/1.5 var(--sans); margin: 0; }.feature-detail { background: var(--forest); border-color: var(--forest); }.feature-detail h3, .feature-detail p:not(.detail-label) { color: var(--warm-white); }
.guideline-card { padding: 2rem; background: var(--warm-white); box-shadow: var(--shadow-soft); border-radius: var(--radius-sm); transition: transform .3s ease; }.guideline-card:hover { transform: translateY(-7px); }.guideline-card i { color: var(--gold); font-size: 1.3rem; }.guideline-card h3 { font: 600 1.55rem var(--serif); margin: 1.5rem 0 .55rem; }.guideline-card p { margin: 0; color: var(--muted); font: .78rem/1.7 var(--sans); }
.gallery-item { position: relative; min-height: 310px; width: 100%; padding: 0; overflow: hidden; border: 0; cursor: zoom-in; background: linear-gradient(135deg,#1d3028,#b88740); }.gallery-item::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 70% 25%,rgba(255,245,206,.5),transparent 26%),linear-gradient(160deg,transparent,rgba(11,25,20,.7)); z-index: 1; }.gallery-item img { width: 100%; height: 100%; min-height: 310px; position: absolute; inset: 0; object-fit: cover; transition: transform .7s ease; }.gallery-item:hover img { transform: scale(1.06); }.gallery-caption { position: absolute; z-index: 2; left: 1.35rem; right: 1.35rem; bottom: 1.2rem; color: #fff; font: 500 1.45rem/1 var(--serif); text-align: left; display: flex; justify-content: space-between; align-items: center; }.gallery-caption i { font-size: .7rem; }.gallery-fallback { color: var(--gold-light); display: none; position: absolute; z-index: 2; inset: 0; align-items: center; justify-content: center; gap: .5rem; font: 700 .68rem/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; }.gallery-item.photo-missing .gallery-fallback { display: flex; }
.floating-actions { position: fixed; z-index: 12; right: 1.5rem; bottom: 1.5rem; display: flex; flex-direction: column-reverse; align-items: flex-end; gap: .8rem; }.fab-toggle { width: 55px; height: 55px; border: 0; color: var(--forest); background: var(--gold); border-radius: 50%; box-shadow: var(--shadow-deep); transition: transform .3s; }.fab-toggle i { transition: transform .3s; }.floating-actions.open .fab-toggle i { transform: rotate(45deg); }.fab-menu { display: flex; flex-direction: column; gap: .6rem; opacity: 0; pointer-events: none; transform: translateY(10px); transition: .25s; }.floating-actions.open .fab-menu { opacity: 1; pointer-events: auto; transform: none; }.fab-menu a { display: flex; align-items: center; gap: .7rem; color: var(--ink); text-decoration: none; }.fab-menu i { width: 38px; height: 38px; display: grid; place-items: center; color: var(--forest); background: var(--warm-white); border-radius: 50%; box-shadow: var(--shadow-soft); }.fab-menu span { border-radius: var(--radius-pill); padding: .5rem .75rem; color: var(--warm-white); background: var(--forest); font: 700 .62rem/1 var(--sans); letter-spacing: .05em; text-transform: uppercase; }
.music-button { position: fixed; z-index: 11; left: 1.5rem; bottom: 1.5rem; display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid rgba(198,154,75,.5); border-radius: 50%; background: var(--forest); color: var(--gold-light); }.music-button.playing { animation: pulse 1.6s infinite; }
.lightbox { position: fixed; z-index: 1060; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; background: rgba(8, 18, 14, .94); padding: 3rem 1.5rem; }.lightbox img { max-height: min(75vh,800px); max-width: min(90vw,1000px); object-fit: contain; }.lightbox p { color: var(--warm-white); font: 500 1.3rem var(--serif); margin: 0; }.lightbox-close { position: absolute; right: 1.6rem; top: 1rem; border: 0; color: var(--warm-white); background: none; font: 2.5rem/1 var(--serif); }
