/*
Theme Name:   Kadence Child - Our Ancestors
Theme URI:    https://ourancestors.eu
Description:  Child theme of Kadence for the Our Ancestors genealogy network (ourancestors.eu). Holds all custom styles and helpers so Kadence can be updated safely.
Author:       Our Ancestors
Author URI:   https://ourancestors.eu
Template:     kadence
Version:      0.12.1
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  kadence-child
*/

/* ---------------------------------------------------------------------
   Our Ancestors design tokens
   Palette inspired by the EU flag: Reflex Blue, gold, white and light sky.
   --------------------------------------------------------------------- */
:root {
  --oa-paper: #f3f6fb;        /* light sky */
  --oa-paper-deep: #e6ecf7;
  --oa-ink: #0f1b3d;
  --oa-ink-soft: #4a5572;
  --oa-brass: #ffcc00;        /* EU gold */
  --oa-brass-deep: #7d6300;   /* dark gold: 4.8:1 on the palest backgrounds (AA) */
  --oa-forest: #003399;       /* EU Reflex Blue */
  --oa-forest-deep: #001f5c;
  --oa-radius: 14px;
  --oa-shadow: 0 10px 30px rgba(0, 31, 92, 0.08);
}

/* Homepage information and research guides */
.oa-sample-lead { font-size:1.2rem; line-height:1.65; color:var(--oa-ink); }
.oa-demo-notice { border:1px solid #e5c968; border-left:5px solid #c89c00; padding:1.3rem 1.5rem; border-radius:12px; background:#fff9e6; margin:1.75rem 0; }
.oa-demo-notice p { margin:.6rem 0 0; }
.oa-report-section { margin-top:3rem; }
.oa-report-section > h2 { margin-top:.5rem; }
.oa-report-facts { margin:1.5rem 0; border-top:1px solid #dce4f1; }
.oa-report-facts > div { display:grid; grid-template-columns:180px minmax(0,1fr); gap:1.5rem; padding:1rem 0; border-bottom:1px solid #dce4f1; }
.oa-report-facts dt { font-weight:700; color:var(--oa-forest); }
.oa-report-facts dd { margin:0; }
.oa-report-findings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.oa-report-findings > article,.oa-report-source { padding:1.5rem; background:var(--oa-paper); border:1px solid #dce4f1; border-radius:14px; }
.oa-report-findings h3,.oa-report-source h3 { font-size:1.2rem; margin:1rem 0 .75rem; }
.oa-report-findings p:last-child,.oa-report-source p:last-child { margin-bottom:0; }
.oa-evidence-label { display:inline-block; font-size:.77rem; font-weight:700; padding:.35rem .65rem; border-radius:6px; background:#e0ebe5; color:#244d39; }
.oa-evidence-label--open { background:#fff0c7; color:#725300; }
.oa-report-caption { font-size:.87rem; line-height:1.6; color:var(--oa-ink-soft); margin-top:1rem; }
.oa-record-example { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:1px solid #dce4f1; border-radius:14px; overflow:hidden; margin-bottom:1.5rem; }
.oa-record-example__text,.oa-record-example__reading { padding:1.5rem; min-width:0; }
.oa-record-example__text { background:#f8f5ee; }
.oa-record-example blockquote { margin:1.5rem 0; padding:0 0 0 1rem; border-left:3px solid #b99a4b; font-size:1.1rem; }
.oa-record-example__reading h3 { margin-top:0; font-size:1.2rem; }
.oa-sample-tree { margin:1.5rem 0; padding:1.5rem; border:1px solid #dce4f1; border-radius:14px; background:var(--oa-paper); }
.oa-sample-tree__parents { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.oa-tree-person { display:flex; flex-direction:column; gap:.5rem; padding:1.2rem; background:#fff; border:1px solid #b9cbe8; border-radius:12px; text-align:center; }
.oa-tree-person strong { font-size:1.15rem; color:var(--oa-forest); }
.oa-tree-person span { font-size:.87rem; color:var(--oa-ink-soft); }
.oa-tree-connection { width:50%; height:2rem; margin:auto; border:2px solid #7c98c3; border-top:0; position:relative; }
.oa-tree-connection::after { content:""; position:absolute; left:50%; top:100%; height:1.25rem; border-left:2px solid #7c98c3; }
.oa-tree-person--child { width:min(100%,330px); margin:1.25rem auto 0; border-top:4px solid var(--oa-brass); }
.oa-sample-tree figcaption { text-align:center; font-size:.85rem; color:var(--oa-ink-soft); margin-top:1.5rem; }
.oa-report-source { margin:1rem 0; }
.oa-report-table-wrap { overflow-x:auto; margin:1.5rem 0; }
.oa-report-table { width:100%; border-collapse:collapse; font-size:.9rem; }
.oa-report-table caption { text-align:left; color:var(--oa-ink-soft); padding:0 0 1rem; }
.oa-report-table th,.oa-report-table td { text-align:left; vertical-align:top; border:1px solid #dce4f1; padding:.85rem; }
.oa-report-table th { background:var(--oa-paper-deep); color:var(--oa-forest-deep); }
.oa-operator-card { display:grid; grid-template-columns:100px minmax(0,1fr); gap:1.75rem; padding:2rem; background:var(--oa-paper); border:1px solid #dce4f1; border-radius:16px; margin:2rem 0; }
.oa-operator-monogram { display:grid; place-items:center; width:100px; height:100px; border-radius:50%; color:#fff; background:var(--oa-forest); font-size:2rem; font-weight:700; }
.oa-operator-card h2 { margin:.5rem 0; }
.oa-operator-business { font-weight:600; color:var(--oa-ink-soft); }
.oa-operator-card p:last-child { margin-bottom:0; overflow-wrap:anywhere; }
.oa-proof-links { display:flex; flex-wrap:wrap; gap:.75rem 2rem; margin-top:1.75rem; }
@media (max-width:600px) {
  .oa-report-facts > div,.oa-report-findings,.oa-record-example,.oa-operator-card { grid-template-columns:1fr; }
  .oa-report-facts > div { gap:.4rem; }
  .oa-operator-card { padding:1.5rem; }
  .oa-operator-monogram { width:76px; height:76px; font-size:1.5rem; }
  .oa-sample-tree { padding:1rem; }
  .oa-tree-person { padding:.85rem .6rem; }
  .oa-report-table th,.oa-report-table td { padding:.6rem; overflow-wrap:anywhere; }
}
.oa-home-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1.75rem; padding:1.1rem 1.25rem; background:#fff; }
.oa-home-nav a,.oa-text-link { color:var(--oa-forest); font-weight:650; text-underline-offset:.2em; }
.oa-home-nav a { font-size:.9rem; text-decoration:none; padding:.35rem 0; }
.oa-home-nav a:hover { text-decoration:underline; }
.oa-home-section .oa-home-wrap { max-width:1100px; margin-inline:auto; }
.oa-home-lead { max-width:720px; color:var(--oa-ink-soft); font-size:1.1rem; }
.oa-info-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; margin-top:2rem; }
.oa-info-card { border:1px solid #dce4f1; border-radius:var(--oa-radius); padding:1.75rem; background:#fff; }
.oa-card-number { display:inline-grid; place-items:center; width:2.6rem; height:2.6rem; border-radius:50%; background:var(--oa-paper-deep); color:var(--oa-forest); font-weight:700; margin-bottom:1.25rem; }
.oa-info-card h3 { font-size:1.25rem; margin:0 0 .75rem; }
.oa-info-card p { margin:0; color:var(--oa-ink-soft); }
.oa-home-note { margin-top:2rem; padding:1.5rem 1.75rem; border-left:4px solid var(--oa-brass); background:var(--oa-paper); border-radius:0 12px 12px 0; }
.oa-home-note p { margin:.5rem 0 0; color:var(--oa-ink-soft); }
.oa-section-heading { display:flex; align-items:end; justify-content:space-between; gap:1.5rem; margin-bottom:2rem; }
.oa-section-heading h2 { margin-bottom:0; }
.oa-section-heading > a { flex-shrink:0; }
.oa-guide-feature { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); border:1px solid #dce4f1; border-radius:18px; overflow:hidden; background:#fff; box-shadow:var(--oa-shadow); }
.oa-guide-feature article { padding:clamp(1.5rem,4vw,3rem); border-top:5px solid var(--oa-brass); }
.oa-guide-label { color:var(--oa-forest); font-size:.85rem; font-weight:700; }
.oa-guide-feature h3 { font-size:clamp(1.5rem,3vw,2rem); line-height:1.25; margin:.75rem 0 1rem; }
.oa-guide-feature h3 a { color:var(--oa-ink); text-decoration:none; }
.oa-guide-feature h3 a:hover { color:var(--oa-forest); text-decoration:underline; }
.oa-guide-feature article > p:not(.oa-guide-label) { color:var(--oa-ink-soft); }
.oa-guide-feature aside { padding:2rem; background:var(--oa-paper-deep); display:flex; flex-direction:column; justify-content:center; }
.oa-guide-feature aside > a { display:flex; justify-content:space-between; gap:1rem; padding:1rem 0; border-bottom:1px solid #c7d3e8; color:var(--oa-forest-deep); font-weight:600; text-decoration:none; }
.oa-guide-feature aside > a:hover { text-decoration:underline; }
.oa-faq-wrap { max-width:850px !important; }
.oa-home-faq { padding:1.2rem 0; border-bottom:1px solid #dce4f1; }
.oa-home-faq summary { font-weight:650; cursor:pointer; color:var(--oa-ink); }
.oa-home-faq p { color:var(--oa-ink-soft); margin:.85rem 0 .25rem; }
.oa-guide-intro,.oa-guide-toc,.oa-guide-cta { border-radius:var(--oa-radius); padding:1.5rem 1.75rem; background:var(--oa-paper); margin-bottom:2rem; }
.oa-guide-intro { border-left:4px solid var(--oa-brass); }
.oa-guide-intro p:last-child,.oa-guide-cta p:last-child { margin-bottom:0; }
.oa-guide-toc ol { margin:.75rem 0 0; padding-left:1.25rem; }
.oa-guide-toc li { margin-bottom:.35rem; }
.oa-guide-cta { margin-top:2.5rem; border:1px solid #dce4f1; }
.home .oa-hero-card li { margin-bottom:.9rem; }
.home .oa-hero-card li:last-child { margin-bottom:0; }
@media (max-width:781px) {
  .oa-info-grid,.oa-guide-feature { grid-template-columns:1fr; }
  .oa-section-heading { align-items:start; flex-direction:column; }
  .oa-home-nav { gap:.3rem 1.25rem; }
  .oa-guide-feature aside { padding:1.5rem; }
  .oa-info-card { padding:1.5rem; }
}

/* Anchors (#services, #how-it-works …) land below the sticky header */
html { scroll-padding-top: 96px; }
@media (max-width: 480px) { html { scroll-padding-top: 80px; } }

/* Section helpers ----------------------------------------------------- */
.oa-section,
.entry-content .oa-section.alignfull { padding: clamp(3rem, 7vw, 6rem) clamp(1.25rem, 4vw, 2.5rem); }
.entry-content .oa-trust.alignfull { padding-left: clamp(1.25rem, 4vw, 2.5rem); padding-right: clamp(1.25rem, 4vw, 2.5rem); }
.oa-section--paper { background: var(--oa-paper); }
.oa-section--paper-deep { background: var(--oa-paper-deep); }
.oa-section--forest { background: var(--oa-forest); color: #fff; }
.oa-section--forest h2,
.oa-section--forest h3,
.oa-section--forest p { color: #fff; }

.oa-eyebrow {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--oa-brass-deep);
  margin-bottom: 0.75rem;
}
.oa-section--forest .oa-eyebrow { color: var(--oa-brass); }

/* Hero ---------------------------------------------------------------- */
.oa-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(1200px 500px at 85% -10%, rgba(255, 204, 0, 0.18), transparent 60%),
    linear-gradient(180deg, #0a3fb0 0%, var(--oa-forest-deep) 100%);
  color: #fff;
}
.oa-hero::after {
  /* wreath of twelve stars, very faint, top-right */
  content: "";
  position: absolute;
  right: -8vw;
  top: -10vw;
  width: 60vw;
  height: 60vw;
  max-width: 820px;
  max-height: 820px;
  pointer-events: none;
  opacity: 0.16;
  background-repeat: no-repeat;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='%23ffcc00'><path id='s' d='M200 32l6.9 21.3h22.4l-18.1 13.2 6.9 21.3-18.1-13.2-18.1 13.2 6.9-21.3-18.1-13.2h22.4z'/><use href='%23s' transform='rotate(30 200 200)'/><use href='%23s' transform='rotate(60 200 200)'/><use href='%23s' transform='rotate(90 200 200)'/><use href='%23s' transform='rotate(120 200 200)'/><use href='%23s' transform='rotate(150 200 200)'/><use href='%23s' transform='rotate(180 200 200)'/><use href='%23s' transform='rotate(210 200 200)'/><use href='%23s' transform='rotate(240 200 200)'/><use href='%23s' transform='rotate(270 200 200)'/><use href='%23s' transform='rotate(300 200 200)'/><use href='%23s' transform='rotate(330 200 200)'/></g></svg>");
}
.oa-hero > * { position: relative; z-index: 1; }
.oa-hero h1 {
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: #fff;
}
.oa-hero h1 em { font-style: italic; color: var(--oa-brass); }
.oa-hero p { color: rgba(255, 255, 255, 0.85); font-size: 1.1rem; }

/* Country grid -------------------------------------------------------- */
.oa-countries .wp-block-column {
  position: relative;
  background: #fff;
  border: 1px solid rgba(0, 51, 153, 0.10);
  border-radius: var(--oa-radius);
  padding: 1.25rem 1.25rem 1.1rem;
  box-shadow: var(--oa-shadow);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.oa-countries .wp-block-column:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(0, 31, 92, 0.14);
}
.oa-countries .oa-flag { font-size: 2rem; line-height: 1; display: block; margin-bottom: 0.6rem; }
.oa-countries h3 { font-size: 1.1rem; margin: 0 0 0.25rem; }
.oa-countries p { font-size: 0.95rem; color: var(--oa-ink-soft); margin: 0 0 0.75rem; }
.oa-countries a.oa-link { font-weight: 600; color: var(--oa-forest); text-decoration: none; }
.oa-countries a.oa-link:hover { color: var(--oa-brass-deep); }
/* the whole card is the link target */
.oa-countries a.oa-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.oa-countries .wp-block-column:focus-within { outline: 2px solid var(--oa-forest); outline-offset: 2px; }

/* Services ------------------------------------------------------------ */
.oa-services .wp-block-column {
  background: var(--oa-paper);
  border-radius: var(--oa-radius);
  padding: 1.75rem 1.5rem;
  border-top: 4px solid var(--oa-brass);
}
.oa-services h3 { font-size: 1.2rem; margin-bottom: 0.5rem; }
.oa-services h3 a { color: inherit; text-decoration: none; }
.oa-services h3 a:hover { color: var(--oa-forest); text-decoration: underline; }
.oa-services p { color: var(--oa-ink-soft); }

/* Steps --------------------------------------------------------------- */
.oa-steps { counter-reset: oa-step; }
.oa-steps .wp-block-column { position: relative; padding-top: 3.25rem; }
.oa-steps .wp-block-column::before {
  counter-increment: oa-step;
  content: counter(oa-step, decimal-leading-zero);
  position: absolute;
  top: 0; left: 0;
  font-size: 2rem;
  font-weight: 700;
  color: var(--oa-forest);
  letter-spacing: -0.02em;
}

/* Stats --------------------------------------------------------------- */
.oa-stats .wp-block-column { text-align: center; }
.oa-stats strong {
  display: block;
  font-size: clamp(2rem, 4vw, 2.8rem);
  color: var(--oa-forest);
  line-height: 1;
  margin-bottom: 0.35rem;
}
.oa-stats p { margin: 0; color: var(--oa-ink-soft); }

/* Buttons ------------------------------------------------------------- */
.oa-btn-brass .wp-block-button__link {
  background: var(--oa-brass) !important;
  color: var(--oa-forest-deep) !important;
  border-radius: 999px;
  padding: 0.9rem 1.8rem;
  font-weight: 600;
}
.oa-btn-brass .wp-block-button__link:hover { background: #ffd93d !important; }
.oa-btn-ghost .wp-block-button__link {
  background: transparent !important;
  color: #fff !important;
  border: 1.5px solid rgba(255, 255, 255, 0.55);
  border-radius: 999px;
  padding: 0.9rem 1.8rem;
  font-weight: 600;
}
.oa-btn-ghost .wp-block-button__link:hover { border-color: #fff; }

/* Trust strip --------------------------------------------------------- */
.oa-trust { border-top: 1px solid rgba(0,51,153,0.10); border-bottom: 1px solid rgba(0,51,153,0.10); }
.oa-trust p { margin: 0; font-size: 0.95rem; color: var(--oa-ink-soft); }

@media (max-width: 781px) {
  .oa-steps .wp-block-column { padding-top: 2.75rem; }
  /* four stats as a 2 x 2 grid instead of a tall stack */
  .wp-block-columns.oa-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem 1rem; }
  .oa-stats p { font-size: .9rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}


/* =====================================================================
   HEADER (replaces the Kadence header builder; see template-parts/oa-header.php)
   ===================================================================== */
.oa-skip { position:absolute; left:-999px; top:0; background:var(--oa-forest); color:#fff; padding:.6rem 1rem; z-index:1000; }
.oa-skip:focus { left:1rem; top:1rem; }
html.oa-no-scroll { overflow:hidden; }

.oa-header {
  position: sticky; top: 0; z-index: 900;
  background: rgba(255,255,255,0.86);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid rgba(0,51,153,0.08);
  transition: box-shadow .2s ease, background .2s ease;
}
.oa-header.is-scrolled { box-shadow: 0 8px 30px rgba(0,31,92,0.10); background: rgba(255,255,255,0.94); }
.admin-bar .oa-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .oa-header { top: 46px; } }

.oa-header__inner {
  max-width: 1240px; margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2rem);
  height: 76px;
  display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem);
}

/* brand */
.oa-brand { display:flex; align-items:center; gap:.7rem; text-decoration:none; color:var(--oa-ink); flex-shrink:0; }
.oa-brand__mark { width:40px; height:40px; flex-shrink:0; transition: transform .35s ease; }
.oa-brand:hover .oa-brand__mark { transform: rotate(30deg); }
.oa-brand__text { display:flex; flex-direction:column; line-height:1.1; }
.oa-brand__name { font-weight:700; font-size:1.15rem; letter-spacing:-0.01em; color:var(--oa-forest-deep); }
.oa-brand__tag { font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--oa-ink-soft); margin-top:3px; }

/* nav */
.oa-nav { flex:1; display:none; }
.oa-nav__list { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:.25rem; }
.oa-nav__item { position:relative; }
.oa-nav__link {
  display:inline-flex; align-items:center; gap:.3rem;
  padding:.55rem .85rem; border-radius:10px;
  font-weight:600; font-size:.95rem; color:var(--oa-ink);
  background:none; border:0; cursor:pointer; text-decoration:none; font-family:inherit; white-space:nowrap;
  transition: background .15s ease, color .15s ease;
}
.oa-nav__link:hover, .oa-nav__item.is-open > .oa-nav__link { background: rgba(0,51,153,0.06); color: var(--oa-forest); }
.oa-nav__link .oa-icon--chevron { width:16px; height:16px; transition: transform .2s ease; opacity:.7; }
.oa-nav__item.is-open > .oa-nav__link .oa-icon--chevron { transform: rotate(180deg); }

/* dropdown panel */
.oa-dropdown {
  position:absolute; top:calc(100% + 10px); left:0; min-width:320px;
  background:#fff; border:1px solid rgba(0,51,153,0.10); border-radius:16px;
  box-shadow: 0 24px 60px rgba(0,31,92,0.16), 0 2px 6px rgba(0,31,92,0.06);
  padding:.6rem;
  opacity:0; visibility:hidden; transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
  z-index: 50;
}
.oa-dropdown::before { /* hover bridge so the panel does not close while moving the mouse down */
  content:""; position:absolute; left:0; right:0; top:-12px; height:12px;
}
.has-dropdown.is-open > .oa-dropdown { opacity:1; visibility:visible; transform:none; transition-delay:0s; }
.oa-dropdown--right { left:auto; right:0; }

.oa-dropdown__list { list-style:none; margin:0; padding:0; display:grid; gap:.15rem; }
.oa-dropdown__list a {
  display:flex; gap:.8rem; align-items:flex-start;
  padding:.7rem .8rem; border-radius:11px; text-decoration:none; color:var(--oa-ink);
  transition: background .15s ease;
}
.oa-dropdown__list a:hover { background: var(--oa-paper); }
.oa-dropdown__icon {
  flex-shrink:0; width:38px; height:38px; border-radius:10px;
  display:grid; place-items:center;
  background: rgba(0,51,153,0.07); color: var(--oa-forest);
}
.oa-dropdown__icon .oa-icon { width:20px; height:20px; }
.oa-dropdown__body { display:flex; flex-direction:column; gap:.15rem; }
.oa-dropdown__body strong { font-size:.95rem; font-weight:600; }
.oa-dropdown__body small { font-size:.82rem; color:var(--oa-ink-soft); line-height:1.35; }
.oa-dropdown__all, .oa-mega__all {
  display:flex; align-items:center; gap:.4rem; justify-content:flex-end;
  margin:.4rem .3rem 0; padding:.6rem .5rem .3rem; border-top:1px solid rgba(0,51,153,0.08);
  font-size:.85rem; font-weight:600; color:var(--oa-forest); text-decoration:none;
}
.oa-dropdown__all .oa-icon, .oa-mega__all .oa-icon { width:16px; height:16px; transition: transform .15s ease; }
.oa-dropdown__all:hover .oa-icon, .oa-mega__all:hover .oa-icon { transform: translateX(3px); }

/* mega menu (countries) */
.oa-nav__item--mega { position: static; }
.oa-nav__item--mega > .oa-dropdown { left:50%; transform: translate(-50%, 8px); width:min(920px, calc(100vw - 2rem)); padding:1rem; }
.oa-nav__item--mega.is-open > .oa-dropdown { transform: translate(-50%, 0); }
.oa-mega__head { display:flex; flex-direction:column; gap:.15rem; padding:.3rem .6rem .8rem; }
.oa-mega__head strong { font-size:1rem; color:var(--oa-forest-deep); }
.oa-mega__head span { font-size:.85rem; color:var(--oa-ink-soft); }
.oa-mega__grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns: repeat(4, 1fr); gap:.25rem; }
.oa-mega__grid a {
  display:flex; gap:.7rem; align-items:flex-start; padding:.7rem .7rem; border-radius:11px;
  text-decoration:none; color:var(--oa-ink); transition: background .15s ease;
}
.oa-mega__grid a:hover { background: var(--oa-paper); }
.oa-mega__grid li.is-current a { background: rgba(255,204,0,0.18); }
.oa-mega__flag { font-size:1.5rem; line-height:1; margin-top:2px; }
.oa-mega__body { display:flex; flex-direction:column; gap:.15rem; }
.oa-mega__body strong { font-size:.92rem; font-weight:600; }
.oa-mega__body strong em { font-style:normal; font-weight:400; color:var(--oa-ink-soft); font-size:.82rem; margin-left:.25rem; }
.oa-mega__body small { font-size:.78rem; color:var(--oa-ink-soft); line-height:1.35; }

/* actions */
.oa-header__actions { margin-left:auto; display:flex; align-items:center; gap:.6rem; }
.oa-lang { position:relative; display:none; }
.oa-lang__btn {
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.5rem .7rem; border-radius:10px; border:1px solid rgba(0,51,153,0.14);
  background:#fff; color:var(--oa-ink); font-weight:600; font-size:.85rem; cursor:pointer; font-family:inherit;
}
.oa-lang__btn:hover, .oa-lang.is-open .oa-lang__btn { border-color: var(--oa-forest); color: var(--oa-forest); }
.oa-lang__btn .oa-icon--chevron { width:14px; height:14px; opacity:.7; }
.oa-lang__list { list-style:none; margin:0; padding:0; min-width:230px; }
.oa-lang__list a { display:flex; align-items:center; gap:.5rem; padding:.55rem .7rem; border-radius:9px; text-decoration:none; color:var(--oa-ink); font-size:.9rem; }
.oa-lang__list a em { font-style:normal; color:var(--oa-ink-soft); font-size:.78rem; margin-left:auto; }
.oa-lang__list a:hover { background: var(--oa-paper); }
.oa-lang__list li.is-current a { background: rgba(255,204,0,0.18); font-weight:600; }

.oa-cta {
  display:none; align-items:center; justify-content:center;
  padding:.65rem 1.15rem; border-radius:999px;
  background: var(--oa-brass); color: var(--oa-forest-deep) !important;
  font-weight:700; font-size:.9rem; text-decoration:none; white-space:nowrap;
  box-shadow: 0 6px 18px rgba(255,204,0,0.35);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.oa-cta:hover { background:#ffd93d; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(255,204,0,0.45); }
.oa-cta--block { display:flex; width:100%; padding:.9rem 1.2rem; font-size:1rem; }

.oa-burger {
  display:inline-grid; place-items:center; width:44px; height:44px; border-radius:11px;
  border:1px solid rgba(0,51,153,0.14); background:#fff; color:var(--oa-forest-deep); cursor:pointer;
}
.oa-burger .oa-icon { grid-area: 1 / 1; width:22px; height:22px; transition: opacity .15s ease, transform .2s ease; }
.oa-burger .oa-icon--close { opacity:0; transform: rotate(-45deg); }
.oa-burger[aria-expanded="true"] .oa-icon--menu { opacity:0; transform: rotate(45deg); }
.oa-burger[aria-expanded="true"] .oa-icon--close { opacity:1; transform:none; }

/* mobile panel */
.oa-header { isolation: isolate; }
.oa-mobile {
  /* absolute inside the sticky header: backdrop-filter on the header would
     turn position:fixed into a header-relative box, so avoid fixed here */
  position:absolute; left:0; right:0; top:100%;
  max-height: calc(100vh - 76px); overflow:auto;
  background:#fff; padding:1rem clamp(1rem,4vw,2rem) 2rem;
  border-top:1px solid rgba(0,51,153,0.08);
  box-shadow: 0 24px 40px rgba(0,31,92,0.18);
  animation: oa-slide .22s ease;
  z-index: 60;
}
@keyframes oa-slide { from { opacity:0; transform: translateY(-6px); } to { opacity:1; transform:none; } }
.oa-mobile__list { list-style:none; margin:0; padding:0; }
.oa-mobile__list > li { border-bottom:1px solid rgba(0,51,153,0.08); }
.oa-mobile__link, .oa-mobile__toggle {
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:1rem 0; font-size:1.05rem; font-weight:600; color:var(--oa-ink); text-decoration:none;
  background:none; border:0; cursor:pointer; font-family:inherit; text-align:left;
}
.oa-mobile__toggle .oa-icon { width:20px; height:20px; transition: transform .2s ease; opacity:.7; }
.oa-mobile__toggle[aria-expanded="true"] .oa-icon { transform: rotate(180deg); }
.oa-mobile__sub { list-style:none; margin:0; padding:0 0 .75rem; }
.oa-mobile__sub a { display:block; padding:.6rem 0 .6rem 1rem; color:var(--oa-ink-soft); text-decoration:none; font-size:.98rem; }
.oa-mobile__sub a:hover { color: var(--oa-forest); }
.oa-mobile__footer { padding-top:1.25rem; display:grid; gap:1rem; }
.oa-mobile__language { margin:.25rem 0 0; font-size:.85rem; color:var(--oa-ink-soft); }
.oa-mobile__langs { display:flex; flex-wrap:wrap; gap:.4rem; }
.oa-mobile__langs a { padding:.4rem .65rem; border-radius:999px; border:1px solid rgba(0,51,153,0.14); font-size:.82rem; font-weight:600; text-decoration:none; color:var(--oa-ink); }
.oa-mobile__langs a.is-current { background: var(--oa-brass); border-color: var(--oa-brass); color: var(--oa-forest-deep); }

/* Kadence styles every <button>; keep our nav buttons neutral in all states */
.oa-header button.oa-nav__link, .oa-header button.oa-nav__link:hover, .oa-header button.oa-nav__link:focus,
.oa-header button.oa-mobile__toggle, .oa-header button.oa-mobile__toggle:hover, .oa-header button.oa-mobile__toggle:focus, .oa-header button.oa-mobile__toggle[aria-expanded="true"],
.oa-header button.oa-lang__btn:focus, .oa-header button.oa-burger:focus {
  box-shadow:none; outline:none; color:var(--oa-ink);
}
.oa-header button.oa-mobile__toggle, .oa-header button.oa-mobile__toggle:hover, .oa-header button.oa-mobile__toggle:focus, .oa-header button.oa-mobile__toggle[aria-expanded="true"] { background:none; }
.oa-header button.oa-mobile__toggle[aria-expanded="true"] { color: var(--oa-forest); }
.oa-header button.oa-nav__link:hover, .oa-header .oa-nav__item.is-open > button.oa-nav__link { background: rgba(0,51,153,0.06); color: var(--oa-forest); }
.oa-header button:focus-visible { outline: 2px solid var(--oa-forest); outline-offset: 2px; }

/* breakpoints */
@media (min-width: 1024px) {
  .oa-nav { display:block; }
  .oa-lang { display:block; }
  .oa-cta { display:inline-flex; }
  .oa-burger { display:none; }
  .oa-mobile { display:none !important; }
}
@media (max-width: 1180px) and (min-width: 1024px) {
  .oa-brand__tag { display:none; }
  .oa-nav__link { padding:.55rem .6rem; font-size:.9rem; }
}
@media (max-width: 480px) {
  .oa-header__inner { height:64px; }
  .oa-mobile { max-height: calc(100vh - 64px); }
  .oa-brand__mark { width:34px; height:34px; }
  .oa-brand__name { font-size:1.02rem; }
  .oa-brand__tag { display:none; }
}

/* hide any padding Kadence adds for its own (now removed) header */
.oa-has-custom-header #wrapper > .site-header { display:none; }

/* =====================================================================
   PAGE BAND (title strip on inner pages)
   ===================================================================== */
.oa-band {
  background:
    radial-gradient(900px 300px at 90% -20%, rgba(255,204,0,0.18), transparent 60%),
    linear-gradient(180deg, #0a3fb0 0%, var(--oa-forest-deep) 100%);
  color:#fff; padding: clamp(2.5rem, 6vw, 4.5rem) 1.5rem;
}
.oa-band__inner { max-width: 1100px; margin: 0 auto; }
.oa-band__eyebrow { margin:0 0 .6rem; font-size:.78rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--oa-brass); }
.oa-band__eyebrow a { color: inherit; text-decoration:none; }
.oa-band__eyebrow a:hover { text-decoration: underline; }
.oa-band__title { margin:0; color:#fff; font-size: clamp(2rem, 4.5vw, 3rem); line-height:1.1; letter-spacing:-0.01em; }
.oa-band__sub { margin:.9rem 0 0; max-width: 60ch; color: rgba(255,255,255,0.85); font-size:1.05rem; }

/* inner page content rhythm: content column starts where the band title starts */
.oa-inner .content-container.site-container { max-width: calc(1100px + 3rem); padding-left: 1.5rem; padding-right: 1.5rem; }
.page.oa-inner .entry-content, .single .entry-content { max-width: 860px; }
.oa-section--paper .oa-eyebrow, .oa-section--paper-deep .oa-eyebrow { color: var(--oa-brass-deep); }
.page.oa-inner .content-area, .single .content-area, .blog .content-area, .archive .content-area, .search .content-area, .error404 .content-area {
  padding-top: clamp(2rem, 5vw, 3.5rem);
}
.page.oa-inner .entry-content > h2, .single .entry-content > h2 { margin-top: 2.2rem; }
.page.oa-inner .entry-content > h2:first-child { margin-top: 0; }

/* =====================================================================
   CONTACT FORM
   ===================================================================== */
.oa-form-wrap { max-width: 720px; }
.oa-form { display:grid; gap:1.1rem; background:#fff; border:1px solid rgba(0,51,153,0.10); border-radius:18px; padding: clamp(1.25rem, 3vw, 2rem); box-shadow: var(--oa-shadow); }
.oa-form__row { display:grid; gap:1.1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .oa-form__row { grid-template-columns: 1fr 1fr; } }
.oa-form__field { display:grid; gap:.4rem; }
.oa-form__field > span { font-size:.85rem; font-weight:600; color:var(--oa-ink); }
.oa-form input[type="text"], .oa-form input[type="email"], .oa-form select, .oa-form textarea {
  width:100%; border:1px solid rgba(0,51,153,0.18); border-radius:11px; padding:.75rem .9rem; font:inherit; color:var(--oa-ink); background:#fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.oa-form input:focus, .oa-form select:focus, .oa-form textarea:focus { outline:none; border-color: var(--oa-forest); box-shadow: 0 0 0 3px rgba(0,51,153,0.14); }
.oa-form textarea { resize: vertical; min-height: 160px; }
.oa-form__consent { display:flex; gap:.6rem; align-items:flex-start; font-size:.88rem; color:var(--oa-ink-soft); }
.oa-form__consent input { margin-top:.2rem; accent-color: var(--oa-forest); }
.oa-form__submit {
  justify-self:start; border:0; cursor:pointer; border-radius:999px; padding:.9rem 1.6rem; font:inherit; font-weight:700;
  background: var(--oa-brass); color: var(--oa-forest-deep); box-shadow: 0 6px 18px rgba(255,204,0,0.35);
  transition: transform .15s ease, box-shadow .15s ease;
}
.oa-form__submit:hover { background:#ffd93d; transform: translateY(-1px); }
.oa-form__alt { margin:0; font-size:.88rem; color:var(--oa-ink-soft); }
.oa-form__hp { position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.oa-form__notice { border-radius:12px; padding:1rem 1.1rem; margin-bottom:1.2rem; font-size:.95rem; }
.oa-form__notice--ok { background: rgba(0,51,153,0.07); border:1px solid rgba(0,51,153,0.18); color: var(--oa-forest-deep); }
.oa-form__notice--err { background: #fff4e5; border:1px solid #f0c48a; color:#7a4a00; }

/* =====================================================================
   FOOTER (replaces the Kadence footer builder; see template-parts/oa-footer.php)
   ===================================================================== */
.oa-footer { position:relative; overflow:hidden; background: var(--oa-forest-deep); color: rgba(255,255,255,0.82); }
.oa-footer::before {
  content:""; position:absolute; right:-10vw; bottom:-28vw; width:60vw; height:60vw; max-width:760px; max-height:760px; opacity:.08; pointer-events:none;
  background-repeat:no-repeat; background-size:contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='%23ffcc00'><path id='s' d='M200 32l6.9 21.3h22.4l-18.1 13.2 6.9 21.3-18.1-13.2-18.1 13.2 6.9-21.3-18.1-13.2h22.4z'/><use href='%23s' transform='rotate(30 200 200)'/><use href='%23s' transform='rotate(60 200 200)'/><use href='%23s' transform='rotate(90 200 200)'/><use href='%23s' transform='rotate(120 200 200)'/><use href='%23s' transform='rotate(150 200 200)'/><use href='%23s' transform='rotate(180 200 200)'/><use href='%23s' transform='rotate(210 200 200)'/><use href='%23s' transform='rotate(240 200 200)'/><use href='%23s' transform='rotate(270 200 200)'/><use href='%23s' transform='rotate(300 200 200)'/><use href='%23s' transform='rotate(330 200 200)'/></g></svg>");
}
.oa-footer__inner {
  position:relative; max-width:1240px; margin:0 auto; padding: clamp(3rem, 6vw, 4.5rem) clamp(1rem, 3vw, 2rem) 2.5rem;
  display:grid; gap:2.5rem; grid-template-columns: 1fr;
}
@media (min-width: 720px) { .oa-footer__inner { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .oa-footer__inner { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap:3rem; } }
.oa-footer__brand p { margin: 1rem 0 .9rem; max-width: 36ch; font-size:.95rem; line-height:1.55; }
.oa-brand--footer .oa-brand__name { color:#fff; }
.oa-brand--footer .oa-brand__tag { color: rgba(255,255,255,0.6); }
.oa-brand--footer .oa-brand__mark circle { fill:#fff; }
.oa-brand--footer .oa-brand__mark g { fill: var(--oa-forest); }
.oa-footer__mail { color: var(--oa-brass); font-weight:600; text-decoration:none; }
.oa-footer__mail:hover { text-decoration: underline; }
.oa-footer__col .oa-footer__title { font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:#fff; margin:0 0 1rem; font-weight:700; }
.oa-footer__col ul { list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.oa-footer__col a { color: rgba(255,255,255,0.82); text-decoration:none; font-size:.95rem; transition: color .15s ease; }
.oa-footer__col a:hover { color: var(--oa-brass); }
.oa-footer__countries { grid-template-columns: 1fr 1fr; }
.oa-footer__countries li.is-current a { color: var(--oa-brass); font-weight:600; }
.oa-footer__bottom { position:relative; border-top:1px solid rgba(255,255,255,0.12); }
.oa-footer__bottom-inner { max-width:1240px; margin:0 auto; padding: 1.1rem clamp(1rem, 3vw, 2rem); display:flex; flex-wrap:wrap; gap:.8rem 1.5rem; align-items:center; justify-content:space-between; }
.oa-footer__bottom p { margin:0; font-size:.85rem; color: rgba(255,255,255,0.6); }
.oa-footer__langs { display:flex; flex-wrap:wrap; gap:.3rem; }
.oa-footer__langs a { padding:.25rem .55rem; border-radius:999px; font-size:.75rem; font-weight:600; letter-spacing:.04em; color: rgba(255,255,255,0.7); text-decoration:none; border:1px solid rgba(255,255,255,0.14); }
.oa-footer__langs a:hover { color:#fff; border-color: rgba(255,255,255,0.4); }
.oa-footer__langs a.is-current { background: var(--oa-brass); border-color: var(--oa-brass); color: var(--oa-forest-deep); }

/* =====================================================================
   FAQ accordion (core Details block)
   ===================================================================== */
.entry-content .wp-block-details { border:1px solid rgba(0,51,153,0.12); border-radius:12px; padding:0; margin:0 0 .6rem; background:#fff; overflow:hidden; }
.entry-content .wp-block-details summary { cursor:pointer; list-style:none; padding:.95rem 3rem .95rem 1.1rem; font-weight:600; color:var(--oa-ink); position:relative; transition: background .15s ease; }
.entry-content .wp-block-details summary::-webkit-details-marker { display:none; }
.entry-content .wp-block-details summary::after { content:""; position:absolute; right:1.1rem; top:50%; width:10px; height:10px; border-right:2px solid var(--oa-forest); border-bottom:2px solid var(--oa-forest); transform: translateY(-70%) rotate(45deg); transition: transform .2s ease; }
.entry-content .wp-block-details[open] summary { background: var(--oa-paper); color: var(--oa-forest-deep); }
.entry-content .wp-block-details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
.entry-content .wp-block-details summary:hover { background: var(--oa-paper); }
.entry-content .wp-block-details > *:not(summary) { padding: .2rem 1.1rem 1rem; margin:0; color:var(--oa-ink-soft); }
.entry-content h2 + .wp-block-details { margin-top: .9rem; }

/* Forminator: align the form with the site's look */
.forminator-ui.forminator-custom-form .forminator-button-submit { border-radius:999px !important; font-weight:700 !important; }

/* Contact page layout */
.oa-contact-cols { gap: 2.5rem; }
.oa-aside-card { background: var(--oa-paper); border:1px solid rgba(0,51,153,0.10); border-radius:16px; padding:1.5rem 1.6rem; position:sticky; top:100px; }
.oa-aside-card h3 { font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--oa-forest-deep); margin:1.2rem 0 .5rem; }
.oa-aside-card h3:first-child { margin-top:0; }
.oa-aside-card p, .oa-aside-card li { color: var(--oa-ink-soft); font-size:.95rem; }
.oa-aside-card ol { padding-left:1.2rem; }
.oa-aside-card a { color: var(--oa-forest); text-decoration:none; }
.oa-aside-card a:hover { text-decoration: underline; }
.page.oa-inner .entry-content:has(.oa-contact-cols) { max-width: 1100px; }
/* Forminator inputs */
.forminator-ui.forminator-custom-form .forminator-input, .forminator-ui.forminator-custom-form .forminator-textarea { border-radius:11px !important; border-color: rgba(0,51,153,0.18) !important; }
.forminator-ui.forminator-custom-form .forminator-input:focus, .forminator-ui.forminator-custom-form .forminator-textarea:focus { border-color: var(--oa-forest) !important; box-shadow: 0 0 0 3px rgba(0,51,153,0.14) !important; }
.forminator-ui.forminator-custom-form .forminator-button-submit { background: var(--oa-brass) !important; color: var(--oa-forest-deep) !important; padding: .9rem 1.6rem !important; }
.forminator-ui.forminator-custom-form .forminator-button-submit:hover { background:#ffd93d !important; }

/* Country home: archive list */
.oa-archives { list-style:none; padding:0; margin:1.5rem 0 0; display:grid; gap:.6rem; }
.oa-archives li { background:#fff; border:1px solid rgba(0,51,153,0.10); border-radius:12px; padding:.95rem 1.1rem; color:var(--oa-ink-soft); line-height:1.5; }
.oa-archives li strong { display:block; color:var(--oa-ink); margin-bottom:.15rem; }

/* Services hub: cards linking to each service page */
.oa-svc-cards { gap: 1.25rem; margin-top: 1.5rem; }
.oa-svc-cards .wp-block-column { position: relative; background: var(--oa-paper); border-radius: var(--oa-radius); padding: 1.6rem 1.5rem; border-top: 4px solid var(--oa-brass); transition: transform .18s ease, box-shadow .18s ease; }
.oa-svc-cards .wp-block-column:hover { transform: translateY(-3px); box-shadow: var(--oa-shadow); }
.oa-svc-cards h2, .page.oa-inner .entry-content .oa-svc-cards h2 { font-size: 1.2rem; margin: 0 0 .5rem; }
.oa-svc-cards h2 a { color: var(--oa-ink); text-decoration: none; }
.oa-svc-cards h2 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.oa-svc-cards p { color: var(--oa-ink-soft); margin: 0 0 .8rem; }
.oa-svc-cards .oa-more { font-weight: 600; color: var(--oa-forest); margin: 0; }
.oa-svc-cards .wp-block-column:focus-within { outline: 2px solid var(--oa-forest); outline-offset: 2px; }
@media (min-width: 782px) { .oa-svc-cards { display: grid !important; grid-template-columns: 1fr 1fr; } }

/* Service pages: related links box */
.oa-related { background: var(--oa-paper); border: 1px solid rgba(0,51,153,0.10); border-radius: 16px; padding: 1.4rem 1.6rem; margin-top: 2.5rem; }
.page.oa-inner .entry-content .oa-related h2 { margin-top: 0; font-size: 1.1rem; }
.oa-related ul { margin: 0; padding-left: 1.1rem; }
.oa-related li { margin: .3rem 0; }
.oa-related a { color: var(--oa-forest); }

/* Guide library: two topics per row, one column on smaller screens. */
.oa-guides-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; margin:1.5rem 0 2rem; }
.oa-guides-grid .oa-info-card { display:flex; flex-direction:column; align-items:flex-start; gap:1rem; }
.oa-guides-grid .oa-info-card h3 { margin:0; }
.oa-guides-grid .oa-info-card > a { margin-top:auto; }
.oa-guide-country-list { display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; list-style:none; padding:0; margin:1.5rem 0; }
@media (max-width:781px) { .oa-guides-grid { grid-template-columns:1fr; } }
