/* ============================================================
   IlTiratore.eu — foglio di stile unico, estratto e unificato
   dai mockup iltiratore_*_mockup.html (design system condiviso).
   ============================================================ */

/* ---------- BASE / VARIABILI CONDIVISE ---------- */
:root{
  --paper:#F3F4EF; --paper-raised:#ECEEE6; --ink:#1B211D; --ink-soft:#4A534C;
  --forest:#2E4034; --forest-deep:#1F2C25; --brass:#AD7C3F; --brass-soft:#C79A5F;
  --steel:#5B6B6C; --line:#D3D6CB; --paper-rgb:243,244,239;
  --radius:2px;
  --display:'Space Grotesk',sans-serif; --serif:'Source Serif 4',serif; --mono:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
.wrap-narrow{max-width:1000px;margin:0 auto;padding:0 32px;}
.wrap-prose{max-width:980px;margin:0 auto;padding:0 32px;}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);display:flex;align-items:center;gap:10px;}
.eyebrow::before{content:'';width:18px;height:1px;background:var(--brass);}

/* ---------- HEADER (comune a tutte le pagine) ---------- */
header{border-bottom:1px solid var(--line);background:rgba(var(--paper-rgb),.92);}
header.sticky{position:sticky;top:0;backdrop-filter:blur(6px);z-index:50;}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:76px;}
.logo{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;}
.logo a{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;}
.logo-mark{width:26px;height:26px;flex:none;}
.logo small{font-family:var(--mono);font-weight:400;font-size:11px;color:var(--steel);letter-spacing:.08em;margin-left:2px;}
.crumb{font-family:var(--mono);font-size:11.5px;color:var(--steel);}
.crumb b{color:var(--forest);}
.crumb a{text-decoration:underline;}
.crumb a:hover{color:var(--forest);}
nav.primary{display:flex;gap:30px;font-family:var(--mono);font-size:12.5px;letter-spacing:.03em;text-transform:uppercase;}
nav.primary a{color:var(--ink-soft);border-bottom:1px solid transparent;padding-bottom:3px;transition:.15s;}
nav.primary a:hover,nav.primary a.active{color:var(--forest);border-color:var(--brass);}
.header-right{display:flex;align-items:center;gap:20px;}
.lang-switch{display:flex;font-family:var(--mono);font-size:11px;border:1px solid var(--line);border-radius:20px;overflow:hidden;}
.lang-switch span,.lang-switch a{padding:5px 10px;color:var(--steel);cursor:default;}
.lang-switch a{cursor:pointer;text-decoration:none;}
.lang-switch a:hover{background:var(--paper-raised);}
.lang-switch span.active{background:var(--forest);color:var(--paper);}
.lang-notice{display:flex;align-items:center;justify-content:center;gap:14px;background:#FBF3E7;border-bottom:1px solid #E8D3A8;color:#8A6015;font-size:12.5px;padding:10px 16px;text-align:center;line-height:1.6;}
.lang-notice a{color:#8A6015;text-decoration:none;font-weight:600;font-size:15px;line-height:1;padding:0 4px;align-self:flex-start;}
.lang-notice a:hover{opacity:.7;}
.btn{
  font-family:var(--mono);font-size:12px;letter-spacing:.03em;text-transform:uppercase;
  padding:9px 18px;border-radius:20px;border:1px solid var(--forest);
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;cursor:pointer;background:none;
}
.btn-solid{background:var(--forest);color:var(--paper);}
.btn-ghost{color:var(--forest);}
.btn-lg{padding:12px 22px;border-radius:24px;}
@media(max-width:980px){ nav.primary{display:none;} }

/* ---------- FOOTER (comune) ---------- */
footer{border-top:1px solid var(--line);padding:56px 0 34px;}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr;gap:32px;margin-bottom:44px;}
.foot-grid h5{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--steel);margin-bottom:14px;}
.foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:9px;}
.foot-grid ul a{font-size:13.5px;color:var(--ink-soft);}
.foot-grid ul a:hover{color:var(--forest);}
.foot-brand p{font-size:13px;color:var(--steel);max-width:34ch;margin-top:14px;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:22px;font-family:var(--mono);font-size:11px;color:var(--steel);flex-wrap:wrap;gap:10px;}
@media(max-width:980px){ .foot-grid{grid-template-columns:1fr 1fr;} }

/* ---------- PAGE HERO (pagine interne con breadcrumb) ---------- */
.page-hero{padding:44px 0 34px;border-bottom:1px solid var(--line);}
.page-hero h1{font-family:var(--display);font-weight:600;font-size:32px;letter-spacing:-.01em;margin:12px 0 8px;color:var(--forest-deep);}
.page-hero p{color:var(--ink-soft);font-size:14.5px;max-width:60ch;}
.info-tag{
  display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;
  text-transform:uppercase;letter-spacing:.04em;color:var(--forest);background:#E4EAE3;
  padding:5px 11px;border-radius:12px;margin-top:14px;
}

