
body{
    font-family: Arial, Helvetica, sans-serif;
}

.apcz-boutiques-page {

--ab-blue: #2563eb;

--ab-blue-dark: #1d4ed8;

--ab-text: #172033;

--ab-muted: #64748b;

--ab-border: #e7edf5;

max-width: 1240px;

margin: 0 auto;

padding: 34px 18px 70px;

color: var(--ab-text);

}

/* HERO */

.apcz-boutiques-page .ab-hero {

position: relative;

overflow: hidden;

padding: 48px 42px;

margin-bottom: 28px;

border: 1px solid rgba(37, 99, 235, .08);

border-radius: 28px;

background:

radial-gradient(circle at 90% 15%, rgba(37, 99, 235, .13), transparent 34%),

radial-gradient(circle at 10% 100%, rgba(22, 163, 74, .08), transparent 30%),

linear-gradient(135deg, #fff 0%, #f4f8ff 100%);

box-shadow: 0 18px 55px rgba(30, 64, 175, .08);

}

.apcz-boutiques-page .ab-eyebrow {

display: inline-flex;

align-items: center;

gap: 8px;

margin-bottom: 13px;

padding: 7px 12px;

border-radius: 999px;

background: rgba(37, 99, 235, .09);

color: var(--ab-blue-dark);

font-size: 13px;

font-weight: 800;

}

.apcz-boutiques-page .ab-hero h1 {

position: relative;

z-index: 1;

margin: 0 0 12px;

font-size: clamp(2rem, 4vw, 3.1rem);

line-height: 1.08;

letter-spacing: -.035em;

font-weight: 850;

}

.apcz-boutiques-page .ab-hero p {

position: relative;

z-index: 1;

max-width: 720px;

margin: 0;

color: var(--ab-muted);

font-size: 13px;

line-height: 1.75;

}

/* RECHERCHE */

.apcz-boutiques-page .ab-search-panel {

box-sizing: border-box !important;

display: flex !important;

align-items: center !important;

width: 100% !important;

min-height: 72px !important;

margin: 0 0 34px !important;

padding: 11px 14px !important;

gap: 13px !important;

border: 1px solid #dfe7f1 !important;

border-radius: 18px !important;

background: #fff !important;

box-shadow: 0 10px 30px rgba(15, 23, 42, .055) !important;

}

.apcz-boutiques-page .ab-search-icon {

box-sizing: border-box !important;

width: 44px !important;

height: 44px !important;

min-width: 44px !important;

flex: 0 0 44px !important;

display: flex !important;

align-items: center !important;

justify-content: center !important;

margin: 0 !important;

padding: 0 !important;

border-radius: 13px !important;

background: #eff5ff !important;

color: #2563eb !important;

font-size: 19px !important;

line-height: 1 !important;

}

.apcz-boutiques-page .ab-search-field {

flex: 1 1 auto !important;

min-width: 0 !important;

margin: 0 !important;

}

.apcz-boutiques-page .ab-search-field label {

display: block !important;

margin: 0 0 3px !important;

padding: 0 !important;

color: #334155 !important;

font-size: 12px !important;

line-height: 1.2 !important;

font-weight: 800 !important;

}

.apcz-boutiques-page .ab-search-input {

box-sizing: border-box !important;

display: block !important;

width: 100% !important;

height: 35px !important;

min-height: 35px !important;

margin: 0 !important;

padding: 0 !important;

border: 0 !important;

outline: none !important;

background: transparent !important;

color: #172033 !important;

font-family: inherit !important;

font-size: 15px !important;

line-height: 35px !important;

box-shadow: none !important;

-webkit-appearance: none !important;

-moz-appearance: none !important;

appearance: none !important;

}

.apcz-boutiques-page .ab-search-input:focus {

border: 0 !important;

outline: none !important;

box-shadow: none !important;

}

.apcz-boutiques-page .ab-search-input::placeholder {

color: #94a3b8 !important;

opacity: 1 !important;

}

.apcz-boutiques-page .ab-search-status {

flex: 0 0 auto !important;

min-width: 78px !important;

padding: 8px 11px !important;

border: 1px solid #e7edf4 !important;

border-radius: 999px !important;

background: #f8fafc !important;

color: #64748b !important;

font-size: 12px !important;

line-height: 1.2 !important;

font-weight: 800 !important;

text-align: center !important;

white-space: nowrap !important;

}

.apcz-boutiques-page .ab-search-status:empty {

display: none !important;

}

/* TITRES DE SECTION */

.apcz-boutiques-page .ab-section-head {

display: flex;

justify-content: space-between;

align-items: end;

gap: 20px;

margin: 38px 2px 17px;

}

.apcz-boutiques-page .ab-section-head h2 {

margin: 0;

font-size: 1.45rem;

font-weight: 850;

letter-spacing: -.02em;

}

.apcz-boutiques-page .ab-section-head p {

margin: 5px 0 0;

color: var(--ab-muted);

line-height: 1.6;

}

.apcz-boutiques-page .ab-count {

flex: 0 0 auto;

padding: 8px 13px;

border: 1px solid var(--ab-border);

border-radius: 999px;

background: #fff;

color: var(--ab-muted);

font-size: .88rem;

font-weight: 750;

box-shadow: 0 6px 20px rgba(15, 23, 42, .04);

}

/* BOUTIQUE À LA UNE */

.apcz-boutiques-page .ab-featured {

display: grid;

grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr);

min-height: 370px;

overflow: hidden;

border: 1px solid var(--ab-border);

border-radius: 25px;

background: #fff;

box-shadow: 0 15px 45px rgba(15, 23, 42, .07);

}

