/* home.css — du-marketplace front page (search-first marketplace home).
   Approved layout reference: work/design/home-elementor-v2.json (curated
   home) and work/design/home-v3.css. Rebuilt natively, no Elementor selectors.
   Palette: navy #111c4e · blue #2352ed · white · pale blue #eff5ff.
   Enqueued by root as handle 'du-native-home' (front page only). */

.du-home {
  --du-hero-image: none;
  color: var(--du-ink, #111c4e);
}

/* ------------------------------------------------------------------ hero */

.du-hero {
  background-color: #eff5ff;
  background-image: var(--du-hero-image);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: auto 100%;
  padding: 56px 0 48px;
  min-height: 470px;
}

.du-hero-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 358px;
}

.du-eyebrow {
  margin: 0;
  color: #47618f;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 3px;
  line-height: 1.5;
  text-transform: uppercase;
}

.du-hero-title {
  margin: 16px 0 0;
  font-size: clamp(34px, 5.1vw, 66px);
  line-height: 1.04;
  letter-spacing: -2.4px;
  font-weight: 800;
  max-width: 900px;
}

.du-hero-title span {
  color: #2352ed;
}

.du-hero-intro {
  margin: 20px 0 0;
  color: #4d5d80;
  font-size: 20px;
  line-height: 1.5;
  max-width: 720px;
}

/* ---------------------------------------------------------- hero search */

.du-hero-search {
  margin-top: 28px;
  max-width: 856px;
  width: 100%;
}

/* Plugin catalog-search shortcode ([du_dispense_search] -> catalog-search.php) */
.du-home .du-catalog-search {
  max-width: 100%;
  margin: 0;
}

.du-home .du-catalog-search > .du-catalog-label {
  margin: 0 0 10px;
  color: #111c4e;
  font-size: 17px;
  font-weight: 700;
}

.du-home .du-catalog-row {
  gap: 0;
  background: #ffffff;
  border: 1px solid #d5e0f2;
  border-radius: 8px;
  padding: 3px;
  min-height: 68px;
}

.du-home .du-catalog-input-wrap {
  flex: 1 1 auto;
  min-width: 0;
}

.du-home .du-catalog-icon {
  left: 20px;
  color: #4d5d80;
}

.du-home form.du-catalog-search input.du-catalog-input[type="search"] {
  min-height: 60px;
  padding: 16px 20px 16px 56px !important;
  color: #111c4e;
  font-size: 16px;
  background: transparent;
  border: 0 !important;
  border-radius: 6px;
}

.du-home form.du-catalog-search input.du-catalog-input[type="search"]:focus-visible {
  outline: 3px solid #2352ed;
  outline-offset: 1px;
}

.du-home form.du-catalog-search button.du-catalog-submit {
  flex: 0 0 auto;
  min-width: 236px;
  min-height: 60px;
  padding: 0 34px;
  font-size: 17px;
  background: #2352ed;
  border: 1px solid #2352ed;
  border-radius: 6px;
}

.du-home form.du-catalog-search button.du-catalog-submit:hover {
  background: #1a3fc4;
  border-color: #1a3fc4;
}

/* Fallback markup when the catalog-search module is not loaded. */
.du-home .du-search {
  max-width: 100%;
  margin: 0;
}

.du-home .du-search label {
  display: block;
  margin: 0 0 10px;
  color: #111c4e;
  font-size: 17px;
  font-weight: 700;
}

.du-home .du-search-row {
  position: relative;
  display: flex;
  align-items: stretch;
  background: #ffffff;
  border: 1px solid #d5e0f2;
  border-radius: 8px;
  padding: 3px;
  min-height: 68px;
}

.du-home .du-search-icon {
  position: absolute;
  top: 50%;
  left: 20px;
  transform: translateY(-50%);
  color: #4d5d80;
  pointer-events: none;
}

.du-home .du-search input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  padding: 16px 20px 16px 56px;
  color: #111c4e;
  font: 16px var(--du-font, sans-serif);
  background: transparent;
  border: 0;
  border-radius: 6px;
}

.du-home .du-search input[type="search"]::placeholder {
  color: #6a7894;
  opacity: 1;
}

