/* ============================================================
   Progetto Skuola — Brand Override su tema Studiare
   Colori: Blu Navy #1565c0, Oro #d4a017, Bianco, Grigio chiaro
   ============================================================ */

:root {
  --ps-blue:      #0183cb;
  --ps-blue-dark: #015f96;
  --ps-blue-light:#29a8e0;
  --ps-cta:       #ffc107;
  --ps-secondary: #4ecdc4;
  --ps-success:   #22c55e;
  --ps-danger:    #ff6b6b;
  --ps-gold:      #ffc107;
  --ps-gold-light:#ffd54f;
  --ps-white:     #ffffff;
  --ps-grey:      #f5f7fa;
  --ps-text:      #333333;
  --ps-text-muted:#666666;
}

/* Font brand */
body { font-family: 'Inter', 'Open Sans', sans-serif !important; color: #333 !important; font-size: 15px; line-height: 1.7; }
h1,h2,h3,h4,h5,h6,
.navbar-brand,
.feature-content h2,
.title-section h1,
.contact-box h1 { font-family: 'Montserrat', sans-serif !important; color: #1a1a2e; }
/* Testi su sfondo bianco/grigio chiaro */
section.feature-section p,
section.about-section p,
section.popular-courses-section p,
section.contact-section p { color: #555 !important; }
/* Testi su sfondo scuro/blu */
section.statistic-section p,
section.countdown-section p,
section.page-banner-section p { color: rgba(255,255,255,.88) !important; }

/* Colore primario su elementi chiave */
.button-one,
#submit_contact,
.login-button,
a.button-one { background: var(--ps-blue) !important; border-color: var(--ps-blue) !important; }
.button-one:hover,
#submit_contact:hover { background: var(--ps-blue-dark) !important; }

.top-line { background: var(--ps-blue-dark) !important; }
.top-line p, .top-line span, .top-line a { color: #fff !important; }
.top-line .fa { color: var(--ps-gold) !important; font-size: .85rem; }
.top-line .right-top-line { flex-direction: column !important; align-items: flex-end !important; gap: 2px; }
.top-line .right-top-line p { margin: 0; }

.navbar.bg-light { background: #fff !important; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.navbar-nav li a { color: var(--ps-blue) !important; font-weight: 600; }
.navbar-nav li a:hover,
.navbar-nav li a.active { color: var(--ps-gold) !important; }

.mobile-menu { background: var(--ps-blue-dark) !important; }
.mobile-menu a { color: #fff !important; }

/* Hero custom */
.ps-hero {
  background: linear-gradient(135deg, var(--ps-blue-dark) 0%, var(--ps-blue) 60%, var(--ps-blue-light) 100%);
  padding: 6rem 0 5rem;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.ps-hero::after {
  content: '';
  position: absolute;
  bottom: -2px; left: 0; right: 0;
  height: 60px;
  background: #fff;
  clip-path: ellipse(55% 100% at 50% 100%);
}
.ps-hero h1 { font-size: clamp(1.8rem, 4vw, 2.8rem); font-weight: 800; line-height: 1.2; margin-bottom: 1.2rem; color: #fff !important; }
.ps-hero p  { font-size: 1.1rem; margin-bottom: 2rem; max-width: 580px; color: rgba(255,255,255,.9) !important; }
/* button-one nel hero: outline bianco invece di blu su blu */
.ps-hero .button-one,
.ps-hero a.button-one {
  background: transparent !important;
  border: 2px solid rgba(255,255,255,.7) !important;
  color: #fff !important;
}
.ps-hero .button-one:hover,
.ps-hero a.button-one:hover {
  background: rgba(255,255,255,.15) !important;
  border-color: #fff !important;
}
/* button-two nel hero: oro */
.ps-hero .button-two,
.ps-hero a.button-two {
  background: var(--ps-gold) !important;
  border-color: var(--ps-gold) !important;
  color: #111 !important;
  font-weight: 700 !important;
}
.ps-hero .button-two:hover,
.ps-hero a.button-two:hover {
  background: var(--ps-gold-light) !important;
  border-color: var(--ps-gold-light) !important;
}

/* Stats bar */
.ps-stats { background: var(--ps-grey); padding: 3rem 0; }
.ps-stat-item { text-align: center; padding: 1rem; }
.ps-stat-item .ps-stat-number { font-family: 'Montserrat', sans-serif; font-size: 2.5rem; font-weight: 800; color: var(--ps-blue); line-height: 1; }
.ps-stat-item .ps-stat-label  { font-size: .9rem; color: var(--ps-text-muted); margin-top: .3rem; }

/* Partner logos */
.ps-partners { padding: 4rem 0; background: #fff; }
.ps-partners-title { text-align: center; margin-bottom: 2.5rem; }
.ps-partners-title span { font-size: .8rem; text-transform: uppercase; letter-spacing: .15em; color: var(--ps-gold); font-weight: 700; }
.ps-partners-title h2 { font-size: 1.5rem; color: var(--ps-text); margin-top: .4rem; }
.ps-partner-logo { display: flex; align-items: center; justify-content: center; padding: 1.5rem; filter: grayscale(100%); opacity: .6; transition: all .3s; }
.ps-partner-logo:hover { filter: grayscale(0%); opacity: 1; }
.ps-partner-logo span { font-family: 'Montserrat',sans-serif; font-size: 1.2rem; font-weight: 800; color: var(--ps-blue); border: 3px solid var(--ps-blue); padding: .5rem 1.2rem; border-radius: 6px; }

/* Feature section override */
.feature-section { background: #fff; }
.feature-post .icon-holder { background: transparent !important; }
/* inline-block necessario perché FA <i> è inline: width/height altrimenti ignorati */
.feature-post .icon-holder i {
  display: inline-block !important;
  background: var(--ps-blue) !important;
  color: #fff !important;
  border-color: var(--ps-blue) !important;
}
.feature-post .icon-holder.color2 i {
  background: var(--ps-gold) !important;
  color: #fff !important;
  border-color: var(--ps-gold) !important;
}
.feature-post .icon-holder.color3 i {
  background: var(--ps-blue-dark) !important;
  color: #fff !important;
  border-color: var(--ps-blue-dark) !important;
}
.feature-post .feature-content h2 { color: var(--ps-blue) !important; font-size: 1.1rem; font-weight: 700; }
.feature-post .feature-content p { color: #555 !important; line-height: 1.75 !important; }

/* Sezione corsi/aree */
.ps-area-card { background: #fff; border-radius: 12px; padding: 2rem; box-shadow: 0 4px 20px rgba(0,0,0,.08); border-left: 5px solid var(--ps-blue); margin-bottom: 2rem; transition: transform .2s, box-shadow .2s; }
.ps-area-card:hover { transform: translateY(-4px); box-shadow: 0 8px 30px rgba(0,0,0,.12); }
.ps-area-card h3 { color: var(--ps-blue); font-size: 1.2rem; font-weight: 700; margin-bottom: .75rem; }
.ps-area-card .ps-area-icon { font-size: 2rem; margin-bottom: 1rem; }
.ps-area-card ul { list-style: none; padding: 0; margin: .75rem 0 0; }
.ps-area-card ul li { padding: .3rem 0; color: var(--ps-text-muted); font-size: .9rem; }
.ps-area-card ul li::before { content: '✓'; color: var(--ps-gold); font-weight: 700; margin-right: .5rem; }
.ps-area-card.gold-border { border-left-color: var(--ps-gold); }
.ps-area-card.dark-border  { border-left-color: var(--ps-blue-dark); }

/* Section headers */
.ps-section-title { text-align: center; margin-bottom: 3rem; }
.ps-section-title .ps-eyebrow { font-size: .75rem; text-transform: uppercase; letter-spacing: .2em; color: var(--ps-gold); font-weight: 700; display: block; margin-bottom: .5rem; }
.ps-section-title h2 { font-family: 'Montserrat',sans-serif; font-size: clamp(1.5rem,3vw,2rem); font-weight: 800; color: var(--ps-text); }

/* Page hero (inner) */
.ps-page-hero { background: linear-gradient(135deg, var(--ps-blue-dark), var(--ps-blue)); padding: 4rem 0 3rem; color: #fff; text-align: center; }
.ps-page-hero h1 { font-family: 'Montserrat',sans-serif; font-size: clamp(1.6rem,3vw,2.4rem); font-weight: 800; }
.ps-page-hero .breadcrumb { background: transparent; justify-content: center; padding: .5rem 0 0; }
.ps-page-hero .breadcrumb-item, .ps-page-hero .breadcrumb-item a { color: rgba(255,255,255,.7); font-size: .85rem; }
.ps-page-hero .breadcrumb-item.active { color: #fff; }
.ps-page-hero .breadcrumb-item+.breadcrumb-item::before { color: rgba(255,255,255,.5); }

/* Contact form override */
.contact-section { background: var(--ps-grey); }
.contact-box { background: #fff; border-radius: 12px; box-shadow: 0 4px 30px rgba(0,0,0,.08); }
.contact-box h1 { color: var(--ps-blue); font-family: 'Montserrat',sans-serif; }
#contact-form label { color: var(--ps-text); font-weight: 600; font-size: .9rem; }
#contact-form input,
#contact-form textarea,
#contact-form select { border: 2px solid #e0e0e0; border-radius: 8px; padding: .75rem 1rem; transition: border-color .2s; }
#contact-form input:focus,
#contact-form textarea:focus,
#contact-form select:focus { border-color: var(--ps-blue); outline: none; }
#submit_contact { background: var(--ps-blue) !important; font-family: 'Montserrat',sans-serif; font-weight: 700; letter-spacing: .05em; border-radius: 8px; padding: .85rem 2.5rem; }
.contact-info-section .icon { background: var(--ps-blue) !important; }

/* CTA Forze Armate */
.ps-fa-hero { background: linear-gradient(135deg, #1a237e, #283593); color: #fff; padding: 5rem 0; }
.ps-fa-hero h1 { color: var(--ps-gold-light); }
.ps-fa-badge { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: 12px; padding: 1.5rem; margin-bottom: 1.5rem; }
.ps-fa-badge h5 { color: var(--ps-gold-light); margin-bottom: .5rem; }

/* WhatsApp CTA floating — desktop only, above a11y widget */
.ps-whatsapp-float {
  position: fixed;
  bottom: 5rem; right: 1rem;
  z-index: 9999;
  background: #25d366;
  color: #fff;
  border-radius: 50px;
  padding: .75rem 1.4rem;
  font-weight: 700;
  font-size: .95rem;
  text-decoration: none;
  box-shadow: 0 4px 20px rgba(37,211,102,.4);
  display: flex; align-items: center; gap: .5rem;
  transition: transform .2s, box-shadow .2s;
}
.ps-whatsapp-float:hover { transform: scale(1.05); box-shadow: 0 6px 28px rgba(37,211,102,.5); color: #fff; text-decoration: none; }
.ps-whatsapp-float i { font-size: 1.2rem; }

/* Mobile navbar layout — logo | [spacer] | WA | hamburger */
@media (max-width: 991px) {
  .navbar > .container { display: flex; align-items: center; flex-wrap: nowrap; }
  .navbar-brand { flex-shrink: 0; }
  .mobile-nav-toggle { margin-left: .4rem; flex-shrink: 0; }
}

/* WhatsApp icon in mobile navbar */
.ps-nav-wa {
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px;
  background: #25d366; color: #fff;
  border-radius: 50%; font-size: 1.3rem;
  text-decoration: none;
  margin-left: auto; margin-right: .5rem;
  box-shadow: 0 2px 10px rgba(37,211,102,.4);
  flex-shrink: 0;
}
.ps-nav-wa:hover { background: #1aad52; color: #fff; text-decoration: none; }

/* Mobile overlay — full screen, scrollable */
.ps-mobile-overlay { overflow-y: auto !important; max-height: 100vh !important; box-sizing: border-box !important; }
.ps-mobile-overlay nav { padding-top: 1rem; }

/* Compact mobile menu to reduce scrolling */
.ps-mobile-overlay ul { margin: 0; padding: 0; }
.ps-mobile-overlay ul li { padding: .35rem 0 !important; }
.ps-mobile-overlay ul li a { font-size: .9rem !important; padding: .25rem 0 !important; }
.ps-mobile-overlay ul > li > a { font-size: 1rem !important; font-weight: 700 !important; }
.ps-mobile-overlay-footer { padding: .75rem 1.2rem !important; }

/* Mobile menu flex layout so footer sticks to bottom */
.mobile-menu { display: none !important; }
.mobile-menu.is-open { display: flex !important; flex-direction: column; position: relative; }
.mobile-menu .mobile-nav { flex: 1; }


/* Mobile menu footer */
.ps-mobile-footer {
  padding: 1.5rem 1.2rem;
  border-top: 1px solid rgba(255,255,255,.1);
  margin-top: auto;
}
.ps-mobile-contacts {
  display: flex; flex-direction: column; gap: .6rem;
  margin-bottom: 1.2rem;
}
.ps-mobile-contacts a,
.ps-mobile-contacts span {
  color: rgba(255,255,255,.75);
  font-size: .9rem;
  text-decoration: none;
  display: flex; align-items: center; gap: .5rem;
}
.ps-mobile-contacts a:hover { color: #fff; }
.ps-mobile-contacts .fa { color: var(--ps-gold); width: 16px; text-align: center; }
.ps-mobile-wa-cta {
  display: flex; align-items: center; justify-content: center; gap: .6rem;
  background: #25d366; color: #fff;
  border-radius: 8px; padding: .85rem 1.2rem;
  font-weight: 700; font-size: .95rem;
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(37,211,102,.35);
  transition: background .2s, transform .15s;
}
.ps-mobile-wa-cta:hover { background: #1aad52; color: #fff; text-decoration: none; transform: translateY(-1px); }
.ps-mobile-wa-cta .fa { font-size: 1.2rem; }

/* Footer override */
footer { background: var(--ps-blue-dark) !important; }
.up-footer { border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-widget h2 { color: var(--ps-gold) !important; font-family: 'Montserrat',sans-serif; font-size: 1rem; text-transform: uppercase; letter-spacing: .1em; }
.footer-copyright { background: #0a1929 !important; }
footer .copyright-inner ul.studiare-social-links { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center; gap: 4px; }
footer .copyright-inner ul.studiare-social-links li { display: flex !important; }
.studiare-social-links li a { border-color: rgba(255,255,255,.2) !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.studiare-social-links li a:hover { background: var(--ps-gold) !important; border-color: var(--ps-gold) !important; }
.highlight { color: var(--ps-gold) !important; }
/* Footer testi: sempre su sfondo scuro */
footer p, .footer-desc { color: rgba(255,255,255,.7) !important; font-size: .9rem; line-height: 1.75; }
footer .contact-info-value,
footer .contact-info-value a { color: rgba(255,255,255,.8) !important; }
footer .contact-info-icon .fa { color: var(--ps-gold) !important; }
/* Footer orari: lista verticale */
.footer-hours-list { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.footer-hours-list li { display: block !important; color: rgba(255,255,255,.75) !important; padding: .35rem 0 !important; font-size: .9rem; }
.footer-hours-list li .fa { color: var(--ps-gold) !important; margin-right: .5rem; }
/* quick-list nel footer: una voce per riga */
footer .quick-list li { display: block !important; }
footer .quick-list li a { color: rgba(255,255,255,.75) !important; }
footer .quick-list li a:hover { color: var(--ps-gold) !important; }

/* Form success/error */
.ps-form-success { display:none; padding:1.2rem 1.5rem; background:rgba(34,197,94,.1); border:1px solid rgba(34,197,94,.4); border-radius:8px; color:#166534; margin-top:1rem; }
.ps-form-error   { display:none; padding:1.2rem 1.5rem; background:rgba(239,68,68,.1);  border:1px solid rgba(239,68,68,.4);  border-radius:8px; color:#991b1b;  margin-top:1rem; }

/* page-banner-section — brand gradient */
section.page-banner-section { background: linear-gradient(135deg, var(--ps-blue-dark), var(--ps-blue)) !important; padding: 3.5rem 0 3rem !important; }
section.page-banner-section h1 { color: #fff !important; }
section.page-banner-section ul.page-depth li:before { color: rgba(255,255,255,.5) !important; }
section.page-banner-section ul.page-depth li a { color: rgba(255,255,255,.75) !important; }
section.page-banner-section ul.page-depth li a:hover { color: #fff !important; }

/* statistic-section — brand blue */
section.statistic-section { background: var(--ps-blue) !important; }

/* countdown-section — brand CTA dark blue */
section.countdown-section { background: var(--ps-blue-dark) !important; }
section.countdown-section h1 { color: #fff !important; }
section.countdown-section p { color: rgba(255,255,255,.85) !important; }
section.countdown-section .button-two { background: var(--ps-gold) !important; border-color: var(--ps-gold) !important; color: #111 !important; font-weight: 700 !important; }
section.countdown-section .button-two:hover { background: var(--ps-gold-light) !important; border-color: var(--ps-gold-light) !important; }

/* clients-section — brand */
section.clients-section { background: var(--ps-grey) !important; }
section.clients-section .clients-box h1 { color: var(--ps-blue) !important; }
section.clients-section .clients-list li span { font-family: 'Montserrat',sans-serif; font-weight: 800; color: var(--ps-blue); border: 3px solid var(--ps-blue); padding: .5rem 1.2rem; border-radius: 6px; font-size: 1.1rem; display: inline-block; transition: all .3s; }
section.clients-section .clients-list li a:hover span { background: var(--ps-blue); color: #fff; }

/* testimonial-section — brand */
section.testimonial-section { background: var(--ps-grey) !important; }

/* course-post cards — equal height flex */
section.popular-courses-section .popular-courses-box .row { display: flex; flex-wrap: wrap; }
section.popular-courses-section .popular-courses-box .row > [class*="col-"] { display: flex; flex-direction: column; }
section.popular-courses-section .course-post { display: flex; flex-direction: column; height: 100%; }
section.popular-courses-section .course-content-holder { display: flex; flex-direction: column; flex: 1; }
section.popular-courses-section .course-content-main { flex: 1; }

/* about-section alternating backgrounds */
section.about-section { background: #fff !important; padding: 60px 0 !important; }
.about-article .article-content i { color: var(--ps-blue); font-size: 2rem; margin-bottom: 1rem; display: block; }
.about-article .article-content h2 { color: var(--ps-blue); }
.about-article .article-content a.text-link { color: var(--ps-blue); font-weight: 700; }
.about-article .article-content a.text-link:hover { color: var(--ps-gold); }

/* contact-info-section: icona diretta nell'info-post, nessun wrapper */
section.contact-info-section .info-post i { color: var(--ps-blue) !important; }

/* contact-section — native override */
section.contact-section { background: var(--ps-grey) !important; }

/* Form contatti — card con header gradient */
.ps-form-wrap {
  max-width: 760px;
  margin: 0 auto;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,.12);
}
.ps-form-head {
  background: linear-gradient(135deg, var(--ps-blue-dark), var(--ps-blue));
  padding: 2.5rem 2.5rem 2rem;
  text-align: center;
}
.ps-form-head h2 {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.4rem, 3vw, 1.9rem);
  font-weight: 800;
  color: #fff;
  margin-bottom: .5rem;
}
.ps-form-head p { color: rgba(255,255,255,.85); font-size: .95rem; margin-bottom: 1.2rem; }
.ps-form-badges {
  display: flex; justify-content: center; flex-wrap: wrap; gap: .6rem;
}
.ps-form-badges span {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
  border-radius: 50px;
  padding: .3rem .9rem;
  font-size: .8rem;
  display: flex; align-items: center; gap: .4rem;
}
.ps-form-badges span .fa { color: var(--ps-gold); }
.ps-form-body {
  background: #fff;
  padding: 2.5rem;
}
/* Form fields */
#contact-form label {
  display: block;
  font-weight: 600;
  font-size: .85rem;
  color: #444;
  margin-bottom: .35rem;
  margin-top: 1rem;
}
#contact-form input,
#contact-form textarea,
#contact-form select {
  display: block;
  width: 100%;
  border: 2px solid #e8ecf0;
  border-radius: 8px;
  padding: .7rem 1rem;
  font-size: .95rem;
  color: #333;
  background: #fafbfc;
  transition: border-color .2s, box-shadow .2s;
  outline: none;
}
#contact-form input:focus,
#contact-form textarea:focus,
#contact-form select:focus {
  border-color: var(--ps-blue);
  box-shadow: 0 0 0 3px rgba(1,131,203,.1);
  background: #fff;
}
#contact-form textarea { resize: vertical; min-height: 110px; }
#contact-form #ps_captcha { -moz-appearance: textfield; }
#contact-form #ps_captcha::-webkit-outer-spin-button,
#contact-form #ps_captcha::-webkit-inner-spin-button { -webkit-appearance: none; }
#submit_contact {
  display: block; width: 100%;
  background: var(--ps-blue) !important;
  color: #fff !important;
  border: none; border-radius: 10px;
  padding: .9rem 1.5rem;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700; font-size: 1rem;
  cursor: pointer;
  transition: background .2s, transform .1s;
  margin-top: 1rem;
}
#submit_contact:hover { background: var(--ps-blue-dark) !important; transform: translateY(-1px); }
#submit_contact:active { transform: translateY(0); }

/* map div height */
#map { height: 400px; overflow: hidden; }
#map iframe { width: 100%; height: 100%; border: 0; }

/* ============================================================
   RESPONSIVE MOBILE — breakpoint 768px
   ============================================================ */
@media (max-width: 768px) {

  /* Grid 3 colonne → 1 colonna */
  .ps-grid-3 { grid-template-columns: 1fr !important; }

  /* Grid 4 colonne → 2 colonne su tablet, 1 su mobile stretto */
  .ps-grid-4 { grid-template-columns: 1fr 1fr !important; }

  /* Grid editoriale (2fr 1fr 1fr) → colonna singola, no fixed height */
  .ps-grid-editorial {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
  }
  .ps-grid-editorial > div:first-child {
    grid-row: auto !important;
    height: 200px !important;
  }
  .ps-grid-editorial > div { height: 150px !important; }

  /* Stats section */
  .ps-stats-grid { grid-template-columns: 1fr 1fr !important; }

  /* Footer grid */
  .ps-footer-grid { grid-template-columns: 1fr !important; }

}

@media (max-width: 480px) {
  .ps-grid-4 { grid-template-columns: 1fr !important; }
}
