/* Riad Jona — styles de la page galerie (externalisés des blocs <style> inline, 03/07/2026) */
/* ===== main ===== */
:root { --accent:#9C7C46; --accent-dark:#84683A; --accent-light:#C9B07E; }
    html { scroll-behavior: smooth; scroll-padding-top: 110px; }
    * { margin:0; padding:0; box-sizing:border-box; }
    body { font-family:'Georgia', serif; color:#333; background:#fff; }
    nav { position:fixed; top:0; left:0; right:0; z-index:100; background:transparent; display:flex; align-items:center; justify-content:space-between; padding:10px 40px; border-bottom:1px solid rgba(255,255,255,0.55); transition:background .35s ease, border-color .35s ease; }
    nav.scrolled { background:#fff; border-bottom-color:#fff; }
    nav .logo { position:relative; height:90px; width:170px; }
    nav .logo img { height:170px; position:absolute; top:-40px; left:0; z-index:101; filter:brightness(0) invert(1) drop-shadow(0 2px 8px rgba(0,0,0,0.35)); transition:filter .35s ease; }
    nav.scrolled .logo img { filter:drop-shadow(0 3px 10px rgba(0,0,0,0.18)); }
    nav ul { list-style:none; display:flex; gap:36px; align-items:center; }
    nav ul li a { text-decoration:none; color:#fff; font-size:14px; letter-spacing:0.07em; text-transform:uppercase; text-shadow:0 1px 10px rgba(0,0,0,0.55); transition:color .3s; }
    nav.scrolled ul li a { color:#333; text-shadow:none; }
    nav ul li a:hover, nav ul li a.current { color:var(--accent-light); }
    nav.scrolled ul li a:hover, nav.scrolled ul li a.current { color:var(--accent); }
    .nav-right { display:flex; align-items:center; gap:18px; }
    .lang-switch { display:flex; gap:6px; font-size:12px; }
    .lang-switch button { background:none; border:1px solid rgba(255,255,255,0.6); padding:5px 11px; cursor:pointer; font-family:inherit; font-size:11px; letter-spacing:0.1em; color:rgba(255,255,255,0.85); border-radius:50px; transition:color .3s, border-color .3s; }
    .lang-switch button.active { border-color:#fff; color:#fff; }
    nav.scrolled .lang-switch button { border-color:#ddd; color:#888; }
    nav.scrolled .lang-switch button.active { border-color:var(--accent); color:var(--accent); }
    .nav-book a { background:transparent; border:1px solid #fff; color:#fff; text-decoration:none; padding:11px 26px; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; border-radius:50px; transition:background .3s, border-color .3s, color .3s; }
    .nav-book a:hover { background:rgba(255,255,255,0.18); }
    nav.scrolled .nav-book a { background:var(--accent); border-color:var(--accent); }
    nav.scrolled .nav-book a:hover { background:var(--accent-dark); border-color:var(--accent-dark); }
    .page-hero { position:relative; height:60vh; overflow:hidden; }
    .page-hero img { width:100%; height:100%; object-fit:cover; object-position:center top; }
    .page-hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, rgba(0,0,0,0.3), rgba(0,0,0,0) 40%, rgba(0,0,0,0.5)); display:flex; flex-direction:column; align-items:center; justify-content:flex-end; text-align:center; color:#fff; padding:0 20px 56px; }
    .page-hero-overlay h1 { font-family:'Cormorant Garamond',serif; font-size:56px; font-weight:300; letter-spacing:0.05em; margin-bottom:14px; text-shadow:0 2px 12px rgba(0,0,0,0.3); }
    .page-hero-overlay p { font-size:16px; font-weight:300; letter-spacing:0.12em; opacity:0.95; text-shadow:0 1px 8px rgba(0,0,0,0.3); }
    .intro { max-width:820px; margin:96px auto 64px; text-align:center; padding:0 20px; }
    .intro-label { font-size:11px; letter-spacing:0.25em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; }
    .intro h2 { font-size:40px; font-weight:300; margin-bottom:22px; letter-spacing:0.03em; }
    .intro p { font-size:17px; line-height:2.05; color:#666; }
    .contact-wrap { max-width:1400px; margin:0 auto; padding:0 28px 84px; display:grid; grid-template-columns:0.82fr 1.18fr; gap:44px; align-items:center; }
    .contact-info { display:flex; flex-direction:column; justify-content:center; }
    .contact-info h3 { font-size:27px; font-weight:300; margin-bottom:var(--jv-bookbar-top, 80px); letter-spacing:0.03em; }
    .ci { border-top:1px solid #ece8e1; padding:20px 0; }
    .ci:first-of-type { border-top:none; padding-top:0; }
    .ci:last-of-type { padding-bottom:0; }
    .ci .lbl { font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--accent); margin-bottom:8px; }
    .ci .val { font-size:15px; line-height:1.75; color:#555; }
    .ci .val a { color:#555; text-decoration:none; transition:color .2s; }
    .ci .val a:hover { color:var(--accent); }
    .contact-map { aspect-ratio:16/9; border:1px solid #ece8e1; }
    .contact-map iframe { width:100%; height:100%; border:0; display:block; }
    .form-section { background:#faf9f7; padding:90px 28px; }
    .form-inner { max-width:760px; margin:0 auto; text-align:center; }
    .form-inner h2 { font-size:32px; font-weight:300; margin-bottom:10px; }
    .form-inner p { font-size:15px; color:#666; margin-bottom:34px; }
    form.cform { display:grid; grid-template-columns:1fr 1fr; gap:18px; text-align:left; }
    form.cform input, form.cform textarea { width:100%; padding:14px 16px; border:1px solid #ddd; font-family:inherit; font-size:14px; background:#fff; outline:none; transition:border-color .2s; }
    form.cform input:focus, form.cform textarea:focus { border-color:var(--accent); }
    form.cform .full { grid-column:1 / -1; }
    form.cform textarea { min-height:140px; resize:vertical; }
    form.cform button { grid-column:1 / -1; justify-self:center; padding:14px 44px; background:var(--accent); color:#fff; border:none; font-family:inherit; font-size:11px; letter-spacing:0.15em; text-transform:uppercase; border-radius:50px; cursor:pointer; transition:background .2s; }
    form.cform button:hover { background:var(--accent-dark); }
    footer { background:#1a1a1a; color:#aaa; padding:64px 40px 36px; display:grid; grid-template-columns:1fr 1.2fr 1.2fr; gap:40px; }
    footer h4 { color:#fff; font-size:13px; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:16px; font-weight:400; }
    footer .contact-item { display:flex; align-items:flex-start; gap:10px; margin-bottom:10px; font-size:13px; line-height:1.6; }
    footer .contact-item a { color:#aaa; text-decoration:none; } footer .contact-item a:hover { color:#fff; }
    footer .social { display:flex; flex-wrap:wrap; gap:12px; margin-top:10px; }
    footer .social a { color:#aaa; font-size:13px; text-decoration:none; border:1px solid #444; padding:6px 14px; border-radius:50px; }
    footer .social a:hover { color:#fff; border-color:#fff; }
    .footer-bottom { background:#111; color:#555; text-align:center; padding:16px 40px; font-size:11px; }
    @media (max-width:1280px){ nav ul{gap:22px;} nav ul li a{font-size:12px;} }
    @media (max-width:900px){
      .contact-wrap{ grid-template-columns:1fr; gap:36px; } form.cform{ grid-template-columns:1fr; }
      footer{ grid-template-columns:1fr; } nav ul{ display:none; }
      nav .logo{ height:64px; width:110px; } nav .logo img{ height:110px; top:-6px; }
      .page-hero-overlay h1{ font-size:34px; }
    }
  
    /* FOOTER LUXE (standard) */
    footer { display:block; background:#1a1613; color:#b6ad9f; padding:6px 40px 0; grid-template-columns:none; gap:0; }
    .footer-top { text-align:center; max-width:1200px; margin:0 auto 54px; padding-bottom:52px; border-bottom:1px solid rgba(201,176,126,0.22); }
    .footer-top img { height:170px; width:auto; filter:brightness(0) invert(1); opacity:0.95; margin-top:48px; margin-bottom:-12px; }
@media (min-width:769px) and (max-width:1500px){ .footer-top img{ height:120px !important; margin-top:26px !important; } .footer-top{ margin-bottom:34px !important; } .footer-cols{ gap:40px !important; padding-bottom:40px !important; } .footer-bottom{ padding-top:14px !important; padding-bottom:14px !important; } }
    .footer-top p { font-size:14px; letter-spacing:0.05em; color:#a59c8e; font-style:italic; }
    .footer-cols { max-width:1080px; margin:0 auto; display:grid; grid-template-columns:1.25fr 1fr 1fr; gap:56px; padding-bottom:58px; }
    footer h4 { font-family:'Cormorant Garamond',Georgia,serif; color:var(--accent); font-size:19px; letter-spacing:0.04em; text-transform:none; margin-bottom:18px; font-weight:500; }
    .footer-cols .line { font-size:14px; line-height:1.85; color:#b6ad9f; margin-bottom:9px; }
    .footer-cols a { color:#b6ad9f; text-decoration:none; transition:color .25s; }
    .footer-cols a:hover { color:#fff; }
    .footer-links a { display:block; margin-bottom:12px; font-size:14px; letter-spacing:0.04em; }
    .footer-social .socials { display:flex; gap:14px; }
    .footer-social .socials a { width:42px; height:42px; border:1px solid rgba(156,124,70,0.55); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--accent); font-size:16px; transition:background .25s, color .25s, border-color .25s; }
    .footer-social .socials a:hover { background:var(--accent); color:#1a1613; border-color:var(--accent); }
    .footer-bottom { background:#1a1613; border-top:1px solid rgba(255,255,255,0.07); color:#8a8073; text-align:center; padding:20px 40px; font-size:13px; line-height:1.45; font-family:'Georgia', serif; }
    @media (max-width:900px){ .footer-cols { grid-template-columns:1fr; gap:34px; } }
    .wa-btn { width:40px; height:40px; border:1px solid rgba(255,255,255,0.6); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:18px; text-decoration:none; transition:background .3s, color .3s, border-color .3s; }
    .wa-btn:hover { background:rgba(255,255,255,0.18); }
    nav.scrolled .wa-btn { border-color:#ddd; color:#555; }
    nav.scrolled .wa-btn:hover { color:var(--accent); border-color:var(--accent); }

    /* ===== CONCIERGERIE ===== */
    .conc-sec { max-width:1560px; margin:0 auto; padding:0 16px 30px; }
    .conc-sec.wide { max-width:1640px; }
    .conc-head { text-align:center; max-width:760px; margin:70px auto 40px; }
    .conc-head .lbl { font-size:11px; letter-spacing:0.28em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; }
    .conc-head h2 { font-size:34px; font-weight:300; letter-spacing:0.03em; color:#2c2722; margin-bottom:12px; }
    .conc-head .rule { width:48px; height:1px; background:var(--accent-light); margin:0 auto 16px; }
    .conc-head p { font-size:15px; line-height:1.85; color:#777; }
    .conc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
    .conc-grid.two { grid-template-columns:repeat(2,1fr); max-width:1000px; margin:0 auto; }
    .conc-card { background:#fff; border:1px solid #ece6db; overflow:hidden; display:flex; flex-direction:column; transition:box-shadow .3s, transform .3s; }
    .conc-card:hover { box-shadow:0 18px 50px rgba(0,0,0,0.10); transform:translateY(-3px); }
    .conc-card .cc-img { height:208px; overflow:hidden; }
    .conc-card .cc-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
    .conc-card:hover .cc-img img { transform:scale(1.05); }
    .conc-card .cc-body { padding:26px 26px 30px; flex:1; display:flex; flex-direction:column; }
    .conc-card h3 { font-size:20px; font-weight:300; letter-spacing:0.02em; color:#2c2722; margin-bottom:12px; }
    .conc-card p { font-size:14px; line-height:1.7; color:#666; flex:1; }
    .conc-tag { display:inline-block; background:#f3eee4; color:var(--accent-dark); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; padding:7px 18px; border-radius:50px; margin:6px auto 4px; }
    .leisure-band { background:#faf9f7; padding:14px 0 84px; margin-top:30px; }
    .leisure-grid { max-width:1400px; margin:0 auto; padding:0 16px; display:grid; grid-template-columns:repeat(3,1fr); gap:58px 56px; align-items:start; justify-items:center; }
    .leisure-item { display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; max-width:280px; }
    .leisure-item .li-ico { width:68px; height:68px; flex:0 0 auto; border:1px solid var(--accent-light); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--accent); font-size:25px; transition:background .3s,color .3s; }
    .leisure-item:hover .li-ico { background:var(--accent); color:#fff; }
    .leisure-item .li-ico svg { display:block; }
    .leisure-item h4 { font-size:18px; font-weight:400; color:#2c2722; margin-bottom:8px; letter-spacing:0.01em; }
    .leisure-item p { font-size:14px; line-height:1.65; color:#777; max-width:240px; margin:0 auto; }
    .conc-cta { text-align:center; padding:78px 28px 92px; }
    .conc-cta h2 { font-size:30px; font-weight:300; margin-bottom:14px; color:#2c2722; }
    .conc-cta p { font-size:15px; color:#777; max-width:560px; margin:0 auto 30px; line-height:1.8; }
    .conc-cta a { display:inline-block; padding:14px 40px; background:var(--accent); color:#fff; text-decoration:none; font-size:11px; letter-spacing:0.15em; text-transform:uppercase; border-radius:50px; transition:background .2s; }
    .conc-cta a:hover { background:var(--accent-dark); }
    @media(max-width:980px){ .conc-grid,.conc-grid.two{ grid-template-columns:1fr 1fr; } .leisure-grid{ grid-template-columns:1fr 1fr; } }
    @media(max-width:640px){ .conc-grid,.conc-grid.two,.leisure-grid{ grid-template-columns:1fr; } }
  
    /* ===== EXCURSIONS - détail ===== */
    .exc-more { margin-top:16px; align-self:flex-start; background:transparent; border:1px solid var(--accent); color:var(--accent); font-family:inherit; font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase; padding:9px 22px; border-radius:50px; cursor:pointer; transition:background .25s,color .25s; }
    .exc-more:hover { background:var(--accent); color:#fff; }
    .exc-overlay { position:fixed; inset:0; background:rgba(20,16,12,0.6); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:24px; z-index:3500; opacity:0; visibility:hidden; transition:opacity .35s, visibility .35s; }
    .exc-overlay.open { opacity:1; visibility:visible; }
    .exc-modal { position:relative; background:#fff; max-width:620px; width:100%; max-height:90vh; overflow:auto; padding:48px 46px 40px; box-shadow:0 30px 80px rgba(0,0,0,0.35); }
    .exc-modal .exc-x { position:absolute; top:14px; right:16px; width:38px; height:38px; border:1px solid #d9cfbe; background:transparent; border-radius:50%; color:#8a8071; font-size:20px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .25s,color .25s,border-color .25s; }
    .exc-modal .exc-x:hover { background:var(--accent); color:#fff; border-color:var(--accent); }
    .exc-modal .exc-badge { display:inline-block; background:#f3eee4; color:var(--accent-dark); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; padding:6px 16px; border-radius:50px; margin-bottom:14px; }
    .exc-modal h3 { font-size:27px; font-weight:300; color:#2c2722; margin-bottom:16px; letter-spacing:0.02em; }
    .exc-modal p { font-size:14.5px; line-height:1.8; color:#555; margin-bottom:10px; }
    .exc-modal .exc-prog-h { font-size:12px; letter-spacing:0.18em; text-transform:uppercase; color:var(--accent); margin:24px 0 10px; }
    @media(max-width:560px){ .exc-modal{ padding:42px 24px 30px; } }
  
    /* ===== Carrousel "plaisirs de la maison" ===== */
    .home-carousel { position:relative; max-width:1580px; margin:0 auto; }
    .hc-viewport { overflow:hidden; }
    .hc-track { display:flex; transition:transform .6s cubic-bezier(.4,0,.2,1); }
    .hc-slide { min-width:100%; display:grid; grid-template-columns:1.6fr 1fr; }
    .hc-slide .hc-img { height:560px; overflow:hidden; }
    .hc-slide .hc-img img { width:100%; height:100%; object-fit:cover; }
    .hc-slide .hc-body { background:#faf9f7; padding:60px 58px; display:flex; flex-direction:column; justify-content:center; border:1px solid #ece6db; border-left:none; }
    .hc-slide .hc-body h3 { font-size:29px; font-weight:300; letter-spacing:0.02em; color:#2c2722; margin-bottom:16px; }
    .hc-slide .hc-body p { font-size:14.5px; line-height:1.8; color:#666; }
    .hc-arrow { position:absolute; top:280px; transform:translateY(-50%); width:46px; height:46px; border:none; background:rgba(255,255,255,0.92); color:var(--accent-dark); font-size:22px; cursor:pointer; border-radius:50%; box-shadow:0 4px 16px rgba(0,0,0,0.12); z-index:2; transition:background .25s,color .25s; }
    .hc-arrow.prev { left:-14px; } .hc-arrow.next { right:-14px; }
    .hc-arrow:hover { background:var(--accent); color:#fff; }
    .hc-dots { display:flex; gap:9px; justify-content:center; margin-top:24px; }
    .hc-dots button { width:9px; height:9px; border-radius:50%; border:none; background:#d8cfbf; cursor:pointer; padding:0; transition:background .25s; }
    .hc-dots button.active { background:var(--accent); }
    /* Excursions : 2 par ligne, plus grandes */
    .exc-grid { grid-template-columns:repeat(2,1fr); max-width:1500px; margin:0 auto; gap:70px 64px; }
    .exc-grid .conc-card { border:1px solid rgba(201,176,126,0.5); box-shadow:0 16px 46px rgba(0,0,0,0.09); padding:14px; overflow:visible; }
    .exc-grid .cc-img { border:1px solid rgba(201,176,126,0.35); }
    .exc-grid .cc-body { padding:22px 12px 12px; }
    .exc-grid .cc-img { aspect-ratio:16/9; height:auto; }
    @media(max-width:780px){ .hc-slide{ grid-template-columns:1fr; } .hc-slide .hc-body{ border-left:1px solid #ece6db; border-top:none; padding:38px 28px; } .hc-arrow{ top:150px; } }
    @media(max-width:640px){ .exc-grid{ grid-template-columns:1fr; } }
  
    /* ===== ESSAI : menu blanc fixe + photo principale sous la barre du menu ===== */
    nav { background:#fff !important; border-bottom:1px solid #ececec !important; }
    nav .logo img { filter: drop-shadow(0 3px 10px rgba(0,0,0,0.18)) !important; }
    nav ul li a { color:#333 !important; text-shadow:none !important; }
    nav ul li a:hover, nav ul li a.current { color:var(--accent) !important; }
    .lang-switch button { border-color:#ddd !important; color:#888 !important; }
    .lang-switch button.active { border-color:var(--accent) !important; color:var(--accent) !important; }
    .nav-book a { background:var(--accent) !important; border-color:var(--accent) !important; color:#fff !important; }
    .nav-book a:hover { background:var(--accent-dark) !important; border-color:var(--accent-dark) !important; }
    .wa-btn { border-color:#ddd !important; }
    .wa-btn:hover { color:var(--accent) !important; border-color:var(--accent) !important; }
    .page-hero { margin-top: 110px; }
  
    /* ===== RESPONSIVE (tablette / mobile) ===== */
    .nav-toggle { display:none; background:none; border:none; cursor:pointer; padding:6px 10px; font-size:23px; line-height:1; color:#333; }
    @media (max-width: 980px) {
      nav { flex-wrap: wrap; padding-left:20px; padding-right:20px; }
      .nav-toggle { display:inline-flex; align-items:center; order:2; margin-left:auto; transform:translateY(-6px); }
      nav .nav-right { order:3; gap:10px; }
      .lang-switch { order:2; }   /* langue juste apres le burger Menu */
      nav .logo { height:64px; width:120px; }
      nav .logo img { height:120px; top:-6px; }
      nav ul { order:5; flex-basis:100%; display:none; flex-direction:column; gap:0; margin:10px -20px 0; padding:6px 0; background:#fff; border-top:1px solid #eee; box-shadow:0 14px 28px rgba(0,0,0,0.14); }
      nav.menu-open ul { display:flex; }
      nav ul li { width:100%; }
      nav ul li a { display:block; padding:14px 24px; color:#333 !important; text-shadow:none !important; font-size:14px; letter-spacing:0.05em; }
      nav ul li a:hover, nav ul li a.current { background:#faf8f4; color:var(--accent) !important; }
      .room-item, .two-col, .riad-block, .resto-block, .spa-block { padding:10px !important; margin-bottom:48px; }
      .room-info, .riad-info, .resto-info, .spa-info { padding:24px 22px !important; }
      .page-hero-overlay h1, .hero-overlay h1 { font-size:32px; }
    }
    @media (max-width: 600px) {
      nav .nav-book { display:none; }
      nav .logo { height:54px; width:100px; } nav .logo img { height:100px; }
      .page-hero { height:42vh; margin-top:78px !important; }
      .intro { padding:0 18px; } .intro h2, .conc-head h2, .conc-cta h2, .cc-head h2, .ch h2 { font-size:25px; }
      .room-info h3, .riad-info h3, .resto-info h3, .spa-info h3 { font-size:30px; }
      .footer-cols { gap:30px; padding:0 6px 40px; }
      .contact-section, .access, .direct-priv, .conc-sec { padding-left:16px !important; padding-right:16px !important; }
    }
  
    /* ===== GALERIE ===== */
    .gal-intro { text-align:center; max-width:760px; margin:64px auto 36px; padding:0 24px; }
    .gal-intro .gal-label { font-size:11px; letter-spacing:0.28em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; }
    .gal-intro h2 { font-size:34px; font-weight:300; letter-spacing:0.03em; color:#2c2722; margin-bottom:12px; }
    .gal-intro .gal-rule { width:48px; height:1px; background:var(--accent-light); margin:0 auto 16px; }
    .gal-intro p { font-size:15px; line-height:1.85; color:#777; }
    .masonry { column-count:4; column-gap:14px; max-width:1600px; margin:0 auto 96px; padding:0 16px; }
    .masonry .gal-item { margin:0 0 14px; break-inside:avoid; position:relative; }
    .masonry .gal-item img { width:100%; height:auto; display:block; border:1px solid #ece6db; cursor:pointer; margin:0;
      transition:opacity .5s ease, transform .55s cubic-bezier(.22,.61,.36,1), filter .5s ease, box-shadow .5s ease, border-color .5s ease; }
    .masonry .gal-item { z-index:0; }
    /* Survol : léger zoom de la photo pointée uniquement (sans voiler les autres) */
    @media (hover:hover) and (pointer:fine){
      .masonry .gal-item:hover { z-index:3; }
      .masonry .gal-item:hover img { transform:scale(1.032);
        border-color:var(--accent); box-shadow:0 16px 40px rgba(40,26,12,.22); }
    }
    @media (prefers-reduced-motion:reduce){ .masonry .gal-item img{ transition:none; } }
    @media(max-width:1100px){ .masonry{ column-count:3; } }
    @media(max-width:760px){ .masonry{ column-count:2; } }
    @media(max-width:460px){ .masonry{ column-count:1; } }
    .lightbox { position:fixed; inset:0; background:#f4eee3; display:none; align-items:center; justify-content:center; z-index:4000; }
    .lightbox.open { display:flex; }
    .lb-frame { position:relative; z-index:1; background:#fdfbf7; padding:clamp(14px,2vw,24px); box-shadow:0 26px 60px rgba(40,26,12,0.22); transition:opacity .32s ease; will-change:opacity; }
    .lb-frame img { display:block; max-width:84vw; max-height:80vh; box-shadow:0 0 0 1px #d8c9a8; }
    .lb-logo { position:absolute; left:50%; bottom:calc(clamp(14px,2vw,24px) + 14px); transform:translateX(-50%);
      width:150px; height:150px; background-size:contain; background-repeat:no-repeat; background-position:center bottom;
      opacity:.92; pointer-events:none; }
    .lb-logo.w { background-image:url(../photos/logo_white.png); }
    .lb-logo.e { background-image:url(../photos/logo_espresso.png); }
    .lb-logo.top { top:calc(clamp(14px,2vw,24px) + 14px); bottom:auto; background-position:center top; }
    .lb-logo.left { left:calc(clamp(14px,2vw,24px) + 18px); transform:none; }
    .lb-logo.right { left:auto; right:calc(clamp(14px,2vw,24px) + 18px); transform:none; }
    .lb-close,.lb-prev,.lb-next { position:absolute; background:none; border:none; color:#9C7C46; cursor:pointer; opacity:.8; transition:opacity .2s, color .2s; line-height:1; }
    .lb-close:hover,.lb-prev:hover,.lb-next:hover { opacity:1; color:#84683A; }
    .lb-close { top:0; left:0; right:0; height:110px; width:auto; display:flex; align-items:flex-start; justify-content:flex-end; padding:18px 28px 0; font-size:40px; z-index:4; }
    .lb-prev,.lb-next { top:0; bottom:0; height:100%; width:32vw; display:flex; align-items:center; font-size:52px; z-index:2; }
    .lb-prev { left:0; justify-content:flex-start; padding-left:24px; }
    .lb-next { right:0; justify-content:flex-end; padding-right:24px; }
    @media(max-width:560px){ .lb-prev,.lb-next{ font-size:36px; width:36vw; padding:0 14px; } }

/* ===== nav-fit-jv ===== */
/* ===== Ajustement barre de navigation laptop 13" et + (JV 16/06) ===== */
nav { padding-left: clamp(18px, 2.1vw, 40px); padding-right: clamp(18px, 2.1vw, 40px); }
nav .logo { width: clamp(130px, 10.2vw, 170px); }
nav .logo img { height: clamp(130px, 10.2vw, 170px); top: clamp(-40px, -2.9vw, -24px); }
nav ul { gap: clamp(8px, 0.7vw, 36px); flex: 1 1 auto; justify-content: center; min-width: 0; }
nav ul li a { font-size: clamp(10.5px, 0.8vw, 14px); white-space: nowrap; }
.nav-right { gap: clamp(6px, 0.7vw, 18px); flex: 0 0 auto; }
.lang-switch { gap: 4px; }
.lang-switch button { padding: 4px 6px; }
.nav-book a { padding: 9px clamp(12px, 1vw, 26px); }
@media (max-width: 1180px) {
  nav { flex-wrap: wrap; padding-left:20px; padding-right:20px; }
  .nav-toggle { display:inline-flex; align-items:center; order:2; margin-left:auto; transform:translateY(-6px); }
  nav .nav-right { order:3; gap:10px; flex:0 0 auto; }
  nav { gap:10px; }   /* meme espace entre Menu/Langue qu'entre WhatsApp/Reserver */
  .lang-switch { order:2; }   /* langue juste apres le burger Menu */
  nav .logo { height:64px; width:120px; }
  nav .logo img { height:120px; top:-6px; }
  nav ul { order:5; flex-basis:100%; display:none; flex-direction:column; gap:0; margin:10px -20px 0; padding:6px 0; background:#fff; border-top:1px solid #eee; box-shadow:0 14px 28px rgba(0,0,0,0.14); justify-content:flex-start; }
  nav.menu-open ul { display:flex; }
  nav ul li { width:100%; }
  nav ul li a { display:block; padding:14px 24px; color:#333 !important; text-shadow:none !important; font-size:14px; letter-spacing:0.05em; white-space:normal; }
  nav ul li a:hover, nav ul li a.current { background:#faf8f4; color:var(--accent) !important; }
}

/* ===== lang-dd ===== */
.lang-switch{ position:relative; display:inline-block; }
.lang-switch .lang-current{ display:inline-flex; align-items:center; gap:6px; background:none; border:1px solid rgba(255,255,255,0.6); color:rgba(255,255,255,0.92); border-radius:50px; padding:6px 11px; font-family:inherit; font-size:11px; letter-spacing:0.1em; cursor:pointer; transition:color .3s,border-color .3s; }
.lang-switch .lang-current .fa-globe{ font-size:12px; }
.lang-switch .lang-current .lang-caret{ font-size:9px; transition:transform .25s; }
.lang-switch.open .lang-current .lang-caret{ transform:rotate(180deg); }
nav.scrolled .lang-switch .lang-current{ border-color:var(--accent); color:var(--accent); }
.lang-switch .lang-menu{ position:absolute; top:calc(100% + 8px); right:0; min-width:132px; background:#fff; border:1px solid #ececec; border-radius:10px; box-shadow:0 16px 34px rgba(0,0,0,0.16); padding:6px; display:none; flex-direction:column; z-index:200; }
.lang-switch.open .lang-menu{ display:flex; }
.lang-switch .lang-menu button{ background:none; border:none; text-align:left; padding:9px 14px; font-family:inherit; font-size:13px; color:#4a4640; cursor:pointer; border-radius:6px; letter-spacing:0.02em; white-space:nowrap; transition:background .2s,color .2s; }
.lang-switch .lang-menu button:hover{ background:#faf8f4; color:var(--accent); }
.lang-switch .lang-menu button.active{ color:var(--accent); font-weight:bold; }
@media (max-width:1180px){ .lang-switch .lang-menu{ right:auto; left:0; } }

/* ===== jv-btn-outline ===== */
/* === Boutons contour élégant (remplissage au survol) === */
a.btn, .promo-unlock-btn, .dp-unlock-btn, .dps-cta, .dayp-cta, .conc-cta a, .card-more,
.cform button, .btn-book, #jvOverlay .jv-book{
  background:transparent !important; border:1px solid var(--accent) !important; color:var(--accent) !important;
  transition:background .25s ease, color .25s ease, border-color .25s ease !important;
}
a.btn:hover, .promo-unlock-btn:hover, .dp-unlock-btn:hover, .dps-cta:hover, .dayp-cta:hover, .conc-cta a:hover,
.card-more:hover, .cform button:hover, .btn-book:hover, #jvOverlay .jv-book:hover{
  background:var(--accent) !important; color:#fff !important; border-color:var(--accent) !important;
}
body:not(.is-home) .nav-book a, body.is-home nav.scrolled .nav-book a{ background:var(--accent) !important; border:1px solid var(--accent) !important; color:#fff !important; }
body:not(.is-home) .nav-book a:hover, body.is-home nav.scrolled .nav-book a:hover{ background:var(--accent-dark) !important; border-color:var(--accent-dark) !important; color:#fff !important; }
.newsletter button{
  background:transparent !important; border:1px solid #cda972 !important; color:#e7d9b4 !important;
  transition:background .25s ease, color .25s ease !important;
}
.newsletter button:hover{ background:#cda972 !important; color:#2c2c2c !important; }
/* gap uniforme icone-mot */
.spa-menu-btn, .carte-btn, .enquiry-link, .conc-cta a, .offers-banner-overlay a, .cform button.send-btn{ gap:12px !important; }
/* Élégance des boutons pleins : transition douce, ombre teintée, léger soulèvement au survol */
a.btn, .promo-unlock-btn, .dp-unlock-btn, .dps-cta, .dayp-cta, .conc-cta a, .card-more, .cform button, .btn-book, #jvOverlay .jv-book, .nav-book a{ transition:background .3s ease, color .3s ease, border-color .3s ease, box-shadow .35s ease, transform .3s ease !important; }
a.btn:hover, .promo-unlock-btn:hover, .dp-unlock-btn:hover, .dps-cta:hover, .dayp-cta:hover, .conc-cta a:hover, .card-more:hover, .cform button:hover, .btn-book:hover, #jvOverlay .jv-book:hover, .nav-book a:hover{ box-shadow:0 9px 24px rgba(156,124,70,0.30) !important; transform:translateY(-2px) !important; }
body:not(.is-home) .nav-book a, body.is-home nav.scrolled .nav-book a{ box-shadow:0 6px 18px rgba(156,124,70,0.26) !important; }
/* Élégance des boutons contour : bordure douce translucide + inter-lettrage aéré */
a.btn, .promo-unlock-btn, .dp-unlock-btn, .dps-cta, .dayp-cta, .conc-cta a, .card-more, .cform button, .btn-book, #jvOverlay .jv-book{ border:1px solid rgba(156,124,70,0.55) !important; letter-spacing:0.17em !important; font-weight:400 !important; }
a.btn:hover, .promo-unlock-btn:hover, .dp-unlock-btn:hover, .dps-cta:hover, .dayp-cta:hover, .conc-cta a:hover, .card-more:hover, .cform button:hover, .btn-book:hover, #jvOverlay .jv-book:hover{ border-color:var(--accent) !important; }
/* transform ignoré sur inline → on force inline-block pour que le soulèvement marche */
.nav-book a{ display:inline-block !important; }
/* Mouvement aussi sur les boutons des bandeaux + liens CTA contour */
.enquiry-link, .conc-cta a, .card-more, .btn-book{ display:inline-block !important; }
.enquiry-link, .spa-menu-btn, .carte-btn, .spa-banner-overlay a, .resto-banner-overlay a, .offers-banner-overlay a{ transition:background .25s ease, color .25s ease, box-shadow .3s ease, transform .3s ease !important; }
.enquiry-link:hover, .spa-menu-btn:hover, .carte-btn:hover, .spa-banner-overlay a:hover, .resto-banner-overlay a:hover, .offers-banner-overlay a:hover{ transform:translateY(-2px) !important; box-shadow:0 8px 20px rgba(156,124,70,0.22) !important; }

/* ===== readability-textwrap ===== */
/* Lisibilité : retours à la ligne plus propres — sans changer police, couleur ni alignement */
p, li, .dp-sub, .dayp-sub, .promo-sub, .intro p, blockquote { text-wrap: pretty; }
h1, h2, h3, h4, .section-title, .intro-title, .subtitle, .intro-subtitle { text-wrap: balance; }

/* ===== jv-mobile-nav ===== */
/* retour instantane des couleurs a la fermeture du menu (pas de transition) */
body nav.jv-instant .nav-toggle::before, body nav.jv-instant .nav-toggle::after, body nav.jv-instant .lang-switch .lang-current, body nav.jv-instant .wa-btn, body nav.jv-instant .logo img{ transition:none !important; }
/* ===== NAV MOBILE : Menu + WhatsApp a gauche, logo centre, Langue + badge Travellers Choice a droite ===== */
@media (max-width:1100px){
  body nav{ min-height:74px !important; padding-left:12px !important; padding-right:12px !important; display:flex !important; align-items:center !important; gap:0 !important; }
  body nav .nav-left, body nav .nav-right{ display:contents !important; }
  body nav > ul, body nav .nav-book{ display:none !important; }
  /* GAUCHE : Menu + WhatsApp */
  body nav .nav-left .nav-toggle{ order:1 !important; flex:0 0 auto !important; gap:7px !important; margin:0 !important; transform:none !important; }
  body nav .nav-toggle::before{ font-size:29px !important; }
  body nav .nav-toggle::after{ font-size:14px !important; }
  body nav .nav-right .wa-btn{ order:2 !important; flex:0 0 auto !important; margin:0 0 0 13px !important; font-size:36px !important; width:auto !important; height:auto !important; }
  /* CENTRE : logo */
  body nav .logo{ order:3 !important; flex:1 1 0 !important; min-width:0 !important; height:74px !important; width:auto !important; display:flex !important; align-items:center !important; justify-content:center !important; margin:0 !important; }
  body nav .logo img{ height:58px !important; width:auto !important; }
  /* DROITE : langue + badge Travellers Choice */
  body nav .nav-left .lang-switch{ order:4 !important; flex:0 0 auto !important; }
  body nav .lang-switch .lang-current{ font-size:10px !important; padding:4px 8px !important; gap:5px !important; }
  body nav .lang-switch .lang-current .fa-globe{ font-size:11px !important; }
  body nav .lang-switch .lang-current .lang-caret{ font-size:8px !important; }
  body nav .nav-right .nav-tc{ order:5 !important; display:inline-block !important; height:48px !important; width:auto !important; margin:0 0 0 9px !important; flex:0 0 auto !important; align-self:center !important; }
  /* transition uniforme : tous les boutons reviennent au blanc en meme temps a la fermeture du menu */
  body nav .nav-toggle::before, body nav .nav-toggle::after, body nav .lang-switch .lang-current, body nav .wa-btn, body nav .logo img{ transition:color .25s ease, border-color .25s ease, filter .25s ease, -webkit-text-stroke .25s ease !important; }
  /* ---- COULEURS : bronze hors hero, blanc a l'arrivee sur l'accueil ---- */
  body:not(.is-home) nav .nav-toggle::before, body:not(.is-home) nav .nav-toggle::after,
  body.is-home nav.scrolled .nav-toggle::before, body.is-home nav.scrolled .nav-toggle::after{ color:var(--accent) !important; text-shadow:none !important; }
  body:not(.is-home) nav .lang-switch .lang-current,
  body.is-home nav.scrolled .lang-switch .lang-current{ color:var(--accent) !important; border-color:var(--accent) !important; }
  body:not(.is-home) nav .wa-btn{ --wa-col:var(--accent) !important; color:var(--accent) !important; }
  body.is-home nav.scrolled .wa-btn{ --wa-col:var(--accent) !important; color:var(--accent) !important; -webkit-text-stroke:0 !important; animation:none !important; }
  body.is-home nav:not(.scrolled):not(.jv-menu-on) .nav-toggle::before,
  body.is-home nav:not(.scrolled):not(.jv-menu-on) .nav-toggle::after{ color:#fff !important; text-shadow:0 1px 7px rgba(0,0,0,.38) !important; }
  body.is-home nav:not(.scrolled):not(.jv-menu-on) .lang-switch .lang-current{ color:#fff !important; border-color:rgba(255,255,255,.75) !important; }
  body.is-home nav:not(.scrolled):not(.jv-menu-on) .wa-btn{ --wa-col:#fff !important; color:#fff !important; }
}

/* ===== jv-mobile-footer ===== */
/* ===== FOOTER MOBILE : Contact|Explorer, Newsletter (consentement a gauche / e-mail a droite), Reseaux en dessous ===== */
@media (max-width:600px){
  footer{ padding:4px 18px 0 !important; }
  .footer-top{ margin:0 auto 16px !important; padding-bottom:16px !important; }
  .footer-top img{ height:62px !important; margin-top:14px !important; margin-bottom:-4px !important; }
  .footer-top p{ font-size:11.5px !important; line-height:1.45 !important; }
  /* grille principale (specificite renforcee pour battre newsletter.js) */
  footer .footer-cols{ display:grid !important; grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important; gap:16px 16px !important; padding:0 2px 16px !important; align-items:start !important; }
  footer .footer-cols > *{ min-width:0 !important; overflow-wrap:break-word !important; }
  footer .footer-cols > :first-child{ grid-column:1 !important; grid-row:1 !important; }
  footer .footer-links{ grid-column:2 !important; grid-row:1 !important; }
  footer .footer-news{ grid-column:1 / -1 !important; grid-row:2 !important; display:grid !important; grid-template-columns:1fr 1fr !important; gap:8px 14px !important; align-items:start !important; margin:0 !important; }
  footer .footer-social{ grid-column:1 / -1 !important; grid-row:3 !important; text-align:center !important; }
  footer .footer-social h4{ text-align:center !important; }
  footer .footer-social .socials{ justify-content:center !important; }
  .footer-cols h4{ font-size:13px !important; margin-bottom:8px !important; }
  .footer-cols .line{ font-size:12px !important; line-height:1.5 !important; margin-bottom:5px !important; }
  .footer-links a, .footer-social a{ font-size:12px !important; }
  /* Newsletter : consentement a gauche, titre + e-mail a droite */
  footer .footer-news .nl-h{ grid-column:1 !important; grid-row:1 !important; margin:0 0 6px !important; font-size:16px !important; }
  footer .footer-news .nl-optin{ grid-column:1 !important; grid-row:2 !important; margin:0 !important; max-width:none !important; font-size:10px !important; line-height:1.4 !important; }
  footer .footer-news .nl-sub{ display:none !important; }
  footer .footer-news .nl-form{ grid-column:2 !important; grid-row:1 / span 2 !important; align-self:center !important; max-width:none !important; }
  footer .footer-news .nl-msg{ grid-column:1 / -1 !important; }
  .footer-bottom{ padding:12px 18px !important; font-size:11px !important; line-height:1.4 !important; }
}

/* ===== jv-mobile-promo ===== */
/* ===== LANGUETTE MOBILE : mini-languette repliee + deplie qui monte jusqu'au menu ===== */
@media (max-width:600px){
  /* repliee : mini-languette de rappel */
  .promo-drawer.collapsed .promo-tab{ padding:8px 13px !important; gap:7px !important; border-radius:0 11px 0 0 !important; font-size:0 !important; box-shadow:0 -4px 16px rgba(0,0,0,0.22) !important; }
  .promo-drawer.collapsed .promo-tab .pt-label{ display:none !important; }
  .promo-drawer.collapsed .promo-tab::before{ content:"\f06b"; font-family:"Font Awesome 6 Free"; font-weight:900; font-size:15px; color:#fff; line-height:1; }
  .promo-drawer.collapsed .promo-tab .pt-arrow{ font-size:14px !important; transform:rotate(-90deg) !important; }
  /* depliee : monte jusqu'a la ligne du menu + contenu compact pour tout faire tenir */
  .promo-drawer{ --cardW:72vw !important; }
  .promo-drawer:not(.collapsed){ z-index:1100 !important; }
  .promo-drawer:not(.collapsed) .promo-card{ height:calc(100svh - var(--jv-bookbar-h,60px) - 140px) !important; max-height:calc(100svh - var(--jv-bookbar-h,60px) - 140px) !important; min-height:0 !important; overflow:auto !important; }
  .promo-card{ padding:0 22px !important; }
  .promo-card::before{ height:16px !important; }
  .promo-card::after{ height:12px !important; }
  .promo-label{ font-size:9.5px !important; margin:2px 0 6px !important; letter-spacing:0.22em !important; }
  .promo-card h3{ font-size:18px !important; margin-bottom:6px !important; }
  .promo-rule{ margin:0 auto 9px !important; }
  .promo-sub{ font-size:11.5px !important; margin:0 auto 11px !important; line-height:1.5 !important; }
  .promo-perks{ gap:8px !important; margin:0 0 11px !important; }
  .promo-perks li{ font-size:12px !important; line-height:1.35 !important; }
  .promo-perks li i{ margin-top:2px !important; }
  .promo-guar{ padding-top:11px !important; gap:10px !important; }
  .promo-guar > i{ font-size:18px !important; }
  .promo-guar .g-title{ font-size:9.5px !important; margin-bottom:3px !important; }
  .promo-guar .g-sub{ font-size:11.5px !important; line-height:1.4 !important; }
  .promo-unlock{ margin-top:11px !important; }
  .promo-unlock-btn{ padding:11px 26px !important; font-size:10px !important; }
  .promo-note{ font-size:9.5px !important; margin-top:8px !important; }
}

/* ===== jv-mobile-gallery ===== */
/* ===== GALERIE MOBILE : preserve photo proportions with readable columns ===== */
@media (max-width:600px){
  .masonry{ column-count:2 !important; column-gap:8px !important; padding:0 10px !important; }
  .gal-item{ margin:0 0 8px !important; }
}

/* ===== jv-mobile-lightbox ===== */
/* ===== LIGHTBOX MOBILE : pas de fleches, croix conservee, navigation au swipe ===== */
@media (max-width:600px){ .lb-prev, .lb-next{ display:none !important; } }

/* ===== jv-mobile-lblogo ===== */
/* ===== LIGHTBOX MOBILE : logo redimensionne proportionnellement a la photo (ratio carre conserve) ===== */
@media (max-width:600px){
  .lb-logo{ width:84px !important; height:84px !important; background-size:contain !important; background-repeat:no-repeat !important; }
}

/* ===== jv-mobile-spacing ===== */
/* ===== MOBILE : compactage des espaces verticaux entre sections ===== */
@media (max-width:600px){
  .page-hero-overlay{ padding-bottom:24px !important; justify-content:flex-end !important; }
  .intro{ margin:38px auto 32px !important; }
  .riad-block, .resto-block, .spa-block, .room-item{ margin-bottom:22px !important; }
  .resto-container, .spa-container{ padding-bottom:36px !important; }
  .quote-band{ padding:38px 24px !important; }
  .two-col{ margin:34px auto !important; }
  .reviews{ padding:34px 22px !important; }
  .rooms-section, .services-section{ padding:44px 0 !important; }
}

/* ===== jv-desktop-lang ===== */
/* Bouton langue en bronze sur fond blanc (pages interieures, desktop) */
@media (min-width:601px){
  body:not(.is-home) nav .lang-switch .lang-current{ color:var(--accent) !important; border-color:var(--accent) !important; }
}

/* ===== jv-desktop-consent ===== */
/* Case de consentement : leger filtre pour adoucir le blanc (desktop) */
@media (min-width:601px){
  .nl-optin input, .footer-news .nl-optin input, form.cform .nl-optin input, .mu-consent input{ filter:opacity(0.7) brightness(0.97) !important; }
}

/* ===== jv-desktop-promo-aere ===== */
/* Aeration du texte du pop-up pour qu'il se repartisse dans l'espace (desktop 13") */
@media (min-width:601px) and (max-width:1500px){
  .promo-card::before{ height:30px !important; }
  .promo-card::after{ height:28px !important; }
  .promo-label{ margin:6px 0 14px !important; }
  .promo-card h3{ margin-bottom:14px !important; }
  .promo-rule{ margin:0 auto 18px !important; }
  .promo-sub{ margin:0 auto 26px !important; line-height:1.7 !important; }
  .promo-perks{ gap:16px !important; margin:0 0 26px !important; }
  .promo-perks li{ line-height:1.55 !important; }
  .promo-guar{ padding-top:24px !important; }
  .promo-unlock{ margin-top:24px !important; }
  .promo-note{ margin-top:16px !important; }
}
