/*
Theme Name: Prima Logopedie
Theme URI: https://www.primalogopedie.com
Author: Gabriele Balsano
Author URI: https://gabrielebalsano.it
Description: Stile base tema WordPress Prima Logopedie
Requires PHP: 7.0
*/

/* =========================================================
   01. VARIABILI GLOBALI / PALETTE BRAND
   ========================================================= */

:root {
  --corallo: #FF6B4A;
  --corallo-dark: #E85B3E;
  --turchese: #00A8A8;
  --turchese-dark: #008C8C;
  --turchese-soft: #B7E0D9;
  --avorio: #FFF7F2;
  --grigio-chiaro: #E6E6E6;
  --antracite: #2D2D2D;
  --white: #FFFFFF;
  --black: #000000;

  --primary: var(--corallo);
  --secondary: var(--turchese);
  --accent: var(--turchese-soft);
  --background: var(--avorio);
  --text: var(--antracite);
  --muted: #6F6F6F;
  --header-bg: var(--white);
  --footer-bg: var(--antracite);

  --container: 1250px;
  --container-wide: 1450px;
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 28px;
  --shadow-soft: 0 10px 30px rgba(45, 45, 45, 0.08);
  --shadow-hover: 0 14px 35px rgba(45, 45, 45, 0.14);
  --transition: all 0.3s ease;
}

/* =========================================================
   02. RESET / BASE
   ========================================================= */

html{
    font-size:16px;
    scroll-behavior:smooth;
    overscroll-behavior:none;
    -webkit-overflow-scrolling:touch;
}

body{

    margin:0;
    padding:0;

    background-color:var(--background);
    color:var(--text);

    font-family:'Manrope',sans-serif;
    font-size:1rem;
    font-weight:400;

    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;

}

*,
*:before,
*:after{

    box-sizing:border-box;

}

body strong{

    font-weight:700 !important;

}

img{

    max-width:100%;
    height:auto;
    display:block;

}

a{

    color:var(--text);
    text-decoration:none;
    transition:var(--transition);

}

a:hover{

    color:var(--primary);

}

hr{

    border:none;
    border-bottom:1px solid var(--grigio-chiaro);

}

/* =========================================================
   TESTI
   ========================================================= */

p{

    margin:0 0 1.35rem;

    font-family:'Manrope',sans-serif;

    font-size:1.1rem;

    line-height:1.75;

    font-weight:400;

    color:var(--text);

}

ul,
ol{

    padding-left:1.3rem;
    margin:0 0 1.4rem;

}

ul li,
ol li{

    font-family:'Manrope',sans-serif;

    font-size:1.05rem;

    line-height:1.75;

    color:var(--text);

    margin-bottom:.35rem;

}

/* =========================================================
   03. TIPOGRAFIA
   ========================================================= */

h1,
h2,
h3,
h4,
h5,
h6{

    margin:0 0 1rem;
    padding:0;

    color:var(--text);

    font-family:'DM Sans',sans-serif;

    line-height:1.08;

    letter-spacing:-0.02em;

}

h1,
.text-1{

    font-size:clamp(2.6rem,5vw,4.8rem);

    font-weight:700;

}

h2,
.text-2{

    font-size:clamp(2rem,3.5vw,3.4rem);

    font-weight:700;

}

h3,
.text-3{

    font-size:clamp(1.45rem,2.3vw,2.1rem);

    font-weight:700;

}

h4,
.text-4{

    font-size:clamp(1.15rem,1.7vw,1.35rem);

    font-weight:600;

}

.text-0{

    font-family:'DM Sans',sans-serif;

    font-size:clamp(3.3rem,7vw,6rem);

    font-weight:700;

    line-height:1;

}

.text-small{

    font-size:.95rem;

}

.text-muted{

    color:var(--muted);

}

.text-primary{

    color:var(--primary)!important;

}

.text-secondary{

    color:var(--secondary)!important;

}

.section-title{

    color:var(--antracite);

}