.apcz-boutiques-page .ab-featured-cover {

position: relative;

min-height: 370px;

background: #e9eef6;

}

.apcz-boutiques-page .ab-featured-cover img {

width: 100%;

height: 100%;

min-height: 370px;

display: block;

object-fit: cover;

}

.apcz-boutiques-page .ab-featured-badge {

position: absolute;

top: 18px;

left: 18px;

display: inline-flex;

align-items: center;

gap: 7px;

padding: 9px 13px;

border-radius: 999px;

background: rgba(255, 255, 255, .94);

color: #172033;

font-size: .83rem;

font-weight: 850;

box-shadow: 0 8px 25px rgba(15, 23, 42, .12);

-webkit-backdrop-filter: blur(8px);

backdrop-filter: blur(8px);

}

.apcz-boutiques-page .ab-featured-content {

display: flex;

flex-direction: column;

justify-content: center;

padding: 38px;

}

.apcz-boutiques-page .ab-logo {

width: 76px;

height: 76px;

margin-bottom: 18px;

overflow: hidden;

border: 4px solid #fff;

border-radius: 20px;

background: #eef3f9;

box-shadow: 0 9px 25px rgba(15, 23, 42, .11);

}

.apcz-boutiques-page .ab-logo img {

width: 100%;

height: 100%;

object-fit: cover;

}

.apcz-boutiques-page .ab-featured-content h3 {

margin: 0 0 9px;

font-size: 1.8rem;

line-height: 1.2;

font-weight: 850;

}

.apcz-boutiques-page .ab-location {

display: flex;

align-items: center;

gap: 7px;

margin-bottom: 13px;

color: var(--ab-muted);

font-size: .94rem;

}

.apcz-boutiques-page .ab-featured-description {

height: 108px;

min-height: 108px;

max-height: 108px;

margin: 0 0 25px;

color: var(--ab-muted);

font-size: .97rem;

line-height: 1.65;

display: -webkit-box;

-webkit-box-orient: vertical;

-webkit-line-clamp: 5;

overflow: hidden;

}

/* CARTES */

.apcz-boutiques-page .ab-grid {

display: grid;

grid-template-columns: repeat(3, minmax(0, 1fr));

gap: 20px;

}

.apcz-boutiques-page .ab-card {

overflow: hidden;

border: 1px solid var(--ab-border);

border-radius: 20px;

background: #fff;

box-shadow: 0 10px 30px rgba(15, 23, 42, .055);

transition: transform .22s ease, box-shadow .22s ease;

}

.apcz-boutiques-page .ab-card:hover {

transform: translateY(-4px);

box-shadow: 0 16px 38px rgba(15, 23, 42, .10);

}

.apcz-boutiques-page .ab-card-cover {

position: relative;

height: 175px;

background: #e9eef6;

}

.apcz-boutiques-page .ab-card-cover img {

width: 100%;

height: 100%;

display: block;

object-fit: cover;

}

.apcz-boutiques-page .ab-card-body {

box-sizing: border-box;

min-height: 325px;

padding: 20px;

display: flex;

flex-direction: column;

}

.apcz-boutiques-page .ab-card-top {

display: flex;

align-items: center;

gap: 12px;

min-height: 64px;

margin-top: -48px;

margin-bottom: 14px;

position: relative;

z-index: 2;

}

.apcz-boutiques-page .ab-card .ab-logo {

width: 64px;

height: 64px;

min-width: 64px;

flex: 0 0 64px;

margin: 0;

border-width: 3px;

border-radius: 16px;

}

