/*
 * Road Show page template — styles.
 *
 * Ported verbatim from _snapshots/road-tour-proposals/proposal-light.html.
 * Scoped to .rs-body so it doesn't bleed into other pages on the site.
 *
 * The calendar markup is provided by temp/parts/calendar/calendar_frontend_view_page_block.php
 * (a different DOM than the proposal mockup), so a small "calendar block overrides"
 * section at the bottom re-themes those elements to the Road Show palette.
 */

/* ---------- Porsche Next ----------
   The PorscheNext family (local /assets/fonts/Regular.woff etc.) is
   registered in additional.css and preloaded in temp/road_show.php, so we
   just reference it via --sans below. Same family the opening-event page
   uses, for typographic parity. */

.rs-body{
  --bg:#FAFAF8;
  --bg-2:#F4F3EF;
  --bg-3:#FFFFFF;
  --fg:#0A0A0A;
  --fg-2:#1c1b1b;
  --fg-muted:rgba(10,10,10,.65);
  --fg-dim:rgba(10,10,10,.40);
  --accent:#0A0A0A;
  --red:#D5001C;
  --mystic:#6D8B8A;
  --paleblue:#677787;
  --orange:#FF6800;
  --orange-glow:rgba(255,104,0,.16);
  --orange-dim:rgba(255,104,0,.10);
  --line:rgba(10,10,10,.10);
  --line-strong:rgba(10,10,10,.22);
  --green:#5C9C61;
  --green-dim:rgba(92,156,97,.14);
  --green-fill:rgba(92,156,97,.18);
  --green-fill-hover:rgba(92,156,97,.32);
  --green-border:rgba(92,156,97,.55);
  --amber:#C58922;
  --amber-dim:rgba(197,137,34,.14);
  --amber-fill:rgba(197,137,34,.18);
  --amber-fill-hover:rgba(197,137,34,.32);
  --amber-border:rgba(197,137,34,.55);
  --shadow-sm:none;
  --shadow:none;
  --shadow-lg:none;
  --sans:"PorscheNext","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
.rs-body,.rs-body *{box-sizing:border-box}
.rs-body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-weight:400;-webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}
.rs-body img{max-width:100%;display:block}
.rs-body a{color:inherit;text-decoration:none}
.rs-body ul,.rs-body li{list-style:none;padding:0;margin:0}

.rs-body .wrap{max-width:1440px;margin:0 auto;padding:0 48px}
@media (max-width:768px){.rs-body .wrap{padding:0 24px}}

