/***********************************************
* JOYEE SAUNA — CSS BASE
***********************************************/
html { scroll-behavior: smooth; }

h1, h2, h3, h4, h5, h6 {
  font-family: 'Playfair Display', serif;
}

.wp-block-buttons > .wp-block-button {
  margin: 10px auto;
}

/* =========================
   DESKTOP: menu in riga
========================= */

/* Desktop: riduce leggermente il font del menu/header */
@media (min-width: 901px) {
  .site-header .container {
    font-size: 1rem;
    width:min(1400px, 94vw);
  }
}


@media (min-width: 901px) {
  .site-nav .menu {
    display: flex;
    gap: clamp(0.75rem, 1vw, 1.7rem);
  }
}

/* =========================
   MOBILE: menu chiuso di default
   (si apre solo con .site-nav.is-open)
========================= */
@media (max-width: 900px) {
  .site-nav > .menu {
    display: none;
  }

  .site-nav.is-open > .menu {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
}


@media (max-width: 768px) {
  body { padding-top: 0; }
}


/***********************************************
* HERO (blocco Copertina)
***********************************************/
.wp-block-cover.is-style-hero {
  min-height: 80vh;
  align-items: center;
  justify-content: center;
  color: #fff;
  position: relative;
  overflow: hidden;
}

/* overlay sfumato top→bottom */
.wp-block-cover.is-style-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.45) 0%,
    rgba(0,0,0,0.25) 35%,
    rgba(0,0,0,0.05) 100%
  );
  z-index: 1;
}

/* contenuto della cover */
.wp-block-cover.is-style-hero .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 3rem 1.5rem;
  max-width: 900px;
  margin-inline: auto;
}


/***********************************************
* TESTI & BOTTONI DI BASE
***********************************************/
.wp-block-heading,
.wp-block-paragraph {
  margin-bottom: 1rem;
}

.wp-block-button__link {
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
}

/* Hero — pulsanti responsive */
.is-style-hero .wp-block-buttons {
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
}

.is-style-hero .wp-block-button__link {
  white-space: nowrap;
  padding-inline: 1.8rem;
  font-size: 1rem;
  line-height: 1.3;
}

/* Menu: indicatore sottomenu (chevron) sui parent */
.site-nav .menu > li.menu-item-has-children {
  position: relative;
}

.site-nav .menu > li.menu-item-has-children > a {
  position: relative;
  display: block;
  padding-right: 44px; /* spazio per chevron */
}

/* chevron (SVG inline) */
.site-nav .menu > li.menu-item-has-children > a::after {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 14px 14px;

  /* usa currentColor così eredita il colore del testo */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  opacity: .85;
}

/* se il sottomenu è aperto, ruota il chevron verso l'alto */
.site-nav .menu > li.menu-item-has-children.is-open > a::after {
  transform: translateY(-50%) rotate(180deg);
}

@media (max-width: 600px) {
  .is-style-hero .wp-block-buttons {
    flex-direction: column;
    align-items: center;
  }

  .is-style-hero .wp-block-button {
    width: 100%;
    max-width: 280px;
  }

  .is-style-hero .wp-block-button__link {
    display: block;
    width: 100%;
    text-align: center;
    white-space: normal;
  }
}


/***********************************************
* SEZIONE — IL NOSTRO MODO DI INTENDERE LA SAUNA
* (ks-section ks-about)
***********************************************/
.ks-section.ks-about{
  /* lascia lo sfondo com’è (alternanza), lavoriamo solo su spazi e tipografia */
  padding-block: 6rem;
}

@media (max-width: 768px){
  .ks-section.ks-about{ padding-block: 3rem !important; }
}

/* grid colonne: stessa logica di benessere/contatti */
.ks-about__grid{
  align-items: center;
  gap: clamp(24px, 5vw, 48px);
}

/* “respiro” laterale coerente con le altre sezioni */
.ks-section.ks-about > .ks-about__grid{
  max-width: 1100px;
  margin: 0 auto;
  padding-inline: 1.5rem;
}

/* tipografia coerente */
.ks-about__title{
  font-family: var(--wp--preset--font-family--playfair-display);
  font-weight: 600;
  font-size: clamp(1.75rem, 2.5vw + 1rem, 2.5rem);
  margin-bottom: 1rem;
  color: var(--wp--preset--color--dark);
}

/* testo */
.ks-section.ks-about p{
  font-family: var(--wp--preset--font-family--poppins);
  font-size: var(--wp--preset--font-size--md);
  color: var(--wp--preset--color--dark);
  opacity: 0.9;
  line-height: 1.55;
  margin-bottom: 1.25rem;
}

/* primo paragrafo (quello con classe ks-about__text) se vuoi un filo più “corposo” */
.ks-about__text{
  max-width: 62ch;
}

/* payoff finale: “Design essenziale. Tecnologia affidabile. Benessere reale.” */
.ks-about__grid p:last-child{
  margin-top: 1.25rem;
  margin-bottom: 0;
  font-family: var(--wp--preset--font-family--playfair-display);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--wp--preset--color--accent);
  opacity: 1;
}

/* immagine */
.ks-about__image img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

/* mobile: colonne in pila e un po’ di aria */
@media (max-width: 768px){
  .ks-about__grid{ flex-direction: column; }
  .ks-about__image{ margin-top: 1rem; }
}




/***********************************************
* SEZIONE 2 — BENESSERE NATURALE
***********************************************/
.section-benessere {
  background-color: var(--wp--preset--color--muted);
  padding-block: 6rem;
}
@media (max-width: 768px) {
  .section-benessere { padding-block: 3rem !important; }
}

/* layout colonne */
.section-benessere .wp-block-columns {
  align-items: center;
  gap: clamp(24px, 5vw, 48px);
}
.section-benessere .wp-block-column:first-child { flex-basis: 55%; }
.section-benessere .wp-block-column:last-child { flex-basis: 45%; }

/* immagine */
.section-benessere img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}

/* testo */
.column-benessere-text {
  max-width: 580px;
  margin-left: auto;
  margin-right: auto;
  padding-inline: 2rem;
}

/* tipografia */
.section-benessere h2 {
  font-family: var(--wp--preset--font-family--playfair-display);
  font-weight: 600;
  font-size: clamp(1.75rem, 2.5vw + 1rem, 2.5rem);
  margin-bottom: 1rem;
  color: var(--wp--preset--color--dark);
}
.section-benessere p {
  font-family: var(--wp--preset--font-family--poppins);
  font-size: var(--wp--preset--font-size--md);
  color: var(--wp--preset--color--dark);
  opacity: 0.9;
  margin-bottom: 1.25rem;
}

/* elenco decorativo */
.section-benessere ul {
  list-style: none;
  padding-left: 0;
  margin: 1.5rem 0 0;
}
.section-benessere li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.75rem;
  font-family: var(--wp--preset--font-family--poppins);
}
.section-benessere li::before {
  content: "—";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--wp--preset--color--primary);
  font-size: 1.25rem;
  line-height: 1.2;
}

@media (max-width: 768px) {
  .section-benessere .wp-block-columns { flex-direction: column; }
  .column-benessere-text { padding-inline: 1rem; }
}


/***********************************************
* SEZIONE 3 — COLLEZIONE 2026
***********************************************/
.section-collezione {
  background-color: var(--wp--preset--color--bg);
  padding-block: 6rem;
}
@media (max-width: 768px) {
  .section-collezione { padding-block: 3rem !important; }
}

.section-collezione h2 {
  font-family: var(--wp--preset--font-family--playfair-display);
  font-weight: 600;
  text-align: center;
  margin-bottom: 0.5rem;
}
.section-collezione p {
  font-family: var(--wp--preset--font-family--poppins);
  text-align: center;
  max-width: 700px;
  margin: 0 auto 3rem;
  color: var(--wp--preset--color--dark);
  opacity: 0.9;
}

