/* Hang Ponteggi — global stylesheet
   Reset, base typography and shared UI (cookie banner). Page layout lives in
   inline styles on each page so the markup stays self-descriptive. */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:#15160f;font-family:'Archivo',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%}
::selection{background:#8CBF39;color:#fff}
a{color:#8CBF39;text-decoration:none}
a:hover{color:#A6E22E}
@keyframes hpFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* ============ RESPONSIVE (desktop → tablet → smartphone) ============
   Page layout uses inline grid styles; these media rules override the fixed
   column templates by targeting the exact inline value. */

/* mobile header pieces (injected by site.js) */
.hp-burger{display:none;background:none;border:none;cursor:pointer;padding:6px;color:#15160f;flex:none}
.hp-burger svg{display:block}
.hp-mnav{position:fixed;inset:0;z-index:200;background:rgba(10,11,7,.5);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.hp-mnav.open{opacity:1;visibility:visible}
.hp-mnav .sheet{position:absolute;top:0;right:0;height:100%;width:min(84vw,360px);background:#fff;box-shadow:-10px 0 40px rgba(0,0,0,.18);transform:translateX(100%);transition:transform .3s cubic-bezier(.22,1,.36,1);overflow-y:auto;padding:22px 24px 40px}
.hp-mnav.open .sheet{transform:translateX(0)}
.hp-mnav .sheet a{display:block;font-family:'Oswald',sans-serif;text-transform:uppercase;font-weight:600;font-size:17px;letter-spacing:.4px;color:#15160f;text-decoration:none;padding:14px 0;border-bottom:1px solid #eef0ea}
.hp-mnav .sheet a.sub{font-family:'Archivo',sans-serif;text-transform:none;font-weight:500;font-size:14.5px;color:#54564d;padding:10px 0 10px 14px;border-bottom:1px solid #f4f5f0}
.hp-mnav .sheet .lbl{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:#8CBF39;margin:22px 0 4px}
.hp-mnav .sheet .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.hp-mnav .sheet .close{background:none;border:none;cursor:pointer;color:#15160f;padding:6px}

@media (max-width:860px){
  [data-hp-header] nav{display:none!important}
  .hp-burger{display:inline-flex!important}
}

@media (max-width:980px){
  [style*="grid-template-columns:repeat(6,1fr)"]{grid-template-columns:repeat(3,1fr)!important}
  [style*="grid-template-columns:repeat(5,1fr)"]{grid-template-columns:repeat(3,1fr)!important}
  [style*="grid-template-columns:repeat(4,1fr)"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:repeat(3,1fr)"]{grid-template-columns:repeat(2,1fr)!important}
  [style*="grid-template-columns:1.1fr .9fr .8fr 1.6fr"]{grid-template-columns:repeat(2,1fr)!important}
}
@media (max-width:820px){
  [style*="grid-template-columns:1fr 1fr"]:not([style*="1fr 1fr 1fr"]){grid-template-columns:1fr!important}
  [style*="grid-template-columns:1.15fr 1fr"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:1.1fr 1fr"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:.8fr 1.2fr"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:.7fr 1.3fr"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:1fr 1.2fr"]{grid-template-columns:1fr!important}
  /* big hero top paddings */
  [style*="padding:150px 0 90px"]{padding-top:104px!important}
  [style*="padding:150px 0 60px"]{padding-top:104px!important}
}
@media (max-width:620px){
  [style*="grid-template-columns:repeat(6,1fr)"],
  [style*="grid-template-columns:repeat(5,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"],
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(2,1fr)"],
  [style*="grid-template-columns:1.1fr .9fr .8fr 1.6fr"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:.5fr 1fr"]{grid-template-columns:1fr!important}
  [style*="grid-template-columns:1fr 1fr 1fr .9fr"]{grid-template-columns:1fr!important}
  /* tighten container side padding */
  [style*="padding:0 32px"]{padding-left:20px!important;padding-right:20px!important}
  [style*="padding:15px 32px"]{padding-left:20px!important;padding-right:20px!important}
  [style*="padding:26px 32px"]{padding-left:20px!important;padding-right:20px!important}
}

/* ── Cookie banner ─────────────────────────────────────────────── */
#hp-cookie{position:fixed;left:0;right:0;bottom:0;z-index:2000;background:#15160f;color:#fff;
  box-shadow:0 -8px 30px rgba(0,0,0,.28);border-top:4px solid #8CBF39;transform:translateY(110%);
  transition:transform .45s cubic-bezier(.22,1,.36,1)}
#hp-cookie.open{transform:translateY(0)}
#hp-cookie .hp-cc-wrap{max-width:1280px;margin:0 auto;padding:26px 32px;display:grid;
  grid-template-columns:1fr auto;gap:28px;align-items:center}
#hp-cookie h3{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.5px;
  font-size:16px;margin:0 0 8px}
#hp-cookie p{font-size:13.5px;line-height:1.6;color:#c7c9bd;margin:0;max-width:720px}
#hp-cookie a{color:#8CBF39}
.hp-cc-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.hp-btn{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.6px;
  font-size:12.5px;padding:13px 22px;border:0;cursor:pointer;border-radius:2px;white-space:nowrap;transition:filter .2s,background .2s,color .2s}
.hp-btn-primary{background:#8CBF39;color:#15160f}
.hp-btn-primary:hover{background:#A6E22E}
.hp-btn-ghost{background:transparent;color:#fff;border:1px solid #3a3b31}
.hp-btn-ghost:hover{border-color:#8CBF39;color:#8CBF39}
.hp-btn-link{background:none;color:#9ca08f;border:0;cursor:pointer;font-size:12.5px;text-decoration:underline;padding:6px}
.hp-btn-link:hover{color:#8CBF39}
/* Preferences modal */
#hp-cookie-modal{position:fixed;inset:0;z-index:2100;display:none;align-items:center;justify-content:center;
  background:rgba(10,11,7,.62);padding:24px}
#hp-cookie-modal.open{display:flex}
.hp-cc-card{background:#fff;color:#15160f;max-width:620px;width:100%;max-height:88vh;overflow:auto;border-radius:4px;
  border-top:5px solid #8CBF39;padding:34px 36px}
.hp-cc-card h2{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.5px;font-size:24px;margin:0 0 6px}
.hp-cc-row{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid #ececec}
.hp-cc-row h4{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.4px;font-size:14px;margin:0 0 6px}
.hp-cc-row p{font-size:13px;line-height:1.55;color:#5a5c51;margin:0}
.hp-switch{position:relative;width:46px;height:26px;flex:none;margin-top:2px}
.hp-switch input{opacity:0;width:0;height:0}
.hp-switch span{position:absolute;inset:0;background:#cfd1c8;border-radius:20px;cursor:pointer;transition:background .2s}
.hp-switch span:before{content:"";position:absolute;height:20px;width:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s}
.hp-switch input:checked+span{background:#8CBF39}
.hp-switch input:checked+span:before{transform:translateX(20px)}
.hp-switch input:disabled+span{opacity:.55;cursor:not-allowed}
@media(max-width:760px){
  #hp-cookie .hp-cc-wrap{grid-template-columns:1fr;gap:16px}
  .hp-cc-actions{justify-content:flex-start}
}