/* ---------- Hero ---------- */
.rs-body .hero{position:relative;height:clamp(520px,82vh,820px);min-height:520px;overflow:hidden;background:#000;color:#fff}
.rs-body .hero-bg{position:absolute;inset:0;z-index:0;will-change:transform;animation:rsSlowZoom 22s var(--ease) infinite alternate}
@keyframes rsSlowZoom{from{transform:scale(1.0)}to{transform:scale(1.06)}}
.rs-body .hero-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.rs-body .hero::before{content:"";position:absolute;top:0;left:0;right:0;height:140px;background:linear-gradient(180deg,rgba(10,10,10,.45) 0%,rgba(10,10,10,0) 100%);z-index:1;pointer-events:none}
.rs-body .hero::after{content:"";position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(180deg,rgba(10,10,10,0) 0%,rgba(10,10,10,.45) 100%);z-index:1;pointer-events:none}

.rs-body .hero-top{position:absolute;left:0;right:0;top:0;z-index:3;padding:32px 0 0;display:flex;justify-content:center}
.rs-body .hero-top svg{width:clamp(180px,22vw,260px);height:auto;color:#fff;display:block;opacity:.96}

.rs-body .hero-inner{position:absolute;left:0;right:0;bottom:88px;z-index:3;color:#fff}
@media (max-width:780px){.rs-body .hero-inner{bottom:64px}}
.rs-body .hero-inner h1{font-size:clamp(40px,6.4vw,84px);font-weight:600;letter-spacing:-.025em;line-height:1.02;margin:0 0 24px;max-width:900px;color:#fff}
.rs-body .hero-inner h1 em{font-style:normal;color:#fff;font-weight:600}
.rs-body .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.rs-body .hero-scroll{position:absolute;left:0;right:0;bottom:28px;z-index:3;display:flex;justify-content:center;color:rgba(255,255,255,.78);font-size:20px;line-height:1;pointer-events:none}

.rs-body .hero-meta{padding:28px 0 40px;background:var(--bg);border-bottom:1px solid var(--line)}
.rs-body .hero-meta p{margin:0;color:var(--fg-muted);font-size:clamp(14px,1.2vw,16px);letter-spacing:.01em;display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap}
.rs-body .hero-meta p::before{content:"";width:24px;height:1px;background:var(--orange)}

/* ---------- Buttons ---------- */
.rs-body .btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;font-size:14px;letter-spacing:.01em;font-weight:500;transition:all .3s var(--ease);cursor:pointer;border:0;background:transparent;color:inherit;position:relative;overflow:hidden;border-radius:4px;font-family:inherit}
.rs-body .btn-primary{background:var(--orange);color:#fff}
.rs-body .btn-primary::before{content:"";position:absolute;inset:0;background:#0A0A0A;transform:translateY(101%);transition:transform .35s var(--ease);z-index:0}
.rs-body .btn-primary span{position:relative;z-index:1;transition:color .35s var(--ease)}
.rs-body .btn-primary:hover::before{transform:translateY(0)}
.rs-body .btn-primary:hover span{color:var(--orange)}
.rs-body .btn-ghost{border:1px solid rgba(255,255,255,.55);color:#fff;background:transparent}
.rs-body .btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.10)}
.rs-body .btn-ghost--on-light{border-color:var(--line-strong);color:var(--fg)}
.rs-body .btn-ghost--on-light:hover{border-color:var(--fg);background:rgba(10,10,10,.04)}

/* ---------- Modules nav ---------- */
.rs-body .modules-nav{position:sticky;top:0;z-index:50;background:rgba(250,250,248,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--line)}
.rs-body .modules-inner{display:flex;justify-content:center;align-items:center;height:72px}
.rs-body .modules{display:flex;gap:8px;justify-content:center}
.rs-body .module{display:flex;align-items:baseline;gap:8px;padding:14px 16px;color:var(--fg-muted);transition:color .25s var(--ease);position:relative;white-space:nowrap}
.rs-body .module .m-num{font-size:10px;letter-spacing:.22em;color:var(--fg-dim);font-weight:600;font-feature-settings:"tnum"}
.rs-body .module .m-label{font-size:13px;letter-spacing:.08em;font-weight:500}
.rs-body .module:hover{color:var(--fg)}
.rs-body .module:hover .m-num{color:var(--orange)}
.rs-body .module::after{content:"";position:absolute;left:16px;right:16px;bottom:8px;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.rs-body .module:hover::after{transform:scaleX(1)}

/* ---------- Section frame ---------- */
.rs-body section{padding:128px 0}
.rs-body .section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:64px;margin:0 0 64px;flex-wrap:wrap}
.rs-body .section-head h2{font-size:clamp(36px,5vw,64px);font-weight:500;letter-spacing:-.02em;line-height:1.04;margin:0;max-width:760px;color:var(--fg)}
.rs-body .section-meta{font-size:12px;letter-spacing:.06em;color:var(--fg-dim);text-align:right}
.rs-body .section-num{font-size:12px;color:var(--fg-dim);letter-spacing:.06em;margin:0 0 16px;display:inline-flex;align-items:center;gap:12px}
.rs-body .section-num::before{content:"";width:24px;height:1px;background:var(--paleblue)}

/* ---------- Intro ---------- */
.rs-body .intro-prose{max-width:760px;margin:0 auto;text-align:center}
.rs-body .intro-prose p{font-size:18px;line-height:1.65;color:var(--fg-muted);margin:0 0 20px}
.rs-body .intro-prose p:first-child{font-size:22px;line-height:1.5;color:var(--fg);font-weight:400}
.rs-body .intro-prose p:last-child{margin-bottom:0}

/* ---------- Day plan ---------- */
.rs-body .agenda{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:96px;align-items:start}
@media (max-width:1000px){.rs-body .agenda{grid-template-columns:1fr;gap:48px}}
.rs-body .agenda-aside{display:flex;flex-direction:column;gap:24px}
.rs-body .agenda-aside .ph{aspect-ratio:3/4;position:relative;overflow:hidden;background:#000;border-radius:16px}
.rs-body .agenda-aside .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.95) brightness(.85);transition:transform 8s var(--ease)}
.rs-body .agenda-aside:hover .ph img{transform:scale(1.04)}
.rs-body .agenda-aside .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.65))}
.rs-body .agenda-aside .ph-caption{position:absolute;left:24px;bottom:20px;font-size:13px;color:rgba(255,255,255,.92);letter-spacing:.02em;z-index:2}
.rs-body .agenda-aside .ph-caption::before{content:"";display:inline-block;width:20px;height:1px;background:var(--orange);margin-right:10px;vertical-align:middle}

.rs-body .agenda-main{display:grid;grid-template-columns:1fr 1fr;gap:64px}
@media (max-width:780px){.rs-body .agenda-main{grid-template-columns:1fr;gap:48px}}
.rs-body .agenda-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 24px;padding:0 0 16px;border-bottom:1px solid var(--line-strong)}
.rs-body .agenda-group-head h3{font-size:24px;font-weight:500;letter-spacing:-.01em;margin:0;line-height:1.1;color:var(--fg)}
.rs-body .agenda-group-head .span{font-size:13px;letter-spacing:.02em;color:var(--fg-dim);font-feature-settings:"tnum"}
.rs-body .agenda-row{display:grid;gap:4px;padding:18px 0;border-bottom:1px solid var(--line);transition:padding .25s var(--ease)}
.rs-body .agenda-row:last-child{border-bottom:0}
.rs-body .agenda-row:hover{padding-left:8px}
.rs-body .agenda-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--fg);font-size:14px;letter-spacing:.04em;display:flex;align-items:center;gap:10px}
.rs-body .agenda-time::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--fg-dim);transition:background .25s var(--ease),transform .25s var(--ease)}
.rs-body .agenda-row:hover .agenda-time::before{background:var(--orange);transform:scale(1.4)}
.rs-body .agenda-text{color:var(--fg-muted);font-size:15px;line-height:1.45;padding-left:16px}

