/* WordPress layer: maps core-block markup onto the approved design (base.css) and adds the pieces the
   static prototype lacked (skip link, motion controls, search results, 404). */

/* ---------- Base additions ---------- */
img{height:auto}
.wp-block-image img{display:block}
.skip-link{position:absolute;inset-inline-start:12px;top:-80px;z-index:1000;background:var(--brand-petrol);color:var(--text-on-dark);padding:12px 18px;font-family:var(--f-ar-head);font-weight:600}
.skip-link:focus{top:12px}
#main:focus{outline:none}
.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.brand-logo{width:48px;height:48px;border-radius:50%;object-fit:cover}
.drawer-brand .brand-logo{width:40px;height:40px}
.lang-btn{display:inline-grid;place-items:center}
.search-btn{text-decoration:none}

/* Palette classes from theme.json (global styles are not loaded on the front end) */
.has-petrol-color{color:#102A35}.has-teal-color{color:#173D46}.has-gold-color{color:#8C7020}.has-ivory-color{color:#F6F3ED}.has-white-color{color:#fff}
.has-petrol-background-color{background-color:#102A35}.has-teal-background-color{background-color:#173D46}.has-gold-background-color{background-color:#D4AF37}.has-ivory-background-color{background-color:#F6F3ED}.has-white-background-color{background-color:#fff}

/* ---------- Buttons (core Button block = .btn) ---------- */
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 32px;font-family:var(--f-ar-head);font-weight:500;font-size:.98rem;line-height:1.4;border-radius:0;white-space:nowrap;text-decoration:none;
  background:var(--gold-metal);color:var(--brand-petrol);transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.wp-block-button__link:hover{background:var(--brand-petrol);color:var(--text-on-dark)}
.is-style-outline .wp-block-button__link{background:transparent;border:1px solid var(--brand-petrol);color:var(--brand-petrol)}
.is-style-outline .wp-block-button__link:hover{background:var(--brand-petrol);color:var(--text-on-dark)}
.is-style-ghost .wp-block-button__link,.page-jump .is-style-outline .wp-block-button__link{background:transparent;border:1px solid rgba(246,243,237,.38);color:var(--text-on-dark)}
.is-style-ghost .wp-block-button__link:hover,.page-jump .is-style-outline .wp-block-button__link:hover{background:var(--brand-ivory);border-color:var(--brand-ivory);color:var(--brand-petrol)}
.is-style-dark .wp-block-button__link{background:var(--brand-petrol);color:var(--text-on-dark)}
.is-style-dark .wp-block-button__link:hover{background:var(--gold-metal);color:var(--brand-petrol)}
.center-cta .wp-block-buttons,.news-foot .wp-block-buttons{justify-content:center}
@media (max-width:480px){.btn,.wp-block-button__link{white-space:normal;text-align:center}}

/* "Read more" links: paragraph with class .more */
p.more{display:block}
p.more a{display:inline-flex;align-items:center;gap:12px;font-family:var(--f-ar-head);font-weight:500;font-size:.95rem;color:var(--brand-petrol);transition:color .2s}
p.more a::after{content:"";width:22px;height:16px;flex:none;background:currentColor;transition:transform .3s var(--ease);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath d='M30 12H3M10 5l-7 7 7 7' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 24'%3E%3Cpath d='M30 12H3M10 5l-7 7 7 7' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
p.more a:hover{color:var(--brand-gold-ink)}
p.more a:hover::after{transform:translateX(-6px)}
html[dir=ltr] p.more a::after{transform:scaleX(-1)}
html[dir=ltr] p.more a:hover::after{transform:scaleX(-1) translateX(-6px)}
.feature p.more{margin-top:10px}
.quote-row p.more{margin-top:18px}
.reviews-intro p.more{margin-top:14px}
.reviews-intro p.more a{font-size:1.05rem}
.profile-links p.more a{color:var(--accent)}

/* Icons added to blocks with a zi-* class */
.zi{display:inline-grid;place-items:center;flex:none}
.feature > .zi{width:62px;height:62px;border-radius:50%;background:var(--brand-petrol);color:var(--brand-gold);transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}
.feature > .zi .i{width:28px;height:28px}
.feature:hover > .zi{background:var(--gold-metal);color:var(--brand-petrol);transform:translateY(-3px)}
.sp-item > .zi{width:54px;height:54px;border-radius:50%;background:var(--brand-petrol);color:var(--brand-gold);transition:background .3s var(--ease),color .3s var(--ease)}
.sp-item > .zi .i{width:24px;height:24px}
.sp-item:hover > .zi{background:var(--gold-metal);color:var(--brand-petrol)}

/* Section headings: the description paragraph keeps its spacing, the label does not */
.head--center p.label{margin-top:0}
.head .title{margin:0}

/* ---------- Home hero ---------- */
.hero::after{content:"";position:absolute;left:50%;bottom:28px;width:1px;height:48px;background:linear-gradient(rgba(212,175,55,.6),transparent);z-index:2}
.hero-bg figure{position:absolute;inset:0;margin:0}
.hero-bg img,.hero-bg video{width:100%;height:100%}
.hero-inner > *{margin:0}
.hero-en{display:block;font-family:var(--f-head);font-style:italic;font-size:clamp(.8rem,1.3vw,1rem);color:var(--brand-gold);margin-top:-14px!important;text-shadow:0 2px 6px rgba(0,0,0,.55),0 0 28px rgba(0,0,0,.45)}
.hero .wp-block-buttons{justify-content:center;margin-top:18px}
.motion-toggle{position:absolute;z-index:3;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(246,243,237,.45);background:rgba(16,42,53,.45);color:var(--text-on-dark);transition:background .2s,border-color .2s}
.motion-toggle:hover{background:var(--brand-petrol);border-color:var(--brand-gold)}
.motion-toggle .i{width:16px;height:16px;fill:currentColor}
.hero-toggle{bottom:24px;inset-inline-end:24px}

/* ---------- Mission + stats ---------- */
.mission-body .wp-block-buttons{justify-self:start}
.stat .stat-num{margin-top:0;font-size:clamp(2.4rem,4vw,3.4rem)}
.stat .stat-note{display:block;margin-top:6px;font-size:.8rem;line-height:1.6;font-family:var(--f-ar-head);font-weight:500;color:var(--brand-gold)}

/* ---------- Partners: gallery blocks become the logo marquee ---------- */
.partners-stat .partners-stat-num{font-family:var(--f-head);font-weight:400;font-size:2.4rem;line-height:1;direction:ltr;
  background:linear-gradient(135deg,#8C6A1D 0%,#D4AF37 35%,#F7E7A1 55%,#B8860B 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.partners-band .partners-stat p:not(.partners-stat-num){font-size:.95rem;color:var(--text-on-dark)}
.marquees{position:relative}
.partners-logos{display:flex;flex-wrap:wrap;justify-content:center;gap:28px;margin:0;padding-block:6px;list-style:none}
.partners-logos.is-running{flex-wrap:nowrap;justify-content:flex-start;width:max-content;animation:mq 110s linear infinite}
.partners-logos.marquee--b.is-running{animation-direction:reverse;animation-duration:115s}
.marquees:hover .partners-logos,.marquees:focus-within .partners-logos,.marquees.is-paused .partners-logos{animation-play-state:paused}
.partners-logos > figure{display:grid;justify-items:center;align-content:start;gap:10px;flex:none;width:150px!important;margin:0;direction:rtl}
.partners-logos > figure img{max-width:none}
.partners-logos img{width:128px;height:128px;padding:9px;border-radius:50%;object-fit:cover;background:var(--brand-white);border:1px solid rgba(246,243,237,.18);
  transition:border-color .3s,box-shadow .3s,transform .35s var(--ease)}
.partners-logos figure:hover img{border-color:var(--brand-gold);box-shadow:0 0 0 6px rgba(212,175,55,.12);transform:translateY(-4px)}
.partners-logos figcaption{font-size:.8rem;color:var(--text-on-dark-2);text-align:center;line-height:1.4;min-height:1.1em;margin:0}
.marquees .motion-toggle{bottom:auto;top:-52px;inset-inline-end:var(--pad-x)}
@media (prefers-reduced-motion:reduce){.partners-logos{animation:none!important}}
@media (max-width:560px){.partners-logos > figure{width:108px!important}.partners-logos img{width:92px;height:92px;padding:7px}.partners-logos{gap:14px}.partners-logos figcaption{font-size:.72rem}}

/* ---------- Testimonials ---------- */
.review::before,.quote-box::before{content:"“";font-family:var(--f-head);font-size:5.2rem;line-height:.75;color:var(--brand-gold);height:48px}
.quote-box::before{font-size:5rem;line-height:.8}
.review .review-text{font-size:1rem;line-height:2;color:var(--text-secondary)}
.review-by{grid-column:1 / -1;display:grid;grid-template-columns:64px 1fr;column-gap:20px;align-items:center}
.review-name strong{display:block;font-family:var(--f-ar-head);font-weight:600;font-size:1.12rem;color:var(--brand-petrol);line-height:1.5}
.review-role{font-size:.85rem;color:var(--muted)}
figure.avatar{overflow:hidden;border-radius:50%}
figure.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.review figure.avatar,.review .avatar--ph{width:64px;height:64px}
.avatar--ph{border-radius:50%}
.avatar--ph > .zi .i{width:24px;height:24px}
.review--cta{row-gap:10px}
.review--cta > p{grid-column:2}
.review-cta-title strong{font-family:var(--f-ar-head);font-weight:600;font-size:1.25rem;color:var(--ink)}
@media (max-width:760px){.review-by{grid-template-columns:52px 1fr;column-gap:14px}.review figure.avatar,.review .avatar--ph{width:52px;height:52px}.review::before{font-size:4rem;height:38px}}

/* ---------- About: founder, charter, sectors ---------- */
.quote-box .quote-text{font-size:1.02rem;line-height:2}
.quote-by figure.avatar{width:52px;height:52px}
.quote-by-name strong{display:block;font-family:var(--f-ar-head);font-weight:600;font-size:1rem;color:var(--ink);line-height:1.3}
.quote-by-role{font-size:.85rem;color:var(--muted)}
.attorney-img{position:relative}
.attorney-img figure{position:absolute;inset:0}
#why{margin-top:0}
.attorney-img img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.attorney-name strong{display:block;font-family:var(--f-ar-head);font-weight:600;font-size:1.15rem;color:var(--ink)}
.attorney-role{font-size:.85rem;color:var(--muted)}
.codex-panels{min-width:0}
.js .codex-panel .codex-tab-label,.js .codex-panel .codex-tab-en{display:none}
html:not(.js) .codex{grid-template-columns:1fr}
.codex-tab{width:100%}
.codex-panel .wp-block-quote p{margin:0}
.sectors-meta .sectors-meta-num{display:block;direction:ltr;font-family:var(--f-head);font-weight:400;font-size:2rem;line-height:1.1;color:var(--accent)}
.sectors-meta p:not(.sectors-meta-num){font-size:.85rem;color:var(--muted)}
.sector > .sector-n{order:-1}
.sector > .zi{width:64px;height:64px;border-radius:50%;border:1px solid var(--brand-gold);color:var(--brand-petrol);transition:background .3s,color .3s}
.sector > .zi .i{width:28px;height:28px;stroke-width:1.4}
.sector:hover > .zi{background:var(--brand-petrol);color:var(--brand-gold);border-color:var(--brand-petrol)}
.sector-count{display:block;font-size:.85rem;color:var(--muted);margin-top:2px}
@media (max-width:560px){.sector > .zi{width:52px;height:52px}.sector > .zi .i{width:24px;height:24px}}

/* ---------- Events (event content blocks inside the shortcode markup) ---------- */
.ev-meta .zi{display:inline-flex}
.ev-meta li{gap:14px}

/* ---------- Services page ---------- */
.svc-thumb .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;transition:transform .8s var(--ease)}
.svc-card:hover .svc-thumb .bg{transform:scale(1.06)}
.svc-body h3 a{color:inherit}
.svc-body h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.svc-body h3 a:focus-visible{outline:none}
.svc-card:hover .svc-body h3 a{color:var(--text-on-dark)}
.svc-step{display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:center;background:var(--brand-white);border:1px solid var(--line);padding:22px 24px;box-shadow:var(--shadow-card)}
.svc-steps .svc-step-n{font-family:var(--f-head);font-weight:400;font-size:1.9rem;line-height:1;color:var(--brand-gold-ink)}
.svc-step h3{font-size:1.05rem;margin:0 0 4px}
.svc-step p{margin:0;font-size:.92rem}
.svc-help .btns{margin-top:24px}

/* ---------- Articles & videos ---------- */
.tabs-wrap{text-align:center;margin-bottom:clamp(32px,4vw,48px)}
.js .zlf-tab-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.zlf-tab-title{margin-bottom:24px}
.zlf-tab-panel[hidden]{display:none}
.news.wp-block-post-template{list-style:none;margin:0;padding:0}
.post .post-media{display:block;overflow:hidden}
.post .post-media img{width:100%;height:100%;object-fit:cover}
.post .wp-block-post-title a{color:inherit}
.news-empty{text-align:center;color:var(--muted);padding:32px 16px;border:1px dashed var(--line);background:var(--brand-white)}
/* Articles / videos pagination (core Query Pagination): same pill language as .chip; the current page is filled. */
.zlf-posts nav > .wp-block-query-pagination{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:8px;margin-top:40px}
.zlf-posts .wp-block-query-pagination a,.zlf-posts .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--brand-white);font-family:var(--f-ar-head);font-weight:500;font-size:.92rem;line-height:1;color:var(--brand-petrol);text-decoration:none;transition:background .2s,border-color .2s,color .2s}
.zlf-posts .wp-block-query-pagination a:hover{border-color:var(--brand-petrol)}
.zlf-posts .page-numbers.current{background:var(--brand-petrol);border-color:var(--brand-petrol);color:var(--text-on-dark)}
.zlf-posts .page-numbers.dots{border-color:transparent;background:none;min-width:0;padding:0 4px}
.zlf-posts .wp-block-query-pagination-numbers{display:flex;flex-wrap:wrap;gap:8px}

/* ---------- Training ---------- */
.course-facts > .course-fact{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}
.course-fact > .zi{color:var(--brand-gold-ink)}
.course-fact > .zi .i{width:18px;height:18px}
.course-fact .fact-dt{flex:0 0 122px;color:var(--muted);font-size:.92rem}
.course-fact .fact-dd{flex:1;margin:0;color:var(--ink);font-family:var(--f-ar-head);font-weight:500}
.course-fact .fact-dd a{color:var(--accent);display:inline-block;direction:ltr;unicode-bidi:isolate}
.cur-stats .cur-stat-num{direction:ltr;font-family:var(--f-head);font-size:2rem;color:var(--brand-gold-ink);line-height:1}
.cur-stats p:not(.cur-stat-num){font-size:.85rem;color:var(--muted)}
.curriculum > .cur-item{display:grid;grid-template-columns:56px 1fr;gap:18px;padding:28px;border-bottom:1px solid var(--line);border-inline-end:1px solid var(--line);transition:background .3s}
.curriculum > .cur-item:hover{background:var(--brand-ivory)}
.curriculum > .cur-item:last-child:nth-child(odd){grid-column:1 / -1}
.curriculum h3{font-size:1.12rem;margin-bottom:8px}
.curriculum p:not(.cur-n){font-size:.95rem;line-height:1.95}
.cur-item{scroll-margin-top:110px}
@media (max-width:560px){.course-facts > .course-fact{flex-wrap:wrap}.course-fact .fact-dd{flex-basis:100%}.curriculum > .cur-item{grid-template-columns:40px 1fr;padding:22px 18px}}

/* ---------- Service pages ---------- */
.sp-sec--flush{padding-top:0}
.sp-visual-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sp-basics .title{margin:0}
.prose h4{margin:30px 0 10px}
.sp-lead img{width:84px;height:84px;border-radius:50%;object-fit:cover}
.sp-lead .more{color:var(--accent)}
.sp-lead .more .i{width:22px;height:22px}
html[dir=ltr] .sp-hero .en{text-align:left}

/* ---------- Forms ---------- */
.form-status.is-ok{border-inline-start-color:#1f7a4a;background:#eef7f1}
.form-status.is-error{border-inline-start-color:#B3261E;background:#fbeeed}
.form-status a{color:var(--accent);text-decoration:underline}
.field textarea[aria-invalid="true"],.field select[aria-invalid="true"]{border-color:#B3261E}
.form [aria-busy="true"]{cursor:progress;opacity:.7}

/* ---------- Map (image instead of CSS background) ---------- */
.map-img{width:100%;height:100%;object-fit:cover}
.map-frame--sm .map-img{inset:auto;left:50%;top:50%;width:auto;height:260%;max-width:none;transform:translate(-50%,-50%)}
.map-frame--sm .map-link:hover .map-img{transform:translate(-50%,-50%) scale(1.04)}
.f-tagline{font-style:italic;color:var(--accent-soft)}

/* ---------- Search results page and 404 ---------- */
.page-search{gap:0}
.page-search input{padding-inline:58px 16px}
.page-search .btn{min-height:62px;flex:none}
.search-results .sr-group{font-size:.85rem;color:var(--muted);font-family:var(--f-ar-head);font-weight:600;margin:28px 0 8px}
.search-list{background:var(--brand-white);border:1px solid var(--line)}
.search-list .gs-item{cursor:default}
.search-list .gs-item a{color:inherit}
.search-list .gs-item:hover{background:rgba(212,175,55,.08)}
.err-hero .page-jump{margin-top:12px}
.err-hero .page-search{margin-top:12px}
@media (max-width:640px){.page-search .btn{min-height:56px;padding:0 18px}}

/* Long words and URLs never widen the page */
.prose,.review-text,.info-row,.f-col,.ev-meta li{overflow-wrap:anywhere}
.curriculum .cur-n{font-family:var(--f-head);font-size:1.9rem;line-height:1;color:var(--brand-gold-ink);margin:0}
html[dir=ltr] .gs-item .go{transform:none} /* the arrow symbol itself is already mirrored in LTR */
