/*
 * Villaggi Bellissimi — site chrome and static sections.
 * Catalogue components (cards, listing, detail, cart, checkout) are styled by
 * the vb-catalog plugin (plugin/assets/vb.css) with the same tokens.
 *
 * Colours go through the --ddk-* variables so "Colori e caratteri" works.
 */

:root {
  --ddk-accent: #0b5585;     /* navy */
  --ddk-accent2: #f7850f;    /* orange */
  --ddk-ink: #22313b;
  --ddk-bg: #ffffff;
  --ddk-soft: #fddec9;       /* peach */
  --ddk-f-head: 'Gill Sans Nova', 'Gill Sans', 'Gill Sans MT', Cabin, Calibri, sans-serif;
  --ddk-f-body: 'Gill Sans Nova', 'Gill Sans', 'Gill Sans MT', Cabin, Calibri, sans-serif;

  --vb-navy: var(--ddk-accent);
  --vb-navy-dark: #093f63;
  --vb-orange: var(--ddk-accent2);
  --vb-orange-line: #f7a55a;
  --vb-orange-text: #b05a00;
  --vb-peach: var(--ddk-soft);
  --vb-peach-light: #fff8f3;
  --vb-night: #061c28;
  --vb-ink: var(--ddk-ink);
  --vb-muted: #5b6a74;
  --vb-disabled: #8a979f;
  --vb-border: #e3e8eb;
  --vb-input: #cfd8de;
  --vb-ph: #e9eef1;
  --vb-green: #26a445;
  --vb-red: #e3262d;
}

*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: hidden; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--ddk-bg);
  color: var(--vb-ink);
  font-family: var(--ddk-f-body);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; }
