/* ════════════════════════════════════════════════════════════
   AKVA Italia — Components stylesheet
   Load order: 2 of 2  (akva-base.css → akva-components.css)

   Covers: homepage · products catalogue · letti-materassi ·
           benefici · contatti · hotel-spa · punti-di-prova ·
           privacy · content-type letto (product detail)

   Asset Injector: set to "All pages", weight 1
   (Drupal's body class + Barrio page classes scope styles
   automatically; no per-page injector rules needed for most.)
   ════════════════════════════════════════════════════════════ */


/* ══════════════════════════════════════════
   HOMEPAGE — akva-hero (full-screen video)
   index.html / front page
   ══════════════════════════════════════════ */
.akva-hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center;
  background: var(--akva-ink); overflow: hidden;
}
.akva-hero-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
}
.akva-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg,
    rgba(26,26,24,0.72) 0%, rgba(26,26,24,0.38) 55%,
    rgba(58,107,138,0.35) 100%);
  z-index: 1;
}
.akva-hero-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; z-index: 0; opacity: 0.6;
}
.akva-hero-content { position: relative; z-index: 2; padding: 120px 0 100px; }
.akva-hero-actions {
  animation: akvaFadeUp 1s 1.05s both;
  display: flex; gap: 16px; flex-wrap: wrap;
}
/* Scroll indicator */
.akva-scroll-cue {
  position: absolute; bottom: 36px; left: 50%;
  transform: translateX(-50%); z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  animation: akvaFadeIn 1s 1.7s both;
}
.akva-scroll-cue span {
  font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase;
  color: rgba(255,255,255,0.4);
}
.akva-scroll-line {
  width: 1px; height: 48px;
  background: rgba(255,255,255,0.2); overflow: hidden; position: relative;
}
.akva-scroll-line::after {
  content: ''; position: absolute; top: -100%;
  width: 100%; height: 100%; background: var(--akva-gold-lt);
  animation: akvaScrollDrop 2.2s 2s infinite;
}

/* ── Trust stripe ── */
.akva-trust-stripe {
  background: var(--akva-ink);
  border-top: 1px solid rgba(255,255,255,0.07); padding: 22px 0;
}
.akva-trust-item {
  display: flex; align-items: center; gap: 12px;
  color: rgba(253,252,250,0.6); font-size: 10px; font-weight: 400;
  letter-spacing: 0.15em; text-transform: uppercase; white-space: nowrap;
}
.akva-trust-dot {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--akva-gold); flex-shrink: 0;
}
.akva-trust-img { height: 45px; width: auto; opacity: 1; }

