/* Hortus Service: riproduzione dell'originale (Helix3 + SP Page Builder), misure rilevate a 1440/1024/768/390 px.
   Contenitore dei contenuti 1140/940/720/100%-30 (righe SPPB), testata su contenitore 1140/960/720/100% con 12 px di margine. */
/* Open Sans statico (istanze statiche ufficiali, latin + latin-ext): sono quelle con cui l'originale è stato catturato; il variabile allarga o stringe i testi.
   Licenza OFL in assets/fonts. */
@font-face { font-family:"open sans"; font-weight:300; font-display:swap; src:url("/assets/fonts/opensans-300.woff2") format("woff2") }
@font-face { font-family:"open sans"; font-weight:400; font-display:swap; src:url("/assets/fonts/opensans-400.woff2") format("woff2") }
@font-face { font-family:"open sans"; font-weight:600; font-display:swap; src:url("/assets/fonts/opensans-600.woff2") format("woff2") }
@font-face { font-family:"open sans"; font-weight:700; font-display:swap; src:url("/assets/fonts/opensans-700.woff2") format("woff2") }
@font-face { font-family:"open sans"; font-weight:800; font-display:swap; src:url("/assets/fonts/opensans-800.woff2") format("woff2") }
:root { --verde:#95a737; --arancio:#f28c00; --scuro:#212529; --font:"open sans",sans-serif; --W:1140px; --forma:100px }
html { scroll-padding-top:0 }
body { font:300 14px/24px var(--font); color:var(--scuro); background:#fff }
h1, h2, h3 { text-transform:none; color:inherit; font-weight:inherit; font-size:inherit; line-height:inherit; margin:0 }
strong { font-weight:700 } .v { color:var(--verde) } .a { color:var(--arancio) } .n { font-weight:900 }
.cont { width:var(--W); max-width:calc(100% - 30px); margin-inline:auto }
.icona { height:1em; width:auto; display:block; margin-inline:auto }

/* testata: contenitore Bootstrap 5 (1140/960/720), colonne 3 + 9 con 12 px di margine */
.testata { position:relative; z-index:20; background:#fff; height:90px; box-shadow:0 3px 3px rgb(0 0 0/.05) }
.testata__in { display:flex; align-items:center; justify-content:space-between; width:var(--Wt, 100%); margin-inline:auto; padding-inline:12px; height:90px; min-height:0; gap:0 }
.logo { flex:0 0 calc((100% + 24px) / 4 - 24px); display:block } .logo img { width:100%; height:auto; display:block }
.menu ul { display:flex; gap:0; flex-wrap:nowrap } .menu li { display:block }
.menu a { display:block; padding:0 15px; font:300 12px/90px var(--font); letter-spacing:1px; text-transform:uppercase; color:#000; text-decoration:none }
.menu a[aria-current], .menu a:hover { color:#0d854d }
.menu-toggle { display:none; border:0; background:none; padding:0; color:#000; font-size:20px; cursor:pointer; margin:0 1.5px 0 0; height:20px }
.menu-toggle .icona { width:17.5px; height:20px }

/* blocchi ricorrenti (addon SPPB): titolo, testo, pulsante; ogni blocco ha 30 px sotto */
.testo-blocco, .pulsante, .foto, .olivo-logo { margin-bottom:30px }
.testo-blocco h3 { font:800 40px/48px var(--font); color:var(--verde); margin-bottom:8px }
.testo-blocco__c { font-size:16px; line-height:24px }
.bottone { display:inline-block; background:var(--arancio); color:#fff; border-radius:10px; text-transform:none; text-decoration:none; font:600 25px/1.25 var(--font); padding:15px 25px }
.bottone--medio { font-size:18px }
.pulsante { text-align:center } .pulsante--sx { text-align:left }
.foto { display:block; max-width:100%; height:auto; margin-inline:auto; border-radius:10px }
.titolo-sezione { font:800 40px/48px var(--font); letter-spacing:1px; color:#fff; text-align:center; margin:0 }
.riga { display:grid; grid-template-columns:1fr 1fr; gap:0 30px; align-items:start } .col--centro { align-self:center }

/* sezioni verdi con i bordi obliqui (forme SPPB bianche) */
.verde { background:rgba(150, 168, 55, .85) }
.servizi, .passi { padding:150px 0 100px; clip-path:polygon(0 var(--forma), 100% 0, 100% calc(100% - var(--forma)), 0 100%) }
.schede { display:grid; gap:30px; margin-top:130px } .schede + .schede { margin-top:50px } .schede:last-child { margin-bottom:50px }
.schede--2 { grid-template-columns:1fr 1fr } .schede--4 { grid-template-columns:repeat(4, 1fr) }
.scheda { background:#fff; border:3px solid var(--arancio); border-radius:10px; padding:20px; display:flex; flex-direction:column; justify-content:center; text-align:center }
.scheda__in { padding-bottom:30px }
.scheda__img { width:50px; height:50px; display:block; margin:0 auto }
.scheda__icona { display:block; height:38px; padding-top:1px; font-size:36px; color:var(--arancio) }
.scheda h3 { font:700 20px/22px var(--font); letter-spacing:1px; color:var(--arancio); margin:8px 0 8px }
.scheda__testo { font:400 15px/20px var(--font) }
.passi .scheda { padding:20px 10px } .passi .scheda:nth-child(3) { justify-content:flex-start }  /* nell'originale la terza colonna non è centrata in verticale */

/* home */
.apertura { position:relative; min-height:900px; padding:50px 0; background:center / cover no-repeat; display:flex; color:#fff }
.apertura__velo { position:absolute; inset:0; background:rgba(0, 0, 0, .25) }
.apertura__in { position:relative; display:flex; flex-direction:column; justify-content:center; text-align:center }
.apertura__testo h3 { font:700 40px/48px var(--font); letter-spacing:1px; color:#fff }
.apertura__testo .testo-blocco__c { font:400 28px/32px var(--font) } .apertura strong { font-weight:400 }
.chisiamo, .olivo-intro { padding:100px 0 }
.olivo-logo { display:block; width:300px; height:auto }
.galleria-home { padding:50px 0 } .galleria-home .titolo-sezione { color:var(--verde); letter-spacing:0; margin-bottom:50px }
.miniature { display:flex; flex-wrap:wrap; justify-content:center; margin:-5px -5px 25px } .miniature li { margin:5px } .miniature img { width:300px; height:300px; display:block }
.dovesiamo { padding-top:200px; clip-path:polygon(0 0, 100% var(--forma), 100% 100%, 0 100%) }
.dovesiamo .testo-blocco, .sez-contatti .testo-blocco { text-align:center }
.dovesiamo .testo-blocco h3 { color:#fff; letter-spacing:1px } .dovesiamo .testo-blocco__c { font-size:18px; color:#fff }
.mappa-g { display:block; width:100%; height:600px; border:0; margin-bottom:38px }
.dovesiamo-coda { height:173px; clip-path:polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - var(--forma))) }
.sez-contatti { padding:50px 0 }
.sez-contatti .testo-blocco h3 { letter-spacing:1px } .sez-contatti .testo-blocco__c { font-size:22px }
.recapiti { display:grid; grid-template-columns:repeat(3, 1fr); gap:0 30px }
.recapito { text-align:center; margin-bottom:30px; color:#4a4a4a }
.recapito__icona { display:block; width:max-content; margin-inline:auto; color:var(--arancio); font-size:50px; height:50px; text-decoration:none }
.recapito h3 { font:400 20px/22px var(--font); margin-top:20px }
.recapito--luogo .recapito__icona, .recapito--fb .recapito__icona { font-size:60px; height:60px } .recapito--fb h3 { margin-top:30px }

/* hortus olivo */
.olivo-video { position:relative; height:1000px; overflow:hidden }
.olivo-video__yt { position:absolute; inset:0; width:100%; height:100%; border:0; pointer-events:none }
.olivo-testo, .olivo-vantaggi { padding:100px 0 }
.olivo-vantaggi .testo-blocco h3 { font-weight:700 }
.olivo-contatti { padding-bottom:100px }
.riquadro { background:#284434; border:3px solid #284434; border-radius:50px; padding:50px 0; color:#fff; text-align:center }
.riquadro .testo-blocco { margin-bottom:50px }
.riquadro .testo-blocco h3 { font:800 35px/42px var(--font); letter-spacing:1px; color:#fff; margin-bottom:20px } .riquadro .testo-blocco__c { font-size:22px }
.riquadro .recapito { color:#fff } .riquadro .recapito__icona { font-size:50px; height:50px }

/* galleria */
.galleria-titolo { padding-top:70px } .galleria-titolo h3 { font:800 50px/60px var(--font); letter-spacing:1px; color:var(--verde); text-align:center; margin-bottom:58px }
.galleria-foto { padding-bottom:50px }
.colonne { display:grid; grid-template-columns:repeat(3, 1fr); gap:0 30px; align-items:start } .colonne img { display:block; width:100%; height:auto; margin-bottom:30px }

/* piè */
.pie { background:var(--verde); color:#fff; padding:20px 0; text-align:center; font:300 14px/24px var(--font) }
.pie__in { width:var(--Wt, 100%); margin-inline:auto; padding-inline:12px; display:block }
.pie a { color:rgba(255, 255, 255, .9); text-decoration:none }

@media (min-width:768px) { :root { --Wt:720px } } @media (min-width:992px) { :root { --Wt:960px } } @media (min-width:1200px) { :root { --Wt:1140px } }
@media (width < 1200px) { :root { --W:940px } }
@media (width < 992px) {
  :root { --W:720px }
  .menu-toggle { display:block } .menu { display:none; position:absolute; inset-inline:0; top:100%; background:#fff; padding:12px; box-shadow:0 8px 12px rgb(0 0 0/.1) } .menu.aperto { display:block } .menu ul { flex-direction:column } .menu a { line-height:44px }
  .logo { flex-basis:calc((100% + 24px) * 2 / 3 - 24px) } .testata__in { align-items:flex-start } .logo { margin-top:var(--logo-y, 0) } .menu-toggle { margin-top:33.5px }
  .riga, .schede--2, .schede--4, .recapiti, .colonne { grid-template-columns:1fr }
  .schede { gap:0 }
}
@media (width < 768px) {
  :root { --W:100%; --forma:50px; --logo-y:11px }
  .apertura { min-height:700px } .apertura__testo h3 { font-size:35px; line-height:42px } .apertura__testo .testo-blocco__c { font-size:20px; line-height:25px }
  .servizi, .passi { padding:140px 0 90px } .schede { gap:50px; margin-top:80px } .schede + .schede { margin-top:50px } .passi .schede:last-child { margin-bottom:0 } .dovesiamo { padding-top:90px } .dovesiamo-coda { height:80px }
  .olivo-video { height:500px } .olivo-testo, .olivo-vantaggi { padding:50px 0 }
  .riquadro .testo-blocco h3 { font-size:25px; line-height:35px } .riquadro .testo-blocco__c { font-size:18px; line-height:22px }
}

/* Banner cookie (PCRT Cookie Consent), riquadri dei contenuti bloccati e pagine delle policy */
html:root { --pcc-accent:#67751a; --pcc-font:var(--font) }   /* html:root batte il :root di consenso.css, caricato dopo */
iframe[hidden] { display:none }
.olivo-video .pcc-ph { position:absolute; inset:0; margin:0; border:0; border-radius:0; min-height:0 }
.dovesiamo .pcc-ph { margin-bottom:38px }
.pg-testo { padding:70px 0 60px; font:400 16px/26px var(--font); color:var(--scuro) }
.pg-testo .cont { max-width:min(var(--W), calc(100% - 30px)) }
.pg-testo h1 { font:800 40px/48px var(--font); color:var(--verde); margin-bottom:8px }
.pg-testo h2 { font:700 26px/34px var(--font); color:var(--verde); margin:36px 0 10px }
.pg-testo h3 { font:700 19px/26px var(--font); margin:24px 0 8px }
.pg-testo p, .pg-testo ul, .pg-testo table { margin-bottom:14px }
.pg-testo ul { list-style:disc; padding-left:24px }
.pg-testo a { color:#67751a; text-decoration:underline }
.pg-agg { color:#555; font-size:14px }
.pg-testo table { border-collapse:collapse; width:100%; font-size:14px; line-height:20px }
.pg-testo th, .pg-testo td { border:1px solid #d6dae0; padding:6px 10px; text-align:left; vertical-align:top }
.pg-testo thead th { background:#f2f4f7 }
@media (width < 768px) { .pg-testo { padding:40px 0 40px } .pg-testo h1 { font-size:32px; line-height:40px } .pg-testo h2 { font-size:22px; line-height:30px } .pg-testo table { display:block; overflow-x:auto } }
