/*
Theme Name: French Pharmacy
Theme URI: https://french-pharmacy.fr
Author: French Pharmacy
Author URI: https://french-pharmacy.fr
Description: Elegant French pharmacy theme for international clientele.
Version: 8.3.0
Text Domain: french-pharmacy
*/

/* =============================================
   CSS VARIABLES
   ============================================= */
:root {
  --cream:       #F8F4EE;
  --ivory:       #FDF9F3;
  --gold:        #B8965A;
  --gold-light:  #D4AF6E;
  --gold-dark:   #9A7A3C;
  --green:       #2E4A3E;
  --green-mid:   #3D6455;
  --green-light: #C8D9CC;
  --charcoal:    #1A1A1A;
  --slate:       #4A4A4A;
  --muted:       #8A8680;
  --border:      #E0D8CC;
  --white:       #FFFFFF;
  --font-display: 'Playfair Display', 'Georgia', serif;
  --font-body:    'Cormorant Garamond', 'Times New Roman', serif;
  --font-ui:      'Jost', 'Helvetica Neue', sans-serif;
  --space-xs:  0.25rem;
  --space-sm:  0.5rem;
  --space-md:  1rem;
  --space-lg:  2rem;
  --space-xl:  4rem;
  --space-2xl: 6rem;
  --space-3xl: 10rem;
  --radius-sm: 3px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-pill: 100px;
  --ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 200ms;
  --duration-mid: 400ms;
  --duration-slow: 700ms;
  --shadow-sm: 0 2px 8px rgba(46,74,62,0.08);
  --shadow-md: 0 8px 32px rgba(46,74,62,0.12);
  --shadow-lg: 0 24px 64px rgba(46,74,62,0.18);
}

/* =============================================
   RESET & BASE
   ============================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body {
  background-color: var(--ivory);
  color: var(--charcoal);
  font-family: var(--font-body);
  font-size: 1.1rem;
  line-height: 1.7;
  padding-top: 105px; /* 33px bandeau + 72px header */
}
.admin-bar body { padding-top: 137px; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--green); text-decoration: none; transition: color var(--duration-fast) var(--ease); }
a:hover { color: var(--gold); }
ul { list-style: none; }

/* =============================================
   TYPOGRAPHY
   ============================================= */
h1,h2,h3,h4,h5,h6 { font-family: var(--font-display); font-weight: 400; line-height: 1.2; color: var(--green); }
h1 { font-size: clamp(2.4rem,5vw,4rem); }
h2 { font-size: clamp(1.8rem,3.5vw,2.8rem); }
h3 { font-size: clamp(1.4rem,2.5vw,2rem); }
h4 { font-size: 1.25rem; }
p  { margin-bottom: var(--space-md); max-width: 70ch; }
.eyebrow { font-family: var(--font-ui); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); }

/* =============================================
   LAYOUT
   ============================================= */
.container        { width: min(1200px,92%); margin-inline: auto; }
.container--narrow{ width: min(780px,92%);  margin-inline: auto; }
.container--wide  { width: min(1400px,96%); margin-inline: auto; }
.grid-2 { display: grid; grid-template-columns: repeat(2,1fr); gap: var(--space-lg); }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-lg); }
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: var(--space-lg); }
@media(max-width:900px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

/* =============================================
   BANDEAU ANNONCE — permanent, fixe
   ============================================= */
.announcement-bar {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 33px;
  background: var(--green);
  color: rgba(248,244,238,.88);
  z-index: 1002;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-ui);
  font-size: .7rem;
  letter-spacing: .1em;
}
.admin-bar .announcement-bar { top: 32px; }

/* =============================================
   HEADER
   ============================================= */
.site-header {
  position: fixed;
  top: 33px; left: 0; right: 0;
  height: 72px;
  z-index: 1000;
  background: rgba(253,249,243,.95);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
  transition: box-shadow var(--duration-mid) var(--ease);
}
.admin-bar .site-header { top: calc(32px + 33px); }
.site-header.scrolled { box-shadow: var(--shadow-md); }

.header-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 var(--space-lg);
  max-width: 1400px;
  margin-inline: auto;
  height: 72px;
}

/* Logo */
.site-logo { display:flex; flex-direction:column; align-items:center; text-decoration:none; gap:2px; }
.logo-cross { font-size:1.4rem; color:var(--gold); line-height:1; }
.logo-name  { font-family:var(--font-display); font-size:1.5rem; font-weight:400; color:var(--green); letter-spacing:.05em; line-height:1; }
.logo-tagline { font-family:var(--font-ui); font-size:.6rem; letter-spacing:.25em; text-transform:uppercase; color:var(--gold); text-align:center; }

