/*
Theme Name: Beauty Project
Theme URI: https://www.beautyprojectdiarianna.it
Author: Paolo Pasimeni
Description: Tema custom leggero per Beauty Project di Arianna — centro estetico, abbronzatura e benessere a Padova. Derivato dal Design System e dalla build HTML/CSS BEM di luglio 2026. Nessun page builder.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: Proprietary
Text Domain: beauty-project
*/

/* =====================================================================
   Beauty Project di Arianna — Homepage responsive (HTML/CSS BEM)
   Sorgente: Beauty Project Design System (cattura Figma di
   www.beautyprojectdiarianna.it). Convertito da prototipo desktop-only
   in layout responsive mobile/tablet/desktop, usato direttamente dal tema WordPress.
   ===================================================================== */

/* ---------- Font ---------- */

/* ---------- Tokens (dal Design System) ---------- */
:root {
  /* Brand teal ramp */
  --teal-100: rgb(184,221,228);
  --teal-200: rgb(142,191,202);
  --teal-500: rgb(72,157,175);   /* primary brand */
  --teal-700: rgb(48,105,117);
  --teal-900: rgb(24,52,58);

  /* Warm neutral ramp */
  --warm-100: rgb(229,227,223);
  --warm-200: rgb(207,197,193);
  --warm-300: rgb(159,140,130);
  --warm-500: rgb(101,86,78);
  --warm-900: rgb(39,33,30);     /* ink */

  /* Semantic */
  --surface-page: rgb(255,255,255);
  --surface-brand: var(--teal-500);
  --surface-brand-deep: var(--teal-700);
  --surface-band-tint: rgba(142,191,202,0.8);
  --surface-card: rgb(255,255,255);
  --surface-overlay-warm: rgba(207,197,193,0.8);

  --text-primary: var(--warm-900);
  --text-inverse: rgb(255,255,255);
  --text-muted: var(--warm-500);

  --border-subtle: var(--warm-500);
  --icon-brand: var(--teal-500);

  --shadow-pill: 0 0 3px 0 rgba(182,180,180,0.5);
  --shadow-float: 0 2px 7px 1px rgba(0,0,0,0.3);

  /* Type */
  --font-sans: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* Type scale — fluido con clamp (min mobile → max desktop del DS) */
  --type-display: clamp(34px, 5vw, 56px);
  --type-display-line: 1.2;
  --type-h3: clamp(26px, 3.4vw, 36px);
  --type-h3-line: 1.34;
  --type-h4: clamp(23px, 2.6vw, 30px);
  --type-h4-line: 1.35;
  --type-body-lg: clamp(16px, 1.4vw, 18px);
  --type-body-lg-line: 1.66;
  --type-body: 15px;
  --type-body-line: 1.85;
  --type-nav: 13.3px;
  --type-fine: 12.8px;

  /* Layout */
  --wrap: 1200px;
  --gutter: clamp(20px, 5vw, 90px);
}

/* ---------- Reset minimo ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-weight: 400;
  color: var(--text-primary);
  background: var(--surface-page);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--text-primary); text-decoration: none; }
a:hover { color: var(--teal-500); }
h1, h2, h3, h4, p, blockquote, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
button { font-family: inherit; }

.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* =====================================================================
   Social bar
   ===================================================================== */
.social-bar { display: flex; flex-direction: row; align-items: center; gap: 10px; }
.social-bar__icon { display: block; }
.social-bar--black .social-bar__icon { width: 32px; height: 32px; }
.social-bar--teal  { gap: 7px; }
.social-bar--teal  .social-bar__icon { width: 24px; height: 24px; }
.social-bar--small .social-bar__icon { width: 20px; height: 20px; }

/* =====================================================================
   Header
   ===================================================================== */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--surface-page);
  border-bottom: 1px solid var(--warm-100);
}
.site-header__inner {
  min-height: 110px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
}
.site-header__nav { display: flex; gap: 24px; }
.site-header__nav-link {
  font-family: var(--font-ui); font-weight: 700;
  font-size: var(--type-nav); line-height: 1.4; letter-spacing: .02em;
  text-transform: none;
}
.site-header__logo { justify-self: center; }
.site-header__logo img { width: 150px; height: auto; }
.site-header__social { justify-self: end; }

