/*
Theme Name: CP Flujo
Theme URI: https://example.com/
Author: Chrysi Pap
Author URI: https://example.com/
Description: A modern block theme for translators, subtitlers, and Spanish language tutoring.
Version: 1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cpflujo
Requires at least: 6.8
Requires PHP: 7.4
*/

/* CSS Reset
---------------------------------------------------------------------------- */

*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
}

b,
strong {
  font-weight: var(--wp--custom--font-weight--semi-bold);
}

ol,
ul {
  padding: 0;
}

ol:where(:not([class*='wp-block'])),
ol:where(.wp-block-list),
ul:where(:not([class*='wp-block'])),
ul:where(.wp-block-list) {
  padding-inline-start: var(--wp--preset--spacing--medium);
}

div[class*='wp-block-'] figcaption {
  color: var(--wp--preset--color--secondary);
  font-size: var(--wp--preset--font-size--x-small);
  margin-bottom: 0;
  margin-top: 20px;
  text-align: center;
}

img,
figure {
  max-width: 100%;
  height: auto;
}

/* Temporary fix for text-decoration-thickness in Firefox */
@-moz-document url-prefix() {
  a {
    text-decoration-thickness: 0.1rem !important;
  }
}

/* Standardize form styling
--------------------------------------------- */

input,
button,
textarea,
select {
  font: inherit;
}

input[type='button'],
input[type='email'],
input[type='search'],
input[type='submit'],
input[type='text'],
textarea {
  -webkit-appearance: none;
  appearance: none;
}

input:not([type='submit']),
select,
textarea,
.wp-block-post-comments-form input:not([type='submit']):not([type='checkbox']),
.wp-block-post-comments-form textarea {
  color: var(--wp--preset--color--main);
  border-radius: 5px;
  border: solid 1px var(--wp--preset--color--border-light);
  padding: 0.5em 1em;
  font-size: var(--wp--preset--font-size--small);
  background-color: #fff;
}

input:focus-visible,
textarea:focus-visible {
  outline-color: var(--wp--preset--color--primary);
}

input[type='checkbox'],
input[type='image'],
input[type='radio'] {
  width: auto;
}

label {
  width: 100%;
  display: block;
}

::placeholder {
  color: var(--wp--preset--color--secondary);
  font-size: var(--wp--preset--font-size--small);
  opacity: 0.75;
}

/**
 * Justify paragraphs
 */
/*
main p {
    text-align: justify;
}
*/

/* Global Vars
---------------------------------------------------------------------------- */
:root {
  --cpf-header-height: 93px;
  --cpf-header-height-sticky: 74px;
}

/* Helper styles
---------------------------------------------------------------------------- */
.hidden {
  display: none !important;
}

a.more-link {
  display: block;
}

/* Inline code */
*:not(.wp-block-code) > code {
  background-color: var(--wp--preset--color--tertiary);
  padding: 3px 5px;
  position: relative;
  border-radius: 3px;
}

.wp-block-categories {
  position: relative;
}

/* Adjust terms at bottom of posts */
.single .wp-block-group .wp-block-post-terms,
.blog .wp-block-group .wp-block-post-terms {
  margin-bottom: -8px !important;
}

/* =========================================================
   Query Loop – Card System
   Shared card styling for all wp-block-query instances
   (Home, Blog, Archives, Related Posts)
   ========================================================= */

/* ---------------------------------------------------------
   Reset list styles for Query Loop posts
   --------------------------------------------------------- */
.wp-block-query .wp-block-post {
  list-style: none;
}

/* ---------------------------------------------------------
   Card Wrapper
   The inner wp-block-group acts as the visual card
   --------------------------------------------------------- */
.wp-block-query .wp-block-post > .wp-block-group {
  background-color: var(--wp--preset--color--white);
  border-radius: 12px;
  padding: 20px;

  display: flex;
  flex-direction: column;

  /* Soft editorial elevation */
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.06),
    0 8px 24px rgba(0, 0, 0, 0.06);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.wp-block-query .wp-block-post > .wp-block-group.has-base-background-color {
  background-color: var(--wp--preset--color--white) !important;
}