/* griglia 3×3 */
.section-collezione .models-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(24px, 3vw, 40px);
  max-width: 1200px;
  margin: 0 auto;
  padding-inline: 1.5rem;
}
@media (max-width: 1024px) {
  .section-collezione .models-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .section-collezione .models-grid { grid-template-columns: 1fr; }
}

/* card modello */
.model-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 0 10px rgba(0,0,0,0.05);
  text-align: center;
  transition: transform .25s ease, box-shadow .25s ease;
  padding: 10px;
}
.model-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}
.model-card img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background-color: #fff;
  border-radius: 6px;
  padding: 4px;
}
@media (max-width: 640px) {
  .model-card { padding: 8px; }
  .model-card img { padding: 3px; }
}
.model-card h3 {
  font-family: var(--wp--preset--font-family--playfair-display);
  font-weight: 600;
  font-size: 1.25rem;
  margin: 1rem 0 0.75rem;
  color: var(--wp--preset--color--dark);
}

.home-saune > a {
	color: inherit;
	text-decoration: none;
}

.model-card p,
.model-card ul {
  font-family: var(--wp--preset--font-family--poppins);
  font-size: 0.95rem;
  color: var(--wp--preset--color--dark);
  opacity: 0.85;
  line-height: 1.3;
  margin: 0 0 1.25rem;
}
.model-card ul {
  list-style: none;
  padding-left: 0;
  margin-top: 0;
}
.model-card li { margin-bottom: 0.25rem; }
.model-card .wp-block-button { display: none; }
.section-collezione .models-grid > .model-card { margin-top: 0 !important; }


/***********************************************
* SEZIONE 4 — CONTATTI / DEALER
***********************************************/
.section-contatti {
  background-color: var(--wp--preset--color--muted);
  padding-block: 6rem;
}
@media (max-width: 768px) {
  .section-contatti { padding-block: 3rem !important; }
}

.section-contatti h2 {
  font-family: var(--wp--preset--font-family--playfair-display);
  font-weight: 600;
  text-align: center;
  margin-bottom: 0.5rem;
  color: var(--wp--preset--color--dark);
}

.section-contatti p {
  font-family: var(--wp--preset--font-family--poppins);
  color: var(--wp--preset--color--dark);
  opacity: 0.9;
  line-height: 1.5;
}

/* layout colonne */
.section-contatti .wp-block-columns {
  align-items: start;
  gap: 40px;
  max-width: 1100px;
  margin: 0 auto;
  padding-inline: 1.5rem;
}
@media (max-width: 768px) {
  .section-contatti .wp-block-columns { flex-direction: column; }
}

/* contatti testuali */
.section-contatti .contact-details p {
  margin-bottom: 0.5rem;
  font-size: 1rem;
}
.section-contatti .contact-details a {
  color: var(--wp--preset--color--primary);
  text-decoration: none;
  font-weight: 500;
}
.section-contatti .contact-details a:hover { text-decoration: underline; }

/* form WPForms */
.section-contatti .wpforms-container { max-width: 100%; }
.section-contatti .wpforms-field { margin-bottom: 12px; }
.section-contatti .wpforms-field input,
.section-contatti .wpforms-field textarea {
  border-radius: 6px;
  border: 1px solid rgba(0,0,0,0.15);
  padding: 10px 12px;
  font-family: var(--wp--preset--font-family--poppins);
  width: 100% !important;
  box-sizing: border-box;
  font-size: 1rem;
}
.section-contatti .wpforms-field-name .wpforms-field-row {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 16px;
  margin: 0;
  padding: 0;
}
.section-contatti .wpforms-field-name .wpforms-one-half {
  width: 50% !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box;
}
.section-contatti .wpforms-field-medium {
  width: 100% !important;
  max-width: 100% !important;
}
.section-contatti .wpforms-field textarea {
  min-height: 160px;
  resize: vertical;
}
.section-contatti .wpforms-submit {
  background-color: var(--wp--preset--color--primary);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 0.6rem 1.4rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color .25s ease;
}
.section-contatti .wpforms-submit:hover {
  background-color: var(--wp--preset--color--accent);
}
@media (max-width: 640px) {
  .section-contatti .wpforms-field-name .wpforms-field-row {
    flex-direction: column !important;
    gap: 10px;
  }
  .section-contatti .wpforms-field-name .wpforms-one-half { width: 100% !important; }
}

div#wpforms-75 {margin-top: 0;}


/***********************************************
* FOOTER 
***********************************************/
.site-footer {
  background-color: #e4d3c0;
  color: #2a1c0f;
  text-align: center;
  padding-block: 4rem;
}

.site-footer .custom-logo {
  max-width: 160px;
  height: auto;
  margin-inline: auto;
}

.site-footer .slogan {
  font-family: var(--wp--preset--font-family--playfair-display);
  font-style: italic;
  font-size: 1.1rem;
  margin-top: 0.75rem;
  margin-bottom: 1.75rem;
  color: var(--wp--preset--color--accent);
}

.site-footer p {
  font-family: var(--wp--preset--font-family--poppins);
  font-size: 0.95rem;
  margin: 0.4rem 0;
  opacity: 0.9;
}

.site-footer a {
  color: #b77729;
  text-decoration: none;
  font-weight: 500;
}
.site-footer a:hover {
  opacity: 0.75;
  text-decoration: underline;
}

@media (max-width: 640px) {
  .site-footer { padding-block: 2.5rem; }
}

/* Footer bottom */
.footer-bottom {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size: 0.9rem;
  color: var(--wp--preset--color--dark);
  margin-top: 1.5rem;
  border-top: 1px solid rgba(0,0,0,0.1);
  padding-top: 1rem;
  text-align: left;
}
.footer-bottom a {
  color: var(--wp--preset--color--primary);
  text-decoration: none;
  transition: color 0.2s ease;
}
.footer-bottom a:hover {
  color: var(--wp--preset--color--accent);
}
@media (max-width: 640px) {
  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }
}


/***********************************************
* MESSAGGIO DI CONFERMA WPForms
***********************************************/
div.wpforms-container-full .wpforms-confirmation-container-full,
div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
  background: #f6f3ef;
  border: 1px solid #d3ae29;
  box-sizing: border-box;
  padding: 1.5rem;
  border-radius: 6px;
  color: var(--wp--preset--color--dark);
  font-family: var(--wp--preset--font-family--poppins);
}


/***********************************************
* PAGINA DI CORTESIA (FRONT-PAGE)
***********************************************/
body.coming-soon {
  margin: 0;
  background: #f7f7f7;
  color: #222;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.ks-coming {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 2rem;
}
.ks-coming__inner {
  max-width: 640px;
  margin-inline: auto;
}
.ks-coming .custom-logo,
.ks-coming .custom-logo-link {
  display: block;
  margin: 0 auto 1.5rem;
  height: clamp(56px, 10vw, 110px);
  width: auto;
}
.ks-coming__title {
  font-size: clamp(1.75rem, 3vw + 1rem, 3rem);
  font-weight: 600;
  margin-top: 0;
  margin-bottom: .75rem;
}
.ks-coming__subtitle {
  font-size: clamp(1rem, 1vw + .8rem, 1.25rem);
  color: #555;
  margin-bottom: 2rem;
  line-height: 1.5;
}
.ks-coming__email a {
  color: #0073aa;
  text-decoration: none;
  font-weight: 600;
}
.ks-coming__email a:hover { text-decoration: underline; }


