/* =========================================================================
   Joanina — "Faculty ribbons"
   Black cape ground; every section is a ribbon band in a faculty colour;
   gold is the library. Bodoni Moda / Archivo Black / Literata.
   ========================================================================= */
.oh-world-joanina {
	--cape: #141416;
	--cape-2: #1e1e22;
	--gold: #c9a227;
	--gold-deep: #9a7a17;
	--f-letters: #1f3f8f;   /* Letras — dark blue */
	--f-medicine: #f2c230;  /* Medicina — yellow */
	--f-law: #c62828;       /* Direito — red */
	--f-sciences: #4aa3df;  /* Ciências — light blue */
	--f-pharmacy: #6a2c91;  /* Farmácia — purple */
	--white: #fbfaf7;

	--oh-color-primary: var(--cape);
	--oh-color-primary-dark: var(--cape);
	--oh-color-accent: var(--gold);
	--oh-color-accent-dark: var(--gold-deep);
	--oh-color-ink: var(--cape);
	--oh-color-muted: #3d3a42;
	--oh-color-line: rgba(20,20,22,0.25);
	--oh-color-line-dark: rgba(251,250,247,0.25);
	--oh-color-bg: var(--cape);
	--oh-color-bg-alt: var(--f-letters);
	--oh-color-bg-dark: var(--f-pharmacy);
	--oh-color-on-dark: var(--white);

	--oh-font-heading: "Bodoni Moda", "Didot", "Bodoni 72", serif;
	--oh-font-body: "Literata", "Iowan Old Style", Georgia, serif;
	--oh-font-caps: "Archivo Black", "Arial Black", Impact, sans-serif;
	--oh-lh-base: 1.62;
	--oh-shadow: 0 14px 30px -18px rgba(0,0,0,0.6);
	--oh-shadow-lg: 0 30px 60px -30px rgba(0,0,0,0.7);
	--oh-header-h: 68px;
	--oh-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	background: var(--cape);
	color: var(--white);
}

/* ---- Type ---- */
.oh-world-joanina h1, .oh-world-joanina h2, .oh-world-joanina h3 { font-family: var(--oh-font-heading); font-weight: 700; letter-spacing: -0.015em; line-height: 1.02; color: inherit; }
.oh-world-joanina h2 { font-size: clamp(2rem, 1.3rem + 2.8vw, 3.6rem); }
.oh-world-joanina h3 { font-size: clamp(1.3rem, 1.05rem + 1vw, 1.8rem); }
.oh-world-joanina a { color: inherit; text-decoration-color: currentColor; }
.oh-world-joanina :focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
/* Band captions: the ribbon lettering */
.oh-world-joanina .oh-eyebrow { font-family: var(--oh-font-caps); font-weight: 400; font-size: 0.72rem; letter-spacing: 0.28em; text-transform: uppercase; color: inherit; opacity: 0.92; }
.oh-world-joanina .oh-eyebrow::before { width: 2.6rem; height: 3px; background: currentColor; }
.oh-world-joanina .oh-lead { color: inherit; opacity: 0.92; font-size: 1.15em; }
.oh-world-joanina blockquote { border-left: 4px solid currentColor; font-family: var(--oh-font-heading); font-style: italic; font-weight: 400; font-size: 1.35em; color: inherit; }
.oh-world-joanina li::marker { color: inherit; }

