/* Carolina Flores, psicologa clinica
   Tokens from the active Novamira design "Carolina Flores Clinical Practice".
   Cobalt on warm cream, sage and gold support. */

:root {
  --cf-ground: #FAF7EF;
  --cf-ground-alt: #F1EFE4;
  --cf-ink: #1B3B66;
  --cf-body: #39475B;
  --cf-accent: #1257C8;
  --cf-accent-deep: #0E3E93;
  --cf-sage: #93A87F;
  --cf-sage-soft: #DFE6D5;
  --cf-gold: #EFC45C;
  --cf-gold-soft: #FAECC6;
  --cf-line: #DCD6C7;
  --cf-paper: #FFFDF8;

  --cf-r-card: 16px;
  --cf-r-input: 12px;
  --cf-r-pill: 999px;

  --cf-sp-sm: 16px;
  --cf-sp-md: 32px;
  --cf-sp-lg: 56px;
  --cf-sp-xl: 96px;
  --cf-container: 1140px;
  --cf-text-column: 680px;

  --cf-font-display: "Outfit", system-ui, sans-serif;
  --cf-font-body: "Source Sans 3", system-ui, sans-serif;
}

/* ---------- base ---------- */

body {
  background: var(--cf-ground);
  color: var(--cf-body);
  font-family: var(--cf-font-body);
  font-size: 1.0625rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--cf-font-display);
  color: var(--cf-ink);
  line-height: 1.15;
  letter-spacing: -0.01em;
}

h1 { font-size: clamp(2.2rem, 4.2vw, 3.1rem); font-weight: 700; line-height: 1.12; }
h2 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); font-weight: 600; }
h3 { font-size: 1.35rem; font-weight: 600; line-height: 1.3; }

a { color: var(--cf-accent); text-underline-offset: 3px; }
a:hover { color: var(--cf-accent-deep); }

.page .entry-header,
.page .page-title { display: none; }

/* ---------- section scaffolding ---------- */

.cf-hero, .cf-modes, .cf-topics, .cf-about,
.cf-process, .cf-coverage, .cf-faq, .cf-cta,
.cf-lead-in, .cf-panel, .cf-contact {
  padding: var(--cf-sp-xl) var(--cf-sp-md);
  margin: 0 !important;
}

.cf-hero > .wp-block-group__inner-container,
.cf-modes > .wp-block-group__inner-container,
.cf-topics > .wp-block-group__inner-container,
.cf-about > .wp-block-group__inner-container,
.cf-process > .wp-block-group__inner-container,
.cf-coverage > .wp-block-group__inner-container,
.cf-faq > .wp-block-group__inner-container,
.cf-cta > .wp-block-group__inner-container,
.cf-lead-in > .wp-block-group__inner-container,
.cf-panel > .wp-block-group__inner-container,
.cf-contact > .wp-block-group__inner-container {
  max-width: var(--cf-container);
  margin-inline: auto;
}

.cf-hero     { background: var(--cf-ground); position: relative; overflow: hidden; }
.cf-modes    { background: var(--cf-ground-alt); }
.cf-topics   { background: var(--cf-ground); }
.cf-about    { background: var(--cf-ground-alt); }
.cf-process  { background: var(--cf-ground); }
.cf-coverage { background: var(--cf-sage-soft); }
.cf-faq      { background: var(--cf-ground); }
.cf-cta      { background: var(--cf-ink); }
.cf-lead-in  { background: var(--cf-ground); }
.cf-panel    { background: var(--cf-ground-alt); }
.cf-contact  { background: var(--cf-ground); }

