:root{--ink:#183b35;--muted:#60736d;--coral:#ef5b4f;--teal:#087f6b;--paper:#fff;--soft:#f3f8f5;--line:#d9e5df;--radius:16px}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#fff 0,#fbfdfc 100%);color:var(--ink);font:16px/1.5 Circular,"Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
[dir=rtl] body{text-align:right}[dir=rtl] .market-header,[dir=rtl] .section-heading{direction:rtl}[dir=rtl] .experience-search label{border-right:0;border-left:1px solid var(--line)}
.filters{grid-template-columns:2fr repeat(5,1fr) auto auto!important}
@media(max-width:900px){.filters{grid-template-columns:1fr 1fr!important}}
@media(max-width:520px){.filters{grid-template-columns:1fr!important}.filters>*:first-child{grid-column:auto!important}}
.market-header{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));background:#ffffffee;backdrop-filter:blur(14px);border-bottom:1px solid #e8efeb;position:sticky;top:0;z-index:20}
.market-brand{display:block;width:72px;height:52px;background:url('/images/logos/logo.png') center/70px auto no-repeat;font-size:0}
.market-header nav{display:flex;align-items:center;height:100%;gap:0}
.market-header nav a{height:100%;display:flex;align-items:center;padding:0 20px;font-weight:400;color:#484848;border-bottom:2px solid transparent}
.market-header nav a:hover,.market-header nav a.active{border-bottom-color:var(--teal);color:#333}
.market-header nav .market-cta{height:auto;margin-left:8px;padding:11px 20px;border:1px solid var(--coral);border-radius:999px;background:var(--coral);color:#fff!important;font-weight:700}
.market-cta{display:inline-flex;justify-content:center;align-items:center;background:var(--coral);color:#fff!important;padding:13px 22px;border-radius:999px;font-weight:700;box-shadow:0 8px 22px #ef5b4f28;transition:.2s}.market-cta:hover{transform:translateY(-1px);box-shadow:0 11px 25px #ef5b4f38}
.experience-hero{max-width:1180px;min-height:440px;margin:0 auto;padding:76px 7% 54px;color:var(--ink);display:block;background:radial-gradient(circle at 85% 15%,#ffe8cd 0,transparent 31%),linear-gradient(135deg,#edf8f2,#fff 60%);border-radius:0 0 36px 36px}
.experience-hero>div:first-child{max-width:660px}
.experience-hero h1{font-size:clamp(42px,5vw,66px);line-height:1.04;font-weight:650;margin:12px 0 20px;letter-spacing:-1.8px}
.experience-hero h1:first-letter{color:var(--coral)}
.experience-hero p{font-size:19px;max-width:680px;color:#484848}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--teal)}
.experience-search{margin-top:42px;color:var(--ink);padding:0;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 50px #183b3518;background:#fff;display:grid;grid-template-columns:230px 1fr;overflow:hidden}
.experience-search label{display:flex;align-items:center;padding:0 18px;font-weight:600;border-right:1px solid var(--line)}
.experience-search div{display:grid;grid-template-columns:1fr 130px;padding:10px}
.experience-search input{width:100%;border:0;padding:13px 15px;font:inherit;outline:none}
.experience-search button{border:0;border-radius:var(--radius);background:var(--coral);color:#fff;padding:0 20px;font-weight:700;font-size:15px;cursor:pointer}
.market-section,.experience-detail{max-width:1000px;margin:auto;padding:55px 0 75px;border-top:1px solid #eee}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}
.section-heading h2,.market-empty h2,.detail-layout h2{font-size:32px;line-height:1.2;font-weight:600;margin:7px 0}
.experience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.experience-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;transition:.2s;box-shadow:0 8px 26px #183b3509}
.experience-card:hover{transform:translateY(-2px);box-shadow:0 5px 15px #00000018}
.experience-card img{width:100%;height:210px;object-fit:cover;background:var(--soft)}
.card-body{padding:18px}
.card-body h3{font-size:20px;line-height:1.25;font-weight:600;margin:7px 0}
.card-body p{color:var(--muted);min-height:48px}
.card-body strong{color:#484848}
.market-empty{text-align:center;padding:60px 24px;background:var(--soft);border:1px solid #eee;border-radius:var(--radius)}
.market-empty p{color:var(--muted);margin-bottom:28px}
.back-link{display:inline-block;margin-bottom:28px;color:var(--teal);font-weight:600}
.detail-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:42px;align-items:center}
.detail-hero>img{width:100%;height:440px;object-fit:cover;border-radius:var(--radius);background:var(--soft)}
.detail-hero h1{font-size:44px;line-height:1.1;font-weight:500;margin:12px 0}
.lead{font-size:20px;color:var(--muted)}
.detail-meta{display:flex;flex-wrap:wrap;gap:9px}
.detail-meta span{padding:7px 11px;background:var(--soft);border:1px solid #eee;border-radius:20px}
.detail-layout{display:grid;grid-template-columns:1fr 340px;gap:60px;padding-top:50px}
.detail-layout article p{color:#565a5c}
.booking-card{position:sticky;top:105px;align-self:start;padding:25px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 2px 8px #00000018}
.booking-card strong{display:block;font-size:30px;font-weight:600}.booking-card small{color:var(--muted)}.booking-card .full{width:100%;margin-top:20px}.booking-card p{font-size:13px;text-align:center;color:var(--muted)}
@media(max-width:1050px){.experience-hero,.market-section,.experience-detail{margin-left:24px;margin-right:24px}}
@media(max-width:850px){.market-header{height:64px}.market-header nav>a:not(.market-cta){display:none}.experience-grid{grid-template-columns:1fr 1fr}.detail-hero,.detail-layout{grid-template-columns:1fr}.detail-hero>img{height:370px}.booking-card{position:static}}
@media(max-width:560px){.market-header{padding:0 18px}.market-brand{width:64px;background-size:62px}.market-header nav .market-cta{padding:9px 14px}.experience-hero{min-height:0;padding:42px 0 30px}.experience-hero h1{font-size:36px}.experience-hero p{font-size:17px}.experience-search{margin-top:28px;display:block}.experience-search label{padding:14px 15px;border:0;border-bottom:1px solid var(--line)}.experience-search div{grid-template-columns:1fr}.experience-search button{height:48px}.experience-grid{grid-template-columns:1fr}.experience-card img{height:225px}.section-heading{align-items:start;gap:8px;flex-direction:column}.market-section{padding-top:38px}.experience-detail{padding-top:30px}.detail-hero>img{height:275px}.detail-hero h1{font-size:36px}}

/* Transactional continuity: cart, order, booking and trips only. */
body:has(main.shell .summary),body:has(main.shell .order),body:has(main.shell .receipt),body:has(main.shell .trip){margin:0;color:#24212a;background:linear-gradient(135deg,#ff5a5f,#d91577 60%,#7b1fa2) 0 82px/100% 300px no-repeat,#fff;font-family:Arial,sans-serif}
body:has(main.shell .summary):before,body:has(main.shell .order):before,body:has(main.shell .receipt):before,body:has(main.shell .trip):before{content:"";position:absolute;right:6vw;top:92px;width:min(30vw,410px);height:185px;background:url('../images/brand/essaouira-gulls.svg') center/contain no-repeat;pointer-events:none;opacity:.62}
body:has(main.shell .summary) .market-header,body:has(main.shell .order) .market-header,body:has(main.shell .receipt) .market-header,body:has(main.shell .trip) .market-header{height:82px;padding:0 clamp(22px,5vw,72px);background:#fff;border:0;position:relative;z-index:4}
body:has(main.shell .summary) .market-brand,body:has(main.shell .order) .market-brand,body:has(main.shell .receipt) .market-brand,body:has(main.shell .trip) .market-brand{width:auto;background:none;color:#ff5a5f;font-size:0;font-weight:900}
body:has(main.shell .summary) .market-brand:after,body:has(main.shell .order) .market-brand:after,body:has(main.shell .receipt) .market-brand:after,body:has(main.shell .trip) .market-brand:after{content:"ESSAOUIRA.GUIDE";font-size:21px;letter-spacing:-.7px}
body:has(main.shell .summary) .shell,body:has(main.shell .order) .shell,body:has(main.shell .receipt) .shell,body:has(main.shell .trip) .shell{position:relative;z-index:2;padding-top:62px}
body:has(main.shell .summary) .shell>.eyebrow,body:has(main.shell .order) .shell>.eyebrow,body:has(main.shell .receipt) .shell>.eyebrow,body:has(main.shell .trip) .shell>.head .eyebrow{color:#fff;letter-spacing:2px}
body:has(main.shell .summary) .shell>h1,body:has(main.shell .order) .shell>h1,body:has(main.shell .receipt) .shell>h1,body:has(main.shell .trip) .shell>.head h1{color:#fff;font-size:clamp(42px,5vw,66px);line-height:.96;letter-spacing:-3px;margin:14px 0 52px}
body:has(main.shell .summary) .item,body:has(main.shell .summary) .summary,body:has(main.shell .order) .order,body:has(main.shell .receipt) .receipt,body:has(main.shell .trip) .trip,body:has(main.shell .trip) .market-empty{border-color:#e9e3ea;border-radius:24px;box-shadow:0 16px 50px rgba(47,21,43,.12);background:#fff}
body:has(main.shell .summary) .summary{position:sticky;top:24px}body:has(main.shell .summary) .total,body:has(main.shell .order) .total{color:#d91577}
body:has(main.shell .summary) .market-cta,body:has(main.shell .receipt) .market-cta,body:has(main.shell .trip) .market-cta{background:#d91577;color:#fff;border-radius:13px;font-weight:900}
body:has(main.shell .summary) .notice,body:has(main.shell .order) .policy{background:#fff7dc}.trip{transition:.2s}.trip:hover{transform:translateY(-4px);box-shadow:0 22px 55px rgba(47,21,43,.18)!important}
@media(max-width:720px){body:has(main.shell .summary),body:has(main.shell .order),body:has(main.shell .receipt),body:has(main.shell .trip){background-size:100% 270px}body:has(main.shell .summary):before,body:has(main.shell .order):before,body:has(main.shell .receipt):before,body:has(main.shell .trip):before{width:52vw;height:120px;right:0;top:88px;opacity:.44}body:has(main.shell .summary) .shell,body:has(main.shell .order) .shell,body:has(main.shell .receipt) .shell,body:has(main.shell .trip) .shell{padding-top:42px}body:has(main.shell .summary) .shell>h1,body:has(main.shell .order) .shell>h1,body:has(main.shell .receipt) .shell>h1,body:has(main.shell .trip) .shell>.head h1{font-size:43px;margin-bottom:38px}body:has(main.shell .summary) .summary{position:relative;top:auto}}

/* Navigation mobile Essaouira.guide: toutes les catégories restent accessibles. */
@media(max-width:850px){.market-header{height:auto;min-height:68px;flex-wrap:wrap;padding-top:8px;padding-bottom:7px}.market-header nav{display:flex!important;width:100%;height:auto;overflow-x:auto;gap:7px;padding:7px 0 2px;scrollbar-width:none}.market-header nav::-webkit-scrollbar{display:none}.market-header nav>a,.market-header nav>a:not(.market-cta){display:flex!important;height:38px!important;flex:0 0 auto;white-space:nowrap;padding:0 12px!important;border:1px solid #e8e1e7!important;border-radius:999px;background:#fff}.market-header nav .market-cta{margin:0!important}}