/* Nav */
.primary-nav { display:flex; gap:var(--space-lg); align-items:center; }
.primary-nav a { font-family:var(--font-ui); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--slate); position:relative; padding-bottom:2px; }
.primary-nav a::after { content:''; position:absolute; bottom:0; left:0; width:0; height:1px; background:var(--gold); transition:width var(--duration-mid) var(--ease); }
.primary-nav a:hover::after { width:100%; }

/* Actions */
.header-actions { display:flex; gap:var(--space-md); align-items:center; justify-content:flex-end; }
.contact-btn { display:inline-flex; align-items:center; gap:6px; background:var(--green); color:var(--cream)!important; padding:9px 18px; border-radius:var(--radius-pill); font-family:var(--font-ui); font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; transition:background var(--duration-fast) var(--ease); white-space:nowrap; }
.contact-btn:hover { background:var(--gold); }
.icon-btn { background:none; border:none; cursor:pointer; color:var(--slate); padding:6px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:color var(--duration-fast) var(--ease); }
.icon-btn:hover { color:var(--green); }

/* Mobile */
.mobile-menu-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; width:40px; height:40px; justify-content:center; }
.ham-line { display:block; width:22px; height:1.5px; background:var(--green); border-radius:2px; transition:all var(--duration-mid) var(--ease); }
.mobile-menu-toggle[aria-expanded="true"] .ham-line:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.mobile-menu-toggle[aria-expanded="true"] .ham-line:nth-child(2) { opacity:0; transform:scaleX(0); }
.mobile-menu-toggle[aria-expanded="true"] .ham-line:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* Search panel */
.search-panel { position:fixed; top:105px; left:0; right:0; z-index:999; overflow:hidden; max-height:0; transition:max-height var(--duration-mid) var(--ease); background:var(--cream); border-top:none; }
.search-panel.open { max-height:72px; border-top:1px solid var(--border); }
.admin-bar .search-panel { top:137px; }
.search-panel .container { padding:12px var(--space-lg); }
.search-panel .search-form { display:flex; background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius-pill); overflow:hidden; max-width:600px; margin:0 auto; }
.search-panel .search-field { flex:1; border:none; outline:none; padding:10px 20px; font-family:var(--font-body); font-size:1rem; background:transparent; }
.search-panel .search-submit { padding:10px 22px; background:var(--green); color:var(--cream); border:none; font-family:var(--font-ui); font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.search-panel .search-submit:hover { background:var(--gold); }

/* Mobile menu */
.mobile-menu { display:none; flex-direction:column; background:var(--ivory); border-top:1px solid var(--border); padding:var(--space-lg); position:fixed; top:105px; left:0; right:0; z-index:998; }
.mobile-menu.open { display:flex; }
.admin-bar .mobile-menu { top:137px; }
.mobile-logo { display:flex; align-items:center; gap:8px; text-decoration:none; margin-bottom:var(--space-lg); padding-bottom:var(--space-md); border-bottom:1px solid var(--border); }
.mobile-nav-list,.mobile-menu ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.mobile-nav-list li a,.mobile-menu ul li a { display:block; font-family:var(--font-ui); font-size:.88rem; letter-spacing:.1em; text-transform:uppercase; color:var(--green); padding:13px 0; border-bottom:1px solid var(--border); transition:color var(--duration-fast) var(--ease),padding-left var(--duration-fast) var(--ease); }
.mobile-nav-list li a:hover,.mobile-menu ul li a:hover { color:var(--gold); padding-left:6px; }

@media(max-width:900px){ .primary-nav{display:none;} .contact-btn span{display:none;} .mobile-menu-toggle{display:flex;} }
@media(max-width:600px){ .contact-btn{display:none;} .logo-tagline{display:none;} }

/* =============================================
   HERO — page d'accueil
   ============================================= */
.site-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: calc(100svh - 105px);
  background: var(--cream);
  overflow: hidden;
}
.admin-bar .site-hero { min-height: calc(100svh - 137px); }

.hero-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--space-xl) var(--space-xl) var(--space-xl) calc(var(--space-xl) + 2vw);
  position: relative;
  z-index: 2;
}
.hero-eyebrow { margin-bottom:var(--space-md); animation:fadeUp .8s var(--ease-out) both; }
.hero-title { font-size:clamp(3rem,5.5vw,5rem); font-weight:400; color:var(--green); line-height:1.05; margin-bottom:var(--space-lg); animation:fadeUp .8s var(--ease-out) .1s both; }
.hero-title em { font-style:italic; color:var(--gold); }
.hero-subtitle { font-size:1.2rem; color:var(--slate); max-width:45ch; margin-bottom:var(--space-xl); animation:fadeUp .8s var(--ease-out) .2s both; line-height:1.6; }
.hero-actions { display:flex; gap:var(--space-md); flex-wrap:wrap; animation:fadeUp .8s var(--ease-out) .3s both; }

