/* DFAB Cabin theme. Colours are the designer app's tokens (logo red #D20A0A/#900808, site red #FB321E);
   they are repeated here so the theme also works without the plugin. */
:root {
  --background: oklch(0.975 0.003 250);
  --foreground: #2b2f33;
  --card: #fff;
  --primary: #d20a0a;
  --primary-foreground: #fff;
  --muted: oklch(0.955 0.004 250);
  --muted-foreground: #555a5f;
  --border: oklch(0.905 0.005 250);
  --accent: #fdecea;
  --radius: 0.55rem;
  --site-width: 1152px;
  --site-font: "Geist", ui-sans-serif, system-ui, sans-serif;
}
.dark {
  --background: #1d2023;
  --foreground: oklch(0.95 0.004 250);
  --card: #25292d;
  --primary: #fb321e;
  --muted: #2f3438;
  --muted-foreground: oklch(0.7 0.01 255);
  --border: oklch(0.3 0.01 255);
  --accent: #3a2220;
  color-scheme: dark;
}

/* Element defaults go in the "base" layer (shared with the app's Tailwind build) so the app's utility classes
   always win over them. Class-based theme rules below stay unlayered. */
@layer base {
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; }
  body {
    margin: 0;
    background: var(--background);
    color: var(--foreground);
    font-family: var(--site-font);
    font-feature-settings: "ss01", "cv11";
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  img { max-width: 100%; height: auto; }
  a { color: inherit; }
}

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link:focus { position: fixed !important; z-index: 100; top: 8px; left: 8px; width: auto; height: auto; clip: auto; padding: 8px 12px; background: var(--card); border-radius: var(--radius); }

.site { display: flex; min-height: 100dvh; flex-direction: column; }
.site-main { flex: 1; }
.site-container { width: 100%; max-width: var(--site-width); margin-inline: auto; padding-inline: 16px; }

