/*
Theme Name: La Dolcetteria
Theme URI: https://ladolcetteria.it
Author: La Dolcetteria
Description: Tema WordPress classico per La Dolcetteria — gelateria, caffetteria e pasticceria su ordinazione ad Arquata Scrivia. Riproduce esattamente la bozza approvata: nessun riadattamento a blocchi, nessuna distorsione di layout. I testi principali si modificano da Aspetto → Personalizza.
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
Version: 1.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: la-dolcetteria
*/

:root{
  --fuchsia-deep:#D51772;
  --fuchsia-mid:#DF2F70;
  --panna:#F8F0E1;
  --panna-deep:#EFE0C4;
  --blush:#F2CBD8;
  --gold:#C49A5A;
  --ink:#3E2630;
  --white-lace:#FFFBF4;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--panna);
  color:var(--ink);
  font-family:'Jost',sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:600;letter-spacing:-0.01em;}
.script{font-family:'Allura',cursive;color:var(--fuchsia-deep);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1140px;margin:0 auto;padding:0 28px;}
.eyebrow{
  font-family:'Jost',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.18em;
  font-size:12.5px;
  font-weight:600;
  color:var(--fuchsia-mid);
}

/* bordo a festoni — elemento firma shabby chic */
.scallop-top{position:relative;}
.scallop-top::before{
  content:'';
  display:block;
  height:22px;
  width:100%;
  background-image:radial-gradient(circle at 11px 0, transparent 11px, var(--scallop-color,var(--panna)) 11.5px);
  background-size:22px 22px;
  background-repeat:repeat-x;
  background-position:top;
}
.scallop-bottom{position:relative;}
.scallop-bottom::after{
  content:'';
  display:block;
  height:22px;
  width:100%;
  background-image:radial-gradient(circle at 11px 22px, transparent 11px, var(--scallop-color,var(--panna)) 11.5px);
  background-size:22px 22px;
  background-repeat:repeat-x;
  background-position:bottom;
}