.hero-image-panel { position:relative; overflow:hidden; background:var(--green); }
.hero-image-panel img { width:100%; height:100%; object-fit:cover; opacity:.85; mix-blend-mode:luminosity; transform:scale(1.05); animation:heroImageReveal 1.2s var(--ease-out) .4s both; }
.hero-image-panel::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(46,74,62,.6) 0%,rgba(184,150,90,.3) 100%); z-index:1; }
.hero-badge { position:absolute; bottom:var(--space-xl); right:var(--space-xl); z-index:3; background:var(--gold); color:var(--white); padding:var(--space-md) var(--space-lg); font-family:var(--font-ui); font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; }

@media(max-width:900px){
  .site-hero { grid-template-columns:1fr; min-height:auto; }
  .hero-content { padding:var(--space-xl) var(--space-lg); }
  .hero-image-panel { height:50vw; min-height:300px; }
}

/* =============================================
   BUTTONS
   ============================================= */
.btn { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-ui); font-size:.78rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; padding:14px 28px; border:1.5px solid transparent; border-radius:var(--radius-pill); cursor:pointer; transition:all var(--duration-mid) var(--ease); white-space:nowrap; }
.btn-primary { background:var(--green); color:var(--cream); border-color:var(--green); }
.btn-primary:hover { background:var(--gold); border-color:var(--gold); color:var(--white); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-outline { background:transparent; color:var(--green); border-color:var(--green); }
.btn-outline:hover { background:var(--green); color:var(--cream); transform:translateY(-2px); }
.btn-gold { background:var(--gold); color:var(--white); border-color:var(--gold); }
.btn-gold:hover { background:var(--gold-dark); transform:translateY(-2px); }

/* =============================================
   SECTIONS
   ============================================= */
section { padding:var(--space-3xl) 0; }
.section-header { text-align:center; margin-bottom:var(--space-2xl); }
.section-header h2 { margin-bottom:var(--space-md); }
.section-header p { color:var(--slate); font-size:1.1rem; margin-inline:auto; }
.divider { width:60px; height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); margin:var(--space-md) auto; }

/* =============================================
   TRUST STRIP
   ============================================= */
.trust-strip { background:var(--green); padding:var(--space-lg) 0; overflow:hidden; }
.trust-track { display:flex; gap:var(--space-2xl); align-items:center; animation:scrollTrack 30s linear infinite; width:max-content; }
.trust-item { display:flex; align-items:center; gap:var(--space-sm); color:var(--cream); font-family:var(--font-ui); font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; white-space:nowrap; }
.trust-item .dot { width:4px; height:4px; background:var(--gold); border-radius:50%; }

/* =============================================
   CATEGORIES
   ============================================= */
.categories-section { background:var(--ivory); }
.category-card { position:relative; overflow:hidden; background:var(--cream); border:1px solid var(--border); border-radius:var(--radius-md); aspect-ratio:3/4; cursor:pointer; transition:transform var(--duration-mid) var(--ease),box-shadow var(--duration-mid) var(--ease); }
.category-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.category-card img { width:100%; height:70%; object-fit:cover; transition:transform var(--duration-slow) var(--ease); }
.category-card:hover img { transform:scale(1.05); }
.category-card-body { padding:var(--space-md) var(--space-lg); }
.category-card-body h3 { font-size:1.3rem; margin-bottom:var(--space-xs); }
.category-card-body p { font-size:.9rem; color:var(--muted); margin:0; }
.category-card-body .arrow { display:inline-block; margin-top:var(--space-sm); color:var(--gold); font-size:1.2rem; transition:transform var(--duration-fast) var(--ease); }
.category-card:hover .arrow { transform:translateX(6px); }
.category-img-placeholder { width:100%; height:65%; background:linear-gradient(135deg,var(--green-light) 0%,var(--cream) 100%); display:flex; align-items:center; justify-content:center; }
.cat-icon { font-size:3rem; }
.cat-icon-svg { display:flex; align-items:center; justify-content:center; }
.cat-icon-svg svg { width:48px; height:48px; stroke:var(--green); opacity:.75; transition:all var(--duration-mid) var(--ease); }
.category-card:hover .cat-icon-svg svg { opacity:1; transform:scale(1.1); stroke:var(--gold); }

/* =============================================
   PRODUCT CARDS
   ============================================= */