/* ---- Header: black cape, gold wordmark ---- */
.oh-world-joanina .site-header, .oh-world-joanina .site-header.is-scrolled { position: sticky; top: 0; background: var(--cape); border-bottom: 1px solid rgba(251,250,247,0.14); box-shadow: none; backdrop-filter: none; }
.oh-world-joanina .site-header .oh-logo__word, .oh-world-joanina .site-header.is-scrolled .oh-logo__word { color: var(--white); font-family: var(--oh-font-heading); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.01em; }
.oh-world-joanina .site-header .oh-logo__word small, .oh-world-joanina .site-header.is-scrolled .oh-logo__word small { color: var(--gold); font-family: var(--oh-font-caps); font-weight: 400; font-size: 0.55rem; letter-spacing: 0.3em; }
.oh-world-joanina .site-header .oh-logo__mark, .oh-world-joanina .site-header.is-scrolled .oh-logo__mark { color: var(--gold); }
.oh-world-joanina .site-header .menu-toggle, .oh-world-joanina .site-header.is-scrolled .menu-toggle { color: var(--white); border-color: rgba(251,250,247,0.35); font-family: var(--oh-font-caps); font-weight: 400; letter-spacing: 0.2em; font-size: 0.62rem; }
.oh-world-joanina .site-header .menu-toggle:hover { border-color: var(--gold); color: var(--gold); }
.oh-world-joanina .site-header__lang .gt_float_switcher .gt-selected .gt-current-lang, .oh-world-joanina .site-header.is-scrolled .site-header__lang .gt-current-lang { color: var(--white); border-color: rgba(251,250,247,0.35); }
.oh-world-joanina .oh-menu { background: var(--cape); }
.oh-world-joanina .oh-menu__list > li > a::before { color: var(--gold); font-family: var(--oh-font-caps); }
.oh-world-joanina .oh-menu__list > li > a { font-family: var(--oh-font-heading); font-weight: 700; }
.oh-world-joanina .oh-menu__list > li > a:hover, .oh-world-joanina .oh-menu__list .current-menu-item > a { color: var(--gold); }

/* ---- Buttons: ribbon ends ---- */
.oh-world-joanina .oh-btn { font-family: var(--oh-font-caps); font-weight: 400; font-size: 0.68rem; letter-spacing: 0.24em; padding: 1.05em 1.7em; border-width: 2px; transition: transform 0.25s var(--oh-ease), background-color 0.25s, color 0.25s, border-color 0.25s; }
.oh-world-joanina .oh-btn--primary { background: var(--gold); color: var(--cape); border-color: var(--gold); }
.oh-world-joanina .oh-btn--primary:hover, .oh-world-joanina .oh-btn--primary:focus { background: var(--cape); color: var(--gold); border-color: var(--cape); transform: translateY(-2px); }
.oh-world-joanina .oh-btn--ghost { color: inherit; border-color: currentColor; }
.oh-world-joanina .oh-btn--ghost:hover { background: var(--white); color: var(--cape); border-color: var(--white); }
.oh-world-joanina .oh-btn--outline { color: inherit; border-color: currentColor; }
.oh-world-joanina .oh-btn--outline:hover { background: var(--cape); color: var(--white); border-color: var(--cape); }
.oh-world-joanina .oh-btn--sm { padding: 0.75em 1.1em; font-size: 0.6rem; }
.oh-world-joanina .oh-textlink, .oh-world-joanina .oh-card__link, .oh-world-joanina .oh-teaser__more { font-family: var(--oh-font-caps); font-weight: 400; font-size: 0.66rem; letter-spacing: 0.22em; color: inherit; }

/* =========================================================================
   Hero: cape ground, gold-framed library, five ribbons falling
   ========================================================================= */