.section-title span{

    color:var(--primary);

}

/* =========================================================
   FONT GLOBALI
   ========================================================= */

.header__menu li a,

.button-style a,

.button-style span,

.wp-block-button__link,

.pl-btn,

.header__cta-button,

button{

    font-family:'DM Sans',sans-serif;

    font-weight:600;

}

input,
textarea,
select,
label{

    font-family:'Manrope',sans-serif;

    font-size:1rem;

}

/* =========================================================
   SELEZIONE TESTO
   ========================================================= */

::selection{

    background:var(--primary);

    color:#fff;

}

::-moz-selection{

    background:var(--primary);

    color:#fff;

}
/* =========================================================
   04. BOTTONI
   ========================================================= */

.gb-button,
.button-style a,
.button-style span,
.wp-block-button__link { transition: var(--transition); }

.gb-button:hover,
.button-style a:hover,
.button-style span:hover,
.wp-block-button__link:hover {
  transform: translateY(-2px);
  cursor: pointer;
}

.button-style a,
.button-style span,
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background-color: var(--primary);
  color: var(--white) !important;
  padding: 15px 24px;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  box-shadow: 0 8px 18px rgba(255, 107, 74, 0.25);
  border: 2px solid var(--primary);
}

.button-style a:hover,
.button-style span:hover,
.wp-block-button__link:hover {
  background-color: var(--corallo-dark);
  border-color: var(--corallo-dark);
  color: var(--white) !important;
  box-shadow: 0 12px 24px rgba(255, 107, 74, 0.35);
}

.button--invert a,
.button--invert span {
  background-color: var(--white);
  color: var(--primary) !important;
  border: 2px solid var(--primary);
  box-shadow: none;
}

.button--invert a:hover,
.button--invert span:hover {
  background-color: var(--primary);
  color: var(--white) !important;
}

/* =========================================================
   05. FORM / CONTACT FORM 7
   ========================================================= */

input,
textarea,
select {
  width: 100%;
  border: 2px solid var(--grigio-chiaro);
  border-radius: var(--radius-sm);
  padding: 13px 14px;
  font-family: inherit;
  color: var(--text);
  background-color: var(--white);
}

textarea {
  min-height: 140px;
  resize: vertical;
}

input[type=submit],
button {
  border: 2px solid var(--primary);
  background: var(--primary);
  color: var(--white);
  border-radius: 999px;
  padding: 12px 24px;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
}

input[type=submit]:hover,
button:hover {
  background: var(--corallo-dark);
  border-color: var(--corallo-dark);
}

.wpcf7 select:focus,
.wpcf7 input:focus,
.wpcf7 textarea:focus {
  border-color: var(--secondary);
  outline: none;
  box-shadow: 0 0 0 4px rgba(0, 168, 168, 0.15);
}

/* =========================================================
   06. HEADER
   ========================================================= */

.header-container {
  background: var(--white);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  max-width: 100%;
  box-shadow: 0 8px 28px rgba(45, 45, 45, 0.08);
  border-bottom: 1px solid rgba(230, 230, 230, 0.9);
}

/* WordPress admin bar */
.logged-in .header-container {
  top: 32px;
}

.header {
  width: 100%;
  max-width: var(--container-wide);
  margin: 0 auto;

  min-height: 96px;
  padding: 10px 32px;

  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;
}

/* =========================================================
   BLOCCO CENTRALE
   ========================================================= */

.header__center {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 42px;
}

/* =========================================================
   LOGO
   ========================================================= */

.header__logo {
  display: flex;
  justify-content: center;
  align-items: center;

  z-index: 1002;

  width: 130px;

  background: var(--white);
  padding: 5px;
  border-radius: 15%;

  margin: 0 12px;
}

.header__logo a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.header__logo img {
  max-height: 82px;
  width: auto;
  object-fit: contain;
  filter: none;
  display: block;
}

/* =========================================================
   MENU
   ========================================================= */

