/* =====================================================================
   Pétales du Monde — expérience mobile
   Feuille partagée par toutes les pages, chargée après les styles de
   chaque page. Tout est dans des media queries : l'ordinateur ne change pas.
   Points de rupture :  ≤ 920px (menu mobile)  ·  ≤ 700px (téléphone)  ·  ≤ 380px (petits écrans)
   ===================================================================== */

/* ------------------------------------------------------------------ éléments propres au mobile (cachés sur ordinateur) */
.actionbar,.search-toggle{display:none;}

/* ------------------------------------------------------------------ ≤ 920px : en-tête + menu mobile */
@media (max-width:920px){
  html{-webkit-text-size-adjust:100%;}
  header .lang-switch{display:flex!important;align-items:center;}
  header .lang-switch button{min-height:44px;min-width:40px;padding:0 8px!important;}
  header .theme-toggle{width:44px!important;height:44px!important;opacity:1!important;display:flex;align-items:center;justify-content:center;}
  .burger{display:flex!important;width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.16);color:#fff;}
  header.solid .burger{background:var(--surface);color:var(--navy);}
  header:not(#siteHeader) .burger{background:var(--surface);color:var(--navy);}   /* en-têtes blancs : le bouton était blanc sur blanc */

  .scrim{z-index:1190;}
  .mobile-panel{z-index:1200;width:min(88vw,380px);height:100vh;height:100dvh;padding:80px 22px calc(22px + env(safe-area-inset-bottom));
    display:flex;flex-direction:column;overscroll-behavior:contain;box-shadow:-24px 0 60px -20px rgba(7,28,51,.6);}
  .mobile-panel{visibility:hidden;transition:right .4s ease,visibility 0s linear .4s;}
  .mobile-panel.open{visibility:visible;transition-delay:0s;}
  .mobile-panel .mp-close{top:14px;right:14px;width:44px;height:44px;}
  .mobile-panel a{display:flex;align-items:center;min-height:52px;padding:12px 0;font-size:1.15rem;}
  .mobile-panel .mp-sub{min-height:44px;font-size:.95rem!important;}
  .mobile-panel a.mp-cta{justify-content:center;margin-top:18px;border:none;border-radius:4px;background:#fff;color:#0c2340;
    font-size:.8rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;min-height:54px;}
  .mp-foot{margin-top:auto;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);}
  .mp-foot .mp-phone{display:flex;align-items:center;gap:10px;margin:0 0 6px;}
  .mp-foot .mp-phone a{display:inline-flex;border:none;min-height:44px;font-size:1.05rem;padding:0;color:var(--sand-light);}
  .mp-foot .mp-phone i{color:#6EE6C8;font-size:1.2rem;}
  .mp-icons{display:flex;gap:10px;margin-top:6px;}
  .mp-icons a{width:48px;height:48px;min-height:48px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:12px;justify-content:center;font-size:1.3rem;}
  body.menu-open,body.modal-open{overflow:hidden;}
}

/* ------------------------------------------------------------------ ≤ 700px : téléphone */
@media (max-width:700px){
  :root{--m-gutter:20px;}
  html,body{overflow-x:clip;}
  body{font-size:16px;line-height:1.6;padding-bottom:calc(60px + env(safe-area-inset-bottom));}
  .container{padding-left:var(--m-gutter)!important;padding-right:var(--m-gutter)!important;}
  img{max-width:100%;}

  /* en-tête compact : le devis passe dans le menu et la barre du bas */
  header{padding:10px 0!important;}
  header .container{padding:0 16px!important;gap:8px;}
  .logo-img{width:68px;height:68px;border-radius:12px;}
  header .header-actions{margin-left:0!important;gap:4px!important;}
  header .header-actions > .btn{display:none!important;}

  /* rythme et titres */
  .section{padding:52px 0!important;}
  .section-head{margin-bottom:26px!important;}
  .section-head h2,.section h2{font-size:clamp(1.55rem,7vw,1.9rem)!important;line-height:1.18;}
  .section-head p{font-size:1rem!important;margin-top:12px!important;}
  .reveal{transform:translateY(14px);transition-duration:.45s;}
  .btn{min-height:50px;padding:14px 22px!important;justify-content:center;}

  /* bandeaux de titre des pages intérieures */
  .page-hero{padding:96px 0 34px!important;}
  .page-hero h1{font-size:clamp(1.85rem,8.6vw,2.4rem)!important;line-height:1.12;}
  .page-hero p{font-size:1rem!important;margin-top:10px!important;}

  /* ---------------- hero de l'accueil ---------------- */
  .hero{min-height:100vh;min-height:100svh;align-items:flex-end;}
  .hero::before{background:linear-gradient(180deg,rgba(7,28,51,.55) 0%,rgba(7,28,51,.08) 26%,rgba(7,28,51,.30) 50%,rgba(7,28,51,.93) 100%);}
  .hero video,.hero .hero-fallback{object-position:center 30%;}
  .hero-content{padding-top:92px!important;padding-bottom:64px!important;}
  .hero-content h1{font-size:clamp(2.8rem,13.2vw,3.7rem)!important;line-height:1.06;text-shadow:0 2px 24px rgba(7,28,51,.55);}
  .hero-content h1 .hero-sub{font-size:1.08rem!important;letter-spacing:.06em;line-height:1.55;color:#fff!important;border-left:2px solid #6EE6C8;
    padding-left:10px;margin-bottom:14px!important;text-shadow:0 1px 12px rgba(7,28,51,.7);}
  .hero-actions{flex-direction:column;align-items:stretch;gap:10px!important;margin-top:20px!important;}
  .hero-actions .btn{width:100%;font-size:.78rem;}
  .search-card{margin-top:14px!important;padding:6px!important;border-radius:16px!important;
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:rgba(9,28,50,.72)!important;}  /* le flou casserait le calendrier fixe */
  .search-toggle{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:0 12px;color:#fff;font-weight:700;font-size:.95rem;text-align:left;}
  .search-toggle .ph-magnifying-glass{font-size:1.25rem;color:#6EE6C8;}
  .search-toggle .st-label{flex:1;}
  .search-toggle .st-caret{transition:transform .25s ease;}
  .search-card.open .search-toggle .st-caret{transform:rotate(180deg);}
  .m-js .search-card:not(.open) .search-grid{display:none;}
  .search-grid{grid-template-columns:1fr!important;gap:10px!important;padding:6px 8px 8px;}
  .search-field label{margin-bottom:6px!important;}
  .search-field select,.search-field input,.date-trigger{min-height:48px;font-size:16px!important;}
  .search-btn{min-height:52px;justify-content:center;width:100%;}
  .calendar{position:fixed!important;left:12px!important;right:12px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;width:auto!important;z-index:2600;}
  .cal-nav{width:44px;height:44px;}
  .cal-cell{min-height:40px;}

  /* ---------------- destinations (accueil) : défilement horizontal ---------------- */
  .m-snap{display:flex!important;gap:14px!important;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    margin-left:calc(var(--m-gutter) * -1);margin-right:calc(var(--m-gutter) * -1);padding:4px var(--m-gutter) 18px;scroll-padding-left:var(--m-gutter);scrollbar-width:none;}
  .m-snap::-webkit-scrollbar{display:none;}
  .m-snap > *{flex:0 0 82%!important;max-width:340px;scroll-snap-align:start;}
  .pcard-img img{aspect-ratio:3/2;}

  /* ---------------- page destinations ---------------- */
  .dest-filter{margin:-6px calc(var(--m-gutter) * -1) 22px!important;padding:14px 0 6px!important;border-radius:0!important;border-left:0!important;border-right:0!important;}
  .df-row{display:block!important;margin:0!important;padding:0!important;border:0!important;}
  .df-row + .df-row{margin-top:10px!important;}
  .df-label{display:block;padding:0 var(--m-gutter)!important;margin-bottom:6px;font-size:.68rem!important;}
  .df-chips{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;gap:8px!important;padding:2px var(--m-gutter) 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .df-chips::-webkit-scrollbar{display:none;}
  .df-chips button{flex:0 0 auto;min-height:42px;padding:0 16px!important;font-size:.86rem!important;}
  .df-count{padding:0 var(--m-gutter);}
  #toutes-destinations .pays-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;}
  .all-dest.filtering .all-dest-body{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;}
  #toutes-destinations .pcard{border-radius:14px;}
  #toutes-destinations .pcard-img{aspect-ratio:4/3;}
  #toutes-destinations .pcard-body{padding:11px 12px 12px;}
  #toutes-destinations .pcard-cat{font-size:.62rem;letter-spacing:.1em;}
  #toutes-destinations .pcard-body h3,#toutes-destinations .pcard-body h4{font-size:1.02rem;margin:3px 0 0;line-height:1.2;}
  #toutes-destinations .pcard-body p,#toutes-destinations .pcard-tags{display:none;}
  #toutes-destinations .pcard-link{font-size:0;margin-top:6px;padding-top:0;border-top:0;justify-content:flex-end;}
  #toutes-destinations .pcard-link i{font-size:1.05rem;}
  .all-dest summary{padding:4px 0 22px;}
  .all-dest summary span.more-btn{width:100%;justify-content:center;padding:18px 20px;}
  .region-title{font-size:1.1rem!important;margin:6px 0 14px!important;}
  .region-note{font-size:.92rem;}
  .photo-credits{font-size:.78rem;}

  /* fiche pays : feuille qui monte du bas */
  .modal-overlay{align-items:flex-end!important;padding:0!important;}
  .modal{width:100%;max-width:none!important;max-height:92vh;max-height:92dvh;border-radius:22px 22px 0 0!important;padding:34px 20px calc(24px + env(safe-area-inset-bottom))!important;}
  .modal-overlay.active .modal{animation:sheetUp .3s ease;}
  @keyframes sheetUp{from{transform:translateY(40px);opacity:.4;}to{transform:translateY(0);opacity:1;}}
  .modal-close{width:44px!important;height:44px!important;top:12px!important;right:12px!important;}
  .modal.country-modal{padding:0 0 calc(22px + env(safe-area-inset-bottom))!important;}
  .country-modal .modal-close{position:sticky!important;top:10px!important;margin:10px 10px -54px auto;display:flex;align-items:center;justify-content:center;z-index:6;background:rgba(255,255,255,.95)!important;box-shadow:0 6px 18px -8px rgba(7,28,51,.5);}
  .country-modal .cm-head img{aspect-ratio:16/10!important;}
  .cm-head-txt{padding:18px 20px 0!important;}
  .cm-head-txt h2{font-size:1.7rem!important;}
  #countryModalBody{padding:18px 20px 4px!important;}
  #countryModalCta{margin:6px 20px 0!important;width:calc(100% - 40px);}
  .cm-ideas strong{font-size:1rem;}
  .cm-suggest a,.cm-tags span{min-height:36px;display:inline-flex;align-items:center;}

  /* ---------------- services (accueil + page) ---------------- */
  .feat-grid{grid-template-columns:1fr!important;}
  .feat{display:grid;grid-template-columns:34px 1fr;column-gap:14px;padding:18px 0!important;}
  .feat i{grid-row:1 / span 2;margin:2px 0 0!important;font-size:1.45rem;}
  .feat h3{font-size:1.1rem!important;margin-bottom:4px!important;}
  .feat p{max-width:none!important;font-size:.93rem!important;}

  /* ---------------- offres ---------------- */
  .offer-card{flex-basis:82vw!important;max-width:340px;}
  .offer-img{height:190px!important;}
  .offer-body{padding:18px 18px 20px!important;}
  .slider-arrows .arrow-btn{display:none;}
  .slider-arrows .btn{margin-left:0!important;width:100%;}

  /* ---------------- avis ---------------- */
  .avis-card{width:280px!important;padding:22px!important;}
  .stats-row{gap:16px!important;margin-top:36px!important;}
  .stat-num{font-size:2.1rem!important;}

  /* ---------------- à propos / agence ---------------- */
  #apropos-preview .map-layout,.map-layout{gap:26px!important;}
  #apropos-preview .map-layout > .reveal:last-child{order:-1;}
  #apropos-preview img{height:auto!important;max-height:380px;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;width:100%;}
  /* galerie de l'agence : deux photos côte à côte plutôt qu'empilées */
  .map-layout > .reveal[style*="display:grid"]{grid-template-columns:1fr 1fr!important;gap:10px!important;}
  .map-layout > .reveal[style*="display:grid"] img{height:auto!important;aspect-ratio:3/4;object-fit:cover;width:100%;border-radius:14px!important;}
  .founder-layout{gap:24px!important;}
  .founder-photo{position:static!important;}
  .founder-photo img{height:auto!important;aspect-ratio:4/5;max-height:440px;}
  .founder-text h2{font-size:1.65rem!important;}
  .founder-text p{font-size:1rem!important;}
  .def-card p{font-size:1rem!important;}
  .def-card p.def-quote{font-size:1.25rem!important;}
  .expertise{min-height:380px!important;align-items:flex-end;}
  .expertise-txt{padding:24px 20px!important;}
  .expertise-txt h2{font-size:1.55rem!important;}
  .expertise .cert-badge{top:14px!important;right:14px!important;left:auto;margin:0!important;padding:10px 12px!important;border-radius:12px;}
  .expertise .cert-badge img{width:96px!important;}
  .why-grid{gap:12px!important;}
  .why-card{padding:20px 18px!important;display:grid;grid-template-columns:48px 1fr;column-gap:14px;align-items:start;}
  .why-icon{width:48px!important;height:48px!important;margin-bottom:0!important;grid-row:1 / span 2;font-size:1.3rem!important;}
  .why-card h3,.why-card h4{font-size:1.05rem!important;margin-bottom:4px!important;}
  .why-card p{font-size:.92rem!important;}
  .cert-mini{margin-top:18px;}

  /* ---------------- blog / exemples ---------------- */
  .blog-img{height:180px!important;}
  .blog-body{padding:18px!important;}
  .article{margin-bottom:44px!important;}
  .article-img{height:210px!important;margin-bottom:20px!important;border-radius:16px!important;}
  .article h2{font-size:1.45rem!important;margin:6px 0 12px!important;}
  .article p,.article li{font-size:1rem;}
  .real-body{padding:18px!important;}
  .real-card .real-img,.real-img{height:200px!important;}

  /* ---------------- réassurance + FAQ + bandeau ---------------- */
  .reassure{padding:52px 0!important;}
  .reassure .rhead{margin-bottom:28px!important;}
  .rgrid{gap:22px!important;}
  .ritem{gap:14px;}
  .faq-q{padding:18px 2px!important;font-size:1rem!important;min-height:56px;gap:12px;}
  .faq-a p{padding:0 2px 18px!important;font-size:.97rem;}
  .cta-band{padding:34px 22px!important;gap:22px!important;border-radius:22px!important;}
  .cta-band h3{font-size:1.55rem!important;}
  .cta-band .btn,.cta-band a.btn{width:100%;}

  /* ---------------- tahiti ---------------- */
  .th-intro{gap:22px!important;}
  .th-intro img{height:auto!important;aspect-ratio:4/3;}
  .island-card.has-photo{border-radius:16px;}
  .ic-body{padding:16px 18px 20px!important;}
  .island-card h3{font-size:1.25rem!important;}
  .th-cta{padding:30px 20px!important;border-radius:20px!important;}
  .cert-inline{padding:14px 16px!important;}

  /* ---------------- formulaires ---------------- */
  .form-card{padding:22px 16px!important;border-radius:18px!important;}
  .form-row{grid-template-columns:1fr!important;gap:14px!important;margin-bottom:14px!important;}
  .field label{font-size:.88rem!important;margin-bottom:6px!important;}
  .field input,.field select,.field textarea{font-size:16px!important;min-height:50px;padding:12px 14px!important;border-radius:12px!important;}
  .field textarea{min-height:140px;}
  .field input[type=date]{appearance:none;-webkit-appearance:none;}
  .checkbox-grid{grid-template-columns:1fr 1fr!important;gap:8px!important;}
  .checkbox-item{min-height:48px;padding:10px 12px!important;font-size:.9rem!important;}
  .checkbox-item input,.consent-line input{width:22px;height:22px;min-height:0;flex:0 0 22px;accent-color:#0c2340;}
  .consent-line{font-size:.88rem!important;gap:12px!important;}
  .btn-block{min-height:56px;}
  .steps{gap:8px!important;margin-bottom:24px!important;}
  .step span{font-size:.78rem;}

  /* ---------------- contact ---------------- */
  .contact-layout{grid-template-columns:1fr!important;gap:26px!important;}
  .info-card{padding:22px 18px!important;border-radius:18px!important;}
  .info-row{margin-bottom:18px!important;}
  .info-row a{display:inline-block;min-height:32px;line-height:32px;}
  .status-strip{max-width:100%;font-size:.85rem;}
  .hours-table{font-size:.95rem;}
  .social-row a{width:48px;height:48px;}
  .map-embed{height:300px!important;margin-top:26px!important;border-radius:18px!important;}
  .where-head{margin-top:38px!important;}


  /* cellules de grille qui refusent de rétrécir (formulaires, contact) */
  .contact-layout{grid-template-columns:minmax(0,1fr)!important;}
  .contact-layout > *,.form-row > *,.checkbox-grid > *,.map-layout > *,.founder-layout > *,.th-intro > *{min-width:0;}
  .status-strip{display:flex!important;white-space:normal!important;border-radius:18px!important;line-height:1.35;}
  .pf-cta{min-height:44px;display:inline-flex;align-items:center;}
  .photo-credits summary{min-height:44px;display:flex;align-items:center;}

  /* ---------------- pied de page ---------------- */
  footer.pdm-footer{padding-top:48px!important;}
  .pf-top{grid-template-columns:1fr 1fr!important;gap:30px 18px!important;padding-bottom:34px!important;}
  .pf-brand,.pf-top > .pf-col:last-child{grid-column:1 / -1;}
  .pf-brand img{width:60px;height:60px;margin-bottom:16px;}
  .pf-tagline{font-size:1.3rem!important;}
  .pf-title{margin-bottom:12px!important;}
  .pdm-footer li{margin-bottom:0!important;}
  .pdm-footer li a,.pf-contact li a{display:inline-flex;align-items:center;min-height:40px;}
  .pf-social{min-height:44px;margin-top:14px!important;}
  .pf-bottom{flex-direction:column;align-items:flex-start!important;gap:14px!important;padding:20px 0 26px!important;}
  .pf-legal{gap:0 18px!important;}
  .pf-legal a{display:inline-flex;align-items:center;min-height:40px;}

  /* ---------------- barre d'actions du bas ---------------- */
  .actionbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:800;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:var(--white);border-top:1px solid var(--border);box-shadow:0 -12px 30px -18px rgba(7,28,51,.35);
    transform:translateY(110%);transition:transform .3s ease;}
  .actionbar.show{transform:translateY(0);}
  .actionbar a{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;border-radius:4px;font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;}
  .actionbar .ab-call{flex:0 0 38%;border:1px solid #0c2340;color:#0c2340;background:transparent;}
  .actionbar .ab-quote{flex:1;background:#0c2340;color:#fff;border:1px solid #0c2340;}
  .actionbar i{font-size:1.15rem;}
  body.ab-off .actionbar{transform:translateY(110%);}
  body.ab-none{padding-bottom:0;}
  body.ab-none .actionbar{display:none;}

  /* bandeau cookies : plus discret, au-dessus de la barre */
  .cookie-banner{left:12px!important;right:12px!important;bottom:calc(72px + env(safe-area-inset-bottom))!important;padding:16px 16px!important;border-radius:16px!important;max-width:none!important;}
  .cookie-banner p{font-size:.8rem!important;margin-bottom:10px!important;}
  .cookie-banner .btn{width:100%;min-height:46px;}
  body.ab-none .cookie-banner{bottom:calc(12px + env(safe-area-inset-bottom))!important;}
}

/* ------------------------------------------------------------------ ≤ 380px : petits smartphones */
@media (max-width:380px){
  :root{--m-gutter:16px;}
  .hero-content h1{font-size:2.7rem!important;}
  .hero-actions .btn{font-size:.72rem;letter-spacing:.08em;}
  #toutes-destinations .pcard-body h3,#toutes-destinations .pcard-body h4{font-size:.95rem;}
  .checkbox-grid{grid-template-columns:1fr!important;}
  .actionbar .ab-call span{display:none;}
  .actionbar .ab-call{flex:0 0 52px;}
  .pf-top{grid-template-columns:1fr!important;}
  .logo-img{width:60px;height:60px;}
  header .lang-switch button{min-width:36px;padding:0 6px!important;}
}

/* ------------------------------------------------------------------ tablettes (701 – 920px) */

/* mouvements réduits : pas de défilement automatique ni de transitions */
@media (prefers-reduced-motion:reduce){
  .actionbar{transition:none;}
  .modal-overlay.active .modal{animation:none;}
}