@media (max-width: 640px) {
  .site-header__inner {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: 12px;
    padding-block: 16px;
  }
  .site-header__logo { order: -1; }
  .site-header__nav { justify-content: center; }
  .site-header__social { justify-self: center; }
}

/* =====================================================================
   Hero split
   ===================================================================== */
.hero { background: var(--surface-page); }
.hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  align-items: stretch;
  gap: 0;
}
.hero__panel {
  background: var(--teal-700);
  color: var(--text-inverse);
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(40px, 6vw, 90px);
  position: relative; z-index: 2;
}
.hero__title {
  font-weight: 400; font-size: var(--type-display); line-height: var(--type-display-line);
}
.hero__body {
  margin-top: clamp(24px, 3vw, 48px); max-width: 526px;
  font-size: var(--type-body-lg); line-height: var(--type-body-lg-line);
}
.hero__media { position: relative; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; }

@media (max-width: 860px) {
  .hero__inner { grid-template-columns: 1fr; }
  .hero__media { order: -1; }
  .hero__media img { max-height: 60vh; }
}

/* =====================================================================
   Intro
   ===================================================================== */
.intro {
  text-align: center;
  padding-block: clamp(56px, 8vw, 90px) clamp(40px, 6vw, 70px);
  display: flex; flex-direction: column; align-items: center; gap: clamp(24px, 3vw, 36px);
}
.intro__statement {
  font-weight: 400; font-size: var(--type-h4); line-height: var(--type-h4-line);
  max-width: 1040px;
}
.intro__lead {
  font-size: var(--type-body-lg); line-height: var(--type-body-lg-line);
  max-width: 900px;
}
.intro__services-title {
  margin-top: clamp(8px, 2vw, 24px);
  font-weight: 400; font-size: var(--type-h4); line-height: var(--type-h4-line);
}

/* =====================================================================
   Service band (full-bleed photo + overlay + centered text)
   ===================================================================== */
.service-band {
  position: relative; overflow: hidden;
  min-height: clamp(240px, 34vw, 340px);
  display: grid; place-items: center;
  background: var(--warm-900);
}
.service-band__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
.service-band__overlay {
  position: absolute; inset: 0; background: rgba(39,33,30,0.25);
}
.service-band__content {
  position: relative; z-index: 2; text-align: center; color: var(--text-inverse);
  padding: 24px clamp(20px, 6vw, 90px);
  display: flex; flex-direction: column; align-items: center; gap: 18px;
}
.service-band__title {
  font-weight: 400; font-size: var(--type-h4); line-height: var(--type-h4-line);
}
.service-band__services {
  font-size: var(--type-body-lg); line-height: 1.4; max-width: 900px;
}

/* =====================================================================
   Results (teal slideshow band)
   ===================================================================== */
.results {
  position: relative; background: var(--teal-500);
  padding-block: clamp(56px, 8vw, 116px) clamp(64px, 8vw, 90px);
  overflow: hidden;
}
.results__inner {
  display: flex; flex-direction: row; gap: 33px; align-items: flex-start;
  justify-content: center;
}
.results__aside { flex-shrink: 0; padding-top: 51px; }
.results__body { display: flex; flex-direction: column; }
.results__title {
  margin-block: clamp(0px, 2vw, 43px);
  font-weight: 400; font-size: var(--type-display); line-height: var(--type-display-line);
  color: var(--text-inverse);
}
.results__dots {
  display: flex; justify-content: center; gap: 16px; margin-top: 40px;
}
.results__dot {
  width: 9px; height: 9px; border-radius: 50%;
  border: 2px solid var(--teal-700); background: transparent;
}
.results__dot--active { background: var(--teal-700); }

