/*
Theme Name: Kids Fun Park — Flatsome Child
Theme URI: https://kidsfunpark.ch
Description: Thème enfant Flatsome pour Kids Fun Park (3 parcs : Etoy, Sion, Martigny). Reproduit la refonte design haute-fidélité. Billetterie via WooCommerce, réservations via Bookly. L'enqueue des styles parent/enfant et des Google Fonts est géré en PHP (functions.php), pas via @import.
Author: Kids Fun Park
Template: flatsome
Version: 1.0
Text Domain: flatsome-child-kfp
*/

/* ==========================================================================
   Design tokens (README) — variables CSS
   ========================================================================== */
:root{
  /* Navy / fonds foncés */
  --kfp-navy:#0B1230;
  --kfp-navy-2:#16215C;
  /* Accents */
  --kfp-yellow:#FFC629;      --kfp-yellow-hover:#E8B300;
  --kfp-coral:#FF6F4C;       --kfp-coral-hover:#E85A3A;
  --kfp-blue:#1E73BE;
  --kfp-violet:#7C5CE0;      /* Etoy */
  --kfp-magenta:#E11D6C;     /* Sion */
  --kfp-green:#2CAE5D;       --kfp-green-2:#1F8A48;
  --kfp-orange:#E08B1B;      --kfp-orange-2:#B9840A;
  /* Fonds clairs */
  --kfp-bg:#F4F5FA;
  --kfp-cream:#FFF9F2;       --kfp-cream-2:#F3E6D6;
  /* Textes */
  --kfp-text-1:#0B1230;
  --kfp-text-2:#5B6180;
  --kfp-text-3:#77809E;
  --kfp-white:#ffffff;
  /* Formes */
  --kfp-pill:999px;
  --kfp-card-radius:20px;
  --kfp-card-shadow:0 10px 30px rgba(11,18,48,0.08);
  --kfp-card-shadow-strong:0 20px 40px rgba(11,18,48,0.18);
  /* Typo */
  --kfp-font-title:'Baloo 2', system-ui, sans-serif;
  --kfp-font-body:'Plus Jakarta Sans', system-ui, sans-serif;
}

/* ==========================================================================
   Base
   ========================================================================== */
body.kfp-body{
  margin:0;
  background:var(--kfp-bg);
  font-family:var(--kfp-font-body);
  color:var(--kfp-text-1);
}
.kfp-body *{box-sizing:border-box;}
.kfp-body img{max-width:100%;}

/* Titres Baloo 2 (utilitaire réutilisable) */
.kfp-title,
.kfp-body h1.kfp-title,
.kfp-body h2.kfp-title{
  font-family:var(--kfp-font-title);
  font-weight:800;
  line-height:1.05;
  color:var(--kfp-navy);
}

/* ==========================================================================
   Boutons pill réutilisables
   ========================================================================== */
.kfp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--kfp-font-body);
  font-weight:800;font-size:14px;letter-spacing:.02em;
  padding:14px 26px;border-radius:var(--kfp-pill);
  text-decoration:none;border:none;cursor:pointer;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.kfp-btn:hover{transform:translateY(-1px);}