/* Card hover interaction */
.wp-block-query .wp-block-post > .wp-block-group:hover {
  transform: translateY(-4px);
  box-shadow:
    0 4px 10px rgba(0, 0, 0, 0.08),
    0 16px 32px rgba(0, 0, 0, 0.08);
}

@media (hover: none) {
  .wp-block-query .wp-block-post > .wp-block-group:hover {
    transform: none;
  }
}

/* ---------------------------------------------------------
   Featured Image Container
   --------------------------------------------------------- */
.wp-block-query .wp-block-post-featured-image {
  overflow: hidden;
  border-radius: 8px;
  margin-bottom: 1.5rem;
}

/* Image zoom on card hover */
.wp-block-query .wp-block-post-featured-image img {
  transition: transform 0.35s ease;
}

.wp-block-query
  .wp-block-post
  > .wp-block-group:hover
  .wp-block-post-featured-image
  img {
  transform: scale(1.05);
}

/* ---------------------------------------------------------
   Post Title
   --------------------------------------------------------- */
.wp-block-query .wp-block-post-title {
  margin-top: 0;
  margin-bottom: 0.625rem;
  line-height: 1.25;
}

.wp-block-query .wp-block-post-title a {
  color: var(--wp--preset--color--main);
  text-decoration: none;
  transition: color 0.2s ease;
}

.wp-block-query .wp-block-post-title a:hover {
  color: var(--wp--preset--color--primary);
}

/* ---------------------------------------------------------
   Excerpt & Text Spacing Cleanup
   --------------------------------------------------------- */
.wp-block-query .wp-block-post-excerpt p {
  margin-top: 0;
}

/* ---------------------------------------------------------
   Meta (Date, etc.)
   --------------------------------------------------------- */
.wp-block-query .wp-block-post-date {
  color: var(--wp--preset--color--border-dark);
  opacity: 0.8;
}

/* ---------------------------------------------------------
   Accessibility – Keyboard Focus
   --------------------------------------------------------- */
.wp-block-query .wp-block-post-title a:focus-visible {
  outline: 2px solid var(--wp--preset--color--secondary);
  outline-offset: 3px;
}

/* Archive pages */
/* Apply offset to page content */
body.archive .wp-site-blocks {
  padding-top: var(--cpf-header-height);
}

/* Remove margin on term description on archive pages */
.wp-block-term-description p:last-child {
  margin-bottom: 0;
}

/* Remove last separator on post list */
.remove-border-and-padding
  .wp-block-post-template
  li:last-child
  .wp-block-separator {
  display: none;
}

/* Hide post meta div if no tags assigned */
.single .wp-block-group:has(> .post-meta:empty) {
  display: none;
}

.wp-block-group:empty:has(+ .comment-respond) {
  display: none;
}

.row-logos > figure {
  flex-shrink: 1 !important;
}

/* Default colors */
body {
  --wp--preset--color--base: #FFFFFF;
}

/* Alternate theme */
body.theme-alt {
  --wp--preset--color--base: #F6F3EA;
}

/* Cream theme */
body.theme-cream {
  --wp--preset--color--base: #EFE3D4;
}

/* Dark theme */
body.theme-dark {
  --wp--preset--color--base: #1A1A1A;
  --wp--preset--color--contrast: #FFFFFF;
}

/* Sticky header */
header:has(> .is-position-sticky) {
  position: sticky;
  top: calc(0px + var(--wp-admin--admin-bar--height, 0px));
  z-index: 100;
}

/* Account for admin bar on mobile */
@media (max-width: 600px) {
  header:has(> .is-position-sticky) {
    top: 0;
  }
}

/* Hide visually but keep for screen readers */
.hr-only,
.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;
}

/* Mobile helper classes */

@media (max-width: 781px) {
  .cpflujo-hide-on-mobile {
    display: none;
  }

  .cpflujo-unstick-mobile {
    position: static;
  }

  header:has(> .cpflujo-unstick-mobile) {
    position: static;
  }
}

/**
 * Header
 * ************************************** */

/* Base header */
.cpflujo-site-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--cpf-header-height);
  z-index: 50;
  background: rgb(255 255 255 / 15%);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* Sticky mode when scrolled */