.oh-world-joanina .oh-hero { background: var(--cape); color: var(--white); min-height: clamp(560px, 88vh, 860px); display: grid; align-items: center; }
.oh-world-joanina .oh-hero::after { display: none; }
.oh-world-joanina .oh-hero__bg { position: absolute; inset: auto; z-index: 0; will-change: auto; top: calc(var(--oh-header-h) + 2.5rem); bottom: 2.5rem; left: clamp(1.2rem, 5vw, 3rem); width: min(44%, 620px); background-size: cover; background-position: center; border: 1px solid var(--gold); outline: 10px solid var(--cape); box-shadow: 0 0 0 11px var(--gold), var(--oh-shadow-lg); }
.oh-world-joanina .fita-frame { display: none; }
@media (max-width: 899px) { .oh-world-joanina .oh-hero { display: block; min-height: 0; } .oh-world-joanina .oh-hero__bg { position: relative; top: 0; left: 0; right: 0; bottom: auto; width: calc(100% - 2.4rem); height: auto; aspect-ratio: 4 / 3; margin: calc(var(--oh-header-h) + 1.25rem) 1.2rem 0; box-shadow: 0 0 0 6px var(--gold); outline-width: 5px; } }
/* Ribbons: five bands hanging from the top edge, right side */
.oh-world-joanina .oh-hero__world { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.oh-world-joanina .fita-stack { position: absolute; top: 0; right: clamp(1rem, 6vw, 5rem); display: flex; gap: clamp(0.35rem, 1vw, 0.9rem); align-items: flex-start; }
.oh-world-joanina .fita { width: clamp(28px, 3.4vw, 50px); height: calc(50vh + var(--i) * 4vh); background: var(--white); color: var(--white); transform-origin: top center; position: relative; }
.oh-world-joanina .fita::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; border-left: calc(clamp(28px, 3.4vw, 50px) / 2) solid transparent; border-right: calc(clamp(28px, 3.4vw, 50px) / 2) solid transparent; border-top: 18px solid var(--cape); }
.oh-world-joanina .fita span { position: absolute; left: 50%; top: 1.2rem; transform: translateX(-50%); writing-mode: vertical-rl; font-family: var(--oh-font-caps); font-size: 0.55rem; letter-spacing: 0.3em; text-transform: uppercase; white-space: nowrap; color: rgba(255,255,255,0.85); mix-blend-mode: difference; }
.oh-world-joanina .fita--letters { background: var(--f-letters); }
.oh-world-joanina .fita--medicine { background: var(--f-medicine); }
.oh-world-joanina .fita--law { background: var(--f-law); }
.oh-world-joanina .fita--sciences { background: var(--f-sciences); }
.oh-world-joanina .fita--pharmacy { background: var(--f-pharmacy); }
@media (max-width: 899px) { .oh-world-joanina .fita { height: calc(16vh + var(--i) * 1.5vh); } }
.oh-world-joanina .oh-hero__inner { position: relative; z-index: 2; max-width: none; padding-top: calc(var(--oh-header-h) + clamp(2rem, 6vw, 4rem)); }
@media (min-width: 900px) { .oh-world-joanina .oh-hero__inner { padding-left: calc(min(44%, 620px) + clamp(2.5rem, 6vw, 5rem)); padding-right: clamp(9rem, 23vw, 23rem); } }
.oh-world-joanina .oh-hero__eyebrow { color: var(--gold); font-family: var(--oh-font-caps); font-weight: 400; letter-spacing: 0.3em; font-size: 0.7rem; }
.oh-world-joanina .oh-hero__eyebrow::before { background: var(--gold); height: 3px; }
.oh-world-joanina .oh-hero__title { color: var(--white); font-size: clamp(2.4rem, 1.3rem + 4.4vw, 5rem); line-height: 1; max-width: 14ch; text-shadow: none; text-wrap: balance; }
.oh-world-joanina .oh-hero__title em, .oh-world-joanina .oh-hero__title::first-line { color: var(--gold); }
.oh-world-joanina .oh-hero__subtitle { color: rgba(251,250,247,0.88); max-width: 44ch; font-size: clamp(1rem, 0.95rem + 0.4vw, 1.2rem); }
/* Quick links: four small ribbon ends */
.oh-world-joanina .oh-hero__quicklinks { background: transparent; border: 0; gap: 0.6rem; margin-top: clamp(2rem, 5vw, 3rem); grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.oh-world-joanina .oh-hero__quicklink { background: transparent; border: 1px solid rgba(251,250,247,0.3); color: var(--white); font-family: var(--oh-font-caps); font-weight: 400; font-size: 0.6rem; letter-spacing: 0.22em; padding: 0.9rem 1rem; }
.oh-world-joanina .oh-hero__quicklink:nth-child(1):hover { background: var(--f-letters); border-color: var(--f-letters); color: var(--white); }
.oh-world-joanina .oh-hero__quicklink:nth-child(2):hover { background: var(--f-law); border-color: var(--f-law); color: var(--white); }
.oh-world-joanina .oh-hero__quicklink:nth-child(3):hover { background: var(--gold); border-color: var(--gold); color: var(--cape); }
.oh-world-joanina .oh-hero__quicklink:nth-child(4):hover { background: var(--f-sciences); border-color: var(--f-sciences); color: var(--cape); }
.oh-world-joanina .oh-hero__quicklink svg { color: var(--gold); width: 18px; height: 18px; }

/* The first wide band under the hero */
.oh-world-joanina .fita-band { color: var(--cape); }
.oh-world-joanina .fita-band--yellow { background: var(--f-medicine); }
.oh-world-joanina .fita-band__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.5rem; padding-block: 1.1rem; }
.oh-world-joanina .fita-band__cap { font-family: var(--oh-font-caps); font-size: 0.7rem; letter-spacing: 0.3em; text-transform: uppercase; padding: 0.35em 0.7em; border: 2px solid var(--cape); }
.oh-world-joanina .fita-band__text { margin: 0; font-family: var(--oh-font-heading); font-weight: 700; font-size: clamp(1.05rem, 0.95rem + 0.6vw, 1.4rem); letter-spacing: -0.01em; }
.oh-world-joanina .fita-band__link { margin-left: auto; font-family: var(--oh-font-caps); font-size: 0.64rem; letter-spacing: 0.22em; text-transform: uppercase; text-decoration: none; border-bottom: 2px solid var(--cape); }

