/* Site-wide polish on top of the parent theme (loaded on every page). Palette: see rogazionisti.css / palette.css. */
:root { --rog-ink: #14203f; --rog-muted: #55657a; --rog-line: #dde3ec; --rog-sand: #f4f1e9; }

/* ---------- top bar: the online services (child override of slimheader) ---------- */
#pre-header { height: auto; min-height: 40px; }
.rog-services { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem 1.4rem; font-size: .9rem; line-height: 1.35; padding: .3rem 0; }
.rog-services span { opacity: .85; }
.rog-services a { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.rog-services a:hover { text-decoration-thickness: 2px; }

/* ---------- the "Porte aperte" alert: a slim notice, not a block ---------- */
.home-message { padding: .7rem 1rem !important; }
.home-message .home-message-content { max-width: 1140px; margin: 0 auto; }
.home-message .msg { font-size: 1.05rem !important; font-weight: 600; line-height: 1.35; margin: 0 !important; }
.home-message .btn { margin-left: 1rem; vertical-align: middle; }
@media (max-width: 575.98px) { .home-message .btn { display: inline-block; margin: .5rem 0 0; } }

/* ---------- the header turns fixed on scroll; hold its space so nothing jumps ---------- */
.rog-header-ph { display: none; }

/* ======================================================================================================
   Inner pages: one system (page band, sections, prose, documents, lists, galleries). Home-only pieces: home.css
   ====================================================================================================== */
.rog-section { padding: 3.5rem 0; }
.rog-section--tint { background: var(--rog-sand); }
.rog-h2 { font-size: 2rem; font-weight: 700; line-height: 1.15; color: var(--rog-navy-dark); margin: 0 0 1.5rem; text-wrap: balance; }
.rog-h3 { font-size: 1.35rem; font-weight: 700; line-height: 1.2; color: var(--rog-navy-dark); margin: 0 0 1rem; }
.rog-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; margin-bottom: 1.75rem; }
.rog-head .rog-h2 { margin: 0; }
.rog-more { font-weight: 600; color: var(--rog-navy); text-decoration: none; }
.rog-more:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767.98px) { .rog-section { padding: 2.5rem 0; } .rog-h2 { font-size: 1.65rem; } }

