:root{
  /* Light theme — warm neutrals (no blue) */
  --bg: #fbf7f2;
  --bg-2: #f3ece3;
  --surface: #ffffff;
  --ink: #2b211a;
  --muted: rgba(43,33,26,0.72);
  --accent: #9a4d76;    /* berry */
  --accent-2: #4f7a5a;  /* sage */
  --accent-3: #d7a43a;  /* amber */
  --border: rgba(43,33,26,0.14);
  --shadow: 0 12px 32px rgba(27,20,16,0.12);
  --radius: 18px;
  --max: 1180px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size:16px;
  line-height:1.65;
  color: var(--ink);
  background:
    radial-gradient(1100px 520px at 10% -10%, rgba(154,77,118,0.14), transparent 55%),
    radial-gradient(900px 520px at 95% 20%, rgba(79,122,90,0.12), transparent 55%),
    radial-gradient(760px 460px at 60% 110%, rgba(215,164,58,0.12), transparent 60%),
    linear-gradient(180deg, var(--bg), var(--bg-2));
}

a{ color: inherit; }
a:hover{ color: inherit; text-decoration: none; }

.container-max{
  width:min(var(--max), calc(100% - 40px));
  margin-inline:auto;
}

.shadow-soft{ box-shadow: var(--shadow); }
.rounded-xxl{ border-radius: var(--radius); }

.navbar{
  backdrop-filter: blur(10px);
  background: rgba(251,247,242,0.78) !important;
  border-bottom: 1px solid var(--border);
}
.brand-mark{
  width:42px; height:42px;
  border-radius:16px;
  background: linear-gradient(135deg, rgba(154,77,118,1), rgba(215,164,58,1));
  border: 1px solid rgba(43,33,26,0.12);
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow);
}
.brand-mark i{ color:#2b211a; }

.btn-primary{
  background: rgba(154,77,118,0.92) !important;
  border-color: rgba(154,77,118,0.92) !important;
}
.btn-primary:hover{ filter: brightness(0.96); }
.btn-outline-primary{
  color: rgba(154,77,118,1) !important;
  border-color: rgba(154,77,118,0.55) !important;
}
.btn-outline-primary:hover{
  background: rgba(154,77,118,0.10) !important;
}

.badge-soft{
  border:1px solid var(--border);
  background: rgba(255,255,255,0.65);
  color: var(--muted);
}

.section{
  padding: 76px 0;
  position: relative;
}
.section-tight{ padding: 48px 0; }

.panel{
  background: rgba(255,255,255,0.78);
  border:1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.section-image::before{
  content:"";
  position:absolute; inset:0;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  opacity:0.22;
  filter: saturate(1.02) contrast(1.02);
  pointer-events:none;
}
.section-image::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgb(251 247 242 / 23%), rgb(251 247 242 / 0%));
  pointer-events:none;
}
.section-image .container-max{ position:relative; z-index:1; }

#hero.section-image::before{ background-image:url(../"images/hero-italy.jpg"); }
#seasons.section-image::before{ background-image:url("../images/italy-coast.jpg"); }
#routes.section-image::before{ background-image:url("../images/tuscany-vineyards.jpg"); }
#reviews.section-image::before{ background-image:url("../images/venice-evening.jpg"); }
#contact.section-image::before{ background-image:url("../images/milan-street.jpg"); }
#signals.section-image::before{ background-image:url("../images/italy-coast.jpg"); }

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom: 18px;
}
.section-head h2{ margin:0; font-weight:800; letter-spacing:0.2px; }
.section-head p{ margin:0; color: var(--muted); max-width: 74ch; }

.hero-title{
  font-size: clamp(32px, 4.2vw, 56px);
  line-height: 1.06;
  font-weight: 900;
  letter-spacing: -0.4px;
}
.lead-muted{ color: var(--muted); }

.hero-center{ text-align:center; }
.hero-kpis{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-top: 18px;
}
.kpi{
  border:1px solid var(--border);
  background: rgba(255,255,255,0.72);
  border-radius: 18px;
  padding: 14px 14px;
  text-align:left;
}
.kpi strong{ display:block; }
.kpi span{ display:block; color: var(--muted); }

.icon-card{
  border:1px solid var(--border);
  background: rgba(255,255,255,0.78);
  border-radius: var(--radius);
  padding: 18px;
  box-shadow: var(--shadow);
  height:100%;
}
.icon-circle{
  width:44px; height:44px;
  border-radius:16px;
  display:inline-flex;
  align-items:center; justify-content:center;
  border: 1px solid rgba(43,33,26,0.14);
  background: rgba(226,178,91,0.18);
}
.icon-circle i{ color: rgba(111,127,74,1); }

