/*
 Theme Name:     POLÉMIA - plateforme de dons
 Template:       Divi
 Description:    Styles optimisés (performance/maintenance)
 Version:        1.1.0
*/

/* =========================================================
   Variables (couleurs & typo)
========================================================= */
:root{
  --brand-blue:     #447cbf;
  --brand-blue-2:   #4aaed5;
  --brand-green:    #67b76a;
  --gray-900:       #111;
  --gray-800:       #414141;
  --gray-300:       #d1d1d1;
  --gray-200:       #efefef;
  --gray-150:       #ebebeb;
  --accent-yellow:  #FFF59D;
  --radius-sm:      5px;
  --radius-md:      6px;
  --radius-lg:      8px;
  --shadow-none:    0 0 0 rgba(0,0,0,0);
  --anim-fast:      .2s ease;
  --anim-slow:      .8s ease;
}

/* =========================================================
   Base / Typo
========================================================= */
h1.entry-title{
  font-family:'Montserrat',Helvetica,Arial,Lucida,sans-serif;
  font-weight:800 !important; /* Divi */
}
div.dashboard-header h1{ text-transform:capitalize !important; }

/* listes par défaut du contenu */
#left-area ul,
.entry-content ul,
.et-l--body ul,
.et-l--footer ul,
.et-l--header ul{
  list-style:disc;
  padding:0 0 23px 0;
  line-height:26px;
}

/* éléments accentués */
.et-search-form,
blockquote{ border-color:var(--brand-blue-2); }

/* marges de titres sur quelques pages */
body.page-id-3 h3,
body.page-id-19922 h3,
body.page-id-19921 h3{ margin-top:35px; }

/* =========================================================
   WooCommerce – Champs / UI / Messages
========================================================= */
.woocommerce form .form-row .input-text,
input.p-Input-input{
  font-size:14px;
  padding:16px;
  background:#efefef !important;
  color:var(--gray-800) !important;
  line-height:1.7;
  border-radius:var(--radius-md) !important;
  border:1px solid #ccc !important;
  transition: background-color var(--anim-slow), color var(--anim-slow);
}
.woocommerce form .form-row .input-text:hover,
input.p-Input-input:hover{ background:var(--gray-150) !important; }

p#billing_address_1_field,
p#billing_city_field,
p#billing_phone_field{ margin-top:15px; }

.woocommerce form .form-row label{
  font-size:12px;
  text-transform:uppercase;
}

.woocommerce table.shop_table{ width:100% !important; }
div.woocommerce-additional-fields{ margin-top:20px; }
form.address-form input[type="text"]{ padding:15px !important; }
div.et_pb_module.et_pb_wc_checkout_payment_info.et_pb_wc_checkout_payment_info_0{ border-radius:var(--radius-md) !important; }
div.ppcp-messages{ padding:1.5em 2em 0 2em !important; }

/* Boutons Woo / génériques */
button.button,
a.woocommerce-Button,
a.button{
  padding:5px 10px !important;
  border-radius:var(--radius-sm) !important;
  font-size:16px !important;
  color:#fff !important;
  background:var(--brand-blue) !important;
  border-color:var(--brand-blue) !important;
}

/* Messages / notices */
.woocommerce .woocommerce-info,
.woocommerce-info{
  background:var(--accent-yellow) !important;
  color:var(--gray-800) !important;
  border-radius:var(--radius-sm);
}
.woocommerce .woocommerce-error{
  background:var(--brand-green);
  border-radius:var(--radius-sm);
}
.woocommerce-info a,
.woocommerce-message a{ color:var(--brand-blue) !important; }
ul.woocommerce-error li a{ color:var(--accent-yellow); }

/* Panier/checkout */
.woocommerce-checkout #payment ul.payment_methods{
  text-align:left;
  padding:1em !important;
  border-bottom:1px solid rgba(104,87,125,.14);
  margin:0;
  list-style:none;
}

/* masquer quelques lignes */
tr.recurring-totals,
tr.cart-subtotal{ display:none; }

/* =========================================================
   Plugin Don (WCDP)
========================================================= */
.wcdp-body input.wcdp-donation-amount{
  padding:8px;
  font-size:16px;
}

.wcdp_options>li>label{
  text-align:center;
  display:block;
  background:var(--gray-200) !important;
  color:var(--gray-800);
  padding:12px;
  cursor:pointer;
  border-radius:var(--radius-md);
  border:1px solid #ccc !important;
  transition:background-color var(--anim-slow), color var(--anim-slow);
}
.wcdp_options>li>label:hover{
  background:var(--gray-300) !important;
  color:var(--gray-800);
}
ul.wcdp_options>li>input:checked+label{
  background:var(--brand-blue) !important;
  color:#fff !important;
}

/* override générique (états personnalisés) */
ul.wcdp_options>li>input:checked+label{
  background:var(--label-inactive);
  color:var(--label-text);
}

abbr[title]{ text-decoration:none !important; }