.cpflujo-site-header.sticky {
  position: fixed;
  height: var(--cpf-header-height-sticky);
  background: var(--wp--preset--color--base, #fff);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.cpflujo-site-header .wp-block-site-logo img {
  transition: all 0.3s ease;
}

.cpflujo-site-header.sticky .wp-block-site-logo img {
  width: 125px;
}

/* Account for admin bar (desktop 32px) */
body.admin-bar .cpflujo-site-header {
  top: 32px;
}

/* Account for admin bar (mobile 46px) */
@media screen and (max-width: 782px) {
  body.admin-bar .cpflujo-site-header {
    top: 46px;
  }

  body.admin-bar .cpflujo-site-header.sticky {
    top: 0px;
  }
}

/**
 * Back to Top
 * ************************************** */
#cpflujo-back-to-top-wrapper {
  margin: 0;
  padding: 0;
}

/**
 * Split services home
 * ************************************** */

/* Darkish overlay */
.cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-left,
.cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-right {
  position: relative; /* needed for overlay positioning */
  overflow: hidden; /* ensures overlay stays within */
}

.cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-left::before,
.cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-right::before {
  /* content: ""; */
  position: absolute;
  inset: 0; /* shorthand for top/right/bottom/left: 0 */
  background: rgb(0 0 0 / 20%); /* adjust color & opacity */
  z-index: 0; /* put overlay below content */
}

.cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-left > *,
.cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-right > * {
  position: relative;
  z-index: 1; /* ensure text & buttons stay above overlay */
}

.home.admin-bar .cpflujo-hero-full-screen-split-wrapper {
  --cpf-hero-split-vh: calc(100vh - 32px);
  min-height: var(--cpf-hero-split-vh, 100vh) !important;
}

/* Split hero diagonal cut */
.cpflujo-hero-full-screen-split-wrapper {
  --cpf-hero-split-vh: 100vh;
  --cpf-hero-split-notch: 10%; /* how far the diagonal bites into the top edge */

  position: relative;
  background-color: var(--wp--preset--color--primary-alt);
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: var(--cpf-hero-split-vh, 100vh);
  overflow: hidden;
}

/* keep both sides full height on desktop */
.cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-left,
.cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-right {
  min-height: var(--cpf-hero-split-vh, 100vh);
}

/* the diagonal cut on the right side */
.cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-right {
  clip-path: polygon(var(--cpf-hero-split-notch) 0, 100% 0, 100% 100%, 0% 100%);
}

/* tune the notch per breakpoint */
@media (max-width: 1200px) {
  .cpflujo-hero-full-screen-split-wrapper {
    --cpf-hero-split-notch: 8%;
  }
}
@media (max-width: 1024px) {
  .cpflujo-hero-full-screen-split-wrapper {
    --cpf-hero-split-notch: 6%;
  }
}
@media (max-width: 900px) {
  .cpflujo-hero-full-screen-split-wrapper {
    --cpf-hero-split-notch: 4%;
  }
}

@media (max-width: 780px) {
    .cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-left, 
    .cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-right {
        /* Min: 1rem (16px)
           Preferred: 4vw (scales with screen)
           Max: 1.5rem (24px)
        */
        --wp--preset--spacing--large: clamp(1rem, 4vw, 1.5rem);
        
        /* Adjust background size for mobile so text is legible */
        background-size: 80% !important;
    }
    
    .cpflujo-hero-full-screen-split-wrapper .wp-block-button.is-style-service .wp-block-button__link, 
    .cpflujo-hero-full-screen-split-wrapper .wp-block-button.is-style-service-alt .wp-block-button__link {
        padding: 0.75em 1.11em;
    }
}

/* stack on small screens (remove diagonal) */
/* @media (max-width: 780px) {
  .cpflujo-hero-full-screen-split-wrapper {
    grid-template-columns: 1fr;
  }
  .cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-left,
  .cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-right {
    min-height: auto;
  }
  .cpflujo-hero-full-screen-split-wrapper .cpflujo-hero-right {
    clip-path: none;
  }
} */

/**
 * Pages no title
 * ************************************** */
.page.page-template-page-no-title .site-content {
  /* Add top padding equal to cpflujo-site-header height */
  padding-top: 93px;
}

/**
 * Contact Me CTA
 * ************************************** */