.du-home .du-search button {
  flex: 0 0 auto;
  min-width: 236px;
  min-height: 60px;
  padding: 0 34px;
  background: #2352ed;
  color: #ffffff;
  border: 0;
  border-radius: 6px;
  font: 700 17px var(--du-font, sans-serif);
  white-space: nowrap;
  cursor: pointer;
}

.du-home .du-search button:hover {
  background: #1a3fc4;
}

/* ------------------------------------------------------- section headings */

.du-section {
  padding-block: 44px;
}

.du-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 28px;
  margin-bottom: 26px;
}

.du-section-title {
  margin: 8px 0 0;
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.15;
  letter-spacing: -1.2px;
  font-weight: 800;
}

.du-section-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: #2352ed;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.du-section-link:hover {
  text-decoration: underline;
}

/* -------------------------------------------------------- category grid */

.du-cat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.du-cat-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  padding: 22px 22px 20px;
  background: #ffffff;
  border: 1px solid #d9e2f2;
  border-radius: 12px;
  text-decoration: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.du-cat-card:hover {
  border-color: #2352ed;
  box-shadow: 0 10px 24px rgba(17, 28, 78, 0.08);
  transform: translateY(-2px);
}

.du-cat-card:focus-visible {
  outline: 3px solid #111c4e;
  outline-offset: 3px;
}

.du-cat-name {
  color: #111c4e;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.du-cat-count {
  color: #4d5d80;
  font-size: 14px;
}

.du-cat-arrow {
  margin-top: 8px;
  color: #2352ed;
  font-size: 15px;
  font-weight: 700;
}

.du-empty-note {
  margin: 0;
  color: #4d5d80;
}

/* --------------------------------------------------------- recent products */

.du-recent .products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.du-recent .products::before,
.du-recent .products::after {
  display: none;
}

.du-recent .products li.product {
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
  overflow-wrap: anywhere;
}

.du-home .du-recent .woocommerce-loop-product__title {
  color: #111c4e;
  font-size: 16px;
  line-height: 1.3;
}

.du-recent .price {
  color: #111c4e;
  font-weight: 700;
}

.du-recent .button,
.du-recent .added_to_cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 8px 18px;
  background: #2352ed;
  color: #ffffff;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}

.du-recent .button:hover {
  background: #1a3fc4;
  color: #ffffff;
}

/* -------------------------------------------------------------- share band */

.du-share {
  padding-block: 20px 0;
}

.du-share-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
  padding: 26px 34px;
  background: #eff5ff;
  border-radius: 16px;
}

.du-share-copy {
  min-width: 0;
}

.du-share-title {
  margin: 0;
  font-size: clamp(20px, 2.3vw, 26px);
  line-height: 1.25;
  font-weight: 800;
}

.du-share-text {
  margin: 6px 0 0;
  color: #4d5d80;
  font-size: 16px;
}

.du-share-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 18px;
}

.du-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 26px;
  background: #2352ed;
  color: #ffffff;
  border: 1px solid #2352ed;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
}

.du-button:hover {
  background: #1a3fc4;
  border-color: #1a3fc4;
  color: #ffffff;
}

.du-button--ghost {
  background: transparent;
  color: #111c4e;
  border-color: #c7d5ee;
}

.du-button--ghost:hover {
  background: #ffffff;
  border-color: #2352ed;
  color: #2352ed;
}

/* -------------------------------------------------------------- responsive */

@media (max-width: 1100px) {
  .du-hero {
    background-size: auto 88%;
    background-position: calc(100% + 160px) bottom;
  }

  .du-cat-grid,
  .du-recent .products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .du-hero {
    padding: 44px 0 40px;
    min-height: 0;
  }

  .du-hero-inner {
    min-height: 0;
  }

  .du-section {
    padding-block: 34px;
  }

  .du-cat-grid,
  .du-recent .products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .du-share-inner {
    padding: 22px 24px;
  }
}