/***********************************************
* PAGINA COOKYES POLICY
***********************************************/
body.page-id-3 main {
  max-width: 900px;
  margin: 0 auto;
  padding: 4rem 2rem;
  line-height: 1.7;
  color: var(--wp--preset--color--dark);
  font-size: clamp(0.95rem, 0.9rem + 0.3vw, 1.1rem);
}
body.page-id-3 h1.entry-title {
  font-family: var(--wp--preset--font-family--playfair-display);
  font-weight: 600;
  font-size: clamp(1.8rem, 1.5rem + 1vw, 2.5rem);
  margin-bottom: 2rem;
  text-align: center;
  color: var(--wp--preset--color--primary);
}
body.page-id-3 h3.wp-block-heading {
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  font-family: var(--wp--preset--font-family--playfair-display);
  font-size: clamp(1.2rem, 1rem + 0.5vw, 1.6rem);
  color: var(--wp--preset--color--accent);
  border-left: 3px solid var(--wp--preset--color--primary);
  padding-left: 0.75rem;
}
body.page-id-3 p { margin-bottom: 1.25rem; color: var(--wp--preset--color--dark); }
body.page-id-3 main a {
  color: var(--wp--preset--color--primary);
  text-decoration: underline;
  transition: color 0.2s ease;
}
body.page-id-3 main a:hover {
  color: var(--wp--preset--color--accent);
}
body.page-id-3 table {
  width: 100%;
  border-collapse: collapse;
  margin: 2rem 0;
  font-size: 0.95rem;
  border-radius: 6px;
  overflow: hidden;
}
body.page-id-3 th {
  background: var(--wp--preset--color--muted);
  color: var(--wp--preset--color--dark);
  font-weight: 600;
  text-align: left;
  padding: 0.75rem 1rem;
}
body.page-id-3 td {
  padding: 0.75rem 1rem;
  border-top: 1px solid #eee;
  vertical-align: top;
}
body.page-id-3 tr:nth-child(even) { background: #fafafa; }
body.page-id-3 ul {
  margin-left: 1.25rem;
  list-style: disc;
}
body.page-id-3 li { margin-bottom: 0.5rem; }
body.page-id-3 em,
body.page-id-3 strong { color: var(--wp--preset--color--accent); }
body.page-id-3 h3 + p { margin-top: 0.5rem; }
body.page-id-3 footer.site-footer {
  margin-top: 3rem;
  padding-top: 3rem;
  border-top: 1px solid #eee;
}

/***********************************************
* PAGINA PRIVACY POLICY — STILE COERENTE CON COOKIE POLICY
***********************************************/
body.privacy-policy main {
  max-width: 900px;
  margin: 0 auto;
  padding: 4rem 2rem;
  line-height: 1.7;
  color: var(--wp--preset--color--dark);
  font-size: clamp(0.95rem, 0.9rem + 0.3vw, 1.1rem);
}

/* Titolo principale */
body.privacy-policy h1.entry-title {
  font-family: var(--wp--preset--font-family--playfair-display);
  font-weight: 600;
  font-size: clamp(1.8rem, 1.5rem + 1vw, 2.5rem);
  margin-bottom: 2rem;
  text-align: center;
  color: var(--wp--preset--color--primary);
}

/* Sottotitoli (h2 e h3) */
body.privacy-policy h2.wp-block-heading,
body.privacy-policy h3.wp-block-heading {
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  font-family: var(--wp--preset--font-family--playfair-display);
  font-size: clamp(1.2rem, 1rem + 0.5vw, 1.6rem);
  color: var(--wp--preset--color--accent);
  border-left: 3px solid var(--wp--preset--color--primary);
  padding-left: 0.75rem;
}

/* Paragrafi */
body.privacy-policy p {
  margin-bottom: 1.25rem;
  color: var(--wp--preset--color--dark);
}

/* Link */
body.privacy-policy main a {
  color: var(--wp--preset--color--primary);
  text-decoration: underline;
}

body.privacy-policy main a:hover {
  color: var(--wp--preset--color--accent);
}

/* Liste ordinate e non */
body.privacy-policy ul,
body.privacy-policy ol {
  margin-left: 1.25rem;
  margin-bottom: 1rem;
}
body.privacy-policy li {
  margin-bottom: 0.5rem;
}

/* Separatori */
body.privacy-policy hr.wp-block-separator {
  border: none;
  border-top: 1px solid #eee;
  margin: 2rem 0;
}

/* Evidenziazioni */
body.privacy-policy strong,
body.privacy-policy em {
  color: var(--wp--preset--color--accent);
}

/* Tabelle (se presenti) */
body.privacy-policy table {
  width: 100%;
  border-collapse: collapse;
  margin: 2rem 0;
  font-size: 0.95rem;
  border-radius: 6px;
  overflow: hidden;
}
body.privacy-policy th {
  background: var(--wp--preset--color--muted);
  color: var(--wp--preset--color--dark);
  font-weight: 600;
  text-align: left;
  padding: 0.75rem 1rem;
}
body.privacy-policy td {
  padding: 0.75rem 1rem;
  border-top: 1px solid #eee;
  vertical-align: top;
}
body.privacy-policy tr:nth-child(even) {
  background: #fafafa;
}

/* Footer più distanziato dal contenuto legale */
body.privacy-policy footer.site-footer {
  margin-top: 3rem;
  padding-top: 3rem;
  border-top: 1px solid #eee;
}

/* ==========================================================
   SINGLE SAUNA (JoyeeSauna) – layout + componenti
   ========================================================== */

/* Base */
.sauna-single {
  padding: clamp(1.25rem, 2.5vw, 2.5rem) 0;
}

.sauna-single .container {
  max-width: 1200px;
}

/* HERO: media (sx) + info (dx) */
.sauna-hero {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1rem, 2.4vw, 2rem);
  align-items: start;
  margin-bottom: clamp(1.25rem, 2.5vw, 2.5rem);
}

/* Area media: predisposta anche per gallery */
.sauna-hero__media {
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: var(--wp--preset--color--muted, #f6f3ef);
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

/* Se in futuro la gallery diventa una griglia, questa base regge */
.sauna-hero__media .sauna-gallery {
  display: grid;
  grid-template-columns: 1fr;
}

/* Immagine principale / featured */
.sauna-hero__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1; /* coerente col visual attuale */
  object-fit: cover;
}

/* Info */
.sauna-hero__info {
  padding-top: .25rem;
}

.sauna-title {
  margin: 0 0 .5rem;
  font-size: clamp(2rem, 3.2vw, 3rem);
  letter-spacing: -0.02em;
}

.sauna-excerpt {
  margin: 0 0 1rem;
  font-size: clamp(1rem, 1vw + .85rem, 1.125rem);
  color: rgba(0,0,0,.72);
  max-width: 60ch;
}

/* Prezzo */
.sauna-price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 14px;
  background: var(--wp--preset--color--muted, #f6f3ef);
  border: 1px solid rgba(0,0,0,.06);
  margin: 0 0 1rem;
}

.sauna-price__label {
  font-weight: 600;
  color: rgba(0,0,0,.7);
}

.sauna-price__value {
  font-weight: 600;
  font-size: 1.15rem;
}

/* CTA */
.sauna-cta {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  margin-top: .5rem;
}

.sauna-cta .button.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .85rem 1.1rem;
  border-radius: 999px;
  text-decoration: none;
  background: var(--wp--preset--color--primary, #c68c48);
  color: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
  transition: transform .15s ease, opacity .15s ease;
}

.sauna-cta .button.wp-block-button__link:hover {
  transform: translateY(-1px);
  opacity: .95;
}

.sauna-cta__secondary {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--wp--preset--color--primary, #c68c48);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* TABS */
.sauna-tabs {
  margin-top: clamp(1rem, 2vw, 2rem);
}

.sauna-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  padding: .35rem;
  border-radius: 999px;
  background: var(--wp--preset--color--muted, #f6f3ef);
  border: 1px solid rgba(0,0,0,.06);
  width: fit-content;
}

.sauna-tab {
  appearance: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: .65rem 1rem;
  border-radius: 999px;
  font-weight: 600;
  color: rgba(0,0,0,.72);
  transition: background .15s ease, color .15s ease, opacity .15s ease;
}

.sauna-tab:hover {
  opacity: .9;
}

.sauna-tab.is-active {
  background: #fff;
  color: rgba(0,0,0,.9);
  box-shadow: 0 8px 18px rgba(0,0,0,.06);
}

.sauna-tabs__panels {
  margin-top: 1rem;
}

.sauna-panel {
  padding: clamp(1rem, 1.8vw, 1.5rem);
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.06);
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.04);
}