.products-section { background:var(--cream); }
.product-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; transition:all var(--duration-mid) var(--ease); }
.product-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); }
.product-card-image { position:relative; overflow:hidden; aspect-ratio:1; background:var(--cream); }
.product-card-image img { width:100%; height:100%; object-fit:cover; transition:transform var(--duration-slow) var(--ease); }
.product-card:hover .product-card-image img { transform:scale(1.04); }
.product-card-body { padding:var(--space-md); }
.product-brand { font-family:var(--font-ui); font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); margin-bottom:4px; }
.product-name { font-family:var(--font-display); font-size:1rem; font-weight:400; color:var(--green); margin-bottom:var(--space-xs); }
.product-img-placeholder { width:100%; height:100%; background:var(--cream); display:flex; align-items:center; justify-content:center; }
.product-img-placeholder span { font-size:3rem; color:var(--green-light); }

/* =============================================
   HERITAGE SECTION
   ============================================= */
.heritage-section { background:var(--green); position:relative; overflow:hidden; padding:var(--space-3xl) 0; }
.heritage-section::before { content:''; position:absolute; top:-100px; right:-100px; width:500px; height:500px; border-radius:50%; background:rgba(184,150,90,.12); pointer-events:none; }
.heritage-inner { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3xl); align-items:center; }
.heritage-inner .eyebrow { color:var(--gold-light); }
.heritage-inner h2 { color:var(--cream); }
.heritage-inner p { color:rgba(248,244,238,.8); }
.heritage-stats { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-lg); margin-top:var(--space-xl); }
.stat-number { font-family:var(--font-display); font-size:2.8rem; color:var(--gold-light); line-height:1; margin-bottom:4px; }
.stat-label { font-family:var(--font-ui); font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(248,244,238,.6); }
.heritage-visual { position:relative; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:12px; height:480px; }
.heritage-img { overflow:hidden; border-radius:var(--radius-sm); }
.heritage-img:first-child { grid-row:span 2; }
.heritage-img img { width:100%; height:100%; object-fit:cover; }
@media(max-width:900px){ .heritage-inner{grid-template-columns:1fr;} .heritage-visual{height:300px;} }

/* =============================================
   GUIDES / BLOG
   ============================================= */
.guides-section { background:var(--ivory); }
.guide-card { background:var(--white); border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--border); transition:all var(--duration-mid) var(--ease); }
.guide-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.guide-card-image { aspect-ratio:16/9; overflow:hidden; }
.guide-card-image img { width:100%; height:100%; object-fit:cover; transition:transform var(--duration-slow) var(--ease); }
.guide-card:hover .guide-card-image img { transform:scale(1.04); }
.guide-card-body { padding:var(--space-lg); }
.guide-tag { font-family:var(--font-ui); font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:var(--space-sm); }
.guide-card h3 { font-size:1.25rem; margin-bottom:var(--space-sm); color:var(--green); }
.guide-card p { font-size:.95rem; color:var(--slate); margin:0 0 var(--space-md); }
.guide-card .read-more { font-family:var(--font-ui); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:6px; }
.guide-card .read-more::after { content:'→'; transition:transform var(--duration-fast) var(--ease); }
.guide-card:hover .read-more::after { transform:translateX(4px); }
.guide-img-placeholder { width:100%; height:100%; background:var(--green-light); display:flex; align-items:center; justify-content:center; }
.guide-img-placeholder span { font-size:2.5rem; color:rgba(46,74,62,.3); }

/* =============================================
   NEWSLETTER
   ============================================= */
.newsletter-section { background:linear-gradient(135deg,var(--cream) 0%,var(--green-light) 100%); padding:var(--space-2xl) 0; text-align:center; }
.newsletter-section h2 { margin-bottom:var(--space-sm); }
.newsletter-section p { margin:0 auto var(--space-xl); color:var(--slate); }
.newsletter-form { display:flex; max-width:480px; margin-inline:auto; background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius-pill); overflow:hidden; box-shadow:var(--shadow-sm); }
.newsletter-form input[type="email"] { flex:1; padding:14px 20px; border:none; outline:none; font-family:var(--font-body); font-size:1rem; background:transparent; }
.newsletter-form button { padding:12px 24px; background:var(--green); color:var(--cream); border:none; font-family:var(--font-ui); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:background var(--duration-fast) var(--ease); white-space:nowrap; }
.newsletter-form button:hover { background:var(--gold); }
.nl-success { display:flex; align-items:center; gap:12px; justify-content:center; padding:var(--space-md) var(--space-lg); background:rgba(46,74,62,.1); border-radius:var(--radius-md); max-width:480px; margin-inline:auto; }
.nl-success p { font-family:var(--font-ui); font-size:.9rem; color:var(--green); margin:0; }

/* =============================================
   FOOTER
   ============================================= */