@media (max-width: 767px) {
  .du-hero {
    background-image: none;
  }

  .du-hero-title {
    letter-spacing: -1.4px;
  }

  .du-hero-intro {
    font-size: 17px;
  }

  .du-desktop-break {
    display: none;
  }

  .du-home .du-catalog-row,
  .du-home .du-search-row {
    flex-direction: column;
    background: transparent;
    border: 0;
    padding: 0;
    gap: 10px;
  }

  .du-home .du-catalog-input-wrap {
    flex: 1 1 100%;
    width: 100%;
  }

  .du-home form.du-catalog-search input.du-catalog-input[type="search"] {
    background: #ffffff;
    border: 1px solid #c7d5ee !important;
    border-radius: 8px;
    min-height: 56px;
  }

  .du-home form.du-catalog-search button.du-catalog-submit,
  .du-home .du-search button {
    width: 100%;
    min-width: 0;
    min-height: 54px;
  }

  .du-share-actions {
    width: 100%;
  }

  .du-share-actions .du-button {
    flex: 1 1 100%;
  }
}

@media (max-width: 520px) {
  .du-cat-grid,
  .du-recent .products {
    grid-template-columns: 1fr;
  }

  .du-hero-search {
    margin-top: 22px;
  }

  .du-home .du-catalog-search > .du-catalog-label,
  .du-home .du-search label {
    font-size: 15px;
    line-height: 1.4;
  }
}

