@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@1&family=Manrope:wght@400..800&display=swap');

:root{--ink:#16362c;--copy:#37473d;--paper:#fff;--tint:#fff;--line:#ded8cb;--accent:#9e4024;--white:#fff;--serif:Georgia,serif;--sans:Inter,"Segoe UI",sans-serif}
*{box-sizing:border-box} [hidden]{display:none!important} html{scroll-behavior:smooth} body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.55 var(--sans)} h1,h2,h3,p{margin:0 0 1rem} h1,h2{font-family:var(--serif);font-weight:500;line-height:1.05;letter-spacing:-.04em;text-wrap:balance} h1{font-size:calc(clamp(2rem,3.7vw,3.5rem) - var(--desktop-heading-reduction, 0px))} h2{font-size:calc(clamp(1.65rem,2.9vw,2.6rem) - var(--desktop-heading-reduction, 0px))} p{color:var(--copy);max-width:65ch} a{color:inherit} a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #bf6639;outline-offset:4px} button,input,select{font:inherit} button{cursor:pointer} .wrap{width:min(1120px,calc(100% - 64px));margin-inline:auto}.skip{position:fixed;top:12px;left:12px;z-index:8;background:#fff;padding:12px;transform:translateY(-160%)}.skip:focus{transform:none}
.site-header{position:relative;border-bottom:1px solid var(--line);z-index:2}.nav{height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px}.nav nav{display:flex;gap:clamp(12px,3vw,42px)}.nav nav a{text-decoration:none;font-weight:600}.brand{display:block;background:transparent;padding:0}.brand-crop{display:block;position:relative;width:118px;height:49px;overflow:hidden}.brand img{width:142px;height:auto;position:absolute;max-width:none;left:-12px;top:-22px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 22px;border-radius:999px;border:1px solid transparent;background:var(--accent);color:white;font-weight:650;text-decoration:none;font-size:.94rem;line-height:1.25;text-align:center}.button:hover{filter:brightness(.94)}.button.light{background:white;color:var(--ink)}.button.outline{background:transparent;color:var(--ink);border-color:#a6a99d}
.hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(28px, 5vw, 68px);
  padding-block: 36px 24px;
}
.hero h1 {
  max-width: 14ch;
  font-size:calc(clamp(2.15rem, 4.2vw, 3.65rem) - var(--desktop-heading-reduction, 0px));
  margin-bottom: 16px;
}
.hero p { max-width: 36ch; margin-bottom: 22px; }
.hero .photo {
  position: relative;
  aspect-ratio: 1.32;
  background-image: none;
}
.hero .photo::before {
  content: "";
  position: absolute;
  inset: 50% 0 auto;
  aspect-ratio: 1;
  transform: translateY(-50%);
  background: url('/assets/mood.png') var(--crop-position) / var(--crop-size) no-repeat;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.quick {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-block: 1px solid var(--line);
}
.quick a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 13px 16px;
  font-weight: 650;
  text-decoration: none;
}
.quick a + a { border-left: 1px solid var(--line); }
.quick a:hover { color: var(--accent); }
.quick span { color: var(--accent); }
.local-agency { border-bottom: 1px solid var(--line); }
.local-agency p { max-width: 58ch; }
.section{padding-block:clamp(36px,5vw,72px)}.split,.offer-top{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(24px,4.5vw,60px)}.split p,.offer-top p,.intro p{font-size:1.12rem;margin-bottom:24px}.tint{background:var(--tint)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.section-head h2{margin:0}.photo{background-image:url('/assets/mood.png');background-size:var(--crop-size);background-position:var(--crop-position);background-repeat:no-repeat;background-color:#d8c1a6;aspect-ratio:var(--crop-ratio,4/3);border-radius:14px;overflow:hidden}
.photo-riad{--crop-size:212% 635%;--crop-position:95% 23.3%;--crop-ratio:1}.photo-agafay{--crop-size:444% 1095%;--crop-position:4.25% 45.35%;--crop-ratio: .82}.photo-ouzoud{--crop-size:444% 1095%;--crop-position:35% 45.35%;--crop-ratio:.82}.photo-ourika{--crop-size:444% 1095%;--crop-position:65.6% 45.35%;--crop-ratio:.82}.photo-essaouira{--crop-size:444% 1095%;--crop-position:96% 45.35%;--crop-ratio:.82}.photo-merzouga{--crop-size:444% 1580%;--crop-position:4.25% 73.4%;--crop-ratio:1.19}.photo-globo{background-image:var(--hero-image,url('/assets/mood.png'));background-size:var(--hero-size,465% 685%);background-position:var(--hero-position,85% 0%);--crop-ratio:1.25}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.card{background:white;min-width:0}.card a{display:block;text-decoration:none;height:100%}.card .photo{border-radius:10px;aspect-ratio:1.02}.card a:hover strong{text-decoration:underline;text-underline-offset:4px}.card-body{display:grid;gap:4px;padding:10px 0 0}.card-body strong{font-size:1rem}.card-body span,.note{font-size:.88rem;color:#4b5a50}.feature{border-bottom:1px solid var(--line)}.guide-links a{display:flex;justify-content:space-between;gap:16px;padding:17px 0;border-bottom:1px solid var(--line);font-weight:650;text-decoration:none}.guide-links a:hover,.nav nav a:hover{text-decoration:underline}.end-cta{background:var(--paper);border-top:1px solid var(--line);padding:52px 0;color:var(--ink);text-align:center}.end-cta h2{margin-bottom:24px}
footer{background:var(--tint);border-top:1px solid var(--line);padding:45px 0}.footer{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}.footer nav{display:grid;align-content:start;gap:5px}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}.footer-brand{font:600 1.65rem var(--serif)}.footer p{margin-top:7px}.crumb{padding-top:22px;font-size:.9rem;color:#4d5b52}.crumb a{text-underline-offset:3px}.intro{padding-bottom:24px}.intro h1,.reading{max-width:820px}.catalog{padding-top:10px}.filters{display:flex;gap:8px;margin-bottom:25px;flex-wrap:wrap}.filters button{background:white;color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:8px 14px}.filters button[aria-pressed=true]{background:var(--ink);color:white}.offer-top h1{font-size:calc(clamp(1.95rem,3.2vw,3.05rem) - var(--desktop-heading-reduction, 0px))}.offer-top>.photo{aspect-ratio:1.2}.facts{display:flex;flex-wrap:wrap;gap:10px 22px;padding:14px 0;border-block:1px solid var(--line);margin:0 0 22px}.facts dt{font-size:.78rem;color:#4d5b52}.facts dd{font-weight:650;margin:0}.offer-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,360px);gap:40px;align-items:start}.offer-copy section{padding:24px 0;border-top:1px solid var(--line)}.offer-copy h2,.booking h2{font-size:calc(clamp(1.45rem,2.5vw,1.95rem) - var(--desktop-heading-reduction, 0px))}.booking{background:white;border:1px solid var(--line);border-radius:16px;padding:24px;position:sticky;top:20px;scroll-margin-top:20px}.booking p:last-child{margin:12px 0 0}.request{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.request label{display:grid;gap:3px;font-size:.86rem;font-weight:600;min-width:0}.request select,.request input{width:100%;min-width:0;background:white;border:1px solid #9b9e92;border-radius:7px;padding:7px;color:var(--ink)}.request label:first-child,.wide{grid-column:1/-1}.inclusions{display:grid;grid-template-columns:1fr 1fr;gap:20px}.timeline{padding-left:26px}.timeline li{padding:9px 0 9px 7px}.timeline li::marker{color:var(--accent);font-weight:700} table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}thead{background:var(--tint)}summary{cursor:pointer;font-weight:650}details p{margin-top:8px}.lead{font-size:1.22rem}.reading{margin-bottom:36px}.reading table{margin-bottom:30px}.mobile-book{display:none}
@media(max-width:800px){.wrap{width:calc(100% - 36px)}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.offer-layout{grid-template-columns:1fr}.booking{position:static}.nav{gap:12px}.nav nav{gap:12px;font-size:.9rem}.offer .mobile-book{display:block;position:fixed;bottom:0;inset-inline:0;background:var(--paper);border-top:1px solid var(--line);padding:8px 16px max(8px,env(safe-area-inset-bottom));z-index:3}.mobile-book a{width:100%}.offer footer{padding-bottom:95px}}
@media(max-width:560px){.nav{height:auto;min-height:82px;display:grid;grid-template-columns:1fr auto;padding:8px 0;gap:6px}.nav nav{grid-column:1/-1;grid-row:2;justify-content:space-between}.nav-contact{grid-column:2;grid-row:1;min-height:36px;padding:5px 13px}.brand{justify-self:start}.brand-crop{width:96px;height:37px}.brand img{width:116px;left:-10px;top:-18px}.hero{grid-template-columns:1fr;gap:20px;padding-block:25px 18px}.hero h1{max-width:17ch}.hero .photo{aspect-ratio:1.6}.quick a{padding:9px 7px;min-height:44px;font-size:.82rem}.quick span{display:none}.split,.offer-top{grid-template-columns:1fr;gap:20px}.section-head{align-items:flex-start}.section-head .button{white-space:nowrap;padding-inline:10px}.cards{gap:9px}.card-body{padding:8px 0 0}.card-body strong{font-size:1rem}.card-body span{font-size:.78rem}.offer-top>.photo{aspect-ratio:1.7}.footer{grid-template-columns:1fr 1fr}.footer>div:first-child{grid-column:1/-1}.offer-copy table{font-size:.8rem}.offer-copy th,.offer-copy td{padding:7px 4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.home-info { border-top: 1px solid var(--line); }
.home-compare { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0 24px; margin: 0; }
.home-compare > div { padding: 14px 0; border-bottom: 1px solid var(--line); }
.home-compare dt { font-weight: 650; margin-bottom: 4px; }
.home-compare dd { margin: 0; color: var(--copy); }
.home-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; padding-left: 22px; margin-bottom: 0; }
.home-steps li::marker { color: var(--accent); font-weight: 650; }
.home-steps p { margin: 5px 0 0; }
.home-faq { max-width: 760px; }
.home-faq details { padding: 13px 0; border-bottom: 1px solid var(--line); }
.home-faq details p { margin-bottom: 0; }
@media (max-width: 680px) {
  .home-compare { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 14px; }
  .home-steps { grid-template-columns: 1fr; gap: 14px; }
}

/* Home destination mosaic */
.home .hero { grid-template-columns: minmax(0,.86fr) minmax(0,1.14fr); }
.hero-scenes {
  display: grid;
  grid-template-columns: 1.24fr 1fr;
  grid-template-rows: repeat(2,minmax(0,1fr));
  gap: 8px;
  height: clamp(300px,37vw,430px);
}
.hero-scene {
  position: relative;
  display: flex;
  align-items: end;
  isolation: isolate;
  overflow: hidden;
  border-radius: 10px;
  padding: 12px;
  color: white;
  text-decoration: none;
}
.scene-desert { grid-row: span 2; }
.hero .hero-scene .photo {
  position: absolute;
  inset: 0;
  z-index: -2;
  aspect-ratio: auto;
  background: url('/assets/mood.png') var(--crop-position) / var(--crop-size) no-repeat;
  transition: transform .35s ease;
}
.hero .hero-scene .photo::before { content: none; }
.hero-scene::after {
  content: "";
  position: absolute;
  inset: 35% 0 0;
  z-index: -1;
  background: linear-gradient(transparent, #101b18dc);
}
.hero-scene span { font-weight: 650; font-size: .88rem; }
.hero-scene:hover .photo, .hero-scene:focus-visible .photo { transform: scale(1.045); }
.home .feature {
  grid-template-columns: minmax(0,1.35fr) minmax(0,1fr);
}
.home .feature .photo { aspect-ratio: 1.5; }
.home .quick a:hover { background: #f5f8f6; }
@media (max-width: 720px) {
  .home .hero, .home .feature { grid-template-columns: 1fr; }
  .hero-scenes { height: clamp(190px,50vw,320px); }
  .hero-scene { padding: 8px; }
  .hero-scene span { font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hero .hero-scene .photo { transition: none; }
  .hero-scene:hover .photo, .hero-scene:focus-visible .photo { transform: none; }
}
.destination-map {
  position: relative;
  min-height: 290px;
  margin-top: 22px;
  overflow: hidden;
  border: 1px solid #dfe8df;
  border-radius: 14px;
  background:
    linear-gradient(136deg, #dbeaf0 0 18%, transparent 18.3%),
    linear-gradient(148deg, #f0f4e9 0 43%, #e2eadb 43.2% 53%, #f5eadc 53.2%);
}
.map-water, .map-atlas, .map-origin, .map-pin { position: absolute; }
.map-water, .map-atlas { font-size: .78rem; color: #455b52; }
.map-water { top: 15%; left: 7%; }
.map-atlas { top: 78%; left: 32%; }
.map-origin, .map-pin {
  transform: translate(-50%, -50%);
  border-radius: 999px;
  white-space: nowrap;
  font-size: clamp(.68rem, 2.1vw, .9rem);
  font-weight: 650;
  padding: 5px 8px;
}
.map-origin { left: 43%; top: 44%; color: white; background: var(--ink); }
.map-pin {
  left: var(--x);
  top: var(--y);
  background: white;
  border: 1px solid #acbbae;
  text-decoration: none;
}
.map-pin:hover, .map-pin:focus-visible { color: white; background: var(--accent); }
.map-note { font-size: .82rem; margin: 8px 0 12px; }
@media (max-width: 540px) {
  .destination-map { min-height: 230px; }
  .map-pin:first-of-type { left: 14%; }
}
.home .site-header {position:absolute;inset:0 0 auto;color:white;border:0;background:linear-gradient(#131d19a0,transparent)}
.home .nav-contact {background:white;color:var(--ink)}
.reference-hero,.reference-banner {position:relative;isolation:isolate;overflow:hidden;text-align:center;color:white;background:#263c33}
.reference-hero {display:grid;place-items:center;min-height:clamp(420px,54vw,610px);padding:105px 0 65px}
.reference-hero .photo,.reference-banner .photo {position:absolute;top:50%;left:0;width:100%;transform:translateY(-50%);z-index:-2;border-radius:0}
.reference-hero::after,.reference-banner::after {content:"";position:absolute;inset:0;z-index:-1;background:#101e1980}
.reference-word {font-size:clamp(1.95rem,6.5vw,5.5rem);font-weight:400;line-height:1.05;letter-spacing:-.04em}
.reference-hero h1 {margin:16px auto 22px;max-width:36ch;font:400 clamp(.95rem,1.5vw,1.1rem)/1.4 var(--sans);letter-spacing:0}
.home .quick {position:relative;z-index:2;margin:-27px auto 0;background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 9px 25px #2035271a}
.reference-about {padding-top:58px}
.reference-about .photo {aspect-ratio:.82}
.reference-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.reference-about .reference-grid {grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}
.reference-grid span {padding:12px;background:#f5f6f4;border-radius:8px;font-weight:600;font-size:.9rem}
.reference-tint {background:#f6f7f5}
.reference-section,.home .home-info {text-align:center}
.reference-section p {margin-inline:auto}
.home h2 {font-family:var(--sans);font-weight:650}
#destinos .section-head {display:grid;justify-items:center;justify-content:center}
#destinos .card .photo {aspect-ratio:.82}
.reference-packages .cards {grid-template-columns:repeat(3,minmax(0,1fr));text-align:left}
.home .home-steps {text-align:left}
.reference-banner {padding:66px 0}
@media(max-width:680px) {
 .reference-grid,.reference-packages .cards {grid-template-columns:repeat(2,minmax(0,1fr))}
 .reference-hero {min-height:390px}
}
/* Landing page */
.home .site-header {position:relative;inset:auto;color:var(--ink);background:white;border:0}
.button:not(.outline):not(.light) {background:#194637;color:white;border-radius:9px}
h1,h2 {font-family:var(--sans);font-weight:650;letter-spacing:-.045em}
h1 em,h2 em {font-family:Georgia,serif;font-weight:400;letter-spacing:-.035em}
.landing-wash {background:radial-gradient(ellipse at 15% 4%,#f8ead6 0,transparent 25%),radial-gradient(ellipse at 75% 13%,#e4efe9 0,transparent 29%),radial-gradient(ellipse at 10% 64%,#e9f3f0 0,transparent 25%),radial-gradient(ellipse at 90% 90%,#f6eade 0,transparent 27%),transparent}
.landing-lead {padding-block:42px 28px}
.landing-lead h1 {max-width:17ch;font-size:calc(clamp(2.25rem,5vw,4.15rem) - var(--desktop-heading-reduction, 0px));margin-bottom:18px}
.landing-intro {margin:0 0 25px;padding-left:16px;border-left:2px solid var(--accent);max-width:52ch}
.landing-pair {display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;align-items:center}
.landing-visual,.landing-frame {position:relative;isolation:isolate}
.landing-visual>.photo,.landing-frame>.photo,.landing-contact .photo {clip-path:polygon(9% 0,100% 0,100% 88%,91% 100%,0 100%,0 12%)}
.landing-visual>.photo {aspect-ratio:1.9}
.landing-visual>.button {position:absolute;right:8px;bottom:8px}
.landing-panel {align-self:stretch;display:grid;align-content:center;background:#e4efe8;border-radius:18px;padding:clamp(16px,3vw,30px)}
.landing-panel h2 {font-size:calc(1.4rem - var(--desktop-heading-reduction, 0px))}
.landing-panel nav {display:grid}
.landing-panel a {display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid #a7baad;text-decoration:none;font-weight:600}
.landing-panel a:hover {text-decoration:underline}
.landing-editorial h2 {max-width:20ch;margin-bottom:22px}
.landing-editorial .landing-pair {grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(25px,7vw,80px)}
.landing-frame::before {content:"";position:absolute;inset:12px 12px -10px -10px;z-index:-1;background:#dcebe3;border-radius:14px}
.landing-frame>.photo {aspect-ratio:1.25}
.landing-reverse h2 {margin-left:auto;text-align:right}
.landing-reverse .landing-frame::before {background:#f4e4d7}
.landing-services {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center}
.landing-services a {display:grid;justify-items:center;gap:9px;padding:12px 6px;font-weight:650;text-decoration:none}
.landing-services a+a {border-left:1px solid var(--line)}
.landing-services span {display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#dcebe3}
.landing-services a:nth-child(2) span {background:#f7decc}
.landing-services a:nth-child(3) span {background:#ece6f6}
.landing-contact {background:#194637;color:white;padding:42px 0}
.landing-contact p {color:white}
.landing-contact .photo {aspect-ratio:1.45}
@media(max-width:650px) {
 .landing-pair,.landing-editorial .landing-pair {grid-template-columns:1fr}
 .landing-reverse h2 {margin-left:0;text-align:left}
 .landing-services a {font-size:.82rem}
 .landing-lead {padding-top:27px}
}
.landing-points {display:grid;gap:10px;padding-left:1.25em;margin:16px 0 22px;color:var(--copy)}
.landing-points li::marker {color:var(--accent);font-weight:650}
.landing-contact .landing-points {color:white}
.landing-contact .landing-points li::marker {color:#f4caaa}
.landing-section-intro {margin-bottom:12px}
.landing-faq details {max-width:760px;border-bottom:1px solid var(--line);padding:14px 0}
.landing-faq details p {margin:8px 0 0}
.landing-faq summary:hover,.landing-services a:hover {color:var(--accent)}
@media(max-width:650px) {
  .landing-editorial .landing-points {margin-bottom:16px}
  .landing-faq details {padding-block:12px}
}
.landing-interior .landing-wash { min-height: 60vh; padding-bottom: 32px; }
.landing-interior .section > h1,
.landing-interior .section > div > h1 {
  font-size:calc(clamp(2rem, 4vw, 3.5rem) - var(--desktop-heading-reduction, 0px));
}
.landing-interior .intro > p:not(.landing-intro),
.landing-interior .offer-top > div > p {
  border-left: 2px solid var(--accent);
  padding-left: 16px;
}
.landing-interior .split > .photo,
.landing-interior .card .photo {
  clip-path: polygon(9% 0,100% 0,100% 88%,91% 100%,0 100%,0 12%);
}
.landing-interior .card { background: transparent; }
.landing-interior .card-body { padding-inline: 4px; }
.landing-interior .booking { background: #e4efe8; border-color: #c6dbce; }
.landing-interior .split > .booking { position: static; }
.landing-interior .reading {
  padding: clamp(20px, 4vw, 42px);
  background: white;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.landing-interior .section.reading { margin-top: 28px; }
.landing-interior .reading h1 { font-size:calc(clamp(2rem, 4vw, 3.25rem) - var(--desktop-heading-reduction, 0px)); }
.landing-interior .guide-links { max-width: 780px; }
.landing-interior .mobile-book .button { width: 100%; }
.offer .offer-top { align-items:center; padding-block:34px 48px; }
.offer .offer-top .landing-frame > .photo { aspect-ratio:1.25; }
.offer .facts { gap:10px; border:0; padding:0; }
.offer .facts > div { padding:8px 12px; background:#e4efe8; border-radius:8px; }
.offer .offer-copy > section { padding-block:22px; }
.offer .offer-copy .timeline { list-style:none; padding:0 0 0 14px; margin-left:5px; border-left:1px solid #a9c3b4; }
.offer .timeline li { position:relative; padding:7px 0 13px 6px; }
.offer .timeline li::before { content:""; position:absolute; left:-19px; top:15px; width:9px; height:9px; border-radius:50%; background:var(--accent); }
.offer .timeline li strong,.offer .timeline li span { display:block; }
.offer .timeline li span { color:var(--copy); margin-top:3px; }
@media(max-width:560px) {
 .offer .offer-top { padding-block:24px 32px; }
 .offer .offer-top .landing-frame > .photo { aspect-ratio:1.55; }
 .offer .facts > div { padding:6px 8px; }
}
/* Rappely visual tokens for Visitas a Marruecos */
:root {
 --surface:#fff;
 --ink:#17212b;
 --muted:#667085;
 --line:#e5e9ee;
 --brand:#146c60;
 --brand-hover:#10594f;
 --brand-light:#eaf5f1;
 --canvas-subtle:#f7f8fa;
 --copy:var(--muted);
 --accent:var(--brand);
 --sans:Manrope,Arial,sans-serif;
}
body,.home .site-header {background:transparent}
h1,h2,.home h1,.home h2,.footer-brand {font-family:var(--sans);font-weight:800}
.home h1 em,.home h2 em {font-family:inherit;font-weight:inherit;font-style:normal;color:var(--brand)}
.button,.home .button:not(.outline):not(.light),.home .nav-contact {
 border-radius:999px;
}
.button:not(.outline):not(.light),.home .button:not(.outline):not(.light) {background:var(--brand);color:white}
.button:not(.outline):not(.light):hover,.home .button:not(.outline):not(.light):hover {background:var(--brand-hover);filter:none}
.button.outline {border-color:var(--line);color:var(--brand)}
.landing-panel,.landing-interior .booking,.landing-interior .reading {
 background:transparent;border:0;border-radius:0;
}
.landing-panel,.landing-interior .booking {border-inline-start:1px solid var(--line)}
.landing-interior .reading {padding-inline:0}
.landing-panel a {border-color:var(--line)}
.landing-frame::before {content:none}
.landing-frame>.photo,.landing-visual>.photo,.landing-interior .split>.photo,.landing-contact .photo {
 clip-path:none;border-radius:24px;
}
.landing-contact {background:var(--brand-light);color:var(--ink)}
.landing-contact p,.landing-contact .landing-points {color:var(--copy)}
.landing-contact .landing-points li::marker {color:var(--brand)}
.offer .facts {padding-block:9px;border-block:1px solid var(--line)}
.offer .facts>div {padding:6px 12px;background:transparent;border-radius:0;font-variant-numeric:tabular-nums}
.request select,.request input {
 min-height:48px;padding:9px 12px;border:1px solid var(--line);
 border-radius:17px;background:var(--canvas-subtle);font-size:16px;
}
.filters button[aria-pressed=true] {background:var(--brand-light);color:var(--brand)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {outline-color:var(--brand)}
.offer-list {border-top:1px solid var(--line)}
.offer-row {border-bottom:1px solid var(--line)}
.offer-row>a {
 display:grid;grid-template-columns:clamp(72px,13vw,148px) minmax(0,1fr);
 align-items:center;gap:clamp(12px,3vw,28px);padding:12px 0;text-decoration:none;
}
.offer-row .photo {aspect-ratio:1.2;border-radius:12px}
.offer-row-copy {display:grid;gap:4px}
.offer-row-copy strong {font-size:clamp(1rem,2vw,1.2rem);font-weight:800}
.offer-row-copy span {font-size:.9rem;color:var(--muted)}
.offer-row>a:hover strong {color:var(--brand);text-decoration:underline;text-underline-offset:4px}
@media(max-width:650px) {
 .nav {grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid;height:auto;padding-block:8px;gap:8px}
 .nav .brand {grid-column:2;grid-row:1;justify-self:center}
 .nav .nav-contact {grid-column:3;grid-row:1;justify-self:end;min-height:44px}
 .nav nav {grid-column:1/-1;grid-row:2;justify-content:space-between;flex-wrap:wrap}
 .landing-panel,.landing-interior .booking {border-inline-start:0;border-top:1px solid var(--line);padding-inline:0}
 .offer .mobile-book {inset-inline:18px;bottom:max(8px,env(safe-area-inset-bottom));border:0;border-radius:999px;background:#17212b;padding:5px}
 .offer .mobile-book .button {min-height:44px}
}
@media (min-width: 801px) { :root { --desktop-heading-reduction: 6px; } }

@media (min-width: 1024px) {
  .wrap { width: min(1360px, calc(100% - 64px)); }
  .wrap.reading { max-width: 820px; }
}

/* ===== Homepage · Visitas a Marruecos ===== */
.home {
 --sand:#f8ead6; --mint:#e1efe8; --peach:#f7dfcf; --lilac:#ebe6f6; --sky:#e3eef4;
 --terra:#c0633a; --serif-accent:'Instrument Serif',Georgia,serif;
}
/* Colour wash on the whole page top, so it also runs under the transparent navbar */
body,body.home {
 background:
  radial-gradient(ellipse 55% 520px at 0% 0%,#f8ead6 0,transparent 72%),
  radial-gradient(ellipse 50% 560px at 100% 0%,#e1efe8 0,transparent 72%),
  radial-gradient(ellipse 40% 420px at 50% 380px,#ebe6f6 0,transparent 75%),
  #fff;
 background-repeat:no-repeat;
}
.site-header,.home .site-header {background:transparent;border-bottom:0}
/* Interior pages: one continuous wash on body instead of a second layer on main (no seam under the navbar) */
body.landing-interior {
 background:
  radial-gradient(ellipse 55% 520px at 0% 0%,#f8ead6 0,transparent 72%),
  radial-gradient(ellipse 50% 560px at 100% 0%,#e1efe8 0,transparent 72%),
  radial-gradient(ellipse 40% 420px at 50% 380px,#ebe6f6 0,transparent 75%),
  radial-gradient(ellipse 35% 25% at 5% 65%,#e9f3f0 0,transparent 70%),
  radial-gradient(ellipse 35% 25% at 95% 92%,#f6eade 0,transparent 70%),
  #fff;
 background-repeat:no-repeat;
}
.landing-interior main.landing-wash {background:none}
.home main {overflow-x:clip}
.home h1 em,.home h2 em {font-family:var(--serif-accent);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--brand)}
.home h2 {font-size:calc(clamp(1.9rem,3.4vw,3rem) - var(--desktop-heading-reduction,0px));letter-spacing:-.035em;line-height:1.08}
.home .section {padding-block:clamp(48px,7vw,96px)}
.home img {display:block;max-width:100%;height:auto}
.button.ghost {background:transparent;color:white;border-color:#ffffff8c}
.button.ghost:hover {background:#ffffff1f}

.hp-wash {position:relative}
.hp-wash-b {background:radial-gradient(ellipse 40% 30% at 0% 10%,var(--peach) 0,transparent 70%),radial-gradient(ellipse 45% 35% at 100% 55%,var(--mint) 0,transparent 70%),radial-gradient(ellipse 35% 25% at 15% 95%,var(--sand) 0,transparent 70%)}
.hp-wash-c {background:radial-gradient(ellipse 40% 30% at 100% 5%,var(--sky) 0,transparent 70%),radial-gradient(ellipse 45% 35% at 0% 60%,var(--lilac) 0,transparent 70%),radial-gradient(ellipse 40% 25% at 90% 100%,var(--peach) 0,transparent 70%)}
.hp-wash-d {background:radial-gradient(ellipse 45% 25% at 5% 5%,var(--mint) 0,transparent 70%),radial-gradient(ellipse 40% 30% at 100% 45%,var(--sand) 0,transparent 70%),radial-gradient(ellipse 40% 25% at 10% 90%,var(--sky) 0,transparent 70%)}

.hp-eyebrow {display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--terra)}
.hp-eyebrow::before {content:"";width:22px;height:1.5px;background:currentColor}
.hp-head {max-width:680px;margin:0 auto clamp(28px,4vw,48px);text-align:center}
.hp-head .hp-eyebrow::after {content:"";width:22px;height:1.5px;background:currentColor}
.hp-head p:not(.hp-eyebrow) {margin-inline:auto}
.hp-center {display:flex;justify-content:center;margin-top:clamp(28px,4vw,44px)}
.hp-actions {display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.hp-arrow {display:inline-grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;background:#fff;color:var(--brand);border:1px solid var(--line);transition:transform .25s,background .25s,color .25s}
.hp-arrow svg {width:16px;height:16px}
.hp-icon {display:inline-grid;place-items:center;width:46px;height:46px;flex:none;border-radius:50%;background:var(--mint);color:var(--brand)}

/* Frames: photo with offset colour block, as in the landing reference */
.hp-frame {position:relative;isolation:isolate}
.hp-frame::before {content:"";position:absolute;inset:18px -18px -18px 18px;z-index:-1;border-radius:28px;background:var(--frame,var(--mint))}
.hp-frame img {width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:28px;clip-path:polygon(9% 0,100% 0,100% 89%,91% 100%,0 100%,0 11%)}
.hp-frame-mint {--frame:var(--mint)} .hp-frame-peach {--frame:var(--peach)} .hp-frame-sand {--frame:var(--sand)} .hp-frame-lilac {--frame:var(--lilac)}

/* Hero */
.hp-hero {position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,5vw,72px);align-items:center;padding-block:clamp(28px,5vw,64px) clamp(36px,5vw,56px)}
.hp-orbit {position:absolute;right:-180px;top:-120px;width:620px;height:620px;fill:none;stroke:#d9cfc0;stroke-width:1;pointer-events:none;z-index:-1}
.hp-orbit .hp-star {fill:var(--terra);stroke:none}
.hp-hero h1 {font-size:calc(clamp(2.3rem,5vw,4.3rem) - var(--desktop-heading-reduction,0px));line-height:1.02;letter-spacing:-.05em;margin-bottom:22px}
.hp-hero h1 em {display:inline-block}
.hp-lead {font-size:1.12rem;max-width:46ch;padding-left:16px;border-left:2px solid var(--terra);margin-bottom:28px}
.hp-stats {display:flex;flex-wrap:wrap;gap:12px 36px;margin:34px 0 0;padding-top:22px;border-top:1px solid var(--line)}
.hp-stats dt {font-size:.78rem;color:var(--muted)}
.hp-stats dd {margin:2px 0 0;font-size:1.45rem;font-weight:800;letter-spacing:-.03em}
.hp-hero-visual {position:relative}
.hp-hero-visual .hp-frame img {aspect-ratio:1.12}
.hp-float {position:absolute;left:-28px;bottom:-26px;display:flex;align-items:center;gap:12px;margin:0;padding:10px 18px 10px 10px;background:#ffffffeb;backdrop-filter:blur(8px);border-radius:20px;box-shadow:0 18px 40px #17212b1f;max-width:300px}
.hp-float img {width:64px;height:64px;object-fit:cover;border-radius:14px}
.hp-float figcaption {display:grid;gap:2px;font-size:.85rem;color:var(--muted)}
.hp-float strong {color:var(--ink);font-size:.98rem}

/* Duration picker */
.hp-duration {display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(16px,3vw,40px);align-items:center;padding:clamp(16px,2.5vw,24px) clamp(18px,3vw,32px);background:#ffffffc7;backdrop-filter:blur(10px);border:1px solid #fff;border-radius:28px;box-shadow:0 20px 50px #17212b0f}
.hp-duration-title {margin:0;font-size:calc(clamp(1.4rem,2.2vw,1.9rem) - var(--desktop-heading-reduction,0px))!important}
.hp-duration-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.hp-duration-list a {display:flex;align-items:center;gap:14px;padding:10px;border-radius:20px;text-decoration:none;transition:background .25s}
.hp-duration-list a:hover {background:var(--mint)}
.hp-duration-list a:hover .hp-arrow,.hp-card a:hover .hp-arrow {background:var(--brand);color:#fff;transform:rotate(45deg)}
.hp-duration-list img {width:60px;height:60px;object-fit:cover;border-radius:16px}
.hp-duration-list a>span:nth-child(2) {display:grid;flex:1;min-width:0}
.hp-duration-list strong {font-size:1.05rem}
.hp-duration-list a>span>span {font-size:.85rem;color:var(--muted)}

/* Split sections */
.hp-split {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,7vw,100px);align-items:center}
.hp-split h2 {max-width:16ch}
.hp-split p {font-size:1.05rem}
.hp-features {display:grid;grid-template-columns:1fr 1fr;gap:14px;list-style:none;padding:0;margin:26px 0 30px}
.hp-features li {display:grid;gap:6px;padding:18px;background:#ffffffb3;border:1px solid var(--line);border-radius:20px}
.hp-features .hp-icon {width:40px;height:40px;margin-bottom:4px}
.hp-features li:nth-child(2) .hp-icon {background:var(--peach);color:var(--terra)}
.hp-features li:nth-child(3) .hp-icon {background:var(--lilac);color:#5b4b8a}
.hp-features li:nth-child(4) .hp-icon {background:var(--sky);color:#2d6380}
.hp-features span:last-child {font-size:.88rem;color:var(--muted)}

/* Offer cards */
.hp-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,28px)}
.hp-card a {display:flex;flex-direction:column;height:100%;padding:10px;background:#fff;border:1px solid var(--line);border-radius:26px;text-decoration:none;transition:transform .3s,box-shadow .3s}
.hp-card a:hover {transform:translateY(-4px);box-shadow:0 22px 44px #17212b14}
.hp-card-media {position:relative;display:block;overflow:hidden;border-radius:18px}
.hp-card-media img {width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
.hp-card a:hover .hp-card-media img {transform:scale(1.05)}
.hp-chip {position:absolute;left:12px;top:12px;padding:5px 11px;border-radius:999px;background:#ffffffe6;font-size:.78rem;font-weight:700}
.hp-card-body {display:flex;flex-direction:column;gap:6px;flex:1;padding:16px 8px 6px}
.hp-card-body strong {font-size:1.18rem;letter-spacing:-.02em}
.hp-card-body>span:not(.hp-card-foot) {font-size:.9rem;color:var(--muted)}
.hp-card-foot {display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px}
.hp-card-foot b {color:var(--brand)}

/* Services strip */
.hp-services {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center}
.hp-services a {display:grid;justify-items:center;gap:8px;padding:18px clamp(10px,2vw,28px);text-decoration:none}
.hp-services a+a {border-left:1px solid var(--line)}
.hp-services a:nth-child(2) .hp-icon {background:var(--peach);color:var(--terra)}
.hp-services a:nth-child(3) .hp-icon {background:var(--lilac);color:#5b4b8a}
.hp-services span:last-child {font-size:.88rem;color:var(--muted)}
.hp-services a:hover strong {color:var(--brand)}

/* Merzouga */
.hp-reverse>div:first-child {order:0}
.hp-timeline {list-style:none;margin:24px 0 28px;padding:0 0 0 22px;border-left:1.5px dashed #b7cfc3}
.hp-timeline li {position:relative;display:grid;gap:3px;padding:0 0 18px 8px}
.hp-timeline li::before {content:"";position:absolute;left:-30px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--terra);box-shadow:0 0 0 5px var(--peach)}
.hp-timeline span {color:var(--muted);font-size:.95rem}
.hp-price {font-weight:800;color:var(--brand);font-size:1.1rem}
.hp-stack {position:relative;padding-bottom:60px}
.hp-stack-small {position:absolute;right:-12px;bottom:0;width:44%;aspect-ratio:1;object-fit:cover;border-radius:24px;border:6px solid #fff;box-shadow:0 18px 40px #17212b26}

/* Mosaic */
.hp-mosaic {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(170px,19vw,250px);gap:14px}
.hp-tile {position:relative;margin:0;overflow:hidden;border-radius:22px;isolation:isolate}
.hp-tile.big {grid-column:span 2;grid-row:span 2}
.hp-tile.wide {grid-column:span 2}
.hp-tile img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .6s}
.hp-tile:hover img {transform:scale(1.06)}
.hp-tile::after {content:"";position:absolute;inset:40% 0 0;z-index:-1;background:linear-gradient(transparent,#10201bd9)}
a.hp-tile {display:block;color:#fff;text-decoration:none}
.hp-tile-cap {position:absolute;inset:auto 0 0;display:grid;gap:3px;padding:16px;color:#fff}
.hp-tile-cap strong {font-size:1.05rem}
.hp-tile-cap span {font-size:.82rem;opacity:.9;line-height:1.4}
.hp-tile.big .hp-tile-cap {padding:26px}
.hp-tile.big .hp-tile-cap strong {font-size:1.6rem}
.hp-tile.big .hp-tile-cap span {font-size:.95rem;max-width:44ch}
a.hp-tile:hover .hp-tile-cap strong {text-decoration:underline;text-underline-offset:4px}

/* Logo: trimmed transparent PNG, no crop box */
.brand img {position:static;display:block;width:auto;height:46px;max-width:none;left:auto;top:auto}

/* Shorter hero image on inner pages (catalogues, destinations) and product pages */
.dest .hp-hero {padding-block:clamp(20px,3.5vw,44px) clamp(28px,4vw,44px)}
/* Inner pages: banner-shaped hero images, never tall */
.dest .hp-hero {align-items:center}
.dest .hp-hero-visual .hp-frame img {aspect-ratio:2/1}
.dest .hp-split .hp-frame img {aspect-ratio:4/3}
.offer .offer-top .landing-frame img {display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:24px}
.hp-tight-bottom {padding-bottom:12px!important}
@media (max-width:650px) {
 .dest .hp-hero-visual .hp-frame img,.offer .offer-top .landing-frame img,.dest .hp-split .hp-frame img {aspect-ratio:2/1}
}

/* ===== Footer (all pages) ===== */
.hp-footer {position:relative;margin-top:0;padding:clamp(48px,6vw,80px) 0 0;border-top:1px solid #e5e9ee;
 background:radial-gradient(ellipse 50% 90% at 0% 100%,#f8ead6 0,transparent 70%),radial-gradient(ellipse 45% 90% at 100% 0%,#e1efe8 0,transparent 70%),#fbfaf7}
.hp-footer-top {display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
.hp-footer-brand .brand img {height:52px}
.hp-footer-brand p {margin:16px 0 14px;max-width:40ch;color:#667085}
.hp-footer-contact {list-style:none;margin:0 0 20px;padding:0;display:grid;gap:6px;font-size:.92rem;color:#17212b}
.hp-footer-contact a {text-decoration:none}
.hp-footer-contact a:hover {color:#146c60;text-decoration:underline}
.hp-footer-col {display:grid;align-content:start;gap:10px}
.hp-footer-title {margin:0 0 4px;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#c0633a}
.hp-footer-col a {text-decoration:none;font-size:.95rem;color:#17212b}
.hp-footer-col a:hover {color:#146c60;text-decoration:underline;text-underline-offset:3px}
.hp-footer-bottom {display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin-top:clamp(36px,5vw,56px);padding:22px 0 28px;border-top:1px solid #e5e9ee;font-size:.85rem;color:#667085}
.hp-footer-bottom nav {display:flex;flex-wrap:wrap;gap:8px 20px}
.hp-footer-bottom a {text-decoration:none}
.hp-footer-bottom a:hover {color:#146c60;text-decoration:underline}
.offer .hp-footer {padding-bottom:0}
@media (max-width:900px) {
 .hp-footer-top {grid-template-columns:repeat(3,minmax(0,1fr))}
 .hp-footer-brand {grid-column:1/-1}
}
@media (max-width:560px) {
 .hp-footer-top {grid-template-columns:1fr 1fr}
 .hp-footer-col:last-child {grid-column:1/-1}
 .offer .hp-footer-bottom {padding-bottom:90px}
}

/* ===== Cookie banner ===== */
.cookie-banner {position:fixed;left:16px;bottom:16px;z-index:30;display:grid;gap:12px;width:min(520px,calc(100% - 32px));padding:18px 20px;background:#fff;border:1px solid #e5e9ee;border-radius:22px;box-shadow:0 24px 60px #17212b29;font-size:.92rem}
.cookie-banner p {margin:0;color:#3f4a56;max-width:none}
.cookie-banner a {color:#146c60}
.cookie-actions {display:flex;justify-content:flex-end;gap:8px}
.cookie-actions .button {min-height:40px;padding:8px 20px}
.cookie-settings {padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.cookie-settings:hover {color:#146c60;text-decoration:underline}
@media (max-width:560px) {.cookie-actions .button {flex:1}}

/* ===== Contact ===== */
.hp-contact-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:clamp(12px,2vw,24px)}
.hp-contact-card {display:grid;align-content:start;gap:6px;padding:26px;border-radius:26px;background:var(--bg,#fff);text-decoration:none;transition:transform .25s,box-shadow .25s}
.hp-contact-card:nth-child(1) {--bg:var(--mint)} .hp-contact-card:nth-child(2) {--bg:var(--sand)} .hp-contact-card:nth-child(3) {--bg:var(--sky)}
.hp-contact-card:hover {transform:translateY(-3px);box-shadow:0 18px 36px #17212b12}
.hp-contact-card .hp-icon {background:#fff;margin-bottom:10px}
.hp-contact-card strong {font-size:1.15rem}
.hp-contact-card b {color:var(--brand);word-break:break-word}
.hp-contact-card span:last-child {color:#3f4a56;font-size:.92rem}
.hp-contact-split {align-items:start}
.hp-checklist {list-style:none;padding:0;margin:20px 0 0;display:grid;gap:10px}
.hp-checklist li {position:relative;padding-left:32px;color:#3f4a56}
.hp-checklist li::before {content:"";position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:50%;background:var(--mint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23146c60' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/12px no-repeat}
.hp-form-card {padding:clamp(20px,3vw,32px);background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:0 20px 50px #17212b0f}
.hp-form-card h3 {font-size:1.35rem;letter-spacing:-.02em}
.hp-form-card .direct {margin-top:4px}
@media (max-width:900px) {.hp-contact-cards {grid-template-columns:1fr}}

/* ===== Articles (guides, legal) ===== */
.hp-article-head {max-width:860px;margin:0 auto;text-align:center;padding-block:clamp(20px,4vw,48px) clamp(20px,3vw,32px)}
.hp-article-head .hp-lead {border:0;padding:0;margin-inline:auto}
.hp-byline {font-size:.85rem;color:var(--muted)}
.hp-article-hero {max-width:1040px}
.hp-article-hero .hp-frame img {aspect-ratio:21/9}
.hp-article {max-width:780px}
.home .hp-article h2 {font-size:calc(clamp(1.4rem,2.2vw,1.85rem) - var(--desktop-heading-reduction,0px));margin:40px 0 12px}
.hp-article h2:first-child {margin-top:0}
.hp-article p,.hp-article li {font-size:1.05rem;line-height:1.7;color:#3f4a56;max-width:none}
.hp-article ul,.hp-article ol {display:grid;gap:8px;padding-left:1.25em}
.hp-article li::marker {color:var(--terra);font-weight:700}
.hp-article a {color:var(--brand);text-underline-offset:3px}
.hp-article table {margin:8px 0 8px;background:#ffffffc7;border:1px solid var(--line);border-radius:18px;border-collapse:separate;border-spacing:0;overflow:hidden}
.hp-article th,.hp-article td {padding:12px 16px}
.hp-article thead th {font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hp-article tbody tr:last-child>* {border-bottom:0}
.hp-note {margin-top:36px;padding:18px 22px;border-radius:20px;background:var(--sand);color:#5c4630!important;font-size:.95rem!important}
.hp-faq-nav {display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.hp-faq-nav a {padding:9px 18px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:650;font-size:.9rem;text-decoration:none}
.hp-faq-nav a:hover {border-color:var(--brand);color:var(--brand)}
.hp-faq[id] {scroll-margin-top:16px}
.home .hp-faq[id] + .hp-faq[id] {padding-top:clamp(8px,2vw,24px)}
.hp-hero-center .hp-actions {margin-top:8px}
.hp-article-head p {margin-inline:auto}
@media (max-width:650px) {
 .hp-article-hero .hp-frame img {aspect-ratio:2/1}
 .hp-article table {display:block;overflow-x:auto;font-size:.85rem}
 .hp-article th,.hp-article td {padding:10px 12px}
}

/* ===== Catalogue pages (excursiones, circuitos, actividades) ===== */
.hp-filters {justify-content:center;gap:8px;margin:-8px 0 28px}
.hp-filters button {padding:9px 18px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-weight:650;font-size:.9rem}
.hp-filters button:hover {border-color:var(--brand);color:var(--brand)}
.hp-filters button[aria-pressed=true] {background:var(--brand);border-color:var(--brand);color:#fff}
.hp-cards-few {grid-template-columns:repeat(auto-fit,minmax(280px,400px));justify-content:center}
.hp-compare {overflow-x:auto;background:#ffffffc7;border:1px solid var(--line);border-radius:24px}
.hp-compare table {min-width:640px;font-size:.95rem}
.hp-compare th,.hp-compare td {padding:16px 20px;border-bottom:1px solid var(--line);vertical-align:middle}
.hp-compare thead {background:transparent}
.hp-compare thead th {font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.hp-compare tbody tr:last-child>* {border-bottom:0}
.hp-compare tbody th a {font-weight:800;text-decoration:none}
.hp-compare tbody th a:hover {color:var(--brand);text-decoration:underline}
.hp-compare td {color:var(--muted)}
.hp-compare td b {color:var(--brand);white-space:nowrap}
/* Grids of exactly 4: no orphan card on the last row */
.hp-cards:has(> :nth-child(4):last-child),.hp-dest-grid:has(> :nth-child(4):last-child) {grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px) {
 .hp-cards:has(> :nth-child(4):last-child),.hp-dest-grid:has(> :nth-child(4):last-child) {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:650px) {
 .hp-cards:has(> :nth-child(4):last-child),.hp-dest-grid:has(> :nth-child(4):last-child) {grid-template-columns:1fr}
 /* Comparison table becomes stacked cards */
 .hp-compare {overflow:visible;background:none;border:0}
 .hp-compare table {min-width:0}
 .hp-compare thead {display:none}
 .hp-compare table,.hp-compare tbody,.hp-compare tr,.hp-compare th,.hp-compare td {display:block}
 .hp-compare tr {margin-bottom:12px;padding:16px 18px;background:#ffffffc7;border:1px solid var(--line);border-radius:20px}
 .hp-compare tbody th,.hp-compare td {padding:4px 0;border:0}
 .hp-compare tbody th {font-size:1.05rem;margin-bottom:4px}
 .hp-compare td {display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px}
 .hp-compare td::before {content:attr(data-label);font-size:.78rem;font-weight:700;color:var(--ink)}
}

/* ===== Destination pages ===== */
.dest .crumb {padding-top:6px}
.hp-sticky {align-items:start}
.hp-sticky .hp-frame {position:sticky;top:24px}
.hp-highlights {display:grid;gap:12px;list-style:none;margin:26px 0 0;padding:0}
.hp-highlights li {display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 14px;padding:16px 18px;background:#ffffffb3;border:1px solid var(--line);border-radius:20px}
.hp-highlights strong {font-size:1.02rem}
.hp-highlights span:last-child {color:var(--muted);font-size:.92rem}
.hp-hl-num {grid-row:span 2;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--peach);color:var(--terra);font-weight:800;font-size:.85rem}
.hp-highlights li:nth-child(3n+2) .hp-hl-num {background:var(--mint);color:var(--brand)}
.hp-highlights li:nth-child(3n) .hp-hl-num {background:var(--lilac);color:#5b4b8a}
.hp-soon {display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px 24px;align-items:center;max-width:980px;margin:0 auto;padding:clamp(20px,3vw,32px);background:#ffffffc7;border:1px dashed #b7cfc3;border-radius:28px}
.hp-soon strong {font-size:1.15rem}
.hp-soon p {margin:6px 0 0;color:var(--muted)}
.hp-gallery {display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.hp-gallery img {width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:22px}
.hp-info {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.hp-info article {padding:26px;border-radius:26px;background:var(--bg,#fff)}
.hp-info article:nth-child(1) {--bg:var(--mint)} .hp-info article:nth-child(2) {--bg:var(--sand)} .hp-info article:nth-child(3) {--bg:var(--sky)}
.hp-info .hp-icon {background:#fff;margin-bottom:14px}
.hp-info h3 {font-size:1.2rem;letter-spacing:-.02em;margin-bottom:8px}
.hp-info p,.hp-info li {color:#3f4a56;font-size:.95rem}
.hp-info ul {margin:0;padding-left:1.1em;display:grid;gap:6px}
.hp-dest-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.hp-dest-grid .hp-tile {aspect-ratio:4/3}
.hp-dest-grid:has(> :nth-child(2):last-child) {grid-template-columns:repeat(2,minmax(0,1fr))}
.hp-dest-grid:has(> :nth-child(2):last-child) .hp-tile {aspect-ratio:16/9}
.hp-group + .hp-group {margin-top:clamp(36px,5vw,64px)}
.hp-group-head {display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.hp-group-head h2 {margin:0;font-size:calc(clamp(1.5rem,2.4vw,2.1rem) - var(--desktop-heading-reduction,0px))}
.hp-group-head p {margin:0;color:var(--muted)}
.hp-hero-center {text-align:center;max-width:820px;margin-inline:auto;padding-block:clamp(28px,5vw,64px) clamp(12px,2vw,24px)}
.hp-hero-center .hp-lead {border:0;padding:0;margin-inline:auto}
@media (max-width:900px) {
 .hp-info {grid-template-columns:1fr}
 .hp-dest-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 .hp-sticky .hp-frame {position:relative;top:0}
 .hp-soon {grid-template-columns:auto 1fr}
 .hp-soon .hp-actions {grid-column:1/-1}
}
@media (max-width:650px) {
 .hp-dest-grid,.hp-dest-grid:has(> :nth-child(2):last-child) {grid-template-columns:1fr}
 .hp-dest-grid:has(> :nth-child(2):last-child) .hp-tile {aspect-ratio:4/3}
 .hp-group-head {flex-direction:column;align-items:start}
 .nav nav {flex-wrap:nowrap;overflow-x:auto;gap:18px;font-size:.88rem;scrollbar-width:none;justify-content:flex-start}
 .nav nav::-webkit-scrollbar {display:none}
 .nav nav a {white-space:nowrap}
 .brand img {height:36px}
}

/* Steps */
.hp-steps {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,3vw,40px);list-style:none;margin:0;padding:0;position:relative}
.hp-steps::before {content:"";position:absolute;left:12%;right:12%;top:30px;border-top:1.5px dashed #c9d4cf;z-index:-1}
.hp-steps li {display:grid;justify-items:center;gap:8px;text-align:center}
.hp-steps span:last-child {color:var(--muted);font-size:.93rem;max-width:30ch}
.hp-step-num {display:grid;place-items:center;width:60px;height:60px;margin-bottom:6px;border-radius:50%;background:#fff;border:1px solid var(--line);font-weight:800;color:var(--brand);box-shadow:0 10px 24px #17212b12}
.hp-steps li:nth-child(2) .hp-step-num {color:var(--terra)}

/* Seasons and tips */
.hp-seasons {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.hp-season {padding:24px;border-radius:24px;background:var(--bg)}
.hp-season-0 {--bg:var(--mint)} .hp-season-1 {--bg:var(--sand)} .hp-season-2 {--bg:var(--peach)} .hp-season-3 {--bg:var(--sky)}
.hp-season strong {display:block;font-size:1.25rem;letter-spacing:-.02em}
.hp-season-months {display:block;margin:2px 0 12px;font-size:.82rem;font-weight:700;color:var(--terra)}
.hp-season p {margin:0;font-size:.92rem;color:#3f4a56}
.hp-tips {display:grid;gap:0;margin:20px 0 0}
.hp-tips>div {display:grid;grid-template-columns:130px minmax(0,1fr);gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.hp-tips dt {font-weight:800}
.hp-tips dd {margin:0;color:var(--muted)}

/* Guides */
.hp-guides {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.2vw,28px)}
.hp-guides a {display:flex;flex-direction:column;gap:8px;text-decoration:none}
.hp-guides img {width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:22px;margin-bottom:8px;transition:transform .4s}
.hp-guides a:hover img {transform:translateY(-4px)}
.hp-guides strong {font-size:1.1rem;line-height:1.3;letter-spacing:-.02em}
.hp-guides a:hover strong {color:var(--brand);text-decoration:underline;text-underline-offset:4px}
.hp-guides span {font-size:.9rem;color:var(--muted)}

/* FAQ */
.hp-faq {display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,6vw,90px);align-items:start}
.hp-faq details {padding:18px 4px;border-bottom:1px solid var(--line)}
.hp-faq details:first-child {border-top:1px solid var(--line)}
.hp-faq summary {display:flex;justify-content:space-between;gap:16px;list-style:none;font-size:1.04rem}
.hp-faq summary::-webkit-details-marker {display:none}
.hp-faq summary::after {content:"+";flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--mint);color:var(--brand);font-weight:700;transition:transform .25s}
.hp-faq details[open] summary::after {transform:rotate(45deg)}
.hp-faq details p {margin:10px 0 0;color:var(--muted)}

/* CTA banner */
.hp-cta {position:relative;isolation:isolate;overflow:hidden;padding:clamp(80px,11vw,140px) 0;text-align:center;color:#fff}
.hp-cta-bg {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hp-cta::after {content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#0f2a24b3,#0f2a24d9)}
.hp-cta h2 {color:#fff;max-width:18ch;margin-inline:auto}
.home .hp-cta h2 em {color:#f6c9a8}
.hp-cta p {color:#ffffffd9;margin-inline:auto;font-size:1.08rem;margin-bottom:28px}
.hp-cta .hp-actions {justify-content:center}

@media (max-width:900px) {
 .hp-hero,.hp-split,.hp-faq {grid-template-columns:1fr}
 .hp-orbit {right:-260px;top:-60px}
 .hp-duration {grid-template-columns:1fr}
 .hp-reverse .hp-stack {order:-1}
 .hp-cards,.hp-guides {grid-template-columns:repeat(2,minmax(0,1fr))}
 .hp-seasons {grid-template-columns:repeat(2,minmax(0,1fr))}
 .hp-mosaic {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:650px) {
 .home .wrap {width:calc(100% - 32px)}
 .hp-orbit {display:none}
 .hp-frame::before {inset:12px -8px -10px 10px}
 .hp-float {left:10px;bottom:-22px;max-width:calc(100% - 20px)}
 .hp-hero-visual {margin-bottom:22px}
 .hp-duration-list,.hp-cards,.hp-guides,.hp-features {grid-template-columns:1fr}
 .hp-services {grid-template-columns:1fr;text-align:left}
 .hp-services a {grid-template-columns:auto 1fr;justify-items:start;column-gap:14px;padding:14px 0}
 .hp-services a .hp-icon {grid-row:span 2}
 .hp-services a+a {border-left:0;border-top:1px solid var(--line)}
 .hp-steps {grid-template-columns:1fr}
 .hp-steps::before {display:none}
 .hp-seasons {grid-template-columns:1fr}
 .hp-mosaic {grid-auto-rows:170px;gap:10px}
 .hp-tile.big {grid-row:span 2}
 .hp-tile-cap {padding:12px}
 .hp-mosaic .hp-tile:not(.big) .hp-tile-cap span {display:none}
 .hp-tips>div {grid-template-columns:1fr;gap:4px}
 .hp-stack-small {right:0;width:40%}
}
@media (prefers-reduced-motion:reduce) {
 .hp-card a,.hp-card-media img,.hp-tile img,.hp-guides img,.hp-arrow {transition:none}
 .hp-card a:hover,.hp-card a:hover .hp-card-media img,.hp-tile:hover img {transform:none}
}