/*
Theme Name: Cilentana Carni
Author: ZACCS Tech Corp
Description: Tema WordPress leggero e responsive per Cilentana Carni.
Version: 2.0.2
Text Domain: cilentana-carni
*/

:root {
  --cc-bordeaux: #6E0F17;
  --cc-gold: #B88A2D;
  --cc-ivory: #F8F4EC;
  --cc-olive: #667B3A;
  --cc-brown: #3D241C;
  --cc-white: #FFFFFF;
  --cc-muted: #746B63;
  --cc-shadow: 0 18px 50px rgba(61, 36, 28, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--cc-brown);
  background: var(--cc-ivory);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 19px;
  line-height: 1.65;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
address { font-style: normal; }
a:focus-visible, button:focus-visible {
  outline: 3px solid #e1bd65;
  outline-offset: 3px;
}
h1, h2, h3, h4, .cc-nav, .cc-button {
  font-family: Cinzel, Georgia, serif;
  letter-spacing: .035em;
}
h1 { font-size: clamp(2.4rem, 6vw, 5.6rem); line-height: 1.03; margin: 0 0 1rem; }
h2 { font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1.12; margin: 0 0 1rem; }
h3 { font-size: 1.25rem; line-height: 1.25; }
p { margin: 0 0 1.25rem; }

.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.cc-container { width: min(1160px, calc(100% - 40px)); margin-inline: auto; }
.cc-section { padding: clamp(72px, 10vw, 128px) 0; }
.cc-section--white { background: var(--cc-white); }
.cc-section--dark { background: var(--cc-brown); color: var(--cc-ivory); }
.cc-eyebrow {
  color: var(--cc-gold);
  font-family: Cinzel, Georgia, serif;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.cc-lead { font-size: clamp(1.15rem, 2vw, 1.45rem); max-width: 720px; }
.cc-center { text-align: center; }
.cc-center .cc-lead { margin-inline: auto; }

.cc-header {
  position: sticky; top: 0; z-index: 20;
  background: rgba(248,244,236,.96);
  border-bottom: 1px solid rgba(184,138,45,.28);
  backdrop-filter: blur(14px);
}
.cc-header__inner { min-height: 96px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.cc-brand { text-decoration:none; display:flex; align-items:center; gap:12px; }
.cc-brand__logo { width:74px; height:74px; object-fit:contain; border-radius:50%; mix-blend-mode:multiply; }
.cc-brand__text strong { display:block; color:var(--cc-bordeaux); font-family:Cinzel,serif; font-size:1rem; }
.cc-brand__text span { display:block; color:var(--cc-gold); font-family:"Great Vibes",cursive; font-size:1.1rem; line-height:1; }
.cc-nav ul { display:flex; align-items:center; gap:24px; list-style:none; padding:0; margin:0; font-size:.76rem; font-weight:700; }
.cc-nav a { text-decoration:none; position:relative; }
.cc-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-7px; height:2px; background:var(--cc-gold); transition:.25s; }
.cc-nav a:hover::after, .cc-nav .current-menu-item a::after { right:0; }
.cc-menu-toggle { display:none; border:0; background:none; color:var(--cc-bordeaux); font:700 .8rem Cinzel,serif; }

.cc-button {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  min-height:50px; padding:12px 22px; border:1px solid var(--cc-bordeaux);
  background:var(--cc-bordeaux); color:white; text-decoration:none; font-size:.78rem; font-weight:700;
  transition:.25s transform,.25s background,.25s border-color;
}
.cc-button:hover { transform:translateY(-2px); background:var(--cc-gold); border-color:var(--cc-gold); }
.cc-button--outline { background:transparent; color:inherit; border-color:currentColor; }
.cc-buttons { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.cc-buttons--center { justify-content:center; }
.cc-button--dark-outline { color:var(--cc-bordeaux); }
.wp-block-button.cc-button { min-height:0; padding:0; border:0; background:transparent; }
.wp-block-button.cc-button:hover { transform:none; background:transparent; }
.wp-block-button.cc-button .wp-block-button__link { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:50px; padding:12px 22px; border:1px solid var(--cc-bordeaux); border-radius:0; background:var(--cc-bordeaux); color:white; text-decoration:none; font-family:Cinzel,Georgia,serif; font-size:.78rem; font-weight:700; transition:.25s transform,.25s background,.25s border-color; }
.wp-block-button.cc-button .wp-block-button__link:hover { transform:translateY(-2px); background:var(--cc-gold); border-color:var(--cc-gold); }
.wp-block-button.cc-button--outline .wp-block-button__link { background:transparent; color:inherit; border-color:currentColor; }

.cc-hero {
  min-height: calc(100svh - 96px); display:grid; place-items:center; color:white;
  background:
    linear-gradient(90deg, rgba(29,14,10,.88), rgba(29,14,10,.43)),
    radial-gradient(circle at 78% 30%, rgba(184,138,45,.32), transparent 35%),
    linear-gradient(135deg, rgba(53,24,17,.7), rgba(110,15,23,.45) 52%, rgba(38,19,14,.7)),
    url('assets/hero-video-poster.jpg') center/cover no-repeat;
  position:relative; overflow:hidden; margin-block-start:0 !important;
}
.cc-hero > * { margin-block-start:0 !important; }
.cc-hero__video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:0; transition:opacity .22s ease; }
.cc-hero.is-video-playing .cc-hero__video { opacity:1; }
.cc-hero > figure.cc-hero__video { margin:0 !important; }
.cc-hero > figure.cc-hero__video video { width:100%; height:100%; object-fit:cover; }
.cc-hero__overlay { position:absolute; inset:0; z-index:1; margin:0 !important; background:linear-gradient(90deg,rgba(25,10,7,.9) 0%,rgba(45,15,12,.67) 52%,rgba(40,15,9,.34) 100%); }
.cc-hero::after {
  content:""; position:absolute; inset:0; opacity:.16;
  background-image:repeating-linear-gradient(115deg, transparent 0 28px, rgba(255,255,255,.13) 29px 30px);
  z-index:2; pointer-events:none;
}
.cc-hero__content { position:relative; z-index:3; padding:100px 0; }
.cc-hero h1 { color:var(--cc-white); }
.cc-hero__script { color:#e1bd65; font-family:"Great Vibes",cursive; font-size:clamp(2rem,4vw,3.5rem); }
.cc-eyebrow p,.cc-icon p,.cc-hero__script p { margin:0; }
.cc-hero .cc-lead { color:#f7efe5; }

.cc-grid { display:grid; gap:24px; }
.cc-grid--4 { grid-template-columns:repeat(4,1fr); }
.cc-grid--3 { grid-template-columns:repeat(3,1fr); }
.cc-grid--2 { grid-template-columns:repeat(2,1fr); }
.cc-card {
  background:white; border:1px solid rgba(184,138,45,.2); padding:32px; box-shadow:var(--cc-shadow);
  transition:.3s transform,.3s border-color;
}
.cc-card:hover { transform:translateY(-6px); border-color:var(--cc-gold); }
.cc-icon { color:var(--cc-gold); font-size:2rem; }
.cc-card h3 { color:var(--cc-bordeaux); }
.cc-product {
  min-height:300px; padding:30px; display:flex; align-items:flex-end; position:relative; overflow:hidden;
  color:white; text-decoration:none; background:linear-gradient(145deg,#3D241C,#6E0F17);
}
.cc-product::before { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(20,8,5,.8),transparent 70%); }
.cc-product::after { content:"IMMAGINE"; position:absolute; top:18px; right:18px; color:rgba(255,255,255,.48); font:700 .62rem Cinzel,serif; letter-spacing:.16em; }
.cc-product h3 { position:relative; z-index:1; font-size:1.35rem; margin:0; }
.cc-product--photo { background-image:linear-gradient(0deg,rgba(20,8,5,.82),rgba(20,8,5,.04) 75%),var(--cc-product-image); background-position:center; background-size:cover; transition:.35s transform,.35s filter; }
.cc-product--photo::before,.cc-product--photo::after { display:none; }
.cc-product--photo:hover { transform:translateY(-5px); filter:saturate(1.06); }
.cc-story-image { width:100%; min-height:460px; object-fit:cover; box-shadow:var(--cc-shadow); }
.wp-block-image.cc-story-image { margin:0; overflow:hidden; }
.wp-block-image.cc-story-image img { width:100%; min-height:460px; height:100%; object-fit:cover; }
.cc-logo-panel { min-height:460px; display:grid; place-items:center; padding:clamp(30px,6vw,70px); background:white; border:1px solid rgba(184,138,45,.25); box-shadow:var(--cc-shadow); }
.cc-logo-panel img { width:min(100%,560px); height:auto; mix-blend-mode:multiply; }

/* About page */
.cc-about-story-section { position:relative; }
.cc-about-story-section::before { content:""; position:absolute; top:0; right:0; width:38%; height:100%; pointer-events:none; background:radial-gradient(circle at 100% 20%,rgba(184,138,45,.12),transparent 64%); }
.cc-about-story { position:relative; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr); gap:clamp(42px,7vw,90px); align-items:center; }
.cc-about-story__copy { padding:clamp(10px,2vw,26px) 0; }
.cc-about-story__copy h2 { max-width:720px; }
.cc-about-story__copy p:not(.cc-lead) { max-width:730px; }
.cc-about-signature { margin-top:30px; color:var(--cc-bordeaux); font:400 2.35rem "Great Vibes",cursive; }
.cc-about-story__brand { padding:14px; background:rgba(248,244,236,.74); border:1px solid rgba(184,138,45,.2); border-radius:20px; box-shadow:0 24px 70px rgba(61,36,28,.1); }
.cc-about-story__brand .cc-logo-panel { width:100%; min-height:350px; border-radius:14px; box-shadow:none; }
.cc-about-story__brand > p { margin:0; padding:19px 18px 10px; text-align:center; color:var(--cc-bordeaux); font-family:Cinzel,Georgia,serif; font-size:.83rem; letter-spacing:.05em; }
.cc-about-values-section { background:linear-gradient(180deg,#f3ecdf 0%,var(--cc-ivory) 100%); }
.cc-about-values-heading { margin-bottom:38px; }
.cc-about-values { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.cc-about-value-card { position:relative; min-height:250px; padding:34px 30px 31px; overflow:hidden; background:rgba(255,255,255,.9); border:1px solid rgba(184,138,45,.23); border-radius:16px; box-shadow:0 15px 40px rgba(61,36,28,.08); transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease; }
.cc-about-value-card::after { content:""; position:absolute; right:-48px; bottom:-55px; width:135px; height:135px; border:1px solid rgba(110,15,23,.08); border-radius:50%; }
.cc-about-value-card__number { display:inline-block; margin-bottom:23px; color:var(--cc-gold); font:700 .7rem Cinzel,Georgia,serif; letter-spacing:.14em; }
.cc-about-value-card h3 { margin:0 0 12px; color:var(--cc-bordeaux); font-size:1.05rem; }
.cc-about-value-card p { position:relative; z-index:1; margin:0; }
.cc-about-value-card:hover { transform:translateY(-5px); border-color:rgba(184,138,45,.55); box-shadow:0 24px 55px rgba(61,36,28,.13); }
.cc-about-manifesto { display:grid; grid-template-columns:minmax(0,1fr) minmax(380px,.9fr); gap:clamp(40px,7vw,90px); align-items:center; padding:clamp(38px,5vw,68px); color:white; background:linear-gradient(135deg,#4b1113,#6e0f17 54%,#3d241c); border-radius:20px; box-shadow:0 28px 75px rgba(61,36,28,.2); }
.cc-about-manifesto h2 { color:white; }
.cc-about-manifesto .cc-lead { color:#f2e6dc; }
.cc-about-manifesto__points { display:grid; gap:0; border-top:1px solid rgba(255,255,255,.16); }
.cc-about-manifesto__points > div { display:grid; grid-template-columns:130px 1fr; gap:22px; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.cc-about-manifesto__points strong { color:#e5bd66; font-family:Cinzel,Georgia,serif; font-size:.78rem; letter-spacing:.06em; }
.cc-about-manifesto__points span { color:#f2e6dc; }
.cc-about-products { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(42px,7vw,86px); align-items:center; }
.cc-about-products__media { position:relative; min-height:520px; overflow:hidden; border-radius:18px; box-shadow:0 28px 70px rgba(0,0,0,.3); }
.cc-about-products__media::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(25,8,6,.72),transparent 55%); }
.cc-about-products__media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.cc-about-products__media:hover img { transform:scale(1.035); }
.cc-about-products__media span { position:absolute; left:28px; bottom:25px; z-index:1; color:white; font:700 .72rem Cinzel,Georgia,serif; letter-spacing:.13em; text-transform:uppercase; }
.cc-about-products__copy h2 { color:white; }
.cc-about-products__copy .cc-lead { color:#e9ddd4; }
.cc-about-final-cta { background:linear-gradient(180deg,var(--cc-ivory),#efe4d4); }
.cc-about-final-cta .cc-lead { max-width:760px; margin-right:auto; margin-left:auto; }

.cc-split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,7vw,90px); align-items:center; }
.cc-media-placeholder {
  min-height:460px; display:grid; place-items:center; text-align:center; padding:30px; color:#fff;
  background:linear-gradient(145deg,#667B3A,#3D241C); box-shadow:var(--cc-shadow);
}
.cc-media-placeholder span { opacity:.75; font-family:Cinzel,serif; font-size:.78rem; letter-spacing:.16em; }
.cc-quote { padding:40px; border-left:3px solid var(--cc-gold); background:rgba(255,255,255,.06); }
.cc-section--dark .cc-quote h3 { color:var(--cc-ivory); }

.cc-page-hero { position:relative; display:grid; align-items:center; min-height:390px; padding:110px 0 80px; overflow:hidden; color:white; background:linear-gradient(135deg,#3D241C,#6E0F17); }
.cc-page-hero__content { position:relative; z-index:3; }
.cc-page-hero__poster,.cc-page-hero__video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 58%; }
.cc-page-hero > figure.cc-page-hero__poster,.cc-page-hero > figure.cc-page-hero__video { margin:0; }
.cc-page-hero > figure.cc-page-hero__poster img,.cc-page-hero > figure.cc-page-hero__video video { width:100%; height:100%; object-fit:cover; object-position:inherit; }
.cc-page-hero--products .cc-page-hero__poster { object-position:center 55%; }
.cc-page-hero--about .cc-page-hero__poster { object-position:center 50%; }
.cc-page-hero--contact .cc-page-hero__poster { object-position:center 55%; }
.cc-page-hero__poster { z-index:0; }
.cc-page-hero__video { z-index:1; }
.cc-page-hero__overlay { position:absolute; inset:0; z-index:2; background:linear-gradient(90deg,rgba(28,10,8,.94) 0%,rgba(57,17,14,.72) 52%,rgba(45,18,11,.4) 100%); }
.cc-page-hero--media::after { content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(0deg,rgba(30,12,8,.42),transparent 55%); }
.cc-page-hero--image .cc-page-hero__overlay { background:linear-gradient(90deg,rgba(28,10,8,.62) 0%,rgba(57,17,14,.18) 52%,rgba(45,18,11,0) 100%); }
.cc-page-hero--image::after { background:linear-gradient(0deg,rgba(30,12,8,.12),transparent 62%); }
.cc-page-hero--media .cc-lead { max-width:760px; color:#f7efe5; }
.cc-breadcrumb { color:#dec18a; font-family:Cinzel,serif; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
.cc-list { padding:0; list-style:none; }
.cc-list li { padding:12px 0; border-bottom:1px solid rgba(184,138,45,.2); }
.cc-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.cc-gallery__item { aspect-ratio:4/3; display:grid; place-items:center; background:linear-gradient(145deg,#6E0F17,#3D241C); color:#fff; font:700 .7rem Cinzel,serif; letter-spacing:.13em; }
.cc-gallery__item:nth-child(2n) { background:linear-gradient(145deg,#667B3A,#3D241C); }
.cc-contact-box { padding:32px; background:white; border-top:4px solid var(--cc-gold); box-shadow:var(--cc-shadow); }
.cc-notice { padding:18px 22px; background:#fff5dc; border-left:4px solid var(--cc-gold); font-size:.95rem; }

.cc-category-nav { position:sticky; top:96px; z-index:9; background:rgba(248,244,236,.97); border-bottom:1px solid rgba(184,138,45,.25); box-shadow:0 8px 26px rgba(61,36,28,.06); backdrop-filter:blur(12px); }
.cc-category-nav .cc-container { display:flex; gap:8px; overflow-x:auto; padding-top:13px; padding-bottom:13px; scrollbar-width:none; }
.cc-category-nav .cc-container::-webkit-scrollbar { display:none; }
.cc-category-nav a { flex:0 0 auto; padding:8px 13px; border:1px solid rgba(110,15,23,.22); color:var(--cc-bordeaux); text-decoration:none; font:600 .7rem Cinzel,serif; letter-spacing:.04em; }
.cc-category-nav a:hover { background:var(--cc-bordeaux); color:white; }
.cc-section-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:38px; }
.cc-section-heading > p { max-width:520px; margin:0; font-size:1.1rem; }
.cc-product-list { align-items:stretch; }
.cc-product-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; background:white; color:var(--cc-brown); border:1px solid rgba(184,138,45,.23); border-radius:16px; box-shadow:var(--cc-shadow); transition:.3s transform,.3s box-shadow; }
.cc-product-card:hover { transform:translateY(-5px); box-shadow:0 24px 58px rgba(61,36,28,.17); }
.cc-product-card__media { position:relative; aspect-ratio:4/3; overflow:hidden; background:#e7ded0; }
.cc-featured-products .cc-product-card__media { aspect-ratio:16/10; }
.cc-product-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.cc-product-card__media .wp-block-image,.cc-gastronomy-card__media .wp-block-image { width:100%; height:100%; margin:0; }
.cc-product-card:hover .cc-product-card__media img { transform:scale(1.035); }
.cc-product-card__tag,.cc-pill { position:absolute; left:18px; bottom:18px; padding:7px 10px; background:rgba(110,15,23,.93); color:white; border-radius:6px; font:700 .65rem Cinzel,serif; letter-spacing:.06em; text-transform:uppercase; }
.cc-product-card__body { padding:25px 26px 27px; }
.cc-product-card__body h3 { margin:0 0 10px; color:var(--cc-bordeaux); font-size:1.05rem; }
.cc-product-card__body p { margin:0; }
.cc-local-banner { display:flex; align-items:center; gap:20px; margin:36px 0; padding:25px 28px; color:white; background:linear-gradient(120deg,var(--cc-olive),#49592b); box-shadow:var(--cc-shadow); }
.cc-local-banner__icon { font-size:2rem; }
.cc-local-banner strong { display:block; font:700 1rem Cinzel,serif; }
.cc-local-banner p { margin:4px 0 0; }
.cc-salumi-story { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(34px,7vw,80px); align-items:center; margin-top:70px; }
.cc-salumi-story__gallery { display:grid; grid-template-columns:1.1fr .9fr; grid-template-rows:1fr 1fr; gap:10px; min-height:520px; }
.cc-salumi-story__gallery img { width:100%; height:100%; object-fit:cover; }
.cc-salumi-story__gallery img:first-child { grid-row:1 / 3; }
.cc-availability-note { margin:30px 0 0; padding:20px 24px; border-left:3px solid var(--cc-olive); background:var(--cc-ivory); }
.cc-gastronomy-feature { display:grid; grid-template-columns:1.1fr 1fr; align-items:stretch; margin-bottom:35px; background:var(--cc-bordeaux); color:white; box-shadow:var(--cc-shadow); }
.cc-gastronomy-feature img { width:100%; height:100%; min-height:390px; object-fit:cover; }
.cc-gastronomy-feature > div { display:flex; flex-direction:column; justify-content:center; padding:clamp(34px,6vw,72px); }
.cc-gastronomy-feature .cc-pill { position:static; align-self:flex-start; margin-bottom:18px; background:var(--cc-gold); }
.cc-gastronomy-feature--reverse { margin-top:42px; grid-template-columns:.85fr 1.15fr; }
.cc-gastronomy-feature--reverse img { order:2; }
.cc-gastronomy-feature--premium { border-radius:18px; overflow:hidden; }
.cc-gastronomy-grid { align-items:stretch; }
.cc-gastronomy-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; background:white; border:1px solid rgba(184,138,45,.22); border-radius:16px; box-shadow:var(--cc-shadow); transition:transform .3s ease,box-shadow .3s ease; }
.cc-gastronomy-card__media { position:relative; aspect-ratio:4/3; overflow:hidden; background:#e7ded0; }
.cc-gastronomy-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.cc-gastronomy-card__media span { position:absolute; left:17px; bottom:17px; padding:7px 10px; color:white; background:rgba(110,15,23,.93); font:700 .62rem Cinzel,Georgia,serif; letter-spacing:.06em; text-transform:uppercase; }
.cc-gastronomy-card__body { flex:1; padding:25px 26px 28px; }
.cc-gastronomy-card__body h3 { margin:0 0 10px; color:var(--cc-bordeaux); font-size:1.02rem; }
.cc-gastronomy-card__body p { margin:0; }
@media (hover:hover) {
  .cc-gastronomy-card:hover { transform:translateY(-5px); box-shadow:0 24px 58px rgba(61,36,28,.17); }
  .cc-gastronomy-card:hover .cc-gastronomy-card__media img { transform:scale(1.035); }
}
.cc-recipe-grid { align-items:stretch; }
.cc-recipe-card { padding:28px; background:white; border-top:3px solid var(--cc-gold); box-shadow:var(--cc-shadow); }
.cc-recipe-card > span { color:var(--cc-gold); font:700 .75rem Cinzel,serif; letter-spacing:.12em; }
.cc-recipe-card h3 { margin:12px 0 10px; color:var(--cc-bordeaux); font-size:.95rem; }
.cc-recipe-card p { margin:0; font-size:.96rem; }
.cc-section--territory { background:#e9e7d8; }
.cc-territory-hero { display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(38px,7vw,80px); align-items:center; margin-bottom:48px; }
.cc-territory-hero img { width:100%; min-height:480px; height:100%; object-fit:cover; box-shadow:var(--cc-shadow); }
.cc-small { font-size:.9rem; color:var(--cc-muted); }
.cc-territory-card { display:flex; flex-direction:column; min-width:0; padding:27px; overflow:hidden; background:rgba(255,255,255,.78); border-left:3px solid var(--cc-olive); }
.cc-territory-card--media { padding:0; border-left:0; border-radius:16px; background:white; box-shadow:var(--cc-shadow); }
.cc-territory-card__media { aspect-ratio:4/3; overflow:hidden; background:#ded7c8; }
.cc-territory-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.cc-territory-card--media:hover .cc-territory-card__media img { transform:scale(1.035); }
.cc-territory-card__body { flex:1; }
.cc-territory-card--media .cc-territory-card__body { padding:25px 25px 28px; border-left:3px solid var(--cc-olive); }
.cc-territory-card h3 { margin:0 0 10px; color:var(--cc-bordeaux); font-size:.93rem; }
.cc-territory-card p { margin:0; font-size:.95rem; }
.cc-certification-note { margin-top:28px; padding:20px 24px; background:white; border:1px solid rgba(102,123,58,.3); }

.cc-page-hero--contact {
  min-height:350px;
  padding:90px 0 120px;
}
.cc-contact-cards-section {
  position:relative;
  z-index:5;
  margin-top:-66px;
  padding-bottom:72px;
}
.cc-contact-cards {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.cc-contact-card {
  position:relative;
  isolation:isolate;
  display:flex;
  min-width:0;
  min-height:232px;
  flex-direction:column;
  padding:30px;
  overflow:hidden;
  color:var(--cc-brown);
  background:rgba(255,255,255,.98);
  border:1px solid rgba(184,138,45,.24);
  border-radius:18px;
  box-shadow:0 18px 45px rgba(61,36,28,.13);
  text-decoration:none;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease;
}
.cc-contact-card::before {
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,var(--cc-bordeaux),var(--cc-gold));
}
.cc-contact-card::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:150px;
  height:150px;
  right:-72px;
  bottom:-90px;
  border-radius:50%;
  background:rgba(184,138,45,.08);
}
.cc-contact-card--whatsapp::before { background:linear-gradient(90deg,#426d39,#8b9c62); }
.cc-contact-card__top { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:22px; }
.cc-contact-card__icon {
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  flex:0 0 52px;
  color:var(--cc-bordeaux);
  background:var(--cc-ivory);
  border:1px solid rgba(184,138,45,.22);
  border-radius:14px;
}
.cc-contact-card--whatsapp .cc-contact-card__icon { color:#426d39; background:#edf3e8; border-color:rgba(66,109,57,.2); }
.cc-contact-card__icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.cc-contact-card--whatsapp .cc-contact-card__icon svg { fill:currentColor; stroke:none; }
.cc-contact-card__arrow,.cc-social-card__arrow {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  color:var(--cc-bordeaux);
  border:1px solid rgba(110,15,23,.17);
  border-radius:50%;
  font-family:Arial,sans-serif;
  font-size:1rem;
  transition:transform .25s ease,background .25s ease,color .25s ease;
}
.cc-contact-card__label {
  color:#765417;
  font:700 .68rem Cinzel,Georgia,serif;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.cc-contact-card__value {
  display:block;
  margin:8px 0 9px;
  overflow-wrap:anywhere;
  color:var(--cc-bordeaux);
  font:600 clamp(1rem,1.5vw,1.22rem) Cinzel,Georgia,serif;
  line-height:1.3;
}
.cc-contact-card__meta { margin-top:auto; color:var(--cc-muted); font-size:.93rem; line-height:1.45; }

.cc-visit-section { padding-top:34px; }
.cc-visit-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:50px;
  margin-bottom:38px;
}
.cc-visit-heading h2 { margin-bottom:0; }
.cc-visit-heading > p { max-width:500px; margin:0; font-size:1.08rem; }
.cc-visit-card {
  display:grid;
  grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);
  overflow:hidden;
  background:white;
  border:1px solid rgba(184,138,45,.22);
  border-radius:20px;
  box-shadow:0 22px 58px rgba(61,36,28,.14);
}
.cc-opening-hours { padding:48px 44px; background:var(--cc-ivory); }
.cc-opening-hours__icon {
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  margin-bottom:24px;
  color:var(--cc-bordeaux);
  background:white;
  border:1px solid rgba(184,138,45,.28);
  border-radius:14px;
  box-shadow:0 10px 25px rgba(61,36,28,.08);
}
.cc-opening-hours__icon svg { width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.cc-opening-hours h3 { margin:7px 0 18px; color:var(--cc-bordeaux); font-size:1.34rem; }
.cc-hours-list { margin:0 0 22px; }
.cc-hours-list > div { display:flex; justify-content:space-between; gap:24px; padding:17px 0; border-bottom:1px solid rgba(184,138,45,.26); }
.cc-hours-list dt { font-weight:600; }
.cc-hours-list dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.cc-opening-hours .cc-small { margin-bottom:24px; line-height:1.45; }
.cc-button--full { display:flex; width:100%; }
.cc-button > span:has(svg) { display:inline-grid; place-items:center; }
.cc-button svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.cc-button--whatsapp svg { fill:currentColor; stroke:none; }
.cc-map-large { position:relative; min-height:570px; }
.cc-map-large iframe { display:block; width:100%; height:100%; min-height:570px; border:0; }
.cc-map-address {
  position:absolute;
  left:24px;
  right:24px;
  bottom:24px;
  display:flex;
  align-items:center;
  gap:14px;
  max-width:430px;
  padding:17px 19px;
  color:var(--cc-brown);
  background:rgba(255,255,255,.96);
  border:1px solid rgba(184,138,45,.24);
  border-radius:13px;
  box-shadow:0 12px 34px rgba(61,36,28,.17);
  line-height:1.35;
  backdrop-filter:blur(9px);
}
.cc-map-address > span:first-child { display:grid; place-items:center; width:37px; height:37px; flex:0 0 37px; color:var(--cc-bordeaux); background:var(--cc-ivory); border-radius:10px; }
.cc-map-address svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.7; }
.cc-map-address strong { color:var(--cc-bordeaux); font-family:Cinzel,Georgia,serif; font-size:.8rem; }

.cc-contact-social { position:relative; overflow:hidden; }
.cc-contact-social::before {
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  right:-180px;
  top:-190px;
  border:1px solid rgba(184,138,45,.13);
  border-radius:50%;
  box-shadow:0 0 0 55px rgba(184,138,45,.03),0 0 0 110px rgba(184,138,45,.025);
}
.cc-contact-social .cc-container { position:relative; z-index:1; }
.cc-contact-social__heading { max-width:720px; margin-bottom:35px; }
.cc-contact-social__heading h2 { margin-bottom:13px; }
.cc-contact-social__heading p { margin:0; color:#d8cec5; }
.cc-social-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.cc-social-card {
  display:flex;
  align-items:center;
  gap:16px;
  min-width:0;
  min-height:112px;
  padding:22px 23px;
  color:white;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.16);
  border-radius:15px;
  text-decoration:none;
  transition:transform .25s ease,background .25s ease,border-color .25s ease;
}
.cc-social-card__icon { display:grid; place-items:center; width:48px; height:48px; flex:0 0 48px; color:#e1bd65; background:rgba(255,255,255,.08); border-radius:50%; }
.cc-social-card__icon svg { width:24px; height:24px; fill:currentColor; stroke:currentColor; stroke-width:1.8; }
.cc-social-card__icon svg rect,.cc-social-card__icon svg circle { fill:none; }
.cc-social-card__copy { min-width:0; display:flex; flex:1; flex-direction:column; }
.cc-social-card__copy strong { font:600 .88rem Cinzel,Georgia,serif; }
.cc-social-card__copy small { overflow:hidden; color:#cfc2b8; text-overflow:ellipsis; white-space:nowrap; }
.cc-social-card__arrow { flex:0 0 38px; color:#e1bd65; border-color:rgba(225,189,101,.32); }

.cc-contact-cta-section { padding:72px 0; background:var(--cc-ivory); }

.cc-reviews { overflow:hidden; background:linear-gradient(180deg,var(--cc-ivory) 0%,#fff 100%); }
.cc-reviews__heading { max-width:780px; margin:0 auto 34px; }
.cc-reviews__heading .cc-lead { margin-right:auto; margin-left:auto; }
.cc-reviews__widget {
  min-height:170px;
  padding:clamp(18px,3vw,34px);
  background:#fff;
  border:1px solid rgba(184,138,45,.28);
  border-radius:20px;
  box-shadow:0 20px 55px rgba(61,36,28,.11);
}
.cc-reviews__widget:empty::before {
  content:"Caricamento delle recensioni Google…";
  display:grid;
  min-height:110px;
  place-items:center;
  color:var(--cc-muted);
  font-style:italic;
}
.cc-reviews__widget .grwidget-embed { width:100%; min-height:110px; }
.cc-reviews__widget .wp-block-group { margin:0; }
.cc-reviews__actions { margin-top:28px; }
.cc-reviews__note { max-width:680px; margin:0 auto 18px; color:var(--cc-muted); font-size:.94rem; }

.wp-block-group.is-style-cilentana-card {
  padding:clamp(22px,4vw,38px);
  background:#fff;
  border:1px solid rgba(184,138,45,.25);
  border-radius:18px;
  box-shadow:var(--cc-shadow);
}
.wp-block-button.is-style-cilentana-outline .wp-block-button__link {
  color:var(--cc-bordeaux);
  background:transparent;
  border:1px solid var(--cc-gold);
}
.wp-block-image.is-style-cilentana-rounded img { border-radius:16px; }
.cc-contact-cta {
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(270px,.55fr);
  align-items:center;
  gap:55px;
  overflow:hidden;
  padding:clamp(38px,6vw,68px);
  color:white;
  background:linear-gradient(120deg,#6e0f17 0%,#55131a 48%,#3d241c 100%);
  border:1px solid rgba(184,138,45,.72);
  border-radius:20px;
  box-shadow:0 24px 60px rgba(61,36,28,.2);
}
.cc-contact-cta::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  opacity:.11;
  background:repeating-linear-gradient(120deg,transparent 0 35px,rgba(255,255,255,.18) 36px 37px);
}
.cc-contact-cta::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:330px;
  height:330px;
  right:-100px;
  top:-170px;
  border:1px solid rgba(225,189,101,.26);
  border-radius:50%;
}
.cc-contact-cta__copy { max-width:690px; }
.cc-contact-cta .cc-hero__script { margin-bottom:-5px; color:#e1bd65; font-size:clamp(2rem,3vw,2.9rem); }
.cc-contact-cta h2 { margin-bottom:12px; font-size:clamp(1.75rem,3.5vw,3rem); }
.cc-contact-cta p { margin:0; color:#f0e8e0; }
.cc-contact-cta__actions { display:grid; gap:12px; }
.cc-contact-cta .cc-button { width:100%; border-color:white; }
.cc-contact-cta .cc-button--whatsapp { color:white; background:#426d39; border-color:#426d39; }
.cc-contact-cta .cc-button--outline { color:white; background:rgba(255,255,255,.04); }

@media (hover:hover) {
  .cc-contact-card:hover { transform:translateY(-6px); border-color:rgba(184,138,45,.72); box-shadow:0 26px 58px rgba(61,36,28,.18); }
  .cc-contact-card:hover .cc-contact-card__arrow { transform:rotate(10deg); color:white; background:var(--cc-bordeaux); }
  .cc-social-card:hover { transform:translateY(-4px); background:rgba(255,255,255,.08); border-color:rgba(225,189,101,.6); }
  .cc-social-card:hover .cc-social-card__arrow { transform:rotate(10deg); }
}

.cc-gallery--photos { gap:20px; }
.cc-gallery-heading { margin-bottom:30px; }
.cc-gallery__photo { position:relative; min-height:310px; margin:0; overflow:hidden; background:var(--cc-brown); border-radius:16px; box-shadow:var(--cc-shadow); }
.cc-gallery__photo img { width:100%; height:100%; min-height:310px; object-fit:cover; transition:transform .5s ease; }
.cc-gallery__photo:hover img { transform:scale(1.04); }
.cc-gallery__photo figcaption { position:absolute; left:0; right:0; bottom:0; padding:50px 20px 18px; color:white; background:linear-gradient(transparent,rgba(25,8,6,.85)); font:600 .78rem Cinzel,serif; }
.cc-video-section { display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:center; }
.cc-video-section video { width:100%; max-height:650px; background:#140c09; box-shadow:var(--cc-shadow); }

.cc-footer { background:#342724; color:#f2e9e1; padding:72px 0 0; }
.cc-footer__grid { display:grid; grid-template-columns:1.25fr .8fr .8fr 1.15fr; gap:42px; }
.cc-footer h3 { color:#d8ad55; font-size:1rem; }
.cc-footer ul { list-style:none; padding:0; margin:0; }
.cc-footer a { color:inherit; text-decoration:none; }
.cc-footer address { margin:0 0 14px; }
.cc-footer__legal { margin-top:20px !important; padding-top:18px !important; border-top:1px solid rgba(255,255,255,.12); font-size:.84rem; }
.cc-footer-logo { display:grid; place-items:center; width:280px; max-width:100%; min-height:180px; padding:15px; overflow:hidden; background:#fbf8f1; border:1px solid rgba(216,173,85,.26); border-radius:16px; box-shadow:0 14px 32px rgba(0,0,0,.22); }
.cc-footer-logo img { width:100%; height:auto; max-height:230px; object-fit:contain; mix-blend-mode:multiply; }
.cc-footer__brand > p { max-width:310px; margin-top:22px; color:#ddd0c6; }
.cc-socials { display:flex; gap:10px; margin-top:22px; }
.cc-socials a { display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(255,255,255,.3); border-radius:50%; color:white; transition:.25s background,.25s border-color,.25s transform; }
.cc-socials a:hover { transform:translateY(-2px); background:var(--cc-gold); border-color:var(--cc-gold); }
.cc-socials svg { width:20px; height:20px; fill:currentColor; stroke:currentColor; stroke-width:1.8; }
.cc-socials svg rect,.cc-socials svg circle { fill:none; }
.cc-social-intro { padding-bottom:42px; background:linear-gradient(180deg,#fff 0%,var(--cc-ivory) 100%); }
.cc-social-intro__copy { max-width:760px; margin:0 auto 30px; }
.cc-social-buttons { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; max-width:940px; margin:0 auto; }
.cc-social-buttons .wp-block-button { width:100%; }
.cc-social-buttons .wp-block-button__link {
  display:flex;
  width:100%;
  min-height:62px;
  align-items:center;
  justify-content:center;
  padding:14px 18px;
  color:var(--cc-bordeaux);
  background:#fff;
  border:1px solid rgba(110,15,23,.22);
  border-radius:14px;
  box-shadow:0 10px 28px rgba(61,36,28,.08);
  font:600 .78rem Cinzel,Georgia,serif;
  letter-spacing:.04em;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.cc-social-buttons .wp-block-button__link:hover { transform:translateY(-3px); border-color:var(--cc-gold); box-shadow:0 16px 34px rgba(61,36,28,.13); }
.cc-social-feed { padding:0 0 92px; background:var(--cc-ivory); }
.cc-social-feed .cc-container { padding-top:8px; }
.cc-social-feed__frame { overflow:hidden; padding:8px; background:var(--cc-ivory); border:1px solid rgba(184,138,45,.22); border-radius:20px; box-shadow:var(--cc-shadow); }
.cc-social-feed__frame .spotlight-instagram-feed { min-height:160px; border-radius:14px; }
.cc-section--dark h2 { color:var(--cc-white); }
.cc-footer-map { overflow:hidden; height:150px; margin:14px 0 9px; border:1px solid rgba(255,255,255,.14); }
.cc-footer-map iframe { width:100%; height:100%; border:0; filter:grayscale(.35) contrast(1.05); }
.cc-text-link { color:#e1bd65 !important; font-weight:600; }
.cc-footer__bottom { display:flex; justify-content:flex-start; gap:20px; margin-top:50px; padding:22px 0 26px; border-top:1px solid rgba(255,255,255,.12); font-size:.78rem; color:#c7b8ad; }
.cc-powered { color:#19202d; background:var(--cc-ivory); border-top:2px solid rgba(77,155,171,.75); }
.cc-powered__inner { display:flex; min-height:82px; align-items:center; justify-content:center; gap:17px; padding-top:12px; padding-bottom:12px; text-decoration:none; transition:opacity .25s ease; }
.cc-powered__inner span { color:#59606a; font:700 .64rem Cinzel,Georgia,serif; letter-spacing:.18em; text-transform:uppercase; }
.cc-powered__inner img { width:170px; height:auto; }
.cc-powered__inner:hover { opacity:.8; }
.cc-floating {
  position:fixed; right:20px; bottom:20px; z-index:15; width:58px; height:58px; border-radius:50%;
  display:grid; place-items:center; background:#2b9a47; color:white; text-decoration:none; box-shadow:0 12px 30px rgba(0,0,0,.24);
  font-size:1.4rem;
}
.cc-floating svg { width:29px; height:29px; fill:currentColor; }

@media (max-width: 900px) {
  .cc-social-buttons { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cc-social-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cc-grid--4 { grid-template-columns:repeat(2,1fr); }
  .cc-grid--3 { grid-template-columns:repeat(2,1fr); }
  .cc-split { grid-template-columns:1fr; }
  .cc-footer__grid { grid-template-columns:1fr 1fr; }
  .cc-nav { display:none; position:absolute; top:96px; left:0; right:0; padding:24px 20px; background:var(--cc-ivory); border-bottom:1px solid var(--cc-gold); }
  .cc-nav.is-open { display:block; }
  .cc-nav ul { flex-direction:column; align-items:flex-start; }
  .cc-menu-toggle { display:block; }
  .cc-section-heading { align-items:start; flex-direction:column; gap:12px; }
  .cc-salumi-story,.cc-gastronomy-feature,.cc-territory-hero,.cc-video-section { grid-template-columns:1fr; }
  .cc-gastronomy-feature--reverse img { order:0; }
  .cc-contact-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cc-contact-card--address { grid-column:1 / -1; }
  .cc-visit-heading { align-items:start; flex-direction:column; gap:12px; }
  .cc-visit-card { grid-template-columns:1fr; }
  .cc-opening-hours { order:1; }
  .cc-map-large { order:2; }
  .cc-social-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cc-social-card:last-child { grid-column:1 / -1; }
  .cc-contact-cta { grid-template-columns:1fr; gap:32px; }
  .cc-category-nav { top:96px; }
  .cc-about-story,.cc-about-manifesto,.cc-about-products { grid-template-columns:1fr; }
  .cc-about-values { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cc-about-products__media { min-height:430px; }
}

@media (max-width: 520px) {
  .cc-social-buttons { grid-template-columns:1fr; }
}
@media (max-width: 600px) {
  body { font-size:18px; }
  .cc-container { width:min(100% - 28px,1160px); }
  .cc-grid--4,.cc-grid--3,.cc-grid--2,.cc-gallery,.cc-footer__grid { grid-template-columns:1fr; }
  .cc-hero { min-height:760px; }
  .cc-buttons .cc-button { width:100%; }
  .cc-header__inner { min-height:80px; }
  .cc-brand__logo { width:58px; height:58px; }
  .cc-brand__text strong { font-size:.78rem; }
  .cc-brand__text span { display:none; }
  .cc-nav { top:80px; }
  .cc-category-nav { top:80px; }
  .cc-card { padding:26px; }
  .cc-product-card__body { padding:22px; }
  .cc-salumi-story__gallery { min-height:430px; }
  .cc-gastronomy-feature img,.cc-territory-hero img { min-height:320px; }
  .cc-recipe-grid { grid-template-columns:1fr; }
  .cc-page-hero--contact { min-height:330px; padding:82px 0 102px; }
  .cc-contact-cards-section { margin-top:-52px; padding-bottom:50px; }
  .cc-contact-cards { grid-template-columns:1fr; gap:14px; }
  .cc-contact-card,.cc-contact-card--address { grid-column:auto; min-height:0; padding:24px; border-radius:15px; }
  .cc-contact-card__top { margin-bottom:18px; }
  .cc-visit-section { padding-top:24px; }
  .cc-visit-heading { margin-bottom:26px; }
  .cc-visit-card { border-radius:15px; }
  .cc-opening-hours { padding:32px 24px; }
  .cc-hours-list > div { flex-direction:column; gap:7px; }
  .cc-hours-list dd { text-align:left; }
  .cc-map-large,.cc-map-large iframe { min-height:320px; }
  .cc-map-address { left:14px; right:14px; bottom:14px; padding:14px; font-size:.87rem; }
  .cc-social-cards { grid-template-columns:1fr; }
  .cc-social-card:last-child { grid-column:auto; }
  .cc-social-card { min-height:100px; padding:20px; }
  .cc-contact-cta-section { padding:50px 0; }
  .cc-contact-cta { gap:28px; padding:29px 24px; border-radius:16px; }
  .cc-footer__bottom { flex-direction:column; }
  .cc-footer-logo { width:250px; min-height:160px; }
  .cc-powered__inner { min-height:96px; flex-direction:column; gap:3px; }
  .cc-powered__inner img { width:145px; }
  .cc-social-feed { padding-bottom:58px; }
  .cc-social-feed__frame { padding:4px; border-radius:15px; }
  .cc-about-story { grid-template-columns:1fr; gap:30px; }
  .cc-about-story__brand .cc-logo-panel { min-height:280px; }
  .cc-about-values { grid-template-columns:1fr; }
  .cc-about-value-card { min-height:0; padding:28px 25px; }
  .cc-about-manifesto { grid-template-columns:1fr; padding:30px 24px; border-radius:16px; }
  .cc-about-manifesto__points > div { grid-template-columns:1fr; gap:5px; }
  .cc-about-products { grid-template-columns:1fr; }
  .cc-about-products__media { min-height:340px; border-radius:16px; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior:auto !important; transition:none !important; }
  .cc-page-hero__video { display:none; }
}