a { color: var(--vb-navy); }
a:hover { color: var(--vb-orange); }
button, input, select, textarea { font-family: inherit; }
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > * { margin-block: 0; }
.ddk-main { flex: 1; display: block; }
.vb-wrap { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.vb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

/* ───────────────────────────── header ───────────────────────────── */
.vb-header { position: sticky; top: 0; z-index: 30; background: #fff; box-shadow: 0 1px 0 rgba(6, 28, 40, .08); }
.admin-bar .vb-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .vb-header { top: 0; } }
.vb-header-in { max-width: 1200px; margin: 0 auto; padding: 12px 24px; display: flex; align-items: center; gap: 16px; }
.vb-logo { display: block; width: 88px; height: 88px; flex: none; position: relative; z-index: 2; }
.vb-logo img { width: 100%; height: 100%; display: block; }
.vb-nav {
  flex: 1 1 auto; margin-left: -28px; background: var(--vb-peach); border-radius: 0 999px 999px 0;
  min-height: 52px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px 24px; padding: 8px 28px 8px 44px;
}
.vb-nav a {
  white-space: nowrap; font-weight: 800; font-size: 12px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--vb-orange); text-decoration: none; padding: 4px 0; border-bottom: 2px solid transparent;
}
.vb-nav a:hover { color: var(--vb-navy); }
.vb-nav a.is-active { border-bottom-color: var(--vb-navy); }
.vb-menu-btn {
  display: none; margin-left: auto; height: 48px; padding: 0 16px; border: 0; border-radius: 999px;
  background: var(--vb-peach); color: var(--vb-orange); font-weight: 800; font-size: 13px; letter-spacing: .18em;
  align-items: center; gap: 10px; cursor: pointer;
}
.vb-menu-lines { display: flex; flex-direction: column; gap: 4px; }
.vb-menu-lines span { width: 18px; height: 2px; background: var(--vb-orange); display: block; }
.vb-cart-btn { position: relative; width: 52px; height: 52px; flex: none; display: block; color: #fff; }
.vb-cart-btn:hover { color: #fff; }
.vb-cart-circle { position: absolute; inset: 0; border-radius: 50%; background: var(--vb-night); display: flex; align-items: center; justify-content: center; }
.vb-cart-badge {
  position: absolute; top: -3px; right: -3px; min-width: 22px; height: 22px; border-radius: 999px; background: var(--vb-red);
  color: #fff; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; padding: 0 5px; border: 2px solid #fff;
}
.vb-mobile-nav { background: var(--vb-peach); padding: 12px 24px 20px; display: flex; flex-direction: column; }
.vb-mobile-nav[hidden] { display: none; }
.vb-mobile-nav a {
  font-weight: 800; font-size: 15px; letter-spacing: .16em; text-transform: uppercase; color: var(--vb-orange);
  text-decoration: none; padding: 14px 0; border-bottom: 1px solid #f7c9a4;
}
@media (max-width: 760px) {
  .vb-nav { display: none; }
  .vb-menu-btn { display: flex; }
}
@media (min-width: 761px) { .vb-mobile-nav { display: none !important; } }

/* ───────────────────────────── titles ───────────────────────────── */
.vb-hsec-title { display: flex; align-items: center; gap: 16px; }
.vb-badge { width: 54px; height: 54px; flex: none; }
.vb-badge--lg { width: 58px; height: 58px; mix-blend-mode: multiply; }
.vb-title-stack { display: flex; flex-direction: column; gap: 4px; }
.vb-eyebrow { font-weight: 800; font-size: 13px; letter-spacing: .24em; color: var(--vb-orange); text-transform: uppercase; }
.vb-outline-row { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.vb-outline {
  font-weight: 800; font-size: clamp(28px, 3.4vw, 38px); letter-spacing: .16em; color: #fff;
  -webkit-text-stroke: 1.3px var(--vb-navy); text-shadow: 2px 2px 0 var(--vb-navy); line-height: 1;
}
.vb-outline--lg { font-size: clamp(32px, 4vw, 46px); -webkit-text-stroke-width: 1.4px; }
.vb-outline-rest { font-size: clamp(20px, 2.4vw, 28px); color: var(--vb-navy); }
.vb-outline-rest--lg { font-size: clamp(20px, 2.6vw, 30px); }
.vb-outline-rest:empty { display: none; }

/* ───────────────────────────── home ───────────────────────────── */
.vb-claim { background: var(--vb-peach); padding: 44px 24px; text-align: center; }
.vb-claim p {
  margin: 0 auto; max-width: 640px; font-weight: 800; font-size: clamp(20px, 2.4vw, 26px); line-height: 1.25;
  color: var(--vb-navy); text-wrap: balance;
}
.vb-hl { color: var(--vb-orange); }
.vb-hsec-head { padding: 44px 0 0; }
.vb-hsec-head .vb-hsec-title { padding-bottom: 14px; }
.vb-orange-line { height: 1.5px; background: var(--vb-orange-line); width: clamp(260px, 49vw, 720px); }

.vb-perks { background: var(--vb-peach); padding: 48px 24px 56px; margin-top: 44px; }
.vb-perks-in { max-width: 900px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 30px; }
.vb-perks-head { text-align: center; display: flex; flex-direction: column; gap: 6px; }
.vb-perks-head h2 { margin: 0; font-weight: 800; font-size: 28px; color: var(--vb-navy); }
.vb-perks-head p { margin: 0; font-size: 17px; color: var(--vb-navy); }
.vb-perks-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px 40px; }
.vb-perk {
  width: 160px; min-height: 184px; background: #fff; border-radius: 18px; padding: 18px 12px;
  display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center;
}
.vb-perk img { width: 92px; height: 80px; object-fit: contain; }
.vb-perk strong { font-weight: 800; font-size: 13px; line-height: 1.15; text-transform: uppercase; color: var(--vb-navy); }
.vb-perk span { font-size: 11px; line-height: 1.25; color: var(--vb-ink); }

/* ───────────────────────────── page heads ───────────────────────────── */
.vb-pagehead { background: var(--vb-peach); padding: 28px 24px 34px; }
.vb-pagehead-in { padding: 0; display: flex; flex-direction: column; gap: 18px; }
.vb-crumb { margin: 0; display: flex; gap: 8px; font-size: 13px; color: var(--vb-navy); flex-wrap: wrap; }
.vb-crumb a { color: var(--vb-navy); }
.vb-crumb strong { font-weight: 700; }
.vb-intro { margin: 0; max-width: 640px; font-size: 18px; line-height: 1.4; color: var(--vb-navy); text-wrap: pretty; }

/* ───────────────────────────── legal ───────────────────────────── */
.vb-legal { max-width: 820px; margin: 0 auto; padding: 28px 24px 80px; display: flex; flex-direction: column; gap: 22px; }
.vb-legal h1 { margin: 0; font-weight: 800; font-size: clamp(28px, 3.6vw, 40px); color: var(--vb-navy); }
.vb-demo-note { margin: 0; background: var(--vb-peach-light); border: 1.5px dashed var(--vb-orange-line); padding: 12px 16px; font-size: 14px; color: var(--vb-orange-text); font-weight: 700; }
.vb-legal-block { display: flex; flex-direction: column; gap: 8px; }
.vb-legal-block h2 { margin: 0; font-weight: 800; font-size: 20px; color: var(--vb-navy); }
.vb-legal-block p { margin: 0; font-size: 16px; line-height: 1.6; color: var(--vb-ink); }

/* ───────────────────────────── footer ───────────────────────────── */
.vb-footer { display: flex; flex-wrap: wrap; border-top: 1px solid var(--vb-peach); }
.vb-footer-main { flex: 1 1 620px; padding: 40px 32px; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.vb-footer-logo { width: 110px; height: 110px; }
.vb-footer-slash { width: 22px; height: 80px; border-right: 1.5px solid var(--vb-orange); transform: skewX(-14deg); }
.vb-newsletter { flex: 1 1 320px; max-width: 380px; display: flex; flex-direction: column; gap: 12px; position: relative; }
.vb-nl-head { display: flex; flex-direction: column; gap: 2px; }
.vb-nl-head strong { font-weight: 800; font-size: 24px; color: var(--vb-navy); }
.vb-nl-head span { font-size: 16px; color: var(--vb-navy); }
.vb-newsletter input[type=email] { border: 1px solid #f3c4a6; border-radius: 999px; padding: 12px 18px; font-size: 14px; outline-color: var(--vb-navy); }
.vb-nl-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.vb-nl-row label { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; color: var(--vb-ink); max-width: 210px; cursor: pointer; }
.vb-nl-row input[type=checkbox] { margin: 2px 0 0; }
.vb-nl-row button {
  background: var(--vb-navy); color: #fff; border: 0; border-radius: 999px; padding: 0 28px; min-height: 44px;
  font-weight: 800; font-size: 14px; letter-spacing: .1em; cursor: pointer;
}
.vb-nl-row button:hover { background: var(--vb-navy-dark); }
.vb-nl-msg { font-size: 13px; font-weight: 700; color: var(--vb-red); }
.vb-nl-msg.is-ok { color: var(--vb-green); }
.vb-footer-side { flex: 1 1 300px; background: var(--vb-night); padding: 44px 40px; display: flex; flex-direction: column; gap: 12px; justify-content: center; }
.vb-footer-link { color: var(--vb-peach); font-weight: 800; font-size: 14px; text-transform: uppercase; text-decoration: none; letter-spacing: .06em; }
.vb-footer-link:hover { color: #fff; }
.vb-footer-legal { display: flex; gap: 20px; padding-top: 18px; flex-wrap: wrap; }
.vb-footer-legal a { color: #fff; font-size: 13px; }
.vb-footer-legal a:hover { color: var(--vb-peach); }

/* Editor canvas: chrome and catalogue previews are not editable. */
.ddk-editor-main { display: block; }
