/*
Theme Name: Bonheur Services
Theme URI: https://bonheurservices.com
Author: Bonheur Services
Description: Thème WordPress sur mesure pour Bonheur Services, agence de voyage et multiservices basée à Kinshasa (RDC). Site vitrine optimisé pour la génération de leads : formulaire de demande adaptatif par service, SEO intégré (JSON-LD TravelAgency), mobile-first.
Version: 1.7.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: bonheur
*/

/* =========================================================
   0. Reset & variables
   ========================================================= */
:root{
	--navy:#1e3a5f;
	--navy-dark:#152a45;
	--navy-light:#2c4d78;
	--red:#b8192b;
	--red-dark:#921420;
	--gold:#e8b712;
	--gold-dark:#c99c0d;
	--ink:#1a2433;
	--muted:#5b6b80;
	--line:#e4e9f0;
	--bg:#f4f6f9;
	--white:#ffffff;
	--radius:16px;
	--radius-sm:10px;
	--radius-lg:24px;
	--shadow:0 10px 30px -12px rgba(30,58,95,.18);
	--shadow-sm:0 2px 10px rgba(30,58,95,.08);
	--font-head:'Plus Jakarta Sans', system-ui, sans-serif;
	--font-body:'Inter', system-ui, sans-serif;
	--container:1180px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:90px;}
body{
	margin:0;
	font-family:var(--font-body);
	color:var(--ink);
	background:var(--white);
	line-height:1.6;
	-webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;height:auto;}
figure{margin:0;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{font-family:var(--font-head);color:var(--navy-dark);margin:0 0 .5em;line-height:1.15;font-weight:700;}
p{margin:0 0 1em;color:var(--muted);}
input,select,textarea,button{font-family:inherit;font-size:1rem;}
.container{max-width:var(--container);margin:0 auto;padding:0 20px;}
.icon{width:22px;height:22px;flex-shrink:0;}
section{padding:70px 0;}
@media(max-width:768px){section{padding:48px 0;}}

/* =========================================================
   1. Buttons
   ========================================================= */
.btn{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;
	padding:14px 26px;border-radius:999px;font-weight:700;font-size:.98rem;
	border:2px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
	white-space:nowrap;
}
.btn:active{transform:scale(.97);}
.btn-red{background:var(--red);color:#fff;box-shadow:0 8px 20px -6px rgba(184,25,43,.5);}
.btn-red:hover{background:var(--red-dark);}
.btn-gold{background:var(--gold);color:var(--navy-dark);box-shadow:0 8px 20px -6px rgba(232,183,18,.45);}
.btn-gold:hover{background:var(--gold-dark);}
.btn-outline{background:transparent;border-color:rgba(255,255,255,.55);color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.12);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--navy-dark);}
.btn-block{width:100%;}
.btn-lg{padding:17px 32px;font-size:1.05rem;}
.btn-sm{padding:10px 18px;font-size:.88rem;}

/* =========================================================
   2. Header
   ========================================================= */
.site-header{
	position:sticky;top:0;z-index:200;background:#fff;border-bottom:1px solid var(--line);
	transition:box-shadow .2s ease, padding .2s ease;
}
.site-header.is-scrolled{box-shadow:0 6px 24px -10px rgba(30,58,95,.25);}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:76px;gap:20px;}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:800;font-size:1.2rem;color:var(--navy-dark);}
.brand-mark{width:40px;height:40px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;flex-shrink:0;}
.main-nav{display:none;}
.main-nav ul{display:flex;align-items:center;gap:30px;}
.main-nav a{font-weight:600;font-size:.96rem;color:var(--navy-dark);position:relative;padding:6px 0;}
.main-nav a:hover{color:var(--red);}
.header-actions{display:flex;align-items:center;gap:14px;}
.header-phone{display:none;align-items:center;gap:8px;font-weight:700;color:var(--navy-dark);font-size:.95rem;}
.header-phone .icon{width:18px;height:18px;color:var(--gold-dark);}
.menu-toggle{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:#fff;}
.menu-toggle .icon{width:22px;height:22px;}
@media(min-width:1024px){
	.main-nav{display:block;}
	.header-phone{display:flex;}
	.menu-toggle{display:none;}
}

/* Mobile nav drawer */
.mobile-nav{
	position:fixed;inset:0;background:rgba(21,42,69,.55);z-index:300;opacity:0;pointer-events:none;transition:opacity .2s ease;
}
.mobile-nav.is-open{opacity:1;pointer-events:auto;}
.mobile-nav-panel{
	position:absolute;top:0;right:0;height:100%;width:82%;max-width:340px;background:#fff;
	padding:24px;transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column;gap:22px;
}
.mobile-nav.is-open .mobile-nav-panel{transform:translateX(0);}
.mobile-nav-close{align-self:flex-end;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;}
.mobile-nav ul{display:flex;flex-direction:column;gap:4px;}
.mobile-nav a{display:block;padding:12px 6px;font-weight:700;font-size:1.05rem;border-bottom:1px solid var(--line);color:var(--navy-dark);}
.mobile-nav-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px;}

