/* =========================================================
   DSL Adventures — Tour pages (single tour + /tours/ archive)
   Loaded only on tour pages (inc/assets.php). Builds on the design system components:
   price box, price bar, trip info, tabs, accordion + itinerary, checklist, tour card,
   carousel, video, breadcrumb, CTA band. No new colors or fonts.
   ========================================================= */

/* 01. Header ------------------------------------------------ */
.dsl-tour-head{display:grid;gap:12px;padding-top:clamp(16px,.75rem + 1vw,28px)}
.dsl-tour-head>*{margin:0}
.dsl-tour-head__title{max-width:1000px}
.dsl-tour-head__badges{margin:0;padding:0;list-style:none;--dsl-cluster-gap:8px}
.dsl-tour-head__lead{max-width:68ch}

/* 02. Gallery: carousel on phones, editorial grid from 768 px --- */
.dsl-tour-gallery{margin-top:clamp(20px,1rem + 1vw,32px)}
.dsl-tour-gallery__frame{position:relative}
.dsl-tour-gallery__track{margin:0;padding:0;list-style:none}
.dsl-tour-gallery__track:focus-visible{outline:3px solid var(--dsl-focus);outline-offset:3px}
.dsl-tour-gallery__slide{position:relative;margin:0}
.dsl-tour-gallery__open{display:block;width:100%;height:100%;padding:0;cursor:zoom-in;border-radius:inherit;overflow:hidden;background:var(--dsl-surface-alt)}
.dsl-tour-gallery__open img{display:block;width:100%;height:100%;object-fit:cover;transition:transform var(--dsl-dur-slow) var(--dsl-ease)}
.dsl-tour-gallery__open:focus-visible{outline:3px solid var(--dsl-focus);outline-offset:-3px}
.dsl-tour-gallery .dsl-gallery__btn{text-decoration:none}
@media (min-width:768px){
  .dsl-tour-gallery__track{display:grid;gap:8px;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));height:clamp(340px,44vw,440px);overflow:hidden;scroll-snap-type:none}
  .dsl-tour-gallery__slide{aspect-ratio:auto;min-height:0;border-radius:var(--dsl-radius-md)}
  .dsl-tour-gallery__slide:first-child{grid-row:1 / span 2}
  .dsl-tour-gallery__slide:nth-child(n+4){display:none}
  .dsl-tour-gallery .dsl-carousel__count{display:none}
  .dsl-tour-gallery__open:hover img{transform:scale(1.03)}
  .dsl-tour-gallery[data-count="1"] .dsl-tour-gallery__track{grid-template-columns:1fr;height:clamp(300px,40vw,460px)}
  .dsl-tour-gallery[data-count="2"] .dsl-tour-gallery__slide{grid-row:1 / span 2}
}
@media (min-width:1025px){
  .dsl-tour-gallery__track{grid-template-columns:2fr 1fr 1fr;height:clamp(420px,36vw,520px)}
  .dsl-tour-gallery__slide:nth-child(n+4){display:block}
  .dsl-tour-gallery__slide:nth-child(n+6){display:none}
  .dsl-tour-gallery[data-count="1"] .dsl-tour-gallery__track{grid-template-columns:1fr}
  .dsl-tour-gallery[data-count="2"] .dsl-tour-gallery__track,.dsl-tour-gallery[data-count="3"] .dsl-tour-gallery__track{grid-template-columns:2fr 1fr}
  .dsl-tour-gallery[data-count="4"] .dsl-tour-gallery__slide:nth-child(2){grid-row:1 / span 2}
}

/* All-photos dialog (native <dialog>: Esc, focus handling and backdrop come from the browser) */
.dsl-photos{width:min(1100px,100% - 24px);max-width:none;max-height:calc(100dvh - 24px);margin:auto;padding:0;border:0;border-radius:var(--dsl-radius-lg);background:var(--dsl-surface);color:var(--dsl-text);box-shadow:var(--dsl-shadow-lg);overflow:hidden}
.dsl-photos[open]{display:flex;flex-direction:column}
.dsl-photos::backdrop{background:rgba(6,24,31,.84)}
.dsl-photos__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 10px 10px 20px;border-bottom:1px solid var(--dsl-border)}
.dsl-photos__title{margin:0;font-size:var(--dsl-fs-h5)}
.dsl-photos__body{display:grid;gap:16px;padding:16px;overflow-y:auto;overscroll-behavior:contain}
.dsl-photos__item img{display:block;width:100%;height:auto;border-radius:var(--dsl-radius-md)}
.dsl-photos__item figcaption{margin-top:6px;font-size:var(--dsl-fs-caption);color:var(--dsl-text-muted)}
html.dsl-photos-open{overflow:hidden}