/* ── Pressure proof ── */
.akva-pressure { background: var(--akva-cream); padding: 90px 0; }
.akva-pressure-visual { position: relative; }
.akva-pressure-img { border-radius: 0; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.akva-pressure-label {
  position: absolute; bottom: 16px; left: 16px;
  background: rgba(26,26,24,0.82); color: #fff;
  font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase;
  padding: 6px 14px;
}
.akva-pressure-label.bad  { border-left: 3px solid #E24B4A; }
.akva-pressure-label.good { border-left: 3px solid var(--akva-water); }

/* ── Benefits grid (homepage) ── */
.akva-benefits { padding: 90px 0; background: #fff; }
.akva-benefit-card {
  border: 1px solid var(--akva-mist); padding: 36px 30px; height: 100%;
  transition: background var(--akva-transition);
}
.akva-benefit-card:hover { background: var(--akva-cream); }
.akva-benefit-num {
  font-family: var(--akva-serif); font-size: 14px; font-weight: 400;
  color: var(--akva-gold); letter-spacing: 0.12em; display: block; margin-bottom: 16px;
}
.akva-benefit-icon {
  width: clamp(80px,10vw,130px); height: clamp(60px,7vw,90px);
  object-fit: contain; margin-bottom: clamp(16px,2vw,24px);
}
.akva-benefit-title {
  font-family: var(--akva-serif); font-size: 21px; font-weight: 400;
  color: var(--akva-ink); margin-bottom: 10px; line-height: 1.25;
}
.akva-benefit-text {
  font-size: 14px; font-weight: 300; color: var(--akva-stone);
  line-height: 1.75; margin: 0;
}
.akva-benefit-link {
  display: inline-block; margin-top: 16px; font-size: 11px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--akva-water); text-decoration: none;
  border-bottom: 1px solid var(--akva-water-pale); padding-bottom: 2px;
  transition: border-color var(--akva-transition);
}
.akva-benefit-link:hover { border-color: var(--akva-water); }

/* ── Manifesto ── */
.akva-manifesto { background: var(--akva-cream); padding: 90px 0; }
.akva-manifesto-card {
  background: #fff; border: 1px solid var(--akva-mist);
  padding: 40px 36px; height: 100%;
}
.akva-manifesto-num {
  font-family: var(--akva-serif); font-size: 68px; font-weight: 300;
  line-height: 1; color: var(--akva-water-pale); margin-bottom: 8px;
}
.akva-manifesto-card-label {
  font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--akva-stone);
}
.akva-accent-card {
  background: var(--akva-water); padding: 40px 36px; height: 100%;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.akva-accent-num {
  font-family: var(--akva-serif); font-size: 68px; font-weight: 300;
  line-height: 1; color: rgba(255,255,255,0.18); margin-bottom: 8px;
}
.akva-accent-label { font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(255,255,255,0.6); }
.akva-accent-text  { font-family: var(--akva-serif); font-size: 22px; font-weight: 300; color: #fff; line-height: 1.3; margin-top: 4px; }

/* ── How it works ── */
.akva-how { background: var(--akva-ink); padding: 90px 0; }
.akva-step {
  padding: 40px 30px; border: 1px solid rgba(255,255,255,0.06);
  height: 100%; position: relative;
}
.akva-step-num { font-family: var(--akva-serif); font-size: 60px; font-weight: 300; color: rgba(255,255,255,0.2); line-height: 1; margin-bottom: 14px; }
.akva-step-label { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--akva-gold); display: block; margin-bottom: 8px; }
.akva-step-title { font-family: var(--akva-serif); font-size: 20px; font-weight: 400; color: #fff; margin-bottom: 10px; line-height: 1.3; }
.akva-step-text  { font-size: 14px; font-weight: 400; color: rgba(253,252,250,0.5); line-height: 1.75; margin: 0; }

/* ── Craft / manufacture story ── */
.akva-craft { padding: 0; }
.akva-craft-visual {
  background: var(--akva-water); min-height: 540px;
  display: flex; align-items: center; justify-content: center;
  padding: 70px 50px; position: relative; overflow: hidden;
}
.akva-craft-visual::before {
  content: ''; position: absolute; inset: 0;
  background-image: url('/sites/default/files/2026-04/WhatsApp%20Image%202023-06-02%20at%2018.14.46.jpeg');
  background-size: cover; background-position: center; opacity: 0.4;
}
.akva-craft-visual-inner { position: relative; z-index: 1; text-align: center; }
.akva-craft-coords { font-size: 10px; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 20px; display: block; }
.akva-craft-place { font-family: var(--akva-serif); font-size: clamp(38px,5vw,56px); font-weight: 300; color: #fff; line-height: 1.1; margin-bottom: 16px; }
.akva-craft-desc  { font-size: 14px; font-weight: 300; color: rgba(255,255,255,0.62); max-width: 300px; line-height: 1.75; margin: 0 auto 28px; }
.akva-cert-badge  { border: 1px solid rgba(255,255,255,0.28); padding: 7px 16px; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.65); display: inline-block; margin: 5px; }
.akva-craft-text  { background: var(--akva-cream); padding: 70px 50px; display: flex; flex-direction: column; justify-content: center; min-height: 540px; }
.akva-check-list  { list-style: none; padding: 0; margin: 28px 0 0; }
.akva-check-list li { display: flex; gap: 16px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--akva-mist); }
.akva-check-list li:first-child { border-top: 1px solid var(--akva-mist); }
.akva-check-bullet { width: 2px; height: 20px; background: var(--akva-gold); flex-shrink: 0; margin-top: 2px; }
.akva-check-list span  { font-size: 14px; font-weight: 300; color: var(--akva-stone); line-height: 1.65; }
.akva-check-list strong{ font-weight: 500; color: var(--akva-ink-soft); }

/* ── Product model cards (homepage + listing) ── */
.akva-models { padding: 90px 0; background: #fff; }
.akva-model-card {
  border: 1px solid var(--akva-mist); overflow: hidden;
  text-decoration: none; color: inherit; display: block;
  transition: transform 0.3s ease, box-shadow 0.3s ease; height: 100%;
}
.akva-model-card:hover { transform: translateY(-5px); box-shadow: 0 16px 48px rgba(26,26,24,0.1); }
.akva-model-thumb { height: 220px; object-fit: cover; width: 100%; display: block; background: #2a2a28; }
.akva-model-body  { padding: 24px 22px; }
.akva-model-name  { font-family: var(--akva-serif); font-size: 24px; font-weight: 400; color: var(--akva-ink); margin-bottom: 7px; }
.akva-model-tagline { font-size: 13px; font-weight: 300; color: var(--akva-stone); line-height: 1.65; margin-bottom: 16px; }
.akva-model-link  { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--akva-water); border-bottom: 1px solid var(--akva-water-pale); padding-bottom: 2px; text-decoration: none; }

/* ── Stats / health section ── */
.akva-health { background: var(--akva-ink); padding: 90px 0; }
.akva-stat-box {
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08);
  padding: 36px 28px; height: 100%;
}
.akva-stat-val  { font-family: var(--akva-serif); font-size: 50px; font-weight: 300; color: #fff; line-height: 1; margin-bottom: 8px; }
.akva-stat-unit { font-family: var(--akva-serif); font-size: 22px; color: var(--akva-gold); }
.akva-stat-desc { font-size: 12px; font-weight: 300; color: rgba(253,252,250,0.45); line-height: 1.6; letter-spacing: 0.03em; }
.akva-condition-tag { border: 1px solid rgba(255,255,255,0.14); padding: 7px 15px; font-size: 12px; color: rgba(253,252,250,0.6); display: inline-block; margin: 4px; letter-spacing: 0.04em; }

/* ── FAQ accordion (homepage + FAQ page) ── */
.akva-faq { padding: 0; }
.akva-faq .accordion-item { background: transparent; border: none; border-top: 1px solid rgba(255,255,255,0.1); }
.akva-faq .accordion-item:last-child { border-bottom: 1px solid rgba(255,255,255,0.1); }
.akva-faq .accordion-button {
  background: transparent !important; color: #fff;
  font-family: var(--akva-serif); font-size: 18px; font-weight: 400;
  padding: 22px 0; box-shadow: none;
}
.akva-faq .accordion-button::after { filter: brightness(0) invert(0.6); }
.akva-faq .accordion-button:not(.collapsed) { color: var(--akva-gold); }
.akva-faq .accordion-body { font-size: 14px; font-weight: 300; color: rgba(253,252,250,0.58); line-height: 1.8; padding: 0 0 22px; }

.akva-faq-cta {
  display: inline-block;
  margin-top: 20px;
  font-family: var(--akva-sans);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--akva-gold);
  border: 1px solid rgba(184,154,94,0.45);
  padding: 10px 24px;
  text-decoration: none;
  transition: all var(--akva-transition);
}
.akva-faq-cta:hover {
  background: var(--akva-gold);
  border-color: var(--akva-gold);
  color: #fff !important;
}




/* ── Sustainability ── */
.akva-sustain { background: var(--akva-cream); padding: 90px 0; }
.akva-sustain-bigtext { font-family: var(--akva-serif); font-size: clamp(72px,11vw,150px); font-weight: 300; color: var(--akva-mist); line-height: 0.9; user-select: none; position: relative; }
.akva-sustain-badge { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 160px; height: 160px; border-radius: 50%; background: var(--akva-water); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 16px; }
.akva-sustain-badge .big   { font-family: var(--akva-serif); font-size: 34px; font-weight: 300; color: #fff; line-height: 1; }
.akva-sustain-badge .small { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.68); margin-top: 4px; }
.akva-sustain-point { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 28px; }
.akva-sp-icon  { width: 42px; height: 42px; background: #fff; border: 1px solid var(--akva-mist); flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.akva-sp-icon svg { width: 18px; height: 18px; }
.akva-sp-title { font-family: var(--akva-serif); font-size: 17px; font-weight: 400; color: var(--akva-ink); margin-bottom: 3px; }
.akva-sp-text  { font-size: 13px; font-weight: 300; color: var(--akva-stone); line-height: 1.7; margin: 0; }

/* ── Testimonials ── */
.akva-testimonials { padding: 90px 0; background: #fff; }
.akva-testi-card { border: 1px solid var(--akva-mist); padding: 34px 28px; height: 100%; }
.akva-stars { display: flex; gap: 4px; margin-bottom: 20px; }
.akva-star  { width: 10px; height: 10px; background: var(--akva-gold); clip-path: polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%); }
.akva-testi-quote  { font-family: var(--akva-serif); font-size: 17px; font-weight: 300; font-style: italic; color: var(--akva-ink); line-height: 1.6; margin-bottom: 24px; }
.akva-testi-author { font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--akva-stone); }
.akva-testi-city   { color: var(--akva-gold); }

/* ── CTA final banner ── */
.akva-cta-final {
  background: var(--akva-ink); padding: 110px 0;
  text-align: center; position: relative; overflow: hidden;
}
.akva-cta-final::before,
.akva-cta-bar::before,
.akva-pdp-cta::before {
  content: 'AKVA'; position: absolute;
  font-family: var(--akva-serif); font-size: clamp(140px,22vw,260px);
  font-weight: 300; color: rgba(255,255,255,0.022);
  top: 50%; left: 50%; transform: translate(-50%,-50%);
  white-space: nowrap; pointer-events: none; letter-spacing: 0.35em;
}
.akva-contact-strip { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 44px; margin-top: 44px; }
.akva-contact-label { font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: rgba(253,252,250,0.35); display: block; margin-bottom: 7px; }
.akva-contact-val { font-family: var(--akva-serif); font-size: 18px; font-weight: 300; color: #fff; text-decoration: none; }
.akva-contact-val:hover { color: var(--akva-gold); }

/* ══════════════════════════════════════════
   COOKIE POLICY  (/cookie-policy)
   ══════════════════════════════════════════ */
   
    /* ─── HERO (dark background, full bleed — matches privacy hero section) ─── */
    .akva-policy-hero {
      background-color: var(--akva-ink);
      padding-top: 140px;   /* clears fixed nav */
      padding-bottom: 0;
      position: relative;
      overflow: hidden;
    }

    /* Watermark text behind heading (same as privacy page) */
    .akva-policy-hero::before {
      content: 'COOKIE';
      position: absolute;
      top: 50%;
      right: -40px;
      transform: translateY(-50%);
      font-family: var(--akva-serif);
      font-size: clamp(100px, 18vw, 220px);
      font-weight: 300;
      color: rgba(255, 255, 255, 0.04);
      white-space: nowrap;
      pointer-events: none;
      line-height: 1;
      letter-spacing: -0.02em;
    }

    .akva-hero-inner {
      padding: 0 60px 56px;
    }








/* ══════════════════════════════════════════
   PRODUCTS CATALOGUE  (/prodotti)
   ══════════════════════════════════════════ */
.akva-cat-hero {
  background: var(--akva-ink); min-height: 72vh;
  display: flex; flex-direction: column; position: relative; overflow: hidden;
}
.akva-cat-hero-inner { flex: 1; display: flex; align-items: stretch; padding-top: 70px; }
.akva-cat-hero-text  { display: flex; flex-direction: column; justify-content: center; padding: 64px 5vw; position: relative; z-index: 2; }
.akva-cat-hero-eyebrow { font-size: 11px; font-weight: 400; letter-spacing: 0.32em; text-transform: uppercase; color: var(--akva-gold-lt); display: block; margin-bottom: 20px; animation: akvaFadeUp 0.9s 0.2s both; }
.akva-cat-hero-title { font-family: var(--akva-serif); font-weight: 300; font-size: clamp(38px,5vw,72px); line-height: 1.07; color: #fff; margin-bottom: 22px; animation: akvaFadeUp 0.9s 0.4s both; }
.akva-cat-hero-title em { font-style: italic; color: var(--akva-water-md); }
.akva-cat-hero-sub   { font-size: 15px; font-weight: 300; color: rgba(253,252,250,0.6); line-height: 1.8; max-width: 440px; margin-bottom: 40px; animation: akvaFadeUp 0.9s 0.6s both; }
.akva-cat-hero-actions { animation: akvaFadeUp 0.9s 0.8s both; display: flex; gap: 14px; flex-wrap: wrap; }
.akva-cat-hero-visual { position: relative; overflow: hidden; }
.akva-cat-hero-visual::before { content: ''; position: absolute; top: 0; left: 0; bottom: 0; width: 100px; background: linear-gradient(to right, var(--akva-ink), transparent); z-index: 1; pointer-events: none; }
.akva-hero-img-grid  { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; height: 100%; min-height: 420px; }
.akva-hero-img-cell  { overflow: hidden; position: relative; }
.akva-hero-img-cell img { width: 100%; height: 100%; object-fit: cover; opacity: 0.72; transition: opacity 0.5s, transform 0.7s; }
.akva-hero-img-cell:hover img { opacity: 0.9; transform: scale(1.04); }
.akva-hero-img-label { position: absolute; bottom: 0; left: 0; right: 0; padding: 10px 14px; background: linear-gradient(to top, rgba(26,26,24,0.8), transparent); font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.65); }

/* Filter bar */
.akva-filter-bar { background: var(--akva-white); border-bottom: 1px solid var(--akva-mist); padding: 0; position: sticky; top: 70px; z-index: 100; }
.akva-filter-inner { display: flex; align-items: stretch; gap: 0; overflow-x: auto; scrollbar-width: none; }
.akva-filter-inner::-webkit-scrollbar { display: none; }
.akva-breadcrumb-part { display: flex; align-items: center; gap: 8px; padding: 14px 20px; border-right: 1px solid var(--akva-mist); font-size: 11px; letter-spacing: 0.1em; color: var(--akva-stone); white-space: nowrap; flex-shrink: 0; }
.akva-breadcrumb-part a { color: var(--akva-stone); text-decoration: none; }
.akva-breadcrumb-part a:hover { color: var(--akva-gold); }
.akva-breadcrumb-part .sep { opacity: 0.35; }
.akva-filter-pills { display: flex; align-items: center; padding: 0 16px; margin-left: auto; flex-shrink: 0; }
.akva-filter-pill { font-size: 10.5px; font-weight: 400; letter-spacing: 0.15em; text-transform: uppercase; padding: 8px 18px; cursor: pointer; border: none; background: transparent; color: var(--akva-stone); border-bottom: 2px solid transparent; transition: all var(--akva-t); white-space: nowrap; }
.akva-filter-pill:hover { color: var(--akva-ink); }
.akva-filter-pill.active { color: var(--akva-water); border-bottom-color: var(--akva-water); }

/* Primary category card */
.akva-primary-cat { background: var(--akva-cream); padding: 80px 0 0; }
.akva-primary-cat-card { display: grid; grid-template-columns: 1fr 1fr; gap: 0; min-height: 520px; overflow: hidden; border: 1px solid var(--akva-mist); }
.akva-primary-cat-img { position: relative; overflow: hidden; }
.akva-primary-cat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s ease; }
.akva-primary-cat-card:hover .akva-primary-cat-img img { transform: scale(1.04); }
.akva-primary-badge { position: absolute; top: 24px; left: 24px; z-index: 2; font-size: 9.5px; letter-spacing: 0.22em; text-transform: uppercase; background: var(--akva-gold); color: #fff; padding: 6px 14px; }
.akva-primary-cat-content { background: var(--akva-white); padding: 60px 52px; display: flex; flex-direction: column; justify-content: center; }
.akva-primary-cat-num   { font-family: var(--akva-serif); font-size: 100px; font-weight: 300; color: var(--akva-mist); line-height: 1; margin-bottom: 0; user-select: none; }
.akva-primary-cat-title { font-family: var(--akva-serif); font-size: clamp(26px,3vw,40px); font-weight: 400; color: var(--akva-ink); line-height: 1.15; margin-bottom: 18px; margin-top: -8px; }
.akva-primary-cat-desc  { font-size: 15px; font-weight: 300; color: var(--akva-stone); line-height: 1.8; margin-bottom: 36px; }
.akva-model-strip       { display: flex; gap: 10px; margin-bottom: 36px; }
.akva-model-thumb-mini  { flex: 1; overflow: hidden; position: relative; }
.akva-model-thumb-mini img { width: 100%; height: 80px; object-fit: cover; transition: transform 0.4s; }
.akva-model-thumb-mini:hover img { transform: scale(1.07); }
.akva-model-thumb-mini span { display: block; font-size: 9.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--akva-stone); margin-top: 6px; }

/* Category grid */
.akva-cat-grid-section { background: var(--akva-cream); padding: 3px 0 80px; }
.akva-cat-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 3px; }
.akva-cat-card { background: var(--akva-white); overflow: hidden; text-decoration: none; color: inherit; display: flex; flex-direction: column; position: relative; transition: background var(--akva-t); }
.akva-cat-card:hover { background: var(--akva-cream); }
.akva-cat-card-img { height: 220px; overflow: hidden; position: relative; background: var(--akva-ink); }
.akva-cat-card-img img { width: 100%; height: 100%; object-fit: cover; opacity: 0.82; transition: opacity 0.4s, transform 0.6s; }
.akva-cat-card:hover .akva-cat-card-img img { opacity: 1; transform: scale(1.05); }
.akva-cat-card-arrow { position: absolute; bottom: 16px; right: 16px; width: 36px; height: 36px; background: var(--akva-gold); border-radius: 50%; display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateY(6px); transition: opacity 0.3s, transform 0.3s; }
.akva-cat-card:hover .akva-cat-card-arrow { opacity: 1; transform: none; }
.akva-cat-card-body  { padding: 28px 28px 32px; flex: 1; display: flex; flex-direction: column; }
.akva-cat-card-num   { font-family: var(--akva-serif); font-size: 12px; font-weight: 400; color: var(--akva-gold); letter-spacing: 0.12em; display: block; margin-bottom: 12px; }
.akva-cat-card-title { font-family: var(--akva-serif); font-size: 22px; font-weight: 400; color: var(--akva-ink); margin-bottom: 12px; line-height: 1.2; }
.akva-cat-card-desc  { font-size: 13.5px; font-weight: 300; color: var(--akva-stone); line-height: 1.72; flex: 1; margin-bottom: 20px; }
.akva-cat-card-link  { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--akva-water); border-bottom: 1px solid var(--akva-water-pale); padding-bottom: 2px; text-decoration: none; width: fit-content; transition: border-color var(--akva-t); display: inline-block; margin-top: auto; }
.akva-cat-card:hover .akva-cat-card-link { border-color: var(--akva-water); }
.akva-cat-card.wide { flex-direction: row; }
.akva-cat-card.wide .akva-cat-card-img  { height: auto; width: 40%; flex-shrink: 0; min-height: 200px; }
.akva-cat-card.wide .akva-cat-card-body { padding: 32px; }

