/*
Theme Name: AIntellect
Theme URI: https://aintellectlabs.com/
Author: AIntellect s.a.r.l.
Author URI: https://aintellectlabs.com/
Description: Block theme for aintellectlabs.com (v4 content, D-024). Approved design and brand tokens in theme.json, self-hosted Source Serif 4 / Source Sans 3, block patterns per page section, navigation with accessible submenus, built-in contact form, email reveal and consent-based analytics. RTL-ready (logical properties).
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 8.1
Version: 2.0.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: aintellect
Tags: block-patterns, full-site-editing, rtl-language-support, accessibility-ready
*/

/* =====================================================================
   Ported 1:1 from the approved prototype (phase3/prototype/styles.css).
   Tokens come from theme.json presets (--wp--preset--*); the short
   aliases below keep the prototype's rules readable.
   Layout uses logical properties only, so RTL needs no new layout CSS.
   ===================================================================== */

/* ---------- 1. Token aliases (source of truth: theme.json) ---------- */
:root {
  --color-ink: var(--wp--preset--color--ink, #121624);
  --color-navy: var(--wp--preset--color--navy, #0D1E3F);
  --color-blue: var(--wp--preset--color--blue, #285EAA);
  --color-sky: var(--wp--preset--color--sky, #5C9ED5);
  --color-blue-700: var(--wp--preset--color--blue-700, #1E4F95);
  --color-sky-700: var(--wp--preset--color--sky-700, #2D74AF);
  --color-sky-600: var(--wp--preset--color--sky-600, #4490CF);
  --color-sky-100: var(--wp--preset--color--sky-100, #DCEAF7);
  --color-sky-50: var(--wp--preset--color--sky-50, #EEF5FB);
  --color-navy-800: var(--wp--preset--color--navy-800, #16294F);
  --color-neutral-0: var(--wp--preset--color--neutral-0, #FFFFFF);
  --color-neutral-50: var(--wp--preset--color--neutral-50, #F5F7FA);
  --color-neutral-100: var(--wp--preset--color--neutral-100, #EBEFF5);
  --color-neutral-200: var(--wp--preset--color--neutral-200, #D5DCE6);
  --color-neutral-300: var(--wp--preset--color--neutral-300, #B4BFCE);
  --color-neutral-400: var(--wp--preset--color--neutral-400, #7A8599);
  --color-neutral-500: var(--wp--preset--color--neutral-500, #5E6A7E);
  --color-neutral-700: var(--wp--preset--color--neutral-700, #343E52);
  --color-error: var(--wp--preset--color--error, #B42318);
  --color-error-bg: var(--wp--preset--color--error-bg, #FDECEA);
  --color-success: var(--wp--preset--color--success, #1D7044);
  --color-success-bg: var(--wp--preset--color--success-bg, #ECF7F0);

  --text: var(--color-ink);
  --text-muted: var(--color-neutral-500);
  --heading: var(--color-navy);
  --surface: var(--color-neutral-0);
  --surface-alt: var(--color-neutral-50);
  --surface-tint: var(--color-sky-50);
  --surface-dark: var(--color-navy);
  --text-on-dark: #FFFFFF;
  --text-muted-on-dark: var(--color-neutral-300);
  --link: var(--color-blue);
  --link-hover: var(--color-blue-700);
  --link-on-dark: var(--color-sky);
  --border: var(--color-neutral-200);
  --border-input: var(--color-neutral-400);
  --action: var(--color-blue);
  --action-hover: var(--color-blue-700);
  --action-text: #FFFFFF;
  --focus-ring: var(--color-blue);
  --focus-ring-on-dark: var(--color-sky);

  --font-serif: var(--wp--preset--font-family--serif, "Source Serif 4", Georgia, serif);
  --font-sans: var(--wp--preset--font-family--sans, "Source Sans 3", system-ui, sans-serif);
  --font-arabic: var(--wp--preset--font-family--arabic, "Noto Naskh Arabic", serif);
  --fs-h1: var(--wp--preset--font-size--h1, clamp(2.25rem, 1.6rem + 2.8vw, 3.8125rem));
  --fs-h2: var(--wp--preset--font-size--h2, clamp(1.875rem, 1.45rem + 1.9vw, 3rem));
  --fs-h3: var(--wp--preset--font-size--h3, clamp(1.5rem, 1.36rem + 0.6vw, 1.875rem));
  --fs-h4: var(--wp--preset--font-size--h4, clamp(1.25rem, 1.2rem + 0.2vw, 1.375rem));
  --fs-lead: var(--wp--preset--font-size--lead, clamp(1.1875rem, 1.13rem + 0.25vw, 1.3125rem));
  --fs-body: var(--wp--preset--font-size--body, clamp(1.0625rem, 1.04rem + 0.1vw, 1.125rem));
  --fs-body-ar: var(--wp--preset--font-size--body-ar, clamp(1.1875rem, 1.17rem + 0.1vw, 1.25rem));
  --fs-ui: var(--wp--preset--font-size--ui, 1rem);
  --fs-small: var(--wp--preset--font-size--small, 0.875rem);
  --fs-eyebrow: var(--wp--preset--font-size--eyebrow, 0.8125rem);
  --lh-tight: 1.1; --lh-heading: 1.2; --lh-body: 1.6; --lh-body-ar: 1.8;

  --space-1: var(--wp--preset--spacing--1, 4px);
  --space-2: var(--wp--preset--spacing--2, 8px);
  --space-3: var(--wp--preset--spacing--3, 12px);
  --space-4: var(--wp--preset--spacing--4, 16px);
  --space-5: var(--wp--preset--spacing--5, 24px);
  --space-6: var(--wp--preset--spacing--6, 32px);
  --space-7: var(--wp--preset--spacing--7, 48px);
  --space-8: var(--wp--preset--spacing--8, 64px);
  --space-9: var(--wp--preset--spacing--9, 96px);
  --space-10: var(--wp--preset--spacing--10, 120px);
  --radius-sm: var(--wp--custom--radius--sm, 4px);
  --radius-md: var(--wp--custom--radius--md, 6px);
  --radius-lg: var(--wp--custom--radius--lg, 12px);
  --container-max: 1200px; --gutter: 24px; --margin-page: 16px;
  --section-space: 56px;
  --measure: 66ch;
  --focus-width: 2px; --focus-offset: 2px; --touch-target: 44px;
  --shadow-1: var(--wp--preset--shadow--soft, 0 1px 2px rgba(13, 30, 63, .08), 0 2px 8px rgba(13, 30, 63, .06));
  --icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
  --icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
@media (min-width: 640px)  { :root { --margin-page: 32px; --section-space: 72px; } }
@media (min-width: 1024px) { :root { --margin-page: 40px; --section-space: 104px; } }

/* ---------- 2. Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  margin: 0; background: var(--surface); color: var(--text);
  font-family: var(--font-serif); font-size: var(--fs-body); line-height: var(--lh-body);
  text-rendering: optimizeLegibility;
}
/* WordPress wrappers: no extra spacing between template parts */
body .wp-site-blocks { padding: 0; }
body .wp-site-blocks > * { margin-block: 0; }
.entry-content > *, .wp-block-post-content > * { margin-block: 0; }
img, svg { display: block; max-inline-size: 100%; }
picture { display: block; }
h1, h2, h3, h4 { font-family: var(--font-serif); font-weight: 600; color: var(--heading); margin: 0; text-wrap: balance; }
h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); letter-spacing: -0.01em; }
h2 { font-size: var(--fs-h2); line-height: 1.15; letter-spacing: -0.005em; }
h3 { font-size: var(--fs-h3); line-height: 1.25; }
h4 { font-size: var(--fs-h4); line-height: 1.3; }
p { margin: 0; }
p + p { margin-block-start: 1em; }
a { color: var(--link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--link-hover); text-decoration-thickness: 2px; }
:focus-visible { outline: var(--focus-width) solid var(--focus-ring); outline-offset: var(--focus-offset); border-radius: 2px; }
.on-dark :focus-visible, .is-style-section-dark :focus-visible { outline-color: var(--focus-ring-on-dark); }
:lang(ar) { font-family: var(--font-arabic); font-size: var(--fs-body-ar); line-height: var(--lh-body-ar); }
[dir="rtl"] .icon-dir { transform: scaleX(-1); }
.visually-hidden, .screen-reader-text { position: absolute !important; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; } }

.container { inline-size: 100%; max-inline-size: calc(var(--container-max) + 2 * var(--margin-page)); margin-inline: auto; padding-inline: var(--margin-page); }
.measure { max-inline-size: var(--measure); }

/* Skip link (output by the theme in wp_body_open; works without JS) */
.skip-link { position: absolute; inset-inline-start: var(--space-4); inset-block-start: -100px; z-index: 100000;
  background: var(--color-navy); color: #fff; padding: var(--space-3) var(--space-4); font-family: var(--font-sans); font-weight: 600; border-radius: var(--radius-md); }
.skip-link:focus { inset-block-start: var(--space-4); outline-color: var(--focus-ring-on-dark); color: #fff; }
main:focus { outline: none; }

/* ---------- 3. UI text (paragraph classes / block styles) ---------- */
.eyebrow, .is-style-eyebrow { display: block; font-family: var(--font-sans); font-size: var(--fs-eyebrow); font-weight: 700; line-height: 1.2;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-sky-700); margin-block-end: var(--space-4); }
.on-dark .eyebrow, .on-dark .is-style-eyebrow { color: var(--color-sky); }
.lead, .is-style-lead { font-size: var(--fs-lead); line-height: 1.5; color: var(--text); }
.small, .note, .is-style-note { font-family: var(--font-sans); font-size: var(--fs-small); line-height: 1.4; color: var(--text-muted); }
.on-dark .note, .on-dark .small { color: var(--text-muted-on-dark); }

/* ---------- 4. Buttons and links (core/buttons) ---------- */
.btn,
.wp-block-button .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  min-block-size: var(--touch-target); padding: 12px 22px; border-radius: var(--radius-md); border: 2px solid transparent;
  font-family: var(--font-sans); font-size: var(--fs-ui); font-weight: 600; line-height: 1.25; text-decoration: none; text-align: center;
  background: var(--action); color: var(--action-text); cursor: pointer; transition: background-color .15s ease; box-shadow: none; word-break: normal; }
.btn:hover,
.wp-block-button .wp-block-button__link:hover { background: var(--action-hover); color: var(--action-text); text-decoration: none; }
.on-dark .btn,
.on-dark .wp-block-button .wp-block-button__link { background: #fff; color: var(--color-navy); }
.on-dark .btn:hover,
.on-dark .wp-block-button .wp-block-button__link:hover { background: var(--color-sky-100); color: var(--color-navy); }
.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4); margin: 0; }
.wp-block-buttons > .wp-block-button { margin: 0; }

.text-link a, a.text-link { display: inline-flex; align-items: center; gap: var(--space-2); font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-ui);
  min-block-size: var(--touch-target); }
.text-link a::after { content: ""; inline-size: 18px; block-size: 18px; flex: none; background: currentColor;
  -webkit-mask: var(--icon-arrow) center / contain no-repeat; mask: var(--icon-arrow) center / contain no-repeat; }
[dir="rtl"] .text-link a::after { transform: scaleX(-1); }
.on-dark a:not(.btn):not(.wp-block-button__link) { color: var(--link-on-dark); }
.on-dark a:not(.btn):not(.wp-block-button__link):hover { color: #fff; }

/* ---------- 5. Header and navigation (block: aintellect/site-header) ---------- */
.site-header { background: var(--surface); border-block-end: 1px solid var(--border); position: relative; z-index: 20; }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); min-block-size: 72px; padding-block: var(--space-3); }
.brand { display: inline-flex; align-items: center; padding: 4px; margin-inline-start: -4px; }
.brand__logo { display: block; block-size: 34px; inline-size: auto; }   /* horizontal lockup (Brand v1.2): 34px mobile, 42px desktop */
.nav-toggle { display: inline-flex; align-items: center; gap: var(--space-2); min-block-size: var(--touch-target); min-inline-size: var(--touch-target);
  padding: 8px 14px; border: 1px solid var(--border-input); border-radius: var(--radius-md); background: #fff; color: var(--color-navy);
  font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-ui); cursor: pointer; }
.nav-toggle svg { inline-size: 20px; block-size: 20px; }
.nav-toggle .icon-close { display: none; }
.nav-toggle[aria-expanded="true"] .icon-open { display: none; }
.nav-toggle[aria-expanded="true"] .icon-close { display: block; }
.site-nav ul { list-style: none; margin: 0; padding: 0; }
.site-nav a { display: flex; align-items: center; min-block-size: var(--touch-target); font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-ui);
  color: var(--color-navy); text-decoration: none; }
.site-nav a:hover { color: var(--link); text-decoration: underline; text-decoration-thickness: 2px; }
.site-nav a[aria-current="page"] { color: var(--link); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }

.js .site-nav { display: none; position: absolute; inset-inline: 0; inset-block-start: 100%; background: var(--surface);
  border-block-end: 1px solid var(--border); box-shadow: var(--shadow-1); }
.js .site-nav.is-open { display: block; }
.site-nav__list { padding-block: var(--space-2) var(--space-4); }
.site-nav li a { padding-inline: var(--margin-page); border-block-start: 1px solid var(--color-neutral-100); }
.site-nav a.is-current-parent { color: var(--link); }
/* Submenus (disclosure). Mobile: children always listed, indented under their parent. */
.has-sub { position: relative; }
.sub-toggle { display: none; align-items: center; justify-content: center; min-block-size: var(--touch-target); min-inline-size: 32px; padding: 0;
  border: 0; border-radius: var(--radius-sm); background: none; color: var(--color-navy); cursor: pointer; }
.sub-toggle svg { inline-size: 18px; block-size: 18px; transition: transform .15s ease; }
.sub-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.site-nav .sub-menu li a { padding-inline-start: calc(var(--margin-page) + var(--space-5)); font-weight: 400; }
html:not(.js) .site-header__inner { flex-wrap: wrap; }
html:not(.js) .nav-toggle { display: none; }
html:not(.js) .site-nav { inline-size: 100%; }

@media (min-width: 1024px) {
  .site-header__inner { min-block-size: 0; padding-block: var(--space-4); align-items: center; }
  .brand__logo { block-size: 42px; }
  .nav-toggle { display: none; }
  .js .site-nav, .site-nav { display: block; position: static; box-shadow: none; border: 0; inline-size: auto; }
  html:not(.js) .site-nav { inline-size: auto; }
  .site-nav__list { display: flex; flex-wrap: wrap; justify-content: flex-end; column-gap: var(--space-5); row-gap: 0; padding: 0; }
  .site-nav li a { padding-inline: 0; border: 0; }
  .site-nav a.is-current-parent { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
  .has-sub { display: flex; align-items: center; gap: 2px; }
  .sub-toggle { display: inline-flex; margin-inline-end: -8px; }
  .sub-toggle:hover { color: var(--link); }
  .site-nav .sub-menu { display: none; position: absolute; inset-block-start: 100%; inset-inline-start: -16px; z-index: 30; min-inline-size: 260px;
    padding-block: var(--space-2); background: #fff; border: 1px solid var(--border); border-block-start: 2px solid var(--color-blue);
    border-radius: 0 0 var(--radius-md) var(--radius-md); box-shadow: var(--shadow-1); }
  .site-nav .has-sub.is-open > .sub-menu { display: block; }
  html:not(.js) .has-sub:hover > .sub-menu, html:not(.js) .has-sub:focus-within > .sub-menu { display: block; }
  .site-nav .sub-menu li a { padding-inline: 16px; color: var(--color-ink); font-weight: 600; white-space: nowrap; }
  .site-nav .sub-menu li a:hover, .site-nav .sub-menu li a[aria-current="page"] { color: var(--link); background: var(--color-sky-50); }
}

/* ---------- 6. Sections (core/group + block styles) ---------- */
.section { padding-block: var(--section-space); }
.section--alt, .is-style-section-alt { background: var(--surface-alt); }
.section--tint, .is-style-section-tint { background: var(--surface-tint); }
.section--dark, .is-style-section-dark { background: var(--surface-dark); color: var(--text-on-dark); }
.is-style-section-alt, .is-style-section-tint, .is-style-section-dark { padding-block: var(--section-space); }
.section--dark h1, .section--dark h2, .section--dark h3, .section--dark h4,
.is-style-section-dark h1, .is-style-section-dark h2, .is-style-section-dark h3, .is-style-section-dark h4 { color: #fff; }
.section--tight { padding-block: calc(var(--section-space) * 0.6); }
.section-head { max-inline-size: 760px; margin-block-end: var(--space-7); }
.section-head h2 + .lead, .section-head h1 + .lead { margin-block-start: var(--space-4); }
.section-head p:not(.lead):not(.eyebrow) { margin-block-start: var(--space-4); }
.section-foot { margin-block-start: var(--space-6); }
.stack > * + * { margin-block-start: var(--space-4); }
.stack-lg > * + * { margin-block-start: var(--space-6); }

.split { display: grid; gap: var(--space-7); }
@media (min-width: 1024px) {
  .split { grid-template-columns: 1fr 1fr; gap: var(--space-8); align-items: center; }
  .split--7-5 { grid-template-columns: 7fr 5fr; }
  .split--5-7 { grid-template-columns: 5fr 7fr; }
  .split--top { align-items: start; }
}
.split > * { min-inline-size: 0; }

/* ---------- 7. Hero (patterns: hero-home, page-hero) ---------- */
.hero { background: var(--surface-dark); color: var(--text-on-dark); padding-block: var(--space-8) var(--space-8); }
.hero h1 { color: #fff; max-inline-size: 18ch; }
.hero .lead { color: #fff; margin-block-start: var(--space-5); max-inline-size: 38rem; }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-6); margin-block-start: var(--space-6); }
.hero__actions > * { margin: 0; }
@media (min-width: 1024px) { .hero { padding-block: var(--space-9) var(--space-10); } }

.page-hero { background: var(--surface-dark); color: var(--text-on-dark); padding-block: var(--space-8); }
.page-hero h1 { color: #fff; max-inline-size: 20ch; }
.page-hero .lead { color: #fff; margin-block-start: var(--space-5); max-inline-size: 40rem; }
@media (min-width: 1024px) { .page-hero { padding-block: var(--space-9); } }

/* ---------- 8. Images (core/image) ---------- */
.wp-block-image.media { margin: 0; }
.wp-block-image.media img, img.media { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg); background: var(--color-neutral-100); max-inline-size: 100%; }
.wp-block-image.media--tall img { object-position: 50% 35%; }
@media (min-width: 1024px) { .wp-block-image.media--tall img { aspect-ratio: 4 / 5; } }

/* ---------- 9. Feature points (pattern section: points) ---------- */
.points { display: grid; gap: var(--space-6) var(--space-7); list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .points { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .points--3 { grid-template-columns: repeat(3, 1fr); } }
.point, .is-style-top-rule { border-block-start: 2px solid var(--color-blue); padding-block-start: var(--space-5); }
.on-dark .point { border-block-start-color: var(--color-sky); }
.point h3 { font-size: var(--fs-h4); line-height: 1.3; margin-block-end: var(--space-3); }
.point p { color: var(--text); }
.on-dark .point p { color: var(--text-muted-on-dark); }

/* ---------- 10. Steps (numbered with CSS counters) ---------- */
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; counter-reset: step; }
.step { counter-increment: step; position: relative; display: grid; grid-template-columns: 48px 1fr; gap: var(--space-4);
  padding-block: var(--space-5); border-block-start: 1px solid var(--border); }
.step:last-child { border-block-end: 1px solid var(--border); }
.step::before { content: counter(step, decimal-leading-zero); font-family: var(--font-sans); font-weight: 700; font-size: 1.25rem; line-height: 1.3;
  color: var(--color-blue); }
.step h3 { font-size: var(--fs-h4); line-height: 1.3; }
.step p { margin-block-start: var(--space-2); }
.step .small { margin-block-start: var(--space-1); }
@media (min-width: 768px) {
  .steps--grid { grid-template-columns: repeat(2, 1fr); column-gap: var(--space-6); }
  .steps--grid .step:nth-last-child(2) { border-block-end: 1px solid var(--border); }
}
@media (min-width: 1024px) {
  .steps--grid { grid-template-columns: repeat(3, 1fr); }
  .steps--grid .step:nth-last-child(3) { border-block-end: 1px solid var(--border); }
  .steps--grid .step { grid-template-columns: 1fr; gap: var(--space-3); padding-block: var(--space-6); }
}

/* ---------- 11. Provisions (core/list, class provisions) ---------- */
.provisions { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
.provisions li { display: flex; align-items: center; gap: var(--space-3); min-block-size: 76px; padding: var(--space-4); background: #fff;
  border: 1px solid var(--border); border-inline-start: 3px solid var(--color-blue); border-radius: var(--radius-md);
  font-family: var(--font-sans); font-weight: 600; color: var(--color-navy); line-height: 1.3; margin: 0; }
@media (min-width: 1024px) { .provisions { gap: var(--space-4); } }   /* tile size as in the approved render (76px, all widths) */

/* ---------- 12. Duties split ---------- */
.duties { display: grid; gap: var(--space-4); }
@media (min-width: 768px) { .duties { grid-template-columns: 1fr 1fr; } }
.duty { padding: var(--space-6); border-radius: var(--radius-lg); border: 1px solid var(--border); background: #fff; }
.duty--ours { background: var(--color-navy); color: #fff; border-color: var(--color-navy); }
.duty--ours h3 { color: #fff; }
.duty h3 { font-size: var(--fs-h4); margin-block-end: var(--space-4); }
.checklist { list-style: none; margin: 0; padding: 0; }
.checklist li { display: flex; gap: var(--space-3); padding-block: var(--space-2); font-family: var(--font-sans); font-size: 1.0625rem; font-weight: 600; margin: 0; }
.checklist li::before { content: ""; inline-size: 20px; block-size: 20px; flex: none; margin-block-start: 3px; background: var(--color-blue);
  -webkit-mask: var(--icon-check) center / contain no-repeat; mask: var(--icon-check) center / contain no-repeat; }
.duty--ours .checklist li::before { background: var(--color-sky); }

/* ---------- 13. Statement (core/quote, class statement) ---------- */
.statement, .wp-block-quote.statement { margin: 0; padding: 0; padding-inline-start: var(--space-5); border: 0; border-inline-start: 3px solid var(--color-blue); font-size: var(--fs-h4); line-height: 1.5; color: var(--color-navy); font-style: normal; }
.statement p { font-size: inherit; line-height: inherit; }
.on-dark .statement { border-inline-start-color: var(--color-sky); color: #fff; }
@media (min-width: 1024px) { .statement, .wp-block-quote.statement { font-size: var(--fs-h3); line-height: 1.35; } }

/* ---------- 14. Cards ---------- */
.cards { display: grid; gap: var(--space-4); list-style: none; margin: 0; padding: 0; }
@media (min-width: 768px) { .cards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cards--3 { grid-template-columns: repeat(3, 1fr); } .cards--5 { grid-template-columns: repeat(3, 1fr); } }
.card { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-6); }
.section--alt .card, .section--tint .card, .is-style-section-alt .card, .is-style-section-tint .card { border-color: transparent; box-shadow: var(--shadow-1); }
.card h3 { font-size: var(--fs-h4); margin-block-end: var(--space-3); }

/* ---------- 15. Facts list ---------- */
.facts { margin: 0; display: grid; gap: 0; }
.facts > div { display: grid; gap: var(--space-1); padding-block: var(--space-4); border-block-start: 1px solid var(--border); }
.facts > div:last-child { border-block-end: 1px solid var(--border); }
@media (min-width: 640px) { .facts > div { grid-template-columns: 220px 1fr; gap: var(--space-5); } }
.facts > div > p { margin: 0; }
.facts .facts__label { font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-small); color: var(--text-muted); text-transform: uppercase; letter-spacing: .06em; padding-block-start: 3px; }
.facts .facts__value { margin: 0; color: var(--color-navy); }

/* ---------- 16. FAQ (core/details) ---------- */
.faq { border-block-start: 1px solid var(--border); }
.faq details { border-block-end: 1px solid var(--border); margin: 0; }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--space-4);
  min-block-size: var(--touch-target); padding-block: var(--space-5); font-family: var(--font-serif); font-weight: 600; font-size: var(--fs-h4); line-height: 1.3; color: var(--color-navy); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; flex: none; inline-size: 14px; block-size: 14px;
  background: linear-gradient(var(--color-blue), var(--color-blue)) center / 14px 2px no-repeat,
              linear-gradient(var(--color-blue), var(--color-blue)) center / 2px 14px no-repeat; }
.faq details[open] summary::after { background: linear-gradient(var(--color-blue), var(--color-blue)) center / 14px 2px no-repeat; }
.faq summary:hover { color: var(--link); }
.faq details > :not(summary) { max-inline-size: var(--measure); margin-block-start: 0; }
.faq details > p + p { margin-block-start: 1em; }
.faq details > :last-child:not(summary) { padding-block-end: var(--space-5); }
.faq-page { max-inline-size: 860px; }

/* ---------- 17. CTA band (synced pattern) ---------- */
.cta-band { background: var(--surface-dark); color: #fff; }
.cta-band__inner { display: grid; gap: var(--space-5); align-items: center; }
.cta-band h2 { color: #fff; }
.cta-band p { color: var(--text-muted-on-dark); font-size: var(--fs-lead); margin-block-start: var(--space-3); }
@media (min-width: 1024px) { .cta-band__inner { grid-template-columns: 1fr auto; gap: var(--space-8); } }

/* ---------- 18. Form (block: aintellect/contact-form) ---------- */
.form { display: grid; gap: var(--space-5); }
.form__row { display: grid; gap: var(--space-5); align-items: start; }
@media (min-width: 640px) { .form__row { grid-template-columns: 1fr 1fr; } }
.field { display: grid; gap: var(--space-2); align-content: start; }
.field label, .field legend { font-family: var(--font-sans); font-weight: 600; font-size: var(--fs-ui); color: var(--color-navy); }
.field .hint { font-family: var(--font-sans); font-size: var(--fs-small); color: var(--text-muted); margin: 0; }
.field .opt { font-weight: 400; color: var(--text-muted); }
.field input, .field select, .field textarea { inline-size: 100%; min-block-size: var(--touch-target); padding: 10px 12px; border: 1px solid var(--border-input); border-radius: var(--radius-md);
  background: #fff; color: var(--text); font-family: var(--font-sans); font-size: 1.0625rem; line-height: 1.4; margin: 0; }
.field textarea { min-block-size: 140px; resize: vertical; }
.field select { appearance: none; padding-inline-end: 40px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%230D1E3F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; }
[dir="rtl"] .field select { background-position: left 12px center; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 1px; border-color: var(--color-blue); }
.field .error { display: flex; gap: var(--space-2); font-family: var(--font-sans); font-size: var(--fs-small); color: var(--color-error); margin: 0; }
.field .error[hidden] { display: none; }
.field--error input, .field--error select, .field--error textarea { border-color: var(--color-error); border-width: 2px; }
.form p + p { margin-block-start: 0; }
.hp-field { position: absolute; inset-inline-start: -10000px; inline-size: 1px; block-size: 1px; overflow: hidden; }
.form-panel { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-6) var(--space-5); box-shadow: var(--shadow-1); }
@media (min-width: 640px) { .form-panel { padding: var(--space-7); } }
.notice { padding: var(--space-4) var(--space-5); border-radius: var(--radius-md); font-family: var(--font-sans); margin: 0; }
.notice--success { background: var(--color-success-bg); color: var(--color-success); }
.notice--error { background: var(--color-error-bg); color: var(--color-error); font-weight: 600; }
.notice[hidden] { display: none; }
.notice { scroll-margin-block-start: var(--space-6); }
.link-button { background: none; border: 0; padding: 0; min-block-size: var(--touch-target); font: inherit; font-family: var(--font-sans); font-weight: 600;
  color: var(--link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; cursor: pointer; }
.link-button:hover { color: var(--link-hover); text-decoration-thickness: 2px; }
.link-button[hidden], html:not(.js) [data-reveal-email] { display: none; }
.email-reveal a { font-family: var(--font-sans); font-weight: 600; }

/* ---------- 19. Footer (block: aintellect/site-footer) ---------- */
.site-footer { background: var(--color-ink); color: var(--text-muted-on-dark); font-family: var(--font-sans); font-size: var(--fs-small); }
.site-footer::before { content: ""; display: block; block-size: 4px; background: linear-gradient(90deg, var(--color-navy), var(--color-blue)); }
[dir="rtl"] .site-footer::before { background: linear-gradient(-90deg, var(--color-navy), var(--color-blue)); }
.site-footer__top { display: grid; gap: var(--space-7); padding-block: var(--space-8) var(--space-7); }
@media (min-width: 1024px) { .site-footer__top { grid-template-columns: 4fr 8fr; } }
.site-footer__brand img { inline-size: 120px; block-size: auto; }
.site-footer__brand p { margin-block-start: var(--space-4); font-family: var(--font-serif); font-size: 1.0625rem; color: #fff; font-style: italic; }
.footer-nav { display: grid; gap: var(--space-6); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .footer-nav { grid-template-columns: repeat(3, 1fr); } }
.footer-nav h2 { font-family: var(--font-sans); font-size: var(--fs-eyebrow); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; margin-block-end: var(--space-2); }
.footer-nav ul { list-style: none; margin: 0; padding: 0; }
.footer-nav a { display: inline-flex; align-items: center; min-block-size: 40px; font-size: var(--fs-ui); }
.site-footer__legal { border-block-start: 1px solid rgba(180,191,206,.25); padding-block: var(--space-5) var(--space-6); display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); justify-content: space-between; }
.site-footer__legal p { margin: 0; }
.site-footer__legal ul { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--space-5); }
.site-footer__legal a { display: inline-flex; min-block-size: var(--touch-target); align-items: center; }
.site-footer address, address { font-style: normal; }

/* ---------- 20. Prose (privacy, terms, posts) ---------- */
.prose { max-inline-size: var(--measure); }
.prose h2 { font-size: var(--fs-h3); margin-block: var(--space-7) var(--space-3); }
.prose ul { padding-inline-start: 1.25em; }
.prose li + li { margin-block-start: var(--space-2); }
.placeholder-banner { background: var(--color-error-bg); color: var(--color-error); border-inline-start: 4px solid var(--color-error); padding: var(--space-4) var(--space-5);
  font-family: var(--font-sans); font-weight: 600; border-radius: var(--radius-md); }

/* ---------- Utilities ---------- */
.mt-4 { margin-block-start: var(--space-4); } .mt-5 { margin-block-start: var(--space-5); } .mt-6 { margin-block-start: var(--space-6); } .mt-7 { margin-block-start: var(--space-7); }
.h3-size, h2.h3-size { font-size: var(--fs-h3); } .h4-size, h2.h4-size { font-size: var(--fs-h4); }
.hero__extra { color: var(--text-muted-on-dark); margin-block-start: var(--space-4); max-inline-size: 40rem; }
.page-hero .hero__extra { color: var(--text-muted-on-dark); }

/* Blog/archive fallback (index.html) */
.post-list { display: grid; gap: var(--space-6); }
.post-list .wp-block-post-title { font-size: var(--fs-h3); }
.post-list .wp-block-post-title a { color: var(--color-navy); text-decoration: none; }
.post-list .wp-block-post-title a:hover { color: var(--link); text-decoration: underline; }
.post-list .wp-block-post-template { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-6); }
.post-list .wp-block-post-excerpt { margin-block-start: var(--space-3); }
.post-list .wp-block-post-excerpt__excerpt { margin: 0; }

/* ---------- 21. Cookie consent banner (D-019) ---------- */
.consent { position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 1000; background: var(--color-navy); color: #fff;
  border-block-start: 4px solid var(--color-blue); box-shadow: 0 -2px 12px rgba(13, 30, 63, .18); font-family: var(--font-sans); }
.consent[hidden] { display: none; }
.consent__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3) var(--space-5); padding-block: var(--space-4); }
.consent__text { margin: 0; font-size: var(--fs-ui); line-height: 1.5; max-inline-size: 60ch; }
.consent__text a { color: var(--link-on-dark); font-weight: 600; }
.consent__text a:hover { color: #fff; }
.consent__actions { display: flex; gap: var(--space-3); flex: none; }
.consent__btn { min-block-size: var(--touch-target); min-inline-size: 112px; padding: 10px 20px; border: 2px solid #fff; border-radius: var(--radius-md);
  background: transparent; color: #fff; font-family: var(--font-sans); font-size: var(--fs-ui); font-weight: 600; line-height: 1.25; cursor: pointer; transition: background-color .15s ease; }
.consent__btn:hover { background: var(--color-navy-800); }
.consent :focus-visible { outline: var(--focus-width) solid var(--focus-ring-on-dark); outline-offset: var(--focus-offset); }
@media (max-width: 639px) { .consent__actions { inline-size: 100%; } .consent__btn { flex: 1 1 0; } }
.footer-link-button { display: inline-flex; align-items: center; min-block-size: var(--touch-target); padding: 0; border: 0; background: none; cursor: pointer;
  font: inherit; color: var(--link-on-dark); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.footer-link-button:hover { color: #fff; text-decoration-thickness: 2px; }
html:not(.js) .footer-link-button { display: none; }