/* photo hero con overlay scuro (caccia, calendario, legal-search) */
.photo-hero{padding:56px 0 42px;color:var(--paper);position:relative;background-size:cover;background-position:center;}
.photo-hero .eyebrow{color:var(--brass-soft);}
.photo-hero .eyebrow::before{background:var(--brass-soft);}
.photo-hero h1{font-family:var(--display);font-weight:600;font-size:34px;letter-spacing:-.01em;margin:14px 0 10px;}
.photo-hero p{color:#DCE2DC;font-size:14.5px;max-width:60ch;}

/* sfondi hero per pagina — JPEG universale + upgrade WebP dove supportato */
.bg-tiro-sportivo{background-image:linear-gradient(100deg, rgba(20,26,22,.92) 0%, rgba(20,26,22,.78) 40%, rgba(20,26,22,.3) 100%), url('../images/02-tiro-sportivo.jpg');background-position:center 40%;}
.bg-caccia{background-image:linear-gradient(100deg, rgba(20,26,22,.92) 0%, rgba(20,26,22,.78) 40%, rgba(20,26,22,.3) 100%), url('../images/03-caccia.jpg');background-position:center 45%;}
.bg-diritto-armi{background-image:linear-gradient(100deg, rgba(20,26,22,.92) 0%, rgba(20,26,22,.78) 40%, rgba(20,26,22,.3) 100%), url('../images/04-diritto-armi.jpg');background-position:center 40%;}
.bg-legal-search{background-image:linear-gradient(100deg, rgba(20,26,22,.95) 0%, rgba(20,26,22,.86) 40%, rgba(20,26,22,.55) 100%), url('../images/04-diritto-armi.jpg');background-position:center 40%;}
.bg-calendario{background-image:linear-gradient(100deg, rgba(20,26,22,.94) 0%, rgba(20,26,22,.84) 38%, rgba(20,26,22,.45) 75%, rgba(20,26,22,.1) 100%), url('../images/05-gare-calendario.jpg');background-position:center 38%;}
.bg-tiro-precisione{background-image:linear-gradient(100deg, rgba(20,26,22,.94) 0%, rgba(20,26,22,.82) 45%, rgba(20,26,22,.3) 100%), url('../images/06-programmi-software.jpg');background-position:center 40%;}
.bg-news{background-image:linear-gradient(100deg, rgba(20,26,22,.94) 0%, rgba(20,26,22,.82) 45%, rgba(20,26,22,.3) 100%), url('../images/05-gare-calendario.jpg');background-position:center 40%;}
.bg-risorse{background-image:linear-gradient(100deg, rgba(20,26,22,.94) 0%, rgba(20,26,22,.82) 45%, rgba(20,26,22,.3) 100%), url('../images/04-diritto-armi.jpg');background-position:center 40%;}
@supports (background-image:image-set(url('x.webp') type('image/webp'))){
  .bg-tiro-sportivo{background-image:linear-gradient(100deg, rgba(20,26,22,.92) 0%, rgba(20,26,22,.78) 40%, rgba(20,26,22,.3) 100%), image-set(url('../images/02-tiro-sportivo.webp') type('image/webp'), url('../images/02-tiro-sportivo.jpg') type('image/jpeg'));}
  .bg-caccia{background-image:linear-gradient(100deg, rgba(20,26,22,.92) 0%, rgba(20,26,22,.78) 40%, rgba(20,26,22,.3) 100%), image-set(url('../images/03-caccia.webp') type('image/webp'), url('../images/03-caccia.jpg') type('image/jpeg'));}
  .bg-diritto-armi{background-image:linear-gradient(100deg, rgba(20,26,22,.92) 0%, rgba(20,26,22,.78) 40%, rgba(20,26,22,.3) 100%), image-set(url('../images/04-diritto-armi.webp') type('image/webp'), url('../images/04-diritto-armi.jpg') type('image/jpeg'));}
  .bg-legal-search{background-image:linear-gradient(100deg, rgba(20,26,22,.95) 0%, rgba(20,26,22,.86) 40%, rgba(20,26,22,.55) 100%), image-set(url('../images/04-diritto-armi.webp') type('image/webp'), url('../images/04-diritto-armi.jpg') type('image/jpeg'));}
  .bg-calendario{background-image:linear-gradient(100deg, rgba(20,26,22,.94) 0%, rgba(20,26,22,.84) 38%, rgba(20,26,22,.45) 75%, rgba(20,26,22,.1) 100%), image-set(url('../images/05-gare-calendario.webp') type('image/webp'), url('../images/05-gare-calendario.jpg') type('image/jpeg'));}
  .bg-tiro-precisione{background-image:linear-gradient(100deg, rgba(20,26,22,.94) 0%, rgba(20,26,22,.82) 45%, rgba(20,26,22,.3) 100%), image-set(url('../images/06-programmi-software.webp') type('image/webp'), url('../images/06-programmi-software.jpg') type('image/jpeg'));}
  .bg-news{background-image:linear-gradient(100deg, rgba(20,26,22,.94) 0%, rgba(20,26,22,.82) 45%, rgba(20,26,22,.3) 100%), image-set(url('../images/05-gare-calendario.webp') type('image/webp'), url('../images/05-gare-calendario.jpg') type('image/jpeg'));}
  .bg-risorse{background-image:linear-gradient(100deg, rgba(20,26,22,.94) 0%, rgba(20,26,22,.82) 45%, rgba(20,26,22,.3) 100%), image-set(url('../images/04-diritto-armi.webp') type('image/webp'), url('../images/04-diritto-armi.jpg') type('image/jpeg'));}
}

/* ============================================================ */
/* HOME (index.php)                                              */
/* ============================================================ */
.hero{
  padding:96px 0 80px;position:relative;overflow:hidden;color:var(--paper);
  background:linear-gradient(100deg, rgba(20,26,22,.62) 0%, rgba(20,26,22,.48) 30%, rgba(20,26,22,.32) 55%, rgba(20,26,22,.18) 100%), url('../images/01-hero-precisione.jpg') center 30%/cover no-repeat;
}
@supports (background-image:image-set(url('x.webp') type('image/webp'))){
  .hero{ background-image:linear-gradient(100deg, rgba(20,26,22,.62) 0%, rgba(20,26,22,.48) 30%, rgba(20,26,22,.32) 55%, rgba(20,26,22,.18) 100%), image-set(url('../images/01-hero-precisione.webp') type('image/webp'), url('../images/01-hero-precisione.jpg') type('image/jpeg')); }
}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center;}
.hero .eyebrow{color:var(--brass-soft);}
.hero .eyebrow::before{background:var(--brass-soft);}
.hero h1{font-family:var(--display);font-weight:600;font-size:52px;line-height:1.06;letter-spacing:-.015em;margin:18px 0 22px;color:var(--paper);}
.hero h1 em{font-style:normal;color:var(--brass);}
.hero p.lead{font-size:18px;color:#DCE2DC;max-width:46ch;margin-bottom:34px;}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:46px;}
.hero .btn-ghost{color:var(--paper);border-color:#5C6B60;}
.readout{display:flex;gap:0;border-top:1px solid rgba(255,255,255,.18);padding-top:22px;}
.readout div{flex:1;padding-right:18px;border-right:1px solid rgba(255,255,255,.18);}
.readout div:last-child{border-right:none;}
.readout .num{font-family:var(--display);font-weight:600;font-size:26px;color:var(--brass-soft);}
.readout .lbl{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#B7C0BA;margin-top:3px;}
.hero-visual{position:relative;}
.hero-card{background:var(--paper);color:var(--ink);border-radius:3px;padding:22px 22px 20px;box-shadow:0 24px 48px -18px rgba(0,0,0,.55);}
.hero-card .k{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--steel);}
.hero-card h4{font-family:var(--display);font-weight:600;font-size:15.5px;color:var(--forest-deep);margin:4px 0 14px;}
.hero-card .row{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;padding:8px 0;border-top:1px solid var(--line);}
.hero-card .row span:last-child{color:var(--forest);}
.hero-visual .cap{font-family:var(--mono);font-size:10.5px;color:#B7C0BA;text-align:right;margin-top:12px;letter-spacing:.03em;}
.traj-divider{width:100%;height:52px;display:block;}

.pillars{padding:72px 0 84px;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px;gap:24px;flex-wrap:wrap;}
.section-head h2{font-family:var(--display);font-weight:600;font-size:30px;letter-spacing:-.01em;color:var(--forest-deep);margin-top:10px;}
.section-head p{color:var(--steel);max-width:42ch;font-size:14.5px;}
.pillar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.pillar{background:var(--paper);padding:0 0 28px;position:relative;transition:background .15s;overflow:hidden;}
.pillar:hover{background:var(--paper-raised);}
.pillar .thumb{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:saturate(.92);}
.pillar .pbody{padding:22px 26px 0;}
.pillar .idx{font-family:var(--mono);font-size:11px;color:var(--brass);letter-spacing:.05em;}
.pillar h3{font-family:var(--display);font-weight:600;font-size:18.5px;margin:14px 0 10px;color:var(--forest-deep);}
.pillar p{font-size:13.5px;color:var(--ink-soft);margin-bottom:18px;min-height:58px;}
.pillar .tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px;}
.pillar .tags span{font-family:var(--mono);font-size:10px;color:var(--steel);border:1px solid var(--line);padding:3px 7px;border-radius:10px;}
.pillar .go{font-family:var(--mono);font-size:11.5px;color:var(--forest);text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:6px;}

.legal{background:var(--forest-deep);color:var(--paper);padding:80px 0;position:relative;}
.legal .eyebrow{color:var(--brass-soft);}
.legal .eyebrow::before{background:var(--brass-soft);}
.legal-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:64px;align-items:start;}
.legal h2{font-family:var(--display);font-weight:600;font-size:32px;margin:16px 0 18px;letter-spacing:-.01em;}
.legal p.desc{color:#C7CFC9;font-size:15px;max-width:44ch;margin-bottom:26px;}
.legal-points{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:30px;}
.legal-points li{display:flex;gap:12px;font-size:13.5px;color:#DCE2DC;align-items:flex-start;}
.legal-points li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--brass-soft);margin-top:6px;flex:none;}
.doc-card{background:var(--paper);color:var(--ink);border-radius:3px;padding:26px 26px 22px;box-shadow:0 24px 48px -18px rgba(0,0,0,.45);}
.doc-card .q{font-family:var(--mono);font-size:11px;color:var(--steel);margin-bottom:14px;letter-spacing:.02em;}
.doc-card .q b{color:var(--forest);}
.doc-title{font-family:var(--display);font-weight:600;font-size:17px;color:var(--forest-deep);margin-bottom:8px;}
.doc-body{font-size:13.5px;color:var(--ink-soft);margin-bottom:16px;}
.doc-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;border-top:1px solid var(--line);padding-top:14px;}
.doc-meta div span{display:block;}
.doc-meta .k{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--steel);}
.doc-meta .v{font-size:12.5px;color:var(--ink);margin-top:2px;}
.doc-status{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-family:var(--mono);font-size:10.5px;color:var(--forest);letter-spacing:.03em;background:#E4EAE3;padding:5px 10px;border-radius:12px;}
.doc-status::before{content:'●';color:#4B8A5E;font-size:8px;}

.cal{padding:78px 0;}
.cal-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:36px;}
.cal-item{background:var(--paper);padding:22px 22px 24px;}
.cal-item .date{font-family:var(--mono);font-size:11px;color:var(--brass);letter-spacing:.03em;}
.cal-item h4{font-family:var(--display);font-weight:600;font-size:15.5px;margin:10px 0 6px;color:var(--forest-deep);}
.cal-item .loc{font-size:12.5px;color:var(--steel);}
.cal-item .disc{display:inline-block;margin-top:12px;font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--forest);border:1px solid var(--line);padding:3px 8px;border-radius:10px;}