/* 03. Layout: facts + content left, sticky price box right from 1025 px */
.dsl-tour__layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"facts" "aside" "content";gap:clamp(24px,1rem + 2vw,40px);margin-top:clamp(24px,1rem + 2vw,40px)}
.dsl-tour__facts{grid-area:facts;min-width:0}
.dsl-tour__aside{grid-area:aside;min-width:0}
.dsl-tour__content{grid-area:content;min-width:0}
@media (min-width:768px) and (max-width:1024.98px){
  .dsl-tour-price{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px}
  .dsl-tour-price .dsl-price-box__top,.dsl-tour-price .dsl-price-box__alt,.dsl-tour-price .dsl-tour-price__note{grid-column:1 / -1}
  .dsl-tour-price .dsl-price-box__actions{align-content:start}
}
@media (min-width:1025px){
  .dsl-tour__layout{grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"facts aside" "content aside";column-gap:clamp(32px,3vw,56px);align-items:start}
  .dsl-tour__aside{align-self:stretch}
  .dsl-tour-price{position:sticky;top:calc(var(--dsl-header-h) + 20px)}
}

/* 04. Price box ----------------------------------------------- */
.dsl-price-box__top>*{margin:0}
.dsl-tour-price__headline{margin:0;font-family:var(--dsl-font-head);font-size:clamp(1.375rem,1.3rem + .4vw,1.625rem);font-weight:700;line-height:1.2;color:var(--dsl-secondary)}
.dsl-tour-price__old{font-family:var(--dsl-font-head);font-size:1.125rem;color:var(--dsl-text-muted)}
.dsl-tour-price__note{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:.9375rem;line-height:1.45;color:var(--dsl-text-muted)}
.dsl-tour-price__note .dsl-icon{margin-top:2px;color:var(--dsl-primary)}
.dsl-price-box__alt{margin:0;text-align:center}
.dsl-price-box__alt .dsl-link{display:inline-flex;align-items:center;min-height:var(--dsl-touch)}

/* 05. Sticky section menu ------------------------------------- */
.dsl-tour-nav{position:sticky;top:0;z-index:40;background:var(--dsl-surface);transition:transform var(--dsl-dur) var(--dsl-ease),box-shadow var(--dsl-dur) var(--dsl-ease)}
.dsl-tour-nav.is-stuck{box-shadow:0 10px 18px -14px rgba(10,35,66,.35)}
html:not(.dsl-hdr-hidden) .dsl-tour-nav.is-stuck{transform:translateY(var(--dsl-header-h))}
.dsl-tour-nav__list{margin:0;padding:0;list-style:none}
.dsl-tour-nav__list>li{flex:none}
.dsl-tour-nav .dsl-tabs__tab{text-decoration:none}
.dsl-tour-nav .dsl-tabs__tab[aria-current="true"]{color:var(--dsl-primary);border-bottom-color:var(--dsl-primary)}

/* 06. Sections ------------------------------------------------ */
.dsl-tour-section{padding-block:clamp(32px,1.5rem + 1.5vw,48px);border-bottom:1px solid var(--dsl-border);scroll-margin-top:calc(var(--dsl-header-h) + 64px)}
.dsl-tour-section:last-child{border-bottom:0}
.dsl-tour-section__title{margin:0 0 20px;font-size:clamp(1.5rem,1.3rem + .8vw,2rem)}
.dsl-tour-sub{margin:0 0 12px;font-size:var(--dsl-fs-h4)}
.dsl-tour-prose{max-width:68ch}
.dsl-tour-prose>:last-child{margin-bottom:0}
.dsl-tour-prose ul{display:grid;gap:12px;margin:0 0 1em;padding:0;list-style:none}
.dsl-tour-prose ul>li{position:relative;padding-left:26px}
.dsl-tour-prose ul>li::before{content:"";position:absolute;left:3px;top:.6em;width:9px;height:9px;border-radius:2px;background:var(--dsl-accent)}
.dsl-tour-prose strong{color:var(--dsl-secondary)}
.dsl-tour-note{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;padding:12px 14px;border-radius:var(--dsl-radius-md);background:var(--dsl-primary-tint);font-size:.9375rem;line-height:1.5;color:var(--dsl-text)}
.dsl-tour-note .dsl-icon{margin-top:2px;color:var(--dsl-primary)}

