* { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --bg: #fffaf7; --paper: #fff; --soft: #f8eeea; --pink: #bd7777;
  --pink-dark: #9f5f60; --text: #292727; --muted: #77706d; --line: #eadbd5;
  --max: 1280px; --serif: "DM Serif Display", Georgia, serif; --sans: "Manrope", Arial, sans-serif;
}
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { font-family: var(--sans); color: var(--text); background: var(--bg); line-height: 1.65; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
::selection { background: #eacbc2; color: var(--text); }
.site-header {
  min-height: 82px; padding: 0 5%; display: flex; align-items: center; justify-content: space-between;
  gap: 28px; background: rgba(255,250,247,.96); border-bottom: 1px solid #f0e4df;
  position: sticky; top: 0; z-index: 20; backdrop-filter: blur(12px);
}
.logo { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.logo strong { display:block; font: italic 30px var(--serif); line-height:1.1; }
.logo small, .footer-brand small { display:block; font-size:8px; letter-spacing:3px; color:var(--muted); margin-top:5px; }
.nav { display:flex; align-items:center; gap:clamp(15px,2.5vw,34px); font-size:13px; }
.nav a { padding:30px 0; position:relative; transition:color .2s; }
.nav a.active, .nav a:hover { color:var(--pink-dark); }
.nav a.active::after { content:""; position:absolute; left:0; right:0; bottom:21px; height:1px; background:var(--pink); }
.header-cta, .btn, .whatsapp-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:999px; padding:13px 22px; font-size:12px; font-weight:700; transition:.25s ease; }
.header-cta, .btn-primary { background:var(--pink); color:white; }
.header-cta:hover, .btn-primary:hover { background:var(--pink-dark); transform:translateY(-2px); }
.menu-toggle { display:none; border:0; background:transparent; cursor:pointer; width:42px; height:42px; padding:10px; }
.menu-toggle span { display:block; height:2px; background:var(--text); margin:5px 0; transition:.2s; }
.hero { min-height:610px; display:grid; grid-template-columns:.92fr 1.08fr; background:#f8ebe5; overflow:hidden; }
.hero-content { padding:85px 6vw 80px 8vw; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.eyebrow { color:var(--pink); font-size:9px; letter-spacing:3.5px; font-weight:700; margin-bottom:15px; }
h1, h2 { font-family:var(--serif); font-weight:400; line-height:1.08; }
h1 { font-size:clamp(47px,5.2vw,76px); letter-spacing:-1.5px; }
h1 em, .personal-content h2 em, .contact-banner h2 em { color:var(--pink); font-weight:400; }
.hero-text { max-width:450px; color:#655f5c; margin:25px 0 27px; font-size:14px; }
.hero-title { font-size:clamp(30px,3.8vw,56px); max-width:100%; overflow-wrap:anywhere; letter-spacing:-.8px; }
.hero-title span { display:block; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.btn-outline { border:1px solid var(--pink); color:var(--pink-dark); background:transparent; }
.btn-outline:hover { background:rgba(255,255,255,.5); }
.hero-note { color:#806f69; font-size:10px; margin-top:34px; letter-spacing:.3px; }
.hero-note span { color:var(--pink); margin-right:7px; }
.hero-visual { position:relative; min-height:610px; padding:35px; display:flex; align-items:stretch; }
.hero-photo { width:100%; min-height:100%; border-radius:48% 48% 8px 8px; }
.photo-placeholder, .card-image, .product-image, .personal-image, .about-image {
  background:linear-gradient(135deg,#efd9d1,#f8eee8 45%,#e6d1c7); position:relative; overflow:hidden;
}
.photo-placeholder::before, .card-image::before, .product-image::before, .personal-image::before, .about-image::before {
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 70% 25%,rgba(255,255,255,.8),transparent 28%),radial-gradient(circle at 25% 75%,rgba(255,255,255,.45),transparent 24%);
}
.photo-placeholder > span, .card-image > span, .product-image > span {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); color:#8d7770;
  font-size:11px; text-transform:uppercase; letter-spacing:2px; text-align:center; z-index:1; width:85%;
}
.photo-placeholder small { position:absolute; bottom:22px; left:0; right:0; text-align:center; color:#8d7770; font-size:10px; letter-spacing:1px; z-index:1; }
.hero-stamp { position:absolute; left:8px; bottom:70px; width:112px; height:112px; border-radius:50%; background:#fffaf7; color:var(--pink-dark); display:flex; flex-direction:column; justify-content:center; align-items:center; transform:rotate(-10deg); box-shadow:0 10px 30px #8b62501c; }
.hero-stamp span { font-size:9px; letter-spacing:2px; text-transform:uppercase; }
.hero-stamp strong { font:20px/1 var(--serif); text-align:center; }
.hero-stamp i { font-style:normal; font-size:15px; }
.section { max-width:var(--max); margin:auto; padding:95px 5%; }
.centered { text-align:center; }
.section-heading h2 { font-size:clamp(34px,4vw,47px); }
.section-heading > p:not(.eyebrow) { color:var(--muted); font-size:13px; margin-top:10px; }
.ornament { color:var(--pink); display:block; font-size:24px; margin-bottom:5px; }
.categories { background:#fff; max-width:none; padding-left:5%; padding-right:5%; }
.categories > * { max-width:var(--max); margin-left:auto; margin-right:auto; }
.category-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:42px auto 0; }
.category-card { border-radius:8px; overflow:hidden; background:white; box-shadow:0 8px 25px rgba(100,70,60,.06); transition:transform .25s, box-shadow .25s; }
.category-card:hover { transform:translateY(-5px); box-shadow:0 14px 32px rgba(100,70,60,.11); }
.card-image { height:170px; }
.card-image.pink, .product-image.pink { background:linear-gradient(135deg,#f1d7d6,#f9eeeb); }
.card-image.blue, .product-image.blue { background:linear-gradient(135deg,#dce8e9,#eff4f2); }
.card-image.cream { background:linear-gradient(135deg,#ead8bd,#f6eddf); }
.card-image.ivory, .product-image.white { background:linear-gradient(135deg,#eee9df,#faf8f2); }
.card-image.gift { background:linear-gradient(135deg,#e7d6ce,#f4e9df); }
.card-image.sage { background:linear-gradient(135deg,#d8e0d2,#eef0e8); }
.card-image.christmas { background:linear-gradient(135deg,#d9e0d7,#f0e9df); }
.card-label { min-height:58px; padding:15px 16px; display:flex; align-items:center; justify-content:space-between; font-size:12px; font-weight:700; }
.card-label b { color:var(--pink); font-size:17px; font-weight:400; }
.creations { background:#faf3ef; max-width:none; }
.creations > * { max-width:var(--max); margin-left:auto; margin-right:auto; }
.split { display:flex; align-items:end; justify-content:space-between; gap:20px; }
.split h2 { max-width:650px; }
.text-link { display:inline-flex; gap:12px; align-items:center; border-bottom:1px solid var(--pink); color:var(--pink-dark); padding:8px 0; font-size:12px; white-space:nowrap; }
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:38px; }
.product-card { background:white; border-radius:8px; overflow:hidden; transition:transform .25s; }
.product-card:hover { transform:translateY(-4px); }
.product-image { height:245px; }
.product-image.red { background:linear-gradient(135deg,#ead0ce,#f5e6e2); }
.product-image i { position:absolute; top:14px; left:15px; color:#987e76; font:italic 15px var(--serif); }
.product-info { padding:17px 16px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.product-info h3 { font-size:13px; margin-bottom:3px; }
.product-info p { font-size:10px; color:var(--muted); }
.product-info a { color:var(--pink); font-size:21px; padding:4px; }
.personalization { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:8%; }
.personal-image { min-height:370px; border-radius:8px 8px 100px 8px; }
.personal-content h2, .about-content h2 { font-size:clamp(38px,4.2vw,54px); }
.personal-content > p:not(.eyebrow), .about-content > p:not(.eyebrow) { color:var(--muted); margin:20px 0 27px; max-width:500px; font-size:13px; }
.benefits { display:grid; grid-template-columns:1.15fr repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:45px 5%; gap:18px; background:#f8eeea; }
.benefit-title h2 { font-size:34px; }
.benefit { text-align:center; border-left:1px solid var(--line); padding:8px 13px; }
.benefit span { display:block; color:var(--pink); font-size:25px; margin-bottom:8px; }
.benefit strong { display:block; font-size:11px; }
.benefit p { color:var(--muted); font-size:10px; margin-top:5px; }
.about { display:grid; grid-template-columns:.8fr 1.15fr .85fr; gap:5%; align-items:center; }
.about-image { min-height:290px; border-radius:50% 50% 48% 52% / 50% 45% 55% 50%; }
.testimonial { border-left:1px solid var(--line); padding-left:30px; }
.stars { color:var(--pink); letter-spacing:3px; margin:8px 0 14px; }
blockquote { font-family:var(--serif); font-size:20px; line-height:1.4; font-style:italic; }
.testimonial small { color:var(--muted); display:block; margin-top:15px; }
.review-note { font-size:9px; color:#9a8c86; margin-top:15px; line-height:1.4; }
.contact-banner { padding:65px 9%; display:flex; align-items:center; justify-content:space-between; gap:30px; background:linear-gradient(100deg,#f0d6ce,#f8e7e0); }
.contact-banner h2 { font-size:clamp(42px,5vw,58px); margin-bottom:12px; }
.contact-banner p:not(.eyebrow) { color:#6d5f5a; font-size:12px; }
.whatsapp-btn { background:#258b55; color:white; padding:16px 24px; }
.whatsapp-btn:hover { background:#1e7045; transform:translateY(-2px); }
.whatsapp-btn b { font-size:16px; margin-left:5px; }
.footer { display:grid; grid-template-columns:1.1fr 1.5fr 1fr 1.2fr; align-items:center; gap:25px; padding:43px 5%; background:#fffaf7; font-size:10px; color:var(--muted); }
.footer-brand strong { display:block; font:italic 26px var(--serif); color:var(--text); }
.footer nav, .socials { display:flex; flex-wrap:wrap; gap:15px; }
.footer a:hover { color:var(--pink-dark); }
.footer .copyright { text-align:right; }
@media (max-width: 1050px) {
  .site-header { gap:18px; }
  .nav { gap:16px; font-size:12px; }
  .header-cta { padding:11px 15px; font-size:11px; }
  .about { grid-template-columns:.8fr 1.2fr; }
  .testimonial { grid-column:2; border-left:0; border-top:1px solid var(--line); padding:25px 0 0; }
  .benefits { grid-template-columns:repeat(4,1fr); }
  .benefit-title { grid-column:span 4; text-align:center; }
  .benefit:nth-child(2) { border-left:0; }
}
@media (max-width: 800px) {
  .site-header { min-height:72px; padding:10px 5%; }
  .menu-toggle { display:block; order:3; }
  .nav { display:none; position:absolute; top:71px; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; background:var(--bg); padding:10px 6% 18px; border-bottom:1px solid var(--line); box-shadow:0 12px 18px #6c514012; }
  .nav.open { display:flex; }
  .nav a { padding:12px 0; border-bottom:1px solid #f1e7e2; }
  .nav a.active::after { display:none; }
  .header-cta { display:none; }
  .hero { grid-template-columns:1fr; }
  .hero-content { padding:65px 7vw 50px; }
  .hero-visual { min-height:430px; padding:20px 7vw 45px; }
  .hero-photo { min-height:390px; border-radius:180px 180px 8px 8px; }
  .hero-stamp { left:4vw; bottom:55px; }
  .category-grid, .product-grid { grid-template-columns:repeat(2,1fr); }
  .personalization { grid-template-columns:1fr; gap:35px; }
  .personal-image { min-height:330px; }
  .about { grid-template-columns:1fr 1fr; gap:30px; }
  .about-image { min-height:280px; }
  .testimonial { grid-column:1 / -1; }
  .footer { grid-template-columns:1fr 1fr; }
  .footer .copyright { text-align:left; }
}
@media (max-width: 560px) {
  .logo strong { font-size:24px; }
  .logo small { font-size:6px; letter-spacing:2px; }
  h1 { font-size:44px; }
  .hero-content { padding-top:55px; }
  .hero-visual { min-height:350px; }
  .hero-photo { min-height:320px; }
  .hero-stamp { width:88px; height:88px; bottom:40px; }
  .hero-stamp strong { font-size:16px; }
  .section { padding:68px 6%; }
  .section-heading h2, .personal-content h2 { font-size:37px; }
  .category-grid, .product-grid { grid-template-columns:1fr; gap:13px; }
  .card-image { height:210px; }
  .product-image { height:260px; }
  .split { align-items:flex-start; flex-direction:column; }
  .benefits { grid-template-columns:1fr 1fr; padding:32px 5%; gap:12px; }
  .benefit-title { grid-column:span 2; }
  .benefit { border-left:0; padding:12px 5px; }
  .about { grid-template-columns:1fr; }
  .about-image { min-height:300px; max-width:360px; width:100%; margin:auto; }
  .testimonial { grid-column:auto; }
  .contact-banner { padding:48px 7%; flex-direction:column; align-items:flex-start; }
  .whatsapp-btn { font-size:11px; }
  .footer { grid-template-columns:1fr; gap:22px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; }
}

/* === CATALOGO STRUTTURATO 2026 === */
.page-hero { min-height:360px; padding:74px max(6%, calc((100% - var(--max))/2 + 5%)); display:flex; align-items:center; justify-content:space-between; gap:30px; background:linear-gradient(120deg,#f8ebe6,#fffaf7 62%); border-bottom:1px solid var(--line); overflow:hidden; }
.page-hero-inner { max-width:760px; position:relative; z-index:1; }
.page-hero h1 { font:clamp(48px,6vw,76px)/1 var(--serif); margin:9px 0 22px; letter-spacing:-1.5px; }
.page-hero h1 em { color:var(--pink-dark); font-weight:400; }
.page-hero-inner > p:not(.eyebrow) { max-width:650px; color:var(--muted); font-size:14px; }
.page-hero-decoration { font:160px/1 var(--serif); color:rgba(189,119,119,.15); transform:rotate(-10deg); margin-right:5%; }
.compact-hero { min-height:300px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; color:#9a8983; font-size:10px; text-transform:uppercase; letter-spacing:1.3px; }
.breadcrumbs a:hover { color:var(--pink-dark); }
.catalogue-hub { padding-top:82px; padding-bottom:96px; }
.section-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:44px; }
.section-card { background:#fff; border:1px solid #f0e2dc; border-radius:10px; overflow:hidden; box-shadow:0 10px 26px rgba(91,62,50,.055); transition:transform .25s, box-shadow .25s; }
.section-card:hover { transform:translateY(-5px); box-shadow:0 16px 34px rgba(91,62,50,.11); }
.section-card-image, .subcategory-visual { height:205px; position:relative; overflow:hidden; background:linear-gradient(135deg,#efd9d1,#f8eee8); }
.section-card-image::before, .subcategory-visual::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 75% 20%,rgba(255,255,255,.75),transparent 30%),radial-gradient(circle at 25% 80%,rgba(255,255,255,.48),transparent 27%); }
.section-card-image > span, .subcategory-visual > span { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); color:#8d7770; font-size:10px; text-transform:uppercase; letter-spacing:2px; z-index:1; white-space:nowrap; }
.section-card-image i, .subcategory-visual i { position:absolute; top:15px; left:16px; z-index:1; font:italic 15px var(--serif); color:#8f7770; }
.section-card-copy { min-height:83px; padding:16px 17px; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.section-card-copy p { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:1.2px; margin-bottom:3px; }
.section-card-copy h3 { font-size:13px; line-height:1.25; }
.section-card-copy b, .subcategory-copy b { color:var(--pink); font-size:21px; font-weight:400; }
.subcategory-section { padding-top:78px; }
.subcategory-section .section-heading { max-width:700px; }
.subcategory-section .section-heading h2 { font:clamp(36px,4vw,50px)/1.08 var(--serif); margin-top:8px; }
.subcategory-section .section-heading h2 em { color:var(--pink-dark); font-weight:400; }
.subcategory-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:38px; }
.subcategory-card { background:#fff; border:1px solid #f0e2dc; border-radius:10px; overflow:hidden; transition:transform .25s, box-shadow .25s; }
.subcategory-card:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(91,62,50,.09); }
.subcategory-visual { height:190px; }
.subcategory-copy { min-height:66px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; }
.subcategory-copy h3 { font-size:12px; line-height:1.35; }
.catalogue-note { margin-top:38px; border:1px solid var(--line); background:#fff; padding:20px 22px; display:flex; align-items:flex-start; gap:14px; border-radius:8px; color:var(--muted); font-size:11px; }
.catalogue-note span { color:var(--pink); font:22px/1 var(--serif); }
.category-products-section { padding-top:80px; padding-bottom:95px; }
.category-empty { min-height:360px; max-width:820px; margin:auto; padding:55px 7%; text-align:center; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#fff; border:1px dashed #ddc7bf; border-radius:12px; }
.empty-heart { color:var(--pink); font:48px/1 var(--serif); margin-bottom:10px; }
.category-empty h2 { font:clamp(31px,4vw,44px)/1.12 var(--serif); margin:8px 0 16px; }
.category-empty > p:not(.eyebrow) { max-width:610px; color:var(--muted); font-size:12px; margin-bottom:27px; }
.tone-pink, .card-image.pink { background:linear-gradient(135deg,#f1d7d6,#f9eeeb); }
.tone-blue, .card-image.blue { background:linear-gradient(135deg,#dce8e9,#eff4f2); }
.tone-gold, .card-image.cream { background:linear-gradient(135deg,#e8d1aa,#f8efdf); }
.tone-ivory, .card-image.ivory { background:linear-gradient(135deg,#eee9df,#faf8f2); }
.tone-red, .card-image.red { background:linear-gradient(135deg,#e7c5c5,#f7e9e5); }
.tone-sage, .card-image.sage { background:linear-gradient(135deg,#d8e0d2,#eef0e8); }
.tone-lilac, .card-image.lilac { background:linear-gradient(135deg,#ddd4e6,#f2edf5); }
.tone-coral, .card-image.coral { background:linear-gradient(135deg,#efcfca,#faece6); }
.tone-sand, .card-image.sand { background:linear-gradient(135deg,#e8dccb,#f7f1e8); }
.tone-gift, .card-image.gift { background:linear-gradient(135deg,#e7d6ce,#f4e9df); }
.tone-aqua, .card-image.aqua { background:linear-gradient(135deg,#cfe3e2,#edf5f2); }
.tone-holiday, .card-image.christmas { background:linear-gradient(135deg,#d9e0d7,#f0e9df); }
@media (max-width:1050px) { .section-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:800px) { .page-hero { min-height:300px; padding:55px 7%; } .page-hero-decoration { display:none; } .section-grid { grid-template-columns:repeat(2,1fr); } .subcategory-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .page-hero { min-height:260px; padding:46px 6%; } .page-hero h1 { font-size:44px; } .section-grid, .subcategory-grid { grid-template-columns:1fr; } .section-card-image, .subcategory-visual { height:215px; } .catalogue-hub, .subcategory-section, .category-products-section { padding-top:60px; padding-bottom:68px; } }


/* === IMMAGINI REALI HOME / CATALOGO === */
.home-photo,
.card-image,
.product-image,
.section-card-image {
  overflow: hidden;
}

.home-photo > img,
.card-image > img,
.product-image > img,
.section-card-image > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.hero-photo.home-photo > img {
  object-position: center;
}

.personal-image.home-photo > img {
  object-position: center;
}

.card-image > img,
.product-image > img,
.section-card-image > img {
  transition: transform .35s ease;
}

.category-card:hover .card-image > img,
.product-card:hover .product-image > img,
.section-card:hover .section-card-image > img {
  transform: scale(1.035);
}

/* Nasconde le decorazioni da placeholder quando è presente una foto reale. */
.home-photo::before,
.card-image:has(> img)::before,
.product-image:has(> img)::before,
.section-card-image:has(> img)::before {
  display: none;
}

/* Il numero rimane leggibile sulle foto della selezione e del catalogo. */
.product-image i,
.section-card-image i {
  z-index: 2;
  background: rgba(255, 250, 247, .86);
  padding: 4px 7px;
  border-radius: 999px;
  backdrop-filter: blur(4px);
}

.site-logo {
    display: block;
    width: 210px;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

@media (max-width: 600px) {
    .site-logo {
        width: 155px;
    }
}

/* === FIOCCHI NASCITA / SCHEDE PRODOTTO === */
.subcategory-visual.has-photo::before { display:none; }
.subcategory-visual.has-photo > img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.subcategory-card:hover .subcategory-visual.has-photo > img { transform:scale(1.035); }
.subcategory-visual.has-photo i {
  background:rgba(255,250,247,.88);
  border-radius:999px;
  padding:4px 7px;
  backdrop-filter:blur(4px);
}

.product-catalogue-section { padding-top:76px; padding-bottom:92px; }
.product-catalogue-heading { max-width:760px; }
.product-catalogue-heading h2 {
  font:clamp(38px,4.5vw,54px)/1.06 var(--serif);
  margin:8px 0 13px;
}
.product-catalogue-heading h2 em { color:var(--pink-dark); font-weight:400; }
.product-catalogue-heading > p:not(.eyebrow) { color:var(--muted); font-size:12px; max-width:690px; }

.catalog-products-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  margin-top:42px;
}
.catalog-product-card {
  min-width:0;
  overflow:hidden;
  background:#fff;
  border:1px solid #efdfd9;
  border-radius:12px;
  box-shadow:0 10px 28px rgba(82,57,48,.055);
  transition:transform .25s ease, box-shadow .25s ease;
}
.catalog-product-card:hover {
  transform:translateY(-5px);
  box-shadow:0 17px 38px rgba(82,57,48,.11);
}
.catalog-product-image {
  display:block;
  height:345px;
  overflow:hidden;
  background:#f7efeb;
}
.catalog-product-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .4s ease;
}
.catalog-product-card:hover .catalog-product-image img { transform:scale(1.025); }
.catalog-product-body { padding:19px 19px 20px; }
.catalog-product-category {
  font-size:9px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--pink-dark);
  font-weight:700;
  margin-bottom:7px;
}
.catalog-product-body h3 {
  font:25px/1.08 var(--serif);
  margin-bottom:10px;
}
.catalog-product-description {
  min-height:55px;
  font-size:11px;
  line-height:1.6;
  color:var(--muted);
}
.catalog-product-bottom {
  margin-top:18px;
  padding-top:15px;
  border-top:1px solid #f0e5e0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.catalog-product-price {
  color:var(--pink-dark);
  font:20px/1 var(--serif);
  font-weight:400;
}
.catalog-product-link {
  color:var(--text);
  font-size:11px;
  font-weight:700;
}
.catalog-product-link span { color:var(--pink); font-size:18px; margin-left:4px; }
.price-note {
  margin-top:34px;
  padding:18px 21px;
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:#fff;
  border:1px solid var(--line);
  border-radius:9px;
  color:var(--muted);
  font-size:10px;
}
.price-note span { color:var(--pink); font:22px/1 var(--serif); }

/* dettaglio */
.product-detail-breadcrumb-wrap {
  max-width:var(--max);
  margin:auto;
  padding:25px 5% 0;
}
.product-detail-breadcrumbs { margin-top:0; }
.product-detail {
  display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(350px,.94fr);
  gap:64px;
  align-items:start;
  padding-top:40px;
}
.product-detail-media {
  overflow:hidden;
  border-radius:14px;
  background:#f5ece8;
  box-shadow:0 16px 44px rgba(76,51,42,.08);
}
.product-detail-media img {
  width:100%;
  max-height:760px;
  object-fit:contain;
  display:block;
  background:#f8f3ef;
}
.product-detail-content {
  position:sticky;
  top:110px;
  padding-top:14px;
}
.product-detail-content h1 {
  font:clamp(44px,5vw,68px)/.98 var(--serif);
  letter-spacing:-1px;
  margin-bottom:15px;
}
.detail-price {
  display:inline-block;
  margin:0 0 22px;
  color:var(--pink-dark);
  font:28px/1 var(--serif);
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.detail-description {
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
  max-width:570px;
  margin-bottom:27px;
}
.detail-options {
  padding:22px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.detail-options h2 { font:27px/1.1 var(--serif); margin-bottom:13px; }
.detail-options ul { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:8px 18px; }
.detail-options li {
  position:relative;
  padding-left:18px;
  color:#655f5c;
  font-size:11px;
}
.detail-options li::before {
  content:"♡";
  position:absolute;
  left:0;
  color:var(--pink);
}
.detail-info-box {
  margin:22px 0;
  padding:16px 17px;
  background:#f9efeb;
  border-radius:8px;
  color:#6e625e;
  font-size:10px;
  line-height:1.65;
}
.detail-actions { display:flex; flex-wrap:wrap; gap:10px; }
.detail-whatsapp { min-width:260px; }
.detail-service-strip {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#f8eeea;
  padding:32px max(5%,calc((100% - var(--max))/2 + 5%));
}
.detail-service-strip > div {
  text-align:center;
  padding:8px 25px;
  border-left:1px solid var(--line);
}
.detail-service-strip > div:first-child { border-left:0; }
.detail-service-strip span { color:var(--pink); font-size:23px; display:block; }
.detail-service-strip strong { display:block; font-size:11px; margin:4px 0 2px; }
.detail-service-strip p { color:var(--muted); font-size:9px; }

@media (max-width:950px) {
  .catalog-products-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-detail { grid-template-columns:1fr; gap:35px; }
  .product-detail-content { position:static; }
  .product-detail-media img { max-height:700px; }
}
@media (max-width:600px) {
  .catalog-products-grid { grid-template-columns:1fr; }
  .catalog-product-image { height:auto; aspect-ratio:1/1; }
  .catalog-product-description { min-height:0; }
  .product-detail { padding-top:28px; }
  .product-detail-content h1 { font-size:44px; }
  .detail-options ul { grid-template-columns:1fr; }
  .detail-actions { flex-direction:column; align-items:stretch; }
  .detail-actions .btn { width:100%; }
  .detail-service-strip { grid-template-columns:1fr; padding:20px 6%; }
  .detail-service-strip > div { border-left:0; border-top:1px solid var(--line); }
  .detail-service-strip > div:first-child { border-top:0; }
}


/* === CATALOGO COMPLETO: PLACEHOLDER PRODOTTI PROVVISORI === */
.generic-product-placeholder,
.generic-detail-placeholder {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;
  color:#876e67;
}
.generic-product-placeholder::before,
.generic-detail-placeholder::before {
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 72% 24%, rgba(255,255,255,.85), transparent 25%),
    radial-gradient(circle at 24% 76%, rgba(255,255,255,.48), transparent 24%);
  pointer-events:none;
}
.placeholder-tone-1 { background:linear-gradient(135deg,#eed5cf,#faefeb 52%,#e5c8bf); }
.placeholder-tone-2 { background:linear-gradient(135deg,#dbe6eb,#f6f1ed 52%,#d6e1dc); }
.placeholder-tone-3 { background:linear-gradient(135deg,#eee2ca,#fbf4e9 52%,#e3d6bd); }
.placeholder-tone-4 { background:linear-gradient(135deg,#e1d8e7,#f7eef2 52%,#e8d4db); }

.generic-product-placeholder > *,
.generic-detail-placeholder > * {
  position:relative;
  z-index:1;
}
.generic-placeholder-icon {
  font:42px/1 var(--serif);
  color:var(--pink);
  margin-bottom:7px;
}
.generic-product-placeholder small,
.generic-detail-placeholder small {
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:2.3px;
  font-weight:700;
}
.generic-product-placeholder b {
  position:absolute;
  right:13px;
  bottom:10px;
  font:italic 12px var(--serif);
  color:#8b7770;
  background:rgba(255,250,247,.82);
  padding:4px 7px;
  border-radius:999px;
}
.generic-detail-placeholder {
  min-height:610px;
  border-radius:14px;
  box-shadow:0 16px 44px rgba(76,51,42,.08);
}
.generic-detail-placeholder .generic-placeholder-icon {
  font-size:72px;
}
.generic-detail-placeholder small {
  font-size:11px;
}
.generic-detail-placeholder b {
  position:absolute;
  right:24px;
  bottom:20px;
  font:italic 22px var(--serif);
  color:#8b7770;
}
.catalog-back-row {
  margin-top:28px;
}
@media (max-width:950px) {
  .generic-detail-placeholder { min-height:480px; }
}
@media (max-width:600px) {
  .generic-detail-placeholder { min-height:390px; }
}


/* === ASILO E SCUOLA: FOTO REALI + GALLERIE === */
.asilo-group-copy { position:relative; display:block; padding-right:44px; }
.asilo-group-copy p { margin-top:7px; color:var(--muted); font-size:10px; line-height:1.45; font-weight:400; }
.asilo-group-copy b { position:absolute; right:18px; top:20px; }
.asilo-real-card .catalog-product-image { background:#f6efeb; }
.asilo-real-card .catalog-product-image img { object-position:center; }
.asilo-detail-gallery { min-width:0; }
.asilo-product-detail { align-items:start; }
.asilo-thumbnails { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:10px; }
.asilo-thumb { padding:0; border:1px solid transparent; border-radius:8px; background:#fff; overflow:hidden; aspect-ratio:1/1; cursor:pointer; opacity:.72; transition:.2s ease; }
.asilo-thumb:hover, .asilo-thumb.active { opacity:1; border-color:var(--pink); transform:translateY(-1px); }
.asilo-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.asilo-product-detail .product-detail-media img { width:100%; height:auto; max-height:720px; object-fit:contain; background:#f8f3ef; }
@media (max-width:950px) { .asilo-thumbnails { grid-template-columns:repeat(6,minmax(0,1fr)); } }
@media (max-width:600px) { .asilo-thumbnails { grid-template-columns:repeat(4,minmax(0,1fr)); } .asilo-group-copy p{font-size:9px;} }
