/* Azienda Agricola Nuovo Sole — shared styles */

:root{
  --green-deep:#3b5c2c;
  --green:#5c8a3f;
  --green-soft:#7fae5f;
  --gold:#d9a52a;
  --gold-soft:#f3d15a;
  --terracotta:#c1653b;
  --terracotta-deep:#a3492a;
  --cream:#faf7ef;
  --cream-2:#f2ecdb;
  --sky:#bfe0f2;
  --ink:#2b3327;
  --ink-soft:#5a6350;
  --line:rgba(43,51,39,.12);
  --radius:16px;
  --radius-lg:26px;
  --shadow:0 12px 30px rgba(43,51,39,.12);
  --shadow-soft:0 6px 18px rgba(43,51,39,.08);
  --maxw:1180px;
  --font-display:'Fraunces','Georgia',serif;
  --font-body:'Work Sans','Segoe UI',Arial,sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  min-height:100%;
  position:relative;
}
/* fixed peaceful countryside backdrop: green field, blue sky, sun — stays put while the page scrolls */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  background:url('../images/bg-campo.svg') center top / cover no-repeat, var(--sky);
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .4em;line-height:1.15;color:var(--green-deep);}
p{line-height:1.7;margin:0 0 1em;color:var(--ink-soft);}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.hidden{display:none !important;}

/* soft, non-intrusive agricultural texture that lets the fixed backdrop breathe through */
.page-shell{
  position:relative;
  z-index:0;
  background:
    radial-gradient(circle at 6px 6px, rgba(92,138,63,.10) 1.4px, transparent 1.6px) 0 0/34px 34px,
    linear-gradient(rgba(250,247,239,.88), rgba(250,247,239,.93) 40%, rgba(250,247,239,.95));
}
section{position:relative;}

/* ---------- Header ---------- */
header.site{
  position:sticky;top:0;z-index:60;
  background:rgba(250,247,239,.9);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 24px;}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{width:44px;height:44px;}
.brand .name{font-family:var(--font-display);font-weight:600;font-size:19px;color:var(--green-deep);line-height:1.15;}
.brand .sub{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);}
nav.main-nav{display:flex;align-items:center;gap:26px;}
nav.main-nav a{font-size:14.5px;font-weight:600;color:var(--ink);padding:6px 2px;border-bottom:2px solid transparent;transition:border-color .15s,color .15s;}
nav.main-nav a:hover,nav.main-nav a.active{color:var(--green-deep);border-color:var(--gold);}
.header-right{display:flex;align-items:center;gap:14px;}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-weight:700;font-size:14px;
  background:var(--terracotta);color:#fff;
  padding:11px 20px;border-radius:999px;border:none;cursor:pointer;
  box-shadow:var(--shadow-soft);transition:transform .15s,background .15s;
}
.btn:hover{background:var(--terracotta-deep);transform:translateY(-1px);}
.btn.btn-ghost{background:transparent;color:var(--green-deep);border:1.5px solid var(--green-deep);box-shadow:none;}
.btn.btn-ghost:hover{background:var(--green-deep);color:#fff;}
.btn.btn-sm{padding:8px 16px;font-size:13px;}

.lang-switch{display:flex;gap:4px;background:var(--cream-2);padding:4px;border-radius:999px;}
.lang-switch button{
  border:none;background:transparent;padding:6px 11px;border-radius:999px;
  font-size:12.5px;font-weight:700;letter-spacing:.02em;color:var(--ink-soft);cursor:pointer;
}
.lang-switch button.active{background:var(--green-deep);color:#fff;}

.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;}
.nav-toggle span{display:block;width:24px;height:2.5px;background:var(--green-deep);margin:5px 0;border-radius:2px;}

/* ---------- Hero ---------- */
.hero{padding:76px 0 60px;text-align:left;}
.hero .eyebrow{display:inline-block;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--terracotta);font-weight:700;margin-bottom:14px;}
.hero h1{font-size:clamp(34px,5.4vw,60px);max-width:16em;}
.hero .lead{font-size:19px;max-width:640px;color:var(--ink-soft);}
.hero .cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px;}
.hero-stats{display:flex;gap:36px;margin-top:40px;flex-wrap:wrap;}
.hero-stats .stat b{display:block;font-family:var(--font-display);font-size:28px;color:var(--green-deep);}
.hero-stats .stat span{font-size:12.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;}

