.header-tools {
  display: flex;
  align-items: center;
  gap: 12px;
}

.accessibility-trigger,
.theme-toggle {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid rgba(7, 30, 61, .2);
  border-radius: 50%;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  font-size: 18px;
}

.accessibility-trigger:hover,
.accessibility-trigger:focus-visible,
.theme-toggle:hover,
.theme-toggle:focus-visible {
  background: var(--lime);
}

.theme-toggle[aria-pressed="true"] {
  background: var(--lime);
}

.accessibility-panel {
  position: fixed;
  right: 20px;
  bottom: 86px;
  z-index: 1001;
  display: grid;
  gap: 8px;
  width: min(280px, calc(100vw - 32px));
  max-height: min(560px, calc(100dvh - 112px));
  overflow-y: auto;
  padding: 18px;
  border: 1px solid #c4d1df;
  border-radius: 14px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 18px 50px rgba(7, 30, 61, .18);
}

.accessibility-panel strong {
  margin-bottom: 3px;
}

.accessibility-panel button,
.cookie-actions button {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #9eb0c3;
  border-radius: 7px;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  text-align: left;
}

.accessibility-panel button:hover,
.accessibility-panel button:focus-visible {
  background: #eaf4ff;
  border-color: var(--blue);
}

.cookie-banner {
  position: fixed;
  max-height: calc(100dvh - 100px - env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  overscroll-behavior: contain;
  right: 20px;
  bottom: 20px;
  left: 20px;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 22px;
  border: 1px solid #c4d1df;
  border-radius: 14px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 16px 45px rgba(7, 30, 61, .16);
}

.cookie-banner[hidden],
.accessibility-panel[hidden] {
  display: none;
}

.cookie-banner strong {
  display: block;
  margin-bottom: 4px;
}

.cookie-banner p {
  max-width: 720px;
  color: #40566c;
  font-size: 13px;
  line-height: 1.5;
}

.cookie-banner a {
  color: var(--blue);
  font-weight: 700;
}

.cookie-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  flex-shrink: 0;
}

.cookie-actions button:first-child {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}

.cookie-actions button:hover,
.cookie-actions button:focus-visible {
  border-color: var(--blue);
}

html.a11y-contrast body,
html.a11y-contrast .contact-form,
html.a11y-contrast .cookie-banner,
html.a11y-contrast .accessibility-panel {
  filter: contrast(1.15);
}

html.a11y-underline a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

html.a11y-motion *,
html.a11y-motion *::before,
html.a11y-motion *::after {
  animation-duration: .01ms !important;
  animation-iteration-count: 1 !important;
  scroll-behavior: auto !important;
  transition-duration: .01ms !important;
}

@media (max-width: 860px) {
  .header-tools { gap: 7px; }
  .header-tools .nav-cta { display: none; }
  .cookie-banner { flex-direction: column; align-items: stretch; gap: 14px; }
  .cookie-actions { justify-content: stretch; }
  .cookie-actions button { flex: 1 1 30%; text-align: center; }
}

@media (max-width: 560px) {
  .accessibility-trigger,
  .theme-toggle { width: 44px; height: 44px; }
  .cookie-banner { right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); left: 10px; padding: 15px; }
  .cookie-actions button { flex-basis: calc(50% - 4px); }
}

.mobile-menu-toggle { display:none; }