/* System cards */
.akva-systems { background: var(--akva-ink); padding: 80px 0; }
.akva-system-card { padding: 44px 36px; border: 1px solid rgba(255,255,255,0.07); height: 100%; position: relative; overflow: hidden; transition: border-color var(--akva-t), background var(--akva-t); }
.akva-system-card:hover { border-color: rgba(255,255,255,0.18); background: rgba(255,255,255,0.03); }
.akva-system-img  { width: 100%; height: 160px; object-fit: cover; margin-bottom: 24px; opacity: 0.7; transition: opacity 0.4s; }
.akva-system-card:hover .akva-system-img { opacity: 0.9; }
.akva-system-type { font-size: 9.5px; letter-spacing: 0.3em; text-transform: uppercase; color: var(--akva-gold); display: block; margin-bottom: 10px; }
.akva-system-name { font-family: var(--akva-serif); font-size: 28px; font-weight: 400; color: #fff; margin-bottom: 12px; line-height: 1.1; }
.akva-system-desc { font-size: 13.5px; font-weight: 300; color: rgba(253,252,250,0.52); line-height: 1.75; margin-bottom: 24px; }
.akva-system-link { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--akva-water-md); text-decoration: none; border-bottom: 1px solid rgba(104,153,178,0.3); padding-bottom: 2px; display: inline-block; transition: color var(--akva-t), border-color var(--akva-t); }
.akva-system-card:hover .akva-system-link { color: var(--akva-gold); border-color: rgba(184,154,94,0.4); }

/* Why AKVA */
.akva-why { background: var(--akva-white); padding: 80px 0; }
.akva-why-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 2px; background: var(--akva-mist); margin-top: 52px; }
.akva-why-cell { background: var(--akva-white); padding: 36px 28px; transition: background var(--akva-t); }
.akva-why-cell:hover { background: var(--akva-cream); }
.akva-why-icon  { margin-bottom: 18px; }
.akva-why-title { font-family: var(--akva-serif); font-size: 19px; font-weight: 400; color: var(--akva-ink); margin-bottom: 8px; line-height: 1.2; }
.akva-why-text  { font-size: 13px; font-weight: 300; color: var(--akva-stone); line-height: 1.7; }