/* =========================================================
   3. Hero
   ========================================================= */
.hero{
	position:relative;color:#fff;overflow:hidden;
	background:linear-gradient(160deg,rgba(21,42,69,.92),rgba(30,58,95,.78)),
		var(--bonheur-hero, url('assets/images/hero-lagoon.jpg')) center/cover no-repeat;
	padding:90px 0 60px;
}
.hero-badge{
	display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);
	border:1px solid rgba(255,255,255,.3);padding:8px 16px;border-radius:999px;font-size:.82rem;
	font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:22px;backdrop-filter:blur(4px);
}
.hero-badge .icon{width:15px;height:15px;color:var(--gold);}
.hero h1{
	font-size:2.4rem;text-transform:uppercase;letter-spacing:.01em;color:#fff;font-weight:800;
	max-width:15ch;margin-bottom:.4em;
}
.hero h1 em{font-style:normal;color:var(--gold);}
.hero-sub{color:rgba(255,255,255,.86);font-size:1.08rem;max-width:52ch;margin-bottom:30px;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:36px;}
.hero-trust{display:flex;flex-wrap:wrap;gap:22px;margin-bottom:44px;}
.hero-trust li{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:rgba(255,255,255,.9);}
.hero-trust .icon{width:18px;height:18px;color:var(--gold);}
.hero-stats{
	display:grid;grid-template-columns:repeat(2,1fr);gap:0;background:rgba(255,255,255,.08);
	border:1px solid rgba(255,255,255,.18);border-radius:var(--radius);backdrop-filter:blur(6px);overflow:hidden;
}
.hero-stats div{padding:20px 14px;text-align:center;border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);}
.hero-stats div:nth-child(2n){border-right:none;}
.hero-stats strong{display:block;font-family:var(--font-head);font-size:1.6rem;color:var(--gold);font-weight:800;}
.hero-stats span{font-size:.78rem;color:rgba(255,255,255,.85);font-weight:600;}
@media(min-width:640px){
	.hero h1{font-size:3.1rem;}
	.hero-stats{grid-template-columns:repeat(4,1fr);}
	.hero-stats div{border-bottom:none;}
	.hero-stats div:last-child{border-right:none;}
}
@media(min-width:1024px){
	.hero{padding:120px 0 80px;}
	.hero h1{font-size:3.8rem;}
}

/* Promo strip under hero */
.promo-strip{background:var(--navy-dark);}
.promo-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;}
.promo-left{display:flex;align-items:center;gap:14px;color:#fff;}
.promo-tag{background:var(--red);color:#fff;font-weight:800;font-size:.78rem;padding:6px 12px;border-radius:999px;}
.promo-left p{color:rgba(255,255,255,.85);margin:0;font-size:.92rem;}

/* =========================================================
   4. Section headings
   ========================================================= */
.eyebrow{
	display:inline-block;color:var(--red);font-weight:800;letter-spacing:.08em;text-transform:uppercase;
	font-size:.8rem;margin-bottom:10px;
}
.section-head{max-width:680px;margin:0 0 40px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:1.9rem;}
@media(min-width:768px){.section-head h2{font-size:2.3rem;}}
.section-head p{font-size:1.05rem;}

/* =========================================================
   5. Services grid
   ========================================================= */
.services-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media(min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.services-grid{grid-template-columns:repeat(4,1fr);}}
.service-card{
	background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 22px;
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column;height:100%;
}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent;}
.service-icon{
	width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--navy),var(--navy-light));
	display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:var(--gold);
}
.service-icon .icon{width:26px;height:26px;}
.service-card h3{font-size:1.08rem;margin-bottom:.4em;}
.service-card p{font-size:.92rem;margin-bottom:1.2em;flex-grow:1;}
.service-card .service-link{font-weight:700;font-size:.88rem;color:var(--red);display:inline-flex;align-items:center;gap:6px;}
.service-card .service-link .icon{width:15px;height:15px;transition:transform .15s ease;}
.service-card:hover .service-link .icon{transform:translateX(4px);}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:36px;}
@media(min-width:768px){.gallery-grid{grid-template-columns:repeat(3,1fr);}}
.gallery-grid figure{margin:0;position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;}
.gallery-grid img{width:100%;height:100%;object-fit:cover;}
.gallery-grid figcaption{
	position:absolute;left:0;right:0;bottom:0;padding:16px;
	background:linear-gradient(0deg,rgba(21,42,69,.85),transparent);color:#fff;font-weight:700;font-size:.94rem;
}

/* =========================================================
   6b. Animated masonry gallery + lightbox
   ========================================================= */
