/*
 * WordPress adapters for the original stylesheet (site.css, unchanged).
 * - Elements that were <div onclick> are now real links: reset link styling.
 * - Inline styles from the original HTML that templates now produce are expressed as classes here.
 * - Core block wrappers are neutralised so block content lays out like the original markup.
 */

/* ── Animations only hide content when JavaScript runs (content is always readable without JS) ── */
html.no-js .fade-in,
html.no-js .fade-in.slide-from-left,
html.no-js .fade-in.slide-from-right { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .fade-in, .fade-in.slide-from-left, .fade-in.slide-from-right { opacity: 1 !important; transform: none !important; transition: none !important; }
  .hero-slide { transition: none !important; }
}

/* ── Header: every menu label stays on one line (the original wrapped "Our Firm", "Global Presence" etc. at ~1366–1536px) ── */
#desktop-nav > a, #desktop-nav > .nav-dropdown > a, .nav-logo-text span { white-space: nowrap; }
header .nav-logo { flex-shrink: 0; }
/* Up to 1536px use the compact logo size the original used below 1280px, so the one-line name fits next to the menu. */
@media (min-width: 1281px) and (max-width: 1536px) {
  .nav-logo-img { width: 40px; height: 40px; }
  .nav-logo-text span:first-child { font-size: 0.82rem; letter-spacing: 0.06em; }
  .nav-logo-text .firm-partners { font-size: 0.56rem; letter-spacing: 0.12em; }
}
@media (min-width: 1281px) and (max-width: 1440px) {
  #desktop-nav > a, #desktop-nav > .nav-dropdown > a { padding: 0.5rem 0.5rem; letter-spacing: 0.07em; }
}
@media (min-width: 1101px) and (max-width: 1280px) {
  #desktop-nav > a, #desktop-nav > .nav-dropdown > a { padding: 0.5rem 0.35rem; letter-spacing: 0.05em; }
  .nav-logo-text span:first-child { font-size: 0.7rem; letter-spacing: 0.04em; }
  body.lang-el #desktop-nav > a, body.lang-el #desktop-nav > .nav-dropdown > a { padding: 0.5rem 0.3rem; font-size: 0.56rem; letter-spacing: 0.02em; }
  body.lang-el .nav-logo-text span:first-child { font-size: 0.7rem; letter-spacing: 0.04em; }
}

/* ── Images: WordPress writes width/height on <img>; let the original CSS (aspect-ratio, object-fit) decide the shape ── */
:where(img[height]) { height: auto; }

/* ── Image boxes: WordPress wraps images in <figure>; let the figure fill the box so the photo covers it (no empty band) ── */
/* The group's inner wrapper is display:contents, so the figure is a flex item of the box and can fill its (min-)height. */
.entry-content .img-box { display: flex; flex-direction: column; }
.entry-content .img-box .wp-block-image { flex: 1 1 auto; min-height: 0; }
.entry-content .img-box .wp-block-image img { height: 100%; }

/* ── Phones: the desktop spacing (5–10rem between blocks) leaves large black bands on a small screen; scale it down ── */
@media (max-width: 768px) {
  .entry-content .apo-s-55365f4 { min-height: 0 !important; } /* Our Firm photo: show it at its own height on phones */
  .entry-content .apo-s-04a5805 { margin-bottom: 3.5rem !important; }
  .entry-content .apo-s-17688f5 { margin-bottom: 3rem !important; }
  .entry-content .apo-s-1f6757e { padding-top: 6rem !important; }
  .entry-content .apo-s-1ff4dc4 { margin-bottom: 2.5rem !important; }
  .entry-content .apo-s-2941431 { margin-top: 3rem !important; }
  .entry-content .apo-s-37b7ec5 { margin-bottom: 3rem !important; padding-bottom: 2rem !important; }
  .entry-content .apo-s-9862a74 { margin-top: 3rem !important; padding-top: 2.5rem !important; }
  .entry-content .apo-s-cb3099d { padding-top: 3rem !important; }
  .entry-content .apo-s-e08d261 { padding-top: 2.5rem !important; margin-top: 2.5rem !important; }
  .careers-section { padding: 3.5rem 0; }
  .location-wrap { margin-bottom: 4rem; }
  .location-wrap:last-child { margin-bottom: 0; }
  .svc-detail { padding-bottom: 3.5rem; }
}

/* ── Profile text: keep the gap between paragraphs ── */
.associate-modal-desc p + p { margin-top: 0.9em; }

/* ── Accessibility ── */
.skip-link { position: absolute; top: 1rem; inset-inline-start: 1rem; z-index: 1000; background: var(--white); color: var(--black); padding: 0.75rem 1.25rem; font-size: 0.85rem; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }
.skip-link:focus { clip-path: none; width: auto; height: auto; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid var(--white); outline-offset: 3px; }

/* ── Former <div onclick> elements, now links ── */
a.nav-logo, a.service-item, a.people-card, a.blog-preview-card, a.careers-job-row, a.svc-back, a.article-back { color: inherit; text-decoration: none; }
a.people-card, a.blog-preview-card { display: block; }
a.blog-preview-card { display: grid; }
a.blog-preview-card--text { grid-template-columns: 1fr; }
@media (max-width: 900px) { a.blog-preview-card { display: flex; } }
a.careers-job-row { display: grid; }
@media (max-width: 768px) { a.careers-job-row { grid-template-columns: 1fr; } }
a.svc-back, a.article-back { display: flex; width: fit-content; align-items: center; gap: 0.5rem; }
.nav-logo-text { color: var(--white); }

/* ── Header ── */
nav > .nav-dropdown > a.nav-dropdown-toggle { display: flex; align-items: center; gap: 3px; }
nav > span, nav > .nav-dropdown > span { font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.75); font-weight: 500; padding: 0.5rem 1rem; }
.drop-menu a { display: block; }
/* The Services dropdown opens centred under its button. */
.drop-menu { left: 50%; right: auto; transform: translateX(-50%); }
[dir="rtl"] .drop-menu { left: 50%; right: auto; }
.nav-dropdown:focus-within .drop-menu { opacity: 1; visibility: visible; pointer-events: auto; }
a.lang-opt { display: inline-block; text-decoration: none; }
nav a[aria-current="page"] { color: var(--white); }