.header__nav,
.header__menu {
  margin: 0;
  padding: 0;
}

.header__menu {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 12px;
}

.header__nav--left .header__menu {
  justify-content: flex-end;
}

.header__nav--right .header__menu {
  justify-content: flex-start;
}

.header__menu li {
  position: relative;

  display: inline-flex;
  align-items: center;

  padding: 0;
}

.header__menu li a {
  display: inline-flex;
  align-items: center;

  color: var(--text);

  font-weight: 800;
  font-size: 0.82rem;

  padding: 10px 13px;

  text-transform: uppercase;
  letter-spacing: 0.04em;

  border-radius: 999px;
  white-space: nowrap;

  text-shadow: none;

  transition:
    color 0.3s ease,
    background-color 0.3s ease,
    transform 0.3s ease;
}

.header__menu li a:hover,
.header__menu li.current-menu-item > a,
.header__menu li.current-menu-ancestor > a {
  color: var(--white);
  background-color: var(--primary);
}

/* =========================================================
   CTA PRENOTA
   ========================================================= */

.header__cta {
  position: absolute;

  right: 32px;
  top: 50%;

  transform: translateY(-50%);

  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.header__cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  background-color: var(--primary);
  color: var(--white) !important;

  padding: 13px 26px;

  border-radius: 999px;

  font-size: 0.82rem;
  font-weight: 900;

  text-transform: uppercase;
  letter-spacing: 0.04em;

  box-shadow: 0 8px 18px rgba(255, 107, 74, 0.28);

  border: 2px solid var(--primary);

  white-space: nowrap;

  transition:
    background-color 0.3s ease,
    color 0.3s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.header__cta-button:hover {
  background-color: var(--white);
  color: var(--primary) !important;

  transform: translateY(-2px);

  box-shadow: 0 12px 26px rgba(255, 107, 74, 0.35);
}

/* =========================================================
   DROPDOWN DESKTOP
   ========================================================= */

@media (min-width: 1025px) {

  /* Voce principale che contiene il submenu */
  .header__menu li.menu-item-has-children {
    position: relative;
  }

  /* SUBMENU */
  .header__menu li ul.sub-menu {
    position: absolute;

    /* Nessuno spazio vuoto tra voce e submenu */
    top: 100%;
    left: 0;

    min-width: 235px;

    margin: 0;
    padding: 12px 10px 10px;

    list-style: none;

    background-color: var(--white);

    border: 1px solid var(--grigio-chiaro);
    border-radius: var(--radius-md);

    box-shadow: var(--shadow-soft);

    z-index: 1100;

    /* Nascosto */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform: translateY(6px);

    transition:
      opacity 0.2s ease,
      visibility 0.2s ease,
      transform 0.2s ease;
  }


  /* =========================================================
     APERTURA SUBMENU
     ========================================================= */

  .header__menu li.menu-item-has-children:hover > ul.sub-menu,
  .header__menu li.menu-item-has-children:focus-within > ul.sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;

    transform: translateY(0);
  }


  /* =========================================================
     VOCI SUBMENU
     ========================================================= */

  .header__menu li ul.sub-menu li {
    display: block;
    width: 100%;
  }

  .header__menu li ul.sub-menu li a {
    display: flex;

    width: 100%;

    justify-content: flex-start;

    padding: 11px 13px;

    font-size: 0.78rem;
    font-weight: 700;

    color: var(--text);

    background-color: transparent;

    border-radius: 10px;

    text-shadow: none;

    white-space: nowrap;

    transition:
      background-color 0.25s ease,
      color 0.25s ease;
  }

  .header__menu li ul.sub-menu li a:hover {
    background-color: var(--turchese-soft);
    color: var(--text);
  }


  /* =========================================================
     FRECCIA
     ========================================================= */

  .header__menu li.menu-item-has-children > a::after,
  .header__menu li.servizi-dropdown > a::after {
    content: "\f078";

    font-family: "Font Awesome 6 Free";
    font-weight: 900;

    margin-left: 8px;

    font-size: 10px;

    transition: transform 0.25s ease;
  }


  /* Ruota leggermente la freccia quando il menu è aperto */
  .header__menu li.menu-item-has-children:hover > a::after {
    transform: rotate(180deg);
  }

}
/* =========================================================
   HAMBURGER
   ========================================================= */