.site-footer { background:var(--charcoal); color:rgba(248,244,238,.7); padding:var(--space-3xl) 0 var(--space-lg); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:var(--space-2xl); margin-bottom:var(--space-2xl); }
.footer-brand .logo-name { color:var(--cream); font-size:1.8rem; }
.footer-brand .logo-tagline { color:var(--gold-light); }
.footer-brand-desc { font-size:.95rem; line-height:1.7; margin-top:var(--space-md); color:rgba(248,244,238,.55); max-width:30ch; }
.footer-social { display:flex; gap:var(--space-sm); margin-top:var(--space-md); }
.footer-social a { width:36px; height:36px; border:1px solid rgba(248,244,238,.2); border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(248,244,238,.6); transition:all var(--duration-fast) var(--ease); }
.footer-social a:hover { border-color:var(--gold); color:var(--gold); }
.footer-col h4 { font-family:var(--font-ui); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-light); margin-bottom:var(--space-md); }
.footer-col ul { display:flex; flex-direction:column; gap:var(--space-sm); }
.footer-col ul a { font-size:.9rem; color:rgba(248,244,238,.55); }
.footer-col ul a:hover { color:var(--cream); }
.footer-hours { margin-top:var(--space-md); padding:var(--space-sm) var(--space-md); background:rgba(248,244,238,.06); border-left:2px solid var(--gold); border-radius:0 var(--radius-sm) var(--radius-sm) 0; font-size:.82rem; line-height:1.8; color:rgba(248,244,238,.6); }
.footer-hours strong { color:rgba(248,244,238,.85); }
.footer-address { font-size:.88rem; color:rgba(248,244,238,.55); line-height:1.8; }
.footer-address p { margin:0 0 var(--space-sm); }
.footer-map-link { font-family:var(--font-ui); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-light)!important; }
.footer-map-link:hover { color:var(--cream)!important; }
.footer-bottom { border-top:1px solid rgba(248,244,238,.1); padding-top:var(--space-lg); display:flex; justify-content:space-between; align-items:center; font-family:var(--font-ui); font-size:.72rem; color:rgba(248,244,238,.35); flex-wrap:wrap; gap:var(--space-md); }
.footer-bottom a { color:rgba(248,244,238,.35); }
.footer-bottom a:hover { color:var(--gold-light); }
@media(max-width:900px){ .footer-grid{grid-template-columns:1fr 1fr; gap:var(--space-lg);} }
@media(max-width:600px){ .footer-grid{grid-template-columns:1fr;} .footer-bottom{flex-direction:column;text-align:center;} }

/* =============================================
   WOOCOMMERCE
   ============================================= */
.woo-page-wrap { padding-top:var(--space-lg); min-height:60vh; background:var(--ivory); }
.woo-content { padding:0 0 var(--space-3xl); }
.shop-page-header { text-align:center; padding:var(--space-lg) 0 var(--space-md); }
.shop-title { font-family:var(--font-display)!important; font-size:clamp(1.8rem,3vw,2.8rem)!important; font-weight:400!important; color:var(--green)!important; margin:0 0 var(--space-sm)!important; }
.shop-desc { color:var(--slate); max-width:55ch; margin:0 auto var(--space-md)!important; }
.shop-cat-filter { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; padding:var(--space-md) 0 var(--space-lg); border-bottom:1px solid var(--border); margin-bottom:var(--space-lg); }
.cat-tab { font-family:var(--font-ui); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; padding:6px 16px; border:1px solid var(--border); border-radius:var(--radius-pill); color:var(--slate); transition:all var(--duration-fast) var(--ease); white-space:nowrap; }
.cat-tab:hover,.cat-tab.active { background:var(--green); color:var(--cream); border-color:var(--green); }

.woocommerce-products-header { display:none!important; }
.woocommerce-ordering,.woocommerce-result-count { display:none!important; }

.woocommerce ul.products { display:grid!important; grid-template-columns:repeat(3,1fr)!important; gap:var(--space-lg)!important; list-style:none!important; padding:0!important; margin:0!important; clear:both!important; }
@media(max-width:900px){ .woocommerce ul.products{grid-template-columns:repeat(2,1fr)!important;} }
@media(max-width:600px){ .woocommerce ul.products{grid-template-columns:1fr!important;} }

.woocommerce ul.products li.product { display:flex!important; flex-direction:column!important; background:var(--white)!important; border:1px solid var(--border)!important; border-radius:var(--radius-md)!important; overflow:hidden!important; margin:0!important; float:none!important; width:auto!important; padding:0!important; transition:all var(--duration-mid) var(--ease)!important; }
.woocommerce ul.products li.product:hover { transform:translateY(-4px)!important; box-shadow:var(--shadow-lg)!important; border-color:var(--gold)!important; }