/* ── Mobile menu: groups expand without JavaScript ── */
.mobile-nav-group > summary { list-style: none; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
.mobile-nav-group > summary::-webkit-details-marker { display: none; }
.mobile-nav-group > summary svg { transition: transform 0.2s; opacity: 0.6; }
.mobile-nav-group[open] > summary svg { transform: rotate(180deg); }
.mobile-nav-sublabel { font-size: 0.55rem; letter-spacing: 0.25em; text-transform: uppercase; color: var(--w60); padding: 1.1rem 2rem 0.4rem; }
.mobile-nav-overview { font-weight: 500; }
.mobile-nav-cta { text-decoration: none; text-align: center; }
.mobile-nav-body { display: flex; flex-direction: column; }
body.apo-menu-open { overflow: hidden; }

/* ── Page wrappers ── */
.page.active { min-height: 0; }
.apo-page-top { padding-top: 10rem; }
.apo-title-xl { font-size: clamp(2.5rem, 5vw, 5rem); }
.svc-body > h1.section-title { font-size: clamp(2rem, 4vw, 3.5rem); }
@media (max-width: 768px) {
  .page > section:first-child,
  .page > .entry-content > section:first-child:not(.hero):not(.careers-hero):not(.svc-detail),
  .page > .entry-content > .wp-block-group:first-child:not(.hero):not(.careers-hero):not(.svc-detail),
  .apo-page-top { padding-top: 5.5rem !important; }
}

/* ── Core blocks behave like the original plain markup ── */
.entry-content .wp-block-group__inner-container { display: contents; }
.entry-content figure, .entry-content .wp-block-image { margin: 0; }
.entry-content .wp-block-image img { display: block; }
.entry-content .img-box img, .entry-content .wp-block-image.img-box img { width: 100%; height: 100%; object-fit: cover; }
.entry-content p:empty { display: none; }
.article-body > * + * { margin-top: 0; }

/* ── Stats rows adapt to the number of items (e.g. after removing one) ── */
@media (min-width: 1025px) { .stats-bar { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); } }

/* ── Home slideshow (was inline styles) ── */
.hero { position: relative; overflow: hidden; }
.hero-slide { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity 1.5s ease-in-out; z-index: 0; }
.hero-slide.is-active { opacity: 1; }
.hero-city-label { position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%); z-index: 10; pointer-events: none; text-align: center; transition: opacity 0.8s ease-in-out; }
.hero-city-label span { font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(0.9rem, 1.8vw, 1.3rem); font-weight: 300; letter-spacing: 0.35em; text-transform: uppercase; color: rgba(255,255,255,0.7); }
.hero-ctas a { text-decoration: none; }

