@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Playfair+Display:wght@500;600&display=swap');
:root{--ink:#17201d;--cream:#f4f0e8;--paper:#fbfaf7;--sage:#788578;--line:#d9d5cc;--white:#fff;--max:1320px}*{box-sizing:border-box}html{scroll-behavior:smooth;max-width:100%;overflow-x:clip}body{margin:0;max-width:100%;overflow-x:clip;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.65}img{display:block;width:100%;height:auto}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.04;margin:0 0 20px}h1{font-size:clamp(3.3rem,7vw,7.2rem);letter-spacing:-.04em}h2{font-size:clamp(2.2rem,4.2vw,4.7rem);letter-spacing:-.03em}h3{font-size:1.5rem}p{margin:0 0 18px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:20px;top:20px;background:white;padding:10px;z-index:999}.site-header{height:92px;display:flex;align-items:center;padding:0 4vw;justify-content:space-between;position:absolute;top:0;left:0;right:0;z-index:20;color:white;background:rgba(10,18,15,.30);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border-bottom:1px solid rgba(255,255,255,.25)}.brand{display:flex;align-items:center;gap:12px;font-family:'Playfair Display',Georgia,serif;font-size:1.15rem}.brand img{width:46px;height:46px;object-fit:contain}.brand span{display:flex;flex-direction:column}.brand small{font-family:'DM Sans';font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;margin-top:2px;color:goldenrod}.menu{display:flex;align-items:center;gap:25px;font-size:.88rem}.menu a{opacity:.88}.menu a:hover,.menu a[aria-current=page]{opacity:1}.nav-book{border:1px solid rgba(255,255,255,.7);padding:10px 16px}.menu-toggle{display:none}.hero-full{height:100svh;min-height:720px;position:relative;color:white}.hero-full>img{height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,18,15,.68),rgba(10,18,15,.12) 65%),linear-gradient(0deg,rgba(10,18,15,.4),transparent 45%)}.hero-copy{position:absolute;left:7vw;bottom:13vh;max-width:850px}.hero-copy h1{max-width:800px}.hero-copy>p:not(.eyebrow){font-size:1.18rem;max-width:650px}.eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:600;margin-bottom:18px}.actions{display:flex;gap:26px;align-items:center;margin-top:34px}.btn{display:inline-flex;padding:14px 22px;border:1px solid transparent;font:inherit;cursor:pointer}.btn.light{background:white;color:var(--ink)}.btn.outline{border-color:currentColor}.darkbtn{background:var(--ink);color:white}.text-link{border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:3px}.text-link.dark{border-color:var(--ink)}.scroll-note{position:absolute;right:4vw;bottom:5vh;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}.section{max-width:var(--max);margin:auto;padding:110px 5vw}.intro{padding-top:140px;padding-bottom:140px}.split-title{display:grid;grid-template-columns:1.15fr .85fr;gap:9vw;align-items:start}.split-title>p,.prose{font-size:1.08rem;max-width:610px}.image-story{max-width:1500px;margin:auto;display:grid;grid-template-columns:1.55fr .75fr;align-items:center;padding:0 4vw 120px}.image-story.reverse{grid-template-columns:1.55fr .75fr;margin-top:60px}.big-image img{height:760px;object-fit:cover}.story-card{background:var(--cream);padding:70px 55px;margin-left:-90px;position:relative}.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:55px;padding-bottom:55px}.facts div{padding:0 30px;border-right:1px solid var(--line)}.facts div:last-child{border:0}.facts strong{font-family:'Playfair Display';font-size:2.4rem;font-weight:500;display:block}.facts span{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em}.mosaic{display:grid;grid-template-columns:.85fr 1.2fr .8fr;gap:20px;align-items:end}.mosaic-copy{padding-right:5vw;align-self:center}.mosaic img,.mosaic img.tall{height:560px;object-fit:cover}.art-band{background:var(--ink);color:white;display:grid;grid-template-columns:1.2fr .8fr;align-items:center}.art-band img{height:720px;object-fit:cover}.art-band>div{padding:8vw}.cta{text-align:center;max-width:920px}.cta p{max-width:650px;margin:0 auto 28px}.page-hero{height:100svh;min-height:700px;position:relative;color:white}.page-hero img{height:100%;object-fit:cover}.page-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,14,11,.68),transparent 65%)}.page-hero>div{position:absolute;z-index:2;left:6vw;bottom:8vh;max-width:950px}.page-hero h1{font-size:clamp(3rem,6vw,6.5rem)}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.photo-grid img{height:520px;object-fit:cover}.photo-grid .wide{grid-column:1/-1;height:700px}.art-list article{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center;margin-bottom:120px}.art-list article:nth-child(even) img{order:2}.art-list img{height:650px;object-fit:cover}.simple-head{padding-top:160px;padding-bottom:55px}.simple-head h1{font-size:clamp(3.5rem,6vw,6rem);max-width:950px}.simple-head>p:last-child{font-size:1.1rem;max-width:700px}.gallery-modern{padding-top:20px;display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.gallery-modern figure{margin:0;grid-column:span 4}.gallery-modern figure:nth-child(7n+1),.gallery-modern figure:nth-child(7n+5){grid-column:span 8}.gallery-modern img{height:440px;object-fit:cover}.gallery-modern figure:nth-child(7n+1) img,.gallery-modern figure:nth-child(7n+5) img{height:650px}.image-strip{display:grid;grid-template-columns:repeat(3,1fr)}.image-strip img{height:520px;object-fit:cover}.booking-layout{padding-top:20px;display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:start}.calendar-card,.booking-form{border:1px solid var(--line);background:white;padding:40px}.calendar-title{display:flex;justify-content:space-between;gap:20px}.calendar-status{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--sage)}.calendar-placeholder{min-height:500px;background:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px}.calendar-placeholder span{width:70px;height:70px;border:1px solid var(--ink);display:grid;place-items:center;border-radius:50%;font-size:.7rem;text-transform:uppercase}.calendar-placeholder h3{max-width:430px;margin-top:24px}.calendar-placeholder p{max-width:500px}.booking-form label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;margin:0 0 18px}.booking-form input,.booking-form select,.booking-form textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:12px 0;font:inherit;text-transform:none;letter-spacing:normal;border-radius:0}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-note{font-size:.75rem;margin-top:18px}.contact-image img{height:700px;object-fit:cover}footer{background:#111916;color:#e8e6df;padding:75px 5vw}.footer-inner{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1.5fr .7fr .7fr;gap:50px}.footer-brand{margin-bottom:20px}.footer-nav,.footer-legal{display:flex;flex-direction:column;gap:10px;font-size:.85rem}.footer-legal{color:#aaa}.site-header:not(.home-header){}
/* Marrakech days editorial collage */
.mosaic{display:grid;grid-template-columns:.75fr 1.65fr;gap:70px;align-items:center;overflow:hidden}
.mosaic-copy{padding-right:2vw;align-self:center}
.mosaic-art{position:relative;width:100%;height:650px;min-width:0}
.mosaic-art .mosaic-photo{position:absolute;display:block;object-fit:cover;box-shadow:0 18px 40px rgba(20,32,27,.12)}
.mosaic-art .photo-main{width:47%;height:570px;left:0;top:35px;z-index:2}
.mosaic-art .photo-golf{width:43%;height:500px;right:0;top:75px;z-index:1}
.mosaic-art .photo-three{width:30%;height:225px;right:-10%;top:10px;z-index:4;transform:rotate(3deg);border:7px solid #fff}
.mosaic-art .photo-four{width:32%;height:225px;right:-6%;bottom:5px;z-index:5;transform:rotate(-2deg);border:7px solid #fff}

@media(max-width:900px){
.mosaic-art{min-height:680px;height:680px;width:100%;overflow:hidden}
.mosaic-art .photo-main{width:65%;height:430px;left:0;top:20px}
.mosaic-art .photo-golf{width:48%;height:350px;right:0;top:90px}
.mosaic-art .photo-three{width:48%;height:220px;right:3%;top:20px}
.mosaic-art .photo-four{width:55%;height:240px;right:5%;bottom:10px}

.site-header{
    height:76px;
    padding:0 6vw;
    background:rgba(20,32,27,.96);
    z-index:9999;
}

.menu-toggle{
    display:block;
    position:relative;
    margin-left:auto;
    background:none;
    border:0;
    color:white;
    font-size:1.8rem;
    z-index:10001;
    cursor:pointer;
}

.brand{
    position:relative;
    z-index:10001;
}

.menu{
    position:fixed;
    inset:0;
    width:100%;
    height:100dvh;
    box-sizing:border-box;
    background:var(--ink);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:22px;
    padding:100px 30px 50px;
    transform:translateX(100%);
    transition:transform .3s ease;
    z-index:10000;
    overflow-y:auto;
}

.menu.open{
    transform:translateX(0);
    visibility:visible;
    pointer-events:auto;
    transition:transform .3s ease;
}

body:has(.menu.open){
    overflow:hidden;
}

.menu a{
    color:white;
    font-size:1.5rem;
    line-height:1.2;
    text-decoration:none;
}

.menu .nav-book{
    margin-top:12px;
    padding:15px 24px;
    border:1px solid rgba(255,255,255,.75);
    font-size:1.1rem;
}

.hero-full{
    min-height:650px;
}

.hero-copy{
    left:6vw;
    right:6vw;
}

.hero-copy h1{
    font-size:clamp(3rem,14vw,5rem);
}

.split-title,
.image-story,
.mosaic,
.art-band,
.art-list article,
.booking-layout,
.footer-inner{
    grid-template-columns:1fr;
}

.section{
    padding:75px 6vw;
}

.intro{
    padding-top:90px;
    padding-bottom:90px;
}

.big-image img{
    height:520px;
}

.story-card{
    margin:-70px 5vw 0;
    padding:45px 30px;
}

.facts{
    grid-template-columns:1fr 1fr;
}

.facts div{
    padding:25px 15px;
    border-bottom:1px solid var(--line);
}

.mosaic{grid-template-columns:1fr;gap:35px}
.mosaic-copy{grid-column:auto;padding-right:0}
.mosaic>img,.mosaic>img.tall{height:420px}

.art-band img{
    height:520px;
}

.art-band>div{
    padding:70px 6vw;
}

.page-hero{
    height:75vh;
}

.photo-grid img,
.photo-grid .wide{
    height:420px;
}

.art-list article img,
.art-list article:nth-child(even) img{
    order:0;
    height:500px;
}

.gallery-modern figure,
.gallery-modern figure:nth-child(7n+1),
.gallery-modern figure:nth-child(7n+5){
    grid-column:span 6;
}

.gallery-modern img,
.gallery-modern figure:nth-child(7n+1) img,
.gallery-modern figure:nth-child(7n+5) img{
    height:390px;
}

.image-strip{
    grid-template-columns:1fr;
}

.image-strip img{
    height:350px;
}

.calendar-placeholder{
    min-height:380px;
    padding:30px;
}

.contact-image img{
    height:500px;
}

}
@media(max-width:560px){.brand img{width:38px;height:38px}.brand{font-size:1rem}.hero-copy>p:not(.eyebrow){font-size:1rem}.actions{align-items:flex-start;flex-direction:column}.facts{grid-template-columns:1fr 1fr}.facts strong{font-size:1.8rem}.mosaic{grid-template-columns:1fr}.mosaic>img,.mosaic>img.tall{height:430px}.gallery-modern figure,.gallery-modern figure:nth-child(7n+1),.gallery-modern figure:nth-child(7n+5){grid-column:1/-1}.gallery-modern img,.gallery-modern figure:nth-child(7n+1) img,.gallery-modern figure:nth-child(7n+5) img{height:430px}.form-two{grid-template-columns:1fr}.calendar-card,.booking-form{padding:25px}.calendar-title{display:block}.footer-inner{gap:35px}}

.map-section{padding-top:0}.map-frame{width:100%;height:560px;border:0;display:block}.map-copy{max-width:var(--max);margin:auto;padding:0 5vw 35px}.map-copy p{max-width:720px}

/* Final mobile horizontal-scroll protection */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
}

body {
    position: relative;
}

* {
    box-sizing: border-box;
}

img,
video,
iframe {
    max-width: 100%;
}
/* Villa des Arts — seasonal rates */
.rates-section{padding-top:35px;padding-bottom:50px}
.rates-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:5vw;align-items:end;margin-bottom:35px}
.rates-intro h2{margin-bottom:0}
.rates-intro>p{max-width:560px;font-size:1.04rem;margin-bottom:5px}
.rates-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.75fr);gap:25px;align-items:start}
.rates-card,.rates-detail-card{border:1px solid var(--line);background:#fff;padding:32px}
.rates-card-head{display:flex;align-items:start;justify-content:space-between;gap:18px;padding-bottom:20px}
.rates-card-head h3,.rates-details h3{font-size:1.65rem;line-height:1.2;margin-bottom:0}
.rates-card-head .eyebrow,.rates-details .eyebrow{margin-bottom:12px;color:var(--sage)}
.rates-from{white-space:nowrap;font-size:.78rem;color:#505b52;padding-top:4px}
.rates-from strong{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:1.7rem;color:var(--ink)}
.rates-table-scroll{width:100%;overflow-x:auto}
.rates-table{width:100%;border-collapse:collapse;text-align:left;font-size:.9rem}
.rates-table thead{background:var(--cream)}
.rates-table th,.rates-table td{padding:12px 14px;border-bottom:1px solid var(--line)}
.rates-table thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;font-weight:600}
.rates-table tbody th{font-weight:400}
.rates-table td{text-align:right;white-space:nowrap;font-weight:600}
.rates-table tbody tr:nth-child(even){background:#fbfaf7}
.rates-table tbody tr:hover{background:#f4f0e8}
.rate-unit{font-size:.75rem;color:#6c736b;font-weight:400}
.rates-footnote{margin:17px 0 0;font-size:.77rem;color:#626b63;line-height:1.65}
.rates-details{display:grid;gap:20px}
.rates-detail-card{background:var(--cream)}
.rates-included{list-style:none;padding:0;margin:25px 0 0}
.rates-included li{padding:11px 0 11px 24px;border-bottom:1px solid var(--line);position:relative;font-size:.91rem}
.rates-included li:before{content:'✓';position:absolute;left:0;color:#55705b;font-weight:600}
.rates-included li:last-child{border-bottom:0}
.rates-extra{background:#fff}
.rates-extra p:not(.eyebrow){font-size:.91rem;line-height:1.75}
.rates-enquire-link{display:inline-flex;gap:15px;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:5px;font-size:.9rem;font-weight:600}
.booking-minimum-note{font-size:.85rem;color:#59675b;margin-top:-4px;margin-bottom:20px}
#booking-enquiry{scroll-margin-top:100px}
@media(max-width:950px){.rates-layout{grid-template-columns:1fr}.rates-details{grid-template-columns:1fr 1fr}.rates-intro{grid-template-columns:1fr;gap:15px}}
@media(max-width:650px){.rates-section{padding-top:20px;padding-bottom:30px}.rates-details{grid-template-columns:1fr}.rates-card,.rates-detail-card{padding:22px}.rates-card-head{display:block}.rates-from{display:block;margin-top:12px}.rates-table{font-size:.82rem}.rates-table th,.rates-table td{padding:11px 8px}.rate-unit{font-size:.7rem}}

/* Interior pages only: solid dark-green navigation, without changing Home, The Villa or Location. */
body.interior-page .site-header{background:#17251f;border-bottom:1px solid rgba(221,201,165,.23);backdrop-filter:none;-webkit-backdrop-filter:none}
body.interior-page .site-header .nav-book{border-color:rgba(229,215,187,.65)}
body.interior-page .site-header .nav-book:hover{background:rgba(255,255,255,.10)}
@media(max-width:900px){body.interior-page .site-header{background:#17251f}}
