/* PHACTUS — base del design: variabili, reset, tipografia di base.
   Lo stile dei blocchi (colori, testi, spazi, bordi…) è impostato dalle opzioni dei widget di Elementor
   e dagli stili globali del Kit; qui restano solo le basi comuni.
   Sviluppato da Beezy Consulting — https://beezyconsulting.it */
/* ============================================================
   PHACTUS — Bio-industrial editorial design system
   ============================================================ */

:root{
  /* Brand */
  --forest:      #144623;
  --terracotta:  #DE844F;
  /* Derivati */
  --forest-700:  #1E5A30;
  --forest-500:  #3C7A4A;
  --leaf-300:    #BFD8B6;
  --terra-600:   #C56A38;
  --terra-200:   #F3D4BE;
  /* Neutri caldi */
  --paper:       #FBF7EF;
  --paper-2:     #F4ECDD;
  --card:        #FFFFFF;
  --line:        #E6DCC9;
  --ink:         #122B1B;
  --muted:       #6B7065;

  --shadow:      0 24px 48px -32px rgba(18,43,27,.30);
  --shadow-lg:   0 40px 80px -40px rgba(18,43,27,.40);
  --container:   1240px;
  --radius-card: 20px;
  --radius-btn:  10px;
  --radius-input:12px;
  --radius-img:  16px;

  --ff-display: "Fraunces", Georgia, serif;
  --ff-body:    "Hanken Grotesk", system-ui, sans-serif;
  --ff-mono:    "IBM Plex Mono", ui-monospace, monospace;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--ff-body);
  font-size:17px;
  line-height:1.65;
  color:var(--ink);
  background-color:var(--paper);
  /* warm noise grain */
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
::selection{background:var(--terra-200);color:var(--forest)}

/* ---------- Typography ---------- */
h1,h2,h3,h4{
  font-family:var(--ff-display);
  font-weight:500;
  color:var(--forest);
  margin:0;
  font-optical-sizing:auto;
}
h1{font-size:clamp(40px,6vw,84px);line-height:1.02;letter-spacing:-.02em;text-wrap:balance}
h2{font-size:clamp(30px,4vw,52px);line-height:1.06;letter-spacing:-.01em;text-wrap:balance}
h3{font-size:clamp(22px,2.4vw,30px);line-height:1.12}
h4{font-size:20px;line-height:1.2}
p{margin:0 0 1em}
.lead{font-size:clamp(18px,1.8vw,22px);line-height:1.55;color:var(--muted);font-weight:400}
.fr-italic{font-style:italic}

.eyebrow{
  font-family:var(--ff-mono);
  font-size:12px;font-weight:500;
  text-transform:uppercase;letter-spacing:.14em;
  color:var(--terracotta);
  display:inline-flex;align-items:center;gap:.6em;
  margin:0;
}
.eyebrow::before{
  content:"";width:18px;height:1.5px;background:var(--terracotta);display:inline-block;
}
.eyebrow.on-dark{color:var(--terra-200)}
.eyebrow.on-dark::before{background:var(--terra-200)}
.mono{font-family:var(--ff-mono);letter-spacing:.04em}
.caption{font-size:13px;font-weight:500;color:var(--muted)}