/* Expanded home: lightweight, native sections with no additional scripts. */
.du-home .du-section { padding-block:64px; }
.du-home .du-section-intro { color:#536383; font-size:17px; line-height:1.7; max-width:640px; margin:18px 0 0; }
.du-home .du-cats .du-section-head { align-items:center; margin-bottom:32px; }
.du-home .du-cat-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.du-home .du-cat-grid li { min-width:0; }
.du-home .du-cat-card { height:100%; min-height:260px; padding:26px; gap:12px; background:#f3f5ff; border-color:#e0e5f8; border-radius:18px; }
.du-home .du-cat-card--fisica { background:#edf8f7; border-color:#d8ece8; }
.du-home .du-cat-card--economia { background:#fbf5e9; border-color:#eee5d1; }
.du-home .du-cat-card--diritto { background:#f7f0f6; border-color:#ebdeea; }
.du-home .du-cat-symbol { width:52px; height:52px; display:grid; place-items:center; margin-bottom:6px; color:#3855b7; background:#ffffffb8; border-radius:14px; }
.du-home .du-cat-symbol svg { width:36px; height:36px; }
.du-home .du-cat-card--fisica .du-cat-symbol { color:#277567; }
.du-home .du-cat-card--economia .du-cat-symbol { color:#896923; }
.du-home .du-cat-card--diritto .du-cat-symbol { color:#8d507e; }
.du-home .du-cat-name { font-size:20px; letter-spacing:-.4px; }
.du-home .du-cat-count { line-height:1.6; font-size:15px; }
.du-home .du-cat-action { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:12px; font-size:13px; font-weight:700; color:#293f87; gap:12px; }
.du-home .du-cat-arrow { margin:0; font-size:20px; }
.du-home .du-how { background:#f5f7fb; border-block:1px solid #e9edf4; }
.du-home .du-how-layout { display:grid; grid-template-columns:1fr 1.05fr; gap:80px; align-items:center; }
.du-home .du-how-heading .du-section-title { line-height:1.16; margin-top:18px; }
.du-home .du-how-heading .du-section-link { margin-top:20px; white-space:normal; }
.du-home .du-how-steps { list-style:none; padding:0; margin:0; }
.du-home .du-how-steps li { display:grid; grid-template-columns:48px 1fr; gap:20px; padding:26px 0; border-bottom:1px solid #dbe2ef; }
.du-home .du-how-steps li:last-child { border:0; }
.du-home .du-step-number { color:#5371cb; font-size:16px; font-weight:700; line-height:28px; }
.du-home .du-how-steps h3 { margin:0 0 8px; font-size:21px; line-height:1.3; letter-spacing:-.4px; }
.du-home .du-how-steps p { margin:0; color:#536383; line-height:1.7; font-size:16px; }
.du-home .du-share { padding-top:16px; padding-bottom:20px; }
.du-home .du-share-inner { display:grid; grid-template-columns:1.55fr 1fr; padding:54px; gap:60px; background:#15214c; color:#fff; border-radius:24px; }
.du-home .du-share .du-eyebrow { color:#b3c5f5; letter-spacing:2px; font-size:11px; margin-bottom:16px; }
.du-home .du-share-title { color:#fff; font-size:clamp(27px,3vw,38px); line-height:1.18; letter-spacing:-1px; }
.du-home .du-share-text { color:#d2dcf1; line-height:1.75; margin-top:22px; max-width:550px; }
.du-home .du-share-points { list-style:none; padding:0; margin:24px 0 0; display:grid; gap:12px; color:#e4ebfb; font-size:14px; line-height:1.6; }
.du-home .du-share-points li { position:relative; padding-left:23px; }
.du-home .du-share-points li::before { content:'✓'; position:absolute; left:0; color:#a7c5ff; }
.du-home .du-share-actions { display:flex; flex-direction:column; align-items:stretch; gap:12px; }
.du-home .du-share-note { color:#e4ebfb; font-size:20px; line-height:1.5; margin:0 0 16px; }
.du-home .du-share-actions .du-button { width:100%; background:#fff; border-color:#fff; color:#15214c; }
.du-home .du-share-actions .du-button:hover { background:#e5edff; }
.du-home .du-share-actions .du-button--ghost { background:transparent; border-color:#8595bb; color:#fff; }
.du-home .du-share-actions .du-button--ghost:hover { background:#253561; }
.du-home .du-faq-layout { display:grid; grid-template-columns:1fr 1.5fr; gap:80px; }
.du-home .du-faq-items details { padding:22px 0; border-bottom:1px solid #dfe5f0; }
.du-home .du-faq-items details:first-child { border-top:1px solid #dfe5f0; }
.du-home .du-faq-items summary { display:flex; align-items:center; justify-content:space-between; gap:24px; cursor:pointer; font-size:18px; font-weight:700; line-height:1.4; list-style:none; }
.du-home .du-faq-items summary::-webkit-details-marker { display:none; }
.du-home .du-faq-items summary::after { content:'+'; font-size:25px; color:#2352ed; font-weight:400; flex-shrink:0; }
.du-home .du-faq-items details[open] summary::after { content:'−'; }
.du-home .du-faq-items p { margin:18px 0 0; line-height:1.75; color:#536383; }
.du-home .du-faq-items a { display:inline-block; margin-top:14px; font-weight:600; }
.du-home .du-faq-items summary:focus-visible { outline:2px solid #2352ed; outline-offset:6px; }
@media(max-width:1000px) {
 .du-home .du-cat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .du-home .du-how-layout,.du-home .du-faq-layout { gap:36px; }
 .du-home .du-share-inner { padding:36px; gap:34px; }
}
@media(max-width:700px) {
 .du-home .du-section { padding-block:40px; }
 .du-home .du-how-layout,.du-home .du-faq-layout,.du-home .du-share-inner { grid-template-columns:1fr; gap:24px; }
 .du-home .du-section-intro { font-size:16px; margin-top:16px; }
 .du-home .du-how-steps li { grid-template-columns:32px 1fr; gap:12px; padding:22px 0; }
 .du-home .du-share-inner { padding:30px 24px; border-radius:18px; }
 .du-home .du-share { padding-block:8px; }
 .du-home .du-share-note { font-size:17px; margin:0 0 8px; }
 .du-home .du-faq-items summary { font-size:17px; }
}
@media(max-width:520px) {
 .du-home .du-cat-grid { grid-template-columns:1fr; gap:14px; }
 .du-home .du-cat-card { display:grid; grid-template-columns:48px 1fr; align-items:start; column-gap:16px; min-height:0; padding:22px; }
 .du-home .du-cat-symbol { grid-row:1 / span 2; width:48px; height:48px; margin:0; }
 .du-home .du-cat-name { font-size:19px; }
 .du-home .du-cat-count { grid-column:2; font-size:14px; }
 .du-home .du-cat-action { grid-column:2; padding-top:4px; }
}
@media(prefers-reduced-motion:reduce) { .du-home .du-cat-card { transition:none; } }
