/* Scoped to the French storefront; the original Darija presentation is preserved. */
html[data-storefront-locale="fr"] {
  --font-arabic: var(--font-body);
}
html[data-storefront-locale="fr"] [lang="fr"],
html[data-storefront-locale="fr"] [dir="ltr"] {
  font-family: var(--font-body);
  direction: ltr;
}
html[data-storefront-locale="fr"] :is(h1,h2,h3,p,label,button,input,select,textarea) {
  font-family: var(--font-body);
}
html[data-storefront-locale="fr"] :is(.premium-mobile-buy,.premium-info,.guide-page,.salon-page,.cart-page) {
  direction: ltr;
}
html[data-storefront-locale="fr"] .hero-title { line-height: 1.08; }
html[data-storefront-locale="fr"] .showcase-title {
  font-size: clamp(30px, 3.1vw, 48px);
  line-height: 1.12 !important;
  letter-spacing: -1px !important;
}
html[data-storefront-locale="fr"] .showcase-title em { margin-top: 12px; }
html[data-storefront-locale="fr"] .showcase-description { line-height: 1.5; }
html[data-storefront-locale="fr"] .showcase-signature { font-size: 16px; }
html[data-storefront-locale="fr"] .showcase-actions { flex-wrap: wrap; margin-top: 24px; }
html[data-storefront-locale="fr"] .showcase-actions .button { font-size: 14px; padding-inline: 18px; }
html[data-storefront-locale="fr"] :is(.product-faq-list,.product-footer > div,.product-review-head,.product-reassurance > div) { direction: ltr; }
@media (max-width: 600px) {
  html[data-storefront-locale="fr"] .showcase-title { font-size: clamp(27px, 8vw, 34px); }
  html[data-storefront-locale="fr"] .showcase-signature { font-size: 13px; }
  html[data-storefront-locale="fr"] .showcase-copy { padding-top: 28px; }
}