/* =========================================================================
   Bands: sections cycle through the faculty colours (no white sheets,
   no cards). Foreground follows the band.
   ========================================================================= */
.oh-world-joanina .site-main > .oh-section { background: var(--white); color: var(--cape); border: 0; }
.oh-world-joanina .site-main > .oh-section:nth-of-type(5n+1) { background: var(--white); color: var(--cape); }
.oh-world-joanina .site-main > .oh-section:nth-of-type(5n+2) { background: var(--f-letters); color: var(--white); }
.oh-world-joanina .site-main > .oh-section:nth-of-type(5n+3) { background: var(--f-sciences); color: var(--cape); }
.oh-world-joanina .site-main > .oh-section:nth-of-type(5n+4) { background: var(--f-law); color: var(--white); }
.oh-world-joanina .site-main > .oh-section:nth-of-type(5n+5) { background: var(--f-pharmacy); color: var(--white); }
.oh-world-joanina .site-main > .oh-section--dark { background: var(--f-pharmacy); color: var(--white); }
.oh-world-joanina .site-main > .oh-section.oh-section--tight { background: var(--white); color: var(--cape); }
.oh-world-joanina .oh-section h2, .oh-world-joanina .oh-section h3 { color: inherit; }
.oh-world-joanina .oh-section--dark .oh-eyebrow, .oh-world-joanina .oh-section--dark .oh-lead, .oh-world-joanina .oh-section--dark a { color: inherit; }
.oh-world-joanina .oh-section-head { max-width: none; }
.oh-world-joanina .oh-section-head h2 { max-width: 18ch; }
.oh-world-joanina .oh-section-head .oh-lead { max-width: 60ch; }
.oh-world-joanina .oh-prose, .oh-world-joanina .oh-split__body p, .oh-world-joanina .oh-teaser p, .oh-world-joanina .oh-card__excerpt, .oh-world-joanina .oh-fact__label, .oh-world-joanina .oh-price li, .oh-world-joanina .oh-price__desc, .oh-world-joanina .oh-review__author span { color: inherit; }