/* ---------- Checker-flag divider ---------- */
.rs-body .cayenne-divider{display:block;width:100%;height:auto;margin:24px 0}

/* ---------- Form section frame ---------- */
.rs-body .form-section{background:linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 100%);position:relative;overflow:hidden}
.rs-body .form-section::before{content:"";position:absolute;top:-200px;right:-300px;width:700px;height:700px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,104,0,.06),transparent);pointer-events:none}
.rs-body .form-lede{font-size:17px;color:var(--fg-muted);max-width:1100px;margin:0 auto 56px;text-align:center}
.rs-body .form-section .section-head{justify-content:center;text-align:center}
.rs-body .form-section .section-head>div:first-child{max-width:760px}

/* ---------- Gallery ---------- */
.rs-body .gallery-section{padding:128px 0;position:relative;overflow:hidden;background:var(--bg)}
.rs-body .gallery-lede{max-width:880px;font-size:17px;line-height:1.6;color:var(--fg-muted);margin:0 0 56px}
.rs-body .gallery-carousel{position:relative}
.rs-body .gallery-strip{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0;margin:0;cursor:grab;-webkit-user-select:none;user-select:none;scrollbar-width:none;-ms-overflow-style:none}
.rs-body .gallery-strip.is-dragging{cursor:grabbing;scroll-snap-type:none}
.rs-body .gallery-strip::-webkit-scrollbar{display:none}
.rs-body .gallery-card{position:relative;flex:0 0 auto;width:clamp(240px,24vw,320px);aspect-ratio:4/5;overflow:hidden;background:#0A0A0A;border-radius:14px;scroll-snap-align:start;color:#fff}
.rs-body .gallery-card-img{pointer-events:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.rs-body .gallery-card:hover .gallery-card-img{transform:scale(1.05)}
.rs-body .gallery-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 32%,rgba(0,0,0,.55) 68%,rgba(0,0,0,.88) 100%);z-index:1;pointer-events:none}
.rs-body .gallery-card-body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 20px 22px;color:#fff}
.rs-body .gallery-card-body h3{font-size:17px;font-weight:600;letter-spacing:-.005em;line-height:1.2;margin:0 0 6px;color:#fff}
.rs-body .gallery-card-body p{font-size:13px;line-height:1.5;color:rgba(255,255,255,.86);margin:0}
.rs-body .gallery-hint{margin:24px 0 0;font-size:13px;color:var(--fg-muted);letter-spacing:.01em;display:inline-flex;align-items:center;gap:10px}
.rs-body .gallery-hint::after{content:"→";color:var(--orange)}

.rs-body .strip-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-strong);background:rgba(255,255,255,.94);color:var(--fg);font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s var(--ease);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-family:inherit;padding:0}
.rs-body .strip-arrow:hover{background:#fff;border-color:var(--fg);color:var(--fg)}
.rs-body .strip-arrow:disabled{opacity:.30;cursor:not-allowed}
.rs-body .strip-arrow--prev{left:-22px}
.rs-body .strip-arrow--next{right:-22px}
@media (max-width:780px){.rs-body .strip-arrow{display:none}}

/* ---------- Location ---------- */
.rs-body .location{padding:128px 0;background:var(--bg-2)}
.rs-body .location-card{background:var(--bg-3);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:grid;grid-template-columns:1.2fr 1fr;align-items:stretch}
@media (max-width:1000px){.rs-body .location-card{grid-template-columns:1fr}}
.rs-body .location-map{position:relative;min-height:340px;background:#EDEAE3;overflow:hidden}
.rs-body .location-map .leaflet-container{width:100%;height:100%;position:absolute;inset:0;background:#EDEAE3;font-family:inherit}
.rs-body .location-map .leaflet-control-zoom{display:none}
.rs-body .location-map .leaflet-control-attribution{background:rgba(255,255,255,.78);color:rgba(10,10,10,.55);font-size:10px;padding:2px 8px}
.rs-body .location-map .leaflet-control-attribution a{color:rgba(10,10,10,.78);text-decoration:none}
.rs-body .location-map .leaflet-control-attribution a:hover{color:#000}
.rs-body .cayenne-map-pin-wrap{pointer-events:none}
.rs-body .cayenne-map-pin{position:relative;width:36px;height:36px;display:flex;align-items:center;justify-content:center}
.rs-body .cayenne-map-pin__core{width:14px;height:14px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(255,104,0,.32);position:relative;z-index:2}
.rs-body .cayenne-map-pin__pulse{position:absolute;top:50%;left:50%;width:14px;height:14px;border-radius:50%;background:var(--orange);transform:translate(-50%,-50%);animation:rsPulse 2.4s cubic-bezier(.2,.7,.2,1) infinite;opacity:.6;z-index:1}
@keyframes rsPulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.6}100%{transform:translate(-50%,-50%) scale(3.2);opacity:0}}
.rs-body .location-body{padding:48px}
.rs-body .location-body h3{font-size:28px;font-weight:500;letter-spacing:-.01em;margin:0 0 8px;color:var(--fg)}
.rs-body .location-body .addr{font-size:15px;color:var(--fg-muted);line-height:1.55;margin:0 0 28px}
.rs-body .location-contact{display:flex;flex-direction:column;gap:14px;font-size:15px;color:var(--fg-muted);padding:24px 0 0;border-top:1px solid var(--line)}
.rs-body .location-contact .row{display:grid;grid-template-columns:24px 1fr;gap:14px;align-items:flex-start}
.rs-body .location-contact .row .icon{color:var(--orange);font-size:18px}
.rs-body .location-contact .row a{color:var(--fg);transition:opacity .2s var(--ease)}
.rs-body .location-contact .row a:hover{opacity:.7}
.rs-body .location-actions{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0}
.rs-body .location-actions a{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid var(--line-strong);border-radius:6px;font-size:14px;letter-spacing:.01em;color:var(--fg);transition:all .25s var(--ease);background:var(--bg-3)}
.rs-body .location-actions a:hover{border-color:var(--orange);color:var(--orange);background:var(--orange-dim)}

/* ---------- Footer ---------- */
.rs-body .rs-footer{padding:48px 0 64px;border-top:1px solid var(--line);font-size:12px;color:var(--fg-muted);line-height:1.7;background:var(--bg)}
.rs-body .rs-footer .footer-row{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap;margin:0 0 32px}
.rs-body .rs-footer .footer-links{display:flex;gap:24px;flex-wrap:wrap}
.rs-body .rs-footer .footer-links a{color:var(--fg-muted)}
.rs-body .rs-footer .footer-links a:hover{color:var(--orange)}
.rs-body .rs-footer .footer-disclaimer{font-size:11px;color:var(--fg-dim);line-height:1.7;max-width:920px}

.rs-body .porsche-mark{display:block}

/* ---------- Admin-only fallback notice ---------- */
.rs-body .rs-admin-notice{padding:48px;border:1px dashed var(--line-strong);background:rgba(255,104,0,.04);color:var(--fg-muted);text-align:center;border-radius:14px;margin:48px 0}

/* ---------- Calendar + side panel (proposal-verbatim) ----------
   These styles target the NEW component emitted by
   temp/parts/road_show/rs_calendar.php — they have nothing to do with the
   existing temp/parts/calendar/* page block which keeps its additional.css
   styles untouched. */

.rs-body .rs-reg-board{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:32px;align-items:start;margin:0 0 48px;max-width:1100px;margin-left:auto;margin-right:auto;position:relative;z-index:1}
@media (max-width:1100px){.rs-body .rs-reg-board{grid-template-columns:1fr;gap:32px}}

/* Calendar card */
.rs-body .rs-reg-board .cal{background:var(--bg-3);border:1px solid var(--line);padding:32px;border-radius:14px}
.rs-body .rs-reg-board .cal-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 24px}
.rs-body .rs-reg-board .cal-title{font-size:20px;font-weight:500;letter-spacing:-.01em;color:var(--fg);text-transform:capitalize;margin:0}
.rs-body .rs-reg-board .cal-nav{display:flex;gap:4px}
.rs-body .rs-reg-board .cal-arrow{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);color:var(--fg-muted);cursor:pointer;background:transparent;font-size:20px;line-height:1;transition:all .2s var(--ease);border-radius:50%;font-family:inherit;padding:0}
.rs-body .rs-reg-board .cal-arrow:hover:not(:disabled){color:var(--fg);border-color:var(--fg);background:rgba(10,10,10,.04)}
.rs-body .rs-reg-board .cal-arrow:disabled{opacity:.30;cursor:not-allowed}

