/* Accessibility and policy adaptations over the verified reference styles. */
:root { --green:var(--teal); --green-deep:var(--teal-dark); --green-soft:#0b625d; --lime:var(--sun); --pale:#eef8f5; --muted:#52706d; --body:"DM Sans",sans-serif; --heading:"Fraunces",serif; }
html { scroll-padding-top:110px; }
img { max-width:100%; }
main { outline:none; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid #0b625d; outline-offset:5px; box-shadow:0 0 0 3px #fffdf7; }
.hero :focus-visible,.nav-wrap :focus-visible,footer :focus-visible,.safety-first :focus-visible,.member-benefits :focus-visible,.owner-media-note :focus-visible,.event-announcement :focus-visible { outline-color:#f5bd3e; box-shadow:0 0 0 3px #123735; }
.skip-link { position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-180%);background:var(--sun);color:var(--ink);padding:12px 20px;font-weight:700; }
.skip-link:focus { transform:none; }
.nav .logo-brand { flex-shrink:0; }
.nav-links a { min-height:44px;display:flex;align-items:center; }
.menu-toggle { display:none; }
.hero-preview { font-size:.78rem;color:#eaf5f1;margin:1rem 0 0; }
.events-layout { grid-template-columns:minmax(0,1fr); }
.fee-facts { margin:1.4rem 0;border-block:1px solid var(--line); }
.fee-facts>div { padding:.8rem 0;display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line); }
.fee-facts>div:last-child { border:0; }
.fee-facts strong { text-align:right; }
.benefit-disclaimer { grid-column:1/-1;color:#c5d6d3;font-size:.85rem;margin:0; }
.activity p { color:#314f4c; }
.card-teal p { color:#cee5e1; }
.number,.family .eyebrow,.membership-head .eyebrow,.all-activities .eyebrow { color:#9b442f; }
.old-price,.terms-line,.gallery-access p,.album-copy p,.media-types,.booking-panel small { color:#526c68; }
.featured-price .old-price { color:#c5d6d3; }
.album-cover small { color:var(--ink); }
.programme-card p,.programme-card li,.programme-card ul { color:#314f4c; }
.programme-title small { color:#9b442f; }
.programme-card li:before { content:"•"; }
.festival-list .tulsi-feature { background:var(--teal-dark); }
.form label { margin-top:1rem; }
.live-enquiry-entry .membership-options { display:grid;grid-template-columns:1fr 1fr;gap:.8rem;list-style:none;padding:0;margin:1.5rem 0; }
.live-enquiry-entry .membership-options li { padding:1rem;border:1px solid var(--line);border-radius:12px;background:#f4f7f6;font-weight:600; }
.live-enquiry-entry .live-enquiry-link { display:flex;justify-content:space-between;gap:1rem;min-height:52px;width:100%;box-sizing:border-box;white-space:normal;text-decoration:none; }
.live-enquiry-entry .privacy { margin-top:1.25rem; }
@media(max-width:500px) { .live-enquiry-entry .membership-options { grid-template-columns:1fr; } }
.form select,.form input,.form textarea { border-color:#718e87; }
.form input[readonly],.form textarea[readonly] { background:#f4f7f8;color:#526c68;resize:none; }
.form small,.field-help,.privacy { color:#526c68; }
.field-help { font-size:.85rem;margin:.55rem 0 1rem; }
.privacy a,.owner-media-note a { text-decoration:underline;text-underline-offset:3px; }
.preview-label { display:inline-block;border-radius:999px;background:var(--teal);color:#fff!important;padding:.35rem .7rem;font-size:.75rem;font-weight:700; }
.form-error { background:#fff1e8;border:1px solid #9b442f;border-left-width:4px;padding:1.2rem;margin:1rem 0;color:#813c25; }
.form-error a { text-decoration:underline; }
.field-error { color:#813c25; }
.activity-choices { border:0;padding:0;margin:1.2rem 0; }
.activity-choices legend { font-weight:700; }
.activity-choices label { display:flex;align-items:center;gap:.6rem;min-height:44px;font-weight:500;margin:0; }
.activity-choices input { width:20px;height:20px;margin:0;accent-color:var(--teal); }
.preview-result { align-self:start; }
.preview-result .btn { margin-bottom:1rem; }
.preview-result>a { display:block;text-decoration:underline; }
footer { flex-wrap:wrap; }
footer .footer-links { display:flex;flex-wrap:wrap;gap:.7rem 1.5rem;flex-basis:100%; }
footer .footer-links a { display:flex;align-items:center;min-height:44px;color:#eaf5f1;text-decoration:underline; }
footer .preview-footer { flex-basis:100%;font-size:.8rem;color:#c5d6d3; }
.reference-support { font-family:"DM Sans",sans-serif; }
.reference-support h1,.reference-support h2 { font-family:"Fraunces",serif;text-transform:none;font-weight:600; }
.reference-support h1 { color:var(--ink); }
.reference-support .nav-wrap { position:sticky;background:var(--teal-dark);top:0;z-index:40; }
.reference-support .nav { min-height:88px; }
.reference-support .pale,.reference-support .closing { background:var(--cream); }
.reference-support .dark,.reference-support .event-rules { background:var(--teal-dark);color:#fff; }
.reference-support .dark p,.reference-support .event-rules p,.reference-support .event-rules h3 { color:#eaf5f1; }
.reference-support .dark .eyebrow,.reference-support .event-rules .eyebrow { color:var(--sun); }
.reference-support .visitor-rate { display:block;border:0;padding:0;text-align:left;font-size:96px;line-height:1;color:var(--sun); }
.reference-support .visitor-rate>span { font-size:.65em;color:inherit; }
.reference-support .button { background:var(--sun);border-color:var(--sun);border-radius:999px;color:#173631;font-family:"DM Sans",sans-serif;font-weight:700; }
.reference-support .button:hover { background:#ffe7a5;border-color:#ffe7a5;color:#173631; }
.reference-support .text-link,.reference-support .text-link span { color:var(--teal); }
.reference-support .brand img { display:block; }
.reference-support .royal-card-feature .member-card { width:100%;margin:0; }
.reference-support .royal-card-feature .card-fee-note,.reference-support .royal-card-feature .card-preview-note,.reference-support .membership-card-addition .small { color:#52706d; }
.reference-support .enquiry-form-wrap,.reference-support .status-strip,.reference-support .preview-notice { background:#eef8f5; }
.reference-support .site-footer { background:var(--ink);color:white; }
.reference-support .nav .btn { border-radius:999px;color:#173631; }
.reference-support .photo figcaption { background:#123735ed;color:#fff; }
.reference-support .archive-film { width:100%;max-width:900px;display:block;margin:1.5rem 0; }
@media(min-width:901px) { .menu-toggle { display:none!important; } }
@media(max-width:900px) {
  .nav { gap:1rem; }
  .menu-toggle { display:flex;align-items:center;gap:.7rem;min-height:44px;padding:.55rem .9rem;border:1px solid var(--sun);border-radius:999px;background:var(--teal-dark);color:white;font:600 1rem "DM Sans",sans-serif;margin-left:auto; }
  .nav-links.is-open { display:flex;position:absolute;top:88px;left:4vw;right:4vw;flex-direction:column;gap:.25rem;background:var(--paper);color:var(--ink);padding:1rem;border-radius:16px;box-shadow:var(--shadow); }
  .nav-links.is-open a { display:flex!important; }
  .nav-links.is-open :focus-visible { outline-color:var(--teal);box-shadow:0 0 0 3px var(--paper); }
  .nav .btn-small { display:none; }
}
@media(max-width:600px) {
  .nav-links.is-open { top:72px; }
  .reference-support .nav { min-height:72px; }
  .reference-support h1 { font-size:clamp(2.6rem,11vw,3.7rem); }
  .fee-facts>div { flex-direction:column;gap:.25rem; }
  .fee-facts strong { text-align:left; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { transition:none!important;animation:none!important; } }
@media print { .nav-wrap,.menu-toggle { display:none; } footer,.member-benefits,.safety-first { background:white;color:black; } footer p,footer .footer-links a,.benefit-disclaimer { color:black; } }