.cf-section__title { margin: 0 0 var(--cf-sp-sm); }
.cf-section__lead {
  max-width: var(--cf-text-column);
  margin: 0 0 var(--cf-sp-lg);
  font-size: 1.125rem;
}
.cf-note { font-size: 0.9375rem; color: #5D6876; margin-top: var(--cf-sp-sm); }
.cf-prose p { max-width: 66ch; }

/* ---------- buttons ---------- */

.cf-btns { gap: 14px 16px; margin-top: var(--cf-sp-md); }

.wp-block-button.cf-btn .wp-block-button__link {
  border-radius: var(--cf-r-pill);
  padding: 14px 30px;
  font-family: var(--cf-font-display);
  font-weight: 600;
  font-size: 1rem;
  border: 1.5px solid transparent;
  transition: background-color .15s ease, color .15s ease, transform .15s ease, border-color .15s ease;
}
.wp-block-button.cf-btn--primary .wp-block-button__link {
  background: var(--cf-accent);
  color: var(--cf-paper);
}
.wp-block-button.cf-btn--primary .wp-block-button__link:hover {
  background: var(--cf-accent-deep);
  color: var(--cf-paper);
  transform: translateY(-1px);
}
.wp-block-button.cf-btn--ghost .wp-block-button__link {
  background: transparent;
  color: var(--cf-accent);
  border-color: var(--cf-accent);
}
.wp-block-button.cf-btn--ghost .wp-block-button__link:hover {
  background: var(--cf-sage-soft);
  color: var(--cf-accent-deep);
  border-color: var(--cf-accent-deep);
}
.wp-block-button.cf-btn--ghost-light .wp-block-button__link {
  background: transparent;
  color: var(--cf-paper);
  border-color: rgba(255, 253, 248, .6);
}
.wp-block-button.cf-btn--ghost-light .wp-block-button__link:hover {
  background: rgba(255, 253, 248, .14);
  border-color: var(--cf-paper);
  color: var(--cf-paper);
}
.wp-block-button__link:focus-visible {
  outline: 2px solid var(--cf-accent);
  outline-offset: 3px;
}

/* ---------- hero ---------- */

.cf-hero::before {
  content: "";
  position: absolute;
  inset: auto -160px -220px auto;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(147, 168, 127, .24) 0%, rgba(147, 168, 127, 0) 70%);
  pointer-events: none;
}
.cf-hero__grid { gap: var(--cf-sp-lg); align-items: center; position: relative; }

/* sage-soft ground with navy text: the saturated sage only reaches 2.5:1
   against cream text, which fails AA at this size. */
.cf-pill {
  display: inline-block;
  background: var(--cf-sage-soft);
  color: var(--cf-ink);
  border: 1px solid var(--cf-sage);
  border-radius: var(--cf-r-pill);
  padding: 6px 17px;
  font-family: var(--cf-font-display);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 var(--cf-sp-md);
}
/* sized and measured so the headline holds two lines from 1024px up */
.cf-hero__title {
  margin: 0 0 var(--cf-sp-sm);
  font-size: clamp(2rem, 3.4vw, 2.75rem);
  max-width: 23ch;
}
.cf-hero__lead { font-size: 1.1875rem; max-width: 46ch; margin: 0; }
.cf-hero__crest { margin: 0; }
.cf-hero__crest img {
  width: 100%;
  max-width: 380px;
  height: auto;
  display: block;
  margin-inline: auto;
  border-radius: 50%;
  mix-blend-mode: multiply;
}

/* ---------- modalidades ---------- */

.cf-modes__grid { gap: var(--cf-sp-md); margin-top: var(--cf-sp-lg); }
.cf-mode {
  background: var(--cf-paper);
  border: 1px solid var(--cf-line);
  border-radius: var(--cf-r-card);
  padding: 30px 28px 28px;
  height: 100%;
}
.cf-mode__title { margin: 0 0 10px; display: flex; align-items: center; gap: 12px; }
.cf-mode__title::before {
  content: "";
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: var(--cf-r-pill);
  background-size: 24px 24px;
  background-repeat: no-repeat;
  background-position: center;
}
.cf-mode--online .cf-mode__title::before {
  background-color: var(--cf-sage-soft);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='13' rx='2'/%3E%3Cpath d='M8 21h8'/%3E%3Cpath d='M12 17v4'/%3E%3C/svg%3E");
}
.cf-mode--presencial .cf-mode__title::before {
  background-color: var(--cf-gold-soft);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 18v-5a3 3 0 0 1 3-3h6a3 3 0 0 1 3 3v5'/%3E%3Cpath d='M3 18h14'/%3E%3Cpath d='M6 18v2'/%3E%3Cpath d='M14 18v2'/%3E%3Cpath d='M19 6v6'/%3E%3Cpath d='M17 8h4'/%3E%3C/svg%3E");
}
.cf-mode p { margin: 0; }