.rs-body .rs-reg-board .cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:0 0 8px}
.rs-body .rs-reg-board .cal-wd{font-size:13px;letter-spacing:.01em;color:var(--fg-muted);text-align:center;padding:8px 0;font-weight:500}
.rs-body .rs-reg-board .cal-wd.weekend{color:var(--orange)}

.rs-body .rs-reg-board .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.rs-body .rs-reg-board .cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--fg-dim);font-feature-settings:"tnum";cursor:default;transition:all .2s var(--ease);border:1px solid transparent;background:rgba(10,10,10,.015);position:relative;font-weight:500;border-radius:8px;font-family:inherit;padding:0;line-height:1}
/* Button variants need a reset so they don't carry default browser styling. */
.rs-body .rs-reg-board button.cal-day{appearance:none;-webkit-appearance:none;outline:none}
.rs-body .rs-reg-board .cal-day.muted{opacity:.30;font-weight:400}
.rs-body .rs-reg-board .cal-day.available{color:var(--fg);background:var(--green-fill);border-color:var(--green-border);cursor:pointer}
.rs-body .rs-reg-board .cal-day.available:hover{background:var(--green-fill-hover);border-color:var(--green)}
.rs-body .rs-reg-board .cal-day.waitlist{color:var(--fg);background:var(--amber-fill);border-color:var(--amber-border);cursor:pointer}
.rs-body .rs-reg-board .cal-day.waitlist:hover{background:var(--amber-fill-hover);border-color:var(--amber)}
.rs-body .rs-reg-board .cal-day.selected{background:var(--fg);color:var(--bg-3);border-color:var(--fg);font-weight:600;box-shadow:0 0 0 2px rgba(10,10,10,.10)}

