/* Rose Fest page: builds on main.css tokens, swaps the palette and display face */
.page-rosefest{
  --rose:#A8163A;--rose-deep:#6E0F27;--petal:#F3D6DC;--petal-2:#E9B8C3;--cream:#FBF7F3;--leaf:#2F5A3E;--gold:#C9A14A;
  --bg:var(--cream);--bg-2:#F4ECE8;--red:var(--rose);--blue:var(--rose-deep);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  background:var(--cream);
}
.page-rosefest .nav .nav__inner{background:rgba(251,247,243,.78);color:var(--ink);border-color:var(--line)}
.page-rosefest .nav__cta{background:var(--rose);color:#fff}
.page-rosefest .nav.is-scrolled .nav__cta{background:var(--rose);color:#fff}

/* Hero */
.rf-hero{position:relative;min-height:100svh;display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden;background:#5a0d1f}
.rf-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(1.05) contrast(1.02)}
.rf-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(60,8,22,.15) 0%,rgba(60,8,22,.55) 70%,rgba(40,5,15,.8) 100%)}
.rf-hero__body{position:relative;z-index:1;padding:120px var(--gutter) 80px;max-width:900px}
.page-rosefest .rf-hero .label{color:rgba(255,255,255,.82);letter-spacing:.28em}
.rf-hero h1{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(64px,11vw,160px);line-height:.92;letter-spacing:-.02em;margin:10px 0 18px}
.rf-hero h1 span{display:block;font-style:normal;font-size:.3em;letter-spacing:.14em;text-transform:uppercase;font-family:var(--font);font-weight:300;margin-top:16px;white-space:nowrap}
@media (max-width:560px){.rf-hero h1 span{white-space:normal;font-size:.34em}}
.rf-hero p{font-family:var(--serif);font-size:clamp(20px,2.4vw,28px);line-height:1.4;max-width:34ch;margin:0 auto 34px;color:rgba(255,255,255,.92)}
.rf-hero .btn--solid{background:#fff;color:var(--rose-deep)}
.rf-scroll{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.6);z-index:1}

/* Ribbon */
.rf-ribbon{background:var(--rose);color:#fff}
.rf-ribbon__grid{display:grid;grid-template-columns:repeat(5,1fr)}
.rf-ribbon__item{padding:30px 22px 30px 0;border-left:1px solid rgba(255,255,255,.22);padding-left:22px}
.rf-ribbon__item:first-child{border-left:0;padding-left:0}
.rf-ribbon__item b{display:block;font-family:var(--serif);font-size:44px;font-weight:400;line-height:1;margin-bottom:6px}
.rf-ribbon__item span{font-size:13px;letter-spacing:.06em;color:rgba(255,255,255,.8)}
@media (max-width:900px){.rf-ribbon__grid{grid-template-columns:1fr 1fr 1fr}.rf-ribbon__item:nth-child(4){border-left:0;padding-left:0}}
@media (max-width:560px){.rf-ribbon__grid{grid-template-columns:1fr 1fr}.rf-ribbon__item:nth-child(3),.rf-ribbon__item:nth-child(5){border-left:0;padding-left:0}.rf-ribbon__item:nth-child(4){border-left:1px solid rgba(255,255,255,.22);padding-left:22px}}

/* Section typography */
.page-rosefest .h2{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5.4vw,72px);letter-spacing:-.015em;line-height:1.02;max-width:16ch}
.page-rosefest .h2 em{font-style:italic;color:var(--rose)}
.page-rosefest .lede{font-family:var(--serif);font-size:clamp(22px,2.2vw,28px);color:var(--ink-2)}
.page-rosefest .label{color:var(--rose)}
.rf-divider{display:flex;align-items:center;gap:18px;color:var(--rose);margin:0 0 28px}
.rf-divider::before,.rf-divider::after{content:"";flex:1;border-top:1px solid var(--petal-2)}
.rf-divider svg{width:22px;height:22px}

/* Story gallery */
.rf-story{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-top:56px}
.rf-story .figure:first-child{grid-row:1/3}
.rf-story img{aspect-ratio:4/3;object-fit:cover;width:100%;height:100%}
.rf-story .figure:first-child img{aspect-ratio:auto;height:100%}
@media (max-width:820px){.rf-story{grid-template-columns:1fr}.rf-story .figure:first-child{grid-row:auto}}