/* CTA bar (catalogue pages) */
.akva-cta-bar  { background: var(--akva-ink); padding: 90px 0; text-align: center; position: relative; overflow: hidden; }
.akva-cta-lead { color: rgba(253,252,250,0.52); max-width: 460px; margin: 0 auto 44px; font-size: 15px; line-height: 1.8; font-weight: 300; }
.akva-cta-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; position: relative; z-index: 1; }

/* ══════════════════════════════════════════
   CONTENT TYPE: LETTO (product detail page)
   /letti-ad-acqua/*
   ══════════════════════════════════════════ */
.akva-product-hero {
  background: var(--akva-ink); padding-top: 70px;
  min-height: 50vh; display: flex; flex-direction: column;
  position: relative; overflow: hidden;
}
.akva-product-hero::before {
  content: attr(data-model);
  position: absolute; font-family: var(--akva-serif);
  font-size: clamp(100px,18vw,220px); font-weight: 300;
  color: rgba(255,255,255,0.025); bottom: 60px; right: -20px;
  white-space: nowrap; pointer-events: none; letter-spacing: 0.15em; line-height: 1;
}
.akva-product-hero-inner { flex: 1; display: flex; align-items: stretch; }

/* Text column */
.akva-hero-text-col { display: flex; flex-direction: column; justify-content: center; padding: 60px 5vw; position: relative; z-index: 2; }
.akva-product-category { font-size: 10px; font-weight: 400; letter-spacing: 0.32em; text-transform: uppercase; color: var(--akva-stone); display: flex; align-items: center; gap: 10px; margin-bottom: 22px; }
.akva-product-category a { color: var(--akva-stone); text-decoration: none; }
.akva-product-category a:hover { color: var(--akva-gold); }
.akva-product-category span { opacity: 0.4; }
.akva-product-name    { font-family: var(--akva-serif); font-weight: 300; font-size: clamp(52px,7vw,96px); line-height: 0.95; color: #fff; margin-bottom: 8px; animation: akvaFadeUp 0.9s 0.3s both; }
.akva-product-variant { font-family: var(--akva-serif); font-size: clamp(18px,2.5vw,28px); font-weight: 300; font-style: italic; color: var(--akva-water-md); margin-bottom: 30px; animation: akvaFadeUp 0.9s 0.45s both; }
.akva-product-tagline { font-size: 16px; font-weight: 300; color: rgba(253,252,250,0.62); line-height: 1.75; max-width: 400px; margin-bottom: 40px; animation: akvaFadeUp 0.9s 0.6s both; }
.akva-hero-ctas       { display: flex; flex-direction: column; gap: 12px; animation: akvaFadeUp 0.9s 0.75s both; }
.akva-hero-ctas .d-flex { gap: 12px; flex-wrap: wrap; }

/* Image column */
.akva-hero-img-col { position: relative; overflow: hidden; display: flex; flex-direction: column; align-self: stretch; }
.akva-hero-img-col { flex: 1; min-height: 0; }
.akva-hero-img-col::before { content: ''; position: absolute; top: 0; left: 0; bottom: 0; width: 120px; background: linear-gradient(to right, var(--akva-ink), transparent); z-index: 1; pointer-events: none; }
.akva-hero-img-col img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.akva-hero-img-col .field,
.akva-hero-img-col .field__item,
.akva-hero-img-col > div { height: 100%; }
/* Bootstrap column must stretch to fill flex row */
.akva-product-hero-inner > .col-12.col-lg-7 { display: flex; flex-direction: column; align-self: stretch; }

/* Specs bar */
.akva-specs-bar { background: var(--akva-water); padding: 0; }
.akva-specs-bar-inner { display: flex; align-items: stretch; }
.akva-spec-pill { flex: 1; padding: 22px 28px; border-right: 1px solid rgba(255,255,255,0.12); display: flex; flex-direction: column; gap: 4px; }
.akva-spec-pill:last-child { border-right: none; }
.akva-spec-label { font-size: 9.5px; font-weight: 400; letter-spacing: 0.25em; text-transform: uppercase; color: rgba(255,255,255,0.5); }
.akva-spec-value { font-family: var(--akva-serif); font-size: 17px; font-weight: 400; color: #fff; line-height: 1.2; }

/* Product intro + highlights */
.akva-product-intro { background: var(--akva-white); padding: 90px 0; }
.akva-highlight-list { display: flex; flex-direction: column; gap: 0; margin-top: 40px; }
.akva-highlight-item { display: flex; gap: 24px; align-items: flex-start; padding: 22px 0; border-bottom: 1px solid var(--akva-mist); }
.akva-highlight-item:first-child { border-top: 1px solid var(--akva-mist); }
.akva-highlight-num   { font-family: var(--akva-serif); font-size: 13px; font-weight: 400; color: var(--akva-gold); letter-spacing: 0.1em; flex-shrink: 0; padding-top: 2px; min-width: 28px; }
.akva-highlight-title { font-family: var(--akva-serif); font-size: 19px; font-weight: 400; color: var(--akva-ink); margin-bottom: 5px; line-height: 1.25; }
.akva-highlight-text  { font-size: 13px; font-weight: 300; color: var(--akva-stone); line-height: 1.7; margin: 0; }

/* Gallery */
.akva-gallery { background: var(--akva-cream); padding: 80px 0; }
.akva-gallery-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; grid-template-rows: 280px 280px; gap: 3px; }
.akva-gallery-cell { overflow: hidden; position: relative; background: var(--akva-ink); }
.akva-gallery-cell:first-child { grid-row: 1 / 3; }
.akva-gallery-img  { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease, opacity 0.3s; opacity: 0.88; }
.akva-gallery-cell:hover .akva-gallery-img { transform: scale(1.04); opacity: 1; }
.akva-gallery-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 16px 18px; background: linear-gradient(to top, rgba(26,26,24,0.7), transparent); font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(255,255,255,0.7); opacity: 0; transform: translateY(4px); transition: opacity 0.3s, transform 0.3s; }
.akva-gallery-cell:hover .akva-gallery-caption { opacity: 1; transform: none; }

/* Specs accordion */
.akva-specs { background: var(--akva-cream); padding: 80px 0; }
.akva-specs-accordion .accordion-item { background: transparent; border: none; border-top: 1px solid var(--akva-mist); border-radius: 0 !important; }
.akva-specs-accordion .accordion-item:last-child { border-bottom: 1px solid var(--akva-mist); }
.akva-specs-accordion .accordion-button { background: transparent !important; border-radius: 0 !important; font-family: var(--akva-serif); font-size: 20px; font-weight: 400; color: var(--akva-ink) !important; padding: 22px 0; box-shadow: none; }
.akva-specs-accordion .accordion-button:not(.collapsed) { color: var(--akva-water) !important; }
.akva-specs-accordion .accordion-button::after { filter: none; opacity: 0.4; }
.akva-specs-accordion .accordion-body { padding: 0 0 28px; }
.akva-spec-table { width: 100%; border-collapse: collapse; }
.akva-spec-table tr { border-bottom: 1px solid var(--akva-mist); }
.akva-spec-table tr:last-child { border-bottom: none; }
.akva-spec-table td { padding: 12px 0; font-size: 14px; font-weight: 300; vertical-align: top; line-height: 1.6; }
.akva-spec-table td:first-child { color: var(--akva-stone); width: 40%; letter-spacing: 0.04em; }
.akva-spec-table td:last-child  { color: var(--akva-ink); }
.akva-cert-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.akva-cert { border: 1px solid var(--akva-mist); padding: 7px 16px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--akva-ink-soft); background: var(--akva-white); }

/* Accessories + Related */
.akva-accessories { background: var(--akva-white); padding: 80px 0; }
.akva-accessory-card { border: 1px solid var(--akva-mist); overflow: hidden; text-decoration: none; color: inherit; display: block; transition: transform 0.3s, box-shadow 0.3s; }
.akva-accessory-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(26,26,24,0.09); }
.akva-accessory-thumb { height: 180px; width: 100%; object-fit: cover; background: var(--akva-cream); }
.akva-accessory-body  { padding: 20px 18px; }
.akva-accessory-name  { font-family: var(--akva-serif); font-size: 18px; font-weight: 400; color: var(--akva-ink); margin-bottom: 5px; }
.akva-accessory-desc  { font-size: 12.5px; font-weight: 300; color: var(--akva-stone); line-height: 1.6; }

