:root{
  --ink:#171714;--paper:#f2f2f3;--paper-2:#e7e7e8;--white:#fff;--muted:#6f6b63;
  --line:rgba(23,23,20,.13);--gold:#2a45a8;--dark:#11120f;--radius:28px;
  --shadow:0 18px 55px rgba(14,14,12,.10);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);letter-spacing:-.01em}body.modal-open,body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover}.wrap{width:min(1240px,calc(100% - 44px));margin:auto}.serif{font-family:var(--serif)}.eyebrow{font-size:12.5px;letter-spacing:.23em;text-transform:uppercase;color:var(--muted)}

/* Header */
.site-header{height:78px;position:sticky;top:0;z-index:90;background:rgba(242,242,243,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center}.landing-page .site-header{position:fixed;left:0;right:0;background:linear-gradient(to bottom,rgba(0,0,0,.42),rgba(0,0,0,0));border:0;color:#fff}.nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:13px;min-width:235px}.mark{width:42px;height:42px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:15px;flex:none}.brand-copy{display:flex;flex-direction:column;gap:5px;line-height:1}.brand-name{font-family:var(--serif);font-size:19px;letter-spacing:.11em;white-space:nowrap}.brand-sub{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;opacity:.62;white-space:nowrap}.nav-links{display:flex;align-items:center;justify-content:center;gap:27px;font-size:13.5px}.nav-links a{opacity:.72;transition:.2s}.nav-links a:hover,.nav-links a.active{opacity:1}.nav-actions{display:flex;align-items:center;gap:10px}.lang{display:flex;align-items:center;border:1px solid currentColor;border-radius:999px;padding:3px}.lang button{border:0;background:transparent;color:inherit;padding:7px 9px;font-size:12px;letter-spacing:.08em;border-radius:999px}.lang button.active{background:var(--ink);color:#fff}.landing-page .lang button.active{background:#fff;color:#111}.menu-toggle{display:none;border:1px solid currentColor;background:transparent;color:inherit;border-radius:50%;width:38px;height:38px;font-size:18px}.mobile-menu{position:fixed;inset:0;z-index:85;background:var(--paper);padding:105px 24px 30px;display:none}.mobile-menu.open{display:block}.mobile-menu a{display:block;font-family:var(--serif);font-size:38px;padding:15px 0;border-bottom:1px solid var(--line)}

/* Landing */
.landing-shell{min-height:100svh;background:#0d0e0c;display:grid;grid-template-columns:1fr}.destination-card{position:relative;overflow:hidden;min-height:100svh;color:white}.destination-card:first-child{border-right:0}.destination-mosaic{position:absolute;inset:0;display:grid;grid-template-columns:1.5fr .72fr;gap:4px}.destination-mosaic .landmark{grid-row:1/3}.destination-mosaic img{transition:transform .8s ease,filter .6s;filter:saturate(.96) contrast(1.03)}.destination-card:hover img{transform:scale(1.018)}.destination-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.76) 0%,rgba(0,0,0,.12) 53%,rgba(0,0,0,.30) 100%)}.destination-content{position:absolute;z-index:2;left:7%;right:7%;bottom:7%;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.destination-content h1{font-family:var(--serif);font-weight:400;font-size:clamp(58px,6vw,92px);line-height:.9;margin:0}.discover-btn{display:inline-flex;align-items:center;gap:14px;border:1px solid rgba(255,255,255,.72);background:rgba(255,255,255,.08);backdrop-filter:blur(12px);color:#fff;border-radius:999px;padding:15px 18px 15px 22px;font-size:13.5px;letter-spacing:.04em;transition:.25s;white-space:nowrap}.discover-btn>span:first-child{width:auto;height:auto;display:inline;background:transparent;color:inherit;font-size:13.5px}.discover-btn>span:last-child{width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;font-size:15px}.discover-btn:hover{background:#fff;color:#111}.destination-card:hover .discover-btn{transform:translateY(-2px)}

/* Page hero */
.page-hero{padding:68px 0 54px}.page-hero-grid{display:grid;grid-template-columns:1fr .9fr;gap:60px;align-items:end}.page-hero h1{font-family:var(--serif);font-size:clamp(60px,8vw,108px);font-weight:400;line-height:.88;margin:14px 0 0}.page-hero p{font-size:14px;line-height:1.8;color:var(--muted);max-width:520px;margin:0 0 8px}.hero-collage{height:520px;display:grid;grid-template-columns:1.35fr .65fr;gap:13px;margin-top:34px}.hero-collage>div,.hero-collage>a{border-radius:var(--radius);overflow:hidden;position:relative}.hero-collage .hero-main{grid-row:1/3}.hero-collage .side{display:grid;grid-template-rows:1fr 1fr;gap:13px}.hero-collage .side>div{border-radius:var(--radius);overflow:hidden;position:relative}.photo-label{position:absolute;left:16px;bottom:16px;background:rgba(255,255,255,.90);padding:8px 11px;border-radius:999px;font-size:12px;letter-spacing:.04em}

/* cards */
.section{padding:88px 0}.section.soft{background:var(--paper-2)}.section.dark{background:#171815;color:#f2f2f3}.section-head{display:flex;justify-content:space-between;gap:48px;align-items:flex-end;margin-bottom:38px}.section-head h2{font-family:var(--serif);font-size:clamp(44px,5.5vw,76px);font-weight:400;line-height:1;margin:11px 0 0}.section-head p{max-width:455px;color:var(--muted);line-height:1.75;font-size:15px;margin:0}.dark .section-head p,.dark .eyebrow{color:#aaa8a2}.villa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.villa-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 30px rgba(20,20,18,.04)}.villa-cover{height:390px;position:relative;overflow:hidden}.villa-cover img{transition:transform .55s}.villa-card:hover .villa-cover img{transform:scale(1.02)}.villa-photo-name{position:absolute;z-index:2;left:18px;bottom:18px;max-width:calc(100% - 120px);padding:10px 14px;border-radius:999px;background:rgba(15,15,13,.64);backdrop-filter:blur(10px);color:#fff;font-family:var(--serif);font-size:22px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cover-badge{position:absolute;z-index:2;left:16px;top:16px;background:rgba(255,255,255,.90);padding:8px 11px;border-radius:999px;font-size:12px}.gallery-count{position:absolute;z-index:2;right:16px;bottom:16px;background:rgba(0,0,0,.62);color:#fff;padding:8px 11px;border-radius:999px;font-size:12px}.villa-body{padding:25px}.villa-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.villa-card h3{font-family:var(--serif);font-weight:400;font-size:38px;margin:0}.villa-location{font-size:12.5px;color:var(--muted);margin-top:5px}.price{text-align:right;font-size:27px;font-weight:500;white-space:nowrap}.price small{display:block;color:var(--muted);font-size:12px;font-weight:400;margin-top:6px}.meta{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0}.meta span{font-size:12px;border:1px solid var(--line);border-radius:999px;padding:8px 10px}.villa-desc{font-size:14px;line-height:1.7;color:var(--muted);margin:0 0 22px}.villa-actions{padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}.text-link{font-size:13.5px}.button-dark,.button-light{border:0;border-radius:999px;padding:12px 15px;font-size:12.5px;display:inline-flex;align-items:center;justify-content:center;gap:9px}.button-dark{background:var(--ink);color:#fff}.button-light{background:#fff;color:var(--ink);border:1px solid var(--line)}

/* Villa detail */
.villa-hero{padding:38px 0 46px}.villa-hero-media{height:min(68svh,680px);border-radius:34px;overflow:hidden;position:relative}.villa-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.68),transparent 54%)}.villa-hero-copy{position:absolute;z-index:2;left:4%;right:4%;bottom:5%;color:#fff;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.villa-hero-copy h1{font-family:var(--serif);font-size:clamp(58px,7.5vw,100px);font-weight:400;line-height:.9;margin:8px 0 0}.villa-hero-price{font-family:var(--sans);text-align:right;font-size:32px;font-weight:600;letter-spacing:0;text-shadow:0 1px 10px rgba(0,0,0,.28)}.villa-hero-price small{display:block;font-size:14px;font-weight:500;opacity:.96;margin-top:6px}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-top:18px}.info-box{min-height:140px;border:1px solid var(--line);border-radius:22px;background:#fff;padding:20px;display:flex;flex-direction:column;justify-content:space-between}.info-box span{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}.info-box strong{font-family:var(--sans);font-size:29px;font-weight:600;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.detail-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:62px;align-items:start}.detail-copy h2{font-family:var(--serif);font-size:54px;font-weight:400;line-height:1.02;margin:10px 0 20px}.detail-copy p{font-size:15px;line-height:1.85;color:var(--muted)}.feature-table{border-top:1px solid var(--line)}.feature-row{display:grid;grid-template-columns:1fr 1.2fr;gap:15px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13.5px}.feature-row span{color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gallery-item{height:290px;border-radius:20px;overflow:hidden;border:0;padding:0;background:none}.gallery-item:nth-child(1),.gallery-item:nth-child(5){grid-column:span 2;height:430px}.gallery-item img{transition:transform .4s}.gallery-item:hover img{transform:scale(1.02)}

/* About */
.about-hero{padding:80px 0 54px}.about-hero h1{font-family:var(--serif);font-size:clamp(60px,8vw,106px);font-weight:400;line-height:.9;margin:15px 0 0;max-width:900px}.about-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:60px;align-items:start}.about-copy p{color:var(--muted);line-height:1.85;font-size:15px}.company-card{background:#fff;border:1px solid var(--line);border-radius:30px;padding:30px;box-shadow:var(--shadow)}.company-row{display:grid;grid-template-columns:.9fr 1.2fr;gap:18px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13.5px}.company-row:last-of-type{border-bottom:0}.company-row span{color:var(--muted)}.official-link{margin-top:20px;display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--ink);color:#fff;border-radius:18px;padding:17px 18px;font-size:13.5px}.official-link strong{font-weight:500}

/* Availability */
.booking-layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:60px;align-items:start}.booking-copy h2{font-family:var(--serif);font-size:clamp(44px,5vw,70px);font-weight:400;line-height:1;margin:10px 0 18px}.booking-copy p{color:var(--muted);font-size:15px;line-height:1.8}.rules-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);margin-top:28px}.rule{padding:17px 14px 17px 0;border-bottom:1px solid var(--line)}.rule:nth-child(odd){border-right:1px solid var(--line)}.rule:nth-child(even){padding-left:18px}.rule b{font-size:13.5px;font-weight:500;display:block}.rule span{font-size:12.5px;color:var(--muted);display:block;margin-top:5px}.availability{background:#fff;border:1px solid var(--line);border-radius:30px;padding:28px;box-shadow:var(--shadow)}.availability h3{font-family:var(--serif);font-size:34px;font-weight:400;margin:0 0 7px}.availability>p{font-size:13.5px;color:var(--muted);margin:0 0 20px;line-height:1.6}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field.full{grid-column:1/-1}.field label{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin:0 0 6px}.field input,.field select{width:100%;border:1px solid var(--line);background:#f4f4f5;border-radius:13px;padding:13px 12px;outline:none;color:var(--ink)}.field input:focus,.field select:focus{border-color:#777}.submit{width:100%;border:0;border-radius:15px;background:var(--ink);color:#fff;padding:15px;margin-top:13px;font-size:13.5px}.email-link{display:block;text-align:center;margin-top:12px;font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}

/* Footer */
.footer{background:#10110f;color:#f0f0f1;padding:52px 0 26px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .95fr;gap:45px}.footer h4{font-family:var(--serif);font-size:29px;font-weight:400;margin:0 0 10px}.footer p,.footer a,.footer span{font-size:12.5px;color:#aaa9a2;line-height:1.9}.footer-links{display:flex;flex-direction:column}.footer-bottom{margin-top:40px;padding-top:19px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:20px}

/* Lightbox */
.lightbox{position:fixed;z-index:120;inset:0;background:rgba(8,8,7,.95);display:none;align-items:center;justify-content:center;padding:26px}.lightbox.open{display:flex}.lightbox-stage{width:min(1150px,100%);height:min(82svh,820px);position:relative}.lightbox img{object-fit:contain}.lb-close,.lb-prev,.lb-next{position:absolute;z-index:2;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.35);color:#fff}.lb-close{right:0;top:-58px}.lb-prev{left:0;top:50%;transform:translateY(-50%)}.lb-next{right:0;top:50%;transform:translateY(-50%)}.lb-caption{position:absolute;left:0;right:0;bottom:-37px;text-align:center;color:#fff;font-size:12.5px;opacity:.72}

@media(max-width:920px){
 .wrap{width:min(100% - 28px,760px)}.site-header{height:70px}.nav{grid-template-columns:auto 1fr auto;gap:12px}.brand{min-width:0}.brand-copy{gap:4px}.brand-name{font-size:16px}.brand-sub{font-size:11px;letter-spacing:.16em}.nav-links{display:none}.menu-toggle{display:block}.landing-shell{grid-template-columns:1fr;grid-template-rows:1fr}.destination-card{min-height:100svh}.destination-card:first-child{border-right:0;border-bottom:0}.destination-content{left:5%;right:5%;bottom:8%}.destination-content h1{font-size:48px}.discover-btn{padding:11px 12px 11px 16px}.discover-btn span{width:28px;height:28px}.page-hero-grid{grid-template-columns:1fr;gap:18px}.hero-collage{height:410px}.villa-grid{grid-template-columns:1fr}.villa-cover{height:340px}.detail-layout,.about-grid,.booking-layout{grid-template-columns:1fr;gap:38px}.info-grid{grid-template-columns:1fr 1fr}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item,.gallery-item:nth-child(1),.gallery-item:nth-child(5){grid-column:auto;height:260px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}
}
@media(max-width:560px){
 .site-header{height:64px}.mark{width:36px;height:36px}.brand{gap:9px}.brand-name{font-size:14px}.brand-sub{font-size:11px;letter-spacing:.12em}.lang button{padding:6px 7px}.menu-toggle{width:34px;height:34px}.destination-mosaic{grid-template-columns:1.45fr .75fr}.destination-content{display:block}.destination-content h1{font-size:45px;margin-bottom:15px}.discover-btn{font-size:12.5px;max-width:100%}.discover-btn>span:first-child{font-size:12.5px}.page-hero{padding:45px 0 35px}.page-hero h1{font-size:58px}.hero-collage{height:320px;grid-template-columns:1fr}.hero-collage .hero-main{grid-row:auto}.hero-collage .side{display:none}.section{padding:65px 0}.section-head{display:block}.section-head p{margin-top:16px}.section-head h2{font-size:43px}.villa-cover{height:265px}.villa-title-row{display:block}.price{text-align:left;margin-top:14px}.villa-card h3{font-size:34px}.villa-actions{align-items:flex-start;flex-direction:column}.button-dark{width:100%}.villa-hero{padding:22px 0 34px}.villa-hero-media{height:60svh;border-radius:25px}.villa-hero-copy{display:block;left:6%;bottom:5%}.villa-hero-copy h1{font-size:58px}.villa-hero-price{text-align:left;margin-top:14px}.info-grid{grid-template-columns:1fr 1fr;gap:9px}.info-box{min-height:115px;padding:15px}.info-box strong{font-size:26px}.detail-copy h2{font-size:44px}.gallery-grid{grid-template-columns:1fr}.gallery-item,.gallery-item:nth-child(1),.gallery-item:nth-child(5){height:270px}.company-row{grid-template-columns:1fr;gap:5px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.rules-grid{grid-template-columns:1fr}.rule:nth-child(odd){border-right:0}.rule:nth-child(even){padding-left:0}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:5px}
}

/* Catalogue refinements */
.villas-head{margin-bottom:34px}.villas-head h2{margin-top:0}.villas-head>div{width:100%}

/* Marrakech V4 */
.villa-photo-name{max-width:calc(100% - 128px)}
@media(max-width:560px){.villa-photo-name{font-size:19px;max-width:calc(100% - 105px);left:14px;bottom:14px}.gallery-count{right:12px;bottom:12px}}

/* Mobile villa labels: name + nightly price on cover only */
.mobile-villa-info{display:none}
@media(max-width:560px){
  .villa-cover .villa-photo-name{display:none}
  .mobile-villa-info{position:absolute;z-index:3;left:14px;bottom:14px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;max-width:calc(100% - 112px);padding:11px 14px;border-radius:16px;background:rgba(15,15,13,.68);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff}
  .mobile-villa-info strong{font-family:var(--serif);font-size:24px;font-weight:400;line-height:1.02;white-space:normal}
  .mobile-villa-info small{font-family:var(--sans);font-size:14px;font-weight:500;line-height:1.2;white-space:nowrap;color:#fff}
}


/* Reviews */
.reviews-summary{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.reviews-score{font-family:var(--serif);font-size:44px;line-height:1}.reviews-score small{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--muted);margin-left:7px}.reviews-note{max-width:620px;color:var(--muted);font-size:15px;line-height:1.55}.reviews-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.review-card{background:#fff;border:1px solid rgba(20,20,16,.09);border-radius:18px;padding:20px;box-shadow:0 8px 28px rgba(20,20,16,.04)}.review-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.review-person{display:flex;align-items:center;gap:12px}.review-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#171714;color:#fff;font-size:14px;font-weight:600;letter-spacing:.08em}.review-name{font-weight:600;font-size:15px}.review-stay{font-size:14px;color:var(--muted);margin-top:2px}.review-rating{font-weight:600;font-size:15px;white-space:nowrap}.review-stars{letter-spacing:1px;margin-right:6px}.review-card p{margin:0;color:#4d4d48;line-height:1.62;font-size:14px}@media(max-width:760px){.reviews-grid{grid-template-columns:1fr}.reviews-summary{align-items:flex-start;flex-direction:column}.reviews-score{font-size:38px}}

/* V16 reviews */
.review-rating{display:flex;align-items:baseline;gap:4px}.review-score-box{font-size:18px;font-weight:600;letter-spacing:-.02em}.review-rating small{font-size:14px;color:var(--muted)}.review-title{font-family:var(--sans);font-size:17px!important;line-height:1.35;margin:14px 0 8px!important;font-weight:600}.review-detail{margin-top:13px;padding-top:12px;border-top:1px solid rgba(20,20,18,.09);font-size:15px;line-height:1.5;color:var(--muted)}.review-detail span{display:block;font-size:13.5px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;color:#20378a}.reviews-note{max-width:700px}

/* V24 — villas en vedette & services */
.featured-card{position:relative;border-color:rgba(20,20,18,.22);box-shadow:0 14px 42px rgba(20,20,18,.08)}
.featured-yora{box-shadow:0 16px 48px rgba(20,20,18,.10)}
.featured-badge{position:absolute;z-index:4;right:16px;top:16px;display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:#11110f;color:#fff;font-size:12px;font-weight:600;letter-spacing:.02em;box-shadow:0 8px 22px rgba(0,0,0,.18)}
.featured-star{font-size:13.5px;line-height:1}
.hero-featured-badge{position:absolute;z-index:5;right:22px;top:22px;padding:9px 13px;border-radius:999px;background:rgba(17,17,15,.92);color:#fff;font-size:12px;font-weight:600;letter-spacing:.03em;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}

.services-picker{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.services-picker-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px}
.services-picker-head strong{display:block;font-size:13.5px;font-weight:600}
.services-picker-head small{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45}
.service-options{display:grid;gap:8px}
.service-option{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center;min-height:58px;padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:#f9f9f9;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.service-option:hover{border-color:#aaa89f;background:#fff}
.service-option.included{cursor:default;background:#f0f0f1}
.service-option input{width:16px;height:16px;margin:0;accent-color:#11110f}
.service-option input:disabled{opacity:1}
.service-copy{min-width:0}
.service-line{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;font-weight:500}
.service-copy small{display:block;margin-top:4px;color:var(--muted);font-size:8.6px;line-height:1.45}
.service-status{flex:0 0 auto;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.included-status{background:#e4e4e3;color:#3f403a}
.extra-status{background:#11110f;color:#fff}
.viano-option{grid-template-columns:auto 35px 1fr}
.viano-icon{width:35px;height:20px;display:flex;align-items:center;justify-content:center;color:#11110f}
.viano-icon svg{display:block;width:35px;height:20px;fill:currentColor}

@media(max-width:560px){
 .featured-badge{right:12px;top:12px;font-size:11px;padding:7px 9px}
 .hero-featured-badge{right:14px;top:14px}
 .service-option{grid-template-columns:auto 1fr;padding:11px}
 .viano-option{grid-template-columns:auto 31px 1fr}
 .viano-icon,.viano-icon svg{width:31px}
 .service-line{align-items:flex-start;flex-direction:column;gap:5px}
 .service-status{align-self:flex-start}
}

/* V35 — Harmonised villa essentials + About page */
.about-lead{max-width:760px;margin:24px 0 0;color:var(--muted);font-size:14px;line-height:1.85}
.about-company-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:34px;align-items:stretch}
.about-panel{border:1px solid var(--line);border-radius:30px;background:#fff;padding:34px;box-shadow:var(--shadow)}
.about-story h2,.about-contact-section h2{font-family:var(--serif);font-size:clamp(44px,5vw,66px);font-weight:400;line-height:1;margin:12px 0 22px}
.about-story p,.about-contact-section p{color:var(--muted);font-size:15px;line-height:1.9;margin:0 0 16px}
.about-legal-card{height:100%}
.about-details-section{padding-top:76px;padding-bottom:76px}
.about-section-head h2{max-width:760px}
.about-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}
.about-fact{background:#fff;border:1px solid var(--line);border-radius:24px;padding:26px;min-height:265px}
.about-fact>span{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;font-size:12px;color:var(--muted);margin-bottom:34px}
.about-fact h3{font-family:var(--serif);font-size:30px;font-weight:400;margin:0 0 14px}
.about-fact p{font-size:13.5px;line-height:1.8;color:var(--muted);margin:0}
.about-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.about-contact-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:8px 26px;box-shadow:var(--shadow)}
.about-contact-card a,.about-contact-card>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.about-contact-card>*:last-child{border-bottom:0}
.about-contact-card span{color:var(--muted)}
.about-contact-card strong{font-weight:500;text-align:right;overflow-wrap:anywhere}
@media(max-width:900px){.about-company-grid,.about-contact-grid{grid-template-columns:1fr}.about-facts{grid-template-columns:1fr}.about-fact{min-height:0}}


/* V36 — desktop calibration, maps and included services */
@media(min-width:921px){
  .wrap{width:min(1480px,calc(100% - 64px))}
  .site-header .wrap.nav{width:100%;max-width:none;padding-left:clamp(20px,2.1vw,40px);padding-right:clamp(20px,2.1vw,40px);margin:0}
  .nav{gap:24px}
  .nav-links{gap:clamp(18px,1.55vw,30px)}
}
@media(min-width:1500px){
  .villa-grid{gap:30px}
  .villa-cover{height:430px}
  .villa-hero-media{height:min(72svh,760px)}
}
.villa-map-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:48px;align-items:stretch}
.villa-map-copy{padding:28px 0;display:flex;flex-direction:column;justify-content:center}
.villa-map-copy h2{font-family:var(--serif);font-size:clamp(46px,5vw,70px);font-weight:400;line-height:.98;margin:12px 0 16px}
.villa-map-copy p{font-size:15px;line-height:1.8;color:var(--muted);max-width:500px;margin:0 0 18px}
.villa-map-copy .villa-map-address{font-size:16px;line-height:1.45;color:var(--ink);font-weight:500;margin-bottom:18px}
.villa-map-note{display:inline-flex;align-items:center;gap:9px;width:max-content;max-width:100%;padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.villa-map-note>span:first-child{font-size:12px;color:#7b8c67}
.villa-map-shell{min-height:470px;position:relative;border-radius:30px;overflow:hidden;border:1px solid var(--line);background:#d8d8d6;box-shadow:var(--shadow)}
.villa-map{position:absolute;inset:0;background:#d8d8d6}
.villa-map iframe{width:100%;height:100%;border:0;display:block}
.villa-map-badge{position:absolute;z-index:3;top:18px;left:18px;padding:9px 12px;border-radius:999px;background:rgba(17,17,15,.87);color:#fff;backdrop-filter:blur(8px);font-size:12px;letter-spacing:.05em;text-transform:uppercase;pointer-events:none}
.villa-map .mapboxgl-ctrl-top-right{top:12px;right:12px}
.villa-map .mapboxgl-ctrl-group{border-radius:12px;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,.12)}
.sa-map-marker{width:22px;height:22px;border-radius:50%;background:#171714;border:5px solid #fff;box-shadow:0 4px 14px rgba(0,0,0,.28)}
.mapboxgl-popup-content{font-family:var(--sans);border-radius:14px;padding:12px 14px;box-shadow:0 8px 28px rgba(0,0,0,.15)}
.mapboxgl-popup-content strong{display:block;font-size:14px;margin-bottom:4px}.mapboxgl-popup-content span{font-size:12.5px;color:#77736b}
.included-services-head{align-items:end}
.included-services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.included-service-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;min-height:280px;display:flex;flex-direction:column}
.included-service-icon{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:12px;color:var(--muted);margin-bottom:auto}
.included-service-card h3{font-family:var(--serif);font-size:27px;line-height:1.08;font-weight:400;margin:34px 0 12px}
.included-service-card p{font-size:13.5px;line-height:1.75;color:var(--muted);margin:0}
@media(max-width:1100px) and (min-width:921px){.included-services-grid{grid-template-columns:repeat(2,1fr)}.included-service-card{min-height:230px}.villa-map-layout{grid-template-columns:.8fr 1.2fr;gap:32px}}
@media(max-width:920px){.villa-map-layout{grid-template-columns:1fr;gap:26px}.villa-map-copy{padding:0}.villa-map-shell{min-height:390px}.included-services-grid{grid-template-columns:1fr 1fr}.included-service-card{min-height:230px}}
@media(max-width:560px){.villa-map-shell{min-height:340px;border-radius:22px}.villa-map-badge{top:12px;left:12px}.included-services-grid{grid-template-columns:1fr}.included-service-card{min-height:0}.included-service-icon{margin-bottom:24px}.included-service-card h3{margin-top:0}}

/* V45 — Catalogue Marrakech: richer editorial rhythm, same catalogue identity */
.villa-catalogue-section{position:relative;overflow:hidden;background:
  radial-gradient(circle at 88% 5%,rgba(42,69,168,.10),transparent 25%),
  radial-gradient(circle at 8% 38%,rgba(23,23,20,.035),transparent 24%),
  var(--paper)}
.villa-catalogue-section::before{content:"MARRAKECH";position:absolute;top:24px;right:-18px;font-family:var(--serif);font-size:clamp(90px,13vw,210px);line-height:1;letter-spacing:.02em;color:rgba(23,23,20,.032);pointer-events:none;white-space:nowrap}
.villa-catalogue-section>.wrap{position:relative;z-index:1}
.villa-catalogue-section .villas-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,500px);align-items:end;gap:56px;margin-bottom:24px}
.villa-catalogue-section .villas-head p{margin:0;max-width:500px;font-size:14px;line-height:1.8;color:var(--muted)}
.catalogue-signature{display:grid;grid-template-columns:minmax(70px,1fr) auto auto;align-items:center;gap:18px;margin:0 0 34px;padding:13px 0 15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.catalogue-signature-line{height:1px;background:linear-gradient(90deg,var(--gold),rgba(42,69,168,.12));min-width:70px}
.catalogue-signature-label{font-family:var(--serif);font-size:17px;white-space:nowrap}
.catalogue-signature-points{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.catalogue-signature-points span{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);border:1px solid rgba(23,23,20,.11);background:rgba(255,255,255,.52);backdrop-filter:blur(8px);padding:8px 10px;border-radius:999px}
.villa-catalogue-section .villa-grid{position:relative}
.villa-catalogue-section .villa-card{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;box-shadow:0 10px 34px rgba(20,20,18,.055)}
.villa-catalogue-section .villa-card:hover{transform:translateY(-4px);box-shadow:0 20px 54px rgba(20,20,18,.10);border-color:rgba(23,23,20,.19)}
.villa-catalogue-section .villa-cover::before{content:"";position:absolute;z-index:2;inset:0;border:1px solid rgba(255,255,255,.10);border-radius:inherit;pointer-events:none}
.villa-catalogue-section .gallery-count{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14)}
@media(max-width:920px){
 .villa-catalogue-section .villas-head{grid-template-columns:1fr;gap:18px}
 .catalogue-signature{grid-template-columns:1fr auto;gap:12px 16px}
 .catalogue-signature-line{grid-column:1/-1}
 .catalogue-signature-points{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:560px){
 .villa-catalogue-section::before{display:none}
 .villa-catalogue-section .villas-head{margin-bottom:20px}
 .catalogue-signature{margin-bottom:26px;padding-top:11px}
 .catalogue-signature-label{font-size:16px}
 .catalogue-signature-points{gap:6px}
 .catalogue-signature-points span{font-size:7.3px;padding:7px 8px}
 .villa-catalogue-section .villa-card:hover{transform:none}
}

/* V47 privacy map zones */
.villa-map .leaflet-container{font-family:var(--sans)}
.villa-map .leaflet-control-attribution{font-size:12px}


/* V60 — accessibility, legal pages, consent and resilience */
:focus-visible{outline:3px solid #2a45a8;outline-offset:3px}
.nav-links a,.footer-links a,.text-link,.button-dark,.button-light,.discover-btn{min-height:44px}
.button-dark,.button-light{transition:transform .2s ease,box-shadow .2s ease}.button-dark:hover,.button-light:hover{transform:translateY(-1px)}
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-status{min-height:18px;margin-top:10px;font-size:13.5px;line-height:1.45;color:#5a564f}.form-status.error{color:#1d2742}.field input:invalid:not(:placeholder-shown){border-color:#1d2742}
.footer-legal-links{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.footer-legal-links a,.cookie-settings-link{font:inherit;color:inherit;opacity:.72}.footer-legal-links a:hover,.cookie-settings-link:hover{opacity:1}.cookie-settings-link{border:0;background:none;padding:0;cursor:pointer}
.cookie-banner{position:fixed;z-index:140;left:18px;right:18px;bottom:18px;display:none;max-width:780px;margin:auto;background:rgba(17,17,15,.97);color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:22px;padding:18px 20px;box-shadow:0 20px 70px rgba(0,0,0,.28);backdrop-filter:blur(16px)}.cookie-banner.open{display:block}.cookie-banner h3{font-family:var(--serif);font-size:25px;font-weight:400;margin:0 0 7px}.cookie-banner p{font-size:13.5px;line-height:1.65;color:#d4d4d3;margin:0}.cookie-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:14px}.cookie-actions button{border-radius:999px;min-height:42px;padding:10px 14px;font-size:12.5px;border:1px solid rgba(255,255,255,.25)}.cookie-reject{background:transparent;color:#fff}.cookie-accept{background:#fff;color:#111}.cookie-privacy{display:inline-block;margin-top:8px;font-size:12.5px;text-decoration:underline;text-underline-offset:3px;color:#fff}
.legal-hero{padding-bottom:30px}.legal-hero h1{font-family:var(--serif);font-size:clamp(54px,7vw,94px);font-weight:400;line-height:.94;margin:14px 0 12px}.legal-intro{color:var(--muted);font-size:14px}.legal-section{padding-top:30px}.legal-layout{max-width:980px}.legal-block{padding:28px 0;border-top:1px solid var(--line)}.legal-block:last-child{border-bottom:1px solid var(--line)}.legal-block h2{font-family:var(--serif);font-size:34px;font-weight:400;margin:0 0 12px}.legal-block p{max-width:860px;margin:0;color:var(--muted);font-size:15px;line-height:1.9}
.error-page{min-height:calc(100svh - 78px);display:grid;place-items:center;padding:40px 0}.error-card{max-width:900px}.error-card h1{font-family:var(--serif);font-size:clamp(58px,9vw,112px);font-weight:400;line-height:.9;margin:18px 0 20px}.error-card p{max-width:620px;color:var(--muted);font-size:14px;line-height:1.8}.error-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.error-actions a{min-width:190px}
@media(max-width:560px){.cookie-banner{left:10px;right:10px;bottom:10px;padding:16px}.cookie-actions{justify-content:stretch}.cookie-actions button{flex:1}.legal-block h2{font-size:29px}.footer-legal-links{margin-top:12px}.error-actions{flex-direction:column}.error-actions a{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}


/* V72 — catalogue order, clean covers & grouped galleries */
.gallery-count{display:none!important}
.villa-cover img,.villa-hero-media img{width:100%;height:100%;object-fit:cover}
.gallery-category{margin-top:28px}
.gallery-category-title{margin:0 0 14px;font-family:var(--serif);font-size:30px;font-weight:400;line-height:1.1}
.categorized-gallery .gallery-grid{margin-top:0}


/* V74 — nightly price visible directly on villa covers */
.cover-price{position:absolute;z-index:4;right:16px;top:16px;display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:999px;background:rgba(255,255,255,.94);color:#11110f;font-size:13.5px;font-weight:700;line-height:1;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.villa-cover.has-cover-featured .cover-price{top:52px}
@media(max-width:768px){.cover-price{right:12px;top:12px;font-size:12.5px;padding:9px 10px}.villa-cover.has-cover-featured .cover-price{top:46px}}


/* V76 — gallery first, reviews below, clickable side menu */
html{scroll-behavior:smooth}
.gallery-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px;align-items:start}
.gallery-content{min-width:0}
.gallery-side-nav{position:sticky;top:110px;padding:18px;border:1px solid rgba(17,17,15,.08);border-radius:22px;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.05)}
.gallery-side-nav-title{font-size:13.5px;letter-spacing:.18em;text-transform:uppercase;color:#7b7466;margin-bottom:12px;font-weight:700}
.gallery-side-nav-links{display:flex;flex-direction:column;gap:8px}
.gallery-side-nav-links a{display:block;padding:10px 12px;border-radius:12px;background:#f2f2f3;color:#11110f;text-decoration:none;font-size:14px;line-height:1.3}
.gallery-side-nav-links a:hover{background:#e3e3e4}
.gallery-category{scroll-margin-top:110px}
.reviews-section,.section[id^="avis"],section#avis-safia{scroll-margin-top:110px}
@media (max-width: 1100px){
  .gallery-layout{grid-template-columns:1fr}
  .gallery-side-nav{position:static;order:-1;margin-bottom:6px}
  .gallery-side-nav-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
}
@media (max-width: 640px){
  .gallery-side-nav-links{grid-template-columns:1fr}
}


/* V80 — responsive correction desktop + mobile */
html,body{max-width:100%;overflow-x:clip}
body{width:100%}
.wrap,.nav,.villa-grid,.villa-card,.villa-cover,.villa-body,.villa-title-row,.detail-layout,.gallery-layout,.gallery-content,.booking-layout,.footer-grid{min-width:0}
img{max-width:100%}

/* Keep desktop content comfortably inside the viewport */
@media(min-width:921px){
  .wrap{width:min(1280px,calc(100% - 56px))}
  .site-header .wrap.nav{width:min(1380px,calc(100% - 40px));max-width:1380px;padding-left:0;padding-right:0;margin:auto}
  .villa-grid{gap:22px}
  .villa-cover{height:clamp(310px,28vw,370px)}
  .section{padding:72px 0}
  .gallery-layout{grid-template-columns:minmax(0,1fr) 220px;gap:22px}
  .gallery-side-nav{top:96px;padding:15px}
}

/* Switch the header to compact mode earlier so it never gets squeezed */
@media(max-width:1180px){
  .site-header{height:70px}
  .nav{grid-template-columns:auto 1fr auto;gap:12px}
  .brand{min-width:0}
  .brand-name{font-size:16px}
  .brand-sub{font-size:11px;letter-spacing:.14em}
  .nav-links{display:none}
  .menu-toggle{display:block}
  .wrap{width:min(100% - 32px,960px)}
  .gallery-layout{grid-template-columns:1fr}
  .gallery-side-nav{position:static;order:-1;width:100%;margin:0 0 8px;padding:14px}
  .gallery-side-nav-links{display:flex;flex-direction:row;gap:8px;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}
  .gallery-side-nav-links::-webkit-scrollbar{display:none}
  .gallery-side-nav-links a{flex:0 0 auto;white-space:nowrap;font-size:14px;padding:9px 11px}
}

@media(max-width:920px){
  .wrap{width:min(100% - 28px,760px)}
  .villa-grid{grid-template-columns:1fr}
  .villa-cover{height:330px}
  .section{padding:58px 0}
  .villa-hero{padding:20px 0 30px}
  .villa-hero-media{height:500px;max-height:68vh;border-radius:24px;margin-top:14px!important}
  .villa-hero-media img{object-position:center center}
  .villa-hero-copy{left:22px;right:22px;bottom:22px;display:flex;align-items:flex-end}
  .villa-hero-copy h1{font-size:clamp(48px,9vw,66px)}
  .villa-hero-price{font-size:26px}
  .info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .info-box{min-width:0;min-height:112px;padding:15px}
  .info-box strong{font-size:clamp(20px,4vw,27px);overflow-wrap:anywhere}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .gallery-item,.gallery-item:nth-child(1),.gallery-item:nth-child(5){grid-column:auto;height:250px}
}

@media(max-width:560px){
  .wrap{width:calc(100% - 20px)}
  .site-header{height:62px}
  .nav{gap:8px}
  .mark{width:34px;height:34px}
  .brand{gap:7px}
  .brand-name{font-size:15px;letter-spacing:.08em}
  .brand-sub{font-size:5.8px;letter-spacing:.08em;white-space:normal;line-height:1.15}
  .nav-actions{gap:6px}
  .lang button{padding:5px 6px;font-size:11px}
  .menu-toggle{width:34px;height:34px}
  .section{padding:50px 0}
  .section-head h2{font-size:38px;line-height:1.02}
  .villa-cover{height:255px;border-radius:22px 22px 0 0}
  .villa-body{padding:19px}
  .villa-card h3{font-size:30px}
  .price{font-size:23px;white-space:normal}
  .villa-actions{gap:12px}
  .villa-hero{padding-top:16px}
  .villa-hero-media{height:390px;max-height:none;border-radius:22px;margin-top:12px!important}
  .villa-hero-copy{left:18px;right:18px;bottom:18px;display:block}
  .villa-hero-copy h1{font-size:48px;line-height:.92}
  .villa-hero-price{text-align:left;margin-top:10px;font-size:25px}
  .villa-hero-price small{font-size:12.5px;line-height:1.35}
  .info-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .info-box{min-height:100px;padding:13px;border-radius:18px}
  .info-box span{font-size:11px;letter-spacing:.11em}
  .info-box strong{font-size:21px;line-height:1.1}
  .gallery-side-nav{border-radius:18px;padding:12px}
  .gallery-side-nav-title{font-size:12px;margin-bottom:9px}
  .gallery-side-nav-links{display:flex;grid-template-columns:none;overflow-x:auto}
  .gallery-category-title{font-size:27px}
  .gallery-grid{grid-template-columns:1fr;gap:9px}
  .gallery-item,.gallery-item:nth-child(1),.gallery-item:nth-child(5){height:245px}
  .cover-badge{left:10px;top:10px;font-size:11px;padding:7px 9px}
  .cover-price{right:10px;top:10px;font-size:12px;padding:8px 9px}
  .villa-cover.has-cover-featured .cover-price{top:43px}
  .featured-badge{right:10px;top:10px;font-size:11px;padding:6px 8px}
  .mobile-villa-info{left:11px;bottom:11px;max-width:calc(100% - 22px);padding:9px 11px;border-radius:14px}
  .mobile-villa-info strong{font-size:21px}
  .mobile-villa-info small{font-size:12.5px}
}

@media(max-width:390px){
  .brand-sub{display:none}
  .info-grid{grid-template-columns:1fr}
  .villa-hero-media{height:360px}
  .villa-hero-copy h1{font-size:43px}
}


/* V83 — gallery category selector on mobile */
.gallery-mobile-select-wrap{display:none}
.gallery-mobile-select-label{display:block;font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:#7b7466;margin:0 0 7px;font-weight:700}
.gallery-mobile-select{display:block;width:100%;min-height:48px;border:1px solid rgba(17,17,15,.14);border-radius:13px;background:#f2f2f3;color:#11110f;padding:11px 12px;font-size:16px;line-height:1.2;appearance:auto;-webkit-appearance:menulist}
@media(max-width:760px){
 .gallery-side-nav-title{margin-bottom:8px}
 .gallery-mobile-select-wrap{display:block;width:100%}
 .gallery-side-nav-links{display:none!important}
 .gallery-side-nav{overflow:visible!important}
 .gallery-mobile-select{position:relative;z-index:5;overflow:visible!important}
}


/* V92 — Atlas Immobilier identity refresh + full-width desktop */
:root{
  --ink:#17312c;
  --paper:#eeeeef;
  --paper-2:#dfdfe0;
  --white:#fff;
  --muted:#716d64;
  --line:rgba(23,49,44,.14);
  --gold:#2a45a8;
  --dark:#102923;
  --radius:18px;
  --shadow:0 18px 50px rgba(16,41,35,.08);
}
body{background:var(--paper);color:var(--ink)}
.eyebrow{color:#20378a;font-weight:600}

/* New Atlas header: text-only identity, aligned to the viewport edge */
.site-header{background:rgba(238,238,239,.96);border-bottom:1px solid rgba(23,49,44,.12);box-shadow:0 1px 0 rgba(255,255,255,.45)}
.landing-page .site-header{background:linear-gradient(to bottom,rgba(9,31,27,.66),rgba(9,31,27,.03));border-bottom:0;color:#fff;box-shadow:none}
.site-header .wrap.nav{max-width:none;margin:0;width:100%;padding-left:22px;padding-right:22px}
.brand{min-width:275px;gap:0}
.brand-name{font-family:var(--sans);font-size:17px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.brand-sub{font-size:11px;letter-spacing:.2em;color:#7b776e;opacity:1;margin-top:2px}
.nav-links{gap:34px;font-size:13px;letter-spacing:.035em}
.nav-links a{opacity:.68;position:relative;padding:8px 0}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:1px;height:1px;background:var(--gold);transition:right .24s ease}
.nav-links a:hover::after,.nav-links a.active::after{right:0}
.lang{border-color:rgba(23,49,44,.24);background:rgba(255,255,255,.28)}
.lang button.active{background:var(--dark);color:#fff}

/* Full-width desktop layout: no narrow centered column */
@media(min-width:921px){
  .wrap{width:100%;max-width:none;padding-left:clamp(28px,3vw,58px);padding-right:clamp(28px,3vw,58px);margin:0}
  .site-header .wrap.nav{width:100%;max-width:none;padding-left:22px;padding-right:22px;margin:0}
  .section{padding:78px 0}
  .villa-catalogue-section{padding-top:66px}
  .villa-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .villa-cover{height:clamp(330px,29vw,500px)}
  .villa-body{padding:23px 24px 25px}
  .page-hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,5vw,90px)}
  .hero-collage{height:min(40vw,640px)}
  .villa-hero-media{height:min(72svh,760px);border-radius:22px}
  .gallery-layout{grid-template-columns:minmax(0,1fr) 245px;gap:28px}
}
@media(min-width:1380px){
  .villa-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
  .villa-cover{height:clamp(300px,22vw,430px)}
  .villa-card h3{font-size:34px}
  .price{font-size:24px}
}
@media(min-width:1800px){
  .wrap{padding-left:64px;padding-right:64px}
  .site-header .wrap.nav{padding-left:28px;padding-right:28px}
  .villa-grid{gap:22px}
}

/* Refreshed villa catalogue */
.villa-catalogue-section{background:linear-gradient(180deg,#eeeeef 0%,#e8e8e9 100%)}
.section-head{margin-bottom:30px}
.section-head h2{font-size:clamp(48px,5.6vw,82px);letter-spacing:-.02em}
.catalogue-signature{border-top:1px solid rgba(23,49,44,.14);border-bottom:1px solid rgba(23,49,44,.14);padding:14px 0;margin:0 0 28px}
.villa-card{background:#f8f8f9;border:1px solid rgba(23,49,44,.12);border-radius:18px;box-shadow:none;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.villa-card:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(16,41,35,.09);border-color:rgba(23,49,44,.20)}
.villa-cover{border-radius:0}
.villa-cover img{filter:saturate(.92) contrast(1.025);transition:transform .7s ease,filter .35s ease}
.villa-card:hover .villa-cover img{transform:scale(1.018);filter:saturate(1) contrast(1.03)}
.villa-photo-name{background:rgba(16,41,35,.82);font-size:20px;border-radius:8px;padding:9px 12px}
.cover-badge,.cover-price{border-radius:8px;box-shadow:none}
.cover-badge{background:rgba(238,238,239,.93);color:var(--ink);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.cover-price{background:rgba(16,41,35,.91);color:#fff;font-weight:600}
.featured-badge{background:#2a45a8!important;color:#fff!important;border-radius:8px!important}
.villa-card h3{color:var(--ink)}
.price{color:var(--gold);font-weight:600}
.meta span{border-color:rgba(23,49,44,.15);background:rgba(23,49,44,.025)}
.text-link{font-weight:600;color:var(--ink)}
.button-dark,.submit{background:var(--dark);color:#fff;border-radius:8px;transition:background .2s ease,transform .2s ease}
.button-dark:hover,.submit:hover{background:#21483f;transform:translateY(-1px)}
.button-light{border-radius:8px}

/* More distinctive secondary surfaces */
.section.soft{background:var(--paper-2)}
.section.dark{background:var(--dark);color:#f2f2f3}
.info-box,.availability,.gallery-side-nav,.company-card{border-radius:16px;background:#f8f8f9;border-color:rgba(23,49,44,.12);box-shadow:none}
.gallery-side-nav-links a{background:#e5e5e6;border-radius:8px}
.gallery-side-nav-links a:hover{background:#d1d1d2}
.field input,.field select,.field textarea{border-radius:8px!important;border-color:rgba(23,49,44,.16)!important;background:#fdfdfd!important}
.service-option{border-radius:12px!important}

/* Landing identity refresh */
.landing-shell{background:var(--dark)}
.destination-card::after{background:linear-gradient(to top,rgba(9,31,27,.82) 0%,rgba(9,31,27,.14) 52%,rgba(9,31,27,.36) 100%)}
.destination-mosaic img{filter:saturate(.82) contrast(1.05)}
.discover-btn{border-radius:8px;background:rgba(16,41,35,.28)}
.discover-btn>span:last-child{background:#eeeeef;color:var(--dark)}

/* Footer as a stronger visual signature */
.footer{background:var(--dark);color:#e9e9ea;border-top:0}
.footer .eyebrow,.footer p,.footer-links a,.footer-links span{color:#c1c1c2}
.footer h4{font-family:var(--sans);font-size:18px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:#fff}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12)}
.footer .cookie-settings-link{color:#e9e9ea}

/* Mobile keeps the existing compact behavior but adopts the new identity */
@media(max-width:920px){
  .site-header .wrap.nav{width:100%;padding-left:14px;padding-right:14px}
  .brand{min-width:0}
  .brand-name{font-size:14px;letter-spacing:.11em}
  .brand-sub{font-size:6.5px;letter-spacing:.12em}
  .villa-card{border-radius:16px}
}
@media(max-width:560px){
  .site-header .wrap.nav{padding-left:10px;padding-right:10px}
  .brand-name{font-size:12.5px;letter-spacing:.08em}
  .brand-sub{font-size:5.8px;letter-spacing:.08em}
  .villa-card{border-radius:14px}
  .villa-cover{border-radius:14px 14px 0 0}
  .button-dark,.button-light,.submit{border-radius:8px}
}

/* V93 — editorial Atlas identity, refreshed typography, landing composition and cookie pop-up */
:root{
  --atlas-ink:#20272b;
  --atlas-paper:#f0f0f1;
  --atlas-paper-2:#e1e1e2;
  --atlas-accent:#2a45a8;
  --atlas-line:rgba(32,39,43,.14);
}
body{
  font-family:var(--sans);
  letter-spacing:-.015em;
  background:var(--atlas-paper);
  color:var(--atlas-ink);
}
.serif,
.page-hero h1,
.section-head h2,
.villa-card h3,
.villa-hero-copy h1,
.detail-copy h2,
.about-story h2,
.about-contact-section h2,
.about-fact h3,
.legal-hero h1,
.legal-block h2,
.error-card h1,
.gallery-category-title,
.reviews-score,
.villa-map-copy h2,
.included-service-card h3{
  font-family:var(--serif)!important;
  letter-spacing:-.035em;
}
.brand-name{
  font-family:var(--sans)!important;
  font-weight:700;
  letter-spacing:.105em!important;
}
.nav-links,.brand-sub,.eyebrow,.catalogue-signature-points,.cover-badge,.meta span{
  letter-spacing:.075em;
}

/* More visibly different catalogue identity */
.villa-catalogue-section{
  background:var(--atlas-paper);
}
.villa-catalogue-section::before{
  font-family:var(--serif)!important;
  font-weight:500;
  color:rgba(32,39,43,.035);
  letter-spacing:-.04em;
}
.section-head h2{
  font-size:clamp(58px,6.8vw,106px)!important;
  line-height:.82!important;
  font-weight:500!important;
}
.catalogue-signature{
  border-color:var(--atlas-line);
  padding:18px 0;
  margin-bottom:34px;
}
.catalogue-signature-label{
  font-family:var(--sans)!important;
  font-size:12.5px!important;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.villa-card{
  background:#f8f8f9;
  border-radius:4px!important;
  border:1px solid var(--atlas-line);
}
.villa-cover{
  border-radius:0!important;
}
.villa-body{
  padding:27px 27px 30px!important;
}
.villa-card h3{
  font-size:42px!important;
  line-height:.9;
  font-weight:500!important;
}
.villa-photo-name{
  font-family:var(--sans)!important;
  font-size:13.5px!important;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  border-radius:2px!important;
  padding:10px 12px;
}
.cover-badge,.cover-price,.featured-badge{
  border-radius:2px!important;
}
.price{
  color:var(--atlas-ink)!important;
  font-size:22px!important;
}
.meta span{
  border-radius:2px!important;
  background:transparent!important;
  text-transform:uppercase;
  font-size:11px!important;
  font-weight:600;
}
.button-dark,.button-light,.submit{
  border-radius:2px!important;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:700;
}
.button-dark,.submit{
  background:var(--atlas-ink)!important;
}

/* New landing art direction: Jemaa el-Fna + Villa Gora */
.landing-shell,.destination-card{
  background:#161d20;
}
.destination-mosaic{
  display:grid!important;
  grid-template-columns:minmax(0,1.62fr) minmax(310px,.78fr)!important;
  gap:7px!important;
  background:#161d20;
}
.landing-landmark-wrap,
.landing-gora-main,
.landing-gora-detail{
  position:relative;
  min-width:0;
  overflow:hidden;
}
.landing-landmark-wrap{
  grid-column:1;
  grid-row:1;
  min-height:100svh;
}
.landing-gora-stack{
  grid-column:2;
  display:grid;
  grid-template-rows:1.08fr .92fr;
  gap:7px;
  min-height:100svh;
}
.destination-mosaic .landmark{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:52% 52%!important;
  filter:saturate(.91) contrast(1.025) brightness(.92)!important;
}
.landing-gora-main img,.landing-gora-detail img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.9) contrast(1.03) brightness(.92)!important;
}
.landing-gora-main img{object-position:center 48%}
.landing-gora-detail img{object-position:center 55%}
.landing-photo-caption{
  position:absolute;
  left:18px;
  bottom:18px;
  z-index:2;
  padding:7px 9px;
  background:rgba(15,20,22,.58);
  color:#fff;
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(10px);
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.destination-card::after{
  z-index:1;
  background:linear-gradient(90deg,rgba(11,17,19,.13) 0%,rgba(11,17,19,.02) 52%,rgba(11,17,19,.18) 100%),linear-gradient(to top,rgba(11,17,19,.82) 0%,rgba(11,17,19,.08) 47%,rgba(11,17,19,.28) 100%)!important;
  pointer-events:none;
}
.destination-content{
  left:clamp(28px,4vw,70px)!important;
  right:clamp(28px,4vw,70px)!important;
  bottom:clamp(34px,6vh,72px)!important;
  align-items:end!important;
}
.destination-title{max-width:760px}
.destination-kicker{
  display:block;
  margin-bottom:15px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:rgba(255,255,255,.75);
}
.destination-content h1{
  font-family:var(--serif)!important;
  font-size:clamp(76px,9vw,150px)!important;
  line-height:.7!important;
  font-weight:500!important;
  letter-spacing:-.055em;
  text-shadow:0 4px 24px rgba(0,0,0,.16);
}
.destination-title p{
  margin:24px 0 0;
  max-width:470px;
  font-size:15px;
  line-height:1.7;
  color:rgba(255,255,255,.82);
}
.discover-btn{
  border-radius:2px!important;
  padding:13px 14px 13px 17px!important;
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.45)!important;
  text-transform:uppercase;
  letter-spacing:.09em!important;
  font-weight:700;
}
.discover-btn>span:last-child{
  border-radius:1px!important;
}

/* Atlas cookie pop-up: fresh consent, visibly professional */
.cookie-banner{
  left:auto!important;
  right:28px!important;
  bottom:28px!important;
  width:min(470px,calc(100vw - 32px));
  max-width:470px!important;
  margin:0!important;
  padding:25px 25px 22px!important;
  background:rgba(24,31,34,.98)!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:6px!important;
  box-shadow:0 28px 90px rgba(0,0,0,.32)!important;
}
.cookie-banner h3{
  font-family:var(--serif)!important;
  font-size:34px!important;
  font-weight:500!important;
  letter-spacing:-.025em;
  margin-bottom:10px!important;
}
.cookie-banner p{
  font-family:var(--sans)!important;
  font-size:13.5px!important;
  line-height:1.75!important;
  color:#d4d4d3!important;
}
.cookie-privacy{
  margin-top:11px!important;
  font-size:12px!important;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cookie-actions{
  justify-content:stretch!important;
  gap:9px!important;
  margin-top:19px!important;
}
.cookie-actions button{
  flex:1;
  border-radius:2px!important;
  min-height:46px!important;
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:12px!important;
}
.cookie-accept{background:#eeeeef!important;color:#20272b!important}
.cookie-reject{background:transparent!important;color:#fff!important}

@media(max-width:920px){
  .destination-mosaic{
    grid-template-columns:1.35fr .72fr!important;
  }
  .destination-content h1{font-size:clamp(64px,14vw,100px)!important}
  .destination-title p{font-size:13.5px;max-width:360px}
}
@media(max-width:620px){
  .destination-mosaic{
    grid-template-columns:1fr!important;
    grid-template-rows:1fr!important;
  }
  .landing-landmark-wrap{grid-column:1;grid-row:1;min-height:100svh}
  .landing-gora-stack{
    position:absolute;
    top:92px;
    right:12px;
    width:34vw;
    max-width:150px;
    min-width:104px;
    min-height:0;
    height:220px;
    z-index:2;
    grid-template-rows:1.15fr .85fr;
    gap:4px;
    border:4px solid rgba(255,255,255,.16);
  }
  .landing-photo-caption{display:none}
  .destination-content{left:22px!important;right:22px!important;bottom:34px!important;display:block!important}
  .destination-content h1{font-size:74px!important;margin-bottom:0!important}
  .destination-title p{margin-top:17px;max-width:300px}
  .discover-btn{margin-top:22px}
  .cookie-banner{right:10px!important;left:10px!important;bottom:10px!important;width:auto!important;max-width:none!important;padding:20px!important}
}

/* V93 palette handoff: remove the old green identity site-wide */
:root{
  --ink:#20272b;
  --paper:#f0f0f1;
  --paper-2:#e1e1e2;
  --muted:#766f67;
  --line:rgba(32,39,43,.14);
  --gold:#2a45a8;
  --dark:#20272b;
}
.site-header{background:rgba(240,240,241,.965)!important;border-bottom-color:rgba(32,39,43,.12)!important}
.landing-page .site-header{background:linear-gradient(to bottom,rgba(20,27,30,.68),rgba(20,27,30,.03))!important;color:#fff!important}
.landing-page .brand-sub{color:rgba(255,255,255,.68)!important}
.landing-page .lang{border-color:rgba(255,255,255,.38)!important;background:rgba(255,255,255,.07)!important}
.landing-page .lang button.active{background:#efeff0!important;color:#20272b!important}
.footer{background:#20272b!important}


/* V94 — stronger nightly-price hierarchy */
.villa-card .cover-price{
  font-family:var(--sans)!important;
  font-size:15px!important;
  font-weight:800!important;
  letter-spacing:-.025em!important;
  padding:13px 15px!important;
  background:rgba(242,242,243,.97)!important;
  color:#20272b!important;
  border:1px solid rgba(32,39,43,.08)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.15)!important;
}
.villa-card .price{
  min-width:118px;
  font-family:var(--sans)!important;
  font-size:30px!important;
  font-weight:750!important;
  line-height:.95!important;
  letter-spacing:-.045em!important;
  color:#2a45a8!important;
  text-align:right;
}
.villa-card .price small{
  display:block!important;
  margin-top:8px!important;
  font-size:12px!important;
  line-height:1.4!important;
  font-weight:700!important;
  letter-spacing:.04em!important;
  text-transform:uppercase;
  color:#766f67!important;
}
@media(max-width:768px){
 .villa-card .cover-price{font-size:15px!important;padding:11px 12px!important}
 .villa-card .price{font-size:25px!important;min-width:100px}
}

/* V94 — dedicated booking page */
.reservation-page{background:#f0f0f1}
.reservation-hero{padding:84px 0 62px;border-bottom:1px solid rgba(32,39,43,.12);background:linear-gradient(120deg,#e7e7e8 0%,#f3f3f4 52%,#dededf 100%)}
.reservation-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:72px;align-items:end}
.reservation-hero-copy h1{font-family:var(--serif);font-size:clamp(68px,8vw,122px);font-weight:500;line-height:.76;letter-spacing:-.055em;margin:18px 0 28px;max-width:900px}
.reservation-hero-copy>p{max-width:780px;margin:0;color:#625c55;font-size:14px;line-height:1.9}
.reservation-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:38px}
.reservation-steps>div{padding:17px 0;border-top:1px solid rgba(32,39,43,.18);display:flex;gap:14px;align-items:flex-start}
.reservation-steps strong{font-size:12px;letter-spacing:.14em;color:#2a45a8}
.reservation-steps span{font-size:12.5px;line-height:1.45;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.reservation-hero-note{border-left:1px solid rgba(32,39,43,.18);padding-left:30px;padding-bottom:4px}
.reservation-hero-note span{display:block;font-size:11px;font-weight:800;letter-spacing:.18em;color:#2a45a8;margin-bottom:14px}
.reservation-hero-note strong{font-family:var(--serif);font-size:30px;line-height:1.12;font-weight:500}
.reservation-form-section{padding-top:76px!important;padding-bottom:90px!important}
.reservation-layout-v94{display:grid;grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr);gap:70px;align-items:start}
.reservation-aside{position:sticky;top:118px;padding-top:12px}
.reservation-aside h2{font-family:var(--serif);font-size:48px;line-height:.92;font-weight:500;letter-spacing:-.035em;margin:15px 0 22px}
.reservation-aside>p{font-size:14px;line-height:1.85;color:#766f67;margin:0}
.reservation-reassurance{margin-top:34px;border-top:1px solid rgba(32,39,43,.14)}
.reservation-reassurance>div{padding:18px 0;border-bottom:1px solid rgba(32,39,43,.14)}
.reservation-reassurance b{display:block;font-size:12.5px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.reservation-reassurance span{display:block;font-size:12.5px;line-height:1.6;color:#766f67}
.reservation-form-v94{padding:38px!important;border-radius:4px!important;border:1px solid rgba(32,39,43,.13)!important;background:#f8f8f9!important;box-shadow:0 24px 70px rgba(32,39,43,.07)!important}
.reservation-form-head{padding-bottom:30px;border-bottom:1px solid rgba(32,39,43,.13);margin-bottom:30px}
.reservation-form-head h3{font-family:var(--serif)!important;font-size:48px!important;font-weight:500!important;line-height:.9!important;letter-spacing:-.035em;margin:12px 0 14px!important}
.reservation-form-head p{font-size:13.5px!important;line-height:1.75!important;color:#766f67!important;max-width:680px}
.reservation-section-title{display:flex;align-items:center;gap:12px;margin:34px 0 16px;padding-top:2px}
.reservation-section-title span{font-size:11px;font-weight:800;letter-spacing:.14em;color:#2a45a8}
.reservation-section-title b{font-size:12.5px;text-transform:uppercase;letter-spacing:.10em}
.reservation-grid{gap:14px!important}
.reservation-form-v94 .field label{font-size:12px!important;font-weight:750!important;letter-spacing:.06em!important;text-transform:uppercase}
.reservation-form-v94 .field input,.reservation-form-v94 .field select,.reservation-form-v94 .field textarea{border-radius:2px!important;background:#fff!important;border:1px solid rgba(32,39,43,.14)!important;min-height:54px!important;font-family:var(--sans)!important}
.reservation-form-v94 .field textarea{min-height:150px!important;resize:vertical;padding:15px 16px}
.reservation-services{margin-top:0!important}
.reservation-services .service-option{border-radius:2px!important;background:#fff!important}
.reservation-message-field{margin-top:18px}
.reservation-submit{width:100%!important;min-height:58px!important;margin-top:22px!important;font-size:12.5px!important;background:#2a45a8!important;color:#fff!important;border-color:#2a45a8!important}
.reservation-submit:hover{background:#20378a!important}
.reservation-submit-note{text-align:center;font-size:12px;line-height:1.55;color:#8a837b;margin:11px 0 0}
@media(max-width:960px){
 .reservation-hero-grid,.reservation-layout-v94{grid-template-columns:1fr;gap:38px}
 .reservation-hero-note{border-left:0;border-top:1px solid rgba(32,39,43,.18);padding:24px 0 0}
 .reservation-aside{position:static}
 .reservation-aside h2{font-size:42px}
}
@media(max-width:620px){
 .reservation-hero{padding:54px 0 42px}
 .reservation-hero-copy h1{font-size:64px}
 .reservation-steps{grid-template-columns:1fr;gap:0;margin-top:28px}
 .reservation-form-section{padding-top:40px!important}
 .reservation-form-v94{padding:24px 18px!important}
 .reservation-form-head h3{font-size:39px!important}
}


/* V95 — conversion-first booking UX */
.villa-card .cover-price{
  font-size:19px!important;
  padding:15px 18px!important;
  font-weight:800!important;
}
.villa-card .price{
  min-width:140px!important;
  font-size:38px!important;
  line-height:.9!important;
  font-weight:800!important;
}
.villa-card .price small{
  margin-top:9px!important;
  font-size:12.5px!important;
  line-height:1.35!important;
}

/* Reservation page: arrive directly on the form */
.reservation-form-direct{
  padding:42px 0 86px!important;
  min-height:calc(100vh - 78px);
}
.reservation-form-direct .reservation-layout-v94{
  display:block!important;
  width:min(1040px,calc(100% - 44px));
  margin:0 auto;
}
.reservation-form-direct .reservation-form-v94{
  width:100%;
  padding:46px 48px 50px!important;
  border-radius:6px!important;
}
.reservation-form-direct .reservation-form-head{
  padding-bottom:24px!important;
  margin-bottom:24px!important;
}
.reservation-form-direct .reservation-form-head h3{
  font-size:64px!important;
  margin:8px 0 0!important;
}
.reservation-form-direct .reservation-section-title{
  margin:28px 0 14px!important;
}
.reservation-form-direct .reservation-form-v94 .field input,
.reservation-form-direct .reservation-form-v94 .field select{
  min-height:60px!important;
  font-size:14px!important;
}
.reservation-form-direct .reservation-form-v94 .field textarea{
  min-height:170px!important;
  font-size:14px!important;
}
.reservation-form-direct .reservation-submit{
  min-height:66px!important;
  font-size:14px!important;
  letter-spacing:.04em!important;
}
.reservation-form-direct .service-option{
  padding-top:14px!important;
  padding-bottom:14px!important;
}

/* Villa detail: immediate booking CTA next to the nightly rate */
.villa-hero-booking{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:15px;
  flex:none;
}
.villa-hero-booking .villa-hero-price{
  font-family:var(--sans)!important;
  font-size:38px!important;
  font-weight:750!important;
  line-height:.95!important;
}
.villa-hero-book-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:190px;
  min-height:54px;
  padding:0 28px;
  background:#2a45a8;
  border:1px solid #2a45a8;
  color:#fff;
  font-family:var(--sans);
  font-size:13.5px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
  text-decoration:none;
  transition:background .2s,border-color .2s,transform .2s;
}
.villa-hero-book-btn:hover{
  background:#20378a;
  border-color:#20378a;
  transform:translateY(-1px);
}

@media(max-width:768px){
  .villa-card .cover-price{font-size:15px!important;padding:12px 14px!important}
  .villa-card .price{font-size:30px!important;min-width:112px!important}
  .reservation-form-direct{padding:22px 0 55px!important}
  .reservation-form-direct .reservation-layout-v94{width:min(100% - 24px,1040px)}
  .reservation-form-direct .reservation-form-v94{padding:26px 18px 30px!important}
  .reservation-form-direct .reservation-form-head h3{font-size:46px!important}
  .villa-hero-booking{align-items:flex-start;margin-top:18px;gap:12px}
  .villa-hero-booking .villa-hero-price{font-size:31px!important;margin-top:0!important}
  .villa-hero-book-btn{min-width:175px;min-height:50px}
}


/* V96 — Reservation villa visual preview + wider questions field */
.reservation-villa-preview{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:16px;
  width:100%;
  padding:11px;
  border:1px solid rgba(32,39,43,.13);
  background:#fff;
  border-radius:3px;
}
.reservation-villa-preview img{
  width:150px;
  height:92px;
  flex:0 0 150px;
  object-fit:cover;
  border-radius:2px;
}
.reservation-villa-preview-copy{min-width:0}
.reservation-villa-preview-copy span{
  display:block;
  margin-bottom:5px;
  font-size:11px;
  font-weight:750;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#8a837b;
}
.reservation-villa-preview-copy strong{
  display:block;
  font-family:var(--serif);
  font-size:30px;
  font-weight:500;
  line-height:1;
  color:#20272b;
}
.reservation-form-direct .reservation-message-field{width:100%!important}
.reservation-form-direct .reservation-message-field textarea{
  display:block;
  width:100%!important;
  min-height:250px!important;
  box-sizing:border-box;
}
@media(max-width:640px){
  .reservation-villa-preview{gap:12px;padding:9px}
  .reservation-villa-preview img{width:112px;height:78px;flex-basis:112px}
  .reservation-villa-preview-copy strong{font-size:25px}
  .reservation-form-direct .reservation-message-field textarea{min-height:220px!important}
}

/* V97 — Atlas signature identity + first-visit language experience */
:root{
  --v97-ink:#1e2427;
  --v97-charcoal:#171c1f;
  --v97-copper:#2a45a8;
  --v97-copper-dark:#20378a;
  --v97-cream:#f1f1f2;
  --v97-sand:#dededf;
  --v97-line:rgba(30,36,39,.13);
}
html{background:var(--v97-cream)}
body{
  font-family:var(--sans)!important;
  background-color:var(--v97-cream);
  background-image:
    radial-gradient(circle at 8% 8%,rgba(42,69,168,.10),transparent 24rem),
    radial-gradient(circle at 94% 44%,rgba(30,36,39,.055),transparent 30rem);
}
body:not(.landing-page){color:var(--v97-ink)}
.brand-name,
.destination-content h1,
.page-hero h1,
.section-head h2,
.villa-card h3,
.villa-hero-copy h1,
.detail-copy h2,
.about-hero h1,
.company-card h2,
.legal-hero h1,
.reservation-form-head h3,
.reservation-villa-preview-copy strong,
.footer h4,
.gallery-category-title{
  font-family:var(--serif)!important;
}
body,.nav-links,.brand-sub,.eyebrow,.meta,.button-dark,.button-light,.submit,.field,.service-option,.price,.cover-price,.villa-hero-price,.villa-hero-book-btn{
  font-family:var(--sans)!important;
}
.brand-name{font-weight:600!important;letter-spacing:.085em!important;font-size:20px!important}
.brand{position:relative;padding-left:17px}
.brand::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:2px;background:var(--v97-copper)}
.site-header{box-shadow:0 12px 38px rgba(28,34,37,.035)}
.nav-links a{font-weight:600;letter-spacing:.035em}

/* Decorative background identity — restrained atlas / contour-line language. */
.section:not(.dark),.reservation-form-direct,.about-hero,.villa-hero{
  position:relative;
  isolation:isolate;
}
.section:not(.dark)::after,.reservation-form-direct::after,.about-hero::after{
  content:"";
  position:absolute;
  z-index:-1;
  pointer-events:none;
  width:min(46vw,720px);
  aspect-ratio:1;
  right:-15vw;
  top:-10vw;
  border-radius:50%;
  opacity:.8;
  background:
    radial-gradient(circle,transparent 0 31%,rgba(42,69,168,.09) 31.2% 31.5%,transparent 31.7% 43%,rgba(30,36,39,.055) 43.2% 43.45%,transparent 43.7% 57%,rgba(42,69,168,.07) 57.2% 57.45%,transparent 57.7% 70%,rgba(30,36,39,.045) 70.2% 70.4%,transparent 70.7%);
}
.section.soft{background-color:rgba(226,226,227,.72)!important;background-image:linear-gradient(135deg,rgba(255,255,255,.42),transparent 46%)}
.villa-catalogue-section{
  background-color:#eeeeef!important;
  background-image:
    linear-gradient(90deg,rgba(42,69,168,.055) 1px,transparent 1px),
    linear-gradient(rgba(42,69,168,.035) 1px,transparent 1px),
    radial-gradient(circle at 88% 4%,rgba(42,69,168,.12),transparent 27rem)!important;
  background-size:72px 72px,72px 72px,auto!important;
  overflow:hidden;
}
.villa-catalogue-section::before{
  content:"ATLAS"!important;
  font-family:var(--serif)!important;
  font-style:normal;
  font-size:clamp(110px,16vw,250px)!important;
  letter-spacing:-.075em!important;
  color:rgba(30,36,39,.035)!important;
  top:5px!important;
  right:2vw!important;
}
.section-head{position:relative;padding-left:24px}
.section-head::before{content:"";position:absolute;left:0;top:7px;width:3px;height:52px;background:var(--v97-copper)}
.section-head h2{font-weight:500!important;letter-spacing:-.052em!important}
.section-head p{font-size:14px!important;line-height:1.85!important}

/* Cards: more depth and a recognisable copper edge. */
.villa-grid{gap:30px!important}
.villa-card{
  position:relative;
  border:1px solid rgba(30,36,39,.10)!important;
  background:#f8f8f9!important;
  box-shadow:0 24px 65px rgba(31,37,40,.10),0 3px 0 rgba(42,69,168,.42)!important;
  transition:transform .28s ease,box-shadow .28s ease!important;
}
.villa-card:hover{transform:translateY(-5px);box-shadow:0 34px 80px rgba(31,37,40,.15),0 4px 0 rgba(42,69,168,.58)!important}
.villa-cover::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,rgba(13,17,19,.31),transparent 43%)}
.villa-card h3{font-weight:500!important;letter-spacing:-.04em!important;font-size:46px!important}
.villa-location{font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.villa-card .cover-price{
  border:1px solid rgba(255,255,255,.4)!important;
  background:rgba(25,30,33,.88)!important;
  color:#fff!important;
  backdrop-filter:blur(13px)!important;
  box-shadow:0 12px 35px rgba(0,0,0,.20)!important;
}
.villa-card .price{color:var(--v97-copper-dark)!important}
.button-dark,.submit,.villa-hero-book-btn{background:var(--v97-copper)!important;border-color:var(--v97-copper)!important;color:#fff!important}
.button-dark:hover,.submit:hover,.villa-hero-book-btn:hover{background:var(--v97-copper-dark)!important;border-color:var(--v97-copper-dark)!important}

/* Villa detail identity. */
.villa-hero-media{border-radius:8px!important;box-shadow:0 30px 75px rgba(28,34,37,.14)}
.villa-hero-media::before{content:"";position:absolute;z-index:3;inset:12px;border:1px solid rgba(255,255,255,.22);pointer-events:none}
.villa-hero-copy h1{font-weight:500!important;letter-spacing:-.06em!important;text-shadow:0 10px 35px rgba(0,0,0,.22)}
.info-box{border-radius:5px!important;background:rgba(252,252,253,.88)!important;box-shadow:0 15px 35px rgba(32,38,41,.045)}
.info-box strong{font-family:var(--serif)!important;font-weight:500!important}
.gallery-item{border-radius:6px!important;box-shadow:0 16px 38px rgba(30,36,39,.08)}

/* Reservation form gains the same visual signature without changing the V96 UX. */
.reservation-form-direct{
  background:
    radial-gradient(circle at 3% 5%,rgba(42,69,168,.14),transparent 22rem),
    linear-gradient(115deg,#e2e2e3 0%,#f2f2f3 42%,#e9e9ea 100%)!important;
}
.reservation-form-direct::before{
  content:"A";position:absolute;z-index:-1;right:2vw;bottom:-80px;
  font-family:var(--serif);font-size:clamp(260px,35vw,620px);font-style:normal;line-height:.8;color:rgba(42,69,168,.055);pointer-events:none;
}
.reservation-form-direct .reservation-form-v94{
  background:rgba(252,252,253,.92)!important;
  border:1px solid rgba(30,36,39,.10)!important;
  box-shadow:0 34px 90px rgba(30,36,39,.13)!important;
  backdrop-filter:blur(12px);
}
.reservation-form-head h3{font-weight:500!important;letter-spacing:-.055em!important}
.reservation-villa-preview{border-left:4px solid var(--v97-copper)!important;box-shadow:0 12px 30px rgba(30,36,39,.05)}
.reservation-villa-preview img{border-radius:3px!important}

/* Landing refinement. */
.destination-content h1{font-weight:500!important;letter-spacing:-.07em!important}
.destination-kicker{font-family:var(--sans)!important;font-weight:700!important}
.discover-btn{box-shadow:0 16px 45px rgba(0,0,0,.14)}
.landing-photo-caption{font-family:var(--sans)!important}

/* First-visit language gate. */
body.language-gate-open{overflow:hidden!important}
.language-gate{
  position:fixed;inset:0;z-index:300;
  display:grid;place-items:center;
  padding:24px;
  opacity:0;visibility:hidden;
  transition:opacity .28s ease,visibility .28s ease;
  background:
    linear-gradient(115deg,rgba(15,19,21,.94),rgba(15,19,21,.77)),
    url('assets/marrakech/gora/catalogue-cover.jpg') center 47%/cover no-repeat;
}
.language-gate.open{opacity:1;visibility:visible}
.language-gate::before{
  content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.17);pointer-events:none
}
.language-gate-card{
  position:relative;overflow:hidden;
  width:min(760px,100%);
  padding:54px 58px 48px;
  color:#fff;
  background:rgba(20,25,27,.82);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 45px 120px rgba(0,0,0,.38);
  backdrop-filter:blur(18px);
}
.language-gate-card::after{
  content:"";position:absolute;right:-120px;bottom:-120px;width:340px;height:340px;border:1px solid rgba(42,69,168,.28);border-radius:50%;box-shadow:0 0 0 42px rgba(42,69,168,.06),0 0 0 88px rgba(255,255,255,.025);pointer-events:none
}
.language-gate-brand{font-family:var(--sans);font-size:12.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#eaeaeb}
.language-gate-brand span{color:#2a45a8;margin-left:8px}
.language-gate-monogram{position:absolute;right:42px;top:-45px;font-family:var(--serif);font-style:normal;font-size:210px;line-height:1;color:rgba(255,255,255,.035);pointer-events:none}
.language-gate-kicker{margin:58px 0 13px;font-size:12px;font-weight:700;letter-spacing:.2em;color:#2a45a8}
.language-gate h2{font-family:var(--serif);font-size:clamp(54px,8vw,88px);font-weight:500;letter-spacing:-.065em;line-height:.82;margin:0}
.language-gate h2 em{font-weight:400;color:#c8c8c9}
.language-gate-copy{margin:23px 0 29px;font-size:13.5px;color:rgba(255,255,255,.72);letter-spacing:.03em}
.language-gate-copy span{color:#2a45a8;padding:0 8px}
.language-gate-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.language-gate-actions button{
  position:relative;text-align:left;min-height:112px;padding:20px 22px;
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.055);color:#fff;
  transition:background .2s,border-color .2s,transform .2s;
}
.language-gate-actions button:hover{background:rgba(42,69,168,.20);border-color:rgba(42,69,168,.62);transform:translateY(-2px)}
.language-gate-actions button>span{position:absolute;right:18px;top:17px;font-size:12px;font-weight:800;letter-spacing:.12em;color:#2a45a8}
.language-gate-actions strong{display:block;font-family:var(--serif);font-size:29px;font-weight:500;margin-bottom:7px}
.language-gate-actions small{display:block;font-size:12px;color:rgba(255,255,255,.58);letter-spacing:.04em}
.language-gate-note{margin-top:26px;padding-top:17px;border-top:1px solid rgba(255,255,255,.12);font-size:11px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.48)}

/* Header language control now mirrors the premium identity. */
.lang{border-radius:3px!important;padding:2px!important;border-color:rgba(30,36,39,.18)!important}
.lang button{border-radius:2px!important;font-family:var(--sans)!important;font-weight:800!important;min-width:34px}
.lang button.active{background:var(--v97-copper)!important;color:#fff!important}
.landing-page .lang button.active{background:#ececed!important;color:#1d2427!important}

@media(max-width:768px){
  .brand{padding-left:12px}.brand-name{font-size:17px!important}
  .section-head{padding-left:17px}.section-head::before{height:40px}
  .villa-card h3{font-size:40px!important}
  .language-gate{padding:12px}.language-gate::before{inset:8px}
  .language-gate-card{padding:38px 22px 28px}
  .language-gate-kicker{margin-top:45px}
  .language-gate h2{font-size:54px}
  .language-gate-actions{grid-template-columns:1fr}
  .language-gate-actions button{min-height:92px}
  .language-gate-monogram{right:12px;font-size:150px}
  .section:not(.dark)::after,.reservation-form-direct::after,.about-hero::after{right:-45vw;width:95vw}
  .villa-catalogue-section::before{display:none!important}
}
\n\n/* V98 — hospitality typography + site-faithful language entrance + copyright */\n:root{\n  --v98-ink:#1e2427;\n  --v98-copper:#2a45a8;\n  --v98-copper-dark:#20378a;\n  --v98-cream:#f1f1f2;\n  --v98-paper:#f8f8f9;\n  --v98-sand:#dcdcdd;\n}\nbody{\n  font-family:var(--sans)!important;\n  letter-spacing:-.012em;\n}\n.destination-content h1,\n.page-hero h1,\n.section-head h2,\n.villa-card h3,\n.villa-hero-copy h1,\n.detail-copy h2,\n.about-hero h1,\n.company-card h2,\n.legal-hero h1,\n.reservation-form-head h3,\n.reservation-villa-preview-copy strong,\n.gallery-category-title,\n.info-box strong,\n.reviews-score,\n.villa-map-copy h2,\n.included-service-card h3{\n  font-family:var(--serif)!important;\n  font-weight:500!important;\n}\n.brand-name{\n  font-family:var(--sans)!important;\n  font-weight:700!important;\n  letter-spacing:.095em!important;\n}\n.nav-links,.brand-sub,.eyebrow,.meta,.button-dark,.button-light,.submit,.field,.service-option,.price,.cover-price,.villa-hero-price,.villa-hero-book-btn{\n  font-family:var(--sans)!important;\n}\n.section-head h2,.villa-hero-copy h1,.destination-content h1{letter-spacing:-.045em!important}\n.villa-card h3{letter-spacing:-.025em!important}\n\n/* First visit now uses the same cream, charcoal and copper identity as the site. */\nbody.language-gate-open{overflow:hidden!important}\n.language-gate{\n  position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:clamp(14px,3vw,42px);\n  opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease;\n  background:\n    radial-gradient(circle at 12% 10%,rgba(42,69,168,.15),transparent 28rem),\n    linear-gradient(135deg,#e3e3e4 0%,#f2f2f3 52%,#dcdcdd 100%);\n}\n.language-gate.open{opacity:1;visibility:visible}\n.language-gate::before{display:none!important}\n.language-gate-shell{\n  width:min(1080px,100%);min-height:min(670px,88svh);display:grid;grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);\n  overflow:hidden;background:var(--v98-paper);border:1px solid rgba(30,36,39,.12);\n  box-shadow:0 42px 110px rgba(30,36,39,.18);\n}\n.language-gate-visual{position:relative;min-height:600px;overflow:hidden;background:#1b2224}\n.language-gate-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,23,25,.72) 0%,rgba(18,23,25,.08) 54%,rgba(18,23,25,.20) 100%)}\n.language-gate-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.86) contrast(1.035)}\n.language-gate-visual-copy{position:absolute;z-index:2;left:36px;right:36px;bottom:34px;color:#fff}\n.language-gate-visual-copy span{display:block;font-size:12px;font-weight:700;letter-spacing:.18em;margin-bottom:8px}\n.language-gate-visual-copy strong{display:block;font-family:var(--serif);font-size:clamp(48px,5vw,72px);font-weight:500;letter-spacing:-.045em;line-height:.92}\n.language-gate-visual-copy small{display:block;margin-top:12px;font-size:12.5px;letter-spacing:.08em;color:rgba(255,255,255,.72)}\n.language-gate-card{\n  position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;\n  width:auto!important;padding:clamp(38px,5vw,68px)!important;color:var(--v98-ink)!important;\n  background:var(--v98-paper)!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;\n}\n.language-gate-card::before{content:"";position:absolute;right:-120px;top:-120px;width:330px;height:330px;border-radius:50%;border:1px solid rgba(42,69,168,.14);box-shadow:0 0 0 44px rgba(42,69,168,.04),0 0 0 88px rgba(30,36,39,.025);pointer-events:none}\n.language-gate-card::after{display:none!important}\n.language-gate-brand{font-family:var(--sans)!important;font-size:12px!important;font-weight:800!important;letter-spacing:.16em!important;color:var(--v98-ink)!important;display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n.language-gate-brand::before{content:"";width:26px;height:2px;background:var(--v98-copper);display:inline-block}\n.language-gate-brand span{color:#20378a!important;margin-left:0!important;font-size:11px;font-weight:700}\n.language-gate-kicker{margin:58px 0 12px!important;font-family:var(--sans)!important;font-size:12px!important;font-weight:800!important;letter-spacing:.17em!important;color:var(--v98-copper-dark)!important}\n.language-gate h2{font-family:var(--serif)!important;font-size:clamp(45px,5.2vw,68px)!important;font-weight:500!important;letter-spacing:-.045em!important;line-height:.98!important;margin:0!important;color:var(--v98-ink)!important;max-width:480px}\n.language-gate-copy{margin:22px 0 31px!important;font-family:var(--sans)!important;font-size:13.5px!important;line-height:1.75!important;color:#716b63!important;letter-spacing:0!important;max-width:470px}\n.language-gate-copy span{display:inline!important;color:#8b8378!important;padding:0!important}\n.language-gate-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}\n.language-gate-actions button{\n  position:relative;text-align:left;min-height:108px!important;padding:18px 19px!important;\n  border:1px solid rgba(30,36,39,.14)!important;background:#fdfdfd!important;color:var(--v98-ink)!important;\n  transition:background .2s,border-color .2s,transform .2s,box-shadow .2s!important;\n}\n.language-gate-actions button:hover{background:#fff!important;border-color:rgba(42,69,168,.62)!important;transform:translateY(-2px)!important;box-shadow:0 14px 32px rgba(30,36,39,.08)!important}\n.language-gate-actions button>span{position:absolute!important;right:17px!important;top:15px!important;font-family:var(--sans)!important;font-size:11px!important;font-weight:800!important;letter-spacing:.12em!important;color:var(--v98-copper-dark)!important}\n.language-gate-actions strong{display:block!important;font-family:var(--serif)!important;font-size:29px!important;font-weight:500!important;letter-spacing:-.025em!important;margin-bottom:5px!important;color:var(--v98-ink)!important}\n.language-gate-actions small{display:block!important;font-family:var(--sans)!important;font-size:12px!important;color:#847c72!important;letter-spacing:.025em!important}\n.language-gate-note{margin-top:25px!important;padding-top:16px!important;border-top:1px solid rgba(30,36,39,.11)!important;font-family:var(--sans)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.15em!important;text-transform:uppercase!important;color:#8b8378!important}\n.language-gate-monogram{display:none!important}\n\n/* Copyright is present on the landing page too; internal footers keep it on the left. */\n.landing-copyright{position:fixed;z-index:12;left:22px;bottom:17px;color:rgba(255,255,255,.72);font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 2px 14px rgba(0,0,0,.35)}\n.footer-bottom>span:first-child{font-family:var(--sans);font-size:12px;letter-spacing:.07em;text-transform:uppercase}\n\n@media(max-width:820px){\n  .language-gate{padding:10px}\n  .language-gate-shell{grid-template-columns:1fr;min-height:0;max-height:calc(100svh - 20px);overflow:auto}\n  .language-gate-visual{min-height:220px;height:30svh}\n  .language-gate-visual-copy{left:22px;right:22px;bottom:20px}\n  .language-gate-visual-copy strong{font-size:44px}\n  .language-gate-card{padding:30px 22px 26px!important}\n  .language-gate-kicker{margin-top:30px!important}\n  .language-gate h2{font-size:44px!important}\n  .language-gate-actions{grid-template-columns:1fr 1fr!important}\n  .language-gate-actions button{min-height:92px!important;padding:16px!important}\n  .language-gate-actions strong{font-size:25px!important}\n  .landing-copyright{left:12px;bottom:10px;font-size:11px}\n}\n@media(max-width:480px){\n  .language-gate-visual{min-height:180px;height:25svh}\n  .language-gate-visual-copy strong{font-size:38px}\n  .language-gate-card{padding:24px 18px 22px!important}\n  .language-gate-brand span{width:100%;padding-left:36px}\n  .language-gate-kicker{margin-top:24px!important}\n  .language-gate h2{font-size:39px!important}\n  .language-gate-copy{font-size:12.5px!important;margin:16px 0 22px!important}\n  .language-gate-actions{grid-template-columns:1fr!important}\n  .language-gate-actions button{min-height:78px!important}\n}\n
/* V98 — partners + persistent villa favorites */
.favorites-nav{width:38px;height:34px;display:inline-flex;align-items:center;justify-content:center;gap:3px;border:1px solid rgba(30,36,39,.18);background:rgba(255,255,255,.28);font-family:var(--sans);font-size:12px;font-weight:700;transition:.2s}
.favorites-nav:hover{border-color:rgba(42,69,168,.62);background:#fdfdfd}
.favorites-nav-heart{font-size:17px;line-height:1;color:var(--v98-copper-dark)}
.landing-page .favorites-nav{color:#fff;border-color:rgba(255,255,255,.55);background:rgba(16,24,25,.22)}
.landing-page .favorites-nav-heart{color:#ececed}
.favorite-toggle{position:absolute;z-index:12;width:42px;height:42px;border:1px solid rgba(255,255,255,.52);background:rgba(22,28,30,.68);color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.16);backdrop-filter:blur(10px);transition:transform .2s,background .2s,border-color .2s}
.favorite-toggle:hover{transform:translateY(-2px);background:rgba(42,69,168,.94);border-color:rgba(255,255,255,.78)}
.favorite-toggle.active{background:var(--v98-copper);border-color:var(--v98-copper)}
.favorite-icon{font-size:23px;line-height:1;transform:translateY(-1px)}
.card-favorite{right:14px;top:58px}
.hero-favorite{right:18px;top:18px}

.partner-hero,.favorites-hero{padding:98px 0 72px;background:linear-gradient(135deg,#e3e3e4 0%,#f2f2f3 52%,#dcdcdd 100%);border-bottom:1px solid rgba(30,36,39,.09);position:relative;overflow:hidden}
.partner-hero::after,.favorites-hero::after{content:"A";position:absolute;right:2vw;top:-58px;font-family:var(--serif);font-style:normal;font-size:clamp(230px,28vw,460px);line-height:.8;color:rgba(42,69,168,.055);pointer-events:none}
.partner-hero-grid,.favorites-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.55fr);gap:70px;align-items:end}
.partner-hero h1,.favorites-hero h1{font-family:var(--serif);font-size:clamp(70px,9vw,132px);font-weight:500;letter-spacing:-.055em;line-height:.84;margin:14px 0 22px;color:var(--v98-ink)}
.partner-hero p,.favorites-hero p{max-width:690px;font-size:15px;line-height:1.8;color:#716b63;margin:0}
.partner-hero-note,.favorites-count-box{border-left:3px solid var(--v98-copper);padding:10px 0 10px 23px}
.partner-hero-note span,.favorites-count-box span{display:block;font-size:12px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#20378a;margin-bottom:9px}
.partner-hero-note strong{display:block;font-family:var(--serif);font-size:24px;font-weight:500;line-height:1.25;color:var(--v98-ink)}
.favorites-count-box strong{display:block;font-family:var(--serif);font-size:66px;font-weight:500;line-height:.9;color:var(--v98-ink)}
.partner-section{background:var(--v98-cream)}
.partner-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.72fr);gap:clamp(46px,7vw,110px);align-items:start}
.partner-copy h2{font-family:var(--serif);font-size:clamp(48px,5.2vw,78px);font-weight:500;letter-spacing:-.045em;line-height:.96;margin:12px 0 24px}
.partner-copy>p{font-size:15px;line-height:1.9;color:#716b63;max-width:700px}
.partner-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:36px}
.partner-points>div{padding:19px 17px;border-top:2px solid rgba(42,69,168,.7);background:rgba(253,253,253,.72)}
.partner-points b{display:block;font-family:var(--serif);font-size:21px;font-weight:500;margin-bottom:8px}
.partner-points span{font-size:12.5px;line-height:1.65;color:#7b746b}
.partner-form{padding:30px;background:#fdfdfd;border:1px solid rgba(30,36,39,.11);box-shadow:0 26px 70px rgba(30,36,39,.10);position:relative}
.partner-form::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--v98-copper)}
.partner-form-head h3{font-family:var(--serif);font-size:43px;font-weight:500;letter-spacing:-.04em;line-height:1;margin:9px 0 12px}
.partner-form-head p{font-size:13.5px;line-height:1.65;color:#716b63;margin:0 0 25px}
.partner-submit{width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding:15px 17px!important}
.partner-form .form-status.error{color:#1d2742;margin-top:12px;font-size:12.5px}
.favorites-section{min-height:430px;background:var(--v98-cream)}
.favorites-grid:empty{display:none}
.favorite-result-card .favorite-price{font-family:var(--sans);font-size:15px;font-weight:700;color:var(--v98-copper-dark);margin:15px 0 21px}
.favorites-empty{max-width:660px;margin:26px auto;text-align:center;padding:66px 32px;border:1px solid rgba(30,36,39,.11);background:#fdfdfd}
.favorites-empty>span{font-size:46px;color:var(--v98-copper);display:block;margin-bottom:10px}
.favorites-empty h2{font-family:var(--serif);font-size:42px;font-weight:500;letter-spacing:-.035em;margin:0 0 13px}
.favorites-empty p{font-size:14px;line-height:1.75;color:#716b63;max-width:500px;margin:0 auto 24px}
.favorites-empty .button-dark{display:inline-flex}

@media(max-width:1040px){
 .nav-links{gap:21px!important}
 .partner-hero-grid,.favorites-hero-inner{grid-template-columns:1fr .5fr;gap:36px}
 .partner-layout{grid-template-columns:1fr}
 .partner-form{max-width:720px}
}
@media(max-width:920px){
 .favorites-nav{margin-left:auto}
 .partner-hero,.favorites-hero{padding:70px 0 52px}
 .partner-hero-grid,.favorites-hero-inner{grid-template-columns:1fr;gap:28px}
 .partner-hero-note,.favorites-count-box{max-width:520px}
 .partner-points{grid-template-columns:1fr}
 .card-favorite{top:52px;right:10px}
}
@media(max-width:560px){
 .favorites-nav{width:32px;height:30px}
 .favorites-nav-heart{font-size:15px}
 .favorite-toggle{width:38px;height:38px}
 .partner-hero h1,.favorites-hero h1{font-size:62px}
 .partner-copy h2{font-size:44px}
 .partner-form{padding:24px 18px}
 .partner-form-head h3{font-size:36px}
 .favorites-empty{padding:45px 20px}
 .favorites-empty h2{font-size:34px}
}


/* V99 — subtle global review badge */
.review-badge-floating{position:fixed;top:108px;right:22px;z-index:42;display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:16px;background:rgba(242,242,243,.92);border:1px solid rgba(42,69,168,.34);box-shadow:0 10px 30px rgba(22,24,25,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);min-width:154px;pointer-events:none}
.review-badge-floating .review-badge-eyebrow{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#20378a;font-weight:700}
.review-badge-floating .review-badge-score-line{display:flex;align-items:flex-end;gap:10px}
.review-badge-floating .review-badge-score{font-family:var(--serif);font-size:1.55rem;line-height:1;color:#1f2326}
.review-badge-floating .review-badge-score span{font-family:var(--sans);font-size:.9rem;font-weight:700;color:#6d645a}
.review-badge-floating .review-badge-caption{font-size:.78rem;color:#6d645a}
.review-badge-floating .review-stars{position:relative;display:inline-block;font-size:.95rem;line-height:1;letter-spacing:.08em}
.review-badge-floating .review-stars-base{color:rgba(42,69,168,.28)}
.review-badge-floating .review-stars-fill{position:absolute;left:0;top:0;white-space:nowrap;overflow:hidden;width:94%;color:#2a45a8}
@media (max-width:980px){.review-badge-floating{top:88px;right:14px;padding:10px 12px;min-width:142px}}
@media (max-width:640px){.review-badge-floating{top:auto;bottom:88px;right:12px;padding:9px 11px;min-width:132px;border-radius:14px}.review-badge-floating .review-badge-eyebrow{font-size:.66rem}.review-badge-floating .review-badge-score{font-size:1.28rem}.review-badge-floating .review-badge-caption{font-size:.72rem}}


/* V100 — header review pill, cleaner favorites pill, safer favorite positioning, contact social links */
.nav-actions{gap:12px;flex-wrap:nowrap}
.review-badge-nav{display:inline-flex;align-items:center;gap:12px;padding:8px 12px 8px 13px;border-radius:999px;border:1px solid rgba(30,36,39,.14);background:rgba(255,255,255,.72);box-shadow:0 8px 24px rgba(22,24,25,.06);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);white-space:nowrap}
.review-badge-nav .review-badge-copy{display:flex;flex-direction:column;gap:2px;line-height:1}
.review-badge-nav .review-badge-eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#20378a;font-weight:800}
.review-badge-nav .review-badge-caption{font-size:14px;font-weight:800;color:#1f2326}
.review-badge-nav .review-badge-caption span{font-size:12px;color:#6d645a;font-weight:700}
.review-badge-nav .review-stars{position:relative;display:inline-block;font-size:13.5px;line-height:1;letter-spacing:.08em;transform:translateY(1px)}
.review-badge-nav .review-stars-base{color:rgba(42,69,168,.28)}
.review-badge-nav .review-stars-fill{position:absolute;left:0;top:0;white-space:nowrap;overflow:hidden;width:94%;color:#2a45a8}
.landing-page .review-badge-nav{background:rgba(18,23,25,.28);border-color:rgba(255,255,255,.24);box-shadow:none}
.landing-page .review-badge-nav .review-badge-eyebrow{color:#2a45a8}
.landing-page .review-badge-nav .review-badge-caption{color:#fff}
.landing-page .review-badge-nav .review-badge-caption span{color:rgba(255,255,255,.76)}
.favorites-nav{width:auto;min-width:58px;height:34px;padding:0 8px 0 10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:999px;border:1px solid rgba(30,36,39,.18);background:rgba(255,255,255,.28);font-family:var(--sans);font-size:12px;font-weight:800;transition:.2s}
.favorites-nav:hover{border-color:rgba(42,69,168,.62);background:#fdfdfd}
.favorites-nav-heart{font-size:16px;line-height:1;color:var(--v98-copper-dark);flex:none}
.favorites-nav [data-favorites-count]{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:rgba(42,69,168,.12);color:var(--v98-copper-dark);font-size:12px;font-weight:800;line-height:1;flex:none}
.landing-page .favorites-nav{color:#fff;border-color:rgba(255,255,255,.55);background:rgba(16,24,25,.22)}
.landing-page .favorites-nav-heart{color:#ececed}
.landing-page .favorites-nav [data-favorites-count]{background:rgba(255,255,255,.18);color:#fff}
.hero-favorite{left:18px;right:auto;top:18px}
.footer-links a.social-link{display:inline-flex;align-items:center;gap:6px}
@media(max-width:1180px){.review-badge-nav{display:none!important}}
@media(max-width:920px){.favorites-nav{margin-left:auto}}
@media(max-width:560px){.favorites-nav{min-width:54px;height:32px;padding:0 7px 0 8px;gap:6px}.favorites-nav-heart{font-size:15px}.favorites-nav [data-favorites-count]{min-width:17px;height:17px;padding:0 4px}}


/* V101 — Marrakech-oriented italic typography, richer contact details, destination collage refinement */
.destination-content h1,.page-hero h1,.section-head h2,.villa-card h3,.villa-hero-copy h1,.detail-copy h2,.about-hero h1,.company-card h2,.legal-hero h1,.reservation-form-head h3,.reservation-villa-preview-copy strong,.gallery-category-title,.info-box strong,.reviews-score,.villa-map-copy h2,.included-service-card h3,.partner-hero h1,.favorites-hero h1,.partner-copy h2,.partner-form-head h3,.favorites-empty h2{font-family:var(--serif)!important;font-style:normal!important;font-weight:500!important;letter-spacing:-.035em!important}
.destination-content h1{font-style:normal!important;letter-spacing:-.055em!important}
.brand-name{letter-spacing:.12em!important}
.destination-mosaic .landmark{object-position:52% 56%!important}
.landing-gora-main img{object-position:center 50%!important}
.landing-gora-detail img{object-position:center 52%!important}
.landing-photo-caption{display:none!important}
.about-contact-card a,.about-contact-card div{display:flex;flex-direction:column;gap:6px;padding:15px 0;border-top:1px solid rgba(32,39,43,.10)}
.about-contact-card a:first-child{border-top:0;padding-top:0}
.about-contact-card span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#20378a;font-weight:800}
.about-contact-card strong{font-family:var(--sans);font-size:14px;line-height:1.6;color:#20272b}
.footer-grid>div:last-child .footer-links{gap:4px}
.footer-grid>div:last-child .footer-links span,.footer-grid>div:last-child .footer-links a{line-height:1.75!important}


/* V102 — overlay fixes, pricing typography, richer company contact details */
.card-favorite{top:auto!important;right:14px!important;bottom:14px!important;left:auto!important}
@media(max-width:768px){.card-favorite{right:10px!important;bottom:10px!important}}
.price,.villa-card .price,.cover-price,.villa-card .cover-price,.villa-hero-booking .villa-hero-price,.favorite-price{
  font-family:var(--serif)!important;
  font-style:normal!important;
  font-weight:600!important;
  letter-spacing:-.03em!important;
}
.price small,.favorite-price small,.villa-hero-booking .villa-hero-price small,.cover-price small{
  font-family:var(--sans)!important;
  font-style:normal!important;
  letter-spacing:.04em!important;
}
.about-contact-card,.about-legal-card{position:relative;overflow:hidden}
.about-contact-card::after,.about-legal-card::after{content:"";position:absolute;right:-80px;bottom:-80px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(42,69,168,.08) 0%,rgba(42,69,168,0) 70%);pointer-events:none}
.about-contact-card a,.about-contact-card div{position:relative;z-index:1}
.footer-grid>div:last-child .footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.footer-grid>div:last-child .footer-links a,.footer-grid>div:last-child .footer-links span{max-width:100%;font-size:13.5px}


/* V103 — clean language entrance: no blocking villa image */
.language-gate{
  background:
    radial-gradient(circle at 18% 16%,rgba(42,69,168,.13),transparent 28rem),
    radial-gradient(circle at 82% 84%,rgba(30,36,39,.06),transparent 30rem),
    linear-gradient(135deg,#e3e3e4 0%,#f2f2f3 52%,#dcdcdd 100%)!important;
}
.language-gate-shell.language-gate-shell-simple{
  width:min(720px,calc(100vw - 28px))!important;
  min-height:0!important;
  display:block!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.language-gate-card.language-gate-card-simple{
  width:100%!important;
  min-height:0!important;
  padding:clamp(34px,5vw,58px)!important;
  border:1px solid rgba(30,36,39,.12)!important;
  background:rgba(248,248,249,.97)!important;
  box-shadow:0 28px 90px rgba(30,36,39,.18)!important;
  border-radius:10px!important;
  overflow:hidden!important;
}
.language-gate-card.language-gate-card-simple::before{
  right:-110px!important;top:-120px!important;width:310px!important;height:310px!important;
}
.language-gate-card-simple .language-gate-brand{margin-bottom:0!important}
.language-gate-card-simple .language-gate-kicker{margin:42px 0 12px!important}
.language-gate-card-simple h2{font-family:var(--serif)!important;font-style:normal!important;font-size:clamp(46px,6vw,64px)!important;line-height:.95!important;max-width:560px!important}
.language-gate-card-simple .language-gate-copy{font-size:14px!important;max-width:560px!important}
.language-gate-card-simple .language-gate-actions{grid-template-columns:1fr 1fr!important;gap:12px!important}
.language-gate-card-simple .language-gate-actions button{min-height:96px!important}
.language-gate-card-simple .language-gate-actions strong{font-family:var(--serif)!important;font-style:normal!important;font-size:30px!important}
.language-gate-card-simple .language-gate-note{margin-top:22px!important}
@media(max-width:620px){
  .language-gate{padding:10px!important}
  .language-gate-shell.language-gate-shell-simple{width:min(100%,calc(100vw - 20px))!important}
  .language-gate-card.language-gate-card-simple{padding:28px 20px 22px!important;border-radius:8px!important}
  .language-gate-card-simple .language-gate-brand{font-size:11px!important}
  .language-gate-card-simple .language-gate-brand span{width:100%;padding-left:36px!important}
  .language-gate-card-simple .language-gate-kicker{margin:28px 0 10px!important}
  .language-gate-card-simple h2{font-size:42px!important}
  .language-gate-card-simple .language-gate-copy{font-size:13px!important;margin:16px 0 20px!important}
  .language-gate-card-simple .language-gate-actions{grid-template-columns:1fr!important}
  .language-gate-card-simple .language-gate-actions button{min-height:74px!important}
}


/* V104 — hard reset of first-visit gate + cache-busting deployment */
body.language-gate-open{overflow:hidden!important}
.language-gate{
  position:fixed!important;
  inset:0!important;
  z-index:9999!important;
  display:grid!important;
  place-items:center!important;
  padding:20px!important;
  overflow:hidden!important;
  background:#e3e3e4!important;
  background-image:
    radial-gradient(circle at 14% 16%,rgba(42,69,168,.12),transparent 25rem),
    radial-gradient(circle at 88% 84%,rgba(30,36,39,.06),transparent 28rem),
    linear-gradient(135deg,#e3e3e4 0%,#f6f6f7 52%,#dcdcdd 100%)!important;
}
.language-gate::before,.language-gate::after{display:none!important;content:none!important}
.language-gate-shell,
.language-gate-shell.language-gate-shell-simple{
  width:min(690px,calc(100vw - 40px))!important;
  max-height:calc(100svh - 40px)!important;
  min-height:0!important;
  display:block!important;
  grid-template-columns:1fr!important;
  overflow:auto!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.language-gate-visual,
.language-gate-shell > .language-gate-visual{
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  min-height:0!important;
  overflow:hidden!important;
}
.language-gate-card,
.language-gate-card.language-gate-card-simple{
  width:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:clamp(30px,5vw,52px)!important;
  color:#1e2427!important;
  background:#f8f8f9!important;
  border:1px solid rgba(30,36,39,.13)!important;
  border-radius:12px!important;
  box-shadow:0 24px 70px rgba(30,36,39,.18)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  overflow:hidden!important;
}
.language-gate-card::after{display:none!important;content:none!important}
.language-gate-card::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  right:-115px!important;
  top:-125px!important;
  width:300px!important;
  height:300px!important;
  border-radius:50%!important;
  border:1px solid rgba(42,69,168,.12)!important;
  box-shadow:0 0 0 40px rgba(42,69,168,.04),0 0 0 82px rgba(30,36,39,.02)!important;
  pointer-events:none!important;
}
.language-gate-brand{position:relative!important;z-index:1!important;color:#1e2427!important}
.language-gate-brand span{color:#20378a!important}
.language-gate-kicker{position:relative!important;z-index:1!important;margin:36px 0 10px!important;color:#20378a!important}
.language-gate h2{position:relative!important;z-index:1!important;color:#1e2427!important;font-family:var(--serif)!important;font-style:normal!important;font-size:clamp(44px,6vw,62px)!important;line-height:.96!important;letter-spacing:-.045em!important;margin:0!important}
.language-gate-copy{position:relative!important;z-index:1!important;color:#716b63!important;font-size:13.5px!important;line-height:1.7!important;margin:18px 0 24px!important}
.language-gate-copy span{color:#8b8378!important;padding:0!important}
.language-gate-actions{position:relative!important;z-index:1!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
.language-gate-actions button{min-height:88px!important;background:#fdfdfd!important;color:#1e2427!important;border:1px solid rgba(30,36,39,.14)!important}
.language-gate-actions button:hover{background:#fff!important;border-color:rgba(42,69,168,.58)!important}
.language-gate-actions button>span{color:#20378a!important}
.language-gate-actions strong{color:#1e2427!important;font-family:var(--serif)!important;font-style:normal!important;font-size:28px!important}
.language-gate-actions small{color:#847c72!important}
.language-gate-note{position:relative!important;z-index:1!important;color:#8b8378!important;border-top-color:rgba(30,36,39,.11)!important;margin-top:20px!important}
@media(max-width:620px){
  .language-gate{padding:10px!important}
  .language-gate-shell,.language-gate-shell.language-gate-shell-simple{width:calc(100vw - 20px)!important;max-height:calc(100svh - 20px)!important}
  .language-gate-card,.language-gate-card.language-gate-card-simple{padding:26px 18px 20px!important}
  .language-gate-brand span{display:block!important;width:100%!important;margin:5px 0 0!important;padding:0!important}
  .language-gate-kicker{margin:25px 0 8px!important}
  .language-gate h2{font-size:40px!important}
  .language-gate-copy{font-size:12.5px!important;margin:14px 0 18px!important}
  .language-gate-actions{grid-template-columns:1fr!important}
  .language-gate-actions button{min-height:68px!important}
}


/* V105 — mobile header spacing: brand + favorites no longer overlap */
@media(max-width:620px){
  .site-header .wrap.nav{grid-template-columns:minmax(0,1fr) auto!important;gap:6px!important;width:min(100% - 18px,760px)!important}
  .site-header .brand{min-width:0!important;width:auto!important;max-width:132px!important;padding-left:0!important;overflow:hidden}
  .site-header .brand-copy{min-width:0!important;width:100%!important;overflow:hidden}
  .site-header .brand-name{font-size:13px!important;letter-spacing:.055em!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:132px!important}
  .site-header .brand-sub{display:none!important}
  .site-header .nav-actions{gap:4px!important;flex-wrap:nowrap!important;margin-left:auto!important}
  .site-header .favorites-nav{position:relative!important;width:34px!important;min-width:34px!important;height:32px!important;padding:0!important;gap:0!important;border-radius:50%!important;overflow:visible!important;flex:none!important}
  .site-header .favorites-nav-heart{font-size:16px!important}
  .site-header .favorites-nav [data-favorites-count]{position:absolute!important;top:-5px!important;right:-5px!important;min-width:16px!important;height:16px!important;padding:0 4px!important;border-radius:999px!important;font-size:11px!important;line-height:1!important;border:2px solid var(--paper)!important;box-sizing:border-box!important}
  .landing-page .site-header .favorites-nav [data-favorites-count]{border-color:#20272b!important}
  .site-header .lang{padding:1px!important;flex:none!important}
  .site-header .lang button{min-width:27px!important;padding:6px 5px!important;font-size:11px!important}
  .site-header .menu-toggle{width:32px!important;height:32px!important;flex:none!important;font-size:16px!important}
}
@media(max-width:360px){
  .site-header .brand{max-width:112px!important}
  .site-header .brand-name{font-size:12px!important;max-width:112px!important}
  .site-header .nav-actions{gap:3px!important}
  .site-header .lang button{min-width:25px!important;padding:5px 4px!important}
}


/* V107 — FIX FINAL MOBILE HEADER + LANGUE TRANSPARENTE */
.language-gate{
  background:rgba(10,14,16,.28)!important;
  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}
.language-gate-shell,
.language-gate-shell.language-gate-shell-simple{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.language-gate-card,
.language-gate-card.language-gate-card-simple{
  background:rgba(248,248,249,.80)!important;
  border:1px solid rgba(255,255,255,.34)!important;
  border-radius:26px!important;
  box-shadow:0 24px 70px rgba(0,0,0,.22)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
}
.language-gate-actions button{
  background:rgba(253,253,253,.86)!important;
  border-radius:16px!important;
}

@media(max-width:620px){
  .site-header{
    min-height:66px!important;
    height:auto!important;
  }
  .site-header .wrap.nav{
    display:grid!important;
    grid-template-columns:minmax(0,96px) auto!important;
    align-items:center!important;
    gap:8px!important;
    width:calc(100% - 16px)!important;
    padding-left:0!important;
    padding-right:0!important;
    margin:0 auto!important;
  }
  .site-header .brand{
    display:block!important;
    min-width:0!important;
    width:96px!important;
    max-width:96px!important;
    padding-left:0!important;
    margin:0!important;
    overflow:visible!important;
  }
  .site-header .brand-copy{
    display:block!important;
    width:96px!important;
    min-width:0!important;
  }
  .site-header .brand-name{
    display:block!important;
    width:96px!important;
    max-width:96px!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    font-size:12px!important;
    line-height:.95!important;
    letter-spacing:.035em!important;
    word-break:normal!important;
  }
  .site-header .brand-sub{display:none!important}
  .site-header .nav-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:3px!important;
    min-width:0!important;
    margin-left:0!important;
    padding-left:0!important;
  }
  .site-header .favorites-nav{
    width:32px!important;
    min-width:32px!important;
    height:30px!important;
    padding:0!important;
    flex:none!important;
    overflow:visible!important;
  }
  .site-header .favorites-nav [data-favorites-count]{
    top:-4px!important;
    right:-4px!important;
  }
  .site-header .lang{
    flex:none!important;
    padding:1px!important;
  }
  .site-header .lang button{
    min-width:24px!important;
    padding:5px 3px!important;
    font-size:11px!important;
  }
  .site-header .menu-toggle{
    width:31px!important;
    height:31px!important;
    flex:none!important;
  }

  .language-gate{
    padding:12px!important;
  }
  .language-gate-shell,
  .language-gate-shell.language-gate-shell-simple{
    width:calc(100vw - 24px)!important;
    max-height:calc(100svh - 24px)!important;
  }
  .language-gate-card,
  .language-gate-card.language-gate-card-simple{
    padding:24px 18px 20px!important;
    border-radius:22px!important;
  }
}

/* V108 — accessibilité clavier : anneau de focus visible partout */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
 outline:2px solid #2a45a8;outline-offset:2px;border-radius:8px;
}
.lang button:focus-visible{outline-offset:1px}

/* V108 — lien d'évitement (skip link) */
.skip-link{
 position:fixed;top:-60px;left:12px;z-index:200;background:#11110f;color:#fff;padding:12px 18px;
 border-radius:10px;font-size:14px;letter-spacing:.03em;transition:top .2s ease;text-decoration:none;
}
.skip-link:focus{top:12px}


/* =====================================================================
   V109 — Système de design unifié « Majorelle »
   Une seule couche finale qui harmonise tout le site :
   2 polices, 1 palette, échelle de texte lisible, moins de décor.
   ===================================================================== */
:root{
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --sans:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --bg:#f5f5f6; --surface:#ffffff; --sand:#eaeaeb;
  --ink:#1c1f26; --muted:#5b606b; --line:#e0e0e1; --line-strong:#cbcbcc;
  --accent:#2a45a8; --accent-hover:#20378a; --accent-soft:#e9ecf4;
  --paper:var(--bg); --paper-2:var(--sand); --gold:var(--accent); --dark:var(--ink);
  --atlas-ink:var(--ink); --atlas-line:var(--line); --atlas-paper:var(--bg); --atlas-paper-2:var(--sand); --atlas-accent:var(--accent);
  --v97-copper:var(--accent); --v97-copper-dark:var(--accent-hover); --v98-copper:var(--accent); --v98-copper-dark:var(--accent-hover);
  --v97-ink:var(--ink); --v98-ink:var(--ink); --v97-line:var(--line);
  --r-sm:6px; --r-md:12px; --r-lg:18px;
  --shadow:0 1px 2px rgba(28,31,38,.05),0 8px 24px rgba(28,31,38,.06);
}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg)!important;color:var(--ink)!important;font-family:var(--sans)!important;font-size:16px;line-height:1.6;letter-spacing:0!important;-webkit-font-smoothing:antialiased}
body::before,body::after{display:none!important}

/* Titres : un seul serif, romain (plus d'italique partout), graisse moyenne */
h1,h2,h3,.section-head h2,.villa-card h3,.detail-copy h2,.page-hero h1,.about-hero h1,.villa-hero-copy h1,.destination-content h1,.booking-copy h2,.availability h3,.footer h4{
  font-family:var(--serif)!important;font-style:normal!important;font-weight:400!important;letter-spacing:-.015em!important;text-transform:none!important;
}
.section-head h2{font-size:clamp(34px,4vw,52px)!important;line-height:1.08!important;margin:8px 0 0!important}
.section-head p,.detail-copy p,.about-copy p,.booking-copy p{font-size:16px!important;line-height:1.7!important;color:var(--muted)!important;max-width:60ch}
.section-head::before,.brand::before,.villa-hero-media::before,.partner-hero::after,.favorites-hero::after,.about-contact-card::after,.about-legal-card::after,.villa-catalogue-section::before,.language-gate-card::before{display:none!important}
.section-head{padding-left:0!important}

/* Petits libellés : casse normale, lisibles, sans espacement exagéré */
.eyebrow,.catalogue-signature-label,.info-box span,.field label,.review-detail span{
  font-family:var(--sans)!important;font-size:13px!important;letter-spacing:.01em!important;text-transform:none!important;font-weight:600!important;color:var(--accent)!important;
}
.dark .eyebrow{color:#b9c3e0!important}

/* Sections : fonds unis, rythme régulier */
.section{padding:clamp(56px,7vw,96px) 0!important}
.section.soft,.categorized-gallery,.villa-catalogue-section,.reviews-section,.included-services-section{background:var(--bg)!important;background-image:none!important}
.section.soft{background:var(--sand)!important}

/* ---------- En-tête ---------- */
.site-header{height:72px!important;min-height:72px!important;background:rgba(245,245,246,.92)!important;border-bottom:1px solid var(--line)!important;backdrop-filter:saturate(140%) blur(14px)}
.landing-page .site-header{background:linear-gradient(to bottom,rgba(10,12,18,.55),rgba(10,12,18,0))!important;border:0!important}
.brand{padding-left:0!important;min-width:0!important}
.brand-copy{gap:3px!important}
.brand-name{font-family:var(--serif)!important;font-size:22px!important;letter-spacing:-.01em!important;font-weight:500!important;text-transform:none!important;line-height:1!important}
.brand-sub{font-family:var(--sans)!important;font-size:12px!important;letter-spacing:.01em!important;text-transform:none!important;opacity:.7!important}
.nav-links{gap:28px!important}
.nav-links a{font-family:var(--sans)!important;font-size:14.5px!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;opacity:.78!important}
.nav-links a.active,.nav-links a:hover{opacity:1!important}
.nav-links a::after{background:currentColor!important;height:2px!important;bottom:-6px!important}
.nav-links a.active::after{right:0!important}
.review-badge-nav{border-radius:999px!important;border:1px solid var(--line)!important;background:var(--surface)!important;box-shadow:none!important}
.landing-page .review-badge-nav{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.3)!important}
.review-badge-eyebrow{font-size:11.5px!important;letter-spacing:0!important;text-transform:none!important}
.review-stars-fill,.review-stars{color:#1d2742!important}
.lang{border:1px solid var(--line-strong)!important;border-radius:999px!important;background:transparent!important}
.landing-page .lang{border-color:rgba(255,255,255,.45)!important}
.lang button{font-size:12.5px!important;font-weight:600!important;letter-spacing:.02em!important;border-radius:999px!important;min-width:36px}
.lang button.active{background:var(--ink)!important;color:#fff!important}
.landing-page .lang button.active{background:#fff!important;color:var(--ink)!important}
.favorites-nav{border-radius:999px!important;border:1px solid var(--line-strong)!important;background:transparent!important}
.mobile-menu{background:var(--bg)!important}
.mobile-menu a{font-family:var(--serif)!important;font-style:normal!important;font-size:30px!important;padding:14px 0!important;border-color:var(--line)!important}
.mobile-lang{display:none}

/* ---------- Boutons : un primaire, un secondaire ---------- */
.button-dark,.submit,.reservation-submit,.villa-hero-book-btn,.discover-btn{
  font-family:var(--sans)!important;font-size:15px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;
  border-radius:var(--r-sm)!important;min-height:48px;padding:13px 22px!important;transition:background .2s ease;
}
.button-dark,.submit,.reservation-submit,.villa-hero-book-btn{background:var(--accent)!important;color:#fff!important;border:0!important}
.button-dark:hover,.submit:hover,.reservation-submit:hover,.villa-hero-book-btn:hover{background:var(--accent-hover)!important}
.button-light{border-radius:var(--r-sm)!important;font-size:15px!important;text-transform:none!important;letter-spacing:0!important}
.text-link{font-size:15px!important;font-weight:600!important;color:var(--accent)!important;text-transform:none!important;letter-spacing:0!important}

/* ---------- Bandeau de confiance ---------- */
.trust-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);margin:0 0 36px}
.trust-item{padding:18px 20px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:3px;min-width:0}
.trust-item:first-child{border-left:0}
.trust-item strong{font-size:15px;font-weight:600;color:var(--ink);line-height:1.3}
.trust-item span,.trust-item a{font-size:13.5px;color:var(--muted);line-height:1.4}
.trust-item a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.villa-hero .trust-band{margin:14px 0 0}
.landing-trust{position:absolute;z-index:3;left:7%;right:7%;bottom:3.2%;display:flex;flex-wrap:wrap;gap:8px 28px;color:rgba(255,255,255,.86);font-size:14px;font-weight:500}
.landing-trust span{display:inline-flex;align-items:center;gap:8px}
.landing-trust span::before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;opacity:.7}
.landing-trust a{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* ---------- Accueil ---------- */
.destination-content{bottom:calc(3.2% + 52px)!important}
.destination-kicker{font-family:var(--sans)!important;font-size:14px!important;letter-spacing:.01em!important;text-transform:none!important;font-weight:500!important;opacity:.85}
.destination-content h1{font-size:clamp(64px,8vw,120px)!important;line-height:.95!important;margin:10px 0 12px!important}
.destination-title p{font-size:18px!important;line-height:1.5!important;max-width:34ch;opacity:.92}
.discover-btn{background:#fff!important;color:var(--ink)!important;border:0!important;backdrop-filter:none!important;gap:12px!important;padding:12px 12px 12px 22px!important}
.discover-btn>span:first-child{font-size:15px!important}
.discover-btn>span:last-child{background:var(--accent)!important;color:#fff!important;border-radius:var(--r-sm)!important;width:34px!important;height:34px!important}
.discover-btn:hover{background:#efeff0!important}
.landing-copyright{font-size:12.5px!important}

/* ---------- Catalogue ---------- */
.villas-head{margin-bottom:28px!important}
.villas-head h2{font-size:clamp(44px,5.5vw,72px)!important}
.catalogue-signature{display:none!important}
.villa-grid{gap:28px!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
.villa-card{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:var(--r-lg)!important;box-shadow:none!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;transform:none!important;transition:box-shadow .25s ease,border-color .25s ease!important}
.villa-card:hover{box-shadow:var(--shadow)!important;border-color:var(--line-strong)!important}
.villa-cover{height:auto!important;aspect-ratio:4/3!important;border-radius:0!important}
.villa-cover img{transition:transform .6s ease!important}
.villa-card:hover .villa-cover img{transform:scale(1.03)!important}
.villa-cover::after{background:none!important}
.villa-cover .cover-badge,.villa-cover .villa-photo-name,.mobile-villa-info,.villa-cover .gallery-count{display:none!important}
.cover-price{position:absolute!important;z-index:3;left:14px!important;right:auto!important;top:auto!important;bottom:14px!important;background:rgba(255,255,255,.95)!important;color:var(--ink)!important;border-radius:var(--r-sm)!important;padding:7px 11px!important;font-family:var(--sans)!important;font-style:normal!important;font-size:14px!important;font-weight:700!important;box-shadow:0 2px 8px rgba(0,0,0,.12)!important;letter-spacing:0!important}
.featured-badge{left:14px!important;right:auto!important;top:14px!important;background:var(--ink)!important;color:#fff!important;border-radius:var(--r-sm)!important;font-size:12.5px!important;padding:6px 10px!important;text-transform:none!important;letter-spacing:0!important}
.card-favorite{top:12px!important;right:12px!important;left:auto!important;bottom:auto!important;width:40px!important;height:40px!important;border-radius:50%!important;background:rgba(255,255,255,.95)!important;color:var(--ink)!important;border:0!important;box-shadow:0 2px 8px rgba(0,0,0,.12)!important}
.card-favorite.active{color:#1d2742!important}
.villa-body{padding:20px 22px 22px!important;display:flex!important;flex-direction:column!important;flex:1}
.villa-title-row{display:flex!important;align-items:baseline!important;justify-content:space-between!important;gap:12px!important}
.villa-card h3{font-size:28px!important;line-height:1.1!important}
.villa-location{font-size:13.5px!important;color:var(--muted)!important;margin-top:2px!important}
.price{font-family:var(--sans)!important;font-style:normal!important;font-size:18px!important;font-weight:700!important;text-align:right!important;margin:0!important}
.price small{font-size:12.5px!important;font-weight:500!important;color:var(--muted)!important;margin-top:2px!important}
.meta{margin:14px 0 12px!important;gap:6px!important}
.meta span{font-size:13px!important;text-transform:none!important;font-weight:500!important;letter-spacing:0!important;border:0!important;background:var(--bg)!important;border-radius:var(--r-sm)!important;padding:6px 10px!important;color:var(--ink)!important}
.villa-desc{font-size:14.5px!important;line-height:1.6!important;color:var(--muted)!important;margin:0 0 18px!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.villa-actions{margin-top:auto!important;border-top:1px solid var(--line)!important;padding-top:16px!important;flex-direction:row!important;align-items:center!important}
.villa-actions .button-dark{width:auto!important;min-height:42px;padding:10px 16px!important;font-size:14px!important}

/* ---------- Fiche villa ---------- */
.villa-hero{padding:24px 0 12px!important}
.villa-hero-media{border-radius:var(--r-lg)!important;height:min(64svh,620px)!important}
.villa-hero-media::after{background:linear-gradient(to top,rgba(10,12,18,.66),rgba(10,12,18,0) 55%)!important}
.villa-hero-copy .eyebrow{color:rgba(255,255,255,.85)!important;font-weight:500!important}
.villa-hero-copy h1{font-size:clamp(48px,6.5vw,88px)!important;line-height:1!important}
.villa-hero-price{font-family:var(--sans)!important;font-style:normal!important;font-size:30px!important;font-weight:700!important}
.villa-hero-price small{font-size:14px!important;font-weight:500!important}
.villa-hero-book-btn{margin-top:12px!important}
.hero-featured-badge{background:var(--ink)!important;border-radius:var(--r-sm)!important;font-size:12.5px!important;text-transform:none!important;letter-spacing:0!important}
.hero-favorite{border-radius:50%!important;background:rgba(255,255,255,.95)!important;color:var(--ink)!important;border:0!important}
.info-grid{gap:0!important;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden;margin-top:14px!important}
.info-box{min-height:0!important;border:0!important;border-left:1px solid var(--line)!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;padding:16px 20px!important;gap:6px;justify-content:flex-start!important}
.info-box:first-child{border-left:0!important}
.info-box span{color:var(--muted)!important;font-weight:500!important}
.info-box strong{font-family:var(--sans)!important;font-style:normal!important;font-size:22px!important;font-weight:600!important}
.detail-copy h2{font-size:clamp(36px,4vw,52px)!important}
.feature-row{font-size:15px!important;padding:14px 0!important}
.included-services-grid{gap:16px!important}
.included-service-card{border-radius:var(--r-md)!important;border:1px solid var(--line)!important;background:var(--surface)!important;box-shadow:none!important}
.included-service-card h3,.included-service-card strong{font-family:var(--sans)!important;font-size:17px!important;font-weight:600!important}
.included-service-card p{font-size:14.5px!important;line-height:1.6!important}
.included-service-icon{background:var(--accent-soft)!important;color:var(--accent)!important;border-radius:var(--r-sm)!important;font-family:var(--sans)!important;font-style:normal!important}
.review-card{border-radius:var(--r-md)!important;border:1px solid var(--line)!important;box-shadow:none!important;padding:22px!important}
.review-avatar{background:var(--accent)!important}
.review-title{font-size:17px!important}
.review-card p{font-size:15px!important}
.reviews-score{font-family:var(--serif)!important;font-style:normal!important}
.gallery-item,.gallery-item img{border-radius:var(--r-md)!important}
.gallery-category-title{font-size:26px!important}
.gallery-side-nav{border-radius:var(--r-md)!important;border:1px solid var(--line)!important;box-shadow:none!important;background:var(--surface)!important}
.gallery-side-nav-links a{border-radius:var(--r-sm)!important;background:transparent!important;font-size:14.5px!important}
.gallery-side-nav-links a:hover{background:var(--bg)!important}

/* ---------- Formulaires ---------- */
.availability,.reservation-form-v94,.partner-form,.company-card{border-radius:var(--r-lg)!important;border:1px solid var(--line)!important;box-shadow:none!important;background:var(--surface)!important}
.field input,.field select,.field textarea,textarea{border-radius:var(--r-sm)!important;background:var(--surface)!important;border:1px solid var(--line-strong)!important;font-size:16px!important;padding:12px 14px!important;min-height:48px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}
.field label{color:var(--ink)!important;font-size:14px!important;margin-bottom:6px!important}
.service-option{border-radius:var(--r-sm)!important;background:var(--surface)!important}
.reservation-section-title span{background:var(--accent)!important;color:#fff!important}

/* ---------- Pied de page ---------- */
.footer{background:#15171d!important}
.footer h4{font-size:26px!important}
.footer p,.footer a,.footer span{font-size:14px!important;color:#b3b6bf!important;line-height:1.8!important}
.footer a:hover{color:#fff!important}
.footer .eyebrow{color:#fff!important}

/* ---------- Bannière cookies / fenêtre langue ---------- */
.cookie-banner{border-radius:var(--r-md)!important;font-size:14.5px!important}
.cookie-banner button{border-radius:var(--r-sm)!important;font-size:14px!important;text-transform:none!important;letter-spacing:0!important}
.cookie-accept{background:var(--accent)!important;color:#fff!important}
.language-gate-card h2{font-style:normal!important}

/* ---------- Responsive ---------- */
@media(max-width:1080px){.villa-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.trust-band{grid-template-columns:repeat(2,1fr)}.trust-item:nth-child(3){border-left:0}.trust-item:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:920px){.review-badge-nav{display:none!important}}
@media(max-width:620px){
  .site-header{height:64px!important;min-height:64px!important}
  .site-header .wrap.nav{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important}
  .site-header .brand,.site-header .brand-copy,.site-header .brand-name{width:auto!important;max-width:none!important}
  .site-header .brand-name{font-size:21px!important;white-space:nowrap!important;line-height:1!important;letter-spacing:-.01em!important}
  .site-header .nav-actions{gap:8px!important}
  .site-header .lang{display:none!important}
  .site-header .favorites-nav{width:40px!important;min-width:40px!important;height:40px!important}
  .site-header .menu-toggle{width:40px!important;height:40px!important;font-size:18px!important;border-color:var(--line-strong)!important}
  .landing-page .site-header .menu-toggle,.landing-page .site-header .favorites-nav{border-color:rgba(255,255,255,.5)!important}
  .mobile-lang{display:flex;gap:10px;margin-top:26px}
  .mobile-lang button{flex:1;min-height:48px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);font-size:15px;font-weight:600;color:var(--ink)}
  .mobile-lang button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
  .villa-grid{grid-template-columns:1fr!important;gap:20px!important}
  .villa-card h3{font-size:26px!important}
  .trust-band{grid-template-columns:1fr 1fr}
  .trust-item{padding:14px 14px}
  .trust-item strong{font-size:14px}.trust-item span,.trust-item a{font-size:13px}
  .info-grid{grid-template-columns:1fr 1fr!important}
  .info-box:nth-child(3){border-left:0!important}
  .info-box:nth-child(n+3){border-top:1px solid var(--line)!important}
  .villa-hero-media{height:56svh!important}
  .villa-hero-copy h1{font-size:48px!important}
  .destination-content h1{font-size:64px!important}
  .destination-title p{font-size:16px!important}
  .destination-content{bottom:calc(3% + 88px)!important}
  .landing-trust{font-size:13px;gap:6px 16px;left:5%;right:5%}
  .section-head h2{font-size:34px!important}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* V109 — ajustements après revue visuelle */
.section::after,.section::before,.villa-catalogue-section::after,.categorized-gallery::after,.reviews-section::after,.included-services-section::after{display:none!important;background:none!important}
.villa-card .villa-cover .cover-price,.villa-card .villa-cover.has-cover-featured .cover-price{top:auto!important;right:auto!important;left:14px!important;bottom:14px!important;background:rgba(255,255,255,.96)!important;color:var(--ink)!important;font-family:var(--sans)!important;font-style:normal!important;font-size:14.5px!important;font-weight:700!important;padding:7px 11px!important;border-radius:var(--r-sm)!important;box-shadow:0 2px 10px rgba(0,0,0,.14)!important}
.villa-card .villa-title-row{display:block!important}
.villa-card .villa-title-row h3{font-size:28px!important}
.villa-card .villa-location{display:none!important}
.villa-card .price{text-align:left!important;font-size:16px!important;margin-top:6px!important;color:var(--ink)!important;white-space:normal!important;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}
.villa-card .price small{display:inline!important;font-size:14px!important;text-transform:none!important;letter-spacing:0!important;margin:0!important}
.meta span span{padding:0!important;background:none!important;border:0!important}
.villa-actions .text-link{white-space:nowrap;font-size:14.5px!important}
.villa-actions .button-dark{white-space:nowrap}
body :not(em):not(i):not(cite){font-style:normal!important}
.review-title,.included-service-card h3,.included-service-card h4,.included-service-card strong{font-family:var(--sans)!important;font-weight:600!important;letter-spacing:0!important}
.review-title{font-size:16.5px!important}
.villa-card .price,.villa-card .price *{font-family:var(--sans)!important}
.villa-card .villa-actions{display:grid!important;grid-template-columns:auto auto!important;justify-content:space-between!important;align-items:center!important;gap:12px!important}
.villa-card .villa-actions .button-dark{font-size:14px!important;padding:10px 14px!important;min-height:42px}
@media(max-width:1279px){.villa-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:620px){.villa-grid{grid-template-columns:1fr!important}}
.included-service-icon{display:none!important}
.landing-page .review-badge-eyebrow,.landing-page .review-badge-caption,.landing-page .review-badge-caption span{color:#fff!important}
.villa-hero-media::after{background:linear-gradient(to top,rgba(10,12,18,.78) 0%,rgba(10,12,18,.35) 45%,rgba(10,12,18,0) 70%)!important}
.reservation-page,.reservation-form-section{background:var(--bg)!important;background-image:none!important}
.reservation-form-section::before,.reservation-form-section::after,.reservation-page::before,.reservation-page::after{display:none!important}
.about-hero::after,.about-hero::before{display:none!important}

/* =====================================================================
   V110 — « Riad » : codes des sites d'agence/réservation
   + ornementation marocaine (arcs, zellige, tadelakt, bleu Majorelle)
   ===================================================================== */
:root{
  --serif:'Marcellus','Newsreader',Georgia,serif;
  --bg:#ececed; --surface:#fbfbfc; --sand:#dededf;
  --ink:#16181d; --muted:#6b5e53; --line:#d6d6d7; --line-strong:#bababb;
  --accent:#2a45a8; --accent-hover:#20378a; --accent-soft:#e7ebfa;
  --ocre:#1d2742; --ocre-deep:#1d2742; --zellige:#1e6a5a; --safran:#1d2742;
  --r-sm:8px; --r-md:14px; --r-lg:22px;
  --shadow:0 1px 2px rgba(22,24,29,.06),0 12px 32px rgba(22,24,29,.08);
  --zellige-tile:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23a8472a' stroke-width='1' opacity='.28'%3E%3Crect x='16' y='16' width='24' height='24'/%3E%3Crect x='16' y='16' width='24' height='24' transform='rotate(45 28 28)'/%3E%3Ccircle cx='28' cy='28' r='5'/%3E%3Cpath d='M0 28h6M50 28h6M28 0v6M28 50v6M0 0l8 8M56 0l-8 8M0 56l8-8M56 56l-8-8'/%3E%3C/g%3E%3C/svg%3E");
  --zellige-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23fff' stroke-width='1' opacity='.16'%3E%3Crect x='16' y='16' width='24' height='24'/%3E%3Crect x='16' y='16' width='24' height='24' transform='rotate(45 28 28)'/%3E%3Ccircle cx='28' cy='28' r='5'/%3E%3Cpath d='M0 28h6M50 28h6M28 0v6M28 50v6M0 0l8 8M56 0l-8 8M0 56l8-8M56 56l-8-8'/%3E%3C/g%3E%3C/svg%3E");
  --frieze:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='8' viewBox='0 0 36 8'%3E%3Cpath d='M0 4 6 0l6 4-6 4z' fill='%232a45a8'/%3E%3Cpath d='M12 4l6-4 6 4-6 4z' fill='%23a8472a'/%3E%3Cpath d='M24 4l6-4 6 4-6 4z' fill='%231e6a5a'/%3E%3C/svg%3E");
}

/* ---------- Conteneur : centré et calibré sur tous les écrans ---------- */
.wrap{width:100%!important;max-width:1320px!important;margin-left:auto!important;margin-right:auto!important;padding-left:clamp(20px,4vw,48px)!important;padding-right:clamp(20px,4vw,48px)!important;box-sizing:border-box!important}
.site-header .wrap.nav{max-width:1440px!important;width:100%!important;margin:0 auto!important;padding-left:clamp(16px,3vw,40px)!important;padding-right:clamp(16px,3vw,40px)!important}
@media(min-width:1800px){.wrap{max-width:1480px!important}html{font-size:17px}}

/* ---------- En-tête avec frise zellige ---------- */
.site-header{background:rgba(236,236,237,.94)!important;border-bottom:0!important;position:sticky!important}
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:8px;background:var(--frieze) repeat-x;background-size:36px 8px;opacity:.9;pointer-events:none}
.brand-name{font-family:var(--serif)!important;font-size:24px!important;font-weight:400!important;letter-spacing:.01em!important}
.brand-sub{color:var(--ocre)!important;opacity:1!important;font-weight:600!important}
.nav-links a.active::after{background:var(--ocre)!important}
.lang button.active{background:var(--ocre)!important}

/* ---------- Titres ---------- */
h1,h2,.section-head h2,.villa-hero-copy h1,.detail-copy h2{font-family:var(--serif)!important;letter-spacing:0!important}
.eyebrow{color:var(--ocre)!important}
.ornament{display:block;width:120px;height:8px;background:var(--frieze) repeat-x;background-size:36px 8px;margin:14px 0 0}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:var(--r-sm);border:0;font:600 15.5px/1 var(--sans);cursor:pointer;transition:background .2s ease,transform .2s ease;text-decoration:none}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.btn-ghost:hover{border-color:var(--ink)}

/* =================== ACCUEIL =================== */
.home{background:var(--bg)}
.home-hero{position:relative;padding:clamp(28px,5vw,64px) 0 clamp(48px,6vw,88px);overflow:hidden}
.home-hero::before{content:"";position:absolute;inset:0 0 0 52%;background:var(--sand) var(--zellige-tile);background-size:56px 56px;z-index:0}
.home-hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(32px,5vw,80px);align-items:center}
.home-kicker{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:14.5px;color:var(--ocre)}
.home-kicker::before{content:"";width:22px;height:22px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23a8472a'%3E%3Crect x='6' y='6' width='12' height='12'/%3E%3Crect x='6' y='6' width='12' height='12' transform='rotate(45 12 12)'/%3E%3C/g%3E%3C/svg%3E")}
.home-hero h1{font-size:clamp(44px,5.4vw,84px)!important;line-height:1.02!important;margin:18px 0 20px!important;max-width:14ch;color:var(--ink)}
.home-lead{font-size:18px;line-height:1.6;color:var(--muted);max-width:46ch;margin:0 0 30px}
.search-bar{display:grid;grid-template-columns:1fr 1fr .8fr auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:8px;gap:0;max-width:680px}
.search-field{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:8px 16px;border-left:1px solid var(--line);min-width:0}
.search-field:first-child{border-left:0}
.search-field label{font-size:12.5px;font-weight:700;color:var(--ink)}
.search-field input,.search-field select{border:0;background:transparent;padding:2px 0;font:500 15px var(--sans);color:var(--ink);outline:none;min-width:0;width:100%}
.search-bar .btn{min-height:56px}
.home-proof{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:22px;font-size:14.5px;color:var(--muted)}
.home-proof strong{color:var(--ink)}
.home-proof .stars{color:var(--safran);letter-spacing:2px;margin-right:6px}
.home-proof a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.hero-arch{position:relative;justify-self:center;width:min(100%,500px);aspect-ratio:3/4}
.hero-arch::before{content:"";position:absolute;inset:-16px -16px 16px 16px;border:1.5px solid var(--ocre);border-radius:999px 999px var(--r-sm) var(--r-sm)/ 50% 50% var(--r-sm) var(--r-sm);pointer-events:none}
.hero-arch-img{position:absolute;inset:0;overflow:hidden;border-radius:999px 999px var(--r-sm) var(--r-sm)/50% 50% var(--r-sm) var(--r-sm);box-shadow:0 30px 60px rgba(22,24,29,.22)}
.hero-arch-img img{width:100%;height:100%;object-fit:cover}
.hero-chip{position:absolute;left:-28px;bottom:48px;background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow);padding:14px 18px;display:flex;flex-direction:column;gap:2px;max-width:230px}
.hero-chip strong{font-size:15px}
.hero-chip span{font-size:13.5px;color:var(--muted)}
.hero-chip-top{left:auto;right:-20px;top:70px;bottom:auto}

.home-section{padding:clamp(64px,8vw,112px) 0}
.home-head{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:40px}
.home-head h2{font-size:clamp(34px,4vw,54px)!important;line-height:1.08!important;margin:0!important}
.home-head p{max-width:46ch;color:var(--muted);font-size:16px;line-height:1.65;margin:0}

.arch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.5vw,36px)}
.arch-card{display:flex;flex-direction:column;gap:14px;color:inherit;text-decoration:none}
.arch-card-img{position:relative;aspect-ratio:3/4;overflow:hidden;border-radius:999px 999px var(--r-md) var(--r-md)/50% 50% var(--r-md) var(--r-md);background:var(--sand)}
.arch-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.arch-card:hover .arch-card-img img{transform:scale(1.04)}
.arch-card-price{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 14px;font-weight:700;font-size:14.5px;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.14)}
.arch-card h3{font-size:26px!important;margin:4px 0 0!important;text-align:center}
.arch-card p{margin:0;text-align:center;color:var(--muted);font-size:14.5px}

.steps{background:var(--ocre) var(--zellige-light);background-size:56px 56px;color:#fff}
.steps .home-head h2,.steps .home-head p{color:#fff!important}
.steps .home-head p{opacity:.88}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:step;list-style:none;margin:0;padding:0}
.step{background:rgba(251,251,252,.08);border:1px solid rgba(255,255,255,.28);border-radius:var(--r-md);padding:26px;counter-increment:step}
.step::before{content:counter(step);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--ocre);font:400 22px var(--serif);margin-bottom:18px}
.step h3{font-family:var(--sans)!important;font-weight:700!important;font-size:18px!important;margin:0 0 8px!important;color:#fff}
.step p{margin:0;font-size:15px;line-height:1.6;color:rgba(255,255,255,.88)}
.steps .btn{background:#fff;color:var(--ocre-deep);margin-top:34px}

.services-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.service-item{padding:28px 24px;border-left:1px solid var(--line)}
.service-item:first-child{border-left:0;padding-left:0}
.service-item svg{width:30px;height:30px;color:var(--zellige);margin-bottom:12px}
.service-item h3{font-family:var(--sans)!important;font-size:17px!important;font-weight:700!important;margin:0 0 6px!important}
.service-item p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.55}

/* =================== CATALOGUE =================== */
.filter-bar{display:flex;flex-wrap:wrap;align-items:end;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;margin:0 0 20px}
.filter-bar .search-field{border:0;padding:0;flex:1 1 150px}
.filter-bar .search-field select,.filter-bar .search-field input{border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:11px 12px;background:var(--surface);min-height:46px}
.filter-count{flex:1 1 100%;font-size:14.5px;color:var(--muted);margin:0}
.filter-empty{padding:40px;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--r-md);color:var(--muted)}
.villa-card[hidden]{display:none!important}
.villa-catalogue-section .villa-card{border-radius:var(--r-lg)!important;background:var(--surface)!important;padding:12px 12px 0!important}
.villa-catalogue-section .villa-cover{aspect-ratio:4/5!important;border-radius:999px 999px var(--r-md) var(--r-md)/42% 42% var(--r-md) var(--r-md)!important;overflow:hidden!important}
.villa-catalogue-section .villa-cover .cover-price{left:50%!important;transform:translateX(-50%)!important;border-radius:999px!important}
.villa-catalogue-section .featured-badge{left:50%!important;transform:translateX(-50%);top:auto!important;bottom:58px!important;background:var(--ocre)!important;border-radius:999px!important}
.villa-catalogue-section .card-favorite{top:24px!important;right:24px!important}
.villa-catalogue-section .villa-body{padding:18px 10px 20px!important}
.villa-catalogue-section .villa-card h3{text-align:left}
.trust-band{background:var(--surface)!important;border-color:var(--line)!important}
.trust-item strong{color:var(--ink)}

/* =================== FICHE VILLA =================== */
.villa-hero-media{border-radius:var(--r-lg)!important}
.villa-shell{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(32px,4vw,64px);align-items:start;padding-top:clamp(40px,5vw,72px)!important;padding-bottom:clamp(24px,3vw,40px)!important}
.villa-main>.section{padding:0 0 clamp(48px,5vw,72px)!important;background:none!important}
.villa-main>.section>.wrap{padding:0!important;max-width:none!important}
.villa-main .detail-layout{grid-template-columns:1fr!important;gap:24px!important}
.villa-main .included-services-grid{grid-template-columns:repeat(2,1fr)!important}
.villa-main .reviews-grid{grid-template-columns:1fr!important}
.villa-main .section-head{display:block!important}
.villa-main .section-head p{margin-top:10px!important}
.booking-widget{position:sticky;top:96px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.booking-widget-top{background:var(--ocre) var(--zellige-light);background-size:56px 56px;color:#fff;padding:20px 22px}
.booking-widget-top .bw-price{font:400 34px/1 var(--serif)}
.booking-widget-top .bw-price small{display:block;font:500 14px/1.4 var(--sans);opacity:.9;margin-top:6px}
.booking-widget-body{padding:20px 22px 22px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.booking-widget-body .search-field{border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:8px 12px}
.booking-widget-body .full{grid-column:1/-1}
.booking-widget-body .btn{width:100%}
.bw-note{grid-column:1/-1;margin:2px 0 0;font-size:13.5px;color:var(--muted);text-align:center;line-height:1.45}
.bw-list{grid-column:1/-1;list-style:none;margin:6px 0 0;padding:14px 0 0;border-top:1px solid var(--line);display:grid;gap:8px;font-size:14px}
.bw-list li{display:flex;gap:10px;align-items:center}
.bw-list li::before{content:"";width:14px;height:14px;flex:none;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%231e6a5a'%3E%3Crect x='6' y='6' width='12' height='12'/%3E%3Crect x='6' y='6' width='12' height='12' transform='rotate(45 12 12)'/%3E%3C/g%3E%3C/svg%3E")}

/* =================== PIED DE PAGE =================== */
.footer{background:#16181d!important;position:relative;padding-top:64px!important}
.footer::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:var(--frieze) repeat-x;background-size:36px 8px}
.section.soft{background:var(--sand) var(--zellige-tile)!important;background-size:56px 56px!important}

/* =================== RESPONSIVE =================== */
@media(max-width:1100px){
  .villa-shell{grid-template-columns:1fr}
  .booking-widget{position:relative;top:0;max-width:560px}
  .booking-widget-wrap{order:-1}
}
@media(max-width:980px){
  .home-hero::before{inset:auto 0 0 0;height:46%}
  .home-hero .wrap{grid-template-columns:1fr}
  .hero-arch{width:min(100%,420px)}
  .arch-grid{grid-template-columns:repeat(2,1fr)}
  .arch-grid .arch-card:nth-child(3){display:none}
  .steps-grid{grid-template-columns:1fr}
  .services-strip{grid-template-columns:1fr 1fr}
  .service-item:nth-child(3){border-left:0;padding-left:0}
  .service-item:nth-child(n+3){border-top:1px solid var(--line)}
  .home-head{display:block}.home-head p{margin-top:12px}
}
@media(max-width:620px){
  .home-hero h1{font-size:42px!important}
  .home-lead{font-size:16.5px}
  .search-bar{grid-template-columns:1fr 1fr;padding:6px}
  .search-field{padding:10px 12px}
  .search-field:nth-child(3){border-left:0;grid-column:1/-1;border-top:1px solid var(--line)}
  .search-bar .btn{grid-column:1/-1;margin-top:6px}
  .hero-chip{left:-6px;bottom:24px}
  .hero-chip-top{right:-6px;top:40px}
  .arch-grid{grid-template-columns:1fr}
  .arch-grid .arch-card:nth-child(3){display:flex}
  .services-strip{grid-template-columns:1fr}
  .service-item{border-left:0!important;padding-left:0!important;border-top:1px solid var(--line)}
  .service-item:first-child{border-top:0}
  .villa-main .included-services-grid{grid-template-columns:1fr!important}
  .booking-widget-body{grid-template-columns:1fr 1fr}
  .site-header::after{height:6px;bottom:-6px;background-size:27px 6px}
}
/* V110 — arcs en plein cintre exacts (rayon vertical = demi-largeur) */
.hero-arch-img{border-radius:50% 50% var(--r-sm) var(--r-sm)/37.5% 37.5% var(--r-sm) var(--r-sm)!important}
.hero-arch::before{border-radius:50% 50% var(--r-sm) var(--r-sm)/37.5% 37.5% var(--r-sm) var(--r-sm)!important}
.arch-card-img{border-radius:50% 50% var(--r-md) var(--r-md)/37.5% 37.5% var(--r-md) var(--r-md)!important}
.villa-catalogue-section .villa-cover{border-radius:50% 50% var(--r-md) var(--r-md)/40% 40% var(--r-md) var(--r-md)!important}
.villa-catalogue-section .card-favorite{top:auto!important;bottom:auto!important;top:calc(40% + 10px)!important;right:22px!important}
.home-hero h1{font-size:clamp(42px,4.6vw,72px)!important;max-width:16ch}
.villa-catalogue-section{padding-top:clamp(36px,4vw,56px)!important}
.villa-catalogue-section .villa-card .villa-cover .cover-price,.villa-catalogue-section .villa-card .villa-cover.has-cover-featured .cover-price{left:50%!important;right:auto!important;transform:translateX(-50%)!important;bottom:14px!important;top:auto!important}
.villa-catalogue-section .card-favorite{top:20px!important;right:20px!important}
@media(max-width:620px){
  .hero-chip-top{display:none!important}
  .hero-chip{left:12px!important;right:auto;bottom:14px!important;max-width:70%;padding:10px 14px}
  .hero-arch{width:100%;max-width:360px}
  .hero-arch::before{inset:-10px -10px 10px 10px}
  .home-hero::before{height:40%}
}
.reservation-layout-v94{display:block!important}
.reservation-form-v94{max-width:780px!important;margin:0 auto!important}
.reservation-page .section{background:var(--bg)!important}
.partner-hero,.favorites-hero,.about-hero{background:var(--sand) var(--zellige-tile)!important;background-size:56px 56px!important}
.partner-hero .wrap,.favorites-hero .wrap,.about-hero .wrap{position:relative}

/* =====================================================================
   V111 — sans frise, sans arcs sur les photos, recherche par dates seules
   ===================================================================== */
.site-header::after,.footer::before,.ornament{display:none!important}
.site-header{border-bottom:1px solid var(--line)!important}
.footer{padding-top:56px!important}

/* Photos : cadres rectangulaires aux angles doux, sans effet d'entrée */
.hero-arch{aspect-ratio:4/5!important}
.hero-arch::before{display:none!important}
.hero-arch-img,.arch-card-img,.villa-catalogue-section .villa-cover{border-radius:var(--r-lg)!important}
.arch-card-img{aspect-ratio:4/5!important}
.villa-catalogue-section .villa-cover{aspect-ratio:4/3!important;border-radius:var(--r-md)!important}
.villa-catalogue-section .card-favorite{top:22px!important;right:22px!important}

/* Recherche : dates uniquement */
.search-bar{grid-template-columns:1fr 1fr auto!important;max-width:620px}
.filter-bar{align-items:center}
.filter-bar .search-field{flex:0 1 220px}
.filter-count{flex:1 1 280px!important;margin:18px 0 0!important;font-size:15px!important;color:var(--ink)!important}
@media(max-width:620px){
  .search-bar{grid-template-columns:1fr 1fr!important}
  .search-bar .btn{grid-column:1/-1}
  .filter-bar .search-field{flex:1 1 40%}
  .filter-count{margin-top:4px!important}
}
.villa-catalogue-section .featured-badge{left:14px!important;top:14px!important;bottom:auto!important;transform:none!important}
.villa-catalogue-section .villa-card .villa-cover .cover-price{left:14px!important;transform:none!important}

/* =====================================================================
   V112 — « Nacre » : blanc nacré, bleu nuit, lignes fines. Sobre et luxueux.
   Plus de beige, plus de motifs ni de losanges.
   ===================================================================== */
:root{
  --bg:#fafafa; --surface:#ffffff; --sand:#f2f2f3;
  --ink:#16181d; --muted:#62666f; --line:#e7e7ea; --line-strong:#cfd0d4;
  --accent:#1d2742; --accent-hover:#111830; --accent-soft:#eef0f5;
  --ocre:#1d2742; --ocre-deep:#111830; --zellige:#1d2742; --safran:#b89a5e;
  --zellige-tile:none; --zellige-light:none; --frieze:none;
  --shadow:0 1px 2px rgba(22,24,29,.04),0 18px 40px rgba(22,24,29,.07);
}
body{background:var(--bg)!important;background-image:linear-gradient(180deg,#ffffff 0%,#fafafa 40%,#f6f6f7 100%)!important;background-attachment:fixed!important}
.site-header{background:rgba(255,255,255,.88)!important;border-bottom:1px solid var(--line)!important;box-shadow:none!important}
.brand-name{letter-spacing:.04em!important}
.brand-sub{color:var(--muted)!important;font-weight:500!important;letter-spacing:.04em!important}
.eyebrow,.home-kicker{color:var(--muted)!important;letter-spacing:.06em!important;font-weight:600!important}
.home-kicker::before,.bw-list li::before{display:none!important}
.nav-links a.active::after{background:var(--ink)!important;height:1px!important}
.lang button.active{background:var(--ink)!important;color:#fff!important}

/* Fonds unis, sans motif */
.home-hero::before{background:linear-gradient(160deg,#f4f4f6 0%,#ececef 100%)!important}
.section.soft,.partner-hero,.favorites-hero,.about-hero{background:var(--sand)!important;background-image:none!important}
.villa-catalogue-section,.categorized-gallery,.reviews-section,.included-services-section,.reservation-page .section{background:transparent!important}

/* Cartes : blanc pur, filet fin, ombre douce */
.villa-card,.trust-band,.filter-bar,.search-bar,.booking-widget,.review-card,.included-service-card,.availability,.reservation-form-v94,.partner-form,.company-card,.info-grid,.hero-chip{background:#fff!important;border-color:var(--line)!important}
.villa-catalogue-section .villa-card{box-shadow:none!important}
.villa-catalogue-section .villa-card:hover{box-shadow:var(--shadow)!important}
.featured-badge{background:var(--ink)!important}
.meta span{background:var(--sand)!important}

/* Bloc des étapes et module de réservation : bleu nuit, sobre */
.steps{background:var(--accent)!important;background-image:none!important}
.step{background:rgba(255,255,255,.04)!important;border-color:rgba(255,255,255,.16)!important}
.step::before{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.5);font-size:20px!important}
.steps .btn{color:var(--accent)!important}
.booking-widget-top{background:var(--accent)!important;background-image:none!important}
.bw-list{padding-left:0}
.bw-list li{padding-left:18px;position:relative}
.bw-list li::after{content:"";position:absolute;left:2px;top:50%;width:8px;height:4px;border-left:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:translateY(-70%) rotate(-45deg)}
.service-item svg{color:var(--ink)!important}
.home-proof .stars,.review-stars-fill,.review-stars{color:var(--safran)!important}
.reservation-section-title span{background:var(--ink)!important}

/* Pied de page encre */
.footer{background:#16181d!important}
.villa-catalogue-section .villa-card .villa-cover.has-cover-featured .cover-price,.villa-catalogue-section .villa-card .villa-cover .cover-price{left:14px!important;right:auto!important;transform:none!important}
.review-badge-eyebrow,.review-badge-caption{color:var(--ink)!important}
.hero-chip strong{color:var(--ink)!important}
.trust-item a,.home-proof a,.text-link{color:var(--accent)!important}
/* V112.1 — bloc note moyenne des avis */
.reviews-summary{display:flex!important;flex-direction:row!important;align-items:baseline!important;justify-content:flex-start!important;gap:16px!important;margin:8px 0 24px!important;padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md)}
.reviews-score{font-family:var(--serif)!important;font-size:44px!important;line-height:1!important;color:var(--ink)!important;letter-spacing:0!important;display:flex;align-items:baseline;gap:4px}
.reviews-score small{font-family:var(--sans)!important;font-size:16px!important;font-weight:600!important;color:var(--muted)!important;letter-spacing:0!important;margin:0!important}
.reviews-count{font-size:15px;color:var(--muted);letter-spacing:0}
@media(max-width:620px){.reviews-summary{flex-direction:row!important;align-items:baseline!important;flex-wrap:wrap}.reviews-score{font-size:38px!important}}

/* V113 — prix total du séjour */
.stay-quote{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 12px;margin:14px 0 4px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-sm,10px);background:#f6f7fa;color:var(--ink)}
.stay-quote[hidden]{display:none!important}
.stay-quote.full{grid-column:1/-1;margin:2px 0}
.stay-quote-label{font:600 12px/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.stay-quote-total{grid-row:span 2;align-self:center;font:600 24px/1 var(--sans);color:#1d2742;white-space:nowrap}
.stay-quote-detail{font:500 13.5px/1.4 var(--sans);color:var(--muted)}
.stay-quote-card{margin:6px 0 14px}
@media (max-width:480px){.stay-quote-total{font-size:21px}}