/* ---------- HEADER ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(248,240,225,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(142,35,80,0.12);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 28px;max-width:1140px;margin:0 auto;
}
.logo{font-family:'Allura',cursive;font-size:34px;color:var(--fuchsia-deep);line-height:1;}
.logo span{display:block;font-family:'Jost',sans-serif;font-size:10px;letter-spacing:0.28em;text-transform:uppercase;color:var(--ink);margin-top:-2px;}
.nav-links{display:flex;gap:30px;font-size:14.5px;font-weight:500;}
.nav-links a{position:relative;padding-bottom:4px;}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--fuchsia-mid);transition:width .25s;}
.nav-links a:hover::after{width:100%;}
.nav-cta{
  background:var(--fuchsia-deep);color:var(--white-lace);
  padding:10px 20px;border-radius:30px;font-size:13.5px;font-weight:600;
  letter-spacing:0.03em;
  box-shadow:0 4px 14px rgba(142,35,80,0.25);
}
.burger{display:none;}

/* ---------- HERO ---------- */
.hero{
  position:relative;overflow:hidden;
  padding:70px 0 50px;
  background:
    radial-gradient(ellipse 600px 380px at 88% 8%, var(--blush) 0%, transparent 60%),
    var(--panna);
}
.hero-grid{
  display:grid;grid-template-columns:1.05fr 0.95fr;gap:50px;align-items:center;
}
.hero h1{font-size:48px;line-height:1.08;font-style:italic;font-weight:500;color:var(--ink);}
.hero h1 em{font-style:normal;font-weight:600;color:var(--fuchsia-deep);}
.hero-sub{margin-top:20px;font-size:17px;max-width:440px;color:#5b4350;}
.hero-ctas{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap;}
.btn{
  display:inline-block;padding:13px 26px;border-radius:30px;font-weight:600;font-size:14.5px;
  letter-spacing:0.02em;transition:transform .2s, box-shadow .2s;
}
.btn-primary{background:var(--fuchsia-deep);color:var(--white-lace);box-shadow:0 6px 18px rgba(142,35,80,0.3);}
.btn-primary:hover{transform:translateY(-2px);}
.btn-outline{border:1.5px solid var(--fuchsia-deep);color:var(--fuchsia-deep);}
.btn-outline:hover{background:var(--fuchsia-deep);color:var(--white-lace);}

.hero-visual{position:relative;}
.frame{
  aspect-ratio:1/1.05;border-radius:50% 50% 46% 46% / 55% 55% 45% 45%;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  color:var(--white-lace);font-family:'Fraunces',serif;font-style:italic;font-size:15px;
  box-shadow:0 25px 50px -15px rgba(142,35,80,0.45);
  border:6px solid var(--white-lace);
  outline:2px dashed rgba(255,255,255,0.5);
  outline-offset:-16px;
  text-align:center;
  background:linear-gradient(160deg,#d98aa9,var(--fuchsia-mid));
}
.frame img{width:100%;height:100%;object-fit:cover;}
.stamp{
  position:absolute;top:-14px;left:-18px;
  width:108px;height:108px;border-radius:50%;
  border:2px dashed var(--gold);
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:var(--white-lace);
  transform:rotate(-12deg);
  font-family:'Fraunces',serif;font-weight:600;font-size:13px;color:var(--fuchsia-deep);
  box-shadow:0 8px 20px rgba(0,0,0,0.12);
  line-height:1.25;
}
.badge-row{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap;}
.badge{
  font-size:12.5px;font-weight:500;color:var(--fuchsia-deep);
  background:var(--white-lace);border:1px solid rgba(142,35,80,0.18);
  padding:7px 13px;border-radius:20px;
}

/* ---------- STORIA ---------- */
.storia{background:var(--white-lace);padding:90px 0;--scallop-color:var(--white-lace);}
.storia-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:60px;align-items:center;}
.storia-img{
  aspect-ratio:4/5;border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(142,35,80,0.15);
  position:relative;
  background:linear-gradient(150deg,var(--panna-deep),var(--blush));
}
.storia-img img{width:100%;height:100%;object-fit:cover;}
.storia h2{font-size:34px;font-style:italic;margin-bottom:18px;}
.storia p{color:#5b4350;max-width:520px;margin-bottom:14px;}
.firma{font-family:'Allura',cursive;font-size:30px;color:var(--fuchsia-deep);margin-top:18px;}

/* ---------- GUSTI ---------- */
.gusti{background:var(--panna-deep);padding:90px 0;--scallop-color:var(--panna-deep);}
.section-head{max-width:560px;margin-bottom:50px;}
.section-head h2{font-size:34px;font-style:italic;margin-top:10px;}
.gusti-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.gusto-card{
  background:var(--white-lace);
  padding:26px 18px 22px;
  text-align:center;
  border-radius:10px 10px 50% 50%/10px 10px 30% 30%;
  border:1px solid rgba(142,35,80,0.12);
  position:relative;
  transition:transform .25s;
}
.gusto-card:hover{transform:translateY(-6px);}
.gusto-card .scoop{
  width:46px;height:46px;border-radius:50%;margin:0 auto 14px;
}
.gusto-card h3{font-size:16px;font-family:'Jost',sans-serif;font-weight:600;margin-bottom:6px;}
.gusto-card p{font-size:13px;color:#7a5f6a;}
.gusti-note{margin-top:36px;text-align:center;font-size:14.5px;color:#7a5f6a;}

/* ---------- TORTE ---------- */
.torte{background:var(--white-lace);padding:90px 0;--scallop-color:var(--white-lace);}
.torte-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}
.step{display:flex;gap:18px;margin-bottom:30px;}
.step-num{
  font-family:'Fraunces',serif;font-style:italic;font-size:26px;color:var(--fuchsia-mid);
  flex-shrink:0;width:40px;
}
.step h3{font-size:17px;margin-bottom:4px;font-family:'Jost',sans-serif;font-weight:600;}
.step p{font-size:14.5px;color:#5b4350;}
.torte-visual{
  background:var(--panna-deep);border-radius:14px;aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;
  border:1px solid rgba(142,35,80,0.12);text-align:center;padding:30px;
}
.torte-visual .script{font-size:26px;}

/* ---------- CAFFETTERIA + FAMIGLIE ---------- */
.duo{background:var(--blush);padding:90px 0;--scallop-color:var(--blush);}
.duo-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
.duo-card{
  background:var(--white-lace);border-radius:14px;padding:38px 34px;
  border:1px solid rgba(142,35,80,0.1);
}
.duo-card h3{font-size:22px;font-style:italic;margin-bottom:12px;}
.duo-card p{color:#5b4350;font-size:14.5px;margin-bottom:16px;}
.chip-row{display:flex;gap:8px;flex-wrap:wrap;}
.chip{font-size:12px;background:var(--panna);padding:5px 11px;border-radius:14px;color:var(--fuchsia-deep);font-weight:500;}

/* ---------- RECENSIONI ---------- */
.recensioni{background:var(--panna);padding:90px 0;--scallop-color:var(--panna);}
.rating-row{display:flex;align-items:center;gap:14px;margin-bottom:40px;}
.stars{color:var(--gold);font-size:20px;letter-spacing:2px;}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.rev-card{background:var(--white-lace);border-radius:12px;padding:26px;border:1px solid rgba(142,35,80,0.1);}
.rev-card p{font-size:14px;color:#5b4350;font-style:italic;margin-bottom:14px;}
.rev-name{font-size:13px;font-weight:600;color:var(--fuchsia-deep);}

/* ---------- DOVE SIAMO ---------- */
.dove{background:var(--fuchsia-deep);color:var(--white-lace);padding:80px 0;--scallop-color:var(--fuchsia-deep);}
.dove-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;}
.dove h2{color:var(--white-lace);font-size:32px;font-style:italic;margin-bottom:20px;}
.dove-list{list-style:none;font-size:15px;}
.dove-list li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.15);display:flex;justify-content:space-between;gap:20px;}
.dove-map{
  aspect-ratio:4/3;border-radius:12px;border:1.5px dashed rgba(255,255,255,0.4);
  display:flex;align-items:center;justify-content:center;font-size:13px;color:rgba(255,255,255,0.7);
  overflow:hidden;
}
.dove-map iframe{width:100%;height:100%;border:0;}

footer{background:#2C1A21;color:rgba(255,255,255,0.65);padding:40px 0;font-size:13px;}
.footer-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
.footer-row .script{font-size:24px;color:var(--blush);}
.footer-row a:hover{color:#fff;}

@media(max-width:880px){

  .nav{
    flex-wrap:wrap;
    justify-content:center;
    padding:14px 18px;
    gap:12px;
  }

  .logo{
    width:100%;
    text-align:center;
  }

  .nav-links{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px 16px;
    width:100%;
    font-size:13px;
  }

  .nav-links a{
    padding-bottom:3px;
  }

  .nav-cta{
    margin-top:4px;
  }

  .hero-grid,
  .storia-grid,
  .torte-grid,
  .duo-grid,
  .dove-grid{
    grid-template-columns:1fr;
  }

  .gusti-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .rev-grid{
    grid-template-columns:1fr;
  }

  .hero h1{
    font-size:34px;
  }

  .hero-visual{
    max-width:280px;
    margin:0 auto;
  }

  .page-content{
    color:#5b4350;
    line-height:1.75;
  }

  .page-content h2{
    font-size:24px;
    font-style:italic;
    color:var(--fuchsia-deep);
    margin:32px 0 12px;
  }

  .page-content h3{
    font-size:19px;
    color:var(--fuchsia-mid);
    margin:24px 0 8px;
  }

  .page-content p{
    margin-bottom:14px;
  }

  .page-content ul,
  .page-content ol{
    margin:0 0 14px 22px;
  }

  .page-content li{
    margin-bottom:6px;
  }

  .page-content table{
    width:100%;
    border-collapse:collapse;
    margin:20px 0;
  }

  .page-content th,
  .page-content td{
    border:1px solid rgba(142,35,80,0.15);
    padding:10px 12px;
    text-align:left;
    font-size:14px;
  }

  .page-content th{
    background:var(--panna-deep);
  }

  .page-content a{
    color:var(--fuchsia-deep);
    text-decoration:underline;
  }

}
/* =========================
   PAGINA NEWS / CATEGORIE
   ========================= */

.category-page {
  padding: 80px 0 100px;
  background: var(--panna);
}

.category-header {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 55px;
}

.category-header h1 {
  margin-bottom: 20px;
}

.category-description {
  font-size: 17px;
  line-height: 1.7;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 35px;
}

.news-card {
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(0,0,0,.06);
}

.news-image {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.news-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.news-content {
  padding: 30px;
}

.news-date {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 10px;
  opacity: .65;
}

.news-content h2 {
  margin-bottom: 15px;
}

.news-content h2 a {
  color: inherit;
  text-decoration: none;
}

.news-content h2 a:hover {
  text-decoration: underline;
}

.news-content p {
  line-height: 1.7;
}

.news-pagination {
  margin-top: 50px;
  text-align: center;
}

.no-news {
  text-align: center;
  padding: 60px 20px;
}

@media (max-width: 700px) {
  .news-grid {
    grid-template-columns: 1fr;
  }

  .category-page {
    padding: 55px 0 70px;
  }
}