/* ── Offices ── */
.location-addr-link { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; opacity: 0.75; transition: opacity 0.2s; }
.location-addr-link:hover { opacity: 1; }
.location-city a { color: inherit; text-decoration: none; }
.location-content .cta-btn { margin-top: 2rem; align-self: flex-start; }
.apo-map-wrap { margin-top: 2rem; padding-top: 5rem; border-top: 1px solid var(--w05); }
.apo-map-wrap .section-eyebrow { margin-bottom: 2rem; }
.apo-offices-map { width: 100%; height: 520px; border: 1px solid var(--w10); background: #0a0a0a; }
/* OpenStreetMap tiles are light: invert them to the site's dark grey (the map credit stays readable). */
.apo-map-tiles { filter: invert(1) hue-rotate(180deg) grayscale(1) brightness(0.85) contrast(0.9); }
#offices-map, .apo-offices-map { background: #1a1a1a; }
.apo-partners-map { height: 420px; margin-top: 2rem; }
@media (max-width: 768px) { .apo-partners-map { height: 320px; } }
.apo-partner-names { margin-top: 1rem; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--w60); line-height: 1.8; }
.apo-partner-tip { background: #000; color: #fff; border: 1px solid var(--w10); border-radius: 0; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; box-shadow: none; }
.apo-partner-tip::before { border-top-color: #000; }
.apo-map-dot span { display: block; width: 12px; height: 12px; background: #fff; border-radius: 50%; box-shadow: 0 0 0 3px rgba(255,255,255,0.25), 0 0 16px rgba(255,255,255,0.5); cursor: pointer; }
.office-popup .leaflet-popup-content-wrapper, .office-popup .leaflet-popup-tip { background: #0a0a0a; color: #fff; border-radius: 0; border: 1px solid var(--w10); }
.office-popup .leaflet-popup-content { margin: 0; }
.apo-map-popup { font-family: Raleway, sans-serif; padding: 1rem 1.25rem; min-width: 200px; }
.apo-map-country { font-size: 0.6rem; letter-spacing: 0.25em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 0.3rem; }
.apo-map-city { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.3rem; font-weight: 300; margin-bottom: 0.5rem; }
.apo-map-addr { font-size: 0.82rem; color: rgba(255,255,255,0.65); margin-bottom: 0.25rem; line-height: 1.5; }
.apo-map-phone { font-size: 0.82rem; color: rgba(255,255,255,0.4); margin-bottom: 0.9rem; }
.apo-map-popup a { font-size: 0.6rem; letter-spacing: 0.18em; text-transform: uppercase; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.3); padding-bottom: 2px; }

/* ── Appointment: "Call now" office choice (was a JS pop-up, now <details>) ── */
.apo-call-options > summary { list-style: none; }
.apo-call-options > summary::-webkit-details-marker { display: none; }
.apo-call-panel { margin-top: 1.5rem; border: 1px solid var(--w10); padding: 1.5rem; background: var(--black); }
.apo-call-title { font-size: clamp(0.72rem, 1.3vw, 0.85rem); letter-spacing: 0.2em; text-transform: uppercase; color: var(--white); margin-bottom: 1rem; }
.apo-call-panel a { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 1rem; border: 1px solid var(--w10); color: var(--white); text-decoration: none; font-size: clamp(1.05rem, 2vw, 1.25rem); margin-bottom: 0.75rem; gap: 1rem; }
.apo-call-panel a:last-child { margin-bottom: 0; }
.apo-call-panel a span:last-child { font-size: clamp(0.92rem, 1.7vw, 1.08rem); }
/* "Call Now": each phone number stays on one line. The panel sits in a narrow column, so it is a little tighter;
   if the label and number still do not fit side by side, the label moves above the number (never a split number). */
.apo-call-panel { padding: 1.1rem; }
.apo-call-panel a { flex-wrap: wrap; padding: 0.7rem 0.85rem; gap: 0.15rem 0.75rem; font-size: clamp(0.95rem, 1.8vw, 1.05rem); }
.apo-call-panel a span { white-space: nowrap; }
.apo-call-panel a span:last-child { font-size: clamp(0.88rem, 1.5vw, 0.98rem); direction: ltr; unicode-bidi: isolate; }

/* ── Footer (was inline styles) ── */
.footer-contact { gap: 2rem; }
.footer-contact-group { display: flex; flex-direction: column; gap: 0.5rem; }
.footer-contact-label { font-size: clamp(0.72rem, 1.3vw, 0.85rem); letter-spacing: 0.2em; text-transform: uppercase; color: var(--white); display: block; margin-bottom: 0.25rem; }
.footer-contact-group a { display: block; color: var(--white); transition: color 0.2s; }
.footer-contact-group a:hover { color: var(--w60); }
.footer-contact-group a.footer-phone { display: flex; gap: 0.75rem; align-items: baseline; }
.footer-phone span { color: var(--white); font-size: clamp(0.88rem, 1.6vw, 1rem); }
.footer-social { display: flex; align-items: center; gap: 1.5rem; }
.footer-social a { color: var(--white); transition: color 0.2s; }
.footer-social a:hover { color: var(--w40); }
.footer-legal { display: flex; flex-direction: column; gap: 0.4rem; }
.footer-registration { font-size: 0.75rem; color: var(--w40); letter-spacing: 0.05em; }
.footer-legal-links { list-style: none; display: flex; flex-wrap: wrap; gap: 1.25rem; }
.footer-legal-links a { font-size: 0.75rem; color: var(--w60); text-decoration: none; }
.footer-legal-links a:hover { color: var(--white); }

/* ── Headings inside service text (from the former standalone pages) ── */
.svc-body h2, .svc-body h3 { font-family: var(--serif); font-weight: 300; color: var(--white); line-height: 1.3; }
.svc-body h2 { font-size: clamp(1.3rem, 2.2vw, 1.75rem); margin: 2.5rem 0 1rem; }
.svc-body h3 { font-size: clamp(1.05rem, 1.6vw, 1.2rem); margin: 0 0 0.75rem; }
.svc-body .apo-faq-item { border-bottom: 1px solid var(--w10); padding: 1.5rem 0; }
.svc-body .apo-faq-item:last-child { border-bottom: none; }
/* Sections added to the main pages (Home, Our Firm, About Us, Services): full container width, tight spacing, white links, picture across the width.
   Scoped to the added blocks only (class apo-added); the original sections keep their own look. */
.wp-block-group.fade-in.apo-added { margin-top: 3rem; padding-top: 3rem; border-top: 1px solid var(--w10); }
.apo-added .wp-block-heading { margin: 2.25rem 0 1rem !important; }
.apo-added .wp-block-heading:first-child { margin-top: 0 !important; }
.apo-added :is(.section-desc, p) { max-width: none; width: 100%; margin: 0 0 1.1rem; }
.apo-added :is(.section-desc, p):last-child { margin-bottom: 0; }
.apo-added figure.wp-block-image { max-width: none; width: 100%; margin: 1.75rem 0; }
.apo-added figure.wp-block-image img { display: block; width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; filter: grayscale(1); opacity: 0.6; }
@media (max-width: 768px) { .apo-added figure.wp-block-image img { aspect-ratio: 3 / 2; } }
/* Intro text under the hero (Home): centred. */
.apo-intro { text-align: center; }
.apo-intro :is(.section-desc, p) { max-width: 60rem; margin-left: auto; margin-right: auto; text-align: center; }
/* All links written inside page text are white, thinly underlined so they can still be told apart. */
:is(.svc-body, .apo-added, .apo-intro, .article-body, .entry-content, .wp-block-post-content) :is(p, li) a:not([class]) { color: var(--white); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: opacity 0.2s; }
:is(.svc-body, .apo-added, .apo-intro, .article-body, .entry-content, .wp-block-post-content) :is(p, li) a:not([class]):hover { opacity: 0.7; }
/* Links written in the page text: readable on black, underlined, never the browser's default blue. */
.svc-body p a, .svc-body li a { color: var(--white); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color 0.2s; }
.svc-body p a:hover, .svc-body li a:hover { color: var(--w60); }

/* ── Footer bottom: one centred stack — profiles, legal links, registration and copyright, then cookie settings and the agency credit ── */
.footer-bottom { flex-direction: column; align-items: center; justify-content: center; gap: 1.25rem; text-align: center; }
.footer-bottom .footer-social { justify-content: center; }
.footer-bottom .footer-legal { align-items: center; gap: 0.75rem; }
.footer-bottom .footer-legal-links { justify-content: center; gap: 0.5rem 1.75rem; }
.footer-bottom .footer-legal-links a { font-size: 0.8rem; }
.footer-bottom .footer-copy { letter-spacing: 0.1em; line-height: 1.7; }
.footer-bottom .footer-registration { text-align: center; }
.footer-bottom-right { display: flex; flex-flow: row wrap; align-items: baseline; justify-content: center; gap: 0.5rem 1.25rem; margin-inline-start: 0; }
@media (max-width: 520px) { .footer-bottom .footer-legal-links { display: grid; grid-template-columns: repeat(2, auto); justify-content: center; gap: 0.75rem 2.25rem; } }
.footer-credit { font-size: 0.68rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--w40); }
.footer-credit a { color: var(--w60); text-decoration: none; transition: color 0.2s; }
.footer-credit a:hover { color: var(--white); }
/* Agency credit: deliberately quiet (small, sentence case), but still readable (4.5:1 on black). */
.footer-made { font-size: 0.62rem; letter-spacing: 0.03em; color: rgba(255,255,255,0.48); }
.footer-made a { color: inherit; text-decoration: none; }
.footer-made a:hover { color: var(--w80); text-decoration: underline; text-underline-offset: 2px; }

/* ── Cookie banner: a long pill along the bottom of the screen ── */
.apo-consent {
  position: fixed; left: 50%; bottom: 1.25rem; z-index: 300;
  width: min(1100px, calc(100% - 2rem));
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding: 0.7rem 0.7rem 0.7rem 1.75rem;
  background: rgba(10, 10, 10, 0.92); border: 1px solid var(--w20); border-radius: 999px;
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
  transform: translate(-50%, 1.5rem); opacity: 0; transition: transform 0.25s ease, opacity 0.25s ease;
}
.apo-consent.is-visible { transform: translate(-50%, 0); opacity: 1; }
.apo-consent[hidden] { display: none; }
.apo-consent-text { font-size: 0.8rem; line-height: 1.5; color: var(--w80); letter-spacing: 0.01em; }
.apo-consent-text a { color: var(--white); text-underline-offset: 3px; }
.apo-consent-actions { display: flex; gap: 0.5rem; flex-shrink: 0; }
.apo-consent-btn {
  font-family: var(--sans); font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; cursor: pointer;
  padding: 0.75rem 1.5rem; border-radius: 999px; border: 1px solid var(--w40); background: transparent; color: var(--white);
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.apo-consent-btn:hover { border-color: var(--white); }
.apo-consent-btn--accept { background: var(--white); color: var(--black); border-color: var(--white); }
.apo-consent-btn--accept:hover { background: transparent; color: var(--white); }
body.lang-ar .apo-consent-text, body.lang-ar .apo-consent-btn { font-family: 'Noto Sans Arabic', var(--sans); letter-spacing: 0; }
[dir="rtl"] .apo-consent { padding: 0.7rem 1.75rem 0.7rem 0.7rem; }
@media (max-width: 680px) {
  .apo-consent { flex-direction: column; align-items: stretch; gap: 0.75rem; border-radius: 28px; padding: 1rem 1rem 0.9rem; bottom: 0.75rem; }
  .apo-consent-text { text-align: center; }
  .apo-consent-actions .apo-consent-btn { flex: 1; }
}
@media (prefers-reduced-motion: reduce) { .apo-consent { transition: none; } }
.footer-cookie-link a { color: var(--w60); text-decoration: none; }
.footer-cookie-link a:hover { color: var(--white); }

/* ── Articles ── */
.article-byline { margin-top: 1.25rem; font-size: clamp(0.8rem, 1.2vw, 0.9rem); color: var(--w60); letter-spacing: 0.02em; }
.article-byline a { color: var(--white); text-underline-offset: 3px; }
.blog-preview-more { margin-top: 1rem; }
.apo-pagination { display: flex; gap: 1rem; margin-top: 3rem; }
.apo-pagination a, .apo-pagination span { color: var(--w60); text-decoration: none; padding: 0.3rem 0.6rem; border: 1px solid var(--w10); }
.apo-pagination span[aria-current] { color: var(--white); border-color: var(--w40); }

/* ── Team profile page (the former pop-up, now a page) ── */
.apo-profile-body { background: #0a0a0a; border: 1px solid var(--w10); max-width: 900px; margin-top: 1rem; }
.apo-profile-list { list-style: none; display: flex; flex-direction: column; gap: 0.3rem; font-size: clamp(0.85rem, 1.5vw, 1rem); color: var(--w80); }
.apo-profile-pubs a { color: var(--white); }
.apo-profile-links { margin-top: 1rem; }
.apo-profile-articles { margin-top: 5rem; }
@media (max-width: 680px) {
  .apo-profile-body { flex-direction: column; }
  .apo-profile-body .associate-modal-img { width: 100%; min-width: unset; height: 320px; }
  .apo-profile-body .associate-modal-content { padding: 1.5rem; }
}

/* ── Practice area: linked lawyers ── */
.apo-practice-lawyers { margin-top: 3rem; }
.apo-practice-lawyers ul { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; }
.apo-practice-lawyers a { color: var(--white); font-family: var(--serif); font-size: 1.1rem; }
.apo-practice-lawyers span { color: var(--w60); font-size: 0.8rem; letter-spacing: 0.15em; text-transform: uppercase; margin-left: 0.75rem; }

/* ── Careers ── */
.careers-job-title-row { display: flex; align-items: center; gap: 0.65rem; }
.careers-job-name { font-weight: inherit; }
.careers-empty { padding: 3rem 0; text-align: center; font-size: 0.88rem; color: rgba(255,255,255,0.3); letter-spacing: 0.05em; }
.apo-job { max-height: none; overflow: visible; margin-top: 1rem; max-width: 900px; }
.apo-job-badges { display: flex; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; }
.apo-job-meta { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.apo-job .careers-btn-submit { text-decoration: none; }
.careers-job-row[hidden] { display: none; }

/* ── 404 ── */
.apo-404-links { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.5rem; }

/* ── AI facts page ── */
.apo-ai-facts { max-width: 780px; font-family: var(--serif); color: var(--w80); line-height: 1.85; }
.apo-ai-facts h2 { font-family: var(--serif); font-weight: 300; font-size: clamp(1.4rem, 2.5vw, 2rem); margin: 3rem 0 1rem; color: var(--white); }
.apo-ai-facts h3 { font-family: var(--sans); font-size: 0.75rem; letter-spacing: 0.25em; text-transform: uppercase; margin: 2rem 0 0.75rem; color: var(--white); }
.apo-ai-facts ul { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; }
.apo-ai-facts a { color: var(--white); }

/* ── WPForms styled like the original contact form (underlined fields on black) ── */
.apo-form .wpforms-container { margin: 0 !important; }
.apo-form .wpforms-field { padding: 0 0 1.75rem !important; }
.apo-form .wpforms-field-label { font-family: var(--sans) !important; font-size: clamp(1rem, 1.9vw, 1.18rem) !important; letter-spacing: 0 !important; text-transform: none !important; font-weight: 300 !important; color: var(--w80) !important; margin-bottom: 0.25rem !important; }
.apo-form .wpforms-field-radio li label, .apo-form .wpforms-field-radio li, .apo-form .wpforms-field-select select { color: var(--w80) !important; font-size: 1rem !important; }
.apo-form .wpforms-field-radio ul { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-top: 0.5rem !important; }
.apo-form .wpforms-required-label { color: var(--w40) !important; }
.apo-form input[type="text"], .apo-form input[type="email"], .apo-form input[type="tel"], .apo-form input[type="url"], .apo-form textarea, .apo-form select {
  width: 100% !important; max-width: 100% !important; background: transparent !important; border: none !important; border-bottom: 1px solid var(--w20) !important; border-radius: 0 !important;
  color: var(--white) !important; font-family: var(--sans) !important; font-size: clamp(1rem, 1.9vw, 1.18rem) !important; font-weight: 300 !important; padding: 0.6rem 0 !important; box-shadow: none !important; height: auto !important;
}
.apo-form input:focus, .apo-form textarea:focus, .apo-form select:focus { border-bottom-color: var(--white) !important; outline: none; }
.apo-form select option { background: #000; color: #fff; }
.apo-form .wpforms-field-checkbox li label, .apo-form .wpforms-field-gdpr-checkbox label, .apo-form .wpforms-field-description { color: var(--w60) !important; font-size: 0.85rem !important; }
.apo-form button[type="submit"], .apo-form .wpforms-submit {
  display: inline-flex !important; align-items: center; gap: 1rem; background: var(--white) !important; color: var(--black) !important; border: 1px solid var(--white) !important; border-radius: 0 !important;
  font-family: var(--sans) !important; font-size: clamp(0.8rem, 1.5vw, 0.92rem) !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; padding: 1rem 2rem !important; height: auto !important; cursor: pointer; transition: background 0.3s, color 0.3s;
}
.apo-form button[type="submit"]:hover { background: transparent !important; color: var(--white) !important; }
.apo-form .wpforms-confirmation-container-full { background: transparent !important; border: 1px solid var(--w10) !important; color: var(--white) !important; padding: 2rem !important; }
.apo-form .wpforms-error, .apo-form label.wpforms-error { color: #ff8080 !important; }
.apo-admin-note { border: 1px dashed var(--w20); padding: 1rem; color: var(--w60); font-size: 0.85rem; }

/* ── RTL extras ── */
[dir="rtl"] .apo-practice-lawyers span { margin-left: 0; margin-right: 0.75rem; }
[dir="rtl"] a.svc-back svg, [dir="rtl"] a.article-back svg { transform: rotate(180deg); }

/* ── Accessibility panel: a tab on the side of the screen (left in Arabic) that slides out a panel ── */
.apo-a11y { position: fixed; top: 50%; inset-inline-end: 0; z-index: 250; transform: translateY(-50%); display: flex; align-items: center; flex-direction: row-reverse; }
body.apo-menu-open .apo-a11y { display: none; }
.apo-a11y-tab {
  width: 44px; height: 48px; display: grid; place-items: center; cursor: pointer;
  background: rgba(10, 10, 10, 0.92); color: var(--white); border: 1px solid var(--w20); border-inline-end: 0;
  border-start-start-radius: 10px; border-end-start-radius: 10px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.5); transition: background 0.2s, width 0.2s;
}
.apo-a11y-tab:hover, .apo-a11y.is-open .apo-a11y-tab { background: var(--white); color: var(--black); }
.apo-a11y-panel {
  width: min(300px, calc(100vw - 60px)); max-height: min(640px, 86vh); overflow-y: auto;
  background: rgba(10, 10, 10, 0.97); border: 1px solid var(--w20); border-radius: 14px; margin-inline-end: 8px;
  padding: 1.1rem 1.1rem 1rem; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); color: var(--white); font-family: var(--sans);
}
.apo-a11y-panel[hidden] { display: none; }
.apo-a11y-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.9rem; }
.apo-a11y-title { font-family: var(--serif); font-size: 1.15rem; font-weight: 300; }
.apo-a11y-close { background: none; border: 0; color: var(--w80); cursor: pointer; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; }
.apo-a11y-close:hover { color: var(--white); background: var(--w10); }
.apo-a11y-label { font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--w80); margin-bottom: 0.5rem; }
.apo-a11y-sizes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.35rem; margin-bottom: 1rem; }
.apo-a11y-size, .apo-a11y-opt, .apo-a11y-reset {
  font-family: var(--sans); color: var(--white); background: transparent; border: 1px solid var(--w20); border-radius: 8px; cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.apo-a11y-size { min-height: 40px; font-size: 0.9rem; }
.apo-a11y-size[aria-pressed="true"] { background: var(--white); color: var(--black); border-color: var(--white); }
.apo-a11y-options { display: grid; gap: 0.35rem; }
.apo-a11y-opt { display: flex; align-items: center; gap: 0.7rem; min-height: 42px; padding: 0.5rem 0.75rem; font-size: 0.85rem; text-align: start; }
.apo-a11y-size:hover, .apo-a11y-opt:hover, .apo-a11y-reset:hover { border-color: var(--w60); }
.apo-a11y-check { width: 18px; height: 18px; flex-shrink: 0; border: 1px solid var(--w60); border-radius: 4px; position: relative; }
.apo-a11y-opt[aria-pressed="true"] { border-color: var(--white); background: var(--w10); }
.apo-a11y-opt[aria-pressed="true"] .apo-a11y-check { background: var(--white); border-color: var(--white); }
.apo-a11y-opt[aria-pressed="true"] .apo-a11y-check::after { content: ''; position: absolute; left: 5px; top: 1px; width: 5px; height: 10px; border: solid var(--black); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.apo-a11y-reset { width: 100%; margin-top: 0.8rem; min-height: 40px; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--w80); }
.apo-a11y :focus-visible { outline: 2px solid var(--white); outline-offset: 2px; }
body.lang-ar .apo-a11y-panel, body.lang-ar .apo-a11y-opt, body.lang-ar .apo-a11y-label { font-family: 'Noto Sans Arabic', var(--sans); letter-spacing: 0; }
@media (max-width: 680px) {
  .apo-a11y { top: auto; bottom: 35%; transform: none; }
  .apo-a11y-tab { width: 38px; height: 42px; }
}
@media print { .apo-a11y { display: none; } }

/* Text size: raises the minimum size of body text (headings are already large). The site header keeps its size. */
html.a11y-text-1 :is(main, footer, #mobile-nav) :is(p, li, a, span, label, input, textarea, select, button, td, th, dd, dt, time, small, figcaption, blockquote, summary) { font-size: max(1.0625rem, 1em) !important; }
html.a11y-text-2 :is(main, footer, #mobile-nav) :is(p, li, a, span, label, input, textarea, select, button, td, th, dd, dt, time, small, figcaption, blockquote, summary) { font-size: max(1.1875rem, 1em) !important; }
html.a11y-text-3 :is(main, footer, #mobile-nav) :is(p, li, a, span, label, input, textarea, select, button, td, th, dd, dt, time, small, figcaption, blockquote, summary) { font-size: max(1.3125rem, 1em) !important; }

/* Text spacing: the WCAG 1.4.12 values. */
html.a11y-spacing :is(main, footer, #mobile-nav) :is(p, li, dd, dt, blockquote, td, th, label, a, span, h1, h2, h3, h4) { line-height: 1.6 !important; letter-spacing: 0.12em !important; word-spacing: 0.16em !important; }
html.a11y-spacing :is(main, footer) p { margin-bottom: 2em !important; }

/* Readable font: plain sans-serif instead of the Baskerville serif. */
html.a11y-font { --serif: var(--sans); }
html.a11y-font body:not(.lang-ar) :is(main, footer, header, #mobile-nav) * { font-family: var(--sans) !important; font-style: normal !important; }

/* High contrast: all text pure white, stronger borders, no dimmed text. */
html.a11y-contrast { --w80: #fff; --w60: #fff; --w50: #fff; --w40: rgba(255,255,255,0.9); --w20: rgba(255,255,255,0.75); --w10: rgba(255,255,255,0.55); --w05: rgba(255,255,255,0.35); }
html.a11y-contrast :is(main, footer, header, #mobile-nav) :is(p, li, span, a, time, label, small, dd, dt, td, th, figcaption, input, textarea) { color: #fff !important; opacity: 1 !important; }
html.a11y-contrast :is(input, textarea, select)::placeholder { color: #fff !important; opacity: 0.85; }
/* ...and no photos behind text: hero slideshow, card backgrounds, page header backgrounds (plus any other, marked by the panel script). */
html.a11y-contrast :is(.hero-slide, .service-item-bg, .svc-detail-bg, .careers-hero-bg, .a11y-nobg) { background-image: none !important; }
html.a11y-contrast :is(.hero-overlay, .careers-hero-overlay, .careers-hero-grid) { background: none !important; }

/* Light background: dark text on white. Photos are inverted back (class added by the panel script). */
html.a11y-light { filter: invert(1) hue-rotate(180deg); background: #000; }
html.a11y-light .a11y-reinvert { filter: invert(1) hue-rotate(180deg); }

/* Highlight links */
html.a11y-links :is(main, footer, header, #mobile-nav) a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px !important; outline: 1px solid #ffe066; outline-offset: 2px; }

/* Large cursor */
html.a11y-cursor, html.a11y-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24'%3E%3Cpath d='M4 2l15 11-6.5 1 4 7.5-3 1.5-4-7.5L4 20z' fill='%23fff' stroke='%23000' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E") 6 3, auto !important; }

/* Stop animations: no fades, transitions or slideshow. */
html.a11y-motion *, html.a11y-motion *::before, html.a11y-motion *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.a11y-motion .fade-in, html.a11y-motion .fade-in.slide-from-left, html.a11y-motion .fade-in.slide-from-right { opacity: 1 !important; transform: none !important; }
html.a11y-motion { scroll-behavior: auto !important; }

/* ── Careers with no open positions: no count, no search/filter row ── */
.apo-no-jobs .careers-search-row, .apo-no-jobs .careers-results-count { display: none; }
.careers-empty { font-family: var(--serif); font-size: 1.05rem; color: var(--w80); padding: 2rem 0; border-top: 1px solid var(--w10); border-bottom: 1px solid var(--w10); }

/* ── Mobile menu: Book + Call buttons ── */
.mobile-nav-footer { align-items: stretch; }
.mobile-nav-cta { display: block; background: var(--white); color: var(--black); border-color: var(--white); font-size: 0.72rem; padding: 0.95rem 1.25rem; }
.mobile-nav-cta:hover { background: transparent; color: var(--white); }

/* ════════════════════════════════════════════════════════════════════════════════
   Design update (owner-approved 22 Oct 2026): fonts, buttons, hero, logo, forms.
   ════════════════════════════════════════════════════════════════════════════════ */

/* Fonts: the same faces on every device (Mac/iPhone used to get Apple Baskerville and SF instead). */
:root {
  --serif: 'Libre Baskerville', Georgia, 'Noto Serif', serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
}

/* Buttons: one style everywhere. Primary (book, submit, apply) = solid white; secondary = outlined. */
.cta-btn { border: 1px solid var(--w40); font-size: 0.78rem; letter-spacing: 0.18em; font-weight: 500; padding: 1rem 2rem; }
.cta-btn:hover { background: transparent; color: var(--white); border-color: var(--white); }
.cta-btn--primary, .hero-ctas a.hero-btn { background: var(--white); color: var(--black); border: 1px solid var(--white); }
.cta-btn--primary:hover, .hero-ctas a.hero-btn:hover { background: transparent; color: var(--white); border-color: var(--white); }
#desktop-nav .nav-appt-btn { background: var(--white); color: var(--black) !important; border-color: var(--white) !important; font-weight: 600; }
#desktop-nav .nav-appt-btn:hover { background: transparent; color: var(--white) !important; }
.apo-form button[type="submit"], .apo-form .wpforms-submit { font-size: 0.78rem !important; letter-spacing: 0.18em !important; font-weight: 500 !important; padding: 1rem 2.25rem !important; }

/* Logo: the A/V monogram, a little larger, same file in header and footer; the name also shows in the phone footer. */
.nav-logo-img { width: 52px; height: 52px; }
@media (min-width: 1537px) { header .nav-logo-img { width: 58px; height: 58px; } }
@media (max-width: 1280px) { .nav-logo-img { width: 44px; height: 44px; } }
footer .nav-logo-img { width: 60px; height: 60px; }
@media (max-width: 900px) { footer .nav-logo-text { display: flex; } }

/* Language buttons: easier to read and tap. */
.lang-opt { min-width: 34px; min-height: 28px; padding: 0.3rem 0.55rem; display: inline-flex; align-items: center; justify-content: center; }
.mobile-nav-langs .lang-opt { min-width: 44px; min-height: 40px; font-size: 0.8rem; }

/* Hero: the small line is now the H1; solid Book button, call link and Legal 500 line. */
.hero h1.hero-eyebrow { font-family: var(--sans); font-weight: 400; font-size: clamp(0.72rem, 1.1vw, 0.82rem); line-height: 1.7; letter-spacing: 0.24em; text-transform: uppercase; max-width: 48rem; margin-bottom: 2rem; }
body.lang-ar .hero h1.hero-eyebrow, body.lang-zh .hero h1.hero-eyebrow { letter-spacing: 0.02em; text-transform: none; font-size: clamp(0.9rem, 1.3vw, 1rem); }
.hero-overlay { background: linear-gradient(to bottom, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.52) 40%, rgba(0,0,0,0.62) 70%, var(--black) 100%); }
.hero-bottom-text { max-width: 32rem; }
.hero-trust { margin-top: 1.1rem; }
.hero-trust a svg { display: inline-block; vertical-align: -1px; margin-inline-start: 0.4rem; }
.hero-trust a { display: inline; font-family: var(--sans); font-size: 0.78rem; letter-spacing: 0.03em; color: var(--w80); text-decoration: underline; text-decoration-color: var(--w40); text-underline-offset: 4px; }
.hero-trust a:hover { color: var(--white); text-decoration-color: var(--white); }
.hero-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 1rem; flex-shrink: 0; }
.hero-ctas { gap: 1.75rem; }
.hero-ctas a.hero-btn { padding: 1rem 2rem; font-size: 0.78rem; letter-spacing: 0.18em; font-weight: 500; }
.hero-call { font-family: var(--sans); font-size: 0.88rem; color: var(--w80); }
.hero-call a { color: var(--white); text-decoration: none; border-bottom: 1px solid var(--w40); }
.hero-call a:hover { border-color: var(--white); }
@media (max-width: 1024px) { .hero-actions { align-items: flex-start; } }
@media (max-width: 480px) {
  .hero-actions { align-items: stretch; align-self: stretch; }
  .hero-ctas { flex-direction: column; align-items: stretch; gap: 1.25rem; }
  .hero-ctas a.hero-btn { display: block; text-align: center; }
  .hero-ctas a.hero-link { align-self: flex-start; }
}

/* Booking page cards: readable descriptions. */
.appt-option-desc { color: var(--w80); font-size: clamp(0.95rem, 1.3vw, 1rem); }

/* Forms: full width, labels above fields, 16px inputs (no zoom on iPhone), two columns where there is room. */
.entry-content .apo-s-c81185a { max-width: 100% !important; }
.apo-form .wpforms-field-label { font-size: 0.74rem !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; font-weight: 500 !important; color: var(--w80) !important; margin-bottom: 0.5rem !important; }
body.lang-ar .apo-form .wpforms-field-label, body.lang-zh .apo-form .wpforms-field-label { letter-spacing: 0 !important; font-size: 0.9rem !important; }
.apo-form .wpforms-required-label { color: var(--w60) !important; }
.apo-form input[type="text"], .apo-form input[type="email"], .apo-form input[type="tel"], .apo-form input[type="url"], .apo-form textarea, .apo-form select { font-size: 1rem !important; font-weight: 400 !important; padding: 0.7rem 0 !important; border-bottom-color: var(--w40) !important; }
.apo-form textarea { min-height: 7.5rem !important; resize: vertical; }
.apo-form ::placeholder { color: var(--w60) !important; opacity: 1; }
.apo-form .wpforms-field-radio li label { font-size: 0.95rem !important; }
.apo-form-appointment .wpforms-field-container, .apo-form-careers .wpforms-field-container { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2.5rem; }
.apo-form-appointment .wpforms-field-textarea, .apo-form-careers .wpforms-field-textarea,
.apo-form-appointment .wpforms-field-checkbox, .apo-form-careers .wpforms-field-checkbox { grid-column: 1 / -1; }
@media (max-width: 768px) {
  .apo-form-appointment .wpforms-field-container, .apo-form-careers .wpforms-field-container { grid-template-columns: 1fr; }
}

/* Careers application form (PDF CV upload) — same look as the other forms. */
.apo-cv .apo-fields { display: grid; grid-template-columns: 1fr 1fr; column-gap: 2.5rem; }
.apo-cv .apo-field { padding-bottom: 1.75rem; min-width: 0; }
.apo-cv .apo-field-wide { grid-column: 1 / -1; }
.apo-cv .apo-field:not(.apo-check) > label { display: block; font-family: var(--sans); font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500; color: var(--w80); margin-bottom: 0.5rem; }
body.lang-ar .apo-cv .apo-field:not(.apo-check) > label, body.lang-zh .apo-cv .apo-field:not(.apo-check) > label { letter-spacing: 0; font-size: 0.9rem; }
.apo-cv .apo-req { color: var(--w60); }
/* Dropdowns: plain underline field with a small chevron. */
.apo-form select { appearance: none; -webkit-appearance: none; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23bbb' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 2px center !important; padding-inline-end: 1.75rem !important; cursor: pointer; }
[dir="rtl"] .apo-form select { background-position: left 2px center !important; }
/* Radio buttons: outlined circle, filled dot when chosen. */
.apo-form input[type="radio"] { appearance: none; -webkit-appearance: none; width: 18px !important; height: 18px !important; border: 1px solid var(--w60) !important; border-radius: 50% !important; background: transparent !important; margin: 0 0.6rem 0 0 !important; vertical-align: -3px; cursor: pointer; }
[dir="rtl"] .apo-form input[type="radio"] { margin: 0 0 0 0.6rem !important; }
.apo-form input[type="radio"]:checked { background: var(--white) !important; box-shadow: inset 0 0 0 4px var(--black); border-color: var(--white) !important; }
.apo-form input[type="radio"]::before, .apo-form input[type="radio"]::after { display: none !important; }
.apo-cv input[type="file"] { width: 100%; color: var(--w80); font-family: var(--sans); font-size: 0.95rem; padding: 1.1rem; border: 1px dashed var(--w40); background: var(--w05); cursor: pointer; }
.apo-cv input[type="file"]::file-selector-button { margin-inline-end: 1rem; padding: 0.6rem 1.1rem; background: var(--white); color: var(--black); border: 0; font-family: var(--sans); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500; cursor: pointer; }
.apo-cv input[type="file"]:focus-visible { outline: 2px solid var(--white); outline-offset: 3px; }
.apo-cv .apo-help { margin-top: 0.5rem; font-size: 0.82rem; color: var(--w60); }
.apo-cv .apo-check label { display: flex; gap: 0.75rem; align-items: flex-start; font-size: 0.88rem; line-height: 1.6; color: var(--w80); cursor: pointer; }
.apo-cv .apo-check input { width: 18px; height: 18px; margin-top: 0.2rem; accent-color: #fff; flex-shrink: 0; }
.apo-cv .apo-check a { color: var(--white); text-underline-offset: 3px; }
.apo-cv .apo-hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } /* not left:-9999px: that makes Arabic (RTL) pages scroll sideways */
.apo-cv-msg { padding: 1.25rem 1.5rem; margin-bottom: 1.75rem; font-size: 0.95rem; line-height: 1.6; border: 1px solid var(--w40); }
.apo-cv-msg.is-ok { border-color: var(--white); }
.apo-cv-msg.is-error { border-color: #ff8080; color: #ffd0d0; }
@media (max-width: 768px) { .apo-cv .apo-fields { grid-template-columns: 1fr; } }

/* Header menu: larger text (owner, 22 Oct 2026). Sizes per width keep the menu on one line (tested 1101–1920px, 4 languages). */
#desktop-nav > a, #desktop-nav > .nav-dropdown > a { font-size: 0.78rem; letter-spacing: 0.09em; padding: 0.5rem 0.85rem; }
#desktop-nav .nav-appt-btn { font-size: 0.7rem !important; letter-spacing: 0.14em !important; padding: 0.6rem 1.1rem !important; margin-inline-start: 0.5rem; }
@media (max-width: 1440px) {
  #desktop-nav > a, #desktop-nav > .nav-dropdown > a { font-size: 0.74rem; padding: 0.5rem 0.6rem; letter-spacing: 0.07em; }
}
@media (max-width: 1280px) {
  #desktop-nav > a, #desktop-nav > .nav-dropdown > a { font-size: 0.68rem; padding: 0.5rem 0.42rem; letter-spacing: 0.05em; }
  #desktop-nav .nav-appt-btn { font-size: 0.62rem !important; padding: 0.5rem 0.75rem !important; }
}
body.lang-el #desktop-nav > a, body.lang-el #desktop-nav > .nav-dropdown > a { font-size: 0.72rem; letter-spacing: 0.04em; padding: 0.5rem 0.6rem; }
@media (max-width: 1440px) { body.lang-el #desktop-nav > a, body.lang-el #desktop-nav > .nav-dropdown > a { font-size: 0.68rem; padding: 0.5rem 0.45rem; } }
@media (max-width: 1280px) { body.lang-el #desktop-nav > a, body.lang-el #desktop-nav > .nav-dropdown > a { font-size: 0.62rem; padding: 0.5rem 0.32rem; letter-spacing: 0.02em; } }

/* Language buttons: label centred in the box. */
.lang-switcher a.lang-opt, .mobile-nav-langs a.lang-opt { display: inline-flex; align-items: center; justify-content: center; height: 30px; min-height: 0; padding: 0 0.6rem; line-height: 1; font-size: 0.72rem; }
.mobile-nav-langs a.lang-opt { height: 40px; min-width: 46px; font-size: 0.8rem; }
body.lang-ar #desktop-nav > a, body.lang-ar #desktop-nav > .nav-dropdown > a { font-size: 0.98rem; letter-spacing: 0; padding: 0.5rem 0.35rem; }
body.lang-ar #desktop-nav .nav-appt-btn { font-size: 0.85rem !important; letter-spacing: 0 !important; }
body.lang-zh #desktop-nav > a, body.lang-zh #desktop-nav > .nav-dropdown > a { font-size: 0.88rem; letter-spacing: 0.04em; }
@media (max-width: 1280px) { body.lang-ar #desktop-nav > a, body.lang-ar #desktop-nav > .nav-dropdown > a { font-size: 0.9rem; } body.lang-zh #desktop-nav > a, body.lang-zh #desktop-nav > .nav-dropdown > a { font-size: 0.8rem; } }

/* Arabic header on phones: the original kept the desktop padding, so the bar was taller than the page's top spacing. */
@media (max-width: 900px) {
  body.lang-ar header { padding: 1rem 1.5rem; }
  body.lang-ar header.scrolled { padding: 0.7rem 1.5rem; }
}

/* Offices map: privacy placeholder until the visitor clicks "Show map"; dark credit line. */
.apo-map-gate { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1.25rem; padding: 2rem; text-align: center;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.05), transparent 60%), repeating-linear-gradient(0deg, transparent 0 39px, rgba(255,255,255,0.03) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, rgba(255,255,255,0.03) 39px 40px); }
.apo-map-gate .cta-btn { margin-top: 0; }
.apo-map-gate p { max-width: 30rem; font-size: 0.85rem; line-height: 1.6; color: var(--w60); }
.apo-map-gate a { color: var(--w80); text-underline-offset: 3px; }
.apo-offices-map .leaflet-control-attribution { background: rgba(0,0,0,0.75); color: rgba(255,255,255,0.8); font-size: 11px; }
.apo-offices-map .leaflet-control-attribution a { color: #fff; }

/* Footer quick links in two columns (owner, 22 Oct 2026). */
.footer-grid .footer-links:not(.footer-contact) { display: block; columns: 2; column-gap: 2.5rem; }
.footer-grid .footer-links:not(.footer-contact) li { break-inside: avoid; margin-bottom: 0.75rem; }

/* Legal pages: readable column, tables and lists. */
.apo-legal-body { max-width: 860px; }
.apo-legal .apo-legal-title { margin-bottom: 0.75rem; }
.apo-legal .legal-updated { font-size: 0.82rem; color: var(--w60); margin-bottom: 2.5rem; }
.apo-legal h2 { font-family: var(--serif); font-size: clamp(1.15rem, 1.8vw, 1.4rem); font-weight: 400; margin: 2.75rem 0 1rem; }
.apo-legal p, .apo-legal li { font-size: 0.98rem; line-height: 1.8; color: var(--w80); margin-bottom: 1rem; }
.apo-legal ul { padding-inline-start: 1.25rem; margin-bottom: 1.25rem; }
.apo-legal li { margin-bottom: 0.4rem; }
.apo-legal strong { color: var(--white); font-weight: 600; }
.apo-legal a { color: var(--white); text-underline-offset: 3px; }
.apo-legal code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.85em; background: var(--w10); padding: 0.1em 0.35em; border-radius: 3px; }
.apo-legal .legal-table { margin: 0 0 1.75rem; overflow-x: auto; }
.apo-legal table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.apo-legal th, .apo-legal td { text-align: start; vertical-align: top; padding: 0.75rem 0.9rem; border-bottom: 1px solid var(--w10); line-height: 1.6; color: var(--w80); }
.apo-legal th { color: var(--white); font-weight: 600; border-bottom-color: var(--w40); font-family: var(--sans); font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; }
body.lang-ar .apo-legal th, body.lang-zh .apo-legal th { letter-spacing: 0; text-transform: none; font-size: 0.9rem; }
.apo-legal hr { border: 0; border-top: 1px solid var(--w10); margin: 3rem 0 1.5rem; }
.apo-legal hr + p { font-size: 0.8rem; color: var(--w60); }
@media (max-width: 768px) { .apo-legal table { font-size: 0.82rem; } .apo-legal th, .apo-legal td { padding: 0.6rem 0.5rem; } }

/* Phones: a quieter hero. The law-firm line stays in the HTML as the page's H1 (for Google and screen readers)
   but is hidden visually; the subtitle is hidden. Desktop is unchanged. */
@media (max-width: 768px) {
  .hero h1.hero-eyebrow { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
  .hero .hero-subtitle { display: none; }
  .hero-trust { margin-top: 0; }
  /* Legal 500 line, Book button and phone sit at the bottom, just above the city name; the firm name stays centred above them. */
  .home .hero { justify-content: flex-start; }
  .home .hero-content { flex: 1 1 auto; display: flex; flex-direction: column; padding-bottom: 2.5rem; }
  .home .hero-title { margin-top: auto; }
  .home .hero-bottom { margin-top: auto; padding-top: 2rem; }
  body.lang-ar.home .hero-content { padding-bottom: 3.25rem; }
}

/* Mobile menu: the four language buttons share the row equally, and the cookie banner never covers the menu. */
.mobile-nav-langs a.lang-opt { flex: 1 1 0; min-width: 0; }
body.apo-menu-open .apo-consent { display: none; }

/* Phones: the page may draw behind the status bar (viewport-fit=cover); keep the header and menu clear of the notch,
   and let the hero photo show at the very top (lighter top of the gradient; text further down keeps the darker band). */
@media (max-width: 768px) {
  body header { padding-top: calc(1rem + env(safe-area-inset-top, 0px)); }
  body header.scrolled { padding-top: calc(0.75rem + env(safe-area-inset-top, 0px)); }
  .mobile-nav-header { padding-top: calc(1.4rem + env(safe-area-inset-top, 0px)); }
  .home .hero-overlay { background: linear-gradient(to bottom, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.5) 30%, rgba(0,0,0,0.55) 70%, var(--black) 100%); }
}

/* Accessibility panel: always fully on screen. It is centred in the visible area on its own (not on the tab),
   never taller than the screen (dvh follows the phone's browser bars) and scrolls inside if needed. */
.apo-a11y-panel { position: fixed; top: 50%; inset-inline-end: 52px; transform: translateY(-50%); margin: 0;
  max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); overscroll-behavior: contain; }
@media (max-width: 680px) { .apo-a11y-panel { inset-inline-end: 46px; width: min(300px, calc(100vw - 58px)); } }

/* Mobile menu: Book a Consultation is the last item of the link list (the bordered bottom area keeps only the languages). */
.mobile-nav-body .mobile-nav-cta { align-self: center; margin-top: 1.5rem; min-width: min(260px, calc(100% - 3.5rem)); }

/* High contrast: text on the white (filled) buttons stays black, also on hover, instead of white on white. */
html.a11y-contrast :is(main, footer, header, #mobile-nav) :is(a.nav-appt-btn, a.mobile-nav-cta, a.hero-btn, a.cta-btn--primary),
html.a11y-contrast :is(main, footer, header, #mobile-nav) :is(a.nav-appt-btn, a.mobile-nav-cta, a.hero-btn, a.cta-btn--primary) * { color: #000 !important; }
html.a11y-contrast :is(a.nav-appt-btn, a.mobile-nav-cta, a.hero-btn, a.cta-btn--primary):is(:hover, :focus-visible) { background: #fff !important; border-color: #fff !important; }

/* Arabic: dash lists start on the right (the original placed the dash on the left edge, away from the text). */
[dir="rtl"] .svc-body ul li, [dir="rtl"] .svc-list li { padding-left: 0; padding-right: 1.8rem; }
[dir="rtl"] .svc-body-list li { padding-left: 0; padding-right: 1.6rem; }
[dir="rtl"] :is(.svc-body ul, .svc-list, .svc-body-list) li::before { left: auto; right: 0; }