.rs-body .rs-reg-board .cal-legend{margin:16px 0 0;display:flex;flex-wrap:wrap;gap:20px;font-size:13px;letter-spacing:.01em;color:var(--fg-muted)}
.rs-body .rs-reg-board .cal-legend-item{display:inline-flex;align-items:center;gap:8px}
.rs-body .rs-reg-board .cal-legend-item::before{content:"";width:14px;height:14px;background:var(--green-fill);border:1px solid var(--green-border);border-radius:4px}
.rs-body .rs-reg-board .cal-legend-item.waitlist::before{background:var(--amber-fill);border-color:var(--amber-border)}
.rs-body .rs-reg-board .cal-legend-item.sel::before{background:var(--fg);border-color:var(--fg)}

.rs-body .rs-reg-board .cal-foot{margin:24px 0 0;padding:20px 0 0;border-top:1px solid var(--line);font-size:13px;color:var(--fg-muted);line-height:1.5}
.rs-body .rs-reg-board .cal-foot a{color:var(--orange);font-weight:500;border-bottom:1px solid transparent;transition:border-color .2s var(--ease)}
.rs-body .rs-reg-board .cal-foot a:hover{border-bottom-color:var(--orange)}

/* Side panel (right column) */
.rs-body .rs-reg-board .panel{background:var(--bg-3);border:1px solid var(--line);padding:36px;display:flex;flex-direction:column;gap:24px;border-radius:14px}
.rs-body .rs-reg-board .panel--empty .panel-content{display:none}
.rs-body .rs-reg-board .panel-empty{margin:0;color:var(--fg-muted);font-size:14px;line-height:1.55;text-align:center}
.rs-body .rs-reg-board .panel:not(.panel--empty) .panel-empty{display:none}
.rs-body .rs-reg-board .panel-content{display:flex;flex-direction:column;gap:24px}
.rs-body .rs-reg-board .panel-date{font-size:13px;letter-spacing:.06em;color:var(--fg);text-align:center;font-weight:500;margin:0}
.rs-body .rs-reg-board .panel-event{display:flex;gap:16px;align-items:stretch;padding:0;border:1px solid var(--line);background:rgba(10,10,10,.02);border-radius:8px;overflow:hidden}
.rs-body .rs-reg-board .panel-event-chip{flex:0 0 72px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--fg);color:var(--bg-3);padding:12px 0;line-height:1.1}
.rs-body .rs-reg-board .panel-event-chip .m{font-size:11px;letter-spacing:.02em;font-weight:600}
.rs-body .rs-reg-board .panel-event-chip .d{font-size:28px;font-weight:600;letter-spacing:-.02em;margin-top:2px;font-feature-settings:"tnum"}
.rs-body .rs-reg-board .panel-event-meta{padding:14px 16px 14px 0;flex:1;display:flex;flex-direction:column;justify-content:center;gap:4px}
.rs-body .rs-reg-board .panel-event-meta .ev{font-size:15px;font-weight:500;color:var(--fg)}
.rs-body .rs-reg-board .panel-event-meta .sub{font-size:12px;color:var(--fg-muted)}

