/*
 * GATARD Pro Pages 1.12.8 — icônes HD / responsive, rendu unique.
 * Correctif de stabilité : aucune icône n'est recréée avec ::before/::after.
 * On conserve une seule source visuelle par emplacement pour éviter les doublons.
 */

:where(#gatard-home,#gatard-carte,#gatard-locations,#gatard-events,#gatard-gallery,.gatard-contact-page) img,
:where(#gatard-home,#gatard-carte,#gatard-locations,#gatard-events,#gatard-gallery,.gatard-contact-page) svg {
  image-rendering: auto;
}

:where(#gatard-home,#gatard-carte,#gatard-events,#gatard-gallery,.gatard-contact-page) svg {
  shape-rendering: geometricPrecision;
}

/* Accueil : uniquement dimensionnement des vraies images/SVG déjà présentes. */
#gatard-home .gatard-home__icon-frame {
  display: grid !important;
  place-items: center !important;
  flex: 0 0 auto !important;
  overflow: visible !important;
}
#gatard-home .gatard-home__icon-frame--feature {
  width: clamp(46px, calc(var(--gatard-home-icon,42px) + 10px), 58px) !important;
  height: clamp(46px, calc(var(--gatard-home-icon,42px) + 10px), 58px) !important;
  min-width: 0 !important;
}
#gatard-home .gatard-home__icon-frame--value {
  width: clamp(38px, calc(var(--gatard-home-icon,42px) + 2px), 48px) !important;
  height: clamp(38px, calc(var(--gatard-home-icon,42px) + 2px), 48px) !important;
  min-width: 0 !important;
}
#gatard-home .gatard-home__icon-frame--menu {
  width: clamp(56px, calc(var(--gatard-home-icon,42px) + 28px), 78px) !important;
  height: clamp(56px, calc(var(--gatard-home-icon,42px) + 28px), 78px) !important;
  min-width: 0 !important;
}
#gatard-home .gatard-home__icon-frame :is(img,svg),
#gatard-home .gatard-home__menu-icon {
  display:block !important;
  width:72% !important;
  height:72% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:auto !important;
}
#gatard-home .gatard-home__icon-frame--menu :is(img,svg),
#gatard-home .gatard-home__menu-icon { width:86% !important; height:86% !important; }
#gatard-home .gatard-home__button-icon {
  display:inline-grid !important;
  place-items:center !important;
  width:clamp(17px,1.15vw,20px) !important;
  height:clamp(17px,1.15vw,20px) !important;
  flex:0 0 auto !important;
  vertical-align:middle !important;
}
#gatard-home .gatard-home__button-icon svg,
#gatard-home .gatard-home__location-time-icon {
  width:100% !important;
  height:100% !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.9 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
#gatard-home .gatard-home__location-time {
  display:flex !important;
  align-items:flex-start !important;
  gap:6px !important;
}
#gatard-home .gatard-home__location-time-icon {
  width:clamp(14px,1vw,16px) !important;
  height:clamp(14px,1vw,16px) !important;
  flex:0 0 auto !important;
  margin-top:.17em !important;
}

/*
 * Emplacements : on conserve les pictogrammes CSS historiques du module.
 * Ils sont nets à toute densité et surtout ne rajoutent aucune seconde icône.
 */
#gatard-locations .gatard-icon {
  width:var(--gatard-locations-icon,24px) !important;
  height:var(--gatard-locations-icon,24px) !important;
  min-width:var(--gatard-locations-icon,24px) !important;
  min-height:var(--gatard-locations-icon,24px) !important;
  flex:0 0 var(--gatard-locations-icon,24px) !important;
}

/*
 * Événements : IMPORTANT — front-events.css possède déjà son propre système
 * d'icônes (images SVG, backgrounds et règles historiques). On ne crée ici
 * aucun pseudo-élément et on ne force pas display:block sur une seconde source.
 */
#gatard-events :is(.gatard-events__round-ico,.gatard-events__line-ico) > img {
  image-rendering:auto !important;
  object-fit:contain !important;
  object-position:center !important;
}