.sauna-panel p:last-child {
  margin-bottom: 0;
}

/* Sezioni */
.sauna-section-title {
  margin: 1.3rem 0 .75rem;
  font-size: clamp(1.25rem, 1vw + 1rem, 1.6rem);
}

/* Descrizione lunga */
.sauna-longdesc {
  color: rgba(0,0,0,.78);
}

.sauna-longdesc p {
  margin: 0 0 .9rem;
}

/* Tabelle */
.sauna-table-wrap {
  overflow-x: auto;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.06);
  background: var(--wp--preset--color--muted, #f6f3ef);
}

.sauna-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 640px; /* così su mobile scrolla e non si rompe */
}

.sauna-table th,
.sauna-table td {
  padding: .85rem .9rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid rgba(0,0,0,.06);
  background: transparent;
}

.sauna-table thead th {
  font-weight: 700;
  color: rgba(0,0,0,.75);
  background: rgba(255,255,255,.55);
}

.sauna-table tbody tr:last-child td {
  border-bottom: 0;
}

.sauna-note {
  font-size: .9em;
  color: rgba(0,0,0,.55);
}

/* Liste */
.sauna-list {
  margin: 0;
  padding-left: 1.1rem;
  color: rgba(0,0,0,.78);
}

.sauna-list li {
  margin: .35rem 0;
}

/* Sezione landing (blocchi Gutenberg dentro) */
.sauna-landing {
  margin-top: clamp(1rem, 2vw, 2rem);
  padding: clamp(1rem, 2vw, 1.6rem);
  border-radius: 18px;
  background: var(--wp--preset--color--muted, #f6f3ef);
  border: 1px solid rgba(0,0,0,.06);
}

.sauna-landing > :first-child {
  margin-top: 0;
}
.sauna-landing > :last-child {
  margin-bottom: 0;
}

/* Anchor preventivo: evita che finisca sotto l'header sticky */
#preventivo {
  scroll-margin-top: 110px;
}

/* Breadcrumb wrap (sopra hero) */
.sauna-breadcrumbs-wrap {
  margin: 0 0 1rem;
}

/* .ks-breadcrumbs va bene */
.ks-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .55rem;
  align-items: center;
  font-family: var(--wp--preset--font-family--poppins);
  font-size: .92rem;
  color: rgba(0,0,0,.65);
}

.ks-breadcrumbs a {
  color: var(--wp--preset--color--primary);
  text-decoration: none;
  font-weight: 500;
}

.ks-breadcrumbs a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ks-breadcrumbs__sep {
  color: rgba(0,0,0,.35);
}

/* Tipo sauna (pill sotto al titolo) */
.sauna-type {
  margin: 0 0 .9rem;
}

.sauna-type__pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .35rem .7rem;
  border-radius: 999px;
  background: var(--wp--preset--color--muted, #f6f3ef);
  border: 1px solid rgba(0,0,0,.08);
  color: rgba(0,0,0,.72);
  font-family: var(--wp--preset--font-family--poppins);
  font-size: .9rem;
  font-weight: 600;
  text-decoration: none;
  line-height: 1.2;
}

.sauna-type__pill:hover {
  opacity: .92;
  text-decoration: none;
}



/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 960px) {
  .sauna-hero {
    grid-template-columns: 1fr;
  }

  .sauna-hero__media {
    border-radius: 16px;
  }

  .sauna-tabs__nav {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 560px) {
  .sauna-price {
    flex-direction: column;
    align-items: flex-start;
  }

  .sauna-cta .button.wp-block-button__link {
    width: 100%;
  }

  .sauna-panel {
    padding: 1rem;
    border-radius: 16px;
  }
}

/* Fix “immagine che finisce sotto il menu” su mobile:
   - aggiunge un minimo di respiro sopra i breadcrumbs
   - e un safety margin sopra al main quando l’header è sticky/fixed
   (il JS che hai inserito imposta padding-top dinamico; qui mettiamo un fallback) */
@media (max-width: 781px) {
  .sauna-single {
    /* fallback se per qualsiasi motivo JS non scatta */
    padding-top: max(1.25rem, env(safe-area-inset-top));
  }

  .sauna-breadcrumbs-wrap {
    margin-top: .25rem;
  }

  /* ulteriore “spazio aria” tra breadcrumb e hero */
  .sauna-hero {
    margin-top: .25rem;
  }
}

/* Se hai admin bar (utente loggato) può alterare l’altezza header:
   aumentiamo lo scroll-margin dell’anchor preventivo su mobile */
@media (max-width: 781px) {
  #preventivo {
    scroll-margin-top: 140px;
  }
}

/* ==========================================================
   LISTING SAUNE (archive + taxonomy)
   - archive-sauna.php  => body.post-type-archive-sauna
   - taxonomy-sauna_tipo.php => body.tax-sauna_tipo
   ========================================================== */

body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-archive > .container{
  width: min(1200px, 92vw);
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) main.sauna-archive{
  margin-bottom: 1em;
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) h1.sauna-archive__title{
  text-align: center;
}

/* Griglia */
body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.5vw, 2.25rem);
  align-items: start;
}

@media (max-width: 1024px){
  body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px){
  body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-grid{
    grid-template-columns: 1fr;
  }
}

/* Card */
body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card{
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 30px rgba(0,0,0,.05);
  min-height: 650px;
  padding: 0.8em;
  display: flex;
  flex-direction: column;
}