.gallery-section{background:var(--white);}
.masonry-gallery{
	display:grid;grid-template-columns:1fr;grid-auto-rows:14vw;grid-auto-flow:dense;gap:16px;
}
@media(min-width:640px){.masonry-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:15vw;}}
@media(min-width:1024px){.masonry-gallery{grid-template-columns:repeat(3,1fr);grid-auto-rows:130px;}}
.masonry-item{
	grid-row:span 2; /* default (square-ish) height */
	margin:0;break-inside:avoid;border-radius:var(--radius);overflow:hidden;position:relative;
	cursor:zoom-in;opacity:0;transform:translateY(24px) scale(.97);transition:opacity .6s ease,transform .6s ease;
}
.masonry-item.size-tall{grid-row:span 3;}
.masonry-item.size-wide{grid-row:span 2;}
.masonry-item.is-visible{opacity:1;transform:none;}
.masonry-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.2,.8,.2,1);}
.masonry-item:hover img{transform:scale(1.08);}
.masonry-item .masonry-overlay{
	position:absolute;inset:0;background:linear-gradient(0deg,rgba(21,42,69,.85) 0%,rgba(21,42,69,0) 55%);
	display:flex;align-items:flex-end;padding:16px;opacity:0;transition:opacity .3s ease;
}
.masonry-item:hover .masonry-overlay{opacity:1;}
.masonry-overlay span{color:#fff;font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:8px;}
.masonry-overlay .icon{width:17px;height:17px;color:var(--gold);}

/* Lightbox modal */
.lightbox{
	position:fixed;inset:0;background:rgba(15,26,42,.94);z-index:400;display:flex;align-items:center;justify-content:center;
	opacity:0;pointer-events:none;transition:opacity .25s ease;padding:24px;
}
.lightbox.is-open{opacity:1;pointer-events:auto;}
.lightbox img{max-width:min(90vw,900px);max-height:82vh;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5);
	opacity:0;transform:scale(.95);transition:opacity .3s ease,transform .3s ease;}
.lightbox.is-open img{opacity:1;transform:none;}
.lightbox-close,.lightbox-nav{
	position:absolute;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;
	display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.25);
}
.lightbox-close{top:20px;right:20px;}
.lightbox-close .icon,.lightbox-nav .icon{width:22px;height:22px;}
.lightbox-nav{top:50%;transform:translateY(-50%);}
.lightbox-prev{left:20px;}
.lightbox-next{right:20px;}
.lightbox-caption{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:rgba(255,255,255,.85);font-size:.9rem;}

/* =========================================================
   6c. TikTok feed
   ========================================================= */
.tiktok-section{background:linear-gradient(160deg,var(--navy-dark),var(--navy));}
.tiktok-section .section-head h2{color:#fff;}
.tiktok-section .section-head p{color:rgba(255,255,255,.75);}
.tiktok-section .eyebrow{color:var(--gold);}
.tiktok-grid{display:grid;grid-template-columns:1fr;gap:18px;}
@media(min-width:640px){.tiktok-grid{grid-template-columns:repeat(3,1fr);}}
.tiktok-card{
	display:flex;flex-direction:column;justify-content:space-between;
	aspect-ratio:9/16;border-radius:var(--radius);overflow:hidden;position:relative;
	background-size:cover;background-position:center;
	border:1px solid rgba(255,255,255,.14);padding:16px;
	transition:transform .25s ease,box-shadow .25s ease;
}
.tiktok-card:hover{transform:translateY(-6px);box-shadow:0 16px 34px -10px rgba(0,0,0,.5);}
.tiktok-badge{
	align-self:flex-start;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);
	backdrop-filter:blur(4px);color:#fff;font-weight:700;font-size:.75rem;padding:6px 12px;border-radius:999px;
}
.tiktok-badge .icon{width:14px;height:14px;color:var(--gold);}
.tiktok-play{
	position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;
	background:rgba(255,255,255,.9);color:var(--navy-dark);display:flex;align-items:center;justify-content:center;
	transition:transform .25s ease,background .25s ease;
}
.tiktok-play .icon{width:26px;height:26px;}
.tiktok-card:hover .tiktok-play{transform:translate(-50%,-50%) scale(1.1);background:#fff;}
.tiktok-caption{color:#fff;font-weight:700;font-size:.92rem;line-height:1.3;text-shadow:0 2px 8px rgba(0,0,0,.5);}
.tiktok-follow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;margin-top:34px;}
.tiktok-handle{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;}
.tiktok-handle .icon{width:22px;height:22px;color:var(--gold);}

/* =========================================================
   6d. Blog section (homepage) + article CTA (single post)
   ========================================================= */
.blog-grid{display:grid;grid-template-columns:1fr;gap:22px;}
@media(min-width:768px){.blog-grid{grid-template-columns:repeat(3,1fr);}}
.blog-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;}
.blog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);}
.blog-card-img{aspect-ratio:16/10;overflow:hidden;}
.blog-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.blog-card:hover .blog-card-img img{transform:scale(1.06);}
.blog-card-body{padding:20px 22px 24px;}
.blog-card-date{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;}
.blog-card-date .icon{width:14px;height:14px;}
.blog-card h3{font-size:1.05rem;margin-bottom:8px;}
.blog-card p{font-size:.9rem;margin-bottom:14px;}