.header__hamburger {
  display: none;
}

/* =========================================================
   07. SEZIONI GLOBALI / CARD / COMPONENTI
   ========================================================= */

.section { padding: 90px 20px; }
.section--white { background-color: var(--white); }
.section--avorio { background-color: var(--avorio); }
.section--soft { background-color: var(--turchese-soft); }

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
}

.card {
  background-color: var(--white);
  border-radius: var(--radius-md);
  padding: 28px;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(230, 230, 230, 0.9);
  transition: var(--transition);
}

.card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-hover);
  border-color: rgba(255, 107, 74, 0.35);
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: rgba(0, 168, 168, 0.12);
  color: var(--turchese-dark);
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.highlight-box {
  background-color: var(--white);
  border-left: 5px solid var(--primary);
  border-radius: var(--radius-sm);
  padding: 22px;
  box-shadow: var(--shadow-soft);
}

/* =========================================================
   08. FOOTER
   ========================================================= */

/*==================================================
FOOTER
==================================================*/

.site-footer{

    background:#1F2937;

    color:#fff;

    padding:90px 20px 35px;

}

.footer-top{

    max-width:700px;

    margin:0 auto 70px;

    text-align:center;

}

.footer-logo{

    width: 130px;
    background: white;
    padding: 5px;
    border-radius: 15%;
    margin: 0 auto 25px;

}

.footer-top h3{

    color:#fff;

    margin-bottom:18px;

    font-size:2rem;

}

.footer-intro{

    color:rgba(255,255,255,.75);

    line-height:1.8;

    margin:0 auto;

    max-width:600px;

}

.footer-container{

    max-width:1200px;

    margin:0 auto;

    display:grid;

    grid-template-columns:
    1fr
    1fr
    1fr;

    gap:50px;

    padding-bottom:60px;

}

.footer-col h4{

    color:#fff;

    margin-bottom:25px;

}

.footer-col ul{

    list-style:none;

    padding:0;

    margin:0;

}

.footer-col li{

    margin-bottom:16px;

    color:rgba(255,255,255,.75);

    line-height:1.6;

}

.footer-col i{

    color:var(--primary);

    margin-right:10px;

}

.footer-col a{

    color:rgba(255,255,255,.75);

}

.footer-col a:hover{

    color:var(--primary);

}

.footer-social{

    display:flex;

    gap:18px;

}

.footer-social a{

    width:52px;
    height:52px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    color:#fff;

    font-size:1.25rem;

    transition:.3s;

}

.footer-social a:hover{

    background:var(--primary);

    transform:translateY(-4px);

}

.footer-bottom{

    max-width:1200px;

    margin:0 auto;

    padding-top:35px;

    border-top:
    1px solid rgba(255,255,255,.10);

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

}

.footer-bottom p{

    color:rgba(255,255,255,.65);

    margin:0;

}

.footer-links{

    display:flex;

    gap:20px;

}

.footer-links a{

    color:rgba(255,255,255,.65);

}

.footer-links a:hover{

    color:var(--primary);

}

/*=========================
MOBILE
=========================*/

@media(max-width:768px){

    .site-footer{

        padding:70px 20px 30px;

    }

    .footer-container{

        grid-template-columns:1fr;

        text-align:center;

        gap:40px;

    }

    .footer-social{

        justify-content:center;

    }

    .footer-bottom{

        flex-direction:column;

        text-align:center;

    }

    .footer-links{

        flex-direction:column;

        gap:10px;

    }

}

/* =========================================================
   09. GRID SYSTEM
   ========================================================= */

