/* =====================================================================
   DIGISCOVERY — sito pubblico (modulo A)
   Estende il design system di app.css: home, ricerca, profilo, Project Match, Rescue, pagine.
   ===================================================================== */

.text-navy { color: var(--navy); }
.h-sm { font-size: 16px; letter-spacing: -.01em; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px 24px; flex-wrap: wrap; margin-bottom: 28px; }
.section-head h2 { margin-bottom: 6px; }
.chips-row { display: flex; flex-wrap: wrap; gap: 8px; }
.count-blue { background: var(--blue); }

/* ------------------------------------------------------------------ home: hero */
.home-hero { padding-bottom: 88px; }
.home-hero .display { max-width: 640px; }
.home-hero .search-bar { max-width: 620px; }
@media (min-width: 1001px) { .home-hero .hero-grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 40px; } }
.home-hero .hero-chips .chip-dark { padding: 6px 12px; font-size: 12.5px; }
.home-hero .hero-stats { max-width: 660px; gap: 16px; }
.hero-stats { list-style: none; padding: 0; }
.hero-stat > div { min-width: 0; }
.hero-stat > div b, .hero-stat > div span { display: block; white-space: nowrap; }
.hero .lead { color: #CBD5E1; }
.hero .eyebrow { color: #93C5FD; background: rgba(59,130,246,.10); border-color: rgba(96,165,250,.35); }
.hero-visual { display: block; }
.hv-rings { position: absolute; inset: 50% auto auto 50%; width: 0; height: 0; }
.hv-rings span { position: absolute; left: 50%; top: 50%; border-radius: 50%; border: 1px solid rgba(147,197,253,.16); transform: translate(-50%, -50%); }
.hv-rings span:nth-child(1) { width: 220px; height: 220px; border-color: rgba(147,197,253,.28); }
.hv-rings span:nth-child(2) { width: 360px; height: 360px; border-style: dashed; }
.hv-rings span:nth-child(3) { width: 500px; height: 500px; border-color: rgba(147,197,253,.08); }
.hv-core { position: absolute; left: 50%; top: 50%; width: 150px; height: 150px; transform: translate(-50%, -50%); border-radius: 40px; display: grid; place-items: center;
  background: linear-gradient(160deg, rgba(255,255,255,.14), rgba(255,255,255,.03)); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 40px 80px -30px rgba(37,99,235,.7), inset 0 1px 0 rgba(255,255,255,.2); }
.hv-core::before { content: ""; position: absolute; inset: -60px; z-index: -1; border-radius: 50%; background: radial-gradient(circle, rgba(59,130,246,.45), rgba(139,92,246,.18) 45%, transparent 70%); filter: blur(10px); }
.hv-mark { width: 74px; height: 74px; }
.hv-note { position: absolute; right: 4%; top: 2%; margin: 0; font-size: 21px; line-height: 1.25; color: #E2E8F0; font-style: italic; font-weight: 600; transform: rotate(-6deg); letter-spacing: -.01em; text-align: right; opacity: .9; }
.hv-note::after { content: ""; display: block; width: 46px; height: 46px; margin: 6px 40px 0 auto; border-left: 2px solid rgba(226,232,240,.6); border-bottom: 2px solid rgba(226,232,240,.6); border-radius: 0 0 0 40px; transform: rotate(-20deg); }
.float-card { min-width: 170px; }
.fc-1 { left: 6%; top: 8%; --r: -4deg; animation-delay: -1s; }
.fc-2 { left: 0; top: 52%; --r: 3deg; animation-delay: -3s; }
.fc-3 { right: 4%; top: 40%; --r: -3deg; animation-delay: -5s; }
.fc-4 { right: 12%; bottom: 0; --r: 4deg; animation-delay: -2s; }
.hero-scroll { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 12px; color: #94A3B8; }
.hero-scroll:hover { color: #fff; }
.hero-scroll .ico { animation: bob 2.4s ease-in-out infinite; }
@keyframes bob { 50% { transform: translateY(4px); } }
@media (max-width: 1000px) {
  .home-hero .hero-visual { display: none; }
  .home-hero { padding-bottom: 72px; }
}
@media (max-width: 640px) {
  .home-hero { padding-top: calc(var(--header-h) + 28px); }
  .home-hero .hero-chips .chip-dark { padding: 9px 14px; font-size: 13px; }
  .hero-stat-icon { width: 36px; height: 36px; }
  .hero-scroll { display: none; }
}

/* steps */
.steps-list { list-style: none; padding: 0; margin: 0; counter-reset: step; }
.steps-list .feature { position: relative; background: linear-gradient(180deg, #F8FAFF, #fff); }
.steps-list .feature::after { counter-increment: step; content: counter(step); position: absolute; top: 14px; left: 16px; font-size: 12px; font-weight: 700; color: var(--slate-400); }

/* category grid */
.cat-grid .cat-card { align-items: center; }
.cat-grid .cat-card .grow { min-width: 0; }

/* project match teaser */
.match-teaser { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; padding: 40px; border-radius: var(--radius-xl);
  background: radial-gradient(600px 300px at 0% 0%, rgba(139,92,246,.10), transparent 60%), radial-gradient(500px 300px at 100% 100%, rgba(37,99,235,.10), transparent 60%), var(--slate-50); border: 1px solid var(--border); }
.match-teaser-form { box-shadow: var(--shadow); }
.example-chip { white-space: normal; text-align: left; }
@media (max-width: 900px) { .match-teaser { grid-template-columns: minmax(0, 1fr); padding: 24px; gap: 24px; } }
@media (max-width: 640px) { .match-teaser { padding: 18px; } }

/* pro card (verticale) */
.pro-card-head { align-items: flex-start; }
.pro-card-name { font-size: 16.5px; margin: 0; display: flex; align-items: center; gap: 6px; line-height: 1.25; }
.pro-card-name a { color: var(--navy); }
.pro-card-name a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius-lg); }
.pro-card-title { margin: 2px 0 0; font-size: 13.5px; color: var(--text-2); }
.pro-card .chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pro-card .save-btn, .pro-card .chip, .pro-card a:not(.pro-card-link) { position: relative; z-index: 2; }
.pro-card-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; padding-top: 4px; }
.pro-card-foot .ico { color: var(--slate-400); }

/* rescue teaser */
.rescue-teaser { display: flex; gap: 24px; align-items: center; padding: 28px 32px; border-radius: var(--radius-xl); background: linear-gradient(135deg, #FFF7ED, #FEF2F2 60%, #fff); border: 1px solid #FED7AA; }
.rescue-teaser h2 { font-size: clamp(22px, 2.6vw, 28px); margin-bottom: 8px; }
.rescue-teaser-icon { width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; flex: none; color: #fff; background: linear-gradient(135deg, #F97316, #E11D48); box-shadow: 0 14px 30px -12px rgba(225,29,72,.6); }
.rescue-teaser-icon .ico { width: 30px; height: 30px; }
.text-rescue { color: #E11D48; }
@media (max-width: 900px) { .rescue-teaser { flex-direction: column; align-items: flex-start; padding: 22px; } }

/* pro band */
.pro-band { position: relative; overflow: hidden; }
.pro-band-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.pro-band .checklist li { color: #E2E8F0; }
.pro-band-visual { position: relative; min-height: 380px; }
.band-card { position: absolute; width: min(380px, 92%); padding: 18px; border-radius: 20px; display: flex; flex-direction: column; gap: 12px;
  background: linear-gradient(160deg, rgba(30,41,59,.92), rgba(15,23,42,.92)); border: 1px solid rgba(148,163,184,.22); box-shadow: 0 40px 70px -30px rgba(0,0,0,.8); color: #CBD5E1; }
.band-card b { display: block; color: #fff; font-size: 16px; }
.band-card span { font-size: 13px; }
.band-card .chips { display: flex; gap: 6px; flex-wrap: wrap; }
.band-card .chip-dark { padding: 4px 10px; font-size: 12px; }
.band-card-meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 12.5px; }
.band-card-1 { top: 0; left: 4%; transform: rotate(-3deg); }
.band-card-2 { top: 170px; right: 0; transform: rotate(2.5deg); }
.band-thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.band-thumbs img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; }
@media (max-width: 900px) { .pro-band-grid { grid-template-columns: minmax(0, 1fr); } .pro-band-visual { min-height: 0; display: flex; flex-direction: column; gap: 14px; } .band-card { position: static; transform: none; width: 100%; } }

/* principles */
.principle { margin: 0 auto; max-width: 860px; text-align: center; }
.principle-icon { width: 40px !important; height: 40px !important; color: var(--blue); margin: 0 auto 14px; }
.principle blockquote { background: none; border: 0; padding: 0; margin: 0 0 10px; font-size: clamp(20px, 2.6vw, 28px); line-height: 1.35; font-weight: 700; color: var(--navy); letter-spacing: -.02em; }
.principle figcaption { color: var(--text-3); font-size: 14px; }
.fair-item { padding: 22px; border-radius: var(--radius-lg); border: 1px solid var(--border); background: #fff; }
.fair-item h3 { font-size: 16px; margin: 14px 0 6px; }
.fair-item p { font-size: 14px; color: var(--text-3); margin: 0; }

/* faq */
.faq-list { display: flex; flex-direction: column; gap: 10px; }
.faq-item { background: #fff; border: 1px solid var(--border); border-radius: var(--radius); transition: box-shadow .2s, border-color .2s; }
.faq-item[open] { box-shadow: var(--shadow-sm); border-color: var(--blue-100); }
.faq-item summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; font-weight: 700; color: var(--navy); font-size: 15.5px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary .ico { color: var(--slate-400); transition: transform .2s var(--ease); }
.faq-item[open] summary .ico { transform: rotate(180deg); color: var(--blue); }
.faq-item summary:focus-visible { outline-offset: -3px; border-radius: var(--radius); }
.faq-answer { padding: 0 20px 18px; color: var(--text-2); font-size: 14.5px; }

/* ------------------------------------------------------------------ ricerca */
.search-hero { padding-bottom: 20px; }
.search-hero .search-bar { max-width: 760px; }
.cat-hero-head { display: flex; gap: 18px; align-items: center; }
.cat-hero-head h1 { margin-bottom: 4px; }
.filter-bar .fb-city { position: relative; }
.filter-bar .fb-city .ico { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--slate-400); width: 16px; height: 16px; pointer-events: none; }
.filter-bar .fb-city input { min-height: 38px !important; padding: 6px 12px 6px 32px !important; font-size: 13.5px !important; border-radius: 10px !important; width: 180px; }
.filter-bar select { max-width: 240px; }
.active-filters { list-style: none; padding: 0; margin: 14px 0 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.active-filters .chip .ico { width: 13px; height: 13px; }
.filters-inner { padding-right: 6px; }
.filter-title { display: block; font-size: 13.5px; font-weight: 700; color: var(--navy); margin: 0 0 10px; padding: 0; letter-spacing: -.005em; }
fieldset.filter-group { border: 0; margin: 0; padding: 16px 0; border-bottom: 1px solid var(--border); min-width: 0; }
fieldset.filter-group > legend.filter-title { float: left; width: 100%; }
fieldset.filter-group > legend.filter-title + * { clear: both; }
.filter-group .check-list { gap: 8px; }
.filter-group .check { font-size: 14px; color: var(--text-2); }
.filter-group input[type=text] { min-height: 40px !important; padding: 8px 12px !important; font-size: 14px !important; }
.filter-macro-row { display: flex; align-items: center; gap: 2px; }
.filter-macro-row > a { flex: 1; min-width: 0; }
.filter-expand { flex: none; width: 30px; height: 30px; border: 0; background: none; border-radius: 8px; color: var(--slate-400); display: grid; place-items: center; }
.filter-expand:hover { background: var(--slate-100); color: var(--navy); }
.filter-expand .ico { transition: transform .2s var(--ease); }
.filter-expand[aria-expanded=true] .ico { transform: rotate(180deg); }
.filter-actions { padding-top: 16px; }
.results-head { padding-bottom: 12px; border-bottom: 1px solid var(--border); }
.sort-label { margin: 0; font-size: 13px; font-weight: 600; color: var(--text-3); }
.sort-select { width: auto; min-height: 38px; padding: 6px 34px 6px 12px; font-size: 13.5px; border-radius: 10px; background-position: right 10px center; font-weight: 600; }
.organic-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 6px 0 14px; }
.organic-head .ico { color: var(--slate-400); }
.featured-zone h2.featured-label { margin: 0; }
.featured-zone .result-card { border-color: rgba(139,92,246,.25); }
.empty-search .chip { white-space: normal; }
.search-help { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.search-help-card { display: flex; gap: 14px; align-items: center; padding: 16px 18px; border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--border); color: var(--text-2); font-size: 13.5px; transition: border-color .2s, box-shadow .2s; }
.search-help-card:hover { border-color: var(--blue-100); box-shadow: var(--shadow-sm); color: var(--text-2); }
.search-help-card b { display: block; color: var(--navy); font-size: 14.5px; }
@media (max-width: 1000px) {
  .filters { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px 18px; }
}
@media (max-width: 640px) {
  .filter-bar .fb-city, .filter-bar .fb-city input, .filter-bar select { width: 100%; max-width: none; }
  .filter-bar { display: grid; grid-template-columns: 1fr 1fr; }
  .filter-bar .fb-city, .filter-bar [data-sheet-open]:last-child { grid-column: 1 / -1; }
  .search-help { grid-template-columns: minmax(0, 1fr); }
  .cat-hero-head .icon-box-lg { display: none; }
  .results-head { align-items: flex-start; }
}
@media (max-width: 640px) {
  .steps-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .steps-list .feature { padding: 22px 12px 16px; }
  .steps-list .feature-icon { width: 48px; height: 48px; margin-bottom: 12px; }
  .steps-list .feature h3 { font-size: 15px; }
  .steps-list .feature p { font-size: 13px; }
}

/* ------------------------------------------------------------------ categorie */
/* Griglia a righe di schede di uguale altezza: intestazione e descrizione occupano sempre lo stesso spazio,
   l'elenco è limitato a 5 righe e il pulsante finale è ancorato in fondo (stessa quota su tutta la riga). */
.cat-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
@media (max-width: 1080px) { .cat-index { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) { .cat-index { grid-template-columns: minmax(0, 1fr); gap: 16px; } }
.cat-block { padding: 22px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.cat-block-head { display: flex; gap: 14px; align-items: center; min-height: 64px; }
.cat-block h2 { font-size: 17px; margin: 0 0 2px; line-height: 1.25; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.cat-block-desc { line-height: 1.5; min-height: 3em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.cat-block-list { flex: 1 1 auto; }
.cat-block-list .cat-more a { color: var(--blue); font-weight: 700; justify-content: flex-start; gap: 4px; align-items: center; }
.cat-block-list .cat-more a:hover { background: var(--blue-50); color: var(--blue); }
.cat-block-list .cat-more .ico { width: 15px; height: 15px; }
.cat-block-cta { margin-top: 4px; }
@media (max-width: 680px) { .cat-block-head, .cat-block-desc { min-height: 0; } }
.cat-block h2 a { color: var(--navy); }
.cat-block h2 a:hover { color: var(--blue); }
.cat-block > p { margin: 0; }
.cat-block-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.cat-block-list a { display: flex; justify-content: space-between; gap: 12px; padding: 7px 10px; border-radius: 10px; color: var(--text-2); font-size: 14px; font-weight: 600; }
.cat-block-list a:hover { background: var(--slate-100); color: var(--navy); }
.cat-block-list .n { font-size: 12px; font-weight: 700; color: var(--blue); background: var(--blue-50); border-radius: 999px; padding: 1px 8px; align-self: center; }
.cat-block-list .n.is-zero { color: var(--slate-400); background: var(--slate-100); }
.cta-strip { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; padding: 22px 26px; border-radius: var(--radius-lg); background: var(--grad-hero); color: #CBD5E1; }
.cta-strip b { display: block; color: #fff; font-size: 17px; }
.cta-strip span { font-size: 14px; }

/* ------------------------------------------------------------------ profilo pubblico */
.page-profile main { padding-bottom: 72px; }
.profile-cover--pub { height: calc(var(--header-h) + 190px); }
.profile-cover--pub:not(.has-img)::before { content: ""; position: absolute; inset: 0; opacity: .55;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size: 48px 48px;
  mask-image: radial-gradient(ellipse at 70% 40%, #000 15%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 70% 40%, #000 15%, transparent 70%); }
.preview-banner { position: relative; z-index: 3; margin-top: -150px; margin-bottom: 90px; display: flex; gap: 14px; align-items: center; padding: 14px 18px; border-radius: var(--radius); background: rgba(255,251,235,.97); border: 1px solid #FDE68A; color: #78350F; font-size: 14px; }
.preview-banner b { display: block; }
.preview-banner > div { flex: 1; }
.profile-avatar .avatar-xl { width: 132px; height: 132px; font-size: 44px; }
.profile-avatar .avatar-status { right: 8%; bottom: 8%; width: 20px; height: 20px; min-width: 0; min-height: 0; box-shadow: 0 0 0 4px #fff; }
.profile-id { min-width: 0; }
.verified-lg { width: 24px; height: 24px; }
.profile-meta { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; color: var(--text-3); }
.profile-meta .ico { color: var(--slate-400); }
.profile-actions .save-toggle.is-saved { color: #E11D48; border-color: #FECDD3; background: #FFF1F2; }
.profile-actions .save-toggle.is-saved .ico { fill: currentColor; }
.profile-tabs { margin-top: 20px; }
.profile-layout { align-items: start; grid-template-columns: minmax(0, 1fr) 320px; }
.profile-aside { position: sticky; top: calc(var(--header-h) + 64px); }
.section-h { font-size: 20px; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }
.section-h .ico { color: var(--blue); }
.sub-h { font-size: 15px; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.sub-h .ico { color: var(--violet-600); }
.sub-h:first-child { margin-top: 0; }
.sub-h:not(:first-child):not([class*=mt-]) { margin-top: 24px; }
.aside-h { font-size: 15px; margin: 0 0 14px; }
.h4 { font-size: 15px; margin: 0; letter-spacing: -.005em; }
.section-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; margin-bottom: 12px; }
.section-row .section-h { margin: 0; }
.profile-tagline { font-size: 17px; font-weight: 600; color: var(--navy); line-height: 1.5; }
.profile-bio { max-width: none; font-size: 15px; }
.portfolio-card .thumb-badge, .portfolio-card .thumb-count { position: absolute; top: 10px; display: inline-flex; gap: 5px; align-items: center; padding: 4px 9px; border-radius: 8px; font-size: 11.5px; font-weight: 700; background: rgba(15,23,42,.78); color: #fff; backdrop-filter: blur(6px); }
.portfolio-card .thumb-badge { left: 10px; }
.portfolio-card .thumb-count { right: 10px; }
.portfolio-card .chips-row { gap: 5px; }
.portfolio-card .chip { font-size: 11.5px; padding: 3px 8px; }
.proof-hint { font-size: 12px; font-weight: 700; color: var(--green); display: inline-flex; gap: 5px; align-items: center; }
/* Portfolio nel profilo: titolo, categoria/periodo, tag e risultati occupano righe condivise (subgrid) e partono alla
   stessa quota in tutte le schede della riga; le righe assenti non lasciano spazi. */
@supports (grid-template-rows: subgrid) {
  .pf-cards { row-gap: 0; margin-bottom: -18px; }
  .pf-cards > .portfolio-card { display: grid; grid-row: span 5; grid-template-rows: subgrid; row-gap: 0; margin-bottom: 18px; padding-bottom: 16px; align-content: start; }
  .pf-cards > .portfolio-card > .body { display: contents; }
  .pf-cards > .portfolio-card > .body > * { min-width: 0; margin: 8px 16px 0; }
  .pf-cards > .portfolio-card > .body > h3 { grid-row: 2; margin-top: 14px; }
  .pf-cards > .portfolio-card > .body > .pf-card-meta { grid-row: 3; }
  .pf-cards > .portfolio-card > .body > .chips-row { grid-row: 4; align-self: start; }
  .pf-cards > .portfolio-card > .body > .proof-hint { grid-row: 5; align-self: end; justify-self: start; }
}
.cat-groups { display: flex; flex-direction: column; gap: 12px; }
.cat-group { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 10px; align-items: start; }
.cat-group-name { font-size: 13px; font-weight: 700; color: var(--text-3); padding-top: 5px; }
@media (max-width: 640px) { .cat-group { grid-template-columns: minmax(0, 1fr); gap: 6px; } }
.skill-row .meta a { font-weight: 600; }
.quote-ico { width: 22px; height: 22px; color: var(--blue-100); margin-bottom: 6px; }
.testimonial { margin: 0; display: flex; flex-direction: column; }
.testimonial figcaption { margin-top: auto; }
.trust-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.trust-grid li { display: flex; gap: 12px; padding: 14px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--slate-50); }
.trust-grid li.is-ok { background: var(--green-50); border-color: var(--green-100); }
.trust-grid li.is-info { background: var(--blue-50); border-color: var(--blue-100); }
.trust-grid b { display: block; font-size: 14px; color: var(--navy); }
.trust-grid li.is-no b { color: var(--text-3); font-weight: 600; }
.trust-grid span:not(.trust-ico) { font-size: 12.5px; color: var(--text-3); line-height: 1.45; display: block; }
.trust-ico { flex: none; color: var(--slate-400); }
.is-ok .trust-ico { color: var(--green); }
.is-info .trust-ico { color: var(--blue); }
@media (max-width: 640px) { .trust-grid { grid-template-columns: minmax(0, 1fr); } }
.work-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin: 0; }
.work-grid dt { font-size: 13px; font-weight: 700; color: var(--text-3); display: flex; gap: 6px; align-items: center; margin-bottom: 2px; }
.work-grid dt .ico { color: var(--slate-400); }
.work-grid dd { margin: 0; font-size: 14.5px; color: var(--text); }
@media (max-width: 640px) { .work-grid { grid-template-columns: minmax(0, 1fr); } }
.info-tile { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; border-radius: var(--radius); background: var(--slate-50); border: 1px solid var(--border); }
.info-tile b { display: block; color: var(--navy); font-size: 14.5px; }
.info-tile span:not(.icon-box) { font-size: 13.5px; color: var(--text-2); }
.info-tile-rescue { background: #FFF7F7; border-color: #FECACA; }
.conn-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; }
.conn-list a { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 12px; border: 1px solid var(--border); color: var(--text); }
.conn-list a:hover { border-color: var(--blue-100); background: var(--blue-50); }
.conn-list b { display: block; font-size: 13.5px; }
.conn-list span span { font-size: 12px; color: var(--text-3); }
.insight-card { display: flex; flex-direction: column; gap: 8px; padding: 18px; border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--border); color: var(--text); min-height: 170px; transition: box-shadow .2s, transform .2s var(--ease); }
.insight-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); color: var(--text); }
.insight-card .badge { align-self: flex-start; }
.insight-card h3 { margin: 0; line-height: 1.3; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.insight-card > p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.video-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; background: var(--grad-hero); }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-consent { position: absolute; inset: 0; width: 100%; border: 0; background: transparent; color: #CBD5E1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 20px; }
.video-consent b { display: block; color: #fff; font-size: 16px; }
.video-consent span span { font-size: 12.5px; max-width: 420px; display: block; }
.video-play { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--blue); color: #fff; box-shadow: var(--shadow-blue); transition: transform .2s var(--ease); }
.video-consent:hover .video-play { transform: scale(1.06); }
.contact-card { border-color: var(--blue-100); box-shadow: 0 20px 50px -30px rgba(37,99,235,.45); }
.reveal-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.reveal-box { display: flex; gap: 12px; align-items: center; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--slate-50); }
.reveal-box .btn { margin-top: 4px; min-height: 40px; }
@media (max-width: 640px) { .reveal-row { grid-template-columns: minmax(0, 1fr); } }
.my-3 { margin-top: 18px; margin-bottom: 18px; }
.contact-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.contact-fieldset[disabled] { opacity: .6; }
.segmented-sm label { min-width: 0; padding: 7px 12px; font-size: 13px; }
.contact-privacy { display: flex; gap: 10px; padding: 12px 14px; border-radius: var(--radius); background: var(--slate-50); border: 1px solid var(--border); font-size: 13px; color: var(--text-2); }
.contact-privacy > .ico { color: var(--blue); margin-top: 2px; }
.link-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.link-list a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; color: var(--navy); font-weight: 600; font-size: 14px; }
.link-list a:hover { background: var(--slate-100); }
.link-list a > span { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.link-list .ico { color: var(--slate-400); }
.qr-box img { width: 160px; height: 160px; }
@media (max-width: 1000px) {
  .profile-layout { grid-template-columns: minmax(0, 1fr); }
  .profile-aside { position: static; }
  .preview-banner { margin-top: -120px; margin-bottom: 70px; }
}
@media (max-width: 900px) {
  .profile-cover--pub { height: calc(var(--header-h) + 120px); }
  .profile-avatar .avatar-xl { width: 104px; height: 104px; font-size: 36px; }
}
@media (max-width: 640px) {
  .profile-actions .btn:not(.btn-icon) { flex: 1 1 0; min-width: 0; }
  .profile-actions { width: 100%; }
}
.profile-head > .profile-avatar { justify-self: start; align-self: start; }
.profile-aside .qr-box { display: block; width: max-content; margin: 0 auto; }

/* ------------------------------------------------------------------ portfolio e insight */
.pt-0 { padding-top: 0 !important; }
.pf-author { display: inline-flex; align-items: center; gap: 10px; color: var(--text-2); font-size: 14px; margin-top: 8px; }
.pf-author:hover { color: var(--navy); }
.pf-layout { grid-template-columns: minmax(0, 1fr) 320px; }
@media (max-width: 1000px) { .pf-layout { grid-template-columns: minmax(0, 1fr); } }
.pf-main { margin: 0; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--border); background: var(--slate-100); }
.pf-main img { width: 100%; height: auto; }
.pf-thumbs { display: flex; gap: 10px; margin-top: 10px; overflow-x: auto; padding-bottom: 4px; }
.pf-thumbs button { flex: none; width: 110px; padding: 0; border: 2px solid transparent; border-radius: 12px; overflow: hidden; background: none; opacity: .75; transition: opacity .15s, border-color .15s; }
.pf-thumbs button[aria-current=true], .pf-thumbs button:hover { opacity: 1; border-color: var(--blue); }
.pf-thumbs img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.pf-facts { display: grid; gap: 16px; margin: 18px 0 0; }
.pf-facts dt { font-weight: 700; color: var(--navy); font-size: 14px; display: flex; gap: 8px; align-items: center; margin-bottom: 4px; }
.pf-facts dt .ico { color: var(--blue); }
.pf-facts dd { margin: 0; color: var(--text-2); font-size: 14.5px; }
.proof-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.proof-card { padding: 16px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--slate-50); display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.proof-card.is-evidenced { background: var(--green-50); border-color: var(--green-100); }
.proof-label { font-size: 13px; font-weight: 700; color: var(--text-2); }
.proof-values { display: flex; align-items: stretch; gap: 12px; }
.proof-before, .proof-after { display: flex; flex-direction: column; justify-content: flex-end; line-height: 1.1; }
.proof-values small { display: block; margin-bottom: auto; padding-bottom: 4px; font-size: 11px; font-weight: 700; color: var(--text-3); text-transform: uppercase; letter-spacing: .06em; line-height: 1.3; }
.proof-before { color: var(--text-3); font-weight: 700; font-size: 18px; }
.proof-before .proof-num { text-decoration: line-through; text-decoration-color: rgba(100,116,139,.45); }
.proof-after { color: var(--navy); font-weight: 700; font-size: 24px; letter-spacing: -.02em; }
.proof-values > .ico { color: var(--slate-400); align-self: flex-end; margin-bottom: 3px; }
.insight-head h1 { font-size: clamp(26px, 3.4vw, 38px); }
.insight-body { max-width: none; font-size: 16px; line-height: 1.75; }
.insight-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }

/* ------------------------------------------------------------------ Project Match */
.project-hero { padding-bottom: 56px; }
.project-hero h1 { font-size: clamp(30px, 4.4vw, 48px); margin: 18px 0 14px; }
.project-form { margin-top: 28px; box-shadow: 0 30px 70px -30px rgba(0,0,0,.6); color: var(--text); }
.project-form textarea { font-size: 16px; }
.pm-details { border: 1px solid var(--border); border-radius: var(--radius); background: var(--slate-50); }
.pm-details summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 12px 14px; font-weight: 700; font-size: 14px; color: var(--navy); }
.pm-details summary::-webkit-details-marker { display: none; }
.pm-details summary > .ico:last-child { margin-left: auto; color: var(--slate-400); transition: transform .2s var(--ease); }
.pm-details[open] summary > .ico:last-child { transform: rotate(180deg); }
.pm-details-body { padding: 4px 14px 16px; }
.pm-examples { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 18px; }
.pm-examples .chip-dark { white-space: normal; }
.pm-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.pm-summary { grid-column: 1 / -1; background: linear-gradient(135deg, #F5F3FF, #EFF6FF 60%, #fff); border-color: #DDD6FE; }
.pm-summary p { color: var(--text-2); margin-bottom: 8px; }
@media (max-width: 800px) { .pm-grid { grid-template-columns: minmax(0, 1fr); } }
.role-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.role-list li { padding-left: 14px; border-left: 3px solid var(--blue-100); }
.role-list b { display: block; color: var(--navy); font-size: 14.5px; }
.role-list span { font-size: 13.5px; color: var(--text-3); }
.q-list { margin: 0; padding-left: 1.2em; color: var(--text-2); font-size: 14px; display: flex; flex-direction: column; gap: 6px; }
.pm-group { margin-top: 28px; padding: 24px; border-radius: var(--radius-xl); background: #fff; border: 1px solid var(--border); }
.pm-group-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.pm-group-head h3 { margin: 0 0 4px; }
.pm-featured { margin-bottom: 16px; }
.match-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 14px; }
.match-card { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 18px; border-radius: var(--radius-lg); border: 1px solid var(--border); background: #fff; transition: box-shadow .2s, border-color .2s; }
.match-card:hover { box-shadow: var(--shadow); border-color: var(--slate-300); }
.match-card.is-featured { border-color: rgba(139,92,246,.3); }
.match-card-head { display: flex; gap: 12px; align-items: flex-start; }
.match-card .avatar-wrap { align-self: flex-start; }
.match-card .save-btn, .match-card .badge { position: relative; z-index: 2; flex: none; }
.match-why { padding: 10px 12px; border-radius: 12px; background: var(--slate-50); }
.match-why ul { list-style: none; padding: 0; margin: 6px 0 0; display: flex; flex-direction: column; gap: 5px; font-size: 13px; color: var(--text-2); }
.match-why li { display: flex; gap: 6px; align-items: flex-start; }
.match-why .ico { color: var(--green); margin-top: 2px; flex: none; }
@media (max-width: 640px) { .pm-group { padding: 16px; } }

/* ------------------------------------------------------------------ Open to Rescue */
.rescue-hero { padding-bottom: 56px; }
.rescue-hero h1 { font-size: clamp(30px, 4.4vw, 50px); max-width: 860px; margin: 18px 0 14px; }
.rescue-hero .lead { max-width: 720px; }
.hero .eyebrow-rescue { color: #FDA4AF; background: rgba(244,63,94,.10); border-color: rgba(251,113,133,.35); }
.rescue-grad { background: linear-gradient(90deg, #FB923C, #F43F5E); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rescue-disclaimer { max-width: 820px; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: #E2E8F0; }
.rescue-disclaimer .ico { color: #FDBA74; }
.rescue-problems { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.rescue-problem { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border-radius: var(--radius-lg); background: #fff; border: 1.5px solid var(--border); color: var(--text-2); font-size: 13px; transition: border-color .15s, box-shadow .15s; }
.rescue-problem:hover { border-color: var(--slate-300); color: var(--text-2); box-shadow: var(--shadow-sm); }
.rescue-problem.is-active { border-color: #F43F5E; box-shadow: 0 0 0 3px rgba(244,63,94,.12); }
.rescue-problem b { display: block; color: var(--navy); font-size: 14.5px; margin-bottom: 2px; }
@media (max-width: 1000px) { .rescue-problems { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rescue-problems { grid-template-columns: minmax(0, 1fr); } }
.rescue-cat { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rescue-cat select { width: auto; max-width: 100%; min-height: 40px; padding-top: 6px; padding-bottom: 6px; font-size: 14px; }
.rescue-info { padding: 10px 12px; border-radius: 12px; background: #FFF7F7; border: 1px solid #FFE4E6; font-size: 13px; color: var(--text-2); }
.rescue-info p { margin: 0 0 6px; }
.rescue-info p:last-child { margin: 0; }
.rescue-info b { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: #BE123C; }
.pro-card .rescue-cta { position: relative; z-index: 2; }

/* ------------------------------------------------------------------ pagine informative */
.how-hero, .pricing-hero { text-align: center; }
.how-hero h1 { max-width: 820px; margin: 18px auto 14px; }
.how-lead, .pricing-lead { max-width: 760px; margin-left: auto; margin-right: auto; }
.how-steps { list-style: none; padding: 0; margin: 0 auto; max-width: 980px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.how-steps li { display: flex; gap: 16px; padding: 22px; border-radius: var(--radius-lg); background: #fff; border: 1px solid var(--border); }
.how-steps h3 { font-size: 17px; margin-bottom: 6px; }
.how-steps p { font-size: 14.5px; color: var(--text-2); margin: 0; }
.how-steps a { font-weight: 600; }
.how-n { flex: none; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-weight: 700; color: #fff; background: var(--grad-brand); box-shadow: var(--shadow-blue); }
@media (max-width: 760px) { .how-steps { grid-template-columns: minmax(0, 1fr); } }
.section-white .how-steps li { background: var(--slate-50); }
.pricing-hero h1 { margin-bottom: 10px; }
@media (max-width: 560px) {
  [data-plan-switch] .segmented { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; }
  [data-plan-switch] .segmented label { min-width: 0; padding: 8px 4px; font-size: 12.5px; }
}
.plan-card .icon-box { width: 38px; height: 38px; border-radius: 11px; }
.plan-card .mt-auto { margin-top: auto; }
.compare-table td, .compare-table th[scope=row] { font-size: 14px; }
.compare-table td { text-align: center; }
.compare-table thead th:not(:first-child) { text-align: center; }
.faq-section + .faq-section { margin-top: 40px; }
.page-body .prose { max-width: none; }
.page-body .prose table { margin: 1em 0; font-size: 14px; }
.page-body .prose th, .page-body .prose td { border: 1px solid var(--border); padding: 8px 10px; text-align: left; }
.pay-methods.justify-center { justify-content: center; }
.compare-table tbody th { border-bottom-color: var(--slate-100); }
.compare-table tbody tr:hover th { background: #FBFDFF; }
.compare-table tbody th { text-transform: none; letter-spacing: 0; font-size: 14px; background: #fff; color: var(--navy); white-space: normal; font-weight: 600; width: 38%; }
.compare-table thead th:first-child { width: 38%; }
.prose > :first-child { margin-top: 0; }
.empty-search p.small { margin-top: 24px !important; margin-bottom: 10px !important; }
@media (max-width: 640px) {
  .results-head > .cluster { width: 100%; flex-wrap: nowrap; }
  .results-head .sort-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .results-head .sort-select { flex: 1; min-width: 0; }
  .results-head .btn-ghost { padding-left: 4px; }
}
.home-hero .hero-stat-icon .ico { width: 20px; height: 20px; }
@media (max-width: 560px) {
  .compare-table td, .compare-table th { font-size: 12.5px; padding: 9px 6px; }
  .compare-table tbody th, .compare-table thead th:first-child { width: auto; }
}

/* Project Match: l'ultima scheda rimasta sola occupa tutta la riga (niente buchi nella griglia). */
@media (min-width: 801px) {
  .pm-grid > .card:last-child:nth-child(even) { grid-column: 1 / -1; }
  .pm-grid > .card:last-child:nth-child(even) .q-list { display: block; columns: 2; column-gap: 40px; }
  .pm-grid > .card:last-child:nth-child(even) .q-list li { break-inside: avoid; margin-bottom: 6px; }
}
/* Stato vuoto della ricerca: azioni a tutta larghezza su mobile. */
@media (max-width: 640px) { .empty-search .cluster > .btn { flex: 1 1 100%; } }

/* Home hero tra 1001 e 1200 px: colonna più stretta, statistiche su 2 righe e carte meno sovrapposte al logo. */
@media (min-width: 1001px) and (max-width: 1200px) {
  .home-hero .hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 420px; gap: 16px 24px; }
  .home-hero .fc-2 { left: -6%; }
  .home-hero .fc-3 { right: -4%; top: 44%; }
  .home-hero .fc-1 { left: 2%; }
}

/* Schede professionista (home, Open to Rescue): altezze uguali per riga, competenze su max 2 righe,
   località e disponibilità sopra il pulsante finale, sempre allineato in fondo alla scheda. */
.pro-card { height: 100%; }
.pro-card .chips { max-height: 64px; overflow: hidden; align-content: flex-start; }
.pro-card:has(.rescue-info) .chips { min-height: 64px; }
.pro-card .chip-more { background: var(--blue-50); color: var(--blue); }
.pro-card > .rescue-cta { margin-top: 0; }
.rescue-info { display: flex; flex-direction: column; gap: 8px; }
.rescue-info > div > b { margin-bottom: 2px; }
.rescue-clamp { margin: 0; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.rescue-clamp:not(.rescue-hours) { min-height: calc(2 * 1.45em); }
.rescue-clamp .ico { vertical-align: -.2em; }
/* Il riquadro Rescue, località/disponibilità e pulsante formano un blocco ancorato in basso: allineati su tutta la riga. */
.pro-card:has(.rescue-info) .rescue-info { margin-top: auto; }
.pro-card:has(.rescue-info) .pro-card-foot { margin-top: 0; }
.pro-card-foot .pill { margin-left: auto; }
/* In una .pro-grid le parti della scheda condividono le righe della griglia (subgrid): intestazione, competenze,
   riquadro Rescue, località/disponibilità e pulsante partono alla stessa quota in tutte le schede della riga,
   anche quando nome o titolo vanno a capo. */
@supports (grid-template-rows: subgrid) {
  .pro-grid > .pro-card { display: grid; grid-row: span var(--pro-rows, 3); grid-template-rows: subgrid; row-gap: 12px; align-content: start; }
  .pro-grid > .pro-card { height: auto; }
  .pro-grid > .pro-card > *, .pro-grid > .pro-card > .rescue-info, .pro-grid > .pro-card > .pro-card-foot { margin-top: 0; min-width: 0; }
  .pro-grid > .pro-card > .pro-card-foot { align-self: end; }
  .pro-grid > .pro-card:has(.rescue-info) .chips { min-height: 0; }
}
/* Project Match: intestazione, motivazioni e piè condividono le righe della griglia (stessa quota per riga). */
@supports (grid-template-rows: subgrid) {
  .match-grid > .match-card { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 12px; }
  .match-grid > .match-card > * { min-width: 0; }
  .match-grid > .match-card > .pro-card-foot { margin-top: 0; align-self: end; }
}
/* Piani: nome, prezzo, elenco e pulsante condividono le righe (subgrid): elenchi e pulsanti partono alla stessa quota
   anche quando la nota del prezzo va a capo; il testo dei pulsanti può andare a capo invece di uscire dal bordo. */
@supports (grid-template-rows: subgrid) {
  .plan-grid > .plan-card { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 18px; }
  .plan-grid > .plan-card > .btn { align-self: stretch; margin-top: 0; }
}
.plan-card > .btn { white-space: normal; text-align: center; line-height: 1.3; }

/* =====================================================================
   Mobile e touch — sito pubblico
   ===================================================================== */

/* Scorrimento orizzontale (chip delle categorie, filtri attivi): una riga, aggancio morbido, niente barra visibile,
   bordi sfumati; i link restano raggiungibili da tastiera (il focus porta in vista l'elemento). */
@media (max-width: 640px) {
  .hscroll { display: flex; flex-wrap: nowrap !important; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: none;
    margin-left: -16px; margin-right: -16px; padding: 2px 16px 4px; scroll-padding: 0 16px; -webkit-overflow-scrolling: touch;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 24px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 16px, #000 calc(100% - 24px), transparent 100%); }
  .hscroll::-webkit-scrollbar { display: none; }
  .hscroll > * { flex: none; scroll-snap-align: start; }
  .hscroll .chip { white-space: nowrap; }
  .active-filters.hscroll { margin-top: 12px; }
  .active-filters.hscroll > li:first-child { align-self: center; }
}

/* Tab del profilo: scorrono in orizzontale con aggancio, bordo destro sfumato quando c'è altro da scoprire. */
.profile-tabs nav { scroll-snap-type: x proximity; overscroll-behavior-x: contain; }
.profile-tabs nav::-webkit-scrollbar { display: none; }
.profile-tabs a { scroll-snap-align: start; display: inline-flex; align-items: center; min-height: 48px; }
@media (max-width: 1000px) {
  .profile-tabs { margin-left: -16px; margin-right: -16px; padding: 0 16px; }
  .profile-tabs nav { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); padding-right: 24px; }
  .profile-tabs a { padding: 12px 12px; }
}
@media (min-width: 641px) and (max-width: 1000px) { .profile-tabs { margin-left: -24px; margin-right: -24px; padding: 0 24px; } }

/* Aree di tocco: espandi specializzazioni, voci dei filtri, chip e salvataggio. */
@media (pointer: coarse) {
  .filter-expand { width: 44px; height: 44px; }
  .filter-cats a { min-height: 44px; }
  .filter-cats ul a { min-height: 44px; }
  .cat-block-list a { min-height: 44px; align-items: center; }
  .link-list a { min-height: 44px; }
  .conn-list a { min-height: 48px; }
  .faq-item summary { min-height: 52px; }
  .pf-thumbs button { min-height: 44px; }
  .home-hero .hero-chips .chip-dark { min-height: 44px; }
  .results-head .sort-select, .filter-bar select, .filter-bar .fb-city input { min-height: 44px !important; }
  .rescue-cat select { min-height: 44px; }
}

/* Home: chip delle categorie su una riga scorrevole (meno altezza sopra la piega). */
@media (max-width: 640px) {
  .home-hero .hero-chips { margin-top: 18px; gap: 8px; }
  .home-hero .hero-stats { margin-top: 32px; }
}

/* Profilo: barra d'azione in basso su mobile; la pagina lascia spazio sotto il contenuto. */
@media (max-width: 1000px) {
  .page-profile main { padding-bottom: 96px; }
  .profile-sticky .save-toggle.is-saved { color: #E11D48; border-color: #FECDD3; background: #FFF1F2; }
  .profile-sticky .save-toggle.is-saved .ico { fill: currentColor; }
}
@media (max-width: 380px) { .profile-sticky .save-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; } .profile-sticky .save-toggle { width: 48px; min-width: 48px; padding: 0; } }

/* Contrasto AA e link riconoscibili anche senza colore dentro i testi. */
.proof-hint { color: #15803D; }
.organic-head a, .featured-note a, .contact-privacy a, .alert a:not(.btn), .hint a, .legal-note a, .interpretation a:not(.link-arrow), .empty p a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }

/* Ricerca: il pannello filtri su mobile non ha il riquadro della colonna laterale. */
@media (max-width: 1000px) {
  .filters.sheet .filters-inner { padding-right: 0; }
  .filters.sheet .filter-group h2.filter-title, .filters.sheet .filter-title { font-size: 14.5px; }
}
@media (pointer: coarse) {
  .reveal-box .btn { min-height: 44px; }
  .cat-block h2 a { display: inline-block; padding: 10px 0; margin: -10px 0; }
}
.trust-grid li.is-info span:not(.trust-ico) { color: #475569; } /* contrasto AA sul fondo azzurro */