.apcz-boutiques-page .ab-card .ab-card-top h3,

.apcz-boutiques-page .ab-card h3 {

box-sizing: border-box !important;

display: -webkit-box !important;

-webkit-box-orient: vertical !important;

-webkit-line-clamp: 2 !important;

width: 100% !important;

height: 44px !important;

min-height: 44px !important;

max-height: 44px !important;

margin: 0 !important;

padding: 0 !important;

overflow: hidden !important;

color: #172033 !important;

background: transparent !important;

font-family: inherit !important;

font-size: 17px !important;

line-height: 1.28 !important;

font-weight: 600 !important;

letter-spacing: -.015em !important;

text-align: left !important;

text-decoration: none !important;

}

.apcz-boutiques-page .ab-card .ab-location {

box-sizing: border-box;

height: 22px;

min-height: 22px;

margin: 0 0 12px;

overflow: hidden;

white-space: nowrap;

text-overflow: ellipsis;

}

.apcz-boutiques-page .ab-card-description {

box-sizing: border-box;

height: 84px !important;

min-height: 84px !important;

max-height: 84px !important;

margin: 0 0 18px !important;

padding: 0 !important;

color: #64748b !important;

font-size: 14px !important;

line-height: 1.6 !important;

display: -webkit-box !important;

-webkit-box-orient: vertical !important;

-webkit-line-clamp: 4 !important;

overflow: hidden !important;

text-align: left !important;

}

.apcz-boutiques-page .ab-card-link {

display: flex;

align-items: center;

justify-content: space-between;

gap: 10px;

margin-top: auto;

padding-top: 15px;

border-top: 1px solid var(--ab-border);

color: var(--ab-blue) !important;

text-decoration: none !important;

font-weight: 800;

}

/* ÉTAT VIDE / RECHERCHE */

.apcz-boutiques-page .ab-search-empty {

display: none;

margin: 22px 0;

padding: 32px 20px;

text-align: center;

border: 1px dashed #d3ddea;

border-radius: 18px;

background: #fff;

color: #64748b;

}

.apcz-boutiques-page .ab-search-empty strong {

display: block;

margin-bottom: 6px;

color: #172033;

font-size: 1rem;

}

.apcz-boutiques-page .ab-load-more {

align-items: center;

justify-content: center;

gap: 9px;

min-height: 62px;

margin-top: 20px;

color: #64748b;

font-size: .86rem;

font-weight: 750;

}

.apcz-boutiques-page .ab-load-more:not([hidden]) {

display: flex !important;

}

.apcz-boutiques-page .ab-load-spinner {

width: 17px;

height: 17px;

border: 2px solid #dbe5f4;

border-top-color: #2563eb;

border-radius: 50%;

animation: abSpin .75s linear infinite;

}

.apcz-boutiques-page .ab-up-to-date {

margin-top: 18px;

text-align: center;

color: #15803d;

font-size: .86rem;

font-weight: 800;

}

@keyframes abSpin {

to {

transform: rotate(360deg);

}

}

.apcz-boutiques-page .ab-bottom {

display: flex;

justify-content: center;

margin-top: 38px;

}

.apcz-boutiques-page .ab-button {

display: inline-flex;

align-items: center;

justify-content: center;

gap: 8px;

width: fit-content;

min-height: 46px;

padding: 11px 18px;

border-radius: 12px;

background: var(--ab-blue) !important;

color: #fff !important;

text-decoration: none !important;

font-weight: 600;

box-shadow: 0 10px 22px rgba(37, 99, 235, .20);

transition: transform .2s ease, background .2s ease, box-shadow .2s ease;

}

.apcz-boutiques-page .ab-button:hover {

background: var(--ab-blue-dark) !important;

color: #fff !important;

transform: translateY(-2px);

}

/* RESPONSIVE */

@media (max-width: 900px) {

.apcz-boutiques-page .ab-featured {

grid-template-columns: 1fr;

}

.apcz-boutiques-page .ab-featured-cover,

.apcz-boutiques-page .ab-featured-cover img {

min-height: 290px;

height: 290px;

}

.apcz-boutiques-page .ab-grid {

grid-template-columns: repeat(2, minmax(0, 1fr));

}

}