/* ---------- motivos de consulta ---------- */

.cf-topics__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--cf-sp-md) 28px;
}
.cf-topic { padding-top: 78px; position: relative; }
.cf-topic::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 64px;
  height: 64px;
  border-radius: var(--cf-r-pill);
  background-size: 30px 30px;
  background-repeat: no-repeat;
  background-position: center;
}
.cf-topic:nth-child(odd)::before  { background-color: var(--cf-sage-soft); }
.cf-topic:nth-child(even)::before { background-color: var(--cf-gold-soft); }
.cf-topic__title { margin: 0 0 6px; font-size: 1.125rem; }
.cf-topic__text  { margin: 0; font-size: 0.9375rem; }

.cf-topic--conocerte::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7.5' r='3.5'/%3E%3Cpath d='M5 21a7 7 0 0 1 14 0'/%3E%3Cpath d='M12 13.8c.9-1 2.4-.4 2.4.8 0 1-1.4 2-2.4 2.6-1-.6-2.4-1.6-2.4-2.6 0-1.2 1.5-1.8 2.4-.8z'/%3E%3C/svg%3E"); }
.cf-topic--emociones::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 11.5C19 7.4 15.9 4.5 12 4.5S5 7.4 5 11.5c0 2 .8 3.4 1.6 4.3V20h8.8v-2.4c2.2-.8 3.6-3 3.6-6.1z'/%3E%3Cpath d='M12.1 9.6c.8-.9 2.2-.3 2.2.8 0 .9-1.3 1.9-2.2 2.4-.9-.5-2.2-1.5-2.2-2.4 0-1.1 1.4-1.7 2.2-.8z'/%3E%3C/svg%3E"); }
.cf-topic--vinculos::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 7.8c1.4-1.6 4-.7 4 1.4 0 1.8-2.4 3.5-4 4.5-1.6-1-4-2.7-4-4.5 0-2.1 2.6-3 4-1.4z'/%3E%3Cpath d='M3.5 20v-2.5a3 3 0 0 1 3-3'/%3E%3Cpath d='M20.5 20v-2.5a3 3 0 0 0-3-3'/%3E%3C/svg%3E"); }
.cf-topic--autoestima::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7' r='2.6'/%3E%3Cpath d='M12 9.8v6.4'/%3E%3Cpath d='M8.6 12.4h6.8'/%3E%3Cpath d='M9.4 21l2.6-4.8 2.6 4.8'/%3E%3Cpath d='M4.4 6.4l1 1M19.6 6.4l-1 1M4.4 14.6l1-1M19.6 14.6l-1-1'/%3E%3C/svg%3E"); }
.cf-topic--ansiedad::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.2 8.9a4.2 4.2 0 1 0-4 6'/%3E%3Cpath d='M8.9 15.3a5.6 5.6 0 1 0 5.4-8.1'/%3E%3Cpath d='M17.9 12a6.2 6.2 0 1 1-7.4-6'/%3E%3C/svg%3E"); }
.cf-topic--cambio::before     { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.5v17'/%3E%3Cpath d='M12 6h6.6l1.9 2.4-1.9 2.4H12'/%3E%3Cpath d='M12 13.2H5.4L3.5 15.6l1.9 2.4H12'/%3E%3C/svg%3E"); }
.cf-topic--duelo::before      { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.5 20.5v-7.4'/%3E%3Cpath d='M11.5 13.1c-2.9 0-4.9-1.8-4.9-4.1 0-2.2 2-3.8 4.9-3.8s4.9 1.6 4.9 3.8c0 2.3-2 4.1-4.9 4.1z'/%3E%3Cpath d='M11.5 13.1c-2.2 1.2-4.3.8-5.4-.6'/%3E%3Cpath d='M18.6 4.2l.6 1.4 1.4.6-1.4.6-.6 1.4-.6-1.4-1.4-.6 1.4-.6z'/%3E%3C/svg%3E"); }

/* ---------- conoceme ---------- */

.cf-about__grid { gap: var(--cf-sp-lg); align-items: center; }
.cf-portrait {
  border-radius: var(--cf-r-card);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  position: relative;
}
.cf-portrait--placeholder {
  background:
    radial-gradient(circle at 32% 26%, rgba(239, 196, 92, .38) 0%, rgba(239, 196, 92, 0) 56%),
    linear-gradient(150deg, var(--cf-sage-soft) 0%, var(--cf-sage) 100%);
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.cf-portrait__note {
  margin: 0 0 18px;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(27, 59, 102, .78);
  font-family: var(--cf-font-display);
  font-weight: 600;
}
.cf-about p { max-width: 54ch; }

/* ---------- proceso ---------- */

.cf-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--cf-sp-md);
  margin-top: var(--cf-sp-lg);
  counter-reset: cf-step;
}
.cf-step {
  position: relative;
  padding-top: 26px;
  border-top: 2px solid var(--cf-line);
}
.cf-step::before {
  counter-increment: cf-step;
  content: counter(cf-step);
  position: absolute;
  top: -15px;
  left: 0;
  width: 28px;
  height: 28px;
  border-radius: var(--cf-r-pill);
  background: var(--cf-accent);
  color: var(--cf-paper);
  font-family: var(--cf-font-display);
  font-size: 0.875rem;
  font-weight: 600;
  display: grid;
  place-items: center;
}
.cf-step__title { margin: 0 0 6px; font-size: 1.0625rem; }
.cf-step__text  { margin: 0; font-size: 0.9375rem; }

/* ---------- prevision ---------- */

.cf-coverage__grid { gap: var(--cf-sp-lg); }
.cf-coverage__list { list-style: none; margin: 0; padding: 0; }
.cf-coverage__list li {
  position: relative;
  padding: 0 0 14px 34px;
  margin: 0 0 14px;
  border-bottom: 1px solid rgba(27, 59, 102, .12);
}
.cf-coverage__list li:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.cf-coverage__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 5px;
  width: 20px;
  height: 20px;
  background-size: 20px 20px;
  background-repeat: no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231257C8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
}
.cf-coverage__list strong { color: var(--cf-ink); font-family: var(--cf-font-display); }

