/*
Theme Name: SOS FIRE
Theme URI: https://sosfire.it
Author: Alessandro Corselli
Description: Tema custom per SOS FIRE - sicurezza antincendio Roma. Vetrina aziendale con modulo Intervento Straordinario collegato a un Custom Post Type, pronto per l'integrazione futura con l'API di Quindi.
Version: 1.0.0
Text Domain: sosfire
*/

:root{
  --rosso: #C41E1E;
  --rosso-scuro: #8E1515;
  --nero: #1A1A1A;
  --oro: #D4A017;
  --oro-chiaro: #F0C94A;
  --crema: #F5F2EA;
  --cemento: #55524C;
  --verde: #1B7340;
  --bianco: #FFFFFF;
  --radius: 2px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  background:var(--crema);
  color:var(--nero);
  line-height:1.6;
}
h1,h2,h3,.eyebrow{font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:0.03em;}
.mono{font-family:'JetBrains Mono',monospace;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* hazard stripe divider */
.hazard{
  height:14px;
  background:repeating-linear-gradient(45deg, var(--nero), var(--nero) 22px, var(--oro) 22px, var(--oro) 44px);
}

/* HEADER */
header#site-header{
  background:var(--nero);
  color:var(--crema);
  position:sticky; top:0; z-index:100;
  border-bottom:3px solid var(--rosso);
}
.nav-wrap{
  max-width:1180px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between;
}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:52px; width:auto;}
.brand-name{font-family:'Oswald',sans-serif; font-size:1.3rem; font-weight:600; letter-spacing:0.05em;}
.brand-name span{color:var(--oro-chiaro);}
nav ul{list-style:none; display:flex; gap:28px;}
nav a{font-size:0.92rem; font-weight:500; letter-spacing:0.02em; text-transform:uppercase; transition:color .2s;}
nav a:hover{color:var(--oro-chiaro);}
.nav-cta{
  background:var(--rosso); color:var(--bianco); padding:9px 18px;
  font-weight:600; font-size:0.85rem; text-transform:uppercase;
  border-radius:var(--radius); letter-spacing:0.03em;
}
.nav-cta:hover{background:var(--rosso-scuro);}
.menu-toggle{display:none;}

/* HERO */
.hero{
  position:relative;
  background:var(--nero);
  color:var(--bianco);
  overflow:hidden;
  padding:90px 24px 70px;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 82% 20%, rgba(196,30,30,0.35), transparent 45%),
    radial-gradient(circle at 15% 85%, rgba(212,160,23,0.15), transparent 40%);
}
.hero-inner{
  max-width:1180px; margin:0 auto; position:relative; z-index:2;
  display:grid; grid-template-columns:1.2fr 0.8fr; gap:48px; align-items:center;
}
.eyebrow{
  color:var(--oro-chiaro); font-size:0.85rem; font-weight:600;
  border:1px solid var(--oro-chiaro); display:inline-block;
  padding:5px 12px; border-radius:var(--radius); margin-bottom:22px;
}
.hero h1{
  font-size:3.1rem; line-height:1.08; font-weight:700; margin-bottom:20px;
}
.hero h1 .accent{color:var(--rosso);}
.hero p{
  font-size:1.12rem; color:#D8D5CC; max-width:520px; margin-bottom:32px;
}
.hero-actions{display:flex; gap:16px;}
.btn{
  display:inline-block; padding:14px 28px; font-weight:600; font-size:0.95rem;
  border-radius:var(--radius); text-transform:uppercase; letter-spacing:0.03em;
  transition:transform .15s, background .2s; border:none; cursor:pointer;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--rosso); color:var(--bianco);}