.grid { display: flex; flex-wrap: wrap; max-width: 100%; width: 100%; margin: 0 auto; }
.grid--shadow { box-shadow: var(--shadow-soft); }
.grid--small { max-width: 900px; }
.grid--medium { max-width: var(--container-wide); }
.grid--content { max-width: var(--container); }
.grid--full { max-width: 100%; }
.grid--center { justify-content: center; }
.grid--footer { display: flex; justify-content: center; flex-wrap: wrap; max-width: var(--container-wide); width: 100%; margin: 0 auto; }

.col-10 { width: 10%; }
.col-15 { width: 15%; }
.col-20 { width: 20%; }
.col-25 { width: 25%; }
.col-30 { width: 30%; }
.col-33 { width: 33.33%; }
.col-35 { width: 35%; }
.col-40 { width: 40%; }
.col-50 { width: 50%; }
.col-60 { width: 60%; }
.col-70 { width: 70%; }
.col-80 { width: 80%; }
.col-90 { width: 90%; }
.col-100 { width: 100%; }

[class*='col-'] { padding: 12px; }
.grid--full [class*='col-'], .grid .grid [class*='col-'] { padding: 0; }

/* =========================================================
   10. COVER / HERO BASE
   ========================================================= */

.cover {
  background: var(--background);
  padding: 120px 20px;
  min-height: 80vh;
  display: flex;
  flex-flow: column;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.cover::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 15% 20%, rgba(183, 224, 217, 0.45), transparent 34%),
    radial-gradient(circle at 85% 12%, rgba(255, 107, 74, 0.13), transparent 26%),
    radial-gradient(circle at 85% 85%, rgba(0, 168, 168, 0.12), transparent 30%);
  z-index: 0;
}

.cover__bg { position: absolute; inset: 0; background: center center / cover no-repeat; z-index: 0; }

.cover__bg:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255, 247, 242, 0.95) 0%, rgba(255, 247, 242, 0.7) 55%, rgba(255, 247, 242, 0.25) 100%);
}

.cover__content { max-width: var(--container); margin: 0 auto; position: relative; z-index: 1; width: 100%; }
.cover__content h1 { max-width: 850px; }

/* =========================================================
   11. ANIMAZIONI
   ========================================================= */

.fade-in { opacity: 0; transform: translateY(1rem); }
.text-reveal { transform: translateY(1rem); clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); }
.fade-up { opacity: 0; transform: translateY(5rem); }

/* =========================================================
   12. HELPERS
   ========================================================= */