/* Media */
body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__media,
body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card .post-thumbnail{
  margin: 0;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--wp--preset--color--muted, #f6f3ef);
  border-radius: 12px;
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__media img,
body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card .post-thumbnail img,
body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform .35s ease;
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__media-link:hover img{
  transform: scale(1.05);
}

/* Corpo card */
body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__body{
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 0.9em 0.2em 0.2em;
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__title{
  margin: 0.2em 0 0.35em;
  font-size: clamp(1.1rem, 1vw + 1rem, 1.45rem);
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__title-link{
  text-decoration: none;
  color: inherit;
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__taxonomy{
  margin: 0 0 0.8em;
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__tax-link{
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.35em 0.7em;
  border-radius: 999px;
  font-size: 0.9em;
  text-decoration: none;
  background: rgba(198,140,72,.12);
  color: var(--wp--preset--color--accent, #A46E38);
  border: 1px solid rgba(198,140,72,.22);
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__excerpt{
  margin: 0 0 1.1em;
  color: rgba(28,28,28,.85);
  line-height: 1.55;
  min-height: 225px;
  display: -webkit-box;
  -webkit-line-clamp: 8;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* CTA */
body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__cta{
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  padding: 0.65em 1em;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 600;
  background: var(--wp--preset--color--primary, #C68C48);
  color: #fff;
  transition: transform .2s ease, opacity .2s ease;
}

body:is(.post-type-archive-sauna, .tax-sauna_tipo) .sauna-card__cta:hover{
  transform: translateY(-1px);
  opacity: .92;
}

/*
PAGINA 404
*/

/* 404: evita "Nessun contenuto." appiccicato a sinistra */
body.error404 #primary {
  padding: 48px 0;
}

body.error404 #primary > p {
  max-width: 720px;          /* coerente col content-size che hai nei global styles */
  margin: 0 auto;
  padding: 0 16px;
}

/* opzionale: se vuoi un box più "pagina" */
body.error404 #primary > p {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 16px 18px;
}

/***********************************************
* HOSPITALITY (page-id-396) — spacing + layout
* (aggiungere in fondo a joyeesauna.css)
***********************************************/
body.page-id-396 main#primary{
  background: var(--wp--preset--color--bg);
}

/* reset morbido dei margini dentro alle sezioni */
body.page-id-396 .hospitality-intro > :last-child,
body.page-id-396 .hospitality-harvia > :last-child,
body.page-id-396 .hospitality-faq > :last-child{
  margin-bottom: 0;
}

/* spazio tra le sezioni (coerente con altre landing) */
body.page-id-396 .hospitality-intro,
body.page-id-396 .hospitality-harvia,
body.page-id-396 .hospitality-faq{
  padding-block: 6rem;
}

@media (max-width: 768px){
  body.page-id-396 .hospitality-intro,
  body.page-id-396 .hospitality-harvia,
  body.page-id-396 .hospitality-faq{
    padding-block: 3rem;
  }
}

/* contenitore “visual” coerente: larghezza, aria ai lati */
body.page-id-396 .hospitality-intro,
body.page-id-396 .hospitality-harvia,
body.page-id-396 .hospitality-faq{
  width: min(1100px, 92vw);
  margin-inline: auto;
  padding-inline: clamp(.75rem, 2vw, 1.5rem);
}

/* alternanza leggerissima di fondo (senza cambiare il tema globale) */
body.page-id-396 .hospitality-intro{
  background: var(--wp--preset--color--bg);
}
body.page-id-396 .hospitality-harvia{
  background: var(--wp--preset--color--muted);
  border-radius: 18px;
}
body.page-id-396 .hospitality-faq{
  background: var(--wp--preset--color--bg);
}

/* heading + intro paragraph */
body.page-id-396 .hospitality-intro h2,
body.page-id-396 .hospitality-harvia h2,
body.page-id-396 .hospitality-faq h2{
  text-align: center;
  margin-top: 0;
  margin-bottom: .75rem;
}

body.page-id-396 .hospitality-intro > p:first-of-type,
body.page-id-396 .hospitality-harvia > p:first-of-type{
  margin-inline: auto;
  opacity: .9;
}

/* colonne: più respiro e allineamento */
body.page-id-396 .hospitality-intro .wp-block-columns,
body.page-id-396 .hospitality-harvia .wp-block-columns{
  align-items: center;
  gap: clamp(24px, 4vw, 48px);
  margin-top: 2.25rem;
}

@media (max-width: 768px){
  body.page-id-396 .hospitality-intro .wp-block-columns,
  body.page-id-396 .hospitality-harvia .wp-block-columns{
    margin-top: 1.5rem;
  }
}

/* immagine Harvia: “card” pulita, senza appesantire */
body.page-id-396 .hospitality-harvia figure.wp-block-image{
  margin: 0;
}
body.page-id-396 .hospitality-harvia figure.wp-block-image img{
  border-radius: 12px;
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}

/***********************************************
* HOSPITALITY — FAQ (details/summary)
***********************************************/
body.page-id-396 .hospitality-faq{
  padding-top: 5.5rem;
}

body.page-id-396 .hospitality-faq .wp-block-details{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  background: #fff;
  padding: .25rem 1rem;
  margin: 0 0 .85rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
}

body.page-id-396 .hospitality-faq .wp-block-details summary{
  cursor: pointer;
  list-style: none;
  padding: 1rem 2.25rem 1rem .25rem;
  font-weight: 600;
  color: var(--wp--preset--color--dark);
  position: relative;
}

body.page-id-396 .hospitality-faq .wp-block-details summary::-webkit-details-marker{
  display: none;
}

/* “+ / –” minimale, coerente e leggero */
body.page-id-396 .hospitality-faq .wp-block-details summary::after{
  content: "+";
  position: absolute;
  right: .4rem;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--wp--preset--color--muted);
  color: var(--wp--preset--color--dark);
  font-weight: 700;
  line-height: 1;
}

body.page-id-396 .hospitality-faq .wp-block-details[open] summary::after{
  content: "–";
}

body.page-id-396 .hospitality-faq .wp-block-details p{
  margin: 0 0 1rem;
  padding-left: .25rem;
  opacity: .92;
}

/* aria tra titolo FAQ e primo item */
body.page-id-396 .hospitality-faq h2 + .wp-block-details{
  margin-top: 2rem;
}

/***********************************************
* DEALER & PARTNER (page-id-409) — layout + spacing
* (aggiungere in fondo a joyeesauna.css)
***********************************************/
body.page-id-409 main#primary{
  background: var(--wp--preset--color--bg);
}

/* spazio tra le sezioni */
body.page-id-409 .dealer-intro,
body.page-id-409 .dealer-opportunita,
body.page-id-409 .dealer-faq{
  padding-block: 6rem;
}

@media (max-width: 768px){
  body.page-id-409 .dealer-intro,
  body.page-id-409 .dealer-opportunita,
  body.page-id-409 .dealer-faq{
    padding-block: 3rem;
  }
}

/* contenitore coerente (ampiezza + aria laterale) */
body.page-id-409 .dealer-intro,
body.page-id-409 .dealer-opportunita,
body.page-id-409 .dealer-faq{
  width: min(1100px, 92vw);
  margin-inline: auto;
  padding-inline: clamp(.75rem, 2vw, 1.5rem);
}

/* chiusura margini dentro le sezioni */
body.page-id-409 .dealer-intro > :last-child,
body.page-id-409 .dealer-opportunita > :last-child,
body.page-id-409 .dealer-faq > :last-child{
  margin-bottom: 0;
}

/* heading centrati (coerente con Hospitality) */
body.page-id-409 .dealer-intro h2,
body.page-id-409 .dealer-opportunita h2,
body.page-id-409 .dealer-faq h2{
  text-align: center;
  margin-top: 0;
  margin-bottom: .75rem;
}

/* primi paragrafi centrati e “stretti” per leggibilità */
body.page-id-409 .dealer-intro > p:first-of-type,
body.page-id-409 .dealer-opportunita > p:first-of-type{
  text-align: center;
  max-width: 80ch;
  margin-inline: auto;
  opacity: .9;
}

/***********************************************
* DEALER — Sezione opportunità (callout)
***********************************************/
body.page-id-409 .dealer-opportunita{
  background: var(--wp--preset--color--muted);
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.06);
}

body.page-id-409 .dealer-opportunita .wp-block-buttons{
  justify-content: center;
  margin-top: 1.5rem;
}

/***********************************************
* DEALER — FAQ (details/summary) stile coerente
***********************************************/
body.page-id-409 .dealer-faq{
  padding-top: 5.5rem;
}

body.page-id-409 .dealer-faq .wp-block-details{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  background: #fff;
  padding: .25rem 1rem;
  margin: 0 0 .85rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
}

body.page-id-409 .dealer-faq .wp-block-details summary{
  cursor: pointer;
  list-style: none;
  padding: 1rem 2.25rem 1rem .25rem;
  font-weight: 600;
  color: var(--wp--preset--color--dark);
  position: relative;
}

body.page-id-409 .dealer-faq .wp-block-details summary::-webkit-details-marker{
  display: none;
}

/* indicatore + / – (leggero e coerente) */
body.page-id-409 .dealer-faq .wp-block-details summary::after{
  content: "+";
  position: absolute;
  right: .4rem;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--wp--preset--color--muted);
  color: var(--wp--preset--color--dark);
  font-weight: 700;
  line-height: 1;
}

body.page-id-409 .dealer-faq .wp-block-details[open] summary::after{
  content: "–";
}

body.page-id-409 .dealer-faq .wp-block-details p{
  margin: 0 0 1rem;
  padding-left: .25rem;
  opacity: .92;
}

/* aria tra titolo FAQ e primo item */
body.page-id-409 .dealer-faq h2 + .wp-block-details{
  margin-top: 2rem;
}

/* evita che i <br> dentro alle risposte “schiaccino” il testo */
body.page-id-409 .dealer-faq .wp-block-details p br{
  content: "";
  display: block;
  margin-top: .6rem;
}

/***********************************************
* CLIENTI PRIVATI (page-id-421) — layout + spacing
* (aggiungere in fondo a joyeesauna.css)
***********************************************/
body.page-id-421 main#primary{
  background: var(--wp--preset--color--bg);
}

