/* ===================================================================
   GOLVARY - homepage components (product carousels / bands)
   Uses shared charte tokens from golvary.css (--gv-*).
   =================================================================== */

.gv-products{background-color:var(--gv-cream,#f4efe3);background-image:linear-gradient(180deg,var(--gv-ivory,#fbf8f1),var(--gv-cream,#f4efe3));padding:clamp(56px,8vw,104px) 0;border-bottom:1px solid rgba(3,70,56,.08)}
.gv-products__inner{max-width:1320px;margin:0 auto;padding:0 clamp(18px,4vw,56px)}
.gv-products__head{text-align:center;margin:0 auto clamp(32px,4vw,52px);max-width:640px}
.gv-products__head::after{content:"";display:block;width:42px;height:1px;margin:20px auto 0;background:var(--gv-gold-grad)}
.gv-products__eyebrow{display:block;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gv-gold-deep);font-weight:600;margin-bottom:.7em}
.gv-products__title{font-family:var(--gv-display);font-weight:400;font-size:clamp(2rem,3.6vw,3rem);color:var(--gv-green);margin:0 0 .24em;line-height:1.04;text-wrap:balance}
.gv-products__sub{color:#5c6b62;font-size:1rem;margin:0}

.gv-products__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,26px);align-items:stretch}

