:root {
  --ink: #082f4d;
  --ink-deep: #041c2e;
  --pink: #d12282;
  --sky: #47bce7;
  --paper: #f4f7f9;
  --line: rgba(8, 47, 77, 0.13);
}

.program-page { background: var(--paper); color: var(--ink); }
.program-page .program-hero { min-height: 94vh; padding: 190px 0 120px; isolation: isolate; }
.program-page .program-hero::before { background: linear-gradient(90deg, rgba(4, 24, 39, .96) 0%, rgba(7, 48, 80, .72) 50%, rgba(7, 48, 80, .08) 100%); }
.program-page .program-hero .container { max-width: 1240px; }
.program-page .program-hero h1 { max-width: 900px; margin: 22px 0 26px; font-size: clamp(3.7rem, 7vw, 6.6rem); line-height: .9; letter-spacing: -.065em; text-wrap: balance; }
.program-page .program-hero p { max-width: 640px; font-size: 19px; line-height: 1.6; }
.program-page .program-hero-canada { background-image: url('../img/locais/toronto-web.webp'); background-position: center; }
.program-page .program-hero-run { background-image: url('../img/H02_D-web.webp'); }
.program-eyebrow { padding: 10px 15px; letter-spacing: .13em; backdrop-filter: blur(12px); }
.program-btn { min-height: 54px; padding: 0 25px; border-radius: 999px; }
.program-btn.primary { box-shadow: 0 16px 35px rgba(209, 34, 130, .28); }
.program-btn.secondary { backdrop-filter: blur(10px); }
.program-kicker { display: block; margin-bottom: 17px; color: var(--pink); font: 800 12px/1.2 'Inter Tight', sans-serif; letter-spacing: .15em; text-transform: uppercase; }

