/*!
 * DSL Adventures — Design System v1.0
 * Child theme: DSL Adventures Child (parent: Hello Elementor)
 * Tokens + base + components. Prefix: .dsl-
 * Fonts: Sen, Source Sans 3 (SIL OFL 1.1), self-hosted.
 */

/* =========================================================
   01. FONTS (self-hosted, variable, latin + latin-ext)
   ========================================================= */
@font-face{font-family:"Sen";font-style:normal;font-weight:500 700;font-display:swap;src:url("../fonts/sen-var-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Sen";font-style:normal;font-weight:500 700;font-display:swap;src:url("../fonts/sen-var-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/source-sans-3-var-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/source-sans-3-var-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* =========================================================
   02. TOKENS
   ========================================================= */
:root{
  /* Color: brand */
  --dsl-primary:#0E3B47;        /* Andes Teal */
  --dsl-primary-dark:#082E3A;   /* pressed / deep */
  --dsl-secondary:#0A2342;      /* Navy: headings, text on accent */
  --dsl-accent:#FFC61A;         /* Maize: primary CTA fill only */
  --dsl-accent-hover:#EBAF00;
  --dsl-clay:#A5502D;           /* editorial accent, eyebrows, difficulty */
  /* Color: neutrals */
  --dsl-cream:#FBF6EA;
  --dsl-surface:#FFFFFF;
  --dsl-surface-alt:#F2F5F4;
  --dsl-text:#13212B;
  --dsl-text-muted:#56636E;
  --dsl-border:#E2E6E3;
  --dsl-footer:#0F1B24;
  /* Color: feedback */
  --dsl-success:#2E7D46;
  --dsl-warning:#A8620A;
  --dsl-error:#C0392B;
  /* Derived (no new hues) */
  --dsl-border-strong:color-mix(in srgb,var(--dsl-text) 48%,#fff);
  --dsl-primary-tint:color-mix(in srgb,var(--dsl-primary) 7%,#fff);
  --dsl-primary-tint-2:color-mix(in srgb,var(--dsl-primary) 14%,#fff);
  --dsl-accent-tint:color-mix(in srgb,var(--dsl-accent) 24%,#fff);
  --dsl-clay-tint:color-mix(in srgb,var(--dsl-clay) 11%,#fff);
  --dsl-success-tint:color-mix(in srgb,var(--dsl-success) 10%,#fff);
  --dsl-error-tint:color-mix(in srgb,var(--dsl-error) 9%,#fff);
  --dsl-on-dark:#FFFFFF;
  --dsl-on-dark-muted:rgba(255,255,255,.78);
  --dsl-on-dark-line:rgba(255,255,255,.14);
  --dsl-scrim-bottom:linear-gradient(to top,rgba(6,24,31,.88) 0%,rgba(6,24,31,.55) 38%,rgba(6,24,31,0) 66%);
  --dsl-scrim-left:linear-gradient(90deg,rgba(6,24,31,.86) 0%,rgba(6,24,31,.6) 45%,rgba(6,24,31,.1) 100%);
  --dsl-focus:var(--dsl-secondary);

  /* Typography */
  --dsl-font-head:"Sen",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --dsl-font-body:"Source Sans 3",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --dsl-fs-display:clamp(2.125rem,1.64rem + 2.07vw,3.5rem);   /* 34 → 56 */
  --dsl-fs-h1:clamp(1.875rem,1.567rem + 1.315vw,2.75rem);      /* 30 → 44 */
  --dsl-fs-h2:clamp(1.625rem,1.36rem + 1.13vw,2.375rem);       /* 26 → 38 */
  --dsl-fs-h3:clamp(1.3125rem,1.2rem + .47vw,1.625rem);        /* 21 → 26 */
  --dsl-fs-h4:clamp(1.125rem,1.06rem + .28vw,1.3125rem);       /* 18 → 21 */
  --dsl-fs-h5:clamp(1rem,.956rem + .19vw,1.125rem);            /* 16 → 18 */
  --dsl-fs-h6:.8125rem;                                         /* 13 */
  --dsl-fs-lead:clamp(1.125rem,1.08rem + .19vw,1.25rem);       /* 18 → 20 */
  --dsl-fs-body:clamp(1.0625rem,1.04rem + .09vw,1.125rem);     /* 17 → 18 */
  --dsl-fs-small:.9375rem;                                      /* 15 */
  --dsl-fs-caption:.84375rem;                                   /* 13.5 */
  --dsl-fs-label:.78125rem;                                     /* 12.5 */
  --dsl-fs-price:clamp(1.75rem,1.62rem + .56vw,2.125rem);      /* 28 → 34 */
  --dsl-lh-tight:1.1;
  --dsl-lh-heading:1.2;
  --dsl-lh-snug:1.35;
  --dsl-lh-body:1.65;

  /* Spacing (4 · 8 · 12 · 16 · 24 · 32 · 48 · 64 · 96) */
  --dsl-space-3xs:4px;
  --dsl-space-2xs:8px;
  --dsl-space-xs:12px;
  --dsl-space-sm:16px;
  --dsl-space-md:24px;
  --dsl-space-lg:32px;
  --dsl-space-xl:48px;
  --dsl-space-2xl:64px;
  --dsl-space-3xl:96px;
  --dsl-section-y:clamp(3rem,2rem + 4.3vw,6rem);               /* 48 → ~94 */
  --dsl-section-y-sm:clamp(2.5rem,1.75rem + 3vw,4rem);         /* 40 → 64 */
  --dsl-gutter:clamp(1rem,.4rem + 2.5vw,2.5rem);               /* 16 → 40 */

  /* Containers */
  --dsl-container-wide:1320px;
  --dsl-container:1200px;
  --dsl-container-reading:760px;
  --dsl-container-narrow:560px;

  /* Radii */
  --dsl-radius-sm:4px;
  --dsl-radius-md:8px;
  --dsl-radius-lg:12px;
  --dsl-radius-xl:20px;
  --dsl-radius-pill:999px;

  /* Shadows (navy-tinted, soft) */
  --dsl-shadow-sm:0 1px 2px rgba(10,35,66,.06),0 1px 3px rgba(10,35,66,.05);
  --dsl-shadow-md:0 6px 20px -8px rgba(10,35,66,.16);
  --dsl-shadow-lg:0 18px 40px -20px rgba(10,35,66,.30);

  /* Motion */
  --dsl-ease:cubic-bezier(.2,.7,.2,1);
  --dsl-dur-fast:160ms;
  --dsl-dur:260ms;
  --dsl-dur-slow:520ms;

  /* Layout */
  --dsl-header-h:64px;
  --dsl-touch:44px;
}
@media (min-width:1025px){:root{--dsl-header-h:76px}}

/* =========================================================
   03. BASE (overrides Hello Elementor reset where needed)
   ========================================================= */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--dsl-font-body);font-size:var(--dsl-fs-body);line-height:var(--dsl-lh-body);color:var(--dsl-text);background-color:var(--dsl-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3,h4,h5,h6{font-family:var(--dsl-font-head);color:var(--dsl-secondary);margin:0 0 .5em;text-wrap:balance;font-optical-sizing:auto}
h1{font-size:var(--dsl-fs-h1);font-weight:700;line-height:var(--dsl-lh-heading);letter-spacing:-.012em}
h2{font-size:var(--dsl-fs-h2);font-weight:700;line-height:var(--dsl-lh-heading);letter-spacing:-.008em}
h3{font-size:var(--dsl-fs-h3);font-weight:600;line-height:1.25}
h4{font-size:var(--dsl-fs-h4);font-weight:600;line-height:1.3}
h5{font-size:var(--dsl-fs-h5);font-weight:600;line-height:var(--dsl-lh-snug)}
h6{font-size:var(--dsl-fs-h6);font-weight:700;line-height:1.3;letter-spacing:.12em;text-transform:uppercase}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.25em}
img,svg,video{max-width:100%;height:auto}
figure{margin:0}
figcaption,cite{font-style:normal}
hr{border:0;border-top:1px solid var(--dsl-border);margin:var(--dsl-space-lg) 0}
::selection{background:var(--dsl-accent-tint);color:var(--dsl-secondary)}
a{color:var(--dsl-primary);text-decoration-thickness:1px;text-underline-offset:.18em}
a:hover,a:active{color:var(--dsl-secondary)}
:focus-visible{outline:3px solid var(--dsl-focus);outline-offset:3px;border-radius:2px}
/* Neutralize Hello Elementor generic button styles; components style themselves */
button,[type=button],[type=submit],[type=reset]{background-color:transparent;border:0;border-radius:0;color:inherit;font:inherit;padding:0;line-height:inherit;text-align:inherit;white-space:normal}
button:hover,button:focus,[type=button]:hover,[type=button]:focus,[type=submit]:hover,[type=submit]:focus{background-color:transparent;color:inherit;text-decoration:none}
[hidden]{display:none!important}
.dsl-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dsl-skip-link{position:absolute;left:16px;top:-60px;z-index:1000;background:var(--dsl-secondary);color:#fff;padding:12px 16px;border-radius:var(--dsl-radius-md)}
.dsl-skip-link:focus{top:16px;color:#fff}

/* =========================================================
   04. TYPOGRAPHY UTILITIES
   ========================================================= */
.dsl-display{font-family:var(--dsl-font-head);font-size:var(--dsl-fs-display);font-weight:700;line-height:var(--dsl-lh-tight);letter-spacing:-.018em;color:var(--dsl-secondary);text-wrap:balance}
.dsl-h1{font-size:var(--dsl-fs-h1)}.dsl-h2{font-size:var(--dsl-fs-h2)}.dsl-h3{font-size:var(--dsl-fs-h3)}.dsl-h4{font-size:var(--dsl-fs-h4)}.dsl-h5{font-size:var(--dsl-fs-h5)}
.dsl-lead{font-size:var(--dsl-fs-lead);line-height:1.6;color:var(--dsl-text-muted)}
.dsl-small{font-size:var(--dsl-fs-small);line-height:1.55}
.dsl-caption{font-size:var(--dsl-fs-caption);line-height:1.45;color:var(--dsl-text-muted)}
.dsl-label{font-family:var(--dsl-font-head);font-size:var(--dsl-fs-label);font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.3}
.dsl-muted{color:var(--dsl-text-muted)}
.dsl-num{font-variant-numeric:tabular-nums lining-nums}
.dsl-prose{max-width:68ch}
.dsl-prose a,.dsl-link{color:var(--dsl-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:color-mix(in srgb,var(--dsl-primary) 45%,transparent);transition:text-decoration-color var(--dsl-dur-fast),color var(--dsl-dur-fast)}
.dsl-prose a:hover,.dsl-link:hover{color:var(--dsl-secondary);text-decoration-thickness:2px;text-decoration-color:currentColor}
.dsl-price{font-family:var(--dsl-font-head);font-weight:700;font-size:var(--dsl-fs-price);line-height:1;color:var(--dsl-secondary);font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.01em}

/* =========================================================
   05. LAYOUT
   ========================================================= */
.dsl-container{width:min(var(--dsl-container),100% - 2 * var(--dsl-gutter));margin-inline:auto}
.dsl-container--wide{width:min(var(--dsl-container-wide),100% - 2 * var(--dsl-gutter))}
.dsl-container--reading{width:min(var(--dsl-container-reading),100% - 2 * var(--dsl-gutter))}
.dsl-container--narrow{width:min(var(--dsl-container-narrow),100% - 2 * var(--dsl-gutter))}
.dsl-section{padding-block:var(--dsl-section-y)}
.dsl-section--sm{padding-block:var(--dsl-section-y-sm)}
.dsl-section--cream{background:var(--dsl-cream)}
.dsl-section--alt{background:var(--dsl-surface-alt)}
.dsl-section--dark{background:var(--dsl-primary);color:var(--dsl-on-dark)}
.dsl-on-dark,.dsl-section--dark,.dsl-footer,.dsl-cta-band{--dsl-focus:var(--dsl-accent)}
.dsl-on-dark h1,.dsl-on-dark h2,.dsl-on-dark h3,.dsl-on-dark h4,.dsl-section--dark h2,.dsl-section--dark h3{color:var(--dsl-on-dark)}
.dsl-stack{display:flex;flex-direction:column;gap:var(--dsl-stack-gap,var(--dsl-space-sm))}
.dsl-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dsl-cluster-gap,var(--dsl-space-xs))}
.dsl-grid{display:grid;gap:var(--dsl-grid-gap,var(--dsl-space-md))}
.dsl-grid--2{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.dsl-grid--3{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.dsl-grid--4{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr))}
/* Horizontal rail: scroll-snap on small screens, grid from tablet */
.dsl-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,84%);gap:var(--dsl-space-sm);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:2px;padding-block:4px 16px;scrollbar-width:thin}
.dsl-rail>*{scroll-snap-align:start}
@media (min-width:768px){.dsl-rail{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:var(--dsl-space-md);padding-block:0}}
@media (min-width:1025px){.dsl-rail--3{grid-template-columns:repeat(3,minmax(0,1fr))}.dsl-rail--4{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* =========================================================
   06. ICONS  (sprite: assets/icons/dsl-icons.svg — Lucide + Simple Icons)
   ========================================================= */
.dsl-icon{width:1.25rem;height:1.25rem;flex:none;display:inline-block;vertical-align:-.2em;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.dsl-icon--sm{width:1rem;height:1rem}
.dsl-icon--lg{width:1.5rem;height:1.5rem}
.dsl-icon--xl{width:1.75rem;height:1.75rem;stroke-width:1.5}
.dsl-icon--brand{fill:currentColor;stroke:none}
.dsl-icon-chip{display:inline-grid;place-items:center;width:44px;height:44px;flex:none;border-radius:var(--dsl-radius-md);background:var(--dsl-primary-tint);color:var(--dsl-primary)}
.dsl-icon-chip--round{border-radius:50%}
.dsl-icon-chip--cream{background:var(--dsl-cream);color:var(--dsl-clay)}

/* =========================================================
   07. BUTTONS
   ========================================================= */
.dsl-btn{--_bg:var(--dsl-accent);--_fg:var(--dsl-secondary);--_bd:var(--dsl-accent);display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:0 1.5rem;border:1.5px solid var(--_bd);border-radius:var(--dsl-radius-pill);background-color:var(--_bg);color:var(--_fg);font-family:var(--dsl-font-head);font-size:.9375rem;font-weight:700;line-height:1.1;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;user-select:none;transition:background-color var(--dsl-dur-fast) var(--dsl-ease),color var(--dsl-dur-fast) var(--dsl-ease),border-color var(--dsl-dur-fast) var(--dsl-ease),transform var(--dsl-dur-fast) var(--dsl-ease)}
.dsl-btn .dsl-icon{width:1.125rem;height:1.125rem;transition:transform var(--dsl-dur-fast) var(--dsl-ease)}
.dsl-btn:hover{text-decoration:none}
.dsl-btn:hover .dsl-icon--arrow{transform:translateX(3px)}
.dsl-btn:active{transform:translateY(1px)}
.dsl-btn:focus-visible{outline:3px solid var(--dsl-focus);outline-offset:3px}
.dsl-btn--primary,.dsl-btn--primary:focus{--_bg:var(--dsl-accent);--_fg:var(--dsl-secondary);--_bd:var(--dsl-accent);background-color:var(--_bg);color:var(--_fg)}
.dsl-btn--primary:hover{background-color:var(--dsl-accent-hover);border-color:var(--dsl-accent-hover);color:var(--dsl-secondary)}
.dsl-btn--secondary,.dsl-btn--secondary:focus{--_bg:var(--dsl-primary);--_fg:#fff;--_bd:var(--dsl-primary);background-color:var(--_bg);color:var(--_fg)}
.dsl-btn--secondary:hover{background-color:var(--dsl-primary-dark);border-color:var(--dsl-primary-dark);color:#fff}
.dsl-btn--outline,.dsl-btn--outline:focus{--_bg:transparent;--_fg:var(--dsl-secondary);--_bd:var(--dsl-secondary);background-color:transparent;color:var(--_fg)}
.dsl-btn--outline:hover{background-color:var(--dsl-secondary);border-color:var(--dsl-secondary);color:#fff}
.dsl-on-dark .dsl-btn--outline,.dsl-btn--outline-light,.dsl-btn--outline-light:focus{--_bg:transparent;--_fg:#fff;--_bd:rgba(255,255,255,.85);background-color:transparent;color:#fff;border-color:rgba(255,255,255,.85)}
.dsl-on-dark .dsl-btn--outline:hover,.dsl-btn--outline-light:hover{background-color:#fff;border-color:#fff;color:var(--dsl-secondary)}
.dsl-btn--whatsapp,.dsl-btn--whatsapp:focus{--_bg:#fff;--_fg:var(--dsl-text);--_bd:var(--dsl-border-strong);background-color:#fff;color:var(--dsl-text);text-transform:none;letter-spacing:.01em;font-size:1rem}
.dsl-btn--whatsapp .dsl-icon--brand{color:#1FA855;width:1.25rem;height:1.25rem}
.dsl-btn--whatsapp:hover{background-color:var(--dsl-surface-alt);border-color:var(--dsl-text);color:var(--dsl-text)}
.dsl-btn--text,.dsl-btn--text:focus{--_bg:transparent;--_bd:transparent;--_fg:var(--dsl-primary);background-color:transparent;padding:0 2px;min-height:var(--dsl-touch);color:var(--dsl-primary);border-radius:var(--dsl-radius-sm)}
.dsl-btn--text:hover{color:var(--dsl-secondary);background-color:transparent;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.35em}
.dsl-btn--lg{min-height:56px;padding:0 2rem;font-size:1rem}
.dsl-btn--sm{min-height:40px;padding:0 1.1rem;font-size:.8125rem}
.dsl-btn--block{width:100%;white-space:normal;text-align:center}
@media (max-width:479.98px){.dsl-btn--block-mobile{width:100%;white-space:normal;text-align:center}}
.dsl-btn[disabled],.dsl-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;pointer-events:none;transform:none}
.dsl-icon-btn{display:inline-grid;place-items:center;width:var(--dsl-touch);height:var(--dsl-touch);flex:none;border-radius:50%;border:1.5px solid var(--dsl-border);background:#fff;color:var(--dsl-secondary);cursor:pointer;transition:background-color var(--dsl-dur-fast),border-color var(--dsl-dur-fast),color var(--dsl-dur-fast)}
.dsl-icon-btn:hover{border-color:var(--dsl-secondary);background:var(--dsl-surface-alt);color:var(--dsl-secondary)}
.dsl-icon-btn--ghost{border-color:transparent;background:transparent}
.dsl-icon-btn--dark{background:rgba(255,255,255,.08);border-color:var(--dsl-on-dark-line);color:#fff}
.dsl-icon-btn--dark:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.5);color:#fff}
.dsl-icon-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}

/* =========================================================
   08. LINKS (navigation, footer, card, breadcrumb)
   ========================================================= */
.dsl-nav-link{position:relative;display:inline-flex;align-items:center;gap:.3rem;min-height:var(--dsl-touch);padding:0 .25rem;font-family:var(--dsl-font-head);font-size:.96875rem;font-weight:600;color:var(--dsl-text);text-decoration:none;letter-spacing:.005em}
.dsl-nav-link::after{content:"";position:absolute;left:.25rem;right:.25rem;bottom:8px;height:2px;border-radius:2px;background:var(--dsl-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dsl-dur) var(--dsl-ease)}
.dsl-nav-link:hover,.dsl-nav-link[aria-current="page"]{color:var(--dsl-primary)}
.dsl-nav-link:hover::after,.dsl-nav-link[aria-current="page"]::after{transform:scaleX(1)}
.dsl-nav-link .dsl-icon{width:1rem;height:1rem;color:var(--dsl-text-muted)}
.dsl-footer-link{color:var(--dsl-on-dark-muted);text-decoration:none;display:inline-flex;min-height:36px;align-items:center}
.dsl-footer-link:hover{color:#fff;text-decoration:underline;text-underline-offset:.25em}
.dsl-card-link{color:inherit;text-decoration:none}
.dsl-card-link::after{content:"";position:absolute;inset:0;z-index:1}
.dsl-card-link:focus-visible{outline:none}
.dsl-card-link:focus-visible::after{outline:3px solid var(--dsl-focus);outline-offset:2px;border-radius:inherit}

/* =========================================================
   09. BADGES
   ========================================================= */
.dsl-badge{display:inline-flex;align-items:center;gap:.375rem;min-height:28px;padding:0 .625rem;border-radius:var(--dsl-radius-sm);font-family:var(--dsl-font-head);font-size:.78125rem;font-weight:700;line-height:1;letter-spacing:.02em;white-space:nowrap;background:var(--dsl-surface-alt);color:var(--dsl-text)}
.dsl-badge .dsl-icon{width:.9375rem;height:.9375rem}
.dsl-badge--caps{text-transform:uppercase;letter-spacing:.09em;font-size:.71875rem}
.dsl-badge--days{background:var(--dsl-primary);color:#fff}
.dsl-badge--nights{background:var(--dsl-primary-tint-2);color:var(--dsl-primary)}
.dsl-badge--featured{background:var(--dsl-accent);color:var(--dsl-secondary)}
.dsl-badge--popular{background:#fff;color:var(--dsl-secondary);box-shadow:inset 0 0 0 1.5px var(--dsl-secondary)}
.dsl-badge--new{background:var(--dsl-clay-tint);color:var(--dsl-clay)}
.dsl-badge--destination{background:var(--dsl-cream);color:var(--dsl-text)}
.dsl-badge--destination .dsl-icon{color:var(--dsl-clay)}
.dsl-badge--trek{background:var(--dsl-primary-tint);color:var(--dsl-primary)}
.dsl-badge--difficulty::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--_dot,var(--dsl-text-muted))}
.dsl-badge--easy{--_dot:var(--dsl-success)}
.dsl-badge--moderate{--_dot:var(--dsl-warning)}
.dsl-badge--challenging{--_dot:var(--dsl-clay)}
.dsl-badge--demanding{--_dot:var(--dsl-error)}
.dsl-badge--on-media{background:rgba(255,255,255,.94);color:var(--dsl-text);box-shadow:var(--dsl-shadow-sm)}
.dsl-badge--on-media.dsl-badge--days{background:var(--dsl-primary);color:#fff}

/* =========================================================
   10. SECTION HEADER + DECORATION (original terrace motif)
   ========================================================= */
.dsl-section-head{display:grid;gap:var(--dsl-space-xs);max-width:720px;margin-bottom:clamp(2rem,1.5rem + 2vw,3rem)}
.dsl-section-head>*{margin:0}
.dsl-section-head--center{margin-inline:auto;text-align:center;justify-items:center}
.dsl-section-head--split{max-width:none;grid-template-columns:1fr;align-items:end}
@media (min-width:768px){.dsl-section-head--split{grid-template-columns:minmax(0,1fr) auto;column-gap:var(--dsl-space-lg)}.dsl-section-head--split>.dsl-section-head__action{grid-row:1 / span 3;grid-column:2}}
.dsl-eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--dsl-font-head);font-size:.8125rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dsl-clay);line-height:1.2}
.dsl-eyebrow::before{content:"";flex:none;width:22px;height:10px;background:linear-gradient(currentColor,currentColor) 0 100%/6px 4px no-repeat,linear-gradient(currentColor,currentColor) 8px 100%/6px 7px no-repeat,linear-gradient(currentColor,currentColor) 16px 100%/6px 10px no-repeat}
.dsl-on-dark .dsl-eyebrow,.dsl-section--dark .dsl-eyebrow,.dsl-cta-band .dsl-eyebrow,.dsl-cta-photo .dsl-eyebrow{color:var(--dsl-accent)}
.dsl-section-head__intro{font-size:var(--dsl-fs-lead);line-height:1.6;color:var(--dsl-text-muted)}
.dsl-divider{display:flex;align-items:center;gap:var(--dsl-space-sm);color:var(--dsl-clay);margin:var(--dsl-space-lg) 0}
.dsl-divider::before,.dsl-divider::after{content:"";flex:1;height:1px;background:var(--dsl-border)}
.dsl-divider__mark{width:22px;height:10px;background:linear-gradient(currentColor,currentColor) 0 100%/6px 4px no-repeat,linear-gradient(currentColor,currentColor) 8px 100%/6px 7px no-repeat,linear-gradient(currentColor,currentColor) 16px 100%/6px 10px no-repeat}
.dsl-pattern-terrace{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='32' viewBox='0 0 64 32'%3E%3Cpath d='M0 28h12v-6h12v-6h12v6h12v6h16' fill='none' stroke='%23ffffff' stroke-opacity='.045' stroke-width='1.5'/%3E%3C/svg%3E");background-size:96px 48px}

/* =========================================================
   11. MEDIA + PLACEHOLDER
   ========================================================= */
.dsl-media{position:relative;overflow:hidden;background:var(--dsl-surface-alt);border-radius:var(--dsl-radius-md);aspect-ratio:var(--dsl-ratio,4/3)}
.dsl-media>img,.dsl-media>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.dsl-ratio-21x9{--dsl-ratio:21/9}.dsl-ratio-16x9{--dsl-ratio:16/9}.dsl-ratio-3x2{--dsl-ratio:3/2}.dsl-ratio-4x3{--dsl-ratio:4/3}.dsl-ratio-1x1{--dsl-ratio:1/1}.dsl-ratio-4x5{--dsl-ratio:4/5}.dsl-ratio-3x4{--dsl-ratio:3/4}.dsl-ratio-9x16{--dsl-ratio:9/16}
.dsl-media--placeholder{display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:var(--dsl-on-dark-muted);background-color:var(--dsl-primary);background-image:repeating-radial-gradient(circle at 28% 118%,rgba(255,255,255,.07) 0 1px,transparent 1px 22px),linear-gradient(160deg,var(--dsl-primary) 0%,var(--dsl-primary-dark) 100%);font-family:var(--dsl-font-head);font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.dsl-media--placeholder .dsl-icon{width:2rem;height:2rem;stroke-width:1.4;color:rgba(255,255,255,.55)}

/* =========================================================
   12. TOUR CARD
   ========================================================= */
.dsl-tour-card{position:relative;display:flex;flex-direction:column;height:100%;background:var(--dsl-surface);border:1px solid var(--dsl-border);border-radius:var(--dsl-radius-lg);overflow:hidden;box-shadow:var(--dsl-shadow-sm);transition:box-shadow var(--dsl-dur) var(--dsl-ease),border-color var(--dsl-dur) var(--dsl-ease)}
.dsl-tour-card:hover{box-shadow:var(--dsl-shadow-lg);border-color:color-mix(in srgb,var(--dsl-border) 60%,var(--dsl-primary))}
.dsl-tour-card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--dsl-surface-alt)}
.dsl-tour-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dsl-dur-slow) var(--dsl-ease)}
.dsl-tour-card:hover .dsl-tour-card__media img{transform:scale(1.04)}
.dsl-tour-card__badges{position:absolute;top:12px;left:12px;right:12px;display:flex;flex-wrap:wrap;gap:6px;z-index:2}
.dsl-tour-card__body{display:flex;flex-direction:column;gap:8px;padding:20px 20px 16px}
.dsl-tour-card__loc{display:flex;align-items:center;gap:6px;font-size:.875rem;font-weight:600;color:var(--dsl-text-muted);line-height:1.3}
.dsl-tour-card__loc .dsl-icon{width:1rem;height:1rem;color:var(--dsl-clay)}
.dsl-tour-card__title{margin:0;font-size:clamp(1.1875rem,1.14rem + .19vw,1.3125rem);font-weight:700;line-height:1.28;color:var(--dsl-secondary)}
.dsl-tour-card__desc{margin:0;font-size:.96875rem;line-height:1.55;color:var(--dsl-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dsl-tour-card__meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin:4px 0 0;padding:0;list-style:none;font-size:.875rem;font-weight:600;color:var(--dsl-text)}
.dsl-tour-card__meta li{display:inline-flex;align-items:center;gap:6px}
.dsl-tour-card__meta .dsl-icon{width:1rem;height:1rem;color:var(--dsl-primary)}
.dsl-tour-card__foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:16px 20px 20px;border-top:1px solid var(--dsl-border)}
.dsl-price-inline{display:grid;gap:2px;line-height:1.1}
.dsl-price-inline__from{font-family:var(--dsl-font-head);font-size:.71875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dsl-text-muted)}
.dsl-price-inline__amount{font-family:var(--dsl-font-head);font-size:1.4375rem;font-weight:700;color:var(--dsl-secondary);font-variant-numeric:tabular-nums lining-nums}
.dsl-price-inline__unit{font-size:.8125rem;color:var(--dsl-text-muted)}
.dsl-tour-card__cta{display:inline-flex;align-items:center;gap:6px;font-family:var(--dsl-font-head);font-size:.8125rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--dsl-primary);white-space:nowrap;min-height:var(--dsl-touch)}
.dsl-tour-card__cta .dsl-icon{width:1.0625rem;height:1.0625rem;transition:transform var(--dsl-dur-fast) var(--dsl-ease)}
.dsl-tour-card:hover .dsl-tour-card__cta{color:var(--dsl-secondary)}
.dsl-tour-card:hover .dsl-tour-card__cta .dsl-icon{transform:translateX(3px)}
.dsl-tour-card:hover .dsl-tour-card__title{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em;text-decoration-color:var(--dsl-accent)}
@media (min-width:768px){
  .dsl-tour-card--horizontal{display:grid;grid-template-columns:minmax(240px,42%) 1fr;grid-template-rows:1fr auto}
  .dsl-tour-card--horizontal .dsl-tour-card__media{grid-row:1 / span 2;aspect-ratio:auto;min-height:100%}
  .dsl-tour-card--horizontal .dsl-tour-card__body{padding:24px 24px 12px}
  .dsl-tour-card--horizontal .dsl-tour-card__foot{padding:16px 24px 24px}
}
.dsl-tour-card--compact .dsl-tour-card__desc{display:none}
.dsl-tour-card--compact .dsl-tour-card__body{padding:16px 16px 12px}
.dsl-tour-card--compact .dsl-tour-card__foot{padding:12px 16px 16px}

/* =========================================================
   13. DESTINATION CARD
   ========================================================= */
.dsl-dest-card{position:relative;display:block;isolation:isolate;overflow:hidden;border-radius:var(--dsl-radius-lg);aspect-ratio:3/4;background:var(--dsl-primary);color:#fff;text-decoration:none}
.dsl-dest-card img,.dsl-dest-card .dsl-media--placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform var(--dsl-dur-slow) var(--dsl-ease)}
.dsl-dest-card::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--dsl-scrim-bottom)}
.dsl-dest-card:hover img{transform:scale(1.05)}
.dsl-dest-card__body{position:absolute;left:0;right:0;bottom:0;display:grid;gap:6px;padding:20px}
.dsl-dest-card__kicker{font-family:var(--dsl-font-head);font-size:.71875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dsl-accent)}
.dsl-dest-card__name{margin:0;font-family:var(--dsl-font-head);font-size:clamp(1.375rem,1.3rem + .38vw,1.625rem);font-weight:700;line-height:1.15;color:#fff}
.dsl-dest-card__meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.9375rem;color:var(--dsl-on-dark-muted)}
.dsl-dest-card__meta .dsl-icon{transition:transform var(--dsl-dur-fast) var(--dsl-ease)}
.dsl-dest-card:hover .dsl-dest-card__meta .dsl-icon{transform:translateX(3px)}
.dsl-dest-card:hover,.dsl-dest-card:focus-visible{color:#fff}
.dsl-dest-card__desc{margin:0;max-width:44ch;font-size:1rem;line-height:1.5;color:var(--dsl-on-dark-muted)}
.dsl-dest-card--feature{aspect-ratio:4/5}
.dsl-dest-card--feature .dsl-dest-card__body{padding:clamp(20px,1rem + 1.5vw,36px);gap:10px}
.dsl-dest-card--feature .dsl-dest-card__name{font-size:clamp(1.75rem,1.5rem + 1vw,2.375rem)}
.dsl-dest-grid{display:grid;gap:var(--dsl-space-sm);grid-template-columns:repeat(2,minmax(0,1fr))}
.dsl-dest-grid>.dsl-dest-card--feature{grid-column:1 / -1}
@media (min-width:768px){.dsl-dest-grid{gap:var(--dsl-space-md)}.dsl-dest-grid>.dsl-dest-card--feature{aspect-ratio:16/9}}
@media (min-width:1025px){.dsl-dest-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dsl-dest-grid>.dsl-dest-card--feature{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}}

/* =========================================================
   14. EXPERIENCE CARD
   ========================================================= */
.dsl-exp-card{position:relative;display:grid;gap:14px;color:inherit;text-decoration:none}
.dsl-exp-card__media{position:relative;aspect-ratio:4/3;border-radius:var(--dsl-radius-lg);overflow:visible}
.dsl-exp-card__media img,.dsl-exp-card__media .dsl-media--placeholder{width:100%;height:100%;object-fit:cover;border-radius:var(--dsl-radius-lg);display:block;transition:filter var(--dsl-dur) var(--dsl-ease)}
.dsl-exp-card__icon{position:absolute;left:16px;bottom:-20px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--dsl-primary);box-shadow:var(--dsl-shadow-md)}
.dsl-exp-card__body{display:grid;gap:4px;padding-top:12px}
.dsl-exp-card__title{margin:0;display:flex;align-items:center;gap:8px;font-size:var(--dsl-fs-h4);font-weight:700;color:var(--dsl-secondary)}
.dsl-exp-card__title .dsl-icon{width:1.125rem;height:1.125rem;color:var(--dsl-primary);transition:transform var(--dsl-dur-fast) var(--dsl-ease)}
.dsl-exp-card__text{margin:0;font-size:.96875rem;line-height:1.55;color:var(--dsl-text-muted)}
.dsl-exp-card:hover .dsl-exp-card__media img{filter:brightness(1.06) saturate(1.05)}
.dsl-exp-card:hover .dsl-exp-card__title{text-decoration:underline;text-decoration-color:var(--dsl-accent);text-decoration-thickness:2px;text-underline-offset:.2em}
.dsl-exp-card:hover .dsl-exp-card__title .dsl-icon{transform:translateX(3px)}

/* =========================================================
   15. BLOG / TRAVEL GUIDE CARD
   ========================================================= */
.dsl-blog-card{position:relative;display:flex;flex-direction:column;gap:12px}
.dsl-blog-card__media{position:relative;aspect-ratio:16/9;border-radius:var(--dsl-radius-md);overflow:hidden;background:var(--dsl-surface-alt)}
.dsl-blog-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dsl-dur-slow) var(--dsl-ease)}
.dsl-blog-card:hover .dsl-blog-card__media img{transform:scale(1.03)}
.dsl-blog-card__cat{font-family:var(--dsl-font-head);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dsl-clay)}
.dsl-blog-card__title{margin:0;font-size:clamp(1.1875rem,1.14rem + .19vw,1.3125rem);font-weight:700;line-height:1.3;color:var(--dsl-secondary)}
.dsl-blog-card__excerpt{margin:0;font-size:.96875rem;line-height:1.55;color:var(--dsl-text-muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dsl-blog-card__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;font-size:.875rem;color:var(--dsl-text-muted)}
.dsl-blog-card__time{display:inline-flex;align-items:center;gap:6px}
.dsl-blog-card__time .dsl-icon{width:1rem;height:1rem}
.dsl-blog-card:hover .dsl-blog-card__title{text-decoration:underline;text-decoration-color:var(--dsl-accent);text-decoration-thickness:2px;text-underline-offset:.2em}
.dsl-blog-card--featured{background:var(--dsl-cream);border-radius:var(--dsl-radius-lg);overflow:hidden;gap:0}
.dsl-blog-card--featured .dsl-blog-card__media{border-radius:0}
.dsl-blog-card--featured .dsl-blog-card__body{display:flex;flex-direction:column;gap:12px;padding:clamp(20px,1rem + 1.5vw,40px)}
.dsl-blog-card--featured .dsl-blog-card__title{font-size:var(--dsl-fs-h3)}
@media (min-width:1025px){.dsl-blog-card--featured{display:grid;grid-template-columns:1.15fr 1fr}.dsl-blog-card--featured .dsl-blog-card__media{aspect-ratio:auto;min-height:100%}}
.dsl-blog-card--compact{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:14px}
.dsl-blog-card--compact .dsl-blog-card__media{aspect-ratio:1/1;border-radius:var(--dsl-radius-md)}
.dsl-blog-card--compact .dsl-blog-card__title{font-size:1.03125rem;line-height:1.35}
.dsl-blog-card--compact .dsl-blog-card__body{display:grid;gap:4px}

/* =========================================================
   16. PRICE BOX + MOBILE PRICE BAR
   ========================================================= */
.dsl-price-box{display:grid;gap:18px;padding:24px;background:var(--dsl-surface);border:1px solid var(--dsl-border);border-radius:var(--dsl-radius-lg);box-shadow:var(--dsl-shadow-md)}
.dsl-price-box__top{display:grid;gap:6px;padding-bottom:18px;border-bottom:1px solid var(--dsl-border)}
.dsl-price-box__row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.dsl-price-box__unit{font-size:.9375rem;color:var(--dsl-text-muted)}
.dsl-price-box__list{display:grid;gap:8px;margin:0;padding:0;list-style:none;font-size:.9375rem}
.dsl-price-box__list li{display:flex;gap:10px;align-items:flex-start}
.dsl-price-box__list .dsl-icon{width:1.125rem;height:1.125rem;color:var(--dsl-success);margin-top:2px}
.dsl-price-box__actions{display:grid;gap:10px}
.dsl-price-box__alt{display:flex;justify-content:center;font-size:.9375rem}
.dsl-price-bar{display:flex;align-items:center;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--dsl-surface);border-top:1px solid var(--dsl-border);box-shadow:0 -10px 28px -14px rgba(10,35,66,.28)}
.dsl-price-bar--fixed{position:fixed;left:0;right:0;bottom:0;z-index:90}
.dsl-price-bar__price{display:grid;line-height:1.1;margin-right:auto}
.dsl-price-bar__price .dsl-price-inline__amount{font-size:1.25rem}
.dsl-price-bar .dsl-btn{min-height:46px;padding:0 1.1rem;font-size:.8125rem}

/* =========================================================
   17. TRIP INFO GRID
   ========================================================= */
.dsl-trip-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px;margin:0;padding:20px;list-style:none;background:var(--dsl-cream);border-radius:var(--dsl-radius-lg)}
@media (min-width:768px){.dsl-trip-info{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 20px;padding:28px}}
@media (min-width:1025px){.dsl-trip-info--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.dsl-trip-info__item{display:flex;align-items:center;gap:12px;min-width:0}
.dsl-trip-info__item .dsl-icon-chip{background:#fff;color:var(--dsl-primary);width:44px;height:44px}
.dsl-trip-info__text{display:grid;gap:2px;min-width:0}
.dsl-trip-info__label{font-family:var(--dsl-font-head);font-size:.71875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dsl-text-muted)}
.dsl-trip-info__value{font-family:var(--dsl-font-head);font-size:1.0625rem;font-weight:600;line-height:1.25;color:var(--dsl-secondary);overflow-wrap:break-word;hyphens:manual}
@media (max-width:479.98px){.dsl-trip-info{padding:16px;gap:18px 12px}.dsl-trip-info__item{flex-direction:column;align-items:flex-start;gap:8px}.dsl-trip-info__item .dsl-icon-chip{width:40px;height:40px}}

/* =========================================================
   18. TABS (desktop tabs → mobile horizontal scroll with fade)
   ========================================================= */
.dsl-tabs__list{display:flex;gap:4px;border-bottom:1px solid var(--dsl-border);overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
.dsl-tabs__list::-webkit-scrollbar{display:none}
@media (min-width:768px){.dsl-tabs__list{-webkit-mask-image:none;mask-image:none;gap:8px}}
.dsl-tabs__tab{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:52px;padding:0 14px;margin-bottom:-1px;border-bottom:2.5px solid transparent;font-family:var(--dsl-font-head);font-size:.96875rem;font-weight:600;color:var(--dsl-text-muted);cursor:pointer;scroll-snap-align:start;transition:color var(--dsl-dur-fast),border-color var(--dsl-dur-fast)}
.dsl-tabs__tab .dsl-icon{width:1.0625rem;height:1.0625rem}
.dsl-tabs__tab:hover{color:var(--dsl-text)}
.dsl-tabs__tab[aria-selected="true"],.dsl-tabs__tab[aria-selected="true"]:hover,.dsl-tabs__tab[aria-selected="true"]:focus{color:var(--dsl-primary);border-bottom-color:var(--dsl-primary)}
.dsl-tabs__tab:focus-visible{outline:3px solid var(--dsl-focus);outline-offset:-3px;border-radius:var(--dsl-radius-sm)}
.dsl-tabs__panel{padding-top:var(--dsl-space-md)}
.dsl-tabs__panel:focus-visible{outline-offset:6px}

/* =========================================================
   19. ACCORDION + ITINERARY
   ========================================================= */
.dsl-accordion{border-top:1px solid var(--dsl-border)}
.dsl-accordion__item{border-bottom:1px solid var(--dsl-border)}
.dsl-accordion__summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:14px 4px;list-style:none;cursor:pointer;font-family:var(--dsl-font-head);font-size:1.0625rem;font-weight:600;line-height:1.35;color:var(--dsl-secondary);transition:color var(--dsl-dur-fast)}
.dsl-accordion__summary::-webkit-details-marker{display:none}
.dsl-accordion__summary::marker{content:""}
.dsl-accordion__summary:hover{color:var(--dsl-primary)}
.dsl-accordion__summary:focus-visible{outline:3px solid var(--dsl-focus);outline-offset:2px;border-radius:var(--dsl-radius-sm)}
.dsl-accordion__chev{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--dsl-surface-alt);color:var(--dsl-primary);transition:transform var(--dsl-dur) var(--dsl-ease),background-color var(--dsl-dur-fast)}
.dsl-accordion__item[open]>.dsl-accordion__summary .dsl-accordion__chev{transform:rotate(180deg);background:var(--dsl-primary-tint-2)}
.dsl-accordion__content{padding:0 4px 20px;color:var(--dsl-text);font-size:var(--dsl-fs-body)}
.dsl-accordion__content>:last-child{margin-bottom:0}
.dsl-accordion--boxed{border:0;display:grid;gap:10px}
.dsl-accordion--boxed .dsl-accordion__item{border:1px solid var(--dsl-border);border-radius:var(--dsl-radius-md);background:var(--dsl-surface);padding:0 16px;transition:border-color var(--dsl-dur-fast),box-shadow var(--dsl-dur-fast)}
.dsl-accordion--boxed .dsl-accordion__item[open]{border-color:var(--dsl-primary-tint-2);box-shadow:var(--dsl-shadow-sm)}
.dsl-itinerary{position:relative;display:grid;gap:0;margin:0;padding:0;list-style:none}
.dsl-itinerary::before{content:"";position:absolute;left:19px;top:30px;bottom:30px;width:2px;background:repeating-linear-gradient(to bottom,var(--dsl-primary-tint-2) 0 6px,transparent 6px 11px)}
.dsl-itinerary .dsl-accordion__item{border-bottom:0}
.dsl-itinerary .dsl-accordion__summary{justify-content:flex-start;align-items:flex-start;padding:14px 0}
.dsl-itinerary__day{position:relative;z-index:1;flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--dsl-primary);color:#fff;font-family:var(--dsl-font-head);font-size:.9375rem;font-weight:700}
.dsl-itinerary__head{display:grid;gap:4px;flex:1;min-width:0;padding-top:2px}
.dsl-itinerary__meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-family:var(--dsl-font-body);font-size:.875rem;font-weight:600;color:var(--dsl-text-muted)}
.dsl-itinerary__meta span{display:inline-flex;align-items:center;gap:5px}
.dsl-itinerary__meta .dsl-icon{width:.9375rem;height:.9375rem}
.dsl-itinerary .dsl-accordion__content{padding:0 0 20px 56px}
.dsl-itinerary .dsl-accordion__chev{margin-left:auto}

/* =========================================================
   20. FORMS
   ========================================================= */
.dsl-form{display:grid;gap:var(--dsl-space-md)}
.dsl-form-grid{display:grid;gap:18px}
@media (min-width:768px){.dsl-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}.dsl-field--full{grid-column:1 / -1}}
.dsl-field{display:grid;gap:6px;min-width:0}
.dsl-field__label{font-weight:600;font-size:.96875rem;color:var(--dsl-text);line-height:1.3}
.dsl-field__req{color:var(--dsl-clay);margin-left:2px}
.dsl-field__help{font-size:.875rem;color:var(--dsl-text-muted);line-height:1.4}
.dsl-field__msg{display:flex;align-items:center;gap:6px;font-size:.875rem;font-weight:600;line-height:1.3}
.dsl-field__msg .dsl-icon{width:1rem;height:1rem}
.dsl-input,.dsl-select,.dsl-textarea{display:block;width:100%;min-height:52px;padding:12px 14px;border:1.5px solid var(--dsl-border-strong);border-radius:var(--dsl-radius-md);background-color:#fff;color:var(--dsl-text);font-family:var(--dsl-font-body);font-size:1.0625rem;line-height:1.35;transition:border-color var(--dsl-dur-fast),box-shadow var(--dsl-dur-fast);-webkit-appearance:none;appearance:none}
.dsl-input::placeholder,.dsl-textarea::placeholder{color:color-mix(in srgb,var(--dsl-text-muted) 80%,#fff)}
.dsl-input:hover,.dsl-select:hover,.dsl-textarea:hover{border-color:var(--dsl-text-muted)}
.dsl-input:focus,.dsl-select:focus,.dsl-textarea:focus{outline:none;border-color:var(--dsl-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--dsl-primary) 22%,transparent)}
.dsl-textarea{min-height:140px;resize:vertical}
.dsl-select{padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%230E3B47' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px}
.dsl-input[type=date]{min-height:52px}
.dsl-input[type=date]::-webkit-calendar-picker-indicator{opacity:.7;cursor:pointer}
.dsl-field--error .dsl-input,.dsl-field--error .dsl-select,.dsl-field--error .dsl-textarea,.dsl-input[aria-invalid="true"]{border-color:var(--dsl-error);background-color:var(--dsl-error-tint)}
.dsl-field--error .dsl-field__msg{color:var(--dsl-error)}
.dsl-field--success .dsl-input{border-color:var(--dsl-success)}
.dsl-field--success .dsl-field__msg{color:var(--dsl-success)}
.dsl-input:disabled,.dsl-select:disabled,.dsl-textarea:disabled{background-color:var(--dsl-surface-alt);color:var(--dsl-text-muted);border-color:var(--dsl-border);cursor:not-allowed}
.dsl-check{display:flex;align-items:flex-start;gap:12px;min-height:var(--dsl-touch);padding-block:10px;cursor:pointer;font-size:1rem;line-height:1.4}
.dsl-check input{flex:none;width:22px;height:22px;margin:0;border:1.5px solid var(--dsl-border-strong);border-radius:5px;background:#fff center/14px no-repeat;-webkit-appearance:none;appearance:none;cursor:pointer;transition:background-color var(--dsl-dur-fast),border-color var(--dsl-dur-fast)}
.dsl-check input[type=radio]{border-radius:50%}
.dsl-check input:checked{background-color:var(--dsl-primary);border-color:var(--dsl-primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.dsl-check input[type=radio]:checked{background-image:radial-gradient(#fff 0 4px,transparent 4.5px)}
.dsl-check input:focus-visible{outline:3px solid var(--dsl-focus);outline-offset:2px}
.dsl-check input:disabled{background-color:var(--dsl-surface-alt);border-color:var(--dsl-border);cursor:not-allowed}
.dsl-check input:disabled+span{color:var(--dsl-text-muted)}
.dsl-stepper{display:inline-flex;align-items:center;border:1.5px solid var(--dsl-border-strong);border-radius:var(--dsl-radius-pill);background:#fff;width:max-content}
.dsl-stepper button{display:grid;place-items:center;width:44px;height:48px;color:var(--dsl-primary);cursor:pointer;border-radius:var(--dsl-radius-pill)}
.dsl-stepper button:hover{background:var(--dsl-surface-alt);color:var(--dsl-secondary)}
.dsl-stepper input{width:3rem;border:0;text-align:center;font-family:var(--dsl-font-head);font-size:1.0625rem;font-weight:700;color:var(--dsl-secondary);background:transparent;-moz-appearance:textfield;appearance:textfield;padding:0}
.dsl-stepper input::-webkit-outer-spin-button,.dsl-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.dsl-stepper input:focus-visible{outline:none;box-shadow:inset 0 -2px 0 var(--dsl-primary)}
.dsl-form__note{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-radius:var(--dsl-radius-md);background:var(--dsl-primary-tint);color:var(--dsl-text);font-size:.9375rem}
.dsl-form__note .dsl-icon{color:var(--dsl-primary);margin-top:2px}

/* =========================================================
   21. CTA BLOCKS
   ========================================================= */
.dsl-cta-band{position:relative;background-color:var(--dsl-primary);color:var(--dsl-on-dark);padding-block:var(--dsl-section-y-sm);text-align:center;overflow:hidden}
.dsl-cta-band h2{color:#fff;margin:0}
.dsl-cta-band p{color:var(--dsl-on-dark-muted);font-size:var(--dsl-fs-lead);max-width:56ch;margin:0 auto}
.dsl-cta-band__inner{display:grid;gap:18px;justify-items:center}
.dsl-cta-photo{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--dsl-radius-xl);min-height:clamp(420px,32vw,500px);display:flex;align-items:flex-end;color:#fff}
.dsl-cta-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.dsl-cta-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--dsl-scrim-bottom)}
.dsl-cta-photo__body{display:grid;gap:14px;max-width:560px;padding:clamp(24px,1rem + 3vw,56px)}
.dsl-cta-photo__body h2{color:#fff;margin:0}
.dsl-cta-photo__body p{margin:0;color:var(--dsl-on-dark-muted);font-size:var(--dsl-fs-lead)}
@media (min-width:768px){.dsl-cta-photo{align-items:center}.dsl-cta-photo::after{background:var(--dsl-scrim-left)}}
.dsl-cta-compact{display:flex;flex-direction:column;gap:18px;padding:clamp(20px,1rem + 1.5vw,32px);background:var(--dsl-cream);border-radius:var(--dsl-radius-lg);border:1px solid color-mix(in srgb,var(--dsl-clay) 14%,var(--dsl-cream))}
.dsl-cta-compact h3{margin:0}
.dsl-cta-compact p{margin:4px 0 0;color:var(--dsl-text-muted)}
@media (min-width:768px){.dsl-cta-compact{flex-direction:row;align-items:center;justify-content:space-between}}

/* =========================================================
   22. TRUST BAR
   ========================================================= */
.dsl-trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;margin:0;padding:20px;list-style:none;background:var(--dsl-surface);border-radius:var(--dsl-radius-lg)}
.dsl-trust--floating{box-shadow:var(--dsl-shadow-lg);border:1px solid var(--dsl-border)}
@media (min-width:1025px){.dsl-trust{grid-template-columns:repeat(4,minmax(0,1fr));padding:24px 28px;gap:24px}}
.dsl-trust__item{display:flex;gap:12px;align-items:flex-start;min-width:0}
.dsl-trust__item .dsl-icon-chip{width:42px;height:42px;background:var(--dsl-cream);color:var(--dsl-clay)}
.dsl-trust__title{display:block;font-family:var(--dsl-font-head);font-size:1rem;font-weight:700;color:var(--dsl-secondary);line-height:1.25}
.dsl-trust__text{display:block;margin-top:2px;font-size:.875rem;line-height:1.4;color:var(--dsl-text-muted)}
@media (max-width:479.98px){.dsl-trust__text{display:none}.dsl-trust__item{align-items:center}}

/* =========================================================
   23. GALLERY (tour hero gallery, carousel, editorial)
   ========================================================= */
.dsl-gallery{position:relative}
.dsl-gallery__grid{display:none}
.dsl-carousel{position:relative}
.dsl-carousel__track{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;border-radius:var(--dsl-radius-lg);scrollbar-width:none}
.dsl-carousel__track::-webkit-scrollbar{display:none}
.dsl-carousel__slide{flex:0 0 100%;scroll-snap-align:center;aspect-ratio:4/3;border-radius:var(--dsl-radius-lg);overflow:hidden;background:var(--dsl-surface-alt)}
.dsl-carousel__slide img{width:100%;height:100%;object-fit:cover;display:block}
.dsl-carousel__count{position:absolute;left:12px;bottom:12px;padding:6px 10px;border-radius:var(--dsl-radius-pill);background:rgba(10,20,26,.72);color:#fff;font-family:var(--dsl-font-head);font-size:.8125rem;font-weight:700;font-variant-numeric:tabular-nums}
.dsl-gallery__actions{position:absolute;right:12px;bottom:12px;display:flex;gap:8px;z-index:2}
.dsl-gallery__btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:var(--dsl-radius-pill);background:rgba(255,255,255,.95);color:var(--dsl-secondary);font-family:var(--dsl-font-head);font-size:.8125rem;font-weight:700;box-shadow:var(--dsl-shadow-sm);cursor:pointer}
.dsl-gallery__btn:hover{background:#fff;color:var(--dsl-primary)}
.dsl-gallery__btn .dsl-icon{width:1rem;height:1rem}
@media (min-width:768px){
  .dsl-gallery .dsl-carousel{display:none}
  .dsl-gallery__grid{display:grid;gap:8px;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,1fr);height:clamp(340px,44vw,440px)}
  .dsl-gallery__grid>*{position:relative;overflow:hidden;border-radius:var(--dsl-radius-md);background:var(--dsl-surface-alt)}
  .dsl-gallery__grid>:first-child{grid-row:1 / span 2}
  .dsl-gallery__grid>:nth-child(n+4){display:none}
  .dsl-gallery__grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dsl-dur-slow) var(--dsl-ease)}
  .dsl-gallery__grid a:hover img{transform:scale(1.03)}
}
@media (min-width:1025px){
  .dsl-gallery__grid{grid-template-columns:2fr 1fr 1fr;height:clamp(420px,36vw,520px)}
  .dsl-gallery__grid>:nth-child(n+4){display:block}
  .dsl-gallery__grid>:nth-child(n+6){display:none}
}
.dsl-editorial{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.dsl-editorial figure{display:grid;gap:8px}
.dsl-editorial figure:first-child{grid-column:1 / -1}
.dsl-editorial .dsl-media{border-radius:var(--dsl-radius-md)}
.dsl-editorial figcaption{font-size:var(--dsl-fs-caption);color:var(--dsl-text-muted);line-height:1.4}
@media (min-width:768px){.dsl-editorial{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.dsl-editorial figure:first-child{grid-column:span 4;grid-row:span 2}.dsl-editorial figure{grid-column:span 2}.dsl-editorial figure:first-child .dsl-media{height:100%;aspect-ratio:auto;min-height:320px}}

/* =========================================================
   24. VIDEO (poster + click-to-load)
   ========================================================= */
.dsl-video{position:relative;display:grid;gap:12px}
.dsl-video__poster{position:relative;display:block;width:100%;aspect-ratio:16/9;border-radius:var(--dsl-radius-lg);overflow:hidden;background:var(--dsl-primary);cursor:pointer;isolation:isolate;padding:0}
.dsl-video__poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform var(--dsl-dur-slow) var(--dsl-ease)}
.dsl-video__poster::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(6,24,31,.55),rgba(6,24,31,0) 55%)}
.dsl-video__play{position:absolute;left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.96);color:var(--dsl-secondary);box-shadow:0 10px 30px -10px rgba(0,0,0,.45);transition:transform var(--dsl-dur) var(--dsl-ease),background-color var(--dsl-dur-fast)}
.dsl-video__play .dsl-icon{width:26px;height:26px;margin-left:3px;fill:currentColor}
.dsl-video__poster:hover .dsl-video__play{transform:scale(1.07);background:var(--dsl-accent)}
.dsl-video__poster:hover img{transform:scale(1.03)}
.dsl-video__poster:focus-visible{outline:3px solid var(--dsl-focus);outline-offset:3px}
.dsl-video__duration{position:absolute;right:12px;bottom:12px;padding:5px 9px;border-radius:var(--dsl-radius-sm);background:rgba(10,20,26,.78);color:#fff;font-family:var(--dsl-font-head);font-size:.78125rem;font-weight:700;font-variant-numeric:tabular-nums}
.dsl-video__label{position:absolute;left:12px;top:12px}
.dsl-video__title{margin:0;font-size:1.0625rem;font-weight:700;color:var(--dsl-secondary);line-height:1.3}
.dsl-video__meta{margin:0;font-size:.875rem;color:var(--dsl-text-muted)}
.dsl-video__note{font-size:.875rem;color:var(--dsl-text-muted)}
.dsl-video__iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:var(--dsl-radius-lg);display:block}
.dsl-video--reel{max-width:300px}
.dsl-video--reel .dsl-video__poster{aspect-ratio:9/16}
.dsl-video--reel .dsl-video__iframe{aspect-ratio:9/16}
.dsl-video--reel .dsl-video__play{width:56px;height:56px;margin:-28px 0 0 -28px}
.dsl-video__overlay-text{position:absolute;left:14px;right:14px;bottom:14px;color:#fff;font-family:var(--dsl-font-head);font-weight:700;font-size:1rem;line-height:1.3;text-align:left}
.dsl-video--hero .dsl-video__poster{aspect-ratio:4/5;border-radius:var(--dsl-radius-xl)}
@media (min-width:768px){.dsl-video--hero .dsl-video__poster{aspect-ratio:16/9}}
@media (min-width:1025px){.dsl-video--hero .dsl-video__poster{aspect-ratio:21/9}}
.dsl-video--hero .dsl-video__play{width:84px;height:84px;margin:-42px 0 0 -42px}
.dsl-reel-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,62%);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;scrollbar-width:thin}
.dsl-reel-rail>*{scroll-snap-align:start;max-width:none}
@media (min-width:768px){.dsl-reel-rail{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;overflow:visible}}

/* =========================================================
   25. BREADCRUMBS
   ========================================================= */
.dsl-breadcrumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0;padding:0;list-style:none;font-size:.9375rem;color:var(--dsl-text-muted)}
.dsl-breadcrumb li{display:inline-flex;align-items:center;gap:8px}
.dsl-breadcrumb li+li::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);opacity:.6}
.dsl-breadcrumb a{color:var(--dsl-text-muted);text-decoration:none;display:inline-flex;min-height:32px;align-items:center}
.dsl-breadcrumb a:hover{color:var(--dsl-primary);text-decoration:underline;text-underline-offset:.25em}
.dsl-breadcrumb [aria-current="page"]{color:var(--dsl-text);font-weight:600}
.dsl-on-dark .dsl-breadcrumb ol,.dsl-on-dark .dsl-breadcrumb a{color:var(--dsl-on-dark-muted)}
.dsl-on-dark .dsl-breadcrumb [aria-current="page"]{color:#fff}

/* =========================================================
   26. LOGO PLACEHOLDER, HEADER, NAV, DRAWER
   ========================================================= */
.dsl-logo{display:inline-flex;align-items:center;gap:10px;color:var(--dsl-secondary);text-decoration:none;line-height:1}
.dsl-logo__mark{width:26px;height:14px;flex:none;color:var(--dsl-accent);background:linear-gradient(currentColor,currentColor) 0 100%/7px 5px no-repeat,linear-gradient(currentColor,currentColor) 9.5px 100%/7px 9px no-repeat,linear-gradient(currentColor,currentColor) 19px 100%/7px 14px no-repeat}
.dsl-logo__text{display:grid;gap:3px}
.dsl-logo__name{font-family:var(--dsl-font-head);font-size:1.25rem;font-weight:700;letter-spacing:.04em}
.dsl-logo__sub{font-family:var(--dsl-font-head);font-size:.625rem;font-weight:700;letter-spacing:.34em;text-transform:uppercase;color:var(--dsl-text-muted)}
.dsl-logo--light{color:#fff}
.dsl-logo--light .dsl-logo__sub{color:var(--dsl-on-dark-muted)}
.dsl-header{position:relative;z-index:80;background:rgba(255,255,255,.97);border-bottom:1px solid var(--dsl-border)}
.dsl-header--sticky{position:sticky;top:0}
.dsl-header__inner{display:flex;align-items:center;gap:var(--dsl-space-md);min-height:var(--dsl-header-h)}
.dsl-header__nav{display:none;margin-inline:auto}
.dsl-header__nav ul{display:flex;align-items:center;gap:clamp(12px,1.6vw,28px);margin:0;padding:0;list-style:none}
.dsl-header__actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.dsl-header__cta{display:none}
@media (min-width:1025px){.dsl-header__nav{display:block}.dsl-header__cta{display:inline-flex}.dsl-header__burger{display:none}.dsl-header__actions{margin-left:0}}
.dsl-header--overlay{background:transparent;border-bottom-color:rgba(255,255,255,.18)}
.dsl-header--overlay .dsl-logo{color:#fff}
.dsl-header--overlay .dsl-logo__sub{color:var(--dsl-on-dark-muted)}
.dsl-header--overlay .dsl-nav-link{color:#fff}
.dsl-header--overlay .dsl-nav-link .dsl-icon{color:var(--dsl-on-dark-muted)}
.dsl-header--overlay .dsl-icon-btn{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}
.dsl-dropdown{display:grid;gap:4px;min-width:280px;padding:12px;background:#fff;border:1px solid var(--dsl-border);border-radius:var(--dsl-radius-lg);box-shadow:var(--dsl-shadow-lg)}
.dsl-dropdown a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px;border-radius:var(--dsl-radius-md);color:var(--dsl-text);text-decoration:none;font-weight:600}
.dsl-dropdown a:hover{background:var(--dsl-cream);color:var(--dsl-secondary)}
.dsl-dropdown small{font-weight:400;color:var(--dsl-text-muted);font-size:.8125rem}
.dsl-dropdown__all{border-top:1px solid var(--dsl-border);margin-top:4px;padding-top:4px}
.dsl-dropdown__all a{color:var(--dsl-primary)}
.dsl-drawer{display:flex;flex-direction:column;width:min(88vw,400px);height:100%;background:#fff;box-shadow:var(--dsl-shadow-lg)}
.dsl-drawer--fixed{position:fixed;top:0;right:0;bottom:0;z-index:100}
.dsl-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--dsl-header-h);padding:0 16px;border-bottom:1px solid var(--dsl-border)}
.dsl-drawer__nav{flex:1;overflow-y:auto;padding:8px 16px}
.dsl-drawer__nav>ul{margin:0;padding:0;list-style:none}
.dsl-drawer__nav li{border-bottom:1px solid var(--dsl-border)}
.dsl-drawer__link,.dsl-drawer__nav summary{display:flex;align-items:center;justify-content:space-between;min-height:56px;font-family:var(--dsl-font-head);font-size:1.0625rem;font-weight:600;color:var(--dsl-secondary);text-decoration:none;cursor:pointer;list-style:none}
.dsl-drawer__nav summary::-webkit-details-marker{display:none}
.dsl-drawer__nav details[open] summary .dsl-icon{transform:rotate(180deg)}
.dsl-drawer__nav summary .dsl-icon{transition:transform var(--dsl-dur) var(--dsl-ease);color:var(--dsl-primary)}
.dsl-drawer__sub{margin:0 0 12px;padding:0 0 0 12px;list-style:none;border-left:2px solid var(--dsl-primary-tint-2)}
.dsl-drawer__sub li{border:0}
.dsl-drawer__sub a{display:flex;min-height:44px;align-items:center;color:var(--dsl-text);text-decoration:none;font-size:1rem}
.dsl-drawer__foot{display:grid;gap:10px;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--dsl-border);background:var(--dsl-cream)}
.dsl-drawer__contact{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px;font-size:.9375rem;color:var(--dsl-text-muted)}
.dsl-drawer__contact a{color:var(--dsl-text-muted);text-decoration:none}
.dsl-float-wa{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:85;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#fff;color:#1FA855;box-shadow:var(--dsl-shadow-lg);border:1px solid var(--dsl-border)}
.dsl-float-wa .dsl-icon{width:28px;height:28px}

/* =========================================================
   27. FOOTER
   ========================================================= */
.dsl-footer{background:var(--dsl-footer);color:var(--dsl-on-dark-muted);padding-block:clamp(48px,2.5rem + 2vw,72px) 0;font-size:.96875rem}
.dsl-footer h2,.dsl-footer h3{color:#fff}
.dsl-footer__grid{display:grid;gap:36px 24px;grid-template-columns:repeat(2,minmax(0,1fr))}
.dsl-footer__brand{grid-column:1 / -1;display:grid;gap:16px;align-content:start;max-width:420px}
.dsl-footer__brand p{margin:0;line-height:1.6}
.dsl-footer__title{margin:0 0 8px;font-family:var(--dsl-font-head);font-size:.8125rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff}
.dsl-footer__list{margin:0;padding:0;list-style:none;display:grid;gap:2px}
.dsl-footer__contact{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.dsl-footer__contact li{display:flex;gap:10px;align-items:center}
.dsl-footer__contact .dsl-icon{color:var(--dsl-accent);width:1.125rem;height:1.125rem}
.dsl-footer__contact a{color:var(--dsl-on-dark-muted);text-decoration:none}
.dsl-footer__contact a:hover{color:#fff;text-decoration:underline}
.dsl-footer__social{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.dsl-footer__bottom{display:flex;flex-direction:column;gap:12px;margin-top:48px;padding-block:22px calc(22px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--dsl-on-dark-line);font-size:.875rem}
.dsl-footer__legal{display:flex;flex-wrap:wrap;gap:4px 18px;margin:0;padding:0;list-style:none}
@media (min-width:768px){.dsl-footer__grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dsl-footer__bottom{flex-direction:row;justify-content:space-between;align-items:center}}
@media (min-width:1025px){.dsl-footer__grid{grid-template-columns:1.6fr repeat(4,minmax(0,1fr));gap:40px}.dsl-footer__brand{grid-column:auto}}

/* =========================================================
   28. PAGE HERO (photo hero pattern)
   ========================================================= */
.dsl-hero{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:clamp(520px,68vw,680px);color:#fff;overflow:hidden}
.dsl-hero>img,.dsl-hero>picture>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.dsl-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(6,24,31,.86) 0%,rgba(6,24,31,.45) 45%,rgba(6,24,31,.15) 100%)}
.dsl-hero__body{display:grid;gap:18px;max-width:720px;padding-block:clamp(40px,2rem + 4vw,96px)}
.dsl-hero__body>*{margin:0}
.dsl-hero .dsl-display{color:#fff}
.dsl-hero__lead{font-size:var(--dsl-fs-lead);line-height:1.55;color:rgba(255,255,255,.9);max-width:58ch}
@media (min-width:1025px){.dsl-hero{align-items:center;min-height:clamp(560px,46vw,700px)}.dsl-hero::after{background:linear-gradient(90deg,rgba(6,24,31,.82) 0%,rgba(6,24,31,.5) 45%,rgba(6,24,31,.08) 100%)}}

/* =========================================================
   29. ELEMENTOR INTEGRATION (native widgets follow the system)
   Add these CSS classes in Advanced → CSS Classes of a widget.
   ========================================================= */
.elementor-widget-heading .elementor-heading-title{font-family:var(--dsl-font-head);color:var(--dsl-secondary);line-height:var(--dsl-lh-heading)}
.elementor-widget-text-editor{font-family:var(--dsl-font-body);color:var(--dsl-text)}
.elementor-widget-button .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:0 1.5rem;border:1.5px solid var(--dsl-accent);border-radius:var(--dsl-radius-pill);background-color:var(--dsl-accent);color:var(--dsl-secondary);font-family:var(--dsl-font-head);font-size:.9375rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.1;transition:background-color var(--dsl-dur-fast),border-color var(--dsl-dur-fast),color var(--dsl-dur-fast)}
.elementor-widget-button .elementor-button:hover,.elementor-widget-button .elementor-button:focus{background-color:var(--dsl-accent-hover);border-color:var(--dsl-accent-hover);color:var(--dsl-secondary)}
.elementor-widget-button .elementor-button:focus-visible{outline:3px solid var(--dsl-focus);outline-offset:3px}
.dsl-el-btn-secondary .elementor-button{background-color:var(--dsl-primary);border-color:var(--dsl-primary);color:#fff}
.dsl-el-btn-secondary .elementor-button:hover,.dsl-el-btn-secondary .elementor-button:focus{background-color:var(--dsl-primary-dark);border-color:var(--dsl-primary-dark);color:#fff}
.dsl-el-btn-outline .elementor-button{background-color:transparent;border-color:var(--dsl-secondary);color:var(--dsl-secondary)}
.dsl-el-btn-outline .elementor-button:hover,.dsl-el-btn-outline .elementor-button:focus{background-color:var(--dsl-secondary);border-color:var(--dsl-secondary);color:#fff}
.dsl-el-btn-lg .elementor-button{min-height:56px;padding:0 2rem;font-size:1rem}
.dsl-el-btn-block .elementor-button{width:100%}
.dsl-el-eyebrow .elementor-heading-title{display:inline-flex;align-items:center;gap:.7rem;font-size:.8125rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dsl-clay);line-height:1.2}
.dsl-el-eyebrow .elementor-heading-title::before{content:"";width:22px;height:10px;background:linear-gradient(currentColor,currentColor) 0 100%/6px 4px no-repeat,linear-gradient(currentColor,currentColor) 8px 100%/6px 7px no-repeat,linear-gradient(currentColor,currentColor) 16px 100%/6px 10px no-repeat}
.dsl-el-lead .elementor-widget-container,.dsl-el-lead p{font-size:var(--dsl-fs-lead);color:var(--dsl-text-muted);line-height:1.6}

/* =========================================================
   29b. ELEMENTOR INTEGRATION — additions (Phase 2)
   ========================================================= */
.dsl-el-display .elementor-heading-title{font-size:var(--dsl-fs-display);font-weight:700;line-height:var(--dsl-lh-tight);letter-spacing:-.018em}
.dsl-el-btn-outline-light .elementor-button{background-color:transparent;border-color:rgba(255,255,255,.85);color:#fff}
.dsl-el-btn-outline-light .elementor-button:hover,.dsl-el-btn-outline-light .elementor-button:focus{background-color:#fff;border-color:#fff;color:var(--dsl-secondary)}
.dsl-on-dark .elementor-widget-heading .elementor-heading-title{color:#fff}
.dsl-on-dark .dsl-el-eyebrow .elementor-heading-title{color:var(--dsl-accent)}
.dsl-on-dark .elementor-widget-text-editor,.dsl-on-dark .dsl-el-lead p{color:var(--dsl-on-dark-muted)}
.elementor-widget-text-editor>:last-child{margin-bottom:0}

/* =========================================================
   30. REDUCED MOTION
   ========================================================= */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
  .dsl-tour-card:hover .dsl-tour-card__media img,.dsl-dest-card:hover img,.dsl-blog-card:hover .dsl-blog-card__media img,.dsl-video__poster:hover img{transform:none}
}

/* 31. Component refinements */
.dsl-tour-card__badges{pointer-events:none}
.dsl-tour-card__body>*,.dsl-dest-card__body>*,.dsl-blog-card__body>*,.dsl-blog-card>*,.dsl-exp-card__body>*{margin:0}
.dsl-tour-card__price-na{font-family:var(--dsl-font-head);font-size:.9375rem;font-weight:700;color:var(--dsl-secondary)}
.dsl-icon-btn .dsl-icon--brand{color:#1FA855}
.dsl-icon-btn--dark .dsl-icon--brand{color:#fff}
@media (min-width:1025px){.dsl-rail--5{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1280px){.dsl-rail--5{grid-template-columns:repeat(5,minmax(0,1fr))}}
.dsl-checklist{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.dsl-checklist li{display:flex;gap:10px;align-items:flex-start}
.dsl-checklist .dsl-icon{margin-top:3px;color:var(--dsl-success)}
.dsl-checklist--no .dsl-icon{color:var(--dsl-error)}

.dsl-steppers{display:flex;flex-wrap:wrap;gap:12px 24px}
.dsl-stepper-field{display:grid;gap:6px}
.dsl-stepper-field__label{font-size:.875rem;font-weight:600;color:var(--dsl-text-muted)}
.dsl-grid>*,.dsl-rail>*,.dsl-form-grid>*,.dsl-footer__grid>*,.dsl-dest-grid>*{min-width:0}