@media (max-width: 620px) {

.apcz-boutiques-page {

padding: 22px 13px 50px;

}

.apcz-boutiques-page .ab-hero {

padding: 32px 23px;

border-radius: 22px;

}

.apcz-boutiques-page .ab-hero h1 {

font-size: 2rem;

}

.apcz-boutiques-page .ab-search-panel {

min-height: 66px !important;

margin-bottom: 25px !important;

padding: 10px 12px !important;

gap: 10px !important;

border-radius: 16px !important;

}

.apcz-boutiques-page .ab-search-icon {

width: 38px !important;

height: 38px !important;

min-width: 38px !important;

flex-basis: 38px !important;

border-radius: 11px !important;

font-size: 17px !important;

}

.apcz-boutiques-page .ab-search-field label {

font-size: 11px !important;

}

.apcz-boutiques-page .ab-search-input {

height: 32px !important;

min-height: 32px !important;

font-size: 14px !important;

line-height: 32px !important;

}

.apcz-boutiques-page .ab-search-status {

min-width: 65px !important;

padding: 7px 8px !important;

font-size: 11px !important;

}

.apcz-boutiques-page .ab-section-head {

align-items: flex-start;

flex-direction: column;

gap: 10px;

}

.apcz-boutiques-page .ab-featured-content {

padding: 27px 23px;

}

.apcz-boutiques-page .ab-featured-content h3 {

font-size: 1.5rem;

}

.apcz-boutiques-page .ab-grid {

grid-template-columns: 1fr;

}

.apcz-boutiques-page .ab-card-body {

min-height: 0;

}

.apcz-boutiques-page .ab-card-description {

height: 84px !important;

min-height: 84px !important;

max-height: 84px !important;

}

.apcz-boutiques-page .ab-button {

width: 100%;

}

}

.apcz-boutiques-page .ab-card .ab-card-top h3 {

display: inline-flex !important;

align-items: center !important;

width: fit-content !important;

max-width: 100% !important;

margin: 0 !important;

padding: 8px 14px !important;

background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%) !important;

color: #1d4ed8 !important;

border: 1px solid #bfdbfe !important;

border-radius: 10px !important;

font-size: 17px !important;

font-weight: 600 !important;

line-height: 1.3 !important;

letter-spacing: -0.01em !important;

box-shadow: 0 4px 12px rgba(37, 99, 235, 0.08) !important;

overflow: hidden !important;

text-overflow: ellipsis !important;

white-space: nowrap !important;

}

/* =========================================================

AMÉLIORATIONS RESPONSIVE ET LISIBILITÉ

Taille minimale des textes : 12px

========================================================= */

.apcz-boutiques-page,

.apcz-boutiques-page * {

box-sizing: border-box;

}

.apcz-boutiques-page {

width: 100%;

min-width: 0;

}

/* Texte courant : jamais en dessous de 12px */

.apcz-boutiques-page .ab-eyebrow,

.apcz-boutiques-page .ab-hero p,

.apcz-boutiques-page .ab-search-field label,

.apcz-boutiques-page .ab-search-status,

.apcz-boutiques-page .ab-section-head p,

.apcz-boutiques-page .ab-count,

.apcz-boutiques-page .ab-featured-badge,

.apcz-boutiques-page .ab-location,

.apcz-boutiques-page .ab-featured-description,

.apcz-boutiques-page .ab-card-description,

.apcz-boutiques-page .ab-card-link,

.apcz-boutiques-page .ab-search-empty,

.apcz-boutiques-page .ab-search-empty strong,

.apcz-boutiques-page .ab-load-more,

.apcz-boutiques-page .ab-up-to-date,

.apcz-boutiques-page .ab-button {

font-size: max(12px, 1em);

}

.apcz-boutiques-page .ab-search-field label {

font-size: 12px !important;

}

.apcz-boutiques-page .ab-search-status,

.apcz-boutiques-page .ab-load-more,

.apcz-boutiques-page .ab-up-to-date {

font-size: 12px !important;

}

.apcz-boutiques-page .ab-hero p,

.apcz-boutiques-page .ab-section-head p,

.apcz-boutiques-page .ab-featured-description,

.apcz-boutiques-page .ab-card-description,

.apcz-boutiques-page .ab-location,

.apcz-boutiques-page .ab-count,

.apcz-boutiques-page .ab-featured-badge,

.apcz-boutiques-page .ab-card-link,

.apcz-boutiques-page .ab-button {

font-size: 14px;

}

/* Évite les débordements sur les petits écrans */

.apcz-boutiques-page .ab-hero,

.apcz-boutiques-page .ab-featured,

.apcz-boutiques-page .ab-featured-content,

.apcz-boutiques-page .ab-card,

.apcz-boutiques-page .ab-card-body,

.apcz-boutiques-page .ab-card-top,