.program-subnav { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid var(--line); background: rgba(244, 247, 249, .9); backdrop-filter: blur(18px); }
.program-subnav .container { min-height: 66px; max-width: 1180px; margin: auto; padding: 0 40px; display: flex; align-items: center; gap: 28px; }
.program-subnav span { margin-right: auto; font: 800 15px 'Inter Tight', sans-serif; }
.program-subnav a { color: #526273; font: 650 13px 'Inter Tight', sans-serif; text-decoration: none; transition: color .2s; }
.program-subnav a:hover { color: var(--pink); }

.program-page .program-highlights { padding: 0; background: var(--paper); }
.program-page .program-highlights .container { max-width: 1180px; padding: 0 40px; transform: translateY(-45px); margin-bottom: -45px; }
.program-page .program-highlights article { min-height: 140px; padding: 25px; border: 0; border-radius: 0; box-shadow: none; background: transparent; border-right: 1px solid var(--line); }
.program-page .program-highlights article:last-child { border-right: 0; }
.program-page .program-highlights article:hover { transform: none; box-shadow: none; }
.program-page .program-highlights article span { font-size: 36px; letter-spacing: -.05em; }
.canada-page .program-highlights,
.run-page .program-highlights { display: none; }

.legacy-canada-copy,
.legacy-run-intro,
.legacy-run-timeline { display: none; }

/* Canada — editorial opening */
.editorial-intro { padding: 130px 0 150px; overflow: hidden; }
.editorial-intro .container { max-width: 1180px; margin: auto; padding: 0 40px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: center; }
.editorial-copy h2,
.run-editorial h2 { margin: 0 0 30px; color: var(--ink); font: 800 clamp(3rem, 5.3vw, 5.3rem)/.94 'Inter Tight', sans-serif; letter-spacing: -.06em; }
.editorial-copy h2 em,
.run-editorial h2 em { color: var(--pink); font-family: 'DM Serif Display', Georgia, serif; font-weight: 400; }
.editorial-lead { max-width: 540px; color: #526273; font: 400 18px/1.75 'Inter Tight', sans-serif; }
.editorial-signature { margin-top: 42px; padding-top: 22px; border-top: 1px solid var(--line); display: grid; gap: 5px; }
.editorial-signature strong { font: 750 17px 'Inter Tight', sans-serif; }
.editorial-signature span { color: #667482; font: 14px 'Inter Tight', sans-serif; }
.canada-collage { min-height: 650px; position: relative; }
.canada-collage figure { margin: 0; overflow: hidden; }
.canada-collage img { width: 100%; height: 100%; object-fit: cover; }
.collage-main { position: absolute; inset: 0 18% 8% 11%; border-radius: 180px 180px 22px 22px; }
.collage-city { position: absolute; width: 42%; height: 34%; right: 0; bottom: 0; border: 9px solid var(--paper); border-radius: 22px; }
.collage-note { position: absolute; top: 12%; left: 0; width: 210px; padding: 19px; border-radius: 16px; background: #fff; box-shadow: 0 22px 60px rgba(8, 47, 77, .17); display: flex; gap: 13px; align-items: flex-start; color: var(--ink); font: 700 13px/1.45 'Inter Tight', sans-serif; }
.collage-note i { margin-top: 3px; color: var(--pink); }

.canada-page .program-section { padding: 120px 0; }
.canada-page .program-section > .container { max-width: 1180px; margin: auto; padding: 0 40px; }
.canada-page .program-section h2 { margin: 0 0 35px; font-size: clamp(2.7rem, 4.8vw, 4.8rem); line-height: .96; letter-spacing: -.055em; }
.canada-page .program-section.alt { background: var(--ink-deep); }
.canada-page .program-section.alt .feature-grid { grid-template-columns: 1.35fr .65fr .65fr; grid-template-rows: auto auto; }
.canada-page .program-section.alt .feature-grid article { min-height: 230px; border: 0; border-radius: 24px; box-shadow: none; }
.canada-page .program-section.alt .feature-grid article:first-child { grid-row: 1 / 3; padding-top: 180px; background: linear-gradient(0deg, rgba(4, 28, 46, .9), rgba(4, 28, 46, .05)), url('../img/H03_M-web.webp') center/cover; }
.canada-page .program-section.alt .feature-grid article:first-child h3,
.canada-page .program-section.alt .feature-grid article:first-child p { color: #fff; }
.canada-page .program-section.alt .feature-grid article::before { display: none; }

.canada-seasons { background: #fff; }
.canada-seasons .container { display: grid; grid-template-columns: .7fr 1.3fr; column-gap: 70px; }
.canada-seasons h2 { grid-column: 1; }
.canada-seasons .section-lead { grid-column: 1; color: #667482; }
.canada-seasons .pill-grid { grid-column: 2; grid-row: 1 / 4; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 0; }
.canada-seasons .pill-grid span { min-height: 150px; padding: 25px; border: 1px solid var(--line); border-radius: 22px; background: var(--paper); align-items: flex-end; font-size: 16px; }
.canada-seasons .pill-grid span:nth-child(2), .canada-seasons .pill-grid span:nth-child(3) { background: var(--ink); color: #fff; }
.canada-seasons .program-note { grid-column: 1; color: #526273; }

.canada-destinations { background: var(--paper); }
.canada-destinations .package-grid { display: none; }
.canada-destinations .feature-grid { counter-reset: cities; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-top: 55px; }
.canada-destinations .feature-grid article { counter-increment: cities; min-height: 330px; padding: 28px 20px; border: 1px solid var(--line); border-radius: 100px 100px 18px 18px; box-shadow: none; display: flex; flex-direction: column; justify-content: flex-end; transition: transform .25s, background .25s; }
.canada-destinations .feature-grid article::before { content: '0' counter(cities); position: static; height: auto; margin-bottom: auto; color: var(--pink); background: none; font: 800 14px 'Inter Tight', sans-serif; }
.canada-destinations .feature-grid article:hover { transform: translateY(-8px); background: #fff; }
.canada-destinations .feature-grid article:nth-child(4) { grid-column: span 2; border-radius: 22px; background: linear-gradient(0deg, rgba(4, 28, 46, .86), rgba(4, 28, 46, .05)), url('../img/locais/toronto-web.webp') center/cover; }
.canada-destinations .feature-grid article:nth-child(4) h3,
.canada-destinations .feature-grid article:nth-child(4) p,
.canada-destinations .feature-grid article:nth-child(4)::before { color: #fff; }
.canada-destinations .feature-grid h3 { font-size: 21px; }

.canada-stays { background: var(--ink-deep); color: #fff; }
.canada-stays h2 { color: #fff; }
.canada-stays .package-grid { grid-template-columns: 1fr; gap: 0; }
.canada-stays .package-grid article { min-height: 120px; padding: 25px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.16); border-radius: 0; background: transparent; box-shadow: none; display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.canada-stays .package-grid article::before { display: none; }
.canada-stays .package-grid h3 { margin: 0; color: #fff; font-size: clamp(2rem, 4vw, 3.6rem); letter-spacing: -.04em; }
.canada-stays .package-grid p { color: rgba(255,255,255,.68); font-size: 16px; }

.canada-courses { background: #fff; }
.canada-courses .feature-grid { grid-template-columns: repeat(12, 1fr); }
.canada-courses .feature-grid article { grid-column: span 4; min-height: 220px; padding: 28px; border: 1px solid var(--line); border-radius: 20px; box-shadow: none; }
.canada-courses .feature-grid article:nth-child(1), .canada-courses .feature-grid article:nth-child(5) { grid-column: span 6; }
.canada-courses .feature-grid article::before { width: 46px; right: auto; height: 5px; }

/* Dream Run */
.run-editorial { padding: 130px 0 160px; overflow: hidden; }
.run-editorial .container { max-width: 1180px; margin: auto; padding: 0 40px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; align-items: center; }
.run-editorial-copy > p { max-width: 520px; color: #526273; font: 18px/1.7 'Inter Tight', sans-serif; }
.run-manifesto { margin-top: 40px; display: flex; gap: 18px; align-items: center; color: var(--ink); font: 750 15px/1.35 'Inter Tight', sans-serif; }
.run-manifesto i { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: var(--pink); color: #fff; }
.run-photo-stack { min-height: 640px; position: relative; }
.run-photo-stack figure { margin: 0; overflow: hidden; }
.run-photo-stack img { width: 100%; height: 100%; object-fit: cover; }
.run-photo-main { position: absolute; inset: 0 10% 6% 14%; border-radius: 220px 220px 26px 26px; }
.run-photo-group { position: absolute; left: 0; bottom: 0; width: 48%; height: 32%; border: 9px solid var(--paper); border-radius: 24px; }
.run-stamp { position: absolute; right: 0; top: 12%; width: 132px; height: 132px; border-radius: 50%; background: var(--pink); color: #fff; display: grid; place-content: center; text-align: center; transform: rotate(8deg); box-shadow: 0 20px 45px rgba(209,34,130,.3); }
.run-stamp strong { font: 800 34px/.85 'Inter Tight', sans-serif; }
.run-stamp span { font: 700 16px 'Inter Tight', sans-serif; }

.run-page .program-section { padding: 120px 0; }
.run-page .program-section > .container,
.run-itineraries .container { max-width: 1180px; margin: auto; padding: 0 40px; }
.run-page .program-section h2,
.run-itineraries h2 { margin: 0 0 35px; font-size: clamp(2.8rem, 5vw, 5rem); line-height: .95; letter-spacing: -.06em; }
.run-magic { background: var(--ink-deep); color: #fff; }
.run-magic h2 { max-width: 760px; color: #fff; }
.run-magic .feature-grid { grid-template-columns: 1.2fr .8fr .8fr; }
.run-magic .feature-grid article { min-height: 280px; padding: 30px; border: 0; border-radius: 24px; box-shadow: none; }
.run-magic .feature-grid article:first-child { background: linear-gradient(0deg, rgba(4,28,46,.88), rgba(4,28,46,.05)), url('../img/H02_T-web.webp') center/cover; }
.run-magic .feature-grid article:first-child h3,
.run-magic .feature-grid article:first-child p { color: #fff; }
.run-magic .feature-grid article::before { display: none; }

.run-packages { background: #fff; }
.run-packages .package-grid { gap: 16px; }
.run-packages .package-grid article { min-height: 490px; padding: 32px; border: 1px solid var(--line); border-radius: 24px; box-shadow: none; display: flex; flex-direction: column; }
.run-packages .package-grid article::before { display: none; }
.run-packages .package-grid article.featured { transform: translateY(-20px); background: var(--ink); color: #fff; }
.run-packages .package-grid article.featured h3,
.run-packages .package-grid article.featured p,
.run-packages .package-grid article.featured a { color: #fff; }
.package-index { margin-bottom: auto; color: var(--pink); font: 800 18px 'Inter Tight', sans-serif; }
.run-packages .package-grid small { margin-bottom: 12px; color: #71808d; font: 750 12px 'Inter Tight', sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.run-packages .package-grid h3 { font-size: 34px; letter-spacing: -.04em; }
.run-packages .package-grid p { min-height: 100px; color: #526273; }
.run-packages .package-grid a { color: var(--ink); font: 750 14px 'Inter Tight', sans-serif; text-decoration: none; }

.run-gallery { padding: 40px 0 130px; background: #fff; }
.run-gallery .container { max-width: 1180px; margin: auto; padding: 0 40px; display: grid; grid-template-columns: 1.2fr .8fr .8fr; grid-template-rows: 260px 260px; gap: 14px; }
.run-gallery figure { margin: 0; overflow: hidden; border-radius: 20px; }
.run-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.run-gallery figure:hover img { transform: scale(1.035); }
.run-gallery .gallery-wide { grid-row: 1 / 3; }
.run-gallery .gallery-caption { grid-column: 2 / 4; padding: 32px; border-radius: 20px; background: var(--pink); color: #fff; display: flex; justify-content: space-between; align-items: flex-end; }
.run-gallery .gallery-caption span { font: 700 13px 'Inter Tight', sans-serif; }
.run-gallery .gallery-caption strong { text-align: right; font: 800 25px/1.05 'Inter Tight', sans-serif; letter-spacing: -.03em; }

.run-itineraries { padding: 130px 0; background: var(--paper); }
.run-itineraries .container { display: grid; grid-template-columns: .72fr 1.28fr; gap: 75px; }
.itinerary-heading > p { max-width: 430px; color: #667482; font: 16px/1.65 'Inter Tight', sans-serif; }
.itinerary-accordion details { border-top: 1px solid var(--line); }
.itinerary-accordion details:last-child { border-bottom: 1px solid var(--line); }
.itinerary-accordion summary { min-height: 100px; padding: 0 5px; cursor: pointer; list-style: none; display: grid; grid-template-columns: 1fr auto 28px; gap: 25px; align-items: center; }
.itinerary-accordion summary::-webkit-details-marker { display: none; }
.itinerary-accordion summary span { font: 800 25px 'Inter Tight', sans-serif; }
.itinerary-accordion summary strong { color: var(--pink); font: 700 13px 'Inter Tight', sans-serif; }
.itinerary-accordion details[open] summary i { transform: rotate(45deg); }
.itinerary-flow { padding: 0 0 28px; display: flex; flex-wrap: wrap; gap: 8px; }
.itinerary-flow span { padding: 9px 12px; border-radius: 999px; background: #fff; color: #526273; font: 650 12px 'Inter Tight', sans-serif; }

.run-comparison { background: var(--ink-deep); color: #fff; }
.run-comparison h2 { color: #fff; }
.run-comparison .comparison-table table { border-radius: 20px; overflow: hidden; }
.run-comparison .comparison-table th { background: var(--pink); }
.run-includes { background: #fff; }
.run-includes { display: none; }
.run-includes .feature-grid { grid-template-columns: repeat(2, 1fr); }
.run-includes .feature-grid article { min-height: 230px; border: 1px solid var(--line); border-radius: 22px; box-shadow: none; }
.run-pricing { background: var(--paper); }
.run-pricing .price-grid { gap: 0; border-top: 1px solid var(--line); }
.run-pricing .price-grid article { padding: 35px 15px; border: 0; border-right: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; }
.run-pricing .price-grid article:last-child { border-right: 0; }
.run-pricing .price-grid article::before { display: none; }
.run-pricing .price-grid strong { font-size: clamp(1.8rem, 3vw, 3rem); }

/* Broadway — inspired by theatre posters, not product cards */
.broadway-page { background: #09090c; }
.broadway-page .program-hero { min-height: 88vh; background: #09090c; overflow: hidden; }
.broadway-page .program-hero::before { z-index: -1; background: linear-gradient(90deg, #09090c 0%, rgba(9,9,12,.96) 43%, rgba(9,9,12,.15) 78%, #09090c 100%); }
.broadway-page .program-hero::after { z-index: -2; left: 47%; top: 0; width: 53%; height: 100%; background: url('../img/blog2.jpg') center/cover; filter: saturate(.8) contrast(1.1); }
.broadway-page .program-hero h1 { max-width: 820px; font-size: clamp(4rem, 7.4vw, 7rem); }
.broadway-page .program-hero p { max-width: 580px; }
.broadway-marquee { padding: 18px 0; overflow: hidden; background: #f4d34f; color: #09090c; transform: rotate(-1deg) scale(1.02); }
.broadway-marquee div { width: max-content; font: 800 17px 'Inter Tight', sans-serif; letter-spacing: .12em; white-space: nowrap; }
.broadway-opening { padding: 160px 0; background: #f1eee7; }
.broadway-opening .container { max-width: 1180px; margin: auto; padding: 0 40px; display: grid; grid-template-columns: .18fr .62fr 1.2fr; gap: 45px; align-items: center; }
.broadway-number { align-self: start; color: var(--pink); font: 800 15px 'Inter Tight', sans-serif; }
.broadway-copy h2 { margin: 0 0 25px; color: #111117; font: 800 clamp(3.2rem, 5.2vw, 5rem)/.94 'Inter Tight', sans-serif; letter-spacing: -.06em; }
.broadway-copy p { color: #55535a; font: 17px/1.7 'Inter Tight', sans-serif; }
.broadway-frame { margin: 0; height: 500px; padding: 18px; border: 2px solid #111117; transform: rotate(2deg); }
.broadway-frame img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8) contrast(1.08); }
.broadway-route { padding: 150px 0; background: #111117; color: #fff; }
.broadway-route .container { max-width: 1180px; margin: auto; padding: 0 40px; }
.broadway-route h2 { margin: 0 0 70px; color: #fff; font: 800 clamp(3rem, 5.5vw, 5.5rem)/.92 'Inter Tight', sans-serif; letter-spacing: -.06em; }
.broadway-route ol { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); }
.broadway-route li { min-height: 260px; padding: 24px; border-top: 1px solid rgba(255,255,255,.25); border-right: 1px solid rgba(255,255,255,.16); display: flex; flex-direction: column; }
.broadway-route li > span { margin-bottom: auto; color: #f4d34f; font: 800 13px 'Inter Tight', sans-serif; }
.broadway-route li strong { font: 800 27px 'Inter Tight', sans-serif; }
.broadway-route li p { color: rgba(255,255,255,.62); font: 15px/1.55 'Inter Tight', sans-serif; }
.broadway-genres { padding: 150px 0; background: #f1eee7; }
.broadway-genres .container { max-width: 1180px; margin: auto; padding: 0 40px; display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; }
.genre-heading h2 { margin: 0; color: #111117; font: 800 clamp(3rem, 5vw, 5rem)/.94 'Inter Tight', sans-serif; letter-spacing: -.06em; }
.genre-list article { min-height: 105px; padding: 24px 0; border-top: 1px solid rgba(17,17,23,.22); display: grid; grid-template-columns: 1fr 1.2fr 32px; gap: 25px; align-items: center; }
.genre-list article:last-child { border-bottom: 1px solid rgba(17,17,23,.22); }
.genre-list article span { color: #111117; font: 800 22px 'Inter Tight', sans-serif; }
.genre-list article p { margin: 0; color: #626067; font: 14px/1.5 'Inter Tight', sans-serif; }
.genre-list article i { color: var(--pink); }
.broadway-page .program-cta { background: var(--pink); }
.broadway-page .program-cta .program-kicker { color: #f4d34f; }

/* Simulações ONU — editorial academic layout */
.onu-page { background: #edf1ed; }
.onu-page .program-hero { min-height: 88vh; background: var(--ink-deep); overflow: hidden; }
.onu-page .program-hero::before { z-index: -1; background: linear-gradient(90deg, rgba(4,28,46,1) 0%, rgba(4,28,46,.96) 46%, rgba(4,28,46,.18) 82%); }
.onu-page .program-hero::after { z-index: -2; left: 48%; top: 0; width: 52%; height: 100%; background: url('../img/universidade americana-web.webp') center/cover; }
.onu-page .program-hero h1 { max-width: 940px; }
.onu-manifesto { padding: 160px 0; background: #edf1ed; }
.onu-manifesto .container { max-width: 1180px; margin: auto; padding: 0 40px; display: grid; grid-template-columns: .25fr 1.25fr .5fr; gap: 45px; align-items: start; }
.manifesto-index { color: var(--pink); font: 800 13px 'Inter Tight', sans-serif; }
.onu-manifesto h2 { margin: 0; color: var(--ink); font: 800 clamp(3.2rem, 5.5vw, 5.5rem)/.95 'Inter Tight', sans-serif; letter-spacing: -.06em; }
.onu-manifesto h2 em { color: var(--pink); font-family: 'DM Serif Display', Georgia, serif; font-weight: 400; }
.onu-manifesto p { margin: 5px 0 0; color: #5b6965; font: 16px/1.7 'Inter Tight', sans-serif; }
.onu-skills { padding: 130px 0; background: #fff; }
.onu-skills .container { max-width: 1180px; margin: auto; padding: 0 40px; }
.onu-skill-line { min-height: 115px; border-top: 1px solid var(--line); display: grid; grid-template-columns: .8fr 1.2fr 45px; gap: 30px; align-items: center; }
.onu-skill-line:last-child { border-bottom: 1px solid var(--line); }
.onu-skill-line strong { color: var(--ink); font: 800 clamp(1.8rem, 3vw, 3rem) 'Inter Tight', sans-serif; letter-spacing: -.04em; }
.onu-skill-line span { color: #64726f; font: 15px 'Inter Tight', sans-serif; }
.onu-skill-line b { color: var(--pink); font: 800 12px 'Inter Tight', sans-serif; }
.onu-destinations { padding: 150px 0; background: var(--ink-deep); color: #fff; }
.onu-destinations .container { max-width: 1180px; margin: auto; padding: 0 40px; display: grid; grid-template-columns: .7fr 1.3fr; gap: 75px; }
.onu-destination-heading h2 { margin: 0 0 25px; color: #fff; font: 800 clamp(3rem, 5vw, 5rem)/.94 'Inter Tight', sans-serif; letter-spacing: -.06em; }
.onu-destination-heading p { color: rgba(255,255,255,.6); font: 15px/1.65 'Inter Tight', sans-serif; }
.onu-destination-list article { min-height: 135px; padding: 25px 0; border-top: 1px solid rgba(255,255,255,.2); display: grid; grid-template-columns: .45fr 1.35fr 35px; gap: 20px; align-items: center; }
.onu-destination-list article:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
.onu-destination-list span { color: #74c8e8; font: 700 12px 'Inter Tight', sans-serif; text-transform: uppercase; }
.onu-destination-list h3 { margin: 0; color: #fff; font: 800 27px 'Inter Tight', sans-serif; }
.onu-destination-list b { color: var(--pink); font: 800 13px 'Inter Tight', sans-serif; }
.onu-proof { padding: 140px 0; background: #edf1ed; }
.onu-proof .container { max-width: 1180px; margin: auto; padding: 0 40px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; align-items: center; }
.onu-proof figure { height: 520px; margin: 0; overflow: hidden; border-radius: 260px 260px 18px 18px; }
.onu-proof img { width: 100%; height: 100%; object-fit: cover; }
.onu-proof h2 { color: var(--ink); font: 800 clamp(3rem, 5vw, 5rem)/.95 'Inter Tight', sans-serif; letter-spacing: -.055em; }
.onu-proof a { color: var(--ink); font: 800 15px 'Inter Tight', sans-serif; text-decoration: none; }

@media (max-width: 900px) {
  .program-page .program-hero { min-height: 86vh; padding: 145px 0 85px; }
  .program-page .program-hero h1 { font-size: 48px; }
  .program-page .program-hero-canada { background-image: url('../img/locais/toronto-web.webp'); background-position: center; }
  .program-page .program-hero-run { background-image: url('../img/H02_M-web.webp'); }
  .program-subnav .container { padding: 0 20px; overflow-x: auto; }
  .program-subnav span { position: sticky; left: 0; padding-right: 12px; background: var(--paper); }
  .program-subnav a { white-space: nowrap; }
  .program-page .program-highlights .container { padding: 30px 20px; transform: none; margin: 0; grid-template-columns: repeat(2, 1fr); }
  .program-page .program-highlights article { min-height: 110px; border-bottom: 1px solid var(--line); }
  .editorial-intro .container,
  .run-editorial .container,
  .run-itineraries .container { grid-template-columns: 1fr; gap: 55px; padding: 0 22px; }
  .editorial-intro,
  .run-editorial { padding: 85px 0 100px; }
  .canada-collage,
  .run-photo-stack { min-height: 520px; }
  .canada-page .program-section > .container,
  .run-page .program-section > .container { padding: 0 22px; }
  .canada-page .program-section.alt .feature-grid,
  .run-magic .feature-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
  .canada-page .program-section.alt .feature-grid article:first-child { grid-row: auto; }
  .canada-seasons .container { grid-template-columns: 1fr; }
  .canada-seasons h2,
  .canada-seasons .section-lead,
  .canada-seasons .pill-grid,
  .canada-seasons .program-note { grid-column: 1; grid-row: auto; }
  .canada-seasons .pill-grid { grid-template-columns: 1fr 1fr; }
  .canada-destinations .feature-grid { grid-template-columns: 1fr 1fr; }
  .canada-destinations .feature-grid article:nth-child(4) { grid-column: span 1; }
  .canada-courses .feature-grid article,
  .canada-courses .feature-grid article:nth-child(1),
  .canada-courses .feature-grid article:nth-child(5) { grid-column: span 12; }
  .run-packages .package-grid article.featured { transform: none; }
  .run-includes .feature-grid { grid-template-columns: 1fr; }
  .run-gallery .container { grid-template-columns: 1fr 1fr; grid-template-rows: 400px 220px auto; padding: 0 22px; }
  .run-gallery .gallery-wide { grid-column: 1 / 3; grid-row: 1; }
  .run-gallery .gallery-caption { grid-column: 1 / 3; }
  .broadway-page .program-hero::after,
  .onu-page .program-hero::after { left: 0; width: 100%; opacity: .5; }
  .broadway-opening .container,
  .broadway-genres .container,
  .onu-manifesto .container,
  .onu-destinations .container,
  .onu-proof .container { grid-template-columns: 1fr; padding: 0 22px; }
  .broadway-route .container,
  .onu-skills .container { padding: 0 22px; }
  .broadway-route ol { grid-template-columns: 1fr; }
  .broadway-route li { min-height: 210px; border-right: 0; }
  .onu-manifesto { padding: 100px 0; }
}

@media (max-width: 560px) {
  .program-page .program-highlights .container { grid-template-columns: 1fr 1fr; }
  .program-page .program-highlights article { padding: 18px 12px; }
  .program-page .program-highlights article span { font-size: 29px; }
  .canada-collage,
  .run-photo-stack { min-height: 450px; }
  .collage-main { inset: 0 8% 5% 4%; }
  .collage-note { width: 175px; }
  .run-photo-main { inset: 0 4% 6% 8%; }
  .run-stamp { width: 104px; height: 104px; }
  .canada-seasons .pill-grid { grid-template-columns: 1fr; }
  .canada-destinations .feature-grid { grid-template-columns: 1fr 1fr; }
  .canada-destinations .feature-grid article { min-height: 260px; border-radius: 80px 80px 16px 16px; }
  .canada-stays .package-grid article { grid-template-columns: 1fr; gap: 8px; }
  .itinerary-accordion summary { grid-template-columns: 1fr auto; }
  .itinerary-accordion summary i { display: none; }
  .run-gallery .container { grid-template-rows: 320px 175px auto; }
  .run-gallery .gallery-caption { flex-direction: column; align-items: flex-start; gap: 20px; }
  .run-gallery .gallery-caption strong { text-align: left; }
  .broadway-page .program-hero h1 { font-size: 50px; }
  .broadway-opening,
  .broadway-route,
  .broadway-genres { padding: 95px 0; }
  .broadway-opening .container { gap: 30px; }
  .broadway-frame { height: 340px; }
  .genre-list article { grid-template-columns: 1fr 28px; }
  .genre-list article p { grid-column: 1 / 3; }
  .onu-skill-line { grid-template-columns: 1fr 35px; padding: 25px 0; }
  .onu-skill-line span { grid-column: 1 / 3; }
  .onu-destination-list article { grid-template-columns: 1fr 30px; }
  .onu-destination-list article span { grid-column: 1 / 3; }
  .onu-proof figure { height: 400px; }
}

/* ================================================================
   Direction art v2 — layouts informed by the official presentations
   ================================================================ */

/* Broadway */
.broadway-page { overflow-x: hidden; }
.broadway-marquee { padding: 16px 0; transform: rotate(-.65deg) scale(1.015); }
.broadway-marquee .marquee-track { display: flex; width: max-content; animation: broadwayTicker 22s linear infinite; will-change: transform; }
.broadway-marquee .marquee-track span { flex: none; font: 850 16px 'Inter Tight', sans-serif; letter-spacing: .13em; white-space: nowrap; }
.broadway-marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes broadwayTicker { to { transform: translateX(-50%); } }

.broadway-opening .container { grid-template-columns: 130px minmax(330px,.7fr) minmax(480px,1.3fr); gap: 44px; }
.broadway-number { align-self: center; color: transparent; -webkit-text-stroke: 2px var(--pink); font: 800 clamp(5rem,8vw,8rem)/1 'Inter Tight',sans-serif; letter-spacing: -.08em; transform: rotate(-90deg); }
.broadway-copy { align-self: center; }
.broadway-frame { height: 560px; }

.broadway-route { padding: 130px 0 150px; }
.broadway-route h2 { max-width: 850px; margin-bottom: 58px; }
.broadway-route ol { gap: 14px; }
.broadway-route li { min-height: 520px; padding: 0; border: 1px solid rgba(255,255,255,.15); border-radius: 18px; overflow: hidden; background: #17171e; display: grid; grid-template-rows: 250px auto; position: relative; }
.broadway-route li figure { margin: 0; overflow: hidden; }
.broadway-route li figure::after { content: ''; position: absolute; inset: 0 0 auto; height: 250px; background: linear-gradient(180deg,transparent 42%,#17171e); }
.broadway-route li img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.broadway-route li:hover img { transform: scale(1.045); }
.broadway-route li > span { position: absolute; top: 20px; left: 20px; z-index: 2; width: 46px; height: 46px; border-radius: 50%; background: #f4d34f; color: #111117; display: grid; place-items: center; font-size: 14px; }
.broadway-route li > div { padding: 8px 28px 30px; align-self: end; }
.broadway-route li strong { display: block; margin-bottom: 10px; color: #fff; font-size: 30px; }
.broadway-route li p { margin: 0; }

.broadway-genres .container { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 60px; }
.genre-heading { max-width: 760px; text-align: center; display: flex; flex-direction: column; align-items: center; }
.genre-heading h2 { text-wrap: balance; }
.genre-list { width: min(100%,980px); }
.genre-list article { grid-template-columns: .75fr 1.25fr 40px; padding-inline: 20px; }

/* Canada — benefits */
.canada-benefits { overflow: hidden; background: radial-gradient(circle at 12% 12%,rgba(47,184,232,.22),transparent 28%), var(--ink-deep) !important; color: #fff; }
.canada-benefits .container { display: grid; grid-template-columns: .72fr 1.28fr; gap: 70px; align-items: center; }
.canada-section-heading h2 { margin: 0 0 26px !important; color: #fff; }
.canada-section-heading h2 em { color: #55c5ee; font-family: 'DM Serif Display',Georgia,serif; font-weight: 400; }
.canada-section-heading > p { max-width: 460px; color: rgba(255,255,255,.68); font: 16px/1.7 'Inter Tight',sans-serif; }
.canada-benefits .feature-grid { display: grid; grid-template-columns: repeat(2,1fr); grid-template-rows: 310px 310px; gap: 14px; }
.canada-benefits .feature-grid article { min-height: 0 !important; padding: 28px; border: 1px solid rgba(255,255,255,.14) !important; border-radius: 22px !important; background: rgba(255,255,255,.07) !important; box-shadow: none; display: flex; flex-direction: column; justify-content: flex-end; backdrop-filter: blur(10px); }
.canada-benefits .feature-grid article:first-child { grid-row: auto !important; padding: 28px !important; background: linear-gradient(0deg,rgba(4,28,46,.9),rgba(4,28,46,.04)),url('../img/editorial/canada-students.webp') center/cover !important; }
.canada-benefits .feature-grid article:nth-child(4) { background: linear-gradient(135deg,var(--pink),#9b1e8f) !important; }
.canada-benefits .feature-grid article i { color: #55c5ee; }
.canada-benefits .feature-grid article h3 { color: #fff; font-size: 24px; }
.canada-benefits .feature-grid article p { color: rgba(255,255,255,.72); }

/* Canada — seasons */
.canada-seasons { padding: 140px 0 !important; background: #071f32 !important; color: #fff; overflow: hidden; }
.canada-seasons .container { display: block; }
.season-heading { max-width: 760px; margin-bottom: 58px; }
.season-heading h2 { color: #fff; margin-bottom: 24px !important; }
.season-heading > p { max-width: 600px; color: rgba(255,255,255,.66); font: 16px/1.7 'Inter Tight',sans-serif; }
.season-gallery { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.season-gallery article { height: 510px; position: relative; border-radius: 22px; overflow: hidden; isolation: isolate; transition: transform .3s; }
.season-gallery article:nth-child(even) { transform: translateY(35px); }
.season-gallery article:hover { transform: translateY(-8px); }
.season-gallery article:nth-child(even):hover { transform: translateY(27px); }
.season-gallery article::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(2,16,26,.96),rgba(2,16,26,.03) 65%); }
.season-gallery img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.season-gallery article:hover img { transform: scale(1.06); }
.season-gallery article > div { position: absolute; inset: auto 25px 28px; display: grid; gap: 7px; }
.season-gallery small { color: #64c8ee; font: 750 11px 'Inter Tight',sans-serif; text-transform: uppercase; letter-spacing: .1em; }
.season-gallery strong { color: #fff; font: 800 30px 'Inter Tight',sans-serif; }
.season-gallery span { color: rgba(255,255,255,.7); font: 13px/1.45 'Inter Tight',sans-serif; }

/* Canada — destinations */
.canada-destinations { padding: 140px 0 !important; background: #e8edf0 !important; }
.canada-destinations .feature-grid { display: grid; grid-template-columns: repeat(12,1fr); grid-template-rows: 310px 310px; gap: 14px; margin-top: 48px; }
.canada-destinations .feature-grid article { min-height: 0; padding: 0; border: 0; border-radius: 24px; overflow: hidden; grid-column: span 4; display: block; position: relative; isolation: isolate; }
.canada-destinations .feature-grid article:nth-child(1),
.canada-destinations .feature-grid article:nth-child(2) { grid-column: span 6; }
.canada-destinations .feature-grid article:nth-child(4) {
  grid-column: span 4;
  border-radius: 24px;
  background: none;
}
.canada-destinations .feature-grid article::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(2,20,33,.94),rgba(2,20,33,.03) 62%); }
.canada-destinations .feature-grid article::before { position: absolute; z-index: 2; top: 20px; left: 20px; margin: 0; width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--pink); display: grid; place-items: center; }
.canada-destinations .feature-grid img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s; }
.canada-destinations .feature-grid article:hover img { transform: scale(1.06); }
.canada-destinations .feature-grid article > div { position: absolute; inset: auto 26px 26px; }
.canada-destinations .feature-grid small { color: #75d1f1; font: 700 11px 'Inter Tight',sans-serif; text-transform: uppercase; letter-spacing: .08em; }
.canada-destinations .feature-grid h3 { margin: 7px 0 4px; color: #fff !important; font-size: 32px; }
.canada-destinations .feature-grid p { color: rgba(255,255,255,.72) !important; }

/* Canada — accommodation */
.canada-stays { padding: 140px 0 !important; background: linear-gradient(145deg,#071f32,#0d3e5d) !important; }
.stay-heading { max-width: 780px; margin-bottom: 55px; }
.stay-heading h2 { margin-bottom: 22px !important; }
.stay-heading > p { max-width: 590px; color: rgba(255,255,255,.65); font: 16px/1.7 'Inter Tight',sans-serif; }
.canada-stays .package-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.canada-stays .package-grid article { height: 500px; padding: 0; border: 0; border-radius: 22px; overflow: hidden; display: block; position: relative; isolation: isolate; }
.canada-stays .package-grid article::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(2,20,33,.95),rgba(2,20,33,.05) 68%); }
.canada-stays .package-grid img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.canada-stays .package-grid article:hover img { transform: scale(1.06); }
.canada-stays .package-grid article > div { position: absolute; inset: auto 28px 30px; }
.canada-stays .package-grid article span { color: #69cdef; font: 800 12px 'Inter Tight',sans-serif; }
.canada-stays .package-grid h3 { margin: 9px 0; font-size: 36px; }
.canada-stays .package-grid p { margin: 0; font-size: 14px; line-height: 1.5; }

/* Canada — courses */
.canada-courses { padding: 140px 0 !important; background: radial-gradient(circle at 80% 15%,rgba(209,34,130,.28),transparent 28%),#081925 !important; color: #fff; }
.canada-courses .container { display: grid; grid-template-columns: .8fr 1.2fr; grid-template-rows: auto 620px; gap: 48px 60px; }
.course-heading { grid-column: 1/3; max-width: 900px; }
.course-heading h2 { margin-bottom: 24px !important; color: #fff; }
.course-heading > p { max-width: 620px; color: rgba(255,255,255,.65); font: 16px/1.7 'Inter Tight',sans-serif; }
.course-image { height: 100%; margin: 0; border-radius: 260px 260px 24px 24px; overflow: hidden; }
.course-image img { width: 100%; height: 100%; object-fit: cover; }
.canada-courses .feature-grid { display: flex; flex-direction: column; gap: 0; }
.canada-courses .feature-grid article,
.canada-courses .feature-grid article:nth-child(1),
.canada-courses .feature-grid article:nth-child(5) { min-height: 124px; padding: 22px 6px; border: 0; border-top: 1px solid rgba(255,255,255,.18); border-radius: 0; background: transparent; box-shadow: none; display: grid; grid-template-columns: 54px 1fr; align-content: center; }
.canada-courses .feature-grid article:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.canada-courses .feature-grid article::before { display: none; }
.canada-courses .feature-grid article > span { grid-row: 1/3; color: #65caef; font: 800 12px 'Inter Tight',sans-serif; }
.canada-courses .feature-grid h3 { margin: 0 0 5px; color: #fff; font-size: 22px; }
.canada-courses .feature-grid p { color: rgba(255,255,255,.6); }

/* Dream Run — race visual language */
.run-page { --run-yellow: #ffd447; --run-blue: #072c4a; }
.run-magic { padding: 140px 0 !important; background: radial-gradient(circle at 82% 5%,rgba(255,212,71,.2),transparent 25%),#07141f !important; }
.run-section-heading { max-width: 970px; margin-bottom: 55px; }
.run-section-heading h2 { color: #fff; }
.run-section-heading h2 em { color: var(--run-yellow); font-family: 'DM Serif Display',Georgia,serif; font-weight: 400; }
.run-magic .feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.run-magic .feature-grid article { min-height: 500px; padding: 0; border-radius: 22px; overflow: hidden; position: relative; isolation: isolate; display: block; }
.run-magic .feature-grid article:first-child { background: none; }
.run-magic .feature-grid article::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(3,17,27,.96),rgba(3,17,27,.04) 65%); }
.run-magic .feature-grid img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s; }
.run-magic .feature-grid article:hover img { transform: scale(1.06); }
.run-magic .feature-grid article > div { position: absolute; inset: auto 28px 30px; }
.run-magic .feature-grid article span { color: var(--run-yellow); font: 800 12px 'Inter Tight',sans-serif; }
.run-magic .feature-grid article h3 { margin-top: 9px; color: #fff; font-size: 27px; }
.run-magic .feature-grid article p { color: rgba(255,255,255,.66); }

.run-packages { padding: 140px 0 !important; color: #fff; background-color: #09263e !important; background-image: linear-gradient(45deg,rgba(255,255,255,.025) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.025) 75%),linear-gradient(45deg,rgba(255,255,255,.025) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.025) 75%); background-size: 40px 40px; background-position: 0 0,20px 20px; }
.run-packages h2 { max-width: 820px; color: #fff; }
.run-packages .package-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 55px; }
.run-packages .package-grid article { min-height: 590px; padding: 0; border: 1px solid rgba(255,255,255,.16); border-radius: 24px; overflow: hidden; background: #fff; color: var(--run-blue); display: grid; grid-template-rows: 235px 1fr; position: relative; transform: none; }
.run-packages .package-grid article.featured { transform: translateY(-22px); background: var(--run-yellow); color: #07141f; }
.run-packages .package-grid article > img { width: 100%; height: 100%; object-fit: cover; }
.run-packages .package-grid article > div { padding: 27px; display: flex; flex-direction: column; }
.run-packages .package-index { position: absolute; top: 18px; left: 18px; width: 45px; height: 45px; margin: 0; border-radius: 50%; background: var(--pink); color: #fff; display: grid; place-items: center; }
.run-packages .package-grid small { color: #6f7d88; }
.run-packages .package-grid h3 { color: var(--run-blue); font-size: 35px; }
.run-packages .package-grid p { min-height: 0; }
.run-packages .package-grid a { margin-top: auto; color: var(--pink); }
.run-packages .package-grid article.featured h3,
.run-packages .package-grid article.featured p,
.run-packages .package-grid article.featured a { color: #07141f; }

.run-itineraries { padding: 140px 0; background: #061a2a; color: #fff; }
.run-itineraries h2 { color: #fff; }
.itinerary-heading > p { color: rgba(255,255,255,.62); }
.itinerary-accordion details { border-color: rgba(255,255,255,.18); }
.itinerary-accordion summary span { color: #fff; }
.itinerary-accordion summary strong { color: var(--run-yellow); }
.itinerary-flow span { background: rgba(255,255,255,.09); color: rgba(255,255,255,.78); }
.run-comparison { background: #f1f4f6; color: var(--ink); }
.run-comparison h2 { color: var(--ink); }
.run-comparison .comparison-table table { box-shadow: 0 25px 70px rgba(7,48,80,.12); }
.run-comparison .comparison-table th { background: var(--run-blue); }
.run-pricing { padding: 140px 0 !important; background: var(--run-yellow) !important; }
.run-pricing h2 { color: #07141f; }
.run-pricing .price-grid { border-color: rgba(7,20,31,.25); }
.run-pricing .price-grid article { border-color: rgba(7,20,31,.22); }
.run-pricing .price-grid h3,.run-pricing .price-grid p { color: #07141f; }
.run-pricing .price-grid strong { color: var(--pink); }

@media (max-width: 900px) {
  .broadway-opening .container { grid-template-columns: 1fr; }
  .broadway-number { transform: none; font-size: 78px; }
  .broadway-route ol { grid-template-columns: 1fr; }
  .broadway-route li { min-height: 470px; }
  .canada-benefits .container { grid-template-columns: 1fr; }
  .canada-benefits .feature-grid { grid-template-columns: 1fr 1fr; }
  .season-gallery { grid-template-columns: 1fr 1fr; gap: 14px; }
  .season-gallery article:nth-child(even) { transform: none; }
  .canada-destinations .feature-grid { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3,300px); }
  .canada-destinations .feature-grid article,
  .canada-destinations .feature-grid article:nth-child(1),
  .canada-destinations .feature-grid article:nth-child(2) { grid-column: span 1; }
  .canada-stays .package-grid { grid-template-columns: 1fr; }
  .canada-stays .package-grid article { height: 420px; }
  .canada-courses .container { grid-template-columns: 1fr; grid-template-rows: auto 440px auto; }
  .course-heading { grid-column: 1; }
  .course-image { border-radius: 220px 220px 20px 20px; }
  .run-magic .feature-grid,.run-packages .package-grid { grid-template-columns: 1fr; }
  .run-packages .package-grid article.featured { transform: none; }
}

@media (max-width: 560px) {
  .broadway-marquee .marquee-track span { font-size: 13px; }
  .broadway-number { font-size: 64px; }
  .broadway-frame { height: 360px; }
  .genre-list article { padding-inline: 0; }
  .canada-benefits .feature-grid,.season-gallery,.canada-destinations .feature-grid { grid-template-columns: 1fr; }
  .canada-benefits .feature-grid { grid-template-rows: none; }
  .canada-benefits .feature-grid article { min-height: 290px !important; }
  .season-gallery article { height: 450px; }
  .canada-destinations .feature-grid { grid-template-rows: repeat(5,360px); }
  .canada-stays .package-grid article { height: 460px; }
  .course-image { height: 400px; }
  .run-magic .feature-grid article { min-height: 470px; }
  .run-packages .package-grid article { min-height: 560px; }
}