/* Fill the reserved mobile image region instead of leaving a blue gap. */
.category-hero-image img { position: absolute; inset: 0; display: block; }
@media (max-width: 850px) {

  .category-hero-image { min-height: 0; height: clamp(240px, 55vw, 420px); }
}
.mobile-menu-panel { display:none; }
.form-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; opacity:0 !important; }
.form-status { margin:14px 0 0; padding:12px 14px; border-left:4px solid var(--blue); background:#edf6ff; color:var(--ink); font-size:14px; }
.form-status.is-success { border-color:#157347; background:#edf8f0; }
.form-status.is-error { border-color:#b42318; background:#fff1f0; }
.form-status.is-pending { border-color:#9a6700; background:#fff8e1; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline:3px solid #ffb000; outline-offset:3px; }
html.a11y-font-plus body { font-size:18px; }
html.a11y-font-minus body { font-size:14px; }

@media (max-width: 860px) {
  .nav-wrap { min-height:76px; height:auto; padding:10px 5vw; gap:12px; justify-content:flex-start; }
  .nav-wrap > nav { display:none; }
  .nav-wrap .header-tools { display:flex; gap:7px; margin-right:54px; }
  .mobile-menu-toggle { position:absolute; top:16px; right:5vw; z-index:5; display:inline-flex; width:44px; height:44px; padding:9px; border:1px solid rgba(7,30,61,.2); border-radius:6px; background:#fff; flex-direction:column; justify-content:center; gap:5px; cursor:pointer; }
  .mobile-menu-toggle span { display:block; width:24px; height:2px; background:var(--ink); margin:auto; }
  .mobile-menu-panel { position:fixed; inset:0; z-index:1200; display:block; background:rgba(4,29,66,.55); }
  .mobile-menu-panel[hidden] { display:none; }
  .mobile-menu-panel__inner { box-sizing:border-box; height:100dvh; max-height:100dvh; width:min(390px, 92vw); margin-left:auto; padding:0 24px calc(40px + env(safe-area-inset-bottom, 0px)); background:var(--cream); box-shadow:-16px 0 40px rgba(4,29,66,.2); overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .mobile-menu-panel__top { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:8px; padding:calc(26px + env(safe-area-inset-top, 0px)) 0 22px; border-bottom:1px solid var(--line); background:var(--cream); }
  .mobile-menu-close { width:44px; height:44px; flex-shrink:0; border:1px solid var(--line); background:#fff; color:var(--ink); font-size:28px; line-height:1; cursor:pointer; }
  .mobile-menu-links { display:grid; gap:4px; padding-top:20px; }
  .mobile-menu-links a { display:block; padding:13px 10px; border-bottom:1px solid var(--line); font-size:16px; }
  .mobile-menu-offer-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; padding:13px 10px; border:0; border-bottom:1px solid var(--line); background:transparent; color:inherit; font:inherit; font-size:16px; text-align:left; cursor:pointer; }
  .mobile-menu-offer-toggle span { font-size:22px; line-height:1; }
  .mobile-menu-offers[hidden] { display:none; }
  .mobile-menu-offers a { padding-left:26px; color:var(--muted); font-size:14px; }
  .mobile-menu-links .nav-cta { margin-top:18px; justify-content:space-between; color:#fff; background:var(--green); }
  body.menu-open { overflow:hidden; }

  .hero { grid-template-columns:1fr; min-height:0; overflow:hidden; }
  .hero-copy { min-width:0; padding:78px 9vw 54px; }
  .hero-lead { width:100%; max-width:calc(100vw - 18vw); font-size:17px; white-space:normal !important; overflow-wrap:anywhere; word-break:break-word; }
  .hero-actions { flex-wrap:wrap; gap:16px; }
  .hero-actions .quiet-link { white-space:normal; }
  .hero-proof { flex-wrap:wrap; gap:18px; }
  .hero-visual { min-height:420px; }
}

/* Keep the language picker, display controls and menu in one non-overlapping row. */
@media (max-width: 560px) {
  .nav-wrap { min-height:64px; padding:8px 5vw; gap:6px; }
  .nav-wrap .brand-logo { width:52px; height:52px; }
  .nav-wrap > .language-switcher { margin-left:auto; }
  .nav-wrap .header-tools { gap:4px; margin-right:50px; flex-shrink:0; }
  .mobile-menu-toggle { top:10px; width:44px; height:44px; }
}

/* Keep the existing palette while making small labels and links readable. */
html:not(.theme-dark) body .section-label { color: #53677d; }
html:not(.theme-dark) body .current-offers .section-label,
html:not(.theme-dark) body .category-gallery .section-label { color: #b7c7d8; }
html:not(.theme-dark) body .partners .section-label { color: #ffd21a; }
html:not(.theme-dark) body .contact .section-label,
html:not(.theme-dark) body .contact h2 em { color: #052e63; }
html:not(.theme-dark) body .approach h2 em,
html:not(.theme-dark) body .people-intro h2 em,
html:not(.theme-dark) body .people-credentials h2 em,
html:not(.theme-dark) body .people-note h2 em { color: #226db7; }
html:not(.theme-dark) body .about-benefits b,
html:not(.theme-dark) body .principles b,
html:not(.theme-dark) body .approach-video__channel,
html:not(.theme-dark) body .partner-card__number,
html:not(.theme-dark) body .contact-form a,
html:not(.theme-dark) body .people-profile__number,
html:not(.theme-dark) body .people-profile__role,
html:not(.theme-dark) body .people-credentials__list span,
html:not(.theme-dark) body .offer-detail__day strong,
html:not(.theme-dark) body .legal-back,
html:not(.theme-dark) body .legal-block a { color: #1667b5; }
html:not(.theme-dark) body .partner-card--dark .partner-card__number,
html:not(.theme-dark) body .people-profile--dark .people-profile__number,
html:not(.theme-dark) body .people-profile--dark .people-profile__role { color: #ffd21a; }

html:not(.theme-dark) body .mountain-gallery .section-label,
html:not(.theme-dark) body.category-page--team .category-feature .section-label { color: #b7c7d8; }
html:not(.theme-dark) body .category-content h2 em,
html:not(.theme-dark) body:not(.category-page--team) .category-feature h2 em { color: #226db7; }
html:not(.theme-dark) body .guiding-tours__grid article > span,
html:not(.theme-dark) body .offer-detail__card > b { color: #1667b5; }
html:not(.theme-dark) body.category-page--team .category-feature__list b { color: #ffd21a; }

/* Calm interaction polish: make imagery and clickable areas answer clearly. */
@media (min-width: 861px) and (max-width: 1024px) {
  .hero-actions { flex-wrap: wrap; gap: 18px; }
  .hero-actions .button { flex-shrink: 0; }
}

section.section {
  scroll-margin-top: 92px;
}

html.js section.section.reveal {
  opacity: 1;
  transform: none;
  transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
}

html.js section.section.reveal.is-visible {
  opacity: 1;
  transform: none;
}

.offer-card,
.about-cta,
.approach-video__trigger,
.button,
.quiet-link {
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, background-color .35s ease, color .35s ease;
}

.offer-card__content,
.about-media span,
.approach-image span {
  transition: transform .45s cubic-bezier(.2,.7,.2,1), opacity .35s ease;
}

.about-media,
.approach-image,
.approach-video__trigger {
  overflow: hidden;
}

.about-media img,
.approach-image img,
.approach-video__trigger img {
  transition: transform .8s cubic-bezier(.2,.7,.2,1), opacity .5s ease, filter .5s ease;
}

.current-offers__item {
  transition: transform .3s cubic-bezier(.2,.7,.2,1), border-color .3s ease, background-color .3s ease, box-shadow .3s ease;
}

.about-cta:focus-visible,
.offer-card:focus-visible,
.approach-video__trigger:focus-visible,
.current-offers__item:focus-visible {
  outline: 3px solid var(--lime);
  outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
  .offer-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 38px rgba(4,29,66,.18);
  }

  .offer-card:hover img {
    opacity: .58;
    filter: saturate(.82) brightness(.72);
    transform: scale(1.055);
  }

  .offer-card:hover .offer-card__content {
    transform: translateY(-4px);
  }

  .about-media:hover img,
  .approach-image:hover img,
  .approach-video__trigger:hover img {
    opacity: .7;
    filter: saturate(.82) brightness(.78);
    transform: scale(1.035);
  }

  .about-media:hover span,
  .approach-image:hover span {
    transform: translateY(-3px);
  }

  .about-cta:hover,
  .button:hover,
  .approach-video__trigger:hover {
    transform: translateY(-3px);
  }

  .current-offers__item:hover {
    transform: translateY(-3px);
    border-color: rgba(255,255,255,.52);
    background-color: rgba(255,255,255,.1);
    box-shadow: 0 12px 24px rgba(0,0,0,.12);
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto !important; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

.nav-dropdown:focus-within .dropdown-menu,
.nav-dropdown:hover .dropdown-menu {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}

body.menu-open,
body.lightbox-open { overflow: hidden; }

html.theme-dark {
  --ink: #f1f6fb;
  --muted: #b7c7d8;
  --cream: #071e3d;
  --line: #284967;
  --green: #0b3d73;
  --dark: #020f25;
  --blue: #73b7ff;
}

html.theme-dark .nav-wrap {
  border-bottom-color: rgba(255,255,255,.16);
}

html.theme-dark .accessibility-panel,
html.theme-dark .cookie-banner,
html.theme-dark .accessibility-panel button,
html.theme-dark .cookie-actions button {
  background: #102d50;
  color: var(--ink);
  border-color: #55728f;
}
