/*
Theme Name: Ansvarligt Byggeri
Theme URI: https://ansvarligtbyggeri.dk
Author: Ansvarligt Byggeri
Description: Bloktema til brancheforeningen Ansvarligt Byggeri – sort, hvid og rød efter foreningens kickoff-oplæg. Bygget til WordPress' blokeditor (Site Editor) uden page builder.
Version: 1.0.2
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ansvarligt-byggeri
Tags: block-patterns, full-site-editing, one-column, custom-colors, custom-logo
*/

/* ------------------------------------------------------------------
   Grundlag
   Farver og skrifter kommer fra theme.json (var(--wp--preset--…)).
   Dette ark styrer komponenterne, som redigeres via klassenavne
   i blokkenes "Avanceret → Ekstra CSS-klasser".
   ------------------------------------------------------------------ */

:root {
  --ab-measure: 66ch;
  --ab-radius: 2px;
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
body { -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { text-wrap: balance; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--wp--preset--color--red);
  outline-offset: 2px;
}

/* Læsebredde på løbende tekst */
.ab-measure, .ab-prose > p, .ab-prose > h2, .ab-prose > h3, .ab-prose > ul, .ab-prose > ol, .ab-prose > .wp-block-quote {
  max-width: var(--ab-measure);
}
.wp-block-group.ab-prose > h2 { margin-block-start: 1.6rem; }
.wp-block-group.ab-prose > h2:first-child { margin-block-start: 0; }

/* ------------------------------------------------------------------
   Typografiske hjælpeklasser
   ------------------------------------------------------------------ */

/* Lille rød versal-label med rød firkant foran */
.ab-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .6em;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--wp--preset--color--red);
  margin-bottom: .2rem;
}
.ab-eyebrow::before { content: ""; width: .55em; height: .55em; background: var(--wp--preset--color--red); flex: none; }
.ab-dark .ab-eyebrow { color: var(--wp--preset--color--red-light); }
.ab-dark .ab-eyebrow::before { background: var(--wp--preset--color--red); }