/* Ticket row: the gold ribbon (library) beside the white booking slip */
.oh-world-joanina .oh-ticketrow { border: 0; }
.oh-world-joanina .oh-ticketbanner { background: var(--gold); color: var(--cape); }
.oh-world-joanina .oh-ticketbanner::after { background: linear-gradient(120deg, rgba(201,162,39,0.94) 0%, rgba(201,162,39,0.55) 100%); }
.oh-world-joanina .oh-ticketbanner__eyebrow { color: var(--cape); font-family: var(--oh-font-caps); font-weight: 400; letter-spacing: 0.3em; font-size: 0.66rem; }
.oh-world-joanina .oh-ticketbanner h2, .oh-world-joanina .oh-ticketbanner p { color: var(--cape); }
.oh-world-joanina .oh-ticketbanner__price { color: var(--cape); font-family: var(--oh-font-caps); font-size: 0.7rem; letter-spacing: 0.24em; text-transform: uppercase; }
.oh-world-joanina .oh-ticketbanner__price strong { font-family: var(--oh-font-heading); font-size: 2.6rem; letter-spacing: -0.02em; text-transform: none; vertical-align: middle; margin-left: 0.4rem; }
.oh-world-joanina .oh-ticketbanner .oh-btn--primary { background: var(--cape); color: var(--gold); border-color: var(--cape); }
.oh-world-joanina .oh-ticketbanner .oh-btn--primary:hover { background: var(--white); color: var(--cape); border-color: var(--white); }
.oh-world-joanina .oh-ticketbanner .oh-btn--ghost { color: var(--cape); border-color: var(--cape); }
.oh-world-joanina .oh-booking { background: var(--white); color: var(--cape); border: 1px solid rgba(20,20,22,0.15); border-left: 0; }
.oh-world-joanina .oh-booking__head p { color: inherit; }

/* Facts: a black ribbon strip with gold numerals */
.oh-world-joanina .oh-facts { background: var(--cape); border: 0; gap: 0; }
.oh-world-joanina .oh-fact, .oh-world-joanina .oh-section--alt .oh-fact { background: var(--cape); color: var(--white); border-right: 1px solid rgba(251,250,247,0.15); }
.oh-world-joanina .oh-fact:last-child { border-right: 0; }
.oh-world-joanina .oh-fact__num { color: var(--gold); font-weight: 700; letter-spacing: -0.03em; }
.oh-world-joanina .oh-fact__label { color: rgba(251,250,247,0.85); }

/* Teasers: four ribbons in a row, each its faculty colour */
.oh-world-joanina .oh-grid--3:has(.oh-teaser) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 0.75rem; }
.oh-world-joanina .oh-teaser { background: var(--white); color: var(--cape); border: 0; padding: 0 1.5rem 1.6rem; border-top: 14px solid var(--gold); box-shadow: none; }
.oh-world-joanina .oh-teaser::before { display: none; }
.oh-world-joanina .oh-teaser:hover { transform: translateY(-6px); box-shadow: var(--oh-shadow); color: var(--cape); }
.oh-world-joanina .oh-teaser:nth-child(1) { border-top-color: var(--f-letters); }
.oh-world-joanina .oh-teaser:nth-child(2) { border-top-color: var(--f-medicine); }
.oh-world-joanina .oh-teaser:nth-child(3) { border-top-color: var(--f-law); }
.oh-world-joanina .oh-teaser:nth-child(4) { border-top-color: var(--f-sciences); }
.oh-world-joanina .oh-teaser__index { font-family: var(--oh-font-caps); font-size: 0.62rem; letter-spacing: 0.3em; color: var(--cape); opacity: 0.7; margin-top: 1.25rem; }
.oh-world-joanina .oh-teaser__icon { display: none; }
.oh-world-joanina .oh-teaser__title { color: var(--cape); }
.oh-world-joanina .oh-teaser__more { color: var(--cape); }

/* Split feature: gold-framed photo */
.oh-world-joanina .oh-split__media img, .oh-world-joanina .oh-split__media .oh-editable-img { box-shadow: 0 0 0 8px currentColor; }
@media (min-width: 880px) { .oh-world-joanina .oh-split__media { box-shadow: 0 0 0 8px currentColor; } .oh-world-joanina .oh-split__media img { box-shadow: none; } }