.rs-body .rs-reg-board .panel-stat{text-align:center;padding:8px 0}
.rs-body .rs-reg-board .panel-stat .n{font-size:48px;font-weight:300;letter-spacing:-.03em;color:var(--fg);line-height:1;font-feature-settings:"tnum"}
.rs-body .rs-reg-board .panel-stat .l{font-size:13px;letter-spacing:.01em;color:var(--fg-muted);margin-top:8px}

.rs-body .rs-reg-board .panel-help{font-size:13px;color:var(--fg-muted);line-height:1.55;text-align:center;margin:0}

.rs-body .rs-reg-board .panel-slots{display:flex;flex-direction:column;gap:12px}
.rs-body .rs-reg-board .panel-slot{padding:18px 20px;background:rgba(10,10,10,.025);border:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;border-radius:8px;font-family:inherit;cursor:pointer;text-align:left;width:100%;transition:all .2s var(--ease);color:inherit}
.rs-body .rs-reg-board .panel-slot:hover:not(:disabled){border-color:var(--line-strong);background:rgba(10,10,10,.04)}
.rs-body .rs-reg-board .panel-slot.selected{border-color:var(--fg);background:rgba(10,10,10,.05);box-shadow:0 0 0 2px rgba(10,10,10,.06)}
.rs-body .rs-reg-board .panel-slot:disabled{cursor:not-allowed;opacity:.65}
.rs-body .rs-reg-board .panel-slot-text .t{font-size:15px;color:var(--fg);font-weight:500}
.rs-body .rs-reg-board .panel-slot-text .s{font-size:12px;color:var(--fg-muted);margin-top:2px}
.rs-body .rs-reg-board .badge{font-size:12px;letter-spacing:.01em;padding:6px 12px;font-weight:600;white-space:nowrap;border-radius:6px}
.rs-body .rs-reg-board .badge.waitlist{background:var(--amber-dim);color:var(--amber);border:1px solid var(--amber-border)}
.rs-body .rs-reg-board .badge.ok{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border)}

/* ---------- Form (CF7 → .anketa) ----------
   The CF7 form body uses the proposal mockup's wrapper classes
   (.anketa-group, .anketa-grid-2, .field, .submit-btn). CF7 still injects
   its own <span class="wpcf7-form-control-wrap"> around each <input>,
   plus its hidden bookkeeping fields, so the rules below normalise those
   so the visible markup matches the proposal verbatim. */

.rs-body .rs-anketa-wrap{max-width:1100px;margin:0 auto}
.rs-body .rs-anketa-wrap .wpcf7{max-width:1100px;margin:0 auto}
.rs-body .rs-anketa-wrap .wpcf7-form{display:flex;flex-direction:column;gap:48px;position:relative;z-index:1}
.rs-body .rs-anketa-wrap .wpcf7-form p:empty{display:none}
.rs-body .rs-anketa-wrap .wpcf7-form p{margin:0}