/* spazio tra le sezioni */
body.page-id-421 .private-intro,
body.page-id-421 .private-support,
body.page-id-421 .private-faq{
  padding-block: 6rem;
}

@media (max-width: 768px){
  body.page-id-421 .private-intro,
  body.page-id-421 .private-support,
  body.page-id-421 .private-faq{
    padding-block: 3rem;
  }
}

/* contenitore coerente (ampiezza + aria laterale) */
body.page-id-421 .private-intro,
body.page-id-421 .private-support,
body.page-id-421 .private-faq{
  width: min(1100px, 92vw);
  margin-inline: auto;
  padding-inline: clamp(.75rem, 2vw, 1.5rem);
}

/* chiusura margini dentro alle sezioni */
body.page-id-421 .private-intro > :last-child,
body.page-id-421 .private-support > :last-child,
body.page-id-421 .private-faq > :last-child{
  margin-bottom: 0;
}

/* heading centrati */
body.page-id-421 .private-intro h2,
body.page-id-421 .private-support h2,
body.page-id-421 .private-faq h2{
  text-align: center;
  margin-top: 0;
  margin-bottom: .75rem;
}

/* primi paragrafi centrati e “stretti” */
body.page-id-421 .private-intro > p:first-of-type,
body.page-id-421 .private-support > p:first-of-type{
  margin-inline: auto;
  opacity: .9;
}

/* colonne: respiro + allineamento */
body.page-id-421 .private-intro .wp-block-columns{
  align-items: center;
  gap: clamp(24px, 4vw, 48px);
  margin-top: 2.25rem;
}

@media (max-width: 768px){
  body.page-id-421 .private-intro .wp-block-columns{
    margin-top: 1.5rem;
  }
}

/***********************************************
* CLIENTI PRIVATI — Sezione supporto (callout)
***********************************************/
body.page-id-421 .private-support{
  background: var(--wp--preset--color--muted);
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.06);
}

/***********************************************
* CLIENTI PRIVATI — FAQ (details/summary)
***********************************************/
body.page-id-421 .private-faq{
  padding-top: 5.5rem;
}

body.page-id-421 .private-faq .wp-block-details{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  background: #fff;
  padding: .25rem 1rem;
  margin: 0 0 .85rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
}

body.page-id-421 .private-faq .wp-block-details summary{
  cursor: pointer;
  list-style: none;
  padding: 1rem 2.25rem 1rem .25rem;
  font-weight: 600;
  color: var(--wp--preset--color--dark);
  position: relative;
}

body.page-id-421 .private-faq .wp-block-details summary::-webkit-details-marker{
  display: none;
}

/* indicatore + / – */
body.page-id-421 .private-faq .wp-block-details summary::after{
  content: "+";
  position: absolute;
  right: .4rem;
  top: 50%;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: var(--wp--preset--color--muted);
  color: var(--wp--preset--color--dark);
  font-weight: 700;
  line-height: 1;
}

body.page-id-421 .private-faq .wp-block-details[open] summary::after{
  content: "–";
}

body.page-id-421 .private-faq .wp-block-details p{
  margin: 0 0 1rem;
  padding-left: .25rem;
  opacity: .92;
}

/* aria tra titolo FAQ e primo item */
body.page-id-421 .private-faq h2 + .wp-block-details{
  margin-top: 2rem;
}

/************************************************
* SUPPORTO — CAT & RIVENDITORI (page-id-448)
* Incolla in fondo a joyeesauna.css
************************************************/

/* Base pagina */
body.page-id-448 main#primary{
  background: var(--wp--preset--color--bg);
}

/* Spazio tra sezioni */
body.page-id-448 .cat-coverage,
body.page-id-448 .joyee-form-section{
  padding-block: 6rem;
}

@media (max-width: 768px){
  body.page-id-448 .cat-coverage,
  body.page-id-448 .joyee-form-section{
    padding-block: 3rem;
  }

  .hidden-mobile {display: none;}
}

/* Contenitore coerente */
body.page-id-448 .cat-coverage,
body.page-id-448 .joyee-form-section{
  width: min(1100px, 92vw);
  margin-inline: auto;
  padding-inline: clamp(.75rem, 2vw, 1.5rem);
}

/* H2 sezione CAT centrato */
body.page-id-448 .cat-coverage > .wp-block-heading{
  text-align: center;
  margin-top: 0;
  margin-bottom: 1rem;
}

/* Intro testo centrato e leggibile */
body.page-id-448 .cat-coverage > p{
  max-width: 85ch;
  margin-inline: auto;
}

/* Colonne lista + mappa */
body.page-id-448 .cat-intro-columns{
  align-items: start;
  gap: clamp(24px, 4vw, 48px);
  margin-top: 2.5rem;
}

/* Card lista province */
body.page-id-448 .cat-list{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  padding: 1.5rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
}

body.page-id-448 .cat-list > .wp-block-heading{
  margin-top: 0;
  margin-bottom: 1.25rem;
}

/* REGIONE: grassetto + sfondo primary (da theme.json) */
body.page-id-448 .cat-list p.regione{
  margin: 1rem 0 .35rem;
  padding: .45rem .75rem;
  font-weight: 700;
  color: #fff;
  background: var(--wp--preset--color--primary, #C68C48);
  border-radius: 10px;
}

/* PROVINCE: testo più leggero */
body.page-id-448 .cat-list p.province{
  margin: 0 0 .75rem;
  padding: 0 .25rem;
  opacity: .92;
}

/* Evita margini extra in fondo alla card */
body.page-id-448 .cat-list > :last-child{
  margin-bottom: 0;
}

/* Mappa: proporzioni + cornice */
body.page-id-448 .cat-intro-columns .wp-block-image{
  margin: 0;
}

body.page-id-448 .cat-intro-columns .wp-block-image img{
  width: 100%;
  height: auto;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
}

body.page-id-448 .cat-intro-columns .wp-element-caption{
  margin-top: .6rem;
  font-size: .95rem;
  opacity: .75;
}

/* Titolo form: solo spacing */
body.page-id-448 .joyee-form-section > .wp-block-heading{
  margin-bottom: 2.5rem;
}

/************************************************
* SUPPORTO — GARANZIA & POST-VENDITA (page-id-472)
* Incolla in fondo a joyeesauna.css
************************************************/

/* Base pagina */
body.page-id-472 main#primary{
  background: var(--wp--preset--color--bg);
}

/* Spazio tra sezioni */
body.page-id-472 .warranty-intro,
body.page-id-472 .after-sales,
body.page-id-472 .cat-role,
body.page-id-472 .spare-parts,
body.page-id-472 .joyee-form-section{
  padding-block: 6rem;
}

@media (max-width: 768px){
  body.page-id-472 .warranty-intro,
  body.page-id-472 .after-sales,
  body.page-id-472 .cat-role,
  body.page-id-472 .spare-parts,
  body.page-id-472 .joyee-form-section{
    padding-block: 3rem;
  }
}

/* Contenitore coerente */
body.page-id-472 .warranty-intro,
body.page-id-472 .after-sales,
body.page-id-472 .cat-role,
body.page-id-472 .spare-parts,
body.page-id-472 .joyee-form-section{
  width: min(1100px, 92vw);
  margin-inline: auto;
  padding-inline: clamp(.75rem, 2vw, 1.5rem);
}