/* ---------- faq ---------- */

.cf-faq__list { max-width: 820px; margin-top: var(--cf-sp-lg); }
.cf-faq__item {
  border-bottom: 1px solid var(--cf-line);
  padding: 20px 0;
}
.cf-faq__item summary {
  cursor: pointer;
  font-family: var(--cf-font-display);
  font-weight: 600;
  font-size: 1.0625rem;
  color: var(--cf-ink);
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--cf-sp-sm);
}
.cf-faq__item summary::-webkit-details-marker { display: none; }
.cf-faq__item summary::after {
  content: "";
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231257C8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  transition: transform .15s ease;
}
.cf-faq__item[open] summary::after { transform: rotate(180deg); }
.cf-faq__item p { margin: 12px 0 0; max-width: 68ch; }

/* ---------- cta ---------- */

.cf-cta { text-align: center; }
.cf-cta__title { color: var(--cf-paper); margin: 0 0 12px; }
.cf-cta__lead {
  color: rgba(255, 253, 248, .85);
  max-width: 52ch;
  margin: 0 auto;
  font-size: 1.125rem;
}
.cf-cta__btns { justify-content: center; }

/* ---------- inner pages ---------- */

.cf-lead-in__grid { gap: var(--cf-sp-lg); align-items: center; }
.cf-lead-in__title { margin: 0 0 var(--cf-sp-sm); }
.cf-lead-in__lead { font-size: 1.1875rem; max-width: 48ch; margin: 0; }