.akva-related { background: var(--akva-ink); padding: 80px 0; }
.akva-related-card { border: 1px solid rgba(255,255,255,0.08); overflow: hidden; text-decoration: none; color: inherit; display: block; transition: border-color 0.3s; }
.akva-related-card:hover { border-color: rgba(255,255,255,0.25); }
.akva-related-thumb { height: 200px; width: 100%; object-fit: cover; background: var(--akva-ink-soft); opacity: 0.75; transition: opacity 0.3s; }
.akva-related-card:hover .akva-related-thumb { opacity: 1; }
.akva-related-body    { padding: 22px 20px; }
.akva-related-name    { font-family: var(--akva-serif); font-size: 22px; font-weight: 400; color: #fff; margin-bottom: 6px; }
.akva-related-tagline { font-size: 12.5px; font-weight: 300; color: rgba(253,252,250,0.45); line-height: 1.6; margin-bottom: 14px; }
.akva-related-link    { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--akva-gold); text-decoration: none; border-bottom: 1px solid rgba(184,154,94,0.3); padding-bottom: 2px; }

/* ══════════════════════════════════════════
   CONTATTI  (/contatti)
   ══════════════════════════════════════════ */
.akva-channel-row   { padding: 0; margin-top: -2px; background: var(--akva-cream); }
.akva-channel-cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; background: var(--akva-ink); }
.akva-channel { padding: 40px 36px; border-right: 1px solid rgba(255,255,255,0.07); display: flex; flex-direction: column; gap: 0; cursor: pointer; text-decoration: none; transition: background var(--akva-transition); position: relative; }
.akva-channel:last-child { border-right: none; }
.akva-channel:hover { background: rgba(255,255,255,0.04); }
.akva-channel.whatsapp::after,
.akva-channel.phone::after,
.akva-channel.form-card::after { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; }
.akva-channel.whatsapp::after  { background: var(--akva-whatsapp); }
.akva-channel.phone::after     { background: var(--akva-gold); }
.akva-channel.form-card::after { background: var(--akva-water); }
.akva-channel-icon   { width: 44px; height: 44px; margin-bottom: 22px; flex-shrink: 0; }
.akva-channel-label  { font-size: 10px; font-weight: 400; letter-spacing: 0.28em; text-transform: uppercase; color: var(--akva-stone); margin-bottom: 8px; display: block; }
.akva-channel-title  { font-family: var(--akva-serif); font-size: 22px; font-weight: 400; color: #fff; margin-bottom: 10px; line-height: 1.2; }
.akva-channel-desc   { font-size: 13px; font-weight: 300; color: rgba(253,252,250,0.5); line-height: 1.7; flex: 1; margin-bottom: 24px; }
.akva-channel-action { display: inline-flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 400; letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none; padding: 11px 20px; border: 1px solid; transition: all var(--akva-transition); width: fit-content; }
.akva-channel.whatsapp .akva-channel-action  { color: var(--akva-whatsapp); border-color: rgba(37,211,102,0.35); }
.akva-channel.whatsapp:hover .akva-channel-action { background: var(--akva-whatsapp); color: #fff; border-color: var(--akva-whatsapp); }
.akva-channel.phone .akva-channel-action    { color: var(--akva-gold); border-color: rgba(184,154,94,0.35); }
.akva-channel.phone:hover .akva-channel-action { background: var(--akva-gold); color: #fff; border-color: var(--akva-gold); }
.akva-channel.form-card .akva-channel-action { color: var(--akva-water-md); border-color: rgba(104,153,178,0.35); }
.akva-channel.form-card:hover .akva-channel-action { background: var(--akva-water); color: #fff; border-color: var(--akva-water); }
.akva-response-badge { display: inline-block; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; padding: 4px 10px; margin-bottom: 20px; border-radius: 2px; }
.akva-response-badge.fast   { background: rgba(37,211,102,0.12); color: #25D366; }
.akva-response-badge.normal { background: rgba(184,154,94,0.12);  color: var(--akva-gold); }
.akva-response-badge.async  { background: rgba(58,107,138,0.15);  color: var(--akva-water-md); }

/* Contact body */
.akva-contact-body { background: var(--akva-cream); padding: 80px 0 100px; }
.akva-form-panel   { background: var(--akva-white); border: 1px solid var(--akva-mist); padding: 52px 48px 48px; }
.akva-form-title   { font-family: var(--akva-serif); font-size: 28px; font-weight: 400; color: var(--akva-ink); margin-bottom: 6px; line-height: 1.2; }
.akva-form-subtitle{ font-size: 14px; font-weight: 300; color: var(--akva-stone); line-height: 1.7; margin-bottom: 36px; padding-bottom: 28px; border-bottom: 1px solid var(--akva-mist); }

/* Webform fields */
.webform-submission-form .form-item,
.akva-field-group { margin-bottom: 24px; }
.webform-submission-form label, .akva-field-label { font-family: var(--akva-sans); font-size: 11px; font-weight: 400; letter-spacing: 0.18em; text-transform: uppercase; color: var(--akva-stone); display: block; margin-bottom: 8px; }
.webform-submission-form input[type="text"],
.webform-submission-form input[type="email"],
.webform-submission-form input[type="tel"],
.webform-submission-form select,
.akva-input, .akva-select { font-family: var(--akva-sans); font-size: 15px; font-weight: 300; color: var(--akva-ink); background: var(--akva-white); border: 1px solid var(--akva-mist); border-radius: 0; width: 100%; padding: 14px 18px; appearance: none; -webkit-appearance: none; outline: none; transition: border-color var(--akva-transition), box-shadow var(--akva-transition); }
.webform-submission-form input:focus,
.webform-submission-form select:focus,
.akva-input:focus, .akva-select:focus { border-color: var(--akva-water); box-shadow: 0 0 0 3px rgba(58,107,138,0.1); }
.webform-submission-form input::placeholder,
.akva-input::placeholder { color: rgba(138,137,126,0.55); }
.akva-select-wrap { position: relative; }
.akva-select-wrap::after { content: ''; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid var(--akva-stone); pointer-events: none; }
.akva-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.akva-privacy-wrap { display: flex; gap: 14px; align-items: flex-start; padding: 20px 0 0; border-top: 1px solid var(--akva-mist); margin-top: 8px; }
.akva-privacy-wrap input[type="checkbox"],
.webform-submission-form input[type="checkbox"] { width: 18px; height: 18px; flex-shrink: 0; margin-top: 2px; accent-color: var(--akva-water); cursor: pointer; }
.akva-privacy-text   { font-size: 12px; font-weight: 300; color: var(--akva-stone); line-height: 1.65; }
.akva-privacy-text a { color: var(--akva-water); text-decoration: none; }
.akva-privacy-text a:hover { text-decoration: underline; }
.webform-submission-form .form-actions .webform-button--submit,
.btn-akva-submit { font-family: var(--akva-sans); font-size: 12px; font-weight: 400; letter-spacing: 0.22em; text-transform: uppercase; background: var(--akva-ink); color: #fff; border: 1px solid var(--akva-ink); padding: 16px 48px; width: 100%; cursor: pointer; border-radius: 0; margin-top: 24px; transition: all var(--akva-transition); display: flex; align-items: center; justify-content: center; gap: 12px; }
.btn-akva-submit:hover,
.webform-submission-form .form-actions .webform-button--submit:hover { background: var(--akva-water); border-color: var(--akva-water); }
.webform-submission-form input.error, .akva-input.error { border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192,57,43,0.08); }
.webform-submission-form .form-item--error-message, .akva-field-error { font-size: 11.5px; color: #c0392b; margin-top: 5px; letter-spacing: 0.05em; }

/* Contact aside */
.akva-contact-aside       { position: sticky; top: 90px; }
.akva-aside-promise       { background: var(--akva-water); padding: 36px 32px; margin-bottom: 2px; }
.akva-aside-promise-title { font-family: var(--akva-serif); font-size: 22px; font-weight: 400; color: #fff; line-height: 1.25; margin-bottom: 14px; }
.akva-aside-promise-text  { font-size: 13px; font-weight: 300; color: rgba(255,255,255,0.7); line-height: 1.75; margin: 0; }
.akva-aside-promises-list { list-style: none; padding: 0; margin: 20px 0 0; display: flex; flex-direction: column; gap: 14px; }
.akva-aside-promises-list li { display: flex; gap: 12px; align-items: flex-start; }
.akva-aside-check { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; }
.akva-aside-promises-list span { font-size: 13px; font-weight: 300; color: rgba(255,255,255,0.75); line-height: 1.55; }
.akva-aside-proof           { background: var(--akva-white); border: 1px solid var(--akva-mist); border-top: none; padding: 28px 28px 24px; }
.akva-aside-proof-title     { font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--akva-stone); margin-bottom: 18px; display: block; }
.akva-mini-testi            { padding: 18px 0; border-bottom: 1px solid var(--akva-mist); }
.akva-mini-testi:last-child { border-bottom: none; padding-bottom: 0; }
.akva-mini-quote  { font-family: var(--akva-serif); font-size: 15px; font-weight: 300; font-style: italic; color: var(--akva-ink); line-height: 1.55; margin-bottom: 8px; }
.akva-mini-author { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--akva-stone); }
.akva-mini-stars  { display: flex; gap: 3px; margin-bottom: 8px; }
.akva-star-sm     { width: 8px; height: 8px; background: var(--akva-gold); clip-path: polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%); }
.akva-proof-locations      { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--akva-mist); }
.akva-proof-locations-link { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--akva-ink); font-size: 13px; font-weight: 300; transition: color var(--akva-transition); }
.akva-proof-locations-link:hover { color: var(--akva-water); }
.akva-proof-locations-link svg { flex-shrink: 0; }
.akva-proof-locations-label{ font-family: var(--akva-serif); font-size: 16px; font-weight: 400; color: var(--akva-ink); line-height: 1.2; }
.akva-proof-locations-sub  { font-size: 11px; color: var(--akva-stone); letter-spacing: 0.08em; text-transform: uppercase; }

/* Social proof strip */
.akva-proof-strip { background: var(--akva-ink); padding: 36px 0; }
.akva-proof-item  { display: flex; align-items: center; gap: 14px; padding: 0 3vw; border-right: 1px solid rgba(255,255,255,0.07); }
.akva-proof-item:last-child { border-right: none; }
.akva-proof-val   { font-family: var(--akva-serif); font-size: 32px; font-weight: 300; color: #fff; line-height: 1; white-space: nowrap; }
.akva-proof-val span { font-size: 18px; color: var(--akva-gold); }
.akva-proof-label { font-size: 12px; font-weight: 300; color: rgba(253,252,250,0.45); line-height: 1.5; }

/* ══════════════════════════════════════════
   HOTEL & SPA  (/hotel-spa)
   NOTE: This page was using a separate token
   namespace (--serif, --gold, --ink etc).
   All replaced with --akva-* tokens here.
   ══════════════════════════════════════════ */
.form-section { display: block !important; grid-template-columns: unset; gap: unset; }
.form-section .col-lg-6:last-child { padding-left: 40px; }
@media (max-width: 900px) {
  .form-section .col-lg-6:last-child { padding-left: var(--bs-gutter-x, 15px); margin-top: 48px; }
}

/* Benefits grid (hotel-spa variant) */
.benefits-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--akva-mist); border: 1px solid var(--akva-mist); }
.benefit-item { background: var(--akva-white); padding: 40px 36px; transition: background 0.2s; }
.benefit-item:hover { background: var(--akva-cream); }
.benefit-num  { font-family: var(--akva-serif); font-size: 48px; font-weight: 300; color: var(--akva-gold); opacity: 0.4; line-height: 1; margin-bottom: 20px; }
.benefit-title{ font-family: var(--akva-serif); font-size: 22px; font-weight: 400; margin-bottom: 12px; line-height: 1.3; }
.benefit-desc { font-size: 14px; font-weight: 300; color: var(--akva-stone); line-height: 1.7; }

/* B2B form (hotel-spa) */
.b2b-contact-form { display: flex; flex-direction: column; gap: 0; }
.b2b-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-bottom: 1px; }
.b2b-form-field { display: flex; flex-direction: column; }
.b2b-form-field label { font-size: 10px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.4); padding: 16px 20px 0; background: rgba(255,255,255,0.05); }
.b2b-form-field input,
.b2b-form-field select,
.b2b-form-field textarea { background: rgba(255,255,255,0.05); border: none; padding: 8px 20px 16px; font-size: 15px; font-weight: 300; color: white; font-family: var(--akva-sans); outline: none; transition: background 0.2s; width: 100%; }
.b2b-form-field input:focus,
.b2b-form-field select:focus,
.b2b-form-field textarea:focus { background: rgba(255,255,255,0.1); }
.b2b-form-field select option { background: var(--akva-ink); color: white; }
.b2b-form-field textarea { resize: none; min-height: 100px; }
.b2b-form-submit { background: var(--akva-gold); color: white; border: none; padding: 20px 32px; font-size: 13px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; transition: background 0.2s; margin-top: 1px; width: 100%; font-family: var(--akva-sans); }
.b2b-form-submit:hover { background: var(--akva-gold-lt); }
.b2b-form-note { font-size: 11px; color: rgba(255,255,255,0.3); text-align: center; margin-top: 12px; font-weight: 300; }