/* H2 centrati + spaziatura */
body.page-id-472 .warranty-intro > .wp-block-heading,
body.page-id-472 .after-sales > .wp-block-heading,
body.page-id-472 .cat-role > .wp-block-heading,
body.page-id-472 .spare-parts > .wp-block-heading{
  text-align: center;
  margin-top: 0;
  margin-bottom: 1.25rem;
}

/* Paragrafi più leggibili */
body.page-id-472 .warranty-intro > p,
body.page-id-472 .after-sales > p,
body.page-id-472 .cat-role > p,
body.page-id-472 .spare-parts > p{
  max-width: 85ch;
  margin-inline: auto;
  opacity: .92;
}

/* Colonne “Garanzia”: card eleganti */
body.page-id-472 .warranty-intro .wp-block-columns{
  gap: clamp(18px, 3vw, 36px);
  margin-top: 2rem;
  margin-bottom: 2rem;
}

body.page-id-472 .warranty-intro .wp-block-column{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  padding: 1.5rem;
  box-shadow: 0 10px 24px rgba(0,0,0,.04);
}

/* H3 dentro le card */
body.page-id-472 .warranty-intro .wp-block-column > .wp-block-heading{
  margin-top: 0;
  margin-bottom: .75rem;
}

/* Evidenzia le durate (strong) senza “effetto evidenziatore” */
body.page-id-472 .warranty-intro strong{
  color: var(--wp--preset--color--primary, #C68C48);
}

/* Sezioni successive: stacco più pulito */
body.page-id-472 .after-sales,
body.page-id-472 .cat-role,
body.page-id-472 .spare-parts{
  border-top: 1px solid rgba(0,0,0,.06);
}

/* Titolo form: solo spacing (come richiesto nelle altre pagine) */
body.page-id-472 .joyee-form-section > .wp-block-heading{
  margin-bottom: 2.5rem;
}

/* =========================================================
   PREVENTIVO (post-502) – Stili pagina
   Nota: escludo volutamente .joyee-form-section.section-contatti
   ========================================================= */

/* Spaziatura coerente tra sezioni */
.post-502 .quote-audience,
.post-502 .quote-intro,
.post-502 .quote-faq{
  margin-top: 4.5rem;
}

.post-502 .quote-audience{
  margin-top: 3.5rem; /* subito dopo hero */
}

@media (max-width: 782px){
  .post-502 .quote-audience,
  .post-502 .quote-intro,
  .post-502 .quote-faq{
    margin-top: 3rem;
  }
}

/* Titoli: respiro e gerarchie */
.post-502 .quote-audience > .wp-block-heading,
.post-502 .quote-intro > .wp-block-heading,
.post-502 .quote-faq > .wp-block-heading{
  margin-bottom: 1.25rem;
}

.post-502 .quote-audience h3.wp-block-heading{
  margin-top: 0;
  margin-bottom: .75rem;
}

.post-502 .quote-intro p{
  margin-top: 0;
}

.post-502 .quote-intro p + p{
  margin-top: 1rem;
}

/* Audience cards: tre colonne più “eleganti” */
.post-502 .quote-audience .wp-block-columns{
  gap: 1.5rem;
  margin-top: 1.5rem;
}

.post-502 .quote-audience .wp-block-column{
  padding: 1.5rem;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.65);
}

@media (max-width: 782px){
  .post-502 .quote-audience .wp-block-column{
    padding: 1.25rem;
  }
}

/* Testo colonne più leggibile (senza cambiare tipografia globale) */
.post-502 .quote-audience .wp-block-column p{
  margin: 0;
}

/* FAQ: stile coerente con le altre pagine (details/summary) */
.post-502 .quote-faq details.wp-block-details{
  padding: 1rem 1.25rem;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(255,255,255,.6);
}

.post-502 .quote-faq details.wp-block-details + details.wp-block-details{
  margin-top: .9rem;
}

.post-502 .quote-faq details.wp-block-details > summary{
  cursor: pointer;
  font-weight: 600;
  list-style: none;
  margin: 0;
}

.post-502 .quote-faq details.wp-block-details > summary::-webkit-details-marker{
  display: none;
}

/* Chevron semplice per summary */
.post-502 .quote-faq details.wp-block-details > summary{
  position: relative;
  padding-right: 2rem;
}

.post-502 .quote-faq details.wp-block-details > summary::after{
  content: "+";
  position: absolute;
  right: .25rem;
  top: 0;
  line-height: 1.2;
  font-weight: 700;
  opacity: .7;
}

.post-502 .quote-faq details[open].wp-block-details > summary::after{
  content: "–";
}

.post-502 .quote-faq details.wp-block-details p{
  margin: .75rem 0 0 0;
}



/***********************************************
* JOYEE — Form Section (riutilizzabile)
* Applica al Group che contiene WPForms:
* class="... joyee-form-section"
***********************************************/
.joyee-form-section{
  padding-block: 6rem;
  width: min(1100px, 92vw);
  margin-inline: auto;
  padding-inline: clamp(.75rem, 2vw, 1.5rem);
  margin-bottom: 2rem;
}

/* Titolo sezione form – spazio coerente con il resto del sito */
.joyee-form-section > .wp-block-heading {
  margin-bottom: 2.5rem;
}

@media (max-width: 768px){
  .joyee-form-section{
    padding-block: 3rem;
  }
}

/* card del form */
.joyee-form-section .wpforms-container{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 18px;
  box-shadow: 0 10px 26px rgba(0,0,0,.05);
  padding: clamp(16px, 2.2vw, 28px);
  margin-top: 2rem;
}

/* spacing campi */
.joyee-form-section .wpforms-container .wpforms-field{
  margin-bottom: 14px;
}

/* label */
.joyee-form-section .wpforms-container .wpforms-field-label{
  font-weight: 600;
  color: var(--wp--preset--color--dark);
  margin-bottom: 6px;
}

/* input/select/textarea */
.joyee-form-section .wpforms-container input[type="text"],
.joyee-form-section .wpforms-container input[type="email"],
.joyee-form-section .wpforms-container input[type="tel"],
.joyee-form-section .wpforms-container select,
.joyee-form-section .wpforms-container textarea{
  width: 100%;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 12px;
  background: #fff;
  color: var(--wp--preset--color--dark);
  box-shadow: none;
}

/* focus */
.joyee-form-section .wpforms-container input[type="text"]:focus,
.joyee-form-section .wpforms-container input[type="email"]:focus,
.joyee-form-section .wpforms-container input[type="tel"]:focus,
.joyee-form-section .wpforms-container select:focus,
.joyee-form-section .wpforms-container textarea:focus{
  outline: none;
  border-color: rgba(0,0,0,.28);
  box-shadow: 0 0 0 4px rgba(0,0,0,.06);
}

/* textarea */
.joyee-form-section .wpforms-container textarea{
  min-height: 140px;
  resize: vertical;
}

/* submit container centrato (non cambia il bottone) */
.joyee-form-section .wpforms-container .wpforms-submit-container{
  margin-top: 10px;
  display: flex;
  justify-content: center;
}

/* ================================
   WPForms: layout 2 colonne SOLO su .form-group
   ================================ */

/* wrapper del form */
.wpforms-container.form-group{
  max-width: 100%;
  margin: 0 2em !important;
}

/* contenitore dei campi in flex */
.wpforms-container.form-group .wpforms-field-container{
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

/* ogni campo metà riga */
.wpforms-container.form-group .wpforms-field{
  flex: 0 0 calc(50% - 8px);
  box-sizing: border-box;
  width: auto !important;
  display: block !important;
  min-width: 0; /* evita “allargamenti strani” in flex */
}

/* textarea messaggio full width */
.wpforms-container.form-group #wpforms-75-field_3-container{
  flex: 0 0 100%;
}