/* Reviews on the purple band */
.oh-world-joanina .oh-review { background: rgba(251,250,247,0.08); border: 1px solid rgba(251,250,247,0.3); }
.oh-world-joanina .oh-review__stars { color: var(--gold); }
.oh-world-joanina .oh-review__text { color: var(--white); font-family: var(--oh-font-heading); font-weight: 400; font-style: italic; font-size: 1.2rem; }
.oh-world-joanina .oh-review__author strong { color: var(--gold); font-family: var(--oh-font-caps); font-weight: 400; letter-spacing: 0.22em; font-size: 0.66rem; text-transform: uppercase; }

/* Cards (history layers, blog) */
.oh-world-joanina .oh-card { background: rgba(255,255,255,0.12); border: 1px solid currentColor; color: inherit; }
.oh-world-joanina .oh-section:nth-of-type(5n+1) .oh-card { background: var(--white); border-color: rgba(20,20,22,0.2); }
.oh-world-joanina .oh-card:hover { transform: none; box-shadow: none; border-color: currentColor; }
.oh-world-joanina .oh-card__title { color: inherit; }
.oh-world-joanina .oh-card__meta, .oh-world-joanina .oh-card__date { color: inherit; font-family: var(--oh-font-caps); font-weight: 400; letter-spacing: 0.2em; font-size: 0.62rem; }

/* Pricing: two ribbons — general in Letters blue, guided in gold */
.oh-world-joanina .oh-price { background: var(--white); color: var(--cape); border: 0; border-top: 18px solid var(--f-letters); box-shadow: var(--oh-shadow); }
.oh-world-joanina .oh-price:nth-child(2) { border-top-color: var(--gold); }
.oh-world-joanina .oh-price:nth-child(3) { border-top-color: var(--f-law); }
.oh-world-joanina .oh-price--featured { border-top-color: var(--f-letters); }
.oh-world-joanina .oh-price:hover { transform: translateY(-4px); }
.oh-world-joanina .oh-price__badge { background: var(--cape); color: var(--gold); font-family: var(--oh-font-caps); font-weight: 400; letter-spacing: 0.2em; font-size: 0.58rem; top: -18px; }
.oh-world-joanina .oh-price__name { color: var(--cape); }
.oh-world-joanina .oh-price__amount { color: var(--cape); font-weight: 700; letter-spacing: -0.03em; font-size: 3rem; }
.oh-world-joanina .oh-price__amount small { color: var(--oh-color-muted); font-family: var(--oh-font-body); }
.oh-world-joanina .oh-price li::before { background: var(--gold); height: 3px; }
.oh-world-joanina .oh-price li, .oh-world-joanina .oh-price__desc { color: var(--oh-color-muted); }

/* Callouts, timeline, lists */
.oh-world-joanina .oh-callout { background: var(--white); color: var(--cape); border-left: 0; border-top: 12px solid var(--gold); }
.oh-world-joanina .oh-callout svg { color: var(--gold-deep); }
.oh-world-joanina .oh-callout strong { color: var(--cape); }
.oh-world-joanina .oh-richtimeline ul::before { background: currentColor; opacity: 0.4; }
.oh-world-joanina .oh-richtimeline li { color: inherit; }
.oh-world-joanina .oh-richtimeline li::before { background: var(--gold); }
.oh-world-joanina .oh-richtimeline li strong { color: inherit; }
.oh-world-joanina .oh-deflist li { border-bottom-color: currentColor; color: inherit; }
.oh-world-joanina .oh-deflist li strong, .oh-world-joanina .oh-contact-list strong { color: inherit; }
.oh-world-joanina .oh-info-heading svg, .oh-world-joanina .oh-contact-list svg { color: var(--gold); }
.oh-world-joanina .oh-contact-list li { border-bottom-color: currentColor; }

