:root{
  --pink: #F4568F;
  --pink-dark: #D63D74;
  --pink-light: #FDE4F1;
  --blue: #BEE9EE;
  --cream: #FFF9F5;
  --cream-2: #FFF1E9;
  --ink: #2B1F24;
  --ink-soft: rgba(43,31,36,0.62);
  --ink-faint: rgba(43,31,36,0.4);
  --white: #ffffff;
  --radius: 22px;
  --shadow: 0 20px 50px -20px rgba(214,61,116,0.35);
  --ff-display: 'Baloo 2', 'Arial Rounded MT Bold', sans-serif;
  --ff-text: 'Nunito', 'Arial', sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--ff-text);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--ff-display);margin:0;line-height:1.05;}
p{margin:0;}

.eyebrow{
  font-family:var(--ff-text);
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-size:.78rem;
  color:var(--pink-dark);
  margin:0 0 10px;
}
.eyebrow-light{color:rgba(255,255,255,0.85);}

/* decorative drip bar */
.drip{
  position:fixed;top:0;left:0;right:0;height:6px;
  background:linear-gradient(90deg,var(--pink),var(--blue),var(--pink));
  background-size:200% 100%;
  z-index:200;
  animation:drip-slide 6s linear infinite;
}
@keyframes drip-slide{0%{background-position:0% 0}100%{background-position:200% 0}}

/* ---------- NAV ---------- */
.nav{
  position:fixed;top:6px;left:0;right:0;z-index:100;
  padding:14px 20px;
  transition:padding .3s ease;
}
.nav::before{
  content:'';
  position:absolute;inset:0;
  background:rgba(255,249,245,0.85);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 8px 24px -16px rgba(43,31,36,0.25);
  opacity:0;
  transition:opacity .3s ease;
  z-index:-1;
}
.nav.scrolled{
  padding:8px 20px;
}
.nav.scrolled::before{
  opacity:1;
}
.nav-inner{
  max-width:1180px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;
}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--ff-display);font-weight:700;font-size:1.05rem;color:var(--ink);}
.brand-logo{width:38px;height:38px;border-radius:50%;object-fit:cover;box-shadow:0 4px 12px -4px rgba(0,0,0,0.25);}
.brand em{font-style:normal;color:var(--pink-dark);}
.nav-links{display:flex;gap:26px;font-weight:700;font-size:.92rem;}
.nav-links a{opacity:.75;transition:opacity .2s, color .2s;}
.nav-links a:hover{opacity:1;color:var(--pink-dark);}
.nav-cta{
  background:var(--ink);color:var(--white);
  padding:10px 20px;border-radius:100px;
  font-weight:800;font-size:.88rem;
  transition:transform .25s ease, background .25s ease;
  white-space:nowrap;
}
.nav-cta:hover{background:var(--pink-dark);transform:translateY(-2px);}
@media (max-width:760px){
  .nav-links{display:none;}
}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 28px;border-radius:100px;
  font-weight:800;font-size:.95rem;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--pink);color:var(--white);box-shadow:var(--shadow);}
.btn-primary:hover{transform:translateY(-3px) scale(1.02);background:var(--pink-dark);}
.btn-ghost{background:rgba(255,255,255,0.55);color:var(--ink);border:1.5px solid rgba(43,31,36,0.15);backdrop-filter:blur(6px);}
.btn-ghost:hover{background:var(--white);transform:translateY(-3px);}
.btn-white{background:var(--white);color:var(--pink-dark);}
.btn-white:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 16px 40px -14px rgba(0,0,0,0.35);}
.btn-outline-light{border:1.5px solid rgba(255,255,255,0.6);color:var(--white);}
.btn-outline-light:hover{background:rgba(255,255,255,0.15);transform:translateY(-3px);}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;align-items:flex-end;
  overflow:hidden;
}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);}
.hero-fade{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(43,20,30,0.15) 0%, rgba(30,15,22,0.35) 55%, rgba(20,10,16,0.85) 100%);
}
.hero-content{
  position:relative;z-index:1;
  color:var(--white);
  padding:0 24px 76px;
  max-width:760px;
  margin:0 auto;
  width:100%;
  text-align:center;
}
.hero-logo{
  width:78px;height:78px;border-radius:50%;
  margin:0 auto 18px;
  box-shadow:0 10px 30px -8px rgba(0,0,0,0.5);
  border:3px solid rgba(255,255,255,0.85);
}
.hero .eyebrow{color:var(--blue);}
.hero h1{
  font-size:clamp(2.6rem, 8vw, 5rem);
  color:var(--white);
  text-shadow:0 6px 30px rgba(0,0,0,0.25);
}
.hero-sub{
  margin:20px auto 0;
  max-width:520px;
  font-size:1.05rem;
  color:rgba(255,255,255,0.88);
  font-weight:500;
}
.hero-actions{
  display:flex;gap:14px;justify-content:center;flex-wrap:wrap;
  margin-top:32px;
}
.scroll-hint{
  position:absolute;bottom:22px;left:50%;transform:translateX(-50%);
  z-index:1;
}
.scroll-hint span{
  display:block;width:22px;height:36px;border:2px solid rgba(255,255,255,0.7);border-radius:100px;position:relative;
}
.scroll-hint span::before{
  content:'';position:absolute;top:6px;left:50%;width:4px;height:8px;background:var(--white);border-radius:4px;
  transform:translateX(-50%);
  animation:scroll-dot 1.8s ease-in-out infinite;
}
@keyframes scroll-dot{0%{opacity:1;top:6px;}70%{opacity:0;top:18px;}100%{opacity:0;top:6px;}}