/* Highlights */
.dsl-tour-highlights{margin-top:28px;padding:clamp(20px,1rem + 1vw,28px);background:var(--dsl-cream);border-radius:var(--dsl-radius-lg)}
.dsl-tour-highlights__list .dsl-icon{color:var(--dsl-primary)}
@media (min-width:1280px){.dsl-tour-highlights__list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}}

/* Itinerary (design system .dsl-itinerary) */
.dsl-tour-itin__tools{display:flex;justify-content:flex-end;margin:-8px 0 4px}
.dsl-tour-itin .dsl-accordion__summary{gap:14px}
.dsl-tour-itin .dsl-itinerary__head{gap:5px}
.dsl-tour-itin__label{font-family:var(--dsl-font-head);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--dsl-clay)}
.dsl-tour-itin__title{margin:0;font-size:var(--dsl-fs-h4);line-height:1.3;color:inherit}
.dsl-tour-itin__summary{font-family:var(--dsl-font-body);font-size:.96875rem;font-weight:400;line-height:1.5;color:var(--dsl-text-muted)}
.dsl-tour-itin .dsl-accordion__chev{margin-top:4px}
.dsl-tour-itin .dsl-accordion__content{padding-bottom:28px}
.dsl-tour-itin__facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 20px;margin:16px 0 0;padding:14px 16px;background:var(--dsl-surface-alt);border-radius:var(--dsl-radius-md)}
.dsl-tour-itin__facts dt{font-family:var(--dsl-font-head);font-size:.71875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dsl-text-muted)}
.dsl-tour-itin__facts dd{margin:2px 0 0;font-size:.9375rem;font-weight:600;line-height:1.35;color:var(--dsl-secondary)}
@media (max-width:479.98px){.dsl-tour-itin .dsl-accordion__content{padding-left:0}.dsl-itinerary.dsl-tour-itin::before{bottom:auto;height:0}}

