/* Contrast and interaction refinements shared by every production page. */
:root { --muted: #595751; --orange: #c1512e; --accent-text: #a94324; --control-line: #827d73; }
.skip-link { position: fixed; top: 12px; left: 16px; z-index: 100; padding: 12px 18px; background: var(--ink); color: white; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
:where(a,button,summary,input,select,textarea,[tabindex]):focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; box-shadow: 0 0 0 6px var(--paper); }
.request-form :is(input,select,textarea):focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.button, .event-actions button, .admin-tabs button, .admin-title button { min-height: 44px; }
.nav > a:not(.button), .event-header nav > a, .footer-links a, .footer-links button { display: inline-flex; align-items: center; min-height: 28px; }
.cta-note { color: var(--muted); }
.next-steps span, .fit-note span, .editor-heading .section-label, .private-details-note span { color: var(--accent-text); }
.request-form input::placeholder, .event-editor input::placeholder, .event-editor textarea::placeholder { color: #69665f; opacity: 1; }
.request-form :is(input,select), .guided-choices span, .meet-date-options span, .admin-shell :is(input,textarea,select), .visibility-options span { border-color: var(--control-line); }
.event-reserve :is(input,textarea) { border-color: #aaa79f; }
.event-reserve textarea::placeholder { color: #aaa79f; opacity: 1; }
.event-reserve h2 em { color: #e7d68a; }
.event-reserve label span { color: #b9b6ae; }
.event-reserve .honeypot { grid-column: 1/-1; }
.event-reserve label:nth-child(4) { grid-column: auto; }
.event-reserve label:has(textarea) { grid-column: 1/-1; }
.event-info .event-details { background: #e8e5de; padding: 35px; }
.event-cover-copy { background: rgba(16,18,15,.82); margin: 80px 5vw 45px; padding: 55px 4vw; width: min(740px,90vw); }
.meet-date-options span small { opacity: 1; }
.guided-choices label, .meet-date-options label { position: relative; }
.request-form .guided-choices input, .request-form .meet-date-options input { width: 1px; height: 1px; padding: 0; border: 0; left: 0; top: 0; clip-path: inset(50%); }
.footer-links { align-items: center; }
footer small { color: #aaa79f; }
.handler-gallery-controls { align-items: center; background: #171816; }
.handler-gallery-controls button { height: 28px; background: transparent; position: relative; }
.handler-gallery-controls button::before { content: ''; display: block; height: 3px; width: 30px; background: #aaa79f; }
.handler-gallery-controls button.active::before { background: #dfc97e; }
.handler-gallery-controls [data-gallery-pause] { width: auto; min-height: 28px; color: white; font: 11px "DM Sans",sans-serif; padding: 0 6px; }
.handler-gallery-controls [data-gallery-pause]::before { display: none; }
.guided-choices input:focus-visible + span, .meet-date-options input:focus-visible + span, .visibility-options input:focus-visible + span { outline: 3px solid var(--ink); outline-offset: 3px; box-shadow: 0 0 0 6px var(--paper); }
.guided-step h3:focus, .form-success:focus, #main-content:focus { outline: none; }
.required-note { display: block; margin: 0 0 20px; color: var(--muted); font: 12px/1.5 "DM Sans",sans-serif; text-transform: none; }
.event-reserve .required-note { color: #b9b6ae; grid-column: 1/-1; margin: 0; }
.social-photo-caption { background: #171816; }
main :is(h1,h2,h3) { overflow-wrap: anywhere; }
.statement > *, .handler > *, .real-pack-copy > *, .hero > *, .event-info > *, .event-reserve > * { min-width: 0; }
@media (min-width: 821px) {
  .hero { height: auto; min-height: max(760px,100svh); }
  .handler { grid-template-rows: minmax(clamp(720px,82vh,920px),auto); }
  .image-break { height: auto; grid-template-rows: minmax(540px,auto); }
  .image-break > div { height: auto; min-height: 540px; overflow: visible; grid-column: 2; }
  .image-break > img { position: absolute; top: 0; left: 0; width: 64%; height: 100%; min-height: 540px; }
}
@media (min-width: 1101px) {
  .site-header .nav { background: var(--paper); padding: 10px 16px; gap: 24px; box-shadow: 0 1px 0 rgba(23,24,22,.12); }
}
@media (max-width: 1100px) {
  .site-header { background: var(--paper); height: 67px; padding: 0 22px; }
  .site-header .brand img { width: 104px; height: 55px; object-fit: cover; object-position: center; }
  .site-header .nav { display: none; }
  .site-header .menu-button { display: block; border: 0; background: transparent; padding: 10px; width: 44px; height: 44px; }
  .site-header .menu-button i { display: block; width: 23px; height: 1px; background: var(--ink); margin: 6px; }
  .site-header .nav.open { display: flex; position: absolute; top: 67px; left: 0; width: 100%; max-height: calc(100svh - 67px); overflow-y: auto; padding: 24px 22px 28px; background: var(--paper); align-items: flex-start; flex-direction: column; gap: 12px; border-top: 1px solid var(--line); }
  .site-header .nav.open > a:not(.button) { padding: 8px 0; min-height: 44px; }
}
@media (max-width: 1100px) and (min-width: 821px) {
  .request, .event-info, .event-reserve { grid-template-columns: minmax(0,1fr); gap: 45px; }
  .request-form { width: 100%; max-width: 650px; }
  .membership { grid-template-columns: 1fr minmax(280px,370px); gap: 6vw; padding-inline: 7vw; }
}
@media (max-width: 380px) {
  .hero h1 { font-size: 56px; }
  .event-header { padding-inline: 16px; }
  .event-header nav { gap: 12px; }
  .guided-step { padding-inline: 20px; }
  .guided-actions { gap: 12px; }
  .guided-actions .button { gap: 15px; }
}
@media (max-width: 800px) {
  .event-info .event-details { margin-top: 45px; }
  .event-cover-copy { margin: 55px 22px; padding: 32px 24px; width: calc(100% - 44px); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