/* ---------- MARQUEE ---------- */
.marquee{
  background:var(--pink);
  color:var(--white);
  padding:16px 0;
  overflow:hidden;
  white-space:nowrap;
}
.marquee-track{
  display:inline-flex;
  gap:18px;
  font-family:var(--ff-display);
  font-weight:600;
  font-size:1.05rem;
  animation:marquee 26s linear infinite;
  padding-left:100%;
}
.marquee-track span{opacity:.95;}
@keyframes marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-100%);}
}

/* ---------- SECTION SHARED ---------- */
.section{
  padding:110px 24px;
  max-width:1180px;
  margin:0 auto;
}
.section-head{
  text-align:center;
  max-width:640px;
  margin:0 auto 56px;
}
.section-head h2{font-size:clamp(1.8rem, 4vw, 2.6rem);}
.lead{font-size:1.12rem;font-weight:600;margin-top:16px;color:var(--ink);}
.lead-light{font-size:1.1rem;font-weight:600;margin-top:14px;color:rgba(255,255,255,0.92);max-width:520px;margin-left:auto;margin-right:auto;}

/* ---------- STORIA ---------- */
.storia-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center;
}
.storia-media{position:relative;}
.storia-img{
  width:100%;aspect-ratio:4/5;object-fit:cover;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.storia-badge{
  position:absolute;bottom:-24px;left:-24px;
  width:110px;height:110px;border-radius:50%;
  overflow:hidden;
  border:5px solid var(--cream);
  box-shadow:0 12px 30px -10px rgba(0,0,0,0.3);
  background:var(--white);
}
.storia-badge img{width:100%;height:100%;object-fit:cover;}
.storia-text h2{font-size:clamp(1.8rem,3.6vw,2.5rem);margin-bottom:4px;}
.storia-text p + p{margin-top:16px;color:var(--ink-soft);font-size:1.02rem;}
.storia-text em{color:var(--pink-dark);font-style:normal;font-weight:700;}
.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.pill{
  background:var(--pink-light);
  color:var(--pink-dark);
  font-weight:800;
  font-size:.82rem;
  padding:9px 18px;
  border-radius:100px;
}

/* ---------- GUSTI / MOSAIC ---------- */
.mosaic{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:220px;
  gap:16px;
}
.mosaic-item{
  position:relative;margin:0;border-radius:18px;overflow:hidden;
  box-shadow:0 14px 30px -18px rgba(43,31,36,0.4);
}
.mosaic-item.span-2{grid-column:span 2;grid-row:span 1;}
.mosaic-item img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.8,.2,1);
}
.mosaic-item:hover img{transform:scale(1.08);}
.mosaic-item figcaption{
  position:absolute;left:0;right:0;bottom:0;
  padding:16px;
  background:linear-gradient(180deg, transparent, rgba(20,10,15,0.72));
  color:var(--white);
  font-family:var(--ff-display);
  font-weight:600;
  font-size:.98rem;
}
@media (max-width:860px){
  .mosaic{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px;}
  .mosaic-item.span-2{grid-column:span 2;}
}

/* ---------- DOVE ---------- */
.dove-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;
  margin-bottom:40px;
}
.dove-media img{border-radius:var(--radius);box-shadow:var(--shadow);aspect-ratio:4/5;object-fit:cover;}
.dove-text h2{font-size:clamp(1.8rem,3.6vw,2.5rem);}
.map-wrap{
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  height:380px;
}
.map-wrap iframe{width:100%;height:100%;border:0;}

/* ---------- CONTATTI ---------- */
.contatti{padding-top:0;padding-bottom:120px;}
.contatti-card{
  background:linear-gradient(150deg, var(--pink) 0%, var(--pink-dark) 100%);
  border-radius:32px;
  padding:72px 32px;
  text-align:center;
  color:var(--white);
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.contatti-card::after{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(circle at 85% 15%, rgba(255,255,255,0.25), transparent 45%);
  pointer-events:none;
}
.contatti-card h2{font-size:clamp(1.9rem,4vw,2.7rem);color:var(--white);}
.contatti-actions{
  display:flex;gap:14px;justify-content:center;flex-wrap:wrap;
  margin-top:34px;
}
.contatti-note{
  margin-top:28px;
  font-weight:700;
  color:rgba(255,255,255,0.85);
  letter-spacing:.02em;
}

/* ---------- FOOTER ---------- */
.footer{
  padding:32px 24px 40px;
  display:flex;flex-wrap:wrap;gap:12px;
  align-items:center;justify-content:space-between;
  max-width:1180px;margin:0 auto;
  color:var(--ink-faint);
  font-size:.85rem;
}
.footer-badge{
  font-weight:800;color:var(--ink-soft);
  transition:color .2s;
}
.footer-badge strong{color:var(--pink-dark);}
.footer-badge:hover{color:var(--pink-dark);}

/* ---------- REVEAL ANIM ---------- */
.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
}
.reveal.in-view{
  opacity:1;
  transform:translateY(0);
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:860px){
  .storia-grid,.dove-grid{grid-template-columns:1fr;gap:40px;}
  .storia-media{margin-bottom:10px;}
  .storia-badge{width:84px;height:84px;bottom:-16px;left:-12px;}
  .section{padding:80px 20px;}
  .dove-media{order:-1;}
  .map-wrap{height:280px;}
  .contatti-card{padding:52px 22px;}
  .hero-content{padding-bottom:56px;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
  .marquee-track{animation:none;}
  .drip{animation:none;}
  .hero-img{transform:none;}
}