/* ══════════════════════════════════════════
   PUNTI DI PROVA  (/punti-di-prova)
   ══════════════════════════════════════════ */
/* Promise strip */
.akva-pdp-promise-strip { display: flex; gap: 0; margin-top: 10px; border-top: 1px solid rgba(255,255,255,0.07); }
.akva-pdp-promise-item  { flex: 1; padding: 20px 24px; border-right: 1px solid rgba(255,255,255,0.07); display: flex; align-items: center; gap: 12px; }
.akva-pdp-promise-item:last-child { border-right: none; }
.akva-pdp-promise-icon  { flex-shrink: 0; }
.akva-pdp-promise-text  { font-size: 12px; font-weight: 300; color: rgba(253,252,250,0.55); line-height: 1.45; letter-spacing: 0.03em; }
.akva-pdp-promise-text strong { display: block; color: rgba(253,252,250,0.82); font-weight: 400; margin-bottom: 1px; letter-spacing: 0.04em; }

/* Search + filter bar */
.akva-search-bar { background: var(--akva-white); border-bottom: 1px solid var(--akva-mist); padding: 0; position: sticky; top: 70px; z-index: 900; box-shadow: 0 2px 12px rgba(26,26,24,0.06); }
.akva-search-inner { display: flex; align-items: stretch; gap: 0; min-height: 54px; }
.akva-search-input-wrap { flex: 1; display: flex; align-items: center; gap: 10px; padding: 0 20px; border-right: 1px solid var(--akva-mist); }
.akva-search-input-wrap svg { flex-shrink: 0; opacity: 0.4; }
.akva-search-input { font-family: var(--akva-sans); font-size: 13px; font-weight: 300; color: var(--akva-ink); background: transparent; border: none; outline: none; width: 100%; }
.akva-search-input::placeholder { color: var(--akva-stone); }
.akva-type-filters { display: flex; align-items: center; padding: 0 8px; overflow-x: auto; flex-shrink: 0; scrollbar-width: none; }
.akva-type-filters::-webkit-scrollbar { display: none; }
.akva-type-btn { font-family: var(--akva-sans); font-size: 10.5px; font-weight: 400; letter-spacing: 0.15em; text-transform: uppercase; padding: 8px 16px; border: none; background: transparent; color: var(--akva-stone); cursor: pointer; white-space: nowrap; border-bottom: 2px solid transparent; transition: all var(--akva-t); }
.akva-type-btn:hover { color: var(--akva-ink); }
.akva-type-btn.active { color: var(--akva-water); border-bottom-color: var(--akva-water); }
.akva-count-badge { padding: 0 16px; display: flex; align-items: center; border-left: 1px solid var(--akva-mist); flex-shrink: 0; }
.akva-count-text { font-size: 11px; font-weight: 300; color: var(--akva-stone); white-space: nowrap; }
.akva-count-text span { color: var(--akva-ink); font-weight: 400; }