.woocommerce ul.products li.product a img { width:100%!important; height:240px!important; object-fit:contain!important; object-position:center!important; background:#fff!important; padding:20px!important; display:block!important; margin:0!important; box-sizing:border-box!important; }

.loop-product-brand { font-family:var(--font-ui)!important; font-size:.65rem!important; letter-spacing:.18em!important; text-transform:uppercase!important; color:var(--gold)!important; padding:var(--space-md) var(--space-md) 2px!important; margin:0!important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family:var(--font-display)!important; font-size:1rem!important; font-weight:400!important; padding:2px var(--space-md) var(--space-xs)!important; color:var(--green)!important; line-height:1.3!important; }
.woocommerce ul.products li.product .price,.woocommerce div.product p.price,.woocommerce div.product span.price { display:none!important; }
.fp-discover-btn { display:block!important; font-family:var(--font-ui)!important; font-size:.72rem!important; letter-spacing:.1em!important; text-transform:uppercase!important; color:var(--gold)!important; padding:var(--space-xs) var(--space-md) var(--space-md)!important; transition:color var(--duration-fast) var(--ease)!important; text-decoration:none!important; }
.fp-discover-btn:hover { color:var(--green)!important; }

.woocommerce nav.woocommerce-pagination { margin-top:var(--space-xl)!important; text-align:center!important; }
.woocommerce nav.woocommerce-pagination ul { border:none!important; display:inline-flex!important; gap:6px!important; }
.woocommerce nav.woocommerce-pagination ul li { border:none!important; }
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span { font-family:var(--font-ui)!important; font-size:.75rem!important; color:var(--slate)!important; border:1px solid var(--border)!important; border-radius:var(--radius-sm)!important; padding:8px 14px!important; transition:all var(--duration-fast) var(--ease)!important; }
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color:var(--gold)!important; color:var(--gold)!important; }
.woocommerce nav.woocommerce-pagination ul li span.current { background:var(--green)!important; color:var(--cream)!important; border-color:var(--green)!important; }

.woocommerce div.product { padding-top:var(--space-md)!important; }
.woocommerce div.product div.images img { border-radius:var(--radius-md)!important; border:1px solid var(--border)!important; }
.woocommerce div.product div.summary h1 { font-family:var(--font-display)!important; font-weight:400!important; color:var(--green)!important; font-size:clamp(1.6rem,3vw,2.4rem)!important; }
.woocommerce div.product .woocommerce-product-details__short-description { font-family:var(--font-body)!important; font-size:1.05rem!important; line-height:1.8!important; color:var(--slate)!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-family:var(--font-ui)!important; font-size:.78rem!important; letter-spacing:.08em!important; text-transform:uppercase!important; color:var(--slate)!important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color:var(--green)!important; }

.woocommerce a.button,.woocommerce button.button,.woocommerce input.button { background:var(--green)!important; color:var(--cream)!important; border-radius:var(--radius-pill)!important; font-family:var(--font-ui)!important; font-size:.78rem!important; letter-spacing:.1em!important; text-transform:uppercase!important; }
.woocommerce a.button:hover,.woocommerce button.button:hover { background:var(--gold)!important; }

