/* The live site's two illustrated features keep their own type and artwork. */
.cv-home {margin:0;background:var(--ivory,#f9f7f1);color:var(--ink,#19362f);--cv-gutter:max(16px,env(safe-area-inset-left),env(safe-area-inset-right));--cv-section-start:24px;--cv-section-end:28px}
.cv-home .page-width,:is(.cv-home,.apocv-main-site) .header-inner,.cv-home .cv-hero-inner {width:min(100% - 2 * var(--cv-gutter),1148px);max-width:none;margin-inline:auto}
:is(.cv-home,.apocv-main-site) .header {position:sticky;top:0;z-index:21;height:auto;min-height:64px;background:#fffefa;border-bottom:1px solid #19362f12}
:is(.cv-home,.apocv-main-site) .header-inner {min-height:64px;height:auto;padding-block:8px;gap:12px}
:is(.cv-home,.apocv-main-site) .header-brand .brand,:is(.cv-home,.apocv-main-site) .cv-drawer-top .brand {font-size:23px}
:is(.cv-home,.apocv-main-site) .header-brand .brand-mark {width:30px;height:30px}
:is(.cv-home,.apocv-main-site) .brand-tagline {font-size:11px;margin-top:0}
:is(.cv-home,.apocv-main-site) .header-actions {gap:8px}
:is(.cv-home,.apocv-main-site) .desktop-nav,:is(.cv-home,.apocv-main-site) .header-actions .help-link,.cv-home .cv-header-ticket {display:none}
:is(.cv-home,.apocv-main-site) .header-actions .menu-toggle {display:grid;width:44px;height:44px;place-content:center;gap:5px}
:is(.cv-home,.apocv-main-site) .menu-toggle span {width:22px;margin:0;height:2px}
:is(.cv-home,.apocv-main-site) .saved-button {min-width:44px;min-height:44px}
:is(.cv-home,.apocv-main-site) .saved-button>span:not(.saved-count) {display:none}
:is(.cv-home,.apocv-main-site) .header-actions .help-link,:is(.cv-home,.apocv-main-site) .desktop-nav a {font-size:15px}
.cv-home .button,.cv-home .cv-secondary-button {min-height:44px;font-size:15px;font-weight:700;border-radius:8px}
.cv-home :is(.cv-now-card,.cv-hero-act,.cv-header-ticket,.cv-secondary-button):focus-visible {outline:2px solid #0736c9;outline-offset:3px}
.cv-home .hero {width:100%;max-width:none;height:auto;min-height:560px;margin:0;border-radius:0;overflow:hidden;background:#284643}
.cv-home .hero-image {object-position:50% 50%}
.cv-home .hero-shade {background:linear-gradient(180deg,#142c288d,#142c2840 45%,#142c28c7)}
.cv-home .cv-hero-inner {display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;position:relative;min-height:560px;padding:44px 0 91px}
.cv-home .hero-copy {position:static;max-width:100%;color:white}
.cv-home .hero-copy .eyebrow {color:#fff9da;font-size:11px;letter-spacing:.16em}
.cv-home .hero-copy h1 {font-family:DM,Arial,sans-serif;font-size:clamp(44px,11vw,84px);font-weight:700;line-height:.98;letter-spacing:-.045em;color:#fff;margin:0}
.cv-home .hero-copy h1 em {font-family:inherit;color:#f9e88f}
.cv-home .hero-intro {color:#f5f7f1;margin:16px 0 0;font-family:DM,Arial,sans-serif;font-size:17px;line-height:1.5;max-width:32ch}
.cv-home .cv-hero-card {display:flex;position:relative;align-items:center;gap:8px;margin:22px 0 0;padding:12px 14px;width:min(100%,390px);max-width:100%;color:white;border:1px solid #ffffff30;border-radius:14px;background:#142c28b8;backdrop-filter:blur(6px)}
.cv-home .hero-location.hero-caption {position:static;inset:auto;display:flex;flex:1 1 auto;min-width:0;max-width:none;gap:7px;width:auto;min-height:44px;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;color:#fff}
.cv-home .hero-caption>.icon:first-child {display:block;width:18px;height:18px;color:var(--yellow)}
.cv-home .hero-caption>.icon:last-child,.cv-home .hero-caption>.coming-soon-badge {display:none}
.cv-home .hero-caption>span {display:grid;min-width:0}
.cv-home .hero-caption [data-hero-title] {font-size:15px;line-height:1.2}
.cv-home .hero-caption [data-hero-city] {color:#d6dfce;font-size:13px;line-height:1.35}
.cv-home .cv-hero-act,.cv-home .cv-header-ticket {align-items:center;justify-content:center;min-height:44px;padding:7px 10px;background:#f8e46c;color:#183c34;border:0;border-radius:8px;font-size:13px;line-height:1.3;font-weight:700;text-align:center}
.cv-home .cv-hero-act {display:inline-flex;gap:.15em;text-decoration:none;max-width:53%;flex-shrink:0}
.cv-home .cv-hero-soon {background:#ffffff24;color:white}
.cv-home .cv-hero-soon[aria-pressed=true] span::after {content:'d'}
.cv-home .cv-hero-act[hidden],.cv-home .cv-follow[hidden],:is(.cv-home,.apocv-main-site) .cv-menu-scrim[hidden],:is(.cv-home,.apocv-main-site) .mobile-nav[hidden] {display:none!important}
.cv-home .hero-controls {position:static;max-width:100%;margin:0 0 0 -14px;padding:0;border:0;border-radius:0;background:none;backdrop-filter:none;box-shadow:none}
.cv-home .hero-dots {width:auto;display:flex;gap:0}
.cv-home .hero-dot {width:44px;min-width:44px;height:44px;display:grid;place-items:center;flex:none}
.cv-home .hero-dot span {width:9px;height:9px;border:1px solid #ffffffb3;background:transparent}
.cv-home .hero-dot[aria-pressed=true] span {border-color:#f8e46c;background:#f8e46c}
.cv-home .quick-start {position:relative;display:block;z-index:2;margin-top:-70px;padding:0;color:var(--muted)}
.cv-home .search-form {position:static;inset:auto;display:grid;grid-template-columns:22px minmax(0,1fr);max-width:980px;align-items:center;gap:8px 12px;padding:14px 14px 14px 16px;background:#fff;border-radius:12px;box-shadow:0 8px 22px #071b2420}
.cv-home .search-form label {position:relative;min-width:0;grid-column:2}
.cv-home .search-form label>span {position:absolute;top:1px;inset-inline-start:0;font-size:11px;line-height:1.2;letter-spacing:.12em;pointer-events:none}
.cv-home .search-form input {color:var(--ink);width:100%;font-size:16px;min-height:44px;padding:15px 0 0}
.cv-home .search-form .button {grid-column:1/-1;justify-content:center;margin:0;width:100%;min-height:44px;font-size:15px}
.cv-home .cv-inspire {display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin-top:12px}
.cv-home .cv-inspire>span {flex-basis:auto;margin:0;font-size:13px}
.cv-home .cv-inspire button {min-height:44px;padding:5px 12px;border:1px solid #d9dcd2;border-radius:22px;background:#fffefa;font-size:13px}
.cv-home .cv-now {padding:var(--cv-section-start) 0 var(--cv-section-end)}
.cv-home .cv-now-card {display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px 14px;align-items:center;max-width:980px;margin:auto;padding:12px;border:1px solid #e5e7df;border-radius:16px;background:#fffefa;text-decoration:none}
.cv-home .cv-now-card img {width:84px;height:84px;object-fit:cover;border-radius:10px}
.cv-home .cv-now-copy,.cv-home .cv-faq-ticket>div {display:grid;gap:3px}
.cv-home .cv-now-copy .eyebrow {font-size:11px;margin:0;color:#71814c}
.cv-home .cv-now-copy strong,.cv-home .cv-faq-ticket b {font-size:18px;color:var(--ink)}
.cv-home .cv-now-copy>span:last-child,.cv-home .cv-faq-ticket span {color:var(--muted);font-size:15px;line-height:1.4}
.cv-home .cv-now-card .button {width:100%;grid-column:1/-1}
.cv-home .home-benefits,.cv-home .travel-details {margin-block:0}
.cv-home main>:is(.section,.home-benefits,.story-section,.faq-section,.closing-banner) {padding-block:var(--cv-section-start) var(--cv-section-end)}
.cv-home main>:is(.section,.home-benefits,.story-section,.faq-section,.closing-banner)>:first-child {margin-top:0}
.cv-home main>:is(.section,.home-benefits,.story-section,.faq-section,.closing-banner)>:last-child {margin-bottom:0}
.cv-home main :is(.section-heading,.story-copy,.faq-section>div:first-child) h2 {font-size:clamp(30px,6.2vw,50px);line-height:1.04;letter-spacing:-.035em}
.cv-home main .closing-banner h2 {font-size:clamp(34px,8vw,60px);line-height:1.04}
.cv-home main .section-heading .text-link {font-size:15px;font-weight:700}
.cv-home main .destination-copy h3 {font-size:24px;font-weight:700;line-height:1.15}
.cv-home main .how-grid h3 {font-size:22px;line-height:1.15}
.cv-home main .how-grid p {font-size:15px;line-height:1.5;margin-bottom:0}
.cv-home main :is(.section-subtitle,.story-copy p:not(.eyebrow),.faq-section>div:first-child>p:not(.eyebrow)) {font-size:16px;line-height:1.5}
.cv-home main :is(.cv-now-card,.cv-ticket-action,.cv-faq-ticket,.story-copy,.cv-closing-buttons,.search-form) .button,
.cv-home main .cv-closing-buttons .cv-secondary-button {min-height:46px;padding-block:12px;line-height:1.2}
.cv-home :is(.section,.story-copy,.how-section,.faq-section,.closing-banner) .eyebrow {font-size:11px}
.cv-home .section-heading {margin-bottom:18px}
.cv-home .destination-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;overflow:visible;padding:0;margin:0}
.cv-home .destination-card {width:auto;height:auto;aspect-ratio:4/5}
.cv-home .destination-card[data-city="Marrakech"] {grid-column:1/-1;aspect-ratio:17/10}
.cv-home .destination-copy {inset:auto 12px 12px}
.cv-home .destination-copy>span:first-child {font-size:13px}
.cv-home .destination-copy .cv-destination-price {color:#fffbed;display:block;text-transform:none;letter-spacing:0;font-size:13px;margin-top:5px}
.cv-home .experience-grid {grid-template-columns:minmax(0,1fr);gap:14px}
.cv-home .card-type,.cv-home .coming-soon-badge,.cv-home .filter-row button {font-size:13px}
.cv-home .filter-row {flex-wrap:wrap;overflow:visible;margin:0 0 16px;padding:0;gap:8px}
.cv-home .filter-row button,.cv-home .card-photo .save-card {min-width:44px;min-height:44px}
.cv-home :is(.experience-card,.destination-card).is-coming-soon img {filter:saturate(.6);opacity:.82}
.cv-home .experience-card.is-coming-soon .coming-soon-badge {top:auto;bottom:12px;right:auto;left:12px}
.cv-home .card-body .card-description {font-size:15px}
.cv-home .cv-ticket-action {margin:12px 0 16px;padding-top:12px;border-top:1px solid #e5e7df}
.cv-home .cv-ticket-action p {display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin:0 0 9px}
.cv-home .cv-ticket-action b {color:#183c34;font-size:20px}
.cv-home .cv-ticket-action span {color:var(--muted);font-size:13px}
.cv-home .cv-ticket-action a {width:100%;display:inline-flex;justify-content:center}
.cv-home .story-inner {display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.cv-home .story-art {padding-bottom:0}
.cv-home .story-art .photo-caption {margin-bottom:0}
.cv-home .how-grid {grid-template-columns:minmax(0,1fr);gap:0}
/* The illustrated panel after these steps already supplies its own top inset. */
.cv-home main>.how-section {padding-bottom:var(--cv-section-start)}
.cv-home .how-grid .step {min-width:44px;min-height:44px;font-size:13px}
.cv-home .faq-section {display:grid;grid-template-columns:minmax(0,1fr);gap:24px;border-top:0}
.cv-home .faq-section summary {min-height:44px}
.cv-home .cv-faq-ticket {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:15px;background:#fffefa;border:1px solid #d9dcd2;border-radius:12px}
.cv-home .closing-banner {display:flex;width:100%;max-width:none;min-height:0;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px;padding:32px max(var(--cv-gutter),calc((100% - 1148px)/2));margin:0;border-radius:0;background:#183c34}
.cv-home .cv-closing-buttons {display:flex;gap:10px;flex-wrap:wrap}
.cv-home .cv-secondary-button {display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;color:#fffefa;border:1px solid #ffffff66;text-decoration:none}
.cv-home .cv-follow {position:fixed;z-index:18;inset:auto 0 0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px var(--cv-gutter) max(9px,env(safe-area-inset-bottom));background:#fffefa;color:#19362f;border-top:1px solid #d9dcd2}
.cv-home .cv-follow>div {display:grid;line-height:1.35}
.cv-home .cv-follow small {font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#5f6b66}
.cv-home .cv-follow strong {font-size:15px}
.cv-home .institutional-footer {margin-top:0;padding-bottom:74px;background:#173a32;color:#fffefa}
.cv-home .footer-assurance {margin:0 0 28px;padding:32px 0;background:transparent;border-color:#ffffff30}
.cv-home .footer-assurance h2 {color:#fffefa;font-size:clamp(28px,5vw,40px)}
.cv-home .footer-assurance h3,.cv-home .institutional-footer :is(.footer-invitation,.brand-tagline,.footer-tagline,.cv-footer-fold h2) {color:#fffefa}
.cv-home .institutional-footer .brand,.cv-home .institutional-footer .eyebrow,.cv-home .footer-contact>span {color:#f9e88f}
.cv-home .institutional-footer :is(.footer-assurance__grid p,.institutional-footer__company,.institutional-footer__company strong,.institutional-footer__bottom,.cv-footer-fold p) {color:#e1e9df}
.cv-home .institutional-footer :is(.footer-assurance a,.cv-footer-fold a,.institutional-footer__company a,.institutional-footer__bottom a,.institutional-footer__bottom button) {color:#fffefa}
.cv-home .institutional-footer :is(.footer-contact,.footer-destinations__links a,.footer-assurance__icon) {background:#24483e;border-color:#ffffff42;color:#fffefa}
.cv-home .institutional-footer :is(.institutional-footer__grid,.institutional-footer__company,.institutional-footer__bottom,.footer-destinations) {border-color:#ffffff30}
.cv-home .footer-assurance__grid>div,.cv-home .cv-footer-fold ul {border-color:#ffffff30}
.cv-home .institutional-footer__column li a {display:inline-flex;align-items:center;min-height:44px}
.cv-home .institutional-footer__grid {display:block}
.cv-home .cv-footer-fold {border:0;border-bottom:1px solid #ffffff30}
.cv-home .cv-footer-fold summary {display:flex;min-height:44px;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer}
.cv-home .cv-footer-fold summary::-webkit-details-marker {display:none}
.cv-home .cv-footer-fold summary::after {content:'+';font-size:20px}
.cv-home .cv-footer-fold[open]>summary::after {content:'−'}
.cv-home .cv-footer-fold summary h2 {margin:0;font-family:inherit;font-weight:700}
.cv-home .footer-destinations .cv-footer-fold>a {display:inline-flex;align-items:center;min-height:44px}
:is(.cv-home,.apocv-main-site).cv-menu-open {overflow:hidden}
:is(.cv-home,.apocv-main-site) .cv-menu-scrim {position:fixed;inset:0;background:#102e2699;z-index:1}
:is(.cv-home,.apocv-main-site) .mobile-nav.mm {position:fixed;inset:0 0 0 auto;width:min(92vw,420px);max-width:100%;overflow-y:auto;overscroll-behavior:contain;display:block;padding:0 0 max(24px,env(safe-area-inset-bottom));background:#173a32;color:#f3f1ea;z-index:2;border:0;box-shadow:-12px 0 36px #0d211c44}
:is(.cv-home,.apocv-main-site) .cv-drawer-top,:is(.cv-home,.apocv-main-site) .cv-drawer-section,:is(.cv-home,.apocv-main-site) .cv-drawer-settings,:is(.cv-home,.apocv-main-site) .cv-drawer-foot {padding:16px 18px;border-bottom:1px solid #ffffff27}
:is(.cv-home,.apocv-main-site) .cv-drawer-top {display:flex;align-items:center;justify-content:space-between;gap:12px}
:is(.cv-home,.apocv-main-site) .cv-drawer-top .brand,:is(.cv-home,.apocv-main-site) .cv-drawer-top .brand-tagline {color:#fffefa}
:is(.cv-home,.apocv-main-site) .cv-close {background:#ffffff0c;border:1px solid #ffffff40;color:#fffefa;border-radius:50%;width:44px;height:44px;font-size:25px}
:is(.cv-home,.apocv-main-site) .cv-drawer-buy {margin:14px 18px;padding:16px;border:1px solid #ffffff38;border-radius:13px;background:#24483e}
:is(.cv-home,.apocv-main-site) .mobile-nav .eyebrow {color:#f8e46c;font-size:11px}
:is(.cv-home,.apocv-main-site) .mobile-nav h3,:is(.cv-home,.apocv-main-site) .mobile-nav strong {color:#fffefa}
:is(.cv-home,.apocv-main-site) .cv-drawer-buy p,:is(.cv-home,.apocv-main-site) .cv-drawer-foot {font-size:15px}
:is(.cv-home,.apocv-main-site) .cv-drawer-buy .button {display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:12px;background:#f8e46c;color:#183c34}
:is(.cv-home,.apocv-main-site) .cv-trust {display:flex;gap:5px 12px;flex-wrap:wrap;list-style:none;padding:0;margin:10px 0 0;font-size:13px}
:is(.cv-home,.apocv-main-site) .cv-drawer-section>h3 {font-size:13px;letter-spacing:.12em;text-transform:uppercase}
:is(.cv-home,.apocv-main-site) .cv-drawer-section>a {min-height:44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff1f;color:inherit}
:is(.cv-home,.apocv-main-site) .cv-drawer-section>a span {font-size:13px}
:is(.cv-home,.apocv-main-site) .cv-city-chips {display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
:is(.cv-home,.apocv-main-site) .cv-city-chips a {display:inline-flex;align-items:center;min-height:44px;padding:5px 12px;border:1px solid #ffffff44;border-radius:22px;font-size:13px;color:inherit}
:is(.cv-home,.apocv-main-site) .cv-drawer-settings {display:grid;grid-template-columns:1fr 1fr;gap:14px}
:is(.cv-home,.apocv-main-site) .cv-drawer-settings>div>span {display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
:is(.cv-home,.apocv-main-site) .cv-drawer-settings .header-language {display:block;position:relative;color:#19362f}
:is(.cv-home,.apocv-main-site) .cv-drawer-foot {margin:0;border:0;line-height:1.5}
@media(min-width:900px) {
  .cv-home {--cv-section-start:40px;--cv-section-end:48px}
  :is(.cv-home,.apocv-main-site) .header-actions {gap:14px}
  :is(.cv-home,.apocv-main-site) .header-actions .menu-toggle,.cv-home .cv-follow {display:none}
  :is(.cv-home,.apocv-main-site) .desktop-nav,.cv-home .cv-header-ticket,:is(.cv-home,.apocv-main-site) .header-actions .help-link {display:inline-flex;align-items:center}
  .cv-home .cv-header-ticket {background:#183c34;color:white;text-decoration:none;gap:7px}
  :is(.cv-home,.apocv-main-site) .saved-button>span:not(.saved-count) {display:inline}
  .cv-home .cv-hero-inner {min-height:640px;padding-bottom:134px}
  .cv-home .cv-hero-card {position:absolute;right:0;bottom:150px;margin:0;width:max-content;min-width:343px;max-width:395px}
  .cv-home .hero-copy {max-width:64%}
  .cv-home .hero-intro {font-size:18px}
  .cv-home .quick-start {margin-top:-84px}
  .cv-home .search-form {grid-template-columns:22px minmax(0,1fr) auto}
  .cv-home .search-form .button {grid-column:3;width:auto}
  .cv-home .cv-inspire {justify-content:center}
  .cv-home .cv-now {padding-top:32px}
  .cv-home .cv-now-card {grid-template-columns:110px minmax(0,1fr) auto;padding:14px}
  .cv-home .cv-now-card img {width:110px;height:86px}
  .cv-home .cv-now-card .button {grid-column:3;width:auto}
  .cv-home .destination-grid {grid-template-columns:2fr repeat(4,minmax(0,1fr));gap:14px}
  .cv-home .destination-card {aspect-ratio:3/4}
  .cv-home .destination-card[data-city="Marrakech"] {grid-column:auto;aspect-ratio:auto}
  .cv-home .experience-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
  .cv-home .story-inner {grid-template-columns:.9fr 1.1fr;gap:56px}
  .cv-home .how-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
  .cv-home .faq-section {grid-template-columns:.8fr 1.2fr;gap:20px 56px}
  .cv-home main .faq-section>div:first-child>p:not(.eyebrow) {font-size:18px}
  .cv-home .cv-faq-ticket {grid-column:2}
  .cv-home .closing-banner {padding-block:40px}
  .cv-home .institutional-footer {padding-bottom:28px}
  .cv-home .institutional-footer__grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
  .cv-home .cv-footer-fold {border:0}
  .cv-home .cv-footer-fold>summary::after {display:none}
}
@media(prefers-reduced-motion:reduce) {
  .cv-home .cv-follow,.cv-home .hero-slide,.cv-home .cv-hero-act,:is(.cv-home,.apocv-main-site) .mobile-nav {transition:none}
}
.cv-home .closing-sun { pointer-events: none; }