/* Map */
.akva-map-section  { background: var(--akva-cream); padding: 0; }
.akva-map-layout   { display: grid; grid-template-columns: 340px 1fr; min-height: 520px; }
.akva-map-sidebar  { background: var(--akva-white); border-right: 1px solid var(--akva-mist); overflow-y: auto; max-height: 520px; position: relative; }
.akva-map-sidebar-header { padding: 20px 22px 16px; border-bottom: 1px solid var(--akva-mist); position: sticky; top: 0; background: var(--akva-white); z-index: 2; }
.akva-map-sidebar-title  { font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase; color: var(--akva-stone); margin-bottom: 4px; display: block; }
.akva-map-sidebar-count  { font-family: var(--akva-serif); font-size: 20px; font-weight: 400; color: var(--akva-ink); }
.akva-sidebar-item { display: flex; gap: 14px; align-items: flex-start; padding: 16px 22px; border-bottom: 1px solid var(--akva-mist); cursor: pointer; transition: background var(--akva-t); text-decoration: none; color: inherit; }
.akva-sidebar-item:hover,
.akva-sidebar-item.active { background: var(--akva-cream); }
.akva-sidebar-item.active { border-left: 3px solid var(--akva-water); padding-left: 19px; }
.akva-sidebar-thumb { width: 52px; height: 52px; object-fit: cover; flex-shrink: 0; background: var(--akva-mist); }
.akva-sidebar-name  { font-family: var(--akva-serif); font-size: 15px; font-weight: 400; color: var(--akva-ink); margin-bottom: 3px; line-height: 1.2; }
.akva-sidebar-meta  { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.akva-sidebar-city  { font-size: 11.5px; font-weight: 300; color: var(--akva-stone); }
.akva-sidebar-type-badge { font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; padding: 2px 8px; border-radius: 2px; }
.badge-showroom    { background: rgba(58,107,138,0.12); color: var(--akva-water); }
.badge-hotel       { background: rgba(184,154,94,0.12);  color: #9c7e3a; }
.badge-agriturismo { background: rgba(59,109,17,0.10);   color: #3b6d11; }
.badge-spa         { background: rgba(212,180,137,0.2);  color: #9c7e3a; }
.badge-benessere   { background: rgba(58,107,138,0.1);   color: var(--akva-water-md); }
.badge-altro       { background: var(--akva-mist);       color: var(--akva-stone); }
.akva-leaflet-wrap { position: relative; min-height: 520px; }
#akvaMap { width: 100%; height: 520px; }
.leaflet-popup-content-wrapper { border-radius: 0 !important; border: 1px solid var(--akva-mist) !important; box-shadow: 0 8px 32px rgba(26,26,24,0.12) !important; padding: 0 !important; font-family: var(--akva-sans) !important; min-width: 220px; }
.leaflet-popup-content { margin: 0 !important; }
.leaflet-popup-tip-container { display: none; }
.akva-popup-img  { width: 100%; height: 110px; object-fit: cover; display: block; }
.akva-popup-body { padding: 14px 16px; }
.akva-popup-type { font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase; margin-bottom: 5px; display: block; }
.akva-popup-name { font-family: var(--akva-serif); font-size: 16px; font-weight: 400; color: var(--akva-ink); margin-bottom: 4px; line-height: 1.2; }
.akva-popup-city { font-size: 11px; color: var(--akva-stone); margin-bottom: 10px; }
.akva-popup-link { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--akva-water); text-decoration: none; display: inline-flex; align-items: center; gap: 5px; border-bottom: 1px solid var(--akva-water-pale); padding-bottom: 1px; transition: border-color var(--akva-t); }
.akva-popup-link:hover { border-color: var(--akva-water); }
.akva-marker-icon { background: var(--akva-water); width: 28px !important; height: 28px !important; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); border: 2px solid #fff; box-shadow: 0 2px 8px rgba(0,0,0,0.25); }
.akva-marker-icon.featured { background: var(--akva-gold); }
.akva-marker-icon.active   { background: var(--akva-ink); border-color: var(--akva-gold); }

/* Location cards grid */
.akva-pdp-grid-section { background: var(--akva-cream); padding: 72px 0 90px; }
.akva-pdp-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 3px; }
.akva-pdp-card { background: var(--akva-white); text-decoration: none; color: inherit; display: flex; flex-direction: column; overflow: hidden; transition: transform var(--akva-t), box-shadow var(--akva-t); position: relative; }
.akva-pdp-card:hover { transform: translateY(-4px); box-shadow: 0 14px 44px rgba(26,26,24,0.1); }
.akva-pdp-card.is-hidden { display: none; }
.akva-pdp-card.featured { grid-column: span 2; flex-direction: row; }
.akva-pdp-card.featured .akva-pdp-card-img  { height: auto; width: 48%; flex-shrink: 0; min-height: 280px; }
.akva-pdp-card.featured .akva-pdp-card-body { padding: 36px; }
.akva-pdp-card-img { height: 210px; overflow: hidden; position: relative; background: var(--akva-ink); }
.akva-pdp-card-img img { width: 100%; height: 100%; object-fit: cover; opacity: 0.88; transition: opacity 0.4s, transform 0.6s; }
.akva-pdp-card:hover .akva-pdp-card-img img { opacity: 1; transform: scale(1.04); }
.akva-pdp-type-overlay { position: absolute; top: 14px; left: 14px; font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase; padding: 5px 12px; z-index: 1; backdrop-filter: blur(4px); }
.akva-pdp-card.featured .akva-pdp-type-overlay { background: var(--akva-gold); color: #fff; }
.akva-pdp-card-body     { padding: 24px 24px 28px; flex: 1; display: flex; flex-direction: column; }
.akva-pdp-card-name     { font-family: var(--akva-serif); font-size: 21px; font-weight: 400; color: var(--akva-ink); margin-bottom: 6px; line-height: 1.2; }
.akva-pdp-card-location { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 300; color: var(--akva-stone); margin-bottom: 12px; }
.akva-pdp-card-location svg { flex-shrink: 0; opacity: 0.5; }
.akva-pdp-card-desc     { font-size: 13px; font-weight: 300; color: var(--akva-stone); line-height: 1.7; flex: 1; margin-bottom: 20px; }
.akva-pdp-card-actions  { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding-top: 16px; border-top: 1px solid var(--akva-mist); margin-top: auto; }
.akva-pdp-card-link     { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--akva-water); text-decoration: none; border-bottom: 1px solid var(--akva-water-pale); padding-bottom: 2px; transition: border-color var(--akva-t); display: inline-block; }
.akva-pdp-card:hover .akva-pdp-card-link { border-color: var(--akva-water); }
.akva-pdp-card-phone    { font-size: 12px; font-weight: 300; color: var(--akva-stone); text-decoration: none; display: flex; align-items: center; gap: 5px; transition: color var(--akva-t); }
.akva-pdp-card-phone:hover { color: var(--akva-ink); }
.akva-pdp-empty { display: none; text-align: center; padding: 60px 20px; grid-column: 1/-1; }
.akva-pdp-empty.visible { display: block; }
.akva-pdp-empty-title { font-family: var(--akva-serif); font-size: 22px; color: var(--akva-stone); margin-bottom: 10px; }
.akva-pdp-empty-text  { font-size: 14px; color: var(--akva-stone); }

/* CTA strip */
.akva-pdp-cta { background: var(--akva-ink); padding: 80px 0; text-align: center; position: relative; overflow: hidden; }
.akva-pdp-cta-title { font-family: var(--akva-serif); font-weight: 300; font-size: clamp(26px,4vw,48px); line-height: 1.1; color: #fff; max-width: 540px; margin: 0 auto 14px; }
.akva-pdp-cta-title em { font-style: italic; color: var(--akva-water-md); }
.akva-pdp-cta-sub     { font-size: 15px; font-weight: 300; color: rgba(253,252,250,0.52); max-width: 420px; margin: 0 auto 40px; line-height: 1.8; }
.akva-pdp-cta-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; position: relative; z-index: 1; }

/* ══════════════════════════════════════════
   PRIVACY POLICY  (/privacy-policy)
   Scoped to Drupal body class .path-privacy-policy
   ══════════════════════════════════════════ */
.path-privacy-policy .field--name-body.field__item { max-width: 760px; margin: 0 auto; padding: 3rem 1.5rem 6rem; }
.path-privacy-policy h1 { font-size: 2rem; font-weight: 700; color: #1a1a1a; margin-bottom: 0.25rem; letter-spacing: -0.02em; }
.path-privacy-policy p:first-of-type { font-size: 0.8rem; color: #888; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 2.5rem; }
.path-privacy-policy h2 { font-size: 1.25rem; font-weight: 700; color: #1a1a1a; margin-top: 3rem; margin-bottom: 1rem; padding-top: 2rem; border-top: 1px solid #e0e0e0; letter-spacing: -0.01em; }
.path-privacy-policy h2:first-of-type { border-top: none; padding-top: 0; margin-top: 0; }
.path-privacy-policy h3 { font-size: 0.7rem; font-weight: 600; color: #888; text-transform: uppercase; letter-spacing: 0.1em; margin-top: 2rem; margin-bottom: 0.75rem; }
.path-privacy-policy p  { color: #333; margin-bottom: 1.25rem; }
.path-privacy-policy ul { list-style: none; padding-left: 0; margin: 0.75rem 0 1.5rem; }
.path-privacy-policy ul li { position: relative; padding-left: 1.25rem; margin-bottom: 0.5rem; color: #333; font-size: 15px; line-height: 1.7; }
.path-privacy-policy ul li::before { content: "—"; position: absolute; left: 0; color: #a8bfc9; font-weight: 400; }
.path-privacy-policy strong { font-weight: 600; color: #555; }
.path-privacy-policy p strong { color: #1a1a1a; }
.path-privacy-policy a { color: #4a7a8a; text-decoration: none; border-bottom: 1px solid rgba(74,122,138,0.35); transition: border-color 0.2s, color 0.2s; }
.path-privacy-policy a:hover { color: #2d5a6a; border-bottom-color: #2d5a6a; }

/* ══════════════════════════════════════════
       HERO Letti e Materassi URL: /letti-e-matterassi-ad-acqua
    ══════════════════════════════════════════ */
    .akva-cat-hero {
      background: var(--akva-ink);
      min-height: 80vh;
      display: flex;
      flex-direction: column;
      position: relative;
      overflow: hidden;
      /* padding-top: 70px; */
    }
    .akva-cat-hero::before {
      content: 'LETTI';
      position: absolute;
      font-family: var(--akva-serif);
      font-size: clamp(120px, 20vw, 260px);
      font-weight: 300;
      color: rgba(255,255,255,0.025);
      bottom: -20px;
      right: -20px;
      white-space: nowrap;
      pointer-events: none;
      letter-spacing: 0.2em;
      line-height: 1;
    }

    .akva-cat-hero-text {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 72px 5vw 72px 6vw;
      position: relative;
      z-index: 2;
    }
    .akva-cat-hero-eyebrow {
      font-size: 11px;
      font-weight: 400;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--akva-gold-lt);
      display: block;
      margin-bottom: 22px;
      animation: akvaFadeUp 0.9s 0.2s both;
    }
    .akva-cat-hero-title {
      font-family: var(--akva-serif);
      font-weight: 300;
      font-size: clamp(38px, 5vw, 72px);
      line-height: 1.07;
      color: #fff;
      margin-bottom: 24px;
      animation: akvaFadeUp 0.9s 0.4s both;
    }
    .akva-cat-hero-title em { font-style: italic; color: var(--akva-water-md); }
    .akva-cat-hero-sub {
      font-size: 16px;
      font-weight: 300;
      color: rgba(253,252,250,0.6);
      line-height: 1.8;
      max-width: 440px;
      margin-bottom: 40px;
      animation: akvaFadeUp 0.9s 0.6s both;
    }
    .akva-cat-hero-actions {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      animation: akvaFadeUp 0.9s 0.8s both;
    }
 
    /* Hero image grid */
    .akva-cat-hero-visual {
      position: relative;
      overflow: hidden;
    }
    
    .akva-cat-hero-visual::before {
      content: '';
      position: absolute;
      top: 0; left: 0; bottom: 0;
      width: 100px;
      background: linear-gradient(to right, var(--akva-ink), transparent);
      z-index: 1;
      pointer-events: none;
    }
    .akva-hero-img-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      grid-template-rows: 1fr 1fr;
      gap: 3px;
      height: 100%;
      min-height: 440px;
    }
    .akva-hero-img-cell {
      overflow: hidden;
      position: relative;
      background: var(--akva-ink-soft);
    }
    .akva-hero-img-cell.tall { grid-row: 1 / 3; }
.akva-hero-img-cell-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.6s ease;
  z-index: 0;
}

.akva-hero-img-cell:hover .akva-hero-img-cell-bg {
  transform: scale(1.04);
}

.akva-hero-img-label {
  position: absolute;
  bottom: 12px;
  left: 14px;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.82);
  background: rgba(26,26,24,0.70);
  padding: 5px 12px;
  z-index: 2;
  pointer-events: none;
  /* No backdrop-filter — Safari kills it inside overflow:hidden */
}

.akva-hero-img-cell::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 80px;
  background: linear-gradient(to top, rgba(26,26,24,0.45), transparent);
  pointer-events: none;
  z-index: 1;
}

 /* ══════════════════════════════════════════
       INTENT SPLIT BLOCK URL: /letti-e-matterassi-ad-acqua
    ══════════════════════════════════════════ */
    .akva-intent-section {
      background: var(--akva-cream);
      padding: 72px 0;
    }
    .akva-intent-header {
      margin-bottom: 36px;
    }
    .akva-intent-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 3px;
    }
    .akva-intent-card {
      background: var(--akva-white);
      border: 1px solid var(--akva-mist);
      border-top: 3px solid transparent;
      padding: 40px 36px;
      display: flex;
      flex-direction: column;
      gap: 14px;
      cursor: pointer;
      transition: background var(--akva-transition);
    }
    .akva-intent-card.primary { border-top-color: var(--akva-gold); }
    .akva-intent-card.secondary { border-top-color: var(--akva-water); }
    .akva-intent-card:hover { background: var(--akva-cream); }
    .akva-intent-icon {
      width: 48px;
      height: 48px;
      border: 1px solid var(--akva-mist);
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .akva-intent-icon svg { width: 22px; height: 22px; }
    .akva-intent-label {
      font-size: 10px;
      letter-spacing: 0.28em;
      text-transform: uppercase;
      color: var(--akva-stone);
      display: block;
    }
    .akva-intent-title {
      font-family: var(--akva-serif);
      font-size: clamp(22px, 2.5vw, 32px);
      font-weight: 400;
      color: var(--akva-ink);
      line-height: 1.2;
    }
    .akva-intent-title em { font-style: italic; color: var(--akva-water-md); }
    .akva-intent-desc {
      font-size: 15px;
      font-weight: 300;
      color: var(--akva-stone);
      line-height: 1.75;
      flex: 1;
    }
    .akva-intent-link {
      font-size: 11px;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--akva-water);
      border-bottom: 1px solid var(--akva-water-pale);
      padding-bottom: 2px;
      width: fit-content;
      transition: border-color var(--akva-t);
      margin-top: 8px;
    }
    .akva-intent-card:hover .akva-intent-link { border-color: var(--akva-water); }





/* ══════════════════════════════════════════
   RESPONSIVE — all components
   ══════════════════════════════════════════ */
@media (max-width: 991.98px) {
  /* Contatti */
  .akva-channel-cards { grid-template-columns: 1fr; }
  .akva-channel { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.07); }
  .akva-channel:last-child { border-bottom: none; }
  .akva-form-panel { padding: 36px 28px; }
  .akva-form-row   { grid-template-columns: 1fr; }
  .akva-contact-aside { position: static; margin-top: 32px; }
  .akva-proof-item { padding: 12px 0; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.07); }
  .akva-proof-item:last-child { border-bottom: none; }
  /* Catalogue */
  .akva-primary-cat-card { grid-template-columns: 1fr; }
  .akva-primary-cat-img  { min-height: 320px; }
  .akva-cat-grid { grid-template-columns: 1fr 1fr; }
  .akva-cat-card.wide { flex-direction: column; }
  .akva-cat-card.wide .akva-cat-card-img { width: 100%; height: 200px; }
  .akva-why-grid { grid-template-columns: 1fr 1fr; }
  .akva-hero-img-grid { min-height: 300px; }
  /* Hotel-spa */
  .benefits-grid { grid-template-columns: 1fr; }
  /* Map */
  .akva-map-layout { grid-template-columns: 1fr; }
  .akva-map-sidebar { max-height: 260px; border-right: none; border-bottom: 1px solid var(--akva-mist); }
  /* PDP grid */
  .akva-pdp-grid { grid-template-columns: 1fr 1fr; }
  .akva-pdp-card.featured { grid-column: span 2; flex-direction: column; }
  .akva-pdp-card.featured .akva-pdp-card-img { width: 100%; height: 240px; }
  .akva-pdp-promise-strip { flex-wrap: wrap; }
  .akva-pdp-promise-item  { flex: 1 1 45%; }
}

@media (max-width: 767.98px) {
  /* Catalogue */
  .akva-cat-hero-inner  { flex-direction: column; }
  .akva-cat-hero-visual { min-height: 260px; }
  .akva-cat-hero-visual::before { display: none; }
  .akva-cat-grid  { grid-template-columns: 1fr; }
  .akva-why-grid  { grid-template-columns: 1fr; }
  .akva-filter-pills { display: none; }
  /* PDP */
  .akva-pdp-grid  { grid-template-columns: 1fr; }
  .akva-pdp-card.featured { grid-column: span 1; }
  .akva-type-filters { max-width: 60vw; }
  /* Privacy */
  .path-privacy-policy .field--name-body { font-size: 15px; }
  .path-privacy-policy .field--name-body h2 { font-size: 1.1rem; }
}