.kfp-btn-yellow{background:var(--kfp-yellow);color:var(--kfp-navy);}
.kfp-btn-yellow:hover{background:var(--kfp-yellow-hover);color:var(--kfp-navy);}
.kfp-btn-coral{background:var(--kfp-coral);color:#fff;}
.kfp-btn-coral:hover{background:var(--kfp-coral-hover);color:#fff;}
.kfp-btn-white{background:#fff;color:var(--kfp-navy);}
.kfp-btn-white:hover{background:#F0F1F8;color:var(--kfp-navy);}

/* ==========================================================================
   Cartes / tags / pills réutilisables
   ========================================================================== */
.kfp-card{
  background:#fff;
  border-radius:var(--kfp-card-radius);
  box-shadow:var(--kfp-card-shadow);
}
.kfp-card--strong{box-shadow:var(--kfp-card-shadow-strong);}
.kfp-tag,.kfp-pill{
  display:inline-flex;align-items:center;gap:6px;
  border-radius:var(--kfp-pill);
  padding:6px 14px;font-weight:700;font-size:13px;
  background:#DCEBFA;color:var(--kfp-blue);
}

/* ==========================================================================
   Navigation — sous-menu Groupes + version mobile
   ========================================================================== */
.kfp-groupes .kfp-dropdown{display:none;}
.kfp-groupes:hover .kfp-dropdown,
.kfp-groupes:focus-within .kfp-dropdown{display:block;}      /* fallback tap mobile */
.kfp-nav-link.active{color:var(--kfp-yellow) !important;}
.kfp-dropdown a:hover{background:#F0F1F8;}

/* ==========================================================================
   RESPONSIVE — le desktop reste fidèle aux maquettes ; on adapte < 1024 / 640
   Les maquettes utilisent des grid-template-columns fixes (repeat(n,1fr),
   1.1fr .9fr, 1.4fr 1fr 1fr 1fr…). On les repasse en colonnes sur mobile.
   ========================================================================== */
@media (max-width:1024px){
  /* Grilles multi-colonnes -> 2 colonnes */
  .kfp-body [style*="grid-template-columns:repeat(4"],
  .kfp-body [style*="grid-template-columns:repeat(3"],
  .kfp-body [style*="grid-template-columns:1.4fr 1fr 1fr 1fr"]{
    grid-template-columns:repeat(2,1fr) !important;
  }
  /* Alternance texte/image et colonnes 2 -> 1 */
  .kfp-body [style*="grid-template-columns:1.1fr"],
  .kfp-body [style*="grid-template-columns:0.9fr"],
  .kfp-body [style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr !important;
  }
  /* Titres H1 hero : 56 -> ~40 */
  .kfp-body h1{font-size:40px !important;}
  /* Nav : réduit espacements */
  .kfp-nav-inner{gap:14px !important;padding:10px 18px !important;}
  .kfp-nav-links{gap:16px !important;}
}

@media (max-width:640px){
  /* Toutes les grilles -> 1 colonne */
  .kfp-body [style*="grid-template-columns"]{
    grid-template-columns:1fr !important;
  }
  /* Réduit paddings de section géants */
  .kfp-body [style*="padding:90px"],
  .kfp-body [style*="padding:80px"],
  .kfp-body [style*="padding:70px"]{padding-left:18px !important;padding-right:18px !important;}
  /* Titres : H1 56 -> 32, H2 38 -> 24 */
  .kfp-body h1{font-size:32px !important;}
  .kfp-body h2{font-size:24px !important;}
  /* Hero : hauteur mini réduite */
  .kfp-body section[style*="min-height:640px"],
  .kfp-body section[style*="min-height:520px"]{min-height:auto !important;padding-top:40px !important;padding-bottom:40px !important;}
  /* Nav mobile : logo + liens compacts, dropdown pleine largeur au tap */
  .kfp-nav-inner{flex-wrap:wrap !important;}
  .kfp-nav-links{gap:12px 14px !important;font-size:13px;}
  .kfp-groupes .kfp-dropdown{position:static !important;box-shadow:none !important;min-width:auto !important;padding:4px 0 !important;}
  .kfp-logo{height:44px !important;}
}

/* ===== Menu mobile (burger) ===== */
.kfp-burger{display:none;}
@media (max-width:1024px){
  .kfp-nav-links{display:none !important;}
  .kfp-nav-cta{display:none !important;}
  .kfp-burger{display:flex !important;}
  .kfp-nav-inner{flex-wrap:nowrap !important;}
}
/* Fidélité : grilles internes -> 1 colonne sur mobile */
@media (max-width:900px){
  .kfp-zako-grid{grid-template-columns:1fr !important;}
  .kfp-pass-steps{grid-template-columns:1fr !important;}
  .kfp-zako-chips{grid-template-columns:1fr !important;}
}

/* ===== Bookly : design de base (skin retiré 27.08, demande Nicolas) — on ne garde que la typo des libellés ===== */
.kfp-bookly-wrap .bookly-form{font-family:'Plus Jakarta Sans',sans-serif;}
.kfp-bookly-wrap .bookly-progress-tracker{font-family:'Baloo 2',sans-serif !important;}

/* ===== Formulaire Contact (Forminator 31005) ===== */
.kfp-form-card{background:#fff;border-radius:24px;padding:36px;box-shadow:0 10px 30px rgba(11,18,48,0.08)}
.kfp-form-card .forminator-label{font-size:14.5px !important;font-weight:700 !important;color:#16215C !important;font-family:'Plus Jakarta Sans',sans-serif !important}
.kfp-form-card .forminator-input,.kfp-form-card .forminator-textarea,.kfp-form-card select.forminator-select2{width:100% !important;box-sizing:border-box;padding:13px 16px !important;border-radius:10px !important;border:1px solid #E4E7F2 !important;background:#F7F8FB !important;font-size:14.5px !important;font-family:'Plus Jakarta Sans',sans-serif !important;color:#3A4160 !important}
.kfp-form-card .forminator-input:focus,.kfp-form-card .forminator-textarea:focus{border-color:#16215C !important;box-shadow:0 0 0 3px rgba(22,33,92,0.12) !important;outline:none}
.kfp-form-card .forminator-radio,.kfp-form-card .forminator-checkbox{font-size:14.5px !important;color:#3A4160 !important;font-family:'Plus Jakarta Sans',sans-serif !important}
.kfp-form-card .forminator-radio input,.kfp-form-card .forminator-checkbox input{accent-color:#16215C}
.kfp-form-card .forminator-button-submit,.kfp-form-card button.forminator-button{width:100% !important;display:flex !important;align-items:center;justify-content:center;gap:10px;background:#16215C !important;color:#fff !important;font-weight:700 !important;font-size:15px !important;padding:16px !important;border:none !important;border-radius:12px !important;cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif !important;transition:background .2s}
.kfp-form-card .forminator-button-submit:hover,.kfp-form-card button.forminator-button:hover{background:#1E73BE !important}
.kfp-form-card .forminator-response-message.forminator-success{background:#E8F7EE;border-radius:10px;padding:14px 16px;color:#176B3A;font-weight:600}
.kfp-form-card .forminator-response-message.forminator-error{background:#FDECEF;border-radius:10px;padding:14px 16px;color:#B4123F;font-weight:600}
@media (max-width:849px){.kfp-form-card{padding:24px}}

/* ===== Bookly reservation : masquer le filtre categorie + retirer les cadres bleus ===== */
.kfp-bookly-wrap .bookly-form-group[data-type="category"]{display:none !important}
.kfp-bookly-wrap .bookly-form .bookly-left,
.kfp-bookly-wrap .bookly-form .bookly-available-date,
.kfp-bookly-wrap .bookly-form .bookly-week-days,
.kfp-bookly-wrap .bookly-form .bookly-time-range,
.kfp-bookly-wrap .bookly-form .bookly-form-group.bookly-time-from,
.kfp-bookly-wrap .bookly-form .bookly-form-group.bookly-time-to{border:none !important;background:transparent !important}
.kfp-bookly-wrap .bookly-form .bookly-left,
.kfp-bookly-wrap .bookly-form .bookly-available-date,
.kfp-bookly-wrap .bookly-form .bookly-week-days,
.kfp-bookly-wrap .bookly-form .bookly-time-range{background:transparent !important}