.btn-primary:hover{background:var(--rosso-scuro);}
.btn-outline{border:2px solid var(--crema); color:var(--crema); background:transparent;}
.btn-outline:hover{background:var(--crema); color:var(--nero);}
.hero-badge{
  justify-self:center;
  background:var(--crema);
  border-radius:50%;
  padding:26px;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.hero-badge img{width:260px; height:auto;}

/* TRUST STRIP */
.trust{
  background:var(--crema); border-bottom:1px solid #E2DECF;
  padding:22px 24px;
}
.trust-inner{
  max-width:1180px; margin:0 auto; display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:18px; text-align:center;
}
.trust-item{flex:1; min-width:160px;}
.trust-item strong{display:block; font-family:'Oswald',sans-serif; font-size:1.6rem; color:var(--rosso);}
.trust-item span{font-size:0.85rem; color:var(--cemento); text-transform:uppercase; letter-spacing:0.03em;}

/* SECTION GENERIC */
section{padding:90px 24px;}
.section-inner{max-width:1180px; margin:0 auto;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head .eyebrow{color:var(--rosso); border-color:var(--rosso);}
.section-head h2{font-size:2.3rem; margin-bottom:16px; color:var(--nero);}
.section-head p{color:var(--cemento); font-size:1.05rem;}

/* CHI SIAMO */
.chi-siamo{background:var(--bianco);}
.chi-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.chi-text p{margin-bottom:16px; color:var(--cemento);}
.chi-stats{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:28px;}
.chi-stat{border-left:3px solid var(--oro); padding-left:16px;}
.chi-stat strong{display:block; font-family:'Oswald'; font-size:1.8rem; color:var(--nero);}
.chi-stat span{font-size:0.85rem; color:var(--cemento);}
.chi-image{
  background:var(--nero); border-radius:var(--radius);
  padding:40px; display:flex; align-items:center; justify-content:center;
  position:relative;
}
.chi-image::after{
  content:""; position:absolute; inset:12px; border:1px solid rgba(212,160,23,0.4); pointer-events:none;
}
.chi-image img{width:220px;}

/* SERVIZI */
.servizi{background:var(--crema);}
.servizi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.servizio-card{
  background:var(--bianco); border-radius:var(--radius); padding:32px;
  border-top:4px solid var(--rosso);
  box-shadow:0 4px 18px rgba(0,0,0,0.04);
  transition:box-shadow .2s, transform .2s;
}
.servizio-card:hover{transform:translateY(-4px); box-shadow:0 12px 28px rgba(0,0,0,0.08);}
.servizio-icon{
  width:48px; height:48px; border-radius:50%;
  background:var(--nero); color:var(--oro-chiaro);
  display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono'; font-weight:700; font-size:1.1rem;
  margin-bottom:20px;
}
.servizio-card h3{font-size:1.15rem; margin-bottom:10px; color:var(--nero);}
.servizio-card p{color:var(--cemento); font-size:0.95rem;}

/* CARTELLINO SCADENZA - signature element */
.cartellino-wrap{
  background:var(--nero); padding:90px 24px; position:relative; overflow:hidden;
}
.cartellino-wrap .hazard{position:absolute; top:0; left:0; right:0;}
.cartellino-inner{
  max-width:1180px; margin:0 auto; padding-top:24px;
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center;
}
.cartellino{
  background:#FBF8F0;
  border-radius:6px;
  padding:32px 28px 28px;
  position:relative;
  box-shadow:0 25px 60px rgba(0,0,0,0.45);
  transform:rotate(-2deg);
  max-width:340px;
}
.cartellino::before{
  content:""; position:absolute; top:14px; left:50%; transform:translateX(-50%);
  width:16px; height:16px; border-radius:50%; background:var(--nero);
  box-shadow:inset 0 2px 4px rgba(0,0,0,0.5);
}
.cartellino-title{
  font-family:'Oswald'; font-size:1rem; text-align:center; margin-top:12px;
  color:var(--rosso); border-bottom:2px dashed #C9C3B0; padding-bottom:14px; margin-bottom:14px;
}
.cartellino-row{display:flex; justify-content:space-between; font-size:0.85rem; padding:6px 0; border-bottom:1px dotted #C9C3B0;}
.cartellino-row span:first-child{color:var(--cemento); text-transform:uppercase; letter-spacing:0.02em; font-size:0.75rem;}
.cartellino-row span:last-child{font-family:'JetBrains Mono'; font-weight:700; color:var(--nero);}
.cartellino-months{display:grid; grid-template-columns:repeat(6,1fr); gap:6px; margin-top:14px;}
.month-hole{
  aspect-ratio:1; border-radius:50%; border:2px solid #C9C3B0;
  display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono'; font-size:0.62rem; color:var(--cemento);
}
.month-hole.punched{background:var(--nero); border-color:var(--nero); color:var(--oro-chiaro);}

.cartellino-copy .eyebrow{color:var(--oro-chiaro); border-color:var(--oro-chiaro);}
.cartellino-copy h2{color:var(--bianco); font-size:2.1rem; margin-bottom:18px;}
.cartellino-copy p{color:#C9C3B0; margin-bottom:28px; max-width:480px;}

/* CERTIFICAZIONI */
.certificazioni{background:var(--bianco);}
.norme-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.norma-card{
  border:1px solid #E2DECF; border-radius:var(--radius); padding:24px 20px;
  text-align:center;
}
.norma-card .mono{font-size:0.95rem; color:var(--rosso); font-weight:700; display:block; margin-bottom:8px;}
.norma-card span.label{font-size:0.82rem; color:var(--cemento);}

/* FORM INTERVENTO STRAORDINARIO */
.intervento{background:var(--crema);}
.intervento-panel{
  background:var(--bianco); border-radius:6px; overflow:hidden;
  display:grid; grid-template-columns:0.85fr 1.15fr;
  box-shadow:0 20px 50px rgba(0,0,0,0.06);
}
.intervento-side{
  background:var(--rosso); color:var(--bianco); padding:48px 40px;
  display:flex; flex-direction:column; justify-content:center;
}
.intervento-side .eyebrow{border-color:var(--bianco); color:var(--bianco);}
.intervento-side h3{font-size:1.6rem; margin-bottom:14px;}
.intervento-side p{opacity:0.92; font-size:0.95rem;}
.intervento-side ul{margin-top:22px; font-size:0.9rem; opacity:0.95;}
.intervento-side li{padding:6px 0; border-bottom:1px solid rgba(255,255,255,0.25); list-style:none;}
.intervento-form{padding:48px 40px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
.field label{display:block; font-size:0.78rem; text-transform:uppercase; letter-spacing:0.03em; color:var(--cemento); margin-bottom:6px; font-weight:600;}
.field input, .field textarea, .field select{
  width:100%; padding:11px 13px; border:1px solid #D8D3C4; border-radius:var(--radius);
  font-family:'Inter'; font-size:0.95rem; background:var(--crema);
}
.field input:focus, .field textarea:focus, .field select:focus{
  outline:2px solid var(--oro); outline-offset:1px; background:var(--bianco);
}
.field.full{grid-column:1 / -1; margin-bottom:16px;}
.form-note{
  font-size:0.78rem; color:var(--cemento); margin-top:6px; margin-bottom:20px;
  background:#F0EDE3; padding:10px 14px; border-left:3px solid var(--oro); border-radius:2px;
}
.form-msg{padding:14px 16px; border-radius:2px; margin-bottom:20px; font-size:0.9rem;}
.form-msg.success{background:#E4F2E9; color:var(--verde); border-left:3px solid var(--verde);}
.form-msg.error{background:#FBE9E7; color:var(--rosso-scuro); border-left:3px solid var(--rosso);}

/* CONTATTI */
.contatti{background:var(--nero); color:var(--crema);}
.contatti-grid{display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px;}
.contatti .section-head h2{color:var(--bianco);}
.contatti .section-head p{color:#B8B4A8;}
.contatto-col h3{font-family:'Oswald'; font-size:1rem; color:var(--oro-chiaro); margin-bottom:14px; text-transform:uppercase;}
.contatto-col p, .contatto-col a{color:#D8D5CC; font-size:0.95rem; display:block; margin-bottom:8px;}

footer#site-footer{background:var(--nero); border-top:1px solid rgba(255,255,255,0.1); padding:24px; text-align:center;}
footer#site-footer p{color:#8A867C; font-size:0.82rem; margin-bottom:4px;}
footer#site-footer p:last-child{margin-bottom:0;}

@media (max-width:900px){
  nav ul, .nav-cta{display:none;}
  .hero-inner{grid-template-columns:1fr;}
  .hero-badge{order:-1;}
  .chi-grid, .cartellino-inner, .intervento-panel, .contatti-grid{grid-template-columns:1fr;}
  .servizi-grid{grid-template-columns:1fr 1fr;}
  .norme-grid{grid-template-columns:1fr 1fr;}
  .form-row{grid-template-columns:1fr;}
  .hero h1{font-size:2.2rem;}
}