.programs{background:var(--paper-raised);padding:78px 0;}
.prog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px;}
.prog-card{background:var(--paper);border:1px solid var(--line);padding:26px;display:flex;flex-direction:column;}
.prog-card .cal-mono{font-family:var(--mono);font-size:11px;color:var(--steel);margin-bottom:16px;}
.prog-card h3{font-family:var(--display);font-weight:600;font-size:18px;color:var(--forest-deep);margin-bottom:8px;}
.prog-card p{font-size:13px;color:var(--ink-soft);margin-bottom:20px;flex:1;}
.prog-card .price{font-family:var(--mono);font-size:13px;color:var(--brass);margin-bottom:16px;}
.prog-card .btn{align-self:flex-start;}

@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;}
  .pillar-grid,.cal-row{grid-template-columns:repeat(2,1fr);}
  .legal-grid{grid-template-columns:1fr;}
  .prog-grid{grid-template-columns:1fr;}
  .hero h1{font-size:38px;}
}

/* ============================================================ */
/* CHI SIAMO                                                     */
/* ============================================================ */
.content{padding:60px 0 80px;}
.content h1{font-family:var(--display);font-weight:600;font-size:36px;letter-spacing:-.01em;margin:14px 0 26px;color:var(--forest-deep);}
.photo{width:100%;border-radius:3px;overflow:hidden;margin:30px 0;}
.photo img{width:100%;display:block;}
.photo .cap{font-family:var(--mono);font-size:10.5px;color:var(--steel);margin-top:8px;}
.content p{font-size:15.5px;color:var(--ink-soft);max-width:68ch;margin-bottom:18px;}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:40px;}
.val{background:var(--paper);padding:24px;}
.val h4{font-family:var(--display);font-weight:600;font-size:15px;color:var(--forest-deep);margin-bottom:8px;}
.val p{font-size:12.5px;margin:0;}
@media(max-width:800px){ .values{grid-template-columns:1fr;} }