/* Included / not included */
.dsl-tour-incl{display:grid;gap:20px}
.dsl-tour-incl__col{padding:clamp(18px,1rem + .5vw,24px);border:1px solid var(--dsl-border);border-top:3px solid var(--dsl-success);border-radius:var(--dsl-radius-lg)}
.dsl-tour-incl__col--not_included{border-top-color:var(--dsl-error)}
@media (min-width:768px){.dsl-tour-incl{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* What to bring */
.dsl-tour-pack{display:grid;gap:28px 32px}
@media (min-width:768px){.dsl-tour-pack{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dsl-tour-pack .dsl-checklist .dsl-icon{color:var(--dsl-primary)}

/* Food, lodging, transport */
.dsl-tour-blocks{display:grid;gap:28px}
.dsl-tour-block{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:start}

/* Difficulty & altitude */
.dsl-tour-stats{display:flex;flex-wrap:wrap;gap:16px 40px;margin:0 0 28px;padding:16px 20px;background:var(--dsl-surface-alt);border-radius:var(--dsl-radius-lg)}
.dsl-tour-stats dt{font-family:var(--dsl-font-head);font-size:.71875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--dsl-text-muted)}
.dsl-tour-stats dd{display:grid;gap:2px;margin:6px 0 0}
.dsl-tour-stats .dsl-badge{background:#fff}\n.dsl-tour-stats strong{font-family:var(--dsl-font-head);font-size:1.25rem;color:var(--dsl-secondary)}
.dsl-tour-stats dd span:not(.dsl-badge){font-size:.9375rem;color:var(--dsl-text-muted)}
.dsl-tour-section--difficulty .dsl-tour-prose+.dsl-tour-sub{margin-top:28px}

/* Family callout */
.dsl-tour-callout{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;padding:clamp(20px,1rem + 1vw,28px);background:var(--dsl-cream);border-radius:var(--dsl-radius-lg)}
.dsl-tour-callout .dsl-icon-chip{background:#fff}
@media (max-width:479.98px){.dsl-tour-callout,.dsl-tour-block{grid-template-columns:minmax(0,1fr)}}

/* FAQ (boxed accordion) */
.dsl-tour-faq__q{margin:0;font-family:var(--dsl-font-head);font-size:1.0625rem;font-weight:600;line-height:1.35;color:inherit}

/* Route */
.dsl-tour-route{display:grid;gap:24px;align-items:start}
.dsl-tour-route__map{margin:0;border-radius:var(--dsl-radius-lg);overflow:hidden}
.dsl-tour-route__map img{display:block;width:100%;height:auto}
.dsl-tour-route__stops{display:grid;margin:0;padding:0;list-style:none}
.dsl-tour-route__stops li{position:relative;padding:0 0 14px 30px;font-weight:600;line-height:1.35;color:var(--dsl-secondary)}
.dsl-tour-route__stops li::before{content:"";position:absolute;left:4px;top:.3em;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2.5px var(--dsl-primary)}
.dsl-tour-route__stops li:first-child::before,.dsl-tour-route__stops li:last-child::before{background:var(--dsl-primary)}
.dsl-tour-route__stops li::after{content:"";position:absolute;left:9px;top:calc(.3em + 14px);bottom:0;width:2px;background:var(--dsl-primary-tint-2)}
.dsl-tour-route__stops li:last-child{padding-bottom:0}
.dsl-tour-route__stops li:last-child::after{display:none}
.dsl-tour-route__notes{margin:16px 0 0;font-size:.9375rem;color:var(--dsl-text-muted)}
@media (min-width:768px) and (max-width:1024.98px),(min-width:1280px){.dsl-tour-route{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.dsl-tour-route--single{grid-template-columns:minmax(0,1fr)}}

/* 07. Why DSL (reusable) ---------------------------------------- */
.dsl-why__grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;margin:0;padding:0;list-style:none}
.dsl-why__item{flex:1 1 210px;max-width:300px;display:grid;gap:10px;align-content:start;padding:24px;background:var(--dsl-surface);border-radius:var(--dsl-radius-lg);box-shadow:var(--dsl-shadow-sm)}
.dsl-why__item>*{margin:0}
.dsl-why__item .dsl-icon-chip{background:var(--dsl-cream);color:var(--dsl-clay)}
.dsl-why__title{font-size:var(--dsl-fs-h5)}
.dsl-why__item p{font-size:.96875rem;line-height:1.55;color:var(--dsl-text-muted)}
@media (max-width:599.98px){.dsl-why__item{max-width:none}}

/* 08. Related tours + closing CTA ------------------------------- */
.dsl-tour-related .dsl-section-head{margin-bottom:24px}
.dsl-tour-related__list{margin:0;padding-left:0;list-style:none}
.dsl-tour-cta p{text-wrap:pretty}
.dsl-tour-cta__actions{justify-content:center}
@media (max-width:479.98px){.dsl-tour-cta__actions .dsl-btn{width:100%;white-space:normal}}

/* 09. Mobile / tablet request bar ------------------------------- */
.dsl-tour-bar{transform:translateY(calc(100% + 16px));visibility:hidden;transition:transform var(--dsl-dur) var(--dsl-ease),visibility 0s linear var(--dsl-dur)}
.dsl-tour-bar.is-visible{transform:none;visibility:visible;transition:transform var(--dsl-dur) var(--dsl-ease),visibility 0s}
.dsl-tour-bar .dsl-btn{flex:1 1 auto}
.dsl-tour-bar .dsl-price-bar__price{min-width:0}
.dsl-tour-bar .dsl-price-inline__from{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dsl-tour-bar__status{font-family:var(--dsl-font-head);font-size:.9375rem;font-weight:700;color:var(--dsl-secondary);white-space:nowrap}
@media (max-width:419.98px){.dsl-tour-bar .dsl-price-bar__price{display:none}}
@media (min-width:1025px){.dsl-tour-bar{display:none}}

/* 10. Archive (/tours/) ----------------------------------------- */
.dsl-tours-head{padding-block:clamp(20px,1rem + 1vw,32px) clamp(32px,1.5rem + 2vw,56px);background:var(--dsl-cream)}
.dsl-tours-head__body{display:grid;gap:12px;max-width:760px;margin-top:clamp(20px,1rem + 1.5vw,40px)}
.dsl-tours-head__body>*{margin:0}
.dsl-tours-list__count{margin:0 0 16px;font-weight:600;color:var(--dsl-text-muted)}
.dsl-tours-nav ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.dsl-tours-nav a{display:inline-flex;align-items:center;gap:6px;min-height:var(--dsl-touch);padding:0 16px;border:1px solid var(--dsl-border-strong);border-radius:var(--dsl-radius-pill);background:var(--dsl-surface);color:var(--dsl-text);font-weight:600;text-decoration:none;transition:border-color var(--dsl-dur-fast) var(--dsl-ease),background-color var(--dsl-dur-fast) var(--dsl-ease)}
.dsl-tours-nav a:hover{border-color:var(--dsl-primary);background:var(--dsl-primary-tint)}
.dsl-tours-nav__n{font-weight:400;color:var(--dsl-text-muted)}
.dsl-tours-group{margin-top:clamp(36px,2rem + 1.5vw,64px)}
.dsl-tours-group__head{display:grid;gap:6px;max-width:720px;margin-bottom:20px}
.dsl-tours-group__head>*{margin:0}
.dsl-tours-group__head p{color:var(--dsl-text-muted)}
.dsl-tours-group--beyond{padding-top:clamp(28px,1.5rem + 1vw,40px);border-top:1px solid var(--dsl-border)}
.dsl-tour-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--dsl-space-md);margin:0;padding:0;list-style:none}
.dsl-tour-grid>li{min-width:0}
@media (min-width:600px){.dsl-tour-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1025px){.dsl-tour-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1280px){.dsl-tour-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.dsl-tours-help{margin-top:clamp(32px,2rem + 1vw,48px)}
.dsl-tours-help h2{margin:0}
@media (min-width:1025px){.dsl-tours-help .dsl-cluster{flex:none;flex-wrap:nowrap}}
.dsl-tours .navigation.pagination{margin-top:32px}
.dsl-tours .nav-links{display:flex;flex-wrap:wrap;gap:8px}
.dsl-tours .page-numbers{display:inline-grid;place-items:center;min-width:var(--dsl-touch);min-height:var(--dsl-touch);padding:0 12px;border:1px solid var(--dsl-border);border-radius:var(--dsl-radius-pill);text-decoration:none}
.dsl-tours .page-numbers.current{background:var(--dsl-primary);border-color:var(--dsl-primary);color:#fff}

/* Links to hub pages (Phase 6): Related Tours head and /tours/ groups */
@media (min-width:768px){.dsl-tour-related .dsl-section-head--split>.dsl-section-head__action{grid-row:1 / span 2;align-self:end}}
.dsl-tours-group__link{justify-self:start;max-width:100%;white-space:normal;text-align:left}

/* Travel Tips for This Trip (template-parts/tour/guides.php): compact guide cards */
.dsl-tour-guides{display:grid;gap:12px;margin:0;padding:0;list-style:none}
@media (min-width:600px){.dsl-tour-guides{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dsl-tour-guides .dsl-blog-card--compact{height:100%;padding:10px 14px 10px 10px;background:var(--dsl-surface);border:1px solid var(--dsl-border);border-radius:var(--dsl-radius-md);transition:border-color var(--dsl-dur-fast),box-shadow var(--dsl-dur) var(--dsl-ease)}
.dsl-tour-guides .dsl-blog-card--compact:hover{border-color:color-mix(in srgb,var(--dsl-primary) 35%,var(--dsl-border));box-shadow:var(--dsl-shadow-sm)}
.dsl-tour-guides .dsl-blog-card__title{margin:0}
.dsl-tour-guides .dsl-blog-card__time{margin:0;font-size:.8125rem;color:var(--dsl-text-muted)}
