/*
Theme Name: Dronix-theme
Author: ChatGPT
Description: Bannière <picture> sans crop, header = hauteur image, menu centré desktop, menu mobile via portal (toujours devant), sous-menus accordéon, Services/Cards/Footer.
Version: 1.5.0
Text Domain: dronix-theme
*/

/* =========================
   RESET & BASE
========================= */
*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{ background:#fff; font-family:sans-serif; color:#111; line-height:1.5; }
img{ max-width:100%; height:auto; display:block; }

/* =========================
   VARIABLES
========================= */
:root{
  --site-max: 900px;
  --site-pad: 16px;

  --menu-button-bg:#ff7a00;
  --menu-button-bg-hover:#e66f00;
  --brand-orange:#ff6600;
  --menu-hover:#FFB733;
  --border-soft:#e6e8ea;
}

/* =========================
   CONTAINERS (centrage pages)
========================= */
.wrap,
.site,
.site-content,
.content-area,
.entry-content > *:not(.alignfull):not(.alignwide){
  max-width: var(--site-max);
  margin-left:auto; margin-right:auto;
  padding-left:var(--site-pad); padding-right:var(--site-pad);
}
.alignwide{ max-width: calc(var(--site-max) + 160px); margin-left:auto; margin-right:auto; }
.alignfull{ width:100%; max-width:none; margin:0; padding:0; }

/* Le header reste pleine largeur */
.site-header .wrap{ max-width:none !important; width:100% !important; padding:0 !important; }

/* =========================
   HEADER / BANNIÈRE
   (✅ header = hauteur réelle de l’image)
========================= */
.site-header{
  position:relative; width:100%;
  border-bottom:1px solid var(--border-soft);
  min-height:0 !important;   /* neutralise toute min-height */
  height:auto !important;
  overflow:hidden;
  z-index:10;
}
.hero-media{
  display:block;
  line-height:0;    /* supprime l'espace inline sous l'image */
  font-size:0;
}
.hero-media .hero-img{
  display:block;
  width:100%;
  height:auto;      /* image garde son ratio => pas de crop */
  object-fit:contain;
}

/* Calque qui porte la nav au-dessus de l'image
   (ne force plus de hauteur) */
.site-header-inner{
  position:absolute; inset:0;
  z-index:11;
  padding:32px;
  min-height:0 !important;
  pointer-events:none; /* on réactive sur nav + bouton */
}

/* =========================
   NAVIGATION — DESKTOP
========================= */
nav.site-navigation{
  position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%);
  z-index:12;
  display:flex; justify-content:center; align-items:center;
  margin:0; pointer-events:auto; max-width:96vw;
}
.primary-menu{
  display:flex; gap:20px; list-style:none; margin:0; padding:0;
  align-items:center; justify-content:center; flex-wrap:nowrap; white-space:nowrap;
}
.primary-menu > li{ position:relative; }
.primary-menu > li > a{
  color:#fff !important; text-decoration:none;
  font-size:clamp(16px,1.2vw,20px); font-weight:600; padding:4px 0;
  text-shadow:0 1px 2px rgba(0,0,0,.45);
  border-bottom:1px dashed transparent; transition:.25s;
}
.primary-menu > li > a:hover{
  color:#FFD27A !important;
  border-bottom-color:rgba(255,255,255,.6);
}