/* Gallery carousel */
.gallery { position: relative; width: min(472px, 80vw); aspect-ratio: 1 / 1; overflow: hidden; }
.gallery__track { display: flex; height: 100%; transition: transform .4s ease; }
.gallery__img { flex: 0 0 100%; width: 100%; height: 100%; object-fit: cover; }
.gallery__btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 23px; height: 39px; background: none; border: none; padding: 0; cursor: pointer;
  opacity: .9; filter: drop-shadow(0 1px 0.15px rgb(178,178,178)); z-index: 2;
}
.gallery__btn--prev { left: 18px; transform: translateY(-50%) scaleX(-1); }
.gallery__btn--next { right: 18px; }

/* Result card */
.result-card {
  width: min(485px, 90vw); background: var(--surface-card);
  padding: 40px 36px 41px; display: flex; flex-direction: column;
}
.result-card__quote { font-size: 18px; line-height: 1.4; }
.result-card__list { margin-top: 12px; padding-left: 22px; list-style: disc; }
.result-card__list li { font-size: 18px; line-height: 1.4; }
.result-card__results { margin-top: 16px; display: flex; flex-direction: column; gap: 4px; }
.result-card__results p { font-size: 18px; line-height: 1.1; }

@media (max-width: 860px) {
  .results__inner { flex-direction: column; align-items: center; gap: 28px; }
  .results__aside { padding-top: 0; }
  .results__title { text-align: center; }
}

/* =====================================================================
   Contact
   ===================================================================== */
.contact {
  background: var(--teal-500);
  padding: 32px clamp(20px, 5vw, 80px) 68px;
  display: flex; flex-direction: column; align-items: center; gap: 43px;
}
.contact__card {
  align-self: stretch; background: var(--surface-card);
  padding: clamp(40px, 6vw, 80px) clamp(24px, 6vw, 106px) 37px;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 37px;
}
.contact__card .social-bar { grid-column: 1 / -1; }
.contact-row { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.contact-row__icon { width: 30px; height: 28px; color: var(--icon-brand); }
.contact-row__text {
  font-size: var(--type-body-lg); line-height: var(--type-body-lg-line);
  white-space: pre-line;
}
.contact__hairline { align-self: stretch; width: 100%; height: 1px; background: var(--border-subtle); border: 0; margin: 0; }
.contact__map { align-self: stretch; width: 100%; }
.contact__map iframe { width: 100%; height: 350px; border: 0; display: block; }

@media (max-width: 640px) {
  .contact__card { grid-template-columns: 1fr; gap: 28px; }
}

/* =====================================================================
   Footer
   ===================================================================== */
.site-footer {
  background: var(--surface-page); padding-block: 40px;
  display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center;
}
.site-footer__row { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: center; }
.site-footer__policy { font-family: var(--font-ui); font-size: 14px; }
.site-footer__credit {
  font-family: var(--font-ui); font-size: var(--type-fine); line-height: 1.4; color: var(--text-primary);
}

/* =====================================================================
   Chat button (floating)
   ===================================================================== */
.chat-button {
  position: fixed; right: clamp(16px, 3vw, 40px); bottom: clamp(16px, 3vw, 30px); z-index: 100;
  display: inline-flex; align-items: center; gap: 10px;
  height: 56px; padding: 0 34px 0 30px;
  border-radius: 30px; border: none; cursor: pointer;
  background: var(--teal-500); box-shadow: var(--shadow-pill);
  color: var(--text-inverse);
}
.chat-button__icon { width: 22.75px; height: 22.75px; }
.chat-button__label { font-size: 18px; line-height: 1; color: var(--text-inverse); white-space: nowrap; }

/* =====================================================================
   Pagine interne — intro (Servizi / Contatti)
   ===================================================================== */
.page-intro { padding-block: clamp(56px, 8vw, 100px) clamp(32px, 5vw, 60px); }
.page-intro__title { font-weight: 400; font-size: var(--type-display); line-height: var(--type-display-line); }
.page-intro__lead { margin-top: clamp(20px, 3vw, 28px); max-width: 700px; font-size: var(--type-body-lg); line-height: var(--type-body-lg-line); }
.page-intro__lead + .page-intro__lead { margin-top: 20px; }

/* =====================================================================
   Servizi — gruppi + griglia trattamenti
   ===================================================================== */
.service-group { padding-block: clamp(24px, 4vw, 40px) clamp(32px, 5vw, 56px); }
.service-group__title { font-weight: 400; font-size: var(--type-h3); line-height: var(--type-h3-line); margin: 0 0 36px; }
.service-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 40px; }
.service-item { display: flex; flex-direction: column; gap: 14px; }
.service-item__img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.service-item__name { font-weight: 400; font-size: 24px; line-height: 1.35; }
.service-item__desc { font-size: var(--type-body); line-height: var(--type-body-line); }
@media (max-width: 900px) { .service-list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .service-list { grid-template-columns: 1fr; } }

