:root{
  --weekend-serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,"Times New Roman",serif;
  --weekend-sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}

.weekend-page{background:var(--paper,#fff);color:var(--ink,#152238)}
.weekend-shell{width:min(calc(100% - 40px),1180px);max-width:none!important;margin:0 auto;padding:52px 0 8px}
.weekend-heading{max-width:900px;margin-bottom:15px}
.weekend-kicker{margin:0;color:var(--accent,#0864c7);font:800 10px/1.2 var(--weekend-sans);letter-spacing:.14em;text-transform:uppercase}
.weekend-heading h1{margin:7px 0 0;color:var(--navy,#071b35);font:700 clamp(48px,6.4vw,78px)/.92 var(--weekend-serif);letter-spacing:-.058em;text-wrap:balance}
.weekend-deck{max-width:720px;margin:18px 0 0;color:var(--muted,#657083);font:550 17px/1.5 var(--weekend-sans)}
.day-tabs{display:flex;align-items:center;gap:7px;padding-bottom:6px}
.day-tabs button{min-height:40px;padding:0 15px;border:1px solid var(--line,#dfe4ea);border-radius:999px;background:var(--card,#fff);color:var(--muted,#657083);font:800 11px/1 var(--weekend-sans);letter-spacing:.04em;cursor:pointer}
.day-tabs button:hover,.day-tabs button:focus-visible{border-color:var(--accent,#0864c7);color:var(--accent,#0864c7)}
.day-tabs button[aria-pressed="true"]{border-color:var(--navy,#071b35);background:var(--navy,#071b35);color:#fff}

.weekend-hero{position:relative;isolation:isolate;min-height:clamp(420px,58vw,650px);overflow:hidden;border-radius:18px;background:#0b1c2b;color:#fff}
.weekend-hero>img{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.weekend-hero-shade{position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(5,14,24,.04) 25%,rgba(5,14,24,.9) 100%)}
.weekend-hero-copy{position:absolute;right:clamp(22px,5vw,64px);bottom:clamp(24px,5vw,58px);left:clamp(22px,5vw,64px);max-width:760px}
.weekend-hero-copy>span{display:block;margin-bottom:10px;color:#bfe5ff;font:800 10px/1.2 var(--weekend-sans);letter-spacing:.13em;text-transform:uppercase}
.weekend-hero-copy h2{max-width:780px;margin:0;color:#fff;font:700 clamp(42px,6vw,72px)/.92 var(--weekend-serif);letter-spacing:-.052em;text-wrap:balance}
.weekend-hero-copy p{max-width:620px;margin:13px 0 0;color:rgba(255,255,255,.82);font:600 14px/1.35 var(--weekend-sans)}
.weekend-hero-copy a{display:inline-flex;align-items:center;gap:7px;margin-top:18px;color:#fff;font:800 11px/1.2 var(--weekend-sans);text-decoration:none;text-transform:uppercase;letter-spacing:.08em}
.weekend-hero-copy a:hover{text-decoration:underline;text-underline-offset:4px}

.route-section,.visual-section{padding-top:62px}
.weekend-events-section{padding-top:30px}
.route-heading,.section-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--line,#dfe4ea)}
.route-heading .weekend-kicker,.section-heading .weekend-kicker{margin-bottom:7px}
.route-heading h2,.section-heading h2{margin:0;color:var(--navy,#071b35);font:700 clamp(31px,4vw,43px)/.98 var(--weekend-serif);letter-spacing:-.045em}
.route-map{display:inline-flex;align-items:center;gap:6px;min-height:39px;padding:0 14px;border:1px solid var(--line,#dfe4ea);border-radius:999px;color:var(--ink,#152238);font:800 10px/1 var(--weekend-sans);text-decoration:none;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.route-map:hover,.route-map:focus-visible{border-color:var(--accent,#0864c7);color:var(--accent,#0864c7)}
.back-to-explore{display:inline-flex;align-items:center;gap:6px;color:var(--accent,#0864c7);font:800 10px/1.2 var(--weekend-sans);letter-spacing:.07em;text-decoration:none;text-transform:uppercase;white-space:nowrap}
.back-to-explore:hover,.back-to-explore:focus-visible{text-decoration:underline;text-underline-offset:4px}

.planner-callout{display:flex;align-items:center;justify-content:space-between;gap:34px;margin-top:58px;padding:34px 38px;border:1px solid var(--line,#dfe4ea);border-radius:16px;background:var(--soft,#f5f7fa)}
.planner-callout h2,.planner-panel-heading h2{margin:7px 0 0;color:var(--navy,#071b35);font:750 clamp(30px,4vw,43px)/1 var(--weekend-serif);letter-spacing:-.045em}
.planner-callout p:not(.weekend-kicker){max-width:660px;margin:12px 0 0;color:var(--muted,#657083);font:550 14px/1.45 var(--weekend-sans)}
.planner-callout button{display:inline-flex;min-height:48px;flex:0 0 auto;align-items:center;justify-content:center;gap:9px;padding:0 21px;border:1px solid var(--navy,#071b35);border-radius:999px;background:var(--navy,#071b35);color:#fff;font:800 11px/1 var(--weekend-sans);letter-spacing:.05em;cursor:pointer;text-transform:uppercase}
.planner-callout button:hover,.planner-callout button:focus-visible{border-color:var(--accent,#0864c7);background:var(--accent,#0864c7)}
.planner-panel[hidden]{display:none!important}
.planner-panel{margin-top:28px;padding:34px;border:1px solid var(--line,#dfe4ea);border-radius:18px;background:var(--card,#fff);scroll-margin-top:24px}
.planner-panel-heading{display:flex;align-items:end;justify-content:space-between;gap:26px;margin-bottom:24px}

.plan-route{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.plan-route::before{position:absolute;top:30px;right:4%;left:4%;z-index:0;height:2px;background:var(--line,#dfe4ea);content:""}
.plan-card{position:relative;z-index:1;display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--line,#dfe4ea);border-radius:13px;background:var(--card,#fff);color:var(--ink,#152238);text-decoration:none;transition:transform .18s ease,border-color .18s ease}
.plan-card:hover{transform:translateY(-3px);border-color:#a5b6c4}
.plan-card figure{position:relative;aspect-ratio:4/3;margin:0;overflow:hidden;background:var(--soft,#f5f7fa)}
.plan-card img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.plan-card:hover img{transform:scale(1.025)}
.route-number{position:absolute;top:12px;left:12px;display:grid;width:32px;height:32px;place-items:center;border:2px solid rgba(255,255,255,.92);border-radius:50%;background:#071b35;color:#fff;box-shadow:0 3px 14px rgba(0,0,0,.2);font:850 12px/1 var(--weekend-sans)}
.plan-card-copy{display:flex;min-height:138px;flex:1 1 auto;flex-direction:column;padding:17px}
.plan-card small,.visual-card small{color:var(--accent,#0864c7);font:850 9px/1.2 var(--weekend-sans);letter-spacing:.11em;text-transform:uppercase}
.plan-card h3{margin:8px 0 0;color:var(--navy,#071b35);font:750 22px/1.02 var(--weekend-serif);letter-spacing:-.035em}
.plan-card p{display:-webkit-box;overflow:hidden;margin:auto 0 0;padding-top:12px;color:var(--muted,#657083);font:550 11px/1.35 var(--weekend-sans);-webkit-box-orient:vertical;-webkit-line-clamp:2}

.visual-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.weekend-events-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.visual-card{display:block;overflow:hidden;border:1px solid var(--line,#dfe4ea);border-radius:13px;background:var(--card,#fff);color:var(--ink,#152238);text-decoration:none;transition:transform .18s ease,border-color .18s ease}
.visual-card:hover{transform:translateY(-3px);border-color:#a5b6c4}
.visual-card>img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--soft,#f5f7fa)}
.visual-card>div{padding:15px 16px 17px}
.visual-card h3{margin:7px 0 0;color:var(--navy,#071b35);font:750 20px/1.05 var(--weekend-serif);letter-spacing:-.032em}
.visual-card p{margin:10px 0 0;color:var(--muted,#657083);font:600 10px/1.3 var(--weekend-sans)}
.visual-card .visual-card-place{margin-top:6px;font-weight:500;line-height:1.35}

.local-section{padding-bottom:24px}
.local-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px}
.local-card{position:relative;display:block;min-height:210px;overflow:hidden;border-radius:12px;background:#0b1c2b;color:#fff;text-decoration:none}
.local-card::after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(4,13,22,.87));content:""}
.local-card img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.local-card:hover img{transform:scale(1.035)}
.local-card span{position:absolute;right:13px;bottom:13px;left:13px;z-index:1;color:#fff;font:750 17px/1.03 var(--weekend-serif);letter-spacing:-.025em}
.planner-empty{grid-column:1/-1;margin:0;padding:28px;border:1px solid var(--line,#dfe4ea);border-radius:12px;color:var(--muted,#657083);font:600 13px/1.4 var(--weekend-sans)}

body.event-modal-open{overflow:hidden}
.event-modal[hidden]{display:none!important}
.event-modal{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:24px}
.event-modal-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(8,20,32,.74);cursor:default}
.event-dialog{position:relative;z-index:1;width:min(690px,100%);max-height:min(880px,calc(100dvh - 48px));overflow:auto;border:1px solid rgba(255,255,255,.26);border-radius:18px;background:var(--card,#fff);box-shadow:0 28px 80px rgba(3,13,24,.36);outline:0}
.event-dialog-close{position:absolute;z-index:3;top:16px;right:16px;display:grid;width:48px;height:48px;place-items:center;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:rgba(7,27,53,.88);color:#fff;cursor:pointer}
.event-dialog-close span{font:300 34px/1 var(--weekend-sans);transform:translateY(-1px)}
.event-dialog-image{display:block;width:100%;aspect-ratio:16/8.4;object-fit:cover;background:var(--soft,#f5f7fa)}
.event-dialog-copy{padding:28px 32px 30px}
.event-dialog-kicker{margin:0;color:var(--accent,#0864c7);font:850 10px/1.2 var(--weekend-sans);letter-spacing:.13em;text-transform:uppercase}
.event-dialog h2{margin:8px 0 0;color:var(--navy,#071b35);font:750 clamp(36px,5vw,52px)/.94 var(--weekend-serif);letter-spacing:-.05em}
.event-dialog-meta{margin:17px 0 0;color:var(--muted,#657083);font:650 13px/1.35 var(--weekend-sans)}
.event-dialog-address{display:flex;align-items:flex-start;gap:7px;margin:6px 0 0;color:var(--ink,#152238);font:650 13px/1.35 var(--weekend-sans);text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:3px}
.event-dialog-address:hover,.event-dialog-address:focus-visible{color:var(--accent,#0864c7);text-decoration-color:currentColor}
.event-dialog-address b{margin-left:2px;font-weight:700}
.event-dialog-details{margin:24px 0 0;color:var(--ink,#152238);font:500 15px/1.52 var(--weekend-sans)}
.event-dialog-bring{margin-top:25px;padding:20px 22px;border-radius:13px;background:var(--soft,#f5f7fa)}
.event-dialog-bring h3{margin:0;color:var(--navy,#071b35);font:800 18px/1.2 var(--weekend-sans)}
.event-dialog-bring ul{margin:10px 0 0;padding-left:21px;color:var(--ink,#152238);font:500 14px/1.55 var(--weekend-sans)}
.event-dialog-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.event-dialog-actions a{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:0 18px;border:1px solid var(--line,#dfe4ea);border-radius:10px;color:var(--ink,#152238);font:800 11px/1.1 var(--weekend-sans);text-decoration:none}
.event-dialog-actions .event-dialog-primary{border-color:var(--accent,#0864c7);background:var(--accent,#0864c7);color:#fff}
.event-dialog-source{margin:17px 0 0;color:var(--muted,#657083);font:500 10px/1.4 var(--weekend-sans)}

/* These editorial display faces intentionally outrank the shared sans defaults. */
.weekend-page .weekend-heading h1{
  font-family:var(--weekend-serif)!important;
  font-weight:700!important;
  line-height:.92!important;
  letter-spacing:-.058em!important
}
.weekend-page :is(.weekend-hero-copy h2,.route-heading h2,.section-heading h2,.plan-card h3,.visual-card h3,.local-card span){
  font-family:var(--weekend-serif)!important;
  font-weight:750!important;
  letter-spacing:-.04em!important
}

html[data-theme="dark"] .weekend-page{background:#101820;color:#edf4f8}
html[data-theme="dark"] .weekend-page :is(.plan-card,.visual-card,.day-tabs button){background:#15212a;border-color:#30404b}
html[data-theme="dark"] .weekend-page :is(.weekend-heading h1,.route-heading h2,.section-heading h2,.planner-callout h2,.planner-panel-heading h2,.plan-card h3,.visual-card h3){color:#f3f7fa}
html[data-theme="dark"] .weekend-page :is(.plan-card p,.visual-card p){color:#aebcc6}
html[data-theme="dark"] .weekend-page .day-tabs button[aria-pressed="true"]{background:#edf4f8;border-color:#edf4f8;color:#101820}
html[data-theme="dark"] .weekend-page .route-map{border-color:#30404b;color:#edf4f8}
html[data-theme="dark"] .planner-callout{border-color:#30404b;background:#15212a}
html[data-theme="dark"] .planner-panel{border-color:#30404b;background:#101820}
html[data-theme="dark"] .event-dialog{background:#15212a;border-color:#45545f}
html[data-theme="dark"] .event-dialog :is(h2,.event-dialog-details,.event-dialog-address,.event-dialog-bring h3,.event-dialog-bring li){color:#f3f7fa}
html[data-theme="dark"] .event-dialog-bring{background:#101820}
html[data-theme="dark"] .event-dialog-actions a:not(.event-dialog-primary){border-color:#45545f;color:#edf4f8}

@media(max-width:980px){
  .plan-route,.visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plan-route::before{display:none}
  .local-strip{display:flex;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory}
  .local-card{min-width:210px;scroll-snap-align:start}
}

@media(max-width:720px){
  .weekend-shell{width:calc(100% - 32px);padding-top:34px}
  .weekend-heading{margin-bottom:18px}
  .weekend-heading h1{margin-top:7px;font-size:clamp(46px,14vw,61px)}
  .weekend-deck{margin-top:15px;font-size:15px;line-height:1.45}
  .day-tabs{margin-top:20px;overflow-x:auto;padding:0 0 4px;scrollbar-width:none}
  .day-tabs::-webkit-scrollbar{display:none}
  .day-tabs button{flex:0 0 auto}
  .weekend-hero{min-height:500px;border-radius:13px}
  .weekend-hero-copy{right:22px;bottom:28px;left:22px}
  .weekend-hero-copy h2{font-size:clamp(41px,12vw,58px)}
  .weekend-hero-copy p{font-size:12px}
  .route-section,.visual-section{padding-top:46px}
  .weekend-events-section{padding-top:24px}
  .planner-callout{display:block;margin-top:42px;padding:26px 23px}
  .planner-callout button{width:100%;margin-top:22px}
  .planner-panel{margin-right:-4px;margin-left:-4px;padding:27px 20px;border-radius:15px}
  .planner-panel-heading{display:block;margin-bottom:21px}
  .route-heading{align-items:flex-start}
  .route-map{min-width:44px;width:44px;padding:0;justify-content:center;overflow:hidden;color:transparent;letter-spacing:-.3em}
  .route-map span{color:var(--ink,#152238);font-size:14px;letter-spacing:0}
  html[data-theme="dark"] .route-map span{color:#edf4f8}
  .plan-route,.visual-grid{display:flex;overflow-x:auto;grid-template-columns:none;gap:12px;margin-right:-16px;padding:1px 16px 12px 0;scroll-padding-left:0;scroll-snap-type:x mandatory}
  .weekend-events-grid{display:grid;overflow:visible;grid-template-columns:minmax(0,1fr);margin-right:0;padding:0;scroll-snap-type:none}
  .plan-card{min-width:min(78vw,330px);scroll-snap-align:start}
  .visual-card{min-width:min(72vw,310px);scroll-snap-align:start}
  .weekend-events-grid .visual-card{min-width:0;scroll-snap-align:none}
  .plan-card-copy{min-height:132px}
  .section-heading{margin-bottom:15px}
  .section-heading{align-items:flex-end}
  .back-to-explore{max-width:115px;text-align:right;white-space:normal}
  .local-card{min-width:190px;min-height:200px}
  .event-modal{align-items:end;padding:12px}
  .event-dialog{width:100%;max-height:calc(100dvh - 24px);border-radius:17px}
  .event-dialog-image{aspect-ratio:16/8.8}
  .event-dialog-copy{padding:23px 21px 25px}
  .event-dialog h2{font-size:clamp(35px,10.5vw,46px)}
  .event-dialog-details{font-size:14px;line-height:1.48}
  .event-dialog-actions{display:grid;grid-template-columns:1fr}
  .event-dialog-actions a{width:100%}
}

@media(prefers-reduced-motion:reduce){
  .weekend-page *{scroll-behavior:auto!important;transition:none!important}
}
