/*
 Theme Name: Hello Child NDC-Lab
 Template: hello-elementor
 Version: 1.0
*/

/* ===========================================
   1. TIPOGRAFIA GLOBALE
=========================================== */
:root {
  /* Font-base */
  font-size: 16px;            /* 1rem = 16px */
  /* Scala tipografica */
  --fs-h1: 3rem;            /* 40px */
  --fs-h2: 2.5rem;              /* 32px */
  --fs-h3: 1.5rem;            /* 24px */
  --fs-section-title: 1.25rem;/* 20px */
  --fs-body: 1.2rem;            /* 16px */
  --fs-small: 0.875rem;       /* 14px */
 
 /* Colori di base */
  --color-primary: #04211A;
  --color-secondary: #084537;
  --color-accent: #c2380c;
  --color-bg: #faf7f3;
  --color-white: #ffffff;
}
/* ===========================================
   2. STILI BASE (sempre)
=========================================== */
body {
  font-family: 'Montserrat Variable', sans-serif;
  font-size: var(--fs-body); /* 1rem */
  font-weight: 400;
  line-height: 1.6;
  margin: 0;
  padding: 0;
  color: var(--color-primary);
}
h1 {
  font-size: var(--fs-h1); /* 2.5rem */
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1.5rem;
  color: var(--color-primary);
}
h2 {
  font-size: var(--fs-h2); /* 2rem */
  font-weight: 600;
  line-height: 1.25;
  margin-bottom: 1.25rem;
  color: var(--color-primary);
}
h3 {
  font-size: var(--fs-h3); /* 1.5rem */
  font-weight: 500;
  line-height: 1.3;
  margin-bottom: 1rem;
}
h4, h5, h6 {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1.4;
  margin-bottom: 1rem;
}
/* ===========================================
   3. RESPONSIVE: ADATTAMENTI MOBILE
=========================================== */
/* Tablet e schermi medi */
@media (max-width: 768px) {
  :root {
    font-size: 15px;  /* 1rem = 15px */
  }
}
/* Smartphone e schermi stretti */
@media (max-width: 480px) {
  :root {
    font-size: 15px;  /* 1rem = 14px */
  }
}
/* ===========================================
   2. LINK E INTERAZIONI
=========================================== */
a,
a:visited {
  color: #084537;
  text-decoration: none !important;
}
a:hover,
a:focus {
  color: #c2380c !important;
  text-decoration: none;
}
/* ===========================================
   3. BOTTONI E CTA
=========================================== */
button:not(.faq-question):not(.nav-toggle):not(.submenu-toggle),
.cta-button,
button,
input[type="submit"] {
  background: #04211A;
  color: #faf7f3;
  padding: 0.75rem 1.25rem;
  border: none;
  border-radius: 6px;
  font-family: 'Montserrat Variable', sans-serif;
  font-weight: 600;
  font-size: 1.2rem;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.3s ease;
  margin-top: 1rem;
}
button:not(.faq-question):not(.nav-toggle):not(.submenu-toggle):hover,
.cta-button:hover,
button:hover,
input[type="submit"]:hover {
  background: #c2380c;
  color: #ffffff !important;
}
/* ===========================================
   SCROLL
=========================================== */
html {
  scroll-behavior: smooth;
}
.elementor-post-content h2,
.entry-content h2,
.single-post-page h2 {
  scroll-margin-top: 85px;
}
@media (max-width: 768px) {
  .elementor-post-content h2,
  .entry-content h2,
  .single-post-page h2 {
    scroll-margin-top: 60px;
  }
}
/* ================================
   CONTAINER RESPONSIVO PRINCIPALE
================================== */
.container {
  width: 100%;
  max-width: 1140px;
  margin-inline: auto;
  padding-left: 2rem;
  padding-right: 2rem;
}
/* Mobile: larghezza 75% senza margini */
@media (max-width: 767px) {
  .container {
    width: 85%;
    padding-left: 0;
    padding-right: 0;
  }
}
/* Tablet: contenuto più largo ma leggibile */
@media (min-width: 768px) and (max-width: 1024px) {
  .container {
    max-width: 720px;
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
/* Desktop: larghezza fluida e leggibilità ottimale */
@media (min-width: 1025px) {
  .container {
    max-width: 1140px;
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
/* ===========================================
   5. UTILITY RESPONSIVE
=========================================== */
.desktop-only {
  display: flex;
}
.mobile-only {
  display: none;
}
@media (max-width: 1024px) {
  .desktop-only {
    display: none !important;
  }
  .mobile-only {
    display: flex !important;
    width: 100%;
  }
}
/* ===========================================
   6. ACCESSIBILITà
=========================================== */
.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: #04211A !important;
  color: #ffffff !important;
  padding: 0.5rem 1rem;
  z-index: 9999;
  text-decoration: none;
  font-weight: bold;
  transition: top 0.2s ease-in-out;
}
.skip-link:focus {
    background: #04211A;
  color: #ffffff !important;
  top: 0;
}

/* ========== HEADER (sticky, senza linea) ========== */
.site-header{
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:12px 0;
}
.site-logo{ 
  flex: 0 0 auto; 
  line-height: 0;
}
.site-logo img{
  display: block;
  height: auto;
  width: auto;
  max-height: 60px;
  max-width: 100%;
}

/* Logo */
.site-logo a,
.site-logo img{
  display:block;
  max-height:45px;
}

/* NAV DESKTOP (allineata al tuo markup) */
.main-navigation .primary-menu-desktop{
  display:flex;
  gap:24px;
  list-style:none;
  margin:0;
  padding:0;
  flex-wrap:wrap;  
}
.main-navigation .primary-menu-desktop a{
  text-decoration:none;
  color:#222;
  font-weight:500;
  transition:color .2s ease;
}
.main-navigation .primary-menu-desktop a:hover{
  color:#000;
}

/* Azioni header (account, carrello) */
.header-actions{
  display:flex;
  align-items:center;
  gap:14px;
}
.header-icon{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:10px;
  color:#111;
  text-decoration:none;
}
.header-icon:hover{ background:#f5f5f5; }
.cart-link{ padding-right:6px; }
.cart-count{
  position:absolute;
  top:-6px; right:-6px;
  min-width:18px; height:18px;
  border-radius:9px;
  background:#111; color:#fff;
  font-size:11px; line-height:18px;
  text-align:center; padding:0 5px;
}

/* Responsive: niente menu hamburger, lasciamo che il menu vada a capo */
@media (max-width: 992px){
  .header-inner{ gap:12px; }
  .main-navigation .primary-menu-desktop{
    gap:16px;
  }
}

/* Accessibilità skip-link */
.skip-link{
  position:absolute; left:-9999px; top:auto;
  width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  position:static; width:auto; height:auto;
  padding:8px; background:#111; color:#fff;
}