/* ============================================================ */
/* CACCIA                                                         */
/* ============================================================ */
.section{padding:60px 0;}
.section-head-simple{margin-bottom:32px;}
.section-head-simple h2{font-family:var(--display);font-weight:600;font-size:26px;color:var(--forest-deep);margin-top:8px;letter-spacing:-.01em;}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.card{background:var(--paper);padding:24px 22px;}
.card h4{font-family:var(--display);font-weight:600;font-size:15px;color:var(--forest-deep);margin-bottom:8px;}
.card p{font-size:12.5px;color:var(--ink-soft);}
.band{background:var(--paper-raised);padding:56px 0;}
.band-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.band h3{font-family:var(--display);font-weight:600;font-size:22px;color:var(--forest-deep);margin-bottom:12px;}
.band ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.band li{display:flex;gap:10px;font-size:13.5px;color:var(--ink-soft);}
.band li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--brass);margin-top:6px;flex:none;}
.note-box{font-family:var(--mono);font-size:11px;color:var(--steel);border:1px solid var(--line);border-radius:3px;padding:20px;background:var(--paper);}
@media(max-width:900px){ .grid4{grid-template-columns:repeat(2,1fr);} .band-grid{grid-template-columns:1fr;} }

/* ============================================================ */
/* DATABASE (catalogo armi)                                      */
/* ============================================================ */
.toolbar{display:flex;justify-content:space-between;align-items:center;margin-top:26px;flex-wrap:wrap;gap:14px;}
.search-mini{display:flex;align-items:center;gap:10px;background:var(--paper-raised);border:1px solid var(--line);border-radius:20px;padding:8px 16px;min-width:280px;}
.search-mini input{border:none;background:none;outline:none;font-family:var(--serif);font-size:13.5px;flex:1;color:var(--ink);}
.layout{display:grid;grid-template-columns:220px 1fr;gap:44px;padding:36px 0 90px;}
.facets h5{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--steel);margin:22px 0 12px;}
.facets h5:first-child{margin-top:0;}
.facet-list{list-style:none;display:flex;flex-direction:column;gap:9px;}
.facet-list li{display:flex;justify-content:space-between;font-size:13px;}
.facet-list li a{display:flex;justify-content:space-between;width:100%;color:var(--ink-soft);}
.facet-list li b{font-family:var(--mono);font-weight:400;color:var(--steel);font-size:11.5px;}
.facet-list li.on a{color:var(--forest);font-weight:500;}
.results-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:20px;flex-wrap:wrap;gap:8px;}
.results-head .count{font-family:var(--mono);font-size:12.5px;color:var(--steel);}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.card .thumb{aspect-ratio:4/3;background:var(--paper-raised);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.card .thumb .ph{font-family:var(--mono);font-size:10px;color:var(--steel);letter-spacing:.04em;text-align:center;padding:0 20px;}
.card .thumb .silhouette{width:100%;height:100%;}
.card .thumb .silhouette .cat-icon{width:100%;height:100%;object-fit:cover;display:block;}
.card .thumb .product-photo{width:100%;height:100%;object-fit:cover;display:block;}
.card .cat{position:absolute;top:10px;left:10px;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.05em;background:var(--forest-deep);color:var(--paper);padding:3px 8px;border-radius:10px;}
.card-body{padding:18px 18px 20px;flex:1;display:flex;flex-direction:column;}
.card h4{font-family:var(--display);font-weight:600;font-size:15.5px;color:var(--forest-deep);margin-bottom:6px;}
.card .specs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px;}
.card .specs span{font-family:var(--mono);font-size:9.5px;color:var(--steel);border:1px solid var(--line);padding:2.5px 7px;border-radius:9px;}
.card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;}
.card .price{font-family:var(--mono);font-size:14px;color:var(--brass);}
.pager{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:38px;font-family:var(--mono);font-size:12px;}
.pager a,.pager span{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:2px;color:var(--steel);}
.pager a.on,.pager span.on{background:var(--forest);color:var(--paper);border-color:var(--forest);}
.empty-state{padding:40px;text-align:center;color:var(--steel);font-family:var(--mono);font-size:13px;}
@media(max-width:980px){ .layout{grid-template-columns:1fr;} .grid{grid-template-columns:repeat(2,1fr);} }

