:root{--ivory:#F5F0E7;--warm-white:#FBF8F2;--ink:#181512;--terracotta:#B84E2D;--cedar:#55372A;--zellige-green:#173D32;--zellige-blue:#1E5363;--muted-gold:#B89354;--serif:"Instrument Serif",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--ivory);font:15px/1.6 var(--sans);overflow-x:hidden}body.menu-open{overflow:hidden}a{color:inherit}img{display:block;max-width:100%}::selection{color:#fff;background:var(--terracotta)}:focus-visible{outline:2px solid var(--terracotta);outline-offset:4px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:10px;left:10px;padding:10px 15px;background:#fff;transform:translateY(-150%)}.skip-link:focus{transform:none}
.site-header{position:fixed;z-index:50;top:0;left:0;display:grid;grid-template-columns:265px 1fr auto;align-items:center;width:100%;height:88px;padding:0 clamp(34px,5vw,80px);color:#fff;transition:height .45s var(--ease),color .35s,background .35s,box-shadow .35s}.site-header.is-scrolled{height:68px;color:var(--ink);background:rgba(251,248,242,.92);box-shadow:0 8px 28px rgba(31,23,17,.08);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none}.brand-mark{width:38px;height:48px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--muted-gold)}.brand b{display:block;font:400 21px/1 var(--serif)}.brand small{display:block;margin-top:7px;font-size:7px;font-weight:600;letter-spacing:2.8px;text-transform:uppercase}.desktop-nav{display:flex;justify-content:center;gap:clamp(18px,2vw,34px)}.desktop-nav a{position:relative;font-size:11px;font-weight:500;text-decoration:none}.desktop-nav a::after{position:absolute;right:50%;bottom:-7px;left:50%;height:1px;background:var(--terracotta);content:"";transition:right .3s var(--ease),left .3s var(--ease)}.desktop-nav a:hover::after{right:0;left:0}.header-actions{display:flex;align-items:center;gap:17px}.search-button,.menu-toggle{padding:0;color:inherit;background:none;border:0}.search-button svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.7}.language{font-size:11px;font-weight:600}.ticket-button,.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:48px;padding:0 22px;text-decoration:none}.ticket-button{color:var(--ink);background:var(--warm-white);border-radius:3px;font-size:12px}.ticket-button svg,.button svg,.text-link svg,.newsletter svg{width:18px;fill:none;stroke:currentColor;stroke-width:1.4;transition:transform .35s var(--ease)}.ticket-button:hover svg,.button:hover svg,.text-link:hover svg{transform:translateX(5px)}.ticket-button:hover{transform:translateY(-2px)}.ticket-button:active{transform:scale(.98)}.menu-toggle{display:none}.mobile-menu{display:none}
.hero{position:relative;height:100svh;min-height:680px;overflow:hidden;color:#fff;background:#15140f}.hero picture,.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-image{object-fit:cover;object-position:center}.hero-shade{background:linear-gradient(90deg,rgba(15,10,7,.74) 0%,rgba(15,10,7,.48) 27%,rgba(15,10,7,.12) 49%,transparent 70%),linear-gradient(0deg,rgba(10,8,5,.28),transparent 42%)}.hero-copy{position:absolute;z-index:2;left:clamp(52px,7vw,112px);top:50%;width:min(540px,42vw);transform:translateY(-40%)}.eyebrow,.section-kicker{margin:0 0 13px;color:#efd9a9;font-size:11px;font-weight:600;letter-spacing:4px;text-transform:uppercase}.hero h1{margin:0;font:400 clamp(72px,7.2vw,116px)/.78 var(--serif);letter-spacing:-3px}.hero h1 span{display:block;overflow:hidden;padding-bottom:.13em}.hero-deck{margin:25px 0 30px;font-size:18px;line-height:1.55}.hero-deck em{font:italic 22px var(--serif)}.hero-actions{display:flex;gap:15px}.button{font-size:13px;font-weight:600}.button-primary{background:var(--terracotta);border:1px solid var(--terracotta);border-radius:2px}.button-primary:hover{background:#9e3f24;transform:translateY(-2px)}.button-primary:active{transform:scale(.98)}.button-secondary{background:rgba(18,15,11,.18);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(5px)}.button-secondary:hover{background:rgba(255,255,255,.1);border-color:var(--terracotta);transform:translateY(-2px)}.scroll-cue{position:absolute;z-index:2;bottom:36px;left:clamp(52px,7vw,112px);display:flex;align-items:center;gap:14px;text-decoration:none}.scroll-line{position:relative;width:1px;height:66px;background:rgba(255,255,255,.55)}.scroll-line i{position:absolute;top:18px;left:-5px;width:11px;height:11px;background:var(--ink);border:1px solid #fff;border-radius:50%;animation:scroll-point 2.4s ease-in-out infinite}.scroll-cue small{font-size:10px;line-height:1.4}.hero-note{position:absolute;z-index:2;right:6%;bottom:34px;margin:0;font:italic 25px/1.1 var(--serif);text-align:right;transform:rotate(-8deg)}
.introduction{position:relative;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(55px,9vw,145px);padding:130px clamp(45px,7vw,112px) 120px;background:var(--warm-white);overflow:hidden}.intro-copy{align-self:center;max-width:550px}.section-kicker{display:flex;align-items:center;gap:14px;color:var(--terracotta)}.section-kicker i{width:16px;height:16px;border:1px solid currentColor;transform:rotate(45deg)}.intro-copy h2{margin:0;font:400 clamp(54px,5vw,76px)/.96 var(--serif);letter-spacing:-2px}.intro-copy>p:not(.section-kicker){max-width:500px;margin:30px 0 25px;color:#5e5952;font-size:15px;line-height:1.8}.text-link{display:inline-flex;align-items:center;gap:16px;padding-bottom:4px;color:var(--terracotta);border-bottom:1px solid #c98b73;font-weight:600;text-decoration:none}.editorial-composition{position:relative;min-height:520px}.zellige-detail{position:absolute;top:0;left:0;width:39%;height:82%;object-fit:cover}.arch-image{position:absolute;top:4%;right:0;width:67%;height:58%;overflow:hidden;border-radius:48% 48% 0 0}.arch-image img{width:100%;height:100%;object-fit:cover}.composition-index{position:absolute;bottom:6%;left:47%;margin:0;color:var(--terracotta);font-size:9px;line-height:1.75;letter-spacing:2px;text-transform:uppercase}.editorial-composition blockquote{position:absolute;right:0;bottom:9%;margin:0;font:italic 22px/1.25 var(--serif)}.intro-pattern{position:absolute;right:43%;bottom:55px;width:190px;color:var(--terracotta);fill:none;stroke:currentColor;stroke-width:.65;opacity:.06}
.portals{display:grid;grid-template-columns:.95fr 1.1fr .95fr;align-items:start;gap:18px;padding:76px clamp(45px,5.7vw,92px) 105px;border-top:1px solid rgba(85,55,42,.12);background:var(--warm-white)}.portal{position:relative;height:440px;overflow:hidden;color:#fff;text-decoration:none}.portal-explore{height:440px;margin-top:0}.portal img,.portal-shade{position:absolute;inset:0;width:100%;height:100%}.portal img{object-fit:cover;transition:transform .75s var(--ease)}.portal-plan img{object-position:center 43%}.portal-explore img{object-position:center}.portal-gardens img{object-position:center}.portal-shade{background:linear-gradient(0deg,rgba(13,12,9,.85),rgba(13,12,9,.05) 62%);transition:background .6s}.portal>div{position:absolute;z-index:2;right:78px;bottom:25px;left:22px;transition:transform .55s var(--ease)}.portal small{font-size:10px}.portal h3{margin:10px 0 1px;font:400 29px var(--serif)}.portal p{margin:0;color:#e6e2db;font-size:12px;line-height:1.4}.portal-arrow{position:absolute;z-index:2;right:21px;bottom:24px;display:grid;width:43px;height:43px;place-items:center;border:1px solid rgba(255,255,255,.8);border-radius:50%}.portal-arrow svg{width:19px;fill:none;stroke:#fff;stroke-width:1.3;transition:transform .4s var(--ease)}.portal:hover img{transform:scale(1.04)}.portal:hover .portal-shade{background:linear-gradient(0deg,rgba(13,12,9,.92),rgba(13,12,9,.08) 70%)}.portal:hover>div{transform:translateY(-3px)}.portal:hover .portal-arrow svg{transform:translateX(4px)}
.closing-visual{display:grid;grid-template-columns:1.15fr 1.45fr;min-height:280px;overflow:hidden;background:var(--cedar)}.closing-visual>img{width:100%;height:100%;object-fit:cover}.closing-plaster{position:relative;display:grid;place-content:center;padding:60px;background:#e8d5bc;overflow:hidden}.closing-plaster::after{position:absolute;inset:0;background:linear-gradient(110deg,transparent 28%,rgba(85,55,42,.12));content:""}.closing-plaster blockquote{position:relative;z-index:1;margin:0;font:italic 28px/1.25 var(--serif)}.closing-plaster small{position:relative;z-index:1;margin-top:18px;color:var(--terracotta);font-size:9px;letter-spacing:2px;text-transform:uppercase}.closing-plaster .zellige-pattern{position:absolute;top:25px;left:30px;width:100px;opacity:.08}
.site-footer{display:grid;grid-template-columns:1.45fr repeat(3,.72fr) 1fr;gap:45px;padding:70px clamp(38px,6vw,96px) 28px;color:#e8e5db;background:#112b23}.footer-brand p{max-width:270px;color:#b7c1ba;font-size:12px}.site-footer h2{margin:0 0 14px;color:var(--muted-gold);font-size:10px;letter-spacing:1.5px;text-transform:uppercase}.site-footer nav>a{display:block;margin:8px 0;color:#e0e2dc;font-size:12px;text-decoration:none}.newsletter p{margin:-7px 0 13px;color:#bdc5bf;font-size:11px}.newsletter form{display:flex}.newsletter input{min-width:0;width:100%;padding:13px 14px;border:0;background:#fff;font:12px var(--sans)}.newsletter button{display:grid;width:46px;place-items:center;color:#fff;background:var(--terracotta);border:0}.footer-bottom{grid-column:1/-1;display:flex;gap:25px;align-items:center;margin-top:18px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16);color:#aeb8b1;font-size:9px}.footer-bottom i{font-style:normal}.footer-bottom nav{display:flex;gap:20px;margin-left:auto}.footer-bottom nav a{margin:0;font-size:9px}
[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .85s var(--ease),transform .85s var(--ease)}[data-reveal].is-visible{opacity:1;transform:none}[data-image-reveal]{clip-path:inset(0 0 100% 0);transition:clip-path 1.05s var(--ease)}[data-image-reveal].is-visible{clip-path:inset(0)}.is-loading .brand{opacity:0;transform:translateY(-10px)}.is-loading .desktop-nav,.is-loading .header-actions{opacity:0;transform:translateY(-12px)}.brand,.desktop-nav,.header-actions{transition:opacity .8s var(--ease),transform .8s var(--ease)}.is-loading .hero h1 span>i{transform:translateY(110%)}.hero h1 span>i{display:block;font-style:normal;transition:transform 1s var(--ease)}.is-loading [data-hero-item]{opacity:0;transform:translateY(14px)}[data-hero-item]{transition:opacity .75s .35s var(--ease),transform .75s .35s var(--ease)}.is-loading .hero-image{transform:scale(1.04)}.hero-image{transition:transform 1.8s var(--ease)}@keyframes scroll-point{0%,100%{transform:translateY(0)}50%{transform:translateY(30px)}}
@media(max-width:1100px){.site-header{grid-template-columns:1fr auto;height:76px;padding:0 25px}.desktop-nav,.header-actions>.search-button,.header-actions>.language,.header-actions>.ticket-button{display:none}.menu-toggle{display:grid;gap:5px;width:44px;height:44px;place-content:center}.menu-toggle span{display:block;width:25px;height:1.5px;background:currentColor;transition:transform .35s var(--ease),opacity .25s}.menu-toggle i{position:absolute;width:1px;height:1px;overflow:hidden}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(6.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-menu{position:fixed;z-index:45;inset:0;display:grid;align-content:center;padding:110px 28px 34px;color:var(--ink);background:var(--ivory);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .65s var(--ease),visibility 0s .65s}.mobile-menu.is-open{clip-path:inset(0);visibility:visible;transition:clip-path .65s var(--ease)}.mobile-menu nav a{display:grid;grid-template-columns:34px 1fr auto;align-items:center;padding:15px 0;border-bottom:1px solid #d8cfc2;font:400 31px var(--serif);text-decoration:none;opacity:0;transform:translateY(12px);transition:opacity .4s,transform .5s var(--ease)}.mobile-menu.is-open nav a{opacity:1;transform:none}.mobile-menu nav a:nth-child(2){transition-delay:.05s}.mobile-menu nav a:nth-child(3){transition-delay:.1s}.mobile-menu nav a:nth-child(4){transition-delay:.15s}.mobile-menu nav a:nth-child(5){transition-delay:.2s}.mobile-menu nav a:nth-child(6){transition-delay:.25s}.mobile-menu nav span{color:var(--terracotta);font:10px var(--sans)}.mobile-menu nav i{font:15px var(--sans);font-style:normal}.mobile-menu>div{display:flex;justify-content:space-between;align-items:center;margin-top:30px}.mobile-menu .ticket-button{color:#fff;background:var(--terracotta)}.hero-copy{width:55vw}.introduction{grid-template-columns:.9fr 1.1fr;gap:50px}.portals{padding-inline:34px}.site-footer{grid-template-columns:1.3fr repeat(3,.7fr)}.newsletter{grid-column:1/-1;max-width:430px}}
@media(max-width:767px){.site-header{height:72px;padding:0 18px}.site-header.is-scrolled{height:64px}.brand{gap:9px}.brand-mark{width:31px;height:41px}.brand b{font-size:18px}.brand small{font-size:6px;letter-spacing:2.2px}.hero{height:100svh;min-height:680px}.hero-image{object-position:59% center}.hero-shade{background:linear-gradient(90deg,rgba(14,10,7,.73),rgba(14,10,7,.42) 62%,rgba(14,10,7,.1)),linear-gradient(0deg,rgba(8,7,5,.42),transparent 50%)}.hero-copy{top:48%;left:20px;width:calc(100% - 40px);transform:translateY(-38%)}.eyebrow{font-size:9px;letter-spacing:3px}.hero h1{font-size:clamp(54px,16vw,72px);line-height:.82;letter-spacing:-1.5px}.hero-deck{margin:22px 0;font-size:13px}.hero-deck em{font-size:17px}.hero-actions{align-items:stretch;flex-direction:column;gap:10px;width:min(310px,100%)}.button{min-height:52px;justify-content:space-between}.scroll-cue{bottom:23px;left:20px}.scroll-line{height:44px}.hero-note{display:none}.introduction{grid-template-columns:1fr;gap:54px;padding:82px 20px 85px}.intro-copy h2{font-size:51px}.intro-copy>p:not(.section-kicker){font-size:14px}.editorial-composition{min-height:420px}.zellige-detail{width:42%;height:74%}.arch-image{width:68%;height:60%}.composition-index{bottom:0;left:2%;}.editorial-composition blockquote{right:0;bottom:3%;font-size:19px}.portals{grid-template-columns:1fr;gap:34px;padding:0 20px 80px}.portal,.portal-explore{height:470px;margin:0}.portal:nth-child(even){margin-left:24px}.portal:nth-child(odd){margin-right:24px}.closing-visual{grid-template-columns:1fr;min-height:0}.closing-visual>img{height:250px}.closing-plaster{min-height:270px;padding:45px 28px}.closing-plaster blockquote{font-size:25px}.site-footer{grid-template-columns:1fr 1fr;gap:34px;padding:58px 22px 24px}.footer-brand,.newsletter,.footer-bottom{grid-column:1/-1}.footer-bottom{align-items:flex-start;flex-direction:column;gap:6px}.footer-bottom nav{margin:10px 0 0}.mobile-menu nav a{font-size:29px}}
@media(max-width:390px){.portal,.portal-explore{height:430px}.editorial-composition blockquote{max-width:150px}.mobile-menu nav a{padding:12px 0}}
@media(min-width:1600px){.hero-copy{left:9vw}.scroll-cue{left:9vw}.introduction{padding-inline:9vw}.portals{padding-inline:7.5vw}.portal,.portal-explore{height:520px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}[data-reveal],[data-image-reveal]{opacity:1;transform:none;clip-path:none}.is-loading .brand,.is-loading .desktop-nav,.is-loading .header-actions,.is-loading [data-hero-item]{opacity:1;transform:none}.is-loading .hero-image{transform:none}}
.menu-open .site-header{color:var(--ink);background:transparent;box-shadow:none;backdrop-filter:none}.mobile-menu nav i{display:grid;width:28px;height:28px;place-items:center}.mobile-menu nav i svg{width:15px;fill:none;stroke:currentColor;stroke-width:1.4;transition:transform .3s var(--ease)}.mobile-menu nav a:hover i svg{transform:translate(2px,-2px)}

/* Floating navigation card */
.site-header{top:14px;left:clamp(16px,2.4vw,38px);grid-template-columns:270px 1fr auto;width:calc(100% - clamp(32px,4.8vw,76px));height:72px;padding:0 22px;color:#fff;background:rgba(20,15,11,.74);border:1px solid rgba(255,255,255,.26);border-radius:10px;box-shadow:0 12px 38px rgba(12,8,5,.19);backdrop-filter:blur(12px)}.site-header.is-scrolled{top:8px;height:64px;color:var(--ink);background:rgba(251,248,242,.96);border-color:rgba(85,55,42,.15);box-shadow:0 10px 30px rgba(24,21,18,.12)}.site-header .brand{width:max-content;padding:6px 10px 6px 7px;border:1px solid transparent;border-radius:10px;transition:color .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}.site-header .brand:hover{color:#fff;background:rgba(184,78,45,.2);border-color:rgba(230,193,131,.5);transform:translateY(-2px)}.site-header.is-scrolled .brand:hover{color:var(--ink);background:rgba(184,78,45,.08);border-color:rgba(184,78,45,.28)}.site-header .brand-mark{color:#e6c183;transition:color .3s var(--ease),transform .4s var(--ease),filter .3s var(--ease)}.site-header .brand:hover .brand-mark{color:#f2cb88;filter:drop-shadow(0 0 8px rgba(230,193,131,.35));transform:translateY(-2px) scale(1.04)}.site-header.is-scrolled .brand-mark{color:var(--terracotta)}.desktop-nav{gap:7px}.desktop-nav a{display:inline-flex;align-items:center;justify-content:center;width:78px;min-height:44px;padding:0 8px;border:1px solid rgba(255,255,255,.36);border-radius:10px;background:rgba(10,7,5,.18);font-size:13px;font-weight:600;transition:color .28s var(--ease),background .28s var(--ease),border-color .28s var(--ease),transform .28s var(--ease)}.site-header.is-scrolled .desktop-nav a{border-color:rgba(85,55,42,.2);background:transparent}.desktop-nav a::after{display:none}.desktop-nav a:hover{color:#fff;background:var(--terracotta);border-color:var(--terracotta);transform:translateY(-2px)}.site-header .ticket-button{color:#fff;background:var(--terracotta);border-radius:10px}.site-header .ticket-button:hover{background:#9e3f24}.menu-open .site-header{color:var(--ink);background:rgba(251,248,242,.96);border-color:transparent;box-shadow:none}.menu-open .site-header .brand-mark{color:var(--terracotta)}
@media(max-width:1100px){.site-header{top:10px;left:12px;grid-template-columns:1fr auto;width:calc(100% - 24px);height:64px;padding:0 15px}.site-header.is-scrolled{top:6px;height:60px}}
@media(max-width:767px){.site-header{top:9px;left:10px;width:calc(100% - 20px);height:62px}.site-header.is-scrolled{top:5px;height:58px}}

/* Bahia signature: emblem, divider and animated wordmark */
.site-header .brand{gap:11px;padding:0;border:0;border-radius:0;background:transparent}
.site-header .brand small{display:inline-block;vertical-align:middle}.morocco-flag{display:none}.site-header .morocco-flag{display:inline-block;width:20px;height:13px;margin:6px 0 0 7px;overflow:hidden;vertical-align:middle;background:#c1272d;border-radius:1px;box-shadow:0 2px 7px rgba(0,0,0,.22);transform-origin:left center;animation:morocco-wave 2.8s ease-in-out infinite}.site-header .morocco-flag svg{display:block;width:100%;height:100%;fill:none;stroke:#006233;stroke-linejoin:round;stroke-width:1.45}.site-header.is-scrolled .morocco-flag{box-shadow:0 2px 6px rgba(61,31,22,.18)}@keyframes morocco-wave{0%,100%{transform:perspective(50px) rotateY(0deg) skewY(0)}25%{transform:perspective(50px) rotateY(-13deg) skewY(2deg)}55%{transform:perspective(50px) rotateY(9deg) skewY(-1.5deg)}75%{transform:perspective(50px) rotateY(-5deg) skewY(1deg)}}@media(prefers-reduced-motion:reduce){.site-header .morocco-flag{animation:none}}
.site-header .brand small{display:block}.site-header .morocco-flag{position:relative;display:block;flex:0 0 auto;width:32px;height:24px;margin:0 1px 0 2px;overflow:visible;background:transparent;border-radius:0;box-shadow:none;animation:none}.site-header .morocco-flag:before{position:absolute;z-index:2;top:-4px;bottom:-5px;left:0;width:2px;border-radius:2px;background:linear-gradient(#f1d394,#b78636);box-shadow:0 0 5px rgba(230,193,131,.32);content:""}.site-header .morocco-flag:after{position:absolute;z-index:3;top:-7px;left:-2px;width:6px;height:6px;border-radius:50%;background:#e7c57f;content:""}.site-header .morocco-flag svg{position:absolute;top:0;left:2px;display:block;width:30px;height:20px;background:#c1272d;clip-path:polygon(0 0,88% 5%,100% 48%,91% 94%,0 100%);fill:none;stroke:#006233;stroke-linejoin:round;stroke-width:1.45;transform-origin:left center;animation:morocco-cloth-wave 2.3s ease-in-out infinite}.site-header.is-scrolled .morocco-flag{box-shadow:none}@keyframes morocco-cloth-wave{0%,100%{transform:perspective(55px) rotateY(0) skewY(0)}25%{transform:perspective(55px) rotateY(-17deg) skewY(3deg)}55%{transform:perspective(55px) rotateY(11deg) skewY(-2deg)}78%{transform:perspective(55px) rotateY(-7deg) skewY(1.5deg)}}@media(max-width:767px){.site-header .morocco-flag{width:26px;height:20px;margin-left:0}.site-header .morocco-flag svg{width:25px;height:17px}.site-header .morocco-flag:before{bottom:-4px}}@media(prefers-reduced-motion:reduce){.site-header .morocco-flag svg{animation:none}}
.site-header .brand:hover,.site-header.is-scrolled .brand:hover{color:inherit;background:transparent;border-color:transparent;transform:none}
.site-header .brand>span{position:relative;padding-left:14px;border-left:1px solid rgba(230,193,131,.58)}
.site-header .brand>span::after{position:absolute;right:100%;bottom:-7px;left:14px;height:1px;background:var(--terracotta);content:"";transition:right .45s var(--ease)}
.site-header .brand:hover>span::after{right:0}
.home-search{position:fixed;z-index:90;inset:0;display:grid;place-items:center;padding:24px;background:rgba(17,13,10,.92);color:#fff;backdrop-filter:blur(12px)}.home-search[hidden]{display:none}.home-search>div{width:min(650px,100%)}.home-search label{display:block;margin:12px 0 22px;font:400 clamp(34px,6vw,60px)/1 var(--serif)}.home-search input{width:100%;padding:16px 2px;border:0;border-bottom:1px solid rgba(230,193,131,.8);outline:0;background:transparent;color:#fff;font:16px var(--sans)}.home-search input::placeholder{color:#9f9a91}.home-search-close{position:absolute;top:24px;right:32px;border:0;background:none;color:#fff;font:300 43px var(--sans);cursor:pointer}.home-search-results{display:grid;margin-top:22px}.home-search-results a{display:flex;justify-content:space-between;padding:12px 2px;border-bottom:1px solid rgba(255,255,255,.12);color:#fff;font-size:14px;text-decoration:none}.home-search-results a:hover{color:#e6c183}.search-open{overflow:hidden}.footer-plan-link{display:flex;justify-content:space-between;max-width:230px;padding:12px 14px;border:1px solid rgba(230,193,131,.5);border-radius:7px;color:#fff!important;font-size:11px!important;font-weight:600;text-decoration:none;transition:background .25s ease,transform .25s ease}.footer-plan-link:hover{background:var(--terracotta);border-color:var(--terracotta);transform:translateY(-2px)}
.site-header .brand-mark path{transition:stroke .35s var(--ease),opacity .35s var(--ease)}
.site-header .brand:hover .brand-mark{filter:drop-shadow(0 0 7px rgba(230,193,131,.28));transform:translateY(-1px) scale(1.035)}
.site-header .brand:hover .brand-mark path:nth-child(3){stroke:var(--terracotta)}
@media(max-width:767px){.site-header .brand>span{padding-left:11px}.site-header .brand>span::after{left:11px}}
.site-header.is-scrolled{color:#fff;background:rgba(20,15,11,.74);border-color:rgba(255,255,255,.26);box-shadow:0 12px 38px rgba(12,8,5,.19)}
.site-header.is-scrolled .brand-mark{color:#e6c183}
.site-header.is-scrolled .desktop-nav a{border-color:rgba(255,255,255,.36);background:rgba(10,7,5,.18)}
.hero-copy{isolation:isolate}
.hero-copy>*{position:relative;z-index:1}
.hero-copy::before{position:absolute;z-index:0;top:-58px;left:-76px;width:430px;height:300px;border-radius:50%;background:radial-gradient(ellipse at 28% 30%,rgba(244,199,117,.42),transparent 38%),radial-gradient(ellipse at 72% 72%,rgba(201,86,49,.2),transparent 46%);filter:blur(18px);content:"";pointer-events:none;animation:hero-light-drift 8s ease-in-out infinite}
.hero-copy::after{position:absolute;z-index:0;top:8px;left:-20px;width:82px;height:82px;border-radius:50%;background:radial-gradient(circle,rgba(255,215,137,.72) 0,rgba(226,155,73,.2) 34%,transparent 72%);filter:blur(8px);content:"";pointer-events:none;mix-blend-mode:screen;animation:title-light-orbit 5.5s ease-in-out infinite}
.hero h1{position:relative;animation:title-glow 5.5s ease-in-out infinite}
.hero h1::after{position:absolute;z-index:2;top:-8%;bottom:-8%;left:-24%;width:62px;background:linear-gradient(90deg,transparent,rgba(255,221,151,.62),transparent);content:"";pointer-events:none;mix-blend-mode:screen;transform:skewX(-18deg);animation:title-sheen 4.8s ease-in-out infinite}
@keyframes hero-light-drift{0%,100%{opacity:.62;transform:translate(-12px,-8px) scale(.96)}50%{opacity:.9;transform:translate(26px,17px) scale(1.08)}}
@keyframes title-light-orbit{0%,100%{opacity:.35;transform:translate(0,0)}35%{opacity:.9;transform:translate(238px,34px)}68%{opacity:.6;transform:translate(118px,165px)} }
@keyframes title-glow{0%,100%{text-shadow:0 0 0 rgba(242,198,116,0)}42%{text-shadow:0 0 22px rgba(242,198,116,.28),0 0 48px rgba(184,78,45,.16)}68%{text-shadow:0 0 8px rgba(242,198,116,.12)}}
@keyframes title-sheen{0%,22%{opacity:0;transform:translateX(0) skewX(-18deg)}35%{opacity:.9}68%,100%{opacity:0;transform:translateX(520px) skewX(-18deg)}}
@media(prefers-reduced-motion:reduce){.hero-copy::before,.hero-copy::after,.hero h1,.hero h1::after{animation:none;opacity:.65;transform:none;text-shadow:none}}

/* Hero title entrance */
.hero-actions .button{border-radius:12px}
.hero .eyebrow{display:flex;overflow:hidden}
.hero .eyebrow span{display:inline-block;opacity:1;transform:none;transition:opacity .5s calc(.16s + var(--letter-index)*.028s) ease,transform .65s calc(.16s + var(--letter-index)*.028s) var(--ease)}
.is-loading .hero .eyebrow span{opacity:0;transform:translateY(115%)}
.hero h1 span:first-child>i{transition-delay:.22s}
.hero h1 span:nth-child(2)>i{transition-delay:.34s}
.hero h1 span>i{will-change:transform}
@media(prefers-reduced-motion:reduce){.is-loading .hero .eyebrow span,.is-loading .hero h1 span>i{opacity:1;transform:none}}
@media(max-width:767px){.portals{padding-top:52px}}

/* Quiet, site-wide Moroccan geometry */
:root{--bahia-pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23886550' stroke-opacity='.08' stroke-width='.8'%3E%3Cpath d='M48 3 57 30 84 39 57 48 48 75 39 48 12 39 39 30Z'/%3E%3Cpath d='M48 21 55 32 75 39 64 48 75 57 55 64 48 75 41 64 21 57 32 48 21 39 41 32Z'/%3E%3Cpath d='M0 9 21 18 30 39 48 48 66 39 75 18 96 9M0 87 21 78 30 57 48 48 66 57 75 78 96 87'/%3E%3C/g%3E%3C/svg%3E")}
body{background-color:var(--ivory);background-image:var(--bahia-pattern);background-size:96px 96px}
.portals{background-color:rgba(251,248,242,.94);background-image:var(--bahia-pattern);background-size:96px 96px}
.portal,.arch-image,.zellige-detail{border-radius:16px}
.arch-image{overflow:hidden}


/* Search-led visitor planning added after the competitor content audit. */
.visitor-essentials{padding:clamp(4rem,7vw,7rem) clamp(1.25rem,5vw,5.5rem) 2.5rem;background:#fffdfa;color:#18110c}.essentials-heading{max-width:760px;margin-bottom:2.25rem}.section-kicker{color:#b64c2c;font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase}.essentials-heading h2,.planning-intro h2,.nearby-planner h2{font:400 clamp(2.3rem,4.4vw,4.8rem)/.98 'Instrument Serif',serif;margin:.65rem 0 1rem}.essentials-heading>p:last-child,.planning-intro>p{max-width:650px;color:#66584f;line-height:1.7}.essentials-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #d8cabd;border-radius:18px;overflow:hidden;box-shadow:0 18px 45px rgba(48,30,18,.08)}.essentials-grid a{padding:1.5rem;min-height:155px;display:flex;flex-direction:column;color:#18110c;background:#fff;text-decoration:none;border-right:1px solid #e2d8cd;transition:.25s}.essentials-grid a:last-child{border:0}.essentials-grid a:hover{background:#fbf4ea;transform:translateY(-3px)}.essentials-grid span,.nearby-planner>a span{color:#b64c2c;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}.essentials-grid strong{font:400 clamp(1.45rem,2vw,2rem) 'Instrument Serif',serif;margin:auto 0 .65rem}.essentials-grid small{color:#66584f}.essentials-grid i{font-style:normal;color:#b64c2c}.essentials-note{margin:1rem 0 0;color:#6e625a;font-size:.78rem;line-height:1.6}.essentials-note span{font-weight:600;color:#31261f;margin-right:.5rem}.essentials-note a{color:#9f452b}.portals{scroll-margin-top:5rem}.home-planning{padding:clamp(4rem,7vw,7rem) clamp(1.25rem,6vw,7rem);display:grid;grid-template-columns:minmax(260px,.75fr) minmax(420px,1.25fr);gap:clamp(3rem,7vw,8rem);background:#f4eee5;color:#18110c}.planning-intro>a{display:inline-flex;margin-top:1.5rem;color:#9f452b;text-decoration:none;font-weight:600}.planning-intro>a span{margin-left:.5rem;transition:.2s}.planning-intro>a:hover span{transform:translateX(4px)}.planning-faq{border-top:1px solid #cab8a8}.planning-faq details{border-bottom:1px solid #cab8a8}.planning-faq summary{list-style:none;cursor:pointer;padding:1.35rem 2.5rem 1.35rem 0;font-weight:600;position:relative}.planning-faq summary::-webkit-details-marker{display:none}.planning-faq summary i,.planning-faq summary i:after{position:absolute;right:.25rem;top:50%;width:16px;height:1px;background:#b64c2c;content:''}.planning-faq summary i:after{right:0;top:0;transform:rotate(90deg);transition:.2s}.planning-faq details[open] summary i:after{transform:rotate(0)}.planning-faq details p{margin:-.25rem 2.5rem 1.4rem 0;color:#62554d;line-height:1.65}.planning-faq details a{color:#9f452b;white-space:nowrap}.nearby-planner{padding:clamp(3.5rem,6vw,6rem) clamp(1.25rem,6vw,7rem);display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:1rem;background:#173d32;color:white}.nearby-planner h2{font-size:clamp(2rem,3.4vw,3.7rem);margin-bottom:0}.nearby-planner>a{display:flex;flex-direction:column;padding:1.5rem;border:1px solid rgba(255,255,255,.28);border-radius:16px;color:white;text-decoration:none;min-height:170px;transition:.25s}.nearby-planner>a:hover{background:rgba(255,255,255,.08);transform:translateY(-4px)}.nearby-planner>a span{color:#e4bb70}.nearby-planner>a strong{font:400 2rem 'Instrument Serif',serif;margin:auto 0 .5rem}.nearby-planner>a small{color:rgba(255,255,255,.75);line-height:1.5}
@media(max-width:900px){.essentials-grid{grid-template-columns:1fr 1fr}.essentials-grid a:nth-child(2){border-right:0}.essentials-grid a:nth-child(-n+2){border-bottom:1px solid #e2d8cd}.home-planning{grid-template-columns:1fr;gap:2.5rem}.nearby-planner{grid-template-columns:1fr 1fr}.nearby-planner>div{grid-column:1/-1}}
@media(max-width:560px){.visitor-essentials{padding-top:3.5rem}.essentials-grid{grid-template-columns:1fr}.essentials-grid a{min-height:125px;border-right:0;border-bottom:1px solid #e2d8cd!important}.essentials-grid a:last-child{border-bottom:0!important}.nearby-planner{grid-template-columns:1fr}.nearby-planner>div{grid-column:auto}.planning-faq details p{margin-right:0}}
C:\Users\Sara-Malak

/* Mobile-first rendering: keep core content immediate, stable and readable. */
@media (max-width: 767px) {
  html, body { overflow-x: clip; }
  .hero-copy { z-index: 3; }
  .hero-copy, .hero-copy > *, .hero h1 span > i, [data-hero-item] { opacity: 1 !important; visibility: visible !important; transform: none !important; }
  .hero-copy { transform: translateY(-38%) !important; }
  .is-loading .hero h1 span > i, .is-loading [data-hero-item] { opacity: 1 !important; transform: none !important; }
  .hero-copy::before, .hero-copy::after, .hero h1::after { display: none; }
  .hero h1 { animation: none; text-shadow: 0 3px 18px rgba(0,0,0,.38); }
  [data-reveal], [data-image-reveal] { opacity: 1; transform: none; clip-path: none; }
  .button, .menu-toggle, .mobile-menu a, .site-footer a { min-height: 44px; }
  .hero-deck { font-size: 15px; line-height: 1.55; }
}

@media (max-width: 767px) { .hero-copy { z-index: 10 !important; isolation: auto; } .hero-copy > * { z-index: 11; color: #fff; } .hero-copy .eyebrow { color: #efd9a9; } }

@media (max-width: 767px) { .hero h1 { line-height: 1; } .hero h1 span { overflow: visible; min-height: 1.08em; } .hero h1 span > i { line-height: 1; } }

@media (max-width: 767px) { .hero-copy .eyebrow, .hero-copy .hero-deck, .hero-copy .hero-actions { position: relative; z-index: 20 !important; opacity: 1 !important; visibility: visible !important; transform: none !important; transition: none !important; animation: none !important; } .hero-copy .hero-actions { display: flex !important; } }

@media (max-width: 767px) { .hero h1 { font-size: clamp(52px, 15vw, 62px); line-height: 1.08; } .hero h1 span { overflow: hidden; min-height: 1.12em; padding-bottom: .08em; } .hero h1 span > i { line-height: 1.08; } .hero-deck { margin-top: 18px; } }

@media (max-width: 767px) { .hero h1 { margin-bottom: 34px; font-size: clamp(50px, 14vw, 58px); line-height: 1; } .hero h1 span { overflow: visible; min-height: 1.08em; padding-bottom: 0; } .hero h1 span > i { line-height: 1; } .hero-deck { margin-top: 0; } }

@media (max-width: 767px) { .hero h1 { margin-bottom: 22px; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(50px, 14vw, 58px); line-height: .98; } .hero h1 span { min-height: 1em; } .hero h1 span > i { line-height: .98; } .hero-deck em { font-family: Georgia, 'Times New Roman', serif; } }

/* Hero visit planner replaces generic calls to action with a useful first step. */
.hero-copy { width: min(880px, 86vw); }
.hero-copy > :not(.hero-booking) { max-width: 540px; }
.hero-booking {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(250px, 1.25fr);
  gap: 10px;
  width: min(820px, 86vw);
  padding: 10px;
  color: #fff8e9;
  background: rgba(20, 14, 10, .72);
  border: 1px solid rgba(226, 193, 124, .48);
  border-radius: 12px;
  box-shadow: 0 16px 38px rgba(8, 5, 3, .24);
  backdrop-filter: blur(10px);
}
.booking-field {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 11px 14px 10px;
  background: rgba(12, 8, 5, .42);
  border: 1px solid rgba(226, 193, 124, .42);
  border-radius: 7px;
}
.booking-field > span {
  color: #d9c79f;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
}
.booking-field > span i { font-weight: 500; font-style: normal; letter-spacing: .7px; opacity: .72; }
.booking-field input,
.booking-field select {
  width: 100%;
  min-height: 26px;
  padding: 0;
  color: #fff;
  color-scheme: dark;
  background: transparent;
  border: 0;
  outline: 0;
  font: 600 14px var(--sans);
}
.booking-field select { cursor: pointer; }
.booking-field option { color: #201711; background: #fffaf2; }
.booking-submit {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  min-height: 54px;
  padding: 0 18px;
  color: #fffaf0;
  background: #966425;
  border: 1px solid #bd914f;
  border-radius: 7px;
  box-shadow: 0 8px 20px rgba(8, 5, 3, .18);
  font: 700 14.5px/1.2 var(--sans);
  letter-spacing: .1px;
  cursor: pointer;
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.booking-submit svg { position: absolute; right: 18px; width: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.booking-submit:hover { background: #a8742e; border-color: #d3ae70; box-shadow: 0 10px 24px rgba(8, 5, 3, .24); transform: translateY(-2px); }
.booking-submit:focus-visible,
.booking-field:focus-within { outline: 2px solid #f1d394; outline-offset: 2px; }
@media (max-width: 767px) {
  .hero-copy { width: calc(100% - 40px); }
  .hero-booking { grid-template-columns: 1fr 1fr; width: 100%; padding: 8px; gap: 8px; }
  .booking-field { padding: 9px 10px 8px; }
  .booking-field > span { font-size: 8px; letter-spacing: 1px; }
  .booking-field input, .booking-field select { font-size: 13px; }
  .booking-submit { grid-column: 1 / -1; min-height: 52px; padding-inline: 15px; }
}
@media (max-width: 420px) {
  .hero-booking { grid-template-columns: 1fr; }
  .booking-submit { grid-column: auto; }
}

@media (max-width: 767px) {
  .hero h1 span { overflow: hidden; padding-bottom: .14em; }
  .hero-deck { margin-top: 14px; }
  .hero-booking {
    position: relative;
    z-index: 30 !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    background: rgba(24, 16, 11, .94);
    backdrop-filter: none;
  }
  .hero-booking > * { position: relative; z-index: 31; }
  .booking-field { background: #1b120d; }
  .booking-submit { grid-column: 1 / -1; }
}
@media (max-width: 420px) {
  .hero-booking { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .booking-submit { grid-column: 1 / -1; }
}

@media (max-width: 767px) { .hero h1 span { overflow: visible; padding-bottom: 0; } .hero-booking { display: grid !important; opacity: 1 !important; visibility: visible !important; transform: none !important; animation: none !important; transition: none !important; } }

@media (max-width: 767px) { .hero-deck { margin-top: 42px; } }

@media (max-width: 767px) { .hero-deck { margin-top: 56px; } }

.booking-field input[type="number"] { appearance: textfield; }
.booking-field input[type="number"]::-webkit-inner-spin-button,
.booking-field input[type="number"]::-webkit-outer-spin-button { opacity: 1; cursor: pointer; }
.booking-field input::placeholder { color: rgba(255,255,255,.78); opacity: 1; }

.booking-field input[type="number"] {
  box-sizing: border-box;
  padding-inline: 24px;
  text-align: center;
}

/* A soft moving glint follows the carved arch edge. */
.hero-arch-light{position:absolute;z-index:1;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;mix-blend-mode:screen}
.hero-arch-light path{fill:none;stroke-linecap:round;stroke-dasharray:.115 .885;stroke-dashoffset:1;animation:arch-light-travel 6.5s cubic-bezier(.45,0,.55,1) infinite alternate}
.hero-arch-light .arch-light-glow{stroke:rgba(255,196,92,.2);stroke-width:42;filter:url(#arch-light-glow)}
.hero-arch-light .arch-light-core{stroke:rgba(255,226,158,.42);stroke-width:6}
@keyframes arch-light-travel{0%{opacity:.12;stroke-dashoffset:1}18%{opacity:.52}82%{opacity:.52}100%{opacity:.12;stroke-dashoffset:0}}
@media(max-width:767px){.hero-arch-light{display:none}}
@media(prefers-reduced-motion:reduce){.hero-arch-light path{animation:none;opacity:.28;stroke-dashoffset:.48}}
/* Small sun glints appear across the orange tree without obscuring the photograph. */
.orange-sparkles{position:absolute;z-index:2;inset:0;pointer-events:none}
.orange-sparkles i{position:absolute;display:block;top:var(--y);left:var(--x);width:calc(var(--size) * 1.3);height:calc(var(--size) * 1.3);border-radius:50%;opacity:.3;background:#fff6c9;box-shadow:0 0 4px 1px #fff4bd,0 0 13px 4px rgba(255,190,57,.72);transform:translate(-50%,-50%) scale(.45);animation:orange-twinkle 4s ease-in-out infinite;animation-delay:calc(var(--delay) * -1)}
.orange-sparkles i::before,.orange-sparkles i::after{position:absolute;top:50%;left:50%;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(255,241,193,.92),transparent);content:'';transform:translate(-50%,-50%)}
.orange-sparkles i::before{width:180%;height:1.5px}.orange-sparkles i::after{width:1.5px;height:180%}
@keyframes orange-twinkle{0%,36%,100%{opacity:.08;transform:translate(-50%,-50%) scale(.45) rotate(0)}49%{opacity:.55}64%{opacity:1;transform:translate(-50%,-58%) scale(1) rotate(12deg)}82%{opacity:.28;transform:translate(-50%,-68%) scale(.62) rotate(20deg)}}
@media(max-width:767px){.orange-sparkles i:nth-child(even){display:none}.orange-sparkles i{filter:drop-shadow(0 0 5px rgba(255,206,105,.55))}}
@media(prefers-reduced-motion:reduce){.orange-sparkles i{opacity:.48;animation:none}}

/* Keep the hero title clean; light effects belong to the arch and orange tree. */
.hero-copy::before,.hero-copy::after,.hero h1::after{display:none}
.hero h1{animation:none;text-shadow:none}

.language-switcher{position:relative;color:inherit;font-size:11px;font-weight:700}.language-switcher summary{display:flex;align-items:center;gap:5px;padding:8px 2px;cursor:pointer;list-style:none}.language-switcher summary::-webkit-details-marker{display:none}.language-switcher>div{position:absolute;z-index:80;top:calc(100% + 8px);right:0;min-width:132px;padding:7px;color:#201811;background:#fff;border:1px solid #ddcfc0;border-radius:10px;box-shadow:0 15px 38px rgba(25,14,7,.2)}.language-switcher a{display:block;padding:8px 10px;border-radius:6px;text-decoration:none}.language-switcher a:hover,.language-switcher a[aria-current=page]{color:#fff;background:#ad4f31}
[dir=rtl] body{direction:rtl}[dir=rtl] .language-switcher>div{right:auto;left:0}[dir=rtl] .ticket-button svg,[dir=rtl] .button svg,[dir=rtl] .text-link svg,[dir=rtl] .booking-submit svg{transform:scaleX(-1)}[dir=rtl] .booking-submit svg{right:auto;left:18px}[dir=rtl] .mobile-menu nav a{grid-template-columns:auto 1fr 34px}[dir=rtl] input,[dir=rtl] textarea{text-align:right}
@media(max-width:380px){.site-header{padding:0 10px}.site-header .brand{gap:7px}.site-header .brand-mark{width:28px;height:38px}.site-header .morocco-flag{width:22px;height:18px}.site-header .morocco-flag svg{width:21px;height:15px}.site-header .brand>span{padding-left:8px}.site-header .brand b{font-size:16px}.site-header .brand small{display:none}.header-actions{gap:8px}.language-switcher summary{padding-inline:0}.menu-toggle{width:36px}}
@media(max-width:280px){.site-header .morocco-flag,.site-header .brand>span{display:none}.site-header .brand-mark{width:27px}.site-header{grid-template-columns:minmax(27px,1fr) auto}.hero h1{font-size:40px;line-height:.92;letter-spacing:-1px}.hero h1 span{white-space:nowrap}}