/* Hide the wrapper paragraph CF7 wraps hidden inputs in. */
.rs-body .rs-anketa-wrap .wpcf7-form>p:has(>input.wpcf7-hidden:only-child),
.rs-body .rs-anketa-wrap .wpcf7-form>p>input.wpcf7-hidden{display:block}

.rs-body .rs-anketa-wrap .anketa-group{display:flex;flex-direction:column;gap:14px}
.rs-body .rs-anketa-wrap .anketa-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px}
@media (max-width:600px){.rs-body .rs-anketa-wrap .anketa-grid-2{grid-template-columns:1fr;gap:24px}}

.rs-body .rs-anketa-wrap .field{margin:0}
.rs-body .rs-anketa-wrap .field>label{display:block;font-size:13px;letter-spacing:.01em;color:var(--fg-muted);margin:0;font-weight:500}
.rs-body .rs-anketa-wrap .field .wpcf7-form-control-wrap{display:block;margin-top:8px}
.rs-body .rs-anketa-wrap .field input[type="text"],
.rs-body .rs-anketa-wrap .field input[type="email"],
.rs-body .rs-anketa-wrap .field input[type="tel"]{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-strong);color:var(--fg);padding:12px 0;font-size:16px;font-family:inherit;outline:none;transition:border-color .2s var(--ease);border-radius:0}
.rs-body .rs-anketa-wrap .field input:focus{border-bottom-color:var(--orange)}
.rs-body .rs-anketa-wrap .field input::placeholder{color:var(--fg-dim)}
.rs-body .rs-anketa-wrap .field input.wpcf7-not-valid{border-bottom-color:var(--red)}

/* Consent checkbox row. CF7 emits a deeply nested set of <span>s + <label>;
   flatten it visually so it matches the proposal's .checkbox-row. */
.rs-body .rs-anketa-wrap .anketa-group--consent .wpcf7-form-control-wrap{display:block}
.rs-body .rs-anketa-wrap .anketa-group--consent .wpcf7-list-item{margin:0;display:block}
.rs-body .rs-anketa-wrap .anketa-group--consent .wpcf7-list-item label{display:flex;gap:14px;align-items:flex-start;font-size:13px;color:var(--fg-muted);line-height:1.55;cursor:pointer;margin:0}
.rs-body .rs-anketa-wrap .anketa-group--consent input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1px solid var(--line-strong);background:#fff;position:relative;cursor:pointer;margin:2px 0 0;flex:0 0 18px;transition:all .2s var(--ease);border-radius:3px}
.rs-body .rs-anketa-wrap .anketa-group--consent input[type="checkbox"]:checked{background:var(--orange);border-color:var(--orange)}
.rs-body .rs-anketa-wrap .anketa-group--consent input[type="checkbox"]:checked::after{content:"";position:absolute;left:5px;top:1px;width:6px;height:11px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}
.rs-body .rs-anketa-wrap .anketa-group--consent .wpcf7-list-item-label{color:var(--fg-muted)}
.rs-body .rs-anketa-wrap .anketa-group--consent .wpcf7-list-item-label a{color:var(--fg);border-bottom:1px solid var(--line-strong);transition:border-color .2s var(--ease)}
.rs-body .rs-anketa-wrap .anketa-group--consent .wpcf7-list-item-label a:hover{border-bottom-color:var(--orange)}

/* Submit button. CF7 outputs <input type="submit"> so the proposal's
   slide-up ::before hover doesn't apply to a replaced element — we settle
   for an orange→dark hover swap which sits well next to the rest of the page. */