.cpf-contact-cta {
  position: relative;
  overflow: visible;
}

.cpf-contact-cta::after {
  content: '';
  position: absolute;
  bottom: 0px;
  left: 0px;
  width: 290px;
  height: 290px;
  background: url(./assets/images/undraw_bibliophile_sbt0.svg) no-repeat center /
    contain;
  pointer-events: none;
  z-index: 0;
}

/* put content above illustration */
.cpf-contact-cta > * {
  position: relative;
  z-index: 1;
}

.cpf-contact-cta .cpf-contact-cta-button-wrapper {
  max-width: 350px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 768px) {
  .cpf-contact-cta {
    margin-top: 125px !important;
  }

  .cpf-contact-cta::after {
    bottom: auto;
    top: -120px;
    left: 50%;
    transform: translateX(-50%);
    width: 150px;
    height: 120px;
  }
}

/* .cpf-contact-cta .wp-block-outermost-icon-block.cpf-contact-cta-graphic {
    margin: 0;
}

.cpf-contact-cta .wp-block-outermost-icon-block.cpf-contact-cta-graphic svg {
	width: 255px;
	height: auto;
	position: absolute;
	left: 0;
	bottom: calc(var(--wp--preset--spacing--medium) * -1) !important;
} */

/**
 * Info cards grid
 * ************************************** */
.wp-block-group.cpf-card-grid {
  display: grid;
  gap: var(--wp--preset--spacing--medium);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 1024px) {
  .wp-block-group.cpf-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .wp-block-group.cpf-card-grid {
    grid-template-columns: 1fr;
  }
}

/**
 * Info card
 * ************************************** */
.cpf-card-header {
  position: relative;
}

.cpf-card-header::after {
  content: '';
  position: absolute;
  bottom: -1rem;
  display: block;
  width: 4rem;
  height: 3px;
  /* left: 50%; */
  /* transform: translateX(-50%); */
  background-color: var(--wp--preset--color--primary);
  border-radius: 2px;
  transition: width 0.3s ease-in-out;
}

.cpf-card:hover .cpf-card-header::after {
  width: 98%;
}

/* .cpf-card-header .cpf-card-title {
    flex-grow: 0;
    flex-shrink: 1;
    flex-basis: calc(100% - 28px - var(--wp--preset--spacing--medium));
} */

/**
 * Forms
 * ************************************** */