/* Galerie : dimensionnement des images réelles uniquement. */
#gatard-gallery.gatard-gallery--reference .gatard-gallery__tab-ico {
  display:grid !important;
  place-items:center !important;
  width:clamp(38px,calc(var(--gatard-gallery-icon,30px) + 16px),50px) !important;
  height:clamp(38px,calc(var(--gatard-gallery-icon,30px) + 16px),50px) !important;
  flex-basis:auto !important;
}
#gatard-gallery.gatard-gallery--reference :is(.gatard-gallery__tab-ico img,.gatard-gallery__stats img) {
  width:var(--gatard-gallery-icon,30px) !important;
  height:var(--gatard-gallery-icon,30px) !important;
  max-width:100% !important;
  object-fit:contain !important;
}

/* Carte : uniquement les fichiers réellement rendus. */
#gatard-carte .gatard-carte__phone-icon,
#gatard-carte .gatard-carte__note-icon {
  display:grid !important;
  place-items:center !important;
  width:clamp(42px,calc(var(--gatard-carte-icon,28px) + 20px),52px) !important;
  height:clamp(42px,calc(var(--gatard-carte-icon,28px) + 20px),52px) !important;
  min-width:0 !important;
  flex:0 0 auto !important;
}
#gatard-carte .gatard-carte__phone-icon svg,
#gatard-carte .gatard-carte__note-icon img {
  width:var(--gatard-carte-icon,28px) !important;
  height:var(--gatard-carte-icon,28px) !important;
  max-width:80% !important;
  max-height:80% !important;
  object-fit:contain !important;
}

/* Contact : SVG natifs, aucun pseudo-élément ajouté. */
.gatard-contact-page :is(.gatard-contact-info__icon,.gatard-contact-sidebar__icon,.gatard-contact-tab__icon,.gatard-contact-modal__icon) svg {
  shape-rendering:geometricPrecision !important;
  vector-effect:non-scaling-stroke;
}
.gatard-contact-page .gatard-contact-info__icon { width:clamp(44px,3vw,56px) !important; }
.gatard-contact-page .gatard-contact-sidebar__icon { width:clamp(48px,3.2vw,58px) !important; }

@media (max-width:1180px) {
  #gatard-home .gatard-home__icon-frame--feature {
    width:clamp(44px,calc(var(--gatard-home-icon,36px) + 10px),52px) !important;
    height:clamp(44px,calc(var(--gatard-home-icon,36px) + 10px),52px) !important;
  }
}

@media (max-width:767px) {
  #gatard-home .gatard-home__icon-frame--feature {
    width:clamp(44px,calc(var(--gatard-home-icon,30px) + 16px),50px) !important;
    height:clamp(44px,calc(var(--gatard-home-icon,30px) + 16px),50px) !important;
  }
  #gatard-home .gatard-home__icon-frame--value {
    width:clamp(36px,calc(var(--gatard-home-icon,30px) + 8px),42px) !important;
    height:clamp(36px,calc(var(--gatard-home-icon,30px) + 8px),42px) !important;
  }
  #gatard-home .gatard-home__icon-frame--menu {
    width:clamp(54px,calc(var(--gatard-home-icon,30px) + 28px),62px) !important;
    height:clamp(54px,calc(var(--gatard-home-icon,30px) + 28px),62px) !important;
  }
  #gatard-gallery.gatard-gallery--reference .gatard-gallery__tab-ico {
    width:clamp(38px,calc(var(--gatard-gallery-icon,22px) + 16px),42px) !important;
    height:clamp(38px,calc(var(--gatard-gallery-icon,22px) + 16px),42px) !important;
  }
  #gatard-carte .gatard-carte__phone-icon,
  #gatard-carte .gatard-carte__note-icon {
    width:clamp(40px,calc(var(--gatard-carte-icon,22px) + 18px),46px) !important;
    height:clamp(40px,calc(var(--gatard-carte-icon,22px) + 18px),46px) !important;
  }
  .gatard-contact-page .gatard-contact-info__icon { width:42px !important; }
  .gatard-contact-page .gatard-contact-sidebar__icon { width:48px !important; }
}