/* Dropdown desktop */
.primary-menu li.menu-item-has-children > a{ padding-right:18px; position:relative; }
.primary-menu li.menu-item-has-children > a::after{
  content:""; position:absolute; right:2px; top:50%; transform:translateY(-50%);
  border-left:4px solid transparent; border-right:4px solid transparent; border-top:6px solid #fff;
  transition:.2s;
}
.primary-menu li.menu-item-has-children:hover > a::after{
  transform:translateY(-50%) rotate(180deg);
  border-top-color:#FFD27A;
}
.primary-menu .sub-menu{
  position:absolute; top:calc(100% + 10px); left:50%;
  transform:translateX(-50%) translateY(-6px);
  min-width:240px; list-style:none; margin:0; padding:8px 10px;
  background:#fff; border:1px solid #ffb68a; border-radius:18px;
  box-shadow:0 14px 34px rgba(255,102,0,.16);
  opacity:0; visibility:hidden; transition:opacity .18s, transform .18s, visibility .18s;
  z-index:14;
}
.primary-menu li.menu-item-has-children:hover > .sub-menu{
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0);
}
.primary-menu .sub-menu a{
  display:block; color:#111 !important; padding:10px 12px; border-radius:10px; text-align:center;
}
.primary-menu .sub-menu a:hover{ background:#fff6ef; }

/* Bouton “Devis en ligne” */
.primary-menu > li.menu-button > a{
  background:var(--menu-button-bg);
  color:#fff !important; padding:8px 18px; border-radius:50px; font-weight:600; white-space:nowrap;
  border:1px solid transparent; box-shadow:0 6px 16px rgba(255,122,0,.30);
  text-shadow:none; transition: background .25s, transform .2s, box-shadow .25s;
}
.primary-menu > li.menu-button > a:hover{
  background:var(--menu-button-bg-hover);
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(255,122,0,.36);
}

/* =========================
   HAMBURGER
========================= */
.menu-toggle{
  position:absolute; top:14px; right:14px;
  width:42px; height:42px; border:0; border-radius:10px;
  background:rgba(0,0,0,.35); cursor:pointer;
  z-index:20; display:none; backdrop-filter:blur(3px);
  pointer-events:auto;
}
.menu-toggle .bar{
  display:block; width:22px; height:3px; margin:4px auto;
  background:#fff; border-radius:3px; box-shadow:0 1px 0 rgba(0,0,0,.25);
}
.menu-toggle:focus{ outline:2px solid rgba(255,255,255,.6); outline-offset:2px; }

@media (min-width:981px){ .submenu-toggle{ display:none !important; } }

/* =========================
   PORTAL WRAPPER (pour mobile)
========================= */
#dronix-portal{
  position: fixed;
  inset: 0;
  z-index: 2147483600;   /* très haut */
  pointer-events: none;
}
#dronix-portal.open{ pointer-events: auto; }

/* =========================
   MOBILE / TABLETTE
========================= */
@media (max-width:980px){
  .menu-toggle{ display:block; }

  /* Nav dans le portal (quand .in-portal) : au-dessus de tout, sans bloquer le scroll */
  #dronix-portal .site-navigation.in-portal{
    position: absolute;
    top: 8vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(92vw, 360px);
    max-height: 84vh;
    overflow: auto;
    background: #fff;
    border: 1px solid #ffb68a;
    border-radius: 14px;
    box-shadow: 0 18px 42px rgba(255,102,0,.24);
    padding: 10px;
    z-index: 2147483647 !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s, transform .2s, visibility .2s;
  }
  #dronix-portal .site-navigation.in-portal.is-open{
    opacity: 1;
    visibility: visible;
  }

  /* Fallback si la nav n'est pas dans le portal (reste très haut et visible) */
  nav.site-navigation{
    position: fixed !important;
    top: 8vh !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: min(92vw, 360px) !important;
    max-height: 84vh !important;
    overflow: auto !important;
    background: #fff !important;
    border: 1px solid #ffb68a !important;
    border-radius: 14px !important;
    box-shadow: 0 18px 42px rgba(255,102,0,.24) !important;
    padding: 10px !important;
    z-index: 2147483400 !important;
    opacity: 0;
    visibility: hidden;
  }
  nav.site-navigation.is-open{ opacity: 1; visibility: visible; }

  /* Liste verticale + sous-menus accordéon centrés */
  .primary-menu{ display:block !important; margin:0; padding:0; text-align:center; }
  .primary-menu > li{ list-style:none; }
  .primary-menu > li > a{
    display:inline-flex; align-items:center; justify-content:center;
    padding:12px 12px; font-size:16px !important; color:#111 !important; text-shadow:none !important;
  }

  .primary-menu .sub-menu{
    position:static !important; left:auto !important; right:auto !important;
    transform:none !important; opacity:1 !important; visibility:visible !important;
    display:none; width:calc(100% - 20px) !important;
    margin:8px auto 10px !important; padding:8px 10px !important; text-align:center !important;
    background:#fff6ef !important; border:1px solid #ffb68a !important; border-radius:12px !important; box-shadow:none !important;
  }
  .primary-menu li.menu-item-has-children.open > .sub-menu{ display:block !important; }

  .primary-menu li.menu-item-has-children > a::after{ display:none !important; }
  .submenu-toggle{
    background:transparent; border:0; padding:0 6px; margin:0;
    display:inline-flex; align-items:center; vertical-align:middle; cursor:pointer; line-height:1;
  }
  .submenu-toggle::before{ content:"▾"; color:var(--brand-orange); font-size:16px; transform:rotate(0deg); transition:transform .15s; }
  .primary-menu li.menu-item-has-children.open > a + .submenu-toggle::before{ transform:rotate(180deg); }
}