.form-row {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.form-row.two-cols {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem; /* this now works properly */
}

.form-field {
  display: flex;
  flex-direction: column;
}

/* Labels */
.form-field label {
  display: flex;
  flex-direction: column;
  font-weight: 500;
  font-size: 0.95rem;
  margin-bottom: 0.3rem;
  color: #333; /* adjust for your theme */
}

/* Inputs, selects, textarea */
.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #ccc;
  border-radius: 0; /* flat look */
  background: #fff;
  font-size: 1rem;
  color: #222;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}

/* Focus state */
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus {
  border-color: #000; /* darker accent */
  outline: none;
  box-shadow: inset 0 0 0 1px #000; /* subtle effect */
}

/* Textarea */
.form-field textarea {
  min-height: 150px;
  resize: vertical;
}

/* Submit button */
.wpcf7-submit {
  background: #000;
  color: #fff;
  font-weight: 600;
  padding: 0.85rem 2rem;
  border: none;
  border-radius: 0;
  text-transform: none;
  font-size: 0.95rem;
  cursor: pointer;
  transition: background 0.25s ease, transform 0.15s ease;
}

.wpcf7-submit:hover {
  background: #333;
}

.wpcf7-submit:active {
  transform: scale(0.98);
}

/* Mobile: stack two cols into one */
@media (max-width: 768px) {
  .form-row.two-cols {
    grid-template-columns: 1fr;
  }
}

/**
 * Blob-style map
 * ************************************** */
.cpf-contact-details-map {
  max-width: 550px;
  max-height: 495px;
  aspect-ratio: 550 / 495;
  overflow: hidden;
  margin: 0 auto;
}

.cpf-contact-details-map iframe {
  width: 100%;
  height: 100%;
  margin: 0;
  border: none;
  border-radius: 0;
  /* comment clip */
  /* clip-path: path("M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8S-2 485.8 2.8 476.8l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240z"); */
  /* location clip */
  /* clip-path: path("M128 252.6C128 148.4 214 64 320 64C426 64 512 148.4 512 252.6C512 371.9 391.8 514.9 341.6 569.4C329.8 582.2 310.1 582.2 298.3 569.4C248.1 514.9 127.9 371.9 127.9 252.6zM320 320C355.3 320 384 291.3 384 256C384 220.7 355.3 192 320 192C284.7 192 256 220.7 256 256C256 291.3 284.7 320 320 320z");
  -webkit-clip-path: path("M128 252.6C128 148.4 214 64 320 64C426 64 512 148.4 512 252.6C512 371.9 391.8 514.9 341.6 569.4C329.8 582.2 310.1 582.2 298.3 569.4C248.1 514.9 127.9 371.9 127.9 252.6zM320 320C355.3 320 384 291.3 384 256C384 220.7 355.3 192 320 192C284.7 192 256 220.7 256 256C256 291.3 284.7 320 320 320z"); */

  /* location mask */
  mask: url(./assets/images/location.svg) no-repeat center / contain;
  -webkit-mask: url(./assets/images/location.svg) no-repeat center / contain;
  object-fit: cover;
  /* transform: translateY(-12%); */
}

@media (max-width: 767.98px) {
  .cpf-contact-details-map {
    display: none;
  }

  .wp-block-column.cpf-contact-details-right {
    padding-right: var(--wp--preset--spacing--none) !important;
    padding-left: var(--wp--preset--spacing--none) !important;
  }
}

/**
 * PEM Badge section
 * ************************************** */
.cpf-badge-wrapper {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.5rem;
  /* border-radius: 0.75rem; */
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  color: inherit;
  background: #fff; /* κάνει αντίθεση με section */
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  max-width: 550px;
  width: 100%;
}

.cpf-badge-wrapper:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.cpf-badge-logo {
  width: 75px;
  height: auto;
  flex-shrink: 0;
  /* border-radius: 0.75rem; */
}

.cpf-badge-text {
  margin: 0;
  font-size: 1rem;
  line-height: 1.4;
}

/**
 * Recent Posts Grid
 * ************************************** */
.cpf-recent-posts-grid-item {
  background: var(--wp--preset--color--white);
}

/**
 * Language Services
 * ************************************** */

/* Make language-services cards push cta btn to the bottom */
.cpf-language-services-grid .cpf-card {
  height: 100%;
}
.cpf-language-services-grid .cpf-card-body {
  flex-grow: 1;
}

.wp-block-list.cpf-language-combinations-list {
  list-style: none;
  margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--30) 1.5rem;
  padding-left: 0;
}