/* uniforma dimensioni reali degli elementi (input/select/textarea) */
.wpforms-container.form-group .wpforms-field input,
.wpforms-container.form-group .wpforms-field select,
.wpforms-container.form-group .wpforms-field textarea{
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

/* in alcuni temi WPForms applica width a .wpforms-field-medium */
.wpforms-container.form-group .wpforms-field-medium{
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

/* mobile: 1 colonna */
@media (max-width: 768px){
  .wpforms-container.form-group .wpforms-field{
    flex: 0 0 100%;
  }
}

/* =========================
   Blog archive
   ========================= */

.blog-archive-hero{
  padding: clamp(3rem, 6vw, 5rem) 0 clamp(2rem, 4vw, 3rem);
  background:
    linear-gradient(180deg, rgba(0,0,0,.03), rgba(0,0,0,0));
}

.blog-archive-hero__inner{
  max-width: 900px;
}

.blog-archive-hero__title{
  margin: 0 0 1rem;
}

.blog-archive-hero__intro{
  margin: 0;
  font-size: clamp(1.05rem, .4vw + 1rem, 1.2rem);
  color: color-mix(in srgb, var(--wp--preset--color--dark) 78%, white);
}

.blog-archive{
  padding: 0 0 clamp(3rem, 5vw, 5rem);
}

.blog-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 2vw, 2rem);
}

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

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

.blog-card{
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,.05);
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    border-color .2s ease;
}

.blog-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 16px 38px rgba(0,0,0,.08);
  border-color: rgba(0,0,0,.12);
}

.blog-card__media{
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: rgba(0,0,0,.04);
}

.blog-card__image{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog-card__body{
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: clamp(1.1rem, 2vw, 1.5rem);
}

.blog-card__meta{
  margin-bottom: .75rem;
  font-size: .9rem;
  color: color-mix(in srgb, var(--wp--preset--color--dark) 58%, white);
}

.blog-card__title{
  margin: 0 0 .85rem;
  font-size: clamp(1.2rem, .5vw + 1.05rem, 1.55rem);
  line-height: 1.2;
}

.blog-card__title a{
  color: inherit;
  text-decoration: none;
}

.blog-card__title a:hover{
  color: var(--wp--preset--color--primary);
  text-decoration: none;
}

.blog-card__excerpt{
  margin-bottom: 1.2rem;
  color: color-mix(in srgb, var(--wp--preset--color--dark) 82%, white);
}

.blog-card__excerpt p:last-child{
  margin-bottom: 0;
}

.blog-card__link{
  margin-top: auto;
  font-weight: 600;
  text-decoration: none;
}

.blog-card__link:hover{
  text-decoration: underline;
}

.blog-pagination{
  margin-top: clamp(2rem, 4vw, 3rem);
}

.blog-pagination .nav-links{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5rem;
}

.blog-pagination .page-numbers{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 .9rem;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.1);
  background: #fff;
  color: var(--wp--preset--color--dark);
  text-decoration: none;
  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease;
}

.blog-pagination .page-numbers:hover{
  border-color: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--primary);
  text-decoration: none;
}

.blog-pagination .page-numbers.current{
  background: var(--wp--preset--color--primary);
  border-color: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--bg);
}

.blog-empty{
  padding: 2rem 0 1rem;
}

/* =========================
   Blog single
   ========================= */

.blog-single-hero{
  position: relative;
  min-height: clamp(340px, 48vw, 620px);
  display: flex;
  align-items: flex-end;
  background: #111;
  overflow: hidden;
}

.blog-single-hero__media{
  position: absolute;
  inset: 0;
}

.blog-single-hero__image{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog-single-hero__overlay{
  position: relative;
  z-index: 1;
  width: 100%;
  padding: clamp(3rem, 7vw, 6rem) 0 clamp(2rem, 4vw, 3rem);
  background:
    linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.36) 45%, rgba(0,0,0,.68) 100%);
}

.blog-single-hero--noimage{
  min-height: auto;
  background:
    linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,0));
}

.blog-single-hero--noimage .blog-single-hero__content{
  padding: clamp(3rem, 6vw, 5rem) 0 clamp(2rem, 4vw, 3rem);
}

.blog-single-hero__content{
  max-width: 900px;
  color: #fff;
}

.blog-single-hero__meta{
  margin-bottom: .9rem;
  font-size: .95rem;
  color: rgba(255,255,255,.82);
}

.blog-single-hero__title{
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 2vw + 1.4rem, 3.4rem);
  line-height: 1.08;
  text-wrap: balance;
}

.blog-single-main{
  padding: clamp(2rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 5rem);
}

.blog-single-layout{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: start;
}

.blog-single-content{
  min-width: 0;
}

.blog-single-content > *:first-child{
  margin-top: 0;
}

.blog-single-content{
  font-size: clamp(1.02rem, .2vw + 1rem, 1.08rem);
  line-height: 1.8;
  color: color-mix(in srgb, var(--wp--preset--color--dark) 92%, white);
}

.blog-single-content p,
.blog-single-content ul,
.blog-single-content ol,
.blog-single-content blockquote,
.blog-single-content figure,
.blog-single-content table{
  margin-bottom: 1.35rem;
}

.blog-single-content h2,
.blog-single-content h3,
.blog-single-content h4{
  margin-top: 2.2rem;
}

.blog-single-content h2{
  font-size: clamp(1.55rem, .9vw + 1.1rem, 2.15rem);
}

.blog-single-content h3{
  font-size: clamp(1.28rem, .5vw + 1rem, 1.7rem);
}

.blog-single-content img{
  border-radius: 20px;
}

.blog-single-content a{
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .14em;
}

.blog-single-content blockquote{
  margin-left: 0;
  padding: 1rem 1.2rem;
  border-left: 4px solid var(--wp--preset--color--primary);
  background: rgba(0,0,0,.03);
  border-radius: 0 16px 16px 0;
}

.blog-single-sidebar{
  min-width: 0;
}

.sidebar-widget{
  padding: 1.25rem;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 24px;
  box-shadow: 0 10px 30px rgba(0,0,0,.05);
}

.sidebar-widget__title{
  margin: 0 0 1rem;
  font-size: 1.2rem;
}

.sidebar-latest-posts{
  display: grid;
  gap: 1rem;
}

.sidebar-latest-post{
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: .9rem;
  align-items: start;
}

.sidebar-latest-post__media{
  display: block;
  aspect-ratio: 1 / 1;
  border-radius: 16px;
  overflow: hidden;
  background: rgba(0,0,0,.04);
}

.sidebar-latest-post__image{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sidebar-latest-post__body{
  min-width: 0;
}

.sidebar-latest-post__title{
  margin: 0 0 .35rem;
  font-size: 1rem;
  line-height: 1.25;
}

.sidebar-latest-post__title a{
  color: inherit;
  text-decoration: none;
}

.sidebar-latest-post__title a:hover{
  color: var(--wp--preset--color--primary);
}

.sidebar-latest-post__meta{
  font-size: .88rem;
  color: color-mix(in srgb, var(--wp--preset--color--dark) 58%, white);
}

.blog-single-content{
  max-width: 760px;
}

.blog-single-main{
  padding: clamp(3rem, 6vw, 5rem) 0 clamp(3rem, 6vw, 5rem);
}

.sidebar-latest-post__title{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (min-width: 1025px){
  .blog-single-sidebar{
    position: sticky;
    top: calc(var(--header-h) + 1.5rem);
  }
}

@media (max-width: 1024px){
  .blog-single-layout{
    grid-template-columns: 1fr;
  }

  .blog-single-sidebar{
    max-width: 680px;
  }
}

@media (max-width: 640px){
  .blog-single-hero{
    min-height: 300px;
  }

  .blog-single-hero__overlay{
    padding-top: 2.5rem;
    padding-bottom: 1.75rem;
  }

  .sidebar-latest-post{
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .sidebar-widget{
    padding: 1rem;
    border-radius: 20px;
  }
}