.page-hero{padding:56px 0 40px;}
.page-hero .eyebrow{color:var(--terracotta);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;}
.page-hero h1{font-size:clamp(30px,4.6vw,46px);}
.page-hero p{max-width:680px;font-size:17px;}

/* ---------- Section boxes / grid (2x2 symmetric) ---------- */
.sec-head{max-width:640px;margin-bottom:36px;}
.sec-head .eyebrow{color:var(--terracotta);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;display:block;margin-bottom:8px;}
.sec-head h2{font-size:clamp(26px,3.6vw,38px);}

.box-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.box-card{
  position:relative;display:block;border-radius:var(--radius-lg);overflow:hidden;
  aspect-ratio:4/3;box-shadow:var(--shadow);
  isolation:isolate;
}
.box-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.box-card::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(24,32,18,.06) 0%, rgba(24,32,18,.18) 42%, rgba(20,26,15,.82) 100%);
}
.box-card:hover img{transform:scale(1.06);}
.box-content{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding:28px;}
.box-content .num{position:absolute;top:22px;left:26px;font-family:var(--font-display);font-size:14px;color:#fff;opacity:.85;letter-spacing:.08em;}
.box-content h3{color:#fff;font-size:24px;margin-bottom:6px;}
.box-content p{color:rgba(255,255,255,.86);font-size:14.5px;margin-bottom:12px;max-width:34ch;}
.box-content .go{color:#fff;font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;gap:6px;}
.box-content .go svg{transition:transform .2s;}
.box-card:hover .go svg{transform:translateX(4px);}

/* ---------- Cards / generic ---------- */
.card-plain{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-soft);}

/* ---------- Product cards ---------- */
.products-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;}
.product-card{
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--shadow-soft);transition:box-shadow .2s,transform .2s;
}
.product-card:hover{box-shadow:var(--shadow);transform:translateY(-3px);}
.product-media{aspect-ratio:9/7;overflow:hidden;background:var(--cream-2);}
.product-media img{width:100%;height:100%;object-fit:cover;}
.product-body{padding:22px 24px 26px;}
.product-body .tag-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.tag{font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:var(--cream-2);color:var(--green-deep);padding:5px 10px;border-radius:999px;}
.tag.tag-alt{background:#fbe9df;color:var(--terracotta-deep);}
.product-body h3{font-size:21px;margin-bottom:6px;}
.product-body p{font-size:14.5px;margin-bottom:14px;}
.product-body .meta{font-size:13px;color:var(--ink-soft);display:flex;justify-content:space-between;border-top:1px dashed var(--line);padding-top:12px;}

/* ---------- Timeline (storia) ---------- */
.timeline{position:relative;max-width:900px;margin:0 auto;padding:20px 0;}
.timeline::before{content:"";position:absolute;left:130px;top:0;bottom:0;width:2px;background:linear-gradient(var(--gold),var(--green));}
.tl-item{position:relative;padding-left:170px;margin-bottom:44px;}
.tl-item .year{
  position:absolute;left:0;top:-2px;width:110px;text-align:right;
  font-family:var(--font-display);font-size:25px;color:var(--terracotta);font-weight:600;
}
.tl-item::before{
  content:"";position:absolute;left:124px;top:6px;width:16px;height:16px;border-radius:50%;
  background:var(--gold);border:3px solid var(--cream);box-shadow:0 0 0 2px var(--green);
}
.tl-item h3{font-size:19px;margin-bottom:6px;}
.tl-item p{font-size:15px;margin:0;}

@media(max-width:640px){
  .timeline::before{left:54px;}
  .tl-item{padding-left:78px;}
  .tl-item .year{position:static;display:block;width:auto;text-align:left;margin-bottom:6px;}
  .tl-item::before{left:48px;top:-24px;}
}

/* ---------- Forms ---------- */
.form{max-width:640px;}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form label{display:block;font-size:13px;font-weight:700;color:var(--green-deep);margin-bottom:6px;}
.form input,.form select,.form textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;
  font-family:var(--font-body);font-size:15px;background:#fff;color:var(--ink);
}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--green-soft);}
.form textarea{min-height:120px;resize:vertical;}
.form > div{margin-bottom:16px;}
.form .field-err{color:var(--terracotta-deep);font-size:12.5px;display:block;margin-top:4px;}
.form input.invalid,.form select.invalid,.form textarea.invalid{border-color:var(--terracotta);}
#form-status{font-size:14px;margin-top:10px;}