.apcz-boutiques-page .ab-search-panel {

min-width: 0;

}

.apcz-boutiques-page .ab-featured-cover {

min-width: 0;

overflow: hidden;

}

.apcz-boutiques-page .ab-featured-cover img {

display: block;

width: 100%;

object-fit: cover;

}

.apcz-boutiques-page .ab-card-top h3 {

overflow-wrap: anywhere;

}

.apcz-boutiques-page .ab-search-input {

min-width: 0;

}

/* Tablettes */

@media (max-width: 900px) {

.apcz-boutiques-page {

padding: 28px 18px 56px;

}

.apcz-boutiques-page .ab-featured {

grid-template-columns: minmax(0, 1fr);

}

.apcz-boutiques-page .ab-featured-cover,

.apcz-boutiques-page .ab-featured-cover img {

width: 100%;

height: clamp(220px, 42vw, 340px);

min-height: 0;

}

.apcz-boutiques-page .ab-featured-content {

padding: 28px;

}

.apcz-boutiques-page .ab-grid {

grid-template-columns: repeat(2, minmax(0, 1fr));

gap: 16px;

}

.apcz-boutiques-page .ab-card-body {

padding: 18px;

}

.apcz-boutiques-page .ab-card-description {

height: auto !important;

min-height: 76px !important;

max-height: 100px !important;

}

}

/* Téléphones */

@media (max-width: 620px) {

.apcz-boutiques-page {

padding: 18px 12px 40px;

}

.apcz-boutiques-page .ab-hero {

padding: 25px 18px;

margin-bottom: 20px;

border-radius: 18px;

}

.apcz-boutiques-page .ab-hero h1 {

font-size: clamp(25px, 7vw, 32px);

line-height: 1.15;

overflow-wrap: anywhere;

}

.apcz-boutiques-page .ab-hero p {

font-size: 14px;

line-height: 1.65;

}

.apcz-boutiques-page .ab-search-panel {

align-items: center !important;

gap: 10px !important;

padding: 10px !important;

margin-bottom: 24px !important;

}

.apcz-boutiques-page .ab-search-icon {

width: 36px !important;

height: 36px !important;

min-width: 36px !important;

flex-basis: 36px !important;

font-size: 17px !important;

}

.apcz-boutiques-page .ab-search-field label {

font-size: 12px !important;

}

.apcz-boutiques-page .ab-search-input {

height: 36px !important;

min-height: 36px !important;

font-size: 14px !important;

line-height: 36px !important;

}

.apcz-boutiques-page .ab-search-status {

min-width: 0 !important;

padding: 7px 8px !important;

font-size: 12px !important;

white-space: normal !important;

}

.apcz-boutiques-page .ab-section-head {

align-items: flex-start;

flex-direction: column;

gap: 8px;

margin: 28px 0 15px;

}

.apcz-boutiques-page .ab-section-head h2 {

font-size: 22px;

line-height: 1.25;

}

.apcz-boutiques-page .ab-section-head p {

font-size: 13px;

}

.apcz-boutiques-page .ab-featured {

border-radius: 18px;

}

.apcz-boutiques-page .ab-featured-cover,

.apcz-boutiques-page .ab-featured-cover img {

height: 220px;

}

.apcz-boutiques-page .ab-featured-content {

padding: 22px 18px;

}

.apcz-boutiques-page .ab-logo {

width: 64px;

height: 64px;

}

.apcz-boutiques-page .ab-featured-content h3 {

font-size: 23px;

overflow-wrap: anywhere;

}

.apcz-boutiques-page .ab-featured-description {

height: auto;

min-height: 0;

max-height: none;

font-size: 14px;

-webkit-line-clamp: 6;

}

.apcz-boutiques-page .ab-grid {

display: flex;
flex-direction: column;
align-items: stretch;
gap: 16px;
}
.apcz-boutiques-page .ab-grid > .ab-card {
display: flex;
flex: 1 1 auto;
flex-direction: column;
width: 100%;
max-width: 100%;
}

.apcz-boutiques-page .ab-card-cover {

height: clamp(190px, 58vw, 270px);

}

.apcz-boutiques-page .ab-card-body {

min-height: 0;

padding: 18px;

}

.apcz-boutiques-page .ab-card-top {

gap: 10px;

margin-top: -44px;

margin-bottom: 12px;

}

.apcz-boutiques-page .ab-card .ab-logo {

width: 60px;

height: 60px;

min-width: 60px;

flex-basis: 60px;

}

.apcz-boutiques-page .ab-card .ab-card-top h3,

.apcz-boutiques-page .ab-card h3 {

font-size: 16px !important;

line-height: 1.35 !important;

white-space: normal !important;

height: auto !important;

min-height: 0 !important;

max-height: none !important;

padding: 7px 10px !important;

}

.apcz-boutiques-page .ab-card .ab-location {

height: auto;

min-height: 0;

white-space: normal;

font-size: 13px;

}

.apcz-boutiques-page .ab-card-description {

height: auto !important;

min-height: 0 !important;

max-height: none !important;

margin-bottom: 16px !important;

font-size: 14px !important;

line-height: 1.6 !important;

-webkit-line-clamp: 5 !important;

}

.apcz-boutiques-page .ab-card-link {

font-size: 14px;

padding-top: 13px;

}

.apcz-boutiques-page .ab-button {

width: 100%;

min-height: 46px;

font-size: 14px;

}

.apcz-boutiques-page .ab-bottom {

margin-top: 28px;

}

}