.cf-panel__grid { gap: var(--cf-sp-lg); }
.cf-card {
  background: var(--cf-paper);
  border: 1px solid var(--cf-line);
  border-radius: var(--cf-r-card);
  padding: 30px 28px;
  height: 100%;
}
.cf-card__title { margin: 0 0 10px; font-size: 1.1875rem; }
.cf-card p { margin: 0 0 10px; }
.cf-card p:last-child { margin-bottom: 0; }
.cf-card ul { margin: 10px 0 0; padding-left: 20px; }
.cf-card li { margin-bottom: 6px; }

.cf-credentials { list-style: none; margin: var(--cf-sp-md) 0 0; padding: 0; }
.cf-credentials li {
  position: relative;
  padding: 0 0 12px 30px;
  margin: 0 0 12px;
  border-bottom: 1px solid rgba(27, 59, 102, .12);
}
.cf-credentials li:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.cf-credentials li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  width: 16px;
  height: 16px;
  border-radius: var(--cf-r-pill);
  border: 2px solid var(--cf-sage);
}
.cf-credentials strong { color: var(--cf-ink); font-family: var(--cf-font-display); }

/* contact details */
.cf-contact__grid { gap: var(--cf-sp-lg); align-items: start; }
.cf-details { list-style: none; margin: var(--cf-sp-md) 0 0; padding: 0; }
.cf-details li {
  position: relative;
  padding: 0 0 0 40px;
  margin: 0 0 22px;
  font-size: 1.0625rem;
}
.cf-details li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 28px;
  height: 28px;
  border-radius: var(--cf-r-pill);
  background-color: var(--cf-sage-soft);
  background-size: 16px 16px;
  background-repeat: no-repeat;
  background-position: center;
}
.cf-details li strong { display: block; font-family: var(--cf-font-display); color: var(--cf-ink); font-size: 0.9375rem; }
.cf-details .cf-d--wa::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-12.6 7.3L3 20.5l1.8-5.2A8.4 8.4 0 1 1 21 11.5z'/%3E%3C/svg%3E"); }
.cf-details .cf-d--mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3.5 7l8.5 6 8.5-6'/%3E%3C/svg%3E"); }
.cf-details .cf-d--ig::before   { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.2' cy='6.8' r='1'/%3E%3C/svg%3E"); }
.cf-details .cf-d--pin::before  { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-5.7 7-11a7 7 0 1 0-14 0c0 5.3 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E"); }
.cf-details .cf-d--clock::before{ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B3B66' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 1.8'/%3E%3C/svg%3E"); }

/* contact form (Hostinger shortcode) */
.cf-form-wrap {
  background: var(--cf-paper);
  border: 1px solid var(--cf-line);
  border-radius: var(--cf-r-card);
  padding: 32px 28px;
}
.cf-form-wrap input[type="text"],
.cf-form-wrap input[type="email"],
.cf-form-wrap input[type="tel"],
.cf-form-wrap textarea,
.cf-form-wrap select {
  width: 100%;
  background: var(--cf-ground);
  border: 1px solid var(--cf-line);
  border-radius: var(--cf-r-input);
  padding: 12px 16px;
  font-family: var(--cf-font-body);
  font-size: 1rem;
  color: var(--cf-body);
}
.cf-form-wrap input:focus,
.cf-form-wrap textarea:focus,
.cf-form-wrap select:focus {
  outline: 2px solid var(--cf-accent);
  outline-offset: 1px;
  border-color: var(--cf-accent);
}
.cf-form-wrap label { font-family: var(--cf-font-display); font-weight: 600; color: var(--cf-ink); font-size: 0.9375rem; }
.cf-form-wrap button,
.cf-form-wrap input[type="submit"] {
  background: var(--cf-accent);
  color: var(--cf-paper);
  border: 0;
  border-radius: var(--cf-r-pill);
  padding: 14px 30px;
  font-family: var(--cf-font-display);
  font-weight: 600;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color .15s ease;
}
.cf-form-wrap button:hover,
.cf-form-wrap input[type="submit"]:hover { background: var(--cf-accent-deep); }

/* ---------- header and footer (Blocksy) ---------- */

/* Blocksy palette and font variables, so header, footer and any
   theme-rendered element follow the same design tokens. */
:root {
  --theme-font-family: var(--cf-font-body);
  --theme-text-color: var(--cf-body);
  --theme-headings-color: var(--cf-ink);
  --theme-link-initial-color: var(--cf-accent);
  --theme-link-hover-color: var(--cf-accent-deep);
  --theme-content-spacing: 1.2em;
  --theme-palette-color-1: #1257C8;
  --theme-palette-color-2: #0E3E93;
  --theme-palette-color-3: #1B3B66;
  --theme-palette-color-4: #39475B;
  --theme-palette-color-5: #DCD6C7;
  --theme-palette-color-6: #F1EFE4;
  --theme-palette-color-7: #FAF7EF;
  --theme-palette-color-8: #FFFDF8;
  --theme-button-background-initial-color: var(--cf-accent);
  --theme-button-background-hover-color: var(--cf-accent-deep);
  --theme-button-text-initial-color: var(--cf-paper);
  --theme-button-border-radius: var(--cf-r-pill);
}

/* the logo already carries the name, so the text title is redundant */
.site-title,
.ct-header .site-title,
[data-id="logo"] .site-title { display: none !important; }

[data-id="logo"] .site-logo-container img,
.site-logo-container img { max-width: 100%; }

.ct-header { background: var(--cf-ground); }
.ct-header .menu-item > a,
.ct-header .ct-menu-link {
  font-family: var(--cf-font-display);
  font-weight: 500;
  color: var(--cf-ink);
}
.ct-header .menu-item > a:hover,
.ct-header .ct-menu-link:hover { color: var(--cf-accent); }
.ct-header .current-menu-item > a { color: var(--cf-accent); }

/* booking action in the navigation, rendered as the primary button */
li.cf-nav-cta {
  display: flex;
  align-items: center;
  margin-left: 6px;
}
li.cf-nav-cta > a {
  background: var(--cf-accent);
  color: var(--cf-paper) !important;
  border-radius: var(--cf-r-pill);
  padding: 11px 24px !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1.2 !important;
  font-weight: 600;
  transition: background-color .15s ease, transform .15s ease;
}
li.cf-nav-cta > a:hover {
  background: var(--cf-accent-deep);
  color: var(--cf-paper) !important;
  transform: translateY(-1px);
}
li.cf-nav-cta > a::before,
li.cf-nav-cta > a::after,
li.cf-nav-cta .ct-menu-link-inner::after { display: none !important; }

/* keep the header row compact around the pill */
.ct-header [data-row] .ct-menu-link { padding-block: 0; }

footer.ct-footer {
  font-family: var(--cf-font-body);
  background: var(--cf-ground-alt);
}
footer.ct-footer a { color: var(--cf-accent); }

/* ---------- responsive ---------- */

@media (max-width: 999px) {
  .cf-topics__grid { grid-template-columns: repeat(2, 1fr); }
  .cf-steps { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 781px) {
  .cf-hero, .cf-modes, .cf-topics, .cf-about,
  .cf-process, .cf-coverage, .cf-faq, .cf-cta,
  .cf-lead-in, .cf-panel, .cf-contact {
    padding: var(--cf-sp-lg) 20px;
  }
  .cf-hero__grid, .cf-about__grid, .cf-coverage__grid,
  .cf-modes__grid, .cf-lead-in__grid, .cf-panel__grid,
  .cf-contact__grid { gap: var(--cf-sp-md); }
  .cf-topics__grid, .cf-steps { grid-template-columns: 1fr; }
  .cf-hero__title { max-width: none; }
  .cf-hero__crest img { max-width: 220px; }
  .cf-hero__grid { flex-direction: column-reverse; }
  .cf-portrait { aspect-ratio: 3 / 2; }
  .cf-cta__btns { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .wp-block-button.cf-btn .wp-block-button__link,
  .cf-faq__item summary::after { transition: none; }
  .wp-block-button.cf-btn--primary .wp-block-button__link:hover { transform: none; }
}