/* Day sections */
.rf-day{padding:clamp(56px,7vw,96px) 0;border-top:1px solid var(--petal-2)}
.rf-day__head{display:grid;grid-template-columns:200px 1fr;gap:32px;align-items:baseline;margin-bottom:34px}
.rf-day__num{font-family:var(--serif);font-size:clamp(56px,7vw,96px);line-height:.9;color:var(--rose);font-weight:400}
.rf-day__num small{display:block;font-family:var(--font);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.rf-day__title{font-family:var(--serif);font-size:clamp(28px,3.2vw,40px);font-weight:400;letter-spacing:-.01em}
.rf-day__title span{display:block;font-family:var(--font);font-size:15px;color:var(--muted);margin-top:6px;font-weight:400;letter-spacing:0}
.rf-sched{border-top:1px solid var(--line)}
.rf-sched li{display:grid;grid-template-columns:150px 1fr auto;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);font-size:16px;align-items:baseline}
.rf-sched time{font-weight:500;color:var(--rose-deep);font-variant-numeric:tabular-nums;font-size:15px}
.rf-sched .where{color:var(--muted);font-size:14px;text-align:right;white-space:nowrap}
.rf-sched .free{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--leaf);border:1px solid rgba(47,90,62,.35);border-radius:999px;padding:3px 8px;margin-left:10px;vertical-align:middle}
@media (max-width:700px){.rf-day__head{grid-template-columns:1fr;gap:10px}.rf-sched li{grid-template-columns:1fr;gap:4px}.rf-sched .where{text-align:left;white-space:normal}}

/* Posters: designed, typographic */
.rf-posters{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:40px 0 0}
.poster{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:3/4;padding:26px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:var(--rose);box-shadow:0 20px 50px rgba(110,15,39,.18)}
.poster--deep{background:var(--rose-deep)}
.poster--petal{background:var(--petal);color:var(--rose-deep)}
.poster--leaf{background:var(--leaf)}
.poster--ink{background:var(--ink)}
.poster--cream{background:#fff;color:var(--ink);border:1px solid var(--petal-2)}
.poster__kicker{font-size:11px;letter-spacing:.22em;text-transform:uppercase;opacity:.8;padding-right:72px;line-height:1.5}
.poster__title{font-family:var(--serif);font-size:clamp(34px,3.2vw,46px);line-height:.98;font-weight:400;letter-spacing:-.01em;margin:auto 0 12px}
.poster__title em{font-style:italic}
.poster__meta{font-size:14px;line-height:1.45;opacity:.92}
.poster__meta b{display:block;font-weight:500;font-size:15px;margin-bottom:2px}
.poster__rose{position:absolute;right:-30px;top:-30px;width:180px;height:180px;opacity:.14}
.poster--petal .poster__rose,.poster--cream .poster__rose{opacity:.12}
.poster__price{position:absolute;top:22px;right:22px;font-family:var(--serif);font-size:30px;line-height:1}
@media (max-width:980px){.rf-posters{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.rf-posters{grid-template-columns:1fr}.poster{aspect-ratio:auto;min-height:320px}}

/* Parade route */
.rf-route{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(28px,5vw,72px);align-items:start;margin-top:48px}
.rf-route ol{counter-reset:r;border-top:1px solid var(--line)}
.rf-route li{counter-increment:r;display:grid;grid-template-columns:40px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:16px}
.rf-route li::before{content:counter(r);font-family:var(--serif);font-size:22px;color:var(--rose);line-height:1}
.rf-route .figure img{border:1px solid var(--line);border-radius:6px}
@media (max-width:820px){.rf-route{grid-template-columns:1fr}}

/* Depot Park day callout */
.rf-callout{background:var(--rose-deep);color:#fff;border-radius:10px;padding:clamp(28px,4vw,56px);display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,4vw,56px);align-items:center;margin-top:48px}
.rf-callout h3{font-family:var(--serif);font-size:clamp(34px,4vw,56px);font-weight:400;line-height:1;margin-bottom:14px}
.rf-callout h3 em{font-style:italic;color:var(--petal-2)}
.rf-callout p{color:rgba(255,255,255,.85);font-size:17px;max-width:48ch}
.rf-callout ul{border-top:1px solid rgba(255,255,255,.2)}
.rf-callout li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.2);font-size:15px}
.rf-callout li span:last-child{color:rgba(255,255,255,.7)}
.rf-callout .btn{margin-top:20px}
@media (max-width:820px){.rf-callout{grid-template-columns:1fr}}

/* Sponsors (rose variant) */
.page-rosefest .sponsors li{background:#fff;border-color:var(--petal-2)}
.page-rosefest .sponsors img{filter:none;opacity:1}
.page-rosefest .sponsors .wordmark{font-family:var(--serif);font-size:24px;font-weight:400;color:var(--rose-deep)}
.page-rosefest .sponsors li > span{border-color:var(--petal-2)}

/* FAQ + footer */
.page-rosefest .faq{border-color:var(--petal-2)}
.page-rosefest .faq details{border-color:var(--petal-2)}
.page-rosefest .faq summary{font-family:var(--serif);font-size:22px}
.page-rosefest .footer{border-color:var(--petal-2)}
.rf-credits{font-size:13px;color:var(--muted);max-width:70ch;margin-top:20px;line-height:1.6}
