:root {
  --ofi-ink: #171817;
  --ofi-ink-soft: #393c35;
  --ofi-muted: #5b5d59;
  --ofi-gold: #9d7a2e;
  --ofi-gold-text: #7d5f1e;
  --ofi-gold-light: #d0ae61;
  --ofi-gold-pale: #efd99f;
  --ofi-line: #dedfd9;
  --ofi-paper: #f5f5f1;
  --ofi-stage: #0b0d0c;
  --ofi-font: 'OFI Roboto', Arial, sans-serif;
  --ofi-display: 'OFI Commissioner', 'OFI Roboto', Arial, sans-serif;
  --ofi-header: 72px;
}
body.ofi-site { margin: 0; background: #fff; color: var(--ofi-ink); font: 400 16px/1.65 var(--ofi-font); -webkit-font-smoothing: antialiased; }
.ofi-site *, .ofi-site *::before, .ofi-site *::after { box-sizing: border-box; }
.ofi-site :is(p,li,dt,dd,a,button,input,select,textarea,label,blockquote,td,th,figcaption,small,time,summary),
.ofi-site .ofi-header, .ofi-site .ofi-header span, .ofi-site .ofi-footer, .ofi-site .ofi-footer span,
.ofi-site .elementor :is(p,li,a,label,input,textarea,button),
.ofi-site :is(.elementor-button,.elementor-button-text,.elementskit-section-title,.ekit-accordion-title,.elementor-widget-text-editor,.entry-content [style*='font-family']),
.ofi-site p.elementor-heading-title {
  font-family: var(--ofi-font) !important;
}
.ofi-site :is(h1,h2,h3,h4,h5,h6), .ofi-site :is(h1,h2,h3,h4).elementor-heading-title, .ofi-site .entry-title {
  font-family: var(--ofi-display) !important; color: var(--ofi-ink); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; text-transform: none !important; margin: 0 0 .5em;
}
.ofi-site :is(h1,h2) { text-wrap: balance; }
.ofi-site :is(p, li, dd, summary) { text-wrap: pretty; }
.ofi-site h1 { font-size: clamp(2.3rem, 5vw, 3.6rem); line-height: 1.06; letter-spacing: -.03em; }
.ofi-site h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
.ofi-site h3 { font-size: 1.35rem; }
/* Without :where() this rule outranked every class rule written for a paragraph. Their margins never applied. */
:where(.ofi-site) p { margin: 0 0 1em; }
.ofi-site a { color: inherit; text-decoration: none; transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
.ofi-site a:hover { color: var(--ofi-gold-text); }
/* A phone number never breaks across two lines. */
.ofi-site a[href^='tel:'] { white-space: nowrap; }
.ofi-site a:focus-visible, .ofi-site button:focus-visible, .ofi-site input:focus-visible, .ofi-site textarea:focus-visible, .ofi-site select:focus-visible, .ofi-site summary:focus-visible, .ofi-site [tabindex]:focus-visible { outline: 3px solid #b18a35; outline-offset: 4px; }
/* The parent theme drops the ring of the arrows that page through the news and the form plugin drops it from every part of its form, the send button included. */
.ofi-site .pagination a.page-numbers:focus-visible, .ofi-site div.wpforms-container-full .wpforms-form button:focus-visible { outline: 3px solid #b18a35; outline-offset: 4px; }
.ofi-site [tabindex='-1']:focus { outline: none; }
.ofi-site img { display: block; max-width: 100%; height: auto; }
.ofi-site svg { flex-shrink: 0; }
.ofi-container { width: min(100% - 40px, 1160px); margin-inline: auto; }
.ofi-page { width: 100%; }
.ofi-content { outline: none; }
.ofi-skip { position: fixed; z-index: 200; top: 8px; left: 8px; padding: 12px 18px; background: #fff; transform: translateY(-150%); }
.ofi-skip:focus { transform: none; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap; }

/* Header: one row with the club mark, the menu and the phone. */
.ofi-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--ofi-line); transition: box-shadow .2s ease; }
/* Once the page runs under it, the sticky header lifts with a soft shadow, so it never blends into a white section. */
.ofi-header.is-stuck { box-shadow: 0 12px 28px -20px #0b0d0c66; }
.admin-bar .ofi-header { top: 32px; }
.ofi-masthead { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: var(--ofi-header); }
.ofi-brand { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.ofi-brand img { width: 68px; height: auto; }
.ofi-brand-name { display: flex; flex-direction: column; gap: 1px; line-height: 1.15; }
.ofi-brand-name strong { font-family: var(--ofi-display) !important; font-size: 21px; font-weight: 800; letter-spacing: -.02em; }
.ofi-brand-name > span { font-size: 12px; color: var(--ofi-muted); }
.ofi-header-actions { display: flex; align-items: center; gap: 2px; }
.ofi-call, .ofi-menu-toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 10px; color: var(--ofi-ink); background: transparent; border: 0; border-radius: 2px; cursor: pointer; }
.ofi-call > span { display: none; }
.ofi-menu-toggle:hover, .ofi-menu-toggle:focus { color: var(--ofi-ink); background: var(--ofi-paper); }
.ofi-menu-toggle > span { display: inline-flex; }
.ofi-menu-toggle .ofi-menu-toggle-close, .ofi-menu-open .ofi-menu-toggle .ofi-menu-toggle-open { display: none; }
.ofi-menu-open .ofi-menu-toggle .ofi-menu-toggle-close { display: inline-flex; }
.ofi-navigation { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 8px 20px 20px; background: #fff; border-bottom: 1px solid var(--ofi-line); box-shadow: 0 16px 24px #0000000f; max-height: calc(100dvh - var(--ofi-header)); overflow-y: auto; }
.ofi-menu-open .ofi-navigation { display: block; }
/* The open phone menu fills the screen below the header, so the page no longer shows under its last line. */
@media (max-width: 1023px) { .ofi-menu-open .ofi-navigation { min-height: calc(100dvh - var(--ofi-header)); } }
html.ofi-menu-locked { overflow: hidden; }
.ofi-navigation ul { list-style: none; margin: 0; padding: 0; }
.ofi-menu li { position: relative; margin: 0; border-bottom: 1px solid #ededE8; }
.ofi-menu a { display: flex; align-items: center; min-height: 50px; padding: 10px 48px 10px 0; font-size: 16px; font-weight: 500; }
/* The parent theme forces links with a submenu to block display, which left their labels off centre next to the others. */
.ofi-menu .menu-item-has-children > a { display: flex !important; }
.ofi-menu .current-menu-item > a, .ofi-menu .current-menu-ancestor > a, .ofi-menu .current_page_parent > a { color: var(--ofi-gold-text); }
.ofi-submenu-toggle { position: absolute; right: 0; top: 3px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: inherit; border-radius: 2px; cursor: pointer; }
.ofi-submenu-toggle:hover, .ofi-submenu-toggle:focus { color: var(--ofi-ink); background: var(--ofi-paper); }
.ofi-submenu-toggle svg { transition: transform .18s ease; }
.ofi-submenu-toggle[aria-expanded='true'] svg { transform: rotate(180deg); }
.ofi-menu .sub-menu { display: none; padding-left: 16px; padding-bottom: 8px; }
.ofi-menu .ofi-submenu-open > .sub-menu { display: block; }
.ofi-menu .sub-menu li { border: 0; }
.ofi-menu .sub-menu a { min-height: 44px; font-size: 15px; font-weight: 400; }
.ofi-menu-contact { display: grid; gap: 2px; margin-top: 16px; padding-top: 14px; border-top: 2px solid var(--ofi-ink); }
.ofi-menu-contact > a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 15px; font-weight: 500; }
.ofi-menu-contact small { display: block; margin: 2px 0 10px; font-size: 13px; color: var(--ofi-muted); }
.ofi-menu-social { display: flex; gap: 10px; flex-wrap: wrap; }
.ofi-site .ofi-menu-social a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 16px; border: 1px solid var(--ofi-ink); border-radius: 2px; font-size: 14px; font-weight: 500; }
.ofi-topbar { display: none; background: var(--ofi-ink); color: #e4e6df; font-size: 13px; }
.ofi-topbar .ofi-container { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 38px; }
.ofi-topbar-contact, .ofi-topbar-side { display: flex; align-items: center; gap: 22px; }
.ofi-topbar a { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; color: #f1f2ec; }
.ofi-site .ofi-topbar a:hover { color: var(--ofi-gold-light); }
.ofi-topbar-side span { color: #b6baae; letter-spacing: .04em; text-transform: uppercase; font-size: 11px; font-weight: 500; }
.ofi-topbar-side { gap: 14px; }
.ofi-topbar-side span { margin-right: 8px; }
.ofi-topbar .ofi-topbar-social { display: inline-flex; align-items: center; justify-content: center; width: 34px; min-height: 34px; border-radius: 50%; color: #f1f2ec; }
.ofi-site .ofi-topbar .ofi-topbar-social:hover { background: #ffffff1f; color: #fff; }
.ofi-social-link { display: inline-flex; align-items: center; gap: 8px; }

/* Shared pieces: eyebrows, section heads, buttons, links, cards. */
.ofi-eyebrow, .ofi-site p.ofi-eyebrow, .ofi-site .ofi-eyebrow .elementor-heading-title { margin: 0 0 12px; color: var(--ofi-gold-text); font-family: var(--ofi-font) !important; font-size: 13px; font-weight: 600; letter-spacing: .07em; line-height: 1.5; text-transform: uppercase; }
.ofi-eyebrow a { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.ofi-section-head { max-width: 720px; margin-bottom: 32px; }
.ofi-section-head :is(h1,h2) { margin-bottom: 0; }
.ofi-section-head .ofi-lead { margin: 14px 0 0; }
.ofi-lead { font-size: 17px; line-height: 1.6; color: var(--ofi-muted); max-width: 640px; }
.ofi-lead a { text-decoration: underline; text-underline-offset: 4px; }
.ofi-section-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: 32px; }
.ofi-section-row .ofi-section-head { margin-bottom: 0; }
.ofi-section-row > .ofi-btn, .ofi-section-row > .ofi-text-link { margin-bottom: 4px; }
.ofi-section { padding: 56px 0; }
.ofi-paper { background: var(--ofi-paper); }
.ofi-aside { margin: 32px 0 0; padding-top: 20px; border-top: 1px solid var(--ofi-line); font-size: 15px; color: var(--ofi-muted); }
.ofi-aside a { color: var(--ofi-ink); font-weight: 500; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.ofi-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.ofi-site .ofi-btn, .ofi-site a.ofi-btn { text-transform: none; letter-spacing: 0; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 12px 24px; border: 1px solid var(--ofi-ink); border-radius: 2px; background: var(--ofi-ink); color: #fff; font-size: 15px; font-weight: 500; line-height: 1.3; text-align: center; cursor: pointer; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.ofi-site .ofi-btn:hover, .ofi-site a.ofi-btn:hover { color: #fff; background: var(--ofi-ink-soft); border-color: var(--ofi-ink-soft); transform: translateY(-1px); }
.ofi-site .ofi-btn.ofi-btn-gold { background: var(--ofi-gold-light); border-color: var(--ofi-gold-light); color: var(--ofi-ink); }
.ofi-site .ofi-btn.ofi-btn-gold:hover { background: #e1c483; border-color: #e1c483; color: var(--ofi-ink); }
.ofi-site .ofi-btn.ofi-btn-ghost { background: transparent; border-color: #ffffff8c; color: #fff; }
.ofi-site .ofi-btn.ofi-btn-ghost:hover { background: #ffffff1f; border-color: #fff; color: #fff; }
.ofi-site .ofi-btn.ofi-btn-outline { background: transparent; color: var(--ofi-ink); }
.ofi-site .ofi-btn.ofi-btn-outline:hover { background: var(--ofi-ink); border-color: var(--ofi-ink); color: #fff; }
.ofi-text-link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 15px; font-weight: 500; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.ofi-text-link svg { width: 18px; height: 18px; transition: transform .18s ease; }
.ofi-text-link:hover svg { transform: translateX(3px); }
.ofi-card-grid { display: grid; grid-template-columns: 1fr; gap: 36px 28px; }
.ofi-card { min-width: 0; display: flex; flex-direction: column; }
.ofi-card-photo { display: block; aspect-ratio: 16 / 10; margin-bottom: 16px; overflow: hidden; border-radius: 2px; background: var(--ofi-paper); }
/* An article without a photo shows the club crest on paper, not an empty or chequered box. */
.ofi-card-photo:has(.ofi-card-placeholder) { display: grid; place-items: center; }
.ofi-card-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ofi-card:hover .ofi-card-photo img { transform: scale(1.03); }
.ofi-card-photo-upright img { object-position: 50% 12%; }
.ofi-site .ofi-card-photo .ofi-card-placeholder { width: 42%; height: auto; object-fit: contain; opacity: .22; filter: grayscale(1); transform: none; }
.ofi-card-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-bottom: 8px; font-size: 13px; color: var(--ofi-muted); }
.ofi-card-label { font-weight: 600; color: var(--ofi-gold-text); }
.ofi-card-upcoming { color: #fff; background: var(--ofi-ink); padding: 1px 8px; border-radius: 2px; }
.ofi-card :is(h2, h3) { font-size: 22px; line-height: 1.25; margin: 0 0 8px; text-wrap: pretty; }
.ofi-card :is(h2, h3) a:hover { color: var(--ofi-gold-text); }
.ofi-card p { font-size: 15px; line-height: 1.6; color: var(--ofi-muted); margin: 0; }
.ofi-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ofi-chips a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 14px; border: 1px solid var(--ofi-line); border-radius: 999px; font-size: 14px; font-weight: 500; line-height: 1.3; }
.ofi-chips a:hover { border-color: var(--ofi-ink); color: var(--ofi-ink); }
.ofi-chips a[aria-current] { background: var(--ofi-ink); border-color: var(--ofi-ink); color: #fff; }
.ofi-faq-list { border-top: 1px solid var(--ofi-line); }
.ofi-faq-item { border-bottom: 1px solid var(--ofi-line); }
.ofi-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; cursor: pointer; list-style: none; font-size: 17px; font-weight: 600; line-height: 1.4; }
.ofi-faq-item summary::-webkit-details-marker { display: none; }
.ofi-faq-item summary svg { width: 20px; height: 20px; color: var(--ofi-muted); transition: transform .2s ease; }
.ofi-faq-item[open] summary svg { transform: rotate(180deg); }
.ofi-faq-item summary:hover { color: var(--ofi-gold-text); }
.ofi-faq-answer { padding: 0 0 20px; max-width: 64ch; color: #3a3c38; line-height: 1.65; }
.ofi-faq-answer p:last-child { margin: 0; }
.ofi-timeline { list-style: none; margin: 24px 0 28px; padding: 0; border-top: 1px solid var(--ofi-line); }
.ofi-timeline li { display: grid; grid-template-columns: 58px 1fr; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--ofi-line); font-size: 15px; line-height: 1.5; }
.ofi-timeline strong { font-family: var(--ofi-display) !important; font-size: 17px; font-weight: 700; }
.ofi-figure { margin: 0; }
.ofi-figure img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; }
.ofi-container.ofi-split { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
.ofi-container.ofi-split-top { align-items: start; }

/* Schedule: the week, from club-data.php. */
.ofi-schedule, .ofi-schedule-grid { display: grid; grid-template-columns: 1fr; gap: 24px 28px; }
.ofi-schedule-day { border-top: 2px solid var(--ofi-ink); padding-top: 14px; }
.ofi-schedule-day h3 { margin: 0 0 8px; font-size: 19px; }
.ofi-schedule-day ul, .ofi-schedule-day dl { list-style: none; margin: 0; padding: 0; }
.ofi-schedule-day li, .ofi-schedule-day dl > div { display: grid; grid-template-columns: 100px 1fr; gap: 2px 12px; padding: 9px 0; border-top: 1px solid var(--ofi-line); font-size: 14px; line-height: 1.5; }
.ofi-schedule-day li:first-child, .ofi-schedule-day dl > div:first-child { border-top: 0; }
.ofi-schedule-day li time, .ofi-schedule-day dt { margin: 0; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ofi-schedule-day li span, .ofi-schedule-day dd { margin: 0; color: var(--ofi-ink); }
.ofi-schedule-day li small { grid-column: 2; font-size: 12px; color: var(--ofi-muted); }
.ofi-schedule-day li[data-audience='adults'] small, .ofi-schedule-day li[data-audience='mixed'] small { color: var(--ofi-gold-text); }

/* Homepage week: a card per day, the level of each lesson, adult lessons marked. */
.ofi-week-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; margin: -8px 0 22px; font-size: 13.5px; color: var(--ofi-muted); }
.ofi-week-legend > span { display: inline-flex; align-items: center; gap: 8px; }
.ofi-level { display: inline-flex; gap: 2px; flex-shrink: 0; }
.ofi-level i { width: 8px; height: 8px; border: 1.5px solid var(--ofi-ink); border-radius: 1px; }
.ofi-level i.on { background: var(--ofi-ink); }
.ofi-week-days { display: flex; gap: 6px; margin: 0 0 2px; }
.ofi-week-days[hidden] { display: none; }
.ofi-site .ofi-week-days button { flex: 1 1 0; min-width: 0; min-height: 40px; padding: 6px 4px; border: 1px solid var(--ofi-line); border-radius: 999px; background: #fff; color: var(--ofi-ink); font: 500 14px/1.2 var(--ofi-font); text-transform: none; letter-spacing: 0; cursor: pointer; }
.ofi-site .ofi-week-days button:hover { border-color: var(--ofi-ink); }
.ofi-site .ofi-week-days button[aria-current='true'] { background: var(--ofi-ink); border-color: var(--ofi-ink); color: #fff; }
.ofi-week { display: flex; gap: 12px; margin-inline: -20px; padding: 14px 20px 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 20px; scrollbar-width: thin; }
.ofi-week-day { position: relative; flex: 0 0 252px; scroll-snap-align: start; display: flex; flex-direction: column; padding: 16px 16px 6px; background: #fff; border: 1px solid var(--ofi-line); border-radius: 2px; }
.ofi-week-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 8px; padding-bottom: 12px; margin-bottom: 2px; border-bottom: 2px solid var(--ofi-ink); }
.ofi-week-head h3 { margin: 0; font-size: 18px; line-height: 1.2; }
.ofi-week-head small { font-size: 12.5px; color: var(--ofi-muted); white-space: nowrap; }
.ofi-week-list { list-style: none; margin: 0; padding: 0; }
.ofi-week-slot { display: flex; flex-direction: column; align-items: flex-start; padding: 11px 0; border-bottom: 1px solid var(--ofi-line); }
.ofi-week-slot:last-child { border-bottom: 0; }
.ofi-week-slot time { font-size: 15px; font-weight: 700; line-height: 1.3; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.ofi-week-what { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; font-size: 14px; line-height: 1.35; }
.ofi-week-note { margin-top: 3px; font-size: 12.5px; line-height: 1.4; color: var(--ofi-muted); }
.ofi-week-slot-adults { margin-inline: -16px; padding-inline: 16px; background: #faf5e8; border-bottom-color: #efe4c7; }
.ofi-week-tag { display: inline-block; padding: 2px 9px; border-radius: 999px; background: #f1e2bb; color: #5f4614; font-size: 12px; font-weight: 600; line-height: 1.5; white-space: nowrap; }
.ofi-week-slot .ofi-week-tag { margin-top: 7px; }
.ofi-week-day.is-today { border-color: var(--ofi-ink); box-shadow: inset 0 4px 0 var(--ofi-gold-light); }
.ofi-week-today { position: absolute; top: -11px; left: 12px; padding: 2px 9px; border-radius: 999px; background: var(--ofi-ink); color: #fff; font-size: 12px; font-weight: 600; line-height: 1.5; }
@media (min-width: 640px) {
  .ofi-week-days { display: none !important; }
  .ofi-week { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 12px; margin-inline: 0; padding: 0; overflow: visible; }
  .ofi-week-day { flex: none; }
}
@media (min-width: 1100px) {
  .ofi-week { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
  .ofi-week-today { left: 10px; }
  .ofi-week-day { padding: 14px 12px 4px; }
  .ofi-week-slot-adults { margin-inline: -12px; padding-inline: 12px; }
  .ofi-week-head { flex-direction: column; align-items: flex-start; flex-wrap: nowrap; gap: 4px; }
  .ofi-week-head h3 { font-size: 17px; }
}

/* Homepage. */
.ofi-hero-note { max-width: 560px; margin: 22px 0 0; font-size: 14px; line-height: 1.55; color: #e7e8e2; }
.ofi-hero-note strong { color: #fff; }
.ofi-hero-note a { display: inline-flex; align-items: center; gap: 4px; color: #f6e7bd; text-decoration: underline; text-underline-offset: 4px; }
.ofi-site :is(.ofi-hero, .ofi-podium, .ofi-manifesto, .ofi-cta-band) a:not(.ofi-btn):hover { color: #fff; }
.ofi-manifesto { position: relative; isolation: isolate; overflow: hidden; padding: 56px 0; background: #111312; color: #fff; }
.ofi-manifesto > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
/* The hero photograph fades into the colour of this band, so the two read as one dark block. */
.ofi-podium { padding: 32px 0 56px; background: var(--ofi-stage); color: #fff; }
.ofi-podium-photo img { object-position: 50% 30%; }
.ofi-site .ofi-podium p.ofi-eyebrow, .ofi-site .ofi-manifesto p.ofi-eyebrow { color: var(--ofi-gold-pale); }
.ofi-podium h2 { color: #fff; margin-bottom: 8px; }
.ofi-podium-text { max-width: 560px; margin: 0 0 28px; color: #e7e8e2; font-size: 17px; }
.ofi-podium-tiles { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 22px 24px; }
.ofi-podium-tiles li { display: flex; gap: 12px; align-items: flex-start; padding-top: 14px; border-top: 2px solid var(--ofi-gold-light); }
.ofi-podium-tiles svg { flex: 0 0 30px; color: var(--ofi-gold-light); margin-top: 2px; }
.ofi-podium-tiles strong { display: block; font-family: var(--ofi-display) !important; font-size: 28px; line-height: 1.05; font-weight: 800; color: #fff; }
.ofi-podium-tiles span { display: block; margin-top: 4px; font-size: 14px; color: #e7e8e2; }
.ofi-site .ofi-podium .ofi-text-link { color: #f6e7bd; }
.ofi-manifesto { text-align: center; }
.ofi-manifesto::after { content: ''; position: absolute; inset: 0; z-index: -1; background: #0b0d0ccc; }
.ofi-manifesto-copy { max-width: 760px; }
.ofi-manifesto h2 { color: #fff; font-size: clamp(1.9rem, 4vw, 2.9rem); margin-bottom: 20px; }
.ofi-manifesto p { margin: 0 auto 6px; max-width: 640px; color: #e7e8e2; font-size: 17px; line-height: 1.6; }
/* Centred lines break into even halves instead of leaving a word or two alone below. */
.ofi-site .ofi-manifesto p { text-wrap: balance; }
.ofi-manifesto p strong { color: #fff; }
.ofi-manifesto .ofi-btn { margin-top: 22px; }
.ofi-social-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.ofi-site .ofi-social-buttons a { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 10px 20px; border: 1px solid var(--ofi-ink); border-radius: 2px; font-size: 15px; font-weight: 500; }
.ofi-site .ofi-social-buttons a:hover { background: var(--ofi-ink); color: #fff; }
.ofi-programme-lead { font-weight: 600; color: var(--ofi-ink) !important; margin: 0 0 6px !important; }
.ofi-actions-after { margin-top: 36px; align-items: flex-start; }
.ofi-actions-after .ofi-aside { flex: 1 1 320px; margin: 0; padding: 12px 0 0; border: 0; }
/* The link of every card in a row sits on the same line, however long its summary. */
.ofi-card .ofi-text-link { margin-top: auto; padding-top: 10px; font-size: 14px; }
.ofi-hero { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: min(700px, calc(100svh - var(--ofi-header))); background: var(--ofi-stage); color: #fff; }
.ofi-hero-media { position: absolute; inset: 0; z-index: -2; }
.ofi-hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
/* On phones the copy climbs to the middle of the photograph, so the shade stays deep up to the eyebrow and lifts only over the arches. */
.ofi-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, var(--ofi-stage), transparent 26%), linear-gradient(0deg, #080b0af2 0%, #080b0ac7 50%, #080b0a8c 72%, #080b0a1f 100%); pointer-events: none; }
.ofi-hero-copy { padding: 56px 0 40px; animation: ofi-arrive .6s ease both; }
.ofi-site .ofi-hero p.ofi-eyebrow { color: #f6e7bd; text-shadow: 0 1px 3px #0009; }
.ofi-hero h1 { max-width: 15ch; margin: 0 0 16px; color: #fff; font-size: clamp(2.4rem, 9vw, 4rem); font-weight: 800; text-wrap: balance; }
.ofi-hero-text { max-width: 520px; margin: 0 0 24px; font-size: 16px; line-height: 1.55; color: #f1f2ec; }
.ofi-hero .ofi-actions { gap: 12px; }
@keyframes ofi-arrive { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.ofi-facts { background: var(--ofi-paper); border-bottom: 1px solid var(--ofi-line); }
.ofi-facts ul { list-style: none; margin: 0 auto; padding: 18px 0; display: grid; gap: 14px 32px; }
.ofi-facts li { display: flex; flex-direction: column; gap: 1px; }
.ofi-facts strong { font-family: var(--ofi-display) !important; font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
.ofi-facts span { font-size: 14px; color: var(--ofi-muted); }
.ofi-programmes { display: grid; grid-template-columns: 1fr; gap: 40px 28px; }
.ofi-programme { display: flex; flex-direction: column; min-width: 0; }
.ofi-programme img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 2px; margin-bottom: 20px; }
.ofi-programme h3 { font-size: 24px; margin: 0 0 8px; }
.ofi-programme p { font-size: 15.5px; line-height: 1.6; color: var(--ofi-muted); margin: 0 0 14px; }
.ofi-programme ul { list-style: none; margin: 0 0 14px; padding: 0; font-size: 14px; line-height: 1.5; border-top: 1px solid var(--ofi-line); }
.ofi-programme li { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--ofi-line); }
.ofi-programme li::before { content: ''; flex: 0 0 8px; height: 8px; margin-top: 7px; background: repeating-conic-gradient(var(--ofi-ink) 0 25%, transparent 0 50%) 0 0 / 8px 8px; }
.ofi-programme .ofi-text-link { margin-top: auto; }
.ofi-cta-band { position: relative; isolation: isolate; overflow: hidden; padding: 72px 0; background: #111312; color: #fff; }
.ofi-cta-band > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.ofi-cta-band::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #0b0d0cf2 0%, #0b0d0ccc 60%, #0b0d0c8c 100%); }
/* The copy starts on the left edge of the page grid, over the darkest part of the shade. */
.ofi-cta-copy > * { max-width: 640px; }
.ofi-cta-band h2 { color: #fff; font-size: clamp(2rem, 4.4vw, 3.1rem); margin-bottom: 16px; }
.ofi-cta-band p { color: #e7e8e2; font-size: 17px; line-height: 1.6; max-width: 540px; }
.ofi-cta-address svg { margin-top: 3px; }
.ofi-cta-address { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 28px; font-size: 14px; color: var(--ofi-gold-pale) !important; }
/* The address reads as on an envelope, one part per line, as in the footer. */
.ofi-cta-address > span > span { display: block; }

/* Elementor pages keep the same spacing, type and controls. */
.ofi-site .ofi-section > .elementor-container { max-width: 1160px; margin-inline: auto; }
.ofi-site .ofi-section > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0; align-content: start; }
.ofi-site .ofi-section .elementor-widget:not(:last-child) { margin-bottom: 18px; }
.ofi-site .ofi-section .elementor-heading-title { line-height: 1.15; color: var(--ofi-ink); }
/* Eyebrows inside Elementor sections keep the gold of the theme's own eyebrows. */
.ofi-site .ofi-section .ofi-eyebrow .elementor-heading-title { color: var(--ofi-gold-text); }
.ofi-site .ofi-section .elementor-widget-text-editor { font-size: 16px; line-height: 1.7; color: var(--ofi-muted); }
.ofi-site .ofi-section .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.ofi-site .ofi-intro { max-width: 740px; }
.ofi-site .ofi-intro .elementor-widget-container { max-width: 740px; }
.ofi-site .ofi-intro-text { max-width: 650px; }
.ofi-site .ofi-intro-text .elementor-widget-container { font-size: 17px; }
.ofi-site .ofi-grid { margin-top: 18px; margin-bottom: 28px; width: 100%; }
.ofi-site .ofi-grid > .elementor-container { gap: 24px; }
.ofi-site .ofi-grid > .elementor-container > .elementor-column { width: 100%; }
.ofi-site .ofi-grid > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0; align-content: start; }
.ofi-site .ofi-program { padding-top: 24px !important; border-top: 2px solid var(--ofi-ink); }
.ofi-site .ofi-program .elementor-heading-title { font-size: 24px; }
.ofi-site .ofi-program .elementor-widget-text-editor { font-size: 15px; }
.ofi-site .ofi-program ul { margin: 0 0 14px; padding: 0; list-style: none; font-size: 14px; border-top: 1px solid var(--ofi-line); }
.ofi-site .ofi-program li { display: grid; grid-template-columns: 8px minmax(0, 1fr); column-gap: 10px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--ofi-line); color: var(--ofi-ink); }
/* Each level shows its name and below it every weekly time on a line of its own. */
.ofi-site .ofi-program li > :is(strong, span) { grid-column: 2; }
.ofi-site .ofi-program li > span { font-variant-numeric: tabular-nums; line-height: 1.55; }
.ofi-site .ofi-measure { max-width: 760px; }
.ofi-site .ofi-program li::before { content: ''; grid-row: 1; width: 8px; height: 8px; background: repeating-conic-gradient(var(--ofi-ink) 0 25%, transparent 0 50%) 0 0 / 8px 8px; }
.ofi-site .ofi-section a:not(.elementor-button):not(.elementskit-btn):not(.elementskit-entry-thumb):not(.elementskit-post-image):not(.ofi-btn):not(.ofi-chips a) { text-decoration-thickness: 1px; text-underline-offset: 4px; }
.ofi-site .ofi-text-link a, .ofi-site .ofi-section .elementor-widget-text-editor a { text-decoration: underline; }
.ofi-site :is(.ofi-section,.ofi-hero) :is(.elementor-button,.elementskit-btn), .ofi-site div.wpforms-container-full .wpforms-form button[type=submit] {
  display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 12px 24px; border: 1px solid var(--ofi-ink); border-radius: 2px; background: var(--ofi-ink); color: #fff; font: 500 15px/1.3 var(--ofi-font) !important; text-transform: none !important; letter-spacing: 0; box-shadow: none; transition: background-color .18s ease, transform .18s ease;
}
.ofi-site :is(.ofi-section,.ofi-hero) :is(.elementor-button,.elementskit-btn):hover, .ofi-site div.wpforms-container-full .wpforms-form button[type=submit]:hover { color: #fff; background: var(--ofi-ink-soft); border-color: var(--ofi-ink-soft); transform: translateY(-1px); }
.ofi-site .ofi-section div.wpforms-container-full .wpforms-form button[type=submit] { background: var(--ofi-ink) !important; color: #fff !important; border: 1px solid var(--ofi-ink) !important; border-radius: 2px !important; }
.ofi-site .ofi-section div.wpforms-container-full .wpforms-form button[type=submit]:hover { background: var(--ofi-ink-soft) !important; border-color: var(--ofi-ink-soft) !important; }
.ofi-site .ofi-section .elementor-button-text { white-space: normal; }
.ofi-site .ofi-gold-button .elementor-button { background: var(--ofi-gold-light); border-color: var(--ofi-gold-light); color: var(--ofi-ink); }
.ofi-site .ofi-gold-button .elementor-button:hover { background: #e1c483; border-color: #e1c483; color: var(--ofi-ink); }
.ofi-site .ofi-page-intro { padding-block: 40px 30px; border-bottom: 1px solid var(--ofi-line); }
.ofi-site .ofi-page-intro h1 { margin: 0; }
.ofi-site .ofi-section.ofi-split > .elementor-container { gap: 32px; }
.ofi-site .ofi-split > .elementor-container > .elementor-column { width: 100%; }
.ofi-site .ofi-photo img, .ofi-site .ofi-club-photo img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 2px; }
.ofi-site .ofi-photo .widget-image-caption { font-size: 13px; margin-top: 10px; color: var(--ofi-muted); text-align: left; }
.ofi-site .ofi-team-grid img { width: 100%; max-height: 360px; aspect-ratio: 4/5; object-fit: cover; object-position: 50% 24%; }
.ofi-site .ofi-team-grid .elementor-heading-title { font-size: 22px; }
/* The call to action at the foot of the coaches page sits on paper under a gold rule, so it does not run into the dark footer. */
.ofi-site .ofi-cta { background: var(--ofi-paper); border-top: 3px solid var(--ofi-gold-light); }
.ofi-site .ofi-cta h2.elementor-heading-title { color: var(--ofi-ink); }
.ofi-site .ofi-cta .elementor-widget-text-editor { color: var(--ofi-muted); }
.ofi-site .ofi-cta .elementor-widget-text-editor a { color: var(--ofi-ink); }
.ofi-site .ofi-cta .ofi-eyebrow .elementor-heading-title { color: var(--ofi-gold-text); }
/* Each coach's name stands under a gold rule, like the result tiles. */
.ofi-site .ofi-team-grid .elementor-widget-heading { margin-top: 18px; padding-top: 14px; border-top: 2px solid var(--ofi-gold-light); }
/* On the club page the podium finishes form a dark block of their own, as on the homepage. */
.ofi-site .elementor-section.ofi-podium-band { background: var(--ofi-stage); color: #fff; }
.ofi-site .ofi-podium-band .elementor-heading-title { color: #fff; }
.ofi-site .ofi-podium-band .ofi-eyebrow .elementor-heading-title { color: var(--ofi-gold-pale); }
.ofi-site .ofi-podium-band .elementor-widget-text-editor { color: #e7e8e2; }
.ofi-site .ofi-podium-band .elementor-widget-text-editor a { color: #f6e7bd; }
.ofi-site .ofi-podium-band .elementor-widget-text-editor a:hover { color: #fff; }
.ofi-site .ofi-podium-band .ofi-podium-tiles { margin: 12px 0 8px; }
.ofi-site .ofi-faq .elementskit-card { border: 0; border-bottom: 1px solid var(--ofi-line); border-radius: 0; }
.ofi-site .ofi-faq .ekit-accordion-title { font-size: 17px; font-weight: 600; }
.ofi-site .ofi-faq .elementskit-card-header > .elementskit-btn-link { padding: 18px 0; color: var(--ofi-ink); background: transparent; border: 0; }
.ofi-site .ofi-faq .elementskit-card-body { padding: 0 0 22px; font-size: 16px; line-height: 1.65; }
.ofi-site .ofi-programme-link { margin-top: auto; }
.ofi-site .ofi-programme-link .elementor-button { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0 !important; border: 0 !important; background: transparent !important; color: var(--ofi-ink) !important; border-radius: 0; font-size: 15px; line-height: 1.5; letter-spacing: 0; text-transform: none; text-decoration: underline; text-underline-offset: 5px; }
.ofi-site .ofi-programme-link .elementor-button:hover { color: var(--ofi-gold-text) !important; background: transparent !important; transform: none; }
.ofi-site :is(#paidia,#enilikes,#agonistiko,#programma,#tmimata,#nea,#minima) { scroll-margin-top: calc(var(--ofi-header) + 16px); }
.ofi-site .ofi-steps { counter-reset: step; list-style: none; margin: 0; padding: 0; display: grid; gap: 26px; }
.ofi-site .ofi-steps li { position: relative; counter-increment: step; display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: start; font-size: 15px; line-height: 1.55; color: var(--ofi-muted); }
/* A thin gold line joins the numbers, so the three steps read as one way from the call to the club. */
.ofi-site .ofi-steps li:not(:last-child)::after { content: ''; position: absolute; left: 21px; top: 50px; bottom: -20px; width: 2px; background: var(--ofi-gold-light); }
.ofi-site .ofi-steps li::before { content: counter(step); display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ofi-ink); color: #fff; font-family: var(--ofi-display); font-size: 18px; font-weight: 700; }
.ofi-site .ofi-steps strong { display: block; color: var(--ofi-ink); font-size: 16px; }
.ofi-site .ofi-note, .ofi-site .ofi-note .elementor-widget-container { font-size: 14px; color: var(--ofi-muted); }
.ofi-site .ofi-contact-layout .elementor-widget-wpforms .elementor-widget-container { background: var(--ofi-paper); padding: 24px; }
.ofi-site div.wpforms-container-full .wpforms-form :is(input[type=text],input[type=email],input[type=tel],textarea,select) { width: 100%; max-width: 100%; min-height: 48px; padding-inline: 12px; border: 1px solid #b7bab0; background: #fff; border-radius: 2px; font-size: 16px; box-shadow: none; }
.ofi-site div.wpforms-container-full .wpforms-form .wpforms-field-label { font-size: 15px; font-weight: 500; }
.ofi-site div.wpforms-container-full .wpforms-form .wpforms-field-sublabel, .ofi-site div.wpforms-container-full .wpforms-form .wpforms-field-description { font-size: 13px; color: var(--ofi-muted); }
.ofi-site div.wpforms-container-full { margin: 0; }
.ofi-site .ofi-contact-layout .elementor-widget-wpforms { margin: 0 0 12px !important; }
.ofi-site .ofi-form-note { margin-top: 0; }
/* The plugin removes the focus outline of its fields; a dark border with a gold ring shows where the visitor types. */
.ofi-site div.wpforms-container-full .wpforms-form :is(input, select, textarea) { border-radius: 2px !important; }
.ofi-site div.wpforms-container-full .wpforms-form :is(input, select, textarea):focus { border-color: var(--ofi-ink) !important; box-shadow: 0 0 0 3px #d0ae6173 !important; outline: none !important; }
/* The message after sending the form is a white card with a gold rule and a check mark, not the plugin's lime box. */
.ofi-site .wpforms-confirmation-container-full { position: relative; margin: 0 !important; padding: 20px 22px 20px 60px !important; background: #fff !important; border: 0 !important; border-left: 3px solid var(--ofi-gold-light) !important; border-radius: 2px; color: var(--ofi-ink) !important; font-size: 17px; line-height: 1.55; }
.ofi-site .wpforms-confirmation-container-full::before { content: ''; position: absolute; top: 21px; left: 20px; width: 26px; height: 26px; border-radius: 50%; background: var(--ofi-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 15px no-repeat; }
.ofi-site .wpforms-confirmation-container-full p { margin: 0 !important; color: inherit !important; }
.ofi-site .ofi-contact-details .elementor-widget-container { color: var(--ofi-ink); }
/* Address, phones and email read as a labelled list with an icon each. Every link is a comfortable target. */
.ofi-contact-list { list-style: none; margin: 8px 0 24px; padding: 0; border-top: 1px solid var(--ofi-line); }
.ofi-contact-list li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--ofi-line); }
.ofi-contact-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ofi-paper); color: var(--ofi-gold-text); }
.ofi-contact-list strong { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 600; color: var(--ofi-muted); }
.ofi-contact-list li > div > span { display: block; font-size: 16px; line-height: 1.55; }
.ofi-site .ofi-contact-list a { display: block; width: fit-content; min-height: 44px; padding-block: 8px; font-size: 17px; line-height: 1.6; font-weight: 500; color: var(--ofi-ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.ofi-site .ofi-contact-list a:hover { color: var(--ofi-gold-text); }
.ofi-site .ofi-contact-list .ofi-contact-directions { display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; font-size: 15px; }
.ofi-contact-list small { display: block; margin-top: 6px; font-size: 14px; line-height: 1.5; color: var(--ofi-muted); }
.ofi-site .ofi-contact-hours { display: grid; gap: 4px; margin: 0 0 18px; padding: 16px 18px; background: var(--ofi-paper); border-left: 3px solid var(--ofi-gold-light); font-size: 15px; }
.ofi-contact-today { font-weight: 600; color: var(--ofi-ink); font-variant-numeric: tabular-nums; }
.ofi-site .ofi-map { padding-top: 0; }
.ofi-site .ofi-map iframe { display: block; width: 100%; min-height: 300px; border-radius: 2px; background: var(--ofi-paper); }

/* News archive, single articles and plain pages. */
.ofi-article-layout { padding: 36px 0 56px; }
.ofi-sidebar { margin-top: 48px; }
.ofi-widget { margin-bottom: 32px; }
.ofi-widget h2 { font-size: 18px; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--ofi-ink); }
.ofi-widget ul { list-style: none; margin: 0; padding: 0; }
.ofi-widget li { margin: 0; }
.ofi-widget li a { display: block; padding: 7px 0; border-bottom: 1px solid var(--ofi-line); font-size: 14.5px; line-height: 1.45; }
.ofi-widget .children { padding-left: 14px; }
.ofi-widget .ofi-search { width: 100%; }
.ofi-author { text-transform: none; letter-spacing: 0; }
.ofi-widget-list { list-style: none; margin: 0; padding: 0; }
.ofi-widget-list li a { display: block; padding: 9px 0; border-bottom: 1px solid var(--ofi-line); font-size: 15px; line-height: 1.45; }
.ofi-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ofi-tags a { padding: 4px 10px; border: 1px solid var(--ofi-line); border-radius: 999px; font-size: 13px !important; }
/* A section with several pages lists them in a row under the header, with the open page marked in gold. */
.ofi-subnav { background: var(--ofi-paper); border-bottom: 1px solid var(--ofi-line); }
/* The row is 16px wider than the container, so the text of its padded links lines up with the page title. */
.ofi-container.ofi-subnav-row { display: flex; gap: 0 10px; width: calc(min(100% - 40px, 1160px) + 16px); overflow-x: auto; scrollbar-width: none; }
.ofi-subnav-row::-webkit-scrollbar { display: none; }
.ofi-site .ofi-subnav a { position: relative; display: inline-flex; flex: 0 0 auto; align-items: center; gap: 4px; min-height: 48px; padding-inline: 8px; font-size: 14px; font-weight: 500; color: var(--ofi-muted); white-space: nowrap; }
.ofi-site .ofi-subnav a:hover { color: var(--ofi-ink); }
.ofi-site .ofi-subnav a[aria-current='page'] { color: var(--ofi-ink); font-weight: 600; }
.ofi-subnav a[aria-current='page']::after { content: ''; position: absolute; inset: auto 8px 0; height: 2px; background: var(--ofi-gold-light); }
.ofi-subnav svg { width: 14px; height: 14px; }
/* The row scrolls, which would clip a focus ring drawn outside the link, so the ring is drawn inside. */
.ofi-site .ofi-subnav a:focus-visible { outline-offset: -3px; }
.ofi-page-head { padding: 36px 0 28px; border-bottom: 1px solid var(--ofi-line); }
/* Elementor pages open with the same head as the theme's own pages. */
.ofi-site .elementor-section.ofi-section.ofi-page-intro { padding-block: 36px 28px; }
.ofi-page-head .ofi-section-head { margin-bottom: 0; max-width: 820px; }
.ofi-page-head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 32px; }
.ofi-page-head .ofi-chips { margin-top: 24px; }
.ofi-search { display: flex; width: min(100%, 360px); }
.ofi-search input { flex: 1; min-width: 0; min-height: 46px; padding: 8px 14px; border: 1px solid #b7bab0; border-right: 0; border-radius: 2px 0 0 2px; background: #fff; font-size: 15px; }
.ofi-search button { display: inline-flex; align-items: center; justify-content: center; width: 48px; min-height: 46px; border: 1px solid var(--ofi-ink); border-radius: 0 2px 2px 0; background: var(--ofi-ink); color: #fff; cursor: pointer; }
.ofi-archive { padding-top: 40px; }
.ofi-empty-page { max-width: 760px; }
.ofi-page-head + .ofi-section { padding-top: 48px; }
/* The rule that sets every paragraph in the body face outranked a single class, so this title came out in it. */
.ofi-site .ofi-empty-title { margin: 0 0 24px; font-family: var(--ofi-display) !important; font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 700; line-height: 1.2; letter-spacing: -.02em; color: var(--ofi-ink); text-wrap: balance; }
.ofi-empty-note { margin: 18px 0 32px; font-size: 15px; color: var(--ofi-muted); }
/* A page still being prepared opens with a chess clock waiting for the move, on paper under a gold rule. */
.ofi-soon { padding: 32px 28px 28px; background: var(--ofi-paper); border-top: 3px solid var(--ofi-gold-light); border-radius: 2px; }
.ofi-soon-mark { display: inline-grid; place-items: center; width: 64px; height: 64px; margin-bottom: 22px; border-radius: 50%; background: var(--ofi-ink); color: var(--ofi-gold-light); }
.ofi-soon .ofi-empty-title { margin-bottom: 12px; }
.ofi-site .ofi-soon-text { margin: 0 0 26px; max-width: 56ch; font-size: 17px; line-height: 1.6; color: #3a3c38; }
@media (min-width: 768px) { .ofi-soon { padding: 44px 48px 40px; } }

/* The coaches page. The three coaches under the head lead to their spreads, where each portrait rests in a
   gold frame that stays in view while the text is read. */
.ofi-coach-index { display: grid; gap: 10px; margin-top: 28px; }
.ofi-site .ofi-coach-index a { display: flex; align-items: center; gap: 14px; padding: 8px 18px 8px 8px; background: #fff; border: 1px solid var(--ofi-line); border-radius: 999px; color: var(--ofi-ink); }
.ofi-site .ofi-coach-index a:hover { border-color: var(--ofi-ink); color: var(--ofi-ink); }
.ofi-coach-index img { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%; object-fit: cover; object-position: 50% 24%; }
.ofi-coach-index strong { display: block; font-family: var(--ofi-display) !important; font-size: 16px; line-height: 1.2; }
.ofi-site .ofi-coach-index small { display: block; margin-top: 2px; font-size: 13px; line-height: 1.35; color: var(--ofi-muted); }
.ofi-coach { scroll-margin-top: var(--ofi-header); border-top: 1px solid var(--ofi-line); }
.ofi-page-head + .ofi-coach { border-top: 0; }
.ofi-site .ofi-coach-alt { background: var(--ofi-paper); }
.ofi-coach-grid { display: grid; gap: 40px; align-items: start; }
.ofi-coach-photo { position: relative; margin: 0 14px 14px 0; }
.ofi-coach-photo::before { content: ''; position: absolute; inset: 14px -14px -14px 14px; border: 1px solid var(--ofi-gold-light); border-radius: 2px; }
.ofi-coach-photo img { position: relative; display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 2px; background: var(--ofi-paper); }
.ofi-coach-copy { max-width: 660px; }
.ofi-coach-copy h2 { margin: 0 0 14px; font-size: clamp(2.1rem, 4.4vw, 3.2rem); line-height: 1.02; }
.ofi-site .ofi-coach-lead { margin: 0 0 24px; font-family: var(--ofi-display) !important; font-size: clamp(1.2rem, 2vw, 1.5rem); font-weight: 600; line-height: 1.3; letter-spacing: -.01em; color: var(--ofi-ink); text-wrap: balance; }
.ofi-coach-copy > p:not([class]) { font-size: 17px; line-height: 1.75; color: #3a3c38; }
.ofi-coach-copy h3 { margin: 32px 0 12px; font-size: 18px; }
.ofi-coach-facts { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ofi-line); }
.ofi-coach-facts li { display: flex; gap: 12px; margin: 0; padding: 10px 0; border-bottom: 1px solid var(--ofi-line); font-size: 15px; line-height: 1.5; }
.ofi-coach-facts li::before { content: ''; flex: 0 0 8px; height: 8px; margin-top: 7px; background: repeating-conic-gradient(var(--ofi-ink) 0 25%, transparent 0 50%) 0 0 / 8px 8px; }
.ofi-coaches-cta h2 { margin: 0 0 12px; }
.ofi-site .ofi-coaches-cta p { margin: 0 0 24px; font-size: 17px; color: var(--ofi-muted); }
@media (min-width: 900px) {
  .ofi-coach-index { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ofi-coach-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 80px; }
  .ofi-coach-photo { position: sticky; top: calc(var(--ofi-header) + 40px); }
  /* Every second coach faces the other way, the frame following the photograph. */
  .ofi-coach-alt .ofi-coach-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .ofi-coach-alt .ofi-coach-photo { order: 2; margin: 0 0 14px 14px; }
  .ofi-coach-alt .ofi-coach-photo::before { inset: 14px 14px -14px -14px; }
}
.ofi-empty-latest { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--ofi-line); }
/* Pagination. The parent theme draws black boxes with icon font arrows and hides the page
   numbers on phones; all of that is reset here. */
.ofi-site .pagination { position: static; min-height: 0; margin: 48px 0 0; padding: 0; border: 0; font-family: var(--ofi-font); font-size: 15px; }
.ofi-site .pagination::before, .ofi-site .pagination::after,
.ofi-site .pagination .nav-links::before, .ofi-site .pagination .nav-links::after,
.ofi-site .pagination .prev::before, .ofi-site .pagination .next::before { content: none !important; display: none !important; }
.ofi-site .pagination .nav-links { position: static; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 0; }
.ofi-site .pagination .page-numbers { position: static; display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: auto; height: auto; min-width: 46px; min-height: 46px; margin: 0; padding: 0 14px; overflow: visible; border: 1px solid var(--ofi-line); border-radius: 2px; background: #fff; color: var(--ofi-ink); font-size: 15px; font-weight: 500; line-height: 1; letter-spacing: 0; text-transform: none; }
.ofi-site .pagination a.page-numbers:hover, .ofi-site .pagination a.page-numbers:focus-visible { background: #fff; border-color: var(--ofi-ink); color: var(--ofi-ink); }
.ofi-site .pagination .page-numbers.current { background: var(--ofi-ink); border-color: var(--ofi-ink); color: #fff; font-weight: 700; }
.ofi-site .pagination .page-numbers.dots { min-width: 0; padding: 0 4px; border-color: transparent; background: transparent; }
.ofi-site .pagination .prev svg { transform: rotate(180deg); }
.ofi-site .pagination .page-numbers svg { width: 18px; height: 18px; }
.ofi-site .pagination .next { margin-left: auto; }
.ofi-site .pagination .current .screen-reader-text { position: absolute !important; }
@media (max-width: 639px) {
  .ofi-site .pagination .nav-links { justify-content: center; }
  .ofi-site .pagination :is(.prev, .next) { order: 2; flex: 1 1 calc(50% - 3px); margin: 4px 0 0; }
}
.ofi-article-head h1 { max-width: 860px; font-size: clamp(1.9rem, 4.2vw, 2.9rem); line-height: 1.12; margin: 0; }
.ofi-article-head .ofi-eyebrow { margin-bottom: 14px; }
.ofi-article-head .ofi-eyebrow a:hover { color: var(--ofi-ink); }
.ofi-article-meta { margin: 16px 0 0; font-size: 15px; color: var(--ofi-muted); }
.ofi-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; margin-top: 20px; }
.ofi-site .ofi-share .ofi-btn { min-height: 44px; padding: 10px 18px; font-size: 14px; }
/* A poster or a square photo stands whole next to the title instead of being cut to a wide strip. */
.ofi-article-head-poster { display: grid; gap: 28px; align-items: center; }
.ofi-article-poster { margin: 0; max-width: 420px; }
.ofi-article-poster img { display: block; width: 100%; height: auto; border-radius: 2px; outline: 1px solid #0b0d0c1a; outline-offset: -1px; }
/* Galleries inside articles fill the text column as an even grid, not two fixed thumbnails per row. */
.ofi-site .ofi-article-body .foogallery.fg-default { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 1.8em 0; }
.ofi-site .ofi-article-body .foogallery.fg-default .fg-item { flex: 0 0 calc((100% - 8px) / 2); width: auto; max-width: none; margin: 0; background: var(--ofi-paper); box-shadow: none; }
.ofi-site .ofi-article-body .foogallery.fg-default .fg-item-inner { background: transparent; border-radius: 2px; box-shadow: none; overflow: hidden; }
.ofi-site .ofi-article-body .foogallery.fg-default .fg-image { width: 100% !important; max-width: none; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
/* Phone videos keep their upright shape at a size that fits the screen. */
.ofi-site .ofi-prose .wp-video.ofi-video-portrait { max-width: min(100%, 405px) !important; margin-inline: auto; }
/* The history page reads as a long text with the club's milestones beside it. */
.ofi-longread { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px; }
/* The history text reads as a long read. A note dates it, its own title becomes a gold kicker, the first
   paragraph leads, every section opens under a short gold rule, the academy's motto stands out as a quote
   and the individual distinctions read as a list with the athletes' names in bold. */
.ofi-site .ofi-prose .ofi-history-note { margin: 0 0 32px; padding: 2px 0 2px 16px; border-left: 3px solid var(--ofi-gold-light); font-size: 15px; line-height: 1.55; color: var(--ofi-muted); }
.ofi-site .ofi-prose .ofi-history-title { margin: 0 0 14px; font-family: var(--ofi-font) !important; font-size: 13px; font-weight: 600; line-height: 1.5; letter-spacing: .07em; color: var(--ofi-gold-text); }
.ofi-site .ofi-prose .ofi-history-lead { margin-bottom: .9em; font-family: var(--ofi-display) !important; font-size: clamp(1.3rem, 2.3vw, 1.65rem); font-weight: 500; line-height: 1.4; letter-spacing: -.01em; color: var(--ofi-ink); text-wrap: pretty; }
.ofi-site .ofi-longread .ofi-prose h3 { margin: 2.2em 0 .7em; font-size: clamp(1.35rem, 2vw, 1.6rem); line-height: 1.2; }
.ofi-longread .ofi-prose h3::before { content: ''; display: block; width: 36px; height: 3px; margin-bottom: 16px; background: var(--ofi-gold-light); }
.ofi-site .ofi-prose .ofi-history-quote { margin: 1.2em 0 1.4em; padding: 2px 0 2px 24px; border-left: 3px solid var(--ofi-ink); color: var(--ofi-ink); }
.ofi-site .ofi-prose .ofi-history-quote p { margin: 0; font-family: var(--ofi-display) !important; font-style: normal; font-size: clamp(1.35rem, 2.4vw, 1.75rem); font-weight: 600; line-height: 1.3; letter-spacing: -.01em; text-wrap: balance; }
.ofi-site .ofi-prose .ofi-history-list { list-style: none; margin: 0 0 1.4em; padding: 0; border-top: 1px solid var(--ofi-line); }
/* The items stay in the flow of text, because the names in bold would otherwise split each line into columns. */
.ofi-site .ofi-prose .ofi-history-list li { position: relative; margin: 0; padding: 12px 0 12px 22px; border-bottom: 1px solid var(--ofi-line); }
.ofi-prose .ofi-history-list li::before { content: ''; position: absolute; left: 0; top: calc(12px + .62em); width: 8px; height: 8px; background: repeating-conic-gradient(var(--ofi-ink) 0 25%, transparent 0 50%) 0 0 / 8px 8px; }
.ofi-prose .ofi-history-list strong, .ofi-longread .ofi-prose strong { color: var(--ofi-ink); font-weight: 700; }
.ofi-prose sup { font-size: .62em; line-height: 0; }
.ofi-longread-aside .ofi-figure img { aspect-ratio: 4 / 3; }
.ofi-longread-aside h2 { margin: 28px 0 0; font-size: 1.35rem; }
.ofi-longread-aside .ofi-timeline { margin: 14px 0 18px; }
.ofi-longread-aside .ofi-text-link { display: flex; width: fit-content; }
.ofi-signature { display: flex; flex-direction: column; gap: 4px; max-width: 340px; margin-top: 2.4em; padding-top: 18px; border-top: 2px solid var(--ofi-gold-light); line-height: 1.4; }
.ofi-signature span { font-size: 14px; color: var(--ofi-muted); }
.ofi-signature strong { font-family: var(--ofi-display) !important; font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
.ofi-article-photo { margin: 32px auto 0; }
.ofi-article-photo img { width: 100%; max-height: 620px; object-fit: cover; object-position: 50% 35%; border-radius: 2px; }
.ofi-article-body { min-width: 0; }
.ofi-prose { max-width: 720px; font-size: 17px; line-height: 1.75; }
.ofi-prose-wide { max-width: none; }
.ofi-prose p { margin: 0 0 1.2em; }
.ofi-prose > :first-child { margin-top: 0; }
.ofi-prose :is(h1,h2,h3,h4) { margin-top: 1.6em; }
/* Headings inside a text sit a step above the body. Older articles use h1 there, which must not compete with the page title. */
.ofi-prose :is(h1,h2) { font-size: clamp(1.45rem, 2.6vw, 1.85rem); line-height: 1.2; }
.ofi-prose h4 { font-size: 1.1rem; }
/* A heading moved up a level for the outline of the page keeps the size of its old level. */
.ofi-prose .ofi-was-h3 { font-size: 1.35rem; line-height: 1.15; }
.ofi-prose .ofi-was-h4 { font-size: 1.1rem; line-height: 1.15; }
.ofi-prose :is(.ofi-was-h5, .ofi-was-h6) { font-size: 1rem; line-height: 1.15; }
.ofi-prose a { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.ofi-prose img { height: auto; border-radius: 2px; }
.ofi-prose :is(iframe,video,.wp-video,.wp-video-shortcode) { max-width: 100% !important; width: 100% !important; height: auto; }
.ofi-prose iframe { aspect-ratio: 16 / 9; height: auto; }
.ofi-prose .wp-video { margin-bottom: 1.2em; }
.ofi-prose .wp-block-embed iframe, .ofi-prose .embed-any-document iframe { aspect-ratio: auto; }
.ofi-prose :is(.gallery,.wp-block-gallery) { margin: 1.4em 0; }
.ofi-prose ul, .ofi-prose ol { padding-left: 1.3em; }
.ofi-prose blockquote { margin: 1.4em 0; padding-left: 20px; border-left: 3px solid var(--ofi-gold-light); color: var(--ofi-muted); }
.ofi-prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
/* Tables scroll sideways inside the text column instead of pushing the page wider. */
.ofi-table-scroll { margin: 1.4em 0; overflow-x: auto;
  /* A soft shadow appears at an edge only while more of the table hides behind it. */
  background: linear-gradient(90deg, #fff 30%, #fff0) left / 28px 100% no-repeat local, linear-gradient(270deg, #fff 30%, #fff0) right / 28px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, #0b0d0c2e, #0b0d0c00) left / 14px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, #0b0d0c2e, #0b0d0c00) right / 14px 100% no-repeat scroll; }
.ofi-table-scroll > table { width: 100% !important; height: auto !important; margin: 0; }
.ofi-prose td, .ofi-prose th { padding: 8px 10px; border-bottom: 1px solid var(--ofi-line); text-align: left; }
.ofi-page-links { margin-top: 24px; font-size: 14px; }
.ofi-article-foot { max-width: 720px; margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--ofi-line); }
.ofi-post-nav { display: grid; grid-template-columns: 1fr; gap: 16px; max-width: 720px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--ofi-line); }
.ofi-post-nav a { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid var(--ofi-line); border-radius: 2px; font-size: 15px; font-weight: 500; line-height: 1.4; }
.ofi-post-nav a:hover { border-color: var(--ofi-ink); color: var(--ofi-ink); }
.ofi-post-nav small { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ofi-muted); }
.ofi-post-nav-next { text-align: right; }
/* Under an open album the links run the full width of the photographs. */
.ofi-album-nav.ofi-post-nav { max-width: none; margin-top: 48px; }
.ofi-plain-page .ofi-prose img { margin-bottom: 1em; }

/* Photo albums: one calm grid instead of scattered piles. */
.ofi-site .foogallery-album-gallery-list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; list-style: none; margin: 0 !important; padding: 0 !important; }
.ofi-site .foogallery-album-gallery-list > li { width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; float: none !important; }
.ofi-site .foogallery-pile, .ofi-site .foogallery-pile-inner { display: block !important; position: static !important; float: none !important; width: 100% !important; height: auto !important; margin: 0 !important; padding: 0 !important; transform: none !important; box-shadow: none !important; background: none !important; border: 0 !important; }
.ofi-site .foogallery-pile::before, .ofi-site .foogallery-pile::after, .ofi-site .foogallery-pile-inner::before, .ofi-site .foogallery-pile-inner::after { display: none !important; }
.ofi-site .foogallery-pile-thumbnail { display: block !important; position: static !important; width: auto !important; height: auto !important; background: none !important; text-decoration: none !important; }
.ofi-site .foogallery-pile-thumbnail img { display: block !important; position: static !important; width: 100% !important; height: auto !important; aspect-ratio: 1; object-fit: cover; border-radius: 2px; filter: none !important; opacity: 1 !important; }
.ofi-site .foogallery-pile-thumbnail h3 { position: static !important; display: block !important; width: auto !important; margin: 10px 0 0 !important; padding: 0 !important; background: none !important; color: var(--ofi-ink) !important; font-size: 16px !important; font-weight: 700; line-height: 1.3 !important; text-align: left !important; text-shadow: none !important; transform: none !important; opacity: 1 !important; }
.ofi-site .foogallery-pile-thumbnail h3 span { display: block; margin-top: 2px; font-family: var(--ofi-font) !important; font-size: 13px; font-weight: 400; color: var(--ofi-muted); }
/* An album cover answers the pointer like the news cards, with its title turning gold. */
.ofi-site .foogallery-pile-thumbnail img { transition: filter .25s ease !important; }
.ofi-site .foogallery-pile-thumbnail:hover img { filter: brightness(1.06) saturate(1.05) !important; }
.ofi-site .foogallery-pile-thumbnail:hover h3 { color: var(--ofi-gold-text) !important; }
.ofi-site .foogallery-album-header { margin-bottom: 24px; }
.ofi-site .foogallery-album-header h2 { font-size: 24px; }
/* An open album carries its name in the page head, so the plugin's own title would repeat it. */
.ofi-site .ofi-album-open .foogallery-album-header h2 { display: none; }
.ofi-site .ofi-album-open .foogallery-album-header a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; font-weight: 500; text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
/* Photographs open on the dark stage of the site, where they read best, instead of a pale grey panel. */
.ofi-site .fg-panel.fg-light { background: var(--ofi-stage) !important; color: #e7e8e2 !important; }
.ofi-site .fg-panel.fg-light .fg-panel-button { background: #ffffff14 !important; border-color: transparent !important; color: #fff !important; }
.ofi-site .fg-panel.fg-light .fg-panel-button:hover, .ofi-site .fg-panel.fg-light .fg-panel-button:focus-visible { background: #ffffff33 !important; }
.ofi-site .fg-panel.fg-light .fg-panel-info-inner { background: #0b0d0cf2 !important; color: #e7e8e2 !important; }
.ofi-site .fg-panel.fg-light .fg-panel-thumbs-inner, .ofi-site .fg-panel.fg-light .fg-panel-thumb { background: transparent !important; }
.ofi-site .fg-panel.fg-light .fg-panel-thumb, .ofi-site .fg-panel.fg-light .fg-panel-thumb-spacer { border-color: #ffffff1f !important; }
.ofi-site .fg-panel.fg-light .fg-panel-thumb-spacer { background: transparent !important; }
.ofi-site .fg-panel.fg-light .fg-panel-thumb.fg-selected { border-color: var(--ofi-gold-light) !important; }
.ofi-site .fg-panel.fg-light .fg-panel-thumbs-button { background: #ffffff14 !important; border-color: transparent !important; color: #fff !important; }
/* The link directory of the Ιστοσελίδες page follows the site's style. Groups sit under an ink rule with the
   site's thin lines between rows, without the plugin's salmon borders and shadows. */
.ofi-site .qcld-main-container-style-simple { max-width: none !important; }
.ofi-site .qcopd_embed_container.sld-top-area { display: block; margin: 0 0 28px; padding: 0; border: 0 !important; text-align: left; }
/* A selector of the plugin, missing its .direction-rtl part, turns every span of a link right to left. */
.ofi-site .qcld-main-container-style-simple .qcopd-single-list ul li span { direction: ltr !important; }
.ofi-site .qcopd_embed_container .sld-half { float: none; width: min(100%, 420px); }
.ofi-site #live-search input { height: 48px; padding: 0 16px 0 44px; border: 1px solid #b7bab0; border-radius: 2px; background: #fff; font-size: 15px; color: var(--ofi-ink); }
.ofi-site #live-search input:focus { border-color: var(--ofi-ink); background-color: #fff; box-shadow: 0 0 0 3px #d0ae6173; outline: none; }
/* The magnifier stays while the clear button of the plugin shows. */
.ofi-site #live-search.sld_search_filter_clear_wrap::after { content: '\f002'; }
.ofi-site #live-search::after { top: 13px; left: 16px; right: auto; color: var(--ofi-muted); }
.ofi-site .qcld-main-container-style-simple .simple .qcopd-single-list h2 { margin: 0 0 12px; padding: 0; font-size: 22px; text-transform: none; }
.ofi-site .qcld-main-container-style-simple .simple .qcopd-single-list ul { margin: 0 0 44px; background: transparent; border-top: 2px solid var(--ofi-ink); box-shadow: none; }
.ofi-site .qcld-main-container-style-simple .simple .qcopd-single-list ul li { display: flex; align-items: center; border-bottom: 1px solid var(--ofi-line); }
.ofi-site .qcld-main-container-style-simple .simple .qcopd-single-list ul li:hover { background: var(--ofi-paper); }
.ofi-site .qcld-main-container-style-simple .simple .qcopd-single-list ul li a { display: flex; flex: 1; align-items: center; gap: 14px; min-width: 0; min-height: 60px; padding: 10px 6px; font-size: 15px; line-height: 1.35; color: var(--ofi-ink); }
.ofi-site .qcld-main-container-style-simple .simple .qcopd-single-list ul li a:hover .ofi-link-name { color: var(--ofi-gold-text); }
.ofi-site .qcld-main-container-style-simple .simple .list-img { flex: 0 0 32px; margin: 0; }
.ofi-site .qcld-main-container-style-simple .simple .list-img img { display: block; width: 32px; height: 32px; object-fit: cover; border-radius: 2px; outline: 1px solid var(--ofi-line); outline-offset: -1px; }
.ofi-link-name { display: block; min-width: 0; font-weight: 500; overflow-wrap: anywhere; transition: color .18s ease; }
.ofi-site .qcld-main-container-style-simple .simple .qcopd-single-list ul li a:focus-visible { outline: 3px solid #b18a35; outline-offset: -3px; }
/* The plugin animates every property of its links, the focus ring too; only colours change gradually here. */
.ofi-site .qcld-main-container-style-simple .simple .qcopd-single-list ul li a { transition-property: color, background-color; }
.ofi-link-name small { display: block; margin-top: 2px; font-size: 13px; font-weight: 400; color: var(--ofi-muted); }
/* The plugin's own message when the search finds nothing, in Greek and in the style of the site's notes. */
.ofi-site .qc_sld_not_item_found { width: 100%; margin: 0 0 28px; padding: 14px 18px; background: var(--ofi-paper); border-left: 3px solid var(--ofi-gold-light); font-size: 15px; color: var(--ofi-ink); }
/* The vote button of the plugin stays, quieter until the row is pointed at. */
.ofi-site .qcld-main-container-style-simple .simple .upvote-section { flex: 0 0 auto; width: auto; margin-left: auto; padding: 0 10px; gap: 4px; opacity: .55; transition: opacity .18s ease; }
.ofi-site .qcld-main-container-style-simple .simple .qcopd-single-list ul li:hover .upvote-section { opacity: 1; }
/* The albums of one year sit under the year, after a row of years that jumps to each of them. */
.ofi-site .ofi-album-years { margin: 0 0 8px; }
.ofi-site .ofi-prose .ofi-album-year { display: flex; align-items: center; gap: 18px; margin: 56px 0 22px; font-size: clamp(1.5rem, 2.6vw, 2rem); scroll-margin-top: calc(var(--ofi-header) + 16px); }
.ofi-site .ofi-prose .ofi-album-year::after { content: ''; flex: 1; height: 1px; background: var(--ofi-line); }
/* An open album shows its photographs as the same even grid as the galleries in articles. */
.ofi-site .ofi-album-open .foogallery.fg-default { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ofi-site .ofi-album-open .foogallery.fg-default .fg-item { flex: 0 0 calc((100% - 8px) / 2); width: auto; max-width: none; margin: 0; background: var(--ofi-paper); box-shadow: none; }
.ofi-site .ofi-album-open .foogallery.fg-default .fg-item-inner { background: transparent; border-radius: 2px; box-shadow: none; overflow: hidden; }
.ofi-site .ofi-album-open .foogallery.fg-default .fg-image { width: 100% !important; max-width: none; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }

/* Footer. */
/* The footer opens under the gold rule of the site's closing blocks. */
.ofi-footer { margin-top: 0; padding-top: 48px; background: #161815; border-top: 3px solid var(--ofi-gold-light); color: #e4e6df; font-size: 14px; }
.ofi-footer-grid { display: grid; grid-template-columns: 1fr; gap: 36px; }
.ofi-footer h2 { color: #fff; margin: 0 0 14px; font-size: 18px; letter-spacing: 0; }
.ofi-footer-brand img { width: 146px; max-height: 80px; object-fit: contain; object-position: left; margin-bottom: 20px; }
.ofi-footer-brand p { color: #b6baae; line-height: 1.65; }
/* The motto signs off every page in the display face, the team's record under it in gold. */
.ofi-site .ofi-footer-motto { margin: 0 0 4px; font-family: var(--ofi-display) !important; font-size: clamp(1.75rem, 2.4vw, 2.1rem); font-weight: 700; line-height: 1.1; letter-spacing: -.02em; color: #fff; }
.ofi-site .ofi-footer-since { margin: 0 0 18px; }
.ofi-site .ofi-footer-podium { display: flex; align-items: flex-start; gap: 10px; width: fit-content; max-width: 32ch; margin: 0 0 24px; color: #efd99f; line-height: 1.45; }
.ofi-site .ofi-footer-podium:hover { color: #fff; }
.ofi-footer-podium svg { flex: 0 0 auto; margin-top: -1px; }
.ofi-footer a:hover { color: #e1c483; }
.ofi-footer ul { list-style: none; padding: 0; margin: 0; }
.ofi-footer li { margin: 0; }
.ofi-footer li a { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding-block: 5px; }
.ofi-footer-contact > a { display: block; width: fit-content; min-height: 36px; padding-block: 5px; }
.ofi-footer-contact p { margin-bottom: 12px; white-space: pre-line; }
.ofi-footer-answers { display: block; margin: 2px 0 10px; font-size: 13px; color: #b6baae; max-width: 30ch; }
/* Each way to reach the club sits next to its icon, as in the bar above the header. */
.ofi-footer-details { display: grid; gap: 14px; margin: 0 0 6px; }
.ofi-footer-details > li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 12px; align-items: start; }
.ofi-footer-details > li > svg { margin-top: 9px; color: #e1c483; }
.ofi-footer-details > li > div { display: grid; justify-items: start; }
.ofi-site .ofi-footer-details a { white-space: pre-line; }
.ofi-footer-details > li > div > span { padding-top: 7px; color: #c9ccc2; line-height: 1.55; max-width: 34ch; }
.ofi-site .ofi-footer-details .ofi-footer-today { padding-top: 6px; color: #fff; }
.ofi-footer-details .ofi-footer-answers { margin: 4px 0 0; }
.ofi-social { display: flex; gap: 12px; }
.ofi-site .ofi-social-round { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid #4a4e46; border-radius: 50%; color: #fff; }
.ofi-site .ofi-social-round:hover { background: #fff; border-color: #fff; color: var(--ofi-ink); }
.ofi-footer-contact .ofi-footer-message { display: inline-flex; align-items: center; gap: 12px; margin-top: 10px; color: #e1c483; }
.ofi-footer-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: space-between; margin-top: 40px; padding-block: 22px; border-top: 1px solid #3a3e35; font-size: 12px; color: #b6baae; }
/* Back to the top of a long page. The arrow turns upwards. */
.ofi-site .ofi-to-top { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; margin-left: auto; color: #e4e6df; }
.ofi-to-top svg { transform: rotate(-90deg); }

@media (min-width: 640px) {
  .ofi-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ofi-schedule, .ofi-schedule-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ofi-post-nav { grid-template-columns: 1fr 1fr; }
  /* A next link without a previous one keeps to the right column. */
  .ofi-post-nav-next:first-child { grid-column: 2; }
  .ofi-site .foogallery-album-gallery-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 20px; }
}
@media (min-width: 768px) {
  .ofi-section { padding: 80px 0; }
  .ofi-site .ofi-page-intro { padding-block: 52px 40px; }
  .ofi-site .ofi-grid > .elementor-container > .elementor-column { flex: 1; width: 0; min-width: 0; }
  .ofi-site .ofi-split > .elementor-container > .elementor-column { flex: 1; width: 0; min-width: 0; }
  .ofi-site .ofi-split > .elementor-container { align-items: center; gap: 56px; }
  .ofi-site .ofi-contact-layout > .elementor-container { align-items: start; }
  .ofi-facts ul { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 22px 0; }
  .ofi-programmes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ofi-hero-copy { padding: 72px 0 56px; }
  .ofi-hero h1 { font-size: clamp(2.6rem, 4.4vw, 4rem); max-width: 15ch; }
  .ofi-hero-text { font-size: 18px; }
  .ofi-hero::after { background: linear-gradient(0deg, var(--ofi-stage), transparent 24%), linear-gradient(90deg, #080b0ae0 0%, #080b0a99 45%, #080b0a26 90%), linear-gradient(0deg, #080b0a8c, transparent 60%); }
  .ofi-page-head { padding: 56px 0 44px; }
  .ofi-page-head + .ofi-section { padding-top: 64px; }
  .ofi-site .elementor-section.ofi-section.ofi-page-intro { padding-block: 56px 44px; }
  .ofi-article-photo { margin-top: 40px; }
  .ofi-footer-grid { grid-template-columns: 1.2fr 1fr 1fr 1.3fr; gap: 40px; }
  .ofi-footer { padding-top: 64px; }
  /* On wide screens the two lists of links sit closer, so they end near the contact column. */
  .ofi-footer nav li a { min-height: 32px; padding-block: 4px; }
}
@media (min-width: 900px) {
  .ofi-container.ofi-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; }
  /* The questions have no eyebrow. Their heading keeps the room of one, so it shares a line with the heading next to it. */
  .ofi-community .ofi-split > div:last-child > .ofi-section-head:first-child { padding-top: calc(13px * 1.5 + 12px); }
  .ofi-article-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 64px; align-items: start; }
  .ofi-article-head-poster { grid-template-columns: minmax(0, 1fr) 360px; gap: 64px; }
  .ofi-sidebar { margin-top: 0; }
}
@media (max-width: 899px) {
  .ofi-split-reverse > figure { order: -1; }
}
@media (min-width: 768px) {
  /* The link of every group sits at the foot of its column, whatever the length of its list. */
  .ofi-site .ofi-program > .elementor-widget-wrap { flex-direction: column; flex-wrap: nowrap; }
  .ofi-site .ofi-program > .elementor-widget-wrap > .ofi-programme-link { margin-top: auto; }
  .ofi-manifesto { padding: 72px 0; }
  .ofi-podium { padding: 40px 0 72px; }
  .ofi-podium-tiles { gap: 24px 28px; }
}
@media (min-width: 768px) and (max-width: 899px) {
  .ofi-podium-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
  .ofi-site .ofi-podium-band .ofi-podium-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 640px) and (max-width: 899px) {
  .ofi-podium-photo img { aspect-ratio: 16 / 9; }
}
@media (min-width: 900px) {
  .ofi-podium-photo img { aspect-ratio: 5 / 4; }
}
@media (min-width: 960px) {
  .ofi-card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ofi-schedule-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ofi-schedule { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ofi-site .foogallery-album-gallery-list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  :root { --ofi-header: 80px; }
  .ofi-masthead { gap: 24px; }
  .ofi-brand { gap: 14px; }
  .ofi-brand img { width: 78px; }
  .ofi-brand-name strong { font-size: 24px; }
  .ofi-brand-name > span { font-size: 13px; }
  .ofi-call { gap: 10px; padding: 10px 14px; border: 1px solid var(--ofi-ink); font-size: 14px; font-weight: 500; }
  .ofi-site a.ofi-call:hover, .ofi-site a.ofi-call:focus-visible { background: var(--ofi-ink); color: #fff; }
  .ofi-menu-toggle, .ofi-menu-contact { display: none; }
  .ofi-topbar { display: block; }
  .ofi-navigation { display: flex; flex: 1; justify-content: center; position: static; padding: 0; max-height: none; overflow: visible; background: transparent; border: 0; box-shadow: none; }
  .ofi-menu { display: flex; align-items: center; gap: 0; padding: 0 !important; }
  .ofi-menu > li { border: 0; }
  .ofi-menu > li > a { position: relative; min-height: 48px; padding: 10px 9px; font-size: 14px; white-space: nowrap; }
  .ofi-menu > li > a::after { content: ''; position: absolute; left: 9px; right: 9px; bottom: 6px; height: 2px; background: var(--ofi-gold-light); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
  .ofi-menu > li > a:hover::after, .ofi-menu > .current-menu-item > a::after, .ofi-menu > .current-menu-ancestor > a::after, .ofi-menu > .current_page_parent > a::after { transform: scaleX(1); }
  .ofi-menu > li > a:hover, .ofi-menu .current-menu-item > a, .ofi-menu .current-menu-ancestor > a, .ofi-menu .current_page_parent > a { color: var(--ofi-ink); }
  .ofi-menu > .menu-item-has-children > a { padding-right: 28px; }
  .ofi-menu > li > .ofi-submenu-toggle { top: 5px; right: 0; width: 26px; height: 38px; }
  .ofi-menu .sub-menu { position: absolute; z-index: 2; top: 100%; left: 0; width: 240px; padding: 8px 0; background: #fff; color: var(--ofi-ink); border: 1px solid var(--ofi-line); border-top: 2px solid var(--ofi-gold-light); box-shadow: 0 12px 24px #00000014; }
  /* Each row of a dropdown takes the pointer across its full width. */
  .ofi-menu .sub-menu a { padding-inline: 16px 48px; }
  .ofi-menu .sub-menu a:hover, .ofi-menu .sub-menu a:focus-visible { background: var(--ofi-paper); color: var(--ofi-ink); }
  .ofi-menu .sub-menu .ofi-submenu-toggle { right: 8px; }
  /* A nested list opens to the side, so its arrow points there. */
  .ofi-menu .sub-menu .ofi-submenu-toggle svg { transform: rotate(-90deg); }
  .ofi-menu .sub-menu li { position: relative; }
  .ofi-menu .sub-menu .sub-menu { top: -10px; left: 100%; margin-left: 1px; }
  .ofi-menu .sub-menu .menu-item-has-children > a { padding-right: 44px; }
  .ofi-menu li:hover > .sub-menu, .ofi-menu li:focus-within > .sub-menu { display: block; }
  .ofi-menu .sub-menu .current-menu-item > a { color: var(--ofi-gold-text); }
  .ofi-hero { min-height: min(720px, calc(100svh - var(--ofi-header))); }
  .ofi-hero-copy { padding: 96px 0 72px; }
  .ofi-content:has(> #primary.content-area) { display: flow-root; max-width: 1200px; margin-inline: auto; padding-bottom: 50px; }
}
@media (min-width: 1280px) {
  .ofi-masthead { gap: 24px; }
  .ofi-menu > li > a { padding: 10px 10px; }
  .ofi-menu > li > a::after { left: 10px; right: 10px; }
  .ofi-call { padding: 10px 16px; white-space: nowrap; }
  .ofi-call > span { display: inline; }
}
@media (min-width: 1440px) {
  .ofi-masthead { gap: 32px; }
  .ofi-menu > li > a { padding: 10px 12px; font-size: 15px; }
  .ofi-menu > li > a::after { left: 12px; right: 12px; }
}
@media (max-width: 639px) {
}
@media (max-width: 767px) {
  .ofi-site .ofi-section > .elementor-container, .ofi-site .ofi-grid > .elementor-container { flex-direction: column; }
  .ofi-site .ofi-grid > .elementor-container > .elementor-column { width: 100% !important; }
  .ofi-site .ofi-grid .elementor-column + .elementor-column { margin-top: 0; }
  .ofi-site .ofi-team-grid img { max-height: none; aspect-ratio: 4/3; object-position: 50% 20%; }
  .ofi-site .ofi-section { padding-inline: 0; }
  .ofi-site .elementor-section.ofi-section { padding: 48px 20px; }
  .ofi-hero .ofi-actions .ofi-btn, .ofi-empty-page .ofi-actions .ofi-btn { flex: 1 1 100%; }
  /* Main buttons of the page builder span the screen on phones, like the theme's own. */
  .ofi-site .elementor-widget-button:not(.ofi-programme-link) .elementor-button, .ofi-site div.wpforms-container-full .wpforms-form button[type=submit] { width: 100%; }
  .ofi-cta-band { padding: 56px 0; }
  .ofi-section-row > .ofi-btn { width: 100%; }
}
@media (min-width: 768px) {
  /* 20px at the sides, as the theme's containers, so page builder content lines up with the logo. */
  .ofi-site .elementor-section.ofi-section { padding: 80px 20px; }
}
@media (max-width: 360px) {
  .ofi-container { width: calc(100% - 28px); }
  /* The row of days reaches the edges of the screen from the narrower side margin of small phones. */
  .ofi-week { margin-inline: -14px; padding-inline: 14px; scroll-padding-inline: 14px; }
  .ofi-brand { gap: 8px; }
  .ofi-brand img { width: 56px; }
  .ofi-brand-name strong { font-size: 19px; }
  .ofi-brand-name > span { font-size: 11px; }
  .ofi-header-actions { gap: 0; }
  .ofi-hero h1 { font-size: 2.1rem; }
}
/* Galleries put three photographs to a row on wider screens and two on phones. A shorter last row sits
   in the middle, because the thumbnails are too small to be stretched across it. */
@media (min-width: 640px) {
  .ofi-site .ofi-article-body .foogallery.fg-default .fg-item, .ofi-site .ofi-album-open .foogallery.fg-default .fg-item { flex-basis: calc((100% - 16px) / 3); }
}
@media (min-width: 1024px) {
  .ofi-site .ofi-album-open .foogallery.fg-default .fg-item { flex-basis: calc((100% - 24px) / 4); }
}
@media (min-width: 640px) and (max-width: 1099px) {
  .ofi-longread-aside { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 32px; align-items: start; max-width: 880px; }
  .ofi-longread-aside .ofi-figure { grid-row: span 4; }
  .ofi-longread-aside h2 { margin-top: 0; }
}
@media (min-width: 1100px) {
  .ofi-longread { grid-template-columns: minmax(0, 720px) minmax(0, 340px); justify-content: space-between; align-items: start; gap: 64px; }
}
@media (min-width: 1100px) and (min-height: 860px) {
  .ofi-longread-aside { position: sticky; top: calc(var(--ofi-header) + 32px); }
}
@media (max-width: 767px) {
  /* On phones the two lists of links share a row, so the footer is far shorter. Brand and contact keep the full width. */
  .ofi-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
  .ofi-footer-brand, .ofi-footer-contact { grid-column: 1 / -1; }
  .ofi-footer li a { min-height: 44px; }
}
/* Printing is mostly of the weekly programme. Menus, buttons and the dark footer stay off the paper. */
@media print {
  @page { margin: 14mm; }
  .ofi-skip, .ofi-topbar, .ofi-subnav, .ofi-navigation, .ofi-header-actions, .ofi-menu-toggle, .ofi-footer, .ofi-week-days, .ofi-share, .ofi-search, .ofi-post-nav, .ofi-sidebar, .ofi-coach-index,
  .ofi-site .ofi-btn, .ofi-site .elementor-widget-button, .ofi-site .wpforms-container, .ofi-site .ofi-form-note, .ofi-site .ofi-map,
  .ofi-site .sld-top-area, .ofi-site .upvote-section, .ofi-site .ofi-album-years, .ofi-site .ofi-album-nav { display: none !important; }
  /* Jump links of the page heads lead nowhere on paper. The contact details take the width the form leaves. */
  .ofi-site .ofi-page-intro .ofi-text-link { display: none !important; }
  .ofi-site .ofi-contact-layout .elementor-column:has(.wpforms-container) { display: none !important; }
  .ofi-site .ofi-contact-layout > .elementor-container > .elementor-column { width: 100% !important; }
  /* The week starts a page of its own, so the six days print together. */
  #programma { break-before: page; }
  .ofi-header { position: static !important; border: 0 !important; box-shadow: none !important; }
  .ofi-site a { color: inherit !important; text-decoration: none !important; }
  .ofi-site .ofi-section, .ofi-site .elementor-section.ofi-section { padding-block: 14pt !important; }
  .ofi-week { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8pt !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; }
  .ofi-week-day, .ofi-program, .ofi-faq-item, .ofi-card, .ofi-steps li { break-inside: avoid; }
  .ofi-week-day.is-today { border-color: var(--ofi-line); box-shadow: none; }
  .ofi-week-today { display: none; }
  /* Printers leave backgrounds out, so the dark photo bands print as plain text in black. */
  .ofi-hero, .ofi-podium, .ofi-manifesto, .ofi-cta-band, .ofi-site .elementor-section.ofi-podium-band { min-height: 0 !important; padding-block: 14pt !important; background: none !important; color: #000 !important; }
  .ofi-hero::after, .ofi-podium::after, .ofi-manifesto::after, .ofi-cta-band::after, .ofi-hero-media, .ofi-manifesto > img, .ofi-cta-band > img { display: none !important; }
  .ofi-site :is(.ofi-hero, .ofi-podium, .ofi-manifesto, .ofi-cta-band, .ofi-podium-band) :is(h1, h2, h3, p, strong, span, a, li, .elementor-heading-title, .elementor-widget-text-editor) { color: #000 !important; text-shadow: none !important; }
  .ofi-hero-copy { animation: none !important; padding: 0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  .ofi-site *, .ofi-site *::before, .ofi-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