.rs-body .rs-anketa-wrap .wpcf7-form>p:last-of-type{align-self:flex-start;margin:0}
.rs-body .rs-anketa-wrap input.submit-btn,
.rs-body .rs-anketa-wrap .wpcf7-submit{align-self:flex-start;background:var(--orange);color:#fff;border:0;padding:18px 44px;font-size:15px;letter-spacing:.01em;font-weight:500;cursor:pointer;transition:all .3s var(--ease);font-family:inherit;border-radius:6px;margin-top:16px;-webkit-appearance:none;appearance:none}
.rs-body .rs-anketa-wrap input.submit-btn:hover,
.rs-body .rs-anketa-wrap .wpcf7-submit:hover{background:var(--fg);color:var(--orange)}
.rs-body .rs-anketa-wrap .wpcf7-submit:disabled{opacity:.4;cursor:not-allowed}

/* CF7's response output + spinner */
.rs-body .rs-anketa-wrap .wpcf7-response-output{margin:24px 0 0;padding:14px 20px;font-size:13px;line-height:1.5;border-radius:8px;background:rgba(10,10,10,.03);border:1px solid var(--line);color:var(--fg)}
.rs-body .rs-anketa-wrap .wpcf7-form.invalid .wpcf7-response-output,
.rs-body .rs-anketa-wrap .wpcf7-form.unaccepted .wpcf7-response-output,
.rs-body .rs-anketa-wrap .wpcf7-form.spam .wpcf7-response-output,
.rs-body .rs-anketa-wrap .wpcf7-form.failed .wpcf7-response-output{background:rgba(213,0,28,.06);border-color:rgba(213,0,28,.35);color:var(--fg)}
.rs-body .rs-anketa-wrap .wpcf7-form.sent .wpcf7-response-output{background:var(--green-dim);border-color:var(--green-border);color:var(--fg)}
.rs-body .rs-anketa-wrap .wpcf7-not-valid-tip{display:block;color:var(--red);font-size:12px;margin-top:6px}
.rs-body .rs-anketa-wrap .wpcf7-spinner{margin:0 0 0 14px;vertical-align:middle}
.rs-body .rs-anketa-wrap .screen-reader-response{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Decline overlay ("Won't attend") ----------
   Modal lives outside .rs-main but inside body.rs-body so the standard
   page styling cascades into the form. Fixed-position so it covers the
   whole viewport when opened; JS toggles `hidden` + `.is-open`. */
.rs-body .rs-decline{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .25s var(--ease)}
.rs-body .rs-decline.is-open{opacity:1;pointer-events:auto}
.rs-body .rs-decline[hidden]{display:none}
.rs-body .rs-decline__backdrop{position:absolute;inset:0;background:rgba(10,10,10,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.rs-body .rs-decline__panel{position:relative;width:min(520px,100%);background:var(--bg-3);color:var(--fg);border:1px solid var(--line);border-radius:16px;padding:44px 40px 36px;font-family:inherit;max-height:calc(100vh - 48px);overflow-y:auto}
@media (max-width:560px){.rs-body .rs-decline__panel{padding:32px 24px 28px}}
.rs-body .rs-decline__close{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--fg-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s var(--ease);font-family:inherit;padding:0}
.rs-body .rs-decline__close:hover{color:var(--fg);border-color:var(--fg);background:rgba(10,10,10,.04)}
.rs-body .rs-decline__close .material-symbols-outlined{font-size:20px}

.rs-body .rs-decline__head{margin:0 0 28px}
.rs-body .rs-decline__title{font-size:clamp(24px,3vw,32px);font-weight:500;letter-spacing:-.01em;line-height:1.1;margin:0 0 12px;color:var(--fg)}
.rs-body .rs-decline__intro{font-size:14px;line-height:1.55;color:var(--fg-muted);margin:0}

.rs-body .rs-decline__grid{display:grid;grid-template-columns:1fr 1fr;gap:24px 28px;margin:0 0 24px}
@media (max-width:480px){.rs-body .rs-decline__grid{grid-template-columns:1fr;gap:18px}}
.rs-body .rs-decline__row{margin:0}
.rs-body .rs-decline__input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-strong);color:var(--fg);padding:12px 0;font-size:16px;font-family:inherit;outline:none;transition:border-color .2s var(--ease);border-radius:0}
.rs-body .rs-decline__input:focus{border-bottom-color:var(--orange)}
.rs-body .rs-decline__input::placeholder{color:var(--fg-dim)}

.rs-body .rs-decline__actions{margin:0;display:flex;justify-content:flex-end}
.rs-body .rs-decline__submit{background:var(--orange);color:#fff;border:0;padding:14px 32px;font-size:14px;letter-spacing:.01em;font-weight:500;cursor:pointer;transition:all .3s var(--ease);font-family:inherit;border-radius:6px;-webkit-appearance:none;appearance:none}
.rs-body .rs-decline__submit:hover:not(:disabled){background:var(--fg);color:var(--orange)}
.rs-body .rs-decline__submit:disabled,
.rs-body .rs-decline__submit.is-busy{opacity:.55;cursor:wait}

.rs-body .rs-decline__error{margin:14px 0 0;font-size:13px;color:var(--red);line-height:1.4}

.rs-body .rs-decline__success{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;padding:8px 0 4px}
.rs-body .rs-decline__success-icon{font-size:48px;color:var(--green)}
.rs-body .rs-decline__success p{margin:0;font-size:15px;line-height:1.55;color:var(--fg-muted)}

/* Body scroll lock while the modal is open. */
.rs-body.rs-no-scroll{overflow:hidden}