/* Interior page headers: cape ground, gold-framed photo strip, ribbons */
.oh-world-joanina .oh-pagehead { background-color: var(--cape); color: var(--white); padding-block: calc(var(--oh-header-h) * 0 + clamp(3rem, 7vw, 5rem)); }
.oh-world-joanina .oh-pagehead::after { background: linear-gradient(90deg, rgba(20,20,22,0.96) 0%, rgba(20,20,22,0.7) 60%, rgba(20,20,22,0.45) 100%); }
.oh-world-joanina .oh-pagehead__title { color: var(--white); }
.oh-world-joanina .oh-pagehead__title::first-line { color: var(--gold); }
.oh-world-joanina .oh-pagehead__lead { color: rgba(251,250,247,0.88); }
.oh-world-joanina .oh-breadcrumbs { color: var(--gold); font-family: var(--oh-font-caps); font-weight: 400; letter-spacing: 0.24em; font-size: 0.6rem; }
.oh-world-joanina .oh-breadcrumbs a { color: var(--gold); }

/* Gallery */
.oh-world-joanina .wp-block-gallery figure, .oh-world-joanina .oh-gallery__item { box-shadow: 0 0 0 4px var(--gold); }
.oh-world-joanina .oh-lightbox__btn:hover { background: var(--gold); border-color: var(--gold); color: var(--cape); }
.oh-world-joanina .oh-map-embed { border: 0; box-shadow: 0 0 0 8px var(--gold); }

/* Pre-footer band + footer: cape with gold */
.oh-world-joanina .oh-buycta { background: var(--cape); }
.oh-world-joanina .oh-buycta__bg { opacity: 0.35; }
.oh-world-joanina .oh-buycta::after { background: linear-gradient(120deg, rgba(20,20,22,0.96) 40%, rgba(20,20,22,0.6)); }
.oh-world-joanina .oh-buycta__eyebrow { color: var(--gold); font-family: var(--oh-font-caps); font-weight: 400; letter-spacing: 0.3em; font-size: 0.66rem; }
.oh-world-joanina .oh-buycta h2 { color: var(--white); }
.oh-world-joanina .site-footer { background: var(--cape); color: rgba(251,250,247,0.85); border-top: 6px solid var(--gold); }
.oh-world-joanina .site-footer a { color: rgba(251,250,247,0.85); }
.oh-world-joanina .site-footer a:hover { color: var(--gold); }
.oh-world-joanina .site-footer__brand { color: var(--gold); font-weight: 700; }
.oh-world-joanina .site-footer h2, .oh-world-joanina .site-footer .widget-title { color: var(--white); font-family: var(--oh-font-caps); font-weight: 400; letter-spacing: 0.26em; font-size: 0.62rem; }
.oh-world-joanina .site-footer__bottom { color: rgba(251,250,247,0.55); }