/* ── Buttons ─────────────────────────────────────────────── */
.site-btn {
  display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px;
  border: 1px solid transparent; border-radius: var(--radius);
  font-size: 14px; font-weight: 500; line-height: 1; text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color .15s, border-color .15s, color .15s;
}
.site-btn--primary { background: var(--primary); color: var(--primary-foreground); }
.site-btn--primary:hover { background: #fb321e; }
.dark .site-btn--primary:hover { background: #ff7062; }
.site-btn--outline { border-color: var(--border); background: var(--card); }
.site-btn--outline:hover { border-color: color-mix(in oklch, var(--primary) 50%, var(--border)); }
.site-btn--ghost { color: var(--muted-foreground); }
.site-btn--ghost:hover { background: var(--muted); color: var(--foreground); }
.site-icon-btn {
  display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px;
  border: 0; border-radius: var(--radius); background: transparent; color: var(--muted-foreground); cursor: pointer;
}
.site-icon-btn:hover { background: var(--muted); color: var(--foreground); }
.icon-sun, .dark .icon-moon { display: none; }
.dark .icon-sun { display: block; }

/* ── Header ──────────────────────────────────────────────── */
.site-header {
  position: sticky; top: 0; z-index: 40;
  border-bottom: 1px solid color-mix(in oklch, var(--border) 70%, transparent);
  background: color-mix(in oklch, var(--background) 85%, transparent);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-header__inner { display: flex; align-items: center; gap: 24px; height: 60px; }
.site-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; flex-shrink: 0; }
.site-logo__img { display: block; height: 34px; width: auto; }
.site-logo__img--dark, .dark .site-logo__img--light { display: none; }
.dark .site-logo__img--dark { display: block; }
.site-logo__label {
  border-left: 1px solid var(--border); padding-left: 10px;
  font-size: 11px; font-weight: 600; line-height: 1.2; letter-spacing: .14em; text-transform: uppercase; color: var(--muted-foreground);
}
.site-nav__list { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
.site-nav__list a {
  display: block; padding: 6px 12px; border-radius: calc(var(--radius) - 2px);
  font-size: 14px; color: var(--muted-foreground); text-decoration: none;
}
.site-nav__list a:hover { color: var(--foreground); }
.site-nav__list .current-menu-item > a, .site-nav__list a[aria-current="page"] { background: var(--muted); color: var(--foreground); font-weight: 500; }
.site-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.site-menu-toggle { display: none; }

.site-account { position: relative; }
.site-account__toggle {
  display: flex; align-items: center; gap: 8px; height: 36px; padding: 0 8px 0 4px;
  border: 0; border-radius: 999px; background: transparent; color: var(--foreground); font: inherit; font-size: 14px; cursor: pointer;
}
.site-account__toggle:hover { background: var(--muted); }
.site-account__avatar { width: 28px; height: 28px; border-radius: 999px; border: 1px solid var(--border); }
.site-account__name { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-account__menu {
  position: absolute; right: 0; top: calc(100% + 6px); min-width: 220px; padding: 6px;
  border: 1px solid var(--border); border-radius: calc(var(--radius) + 4px); background: var(--card);
  box-shadow: 0 12px 32px rgb(0 0 0 / .12);
}
.site-account__menu[hidden] { display: none; }
.site-account__menu a { display: block; padding: 7px 10px; border-radius: calc(var(--radius) - 2px); font-size: 14px; text-decoration: none; }
.site-account__menu a:hover { background: var(--muted); }
.site-account__who { margin: 0 0 4px; padding: 6px 10px 10px; border-bottom: 1px solid var(--border); font-size: 14px; }
.site-account__who span { display: block; font-size: 12px; color: var(--muted-foreground); }
.site-account__logout { border-top: 1px solid var(--border); margin-top: 4px; }

@media (max-width: 767px) {
  .site-header__inner { gap: 12px; }
  .site-menu-toggle { display: inline-flex; }
  .site-hide-sm, .site-account__name, .site-logo__label { display: none; }
  .site-nav { display: none; position: absolute; left: 0; right: 0; top: 60px; border-bottom: 1px solid var(--border); background: var(--background); }
  .site-nav.is-open { display: block; }
  .site-nav__list { flex-direction: column; padding: 8px 16px 12px; }
  .site-nav__list a { padding: 10px 12px; }
}

/* ── Footer ──────────────────────────────────────────────── */
.site-footer { border-top: 1px solid var(--border); background: color-mix(in oklch, var(--card) 50%, transparent); font-size: 14px; }
.site-footer__grid { display: grid; gap: 24px; padding-block: 32px; }
@media (min-width: 640px) { .site-footer__grid { grid-template-columns: repeat(3, 1fr); } }
.site-footer p { margin: 0; }
.site-footer a { display: block; color: var(--muted-foreground); text-decoration: none; line-height: 1.8; }
.site-footer a:hover { color: var(--foreground); }
.site-footer__name { font-weight: 600; }
.site-footer__heading { margin-bottom: 4px !important; font-weight: 500; }
.site-footer__muted { color: var(--muted-foreground); }
.site-footer__small { margin-top: 8px !important; font-size: 12px; line-height: 1.6; color: var(--muted-foreground); }
.site-footer__menu { margin: 0; padding: 0; list-style: none; }
.site-footer__bottom { border-top: 1px solid var(--border); padding: 16px; text-align: center; font-size: 12px; color: var(--muted-foreground); }
.site-footer__bottom a { display: inline; line-height: inherit; font-weight: 500; color: var(--foreground); }
.site-footer__bottom a:hover { color: var(--primary); }

/* ── Articles and block content ──────────────────────────── */
.site-article, .site-archive { padding-block: 40px 64px; }
.site-article { max-width: 792px; }
.site-article__header { margin-bottom: 24px; }
.site-article__title { margin: 0; font-size: clamp(1.75rem, 4vw, 2.25rem); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; }
.site-article__meta, .post-card__meta { margin: 0 0 6px; font-size: 13px; color: var(--muted-foreground); }
.site-article__image { margin: 0 0 24px; }
.site-article__image img { border-radius: calc(var(--radius) + 4px); }

.entry-content > * { margin-block: 0 1.1em; }
.entry-content > :where(:not(.alignfull):not(.alignwide):not(.dfab-root)) { max-width: 760px; margin-inline: auto; }
.entry-content .alignwide { max-width: var(--site-width); margin-inline: auto; padding-inline: 16px; }
.entry-content .alignfull { max-width: none; }
.entry-content--flush > * { margin-block: 0; max-width: none; }
.entry-content h1:not(.dfab-root *), .entry-content h2:not(.dfab-root *), .entry-content h3:not(.dfab-root *), .entry-content h4:not(.dfab-root *) { font-weight: 650; line-height: 1.2; letter-spacing: -.015em; margin-top: 1.6em; }
.entry-content h2:not(.dfab-root *) { font-size: 1.6rem; }
.entry-content h3:not(.dfab-root *) { font-size: 1.25rem; }
.entry-content p:not(.dfab-root *) { margin-top: 0; }
.entry-content ul:not(.dfab-root *), .entry-content ol:not(.dfab-root *) { padding-left: 1.4em; }
.entry-content ul:not(.dfab-root *) { list-style: disc; }
.entry-content ol:not(.dfab-root *) { list-style: decimal; }
.entry-content a:not(.wp-block-button__link):not(.site-btn):not(.dfab-root *) { color: var(--primary); text-underline-offset: 3px; }
.entry-content blockquote:not(.dfab-root *) { margin-left: 0; padding-left: 1em; border-left: 3px solid var(--primary); color: var(--muted-foreground); }
.entry-content figure:not(.dfab-root *) { margin-inline: auto; }
.entry-content figcaption:not(.dfab-root *) { font-size: 13px; color: var(--muted-foreground); text-align: center; }
.entry-content table:not(.dfab-root *) { width: 100%; border-collapse: collapse; }
.entry-content th:not(.dfab-root *), .entry-content td:not(.dfab-root *) { padding: 8px; border-bottom: 1px solid var(--border); text-align: left; }
.entry-content code:not(.dfab-root *) { font-family: "Geist Mono", ui-monospace, monospace; font-size: .9em; }
.wp-block-button__link { border-radius: var(--radius); }
.wp-block-button.is-style-outline > .wp-block-button__link { background: var(--card); color: var(--foreground); border: 1px solid var(--border); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--primary); }
.wp-block-button.is-style-text > .wp-block-button__link { background: transparent; color: var(--muted-foreground); }
.wp-block-button.is-style-text > .wp-block-button__link:hover { color: var(--foreground); background: var(--muted); }

/* ── Home page (blocks created on theme activation) ──────── */
.home-hero {
  position: relative; overflow: hidden; padding: 56px 16px; border-bottom: 1px solid var(--border);
  background-image:
    linear-gradient(to right, color-mix(in oklch, var(--border) 45%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in oklch, var(--border) 45%, transparent) 1px, transparent 1px);
  background-size: 32px 32px;
}
.home-hero__cols { gap: 40px; margin: 0 auto !important; }
.home-hero__eyebrow {
  display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px !important; padding: 4px 12px;
  border: 1px solid var(--border); border-radius: 999px; background: var(--card); font-size: 12px; color: var(--muted-foreground);
}
.home-hero__eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: var(--primary); }
.home-hero__title { margin: 0 !important; font-size: clamp(2.25rem, 5vw, 3.1rem) !important; font-weight: 700; line-height: 1.08 !important; letter-spacing: -.025em; text-wrap: balance; }
.home-hero__title mark { background: none; color: var(--primary); }
.home-hero__lead { margin: 16px 0 0 !important; max-width: 36rem; font-size: 1.125rem; color: var(--muted-foreground); text-wrap: pretty; }
.home-hero__actions { margin-top: 28px !important; gap: 12px; }
.home-hero__image { margin: 0 !important; aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid var(--border); border-radius: 16px; box-shadow: 0 20px 40px rgb(0 0 0 / .15); }
.home-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.home-section { padding-top: 40px !important; padding-bottom: 40px !important; }
.home-section__title { margin: 0 !important; font-size: 1.125rem !important; font-weight: 600; letter-spacing: 0; }
.home-section__lead { margin: 2px 0 16px !important; font-size: 14px; color: var(--muted-foreground); }
.home-features { padding: 48px 16px; border-top: 1px solid var(--border); background: color-mix(in oklch, var(--card) 40%, transparent); }
.home-features .wp-block-columns { gap: 24px; margin: 0 auto !important; }
.home-features .feature-title { margin: 0 0 4px !important; font-size: 1rem !important; font-weight: 600; letter-spacing: 0; }
.home-features .feature-title::before {
  content: ""; display: block; width: 36px; height: 36px; margin-bottom: 12px; border-radius: 8px;
  background: color-mix(in oklch, var(--primary) 12%, transparent) var(--feature-icon) center / 20px no-repeat;
}
/* Lucide icons (move-3d, file-down, calculator, cloud) as data URIs, in DFAB red */
.home-features .wp-block-column:nth-child(1) { --feature-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d20a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3v16h16'/%3E%3Cpath d='m5 19 6-6'/%3E%3Cpath d='m2 6 3-3 3 3'/%3E%3Cpath d='m18 16 3 3-3 3'/%3E%3C/svg%3E"); }
.home-features .wp-block-column:nth-child(2) { --feature-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d20a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4'/%3E%3Cpath d='M12 18v-6'/%3E%3Cpath d='m9 15 3 3 3-3'/%3E%3C/svg%3E"); }
.home-features .wp-block-column:nth-child(3) { --feature-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d20a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='16' height='20' x='4' y='2' rx='2'/%3E%3Cline x1='8' x2='16' y1='6' y2='6'/%3E%3Cline x1='16' x2='16' y1='14' y2='18'/%3E%3Cpath d='M16 10h.01M12 10h.01M8 10h.01M12 14h.01M8 14h.01M12 18h.01M8 18h.01'/%3E%3C/svg%3E"); }
.home-features .wp-block-column:nth-child(4) { --feature-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d20a0a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z'/%3E%3C/svg%3E"); }
.home-features .feature-text { margin: 0 !important; font-size: 14px; color: var(--muted-foreground); }

/* ── Lists, 404, comments ───────────────────────────────── */
.post-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.post-card__link { display: block; height: 100%; overflow: hidden; border: 1px solid var(--border); border-radius: calc(var(--radius) + 4px); background: var(--card); text-decoration: none; transition: box-shadow .15s, transform .15s; }
.post-card__link:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgb(0 0 0 / .08); }
.post-card__image img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.post-card__body { padding: 16px; }
.post-card__title { margin: 0; font-size: 1.1rem; line-height: 1.3; }
.post-card__excerpt { margin: 6px 0 0; font-size: 14px; color: var(--muted-foreground); }
.nav-links { display: flex; gap: 8px; justify-content: space-between; margin-top: 32px; }
.nav-links a, .page-numbers { text-decoration: none; }
.site-404 { padding-block: 96px; text-align: center; }
.site-404__code { margin: 0; font-size: 64px; font-weight: 700; color: var(--primary); line-height: 1; }
.site-404__actions { display: flex; justify-content: center; gap: 8px; margin-top: 24px; }
.site-comments { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--border); }
.comment-list { padding-left: 0; list-style: none; }
.comment-form input:not([type="submit"]):not([type="checkbox"]), .comment-form textarea, .search-form input[type="search"] {
  width: 100%; padding: 8px 10px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); color: inherit; font: inherit;
}
.comment-form .submit, .search-submit { padding: 8px 16px; border: 0; border-radius: var(--radius); background: var(--primary); color: #fff; font: inherit; cursor: pointer; }

/* The designer's print view shows only the quotation */
@media print {
  .site-header, .site-footer { display: none !important; }
}

/* ════════════════════════════════════════════════════════════
   Motion & interaction
   ════════════════════════════════════════════════════════════ */

/* Smooth page-to-page transitions (Chrome, Edge, Safari 18+); the header stays put */
@view-transition { navigation: auto; }
.site-header { view-transition-name: site-header; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .28s; }

html { scroll-behavior: smooth; scroll-padding-top: 80px; }

/* Header: shadow once scrolled, tucks away when scrolling down, returns on scroll up */
.site-header { transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .25s, background-color .25s; }
.site-header.is-scrolled { box-shadow: 0 6px 24px -12px rgb(0 0 0 / .18); background: color-mix(in oklch, var(--background) 92%, transparent); }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header__inner { transition: height .25s; }
.site-header.is-scrolled .site-header__inner { height: 54px; }

/* Nav: sliding underline */
.site-nav__list a { position: relative; transition: color .2s, background-color .2s; }
@media (min-width: 768px) {
  .site-nav__list a::after {
    content: ""; position: absolute; left: 12px; right: 12px; bottom: 2px; height: 2px; border-radius: 2px;
    background: var(--primary); transform: scaleX(0); transform-origin: left; transition: transform .25s cubic-bezier(.2,.8,.2,1);
  }
  .site-nav__list a:hover::after { transform: scaleX(1); }
  .site-nav__list .current-menu-item > a::after, .site-nav__list a[aria-current="page"]::after { transform: scaleX(0); }
}
.site-badge {
  display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; margin-left: 6px; padding: 0 5px;
  border-radius: 999px; background: var(--primary); color: #fff; font-size: 10px; font-weight: 600; line-height: 1; vertical-align: 1px;
}
.site-account__menu .site-badge { float: right; margin-top: 2px; }
.site-account__toggle { position: relative; }
.site-account__dot { position: absolute; left: 24px; top: 4px; width: 9px; height: 9px; border-radius: 999px; background: var(--primary); box-shadow: 0 0 0 2px var(--background); }

/* Dropdown and mobile menu open with a little motion */
.site-account__menu:not([hidden]) { animation: dfab-pop .18s cubic-bezier(.2,.8,.2,1); transform-origin: top right; }
@keyframes dfab-pop { from { opacity: 0; transform: translateY(-4px) scale(.97); } }
@media (max-width: 767px) {
  .site-nav.is-open { animation: dfab-drop .25s cubic-bezier(.2,.8,.2,1); }
  @keyframes dfab-drop { from { opacity: 0; transform: translateY(-8px); } }
}

/* Buttons press in; arrows nudge */
.site-btn, .wp-block-button__link, .site-icon-btn { transition: transform .15s, background-color .2s, border-color .2s, color .2s, box-shadow .2s; }
.site-btn:active, .wp-block-button__link:active, .site-icon-btn:active { transform: scale(.97); }
.wp-block-button:not(.is-style-text) > .wp-block-button__link:hover { box-shadow: 0 8px 20px -10px color-mix(in oklch, var(--primary) 70%, transparent); }
.is-style-arrow > .wp-block-button__link::after { content: "→"; display: inline-block; margin-left: 8px; transition: transform .2s; }
.is-style-arrow > .wp-block-button__link:hover::after { transform: translateX(3px); }
[data-theme-toggle] svg { transition: transform .5s cubic-bezier(.2,.8,.2,1); }
[data-theme-toggle]:hover svg { transform: rotate(35deg); }
:focus-visible { outline: 2px solid color-mix(in oklch, var(--primary) 70%, transparent); outline-offset: 2px; }

/* Reveal on scroll (the class is added by theme.js, so nothing hides without JavaScript) */
.js .reveal, .js .reveal-item { opacity: 0; transform: translateY(18px); transition: opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1); transition-delay: var(--reveal-delay, 0ms); }
.js .reveal.is-visible, .js .reveal-item.is-visible { opacity: 1; transform: none; }

/* Hero entrance */
.home-hero__eyebrow, .home-hero__title, .home-hero__lead, .home-hero__actions, .home-hero__checks { animation: dfab-rise .8s cubic-bezier(.2,.8,.2,1) both; }
.home-hero__title { animation-delay: .06s; }
.home-hero__lead { animation-delay: .14s; }
.home-hero__actions { animation-delay: .22s; }
.home-hero__checks { animation-delay: .3s; }
.home-hero .dfab-view-hero { animation: dfab-rise 1s .15s cubic-bezier(.2,.8,.2,1) both; }
@keyframes dfab-rise { from { opacity: 0; transform: translateY(16px); } }
.home-hero { background-position: 0 0; animation: dfab-grid 60s linear infinite; }
@keyframes dfab-grid { to { background-position: 32px 32px, 32px 32px; } }
.home-hero::after {
  content: ""; position: absolute; right: -10%; top: -30%; width: 55%; aspect-ratio: 1; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, color-mix(in oklch, var(--primary) 16%, transparent), transparent 65%);
}
.home-hero__checks { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 22px 0 0 !important; padding: 0 !important; list-style: none !important; font-size: 13px; color: var(--muted-foreground); }
.home-hero__checks li { display: flex; align-items: center; gap: 6px; }
.home-hero__checks li::before {
  content: ""; width: 16px; height: 16px; border-radius: 999px; flex-shrink: 0;
  background: color-mix(in oklch, var(--primary) 14%, transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d20a0a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 10px no-repeat;
}
.home-hero .wp-block-group, .home-hero__cols { position: relative; z-index: 1; }

/* Stats strip with count-up numbers */
.home-stats { margin-top: -28px !important; position: relative; z-index: 2; }
.home-stats .wp-block-columns { gap: 0 !important; margin: 0 !important; border: 1px solid var(--border); border-radius: 18px; background: var(--card); box-shadow: 0 18px 40px -24px rgb(0 0 0 / .25); overflow: hidden; }
.home-stats .wp-block-column { padding: 20px 22px; }
.home-stats .wp-block-column + .wp-block-column { border-left: 1px solid var(--border); }
@media (max-width: 781px) { .home-stats .wp-block-column + .wp-block-column { border-left: 0; border-top: 1px solid var(--border); } }
.home-stat__n { margin: 0 !important; font-size: 2rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.home-stat__label { margin: 2px 0 0 !important; font-size: 13px; color: var(--muted-foreground); }

/* Section headings */
.home-kicker { margin: 0 0 6px !important; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--primary); }
.home-section__title--big { font-size: clamp(1.5rem, 3vw, 2rem) !important; font-weight: 700 !important; letter-spacing: -.02em !important; }
.home-section__lead a { color: var(--primary); text-decoration: none; font-weight: 500; }
.home-section__lead a:hover { text-decoration: underline; }

/* How it works: numbered steps joined by a line that draws in */
.home-steps { position: relative; gap: 28px !important; margin-top: 28px !important; }
.home-step { position: relative; }
.home-step__n {
  position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 0 16px !important;
  border-radius: 14px; background: var(--primary); color: #fff; font-weight: 700; box-shadow: 0 10px 24px -10px var(--primary);
}
.home-step__title { margin: 0 0 6px !important; font-size: 1.1rem !important; font-weight: 600; }
.home-step__text { margin: 0 !important; font-size: 14px; color: var(--muted-foreground); }
@media (min-width: 782px) {
  .home-steps::before {
    content: ""; position: absolute; left: 44px; right: 33%; top: 22px; height: 2px;
    background: linear-gradient(90deg, var(--primary), color-mix(in oklch, var(--primary) 20%, transparent));
    transform: scaleX(0); transform-origin: left; transition: transform 1.2s .3s cubic-bezier(.2,.8,.2,1);
  }
  .home-how.is-visible .home-steps::before, :not(.js) .home-steps::before { transform: scaleX(1); }
}

/* Feature cards lift on hover */
.home-features .wp-block-column { padding: 20px; border-radius: 16px; transition: background-color .25s, transform .25s; }
.home-features .wp-block-column:hover { background: var(--card); transform: translateY(-3px); }

/* Closing call to action above the footer */
.site-cta { position: relative; overflow: hidden; margin: 24px 16px 48px; border-radius: 24px; background: #1d2023; color: #fff; }
@media (min-width: 1184px) { .site-cta { margin-inline: auto; max-width: var(--site-width); } }
.site-cta::before { content: ""; position: absolute; right: -80px; top: -120px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgb(210 10 10 / .55), transparent 70%); }
.site-cta__inner { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding: 40px 32px; }
.site-cta__title { margin: 0; font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.site-cta__text { margin: 6px 0 0; color: rgb(255 255 255 / .7); }
.site-cta__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.site-cta .site-btn { height: 44px; padding: 0 18px; }
.site-cta .site-btn--light { background: #fff; color: #1d2023; }
.site-cta .site-btn--light:hover { transform: translateY(-1px); }
.site-cta .site-btn--glass { border-color: rgb(255 255 255 / .25); color: #fff; }
.site-cta .site-btn--glass:hover { background: rgb(255 255 255 / .1); }

/* Reading progress (scroll-driven, no JavaScript) */
.site-progress { position: fixed; left: 0; right: 0; top: 0; z-index: 60; height: 2px; background: var(--primary); transform-origin: left; transform: scaleX(0); pointer-events: none; }
@supports (animation-timeline: scroll()) {
  .site-progress { animation: dfab-progress-bar linear both; animation-timeline: scroll(root); }
  @keyframes dfab-progress-bar { to { transform: scaleX(1); } }
}
.admin-bar .site-progress { top: 32px; }

/* Back to top */
.site-top {
  position: fixed; right: 18px; bottom: 18px; z-index: 50; display: flex; align-items: center; justify-content: center; width: 42px; height: 42px;
  border: 1px solid var(--border); border-radius: 999px; background: var(--card); color: var(--foreground); cursor: pointer;
  box-shadow: 0 10px 24px -12px rgb(0 0 0 / .35); opacity: 0; transform: translateY(12px) scale(.9); pointer-events: none;
  transition: opacity .25s, transform .25s cubic-bezier(.2,.8,.2,1), border-color .2s;
}
.site-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.site-top:hover { border-color: var(--primary); color: var(--primary); }

/* Details block (FAQ) */
.wp-block-details { border-bottom: 1px solid var(--border); padding: 14px 0; }
.wp-block-details summary { cursor: pointer; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.wp-block-details summary::after { content: "+"; font-weight: 400; transition: transform .25s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js .reveal, .js .reveal-item { opacity: 1; transform: none; }
}
