/*
Theme Name: Museau Club
Theme URI: https://museau-club.com
Author: Museau Club
Description: Thème boutique Museau Club — accessoires pour chien et chat. Maquettes Claude Design (17 pages, desktop / tablette / mobile).
Version: 1.0.0
Requires PHP: 8.0
Text Domain: museau-club
*/

/* =========================================================================
   Tokens
   ====================================================================== */
:root {
  --bg: #f6f1e7;
  --brand: #8f1f14;
  --brand-2: #a13a2a;
  --dark: #2b2320;
  --brown: #4a3a30;
  --sand: #e8dfd0;
  --sand-2: #f0e7d9;
  --line: #e6d9c6;
  --line-2: #e0d3bd;
  --muted: #5c4b46;
  --text-2: #3f332c;
  --ph: #a88b7a;
  --ph-2: #8a7c6a;
  --ph-3: #c4b4a6;
  --rose: #e0a3a0;
  --white: #fff;
  --cream-line: rgba(246, 241, 231, .18);
  --cream-line-2: rgba(246, 241, 231, .25);
  --cream-border: rgba(246, 241, 231, .4);
  --serif: Caprasimo, Georgia, serif;
  --sans: Poppins, system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "Space Mono", ui-monospace, Menlo, monospace;
  --pad: 48px;
  --gap: 20px;
}
@media (max-width: 1199px) { :root { --pad: 28px; --gap: 16px; } }
@media (max-width: 759px) { :root { --pad: 18px; --gap: 12px; } }

/* =========================================================================
   Base
   ====================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--brand); font-family: var(--sans); font-size: 15px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
body.has-drawer { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
a:hover { opacity: .85; }
button { font: inherit; color: inherit; cursor: pointer; }
input, select, textarea { font: inherit; }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 400; margin: 0; }
p { margin: 0; }
.screen-reader-text, .hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; left: -9999px; }
.skip { position: absolute; left: -9999px; top: 8px; background: var(--dark); color: var(--bg); padding: 10px 14px; z-index: 100; }
.skip:focus { left: 8px; }
.site { min-height: 100vh; display: flex; flex-direction: column; }
.main { flex: 1; }
[hidden] { display: none !important; }

/* Containers */
.wrap { padding-left: var(--pad); padding-right: var(--pad); }
.sec { padding: 0 var(--pad) 44px; }
.sec--top { padding-top: 44px; }
@media (max-width: 1199px) { .sec { padding-bottom: 22px; } .sec--top { padding-top: 26px; } }

/* Type helpers */
.kicker { margin: 0 0 12px; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.h-serif { font-family: var(--serif); font-weight: 400; }
.eyebrow { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--muted); }