/* ---- LatePoint form ---- */
.oh-world-joanina .latepoint-w, .oh-world-joanina .latepoint-w *:not([class*="latepoint-icon"]) { font-family: var(--oh-font-body) !important; }
.oh-world-joanina .latepoint-w h2, .oh-world-joanina .latepoint-w h3, .oh-world-joanina .latepoint-w .os-step-title { font-family: var(--oh-font-heading) !important; font-weight: 700 !important; }
.oh-world-joanina .latepoint-w .latepoint-btn, .oh-world-joanina .latepoint-w .latepoint-btn-primary { background: var(--cape) !important; color: var(--gold) !important; border: 2px solid var(--cape) !important; border-radius: 0 !important; font-family: var(--oh-font-caps) !important; letter-spacing: 0.2em; font-size: 0.66rem; }
.oh-world-joanina .latepoint-w .latepoint-btn:hover { background: var(--gold) !important; color: var(--cape) !important; }
.oh-world-joanina .latepoint-w .os-item.selected, .oh-world-joanina .latepoint-w .os-day.selected .os-day-box, .oh-world-joanina .latepoint-w .os-time-slot.selected { background: var(--f-letters) !important; color: #fff !important; border-color: var(--f-letters) !important; }
.oh-world-joanina .latepoint-w .os-item, .oh-world-joanina .latepoint-w .os-form-group input, .oh-world-joanina .latepoint-w .os-form-group select { border-radius: 0 !important; }

/* ---- Motion: the ribbons drop — one authored moment ---- */
.js .oh-world-joanina .oh-reveal { filter: none; transform: translateY(12px); transition: opacity 0.5s var(--oh-ease), transform 0.6s var(--oh-ease); }
.js .oh-world-joanina .fita { animation: fita-drop 1.1s var(--oh-ease) both; animation-delay: calc(0.08s * var(--i)); }
@keyframes fita-drop { 0% { transform: translateY(-105%) rotate(-3deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
.js .oh-world-joanina .oh-hero__bg { animation: fita-frame 1s var(--oh-ease) 0.2s both; }
@keyframes fita-frame { from { opacity: 0; transform: scale(0.98); } to { opacity: 1; transform: none; } }
.js .oh-world-joanina .oh-hero__title, .js .oh-world-joanina .oh-hero__subtitle, .js .oh-world-joanina .oh-hero__actions, .js .oh-world-joanina .oh-hero__eyebrow { animation: fita-rise 0.8s var(--oh-ease) 0.35s both; }
.js .oh-world-joanina .oh-hero__subtitle { animation-delay: 0.45s; }
.js .oh-world-joanina .oh-hero__actions { animation-delay: 0.55s; }
@keyframes fita-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .js .oh-world-joanina .fita, .js .oh-world-joanina .oh-hero__bg, .js .oh-world-joanina .oh-hero__title, .js .oh-world-joanina .oh-hero__subtitle, .js .oh-world-joanina .oh-hero__actions, .js .oh-world-joanina .oh-hero__eyebrow { animation: none; } }

/* ---- Finish-review fixes ---- */
/* A library has no castle: drop the inherited castle glyph from the wordmark */
.oh-world-joanina .oh-logo__mark { display: none; }
/* Inline muted colour on the tours note is unreadable on a coloured band */
.oh-world-joanina .site-main > .oh-section .oh-prose { color: inherit !important; }
/* The yellow band carries the tickets: name, price and the action */
.oh-world-joanina .fita-band__tickets { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.6rem; flex-basis: 100%; }
.oh-world-joanina .fita-band__tickets li { margin: 0; display: flex; align-items: baseline; gap: 0.5rem; font-family: var(--oh-font-body); font-weight: 600; font-size: 1rem; }
.oh-world-joanina .fita-band__tickets strong { font-family: var(--oh-font-heading); font-weight: 700; font-size: 1.6rem; letter-spacing: -0.02em; line-height: 1; }
.oh-world-joanina .fita-band__book { font-family: var(--oh-font-caps); font-size: 0.66rem; letter-spacing: 0.22em; text-transform: uppercase; text-decoration: none; background: var(--cape); color: var(--f-medicine); padding: 0.8em 1.3em; }
.oh-world-joanina .fita-band__book:hover, .oh-world-joanina .fita-band__book:focus { background: var(--white); color: var(--cape); }
@media (min-width: 900px) { .oh-world-joanina .fita-band__tickets { flex-basis: auto; margin-left: auto; } }

/* ---- Rhythm pass ---- */
.oh-world-joanina { --oh-section-y: clamp(2.25rem, 5.5vw, 4.25rem); }
.oh-world-joanina .oh-hero__title { font-size: clamp(2.2rem, 1.2rem + 3.6vw, 4.2rem); line-height: 1.04; }
.oh-world-joanina h2, .oh-world-joanina .oh-buycta h2, .oh-world-joanina .oh-ticketbanner h2 { line-height: 1.06; }
.oh-world-joanina h3, .oh-world-joanina .oh-teaser__title, .oh-world-joanina .oh-price__name, .oh-world-joanina .oh-card__title { line-height: 1.14; }
.oh-world-joanina .oh-ticketbanner, .oh-world-joanina .oh-booking { padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.5rem, 4vw, 3rem); }
.oh-world-joanina .oh-pagehead { padding-block: clamp(2.25rem, 5vw, 3.5rem); }