/* ============================================================ */
/* CONFIGURATORE                                                  */
/* ============================================================ */
.stepper{display:flex;gap:0;margin:36px 0 8px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.step-tab{font-family:var(--display);font-weight:500;font-size:12.5px;text-transform:uppercase;letter-spacing:.02em;padding:12px 22px 14px;color:var(--steel);border-bottom:2px solid transparent;position:relative;}
.step-tab .n{color:var(--brass);margin-right:6px;}
.step-tab.on{color:var(--forest);border-color:var(--forest);font-weight:600;}
.step-tab.done{color:var(--ink-soft);}
.panel{padding:34px 0 70px;}
.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:30px;}
@media(max-width:760px){.choice-grid{grid-template-columns:1fr;}}
.choice-card{border:1px solid var(--line);border-radius:3px;padding:20px 22px;cursor:pointer;transition:.15s;background:none;text-align:left;width:100%;font-family:var(--serif);}
.choice-card.on{border-color:var(--forest);background:#E9EEE8;}
.choice-card h4{font-family:var(--display);font-weight:600;font-size:16px;color:var(--forest-deep);margin-bottom:6px;}
.choice-card p{font-size:12.5px;color:var(--ink-soft);}
.distance-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.dist-chip{font-family:var(--display);font-weight:500;font-size:12.5px;border:1px solid var(--line);border-radius:20px;padding:9px 16px;color:var(--ink-soft);cursor:pointer;background:none;}
.dist-chip.on{background:var(--forest);color:var(--paper);border-color:var(--forest);}
.helper{font-size:12.5px;color:var(--steel);margin-bottom:30px;}
.rule-box{background:var(--paper-raised);border:1px solid var(--line);border-radius:3px;padding:20px 24px;margin-bottom:28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
.rule-box .lbl{font-family:var(--display);font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--steel);}
.rule-box .val{font-family:var(--display);font-weight:600;font-size:15px;color:var(--forest-deep);margin-top:3px;}
.rule-box .source{font-family:var(--display);font-size:11px;color:var(--steel);}
.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:20px;}
.rcard{background:var(--paper);padding:20px 22px;}
.rcard .match{font-family:var(--display);font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--forest);background:#E4EAE3;padding:3px 9px;border-radius:10px;display:inline-block;margin-bottom:10px;}
.rcard h4{font-family:var(--display);font-weight:600;font-size:16px;color:var(--forest-deep);margin-bottom:6px;}
.rcard .specs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px;}
.rcard .specs span{font-family:var(--display);font-size:10.5px;color:var(--steel);border:1px solid var(--line);padding:2.5px 7px;border-radius:9px;}
.rcard .foot{display:flex;justify-content:space-between;align-items:center;}
.rcard .price{font-family:var(--display);font-weight:600;font-size:14px;color:var(--brass);}
.disclaimer{font-family:var(--display);font-size:12px;color:var(--steel);background:var(--paper-raised);border:1px solid var(--line);border-radius:3px;padding:14px 18px;margin-bottom:40px;line-height:1.7;}
.nsearch{background:var(--forest-deep);border-radius:4px;padding:38px 40px;color:var(--paper);margin-top:8px;}
.nsearch .eyebrow{color:var(--brass-soft);margin-bottom:12px;}
.nsearch .eyebrow::before{background:var(--brass-soft);}
.nsearch h3{font-family:var(--display);font-weight:600;font-size:22px;color:var(--paper);margin-bottom:10px;}
.nsearch p.sub{font-size:14px;color:#C7CFC9;margin-bottom:22px;max-width:58ch;}
.search-box{display:flex;align-items:center;gap:12px;border-radius:3px;padding:6px 6px 6px 18px;background:var(--paper);}
.search-box input{flex:1;border:none;background:none;outline:none;font-family:var(--serif);font-size:14.5px;color:var(--ink);padding:11px 0;}
.search-box button{font-family:var(--display);font-weight:600;font-size:12.5px;text-transform:uppercase;background:var(--forest);color:var(--paper);border:none;padding:12px 20px;border-radius:2px;cursor:pointer;}

/* Configuratore — hero foto + fiducia + card con illustrazione */
.trust-row{display:flex;gap:0;border-top:1px solid rgba(255,255,255,.2);padding-top:20px;max-width:640px;flex-wrap:wrap;margin-top:22px;}
.trust-row div{flex:1;min-width:130px;padding-right:20px;}
.trust-row .num{font-family:var(--display);font-weight:700;font-size:24px;color:var(--brass-soft);}
.trust-row .lbl{font-family:var(--display);font-weight:500;font-size:11.5px;color:#B7C0BA;margin-top:3px;}
.choice-card{position:relative;}
.choice-card .choice-glyph{aspect-ratio:16/9;background:var(--paper-raised);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);margin:-20px -22px 16px;border-radius:3px 3px 0 0;}
.choice-card .choice-glyph svg{width:48%;opacity:.65;}
.choice-card-photo{background-size:cover;background-position:65% center;color:var(--paper);min-height:230px;display:flex;flex-direction:column;justify-content:flex-end;border-color:transparent;}
.choice-card-photo h4{color:var(--paper);}
.choice-card-photo p{color:#DCE2DC;}
.choice-card-photo.on{border-color:var(--brass);box-shadow:inset 0 0 0 2px var(--brass);}
.bg-arma-lunga{background-image:linear-gradient(0deg, rgba(15,19,16,.92) 0%, rgba(15,19,16,.35) 55%, rgba(15,19,16,.15) 100%), url('../images/configuratore-arma-lunga.jpg');}
.bg-arma-corta{background-image:linear-gradient(0deg, rgba(15,19,16,.92) 0%, rgba(15,19,16,.35) 55%, rgba(15,19,16,.15) 100%), url('../images/configuratore-arma-corta.jpg');}
.bg-arma-aria{background-image:linear-gradient(0deg, rgba(15,19,16,.92) 0%, rgba(15,19,16,.35) 55%, rgba(15,19,16,.15) 100%), url('../images/configuratore-arma-aria.jpg');}
@supports (background-image:image-set(url('x.webp') type('image/webp'))){
  .bg-arma-lunga{background-image:linear-gradient(0deg, rgba(15,19,16,.92) 0%, rgba(15,19,16,.35) 55%, rgba(15,19,16,.15) 100%), image-set(url('../images/configuratore-arma-lunga.webp') type('image/webp'), url('../images/configuratore-arma-lunga.jpg') type('image/jpeg'));}
  .bg-arma-corta{background-image:linear-gradient(0deg, rgba(15,19,16,.92) 0%, rgba(15,19,16,.35) 55%, rgba(15,19,16,.15) 100%), image-set(url('../images/configuratore-arma-corta.webp') type('image/webp'), url('../images/configuratore-arma-corta.jpg') type('image/jpeg'));}
  .bg-arma-aria{background-image:linear-gradient(0deg, rgba(15,19,16,.92) 0%, rgba(15,19,16,.35) 55%, rgba(15,19,16,.15) 100%), image-set(url('../images/configuratore-arma-aria.webp') type('image/webp'), url('../images/configuratore-arma-aria.jpg') type('image/jpeg'));}
}
.why-band{background:var(--paper-raised);border-radius:4px;padding:32px 36px;margin:36px 0;}
.why-band h3{font-family:var(--display);font-weight:600;font-size:19px;color:var(--forest-deep);margin-bottom:18px;}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.why-item{display:flex;gap:12px;}
.why-item .ico{flex:none;width:32px;height:32px;border-radius:50%;background:var(--forest-deep);display:flex;align-items:center;justify-content:center;}
.why-item p{font-size:13px;color:var(--ink-soft);}
.why-item strong{display:block;color:var(--ink);font-family:var(--display);font-weight:600;font-size:13.5px;margin-bottom:3px;}
@media(max-width:760px){.why-grid{grid-template-columns:1fr;}}
.search-box button{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;background:var(--forest);color:var(--paper);border:none;padding:11px 18px;border-radius:2px;cursor:pointer;}
.no-match{margin-top:26px;background:var(--paper);color:var(--ink);border-radius:3px;padding:26px 28px;}
.no-match .eyebrow{color:var(--brass);}
.no-match .eyebrow::before{background:var(--brass);}
.no-match h4{font-family:var(--display);font-weight:600;font-size:17px;margin:10px 0 8px;color:var(--forest-deep);}
.no-match p{font-size:13px;color:var(--ink-soft);margin-bottom:18px;max-width:60ch;}
.no-match .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.no-match input{flex:1;min-width:220px;border:1px solid var(--line);border-radius:2px;padding:11px 14px;font-family:var(--serif);font-size:13.5px;}
.no-match .btn{background:var(--forest);color:var(--paper);border-color:var(--forest);}
.no-match .fine{font-family:var(--display);font-size:10.5px;color:var(--steel);margin-top:12px;}
.form-msg{margin-top:14px;padding:12px 16px;border-radius:3px;font-family:var(--mono);font-size:12px;}
.form-msg.ok{background:#E4EAE3;color:var(--forest);}
.form-msg.err{background:#F5E3DD;color:#9C5A34;}

/* ============================================================ */
/* CALENDARIO                                                     */
/* ============================================================ */
.hero-stats{display:flex;gap:0;border-top:1px solid rgba(255,255,255,.2);padding-top:18px;max-width:640px;flex-wrap:wrap;}
.hero-stats div{flex:1;padding-right:16px;border-right:1px solid rgba(255,255,255,.2);min-width:120px;}
.hero-stats div:last-child{border-right:none;}
.hero-stats .num{font-family:var(--display);font-weight:600;font-size:22px;color:var(--brass-soft);}
.hero-stats .lbl{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:#B7C0BA;margin-top:2px;}
.filters-row{display:flex;gap:8px;flex-wrap:wrap;}
.fchip{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.03em;border:1px solid var(--line);border-radius:16px;padding:7px 14px;color:var(--ink-soft);}
.fchip.on{background:var(--forest);color:var(--paper);border-color:var(--forest);}
.filters-row-sub{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);}
.fchip-sub{font-size:10px;padding:5px 11px;color:var(--steel);}
.fchip-sub.on{background:var(--brass);color:var(--paper);border-color:var(--brass);}
.month-label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--brass);margin:24px 0 14px;padding-top:6px;}
.month-label:first-child{padding-top:0;margin-top:0;}
.event-row{display:flex;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);align-items:baseline;flex-wrap:wrap;}
.event-row .date{font-family:var(--mono);font-size:12px;color:var(--brass);min-width:110px;}
.event-row h4{font-family:var(--display);font-weight:600;font-size:16px;color:var(--forest-deep);flex:1;min-width:180px;}
.event-row .loc{font-size:12.5px;color:var(--steel);}
.event-row .disc{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--forest);border:1px solid var(--line);padding:3px 8px;border-radius:10px;}
.event-row .src{font-family:var(--mono);font-size:10px;color:var(--steel);}