/* Bærende sætning i Georgia-kursiv */
.ab-voice {
  font-family: var(--wp--preset--font-family--serif);
  font-style: italic;
  font-weight: 400;
  line-height: 1.35;
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  color: var(--wp--preset--color--ink-3);
  max-width: 60ch;
}
.ab-dark .ab-voice { color: #e6e6e9; }
.ab-voice.is-large { font-size: clamp(1.2rem, 2vw, 1.55rem); }

/* Grå note */
.ab-note { font-size: .9rem; color: var(--wp--preset--color--mute); max-width: 60ch; }
.ab-dark .ab-note { color: #b9b9be; }


/* Markering af tekst, der skal afklares */
.ab-check {
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--wp--preset--color--red-dark);
  background: #fdeaf0;
  padding: .15em .5em;
  border-radius: var(--ab-radius);
  vertical-align: middle;
}

/* Link med rød understregning */
.ab-arrow a, a.ab-arrow {
  font-weight: 700;
  text-decoration: none;
  border-bottom: 2px solid var(--wp--preset--color--red);
  padding-bottom: 1px;
}
.ab-arrow a:hover, a.ab-arrow:hover { color: var(--wp--preset--color--red-dark); }
.ab-dark .ab-arrow a:hover { color: #ffd2de; }

/* ------------------------------------------------------------------
   Sektioner (grupper i fuld bredde med indhold i læsebredde)
   ------------------------------------------------------------------ */
.ab-section { padding-block: var(--wp--preset--spacing--50); }
.ab-section.is-tight { padding-block: var(--wp--preset--spacing--40); }
.ab-section + .ab-section:not(.ab-dark):not(.ab-status) { border-top: 1px solid var(--wp--preset--color--line); }
/* Indre wrapper: én centreret kolonne, indhold venstrestillet */
.ab-inner { max-width: var(--wp--style--global--content-size, 1120px); }
.wp-block-group.ab-inner > * + * { margin-block-start: 1.1rem; }
.wp-block-group.ab-section-head { margin-bottom: clamp(1.6rem, 3vw, 2.6rem); }
.wp-block-group.ab-section-head > * + * { margin-block-start: .9rem; }
.ab-section-head h2 { max-width: var(--ab-measure); }
.wp-block-group.ab-inner > .ab-section-head + * { margin-block-start: 0; }

/* Sidehoved på undersider */
.ab-page-head { padding-block: clamp(2.4rem, 5vw, 4.4rem) clamp(1.6rem, 3vw, 2.6rem); }
.ab-page-head h1 { max-width: var(--ab-measure); }

/* ------------------------------------------------------------------
   Forsidens hero
   ------------------------------------------------------------------ */
.ab-hero { padding-block: clamp(3rem, 7vw, 6rem) clamp(2.6rem, 6vw, 5rem); }
.wp-block-group.ab-hero-inner > * + * { margin-block-start: 1.6rem; }
.wp-block-group.ab-hero-inner > .ab-eyebrow { margin-block-start: 1.6rem; }
.ab-hero-inner::before { content: ""; display: block; width: 28px; height: 28px; background: var(--wp--preset--color--red); }
.ab-hero h1 {
  font-size: var(--wp--preset--font-size--display);
  max-width: 20ch;
  line-height: 1.02;
  letter-spacing: -0.025em;
}
.ab-hero .ab-voice { font-size: clamp(1.2rem, 2vw, 1.55rem); color: #e6e6e9; max-width: 52ch; }
.ab-hero .ab-hero-who { color: #a9a9ae; font-size: .95rem; max-width: 62ch; }

/* ------------------------------------------------------------------
   Statusbånd med nedtælling
   ------------------------------------------------------------------ */
.ab-status { border-bottom: 1px solid var(--wp--preset--color--line); padding-block: 1.3rem; }
.wp-block-group.ab-status-inner { display: grid; grid-template-columns: auto 1fr; gap: 1.2rem 2.4rem; align-items: center; }
.wp-block-group.ab-status-inner > * + * { margin-block-start: 0; }
.wp-block-group.ab-countdown > * { margin: 0; }
.ab-countdown-days { font-size: clamp(2rem, 3.4vw, 2.8rem); line-height: 1; letter-spacing: -0.03em; font-weight: 700; }
.ab-countdown-label { font-size: .8rem; text-transform: uppercase; letter-spacing: .14em; color: var(--wp--preset--color--mute); font-weight: 700; margin-top: .25rem; }
.ab-steps { display: flex; flex-wrap: wrap; gap: .6rem 2rem; }
.wp-block-group.ab-step > * + * { margin-block-start: .1rem; }
.ab-step-date { font-weight: 700; font-size: .92rem; margin: 0; }
.ab-step-text { color: var(--wp--preset--color--mute); font-size: .92rem; margin: 0; }
.ab-step.is-done .ab-step-date::after { content: " ✓"; color: #9a9a9e; font-weight: 400; }
.ab-step.is-next .ab-step-date { color: var(--wp--preset--color--red-dark); }
@media (max-width: 700px) { .ab-status-inner { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------
   Kort (positioner, gevinster)
   ------------------------------------------------------------------ */
.ab-card {
  background: var(--wp--preset--color--paper-2);
  padding: 1.6rem 1.5rem 1.7rem;
  border-radius: var(--ab-radius);
  height: 100%;
}
.wp-block-group.ab-card > * + * { margin-block-start: .7rem; }
.ab-card h3 {
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--wp--preset--color--red-dark);
  font-weight: 700;
}
.ab-card p { font-size: .98rem; color: var(--wp--preset--color--ink-3); }
.ab-dark .ab-card { background: var(--wp--preset--color--ink-2); }
.ab-dark .ab-card h3 { color: var(--wp--preset--color--red-light); }
.ab-dark .ab-card p { color: #d7d7da; }
.ab-cards.wp-block-columns { gap: 1.2rem; }
.ab-cards.wp-block-columns .wp-block-column { display: flex; }
.ab-cards.wp-block-columns .wp-block-column > .ab-card { flex: 1; }

/* ------------------------------------------------------------------
   Nøgletal
   ------------------------------------------------------------------ */
.ab-stats.wp-block-columns { gap: 1.2rem; }
.ab-stat { padding-top: 1.4rem; border-top: 3px solid var(--wp--preset--color--ink); }
.wp-block-group.ab-stat > * + * { margin-block-start: .35rem; }
.ab-stat-num { font-size: clamp(1.9rem, 3vw, 2.5rem); line-height: 1; letter-spacing: -0.03em; font-weight: 700; }
.ab-stat-label { font-size: .98rem; color: var(--wp--preset--color--ink-3); }
.ab-stat-source { font-size: .76rem; color: var(--wp--preset--color--mute); }
.ab-dark .ab-stat { border-top-color: #fff; }
.ab-dark .ab-stat-label { color: #d7d7da; }

/* ------------------------------------------------------------------
   Tidslinje
   ------------------------------------------------------------------ */
.ab-timeline { max-width: 46rem; }
.wp-block-group.ab-timeline > .wp-block-group + .wp-block-group { margin-block-start: 0; }
.wp-block-group.ab-tl-item > * + * { margin-block-start: 0; }
.ab-tl-item {
  display: grid;
  grid-template-columns: 9.5rem 1fr;
  gap: 1.2rem;
  padding: 1.05rem 0;
  border-top: 1px solid var(--wp--preset--color--line);
}
.ab-tl-item:last-child { border-bottom: 1px solid var(--wp--preset--color--line); }
.ab-tl-date { font-weight: 700; margin: 0; }
.ab-tl-text { color: var(--wp--preset--color--ink-3); font-size: .98rem; margin: 0; }
.ab-tl-text strong { color: var(--wp--preset--color--ink); }
.ab-tl-item.is-next .ab-tl-date { color: var(--wp--preset--color--red-dark); }
.ab-tl-item.is-next .ab-tl-date::before { content: ""; display: inline-block; width: .55em; height: .55em; background: var(--wp--preset--color--red); margin-right: .55em; vertical-align: .05em; }
@media (max-width: 560px) { .ab-tl-item { grid-template-columns: 1fr; gap: .25rem; } }

/* ------------------------------------------------------------------
   Sammenligning: autoriseret virksomhed vs. privat efter B 5
   ------------------------------------------------------------------ */
.ab-compare.wp-block-columns { gap: 1.2rem; }
.ab-compare .wp-block-column { padding: 1.6rem 1.5rem 1.8rem; border-radius: var(--ab-radius); }
.ab-compare .ab-compare-pro { background: var(--wp--preset--color--ink); color: #fff; }
.ab-compare .ab-compare-pri { background: var(--wp--preset--color--paper-2); }
.ab-compare h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 1rem; }
.ab-compare .ab-compare-pro h3 { color: var(--wp--preset--color--red-light); }
.ab-compare .ab-compare-pri h3 { color: var(--wp--preset--color--red-dark); }
.ab-compare ul { list-style: none; padding: 0; margin: 0; }
.ab-compare li { padding-left: 1.2em; position: relative; font-size: .98rem; margin-bottom: .45rem; }
.ab-compare li::before { content: "+"; position: absolute; left: 0; font-weight: 700; color: var(--wp--preset--color--red); }
.ab-compare li:first-child { padding-left: 0; font-weight: 700; }
.ab-compare li:first-child::before { content: ""; }

.ab-questions { max-width: 46rem; margin-top: 1.6rem; }
.ab-questions p {
  font-family: var(--wp--preset--font-family--serif);
  font-style: italic;
  font-size: 1.25rem;
  line-height: 1.3;
  border-left: 3px solid var(--wp--preset--color--red);
  padding-left: 1rem;
  margin: 0 0 .6rem;
}

/* ------------------------------------------------------------------
   Forslagets tre trin (Stat → Kommune → Boligejer)
   ------------------------------------------------------------------ */
.ab-flow.wp-block-columns { gap: 1.2rem; }
.ab-flow .wp-block-column { background: var(--wp--preset--color--paper-2); padding: 1.6rem 1.5rem 1.8rem; border-radius: var(--ab-radius); }
.ab-flow.wp-block-columns .wp-block-column > * + * { margin-block-start: .6rem; }
.ab-who { font-size: .8rem; text-transform: uppercase; letter-spacing: .14em; color: var(--wp--preset--color--red-dark); font-weight: 700; margin: 0; }
.ab-flow h3 { font-size: 1.12rem; }
.ab-flow p:not(.ab-who) { font-size: .96rem; color: var(--wp--preset--color--ink-3); }

/* ------------------------------------------------------------------
   Medlemmer / logofliser
   ------------------------------------------------------------------ */
.ab-logos.wp-block-columns { gap: 1rem; }
.ab-logo {
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--ab-radius);
  min-height: 9.5rem;
  height: 100%;
  display: grid;
  align-content: space-between;
  gap: 1rem;
  padding: 1.2rem 1.2rem 1.1rem;
}
.wp-block-group.ab-logo > * { margin: 0; }
.ab-logo-cat { font-size: .76rem; text-transform: uppercase; letter-spacing: .12em; color: var(--wp--preset--color--mute); font-weight: 700; }
.ab-logo-name { font-weight: 700; font-size: 1.15rem; letter-spacing: -0.01em; line-height: 1.15; }
.ab-logo-desc { font-size: .88rem; color: var(--wp--preset--color--ink-3); }
.ab-logo .wp-block-image { margin: 0; }
.ab-logo .wp-block-image img { max-height: 44px; width: auto; }
.ab-logo.is-placeholder { border-style: dashed; }
.ab-logo.is-placeholder .ab-logo-name { color: #9a9a9e; font-weight: 500; }
.ab-logo.is-placeholder .ab-logo-cat, .ab-logo.is-placeholder .ab-logo-desc { color: #9a9a9e; }
.ab-logos-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.ab-logos-grid > * { margin: 0; }
@media (max-width: 900px) { .ab-logos-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .ab-logos-grid { grid-template-columns: repeat(2, 1fr); } }
.ab-member-cat { margin-top: 2.2rem; }
.ab-member-cat:first-of-type { margin-top: 0; }

/* ------------------------------------------------------------------
   Lister: fordele og kodeks
   ------------------------------------------------------------------ */
.ab-benefits { list-style: none; padding: 0; margin: 0; max-width: 46rem; }
.ab-benefits li { position: relative; padding-left: 2rem; margin-bottom: .9rem; color: var(--wp--preset--color--ink-3); }
.ab-benefits li::before { content: ""; position: absolute; left: 0; top: .5em; width: .6em; height: .6em; background: var(--wp--preset--color--red); }
.ab-benefits li strong { color: var(--wp--preset--color--ink); }

.ab-kodeks { list-style: none; padding: 0; margin: 0; max-width: 46rem; counter-reset: k; }
.ab-kodeks li {
  counter-increment: k;
  position: relative;
  padding: 1rem 0 1rem 3.2rem;
  margin: 0;
  border-top: 1px solid var(--wp--preset--color--line);
  color: var(--wp--preset--color--ink-3);
}
.ab-kodeks li:last-child { border-bottom: 1px solid var(--wp--preset--color--line); }
.ab-kodeks li::before { content: counter(k); position: absolute; left: 0; top: 1.05rem; font-weight: 700; color: var(--wp--preset--color--red-dark); font-size: 1.3rem; line-height: 1; }
.ab-kodeks li strong { color: var(--wp--preset--color--ink); }

.ab-sources { font-size: .84rem; color: var(--wp--preset--color--mute); padding-left: 1.2em; max-width: var(--ab-measure); }
.ab-sources li { margin-bottom: .35rem; }
.ab-sources a { color: inherit; }

/* Citat med kilde */
.ab-prose .wp-block-quote cite, .wp-block-quote.ab-quote cite { display: block; margin-top: .6rem; font-style: normal; font-size: .82rem; color: var(--wp--preset--color--mute); }

/* ------------------------------------------------------------------
   Kontakt / presse
   ------------------------------------------------------------------ */
.ab-contact.wp-block-columns { gap: 1.2rem; }
.ab-contact .ab-card p { color: var(--wp--preset--color--ink); }
.ab-contact .ab-card .ab-note { color: var(--wp--preset--color--mute); font-size: .86rem; }
.ab-contact .ab-card .ab-voice { font-size: 1.2rem; color: var(--wp--preset--color--ink); }

/* ------------------------------------------------------------------
   Nyheder (query loop)
   ------------------------------------------------------------------ */
.ab-news .wp-block-post-template { list-style: none; padding: 0; margin: 0; max-width: 46rem; }
.ab-news .wp-block-post { display: grid; grid-template-columns: 9.5rem 1fr; gap: 1.2rem; padding: 1.1rem 0; border-top: 1px solid var(--wp--preset--color--line); margin: 0; }
.ab-news .wp-block-post:last-child { border-bottom: 1px solid var(--wp--preset--color--line); }
.ab-news .wp-block-post-date { color: var(--wp--preset--color--mute); font-size: .95rem; }
.ab-news .ab-news-body > * + * { margin-block-start: .3rem; }
.ab-news .wp-block-post-title { font-size: 1.1rem; }
.ab-news .wp-block-post-title a { text-decoration: none; }
.ab-news .wp-block-post-title a:hover { color: var(--wp--preset--color--red-dark); }
.ab-news .wp-block-post-excerpt { font-size: .96rem; color: var(--wp--preset--color--ink-3); }
.ab-news .wp-block-post-excerpt__more-text { display: none; }
.ab-news .wp-block-query-no-results p { color: var(--wp--preset--color--mute); }
@media (max-width: 560px) { .ab-news .wp-block-post { grid-template-columns: 1fr; gap: .25rem; } }

/* Enkelt nyhed */
.ab-single-head > * + * { margin-block-start: .8rem; }
.ab-single-head .wp-block-post-date { color: var(--wp--preset--color--mute); font-size: .95rem; }
.ab-single-content > * { max-width: var(--ab-measure); }

/* ------------------------------------------------------------------
   Sidehoved
   ------------------------------------------------------------------ */
.ab-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--wp--preset--color--paper);
  border-bottom: 1px solid var(--wp--preset--color--line);
}
.ab-header-inner { min-height: 68px; }
.admin-bar .ab-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ab-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .ab-header { top: 0; } }
.ab-brand { gap: .7rem; }
.ab-brand-title, .ab-footer .ab-brand-title { margin: 0; font-size: 1.12rem; font-weight: 700; letter-spacing: -0.01em; line-height: 1.1; }
.ab-brand-title a { text-decoration: none; display: inline-flex; align-items: center; gap: .7rem; }
.ab-brand-title a::before { content: ""; width: 16px; height: 16px; background: var(--wp--preset--color--red); flex: none; }
.ab-brand-tagline { margin: 0; font-size: .74rem; color: var(--wp--preset--color--mute); line-height: 1.1; padding-left: calc(16px + .7rem); }
.ab-brand-stack { gap: .15rem; }
.ab-nav a { text-decoration: none; color: var(--wp--preset--color--ink-3); }
.ab-nav a:hover { color: var(--wp--preset--color--ink); }
.ab-nav .current-menu-item > a { color: var(--wp--preset--color--ink); box-shadow: inset 0 -2px 0 var(--wp--preset--color--red); }
.ab-nav-cta .wp-block-button__link { padding: .65em 1.15em; font-size: .95rem; }
.ab-header-right { gap: clamp(.6rem, 1.6vw, 1.6rem); }
.ab-nav.wp-block-navigation { gap: clamp(.6rem, 1.6vw, 1.6rem); }
@media (max-width: 860px) {
  .ab-brand-tagline { display: none; }
  .ab-nav.wp-block-navigation { font-size: .9rem; }
}
/* Mobilmenu (kernens overlay) */
.ab-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--paper); padding: 1.2rem clamp(16px, 4vw, 40px); }
.ab-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; padding-top: 3rem; }
.ab-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; padding: .5em 0; }

/* ------------------------------------------------------------------
   Sidefod
   ------------------------------------------------------------------ */
.ab-footer { padding-block: 3rem 2.4rem; font-size: .92rem; }
.ab-footer a { color: #e6e6e9; text-decoration: none; }
.ab-footer a:hover { color: #fff; text-decoration: underline; }
.ab-footer .ab-brand-title a { color: #fff; }
.ab-footer-text { color: #c9c9cd; max-width: 40ch; margin-top: 1rem; }
.ab-footer-h { color: #fff; font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; margin-bottom: .8rem; }
.ab-footer-list { list-style: none; padding: 0; margin: 0; color: #c9c9cd; }
.ab-footer-list li { margin-bottom: .45rem; }
.ab-footer-cols.wp-block-columns { gap: 2rem; }
.ab-legal { border-top: 1px solid #2a2a2e; padding-top: 1.2rem; margin-top: 2rem; font-size: .8rem; color: #8f8f94; gap: .5rem 2rem; }
.ab-legal p { margin: 0; }
.ab-legal a { color: #b9b9be; }

/* ------------------------------------------------------------------
   Knapper
   ------------------------------------------------------------------ */
.wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button__link.is-style-outline {
  background: transparent;
  color: inherit;
  border: 2px solid currentColor;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--paper-2); color: var(--wp--preset--color--ink); border-color: currentColor; }
.ab-dark .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; }
.ab-dark .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255,255,255,.08); color: #fff; }

/* ------------------------------------------------------------------
   Formularer (Contact Form 7, WPForms, Fluent Forms – generelle felter)
   ------------------------------------------------------------------ */
.ab-form { max-width: 40rem; }
.ab-form input[type="text"], .ab-form input[type="email"], .ab-form input[type="tel"], .ab-form input[type="number"], .ab-form select, .ab-form textarea,
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
  font: inherit;
  font-size: 1rem;
  padding: .7em .8em;
  border: 1px solid #c9c9cd;
  border-radius: var(--ab-radius);
  background: #fff;
  color: var(--wp--preset--color--ink);
  width: 100%;
  box-sizing: border-box;
}
.ab-form textarea, .wpcf7 textarea { min-height: 6.5rem; resize: vertical; }
.ab-form label, .wpcf7 label { font-size: .88rem; font-weight: 700; display: block; }
.ab-form label i, .wpcf7 label i { font-style: normal; font-weight: 400; color: var(--wp--preset--color--mute); }
.ab-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 560px) { .ab-form-row { grid-template-columns: 1fr; } }
.ab-form input[type="submit"], .wpcf7 input[type="submit"], .ab-form button[type="submit"] {
  background: var(--wp--preset--color--red);
  color: #fff;
  border: 2px solid var(--wp--preset--color--red);
  border-radius: var(--ab-radius);
  font: inherit;
  font-weight: 700;
  padding: .8em 1.35em;
  cursor: pointer;
  width: auto;
}
.ab-form input[type="submit"]:hover, .wpcf7 input[type="submit"]:hover { background: var(--wp--preset--color--red-dark); border-color: var(--wp--preset--color--red-dark); }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-acceptance label { font-weight: 400; font-size: .92rem; color: var(--wp--preset--color--ink-3); display: flex; gap: .7rem; align-items: flex-start; }
.wpcf7 .wpcf7-acceptance input { width: 1.1em; height: 1.1em; margin-top: .25em; }
.wpcf7 form.sent .wpcf7-response-output { background: var(--wp--preset--color--ink); color: #fff; border: 0; padding: 1.2rem 1.4rem; margin: 1.6rem 0 0; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: var(--wp--preset--color--red); margin: 1.6rem 0 0; }
.wpcf7-not-valid-tip { color: var(--wp--preset--color--red-dark); font-size: .85rem; }

/* ------------------------------------------------------------------
   404
   ------------------------------------------------------------------ */
.ab-404 { padding-block: var(--wp--preset--spacing--60); }