.br { border: 1px solid red; }
.img-res { width: 100%; }
.video-res { width: 100%; height: 100%; overflow: hidden; }
.video-res video { width: 100%; height: 100%; object-fit: cover; }
.relative { position: relative; }
.absolute { position: absolute; }
.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 1rem !important; }
.mt-2 { margin-top: 2rem !important; }
.mt-3 { margin-top: 3rem !important; }
.mt-4 { margin-top: 4rem !important; }
.mt-5 { margin-top: 5rem !important; }
.mt-6 { margin-top: 6rem !important; }
.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 1rem !important; }
.mb-2 { margin-bottom: 2rem !important; }
.mb-3 { margin-bottom: 3rem !important; }
.mb-4 { margin-bottom: 4rem !important; }
.ml-0 { margin-left: 0; }
.ml-1 { margin-left: 1rem !important; }
.ml-2 { margin-left: 2rem !important; }
.ml-3 { margin-left: 3rem !important; }
.ml-4 { margin-left: 4rem !important; }
.ml-5 { margin-left: 5rem !important; }
.ml-6 { margin-left: 6rem !important; }
.mr-0 { margin-right: 0; }
.mr-1 { margin-right: 1rem !important; }
.mr-2 { margin-right: 2rem !important; }
.mr-3 { margin-right: 3rem !important; }
.mr-4 { margin-right: 4rem !important; }
.mr-5 { margin-right: 5rem !important; }
.mr-6 { margin-right: 6rem !important; }
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.p-0 { padding: 0 !important; }
.p-1 { padding: 1rem; }
.p-2 { padding: 2rem; }
.p-3 { padding: 3rem; }
.p-4 { padding: 4rem; }
.pt-0 { padding-top: 0; }
.pt-1 { padding-top: 1rem; }
.pt-2 { padding-top: 2rem; }
.pt-3 { padding-top: 3rem; }
.pt-4 { padding-top: 4rem; }
.pb-0 { padding-bottom: 0; }
.pb-1 { padding-bottom: 1rem; }
.pb-2 { padding-bottom: 2rem; }
.pb-3 { padding-bottom: 3rem; }
.pb-4 { padding-bottom: 4rem; }
.mlr-10 { margin-left: -10px; margin-right: -10px; }
.w-10 { width: 10%; }
.w-20 { width: 20%; }
.w-30 { width: 30%; }
.w-40 { width: 40%; }
.w-50 { width: 50%; }
.w-60 { width: 60%; }
.w-70 { width: 70%; }
.fw-100 { font-weight: 100; }
.fw-200 { font-weight: 200; }
.fw-300 { font-weight: 300; }
.fw-400 { font-weight: 400; }
.fw-500 { font-weight: 500; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }
.fw-800 { font-weight: 800; }
.fw-900 { font-weight: 900; }
.fw-bold { font-weight: bold; }
.rotate-20 { transform: rotate(20deg); }
.icon-small { width: 40px; padding: 8px; }
.icon-white { filter: invert(1); }
.bg-dark { background: var(--antracite); }
.bg-white { background: var(--white); }
.bg-avorio { background: var(--avorio); }
.bg-turchese-soft { background: var(--turchese-soft); }
.text-white { color: var(--white) !important; }
.text-dark { color: var(--text) !important; }
.v-center { display: flex; justify-content: center; flex-flow: column; align-items: flex-start; }
.alg-center { align-items: center !important; }
.alg-start { align-items: start; }
.alg-end { align-items: end; }
.just-center { justify-content: center !important; }
.just-start { justify-content: start !important; }
.just-end { justify-content: end !important; }
.flex { display: flex; }
.pointer { cursor: pointer; }
.margin-auto { margin: 0 auto !important; }
.font-normal { font-weight: 400; }
.fz-20 { font-size: 20px; }
.max-none { max-width: none !important; }
.none { display: none; }

/* =========================================================
   13. WORDPRESS UTILS
   ========================================================= */

.form-search { width: 100%; border: 2px solid var(--grigio-chiaro); border-radius: 999px; padding-left: 15px; background-color: var(--white); }
.form-search input { width: calc(100% - 40px); border: none; }
.form-search button { padding: 0; background: transparent; border: none; }
.form-search img { width: 25px; margin-bottom: -8px; }
.alignfull { width: 100vw; margin-left: calc(50% - 50vw); }
.alignwide { width: 90vw; margin-left: calc(50% - 45vw); }

/* =========================================================
   14. RESPONSIVE TABLET / MOBILE
   ========================================================= */

@media (max-width: 1180px) {
  .header { padding: 10px 22px; }
  .header__center { gap: 42px; }
  .header__menu { gap: 12px; }
  .header__menu li a { font-size: 0.78rem; padding: 9px 10px; }
  .header__cta { right: 22px; }
  .header__cta-button { padding: 11px 20px; font-size: 0.75rem; }
  .header__logo img { max-height: 72px; }
}