.wp-block-list.cpf-language-combinations-list li {
  margin-bottom: 0.5rem;
  position: relative;
  padding-left: 1.2rem;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.wp-block-list.cpf-language-combinations-list li::before {
  content: '➤';
  position: absolute;
  left: 0;
  color: var(--wp--preset--color--border-dark);
  font-size: 0.9em;
  line-height: 1;
}

/* Details block (FAQ style) */
.cpf-tools-details-wrapper,
.cpf-levels-details-wrapper,
.cpf-faq-details-wrapper {
  margin-top: 1.5rem;
} 

/* Reset default markers */
.wp-block-details.cpf-tools-detail summary,
.wp-block-details.cpf-faq-detail summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 0.75rem 1rem;
  font-weight: 600;
  border-bottom: 2px solid var(--wp--preset--color--secondary, #0f4c5c);
  background-color: var(--wp--preset--color--primary, #f59e0b);
  color: var(--wp--preset--color--main, #1e1e1e);
}

.cpf-tools-detail summary::-webkit-details-marker,
.cpf-faq-detail summary::-webkit-details-marker {
  display: none;
}

/* Icon (plus/minus) */
.wp-block-details.cpf-tools-detail summary::after,
.wp-block-details.cpf-faq-detail summary::after {
  content: '+';
  position: absolute;
  right: 1rem;
  font-weight: 700;
  transition: transform 0.2s ease, content 0.2s ease;
  font-size: 1.2rem;
}

.wp-block-details.cpf-tools-detail[open] summary::after, 
.wp-block-details.cpf-faq-detail[open] summary::after {
  content: '–';
}

.wp-block-details.cpf-tools-detail > *:not(summary), 
.wp-block-details.cpf-faq-detail > *:not(summary) {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
}

/* When JS applies `is-animating` class, allow smooth transition */
.wp-block-details.cpf-tools-detail.is-animating > *:not(summary), 
.wp-block-details.cpf-faq-detail.is-animating > *:not(summary) {
  transition: max-height 0.35s ease, opacity 0.25s ease;
}

.wp-block-details.cpf-tools-detail[open] > *:not(summary), 
.wp-block-details.cpf-faq-detail[open] > *:not(summary) {
  max-height: 500px;
  opacity: 1;
} 

/* Expanded content */
.wp-block-details.cpf-tools-detail p, 
.wp-block-details.cpf-faq-detail p {
  padding: 0.5rem 1rem 1rem 1rem;
  margin: 0;
  color: var(--wp--preset--color--main, #1e1e1e);
  line-height: 1.6;
}


/**
 * Private lessons
 * ************************************** */

.cpf-teaching-approach {
  background-color: var(--wp--preset--color--main-accent); /* soft background */
  padding: 4rem 1.5rem;
  text-align: center;
}

.cpf-teaching-approach-inner {
  max-width: 750px;
  margin: 0 auto;
}

.cpf-teaching-approach .cpf-section-title {
  font-size: 2rem;
  margin-bottom: 1.5rem;
  position: relative;
  display: inline-block;
  padding-bottom: 0.5rem;
}

.cpf-teaching-approach .cpf-section-title::after {
  content: "";
  display: block;
  width: 60%;
  height: 3px;
  background-color: var(--wp--preset--color--brand-alt-accent, #f59e0b);
  margin: 0.5rem auto 0;
  border-radius: 2px;
}

.cpf-teaching-approach p {
  font-size: 1.1rem;
  line-height: 1.8;
  color: var(--wp--preset--color--main, #1E1E1E);
}

#hispanosphere-map-app {
    overflow: hidden;
    position: relative;
}

/**
 * Footer
 * ************************************** */
.cpflujo-footer-menu {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem 1.5rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.cpflujo-footer-menu li {
  text-align: left;
}

.cpflujo-footer-menu a {
  text-decoration: none;
  display: inline-block;
  padding: 0.25rem 0;
}

/* Mobile: stack items into one column */
@media (max-width: 767.98px) {
  .cpflujo-footer-menu {
    grid-template-columns: 1fr;
    text-align: center;
  }
}

/**
 * Cookies
 * ************************************** */
.pressidium-cc-theme {
    --cc-bg: #f9faff;
    --cc-text: #0d4b44;
    --cc-btn-primary-bg: #136f64;
    --cc-btn-primary-text: #f9faff;
    --cc-btn-primary-hover-bg: #1e3936;
    --cc-btn-primary-hover-text: #f9faff;
    --cc-btn-secondary-bg: #dfe7f9;
    --cc-btn-secondary-text: #0d4b44;
    --cc-btn-secondary-hover-bg: #c6d1ea;
    --cc-btn-secondary-hover-text: #0d4b44;
    --cc-toggle-bg-off: #8fa8d6;
    --cc-toggle-bg-on: #136f64;
    --cc-toggle-bg-readonly: #cbd8f1;
    --cc-toggle-knob-bg: #fff;
    --cc-toggle-knob-icon-color: #ecf2fa;
    --cc-cookie-category-block-bg: #ebeff9;
    --cc-cookie-category-block-bg-hover: #dbe5f9;
    --cc-section-border: #f1f3f5;
    --cc-block-text: #0d4b44;
    --cc-cookie-table-border: #e1e7f3;
    --cc-overlay-bg: rgba(230, 235, 255, .85);
    --cc-webkit-scrollbar-bg: #ebeff9;
    --cc-webkit-scrollbar-bg-hover: #136f64;
    --cc-btn-floating-bg: #136f64;
    --cc-btn-floating-icon: #f9faff;
    --cc-btn-floating-hover-bg: #1e3936;
    --cc-btn-floating-hover-icon: #f9faff;
}