/* CTA telefono */
.booking-cta { padding-block: clamp(16px, 3vw, 40px) clamp(48px, 7vw, 100px); display: flex; flex-direction: column; gap: 10px; }
.booking-cta__label { font-weight: 400; font-size: var(--type-h4); line-height: var(--type-h4-line); }
.booking-cta__phone { font-weight: 400; font-size: var(--type-h4); line-height: var(--type-h4-line); color: var(--teal-500); }
.booking-cta__phone a { color: inherit; }

/* =====================================================================
   Newsletter
   ===================================================================== */
.newsletter { background: var(--teal-500); color: var(--text-inverse); padding-block: clamp(56px, 8vw, 90px); text-align: center; }
.newsletter__inner { display: flex; flex-direction: column; align-items: center; gap: 24px; }
.newsletter__title { font-weight: 400; font-size: var(--type-h4); line-height: var(--type-h4-line); }
.newsletter__text { max-width: 620px; font-size: var(--type-body-lg); line-height: var(--type-body-lg-line); white-space: pre-line; }
.newsletter__form { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.newsletter__input { width: min(340px, 80vw); height: 48px; padding: 0 16px; border: none; background: var(--surface-card); font-family: var(--font-sans); font-size: 15px; color: var(--text-primary); }
.newsletter__btn { height: 48px; padding: 0 32px; border: none; cursor: pointer; background: var(--teal-700); color: var(--text-inverse); font-family: var(--font-sans); font-size: 15px; }

/* =====================================================================
   Contatti — form + info
   ===================================================================== */
.contact-page__grid { display: grid; grid-template-columns: minmax(0, 520px) minmax(0, 1fr); gap: clamp(40px, 6vw, 100px); align-items: start; }
.contact-form { display: flex; flex-direction: column; gap: 16px; }
.contact-form__field { height: 48px; padding: 0 16px; border: 1px solid var(--warm-200); background: var(--surface-card); font-family: var(--font-sans); font-size: 15px; color: var(--text-primary); width: 100%; box-sizing: border-box; }
.contact-form__field--area { height: auto; padding: 12px 16px; resize: vertical; }
.contact-form__btn { align-self: flex-start; height: 48px; padding: 0 40px; border: none; cursor: pointer; background: var(--teal-500); color: var(--text-inverse); font-family: var(--font-sans); font-size: 15px; }
.contact-info { display: flex; flex-direction: column; gap: 32px; }
.contact-info__lead { font-size: var(--type-body-lg); line-height: var(--type-body-lg-line); }
@media (max-width: 860px) { .contact-page__grid { grid-template-columns: 1fr; } .contact-form { width: 100%; } }

/* Placeholder immagine servizio (foto ancora da caricare) */
.service-item__img--todo {
  width: 100%; aspect-ratio: 3 / 2; background: var(--teal-200);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-family: var(--font-sans); font-size: 14px; text-align: center; padding: 10px;
}

/* =====================================================================
   FAQ (accordion nativo <details>)
   ===================================================================== */
.faq { padding-block: clamp(40px, 6vw, 72px); }
.faq__title { font-weight: 400; font-size: var(--type-h3); line-height: var(--type-h3-line); margin: 0 0 28px; }
.faq__item { border-top: 1px solid var(--warm-100); }
.faq__item:last-of-type { border-bottom: 1px solid var(--warm-100); }
.faq__q {
  cursor: pointer; list-style: none; padding: 20px 0;
  font-size: var(--type-body-lg); line-height: 1.4; color: var(--text-primary);
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.faq__q::-webkit-details-marker { display: none; }
.faq__q::after { content: "+"; color: var(--teal-500); font-size: 26px; line-height: 1; flex-shrink: 0; }
.faq__item[open] .faq__q::after { content: "\2013"; }
.faq__a { padding: 0 0 22px; max-width: 820px; font-size: var(--type-body); line-height: var(--type-body-line); color: var(--text-primary); }

/* =====================================================================
   WordPress — aggiunte del tema (non presenti nella build statica)
   ===================================================================== */

/* Header sticky sotto la admin bar */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

/* Menu WordPress: stessa resa dei link della build */
.site-header__nav ul { display: flex; gap: 24px; margin: 0; padding: 0; list-style: none; }
.site-header__nav li { margin: 0; }
.site-header__nav .current-menu-item > a,
.site-header__nav .current_page_item > a,
.site-header__nav a[aria-current="page"] { color: var(--teal-500); }
@media (max-width: 640px) { .site-header__nav ul { justify-content: center; flex-wrap: wrap; gap: 16px 24px; } }

/* Icone social inline (SVG, colore da CSS) */
.social-bar__icon { fill: currentColor; }
.social-bar--black { color: var(--warm-900); }
.social-bar--teal  { color: var(--teal-500); }
.social-bar--small { color: var(--warm-900); }
.social-bar__link:hover { color: var(--teal-500); }
.social-bar--teal .social-bar__link:hover { color: var(--teal-700); }

/* Link "Scopri di più" sulle bande servizi (erano presenti nel Wix) */
.service-band__link {
  margin-top: 4px; font-family: var(--font-ui); font-weight: 700; font-size: var(--type-nav); letter-spacing: .02em;
  color: var(--text-inverse); border-bottom: 1px solid currentColor; padding-bottom: 2px;
}
.service-band__link:hover { color: var(--teal-100); }

/* Skip link accessibilità */
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--teal-700); color: #fff; padding: 12px 16px; z-index: 1000; }
.skip-link:focus { left: 16px; top: 16px; color: #fff; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Form plugin (CF7 / Brevo) dentro i contenitori del tema */
.contact-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-acceptance) { height: 48px; padding: 0 16px; border: 1px solid var(--warm-200); background: var(--surface-card); font-family: var(--font-sans); font-size: 15px; color: var(--text-primary); width: 100%; box-sizing: border-box; }
.contact-form textarea.wpcf7-form-control { height: auto; min-height: 140px; padding: 12px 16px; resize: vertical; }
.contact-form .wpcf7-form p { display: flex; flex-direction: column; gap: 6px; margin: 0 0 16px; font-size: var(--type-body); }
.contact-form .wpcf7-submit { height: 48px; padding: 0 40px; border: none; cursor: pointer; background: var(--teal-500); color: var(--text-inverse); font-family: var(--font-sans); font-size: 15px; }
.contact-form .wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.5; }
.contact-form .wpcf7-not-valid-tip { font-size: 13px; color: #b3261e; }
.contact-form .wpcf7-response-output { margin: 12px 0 0; padding: 12px 16px; border: 1px solid var(--teal-500); font-size: 14px; }
.newsletter .wpcf7-form { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.newsletter .wpcf7-form p { margin: 0; }
.newsletter .wpcf7-form-control:not(.wpcf7-submit) { width: min(340px, 80vw); height: 48px; padding: 0 16px; border: none; background: var(--surface-card); font-family: var(--font-sans); font-size: 15px; color: var(--text-primary); }
.newsletter .wpcf7-submit { height: 48px; padding: 0 32px; border: none; cursor: pointer; background: var(--teal-700); color: var(--text-inverse); font-family: var(--font-sans); font-size: 15px; }
.newsletter .wpcf7-response-output { width: 100%; text-align: center; border: 1px solid #fff; padding: 10px; font-size: 14px; }

/* =====================================================================
   Blog — elenco articoli
   ===================================================================== */
.post-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px 40px; padding-block: 0 clamp(48px, 7vw, 100px); }
@media (max-width: 900px) { .post-list { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .post-list { grid-template-columns: 1fr; } }
.post-card { display: flex; flex-direction: column; gap: 14px; }
.post-card__img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: var(--teal-100); }
.post-card__img--empty { display: block; }
.post-card__title { font-weight: 400; font-size: 24px; line-height: 1.35; }
.post-card__title a:hover { color: var(--teal-500); }
.post-card__excerpt { font-size: var(--type-body); line-height: var(--type-body-line); }
.post-card__meta { font-family: var(--font-ui); font-size: var(--type-fine); color: var(--text-muted); }
.pagination { display: flex; justify-content: center; gap: 8px; padding-bottom: clamp(48px, 7vw, 100px); font-family: var(--font-ui); }
.pagination .page-numbers { padding: 8px 14px; border: 1px solid var(--warm-100); }
.pagination .page-numbers.current { background: var(--teal-500); color: #fff; border-color: var(--teal-500); }

/* =====================================================================
   Articolo singolo + pagine generiche (contenuto dall'editor)
   ===================================================================== */
.entry { padding-block: clamp(48px, 7vw, 90px) clamp(48px, 7vw, 100px); }
.entry__header { max-width: 820px; margin-inline: auto; text-align: center; }
.entry__title { font-weight: 400; font-size: var(--type-h3); line-height: var(--type-h3-line); }
.entry__meta { margin-top: 14px; font-family: var(--font-ui); font-size: var(--type-fine); color: var(--text-muted); }
.entry__thumb { max-width: 900px; margin: clamp(28px, 4vw, 44px) auto 0; }
.entry__thumb img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.entry-content { max-width: 760px; margin: clamp(32px, 5vw, 56px) auto 0; font-size: var(--type-body-lg); line-height: var(--type-body-lg-line); }
.entry-content > * + * { margin-top: 1.2em; }
.entry-content h2 { font-weight: 400; font-size: var(--type-h4); line-height: var(--type-h4-line); margin-top: 1.8em; }
.entry-content h3 { font-weight: 700; font-size: 20px; line-height: 1.4; margin-top: 1.6em; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content ul { list-style: disc; }
.entry-content li + li { margin-top: .4em; }
.entry-content a { color: var(--teal-700); text-decoration: underline; text-underline-offset: 3px; }
.entry-content a:hover { color: var(--teal-500); }
.entry-content blockquote { border-left: 3px solid var(--teal-500); padding-left: 1.2em; color: var(--text-muted); }
.entry-content img { height: auto; }
.entry-content figcaption { font-size: var(--type-fine); color: var(--text-muted); margin-top: 8px; }
.entry-content .wp-block-details, .entry-content details { border-top: 1px solid var(--warm-100); }
.entry-content details summary { cursor: pointer; padding: 16px 0; font-size: var(--type-body-lg); }
.entry-content .wp-block-button__link { background: var(--teal-500); color: #fff; border-radius: 0; text-decoration: none; padding: 14px 32px; }
.entry-content .alignwide { max-width: 1000px; margin-inline: calc((760px - 1000px) / 2); }
@media (max-width: 1100px) { .entry-content .alignwide { margin-inline: 0; max-width: 100%; } }
.entry__nav { max-width: 760px; margin: clamp(40px, 6vw, 64px) auto 0; display: flex; justify-content: space-between; gap: 24px; font-family: var(--font-ui); font-size: 14px; }
.entry__nav a { color: var(--teal-700); }
.entry__cta { max-width: 760px; margin: clamp(40px, 6vw, 64px) auto 0; background: var(--teal-500); color: #fff; padding: clamp(28px, 4vw, 40px); text-align: center; display: flex; flex-direction: column; gap: 12px; }
.entry__cta p { font-size: var(--type-body-lg); }
.entry__cta a { color: #fff; font-weight: 700; }

/* 404 */
.not-found { padding-block: clamp(56px, 8vw, 120px); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.not-found__title { font-weight: 400; font-size: var(--type-display); line-height: var(--type-display-line); }
.not-found a { color: var(--teal-700); text-decoration: underline; }