/* French reading order, including blocks with their own Arabic layout rules. */
html[data-storefront-locale="fr"] :is(.guide-sidebar,.guide-article,.offer-benefits,.featured-price,.offers-services p,.cart-main,.cart-aside,.cart-line-price,.banquette-card,.salon-faq,.salon-faq-layout aside,.product-small-card,.product-review-head h3) {
  direction: ltr;
}
html[data-storefront-locale="fr"] :is(.premium35-page .product-hero-copy,.product-template .product-final>.product-help-card,.guide-comfort,.advice-card h3 a,.advice-page dialog,.locator-visit .visit-copy,.story-quote p,.salon-model-dialog-name,#product-inline-feedback,.checkout-order p) {
  text-align: start;
}
html[data-storefront-locale="fr"] :is(.locator-visit .locator-whatsapp,.pillow-buy-row) { flex-direction: row; }
html[data-storefront-locale="fr"] .cart-coupon small { margin-right: 0; margin-inline-start: auto; }
html[data-storefront-locale="fr"] .cart-line-price { text-align: end; }
html[data-storefront-locale="fr"] :is(.advice-read,.advice-button,.banquette-card .button,.cart-primary) .ph-arrow-left { transform: scaleX(-1); }
html[data-storefront-locale="fr"] :is(.guide-article,.product-hero-copy,.advice-card,.cart-box,.checkout-content) { min-width: 0; }
html[data-storefront-locale="fr"] :is(h1,h2,h3) { overflow-wrap: break-word; text-wrap: pretty; }
html[data-storefront-locale="fr"] :is(.guide-article p,.product-hero-copy p,.template-source-description p,.advice-card p) { line-height: 1.65; }
html[data-storefront-locale="fr"] :is(.button,.cart-primary,.cart-whatsapp,.advice-button,.advice-whatsapp,.advice-outline) {
  white-space: normal;
  line-height: 1.4;
  text-align: center;
}
html[data-storefront-locale="fr"] :is(button,a) > .ph { flex-shrink: 0; }
html[data-storefront-locale="fr"] :is(input,select,textarea) { max-width: 100%; }
html[data-storefront-locale="fr"] :is(input:not([type="checkbox"]):not([type="radio"]),textarea) { text-align: start; }
html[data-storefront-locale="fr"] :is(input[type="email"],input[type="tel"],input[autocomplete="postal-code"]) { direction: ltr; }
html[data-storefront-locale="fr"] :is(.product-hero-copy h2,.guide-hero h1) { line-height: 1.25; }
@media (max-width: 600px) {
  html[data-storefront-locale="fr"] :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { font-size: 16px; }
  html[data-storefront-locale="fr"] :is(.button,.cart-primary,.cart-whatsapp,.advice-button,.advice-whatsapp,.advice-outline) { min-height: 44px; }
  html[data-storefront-locale="fr"] .showcase-actions .button { font-size: 14px; }
  html[data-storefront-locale="fr"] :is(.advice-help-actions,.advice-toolbar,.offer-benefits) { flex-wrap: wrap; }
  html[data-storefront-locale="fr"] .advice-help-actions > * { flex: 1 1 150px; }
  html[data-storefront-locale="fr"] .premium-mobile-actions { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  html[data-storefront-locale="fr"] .premium-mobile-actions .button { font-size: 14px; min-height: 48px; }
  html[data-storefront-locale="fr"] .premium-mobile-price { flex-wrap: wrap; }
  html[data-storefront-locale="fr"] :is(.cart-steps,.advice-filters) { gap: 12px; }
  html[data-storefront-locale="fr"] .cart-steps li { flex: 1; min-width: 0; }
  html[data-storefront-locale="fr"] :is(.product-hero-copy h1,.cart-intro h1) { font-size: clamp(25px,7vw,34px); line-height: 1.2; }
}

/* Keep the article illustration opposite the French introduction. */
html[data-storefront-locale="fr"] .guide-hero > img { left: auto; right: 0; }
html[data-storefront-locale="fr"] :is(.guide-section p,.advice-card p) { font-size: 14px; }
html[data-storefront-locale="fr"] .guide-tile p { font-size: 14px !important; }

/* Category cards share one photo ratio and align their actions along each row. */
html[data-storefront-locale="fr"] .category-card { display: flex; flex-direction: column; }
html[data-storefront-locale="fr"] .category-card > .card-image-link { display: block; aspect-ratio: 4 / 3; flex-shrink: 0; overflow: hidden; }
html[data-storefront-locale="fr"] .category-card > .card-image-link > .media { width: 100%; height: 100%; }
html[data-storefront-locale="fr"] .category-card .media img { width: 100%; height: 100%; object-fit: cover; }
html[data-storefront-locale="fr"] .category-body { display: flex; flex: 1; flex-direction: column; padding: 18px 18px 20px; }
html[data-storefront-locale="fr"] .category-body h3 { margin: 0; font-size: clamp(19px, 1.8vw, 24px); line-height: 1.25; }
html[data-storefront-locale="fr"] .category-body p { flex: 1; min-height: 3em; margin: 8px 0 18px; font-size: 14px; line-height: 1.5; }
html[data-storefront-locale="fr"] .category-body .button { width: 100%; margin-top: auto; min-height: 46px; font-size: 14px; }
@media (max-width: 600px) {
  html[data-storefront-locale="fr"] .category-grid { gap: 12px; }
  html[data-storefront-locale="fr"] .category-body { padding: 14px 10px; }
  html[data-storefront-locale="fr"] .category-body h3 { font-size: 18px; }
  html[data-storefront-locale="fr"] .category-body p { font-size: 13px; margin-bottom: 14px; }
  html[data-storefront-locale="fr"] .category-body .button { min-height: 52px; font-size: 13px; padding-inline: 8px; gap: 6px; }
}

/* French closing copy wraps within its column instead of spanning the CTA. */
html[data-storefront-locale="fr"] .closing-scene { grid-template-columns: minmax(0, 34fr) minmax(0, 46fr) minmax(0, 20fr); }
html[data-storefront-locale="fr"] :is(.closing-content,.closing-action) { min-width: 0; }
html[data-storefront-locale="fr"] .closing-content { padding: 30px 18px; }
html[data-storefront-locale="fr"] .closing-content h2 { width: 100%; max-width: 100%; white-space: normal; font-size: clamp(26px, 2.6vw, 38px); line-height: 1.2; text-wrap: balance; }
html[data-storefront-locale="fr"] .closing-subtitle { font-size: 17px; line-height: 1.5; text-align: left; margin: 14px 0 24px; }
html[data-storefront-locale="fr"] .closing-photo p { top: 24px; left: 24px; width: calc(100% - 72px); max-width: 260px; margin: 0; transform: none; font-size: 19px; line-height: 1.4; text-wrap: balance; }
html[data-storefront-locale="fr"] .closing-benefits { grid-template-columns: repeat(4,minmax(0,1fr)); }
html[data-storefront-locale="fr"] .closing-benefits > div { min-width: 0; padding-inline: 6px; }
html[data-storefront-locale="fr"] .closing-benefits span { font-size: 13px; overflow-wrap: anywhere; }
html[data-storefront-locale="fr"] .closing-action { padding: 24px 20px 24px 6px; }
html[data-storefront-locale="fr"] .closing-action .button { white-space: normal; font-size: 15px; gap: 8px; }
html[data-storefront-locale="fr"] .closing-action > p { transform: none; }
html[data-storefront-locale="fr"] .closing-action > p span { font-size: 16px; }
@media (max-width: 1000px) and (min-width: 701px) {
  html[data-storefront-locale="fr"] .closing-scene { grid-template-columns: minmax(0,34fr) minmax(0,66fr); }
  html[data-storefront-locale="fr"] .closing-content { padding-bottom: 8px; }
  html[data-storefront-locale="fr"] .closing-action { grid-column: 2; padding: 12px 18px 24px; }
  html[data-storefront-locale="fr"] .closing-action .button { width: auto; min-height: 46px; }
  html[data-storefront-locale="fr"] .closing-action > p { margin-top: 12px; }
}
@media (max-width: 700px) {
  html[data-storefront-locale="fr"] .closing-content { padding: 24px 20px 8px; }
  html[data-storefront-locale="fr"] .closing-content h2 { font-size: 27px; text-align: center; }
  html[data-storefront-locale="fr"] .closing-subtitle { text-align: center; font-size: 15px; }
  html[data-storefront-locale="fr"] .closing-photo p { top: 20px; left: 20px; max-width: 230px; font-size: 17px; }
  html[data-storefront-locale="fr"] .closing-benefits { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 0; }
  html[data-storefront-locale="fr"] .closing-benefits > div:nth-child(3) { border-left: 0; }
  html[data-storefront-locale="fr"] .closing-action { padding: 18px 20px 24px; }
  html[data-storefront-locale="fr"] .closing-action > p { flex-wrap: wrap; }
}

/* Compact Latin typography for category introductions. */
html[data-storefront-locale="fr"] .mc-hero-copy h1 { line-height: 1.25; margin-bottom: 12px; }
html[data-storefront-locale="fr"] .mc-hero .mc-hero-copy h2 { line-height: 1.12; white-space: normal; font-size: clamp(32px, 3.8vw, 54px); text-wrap: balance; }
html[data-storefront-locale="fr"] .mc-hero-copy p { line-height: 1.4; margin: 14px 0 0; font-size: clamp(17px, 1.6vw, 22px); }
@media (max-width: 600px) {
  html[data-storefront-locale="fr"] .mc-hero .mc-hero-copy h2 { font-size: 32px; }
  html[data-storefront-locale="fr"] .mc-hero-copy p { font-size: 17px; margin-top: 12px; }
}

/* Place the French product assistance card on the clear side of the photo. */
html[data-storefront-locale="fr"] .product-template .product-final { justify-content: flex-start; }

/* French salon hero: readable copy on the left, full-width room on the right. */
html[data-storefront-locale="fr"] .salon-hero-copy { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; width: 48%; max-width: 560px; min-width: 0; padding-block: 44px; }
html[data-storefront-locale="fr"] .salon-hero-copy :is(h1,p) { grid-column: 1 / -1; margin: 0; }
html[data-storefront-locale="fr"] .salon-hero-copy h1 { font-size: clamp(30px,3.2vw,46px); line-height: 1.15; text-wrap: balance; }
html[data-storefront-locale="fr"] .salon-hero-copy p { font-size: 16px; line-height: 1.5; margin: 6px 0 12px; }
html[data-storefront-locale="fr"] .salon-hero-copy .button { width: 100%; margin: 0; padding: 12px; min-height: 50px; font-size: 14px; gap: 8px; }
html[data-storefront-locale="fr"] .salon-hero-copy .ph-arrow-left { transform: scaleX(-1); }
@media (min-width: 601px) {
  html[data-storefront-locale="fr"] .salon-hero > img { width: 100%; object-position: center; }
  html[data-storefront-locale="fr"] .salon-hero-shade { background: linear-gradient(90deg,#fffaf3f5 0%,#fffaf3e8 25%,#fffaf3a3 43%,#fffaf300 68%); }
}
@media (min-width: 601px) and (max-width: 900px) {
  html[data-storefront-locale="fr"] .salon-hero-copy { width: 56%; }
  html[data-storefront-locale="fr"] .salon-hero-copy .button { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  html[data-storefront-locale="fr"] .salon-hero-copy { width: 100%; max-width: none; padding: 235px 0 24px; gap: 10px; }
  html[data-storefront-locale="fr"] .salon-hero-copy h1 { font-size: 30px; }
  html[data-storefront-locale="fr"] .salon-hero-copy p { font-size: 15px; margin: 4px 0 8px; }
  html[data-storefront-locale="fr"] .salon-hero-copy .button { grid-column: 1 / -1; }
}

/* A soft, numbered bedside card for the French pillow collection. */
html[data-storefront-locale="fr"] .pillow-night-card { position: absolute; right: 0; bottom: 24px; width: 280px; padding: 24px; background: #fffaf2f5; border: 1px solid #fff; border-radius: 32px 12px 32px 12px; box-shadow: 0 12px 36px #47311c14; color: #25332e; }
html[data-storefront-locale="fr"] .pillow-night-kicker { font-size: 9px; font-weight: 800; letter-spacing: 2px; color: #ba4823; }
html[data-storefront-locale="fr"] .pillow-night-card h3 { font-size: 22px; line-height: 1.15; margin: 8px 0 20px; max-width: 190px; }
html[data-storefront-locale="fr"] .pillow-night-card ol { list-style: none; padding: 0; margin: 0; }
html[data-storefront-locale="fr"] .pillow-night-card li { display: grid; grid-template-columns: 38px minmax(0,1fr) 18px; align-items: center; gap: 10px; padding: 12px 0; font-size: 12px; line-height: 1.35; font-weight: 700; }
html[data-storefront-locale="fr"] .pillow-night-card li + li { border-top: 1px solid #e9ded0; }
html[data-storefront-locale="fr"] .pillow-night-icon { width: 38px; height: 38px; display: grid; place-items: center; background: #fcebdc; color: #d85425; border-radius: 50%; }
html[data-storefront-locale="fr"] .pillow-night-icon .ph { font-size: 23px; }
html[data-storefront-locale="fr"] .pillow-night-card small { align-self: start; padding-top: 4px; font-size: 9px; color: #99816c; font-weight: 600; }
@media (max-width: 1000px) {
 html[data-storefront-locale="fr"] .pillow-night-card { position: relative; bottom: auto; width: 100%; padding: 20px; margin: 0 0 24px; }
 html[data-storefront-locale="fr"] .pillow-night-card h3 { max-width: none; margin-bottom: 12px; }
 html[data-storefront-locale="fr"] .pillow-night-card ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
 html[data-storefront-locale="fr"] .pillow-night-card li + li { border-top: 0; }
}
@media (max-width: 600px) {
 html[data-storefront-locale="fr"] .pillow-night-card ol { display: block; }
 html[data-storefront-locale="fr"] .pillow-night-card li + li { border-top: 1px solid #e9ded0; }
}
@media (min-width: 1001px) {
 html[data-storefront-locale="fr"] [data-pillow-catalog] .mc-hero .mc-wrap { min-height: 400px; display: flow-root; }
}

/* Store slideshow spans the viewport while its content follows the page grid. */
html[data-storefront-locale="fr"] .locator-page > .locator-hero { width: 100%; max-width: none; margin-inline: 0; }
html[data-storefront-locale="fr"] .locator-hero h1 { white-space: normal; line-height: 1.12; font-size: clamp(30px,3.4vw,46px); text-wrap: balance; margin-bottom: 16px; }
html[data-storefront-locale="fr"] .locator-hero-copy > p { line-height: 1.5; font-size: 18px; }
html[data-storefront-locale="fr"] .locator-hero-copy > p br { display: none; }
html[data-storefront-locale="fr"] .locator-hero-copy { padding: 36px 0 64px; }
html[data-storefront-locale="fr"] .locator-slide-controls button { min-width: 40px; min-height: 40px; }
@media (min-width: 768px) {
 html[data-storefront-locale="fr"] .locator-hero > .container { min-height: 430px; }
 html[data-storefront-locale="fr"] .locator-hero-copy { width: 42%; }
 html[data-storefront-locale="fr"] .locator-slide.interior img { width: 100%; mask-image: linear-gradient(to right,#000 40%,transparent 76%); }
}
@media (max-width: 767px) {
 html[data-storefront-locale="fr"] .locator-hero-copy { padding: 24px 0 28px; }
 html[data-storefront-locale="fr"] .locator-hero-copy > p { font-size: 16px; }
}

/* Keep the entire French copy column inside the orange curve, including its lower edge. */
@media (min-width: 701px) {
  html[data-storefront-locale="fr"] .closing-orange {
    left: calc(34% - 96px);
    border-radius: 80px 0 0 80px;
  }
  html[data-storefront-locale="fr"] .closing-benefits { align-items: stretch; }
  html[data-storefront-locale="fr"] .closing-benefits > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-inline: 10px;
  }
  html[data-storefront-locale="fr"] .closing-benefits span { overflow-wrap: normal; }
}