/* =========================
   UI mobile forcée si “zoom fort” (optionnel)
========================= */
body.is-mobile-ui .menu-toggle{ display:block; }

/* Contenu toujours sous la nav */
.site-main{ position:relative; z-index:1; }

/* =========================
   SERVICES / GENERAL-CARD
========================= */
.services{ display:grid; gap:22px; margin:32px 0 64px; }
.general-card{
  background:#fff; border:1px solid #ffb68a; border-radius:18px; padding:22px;
  box-shadow:0 14px 34px rgba(255,102,0,.16); transition:.25s ease;
}
.general-card h2, .general-card h3{ margin-top:0; transition: color .25s ease; }
.general-card:hover{ transform:translateY(-6px); box-shadow:0 18px 42px rgba(255,102,0,.24); border-color:#ff9a66; }
.general-card:hover h2, .general-card:hover h3 { color: var(--brand-orange); }

.services .general-card.service{ display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:18px; }
.services > .general-card.service:nth-child(odd of .general-card.service){ background: linear-gradient(135deg,#fff6ef 0%,#ffffff 100%) !important; }
.services > .general-card.service:nth-child(even of .general-card.service){ background: linear-gradient(225deg,#fff6ef 0%,#ffffff 100%) !important; }
.general-card .text{ line-height:1.6; }

.services .service figure{ margin:0; display:flex; justify-content:center; }
.services .service figure img{ width:70%; height:auto; border-radius:14px; display:block; aspect-ratio:683/1024; }

/* =========================
   FOOTER
========================= */
.site-footer{
  width:100%; margin:0; padding:0; color:#444; font-size:14px;
  background:#fff; border-top:1px solid var(--border-soft);
}
.site-footer .wrap{ max-width:none !important; width:100% !important; padding:0 !important; }
.site-footer-inner{ display:flex; align-items:center; justify-content:space-between; width:100%; gap:16px; padding:24px; }
.footer-menu{ list-style:none; display:flex; gap:14px; margin:0; padding:0; }
.footer-menu a{ text-decoration:none; color:#444; transition:.2s ease; }
.footer-menu a:hover{ color:var(--menu-hover); }

/* =========================
   ADMIN BAR / DIVERS
========================= */
#wpadminbar{ position:fixed; top:0; z-index:2147483647; }
body.admin-bar #dronix-portal{ z-index:2147483500; }
body.admin-bar #dronix-portal .site-navigation.in-portal{ z-index:2147483600 !important; }

/* =========================
   LOGO HTML désactivé (logo intégré à la bannière)
========================= */
.site-branding, .custom-logo{ display:none !important; }

/* ======================================================
   PATCH TEMPORAIRE : menu centré en haut de la bannière
   (desktop uniquement) — ajuster --menu-top-offset si besoin
====================================================== */
:root{
  --menu-top-offset: 10px; /* 16px / 24px / 32px */
}
@media (min-width: 981px){
  nav.site-navigation{
    position: absolute;
    top: var(--menu-top-offset);
    left: 50%;
    transform: translateX(-50%); /* on ne centre plus verticalement */
    z-index: 12;
  }
  .primary-menu .sub-menu{
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%) translateY(-6px);
  }
  .primary-menu li.menu-item-has-children:hover > .sub-menu{
    transform: translateX(-50%) translateY(0);
  }
}
