/* Mobile and tablet adaptations, shared by the public site and backoffice. */
@media (max-width: 1024px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea,
  .bo-form textarea, .cp-panel input { font-size: 16px !important; }
  .nav__burger { display: flex; width: 44px; height: 44px; align-items: center; justify-content: center; padding: 10px; }
  .nav__links { display: none; position: absolute; left: 0; right: 0; background: var(--cream); border-bottom: 1px solid var(--cream-dark); flex-direction: column; top: 100%; gap: 0; padding: 12px max(20px, env(safe-area-inset-right)) 20px max(20px, env(safe-area-inset-left)); max-height: calc(100vh - 90px); max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain; }
  .nav__links a { display: flex; align-items: center; min-height: 48px; font-size: 16px; }
  .nav__links.open { display: flex; }
  .nav__cta { display: none; }
  .nav__logo { min-height: 44px; display: inline-flex; align-items: center; }
  .btn, .cp-button, .navbtn, summary { min-height: 44px; }
  button, summary, a, input, select, textarea { touch-action: manipulation; }
  .app main code { overflow-wrap: anywhere; }
  .calc > div { min-width: 0; }
  .calc-price-scroll { max-width: 100%; overflow-x: auto; }
  .calc-price-scroll .price-table { min-width: 480px; }
}
@media (max-width: 900px) {
  .container { padding-left: max(20px, env(safe-area-inset-left)); padding-right: max(20px, env(safe-area-inset-right)); }
  .home-storefront .hero__sub, .section__head p, .step p, .promise p,
  .product-card__claim, .products-grid .product-card__claim { font-size: 16px; line-height: 1.7; }
  .home-storefront .partner-note, .home-storefront .hero__reassure,
  .product-card__price small, .products-grid .product-card__price small,
  .product-card__guide, .product-preview small, .trust-item { font-size: 14px; line-height: 1.6; }
  .card-actions .btn { font-size: 15px; padding: 12px 16px; }
  .card-actions a:not(.btn), .product-card__guide, .guide-card__link,
  .guide__toc a, .footer li a { display: inline-flex; align-items: center; min-height: 44px; }
  .nv-ck-link { min-height: 44px; }
  .guide-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); }
  .pd-table-wrap { max-width: 100%; }
  .cp-tabs a, .cp-header a { display: inline-flex; align-items: center; min-height: 44px; }
  .cp-panel label.cp-consent { min-height: 44px; font-size: 14px; }
  .cp-rating label { min-height: 44px; }
  .cp-shell { font-size: 16px; padding-bottom: max(55px, env(safe-area-inset-bottom)); }
}
@media (max-width: 760px) {
  .buy-bar { padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
  .buy-bar__text { min-width: 0; }
  .buy-bar__text, .buy-bar__text strong { font-size: 14px; }
  .app .side { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 16px max(16px, env(safe-area-inset-right)) 16px max(16px, env(safe-area-inset-left)); overflow: visible; }
  .app .side .logo { grid-column: 1/-1; padding: 0 0 12px; }
  .app .side .navbtn { width: 100%; min-width: 0; min-height: 46px; white-space: normal; text-align: left; font-size: 14px; padding: 10px; }
  .app .side .navbtn .badge { flex-shrink: 0; }
  .app .topbar { gap: 14px; }
  .app .btn, .bo-alert .btn, .bo-table td .btn { min-width: 44px; min-height: 44px; }
  .bo-toolbar input, .bo-toolbar select { min-height: 46px; flex: 1 1 100%; width: 100%; }
  .bo-tabs button { min-height: 44px; font-size: 14px; }
  .bo-alert { flex-wrap: wrap; }
  .bo-table tr { grid-template-columns: 28px minmax(0, 1fr) minmax(0, 1fr); }
  .bo-table:not(.bo-orders) tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bo-form .cols { grid-template-columns: 1fr; }
  .bo-form label { min-width: 0; font-size: 14px; }
  .bo-form input:not([type="checkbox"]):not([type="radio"]), .bo-form select, .bo-form textarea { width: 100%; min-height: 46px; }
  .bo-table td, .bo-table td strong, .bo-table small, .bo-note, .bo-sub { font-size: 14px; }
  .bo-table td { min-width: 0; }
  .bo-detail header .btn { flex-shrink: 0; }
  .bo-pill { white-space: normal; }
  .mat-grid { grid-template-columns: minmax(0, 1fr); }
  .mat-card, .mat-media { min-width: 0; }
  .calc { grid-template-columns: minmax(0, 1fr); }
  .calc-out .row { gap: 12px; flex-wrap: wrap; }
  .calc-out .row span:last-child { margin-left: auto; }
  .calc-field label { font-size: 14px; }
}
@media (max-width: 650px) {
  .home-storefront .hero h1 { font-size: clamp(38px, 11vw, 52px); letter-spacing: -.03em; }
  .product-finder { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-finder__item { min-height: 68px; padding: 12px; }
  .product-finder__item span { font-size: 14px; }
  .product-finder__item small { font-size: 13px; }
  /* Full text width replaces the narrow column beside a tall product photo. */
  .products-grid .product-card { grid-template-columns: minmax(0, 1fr) !important; gap: 0; padding: 24px; }
  .products-grid .product-card > *, .home-storefront .product-card .slut-flagga { grid-column: 1 !important; min-width: 0; }
  .products-grid .product-card__shot { grid-column: 1 !important; grid-row: auto !important; justify-self: center; width: 110px !important; height: 150px !important; margin: 0 auto 20px !important; }
  .products-grid .product-card h3 { font-size: 28px !important; }
  .products-grid .product-card__tag { font-size: 14px !important; margin-bottom: 12px; }
  .product-card__price { font-size: 15px; }
  .card-actions { gap: 12px; margin-top: 12px; }
  .card-actions .btn { flex: 1 1 auto; }
  .product-preview strong, .product-preview p { font-size: 15px; }
  .product-preview { gap: 18px; padding: 16px; }
  .product-preview > div { min-width: 0; }
  .trust-bar__inner { grid-template-columns: 1fr; gap: 12px; }
  .trust-item { justify-content: flex-start; text-align: left; }
  .checkout-steps { flex-wrap: wrap; font-size: 14px; gap: 12px 16px; }
  .product-picker:not(.is-compact) { grid-template-columns: 1fr; }
  .product-picker .pick { flex-direction: row; align-items: center; gap: 16px; padding: 16px; }
  .product-picker .pick .p-shot { width: 44px; height: 59px; }
  .product-picker .pick .p-price, .product-picker .pick .p-sub { font-size: 14px; }
  .summary { flex-wrap: wrap; gap: 4px 12px; }
  .summary > span:last-child { margin-left: auto; }
  .checkout-card .form-field, .checkout-card input { min-width: 0; max-width: 100%; }
  .checkout-card .form-field:has(#o-zip) { grid-column: 1/-1; }
  .checkout-card .form-field:has(#o-city) { grid-column: 1/-1; }
  .pg-short, .pg-context, .pg-simple-footer { font-size: 15px; }
  .pg-jumps { gap: 4px 24px; font-size: 15px; }
  .pg-reviews > div { min-width: 0; }
  .cp-header { flex-wrap: wrap; gap: 8px 20px; }
  .cp-panel h2 { font-size: 28px; overflow-wrap: anywhere; }
}