/* page band (title strip): a flat sky panel with a lighter offset panel, like the homepage hero */
.rog-band { position: relative; overflow: hidden; background: #dbe5f0; color: var(--rog-ink); padding: 3.25rem 0 3rem; isolation: isolate; }
.rog-band::before { content: ""; position: absolute; z-index: -1; right: -4rem; top: 1.75rem; bottom: -3rem; width: min(46vw, 34rem); border-radius: 24px; background: #e9f0f7; }
.rog-band h1 { color: var(--rog-ink); font-size: clamp(2.1rem, 1rem + 3.4vw, 3.7rem); line-height: 1.04; font-weight: 700; letter-spacing: -.025em; margin: 0; max-width: 24ch; text-wrap: balance; }
.rog-band__lead { color: #33475b; font-size: 1.25rem; line-height: 1.45; max-width: 44rem; margin: 1rem 0 0; }
.rog-pills { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 1.4rem 0 0; padding: 0; }
.rog-pills li { background: var(--rog-navy-dark); border-radius: 999px; padding: .3rem 1rem; font-size: .9rem; font-weight: 700; color: #fff; }
@media (max-width: 767.98px) { .rog-band { padding: 2.25rem 0 2rem; } .rog-band::before { width: 60vw; right: -3rem; } }

/* long text */
.rog-prose { font-size: 1.125rem; line-height: 1.7; color: #1f2d44; }
.rog-prose p { margin-bottom: 1.1rem; }
.rog-prose h2, .rog-prose h3 { color: var(--rog-navy-dark); margin: 2rem 0 .75rem; }
.rog-prose a { text-decoration: underline; text-underline-offset: 3px; }
.rog-prose img { max-width: 100%; height: auto; }
.rog-prose ul { padding-left: 1.25rem; }
.rog-prose li { margin-bottom: .4rem; }

/* downloadable documents: flat tinted rows, round navy button */
.rog-files { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.rog-file { display: flex; align-items: center; gap: 1.1rem; padding: 1rem 1.1rem 1rem 1.3rem; background: #e9eef6; color: var(--rog-ink); text-decoration: none; border-radius: 14px; transition: background .25s, transform .35s cubic-bezier(.22, 1, .36, 1); }
.rog-file:hover { background: #dbe5f0; transform: translateY(-2px); color: var(--rog-ink); }
.rog-file__icon { display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: 12px; background: #fff; color: var(--rog-navy-dark); }
.rog-file__body { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.rog-file__name { font-size: 1.12rem; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; color: var(--rog-navy-dark); }
.rog-file__meta { font-size: .8rem; font-weight: 700; letter-spacing: .06em; color: #36596d; }
.rog-file__cta { display: inline-flex; align-items: center; gap: .5rem; flex: none; padding: .55rem 1.1rem; border-radius: 999px; background: var(--rog-navy-dark); color: #fff; font-weight: 700; font-size: .95rem; white-space: nowrap; }
.rog-file__cta svg { stroke: #fff; }
@media (max-width: 575.98px) { .rog-file__cta { padding: .55rem .8rem; font-size: 0; gap: 0; } .rog-file__cta svg { width: 20px; height: 20px; } .rog-file__icon { display: none; } }

.rog-aside-list { list-style: none; margin: 0; padding: 0; }
.rog-aside-list li { padding: .9rem 0; border-top: 1px solid var(--rog-line); }
.rog-aside-list time { display: block; font-size: .8rem; color: var(--rog-muted); }
.rog-aside-list a { font-weight: 600; color: var(--rog-navy-dark); text-decoration: none; line-height: 1.3; }
.rog-aside-list a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* circolari list */
.rog-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.5rem; }
.rog-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.rog-chip { padding: .35rem 1rem; border: 1px solid #b9c4d6; border-radius: 999px; color: var(--rog-navy-dark); font-weight: 600; text-decoration: none; background: #fff; }
.rog-chip:hover { border-color: var(--rog-navy); color: var(--rog-navy-dark); }
.rog-chip.is-on { background: var(--rog-navy); border-color: var(--rog-navy); color: #fff; }
.rog-search { display: flex; gap: .5rem; }
.rog-search input { min-width: 16rem; padding: .45rem .8rem; border: 1px solid #8a99b0; border-radius: 6px; font: inherit; }
.rog-search input:focus { outline: 2px solid var(--rog-teal); outline-offset: 1px; }
.rog-search button { padding: .45rem 1.1rem; border: 0; border-radius: 6px; background: var(--rog-navy); color: #fff; font-weight: 600; cursor: pointer; }
.rog-search button:hover { background: var(--rog-navy-dark); }
.rog-month { font-size: 1.05rem; font-weight: 700; color: var(--rog-muted); text-transform: capitalize; margin: 2rem 0 .25rem; padding-bottom: .4rem; border-bottom: 2px solid var(--rog-navy); }
.rog-month:first-child { margin-top: .5rem; }
.rog-item { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) auto; gap: 0 1rem; align-items: baseline; padding: .85rem 0; border-bottom: 1px solid var(--rog-line); }
.rog-item__date { font-weight: 700; color: var(--rog-navy); font-variant-numeric: tabular-nums; text-transform: uppercase; font-size: .9rem; }
.rog-item__title { font-size: 1.1rem; font-weight: 600; line-height: 1.3; margin: 0; }
.rog-item__title a { color: var(--rog-ink); text-decoration: none; }
.rog-item__title a:hover { color: var(--rog-navy); text-decoration: underline; text-underline-offset: 3px; }
.rog-item__meta { font-size: .85rem; color: var(--rog-muted); white-space: nowrap; }
@media (max-width: 575.98px) { .rog-item { grid-template-columns: 1fr; gap: .15rem; } .rog-item__meta { white-space: normal; } .rog-search input { min-width: 0; flex: 1; } .rog-search { width: 100%; } }

/* photo tiles / galleries */
.rog-tile { position: relative; display: block; overflow: hidden; border-radius: 6px; background: var(--rog-navy-dark); aspect-ratio: 4 / 3; }
.rog-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .7s cubic-bezier(.22, 1, .36, 1); }
.rog-tile:hover img { transform: scale(1.04); }
.rog-tile__cap { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: .15rem; padding: 3rem 1rem .9rem; color: #fff; background: linear-gradient(0deg, rgba(14, 22, 45, .88), rgba(14, 22, 45, 0)); }
.rog-tile__cap .t { font-weight: 700; font-size: 1.05rem; line-height: 1.25; }
.rog-tile__cap time { font-size: .8rem; color: #d6e0ee; }
.rog-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 991.98px) { .rog-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .rog-gallery-grid { grid-template-columns: 1fr; } }
.rog-photos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.rog-photos a { display: block; overflow: hidden; border-radius: 4px; background: #dde3ec; aspect-ratio: 4 / 3; }
.rog-photos img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s cubic-bezier(.22, 1, .36, 1); }
.rog-photos a:hover img { transform: scale(1.05); }
.rog-photos a:focus-visible { outline: 3px solid var(--rog-navy); outline-offset: 2px; }
.rog-day { margin-bottom: 3rem; }
.rog-day .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
.rog-day .gallery-item { margin: 0; width: auto !important; }
.rog-day .gallery-item img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 0 !important; border-radius: 4px; }
.rog-day .gallery-caption { display: none; }

/* lightbox */
.rog-lb { position: fixed; inset: 0; z-index: 3000; display: none; align-items: center; justify-content: center; background: rgba(10, 16, 34, .94); }
.rog-lb.is-open { display: flex; }
.rog-lb img { max-width: 92vw; max-height: 88vh; object-fit: contain; border-radius: 4px; }
.rog-lb button { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.rog-lb button:hover { background: rgba(255, 255, 255, .25); }
.rog-lb button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.rog-lb__close { top: 1rem; right: 1rem; }
.rog-lb__prev { left: 1rem; top: 50%; transform: translateY(-50%); }
.rog-lb__next { right: 1rem; top: 50%; transform: translateY(-50%); }

/* contacts block (home, Chi siamo, Contatti) */
.rog-contacts { margin: 0; }
.rog-contacts dt { font-size: .85rem; font-weight: 600; color: var(--rog-muted); margin-top: 1rem; }
.rog-contacts dt:first-child { margin-top: 0; }
.rog-contacts dd { margin: 0; font-size: 1.2rem; color: var(--rog-ink); }
.rog-contacts a { color: var(--rog-navy); }
.rog-map { aspect-ratio: 16 / 10; border-radius: 8px; overflow: hidden; background: #dde3ec; }
.rog-map iframe { width: 100%; height: 100%; border: 0; }

/* people (Organigramma) */
.rog-people { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1.5rem; }
.rog-person { text-align: left; }
.rog-person img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; background: #dde3ec; margin-bottom: .75rem; }
.rog-person strong { display: block; font-size: 1.15rem; color: var(--rog-navy-dark); line-height: 1.25; }
.rog-person span { display: block; font-size: .9rem; color: var(--rog-muted); margin-top: .2rem; }

/* ---------- fixes to parent defaults that clash with the school's look ---------- */
.card.card-bg.bg-color { background-color: #e9eef6 !important; }          /* the section-colour callouts were pink */
.card-avatar { display: none !important; }                                  /* "author" card (Personale scolastico + Republic emblem) */
.section-thumb img[src*="placeholders/logo"] { display: none; }            /* Republic emblem used as a placeholder picture */

.rog-prose--page > p, .rog-prose--page > ul, .rog-prose--page > ol, .rog-prose--page > h2, .rog-prose--page > h3 { max-width: 46rem; }
.rog-prose--page .row { max-width: none; }

/* news cards (News page, category pages) */
.rog-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.rog-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rog-line); border-radius: 8px; overflow: hidden; box-shadow: 0 2px 8px rgba(20, 32, 63, .06); transition: box-shadow .3s; }
.rog-card:hover { box-shadow: 0 14px 28px -14px rgba(20, 32, 63, .35); }
.rog-card__img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.rog-card__body { padding: 1.25rem 1.25rem 1.4rem; display: flex; flex-direction: column; gap: .4rem; }
.rog-card__body time { font-size: .85rem; color: var(--rog-muted); }
.rog-card__body h2 { font-size: 1.25rem; font-weight: 700; line-height: 1.25; margin: 0; }
.rog-card__body h2 a { color: var(--rog-navy-dark); text-decoration: none; }
.rog-card__body h2 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.rog-card__body p { margin: 0; color: #3b4a5f; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 991.98px) { .rog-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .rog-news-grid { grid-template-columns: 1fr; } }

/* tables of links (Piani di lavoro …): scroll on small screens, quiet grid */
.rog-table-wrap { overflow-x: auto; margin: 1rem 0 2rem; -webkit-overflow-scrolling: touch; }
.rog-table { width: 100%; border-collapse: collapse; font-size: .98rem; min-width: 34rem; }
.rog-table th { text-align: left; font-weight: 700; color: var(--rog-navy-dark); background: #e9eef6; }
.rog-table th, .rog-table td { padding: .55rem .75rem; border-bottom: 1px solid var(--rog-line); vertical-align: top; }
.rog-table tbody tr:hover { background: #f6f8fb; }
.rog-table a { text-underline-offset: 3px; }

/* phones */
@media (max-width: 575.98px) {
  .rog-services { font-size: .8rem; gap: .1rem .9rem; }
  .rog-people { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  .rog-person strong { font-size: 1rem; }
  .rog-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
  .rog-band { padding: 2rem 0 1.75rem; }
}

/* ---------- header: a little tighter so the first screen keeps more of the page ---------- */
@media (min-width: 992px) {
  .logo-header svg.icon { width: 130px; height: 58px; }   /* the compact logo, always (it used to shrink on scroll) */
  #main-header .header-top { padding-top: .1rem; padding-bottom: .1rem; }
}

/* The header (and its dropdown menus) must paint above page content: hero text/photos use positioning. */
#main-header:not(.is-sticky) { position: relative; z-index: 60; }
#main-header.is-sticky { z-index: 60; }
#main-header .menu-dropdown, #main-header .dropdown-menu { z-index: 70; }

/* ---------- the schools as tall photo panels (home, La scuola, Percorsi, Organizzazione) ---------- */
.rog-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.rog-path { position: relative; display: flex; flex-direction: column; aspect-ratio: 4 / 5; border-radius: 14px; overflow: hidden; padding: 1.6rem; color: var(--rog-ink); text-decoration: none; isolation: isolate;
  transition: transform .45s cubic-bezier(.22, 1, .36, 1), box-shadow .45s cubic-bezier(.22, 1, .36, 1); }
.rog-path--0, .rog-offer__head.rog-path--0 { background: #dcebee; }
.rog-path--1, .rog-offer__head.rog-path--1 { background: #efe9dc; }
.rog-path--2, .rog-offer__head.rog-path--2 { background: #dbe5f0; }
.rog-path:hover { transform: translateY(-5px); box-shadow: 0 22px 36px -18px rgba(20, 32, 63, .45); color: var(--rog-ink); }
.rog-path__name { max-width: calc(100% - 3.5rem); font-size: clamp(1.55rem, 1.05rem + 1vw, 2.1rem); font-weight: 700; line-height: 1.08; letter-spacing: -.01em; }
.rog-path__opt { margin-top: .5rem; font-size: 1.05rem; font-weight: 600; color: #36596d; }
.rog-path__go { position: absolute; top: 1.4rem; right: 1.4rem; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--rog-ink); color: #fff; font-size: 1.3rem; transition: transform .4s cubic-bezier(.22, 1, .36, 1); }
.rog-path:hover .rog-path__go { transform: translateX(3px); }
.rog-path__photo { position: absolute; left: 0; right: 0; bottom: -6%; height: 66%; z-index: -1; }
.rog-path__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; mix-blend-mode: multiply; filter: brightness(1.08) contrast(1.03);
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 26%); mask-image: linear-gradient(180deg, transparent 0, #000 26%); transition: transform .8s cubic-bezier(.22, 1, .36, 1); transform-origin: 50% 100%; }
.rog-path:hover .rog-path__photo img { transform: scale(1.035); }
@media (max-width: 991.98px) { .rog-paths { grid-template-columns: 1fr; } .rog-path { aspect-ratio: 16 / 11; } .rog-path__photo { height: 72%; } }
@media (max-width: 575.98px) { .rog-path { aspect-ratio: 5 / 4; } }


.rog-path, .rog-path:hover, .rog-path:focus { text-decoration: none; }

/* directory rows: a big link, a short description, an arrow */
.rog-dir { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rog-line); }
.rog-dir li { border-bottom: 1px solid var(--rog-line); }
.rog-dir__row { display: grid; grid-template-columns: minmax(0, 18rem) minmax(0, 1fr) auto; gap: .25rem 2rem; align-items: baseline; padding: 1.1rem .25rem; color: var(--rog-ink); text-decoration: none; transition: background .25s; }
.rog-dir__row:hover { background: rgba(56, 72, 112, .06); color: var(--rog-ink); }
.rog-dir__t, .rog-dir__d { transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
.rog-dir__row:hover .rog-dir__t, .rog-dir__row:hover .rog-dir__d { transform: translateX(8px); }
.rog-dir__t { font-size: 1.25rem; font-weight: 700; color: var(--rog-navy-dark); }
.rog-dir__d { color: #3b4a5f; }
.rog-dir__go { font-size: 1.3rem; color: var(--rog-navy); }
@media (max-width: 767.98px) { .rog-dir__row { grid-template-columns: minmax(0, 1fr) auto; } .rog-dir__d { grid-column: 1 / -1; grid-row: 2; } .rog-dir__go { grid-column: 2; grid-row: 1; } }

/* offer cards (Didattica / Offerta formativa) */
.rog-offers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; align-items: start; }
.rog-offer { border: 1px solid var(--rog-line); border-radius: 14px; overflow: hidden; background: #fff; }
.rog-offer__head { position: relative; display: flex; flex-direction: column; min-height: 19rem; padding: 1.4rem; color: var(--rog-ink); text-decoration: none; overflow: hidden; isolation: isolate; }
.rog-offer__name { font-size: 1.5rem; font-weight: 700; line-height: 1.1; max-width: 80%; }
.rog-offer__opt { margin-top: .35rem; font-weight: 600; color: #36596d; }
.rog-offer__photo { position: absolute; left: 0; right: 0; bottom: -6%; height: 66%; z-index: -1; }
.rog-offer__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; mix-blend-mode: multiply; filter: brightness(1.08) contrast(1.03); -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 30%); mask-image: linear-gradient(180deg, transparent 0, #000 30%); }
.rog-offer__links { list-style: none; margin: 0; padding: .5rem 1.4rem 1.2rem; }
.rog-offer__links li { border-bottom: 1px solid var(--rog-line); }
.rog-offer__links li:last-child { border-bottom: 0; padding-top: .8rem; }
.rog-offer__links a { display: block; padding: .6rem 0; color: var(--rog-ink); text-decoration: none; font-weight: 600; line-height: 1.3; }
.rog-offer__links a:hover { color: var(--rog-navy); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 991.98px) { .rog-offers { grid-template-columns: 1fr; } }

.rog-gallery-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 991.98px) { .rog-gallery-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Organigramma: people in groups, tinted tiles */
.rog-prose--page h2 + .rog-people, .rog-prose h2 + .rog-people { margin-top: 1rem; }
.rog-people { list-style: none; margin: 0 0 2.5rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 250px)); gap: 1.25rem; }
.rog-person { background: #f4f1e9; border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; }
.rog-person img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; margin: 0; border-radius: 0; background: #dde3ec; }
.rog-person strong { display: block; padding: 1rem 1.1rem 0; font-size: 1.25rem; line-height: 1.2; color: var(--rog-navy-dark); }
.rog-person span { display: block; padding: .25rem 1.1rem 1.1rem; margin: 0; font-size: .95rem; color: #3b4a5f; }

/* pages that embed an iframe (virtual tour …) */
.rog-prose iframe, .rog-prose--page iframe { width: 100%; max-width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: 12px; }

/* map: standard OpenStreetMap, with the school's navy pin */
.rog-leaflet { position: relative; aspect-ratio: 16 / 10; border-radius: 14px; overflow: hidden; background: #dbe5f0; z-index: 0; }
/* standard OpenStreetMap colours, untouched */
.rog-leaflet .leaflet-control-attribution { font-size: .7rem; background: rgba(255, 255, 255, .85); }
.rog-pin { position: relative; width: 22px; height: 22px; border-radius: 50%; background: var(--rog-navy-dark); border: 4px solid #fff; box-shadow: 0 4px 14px rgba(20, 32, 63, .5); }
.rog-pin::after { content: ""; position: absolute; inset: -14px; border-radius: 50%; border: 2px solid rgba(38, 51, 86, .45); animation: rog-ping 2.4s ease-out infinite; }
@keyframes rog-ping { from { transform: scale(.5); opacity: 1; } to { transform: scale(1.4); opacity: 0; } }
.rog-leaflet .leaflet-popup-content-wrapper { border-radius: 10px; }
.rog-leaflet .leaflet-popup-content { margin: .75rem 1rem; font-family: inherit; }
@media (prefers-reduced-motion: reduce) { .rog-pin::after { animation: none; } }

/* ---------- one main bar: logo, links and search on the same row (desktop), the utility strip stays thin ---------- */
@media (min-width: 1200px) {
  #main-header:not(.is-sticky) .header-top { min-height: 61px; display: flex; align-items: center; }
  #main-header:not(.is-sticky) .header-top .row { width: 100%; }
  #main-header:not(.is-sticky) #sub-nav { position: absolute; left: 0; right: 0; bottom: 0; height: 61px; background: transparent !important; box-shadow: none; border: 0; pointer-events: none; display: flex !important; align-items: center; z-index: 2; }
  #main-header:not(.is-sticky) #sub-nav > .container, #main-header:not(.is-sticky) #sub-nav .row { width: 100%; margin-top: 0; margin-bottom: 0; }
  #main-header:not(.is-sticky) #sub-nav .nav-container { padding-left: 164px; padding-right: 170px; }
  #main-header:not(.is-sticky) #sub-nav nav { pointer-events: auto; }
  #main-header:not(.is-sticky) .header-search { margin-right: -8px; }
  /* identical to the scrolled (compact) bar: same link size and position, no secondary link */
  #main-header:not(.is-sticky) #sub-nav .nav-list-primary > li > a { font-size: 16px; }
  #main-header:not(.is-sticky) #sub-nav .nav-list-secondary { display: none; }
}

/* school page hero: the same tinted panel + studio photo as the homepage, full width */
.rog-schoolhero { overflow: hidden; }
.rog-schoolhero.rog-path--0 { background: #dcebee; } .rog-schoolhero.rog-path--1 { background: #efe9dc; } .rog-schoolhero.rog-path--2 { background: #dbe5f0; }
.rog-schoolhero__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2rem; align-items: end; min-height: 26rem; }
.rog-schoolhero__copy { align-self: center; padding: 2.5rem 0; }
.rog-schoolhero h1 { font-size: clamp(2rem, 1.1rem + 3vw, 3.6rem); line-height: 1.05; font-weight: 700; letter-spacing: -.02em; color: var(--rog-ink); margin: 0 0 .5rem; text-wrap: balance; }
.rog-schoolhero__opt { font-size: 1.3rem; font-weight: 600; color: #36596d; margin: 0 0 .5rem; }
.rog-schoolhero__code { color: #3b4a5f; margin: 0; }
.rog-schoolhero__photo { align-self: end; overflow: hidden; }
.rog-schoolhero__photo img { margin-bottom: -5%; }
.rog-schoolhero__photo img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; filter: brightness(1.08) contrast(1.03); -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 18%); mask-image: linear-gradient(180deg, transparent 0, #000 18%); }
@media (max-width: 991.98px) { .rog-schoolhero__grid { grid-template-columns: 1fr; gap: 0; min-height: 0; } .rog-schoolhero__copy { padding: 1.75rem 0 1rem; } }
.rog-details > summary { cursor: pointer; font-size: 1.35rem; font-weight: 700; color: var(--rog-navy-dark); padding: .6rem 0; }
.rog-details[open] > summary { margin-bottom: 1rem; }
.rog-prose--page p:has(> iframe), .rog-prose--page > iframe { max-width: none; }

/* Primary action: solid navy on light surfaces, solid white on the dark band. */
.rog-btn-solid { background: var(--rog-navy-dark); border: 2px solid var(--rog-navy-dark); color: #fff; font-weight: 700; }
.rog-btn-solid:hover, .rog-btn-solid:focus { background: var(--rog-ink); border-color: var(--rog-ink); color: #fff; }
.rog-open .rog-btn-solid { background: #fff; border-color: #fff; color: var(--rog-navy-dark); }
.rog-open .rog-btn-solid:hover, .rog-open .rog-btn-solid:focus { background: #e9eef6; border-color: #e9eef6; color: var(--rog-navy-dark); }


/* open days by month (home band on navy, Porte aperte page on light) */
.rog-months { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.rog-month-block h3 { font-size: .9rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #88b0c0; margin: 0 0 .5rem; }
.rog-month-block ul { list-style: none; margin: 0; padding: 0; }
.rog-month-block li { display: grid; grid-template-columns: 2.4rem 2.6rem minmax(0, 1fr); align-items: baseline; gap: .25rem; padding: .55rem 0; border-top: 1px solid rgba(255, 255, 255, .2); font-variant-numeric: tabular-nums; }
.rog-month-block .dow { font-size: .8rem; font-weight: 600; text-transform: uppercase; color: #c9d6e8; }
.rog-month-block .day { font-size: 1.6rem; font-weight: 700; line-height: 1; color: #fff; }
.rog-month-block .time { font-size: .95rem; color: #dfe7f3; white-space: nowrap; }
.rog-dates-plain { list-style: none; margin: 0; padding: 0; }
.rog-dates-plain li { padding: .6rem 0; border-top: 1px solid rgba(255, 255, 255, .2); color: #dfe7f3; }

.rog-months--light .rog-month-block h3 { color: #36596d; }
.rog-months--light .rog-month-block li { border-top-color: var(--rog-line); }
.rog-months--light .dow { color: var(--rog-muted); }
.rog-months--light .day { color: var(--rog-navy-dark); }
.rog-months--light .time { color: #3b4a5f; }
@media (max-width: 991.98px) { .rog-months { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479.98px) { .rog-months { grid-template-columns: 1fr; } }

/* search results / 404 */
.rog-item--result { grid-template-columns: 6.5rem minmax(0, 1fr) auto; }
.rog-item--result .rog-item__date { font-size: .78rem; letter-spacing: .04em; color: #36596d; }
.rog-item__desc { margin: .25rem 0 0; color: #3b4a5f; }
.rog-search--big input { min-width: min(30rem, 100%); font-size: 1.1rem; padding: .7rem 1rem; }
.rog-search--big button { padding: .7rem 1.5rem; font-size: 1.05rem; }
@media (max-width: 575.98px) { .rog-item--result { grid-template-columns: 1fr; } }

/* the history band (theme "bg-blue-dark", a near-black blue) uses the site's navy */
.main-container .bg-blue-dark, .main-container .section-hero.bg-blue-dark { background-color: #263356; }

/* Organigramma on phones: two portraits per row (the later grid rule above beat the earlier phone rule) */
@media (max-width: 575.98px) {
  .rog-people { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
  .rog-person strong { font-size: 1rem; padding: .75rem .8rem 0; }
  .rog-person span { padding: .2rem .8rem .85rem; font-size: .85rem; }
}

.rog-section--sky { background: #e9eef6; }
.rog-section--sky .rog-card { border-color: #d3dcea; }

/* ---------- per le famiglie ---------- */
.rog-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.rog-tile-link { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 8rem; padding: 1.5rem 1.75rem; border-radius: 14px; color: #fff; text-decoration: none; overflow: hidden; isolation: isolate; transition: transform .4s cubic-bezier(.22, 1, .36, 1), box-shadow .4s cubic-bezier(.22, 1, .36, 1); }
.rog-tile-link--0 { background: var(--rog-navy-dark); }
.rog-tile-link--1 { background: var(--rog-navy); }
.rog-tile-link--2 { background: var(--rog-teal); }
.rog-tile-link::after { content: ""; position: absolute; z-index: -1; right: -2.5rem; top: -2.5rem; width: 9rem; height: 9rem; border-radius: 50%; background: rgba(255, 255, 255, .09); }
.rog-tile-link:hover { transform: translateY(-4px); box-shadow: 0 20px 34px -18px rgba(20, 32, 63, .6); color: #fff; }
.rog-tile-link__name { font-size: clamp(1.3rem, 1rem + 1vw, 1.7rem); font-weight: 700; line-height: 1.15; }
.rog-tile-link__go { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--rog-navy-dark); font-size: 1.25rem; }
@media (max-width: 991.98px) { .rog-tiles { grid-template-columns: 1fr; } .rog-tile-link { min-height: 6rem; } .rog-families { padding-bottom: 3rem; } }


/* directory cards on hub pages */
.rog-cardlist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.rog-cardlist__a { position: relative; display: flex; flex-direction: column; gap: .5rem; min-height: 9.5rem; padding: 1.4rem 4.2rem 1.4rem 1.5rem; border-radius: 14px; background: var(--tint, #dbe5f0); color: var(--rog-ink); text-decoration: none; transition: transform .4s cubic-bezier(.22, 1, .36, 1), box-shadow .4s cubic-bezier(.22, 1, .36, 1); }
.rog-cardlist__a:hover { transform: translateY(-4px); box-shadow: 0 18px 30px -18px rgba(20, 32, 63, .45); color: var(--rog-ink); }
.rog-cardlist__t { font-size: 1.3rem; font-weight: 700; line-height: 1.15; color: var(--rog-navy-dark); }
.rog-cardlist__d { color: #33475b; line-height: 1.4; }
.rog-cardlist__go { position: absolute; top: 1.2rem; right: 1.2rem; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--rog-ink); color: #fff; font-size: 1.1rem; }
@media (max-width: 991.98px) { .rog-cardlist { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .rog-cardlist { grid-template-columns: 1fr; } .rog-cardlist__a { min-height: 0; } }

/* ============ round 5: scheda / contact / magazine / photo grids ============ */
/* icons on directory cards */
.rog-cardlist__i { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: rgba(255, 255, 255, .75); color: var(--rog-navy-dark); margin-bottom: .35rem; }

/* contact rows with icons */
.rog-cc { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.rog-cc li { display: flex; gap: .9rem; align-items: center; }
.rog-cc__i { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #e9eef6; color: var(--rog-navy-dark); }
.rog-cc__b { display: flex; flex-direction: column; line-height: 1.3; font-size: 1.1rem; font-weight: 600; color: var(--rog-ink); }
.rog-cc__b small { font-size: .8rem; font-weight: 600; color: var(--rog-muted); text-transform: uppercase; letter-spacing: .05em; }
.rog-cc__b a { color: var(--rog-navy); }

/* opening hours */
.rog-hours { display: grid; gap: .5rem; max-width: 26rem; }
.rog-hours__row { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border-radius: 10px; background: #fff; border: 1px solid var(--rog-line); }
.rog-hours__row.is-today { border-color: var(--rog-navy); box-shadow: inset 4px 0 0 var(--rog-navy); }
.rog-hours__d { font-weight: 600; } .rog-hours__t { font-weight: 700; color: var(--rog-navy-dark); font-variant-numeric: tabular-nums; white-space: nowrap; }
.rog-hours__now { margin: .25rem 0 0; padding-left: 1.4rem; position: relative; font-weight: 600; font-size: .95rem; }
.rog-hours__now::before { content: ""; position: absolute; left: .2rem; top: .45em; width: .7rem; height: .7rem; border-radius: 50%; background: #8a99b0; }
.rog-hours__now.is-open { color: #1d6b43; } .rog-hours__now.is-open::before { background: #2e9b63; }
.rog-hours__now.is-closed { color: var(--rog-muted); }

/* help panel (text pages, services) */
.rog-help { padding: 1.6rem 1.5rem; border-radius: 14px; background: var(--rog-sand); position: sticky; top: 90px; }
.rog-help h2 { font-size: 1.35rem; font-weight: 700; color: var(--rog-navy-dark); margin: 0 0 1.1rem; }
.rog-help h3 { font-size: 1rem; font-weight: 700; color: var(--rog-navy-dark); margin: 1.5rem 0 .6rem; }
.rog-help .rog-hours__row { background: rgba(255, 255, 255, .8); }
.rog-help__links { list-style: none; margin: 1.4rem 0 0; padding: 1rem 0 0; border-top: 1px solid #d8d2c2; }
.rog-help__links a { display: block; padding: .45rem 0; font-weight: 600; text-decoration: none; color: var(--rog-navy); }
.rog-help__links a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 991.98px) { .rog-help { position: static; } }

/* Contatti page */
.rog-contact { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.rog-formcard { padding: 2rem; border-radius: 16px; background: #fff; border: 1px solid var(--rog-line); box-shadow: 0 18px 40px -26px rgba(20, 32, 63, .35); }
.rog-contact__info .rog-h2 { margin-bottom: 1.4rem; }
.rog-mapband { margin-top: 1rem; }
.rog-leaflet--wide { aspect-ratio: 16 / 5; min-height: 320px; border-radius: 0; }
@media (max-width: 991.98px) { .rog-contact { grid-template-columns: 1fr; } .rog-formcard { padding: 1.25rem; } .rog-leaflet--wide { aspect-ratio: 4 / 3; } }

/* the contact form (Contact Form 7) */
.wpcf7 .rog-field { margin-bottom: 1.15rem; }
.wpcf7 .rog-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.wpcf7 label { display: block; margin-bottom: .4rem; font-size: .95rem; font-weight: 700; color: var(--rog-navy-dark); }
.wpcf7 label span { font-weight: 400; color: var(--rog-muted); }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 select, .wpcf7 textarea { width: 100%; padding: .8rem 1rem; border: 1.5px solid #9aa8bd; border-radius: 10px; background: #fff; font: inherit; font-size: 1.05rem; color: var(--rog-ink); transition: border-color .2s, box-shadow .2s; }
.wpcf7 textarea { min-height: 9rem; resize: vertical; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: 0; border-color: var(--rog-navy); box-shadow: 0 0 0 4px rgba(56, 72, 112, .18); }
.wpcf7 .rog-consent { margin: 1.25rem 0; font-size: .95rem; color: #33475b; }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7 input[type=checkbox] { width: 1.15rem; height: 1.15rem; margin-right: .5rem; accent-color: var(--rog-navy); vertical-align: -3px; }
.wpcf7 .btn { padding: .85rem 2rem; font-size: 1.05rem; border-radius: 10px; }
.wpcf7 .wpcf7-not-valid-tip { color: #b3261e; font-size: .85rem; margin-top: .3rem; }
.wpcf7 .wpcf7-not-valid { border-color: #b3261e; }
.wpcf7 form .wpcf7-response-output { margin: 1.25rem 0 0; padding: .9rem 1.1rem; border-radius: 10px; border-width: 1.5px; font-weight: 600; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #2e9b63; background: #eaf6ef; color: #1d6b43; }
@media (max-width: 575.98px) { .wpcf7 .rog-field-row { grid-template-columns: 1fr; gap: 0; } }

/* magazine */
.rog-magazine { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
.rog-feature { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.rog-feature__img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 14px; display: block; }
.rog-feature__body time { font-size: .9rem; font-weight: 700; color: var(--rog-navy); letter-spacing: .03em; text-transform: uppercase; }
.rog-feature__body h2 { font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.4rem); line-height: 1.12; font-weight: 700; margin: .35rem 0 .75rem; text-wrap: balance; }
.rog-feature__body h2 a { color: var(--rog-ink); text-decoration: none; } .rog-feature__body h2 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.rog-feature__body p { font-size: 1.15rem; line-height: 1.55; color: #33475b; margin: 0 0 1rem; }
.rog-feature--text { padding: 2rem; border-radius: 16px; background: var(--rog-sand); }
@media (min-width: 992px) { .rog-page-feature .rog-feature, .container > .rog-feature:not(.rog-feature--text) { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); align-items: center; gap: 2.5rem; } }
.rog-magazine .rog-feature { grid-template-columns: 1fr; }
.rog-newsrows { list-style: none; margin: 2rem 0 0; padding: 0; border-top: 1px solid var(--rog-line); }
.rog-newsrows li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--rog-line); align-items: baseline; }
.rog-newsrows time { font-size: .85rem; color: var(--rog-muted); font-variant-numeric: tabular-nums; }
.rog-newsrows a { font-weight: 600; color: var(--rog-ink); text-decoration: none; line-height: 1.3; } .rog-newsrows a:hover { text-decoration: underline; text-underline-offset: 3px; }
.rog-panel { padding: 1.5rem; border-radius: 16px; background: var(--rog-navy-dark); color: #fff; }
.rog-panel h2 { color: #fff; font-size: 1.35rem; margin: 0 0 .6rem; }
.rog-panel ol { list-style: none; margin: 0; padding: 0; }
.rog-panel li { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: .85rem; padding: .85rem 0; border-top: 1px solid rgba(255, 255, 255, .18); }
.rog-panel time { display: flex; flex-direction: column; align-items: center; line-height: 1; color: #fff; padding-top: .15rem; }
.rog-panel time .d { font-size: 1.5rem; font-weight: 700; } .rog-panel time .m { font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; margin-top: .2rem; color: #c3d0e4; }
.rog-panel li a { font-weight: 600; line-height: 1.3; color: #fff; text-decoration: none; } .rog-panel li a:hover { text-decoration: underline; text-underline-offset: 3px; }
.rog-panel .meta { display: block; margin-top: .2rem; font-size: .8rem; color: #c3d0e4; }
.rog-panel__all { display: inline-block; margin-top: .75rem; font-weight: 700; color: #fff; text-decoration: none; } .rog-panel__all:hover { text-decoration: underline; }
.rog-panel--light { background: var(--rog-sand); color: var(--rog-ink); } .rog-panel--light h2 { color: var(--rog-navy-dark); }
.rog-panel--light li { border-top-color: #d8d2c2; } .rog-panel--light time, .rog-panel--light li a { color: var(--rog-navy-dark); } .rog-panel--light time .m, .rog-panel--light .meta { color: var(--rog-muted); } .rog-panel--light .rog-panel__all { color: var(--rog-navy); }
@media (max-width: 991.98px) { .rog-magazine { grid-template-columns: 1fr; } }
.rog-lead--big { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.6rem); line-height: 1.45; color: var(--rog-ink); font-weight: 600; margin-bottom: 1.5rem; }

/* circolari filters */
.rog-chips--years { margin-bottom: .75rem; align-items: center; }
.rog-chips__label { font-weight: 700; color: var(--rog-muted); margin-right: .25rem; }
.rog-count { margin: .25rem 0 1rem; color: var(--rog-muted); font-weight: 600; }
.rog-item__meta { display: flex; gap: .4rem; align-items: center; justify-content: flex-end; flex-wrap: wrap; color: var(--rog-muted); font-size: .85rem; white-space: nowrap; }
.rog-item__meta b { color: var(--rog-navy-dark); }
.rog-tag { padding: .1rem .6rem; border-radius: 999px; background: #e9eef6; color: var(--rog-navy-dark); font-weight: 600; }

/* photo grids: reserve the space so nothing jumps while thumbnails arrive */
.rog-photos li[hidden] { display: none; }
.rog-photos a { background: #dde3ec; }
.rog-photos img { aspect-ratio: 4 / 3; height: 100%; }
.rog-photos__more { text-align: center; margin: 1.25rem 0 0; }
.rog-lb__count { position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%); margin: 0; color: #fff; font-size: .9rem; }
.rog-chips a.rog-chip { white-space: nowrap; }
.rog-day { scroll-margin-top: 110px; }

/* ---- loading: shimmer + fade-in ---- */
@keyframes rog-shimmer { from { background-position: 160% 0; } to { background-position: -60% 0; } }
.rog-shim { background-color: #e4eaf3; background-image: linear-gradient(100deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, .75) 50%, rgba(255, 255, 255, 0) 70%); background-size: 220% 100%; animation: rog-shimmer 1.5s ease-in-out infinite; }
.rog-js .rog-shim img { opacity: 0; }
.rog-js img.is-in { opacity: 1; transition: opacity .6s cubic-bezier(.22, 1, .36, 1); }
.rog-js img.is-broken { opacity: 0; }
.rog-tour.rog-shim, .rog-who__photo.rog-shim { background-color: #dbe5f0; }
/* images that are multiplied onto a tinted panel keep their own backdrop while loading */
.rog-path__photo.rog-shim, .rog-offer__photo.rog-shim, .rog-schoolhero__photo.rog-shim { background: none; animation: none; }
/* lightbox: spinner while the big photo comes in */
.rog-lb img { opacity: 0; transition: opacity .35s; } .rog-lb img.is-in { opacity: 1; }
.rog-lb.is-loading::after { content: ""; position: absolute; left: 50%; top: 50%; width: 42px; height: 42px; margin: -21px 0 0 -21px; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .25); border-top-color: #fff; animation: rog-spin .8s linear infinite; }
@keyframes rog-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .rog-shim { animation: none; background-image: none; } .rog-lb.is-loading::after { animation: none; } .rog-js img.is-in, .rog-lb img { transition: none; } }

/* ======== design language pass: flat tints, big bold type, round navy buttons, no outlined boxes ======== */
/* chips & search */
.rog-chip { border: 0; background: #e9eef6; padding: .5rem 1.15rem; font-size: 1rem; }
.rog-chip:hover { background: #dbe5f0; }
.rog-chip.is-on { background: var(--rog-navy-dark); color: #fff; }
.rog-search input { border: 0; background: #e9eef6; border-radius: 999px; padding: .65rem 1.2rem; }
.rog-search input:focus { outline: 3px solid var(--rog-navy); outline-offset: 0; background: #fff; }
.rog-search button { border-radius: 999px; padding: .65rem 1.4rem; background: var(--rog-navy-dark); }
/* list rows: the date is the hero (as on the homepage strip) */
.rog-month { font-size: 1rem; letter-spacing: .06em; text-transform: uppercase; color: #36596d; border-bottom: 0; padding-bottom: .2rem; margin: 2.2rem 0 .4rem; }
.rog-item { grid-template-columns: 4.25rem minmax(0, 1fr) auto; padding: 1rem .5rem; border-bottom: 0; border-top: 1px solid #e4e9f0; border-radius: 0; transition: background .25s; }
.rog-item:hover { background: #f3f6fa; }
.rog-item__date { font-size: 1.05rem; font-weight: 700; color: var(--rog-navy-dark); line-height: 1.1; }
.rog-item__title { font-size: 1.18rem; font-weight: 700; }
.rog-tag { background: #dbe5f0; }
/* cards: flat tint, no border, arrow button */
.rog-card { position: relative; border: 0; border-radius: 16px; background: #f4f1e9; box-shadow: none; }
.rog-card:hover { box-shadow: none; transform: translateY(-3px); }
.rog-card { transition: transform .4s cubic-bezier(.22, 1, .36, 1); }
.rog-card__img img { border-radius: 0; }
.rog-card__body { padding: 1.3rem 1.4rem 4rem; }
.rog-card__body h2, .rog-card__body h3 { font-size: 1.35rem; }
.rog-card::after { content: "→"; position: absolute; right: 1.2rem; bottom: 1.1rem; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--rog-ink); color: #fff; font-size: 1.15rem; }
.rog-section--sky .rog-card { background: #fff; border: 0; }
.rog-feature--text { background: #f4f1e9; }
/* panels, forms, hours */
.rog-hours__row { border: 0; background: #fff; }
.rog-hours__row.is-today { box-shadow: inset 5px 0 0 var(--rog-navy-dark); }
.rog-formcard { background: var(--rog-sand); border: 0; box-shadow: none; }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 select, .wpcf7 textarea { border: 0; background: #fff; box-shadow: inset 0 0 0 1.5px #c9d1df; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { box-shadow: inset 0 0 0 2px var(--rog-navy-dark), 0 0 0 4px rgba(56, 72, 112, .15); }
.wpcf7 .btn, .wpcf7 input[type=submit] { border-radius: 999px; background: var(--rog-navy-dark); color: #fff; border: 0; padding: .9rem 2.2rem; font-weight: 700; }
/* buttons that were outlined */
.btn-outline-primary { border: 0; background: var(--rog-navy-dark); color: #fff; border-radius: 999px; padding: .7rem 1.6rem; font-weight: 700; }
.btn-outline-primary:hover, .btn-outline-primary:focus { background: var(--rog-ink); color: #fff; }
.rog-btn-solid { border-radius: 999px; }
/* pagination: round navy */
.pagination-wrapper .page-link, .pagination-wrapper .page-numbers { border: 0; border-radius: 50%; min-width: 42px; height: 42px; display: inline-grid; place-items: center; margin: 0 .15rem; background: #e9eef6; color: var(--rog-navy-dark); font-weight: 700; }
.pagination-wrapper .active .page-link, .pagination-wrapper .page-numbers.current, .pagination-wrapper .current { background: var(--rog-navy-dark); color: #fff; }
.pagination-wrapper ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; padding: 0; margin: 0; }
/* breadcrumb & text links in prose keep the theme's look */
.rog-aside-list li { border-top-color: #e4e9f0; }
.rog-people .rog-person { background: #f4f1e9; }

/* WordPress adds width/height attributes to every picture; they beat aspect-ratio. Let the ratio decide. */
.rog-card__img img, .rog-feature__img img { height: auto; aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.rog-feature__img img { aspect-ratio: 16 / 9; }
.rog-card__img { display: block; background: #dde3ec; }