.article-cta{
	display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;
	background:var(--bg);border:1px solid var(--line);border-left:4px solid var(--red);border-radius:var(--radius-sm);
	padding:20px 24px;margin:2em 0;
}
.article-cta-text{display:flex;flex-direction:column;gap:2px;}
.article-cta-text strong{color:var(--navy-dark);font-size:1.02rem;}
.article-cta-text span{color:var(--muted);font-size:.88rem;}

/* =========================================================
   6e. FAQ accordion (native <details>/<summary> — zero JS, accessible)
   ========================================================= */
.faq-list{display:flex;flex-direction:column;gap:12px;}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;}
.faq-item summary{
	list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;
	padding:18px 22px;font-weight:700;color:var(--navy-dark);font-family:var(--font-head);font-size:1rem;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-caret{color:var(--red);transition:transform .25s ease;flex-shrink:0;}
.faq-item[open] .faq-caret{transform:rotate(180deg);}
.faq-answer{padding:0 22px 20px;}
.faq-answer p{margin:0;font-size:.94rem;}
.faq-item[open]{border-color:var(--gold);box-shadow:var(--shadow-sm);}
@media (prefers-reduced-motion: no-preference){
	.faq-answer{animation:faqFade .25s ease;}
}
@keyframes faqFade{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}

/* =========================================================
   6. Destinations
   ========================================================= */
.destinations-wrap{display:grid;grid-template-columns:1fr;gap:24px;}
@media(min-width:900px){.destinations-wrap{grid-template-columns:1.1fr 1fr;}}
.destination-feature{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:320px;}
.destination-feature img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.destination-feature::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(21,42,69,.92),rgba(21,42,69,.1));}
.destination-feature-content{position:relative;z-index:1;color:#fff;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;min-height:320px;}
.destination-feature-tag{display:inline-block;background:var(--gold);color:var(--navy-dark);font-weight:800;font-size:.72rem;text-transform:uppercase;padding:5px 12px;border-radius:999px;margin-bottom:12px;width:fit-content;}
.destination-feature h3{color:#fff;font-size:1.4rem;}
.destinations-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.destination-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px;transition:box-shadow .2s ease,border-color .2s ease;}
.destination-item:hover{box-shadow:var(--shadow-sm);border-color:var(--gold);}
.destination-item h4{font-size:1rem;margin-bottom:2px;}
.destination-item span{font-size:.78rem;color:var(--red);font-weight:700;text-transform:uppercase;letter-spacing:.04em;}

/* =========================================================
   7. Why us
   ========================================================= */
.why-wrap{display:grid;grid-template-columns:1fr;gap:36px;align-items:center;}
@media(min-width:900px){.why-wrap{grid-template-columns:1fr 1.05fr;}}
.why-photo{position:relative;border-radius:var(--radius-lg);overflow:hidden;}
.why-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.why-photo-badge{
	position:absolute;left:20px;bottom:20px;background:#fff;padding:14px 18px;border-radius:var(--radius-sm);
	box-shadow:var(--shadow);display:flex;align-items:center;gap:10px;font-weight:700;font-size:.85rem;color:var(--navy-dark);
}
.why-list{display:grid;grid-template-columns:1fr;gap:22px;margin-top:26px;}
@media(min-width:500px){.why-list{grid-template-columns:1fr 1fr;}}
.why-item{display:flex;gap:14px;}
.why-item-icon{width:44px;height:44px;border-radius:12px;background:#fdf2e9;display:flex;align-items:center;justify-content:center;color:var(--red);flex-shrink:0;}
.why-item-icon .icon{width:22px;height:22px;}
.why-item h4{font-size:1rem;margin-bottom:4px;}
.why-item p{font-size:.9rem;margin:0;}

/* =========================================================
   8. How it works
   ========================================================= */
.how-section{background:var(--navy-dark);color:#fff;}
.how-section .section-head h2{color:#fff;}
.how-section .eyebrow{color:var(--gold);}
.how-grid{display:grid;grid-template-columns:1fr;gap:22px;}
@media(min-width:768px){.how-grid{grid-template-columns:repeat(4,1fr);}}
.how-step{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:26px 22px;position:relative;}
.how-step-num{font-family:var(--font-head);font-size:2.1rem;font-weight:800;color:var(--gold);opacity:.8;margin-bottom:10px;}
.how-step h4{color:#fff;font-size:1.05rem;margin-bottom:6px;}
.how-step p{color:rgba(255,255,255,.75);font-size:.9rem;margin:0;}

/* =========================================================
   9. Testimonials
   ========================================================= */
.testimonial-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media(min-width:768px){.testimonial-grid{grid-template-columns:repeat(3,1fr);}}
.testimonial-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-sm);}
.stars{display:flex;gap:3px;color:var(--gold);margin-bottom:14px;}
.stars .icon{width:16px;height:16px;fill:var(--gold);stroke:var(--gold);}
.testimonial-card p{font-style:italic;color:var(--ink);}
.testimonial-author{display:flex;align-items:center;gap:12px;margin-top:16px;}
.testimonial-avatar{width:42px;height:42px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-family:var(--font-head);}
.testimonial-author strong{display:block;font-size:.92rem;color:var(--navy-dark);}
.testimonial-author span{font-size:.8rem;color:var(--muted);}

/* =========================================================
   10. Order form
   ========================================================= */
.form-section{background:var(--bg);}
.form-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:32px 22px;max-width:760px;margin:0 auto;}
@media(min-width:640px){.form-card{padding:44px;}}
.form-card-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;color:var(--navy-dark);font-weight:800;}
.form-fieldset{margin-bottom:26px;}
.form-fieldset legend{display:flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:800;color:var(--navy-dark);font-size:1.05rem;padding:0 0 14px;width:100%;border-bottom:1px solid var(--line);margin-bottom:18px;}
.form-fieldset legend .icon{width:19px;height:19px;color:var(--red);}
.form-row{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:16px;}
@media(min-width:640px){.form-row.cols-2{grid-template-columns:1fr 1fr;}}
.form-field label{display:block;font-weight:700;font-size:.86rem;color:var(--navy-dark);margin-bottom:6px;}
.form-field .req{color:var(--red);}
.form-field input,.form-field select,.form-field textarea{
	width:100%;border:1.5px solid var(--line);border-radius:999px;padding:13px 18px;background:#fff;color:var(--ink);
	transition:border-color .15s ease,box-shadow .15s ease;
}
.form-field textarea{border-radius:16px;min-height:110px;resize:vertical;}
.form-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235b6b80' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:42px;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 4px rgba(30,58,95,.1);}
.form-field.is-hidden{display:none;}
.form-note{text-align:center;font-size:.82rem;color:var(--muted);margin-top:14px;}
.form-alert{border-radius:var(--radius-sm);padding:14px 18px;margin-bottom:22px;font-weight:600;font-size:.92rem;display:flex;gap:10px;align-items:flex-start;}
.form-alert.success{background:#e8f8ee;color:#1c7a3c;border:1px solid #bfe8cc;}
.form-alert.error{background:#fdeceb;color:var(--red-dark);border:1px solid #f6c6c2;}
.form-alert .icon{width:18px;height:18px;flex-shrink:0;margin-top:1px;}

/* Service picker (used on homepage anchor + /reserver step 1) */
.service-picker{display:grid;grid-template-columns:1fr;gap:14px;}
@media(min-width:600px){.service-picker{grid-template-columns:1fr 1fr;}}
.service-pick{
	display:flex;align-items:center;gap:14px;background:#fff;border:1.5px solid var(--line);border-radius:var(--radius);
	padding:18px 20px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;text-align:left;width:100%;
}
.service-pick:hover{border-color:var(--gold);box-shadow:var(--shadow-sm);transform:translateY(-2px);}
.service-pick.is-active{border-color:var(--red);box-shadow:0 0 0 3px rgba(184,25,43,.12);}
.service-pick-icon{width:46px;height:46px;border-radius:12px;background:var(--bg);color:var(--navy);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.service-pick-icon .icon{width:23px;height:23px;}
.service-pick strong{display:block;font-size:.98rem;color:var(--navy-dark);}
.service-pick small{color:var(--muted);font-size:.8rem;}

/* Reservation page (step layout) */
.reserve-header{background:linear-gradient(160deg,var(--navy-dark),var(--navy));color:#fff;padding:44px 0 60px;}
.reserve-header .eyebrow{color:var(--gold);}
.reserve-header h1{color:#fff;font-size:1.9rem;}
.reserve-header p{color:rgba(255,255,255,.82);max-width:60ch;}
.reserve-back{display:inline-flex;align-items:center;gap:6px;color:rgba(255,255,255,.85);font-weight:700;font-size:.9rem;margin-bottom:18px;}
.reserve-back .icon{width:16px;height:16px;}
.reserve-body{margin-top:-40px;padding-bottom:70px;}
.selected-chip{display:inline-flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-weight:700;font-size:.86rem;color:var(--navy-dark);margin-bottom:20px;}
.selected-chip .icon{width:16px;height:16px;color:var(--red);}
.step-panel{display:none;}
.step-panel.is-active{display:block;}

/* =========================================================
   11. Contact
   ========================================================= */
.contact-wrap{display:grid;grid-template-columns:1fr;gap:30px;}
@media(min-width:900px){.contact-wrap{grid-template-columns:.85fr 1.15fr;}}
.contact-list{display:flex;flex-direction:column;gap:18px;margin-top:24px;}
.contact-item{display:flex;gap:14px;align-items:flex-start;}
.contact-item-icon{width:46px;height:46px;border-radius:12px;background:var(--navy);color:var(--gold);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.contact-item-icon .icon{width:22px;height:22px;}
.contact-item strong{display:block;color:var(--navy-dark);font-size:.98rem;margin-bottom:2px;}
.contact-item p{margin:0;font-size:.92rem;}
.contact-map{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm);min-height:320px;}
.contact-map iframe{width:100%;height:100%;min-height:320px;border:0;display:block;}

/* =========================================================
   12. Footer
   ========================================================= */
.site-footer{background:var(--navy-dark);color:rgba(255,255,255,.75);padding-top:60px;}
.footer-grid{display:grid;grid-template-columns:1fr;gap:36px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12);}
@media(min-width:768px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr;}}
.footer-brand .brand{color:#fff;}
.footer-brand p{color:rgba(255,255,255,.65);margin-top:14px;font-size:.92rem;}
.footer-col h4{color:#fff;font-size:.95rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:16px;}
.footer-col ul{display:flex;flex-direction:column;gap:10px;}
.footer-col a{font-size:.92rem;color:rgba(255,255,255,.7);}
.footer-col a:hover{color:var(--gold);}
.footer-newsletter{display:flex;gap:8px;margin-top:6px;}
.footer-newsletter input{flex:1;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);padding:11px 16px;color:#fff;}
.footer-newsletter input::placeholder{color:rgba(255,255,255,.5);}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:22px 0 90px;font-size:.82rem;}
@media(min-width:768px){.footer-bottom{padding:22px 0;}}
.footer-social{display:flex;gap:10px;}
.footer-social a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;}
.footer-social a:hover{background:var(--red);}

/* =========================================================
   13. Floating CTAs
   ========================================================= */
.wa-float{
	position:fixed;right:24px;bottom:24px;width:58px;height:58px;border-radius:50%;background:#25D366;
	display:none;align-items:center;justify-content:center;color:#fff;box-shadow:0 10px 24px -6px rgba(37,211,102,.55);z-index:250;
}
.wa-float .icon{width:28px;height:28px;}
@media(min-width:1024px){.wa-float{display:flex;}}

.mobile-cta-bar{
	position:fixed;left:0;right:0;bottom:0;z-index:250;display:flex;background:#fff;border-top:1px solid var(--line);
	box-shadow:0 -6px 18px rgba(21,42,69,.12);padding:10px 12px;gap:10px;
	padding-bottom:calc(10px + env(safe-area-inset-bottom));
}
.mobile-cta-bar a{flex:1;min-width:0;min-height:48px;padding:12px 8px;font-size:13px;gap:5px;}
.mobile-cta-bar .icon{width:18px;height:18px;flex-shrink:0;}
.mobile-cta-bar .btn-whatsapp{background:#128c4a;color:#fff;}
.mobile-cta-bar .btn-whatsapp:hover{background:#0e703b;}
@media(max-width:360px){.mobile-cta-bar{gap:6px;padding-left:8px;padding-right:8px}.mobile-cta-bar a{font-size:12px;padding:12px 5px;gap:4px}}
@media(max-width:1023px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom));}}
@media(min-width:1024px){.mobile-cta-bar{display:none;}}

/* =========================================================
   14. Misc / utility
   ========================================================= */
.text-center{text-align:center;}
.mt-0{margin-top:0;}
.skip-link{position:absolute;left:-999px;top:0;background:#fff;padding:10px 16px;z-index:999;}
.skip-link:focus{left:10px;top:10px;}
.badge-dot{width:8px;height:8px;border-radius:50%;background:var(--gold);display:inline-block;}
::selection{background:var(--gold);color:var(--navy-dark);}

/* Reveal-on-scroll (progressive enhancement, JS adds .is-visible) */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease;}
.reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
	.reveal{opacity:1;transform:none;transition:none;}
	html{scroll-behavior:auto;}
}

.brand-logo{max-width:190px;max-height:58px;width:auto;height:auto;object-fit:contain}.service-photo{width:100%;height:170px;object-fit:cover;border-radius:12px;margin-bottom:16px}.bonheur-extra-content{padding:48px 20px}
.mobile-nav{overflow:hidden}.brand{min-width:0;overflow-wrap:anywhere}.header-actions{flex-shrink:0}.form-fieldset{min-width:0}.form-row>*{min-width:0}
@media(max-width:480px){.header-actions>.btn{display:none}.header-inner{gap:12px}.brand-logo{max-width:230px}}
.admin-bar .site-header{top:32px}.admin-bar .mobile-nav{top:32px}
@media(max-width:782px){.admin-bar .site-header,.admin-bar .mobile-nav{top:46px}}
@media(max-width:600px){.admin-bar .site-header{top:0}}

/* Real photography: editorial hero, uncropped flyers and generous portrait layouts. */
.hero-editorial{background:#142a43;padding:56px 0 64px}.hero-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:56px;align-items:center}.hero-copy{min-width:0}.hero-editorial h1{text-transform:none;font-size:clamp(2.5rem,4vw,3.65rem);line-height:1.12;letter-spacing:-.04em;max-width:17ch}.hero-editorial .hero-badge{font-size:.68rem;letter-spacing:.08em;padding:8px 12px}.hero-editorial .hero-sub{font-size:1rem;line-height:1.75}.hero-editorial .hero-trust{gap:16px;margin-bottom:24px}.hero-editorial .hero-trust li{font-size:.78rem}.hero-editorial .hero-stats strong{font-size:1.25rem}.hero-editorial .hero-stats div{padding:16px 8px}.hero-editorial .hero-stats span{font-size:.65rem}.hero-editorial .hero-ctas .btn{font-size:.88rem;padding:14px 20px}.hero-portrait{margin:0;position:relative;border-radius:160px 160px 18px 18px;overflow:hidden;align-self:stretch;min-height:630px}.hero-portrait>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 43%}.hero-portrait:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(9,26,45,.88))}.hero-portrait figcaption{position:absolute;z-index:1;bottom:30px;left:28px;right:28px;color:white}.hero-portrait figcaption span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.65rem;color:#ffdb81;margin-bottom:10px}.hero-portrait figcaption strong{font-size:1.35rem;line-height:1.4;display:block;max-width:22ch}.gallery-grid img{height:260px;object-fit:cover;object-position:center 38%}.why-photo img{aspect-ratio:4/3;object-position:center}.destination-feature{min-height:590px}.destination-feature img{object-position:center 40%}.masonry-gallery{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:170px;gap:22px}.masonry-item.size-tall{grid-row:span 4}.masonry-item.size-wide,.masonry-item.size-sq{grid-row:span 2}.masonry-item img{object-position:center 40%}.bonheur-flyers{background:#f5f3ee}.flyer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;max-width:920px;margin:auto;align-items:start}.flyer-grid a{display:block;background:white;border-radius:16px;overflow:hidden;box-shadow:0 12px 36px rgba(21,42,69,.09)}.flyer-grid img{display:block;width:100%;height:auto}.main-nav ul{gap:18px}.main-nav a{font-size:.84rem}.header-phone{font-size:.8rem}.header-inner{gap:16px}.brand{font-size:1rem;flex-shrink:0;max-width:210px}.header-actions{gap:12px}
@media(min-width:1024px) and (max-width:1279px){.main-nav,.header-phone{display:none}.menu-toggle{display:flex}}
@media(max-width:899px){.hero-layout{grid-template-columns:1fr;gap:32px}.hero-editorial{padding:36px 0}.hero-editorial h1{max-width:22ch}.hero-portrait{min-height:0;aspect-ratio:3/4;max-width:560px;width:100%;justify-self:center;border-radius:100px 100px 16px 16px}.hero-editorial .hero-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.masonry-gallery{grid-auto-rows:115px}.destination-feature{min-height:540px}}
@media(max-width:599px){.hero-layout{gap:26px}.hero-editorial h1{font-size:2.6rem}.hero-portrait{aspect-ratio:3/4}.hero-portrait figcaption{bottom:24px;left:22px}.hero-editorial .hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-editorial .hero-stats span{font-size:.75rem}.masonry-gallery{grid-template-columns:1fr;grid-auto-rows:auto;gap:18px}.masonry-item.size-tall,.masonry-item.size-wide,.masonry-item.size-sq{grid-row:auto;aspect-ratio:4/3}.masonry-item.size-tall{aspect-ratio:3/4}.flyer-grid{grid-template-columns:1fr;max-width:420px}.gallery-grid img{height:auto;aspect-ratio:4/3}.destination-feature{min-height:540px}.promo-left{flex-wrap:wrap}.brand{max-width:240px}}

/* Lightweight language links; Google opens only after an explicit click. */
.bonheur-language-bar{background:#f4f6f8;border-bottom:1px solid #e3e8ed;color:#31475e;font-size:12px}
.bonheur-language-inner{display:flex;align-items:center;justify-content:flex-end;gap:18px;min-height:38px;padding-top:7px;padding-bottom:7px}
.bonheur-language-inner nav{display:flex;align-items:center;gap:18px}.bonheur-language-inner a{font-weight:700;color:#18334f;text-decoration:none}.bonheur-language-inner a:hover{text-decoration:underline}.bonheur-language-inner a:focus-visible{outline:2px solid #b8192b;outline-offset:4px;border-radius:2px}.bonheur-language-note{font-size:10px;color:#64748b}
@media(max-width:599px){.bonheur-language-inner{justify-content:center;gap:12px;font-size:11px}.bonheur-language-inner nav{gap:15px}.bonheur-language-label,.bonheur-language-note{display:none}}


/* Magazine-style blog: one feature and three compact stories, without dates. */
#blog.bonheur-journal{background:#203d60;color:#fff;padding:72px 0 80px}
.bonheur-journal .section-head{max-width:850px;margin-bottom:52px}
.bonheur-journal .section-head .eyebrow{background:rgba(184,25,43,.18);color:#ff6370;padding:7px 20px;border-radius:99px;line-height:1.2}
.bonheur-journal .section-head h2{color:#fff;text-transform:uppercase;font-size:clamp(1.8rem,3vw,2.8rem);letter-spacing:-.04em;margin:6px 0 0}
.bonheur-journal .section-head p{color:#d2deed;margin:16px auto 0;max-width:65ch}
.journal-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:38px;row-gap:28px;align-items:start}
.journal-article{min-width:0}.journal-featured{grid-column:1;grid-row:1 / span 3}.journal-small{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:22px;align-items:start}
.journal-image{display:block;overflow:hidden;border-radius:28px;background:#152a45}.journal-image img{display:block!important;width:100%!important;height:100%!important;max-width:100%;object-fit:cover;object-position:center;transition:transform .25s ease}
.journal-featured .journal-image{aspect-ratio:1.54}.journal-small .journal-image{grid-column:2;grid-row:1;aspect-ratio:1;border-radius:22px}.journal-small .journal-copy{grid-column:1;grid-row:1}
.journal-copy h3{color:#fff;text-transform:uppercase;line-height:1.45;letter-spacing:-.035em;margin:0 0 14px;font-size:1.05rem;overflow-wrap:anywhere}.journal-copy h3 a{color:inherit}.journal-featured .journal-copy{padding-top:20px}.journal-featured h3{font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.35}
.journal-read{color:#ff6471;font-weight:600;display:inline-flex;gap:8px;align-items:center;font-size:.95rem}.journal-read:hover{color:#fff;text-decoration:underline}.journal-image:hover img{transform:scale(1.035)}.journal-article a:focus-visible{outline:3px solid #ffdc83;outline-offset:5px}.journal-grid-single{grid-template-columns:minmax(0,1fr);max-width:780px;margin:auto}.journal-grid-single .journal-featured{grid-row:auto}.journal-all{text-align:center;margin-top:40px}
@media(min-width:1500px){.bonheur-journal .container{max-width:1440px}.journal-small{grid-template-columns:minmax(0,1fr) 140px}.journal-small h3{font-size:1.2rem}}
@media(max-width:899px){.journal-grid{grid-template-columns:minmax(0,1fr);gap:30px}.journal-featured{grid-row:auto;grid-column:auto;margin-bottom:10px}.journal-small{grid-column:auto}.bonheur-journal .section-head{margin-bottom:34px}}
@media(max-width:599px){#blog.bonheur-journal{padding:48px 0}.journal-small{grid-template-columns:minmax(0,1fr) 90px;gap:16px}.journal-copy h3{font-size:.95rem}.journal-featured h3{font-size:1.3rem}.journal-small .journal-image{border-radius:16px}.journal-image{border-radius:20px}}
@media(prefers-reduced-motion:reduce){.journal-image img{transition:none}}

/* Embedded booking widget below the hero. Do not clip widget dropdowns. */
.bonheur-travel-widget{background:var(--navy-dark);padding:24px 0 32px}.bonheur-travel-widget .container{min-width:0}.bonheur-travel-widget iframe{max-width:100%;border:0}

/* Optional flight comparison: a quiet service link and a separate page. */
.bs-flights-link{font-size:.88rem;text-align:center;margin:28px 0 8px;color:var(--muted)}.bs-flights-link a{color:var(--navy);text-decoration:underline;text-underline-offset:4px;font-weight:600}
.bs-flights-intro{padding:42px 0 24px}.bs-flights-intro h1{font-size:clamp(2rem,4vw,3rem);margin-top:22px}.bs-flights-intro .entry-content{max-width:760px}.bs-flights-back{font-size:.85rem;color:var(--muted)}
.bs-flights-help{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:24px;background:var(--bg);border-radius:16px;margin-top:28px}.bs-flights-help>div{flex:1;min-width:200px}.bs-flights-help h2{font-size:1.2rem}.bs-flights-help p{margin:0;font-size:.9rem}.bs-flights-note{font-size:.8rem}.bs-flights-empty{padding-top:20px;padding-bottom:48px}.bs-flights-page .bonheur-travel-widget{background:#fff;padding-top:12px;padding-bottom:48px}
@media(max-width:599px){.bs-flights-help{padding:20px;gap:12px}.bs-flights-help>div{flex-basis:100%}.bs-flights-help .btn{font-size:.85rem;padding:12px 16px}}