/* ---------- Footer ---------- */
footer.site{margin-top:60px;background:var(--green-deep);color:#e7ecd9;padding:50px 0 26px;}
footer.site a{color:#e7ecd9;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;}
.foot-grid h4{color:#fff;font-size:15px;margin-bottom:14px;}
.foot-grid p,.foot-grid a{font-size:13.5px;color:#cfdcc0;display:block;margin-bottom:8px;}
.foot-brand{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.foot-brand img{width:38px;height:38px;}
.foot-brand span{font-family:var(--font-display);font-size:18px;color:#fff;}
.foot-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:34px;padding-top:20px;font-size:12.5px;color:#b7c7a4;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

/* ---------- Map / contact page ---------- */
.map-frame{width:100%;height:420px;border:0;border-radius:var(--radius-lg);box-shadow:var(--shadow);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}
.contact-info .row-item{display:flex;gap:14px;margin-bottom:20px;}
.contact-info .row-item .ic{width:42px;height:42px;border-radius:50%;background:var(--cream-2);display:flex;align-items:center;justify-content:center;flex:none;}
.contact-info .row-item h4{margin:0 0 3px;font-size:15px;color:var(--green-deep);}
.contact-info .row-item p{margin:0;font-size:14.5px;}

/* ---------- Shop ---------- */
.shop-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:26px;}
.qty-box{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:999px;overflow:hidden;}
.qty-box button{background:var(--cream-2);border:none;width:34px;height:34px;font-size:16px;cursor:pointer;color:var(--green-deep);font-weight:700;}
.qty-box input{width:44px;border:none;text-align:center;font-weight:700;}
.cart-badge{background:var(--terracotta);color:#fff;border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:700;display:inline-flex;gap:8px;align-items:center;}
.cart-panel{position:fixed;right:20px;bottom:20px;z-index:80;max-width:340px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);padding:18px;}
.cart-panel h4{margin:0 0 10px;font-size:15px;}
.cart-line{display:flex;justify-content:space-between;font-size:13.5px;padding:6px 0;border-bottom:1px dashed var(--line);}
.cart-empty{font-size:13.5px;color:var(--ink-soft);}

/* ---------- Callout / banner ---------- */
.callout{
  background:linear-gradient(135deg,var(--green-deep),var(--green));
  color:#fff;border-radius:var(--radius-lg);padding:44px 40px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.callout h2,.callout p{color:#fff;}
.callout p{color:rgba(255,255,255,.86);margin:0;}

.sun-divider{display:flex;align-items:center;gap:14px;justify-content:center;margin:56px 0;color:var(--gold);}
.sun-divider::before,.sun-divider::after{content:"";flex:1;max-width:120px;height:1px;background:var(--line);}

section.pad{padding:64px 0;}
section.pad-sm{padding:38px 0;}

@media(max-width:900px){
  .box-grid{grid-template-columns:1fr;}
  .products-grid{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .form .row{grid-template-columns:1fr;}
  nav.main-nav{position:fixed;top:73px;left:0;right:0;background:var(--cream);flex-direction:column;align-items:flex-start;padding:18px 24px;border-bottom:1px solid var(--line);display:none;gap:14px;box-shadow:var(--shadow-soft);}
  nav.main-nav.open{display:flex;}
  .nav-toggle{display:block;}
  .header-right .lang-switch{display:none;}
  nav.main-nav .lang-switch-mobile{display:flex;margin-top:6px;}
}
@media(min-width:901px){.lang-switch-mobile{display:none;}}