@media (max-width: 1024px) {
  .header {
    min-height: 82px;
    padding: 8px 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .header__center { display: contents; }

  .header__logo {
    justify-content: flex-start;
    order: 1;
    margin: 0;
  }

  .header__logo a {
    background: rgba(255,255,255,.90);
    padding: 4px 6px;
    border-radius: 4px;
    box-shadow: 0 6px 18px rgba(0,0,0,.12);
  }

  .header-container.header-scrolled .header__logo a {
    background: transparent;
    padding: 0;
    box-shadow: none;
  }

  .header__logo img { max-height: 58px; }

  .header__hamburger {
    width: 46px;
    height: 34px;
    display: block;
    position: relative;
    z-index: 1003;
    background: transparent;
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    order: 3;
  }

  .hamburger-menu-button-open,
  .hamburger-menu-button-open::before,
  .hamburger-menu-button-open::after {
    position: absolute;
    width: 28px;
    height: 2px;
    background: var(--primary);
    border-radius: 4px;
    transition: var(--transition);
    left: 50%;
    transform: translateX(-50%);
  }

  .hamburger-menu-button-open { top: 50%; }
  .hamburger-menu-button-open::before { top: -8px; content: ""; }
  .hamburger-menu-button-open::after { bottom: -8px; content: ""; }

  .menu-open .hamburger-menu-button-open { background: transparent; }

  .menu-open .hamburger-menu-button-open::before {
    top: 0;
    transform: translateX(-50%) rotate(45deg);
  }

  .menu-open .hamburger-menu-button-open::after {
    bottom: 0;
    transform: translateX(-50%) rotate(-45deg);
  }

  .header__nav--left,
  .header__nav--right {
    position: absolute;
    left: 0;
    width: 100%;
    background: var(--background);
    height: 0;
    overflow: hidden;
    transition: all .45s ease;
    box-shadow: 0 12px 30px rgba(45,45,45,.08);
    z-index: 999;
  }

  .header__nav--left,
  .header__nav--right { top: 100%; }

  .menu-open .header__nav--left,
  .menu-open .header__nav--right {
    height: auto;
    overflow: visible;
  }

  .menu-open .header__nav--left { padding-top: 18px; }
  .menu-open .header__nav--right { padding-bottom: 18px; transform: translateY(100%); }

  .header__menu {
    display: block;
    width: 100%;
    padding: 0 22px;
  }

  .header__menu li {
    display: block;
    width: 100%;
    border-bottom: 1px solid rgba(0,168,168,.18);
  }

  .header__menu li a,
  .header-container.header-scrolled .header__menu li a {
    width: 100%;
    justify-content: space-between;
    padding: 16px 4px;
    border-radius: 0;
    font-size: .95rem;
    color: var(--text);
    background: transparent;
    text-shadow: none;
  }

  .header__menu li a:hover,
  .header__menu li.current-menu-item > a {
    color: var(--primary);
    background: transparent;
  }

  .header__cta {
    position: absolute;
    top: calc(100% + 230px);
    left: 0;
    right: auto;
    width: 100%;
    background: var(--background);
    padding: 18px 22px 28px;
    margin-left: 0;
    height: 0;
    overflow: hidden;
    display: none;
    z-index: 999;
    transform: none;
  }

  .menu-open .header__cta {
    display: flex;
    height: auto;
  }

  .header__cta-button,
  .header-container.header-scrolled .header__cta-button {
    width: 100%;
    padding: 15px 24px;
    font-size: .9rem;
  }

  .header__menu li ul.sub-menu {
    display: none;
    padding: 0 0 10px 14px;
    margin: 0;
    list-style: none;
  }

  .header__menu li.menu-item-has-children > a::after {
    content: "\f078";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    float: right;
    margin-left: 10px;
    font-size: 0.75rem;
  }

  .header__menu li.open > ul.sub-menu { display: block; }
  .header__menu li ul.sub-menu li { border-bottom: none; }
  .header__menu li ul.sub-menu li a { font-size: 0.86rem; padding: 10px 0; color: var(--muted); }

  body.menu-open { overflow: hidden; }
  .logged-in .header-container { top: 32px; }
}

/* =========================================================
   15. RESPONSIVE SMARTPHONE
   ========================================================= */

@media (max-width: 900px) {
  .section { padding: 70px 18px; }
  .footer-container { grid-template-columns: 1fr; gap: 36px; text-align: center; }
  .site-footer { padding: 70px 16px 28px; }
  .footer-logo,
  .footer-description { margin-left: auto; margin-right: auto; }
  .footer-social a { margin: 0 10px; }
}

@media (max-width: 768px) {
  h1, .text-1 { font-size: clamp(2.25rem, 11vw, 3.2rem); }
  h2, .text-2 { font-size: clamp(1.85rem, 8vw, 2.45rem); }
  h3, .text-3 { font-size: clamp(1.35rem, 6vw, 1.7rem); }
  h4, p, .text-4 { font-size: 1.05rem; }

  .header { min-height: 74px; padding: 8px 16px; }
  .header__logo img { max-height: 52px; }

  [class*='col-'] { width: 100%; }
  .sma-33 { width: 33.33%; }
  .sma-50 { width: 50%; }
  .sma-25 { width: 25%; }

  .cover { min-height: auto; padding: 90px 18px; }
  .card { padding: 22px; }
  .sma-none { display: none; }
  .desk-none { display: block; }

  .s-m0 { margin: 0 !important; }
  .s-mt-0 { margin-top: 0 !important; }
  .s-mt-1 { margin-top: 1rem !important; }
  .s-mt-2 { margin-top: 2rem !important; }
  .s-mt-3 { margin-top: 3rem !important; }
  .s-mt-4 { margin-top: 4rem !important; }
  .s-mt-5 { margin-top: 5rem !important; }
  .s-mt-6 { margin-top: 6rem !important; }

  .s-mb-0 { margin-bottom: 0 !important; }
  .s-mb-1 { margin-bottom: 1rem !important; }
  .s-mb-2 { margin-bottom: 2rem !important; }
  .s-mb-3 { margin-bottom: 3rem !important; }
  .s-mb-4 { margin-bottom: 4rem !important; }

  .s-ml-0 { margin-left: 0 !important; }
  .s-ml-1 { margin-left: 1rem !important; }
  .s-ml-2 { margin-left: 2rem !important; }
  .s-ml-3 { margin-left: 3rem !important; }
  .s-ml-4 { margin-left: 4rem !important; }
  .s-ml-5 { margin-left: 5rem !important; }
  .s-ml-6 { margin-left: 6rem !important; }

  .s-mr-0 { margin-right: 0 !important; }
  .s-mr-1 { margin-right: 1rem !important; }
  .s-mr-2 { margin-right: 2rem !important; }
  .s-mr-3 { margin-right: 3rem !important; }
  .s-mr-4 { margin-right: 4rem !important; }
  .s-mr-5 { margin-right: 5rem !important; }
  .s-mr-6 { margin-right: 6rem !important; }

  .s-p-0 { padding: 0 !important; }
  .s-p-1 { padding: 1rem !important; }
  .s-p-2 { padding: 2rem !important; }
  .s-p-3 { padding: 3rem !important; }
  .s-p-4 { padding: 4rem !important; }

  .s-pt-0 { padding-top: 0 !important; }
  .s-pt-1 { padding-top: 1rem !important; }
  .s-pt-2 { padding-top: 2rem !important; }
  .s-pt-3 { padding-top: 3rem !important; }
  .s-pt-4 { padding-top: 4rem !important; }

  .s-pb-0 { padding-bottom: 0 !important; }
  .s-pb-1 { padding-bottom: 1rem !important; }
  .s-pb-2 { padding-bottom: 2rem !important; }
  .s-pb-3 { padding-bottom: 3rem !important; }
  .s-pb-4 { padding-bottom: 4rem !important; }

  .s-text-center { text-align: center; }
  .s-justend { justify-content: end; }
  .s-mlr-20 { margin-left: 20px !important; margin-right: 20px !important; }
}

@media (min-width: 769px) {
  .desk-none { display: none; }
}

@media (max-width: 480px) {
  .header__logo img { max-height: 46px; }

  .button-style a,
  .button-style span,
  .wp-block-button__link {
    width: 100%;
    padding: 14px 18px;
  }
}
