:root {
  --cpb-mobile-dock-h: 70px;
}

.cpb-mobile-dock {
  display: none;
}

@media (max-width: 760px) {
  html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    -webkit-text-size-adjust: 100%;
    scroll-padding-bottom: calc(var(--cpb-mobile-dock-h) + env(safe-area-inset-bottom));
  }

  body {
    width: 100%;
    max-width: 100%;
    padding-bottom: calc(var(--cpb-mobile-dock-h) + env(safe-area-inset-bottom));
    overflow-x: hidden;
  }

  :where(.wrap, .legal-wrap, .cpb-wrap, .container, .top__inner, .header-inner, .cpb-header__inner) {
    min-width: 0;
    max-width: 100%;
  }

  :where(a, button, input, select, textarea) {
    -webkit-tap-highlight-color: rgba(107, 47, 73, .14);
  }

  :where(a, button, input, select, textarea):focus-visible {
    outline: 3px solid rgba(107, 47, 73, .42) !important;
    outline-offset: 3px;
  }

  :where(button, input, select, textarea, .button, .btn, .cpb-button) {
    min-height: 44px;
  }

  .site-section-nav {
    display: none !important;
  }

  .top .nav {
    display: none !important;
  }

  .cpb-mobile-dock {
    position: fixed;
    right: 8px;
    bottom: max(8px, env(safe-area-inset-bottom));
    left: 8px;
    z-index: 490;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    min-height: 60px;
    padding: 5px;
    border: 1px solid rgba(194, 154, 97, .38);
    border-radius: 22px;
    background: rgba(255, 253, 249, .96);
    box-shadow: 0 18px 55px rgba(48, 18, 31, .24);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    transition: transform .2s ease, opacity .2s ease;
  }

  .cpb-mobile-dock a {
    position: relative;
    min-width: 0;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
    padding: 4px 2px;
    border-radius: 16px;
    color: #66564f;
    font-family: Montserrat, Arial, sans-serif;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.12;
    text-align: center;
    text-decoration: none;
  }

  .cpb-mobile-dock a[aria-current="page"],
  .cpb-mobile-dock a:active {
    background: #f2e1e7;
    color: #6b2f49;
  }

  .cpb-mobile-dock__icon {
    display: block;
    color: inherit;
    font-size: 19px;
    font-style: normal;
    line-height: 1;
  }

  body.cpb-keyboard-open .cpb-mobile-dock {
    pointer-events: none;
    opacity: 0;
    transform: translateY(120%);
  }

  #cookie-banner,
  .cookie-banner,
  .cpb-toast {
    bottom: calc(var(--cpb-mobile-dock-h) + env(safe-area-inset-bottom) + 8px) !important;
  }

  /* Accueil : une seule mission au premier écran, puis le comparateur. */
  .home-focused .category-bar {
    display: none !important;
  }

  .home-focused .signature-hero {
    margin-top: var(--header-h) !important;
    padding: 12px 0 34px !important;
  }

  .home-focused .header-inner {
    gap: 8px !important;
    padding: 0 10px !important;
  }

  .home-focused .header-search,
  .home-focused .header-search .search-box,
  .home-focused .header-search .search-box input {
    min-width: 0 !important;
  }

  .home-focused .header-actions .btn-alert {
    display: none !important;
  }

  .home-focused .logo span {
    display: none !important;
  }

  .home-focused .logo {
    flex: 0 0 auto;
    min-width: 44px;
    min-height: 44px;
  }

  .home-focused .logo-icon {
    width: 40px !important;
    height: 40px !important;
    font-size: 11px !important;
  }

  .home-focused .header-search .search-box {
    min-height: 44px;
    border-radius: 13px !important;
  }

  .home-focused .header-search .search-box input {
    font-size: 16px !important;
  }

  .home-focused .header-search .search-btn {
    min-width: 44px;
    min-height: 44px;
    padding: 0 12px !important;
  }

  .home-focused .hamburger {
    width: 44px !important;
    min-width: 44px;
    min-height: 44px;
    flex: 0 0 44px !important;
    align-items: center;
    justify-content: center;
    padding: 10px !important;
  }

  .home-focused .signature-stage {
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    border-radius: 22px !important;
  }

  .home-focused .signature-stage::after {
    display: none !important;
  }

  .home-focused .signature-media {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    flex: 0 0 auto !important;
    order: 1 !important;
    height: 205px !important;
  }

  .home-focused .signature-media img {
    object-position: 62% center !important;
  }

  .home-focused .signature-copy {
    width: 100% !important;
    max-width: none !important;
    order: 2 !important;
    padding: 25px 20px 23px !important;
  }

  .home-focused .signature-copy h1 {
    max-width: 100% !important;
    overflow-wrap: anywhere;
    margin: 13px 0 14px !important;
    font-size: clamp(2.2rem, 11.5vw, 3.05rem) !important;
    line-height: .98 !important;
  }

  .home-focused .signature-copy > p {
    display: -webkit-box;
    overflow: hidden;
    font-size: .92rem !important;
    line-height: 1.55 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .home-focused .signature-kicker {
    font-size: .68rem !important;
  }

  .home-focused .signature-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 9px !important;
    margin-top: 19px !important;
  }

  .home-focused .signature-actions a {
    min-height: 48px !important;
    padding: 10px 9px !important;
    font-size: .8rem !important;
    line-height: 1.25;
    text-align: center;
  }

  .home-focused .signature-proof,
  .home-focused .signature-seal,
  .home-focused .discovery {
    display: none !important;
  }

  .home-focused .home-finder {
    padding: 34px 0 28px !important;
  }

  .home-focused .home-finder-shell {
    padding: 24px 14px !important;
    border-radius: 22px !important;
  }

  .home-focused .home-finder-shell::before {
    inset: 7px !important;
    border-radius: 17px !important;
  }

  .home-focused .home-finder-heading {
    gap: 10px !important;
    margin-bottom: 20px !important;
  }

  .home-focused .home-finder-heading h2 {
    font-size: clamp(1.95rem, 9.5vw, 2.5rem) !important;
    line-height: 1.02 !important;
  }

  .home-focused .home-finder-heading p {
    display: -webkit-box;
    overflow: hidden;
    font-size: .86rem !important;
    line-height: 1.55 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }

  .home-focused .home-finder-form {
    gap: 7px !important;
    padding: 7px !important;
  }

  .home-focused .home-finder-form input {
    min-height: 50px !important;
    padding: 0 13px !important;
    font-size: 16px !important;
  }

  .home-focused .home-finder-submit {
    min-height: 50px !important;
  }

  .home-focused .home-quick-searches {
    flex-wrap: nowrap !important;
    overflow-x: auto;
    margin: 12px -4px 20px !important;
    padding: 0 4px 7px;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }

  .home-focused .home-quick-searches::-webkit-scrollbar {
    display: none;
  }

  .home-focused .home-quick-searches > span {
    display: none;
  }

  .home-focused .home-quick-searches button {
    flex: 0 0 auto;
    min-height: 44px;
    scroll-snap-align: start;
  }

  .home-focused .home-finder-toolbar select {
    max-width: 100% !important;
    min-height: 46px;
  }

  .home-focused .home-price-result {
    grid-template-columns: 78px minmax(0, 1fr) !important;
    gap: 12px !important;
    padding: 12px !important;
    border-radius: 16px !important;
  }

  .home-focused .home-result-media {
    width: 78px !important;
    height: 78px !important;
  }

  .home-focused .home-result-offer {
    grid-column: 1 / -1 !important;
    gap: 8px !important;
    padding-top: 4px;
  }

  .home-focused .home-result-shop-list {
    min-width: 0 !important;
  }

  .home-focused .home-result-shop-link,
  .home-focused .home-result-cta {
    min-height: 48px !important;
  }

  .home-focused .home-finder-note {
    text-align: left !important;
  }

  /* Recherche et offres : lecture confortable et actions au pouce. */
  .result-brand,
  .deal-card__eyebrow {
    font-size: .7rem !important;
  }

  .result-source,
  .result-price-label,
  .deal-card__date,
  .deals-toolbar label {
    font-size: .72rem !important;
  }

  .result-meta,
  .finder-note,
  .deals-count {
    font-size: .78rem !important;
    line-height: 1.5;
  }

  .result-cta,
  .result-amazon,
  .home-result-compare,
  .deal-card__actions a,
  .finder-load,
  .deals-more button,
  .deals-more a {
    min-height: 48px !important;
    font-size: .78rem !important;
  }

  .cpb-compare-bar button {
    min-height: 46px !important;
    font-size: .75rem !important;
  }

  .cpb-compare-bar {
    bottom: calc(var(--cpb-mobile-dock-h) + env(safe-area-inset-bottom) + 8px) !important;
    opacity: 0;
    pointer-events: none;
  }

  .cpb-compare-bar.is-visible {
    opacity: 1;
    pointer-events: auto;
  }

  .cpb-compare-overlay {
    padding: 0 !important;
  }

  .cpb-compare-dialog {
    min-height: 100dvh;
    border-radius: 0 !important;
  }

  .card p > a,
  .info-card p > a,
  .guide-card p > a,
  .article-card p > a,
  .editorial-meta a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-block: 8px;
  }

  .top .brand,
  .top__inner > .brand,
  .cpb-header .cpb-brand {
    min-height: 44px;
  }

  .finder-sort,
  .finder-sort select {
    min-height: 46px;
    font-size: .8rem !important;
  }

  .category-rail,
  .category-bar {
    max-width: 100%;
    overflow: hidden;
  }

  .category-rail__inner,
  .category-bar__inner {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .category-rail__inner::-webkit-scrollbar,
  .category-bar__inner::-webkit-scrollbar {
    display: none;
  }

  .category-rail__inner a,
  .category-bar__inner a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    scroll-snap-align: start;
  }

  /* Pages comparatives : le tableau devient une liste de cartes tactiles. */
  .table-wrap:has(.live-comparison) {
    overflow: visible;
  }

  .live-comparison {
    min-width: 0 !important;
    border-collapse: separate !important;
  }

  .live-comparison thead {
    display: none;
  }

  .live-comparison tbody {
    display: grid;
    gap: 12px;
  }

  .live-comparison tr:not(.live-comparison-loading) {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 8px 13px;
    padding: 13px;
    border: 1px solid rgba(194, 154, 97, .3);
    border-radius: 18px;
    background: #fffdf9;
    box-shadow: 0 10px 28px rgba(72, 48, 36, .08);
  }

  .live-comparison tr:not(.live-comparison-loading) td {
    width: auto !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
  }

  .live-comparison td[data-label="Photo"] {
    grid-row: 1 / span 3;
  }

  .live-comparison td[data-label="Produit"] {
    grid-column: 2;
  }

  .live-comparison td[data-label="Prix"],
  .live-comparison td[data-label="Boutique"],
  .live-comparison td[data-label="Disponibilité"],
  .live-comparison td[data-label="Offre"] {
    grid-column: 1 / -1;
  }

  .live-comparison td[data-label="Prix"],
  .live-comparison td[data-label="Boutique"],
  .live-comparison td[data-label="Disponibilité"] {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    align-items: center;
    padding-top: 8px !important;
    border-top: 1px solid rgba(49, 43, 35, .08) !important;
  }

  .live-comparison td[data-label="Prix"]::before,
  .live-comparison td[data-label="Boutique"]::before,
  .live-comparison td[data-label="Disponibilité"]::before {
    color: #7e7468;
    content: attr(data-label);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  .live-comparison td[data-label="Offre"] .button {
    width: 100%;
    min-height: 48px;
  }

  .live-product-photo {
    width: 82px !important;
    height: 82px !important;
    border-radius: 13px !important;
  }

  .live-product-name {
    font-size: .92rem;
  }

  .live-price {
    font-size: 1.25rem;
  }

  .live-comparison-loading {
    display: block !important;
  }

  .live-comparison-loading td {
    display: block;
    width: 100% !important;
  }

  /* Coin des Parents : lecture simple, formulaires en panneau bas. */
  .cpb-community .site-section-nav {
    display: none !important;
  }

  .cpb-community .cpb-header__inner {
    width: calc(100% - 22px) !important;
    min-height: 66px !important;
    gap: 7px !important;
    justify-content: space-between;
  }

  .cpb-community .cpb-brand {
    width: 44px;
    min-width: 44px;
    flex: 0 0 44px;
  }

  .cpb-community .cpb-brand > span:last-child {
    display: none;
  }

  .cpb-community .cpb-brand__mark {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
  }

  .cpb-community .cpb-user-actions {
    min-width: 0;
    flex: 1 1 auto;
    justify-content: flex-end;
    overflow: hidden;
  }

  .cpb-community .cpb-guest-actions[hidden],
  .cpb-community .cpb-account:not(.is-visible),
  .cpb-community .cpb-admin-link[hidden] {
    display: none !important;
  }

  .cpb-community .cpb-guest-actions,
  .cpb-community .cpb-account.is-visible {
    min-width: 0;
    gap: 5px;
  }

  .cpb-community .cpb-guest-actions .cpb-button,
  .cpb-community .cpb-account .cpb-button {
    min-height: 44px !important;
    padding-inline: 10px !important;
    font-size: .72rem !important;
    white-space: nowrap;
  }

  .cpb-community .cpb-menu {
    width: 44px !important;
    min-width: 44px;
    height: 44px !important;
    flex: 0 0 44px;
  }

  .cpb-community .cpb-hero {
    padding: 34px 0 30px !important;
  }

  .cpb-community .cpb-hero h1 {
    font-size: clamp(2.35rem, 12vw, 3.25rem) !important;
  }

  .cpb-community .cpb-hero-card,
  .cpb-community .cpb-hero__proof,
  .cpb-community .cpb-community-benefits {
    display: none !important;
  }

  .cpb-community .cpb-hero__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .cpb-community .cpb-hero__actions .cpb-button {
    width: 100%;
    min-height: 48px;
  }

  .cpb-community .cpb-main {
    padding: 30px 0 !important;
  }

  .cpb-community .cpb-sidebar {
    padding: 16px !important;
    overflow: hidden;
  }

  .cpb-community .cpb-sidebar p a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-block: 7px;
  }

  .cpb-community .cpb-tabs {
    max-width: 100%;
    margin-inline: -5px;
    padding: 3px 5px 8px;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .cpb-community .cpb-tab {
    min-height: 44px;
    scroll-snap-align: start;
  }

  .cpb-community .cpb-post {
    border-radius: 18px !important;
  }

  .cpb-community .cpb-post__body {
    padding-inline: 16px !important;
  }

  .cpb-community .cpb-modal {
    align-items: flex-end !important;
    padding: 0 !important;
  }

  .cpb-community .cpb-modal__panel {
    width: 100% !important;
    max-height: min(92dvh, 820px) !important;
    padding: 22px 17px calc(22px + env(safe-area-inset-bottom)) !important;
    border-radius: 25px 25px 0 0 !important;
  }

  .cpb-community .cpb-field {
    min-height: 48px;
    font-size: 16px;
  }

  .cpb-community .cpb-post__footer button,
  .cpb-community .cpb-auth-switch {
    min-height: 44px;
  }

  /* Pages éditoriales et légales : lignes courtes et cartes aérées. */
  .wrap,
  .legal-wrap {
    width: min(calc(100% - 22px), 1180px) !important;
  }

  .universal-search__input,
  .search-panel input,
  .alert-form input,
  .newsletter-form input {
    font-size: 16px !important;
  }

  .hero--compact,
  .legal-hero {
    padding-block: 34px !important;
  }

  .hero--compact h1,
  .legal-hero h1 {
    font-size: clamp(2.15rem, 11vw, 3.2rem) !important;
    line-height: 1.02 !important;
  }

  .panel,
  .card,
  .method,
  .legal-card {
    border-radius: 18px !important;
  }

  .legal-layout,
  .legal-card,
  .legal-table-wrap {
    min-width: 0;
    max-width: 100%;
  }

  .legal-table-wrap {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .legal-brand,
  .legal-nav a,
  .logo,
  .back-link,
  .quick-link,
  .footer-links a,
  .site-footer > a,
  .breadcrumbs a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }

  .grid.product-detail-grid {
    grid-template-columns: 1fr !important;
  }

  footer {
    padding-bottom: 30px;
  }

  :where(.footer-grid, .cpb-footer__grid, .legal-footer-links, .site-footer ul, .cpb-footer ul) a {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-block: 8px;
  }

  .cpb-footer__bottom a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-block: 8px;
  }

  :where(footer > .wrap, footer .wrap, .cpb-footer .cpb-wrap, .legal-footer .legal-wrap) {
    min-width: 0;
    max-width: 100%;
  }

  footer p a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-block: 8px;
  }
}

@media (max-width: 430px) {
  .home-focused .signature-actions,
  .cpb-community .cpb-hero__actions {
    grid-template-columns: 1fr;
  }

  .cpb-community .cpb-guest-actions .cpb-button {
    padding-inline: 8px;
    font-size: .72rem;
  }
}

@media (max-width: 360px) {
  .cpb-mobile-dock {
    right: 5px;
    left: 5px;
    border-radius: 19px;
  }

  .cpb-mobile-dock a {
    font-size: 10.5px;
  }

  .cpb-community .cpb-account.is-visible .cpb-button {
    padding-inline: 7px !important;
    font-size: .68rem !important;
  }

  .cpb-community .cpb-guest-actions .cpb-button {
    padding-inline: 7px !important;
    font-size: .68rem !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cpb-mobile-dock {
    transition: none;
  }
}

/* CPB logo visibility 2026-08-09 */
.cpb-site-brand__mark {
  background: linear-gradient(145deg, #6b2f49, #4c1d33) !important;
  border: 1px solid rgba(184, 146, 94, .68) !important;
  border-radius: 12px !important;
  box-shadow: 0 8px 22px rgba(89, 53, 61, .18) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.cpb-site-brand__mark svg {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  fill: #fff !important;
}