.gv-card{position:relative;display:flex;flex-direction:column;min-width:0;background:var(--gv-surface,#fffdf9);border:1px solid rgba(3,70,56,.1);border-radius:4px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:var(--gv-shadow-sm,0 14px 34px -26px rgba(2,42,34,.34));
  transition:transform .42s cubic-bezier(.22,.61,.36,1),box-shadow .42s ease,border-color .42s ease}
.gv-card::after{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--gv-gold-grad);transform:scaleX(0);transform-origin:left;transition:transform .42s cubic-bezier(.22,.61,.36,1);z-index:6}
.gv-card:hover{transform:translateY(-6px);box-shadow:var(--gv-shadow-lg,0 28px 60px -34px rgba(2,42,34,.42));border-color:rgba(172,132,0,.38)}
.gv-card:hover::after,.gv-card:focus-visible::after{transform:scaleX(1)}
.gv-card__media{aspect-ratio:1/1.08;background:linear-gradient(145deg,#fff 0%,#faf8f3 100%);display:flex;align-items:center;justify-content:center;padding:clamp(14px,2vw,24px);overflow:hidden}
.gv-card__media img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:transform .65s cubic-bezier(.22,.61,.36,1)}
.gv-card:hover .gv-card__media img{transform:scale(1.055)}
.gv-card__body{padding:18px 18px 17px;text-align:left;display:flex;flex:1;flex-direction:column;gap:8px;border-top:1px solid rgba(3,70,56,.08)}
.gv-card__title{color:var(--gv-ink,#15241e);margin:0;font-weight:400;line-height:1.25}
.gv-card__model{display:block;margin-bottom:7px;font-family:var(--gv-sans);font-size:.64rem;line-height:1;letter-spacing:.2em;text-transform:uppercase;color:var(--gv-gold-deep);font-weight:700}
.gv-card__name{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;min-height:2.5em;font-family:var(--gv-display);font-size:clamp(.94rem,1.25vw,1.1rem);letter-spacing:.005em;text-transform:none}
.gv-card__price{margin-top:2px;font-size:1rem;color:var(--gv-green);font-weight:650;letter-spacing:.02em}
.gv-card__price del{color:#9aa8a0;font-weight:400;margin-right:.4em}
.gv-card__price ins{text-decoration:none}
.gv-card__action{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:13px;border-top:1px solid rgba(3,70,56,.09);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gv-green);font-weight:700}
.gv-card__action span{font-size:1rem;line-height:1;color:var(--gv-gold-deep);transition:transform .3s ease}
.gv-card:hover .gv-card__action span,.gv-card:focus-visible .gv-card__action span{transform:translateX(4px)}

.gv-products__more{text-align:center;margin-top:clamp(26px,3vw,42px)}
.gv-products__cta{display:inline-flex;align-items:center;gap:.6em;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gv-green);text-decoration:none;border-bottom:1px solid var(--gv-gold);padding-bottom:6px;transition:color .3s ease,gap .3s ease}
.gv-products__cta:hover{color:var(--gv-gold-deep);gap:1em}

/* alternating "world" backgrounds */
.gv-products--homme{background-color:#0b0b0b;background-image:radial-gradient(115% 120% at 50% 0%,#252625 0%,#111 48%,#090a09 100%)}
.gv-products--homme .gv-products__title{color:#fff}
.gv-products--homme .gv-products__sub{color:#b9b9b9}
.gv-products--homme .gv-products__cta{color:#f4efe3}
.gv-products--femme{background-color:#034638;background-image:radial-gradient(115% 120% at 50% 0%,#07624e 0%,#034638 48%,#022b23 100%)}
.gv-products--femme .gv-products__title{color:#fff}
.gv-products--femme .gv-products__sub{color:#bcd8ce}
.gv-products--femme .gv-products__cta{color:#f4efe3}

@media (max-width:1000px){.gv-products__grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:680px){
  /* Product rows become edge-to-edge horizontal swipe carousels; the peeking next
     card signals there is more to swipe. Scroll-snap for a clean stop per card. */
  .gv-products__grid{
    display:flex;grid-template-columns:none;gap:14px;align-items:stretch;
    overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;-ms-overflow-style:none;
    margin-inline:calc(-1 * clamp(18px,4vw,56px));
    padding:2px clamp(18px,4vw,56px) 16px;
    scroll-padding-left:clamp(18px,4vw,56px);overscroll-behavior-x:contain}
  .gv-products__grid::-webkit-scrollbar{display:none}
  .gv-products__grid>.gv-card{flex:0 0 clamp(180px,63vw,244px);scroll-snap-align:start}
  .gv-card__body{padding:14px 13px 13px;gap:7px}
  .gv-card__model{font-size:.58rem;letter-spacing:.14em}
  .gv-card__name{font-size:.92rem}
  .gv-card__action{font-size:.58rem;letter-spacing:.12em;padding-top:10px}
}
@media (hover:none){.gv-card:hover{transform:none}}

/* Product-carousel position dots (only visible in the mobile carousel mode). */
.gv-carousel-dots{display:none}
@media (max-width:680px){
  .gv-carousel-dots{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:18px}
  .gv-carousel-dot{width:7px;height:7px;padding:0;border:0;border-radius:50%;cursor:pointer;
    background:rgba(3,70,56,.24);transition:background .35s ease,transform .35s ease}
  .gv-carousel-dot.is-active{background:var(--gv-gold-deep);transform:scale(1.35)}
  .gv-products--homme .gv-carousel-dot,.gv-products--femme .gv-carousel-dot{background:rgba(244,239,227,.32)}
  .gv-products--homme .gv-carousel-dot.is-active,.gv-products--femme .gv-carousel-dot.is-active{background:var(--gv-gold-light)}
}

/* Homepage: hide Glozin's fixed mobile bottom dock (Accueil / Boutique / Favoris /
   ...) and reclaim the body padding it reserves. It only renders on phones. */
body.home #glozin-mobile-navigation-bar{display:none!important}
@media (max-width:767px){body.home{padding-bottom:0!important}}

/* Full-bleed collection pages (/homme /femme /nouveautes /meilleures-ventes):
   remove the theme content-wrapper padding so the hero sits flush under the
   header and the last band meets the footer - no white gaps. */
.gv-fullbleed #site-content{padding-top:0!important;padding-bottom:0!important}

/* --- world page banner (/homme, /femme) --- */
.gv-world{position:relative;overflow:hidden;padding:clamp(80px,15vh,168px) clamp(18px,4vw,56px);text-align:center;color:#f4efe3}
.gv-world--homme{background-color:#0b0b0b;background-image:radial-gradient(120% 130% at 50% 0%,#262626 0%,#0b0b0b 100%)}
.gv-world--femme{background-color:#034638;background-image:radial-gradient(120% 130% at 50% 0%,#05614c 0%,#022b23 100%)}
.gv-world__inner{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:16px;align-items:center}
.gv-world__eyebrow{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gv-gold);font-weight:600}
.gv-world__title{font-family:var(--gv-display);font-weight:400;font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.03;margin:0;color:#fff;text-wrap:balance}
.gv-world__intro{max-width:52ch;font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.6;color:#cfc7b4;margin:4px 0 0}

/* --- collection storytelling band --- */
.gv-collection{padding:clamp(64px,11vw,132px) clamp(18px,4vw,56px);text-align:center;position:relative;overflow:hidden}
.gv-collection--green{background-color:#034638;background-image:radial-gradient(130% 130% at 50% 0%,#05614c 0%,#022b23 100%);color:#f4efe3}
.gv-collection--dark{background-color:#0b0b0b;background-image:radial-gradient(130% 130% at 50% 0%,#242424 0%,#0b0b0b 100%);color:#f4efe3}
.gv-collection__inner{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:18px;align-items:center;position:relative;padding:clamp(30px,5vw,54px) 0;border-top:1px solid rgba(201,162,74,.35);border-bottom:1px solid rgba(201,162,74,.35)}
.gv-collection__eyebrow{font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gv-gold);font-weight:600}
.gv-collection__title{font-family:var(--gv-display);font-weight:400;font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.08;margin:0;color:#fff;text-wrap:balance}
.gv-collection__text{max-width:56ch;font-size:clamp(1rem,1.3vw,1.14rem);line-height:1.7;color:#cfc7b4;margin:0}
.gv-collection__cta{display:inline-flex;align-items:center;gap:.6em;margin-top:6px;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:#f4efe3;text-decoration:none;border-bottom:1px solid var(--gv-gold);padding-bottom:6px;transition:gap .3s ease,color .3s ease}
.gv-collection__cta:hover{color:var(--gv-gold-light);gap:1em}

/* --- "Pourquoi Golvary" reassurance band --- */
.gv-why{background-color:var(--gv-cream,#f4efe3);background-image:linear-gradient(180deg,var(--gv-cream,#f4efe3),var(--gv-ivory,#fbf8f1));padding:clamp(56px,8vw,96px) 0;border-bottom:1px solid rgba(3,70,56,.08)}
.gv-why__inner{max-width:1320px;margin:0 auto;padding:0 clamp(18px,4vw,56px)}
.gv-why__head{text-align:center;margin:0 auto clamp(28px,4vw,44px)}
.gv-why__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,24px)}
.gv-why__item{position:relative;background:var(--gv-surface,#fffdf9);border:1px solid rgba(3,70,56,.1);border-radius:4px;padding:30px 22px 26px;text-align:center;text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;gap:11px;box-shadow:var(--gv-shadow-sm);transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
.gv-why__item::before{content:"";position:absolute;top:0;left:50%;width:42px;height:2px;transform:translateX(-50%);background:var(--gv-gold-grad)}
a.gv-why__item:hover{transform:translateY(-5px);box-shadow:var(--gv-shadow-lg);border-color:rgba(172,132,0,.38)}
.gv-why__icon{width:56px;height:56px;border:1px solid rgba(172,132,0,.28);border-radius:50%;background:rgba(201,162,74,.06);color:var(--gv-gold-deep);display:inline-flex;align-items:center;justify-content:center}
.gv-why__icon svg{width:28px;height:28px}
.gv-why__item h3{font-family:var(--gv-display);font-weight:400;font-size:1.12rem;color:var(--gv-green);margin:0}
.gv-why__item p{font-size:.88rem;color:#5c6b62;line-height:1.55;margin:0}
.gv-why__link{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gv-gold-deep);font-weight:600;margin-top:2px}
@media (max-width:900px){.gv-why__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.gv-why__grid{grid-template-columns:1fr}}

/* /homme (page 1000478) and /femme (page 1000479): the catalogue shows as a normal
   2-per-row grid at every width, NOT the mobile swipe carousel. Scoped to these two
   pages so the homepage product bands keep their carousel. Higher specificity
   (body.page-id + .gv-products__grid) beats the base grid and the 680px carousel rules. */
body.page-id-1000478 .gv-products__grid,
body.page-id-1000479 .gv-products__grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:clamp(12px,3vw,26px);
  overflow:visible;
  margin-inline:0;
  padding:0;
  scroll-snap-type:none;
}
body.page-id-1000478 .gv-products__grid > .gv-card,
body.page-id-1000479 .gv-products__grid > .gv-card{
  flex:0 1 auto;
  width:auto;
  scroll-snap-align:none;
}
/* Desktop: 4 per row (mobile + tablet stay at 2 from the base rule above). */
@media (min-width:1001px){
  body.page-id-1000478 .gv-products__grid,
  body.page-id-1000479 .gv-products__grid{ grid-template-columns:repeat(4,1fr); }
}