/* Très petits téléphones */

@media (max-width: 360px) {

.apcz-boutiques-page {

padding-right: 9px;

padding-left: 9px;

}

.apcz-boutiques-page .ab-hero {

padding: 21px 14px;

}

.apcz-boutiques-page .ab-search-icon {

display: none !important;

}

.apcz-boutiques-page .ab-featured-content {

padding: 18px 14px;

}

.apcz-boutiques-page .ab-card-body {

padding: 15px;

}

}

@media (prefers-reduced-motion: reduce) {

.apcz-boutiques-page *,

.apcz-boutiques-page *::before,

.apcz-boutiques-page *::after {

animation-duration: 0.01ms !important;

transition-duration: 0.01ms !important;

scroll-behavior: auto !important;

}

}


/* =========================================================
   APCZANDO — BOUTIQUES
   DESIGN MODERNE & DYNAMIQUE
   Couche visuelle uniquement — backend inchangé
   ========================================================= */

.apcz-boutiques-page {
    --ab-blue: #087cf0;
    --ab-blue-dark: #075fc0;
    --ab-green: #159447;
    --ab-yellow: #ffc515;
    --ab-text: #152238;
    --ab-muted: #65758b;
    --ab-border: #e6edf6;
    max-width: 1440px;
    padding: 30px 22px 72px;
}

/* Hero plus vivant */
.apcz-boutiques-page .ab-hero {
    isolation: isolate;
    padding: clamp(30px, 5vw, 62px);
    border: 0;
    border-radius: 30px;
    background:
        radial-gradient(circle at 88% 15%, rgba(255,197,21,.30), transparent 25%),
        radial-gradient(circle at 8% 95%, rgba(21,148,71,.12), transparent 28%),
        linear-gradient(125deg, #eef6ff 0%, #ffffff 48%, #f2f8ff 100%);
    box-shadow: 0 18px 50px rgba(8, 68, 145, .09);
}

.apcz-boutiques-page .ab-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 210px;
    height: 210px;
    right: 8%;
    bottom: -145px;
    border: 32px solid rgba(8,124,240,.06);
    border-radius: 50%;
    pointer-events: none;
}

.apcz-boutiques-page .ab-eyebrow {
    padding: 8px 13px;
    background: #e2efff;
    color: #075fc0;
    font-size: 13px;
    letter-spacing: .04em;
}

.apcz-boutiques-page .ab-hero h1 {
    max-width: 850px;
    color: #10233f;
    font-size: clamp(2rem, 4.4vw, 3.5rem);
    line-height: 1.08;
    letter-spacing: -.045em;
}

.apcz-boutiques-page .ab-hero p {
    max-width: 680px;
    color: #52657d;
    font-size: 15px;
    line-height: 1.8;
}