/* Buttons */
.btn { display: inline-block; padding: 16px 30px; font-weight: 600; text-decoration: none; border: 0; text-align: center; line-height: 1.2; }
.btn--brand { background: var(--brand); color: var(--bg); }
.btn--cream { background: var(--bg); color: var(--brand); }
.btn--dark { background: var(--dark); color: var(--bg); }
.btn--cream-dark { background: var(--bg); color: var(--dark); }
.btn--outline-cream { border: 2px solid var(--bg); color: var(--bg); background: transparent; padding: 14px 28px; }
.btn--outline-dark { border: 2px solid var(--dark); color: var(--dark); background: transparent; padding: 14px 20px; }
.btn--sm { padding: 12px 20px; font-size: 14px; }
.btn:hover { opacity: .9; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.link-u { text-decoration: underline; color: var(--muted); font-size: 14px; background: none; border: 0; padding: 0; }

/* Chips */
.chips { display: flex; gap: 10px; flex-wrap: wrap; font-size: 14px; font-weight: 600; }
.chip { display: inline-block; padding: 11px 18px; border: 2px solid var(--line); text-decoration: none; color: var(--brand); background: transparent; line-height: 1.2; }
.chip.is-active { background: var(--brand); color: var(--bg); border-color: var(--brand); }
.chip--dark.is-active { background: var(--dark); border-color: var(--dark); }
.chip--right { margin-left: auto; color: var(--dark); }
@media (max-width: 1199px) { .chips { gap: 8px; font-size: 13px; } .chip { padding: 10px 16px; } }

/* Cards / boxes */
.box { background: var(--white); border: 2px solid var(--line); }
.box--brand { border-color: var(--brand); }
.dark-box { background: var(--dark); color: var(--bg); }
.brand-box { background: var(--brand); color: var(--bg); }

/* Placeholders (images to come) */
.ph { position: relative; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; padding: 20px; min-height: 60px; }
.ph--center { justify-content: center; align-items: center; text-align: center; }
.ph__label { font: 13px var(--mono); color: var(--ph-2); }
.ph--sand { background: var(--sand) repeating-linear-gradient(45deg, rgba(143, 31, 20, .07) 0 14px, transparent 14px 28px); }
.ph--sand2 { background: var(--sand-2) repeating-linear-gradient(45deg, rgba(143, 31, 20, .06) 0 10px, transparent 10px 20px); }
.ph--sand2 .ph__label { color: var(--ph); }
.ph--dark { background: var(--dark) repeating-linear-gradient(45deg, rgba(255, 255, 255, .06) 0 14px, transparent 14px 28px); }
.ph--dark .ph__label { color: var(--bg); opacity: .8; }
.ph--brown { background: var(--brown) repeating-linear-gradient(45deg, rgba(246, 241, 231, .07) 0 14px, transparent 14px 28px); }
.ph--brown .ph__label { color: var(--ph-3); }
.ph--brand { background: var(--brand-2) repeating-linear-gradient(45deg, rgba(255, 255, 255, .09) 0 14px, transparent 14px 28px); }
.ph--brand .ph__label { color: var(--bg); opacity: .85; }
.ph--plain { background: var(--sand-2); }
@media (max-width: 1199px) { .ph { padding: 14px; } .ph--sand, .ph--sand2 { background-image: repeating-linear-gradient(45deg, rgba(143, 31, 20, .06) 0 12px, transparent 12px 24px); } }

/* Stars */
.stars { color: var(--brand); font-size: 17px; letter-spacing: .02em; }

/* Notices (WooCommerce) */
.notices { padding: 20px var(--pad) 0; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner { list-style: none; margin: 0 0 16px; padding: 16px 20px; background: var(--white); border: 2px solid var(--brand); color: var(--dark); font-size: 14px; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.woocommerce-error { border-color: var(--brand); background: #fff3f1; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button, .wc-forward { order: 2; padding: 10px 16px; background: var(--brand); color: var(--bg); text-decoration: none; font-weight: 600; font-size: 13px; }
.notices .woocommerce-message, .notices .woocommerce-info, .notices .woocommerce-error { margin-bottom: 0; }

/* =========================================================================
   Header / nav
   ====================================================================== */
.nav { border-bottom: 2px solid var(--brand); background: var(--bg); position: relative; z-index: 20; }
.nav__in { max-width: 1280px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 20px var(--pad); position: relative; }
.nav__brand { font: 32px var(--serif); color: var(--brand); text-decoration: none; }
.nav__links { display: flex; gap: 22px; align-items: center; font-weight: 600; font-size: 14px; color: var(--dark); }
.nav__link { text-decoration: none; color: var(--dark); background: none; border: 0; padding: 0 0 2px; border-bottom: 2px solid transparent; }
.nav__link.is-active { border-bottom-color: var(--brand); }
.nav__menu--m, .nav__cart--m { display: none; }
@media (max-width: 1199px) {
  .nav__in { padding: 16px var(--pad); }
  .nav__brand { font-size: 26px; }
  .nav__links { gap: 16px; font-size: 13px; }
}
@media (max-width: 759px) {
  .nav__in { padding: 12px var(--pad); }
  .nav__brand { font-size: 20px; }
  .nav__links { display: none; }
  .nav__menu--m, .nav__cart--m { display: flex; width: 44px; height: 44px; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; color: var(--dark); background: none; border: 0; text-decoration: none; padding: 0; }
  .nav__burger { display: inline-flex; flex-direction: column; gap: 4px; }
  .nav__burger span { width: 20px; height: 2px; background: var(--dark); display: block; }
}

/* Drawer */
.drawer { position: fixed; inset: 0; z-index: 50; }
.drawer__backdrop { position: absolute; inset: 0; background: rgba(43, 35, 32, .55); }
.drawer__panel { position: absolute; top: 0; left: 0; bottom: 0; width: min(920px, 100%); background: var(--bg); color: var(--dark); overflow: auto; padding: 24px var(--pad) 40px; border-right: 2px solid var(--brand); }
.drawer__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.drawer__brand { font: 28px var(--serif); color: var(--brand); }
.drawer__close { background: none; border: 2px solid var(--line); padding: 10px 14px; font-weight: 600; font-size: 13px; }
.drawer__search { display: flex; gap: 10px; margin-bottom: 26px; }
.drawer__search input { flex: 1; padding: 14px 18px; border: 2px solid var(--brand); background: var(--white); font-size: 15px; color: var(--dark); min-width: 0; }
.drawer__search button { padding: 14px 22px; background: var(--brand); color: var(--bg); border: 0; font-weight: 600; }
.drawer__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.drawer__col { display: flex; flex-direction: column; gap: 9px; font-size: 14px; }
.drawer__col a { text-decoration: none; color: var(--dark); display: flex; justify-content: space-between; gap: 8px; }
.drawer__col small { color: var(--ph); font-size: 13px; }
.drawer__title { font: 22px var(--serif); color: var(--brand); margin-bottom: 6px; justify-content: flex-start !important; gap: 10px !important; align-items: baseline; }
@media (max-width: 1199px) { .drawer__cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 759px) { .drawer__cols { grid-template-columns: 1fr; gap: 22px; } .drawer__panel { width: 100%; } }

/* Breadcrumb */
.crumbs { padding: 16px var(--pad); font-size: 13px; color: var(--muted); }
.crumbs a { text-decoration: none; }
.crumbs strong { color: var(--brand); }
@media (max-width: 1199px) { .crumbs { padding: 12px var(--pad); font-size: 13px; } }
@media (max-width: 759px) { .crumbs { padding: 10px var(--pad); } .crumbs a.crumbs__home { display: none; } }

/* =========================================================================
   Product card
   ====================================================================== */
.grid { display: grid; gap: var(--gap); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1199px) { .grid--4, .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 759px) { .grid--4, .grid--3, .grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.pcard { display: block; background: var(--white); padding: 14px; text-decoration: none; color: inherit; }
.pcard:hover { opacity: 1; }
.pcard:hover .pcard__img { transform: scale(1.03); }
.pcard__media { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--sand-2) repeating-linear-gradient(45deg, rgba(143, 31, 20, .06) 0 10px, transparent 10px 20px); }
.pcard__img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.pcard__tag { position: absolute; left: 10px; top: 10px; padding: 4px 10px; background: var(--brand); color: var(--bg); font-size: 13px; font-weight: 600; }
.pcard--dark .pcard__tag, .mc-pet-chats .pcard__tag { background: var(--dark); }
.pcard__name { margin-top: 12px; font: 20px var(--serif); color: var(--brand); }
.pcard__meta { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; color: var(--muted); margin-top: 2px; }
.pcard__meta strong { color: var(--brand); white-space: nowrap; }
.pcard__meta .amount { color: var(--brand); }
.pcard__meta del { opacity: .6; margin-right: 4px; font-weight: 400; }
.pcard__meta ins { text-decoration: none; }
@media (max-width: 1199px) { .pcard { padding: 14px; } .pcard__name { font-size: 18px; margin-top: 10px; } .pcard__meta { font-size: 13px; } }
@media (max-width: 759px) { .pcard__name { font-size: 17px; } }

/* Sort form */
.sortform { display: inline-flex; }
.sortform__label { position: relative; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--dark); cursor: pointer; }
.sortform__select { appearance: none; -webkit-appearance: none; border: 0; background: transparent; font-weight: 600; color: var(--dark); padding-right: 4px; cursor: pointer; }
.sortform--boxed .sortform__label { padding: 11px 18px; border: 2px solid var(--line); }
@media (max-width: 1199px) { .sortform__label { font-size: 13px; } }

/* Pager */
.pager { display: flex; justify-content: center; gap: 8px; margin-top: 26px; font-size: 14px; font-weight: 600; flex-wrap: wrap; }
.pager .page-numbers { display: inline-block; padding: 10px 16px; border: 2px solid var(--line); text-decoration: none; color: var(--brand); }
.pager .page-numbers.current { background: var(--brand); color: var(--bg); border-color: var(--brand); }
.pager .page-numbers.dots { border: 0; }

/* =========================================================================
   Home
   ====================================================================== */
.hero { display: grid; grid-template-columns: 1.12fr .88fr; align-items: stretch; }
.hero__text { background: var(--brand); color: var(--bg); padding: 60px 48px; }
.hero__text .kicker { margin-bottom: 16px; font-size: 13px; }
.hero__title { font: 80px/.95 var(--serif); margin: 0 0 20px; text-wrap: pretty; }
.hero__lead { font-size: 17px; line-height: 1.6; max-width: 520px; opacity: .95; margin-bottom: 30px; }
.hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.hero__trust { display: flex; gap: 26px; margin-top: 34px; font-size: 14px; opacity: .9; flex-wrap: wrap; }
.hero__side { display: flex; flex-direction: column; }
.raycard { position: relative; flex: 1; min-height: 230px; padding: 28px 32px; text-decoration: none; display: flex; flex-direction: column; justify-content: flex-end; }
.raycard:hover { opacity: 1; }
.raycard--dog { background: var(--sand) repeating-linear-gradient(45deg, rgba(143, 31, 20, .07) 0 14px, transparent 14px 28px); color: var(--brand); }
.raycard--cat { background: var(--dark) repeating-linear-gradient(45deg, rgba(255, 255, 255, .06) 0 14px, transparent 14px 28px); color: var(--bg); }
.raycard__ph { position: absolute; top: 22px; left: 32px; font: 13px var(--mono); color: var(--ph-2); }
.raycard--cat .raycard__ph { color: inherit; opacity: .8; }
.raycard__count { position: absolute; top: 22px; right: 32px; padding: 5px 11px; background: var(--brand); color: var(--bg); font-size: 13px; font-weight: 600; }
.raycard--cat .raycard__count { background: var(--bg); color: var(--dark); }
.raycard__title { font: 42px/1.02 var(--serif); }
.raycard__sub { margin-top: 8px; font-size: 15px; font-weight: 500; color: var(--muted); }
.raycard--cat .raycard__sub { color: inherit; opacity: .9; }
.mosaic { display: grid; grid-template-columns: 2fr 1fr; gap: 18px; }
.mosaic__big { height: 300px; }
.mosaic__col { display: flex; flex-direction: column; gap: 18px; }
.mosaic__col > * { flex: 1; }
.mosaic__new { background: var(--dark); color: var(--bg); padding: 20px; display: flex; flex-direction: column; justify-content: space-between; text-decoration: none; }
.mosaic__new .eyebrow { color: inherit; opacity: .8; }
.mosaic__new strong { font: 26px/1.05 var(--serif); font-weight: 400; }
.sec__title { font: 34px var(--serif); margin-bottom: 20px; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; background: var(--brand); }
.stat { background: var(--bg); padding: 24px; }
.stat__n { font: 24px var(--serif); }
.stat__l { font-size: 14px; color: var(--muted); margin-top: 4px; }
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.quote { background: var(--white); padding: 26px; border-left: 6px solid var(--brand); }
.quote p { margin: 12px 0 10px; font-size: 16px; line-height: 1.55; color: var(--dark); }
.quote span { font-size: 13px; color: var(--muted); font-weight: 600; }
.house { margin: 0 var(--pad) 44px; background: var(--dark); color: var(--bg); display: grid; grid-template-columns: .85fr 1.15fr; }
.house__ph { min-height: 340px; }
.house__body { padding: 44px 48px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.house__body .kicker { color: var(--rose); }
.house__body h3 { font: 40px/1.05 var(--serif); margin-bottom: 16px; }
.house__body p { font-size: 16px; line-height: 1.7; opacity: .88; max-width: 520px; margin-bottom: 22px; }
@media (max-width: 1199px) {
  .hero { display: block; }
  .hero__text { padding: 32px 28px; }
  .hero__text .kicker { font-size: 13px; margin-bottom: 10px; }
  .hero__title { font-size: 58px; line-height: .98; margin-bottom: 14px; }
  .hero__lead { font-size: 16px; margin-bottom: 20px; }
  .hero__actions .btn { padding: 14px 24px; font-size: 15px; }
  .hero__trust { display: none; }
  .hero__side { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 22px; }
  .raycard { padding: 22px; }
  .raycard__ph { top: 16px; left: 22px; }
  .raycard__count { display: none; }
  .raycard__title { font-size: 34px; }
  .raycard__sub { font-size: 14px; margin-top: 6px; }
  .mosaic, .quotes-sec, .house { display: none; }
  .sec__title { font-size: 26px; margin-bottom: 14px; }
  .stats { grid-template-columns: repeat(3, 1fr); }
  .stat { padding: 16px; }
  .stat__n { font-size: 19px; }
  .stat__l { font-size: 13px; margin-top: 3px; }
  .stat--hide-t { display: none; }
}
@media (max-width: 759px) {
  .sec--hero { padding: 0; }
  .hero__text { padding: 24px 18px; }
  .hero__title { font-size: 40px; line-height: 1; margin-bottom: 12px; }
  .hero__lead { font-size: 15px; line-height: 1.55; margin-bottom: 0; }
  .hero__actions { display: none; }
  .hero__side { display: flex; flex-direction: column; gap: 0; margin-top: 0; }
  .raycard { min-height: 190px; padding: 18px; }
  .raycard__ph { top: 14px; left: 18px; }
  .raycard__title { font-size: 30px; }
  .raycard__sub { margin-top: 4px; }
  .sec--menu { padding-top: 22px; }
  .sec__title { font-size: 22px; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .stat--hide-m { display: none; }
}

/* =========================================================================
   Collection pages
   ====================================================================== */
.colhero { background: var(--brand); color: var(--bg); padding: 44px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; }
.colhero--dark { background: var(--dark); }
.colhero--dark .kicker { color: var(--rose); }
.colhero__title { font: 62px/.98 var(--serif); margin-bottom: 14px; }
.colhero--sub .colhero__title { font-size: 60px; }
.colhero__lead { font-size: 17px; line-height: 1.6; opacity: .95; max-width: 520px; }
.colhero--dark .colhero__lead { opacity: .9; }
.colhero__facts { display: flex; gap: 22px; font-size: 14px; opacity: .9; margin-top: 22px; flex-wrap: wrap; }
.colhero__ph { height: 200px; }
.colhero--sub .colhero__ph { height: 210px; }
.colhero__count-m { display: none; }
.collection { display: grid; grid-template-columns: 250px 1fr; gap: 32px; }
.collection__bar { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 18px; font-size: 14px; color: var(--muted); }
.collection__tools { display: none; }
.subcol-bar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.subcol-bar .sortform { margin-left: auto; }
.sizebox { margin: 0 var(--pad) 44px; padding: 30px 36px; background: var(--white); border: 2px solid var(--brand); }
.sizebox h2 { font: 26px var(--serif); margin-bottom: 10px; }
.sizebox p { font-size: 15px; line-height: 1.65; color: var(--muted); max-width: 820px; }
.empty { padding: 40px 0; color: var(--muted); font-size: 15px; }

/* Filters */
.filters__title { font: 20px var(--serif); margin-bottom: 14px; }
.filters__group { border: 0; padding: 0; margin: 0 0 18px; font-size: 14px; color: var(--dark); }
.filters__group legend { font-weight: 600; margin-bottom: 8px; padding: 0; }
.check { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; cursor: pointer; }
.check input { position: absolute; opacity: 0; width: 0; height: 0; }
.check__box { width: 14px; height: 14px; border: 1.5px solid var(--dark); display: inline-block; flex: none; }
.check.is-on { color: var(--brand); font-weight: 600; }
.check.is-on .check__box { background: var(--brand); border-color: var(--brand); }
.check small { margin-left: auto; color: var(--ph); font-size: 13px; }
.range { position: relative; height: 24px; margin: 8px 0 0; }
.range__track { position: absolute; left: 0; right: 0; top: 10px; height: 4px; background: var(--line-2); }
.range__fill { position: absolute; top: 0; height: 4px; background: var(--brand); }
.range input[type=range] { position: absolute; left: 0; right: 0; top: 0; width: 100%; margin: 0; appearance: none; -webkit-appearance: none; background: transparent; pointer-events: none; height: 24px; }
.range input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 16px; height: 16px; background: var(--brand); border: 2px solid var(--bg); cursor: pointer; margin-top: 0; }
.range input[type=range]::-moz-range-thumb { pointer-events: auto; width: 14px; height: 14px; background: var(--brand); border: 2px solid var(--bg); border-radius: 0; cursor: pointer; }
.range input[type=range]::-webkit-slider-runnable-track { height: 24px; background: transparent; }
.range__values { display: flex; justify-content: space-between; font-size: 13px; color: var(--muted); margin-top: 6px; }
.filters__actions { padding-top: 6px; display: flex; gap: 14px; align-items: center; }
.filters__actions .btn { padding: 12px 20px; }
.filters__reset { font-size: 13px; color: var(--muted); }
.filters-drawer__head, .filters-drawer__close { display: none; }
@media (max-width: 1199px) {
  .colhero { display: block; padding: 32px 28px; }
  .colhero__title { font-size: 58px; }
  .colhero--sub .colhero__title { font-size: 58px; }
  .colhero__ph, .colhero__facts { display: none; }
  .colhero__lead { font-size: 16px; max-width: none; }
  .colhero__count-m { display: block; }
  .colhero__kicker-d { display: none; }
  .collection { display: block; }
  .collection__bar { display: none; }
  .collection__tools { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: var(--muted); margin-bottom: 20px; }
  .collection__tools .btn-outline { padding: 10px 16px; border: 2px solid var(--line); font-weight: 600; color: var(--dark); background: transparent; }
  .filters-wrap { position: fixed; inset: 0; z-index: 60; display: none; }
  .filters-wrap.is-open { display: block; }
  .filters-wrap::before { content: ""; position: absolute; inset: 0; background: rgba(43, 35, 32, .55); }
  .filters { position: absolute; right: 0; top: 0; bottom: 0; width: min(380px, 100%); background: var(--bg); padding: 22px var(--pad) 40px; overflow: auto; }
  .filters-drawer__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
  .filters-drawer__close { display: inline-block; background: none; border: 2px solid var(--line); padding: 8px 12px; font-weight: 600; font-size: 13px; }
  .subcol-bar .sortform { display: none; }
  .sizebox { padding: 22px 24px; }
  .sizebox h2 { font-size: 22px; }
  .sizebox p { color: var(--text-2); }
}
@media (max-width: 759px) {
  .colhero { padding: 24px 18px; }
  .colhero__title { font-size: 40px; line-height: 1; }
  .colhero--sub .colhero__title { font-size: 40px; }
  .colhero__lead { font-size: 15px; line-height: 1.55; }
  .sec--colhero { padding: 0 0 18px; }
  .collection__tools { gap: 10px; margin: 18px 0 16px; }
  .collection__tools > span { display: none; }
  .collection__tools .btn-outline { flex: 1; padding: 14px; text-align: center; font-size: 14px; }
  .sizebox { padding: 18px; }
  .sizebox h2 { font-size: 20px; }
  .sizebox p { font-size: 14px; }
}

/* =========================================================================
   Product page
   ====================================================================== */
.product-top { display: grid; grid-template-columns: 1.05fr .95fr; gap: 44px; align-items: start; }
.pmedia__main { aspect-ratio: 1; background: var(--sand) repeating-linear-gradient(45deg, rgba(143, 31, 20, .07) 0 14px, transparent 14px 28px); overflow: hidden; position: relative; }
.pmedia__main img { width: 100%; height: 100%; object-fit: cover; }
.pmedia__main a { display: block; height: 100%; }
.pmedia__thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 12px; }
.pmedia__thumb { aspect-ratio: 1; background: var(--sand-2) repeating-linear-gradient(45deg, rgba(143, 31, 20, .06) 0 10px, transparent 10px 20px); border: 2px solid transparent; padding: 0; overflow: hidden; }
.pmedia__thumb img { width: 100%; height: 100%; object-fit: cover; }
.pmedia__thumb.is-active { border-color: var(--brand); }
.pinfo .eyebrow { margin-bottom: 10px; }
.pinfo__title { font: 52px/1 var(--serif); margin-bottom: 12px; }
.pinfo__rating { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; font-size: 14px; color: var(--muted); }
.pinfo__price { font: 36px var(--serif); margin-bottom: 18px; }
.pinfo__price del { opacity: .5; font-size: .7em; margin-right: 8px; }
.pinfo__price ins { text-decoration: none; }
.pinfo__desc { font-size: 17px; line-height: 1.7; color: var(--muted); margin-bottom: 22px; }
.pinfo__desc p { margin: 0 0 10px; }
.optgroup { margin-bottom: 18px; }
.optgroup__label { font-size: 14px; font-weight: 600; margin-bottom: 8px; color: var(--dark); }
.optgroup__label small { font-weight: 400; color: var(--muted); }
.opts { display: flex; gap: 10px; flex-wrap: wrap; }
.opt { padding: 12px 20px; border: 2px solid var(--line); font-weight: 600; font-size: 14px; background: transparent; color: var(--brand); line-height: 1.2; }
.opt.is-active { border-color: var(--brand); background: var(--brand); color: var(--bg); }
.opt.is-off { opacity: .35; text-decoration: line-through; }
.opt--swatch { width: 40px; height: 40px; padding: 0; border: 2px solid transparent; position: relative; }
.opt--swatch.is-active { border-color: var(--brand); box-shadow: inset 0 0 0 2px var(--bg); }
.opt--swatch.is-off::after { content: ""; position: absolute; left: -2px; right: -2px; top: 50%; border-top: 2px solid var(--brand); transform: rotate(-45deg); }
.variations_form select.mc-hidden-select, .variations_form .reset_variations { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.buy { display: flex; gap: 12px; margin-bottom: 20px; }
.buy .single_add_to_cart_button, .buy .btn--add { flex: 1; padding: 17px; background: var(--brand); color: var(--bg); font-weight: 600; text-align: center; border: 0; }
.buy .single_add_to_cart_button.disabled, .buy .single_add_to_cart_button[disabled] { opacity: .5; cursor: not-allowed; }
.wish { padding: 17px 22px; border: 2px solid var(--dark); color: var(--dark); font-weight: 600; background: transparent; font-size: 18px; line-height: 1; }
.wish.is-on { background: var(--dark); color: var(--bg); }
.pinfo__facts { display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: var(--muted); border-top: 2px solid var(--line); padding-top: 18px; }
.pinfo__stock { font-size: 13px; color: var(--muted); margin-top: -10px; margin-bottom: 16px; }
.pinfo__stock.is-out { color: var(--brand); font-weight: 600; }
.woocommerce-variation.single_variation { display: none; }
.pdetails { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.pdetails h2 { font: 26px var(--serif); margin-bottom: 14px; }
.specs { font-size: 15px; color: var(--dark); }
.specs__row { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.specs__row:last-child { border-bottom: 0; }
.specs__row strong { text-align: right; }
.reviews { display: flex; flex-direction: column; gap: 12px; }
.review { background: var(--white); padding: 18px; border-left: 6px solid var(--brand); }
.review .stars { font-size: 15px; }
.review p { margin: 8px 0 6px; font-size: 15px; line-height: 1.55; color: var(--dark); }
.review span { font-size: 13px; color: var(--muted); font-weight: 600; }
.review-form { background: var(--white); padding: 18px; border: 2px solid var(--line); margin-top: 12px; }
.review-form .comment-reply-title { font: 20px var(--serif); display: block; margin-bottom: 10px; color: var(--brand); }
.review-form label { display: block; font-size: 13px; font-weight: 600; color: var(--dark); margin-bottom: 6px; }
.review-form textarea, .review-form input[type=text], .review-form input[type=email] { width: 100%; padding: 12px 14px; border: 1.5px solid var(--line); background: var(--bg); font-size: 14px; margin-bottom: 12px; }
.review-form .stars a { text-decoration: none; }
.review-form .submit { padding: 12px 20px; background: var(--brand); color: var(--bg); border: 0; font-weight: 600; }
.review-form p.stars { margin: 0 0 12px; }
.review-form .comment-form-cookies-consent { display: flex; gap: 8px; align-items: center; font-size: 13px; margin-bottom: 12px; }
.review-form .comment-form-cookies-consent label { margin: 0; font-weight: 400; }
.sec__title--sm { font: 28px var(--serif); margin-bottom: 18px; }
@media (max-width: 1199px) {
  .product-top { gap: 28px; }
  .pmedia__main { aspect-ratio: 1; height: auto; }
  .pmedia__thumbs { gap: 12px; margin-top: 12px; }
  .pinfo .eyebrow { font-size: 13px; margin-bottom: 8px; }
  .pinfo__title { font-size: 42px; margin-bottom: 10px; }
  .pinfo__rating { margin-bottom: 12px; font-size: 13px; }
  .pinfo__price { font-size: 30px; margin-bottom: 14px; }
  .pinfo__desc { font-size: 16px; margin-bottom: 18px; }
  .optgroup { margin-bottom: 14px; }
  .optgroup__label { font-size: 13px; margin-bottom: 6px; }
  .opts { gap: 8px; }
  .opt:not(.opt--swatch) { flex: 1; text-align: center; padding: 13px 10px; }
  .opt--swatch { width: 42px; height: 42px; flex: none; }
  .buy { gap: 10px; margin-bottom: 0; }
  .buy .single_add_to_cart_button { padding: 16px; }
  .wish { padding: 16px 20px; }
  .pinfo__facts { margin-top: 18px; padding-top: 16px; gap: 7px; }
  .pdetails { display: block; }
  .pdetails h2 { font-size: 23px; margin-bottom: 12px; }
  .pdetails > div + div { margin-top: 22px; }
  .specs { font-size: 14px; }
  .specs__row { padding: 10px 0; }
  .sec__title--sm { font-size: 26px; margin-bottom: 14px; }
}
@media (max-width: 759px) {
  .product-top { display: block; }
  .pinfo { margin-top: 20px; }
  .pmedia__main { aspect-ratio: 1; height: auto; }
  .pinfo__title { font-size: 40px; }
  .pinfo__price { font-size: 26px; }
  .sec__title--sm { font-size: 22px; }
}

/* =========================================================================
   Cart
   ====================================================================== */
.cartpage { padding: 40px var(--pad) 44px; display: grid; grid-template-columns: 1.35fr .65fr; gap: 36px; }
.cartpage__title { font: 48px/1 var(--serif); margin-bottom: 22px; }
.cartlist { border-top: 2px solid var(--brand); }
.citem { display: grid; grid-template-columns: 110px 1fr auto auto; gap: 22px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }
.citem__img { height: 100px; width: 110px; overflow: hidden; background: var(--sand-2) repeating-linear-gradient(45deg, rgba(143, 31, 20, .06) 0 10px, transparent 10px 20px); }
.citem__img img { width: 100%; height: 100%; object-fit: cover; }
.citem__name { font: 22px var(--serif); text-decoration: none; display: block; }
.citem__vars { font-size: 14px; color: var(--muted); margin-top: 3px; }
.citem__remove { display: inline-block; margin-top: 8px; font-size: 13px; color: var(--brand); font-weight: 600; text-decoration: underline; }
.citem__price { font-size: 18px; font-weight: 600; }
.citem__price .amount { font-weight: 600; }
.qty { display: flex; align-items: center; border: 2px solid var(--line); }
.qty button { padding: 10px 14px; font-weight: 600; background: none; border: 0; }
.qty .qty-input { width: 34px; padding: 10px 0; text-align: center; border: 0; background: transparent; font-weight: 600; -moz-appearance: textfield; }
.qty .qty-input::-webkit-inner-spin-button, .qty .qty-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.treat { margin-top: 26px; padding: 24px; background: var(--white); border: 2px solid var(--line); }
.treat__title { font: 22px var(--serif); margin-bottom: 12px; }
.treat__row { display: flex; gap: 16px; align-items: center; }
.treat__img { width: 80px; height: 80px; flex: none; overflow: hidden; background: var(--sand-2) repeating-linear-gradient(45deg, rgba(143, 31, 20, .06) 0 10px, transparent 10px 20px); }
.treat__img img { width: 100%; height: 100%; object-fit: cover; }
.treat__body { flex: 1; }
.treat__name { font-weight: 600; font-size: 16px; color: var(--dark); }
.treat__sub { font-size: 14px; color: var(--muted); }
.treat__btn { padding: 12px 20px; background: var(--brand); color: var(--bg); font-weight: 600; font-size: 14px; text-decoration: none; white-space: nowrap; }
.summary { align-self: start; background: var(--dark); color: var(--bg); padding: 30px; }
.summary__title { font: 28px var(--serif); margin-bottom: 18px; }
.summary__rows { font-size: 15px; }
.summary__row { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; }
.summary__row span:first-child { opacity: .85; }
.summary__row--total { border-top: 1px solid var(--cream-line-2); margin-top: 8px; }
.summary__row--total strong { font: 24px var(--serif); }
.summary__row .amount { font-weight: 600; }
.summary__row--total .amount { font: 24px var(--serif); }
.summary__row .woocommerce-remove-coupon { font-size: 13px; margin-left: 6px; color: var(--rose); }
.coupon { margin-top: 18px; display: flex; gap: 8px; }
.coupon input { flex: 1; padding: 13px 14px; background: var(--bg); color: var(--dark); border: 0; font-size: 13px; min-width: 0; }
.coupon input::placeholder { color: var(--ph); }
.coupon button { padding: 13px 16px; border: 1.5px solid var(--bg); font-weight: 600; font-size: 13px; background: transparent; color: var(--bg); }
.summary__cta { display: block; margin-top: 16px; padding: 17px; background: var(--brand); color: var(--bg); font-weight: 600; text-align: center; text-decoration: none; border: 0; width: 100%; }
.summary__note { margin-top: 16px; font-size: 13px; opacity: .8; line-height: 1.6; }
.summary ul { margin: 0; padding: 0; list-style: none; }
.summary .woocommerce-shipping-methods li { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; font-size: 14px; }
.summary .woocommerce-shipping-methods input { accent-color: var(--brand); margin-right: 8px; }
.summary .woocommerce-shipping-methods label { flex: 1; display: flex; justify-content: space-between; cursor: pointer; }
.summary .woocommerce-shipping-destination, .summary .woocommerce-shipping-calculator { display: none; }
.cart-empty-box { padding: 60px var(--pad); }
.cart-empty-box .cartpage__title { margin-bottom: 12px; }
.cart-empty-box p { font-size: 16px; color: var(--muted); margin-bottom: 22px; }
.cart-empty-box .btn { margin-right: 10px; }
@media (max-width: 1199px) {
  .cartpage { display: block; padding: 26px var(--pad) 24px; }
  .cartpage__title { font-size: 40px; margin-bottom: 18px; }
  .citem { grid-template-columns: 90px 1fr auto auto; gap: 14px; padding: 16px 0; }
  .citem__img { height: 84px; width: 90px; }
  .citem__name { font-size: 20px; }
  .citem__vars { font-size: 13px; }
  .citem__remove { font-size: 13px; margin-top: 6px; }
  .qty button { padding: 9px 12px; }
  .qty .qty-input { width: 26px; padding: 9px 0; }
  .citem__price { font-size: 17px; }
  .treat { margin-top: 20px; padding: 20px; }
  .treat__title { font-size: 20px; margin-bottom: 10px; }
  .treat__img { width: 64px; height: 64px; }
  .treat__name { font-size: 15px; }
  .treat__sub { font-size: 13px; }
  .treat__btn { padding: 11px 16px; }
  .summary { margin-top: 20px; padding: 24px; }
  .summary__title { font-size: 24px; margin-bottom: 14px; }
  .summary__row { padding: 8px 0; }
  .summary__row--total strong, .summary__row--total .amount { font-size: 22px; }
  .summary__cta { padding: 16px; }
  .summary__note { margin-top: 12px; font-size: 13px; }
}
@media (max-width: 759px) {
  .cartpage { padding: 20px var(--pad) 24px; }
  .cartpage__title { font-size: 40px; }
  .citem { grid-template-columns: 70px 1fr auto; }
  .citem__img { height: 66px; width: 70px; }
  .citem__name { font-size: 18px; }
  .citem__price { grid-column: 2 / -1; font-size: 15px; margin-top: -8px; }
  .coupon { display: none; }
}

/* =========================================================================
   Checkout
   ====================================================================== */
.stepper { padding: 34px var(--pad) 24px; display: flex; align-items: center; gap: 16px; font-size: 14px; font-weight: 600; flex-wrap: wrap; }
.step { padding: 11px 20px; border: 2px solid var(--line); color: var(--muted); }
.step.is-active { background: var(--brand); color: var(--bg); border-color: var(--brand); }
.step.is-done { border-color: var(--brand); color: var(--brand); }
.stepper__line { flex: 0 0 30px; height: 2px; background: var(--line); }
.checkout { padding: 0 var(--pad) 44px; display: grid; grid-template-columns: 1.3fr .7fr; gap: 36px; align-items: start; }
.checkout__title { font: 44px/1 var(--serif); margin-bottom: 20px; }
.checkout__h2 { font: 30px var(--serif); margin: 0 0 14px; }
.fieldsbox { background: var(--white); border: 2px solid var(--line); padding: 28px 30px; margin-bottom: 20px; }
.fieldsbox .woocommerce-billing-fields h3, .fieldsbox .woocommerce-additional-fields h3 { display: none; }
.fieldsbox .woocommerce-billing-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fieldsbox .form-row { margin: 0; padding: 0; width: auto; float: none; }
.fieldsbox .form-row.mc-country { display: none; }
.fieldsbox label { display: block; font-size: 13px; font-weight: 600; color: var(--dark); margin-bottom: 6px; }
.fieldsbox label .required { color: var(--brand); text-decoration: none; }
.fieldsbox label .optional { font-weight: 400; color: var(--muted); }
.inp, .fieldsbox input.input-text, .fieldsbox textarea, .fieldsbox select { width: 100%; padding: 14px 16px; background: var(--bg); border: 1.5px solid var(--line); font-size: 14px; color: var(--dark); }
.fieldsbox input::placeholder, .fieldsbox textarea::placeholder { color: var(--ph); }
.fieldsbox .form-row.is-invalid input, .fieldsbox .form-row.woocommerce-invalid input { border-color: var(--brand); }
.fieldsbox .woocommerce-additional-fields { margin-top: 16px; }
.fieldsbox .woocommerce-additional-fields textarea { min-height: 80px; }
.fieldsbox .woocommerce-input-wrapper { display: block; }
.fieldsbox .select2-container .select2-selection--single { height: 46px; border: 1.5px solid var(--line); background: var(--bg); }
.shipopts { display: flex; flex-direction: column; gap: 12px; }
.shipopt { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 20px 24px; background: var(--white); border: 2px solid var(--line); cursor: pointer; }
.shipopt.is-active { border-color: var(--brand); }
.shipopt input { position: absolute; opacity: 0; }
.shipopt__name { font-weight: 600; font-size: 17px; color: var(--dark); }
.shipopt__sub { font-size: 14px; color: var(--muted); margin-top: 3px; }
.shipopt__price { color: var(--brand); font-weight: 600; }
.shipopt__price .amount { color: var(--brand); }
.checkout__actions { display: flex; gap: 14px; align-items: center; margin-top: 24px; flex-wrap: wrap; }
.checkout__actions .btn { padding: 17px 32px; }
.checkout__actions a { font-size: 14px; color: var(--muted); }
.payopts { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.payopt { padding: 20px 24px; background: var(--white); border: 2px solid var(--line); }
.payopt.is-active { border-color: var(--brand); }
.payopt input.input-radio { position: absolute; opacity: 0; }
.payopt > label { display: flex; justify-content: space-between; align-items: center; font-weight: 600; font-size: 17px; color: var(--dark); cursor: pointer; }
.payopt .payment_box { font-size: 14px; color: var(--muted); margin-top: 8px; }
.payopt .payment_box p { margin: 0; }
.payopt__tag { font-size: 13px; color: var(--brand); font-weight: 600; }
.terms { margin-top: 18px; font-size: 14px; color: var(--muted); }
.terms a { color: var(--brand); }
.woocommerce-privacy-policy-text { display: none; }
.checkout .woocommerce-terms-and-conditions-wrapper { margin-top: 16px; font-size: 13px; color: var(--muted); }
.checkout .form-row.validate-required input[type=checkbox] { margin-right: 6px; }
.osum { background: var(--dark); color: var(--bg); padding: 30px; align-self: start; }
.osum__title { font: 28px var(--serif); margin-bottom: 16px; }
.osum__items { display: flex; flex-direction: column; gap: 14px; font-size: 14px; }
.osum__item { display: flex; gap: 12px; align-items: center; }
.osum__img { width: 52px; height: 52px; flex: none; overflow: hidden; background: var(--brown) repeating-linear-gradient(45deg, rgba(246, 241, 231, .08) 0 8px, transparent 8px 16px); }
.osum__img img { width: 100%; height: 100%; object-fit: cover; }
.osum__item > span { flex: 1; opacity: .9; }
.osum__item strong .amount { font-weight: 600; }
.osum__totals { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--cream-line-2); font-size: 15px; }
.osum__row { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; }
.osum__row span:first-child { opacity: .85; }
.osum__row--total { border-top: 1px solid var(--cream-line-2); margin-top: 8px; padding-top: 10px; }
.osum__row--total strong, .osum__row--total .amount { font: 24px var(--serif); }
.osum__note { margin-top: 16px; font-size: 13px; opacity: .8; line-height: 1.6; }
.checkout .blockUI.blockOverlay { background: rgba(246, 241, 231, .6) !important; }
@media (max-width: 1199px) {
  .stepper { padding: 24px var(--pad) 16px; gap: 10px; font-size: 13px; }
  .step { padding: 10px 16px; }
  .stepper__line { display: none; }
  .checkout { display: block; padding: 0 var(--pad) 24px; }
  .checkout__title { font-size: 36px; margin-bottom: 16px; }
  .checkout__h2 { font-size: 24px; margin-bottom: 12px; }
  .fieldsbox { padding: 22px; margin-bottom: 16px; }
  .fieldsbox .woocommerce-billing-fields__field-wrapper { gap: 12px; }
  .fieldsbox label { font-size: 13px; margin-bottom: 5px; }
  .inp, .fieldsbox input.input-text, .fieldsbox textarea { padding: 13px 15px; }
  .osum { margin-top: 24px; padding: 24px; }
  .osum__title { font-size: 24px; margin-bottom: 14px; }
  .osum__img { width: 46px; height: 46px; }
  .osum__row--total strong, .osum__row--total .amount { font-size: 22px; }
}
@media (max-width: 759px) {
  .stepper { padding: 18px var(--pad) 16px; }
  .checkout__title { font-size: 40px; }
  .fieldsbox .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr; }
}

/* Thank you */
.thanks-hero { background: var(--brand); color: var(--bg); padding: 48px 44px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; }
.thanks-hero__title { font: 58px/.98 var(--serif); margin-bottom: 14px; }
.thanks-hero__lead { font-size: 17px; line-height: 1.6; opacity: .95; max-width: 520px; margin-bottom: 22px; }
.thanks-hero__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.thanks-hero__ph { height: 210px; }
.thanks { display: grid; grid-template-columns: 1.3fr .7fr; gap: 36px; }
.recap { background: var(--white); border: 2px solid var(--line); padding: 28px 30px; }
.recap__title { font: 26px var(--serif); margin-bottom: 16px; }
.recap__item { display: grid; grid-template-columns: 80px 1fr auto; gap: 18px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.recap__img { height: 70px; overflow: hidden; background: var(--sand-2) repeating-linear-gradient(45deg, rgba(143, 31, 20, .06) 0 10px, transparent 10px 20px); }
.recap__img img { width: 100%; height: 100%; object-fit: cover; }
.recap__name { font: 20px var(--serif); }
.recap__sub { font-size: 14px; color: var(--muted); }
.recap__row { display: flex; justify-content: space-between; padding: 12px 0 0; font-size: 15px; color: var(--dark); }
.recap__row--total { padding-top: 16px; font-size: 17px; }
.recap__row--total strong, .recap__row--total .amount { font: 26px var(--serif); color: var(--brand); }
.thanks__aside { display: flex; flex-direction: column; gap: 16px; }
.infocard { padding: 26px; }
.infocard--dark { background: var(--dark); color: var(--bg); }
.infocard--light { background: var(--white); border: 2px solid var(--line); color: var(--text-2); }
.infocard__title { font: 24px var(--serif); margin-bottom: 10px; }
.infocard--light .infocard__title { color: var(--brand); }
.infocard p { font-size: 15px; line-height: 1.7; }
.infocard--dark p { opacity: .88; }
.infocard__meta { margin-top: 12px; font-size: 14px; opacity: .8; }
@media (max-width: 1199px) {
  .thanks-hero { display: block; padding: 32px 28px; }
  .thanks-hero__title { font-size: 58px; }
  .thanks-hero__lead { font-size: 16px; margin-bottom: 20px; }
  .thanks-hero__actions .btn { padding: 14px 24px; font-size: 15px; }
  .thanks-hero__ph { display: none; }
  .thanks { display: block; }
  .recap { padding: 22px; }
  .recap__title { font-size: 22px; margin-bottom: 12px; }
  .recap__item { grid-template-columns: 64px 1fr auto; gap: 14px; padding: 12px 0; }
  .recap__img { height: 58px; }
  .recap__name { font-size: 18px; }
  .recap__sub { font-size: 13px; }
  .recap__row--total { font-size: 16px; padding-top: 14px; }
  .recap__row--total strong, .recap__row--total .amount { font-size: 22px; }
  .thanks__aside { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 22px; }
  .infocard { padding: 22px; }
  .infocard__title { font-size: 21px; margin-bottom: 8px; }
  .infocard p { font-size: 14px; }
  .infocard__meta { margin-top: 10px; font-size: 13px; }
  .thanks-more { display: none; }
}
@media (max-width: 759px) {
  .thanks-hero { padding: 32px 28px; }
  .thanks__aside { grid-template-columns: 1fr; }
}

/* =========================================================================
   Search
   ====================================================================== */
.searchbar { padding: 36px var(--pad) 24px; }
.searchbar form { display: flex; gap: 12px; }
.searchbar input { flex: 1; padding: 18px 22px; background: var(--white); border: 2px solid var(--brand); font-size: 17px; color: var(--dark); min-width: 0; }
.searchbar button { padding: 18px 30px; background: var(--brand); color: var(--bg); border: 0; font-weight: 600; }
.searchbar__meta { margin-top: 14px; font-size: 14px; color: var(--muted); }
.searchbar__meta a { color: var(--brand); font-weight: 600; text-decoration: none; }
.guides { margin: 0 var(--pad) 44px; padding: 26px 30px; background: var(--white); border: 2px solid var(--line); }
.guides__title { font: 24px var(--serif); margin-bottom: 10px; }
.linkrows { font-size: 15px; color: var(--dark); }
.linkrow { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--line); text-decoration: none; }
.linkrow:last-child { border-bottom: 0; }
.linkrow strong { color: var(--brand); }
@media (max-width: 1199px) {
  .searchbar { padding: 26px var(--pad) 16px; }
  .searchbar form { gap: 10px; }
  .searchbar input { padding: 15px 18px; font-size: 16px; }
  .searchbar button { padding: 15px 22px; }
  .searchbar__meta { margin-top: 12px; font-size: 13px; }
  .searchbar__clear { display: none; }
  .guides { padding: 20px; margin-bottom: 24px; }
  .guides__title { font-size: 22px; margin-bottom: 8px; }
  .linkrows { font-size: 14px; }
  .linkrow { padding: 10px 0; }
}
@media (max-width: 759px) { .searchbar { padding: 20px var(--pad) 16px; } }

/* =========================================================================
   Editorial pages (À propos, Contact, Livraison, FAQ, Guide, CGV, Confidentialité)
   ====================================================================== */
.pagehero { background: var(--brand); color: var(--bg); padding: 44px; }
.pagehero--split { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; }
.pagehero--tall { padding: 52px 44px; }
.pagehero__title { font: 58px/.98 var(--serif); margin-bottom: 14px; max-width: 820px; }
.pagehero--tall .pagehero__title { font-size: 66px; margin-bottom: 18px; }
.pagehero--split .pagehero__title { font-size: 60px; }
.pagehero__lead { font-size: 17px; line-height: 1.6; opacity: .95; max-width: 640px; }
.pagehero--tall .pagehero__lead { font-size: 17px; line-height: 1.65; }
.pagehero--split .pagehero__lead { max-width: 520px; }
.pagehero__ph { height: 200px; }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.two .ph { height: 340px; }
.steps3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.stepcard { background: var(--white); padding: 26px; }
.stepcard__n { font: 44px/1 var(--serif); }
.stepcard__t { font-size: 19px; font-weight: 600; margin: 8px 0 6px; color: var(--dark); }
.stepcard p { font-size: 15px; line-height: 1.6; color: var(--muted); }
.stats--about .stat__n { font-size: 26px; }
.cta { margin: 0 var(--pad) 44px; background: var(--dark); color: var(--bg); padding: 40px 44px; display: flex; justify-content: space-between; align-items: center; gap: 36px; }
.cta h3 { font: 32px var(--serif); margin-bottom: 8px; }
.cta p { font-size: 16px; opacity: .88; }
.cta .btn { white-space: nowrap; }
.cta--sm { padding: 28px 32px; }
.cta--sm h3 { font-size: 28px; margin-bottom: 6px; }
.cta--sm p { font-size: 15px; opacity: .86; }
/* Contact */
.contact { display: grid; grid-template-columns: 1.2fr .8fr; gap: 36px; }
.cform { background: var(--white); padding: 34px 36px; border: 2px solid var(--line); }
.cform h2 { font: 30px var(--serif); margin-bottom: 20px; }
.frow2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.fld { margin-bottom: 16px; }
.fld label, .fld .lbl { display: block; font-size: 13px; font-weight: 600; color: var(--dark); margin-bottom: 6px; }
.fld label small, .fld .lbl small { font-weight: 400; color: var(--muted); font-size: 13px; }
.fld input, .fld textarea { width: 100%; padding: 14px 16px; background: var(--bg); border: 1.5px solid var(--line); font-size: 14px; color: var(--dark); }
.fld input::placeholder, .fld textarea::placeholder { color: var(--ph); }
.fld textarea { min-height: 120px; resize: vertical; }
.frow2 .fld { margin: 0; }
.cform__actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.cform__hint { font-size: 13px; color: var(--muted); }
.cform__ok { padding: 14px 18px; background: var(--bg); border: 2px solid var(--brand); color: var(--dark); font-size: 14px; margin-bottom: 18px; }
.contact__aside { display: flex; flex-direction: column; gap: 16px; }
.acard { padding: 28px; }
.acard--dark { background: var(--dark); color: var(--bg); }
.acard--light { background: var(--white); border: 2px solid var(--line); }
.acard__title { font: 26px var(--serif); margin-bottom: 14px; }
.acard--light .acard__title { margin-bottom: 12px; }
.acard__big { font-size: 20px; font-weight: 600; margin-bottom: 6px; }
.acard--dark p { font-size: 14px; opacity: .85; line-height: 1.6; }
.acard__addr { font-size: 15px; line-height: 1.7; color: var(--dark); }
.acard__hours { font-size: 14px; color: var(--muted); margin-top: 10px; line-height: 1.6; }
.acard .ph { height: 150px; margin-top: 16px; }
/* Livraison */
.stats--ship .stat { padding: 26px; }
.stats--ship .stat__n { font-size: 26px; }
.stats--ship .stat__l { font-size: 15px; margin-top: 6px; }
.stats--3 { grid-template-columns: repeat(3, 1fr); }
.two-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.two-cols h2 { font: 30px var(--serif); margin-bottom: 16px; }
.numsteps { display: flex; flex-direction: column; gap: 14px; }
.numstep { display: flex; gap: 14px; align-items: flex-start; }
.numstep span { min-width: 34px; height: 34px; background: var(--brand); color: var(--bg); display: flex; align-items: center; justify-content: center; font-weight: 600; }
.numstep p { font-size: 15px; line-height: 1.65; color: var(--text-2); }
.callout { margin: 0 var(--pad) 44px; padding: 28px 32px; background: var(--white); border: 2px solid var(--line); font-size: 15px; line-height: 1.7; color: var(--text-2); }
.callout strong { color: var(--brand); }
/* FAQ */
.faq { display: grid; grid-template-columns: 1.4fr .6fr; gap: 36px; }
.faq__list { border-top: 2px solid var(--brand); }
.faq__item { padding: 22px 0; border-bottom: 1px solid var(--line); }
.faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; cursor: pointer; list-style: none; font: 24px var(--serif); }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary span { font: 22px var(--sans); color: var(--brand); flex: none; }
.faq__item[open] summary span::before { content: "−"; }
.faq__item:not([open]) summary span::before { content: "+"; }
.faq__a { margin: 12px 0 0; font-size: 15px; line-height: 1.7; color: var(--text-2); max-width: 700px; }
.faq__a p { margin: 0 0 8px; }
.faq__aside { align-self: start; background: var(--dark); color: var(--bg); padding: 28px; }
.faq__aside .acard__title { margin-bottom: 12px; }
.faq__aside p { font-size: 15px; line-height: 1.7; opacity: .86; margin-bottom: 18px; }
.faq__aside .btn { display: block; padding: 15px; }
.faq__aside small { display: block; margin-top: 14px; font-size: 14px; opacity: .82; }
/* Guide */
.guide-top { display: grid; grid-template-columns: .9fr 1.1fr; gap: 36px; align-items: start; }
.guide-top .ph { height: 340px; }
.guide-top h2, .sizes h2 { font: 30px var(--serif); margin-bottom: 16px; }
.table { background: var(--white); border: 2px solid var(--line); }
.table__row { display: grid; grid-template-columns: repeat(4, 1fr); font-size: 14px; color: var(--dark); border-bottom: 1px solid var(--line); }
.table__row:last-child { border-bottom: 0; }
.table__row span { padding: 12px 14px; }
.table__row span:first-child { font-weight: 600; }
.table__head { background: var(--brand); color: var(--bg); font-size: 13px; font-weight: 600; border-bottom: 0; }
.sizes .grid--4 > div { background: var(--white); border: 2px solid var(--line); padding: 22px; }
.size__t { font: 24px var(--serif); }
.size__d { font-size: 15px; font-weight: 600; color: var(--dark); margin-top: 6px; }
.size__w { font-size: 14px; color: var(--muted); margin-top: 2px; }
/* Legal */
.legal { display: grid; grid-template-columns: 260px 1fr; gap: 40px; }
.toc { align-self: start; background: var(--white); border: 2px solid var(--line); padding: 22px; position: sticky; top: 20px; }
.toc__title { font: 20px var(--serif); margin-bottom: 12px; }
.toc a { display: block; font-size: 14px; color: var(--dark); text-decoration: none; padding: 5px 0; }
.toc__date { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.legal__body { max-width: 820px; }
.legal__sec { margin-bottom: 30px; }
.legal__sec h2 { font: 28px var(--serif); margin-bottom: 10px; }
.legal__body p, .legal__body li { font-size: 17px; line-height: 1.75; color: var(--text-2); margin: 0 0 12px; }
.legal__body ul { padding-left: 20px; }
.legal__body h3 { font: 22px var(--serif); margin: 18px 0 8px; color: var(--brand); }
.legal__body a { color: var(--brand); }
.legal__body .ml-kicker { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--muted); }
.legal__body table { width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: 16px; }
.legal__body td, .legal__body th { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.legal__contact { padding: 24px 28px; background: var(--white); border: 2px solid var(--brand); font-size: 15px; line-height: 1.7; color: var(--text-2); }
.legal__contact strong { color: var(--brand); }
/* Generic page content */
.prose { max-width: 820px; }
.prose p, .prose li { font-size: 17px; line-height: 1.75; color: var(--text-2); margin: 0 0 12px; }
.prose h2 { font: 28px var(--serif); margin: 26px 0 10px; }
.prose h3 { font: 22px var(--serif); margin: 18px 0 8px; }
.prose a { color: var(--brand); }
.prose .button { display: inline-block; padding: 12px 20px; background: var(--brand); color: var(--bg); text-decoration: none; font-weight: 600; font-size: 14px; }
.prose .ml-page-lead { font-size: 18px; color: var(--dark); }
.prose .ml-kicker { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--muted); margin-bottom: 4px; }
.prose .ml-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 20px 0; }
.prose .ml-info-grid article { background: var(--white); padding: 20px; }
.prose .ml-info-grid article span { font: 32px var(--serif); color: var(--brand); display: block; }
.prose .ml-info-grid h2 { font-size: 20px; margin: 6px 0; }
.prose .ml-page-callout { background: var(--dark); color: var(--bg); padding: 28px; margin: 24px 0; }
.prose .ml-page-callout h2, .prose .ml-page-callout p { color: inherit; }
.prose .ml-page-callout .button { background: var(--bg); color: var(--dark); }
.prose details { padding: 14px 0; border-bottom: 1px solid var(--line); }
.prose details summary { font: 20px var(--serif); cursor: pointer; display: flex; justify-content: space-between; }
/* Order tracking */
.track-form { background: var(--white); border: 2px solid var(--line); padding: 28px 30px; max-width: 640px; }
.track-form p { margin-bottom: 14px; font-size: 14px; color: var(--muted); }
.track-form .form-row { margin: 0 0 14px; }
.track-form label { display: block; font-size: 13px; font-weight: 600; color: var(--dark); margin-bottom: 6px; }
.track-form input.input-text { width: 100%; padding: 14px 16px; background: var(--bg); border: 1.5px solid var(--line); font-size: 14px; }
.track-form .button { padding: 14px 26px; background: var(--brand); color: var(--bg); border: 0; font-weight: 600; }
.track-result { background: var(--white); border: 2px solid var(--line); padding: 28px 30px; }
.track-result h2 { font: 26px var(--serif); margin-bottom: 12px; }
.track-result ul { list-style: none; padding: 0; margin: 0; }
.track-result li { padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 15px; color: var(--dark); display: flex; justify-content: space-between; gap: 12px; }
.track-result .order_details, .track-result .woocommerce-order-details table { width: 100%; font-size: 14px; }
.track-result table td, .track-result table th { padding: 10px 0; border-bottom: 1px solid var(--line); text-align: left; }
.track-result .woocommerce-order-details__title, .track-result .woocommerce-column__title { font: 22px var(--serif); margin: 20px 0 8px; }
.track-result address { font-style: normal; line-height: 1.7; font-size: 14px; color: var(--text-2); }
@media (max-width: 1199px) {
  .pagehero, .pagehero--tall, .pagehero--split { display: block; padding: 32px 28px; }
  .pagehero__title, .pagehero--tall .pagehero__title, .pagehero--split .pagehero__title { font-size: 58px; }
  .pagehero__lead, .pagehero--tall .pagehero__lead { font-size: 16px; }
  .pagehero__ph { display: none; }
  .two { gap: 14px; }
  .two .ph { height: 190px; }
  .steps3 { gap: 14px; }
  .stepcard { padding: 20px; }
  .stepcard__n { font-size: 34px; }
  .stepcard__t { font-size: 17px; margin: 6px 0 4px; }
  .stepcard p { font-size: 14px; }
  .stats--about .stat__n { font-size: 19px; }
  .cta { padding: 28px; display: block; }
  .cta h3 { font-size: 26px; }
  .cta .btn { margin-top: 16px; display: inline-block; }
  .contact { display: block; }
  .cform { padding: 24px; }
  .cform h2 { font-size: 24px; margin-bottom: 16px; }
  .frow2 { gap: 12px; margin-bottom: 14px; }
  .fld { margin-bottom: 14px; }
  .fld label, .fld .lbl { font-size: 13px; margin-bottom: 5px; }
  .fld input, .fld textarea { padding: 13px 15px; }
  .fld textarea { min-height: 100px; }
  .contact__aside { margin-top: 22px; gap: 14px; }
  .acard { padding: 22px; }
  .acard__title { font-size: 22px; margin-bottom: 8px; }
  .acard__big { font-size: 19px; }
  .acard .ph { display: none; }
  .acard--rapid { display: none; }
  .stats--ship .stat { padding: 16px; }
  .stats--ship .stat__n { font-size: 19px; }
  .stats--ship .stat__l { font-size: 13px; }
  .two-cols { display: block; }
  .two-cols h2 { font-size: 24px; }
  .two-cols > div + div { margin-top: 24px; }
  .callout { padding: 20px; margin-bottom: 24px; }
  .faq { display: block; }
  .faq__item { padding: 18px 0; }
  .faq__item summary { font-size: 20px; }
  .faq__item summary span { font-size: 20px; }
  .faq__a { font-size: 14px; }
  .faq__aside { margin-top: 24px; padding: 24px; }
  .faq__aside small { display: none; }
  .guide-top { display: block; }
  .guide-top .ph { height: 200px; margin-bottom: 20px; }
  .guide-top h2, .sizes h2 { font-size: 24px; }
  .table__row span { padding: 10px; font-size: 13px; }
  .sizes .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .legal { display: block; }
  .toc { position: static; margin-bottom: 24px; }
  .toc a { display: inline-block; margin-right: 12px; }
  .legal__sec h2 { font-size: 24px; }
  .legal__body p, .legal__body li { font-size: 16px; }
  .prose .ml-info-grid { grid-template-columns: 1fr; }
}
@media (max-width: 759px) {
  .pagehero, .pagehero--tall, .pagehero--split { padding: 32px 28px; }
  .pagehero__title, .pagehero--tall .pagehero__title, .pagehero--split .pagehero__title, .thanks-hero__title { font-size: 40px; }
  .two { display: block; }
  .two .ph + .ph { margin-top: 14px; }
  .steps3 { display: block; }
  .steps3 .stepcard + .stepcard { margin-top: 14px; }
  .stats--ship { grid-template-columns: 1fr; }
  .sizes .grid--4 { grid-template-columns: 1fr 1fr; }
  .frow2 { grid-template-columns: 1fr; }
  .sec--pagehero { padding-left: 22px; padding-right: 22px; }
}

/* =========================================================================
   404
   ====================================================================== */
.nf { padding: 64px var(--pad); }
.nf__box { background: var(--brand); color: var(--bg); padding: 64px 52px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 44px; align-items: center; }
.nf__code { font: 120px/1 var(--serif); margin-bottom: 10px; }
.nf__title { font: 44px/1.04 var(--serif); margin-bottom: 14px; }
.nf__lead { font-size: 17px; line-height: 1.6; opacity: .95; max-width: 480px; margin-bottom: 24px; }
.nf__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.nf__ph { height: 280px; }
@media (max-width: 1199px) {
  .nf { padding: 26px var(--pad) 22px; }
  .nf__box { display: block; padding: 40px 32px; }
  .nf__code { font-size: 90px; }
  .nf__title { font-size: 34px; }
  .nf__ph { display: none; }
}
@media (max-width: 759px) {
  .nf { padding: 18px var(--pad) 22px; }
  .nf__box { padding: 28px 20px; }
  .nf__code { font-size: 70px; margin-bottom: 8px; }
  .nf__title { font-size: 40px; line-height: 1.06; margin-bottom: 12px; }
  .nf__lead { font-size: 15px; margin-bottom: 18px; }
  .nf__actions { display: none; }
}

/* =========================================================================
   Footer
   ====================================================================== */
.foot { background: var(--dark); color: var(--bg); }
.foot a { text-decoration: none; }
.foot__nl { padding: 40px var(--pad); display: grid; grid-template-columns: 1.1fr .9fr; gap: 44px; border-bottom: 1px solid var(--cream-line); align-items: center; }
.foot__nl-title { font: 32px var(--serif); margin-bottom: 8px; }
.foot__nl p { font-size: 15px; opacity: .85; }
.nlform { display: flex; gap: 10px; flex-wrap: wrap; position: relative; }
.nlform__input { flex: 1; padding: 15px 18px; background: var(--bg); color: var(--dark); border: 0; font-size: 14px; min-width: 0; }
.nlform__input::placeholder { color: var(--ph); }
.nlform__btn { padding: 15px 26px; background: var(--brand); color: var(--bg); font-weight: 600; font-size: 14px; white-space: nowrap; border: 0; }
.nlform__msg { flex-basis: 100%; font-size: 13px; opacity: .9; margin-top: 4px; }
.nlform__msg--err { color: var(--rose); }
.foot__cols { padding: 40px var(--pad); display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr 1.1fr; gap: 36px; }
.foot__brand { font: 26px var(--serif); margin-bottom: 12px; }
.foot__about p { font-size: 14px; line-height: 1.7; opacity: .82; margin-bottom: 14px; }
.foot__social { display: flex; gap: 8px; font-size: 13px; font-weight: 600; }
.foot__social a { padding: 9px 14px; border: 1.5px solid var(--cream-border); }
.foot__col { display: flex; flex-direction: column; gap: 7px; font-size: 14px; }
.foot__col a { opacity: .9; }
.foot__h { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; color: var(--rose); margin-bottom: 7px; }
.foot__addr { margin-top: 12px; font-size: 14px; line-height: 1.7; opacity: .82; }
.foot__col--shop { display: none; }
.foot__bar { padding: 22px var(--pad); display: flex; justify-content: space-between; align-items: center; gap: 24px; border-top: 1px solid var(--cream-line); font-size: 13px; flex-wrap: wrap; }
.foot__legal, .foot__trust { display: flex; gap: 20px; opacity: .82; align-items: center; flex-wrap: wrap; }
.foot__trust { gap: 18px; }
.foot__cards { display: flex; gap: 6px; }
.foot__cards span { padding: 6px 10px; border: 1.5px solid var(--cream-border); font-size: 13px; font-weight: 600; }
@media (max-width: 1199px) {
  .foot__nl { display: block; padding: 26px var(--pad); }
  .foot__nl-title { font-size: 24px; }
  .foot__nl p { display: none; }
  .nlform__input { padding: 14px 16px; }
  .nlform__btn { padding: 14px 22px; }
  .foot__cols { padding: 26px var(--pad); grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .foot__brand { font-size: 20px; margin-bottom: 8px; }
  .foot__about p { font-size: 13px; line-height: 1.65; margin: 0; }
  .foot__social { display: none; }
  .foot__col { font-size: 13px; }
  .foot__h { font-size: 13px; margin-bottom: 3px; }
  .foot__col--pet, .foot__col--house { display: none; }
  .foot__col--shop { display: flex; }
  .foot__addr { font-size: 13px; line-height: 1.6; }
  .foot__bar { padding: 16px var(--pad); font-size: 13px; gap: 16px; }
  .foot__trust { display: none; }
  .foot__legal { gap: 0; }
  .foot__legal a { margin-left: 6px; }
  .foot__legal a::before { content: "·"; margin-right: 6px; }
  .foot__legal a:first-of-type::before { content: "·"; }
}
@media (max-width: 759px) {
  .foot__nl { padding: 22px var(--pad); }
  .foot__nl-title { font-size: 21px; margin-bottom: 10px; }
  .foot__cols { padding: 22px var(--pad); grid-template-columns: 1fr 1fr; gap: 20px; }
  .foot__about { display: none; }
  .foot__h { font-size: 13px; }
  .foot__col--help .foot__addr { display: none; }
  .foot__col--help a:nth-of-type(3) { display: none; }
  .foot__col--shop a:nth-of-type(4) { display: none; }
  .foot__bar { flex-direction: column; align-items: flex-start; gap: 6px; }
}

/* Editorial photographs retain the mockups' responsive image containers. */
.ph.ph--photo { padding: 0; overflow: hidden; background: var(--sand); }
.ph--photo > .mc-photo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.raycard--photo { overflow: hidden; isolation: isolate; background: var(--dark); color: var(--bg); }
.raycard--photo > .raycard__image { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.raycard--photo::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(32, 25, 19, .03) 20%, rgba(32, 25, 19, .35) 52%, rgba(32, 25, 19, .82) 100%); }
.raycard--photo .raycard__title, .raycard--photo .raycard__sub { color: var(--bg); text-shadow: 0 1px 3px rgba(0, 0, 0, .2); }
.raycard--photo .raycard__sub { opacity: 1; }
.tile.tile--photo { overflow: hidden; isolation: isolate; background: var(--sand); }
.tile--photo > .tile__image { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.tile--photo::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 28%, rgba(32, 25, 19, .45) 62%, rgba(32, 25, 19, .88) 100%); }
.tile.tile--photo .tile__title, .tile.tile--photo .tile__sub { color: var(--bg); }
.ph--photo.scart__empty-ph > .mc-photo { object-fit: contain; }

/* Extras */
.woocommerce-notices-wrapper:not(:empty) { padding: 20px var(--pad) 0; }
.woocommerce-shipping-fields, .woocommerce-additional-fields > h3 { display: none; }
.checkout .woocommerce-NoticeGroup { grid-column: 1 / -1; }
.checkout .woocommerce-error, .checkout .woocommerce-message, .checkout .woocommerce-info { margin-bottom: 20px; }
.checkout .form-row.place-order { margin-top: 18px; }
.checkout .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
.checkout .woocommerce-terms-and-conditions-wrapper label { display: inline; font-weight: 400; color: var(--muted); }
.checkout .woocommerce-terms-and-conditions-wrapper .required { color: var(--brand); text-decoration: none; }
.checkout .woocommerce-terms-and-conditions { display: none !important; }
.checkout .woocommerce-terms-and-conditions-link { color: var(--brand); }
.woocommerce-checkout .blockOverlay { opacity: .4 !important; }
.mc-review-form .comment-form-rating { margin-bottom: 12px; }
.mc-review-form select.inp { width: 100%; padding: 12px 14px; border: 1.5px solid var(--line); background: var(--bg); }
.grid--menu .pcard:nth-child(4) { display: block; }
@media (min-width: 760px) and (max-width: 1199px) { .grid--menu .pcard:nth-child(4) { display: none; } }
.sortform--m { display: none; }
@media (max-width: 1199px) { .sortform--m { display: inline-flex; margin-bottom: 14px; } .subcol-bar .sortform--boxed { display: none; } }
.grid > *, .hero > *, .hero__side > *, .mosaic > *, .stats > *, .quotes > *, .foot__cols > *, .collection > *, .product-top > *, .pdetails > *, .cartpage > *, .checkout > *, .thanks > *, .contact > *, .two > *, .two-cols > *, .faq > *, .legal > *, .steps3 > *, .guide-top > * { min-width: 0; }
img { min-width: 0; }
html, body { overflow-x: hidden; }
/* Review stars (WooCommerce rating widget) */
.review-form p.stars { display: flex; gap: 2px; }
.review-form p.stars span { display: inline-flex; }
.review-form p.stars a { font-size: 0; color: var(--brand); text-decoration: none; padding: 0 1px; }
.review-form p.stars a::before { content: "☆"; font-size: 22px; line-height: 1; }
.review-form p.stars:hover a::before, .review-form p.stars.selected a.active::before, .review-form p.stars.selected a:not(.active)::before { content: "★"; }
.review-form p.stars a:hover ~ a::before, .review-form p.stars.selected a.active ~ a::before { content: "☆"; }
.review-form select#rating { display: none; }
.variations { position: absolute; width: 1px; height: 1px; overflow: hidden; }
#billing_country_field, .fieldsbox .form-row.mc-country { display: none !important; }
.fieldsbox .woocommerce-billing-fields__field-wrapper .form-row.form-row-wide { width: auto; }
#billing_first_name_field { order: 1; } #billing_last_name_field { order: 2; } #billing_address_1_field { order: 3; } #billing_address_2_field { order: 4; } #billing_postcode_field { order: 5; } #billing_city_field { order: 6; } #billing_phone_field { order: 7; } #billing_email_field { order: 8; }
/* Fluid display sizes between breakpoints */
@media (min-width: 1200px) {
  .hero__title { font-size: clamp(56px, 6.25vw, 80px); }
  .colhero__title, .colhero--sub .colhero__title { font-size: clamp(46px, 4.8vw, 62px); }
  .pagehero__title, .pagehero--split .pagehero__title { font-size: clamp(44px, 4.6vw, 60px); }
  .pagehero--tall .pagehero__title { font-size: clamp(48px, 5.2vw, 66px); }
  .thanks-hero__title { font-size: clamp(44px, 4.5vw, 58px); }
  .nf__code { font-size: clamp(90px, 9.4vw, 120px); }
  .pinfo__title { font-size: clamp(40px, 4vw, 52px); }
  .raycard__title { font-size: clamp(34px, 3.3vw, 42px); }
}
@media (min-width: 760px) and (max-width: 1199px) {
  .hero__title, .colhero__title, .pagehero__title { font-size: clamp(44px, 6.2vw, 58px); }
}
@media (max-width: 380px) {
  .hero__title, .colhero__title, .pagehero__title, .pagehero--tall .pagehero__title { font-size: 40px; }
  .pinfo__title { font-size: 40px; }
  .nav__brand { font-size: 18px; }
}


/* =========================================================================
   Règles d'intégration (maquette 21)
   ====================================================================== */
/* Conteneur : 1280 px max, centré ; les marges crème grandissent au-delà. */
.main { width: 100%; max-width: 1280px; margin-left: auto; margin-right: auto; }
.foot__nl, .foot__cols, .foot__bar { max-width: 1280px; margin-left: auto; margin-right: auto; }
.woocommerce-notices-wrapper, .notices { max-width: 1280px; margin-left: auto; margin-right: auto; }
/* Fiche produit : colonne droite sticky, vignettes toujours dans la colonne de l'image */
@media (min-width: 1200px) {
  .pinfo { position: sticky; top: 100px; }
}
.pmedia__main { max-width: 100%; }
.pmedia__thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
/* Photo de collection : 4:3 */
.colhero__ph, .colhero--sub .colhero__ph { height: auto; aspect-ratio: 4 / 3; }
/* Corps de texte : 17 / 16 / 15 */
body { font-size: 17px; }
@media (max-width: 1199px) { body { font-size: 16px; } }
@media (max-width: 759px) {
  body { font-size: 15px; }
  /* Boutons pleine largeur sur mobile */
  .btn, .hero__actions .btn, .thanks-hero__actions .btn, .nf__actions .btn, .checkout__actions .btn, .cform__actions .btn, .cta .btn, .filters__actions .btn, .scart__empty .btn { display: block; width: 100%; }
  .hero__actions, .thanks-hero__actions, .nf__actions, .checkout__actions, .cform__actions { flex-direction: column; align-items: stretch; }
  .cta .btn { margin-top: 16px; }
  .buy .single_add_to_cart_button { width: auto; }
}