/* variabili derivate dal Kit globale (colori) */
:root{--forest-700:#1f6e37;--forest-500:#339751;--leaf-300:#b6d8c0;--terra-600:#cf6121;--terra-200:#eed3c4;--ink:#0f2d18;--accent:#e7a14c;--accent-600:#de8418;--accent-200:#eedbc4}
.text-muted{color:var(--muted)}
body.phactus{background-color:var(--paper);color:var(--ink);font-family:var(--ff-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
/* neutralizza i valori predefiniti di Elementor / Hello */
body.phactus :where(.elementor-widget:not(:last-child)){margin-block-end:0}
body.phactus .e-con{--gap:0px;--row-gap:0px;--column-gap:0px;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px}
body.phactus .elementor-widget-container{min-width:0}
body.phactus .site-main,body.phactus #content,body.phactus .page-content{margin:0;padding:0;max-width:none}
body.phactus .page-header{display:none}
body.phactus .elementor-widget-heading .elementor-heading-title{margin:0;font-optical-sizing:auto}
body.phactus .elementor-widget-heading .fr-italic,body.phactus .elementor-widget-heading em{font-style:italic}
body.phactus .elementor-widget-text-editor p:last-child{margin-bottom:0}
body.phactus .elementor-widget-text-editor a{color:inherit}
body.phactus .elementor-widget-heading .elementor-heading-title a{color:inherit}
body.phactus .elementor-widget-heading p.elementor-heading-title,body.phactus .elementor-widget-heading span.elementor-heading-title,body.phactus .elementor-widget-heading div.elementor-heading-title{text-transform:none}
/* le colonne dei Loop Grid non crescono oltre lo spazio disponibile; le schede riempiono l'altezza */
body.phactus .elementor-loop-container{align-items:stretch}
body.phactus .e-loop-item{height:100%;min-width:0}
body.phactus .e-loop-item>.e-con{height:100%}
/* senza immagine in evidenza Elementor mostra un segnaposto grigio: lo nascondiamo */
body.phactus img[src*="elementor/assets/images/placeholder"]{display:none}

/* ---------- Utility Beezy (classi «phx-…» da inserire nel campo «Classi CSS» di un widget) ----------
   Piccoli effetti che il pannello di Elementor non può esprimere. Così non si ripetono su ogni widget. */
/* etichetta di sezione: trattino prima del testo */
body.phactus .phx-eyebrow{display:flex;align-items:center;gap:.6em}
body.phactus .phx-eyebrow::before{content:"";width:18px;height:1.5px;background:currentColor;flex:none}
body.phactus .phx-eyebrow p{margin:0}
/* link con sottolineatura che si disegna al passaggio del mouse (anche quando si passa sulla card) */
body.phactus .phx-link .elementor-button{background-image:linear-gradient(#DE844F,#DE844F);background-size:0% 2px;background-position:0 100%;background-repeat:no-repeat;padding-bottom:2px;transition:background-size .3s ease}
body.phactus .phx-link .elementor-button:hover,body.phactus .newscard:hover .phx-link .elementor-button{background-size:100% 2px}
/* spinge l'elemento in fondo alla card */
body.phactus .phx-push{margin-top:auto}
/* footer: testo in grassetto e link che diventano bianchi */
body.phactus .phx-footer strong{font-weight:600}
body.phactus .phx-footer .phx-hover-white a:hover,body.phactus .phx-footer .elementor-nav-menu a:hover,body.phactus .phx-footer .elementor-nav-menu--main .elementor-item.elementor-item-active:hover{color:#fff}
/* modulo newsletter: campo e pulsante sulla stessa riga (a capo sotto i 480px) */
body.phactus .phx-inline-form .elementor-form-fields-wrapper{flex-wrap:nowrap;align-items:stretch;margin:0;gap:10px}
body.phactus .phx-inline-form .elementor-field-group{padding:0}
body.phactus .phx-inline-form .elementor-field-type-email{flex:1;min-width:0;width:auto}
body.phactus .phx-inline-form .elementor-field-type-submit{width:auto;flex:none}
/* reCAPTCHA v3 (invisibile): il suo gruppo non deve occupare spazio nella riga campo+pulsante (il badge è fisso nell'angolo della pagina) */
body.phactus .phx-inline-form .elementor-field-type-recaptcha_v3{position:absolute;flex:none;width:0;height:0;min-width:0;margin:0;padding:0;overflow:visible}
body.phactus .phx-inline-form .elementor-button{height:100%}
body.phactus .phx-inline-form .elementor-field-textual{padding:13px 16px;min-height:0;line-height:1.4;box-shadow:none}
body.phactus .phx-inline-form .elementor-field-textual:focus{outline:none;border-color:#339751;box-shadow:0 0 0 4px rgba(60,122,74,.16)}
body.phactus .phx-inline-form .elementor-field-textual::placeholder{color:#a8a89c}
@media(max-width:480px){body.phactus .phx-inline-form .elementor-form-fields-wrapper{flex-wrap:wrap}body.phactus .phx-inline-form .elementor-field-type-submit{width:100%}}
body.phactus .phx-footer-form{max-width:380px!important}
body.phactus .phx-footer-form .elementor-form-fields-wrapper{gap:20px}