/* Recherche nette et facile à repérer */
.apcz-boutiques-page .ab-search-panel {
    min-height: 78px !important;
    padding: 13px 16px !important;
    gap: 15px !important;
    border: 1px solid #e1eaf6 !important;
    border-radius: 20px !important;
    box-shadow: 0 12px 32px rgba(15, 52, 98, .07) !important;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.apcz-boutiques-page .ab-search-panel:focus-within {
    border-color: rgba(8,124,240,.55) !important;
    box-shadow: 0 0 0 4px rgba(8,124,240,.09), 0 12px 32px rgba(15,52,98,.07) !important;
}

.apcz-boutiques-page .ab-search-icon {
    border-radius: 14px !important;
    background: #eaf3ff !important;
    color: var(--ab-blue) !important;
}

/* Titres de section plus affirmés */
.apcz-boutiques-page .ab-section-head {
    margin-top: 42px;
    margin-bottom: 20px;
}

.apcz-boutiques-page .ab-section-head h2 {
    color: #13243c;
    font-size: clamp(22px, 2.2vw, 29px);
    letter-spacing: -.035em;
}

.apcz-boutiques-page .ab-section-head p {
    color: #718096;
    font-size: 14px;
}

.apcz-boutiques-page .ab-count {
    border-color: #dceaff;
    background: #edf5ff;
    color: #075fc0;
    font-size: 13px;
}

/* Boutique mise en avant : image dominante */
.apcz-boutiques-page .ab-featured {
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
    border: 1px solid #e2eaf5;
    border-radius: 28px;
    box-shadow: 0 18px 46px rgba(15, 45, 83, .09);
    transition: transform .25s ease, box-shadow .25s ease;
}

.apcz-boutiques-page .ab-featured:hover {
    transform: translateY(-3px);
    box-shadow: 0 24px 54px rgba(15,45,83,.13);
}

.apcz-boutiques-page .ab-featured-cover {
    min-height: 420px;
}

.apcz-boutiques-page .ab-featured-cover img {
    min-height: 420px;
    transition: transform .5s ease;
}

.apcz-boutiques-page .ab-featured:hover .ab-featured-cover img {
    transform: scale(1.035);
}

.apcz-boutiques-page .ab-featured-badge {
    padding: 10px 14px;
    background: var(--ab-yellow);
    color: #332600;
    font-size: 12px;
    box-shadow: 0 8px 24px rgba(40, 35, 0, .16);
}

.apcz-boutiques-page .ab-featured-content {
    padding: clamp(24px, 3.4vw, 46px);
}

.apcz-boutiques-page .ab-featured-content h3 {
    color: #13243c;
    font-size: clamp(25px, 2.6vw, 34px);
    letter-spacing: -.035em;
}

.apcz-boutiques-page .ab-featured-description {
    font-size: 15px;
    line-height: 1.75;
}

/* Grille de cartes : plus grandes, respirantes et colorées */
.apcz-boutiques-page .ab-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.apcz-boutiques-page .ab-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid #e4ebf4;
    border-radius: 23px;
    box-shadow: 0 9px 28px rgba(17, 43, 77, .06);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.apcz-boutiques-page .ab-card:hover {
    transform: translateY(-7px);
    border-color: #c5dcfa;
    box-shadow: 0 22px 42px rgba(8, 76, 153, .13);
}

.apcz-boutiques-page .ab-card-cover {
    height: clamp(190px, 18vw, 250px);
    overflow: hidden;
    background: linear-gradient(135deg, #eaf3ff, #f7faff);
}

.apcz-boutiques-page .ab-card-cover img {
    transition: transform .45s ease;
}

.apcz-boutiques-page .ab-card:hover .ab-card-cover img {
    transform: scale(1.06);
}

.apcz-boutiques-page .ab-card-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 20px 21px 19px;
}

.apcz-boutiques-page .ab-card-top {
    align-items: flex-end;
    gap: 13px;
    margin-top: -48px;
    margin-bottom: 17px;
}

.apcz-boutiques-page .ab-card .ab-logo {
    width: 70px;
    height: 70px;
    min-width: 70px;
    flex-basis: 70px;
    border: 4px solid #fff;
    border-radius: 19px;
    box-shadow: 0 7px 20px rgba(15, 35, 65, .15);
}

.apcz-boutiques-page .ab-card .ab-card-top h3,
.apcz-boutiques-page .ab-card h3 {
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 8px 11px !important;
    overflow: hidden !important;
    border: 1px solid #dceaff !important;
    border-radius: 11px !important;
    background: #edf5ff !important;
    color: #075fc0 !important;
    font-size: 16px !important;
    line-height: 1.35 !important;
    font-weight: 750 !important;
    letter-spacing: -.015em !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
}

.apcz-boutiques-page .ab-card .ab-location {
    display: flex;
    align-items: center;
    height: auto;
    min-height: 0;
    margin: 0 0 12px;
    color: #697b91;
    font-size: 13px;
    line-height: 1.5;
    white-space: normal;
}

.apcz-boutiques-page .ab-card-description {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 0 20px !important;
    color: #5c6c81 !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 4 !important;
    overflow: hidden !important;
}

.apcz-boutiques-page .ab-card-link {
    margin-top: auto;
    padding-top: 15px;
    border-top: 1px solid #edf1f7;
    color: var(--ab-blue) !important;
    font-size: 14px;
    font-weight: 800;
}

.apcz-boutiques-page .ab-card-link:hover {
    color: var(--ab-green) !important;
}

/* Bouton d'action */
.apcz-boutiques-page .ab-button {
    min-height: 48px;
    padding: 12px 22px;
    border-radius: 14px;
    background: linear-gradient(135deg, #087cf0, #0865ce) !important;
    box-shadow: 0 10px 22px rgba(8,124,240,.22);
    font-size: 14px;
    font-weight: 750;
    transition: transform .2s ease, box-shadow .2s ease;
}

.apcz-boutiques-page .ab-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(8,124,240,.29);
}

/* Tablettes */
@media (max-width: 1000px) {
    .apcz-boutiques-page .ab-featured {
        grid-template-columns: minmax(0, 1fr);
    }

    .apcz-boutiques-page .ab-featured-cover,
    .apcz-boutiques-page .ab-featured-cover img {
        width: 100%;
        height: clamp(250px, 45vw, 390px);
        min-height: 0;
    }

    .apcz-boutiques-page .ab-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .apcz-boutiques-page .ab-card-cover {
        height: clamp(190px, 25vw, 240px);
    }
}

/* Mobile : vraies cartes flexibles, une par ligne */
@media (max-width: 620px) {
    .apcz-boutiques-page {
        padding: 18px 12px 42px;
    }

    .apcz-boutiques-page .ab-hero {
        padding: 28px 20px;
        border-radius: 22px;
    }

    .apcz-boutiques-page .ab-hero h1 {
        font-size: clamp(27px, 8vw, 35px);
        line-height: 1.12;
    }

    .apcz-boutiques-page .ab-hero p {
        font-size: 14px;
    }

    .apcz-boutiques-page .ab-search-panel {
        min-height: 0 !important;
        align-items: center !important;
        gap: 10px !important;
        padding: 10px !important;
        border-radius: 16px !important;
    }

    .apcz-boutiques-page .ab-search-field label,
    .apcz-boutiques-page .ab-search-status {
        font-size: 12px !important;
    }

    .apcz-boutiques-page .ab-search-input {
        min-width: 0;
        font-size: 14px !important;
    }

    .apcz-boutiques-page .ab-section-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
        margin: 30px 0 16px;
    }

    .apcz-boutiques-page .ab-section-head h2 {
        font-size: 23px;
    }

    .apcz-boutiques-page .ab-featured {
        border-radius: 21px;
    }

    .apcz-boutiques-page .ab-featured-cover,
    .apcz-boutiques-page .ab-featured-cover img {
        height: 235px;
    }

    .apcz-boutiques-page .ab-featured-content {
        padding: 22px 18px;
    }

    .apcz-boutiques-page .ab-featured-content h3 {
        font-size: 25px;
    }

    .apcz-boutiques-page .ab-featured-description {
        height: auto;
        min-height: 0;
        max-height: none;
        font-size: 14px;
        -webkit-line-clamp: 6;
    }

    .apcz-boutiques-page .ab-grid {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
    }

    .apcz-boutiques-page .ab-grid > .ab-card {
        display: flex;
        flex: 0 0 auto;
        flex-direction: column;
        width: 100%;
        max-width: 100%;
        border-radius: 20px;
    }

    .apcz-boutiques-page .ab-card-cover {
        height: clamp(210px, 62vw, 285px);
    }

    .apcz-boutiques-page .ab-card-body {
        display: flex;
        flex-direction: column;
        flex: 1 1 auto;
        min-height: 0;
        height: auto;
        padding: 18px;
    }

    .apcz-boutiques-page .ab-card-top {
        align-items: flex-end;
        gap: 11px;
        margin-top: -43px;
        margin-bottom: 15px;
    }

    .apcz-boutiques-page .ab-card .ab-logo {
        width: 62px;
        height: 62px;
        min-width: 62px;
        flex-basis: 62px;
        border-radius: 16px;
    }

    .apcz-boutiques-page .ab-card .ab-card-top h3,
    .apcz-boutiques-page .ab-card h3 {
        font-size: 15px !important;
        padding: 7px 9px !important;
    }

    .apcz-boutiques-page .ab-card-description {
        font-size: 14px !important;
        line-height: 1.65 !important;
        -webkit-line-clamp: 5 !important;
    }

    .apcz-boutiques-page .ab-card-link {
        font-size: 14px;
    }

    .apcz-boutiques-page .ab-button {
        width: 100%;
        min-height: 47px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .apcz-boutiques-page *,
    .apcz-boutiques-page *::before,
    .apcz-boutiques-page *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}
