/* Rangooo single-festival pages */
.fp .fp-sec{margin-top:26px}
.fp .fp-sec h2{font-size:24px;margin-bottom:8px}
.fp .fp-sec h3{font-size:18px;margin:14px 0 4px}
.fp .fp-sec p{line-height:1.6;margin:0 0 8px;max-width:62ch}
.fp .fp-small{font-size:14px;color:var(--muted)}
.fp .fp-note{padding:18px;border-radius:20px;background:#fff;border:1px dashed #E3C9A6}
.fp .fp-note a{color:var(--acc)}
.fp .fe-hero h1{font-size:clamp(30px,5vw,48px)}
.fp .fe-hero p{font-size:18px;color:#3A4654}
.fp-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}
.fp-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);font:600 13.5px Inter,system-ui,sans-serif;text-decoration:none}
.fp-nav a:focus-visible{outline:3px solid #E8590C;outline-offset:2px}
/* phones: 360/390px audit */
@media (max-width:699px){
  .fp{font-size:16px;overflow-wrap:break-word}
  .fp h1,.fp h2,.fp h3,.fp p,.fp li,.fp a,.fp td,.fp th{overflow-wrap:anywhere}
  .fp .fp-sec p,.fp li{line-height:1.6}
  .fp .fe-hero p{font-size:17px;line-height:1.55}
  .fp .fp-small{font-size:14px;line-height:1.5}
  .fp-nav a{font-size:15px}
  .fp table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse;margin:12px 0;font-size:15px;line-height:1.5}
  .fp th,.fp td{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top;min-width:96px}
  .fp th[scope=row]{min-width:0}
  .fp thead th{background:#FFF4E6}
  .fp pre,.fp code{white-space:pre-wrap;overflow-wrap:anywhere}
  .fp img,.fp svg,.fp video{max-width:100%;height:auto}
}
/* desktop and tablet (>=700px): table styling; phone rules above are untouched */
@media (min-width:700px){
  .fp table{width:100%;border-collapse:collapse;margin:16px 0;color:var(--ink,#16202C);font:400 16px/1.55 Inter,system-ui,sans-serif;background:var(--surface,#fff)}
  .fp th,.fp td{padding:12px 16px;border:1px solid var(--line,rgba(22,32,44,.10));text-align:left;vertical-align:top}
  .fp thead th{background:var(--accent-soft,#E8F1F2);color:var(--ink,#16202C);font-weight:600;border-bottom:2px solid var(--accent,#145C63)}
  .fp tbody th[scope=row]{font-weight:600;color:var(--accent,#145C63)}
  .fp tbody tr:nth-child(even){background:var(--paper,#FBF9F4)}
}
/* phones only (<700px): visual QA pass. Nothing here applies at >=700px. */
@media (max-width:699px){
  .fp.fe{padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px))}
  .fe .crumb a{display:inline-block;padding:14px 4px;margin:-14px -4px}
  .fe-kick{font-size:13px;color:#9A4310}
  .fp ol{padding-left:24px}
  .fp ol li+li{margin-top:6px}
  .fp .fp-sec:not(.fp-note)+.fp-sec:not(.fp-note){border-top:1px solid var(--line);padding-top:22px}
  .fp .fp-sec p:has(a){line-height:1.7}
  .fp .fp-sec p a{color:var(--acc);text-decoration:underline;text-underline-offset:3px;padding:13px 1px;margin:0 -1px}
  .fp-nav a{flex:1 1 auto;justify-content:center;text-align:center}
  .fp .sa-list a{color:var(--acc)}
  .fp .sa-list a:active{background:#FFF4E6}
  .fp .fp-sec h3:has(+.sa-list){font-size:21px;margin:28px 0 6px;padding:10px 12px;background:#FFF4E6;border-left:4px solid #E8590C;border-radius:10px}
}

/* dark mode: the content pages never loaded night.css/boot.js, so they stayed light on a dark system.
   Same two switches the site already uses: prefers-color-scheme (as in night/boot.js) and html[data-night="1"] (as in night/night.css). Colours are the night.css tokens. */
@media (prefers-color-scheme:dark){
  html:has(main.fp){color-scheme:dark}
  html:has(main.fp) body.rg{background:#0F1720!important;color:#E9EEF2}
  html:has(main.fp) .fe{--ink:#E9EEF2;--muted:#9BA8B5;--line:#263341;--acc:#4FB3C4;--surface:#18222D;--accent-soft:#16323A;--paper:#131C26;--accent:#4FB3C4;color:var(--ink)}
  html:has(main.fp) .rg .crumb,html:has(main.fp) .rg .crumb a{color:var(--muted)}
  html:has(main.fp) .fe-hero{background:radial-gradient(60% 80% at 0% 0%,rgba(240,168,98,.2),transparent 60%),radial-gradient(60% 80% at 100% 100%,rgba(229,72,123,.14),transparent 60%),#18222D}
  html:has(main.fp) .fe-kick{color:#F0A862}
  html:has(main.fp) .fp .fe-hero p{color:#C3CED9}
  html:has(main.fp) .fp .fp-note{background:#18222D;border-color:rgba(240,168,98,.4)}
  html:has(main.fp) .fp-nav a,html:has(main.fp) .fe-acts button{background:#18222D;border-color:#34445A;color:var(--ink)}
  html:has(main.fp) .fe-acts a{background:#16323A;color:var(--acc)}
  html:has(main.fp) .fp .fp-sec p a{color:var(--acc)}
}
@media (prefers-color-scheme:dark) and (max-width:699px){
  html:has(main.fp) .fp thead th{background:#2A2118;color:var(--ink)}
  html:has(main.fp) .fp .sa-list a:active{background:#2A2118}
  html:has(main.fp) .fp .fp-sec h3:has(+.sa-list){background:#2A2118}
}
html[data-night="1"]:has(main.fp){color-scheme:dark}
html[data-night="1"]:has(main.fp) body.rg{background:#0F1720!important;color:#E9EEF2}
html[data-night="1"]:has(main.fp) .fe{--ink:#E9EEF2;--muted:#9BA8B5;--line:#263341;--acc:#4FB3C4;--surface:#18222D;--accent-soft:#16323A;--paper:#131C26;--accent:#4FB3C4;color:var(--ink)}
html[data-night="1"]:has(main.fp) .rg .crumb,html[data-night="1"]:has(main.fp) .rg .crumb a{color:var(--muted)}
html[data-night="1"]:has(main.fp) .fe-hero{background:radial-gradient(60% 80% at 0% 0%,rgba(240,168,98,.2),transparent 60%),radial-gradient(60% 80% at 100% 100%,rgba(229,72,123,.14),transparent 60%),#18222D}
html[data-night="1"]:has(main.fp) .fe-kick{color:#F0A862}
html[data-night="1"]:has(main.fp) .fp .fe-hero p{color:#C3CED9}
html[data-night="1"]:has(main.fp) .fp .fp-note{background:#18222D;border-color:rgba(240,168,98,.4)}
html[data-night="1"]:has(main.fp) .fp-nav a,html[data-night="1"]:has(main.fp) .fe-acts button{background:#18222D;border-color:#34445A;color:var(--ink)}
html[data-night="1"]:has(main.fp) .fe-acts a{background:#16323A;color:var(--acc)}
html[data-night="1"]:has(main.fp) .fp .fp-sec p a{color:var(--acc)}
@media (max-width:699px){
html[data-night="1"]:has(main.fp) .fp thead th{background:#2A2118;color:var(--ink)}
html[data-night="1"]:has(main.fp) .fp .sa-list a:active{background:#2A2118}
html[data-night="1"]:has(main.fp) .fp .fp-sec h3:has(+.sa-list){background:#2A2118}
}