/* Thermomètre – fond & anim fluide, coins propres */
.wcdp-progress-style-2 .wcdp-thermometer{
  border-radius:3px !important;
  background:#f1f1f1 !important;
}
.wcdp-thermometer-fg{
  position:relative;
  overflow:hidden;
  border-radius:inherit;
}
.wcdp-thermometer-fg::after{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  pointer-events:none;
  background-image:linear-gradient(90deg, var(--brand-blue), var(--brand-green), var(--brand-blue));
  background-size:200% 100%;
  animation:wcdp-gradient-move 4s linear infinite;
  will-change:background-position;
}
@keyframes wcdp-gradient-move{
  0%{   background-position:0% 50%; }
  100%{ background-position:200% 50%; }
}

/* Libellés */
label.wcdp-button-label,
label.wcdp_label_custom_amount{
  border-radius:var(--radius-sm) !important;
  padding:15px !important;
}

/* Variation heading – fusion */
label.wcdp-variation-heading{
  font-family:'Montserrat',Helvetica,Arial,Lucida,sans-serif;
  font-weight:700;
  font-size:12px;
  line-height:1.5;
  color:var(--gray-800);
  text-transform:uppercase;
  letter-spacing:1px;
}

/* Montants – règle unique */
div#wcdp_va_amount ul#wcdp_1_wcdp_amount{ padding:0 0 23px 0 !important; }

/* =========================================================
   Composants divers
========================================================= */
.lwp-slick-slider .slick-slide{
  padding-right:0 !important;
  padding-left:0 !important;
}
.form-grid-raised__details>span:first-child{ font-size:1.3rem !important; }
.form-grid-raised__details>span:last-child{  font-size:max(1.2rem,16px) !important; }
h2.wc-bacs-bank-details-heading{ margin-top:35px; }
i.fas.fa-sign-out-alt{ color:#dd0000; }

/* Gradient animé générique */
.animate-gradient{
  background-size:400% 400%;
  animation:gradient 5s ease infinite;
}
@keyframes gradient{
  0%{   background-position:0% 50%; }
  50%{  background-position:100% 50%; }
  100%{ background-position:0% 50%; }
}

/* Menu top aligné à droite */
ul#menu-menu_top.et-menu nav{
  -webkit-box-pack:right !important;
  -ms-flex-pack:right !important;
  justify-content:right !important;
}

/* =========================================================
   Pages spécifiques
========================================================= */
body.page-id-2 ul#wcdp-invalid-fields .wcdp-button{
  background:none !important;
  color:var(--gray-800);
  text-align:left;
}
body.page-id-19466 th.product-quantity,
body.page-id-19466 td.product-quantity{ display:none; }

/* =========================================================
   Responsive
========================================================= */
@media (max-width:992px){
  .table-responsive table{ width:100% !important; }
}

/* Afficher le menu desktop sur mobile */
@media (max-width:980px){
  .asmip-open-mobile-menu .et_pb_menu__menu{ display:flex !important; }
  .asmip-open-mobile-menu .et_mobile_nav_menu{ display:none !important; }

  /* Taille des <sup> dans modules Divi */
  .et_pb_text sup,
  .et_pb_blurb sup,
  .et_pb_slider sup,
  .et_pb_testimonial sup,
  .et_pb_accordion_item sup,
  .et_pb_toggle sup,
  .et_pb_cta sup{
    font-size:75%;
    bottom:1em;
  }
}

/* =========================================================
   Composant fréquence de don (KMS)
========================================================= */
input#custom_amount,
input.kms-input,
select.kms-select{ background:#f8f7fc !important; }
input.kms-input{ padding:12px; }

.kms-frequency-section{
  display:flex; align-items:center; flex-wrap:wrap; gap:.75rem;
  font-family:system-ui,sans-serif;
}
.kms-frequency-label{ font-weight:600; margin-right:.5rem; }
.kms-frequency-options{ display:flex; gap:.75rem; flex-wrap:wrap; }

/* Cartes */
.kms-frequency-card{
  display:flex; align-items:center; gap:.6rem; cursor:pointer;
  border:2px solid #ccc; border-radius:var(--radius-md);
  padding:.45rem .8rem; transition:all var(--anim-fast); background:#fff;
}
/* Radios */
.kms-frequency-card input[type="radio"]{
  accent-color:#0073aa; transform:scale(1.2); cursor:pointer;
}
/* Hover */
.kms-frequency-card:hover{
  border-color:#0073aa; background:#f0f8ff;
}
/* Sélection (support moderne) */
.kms-frequency-card:has(input[type="radio"]:checked){
  border-color:#0073aa; background:#e7f3ff;
}
/* Titre */
.kms-frequency-title{ font-weight:500; color:var(--gray-900); transition:color var(--anim-fast); }
.kms-frequency-card:has(input[type="radio"]:checked) .kms-frequency-title{
  color:#0073aa; font-weight:600;
}
/* Focus clavier */
.kms-frequency-card:has(input[type="radio"]:focus-visible){
  outline:3px solid rgba(0,115,170,.35); outline-offset:2px;
}
/* Responsive */
@media (max-width:480px){
  .kms-frequency-section{ flex-direction:column; align-items:flex-start; }
}