/* PRODUCT META BADGES */
.fp-product-meta { margin:16px 0; display:flex; flex-direction:column; gap:10px; }
.fp-meta-row { display:flex; align-items:flex-start; gap:10px; flex-wrap:wrap; }
.fp-meta-label,.fp-share-label { font-family:var(--font-ui); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); min-width:65px; flex-shrink:0; padding-top:4px; }
.fp-meta-badges { display:flex; flex-wrap:wrap; gap:6px; }
.fp-meta-badges a { font-family:var(--font-ui); font-size:.72rem; padding:4px 12px; border-radius:20px; text-decoration:none; transition:all .2s ease; }
.fp-meta-cat a { background:#EBF0EC; color:var(--green); border:1px solid var(--green-light); }
.fp-meta-cat a:hover { background:var(--green); color:var(--cream); }
.fp-meta-tags a { background:var(--cream); color:var(--muted); border:1px solid var(--border); }
.fp-meta-tags a:hover { background:var(--gold); color:#fff; border-color:var(--gold); }

/* SHARE BLOCK */
.fp-share-block { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:10px; }
.fp-share-row,.fp-follow-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.fp-share-btns { display:flex; flex-wrap:wrap; gap:8px; }
.fp-share-btn { display:inline-flex; align-items:center; gap:5px; font-family:var(--font-ui); font-size:.72rem; padding:5px 14px; border-radius:20px; text-decoration:none; cursor:pointer; border:1px solid var(--border); background:var(--cream); color:var(--slate); transition:all .2s ease; }
.fp-share-btn:hover { background:var(--green); color:var(--cream); border-color:var(--green); }
.fp-share-wa:hover  { background:#25D366!important; border-color:#25D366!important; color:#fff!important; }
.fp-share-ig:hover  { background:#E1306C!important; border-color:#E1306C!important; color:#fff!important; }
.fp-share-tt:hover  { background:#000!important; border-color:#000!important; color:#fff!important; }

/* PRODUCT AUTH NOTE */
.product-auth-note { display:flex; gap:var(--space-md); align-items:flex-start; padding:var(--space-md) var(--space-lg); background:rgba(46,74,62,.06); border-left:3px solid var(--green); border-radius:0 var(--radius-sm) var(--radius-sm) 0; }
.product-auth-note span { font-size:1.2rem; color:var(--green); flex-shrink:0; }
.product-auth-note p { font-family:var(--font-ui); font-size:.75rem; line-height:1.6; color:var(--slate); margin:0; }
.product-cta { display:flex; gap:var(--space-md); flex-wrap:wrap; margin-bottom:var(--space-lg); }

/* =============================================
   BRANDS PAGE
   ============================================= */
.brands-az-index { display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin-bottom:var(--space-2xl); padding:var(--space-lg) 0; border-bottom:1px solid var(--border); }
.az-letter { width:36px; height:36px; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:1rem; color:var(--green); border:1px solid var(--border); border-radius:50%; transition:all var(--duration-fast) var(--ease); }
.az-letter:hover { background:var(--green); color:var(--cream); border-color:var(--green); }
.brands-letter-heading { font-family:var(--font-display); font-size:2rem; color:var(--gold); font-weight:400; margin:var(--space-xl) 0 var(--space-md); padding-bottom:var(--space-sm); border-bottom:1px solid var(--border); }
.brand-card { display:flex; gap:var(--space-lg); align-items:flex-start; padding:var(--space-lg); background:var(--white); border:1px solid var(--border); border-radius:var(--radius-md); margin-bottom:var(--space-md); transition:all var(--duration-mid) var(--ease); }
.brand-card:hover { box-shadow:var(--shadow-md); transform:translateX(4px); border-color:var(--gold); }
.brand-card-logo { width:130px; height:130px; flex-shrink:0; border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--border); background:var(--white); display:flex; align-items:center; justify-content:center; }
.brand-card-logo img { width:100%; height:100%; object-fit:contain; padding:16px; }
.brand-logo-placeholder { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--cream) 0%,var(--green-light) 100%); }
.brand-logo-placeholder span { font-size:2rem; }
.brand-card-body { flex:1; min-width:0; }
.brand-card-header { display:flex; align-items:baseline; gap:var(--space-md); margin-bottom:4px; flex-wrap:wrap; }
.brand-name { font-family:var(--font-display); font-size:1.3rem; font-weight:400; color:var(--green); margin:0; }
.brand-founded { font-family:var(--font-ui); font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }
.brand-specialty { display:inline-block; font-family:var(--font-ui); font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-bottom:var(--space-sm); }
.brand-desc { font-size:.95rem; color:var(--slate); line-height:1.7; margin:0 0 var(--space-sm); max-width:65ch; }
.brand-card-footer { display:flex; align-items:center; gap:var(--space-lg); margin-top:var(--space-sm); }
.brand-count { font-family:var(--font-ui); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.brand-link { font-family:var(--font-ui); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
.brand-link:hover { color:var(--green); }
@media(max-width:600px){ .brand-card{flex-direction:column;} .brand-card-logo{width:80px;height:80px;} }

/* =============================================
   PAGES INTERNES
   ============================================= */
.page-hero { background:var(--cream); padding:var(--space-xl) 0 var(--space-lg); border-bottom:1px solid var(--border); }
.page-hero .eyebrow,.page-hero .divider { display:none; }
.visit-hero .eyebrow,.visit-hero .divider { display:none; }
main .container > header .eyebrow, main .container > header .divider { display:none; }

/* Contact */
.visit-inner { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3xl); align-items:center; }
.visit-details { display:flex; flex-direction:column; gap:var(--space-lg); margin-top:var(--space-xl); }
.visit-info { display:flex; gap:var(--space-md); align-items:flex-start; }
.visit-icon { font-size:1.5rem; line-height:1; flex-shrink:0; }
.visit-info strong { font-family:var(--font-ui); font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:4px; }
.visit-info p { font-size:.95rem; color:var(--slate); margin:0; line-height:1.7; }
.visit-map-placeholder { height:440px; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border); }
@media(max-width:900px){ .visit-inner{grid-template-columns:1fr;} .visit-map-placeholder{height:280px;} }

/* Entry content */
.entry-content { font-family:var(--font-body); font-size:1.15rem; line-height:1.8; color:var(--slate); }
.entry-content h2 { color:var(--green); margin:var(--space-xl) 0 var(--space-md); }
.entry-content h3 { color:var(--green); margin:var(--space-lg) 0 var(--space-sm); }
.entry-content a { color:var(--gold); border-bottom:1px solid var(--gold-light); }
.entry-content a:hover { color:var(--green); }

/* =============================================
   ANIMATIONS
   ============================================= */
@keyframes fadeUp { from{opacity:0;transform:translateY(24px);} to{opacity:1;transform:translateY(0);} }
@keyframes heroImageReveal { from{transform:scale(1.12);opacity:0;} to{transform:scale(1.05);opacity:.85;} }
@keyframes scrollTrack { from{transform:translateX(0);} to{transform:translateX(-50%);} }
@keyframes fp-pulse { 0%{opacity:1;transform:scale(1);} 50%{opacity:.35;transform:scale(1.2);} 100%{opacity:1;transform:scale(1);} }

.reveal { opacity:0; transform:translateY(30px); transition:opacity var(--duration-slow) var(--ease),transform var(--duration-slow) var(--ease); }
.reveal.visible { opacity:1; transform:translateY(0); }

/* =============================================
   ADMIN BAR COMPENSATION
   ============================================= */
.admin-bar body { padding-top: 137px !important; }
.admin-bar .announcement-bar { top: 32px !important; }
.admin-bar .site-header { top: calc(32px + 33px) !important; }
.admin-bar .search-panel { top: calc(32px + 33px + 72px) !important; }
.admin-bar .mobile-menu { top: calc(32px + 33px + 72px) !important; }
.admin-bar .site-hero { min-height: calc(100svh - 137px) !important; }

/* Fond blanc pur pour les images produit PNG transparents */
.woocommerce ul.products li.product a img,
.woocommerce div.product div.images img {
    background-color: #FFFFFF !important;
}

/* Grille produits — alignement à gauche strict */
.woocommerce ul.products {
    justify-items: start !important;
    align-items: start !important;
}

.woocommerce ul.products::after {
    content: none !important;
}

/* Supprime l'espace du notices wrapper vide */
.woocommerce-notices-wrapper {
    display: none !important;
	
	.woocommerce-notices-wrapper {
    grid-column: 1 / -1 !important;
    display: block !important;
    height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
    display: none !important;
    content: none !important;
    width: 0 !important;
    height: 0 !important;
}
	
	/* Hauteur uniforme sur toutes les cartes produit */
.woocommerce ul.products li.product {
    height: 380px !important;
}

.woocommerce ul.products li.product a img {
    height: 220px !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: .95rem !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    height: 2.6em !important;
}



/* -------------------------------------------------------
   SINGLE PRODUCT — Layout image gauche / info droite
   ------------------------------------------------------- */

.woocommerce.single-product div.product {
    display: grid !important;
    grid-template-columns: 55% 1fr !important;
    grid-template-rows: auto auto auto !important;
    gap: 0 4rem !important;
    align-items: start !important;
    max-width: 1100px !important;
    margin: 2rem auto 0 !important;
    float: none !important;
}

/* Galerie — colonne 1, ligne 1 */
.woocommerce.single-product div.product div.woocommerce-product-gallery {
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    width: auto !important;
    max-width: 100% !important;
}

/* Limiter la hauteur de l'image principale */
.woocommerce.single-product div.product div.woocommerce-product-gallery img {
    max-height: 500px !important;
    width: 100% !important;
    object-fit: contain !important;
}

/* Résumé — colonne 2, ligne 1 */
.woocommerce.single-product div.product div.summary {
    grid-column: 2 !important;
    grid-row: 1 !important;
    float: none !important;
    width: auto !important;
    padding-top: 0.5rem !important;
    clear: none !important;
}

/* Onglets description/reviews — pleine largeur, ligne 2 */
.woocommerce.single-product div.product .woocommerce-tabs {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    clear: none !important;
}

/* Related products — pleine largeur, ligne 3 */
.woocommerce.single-product div.product .related,
.woocommerce.single-product section.related {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    clear: none !important;
}

/* Mobile : tout en colonne unique */
@media (max-width: 768px) {
    .woocommerce.single-product div.product {
        grid-template-columns: 1fr !important;
    }
    .woocommerce.single-product div.product div.woocommerce-product-gallery,
    .woocommerce.single-product div.product div.summary,
    .woocommerce.single-product div.product .woocommerce-tabs,
    .woocommerce.single-product div.product .related {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
}