/* ============================================================ */
/* LEGAL SEARCH                                                   */
/* ============================================================ */
.search-hero{padding:52px 0 46px;}
.search-hero h1{font-family:var(--display);font-weight:600;font-size:34px;letter-spacing:-.01em;margin:14px 0 10px;}
.search-hero p{color:#C7CFC9;font-size:14.5px;max-width:56ch;margin-bottom:26px;}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;}
.filters span{font-family:var(--mono);font-size:10.5px;letter-spacing:.03em;text-transform:uppercase;border:1px solid #3E5347;color:#C7CFC9;padding:5px 11px;border-radius:12px;}
.filters span.active{background:var(--brass-soft);color:var(--forest-deep);border-color:var(--brass-soft);}
.result{border-bottom:1px solid var(--line);padding:26px 0;}
.result:first-child{padding-top:0;}
.result-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:8px;}
.result h3{font-family:var(--display);font-weight:600;font-size:19px;color:var(--forest-deep);}
.badge{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;padding:4px 9px;border-radius:10px;white-space:nowrap;flex:none;}
.badge.vigente{background:#E4EAE3;color:var(--forest);}
.badge.superata{background:#EFE3DD;color:#9C5A34;}
.result p{font-size:14px;color:var(--ink-soft);margin-bottom:12px;max-width:74ch;}
.result-meta{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:10px;}
.result-meta div span{display:block;}
.result-meta .k{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--steel);}
.result-meta .v{font-size:12.5px;color:var(--ink);margin-top:2px;}
.verified{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;color:var(--forest);}
.verified::before{content:'●';color:#4B8A5E;font-size:8px;}

/* ============================================================ */
/* LEGAL ALERT / CENTRO AGGIORNAMENTI                             */
/* ============================================================ */
.panel-box{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:34px;margin-bottom:44px;}
.panel-box h2{font-family:var(--display);font-weight:600;font-size:24px;color:var(--forest-deep);margin-bottom:8px;letter-spacing:-.01em;}
.panel-box p.intro{font-size:14px;color:var(--ink-soft);max-width:60ch;margin-bottom:26px;}

/* Tiro di Precisione — strumenti in card con intestazione, sezione finale a peso proprio */
.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px;}
.tool-card{background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;box-shadow:0 2px 12px -4px rgba(31,44,37,.08);}
.tool-head{background:var(--forest-deep);color:var(--paper);padding:18px 24px;}
.tool-head .n{font-family:var(--display);font-weight:700;font-size:12px;color:var(--brass-soft);text-transform:uppercase;letter-spacing:.05em;}
.tool-head h2{font-family:var(--display);font-weight:600;font-size:20px;margin-top:4px;color:var(--paper);}
.tool-body{padding:24px;}
.tool-body p.intro{font-size:13.5px;color:var(--ink-soft);margin-bottom:18px;max-width:none;}
@media(max-width:760px){.tool-grid{grid-template-columns:1fr;}}

.related-panel{background:var(--forest-deep);color:var(--paper);border-radius:4px;padding:34px 36px;}
.related-panel .eyebrow{color:var(--brass-soft);margin-bottom:14px;}
.related-panel .eyebrow::before{background:var(--brass-soft);}
.related-panel h3{font-family:var(--display);font-weight:600;font-size:20px;margin-bottom:16px;color:var(--paper);}
.related-panel ul{list-style:none;display:flex;flex-direction:column;gap:11px;margin-bottom:22px;}
.related-panel li{display:flex;gap:10px;font-size:13.5px;color:#DCE2DC;}
.related-panel li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--brass-soft);margin-top:6px;flex:none;}
.related-links{display:flex;gap:12px;flex-wrap:wrap;}
.related-links a{font-family:var(--display);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:var(--forest-deep);background:var(--brass-soft);padding:9px 18px;border-radius:18px;}
.interest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:26px;}
.chip-check{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:20px;padding:9px 14px;font-size:13px;color:var(--ink-soft);cursor:pointer;}
.chip-check input{accent-color:var(--forest);}
.chip-check:has(input:checked){border-color:var(--forest);background:#E9EEE8;color:var(--forest);font-weight:500;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.field label{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--steel);margin-bottom:6px;}
.field input,.field select{width:100%;border:1px solid var(--line);background:var(--paper-raised);border-radius:2px;padding:10px 12px;font-family:var(--serif);font-size:13.5px;color:var(--ink);}
.consent-block{background:var(--paper-raised);border:1px solid var(--line);border-radius:2px;padding:16px 18px;margin:20px 0;}
.consent-line{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--ink-soft);}
.consent-line + .consent-line{margin-top:10px;}
.consent-line input{margin-top:2px;accent-color:var(--forest);}
.consent-line b{color:var(--ink);}
.fineprint{font-family:var(--mono);font-size:10px;color:var(--steel);margin-top:12px;line-height:1.6;}