.route-card .top{
  height: 150px;
  border-bottom: 1px solid rgba(43,33,26,0.10);
  display:flex; align-items:center; justify-content:center;
  background: rgba(43,33,26,0.03);
}
.route-card .top i{ font-size: 28px; color: rgba(154,77,118,1); }

.timeline{
  border:1px solid var(--border);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.78);
  box-shadow: var(--shadow);
  padding: 18px;
}
.t-item{
  display:flex;
  gap:12px;
  padding: 12px 8px;
  border-top: 1px dashed rgba(43,33,26,0.14);
}
.t-item:first-child{ border-top:0; }
.t-dot{
  width:42px; height:42px;
  border-radius: 16px;
  border:1px solid rgba(154,77,118,0.28);
  background: rgba(154,77,118,0.12);
  display:flex; align-items:center; justify-content:center;
  flex: 0 0 auto;
}
.t-dot i{ color: rgba(154,77,118,1); }
.t-item h3{ margin:0 0 4px; font-weight:800; }
.t-item p{ margin:0; color: var(--muted); }

.faq{
  display:grid;
  gap: 12px;
}
details{
  border:1px solid var(--border);
  border-radius: var(--radius);
  background: rgba(255,255,255,0.78);
  box-shadow: var(--shadow);
  overflow:hidden;
}
summary{
  cursor:pointer;
  padding: 14px 16px;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-weight:800;
}
summary::-webkit-details-marker{ display:none; }
details p{
  margin:0;
  padding: 0 16px 16px;
  color: var(--muted);
}
.faq-badge{
  width:38px; height:38px;
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(226,178,91,0.36);
  background: rgba(226,178,91,0.18);
}

.modal-backdrop-custom{
  position: fixed;
  inset:0;
  background: rgba(0,0,0,0.45);
  display:none;
  align-items:center;
  justify-content:center;
  padding: 18px;
  z-index: 2000;
}
.modal-backdrop-custom.is-open{ display:flex; }
.modal-box{
  width:min(560px, 100%);
  border-radius: 20px;
  border:1px solid var(--border);
  background: rgba(255,255,255,0.96);
  box-shadow: var(--shadow);
  padding: 18px;
}

.cookie{
  position:fixed;
  left: 14px; right: 14px; bottom: 14px;
  z-index: 1800;
  display:none;
}
.cookie.is-visible{ display:block; }
.cookie-panel{
  display:flex;
  gap: 14px;
  align-items:flex-start;
  justify-content:space-between;
  border:1px solid var(--border);
  background: rgba(255,255,255,0.94);
  border-radius: 18px;
  box-shadow: var(--shadow);
  padding: 14px;
}
.cookie-panel p{ margin:0; color: var(--muted); max-width: 96ch; }

.footer{
  border-top:1px solid var(--border);
  background: rgba(255,255,255,0.60);
}

.small-muted{ color: var(--muted); }

@media (max-width: 992px){
  .hero-kpis{ grid-template-columns: 1fr; }
  .section-head{ flex-direction: column; align-items:flex-start; }
}


/* New homepage layouts */
.signal-card{
  border:1px solid var(--border);
  background: rgba(255,255,255,0.82);
  border-radius: var(--radius);
  padding: 16px;
  box-shadow: var(--shadow);
  height:100%;
}
.signal-card .meta{
  display:flex; gap:8px; flex-wrap:wrap;
  margin-bottom: 10px;
}
.chip{
  border:1px solid var(--border);
  background: rgba(255,255,255,0.70);
  border-radius: 999px;
  padding: 6px 10px;
  color: var(--muted);
  font-weight: 700;
  font-size: 14px;
}
.stat-tape{
  border:1px solid var(--border);
  background: rgba(255,255,255,0.70);
  border-radius: 999px;
  padding: 10px 12px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
}
.stat-tape .dot{
  width:10px; height:10px; border-radius: 999px;
  background: rgba(79,122,90,0.95);
}
.stat-tape .dot.alt{ background: rgba(215,164,58,0.95); }
.stat-tape .dot.accent{ background: rgba(154,77,118,0.95); }

.zig{
  border:1px solid var(--border);
  background: rgba(255,255,255,0.78);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.zig .side{
  padding: 18px;
}
.zig .stamp{
  height:100%;
  min-height: 220px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(43,33,26,0.03);
  border-left: 1px solid rgba(43,33,26,0.10);
}
.zig .stamp i{
  font-size: 44px;
  color: rgba(79,122,90,1);
}

@media (max-width: 992px){
  .zig .stamp{ border-left:0; border-top: 1px solid rgba(43,33,26,0.10); min-height: 160px; }
}