/* Risorse Gratuite — card con foto reale per risorsa */
.res-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.res-card{background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;box-shadow:0 2px 12px -4px rgba(31,44,37,.08);}
.res-photo{aspect-ratio:16/9;position:relative;overflow:hidden;}
.res-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.res-cat{position:absolute;top:12px;left:12px;font-family:var(--display);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.04em;background:var(--forest-deep);color:var(--paper);padding:4px 10px;border-radius:10px;}
.res-body{padding:22px 24px 26px;}
.res-body h2{font-family:var(--display);font-weight:600;font-size:19px;color:var(--forest-deep);margin-bottom:10px;}
.res-body p.intro{font-size:13.5px;color:var(--ink-soft);margin-bottom:16px;max-width:none;}
.res-warn{background:#FBF3E7;border:1px solid #E8D3A8;border-radius:3px;padding:10px 14px;font-size:12px;color:#8A6015;margin-bottom:18px;}
.res-warn.ok{background:#E9EEE8;border-color:#C7D4CB;color:var(--forest);}
.res-form-row{display:flex;gap:10px;flex-wrap:wrap;}
.res-form-row input{flex:1;min-width:180px;border:1px solid var(--line);background:var(--paper-raised);border-radius:2px;padding:10px 12px;font-family:var(--serif);font-size:13px;}
.res-form-row button{font-family:var(--display);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.02em;background:var(--forest);color:var(--paper);border:none;padding:10px 18px;border-radius:2px;white-space:nowrap;cursor:pointer;}
.res-card .fineprint{font-family:var(--display);}
@media(max-width:760px){.res-grid{grid-template-columns:1fr;}}
.legal-panel{background:var(--forest-deep);color:var(--paper);}
.legal-panel .eyebrow{color:var(--brass-soft);}
.legal-panel .eyebrow::before{background:var(--brass-soft);}
.legal-panel h2{color:var(--paper);}
.legal-panel p.intro{color:#C7CFC9;}
.matter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px;}
.matter-chip{border:1px solid #3E5347;border-radius:18px;padding:9px 12px;font-size:12.5px;color:#C7CFC9;text-align:center;cursor:pointer;}
.matter-chip:has(input:checked){background:var(--brass-soft);color:var(--forest-deep);border-color:var(--brass-soft);font-weight:500;}
.matter-chip input{display:none;}
.territory-row{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap;}
.territory-row label{font-family:var(--mono);font-size:11px;border:1px solid #3E5347;color:#C7CFC9;padding:6px 13px;border-radius:14px;cursor:pointer;}
.territory-row input{display:none;}
.territory-row label:has(input:checked){background:var(--paper);color:var(--forest-deep);border-color:var(--paper);}
.tier-note{display:flex;gap:10px;align-items:flex-start;background:rgba(255,255,255,.06);border:1px solid #3E5347;border-radius:2px;padding:14px 16px;margin-bottom:22px;font-size:12px;color:#C7CFC9;}
.tier-note b{color:var(--brass-soft);}
.legal-panel .btn-solid{background:var(--brass-soft);color:var(--forest-deep);border-color:var(--brass-soft);}
.legal-panel .fineprint{color:#8FA096;}
@media(max-width:760px){ .interest-grid,.matter-grid{grid-template-columns:1fr 1fr;} .field-row{grid-template-columns:1fr;} }

/* ============================================================ */
/* PAGINE PRODOTTO (programma-armi/ottiche/ricariche.php)        */
/* ============================================================ */
.product-hero{padding:52px 0 20px;border-bottom:1px solid var(--line);}
.product-hero .version{font-family:var(--mono);font-size:11px;color:var(--steel);margin-top:14px;}
.product-hero h1{font-family:var(--display);font-weight:600;font-size:36px;letter-spacing:-.01em;margin:12px 0 14px;color:var(--forest-deep);}
.product-hero p.lead{font-size:15.5px;color:var(--ink-soft);max-width:70ch;margin-bottom:20px;}
.screenshot-ph{
  aspect-ratio:16/9;background:var(--paper-raised);border:1px dashed var(--line);border-radius:3px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin:30px 0;
  font-family:var(--mono);font-size:11px;color:var(--steel);text-align:center;
}
.screenshot-ph .icon{font-size:28px;opacity:.5;}
.product-screenshot{width:100%;border-radius:3px;overflow:hidden;margin:30px 0 12px;border:1px solid var(--line);background:var(--paper-raised);}
.product-screenshot img{width:100%;display:block;}
.product-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:30px;}
.product-gallery a{display:block;border-radius:3px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/9;}
.product-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s;}
.product-gallery a:hover img{transform:scale(1.04);}
@media(max-width:700px){ .product-gallery{grid-template-columns:1fr 1fr;} }
.feature-list{list-style:none;display:flex;flex-direction:column;gap:14px;margin:24px 0 36px;}
.feature-list li{display:flex;gap:12px;font-size:14.5px;color:var(--ink-soft);align-items:flex-start;max-width:74ch;}
.feature-list li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--brass);margin-top:8px;flex:none;}
.feature-list li b{color:var(--ink);}
.spec-table{width:100%;border-collapse:collapse;margin:20px 0 36px;font-size:13.5px;}
.spec-table tr{border-bottom:1px solid var(--line);}
.spec-table td{padding:10px 4px;vertical-align:top;}
.spec-table td:first-child{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--steel);width:220px;}
.spec-table td:last-child{color:var(--ink);}
.source-note{font-family:var(--mono);font-size:11px;color:var(--steel);background:var(--paper-raised);border:1px solid var(--line);border-radius:3px;padding:14px 18px;margin-bottom:40px;line-height:1.7;}

/* ============================================================ */
/* DIRITTO DELLE ARMI — guide segnaposto + hub index             */
/* ============================================================ */
.segnaposto-banner{
  display:flex;gap:14px;align-items:flex-start;background:#F7ECE2;border:1px solid #D9A66C;border-radius:3px;
  padding:18px 22px;margin:26px 0 34px;
}
.segnaposto-banner .icon{font-size:20px;line-height:1.3;flex:none;}
.segnaposto-banner h4{font-family:var(--display);font-weight:600;font-size:14.5px;color:#8A5A22;margin-bottom:6px;letter-spacing:.01em;text-transform:uppercase;}
.segnaposto-banner p{font-size:13px;color:#6B4A28;margin:0;max-width:70ch;}

.info-banner{
  display:flex;gap:14px;align-items:flex-start;background:#E4EAE3;border:1px solid #9FB89C;border-radius:3px;
  padding:16px 22px;margin:26px 0 34px;
}
.info-banner .icon{font-size:18px;line-height:1.3;flex:none;}
.info-banner p{font-size:13px;color:#2E4034;margin:0;max-width:74ch;}
.guide-field .v.note{color:#8A5A22;font-style:italic;}
.guide-field .v a{color:var(--forest);text-decoration:underline;}
.guide-status.published{background:#E4EAE3;color:var(--forest);border-color:#9FB89C;}

.guide-fields{border:1px solid var(--line);border-radius:3px;margin:0 0 32px;overflow:hidden;}
.guide-field{display:grid;grid-template-columns:180px 1fr;border-bottom:1px solid var(--line);}
.guide-field:last-child{border-bottom:none;}
.guide-field .k{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--steel);background:var(--paper-raised);padding:12px 16px;}
.guide-field .v{padding:12px 16px;font-size:13.5px;color:var(--ink-soft);}
.guide-field .v.pending{color:#9C5A34;font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;}
@media(max-width:700px){ .guide-field{grid-template-columns:1fr;} .guide-field .k{padding-bottom:4px;} }

.guide-list{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:30px;}
.guide-card{background:var(--paper);padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;}
.guide-card h3{font-family:var(--display);font-weight:600;font-size:16.5px;color:var(--forest-deep);margin-bottom:4px;}
.guide-card .materia{font-family:var(--mono);font-size:10.5px;color:var(--steel);text-transform:uppercase;letter-spacing:.04em;}
.guide-status{
  font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;
  background:#F7ECE2;color:#8A5A22;border:1px solid #D9A66C;padding:4px 10px;border-radius:10px;white-space:nowrap;
}
.guide-card .go{font-family:var(--mono);font-size:11.5px;color:var(--forest);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}

/* Admin — griglia foto armi/ottiche */
.admin-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:20px;}
.admin-photo-item{display:block;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--paper);transition:.15s;}
.admin-photo-item:hover{border-color:var(--forest);}
.admin-photo-thumb{aspect-ratio:4/3;background:var(--paper-raised);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.admin-photo-thumb img{width:100%;height:100%;object-fit:cover;}
.admin-photo-thumb svg{width:70%;height:70%;opacity:.75;}
.admin-photo-label{padding:8px 10px;font-size:11.5px;color:var(--ink-soft);line-height:1.3;}
.admin-photo-preview{aspect-ratio:4/3;max-width:320px;background:var(--paper-raised);border:1px solid var(--line);border-radius:3px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-top:20px;}
.admin-photo-preview img{width:100%;height:100%;object-fit:cover;}
.admin-photo-preview svg{width:70%;height:70%;opacity:.75;}

/* ============================================================ */
/* NEWS                                                          */
/* ============================================================ */
.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px;}
.article-card{background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:.15s;box-shadow:0 2px 12px -4px rgba(31,44,37,.08);}
.article-card:hover{border-color:var(--forest);box-shadow:0 8px 24px -8px rgba(46,64,52,.2);}
.article-photo{aspect-ratio:16/10;overflow:hidden;position:relative;}
.article-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.article-cat{position:absolute;top:12px;left:12px;font-family:var(--display);font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.04em;background:var(--forest-deep);color:var(--paper);padding:4px 10px;border-radius:10px;}
.article-body{padding:20px 22px 24px;}
.article-body .date{font-family:var(--display);font-weight:500;font-size:11.5px;color:var(--steel);margin-bottom:8px;}
.article-body h3{font-family:var(--display);font-weight:600;font-size:18px;color:var(--forest-deep);margin-bottom:10px;line-height:1.25;}
.article-body h3 a{color:inherit;}
.article-body h3 a:hover{color:var(--forest);}
.article-body p{font-size:13px;color:var(--ink-soft);margin-bottom:16px;}
.article-body .go{font-family:var(--display);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.02em;color:var(--forest);}
@media(max-width:900px){.article-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.article-grid{grid-template-columns:1fr;}}
.article-meta{display:flex;gap:12px;align-items:center;margin:10px 0 26px;}
.article-body p{font-size:15px;color:var(--ink-soft);line-height:1.7;max-width:70ch;margin-bottom:18px;}

/* ============================================================ */
/* AUTENTICAZIONE (accedi/registrati/area-riservata)             */
/* ============================================================ */
.auth-wrap{max-width:440px;margin:0 auto;padding:70px 24px 90px;}
.auth-card{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:36px 32px;}
.auth-card h1{font-family:var(--display);font-weight:600;font-size:26px;color:var(--forest-deep);margin:10px 0 8px;letter-spacing:-.01em;}
.auth-card p.sub{font-size:13.5px;color:var(--ink-soft);margin-bottom:26px;}
.auth-card .field{margin-bottom:16px;}
.auth-card .field label{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--steel);margin-bottom:6px;}
.auth-card .field input{width:100%;border:1px solid var(--line);background:var(--paper-raised);border-radius:2px;padding:11px 13px;font-family:var(--serif);font-size:14px;color:var(--ink);}
.auth-card .btn{width:100%;justify-content:center;padding:12px;margin-top:6px;}
.auth-switch{text-align:center;font-size:12.5px;color:var(--steel);margin-top:20px;}
.auth-switch a{color:var(--forest);text-decoration:underline;}

.account-panel{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:30px 32px;margin-bottom:26px;}
.account-panel h2{font-family:var(--display);font-weight:600;font-size:19px;color:var(--forest-deep);margin-bottom:16px;}
.account-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;margin-bottom:8px;}
.account-fields div span{display:block;}
.account-fields .k{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--steel);}
.account-fields .v{font-size:14px;color:var(--ink);margin-top:3px;}
.empty-placeholder{border:1px dashed var(--line);border-radius:3px;padding:26px;text-align:center;color:var(--steel);font-family:var(--mono);font-size:12px;background:var(--paper-raised);}
