/* Pohod KP · editorial alpine palette and shared public components. */
.public-shell {
  --exp-paper:#f5f7fa; --exp-white:#fff; --exp-ink:#172939; --exp-muted:#455969;
  --exp-blue:#175884; --exp-deep:#183c57; --exp-ice:#e8f1f7;
  --exp-accent:#245f82; --exp-line:#dce5ed; --exp-radius:22px;
  --pine:var(--exp-blue); --pine-dark:#173044; --mist:var(--exp-ice);
  --ink:var(--exp-ink); --blue:#255d83; --sun:#e1eef7; --sun-ink:#254c66;
  background:var(--exp-paper); color:var(--exp-ink);
}
.public-shell h1,.public-shell h2,.public-shell h3,.public-shell h4 { color:var(--exp-ink); }
.public-shell h1 { font-weight:730; letter-spacing:-.04em; line-height:1.12; }
.public-shell h1::after { background:var(--exp-blue); }
.public-shell h2 { font-weight:700; letter-spacing:-.024em; line-height:1.2; }
.public-shell h3 { font-weight:700; letter-spacing:-.022em; line-height:1.2; }
.public-shell .primary {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  min-height:44px; border-radius:.72rem; background:var(--exp-blue); color:white;
  text-decoration:none; transition:background-color .18s,transform .18s;
}
.public-shell .primary:hover { background:#10436a; }
.public-shell .primary:active { transform:translateY(1px); }
.public-shell .expedition-header { background:var(--exp-paper); border-bottom:1px solid var(--exp-line); }
.expedition-header .masthead { min-height:74px; gap:clamp(.8rem,2vw,2.1rem); position:relative; }
.expedition-header .brand { gap:.6rem; font-size:1.24rem; }
.expedition-header .brand .accent { color:var(--exp-blue); }
.expedition-header .brand img { width:44px; height:auto; }
.expedition-header .main-navigation { padding:0; justify-content:center; gap:.25rem clamp(.55rem,1.3vw,1.1rem); }
.expedition-header .main-navigation > a,.expedition-header .nav-group > summary { min-height:42px; display:flex; align-items:center; padding:.2rem .36rem; white-space:nowrap; }
.expedition-header .nav-group { position:static; }
.expedition-header .mega-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem 1.55rem; min-width:0; max-width:850px; width:100%; left:50%; transform:translateX(-50%); padding:1.2rem 1.4rem; z-index:20; border:1px solid var(--exp-line); border-radius:1rem; }
.mega-group { display:grid; align-content:start; min-width:0; }
.mega-group strong { font-size:.83rem; color:var(--exp-deep); margin:.2rem 0 .35rem; }
.expedition-header .mega-group a { padding:.25rem .15rem; font-size:.84rem; }
.header-utility { background:#ebf2f7; border-bottom:1px solid var(--exp-line); }
.header-utility-inner,.header-direct,.header-socials { display:flex; align-items:center; }
.header-utility-inner { min-height:42px; gap:clamp(.65rem,1.55vw,1.4rem); color:var(--exp-deep); font-size:.82rem; }
.header-direct { gap:clamp(.55rem,1.6vw,1.3rem); margin-inline-start:auto; }
.header-socials { gap:.2rem; }
.header-utility-inner :is(a,.header-hours) { display:inline-flex; align-items:center; gap:.36rem; white-space:nowrap; }
.header-utility-inner a { min-height:36px; color:inherit; text-decoration:none; }
.header-utility-inner a:hover { color:var(--exp-blue); text-decoration:underline; text-underline-offset:.22em; }
.header-utility-inner svg { width:16px; height:16px; flex:none; }
.header-utility-inner :is(.header-hours,.header-email,.header-phone) svg { fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.header-phone { font-weight:730; font-variant-numeric:tabular-nums; }
.header-booking { flex:none; font-size:.85rem; padding:.48rem .8rem; }


.public-shell .home-intro {
  display:grid; grid-template-areas:"hero"; align-items:end; position:relative;
  margin-block:clamp(.8rem,2.4vw,1.85rem) 0; isolation:isolate; overflow:hidden;
  min-height:clamp(395px,41vw,505px); border-radius:var(--exp-radius); background:var(--exp-ice);
}
.home-intro-copy { grid-area:hero; z-index:1; width:min(100%,39rem); min-width:0; padding:clamp(1.25rem,4vw,3.55rem); padding-block-end:4.15rem; }
.home-intro.has-views .home-intro-copy { color:#fff; }
.public-shell .home-intro .eyebrow { color:var(--exp-blue); margin:0 0 .8rem; }
.public-shell .home-intro.has-views .eyebrow { color:#d7ebf8; }
.public-shell .home-intro h1 { font-size:clamp(1.9rem,3.35vw,3.2rem); margin:0; text-wrap:balance; }
.public-shell .home-intro h1::after { display:none; }
.home-title-tail { display:block; margin-top:.42rem; font-size:.55em; font-weight:620; letter-spacing:-.015em; line-height:1.25; }
.public-shell .home-intro.has-views h1 { color:inherit; }
.home-intro-copy > p:not(.eyebrow) { max-width:44ch; margin:.85rem 0 1rem; color:var(--exp-muted); font-size:1rem; }
.home-intro.has-views .home-intro-copy > p:not(.eyebrow) { color:#eff5fa; }
.home-intro .actions { gap:.45rem .95rem; margin-bottom:0; }
.home-booking-link a { display:inline-flex; gap:.35rem; align-items:center; min-height:44px; font-size:.88rem; font-weight:650; color:var(--exp-deep); text-underline-offset:.22em; }
.home-booking-link { margin:0; }
.home-intro.has-views .home-booking-link a { color:#fff; }
.home-intro.has-views .home-booking-link a { background:#10293b55; border-color:#c5dceda8; }
.home-intro.has-views .home-booking-link a:hover { background:#183c57; }
.public-shell .home-intro.has-views .primary { color:var(--exp-deep); background:#f2f8fc; }
.public-shell .home-intro.has-views .primary:hover { background:#dcecf7; }
.home-views { grid-area:hero; width:100%; align-self:stretch; position:relative; overflow:hidden; }
.home-views figure { position:absolute; inset:0; margin:0; }
.home-views figure::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#0d2436e8,#112d42a6 45%,#122a3c26 76%),linear-gradient(0deg,#0d243682,transparent 32%); pointer-events:none; }
.home-views img { width:100%; height:100%; display:block; object-fit:cover; object-position:center 55%; }
.home-views figcaption { position:absolute; z-index:1; color:white; bottom:.9rem; left:clamp(1rem,4vw,3.55rem); padding:.3rem .55rem; border-radius:.4rem; background:#10293bbd; font-size:.8rem; }
.hero-view-controls { position:absolute; z-index:2; bottom:.8rem; right:.8rem; display:flex; align-items:center; gap:.32rem; padding:.25rem; border-radius:999px; background:white; color:var(--exp-ink); }
.hero-view-controls button { cursor:pointer; display:grid; place-items:center; width:42px; height:42px; border:0; border-radius:50%; color:var(--exp-deep); background:var(--exp-ice); font-size:1.05rem; }
.hero-view-controls output { min-width:2.6rem; text-align:center; font-size:.78rem; font-weight:650; font-variant-numeric:tabular-nums; }

.public-shell .home-block { margin-block:clamp(1.8rem,4vw,3.2rem); }
.public-shell .home-block h2 { font-size:clamp(1.5rem,2.35vw,2.15rem); }
.home-section-head > p:not(.eyebrow),.public-shell .block-note { color:var(--exp-muted); max-width:68ch; }
.public-shell .trip-card { border-color:var(--exp-line); border-radius:1.15rem; }
.public-shell .trip-body > span { color:var(--exp-blue); }
.public-shell .carousel-controls button { border-color:var(--exp-line); color:var(--exp-blue); }
.public-shell .carousel-controls button:hover:not(:disabled) { background:var(--exp-ice); }
.public-shell .photo-shortcut { background:#172e40; }
.public-shell .shortcut-image::after { background:linear-gradient(0deg,#122638f5,#12263855 64%,transparent); }
.public-shell .shortcut-label h3 { color:white; }
.public-shell .shortcut-label p { color:#edf5fb; }
.public-shell .shortcut-label span { background:#e4f0f8; color:var(--exp-deep); }
.public-shell .home-prices {
  padding:clamp(1rem,3.2vw,2.4rem); border:1px solid #d7e4ed; border-radius:var(--exp-radius);
  background:linear-gradient(150deg,#edf5fa 0%,#f8fafc 72%);
}
.home-prices-head { display:flex; align-items:center; justify-content:space-between; gap:.72rem 1.2rem; flex-wrap:wrap; }
.home-prices-head h2 { margin:0; }
.home-prices-head p:not(.eyebrow) { margin:.42rem 0 0; color:var(--exp-muted); font-size:.91rem; }
.home-prices-head .primary { display:inline-flex; gap:.52rem; align-items:center; flex:none; }
.home-prices .season-prices { background:transparent; padding:0; border:0; margin:1rem 0 0; }
.home-prices + .booking-section.booking-inline { margin-top:clamp(-3rem,-2.6vw,-1.35rem); }
.public-shell .season-switch { background:#dbeaf4; gap:.22rem; }
.public-shell .season-tab { color:var(--exp-deep); }
.public-shell .season-tab[aria-selected="true"] { color:white; background:var(--exp-blue); }
.home-rate-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }
.home-rate {
  min-width:0; display:flex; flex-direction:column; padding:.92rem 1rem .78rem; background:#fff;
  border-radius:.92rem; border:1px solid #d8e4ee; box-shadow:0 5px 14px #17354a0b;
}
.home-rate h3 { margin:0; font-size:1.04rem; font-weight:680; text-wrap:pretty; }
.home-rate-amount { margin:.62rem 0 .7rem; color:var(--exp-muted); font-size:.8rem; line-height:1.28; }
.home-rate-amount strong {
  display:block; color:var(--exp-deep); font-size:clamp(1.2rem,2.05vw,1.57rem);
  font-variant-numeric:tabular-nums; letter-spacing:-.028em; font-weight:740; white-space:nowrap;
}
.home-rate-amount span { display:block; margin-top:.16rem; }
.home-rate-amount span:empty { display:none; }
.home-rate a { color:var(--exp-blue); font-size:.85rem; text-underline-offset:.2em; }
.home-team .guides { gap:1rem; }
.home-team .guides article { padding:0; background:white; border:1px solid var(--exp-line); border-radius:1.1rem; overflow:hidden; }
.home-team .guides figure { margin:0; }
.home-team .guides img { display:block; width:100%; aspect-ratio:1.3; object-fit:contain; background:#eaf1f5; border:0; border-radius:0; margin:0; }
.guide-copy { padding:1rem 1.15rem 1.2rem; }
.guide-copy h3 { margin:0 0 .35rem; }
.guide-copy p { color:var(--exp-muted); }
.team-link { margin:1rem 0 0; }
.home-reviews { padding:clamp(1rem,4vw,2.35rem); background:white; border:1px solid var(--exp-line); border-radius:var(--exp-radius); }
.home-reviews .yandex-panel { margin:0; padding:.65rem 0 0; border:0; background:none; }
.public-shell .home-faq { width:min(900px,calc(100% - 28px)); }
.public-shell .home-reading { max-width:970px; }
.public-shell .home-reading .home-prose { margin:0; max-width:none; padding:clamp(1rem,4vw,2.9rem); }
.home-reading > h2 { margin-bottom:1rem; }
.home-reading .home-prose > :is(h2,h3) { text-wrap:pretty; }
.home-reading .home-prose > h2:not(:first-child) { padding-top:1.35rem; border-top:1px solid var(--exp-line); }
.public-shell .home-prose .archived-promotion { padding-bottom:0; border-top:1px solid var(--exp-line); }
.home-prose .archive-note { font-size:.85rem; }

.public-shell .content-hero { --cover-tint:#edf4f9; --cover-decoration:#dce9f3; }
.public-shell .content-hero--journal { --cover-tint:#f0f4f7; --cover-decoration:#e1ebf2; }
.public-shell .content-hero h1 { font-size:clamp(1.75rem,3vw,2.65rem); }
.public-shell .content-hero .hero-body { padding-block:clamp(1.15rem,3vw,2.7rem); }
.public-shell .prose { line-height:1.62; }
.public-shell .prose h2 { font-size:clamp(1.28rem,2vw,1.8rem); margin:1.65rem 0 .62rem; }
.public-shell .prose h3 { font-size:clamp(1.04rem,1.55vw,1.23rem); margin:1.25rem 0 .5rem; }
.public-shell .prose p { color:var(--exp-muted); }
.public-shell .prose .rate-card { border-color:var(--exp-line); }
.public-shell .prose .rate-card h3 { font-size:.99rem; margin:0; }
.public-shell .prose .rate-card .activity-amount,.public-shell .prose .rate-card:not(.activity-rate) p { color:var(--exp-deep); }
.public-shell .season-prices { border-color:#d9e4ee; background:#eff5f9; }
.public-shell .home-prices .season-prices { border:0; background:none; }
.public-shell .action-link,.public-shell .action-link.partner-link { background:#eaf2f8; border-color:#dbe7ef; color:#245375; }
.public-shell .booking-section { background:#e8f0f6; border-top:1px solid #dbe5ed; color:var(--exp-ink); }
.booking-intro h2 { font-size:clamp(1.45rem,2.5vw,2.08rem); }
.booking-intro p:not(.eyebrow) { max-width:34ch; color:var(--exp-muted); }
.public-shell .booking-intro .eyebrow { color:var(--exp-deep); }
.public-shell .booking-form { border-color:#dbe6ed; box-shadow:0 12px 32px #18364e18; }
.public-shell .booking-details { border-color:#dce7ee; background:#f4f8fb; }
.public-shell .booking-form :is(input:not([type=checkbox]),textarea,select) { border-color:#cfdee9; }
.public-shell .booking-agreement input { accent-color:var(--exp-blue); }
.public-shell .site-footer { background:#142c3e; color:#eef5fa; }
.public-shell .site-footer .accent { color:#b9daef; }
.public-shell .site-footer .footer-legal p { color:#c4d5e1; }
.public-shell .footer-routes a { color:#dde9f2; }
.public-shell .footer-routes a:hover { color:white; }
.public-shell .photo-dialog { background:#132b3e; }
.public-shell .photo-dialog button { background:#2b516e; border-color:#4c718d; }

@media (max-width:820px), (pointer:coarse) and (max-width:960px) {
  .mobile-ready .expedition-header { display:flex; flex-direction:column; }
  .mobile-ready .expedition-header .masthead { order:-1; }
  .mobile-ready .expedition-header :is(.header-booking,.header-direct) { display:none; }
  .mobile-ready .header-utility { border-bottom:0; border-top:1px solid var(--exp-line); }
  .mobile-ready .header-utility-inner { justify-content:center; flex-wrap:wrap; column-gap:.75rem; row-gap:0; font-size:.75rem; }
  .mobile-ready .header-utility-inner a { min-height:42px; }
  .mobile-ready .header-utility-inner svg { width:14px; height:14px; }
}
@media(max-width:820px), (pointer:coarse) and (max-width:960px) {
  .header-utility-inner { flex-wrap:wrap; }
  .header-direct { flex-wrap:wrap; margin-inline-start:0; }
  .expedition-header .main-navigation > a,.expedition-header .nav-group > summary { white-space:normal; }
  .expedition-header .main-navigation { display:flex; flex-wrap:wrap; justify-content:flex-start; }
  .expedition-header .mega-nav { position:static; transform:none; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mobile-ready .mobile-contact {
    top:max(.35rem,env(safe-area-inset-top)); background:#fff; color:var(--exp-ink);
    border:1px solid #dde6ee; box-shadow:0 8px 28px #16344b22; border-radius:1rem;
  }
  .mobile-ready .mobile-contact a { color:var(--exp-ink); }
  .mobile-ready .mobile-menu-toggle { background:var(--exp-blue); color:white; border-radius:.68rem; }
  .mobile-menu[open] { background:linear-gradient(165deg,#f8fbfd 0%,#edf5fa 100%); }
  .mobile-menu-title { margin:.55rem 0 .7rem; font-size:1.43rem; letter-spacing:-.035em; font-weight:720; color:var(--exp-deep); }
}
@media(max-width:900px) {
  .home-rate-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:740px) {
  .public-shell .home-intro { grid-template-areas:"photo" "copy"; min-height:0; }
  .home-intro-copy { grid-area:copy; padding:1rem clamp(1rem,4vw,1.5rem) 1.2rem; }
  .home-intro.has-views .home-intro-copy { color:var(--exp-ink); }
  .public-shell .home-intro.has-views .eyebrow { color:var(--exp-blue); }
  .home-intro.has-views .home-intro-copy > p:not(.eyebrow) { color:var(--exp-muted); }
  .home-intro.has-views .home-booking-link a { color:var(--exp-deep); }
  .home-intro.has-views .home-booking-link a { background:transparent; border-color:#b8cede; }
  .home-intro.has-views .home-booking-link a:hover { background:#dbeaf4; }
  .public-shell .home-intro.has-views .primary { background:var(--exp-blue); color:white; }
  .public-shell .home-intro.has-views .primary:hover { background:var(--exp-deep); }
  .public-shell .home-intro h1 { font-size:clamp(1.7rem,6.3vw,2.45rem); text-wrap:pretty; }
  .home-views { grid-area:photo; min-height:clamp(170px,56vw,345px); }
  .home-views figure::after { background:linear-gradient(0deg,#0d243682,transparent 42%); }
  .home-intro:not(.has-views) .home-views { display:none; }
}
@media(max-width:560px) {
  .home-rate-grid { grid-template-columns:1fr; gap:.48rem; }
  .home-rate { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.2rem .45rem; padding:.7rem .8rem; align-items:start; }
  .home-rate p { margin:0; text-align:right; }
  .home-rate p span { display:block; }
  .home-rate a { align-self:end; }
  .home-views figcaption { max-width:49%; left:.45rem; bottom:.48rem; font-size:.75rem; }
  .hero-view-controls { bottom:.45rem; right:.45rem; gap:.19rem; }
  .hero-view-controls button { width:44px; height:44px; }
  .hero-view-controls output { min-width:2.2rem; }
}
@media(prefers-reduced-motion:reduce) {
  .public-shell .primary { transition:none; }
  .public-shell .primary:active { transform:none; }
}
.instructor-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.instructor-card { min-width:0; border:1px solid var(--exp-line); background:white; border-radius:1rem; overflow:hidden; }
.public-shell .prose .instructor-card figure { margin:0; }
.public-shell .prose .instructor-card img { display:block; width:100%; aspect-ratio:1.16; object-fit:contain; background:#eaf1f5; border-radius:0; }
.instructor-copy { padding:.85rem 1rem 1.15rem; }
.public-shell .prose .instructor-copy h3 { margin:0; }
.public-shell .prose .instructor-copy p { margin:.35rem 0; color:var(--exp-deep); font-size:.9rem; font-weight:650; }
.instructor-copy ul { margin:.55rem 0 0; padding-inline-start:1.05rem; color:var(--exp-muted); font-size:.84rem; }
.archive-gallery { margin:1rem 0 1.45rem; }
.archive-gallery > .carousel-controls { justify-content:flex-end; margin-bottom:.35rem; }
.archive-gallery .carousel-track { grid-auto-columns:calc((100% - 1.5rem) / 3); gap:.75rem; }
.archive-gallery .carousel-track > figure { scroll-snap-align:start; margin:0; background:#f1ebf6; border-radius:.85rem; min-width:0; overflow:hidden; }
.public-shell .prose .archive-gallery .photo-trigger img { width:100%; height:clamp(220px,30vw,365px); padding:.5rem; aspect-ratio:auto; object-fit:contain; }
.credential-gallery .carousel-track { grid-auto-columns:calc((100% - .75rem) / 2); }
.public-shell .prose .credential-gallery .photo-trigger img { height:auto; max-height:280px; }
.credential-gallery figcaption { padding:.35rem .6rem .55rem; text-align:center; font-size:.84rem; color:var(--exp-muted); }
.public-shell .editorial-note { border-inline-start:3px solid #b59ee6; padding:.5rem .8rem; background:#f2eafa; }
.aibga-rates .activity-rate .action-link { width:100%; justify-content:center; }
@media(max-width:700px) { .instructor-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) {
  .instructor-grid { grid-template-columns:1fr; }
  .archive-gallery .carousel-track { grid-auto-columns:72%; }
  .credential-gallery .carousel-track { grid-auto-columns:92%; }
}
.public-shell :focus-visible { outline-color:#7e64c2; }
.public-shell .home-intro h1::after { background:#b95332; }
.mobile-menu-top .brand .accent { color:var(--exp-blue); }
@media(prefers-reduced-motion:no-preference) { html:has(.public-shell) { scroll-behavior:smooth; } }
.aibga-rates .activity-rate { display:flex; flex-direction:column; }
.public-shell .prose .aibga-rates .activity-rate p:not(.activity-amount) { color:var(--exp-muted); }
.public-shell .prose .aibga-rates .activity-rate p:last-child { margin-top:auto; padding-top:.5rem; }
.public-shell .prose p:has(> a.action-link:only-child[href^="#"]) { display:inline-block; max-width:100%; margin:.25rem .45rem .25rem 0; vertical-align:top; }

/* Booking, pricing and journal */
.expedition-header .instructors-group { position:relative; }
.expedition-header .instructor-options { min-width:235px; max-width:min(270px,calc(100vw - 2rem)); padding:.45rem; border-radius:.8rem; z-index:21; }
.expedition-header .instructor-options a { display:flex; align-items:center; min-height:38px; padding:.38rem .65rem; border-radius:.45rem; }
.expedition-header .instructor-options a:hover { background:var(--exp-ice); }
.home-rate-actions {
  display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between;
  gap:.3rem .55rem; margin-top:auto; padding-top:.52rem; border-top:1px solid #e7eef4;
}
.home-rate-actions .rate-select {
  display:inline-flex; min-height:38px; align-items:center; gap:.33rem; padding:0 .59rem; border-radius:.55rem;
  background:#f7eadd; color:#61391e; text-decoration:none; font-weight:680;
}
.home-rate-actions .rate-select:is(:hover,:focus-visible) { background:#f2dfcb; }
.trip-costs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:clamp(.7rem,2vw,1.25rem); margin:1.1rem 0; }
.trip-cost-card { position:relative; padding:clamp(.95rem,2.7vw,1.65rem); border:1px solid var(--exp-line); border-radius:1rem; color:var(--exp-ink); background:white; }
.trip-cost-included { border-color:#cbdfe9; background:#edf5f8; }
.trip-cost-excluded { background:#f9fafc; }
.public-shell .trip-cost-card > :is(h2,h3) { margin:0 0 .6rem; padding:0; color:var(--exp-deep); font-size:clamp(1.13rem,1.8vw,1.43rem); }
.trip-cost-card :is(ul,ol) { padding-inline-start:1.3rem; margin:.5rem 0 0; }
.trip-cost-card li { padding:.22rem 0; }
.trip-cost-card li::marker { color:var(--exp-blue); }
.trip-archive-prices { margin:.8rem 0 1.25rem; }
.public-shell .trip-archive-prices .rate-card { background:#fcfdff; }

.journal-layout { display:grid; gap:clamp(1.15rem,3vw,2.8rem); align-items:start; margin:clamp(1.15rem,3.5vw,2.8rem) auto; }
.journal-layout.has-contents { grid-template-columns:minmax(175px,235px) minmax(0,1fr); }
.public-shell .journal-layout .journal-prose { margin:0; min-width:0; width:100%; max-width:960px; padding:clamp(1rem,3vw,2.35rem); border-radius:1rem; }
.public-shell .journal-layout:not(.has-contents) .journal-prose { margin-inline:auto; }
.public-shell .journal-prose :is(p,li,td) { color:var(--exp-ink); }
.public-shell .journal-prose :is(h2,h3)[id] { scroll-margin-top:1.1rem; }
.public-shell .journal-prose :is(h2,h3):target { color:var(--exp-blue); }
.public-shell .journal-prose .journal-lead { margin-top:0; padding:.9rem 1.1rem; border-inline-start:3px solid #85b4d1; border-radius:0 .65rem .65rem 0; background:#edf5fa; font-size:1.04rem; }
.journal-toc { position:sticky; top:1.1rem; max-height:calc(100dvh - 2.2rem); overflow:auto; border:1px solid var(--exp-line); border-radius:.9rem; background:#fff; }
.journal-toc summary { padding:.82rem .95rem; color:var(--exp-deep); cursor:pointer; font-size:.95rem; font-weight:720; }
.journal-toc ol { list-style:none; margin:0; padding:0 .55rem .55rem; }
.journal-toc a { display:block; padding:.43rem .5rem; color:var(--exp-deep); border-radius:.45rem; font-size:.83rem; line-height:1.35; text-decoration:none; }
.journal-toc a:hover,.journal-toc a:focus-visible { background:var(--exp-ice); text-decoration:underline; text-underline-offset:.15em; }
.journal-table { max-width:100%; overflow:auto; margin:1rem 0 1.35rem; border:1px solid var(--exp-line); border-radius:.8rem; background:white; }
.journal-table:focus-visible { outline:2px solid var(--exp-blue); outline-offset:3px; }
.public-shell .journal-table table { display:table; width:100%; min-width:290px; margin:0; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:.89rem; line-height:1.47; }
.public-shell .journal-table[data-columns="3"] table { min-width:440px; }
.public-shell .journal-table[data-columns="4"] table { min-width:545px; }
.public-shell .journal-table[data-columns="5"] table { min-width:760px; }
.public-shell .journal-table :is(td,th) { border:0; border-block-end:1px solid var(--exp-line); padding:.63rem .76rem; text-align:start; vertical-align:top; overflow-wrap:anywhere; }
.public-shell .journal-table tr > :is(td,th) + :is(td,th) { border-inline-start:1px solid var(--exp-line); }
.public-shell .journal-table tbody > tr:last-child > :is(td,th) { border-block-end:0; }
.public-shell .journal-table thead th { background:#e7f0f7; color:var(--exp-deep); font-weight:720; }
.public-shell .journal-table tbody tr:nth-child(even) { background:#f6f9fc; }
.public-shell .journal-table[data-columns="2"] thead th:first-child { width:29%; }
.public-shell .journal-table[data-columns="5"] thead th:nth-child(1) { width:12%; }
.public-shell .journal-table[data-columns="5"] thead th:nth-child(2) { width:19%; }
.public-shell .journal-table[data-columns="5"] thead th:nth-child(3) { width:28%; }
.public-shell .journal-table[data-columns="5"] thead th:nth-child(4) { width:11%; }
.public-shell .journal-table :is(td,th) > :is(p,ul,ol):first-child { margin-top:0; }
.public-shell .journal-table :is(td,th) > :is(p,ul,ol):last-child { margin-bottom:0; }
.journal-table-hint { margin:.8rem 0 .35rem; color:var(--exp-muted); font-size:.79rem; }
.public-shell .prose.reading { margin-top:1.3rem; }
@media (max-width:900px) {
  .journal-layout.has-contents { grid-template-columns:minmax(0,1fr); gap:.8rem; }
  .journal-toc { position:static; max-height:none; }
  .public-shell .journal-prose :is(h2,h3)[id] { scroll-margin-top:5rem; }
}
@media (max-width:820px) {
  .expedition-header .instructor-options { position:static; min-width:0; }
}
@media (max-width:560px) {
  .trip-costs { grid-template-columns:minmax(0,1fr); }
  .home-rate-actions { grid-column:1/-1; }
  .home-rate-actions .rate-select { min-height:44px; }
  .public-shell .journal-layout .journal-prose { padding:.85rem; }
  .public-shell .journal-table :is(td,th) { padding:.55rem .61rem; }
}

.journal-table-hint:not([hidden]) + .journal-table { margin-top:.35rem; }
@media (max-width:560px) {
  .public-shell .journal-table:is([data-columns="4"],[data-columns="5"]) :is(th,td):first-child { position:sticky; left:0; z-index:1; box-shadow:2px 0 2px #28445b12; background:#fff; }
  .public-shell .journal-table:is([data-columns="4"],[data-columns="5"]) thead th:first-child { background:#e7f0f7; }
  .public-shell .journal-table:is([data-columns="4"],[data-columns="5"]) tbody tr:nth-child(even) td:first-child { background:#f6f9fc; }
}

/* Homepage route catalogue and activity cards. */
.route-heading {
  position:relative; overflow:hidden; isolation:isolate;
  padding:clamp(1.15rem,3vw,2.15rem) clamp(1.15rem,4vw,2.65rem);
  background:#e7eef5; border-radius:1.15rem; border:1px solid #d9e4ee;
}
.route-heading .eyebrow,.home-directions .eyebrow { margin:0 0 .45rem; }
.public-shell .route-heading h2 { margin:0; font-size:clamp(1.8rem,3vw,2.55rem); }
.route-heading .block-note { margin:.52rem 0 0; }
.route-heading > div { position:relative; z-index:1; }
.route-contours {
  position:absolute; right:0; top:0; width:min(44%,390px); height:100%; opacity:.7;
  stroke:#7796ad; stroke-width:.8; pointer-events:none;
}
.route-contours circle { fill:#f9f5ed; stroke:#aa572d; stroke-width:2; }
.route-tools:not([hidden]) { display:flex; align-items:center; justify-content:space-between; gap:.45rem 1rem; flex-wrap:wrap; margin:.85rem 0; }
.route-filters { display:flex; flex-wrap:wrap; gap:.36rem; }
.route-filters button {
  min-height:44px; padding:.4rem .83rem; border:1px solid #c8d7e4;
  border-radius:.58rem; background:#fff; color:var(--exp-deep); font:inherit;
  font-size:.83rem; font-weight:700; cursor:pointer;
}
.route-filters button:hover { background:#e6eff6; }
.route-filters button[aria-pressed="true"] { background:#214d6c; border-color:#214d6c; color:#fff; }
.route-tools p { margin:0; font-size:.83rem; color:var(--exp-muted); font-variant-numeric:tabular-nums; }
.route-grid {
  display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); grid-auto-flow:row; grid-auto-columns:auto;
  gap:.9rem; margin-top:.9rem; padding:0; overflow:visible; scroll-snap-type:none;
}
.route-scroll-controls { justify-content:flex-end; margin-block:.1rem 0; }
.route-scroll-controls button { width:44px; height:44px; }
.route-grid:focus-visible { outline:2px solid var(--exp-blue); outline-offset:3px; border-radius:.75rem; }
.route-card { grid-column:span 4; min-width:0; overflow:hidden; border-radius:1rem; border:1px solid #d6e2eb; background:#fff; }
.route-card[hidden] { display:none; }
.route-card > a { display:flex; flex-direction:column; height:100%; color:inherit; text-decoration:none; }
.route-card > a:focus-visible,.direction-card:focus-visible { outline:3px solid #b86132; outline-offset:-4px; }
.route-card-photo { position:relative; overflow:hidden; background:#dfe9f0; aspect-ratio:16/8.5; }
.route-card-photo img,.direction-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.route-tag {
  position:absolute; inset:.65rem auto auto .65rem; max-width:calc(100% - 1.3rem);
  border-radius:.36rem; padding:.24rem .46rem; color:#213a4a; background:#f7f9fb;
  font-size:.72rem; font-weight:740; letter-spacing:.015em;
}
.route-card-copy { display:flex; flex:1; flex-direction:column; padding:.82rem .95rem .95rem; }
.route-card-copy h3,.direction-copy h3 { margin:0; font-size:clamp(1rem,1.55vw,1.25rem); }
.route-card-copy p { margin:.35rem 0 .63rem; color:var(--exp-muted); font-size:.875rem; line-height:1.45; }
.route-card-action { align-self:start; margin-top:auto; color:#215d81; font-size:.82rem; font-weight:750; }
.route-card-action > span { display:inline-block; padding-inline-start:.2rem; }
.route-card a:hover .route-card-action { text-decoration:underline; text-underline-offset:.18em; }

.home-directions > h2 { margin:0 0 .85rem; }
.direction-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.9rem; }
.direction-card {
  --direction-paper:#f0e9dd; --direction-accent:#754525;
  min-width:0; overflow:hidden; display:grid; grid-template-rows:auto 1fr; color:inherit; text-decoration:none;
  border-radius:1rem; border:1px solid #d5dfe6; background:var(--direction-paper);
}
.direction-card--snow { --direction-paper:#e6f0f8; --direction-accent:#285a7d; }
.direction-card--lift { --direction-paper:#e7f0eb; --direction-accent:#315f50; }
.direction-photo { aspect-ratio:16/8; overflow:hidden; }
.direction-copy { position:relative; padding:.82rem 3.3rem 1rem .95rem; }
.direction-copy p { margin:0 0 .28rem; color:var(--direction-accent); font-size:.75rem; font-weight:750; }
.direction-copy p span { font-variant-numeric:tabular-nums; margin-inline-end:.15rem; }
.direction-arrow {
  display:grid; place-items:center; position:absolute; right:.73rem; top:50%; translate:0 -50%;
  width:2.05rem; height:2.05rem; border-radius:50%; color:#fff; background:var(--direction-accent);
}
.direction-card:hover h3 { text-decoration:underline; text-underline-offset:.18em; }

@media(min-width:900px) {
  .route-finder:not(.route-finder--filtered) .route-card--feature { grid-column:span 5; }
  .route-finder:not(.route-finder--filtered) .route-card--feature:first-child { grid-column:span 7; }
  .route-finder:not(.route-finder--filtered) .route-card--feature > a { position:relative; min-height:clamp(300px,32vw,410px); isolation:isolate; }
  .route-finder:not(.route-finder--filtered) .route-card--feature .route-card-photo { position:absolute; inset:0; z-index:-1; aspect-ratio:auto; }
  .route-finder:not(.route-finder--filtered) .route-card--feature .route-card-photo::after {
    content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(0deg,#102334 1%,#102334bf 26%,transparent 70%);
  }
  .route-finder:not(.route-finder--filtered) .route-card--feature .route-tag { z-index:1; inset:1rem auto auto 1rem; }
  .route-finder:not(.route-finder--filtered) .route-card--feature .route-card-copy { justify-content:end; padding:clamp(1rem,2.4vw,1.65rem); }
  .route-finder:not(.route-finder--filtered) .route-card--feature .route-card-copy h3 { color:white; font-size:clamp(1.5rem,2.3vw,2.12rem); }
  .route-finder:not(.route-finder--filtered) .route-card--feature .route-card-copy p { color:#f2f7fb; }
  .route-finder:not(.route-finder--filtered) .route-card--feature .route-card-action { color:#fff; margin-top:.18rem; }
}
@media(max-width:899px) {
  .route-card { grid-column:span 6; }
  .route-contours { opacity:.3; }
}
@media(max-width:640px) {
  .route-grid {
    grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:min(83%,23rem);
    gap:.66rem; margin-top:.32rem; padding:.2rem .15rem .5rem; overflow-x:auto;
    overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scroll-padding-inline:.15rem;
  }
  .route-card { grid-column:auto; scroll-snap-align:start; }
  .route-card-photo { aspect-ratio:16/8.25; }
}
@media(max-width:560px) {
  .route-contours { display:none; }
  .direction-grid { grid-template-columns:minmax(0,1fr); gap:.65rem; }
  .direction-card { grid-template-columns:36% minmax(0,1fr); grid-template-rows:auto; min-height:98px; }
  .direction-photo { aspect-ratio:auto; }
  .direction-copy { align-self:center; }
  .route-tools { row-gap:.6rem; }
}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .route-card-photo img,.direction-photo img,.direction-arrow { transition:transform .22s ease; }
  .route-card:hover img,.direction-card:hover img { transform:scale(1.04); }
  .direction-card:hover .direction-arrow { transform:rotate(12deg); }
}

.home-route-notes { margin:1.45rem 0; padding:clamp(.9rem,2.65vw,1.75rem); border:1px solid #dae5ed; border-radius:1rem; background:#eaf1f6; }
.public-shell .home-route-notes > h2 { margin:0; text-transform:lowercase; }
.public-shell .home-route-notes > h2::first-letter { text-transform:uppercase; }
.public-shell .home-route-notes > h3 { margin:.35rem 0 .8rem; color:var(--exp-muted); font-size:.91rem; }
.route-note-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.route-note-card { min-width:0; padding:.78rem .85rem; border:1px solid #dbe5ed; border-radius:.7rem; background:#fff; }
.public-shell .route-note-card h3 { margin:0 0 .34rem; font-size:1rem; }
.public-shell .route-note-card p { margin:0; font-size:.91rem; }
@media(max-width:600px) { .route-note-grid { grid-template-columns:minmax(0,1fr); } }

.site-analytics button {
  display:inline-flex; min-height:44px; align-items:center; gap:.4rem;
  padding:.45rem .75rem; border:1px solid #d1deea; border-radius:.6rem;
  background:#fff; color:var(--exp-deep); font:inherit; font-size:.84rem; font-weight:700;
  text-decoration:none; cursor:pointer;
}
.site-analytics[hidden] { display:none; }
.site-analytics button:hover { background:var(--exp-ice); }
.footer-legal [data-analytics-settings] {
  border:0; background:none; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:.23em;
  padding:0; cursor:pointer;
}
.site-analytics {
  position:fixed; inset:auto 0 max(1rem, env(safe-area-inset-bottom)); z-index:15;
  max-width:32rem; padding:.8rem; border:1px solid var(--exp-line); border-radius:1rem;
  background:#fff; box-shadow:0 .65rem 2rem #132e4d32; color:var(--exp-deep);
}
.site-analytics p { font-size:.88rem; margin:0 0 .55rem; }
.site-analytics button + button { margin-inline-start:.35rem; }
.public-shell main :is(h1,h2,h3) { overflow-wrap:anywhere; }

.public-shell .prose .editorial-intro { margin:1rem 0; padding:.85rem 1rem; background:#e8f1f7; border-radius:.65rem; color:var(--exp-deep); font-size:1rem; font-weight:520; }
.public-shell .content-hero + .wrap > .prose:not(.journal-prose) { margin-top:clamp(.6rem,1.5vw,1.3rem); padding-block-start:clamp(.65rem,1.8vw,1.4rem); }

/* Editorial hierarchy and actions shared by the restored pages */
.public-shell { --trail-earth:#8b4b20; --trail-deep:#193448; }
.public-shell :focus-visible { outline:2px solid #205f92; outline-offset:3px; }
.public-shell .content-hero h1 { font-size:clamp(1.68rem,3vw,2.55rem); font-weight:680; text-wrap:balance; }
.public-shell .prose h2 { font-size:clamp(1.25rem,2vw,1.62rem); font-weight:660; letter-spacing:-.025em; margin:1.85rem 0 .68rem; }
.public-shell .prose h3 { font-size:clamp(1.02rem,1.55vw,1.2rem); font-weight:620; letter-spacing:-.012em; margin:1.26rem 0 .48rem; }
.public-shell .prose :is(h4,h5,h6) { font-size:1rem; font-weight:600; margin:1.1rem 0 .4rem; }
.public-shell .prose .editorial-note { margin:.65rem 0; border-color:#c8d6df; background:#f4f7f9; font-weight:450; }
.public-shell .prose .article-kicker { margin:0 0 .5rem; color:var(--exp-muted); font-size:.88rem; font-weight:550; }
.public-shell .hero-price { display:inline-flex; align-items:center; min-height:44px; padding-inline:.55rem; text-underline-offset:.22em; color:var(--exp-deep); font-weight:590; }
.public-shell .content-hero .actions { gap:.55rem .7rem; }

/* Contacts use symbols with accessible names and the original links. */
.contact-icon { --icon-color:#265472; display:inline-grid; place-items:center; flex:none; width:44px; height:44px; border:1px solid #dae4ec; border-radius:13px; background:#f3f7fb; color:var(--icon-color); text-decoration:none; }
.contact-icon--messenger { --icon-color:#1f526d; background:#eaf3f6; border-color:#cfe0e9; }
.contact-icon--messenger:hover { background:#deedf2; }
.contact-icon svg { display:block; width:20px; height:20px; fill:currentColor; }
:is(.contact-icon--phone,.contact-icon--email) svg { fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.public-shell :is(.header-socials,.footer-social,.contact-actions,.mobile-social-links) .contact-icon { color:var(--icon-color); }
.header-socials .contact-icon { display:inline-grid; width:36px; height:36px; border-radius:10px; }
.header-socials .contact-icon svg { width:16px; height:16px; }
.header-socials .contact-icon:hover,.public-shell .contact-icon:hover { border-color:currentColor; text-decoration:none; }
.public-shell .contact-actions { align-items:center; gap:.45rem; margin:.45rem 0 1.2rem; }
.public-shell .prose .contact-caption { margin:.85rem 0 .3rem; color:var(--exp-ink); font-weight:560; }
.public-shell .footer-social { gap:.38rem; margin-block:.25rem; }

/* One quiet panel, aligned with the article. The optional fields have their own disclosure. */
.public-shell .booking-section.booking-inline { width:min(930px,calc(100% - 44px)); margin:clamp(1.2rem,4vw,3.2rem) auto; padding:clamp(1rem,3.2vw,2.35rem); border:1px solid #d9e4ed; border-radius:1.12rem; background:#fff; color:var(--exp-ink); box-shadow:0 12px 30px #1734480a; scroll-margin-top:5.8rem; }
.public-shell .booking-section.booking-offer { border-top:3px solid #d68b52; background:linear-gradient(145deg,#fff7ec 0%,#fff 58%); }
.public-shell .booking-intro { padding:0 0 1rem; }
.public-shell .booking-intro .booking-kicker { margin:0 0 .28rem; color:var(--exp-deep); font-size:.81rem; font-weight:640; }
.public-shell .booking-offer .booking-kicker { color:var(--trail-earth); }
.public-shell .booking-intro h2 { margin:0 0 .45rem; font-size:clamp(1.38rem,2.45vw,1.94rem); font-weight:670; }
.public-shell .booking-intro p:not(.booking-kicker) { margin:0; max-width:66ch; font-size:.94rem; color:var(--exp-muted); }
.public-shell .booking-inline .booking-form { padding:0; border:0; background:transparent; box-shadow:none; gap:.84rem; }
.public-shell .booking-form label { font-size:.89rem; font-weight:560; }
.public-shell .booking-form .booking-fields { gap:.68rem .8rem; }
.public-shell .booking-form .booking-fields--route { grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr)); }
.public-shell .booking-form :is(input:not([type=checkbox]),textarea,select) { border-color:#c5d5e0; border-radius:.52rem; box-shadow:none; }
.public-shell .booking-form :is(input:not([type=checkbox]),textarea,select):focus { border-color:var(--exp-blue); outline-offset:1px; }
.public-shell .booking-details { border:0; border-block:1px solid #e0e8ee; border-radius:0; background:transparent; padding:.08rem 0; }
.public-shell .booking-details summary { display:flex; align-items:center; gap:.52rem; min-height:44px; color:var(--exp-deep); font-size:.9rem; font-weight:590; list-style:none; }
.public-shell .booking-details summary::-webkit-details-marker { display:none; }
.booking-details summary::before { content:""; display:block; width:7px; height:7px; border-right:1.5px solid; border-bottom:1.5px solid; transform:rotate(-45deg); margin:0 .25rem 0 .12rem; }
.booking-details[open] summary::before { transform:rotate(45deg); }
.public-shell .booking-details > label { display:block; padding-bottom:.65rem; }
.public-shell .booking-details textarea { min-height:3.7rem; height:auto; }
.public-shell .booking-status { background:transparent; border:0; padding:0; font-size:.83rem; color:#5c5151; }
.public-shell .booking-status[role=alert] { color:#963b29; }
.public-shell .booking-docs { font-size:.81rem; }
.public-shell .booking-agreement label { line-height:1.46; }
.public-shell .booking-submit { min-width:11rem; background:var(--trail-deep); }
.public-shell .booking-submit:hover { background:#2b5470; }
.public-shell .booking-submit:disabled { background:#e5ebef; color:#536471; opacity:1; }

/* Tariffs, price tabs and cost breakdowns */
.public-shell .prose .season-prices { padding:clamp(.8rem,2.3vw,1.55rem); background:#f7f9fb; border:1px solid #dce6ee; border-radius:1rem; }
.public-shell .prose .aibga-rates { background:transparent; border:0; padding:0; }
.public-shell .season-switch { border:1px solid #d6e2eb; background:#f0f4f8; gap:.18rem; border-radius:.76rem; }
.public-shell .season-tab { padding-inline:clamp(.75rem,2vw,1.18rem); border-radius:.55rem; font-weight:600; }
.public-shell .season-tab[aria-selected=true] { background:var(--trail-deep); color:#fff; box-shadow:0 3px 8px #18324620; }
.public-shell .prose .aibga-rates > p { font-size:.87rem; margin:.65rem 0; }
.public-shell .prose .rate-route-label { margin:.7rem 0 .25rem; font-size:.92rem; font-weight:610; color:var(--exp-ink); }
.public-shell .prose .rate-grid { gap:.8rem; }
.public-shell .prose .rate-route { margin-block:clamp(1rem,2.5vw,1.65rem); }
.public-shell .prose .rate-route > h3 {
  margin:0 0 .7rem; padding:.65rem .85rem; border-inline-start:3px solid #4e85a6;
  border-radius:.3rem .68rem .68rem .3rem; background:#e8f2f8; color:#173951;
  font-size:clamp(1.12rem,2.1vw,1.45rem); font-weight:710; line-height:1.24;
}
.public-shell .prose .rate-card { min-width:0; border-radius:.95rem; border-color:#d7e2eb; background:#fff; padding:clamp(.9rem,2vw,1.2rem); box-shadow:0 3px 8px #16324708; }
.public-shell .prose .activity-rate { display:flex; flex-direction:column; }
.public-shell .prose .rate-card h3 { font-size:.99rem; line-height:1.3; letter-spacing:-.01em; font-weight:620; margin:0 0 .15rem; }
.public-shell .prose .rate-card p { color:var(--exp-muted); font-size:.86rem; line-height:1.45; margin:.34rem 0 0; font-weight:450; }
.public-shell .prose .rate-card .activity-context { margin:.15rem 0 .3rem; }
.public-shell .prose .rate-card .activity-amount { margin:.48rem 0 0; font-size:clamp(1.4rem,2.1vw,1.76rem); line-height:1.12; font-variant-numeric:tabular-nums; color:var(--trail-deep); font-weight:690; letter-spacing:-.035em; }
.public-shell .prose .rate-card .activity-unit { margin:0 0 .42rem; color:#5d6b76; font-size:.82rem; }
.public-shell .prose .rate-card .rate-actions { margin:auto 0 0; padding-top:.9rem; }
.public-shell .rate-book,.public-shell .rate-actions .action-link { display:inline-flex; align-items:center; justify-content:space-between; gap:.6rem; min-height:44px; padding:.5rem .78rem; border:1px solid #e9d8bc; border-radius:.55rem; background:#fbefdb; color:#533318; text-decoration:none; font-size:.86rem; font-weight:630; }
.public-shell .rate-book::after { content:"→"; }
.public-shell :is(.rate-book,.rate-actions .action-link):hover { background:#f5e0bd; border-color:#d9b07c; }
.public-shell .prose .trip-archive-prices:has(> .rate-card:only-child) { grid-template-columns:minmax(0,1fr); max-width:36rem; }
.public-shell .prose .trip-costs { gap:.8rem; margin:1.35rem 0; }
.public-shell .prose .trip-cost-card { padding:1rem 1.15rem; background:#fff; border:1px solid #dae5ee; border-top:3px solid #a8bdcd; box-shadow:none; }
.public-shell .prose .trip-cost-included { border-top-color:#5b8db2; }
.public-shell .prose .trip-cost-card :is(h2,h3) { margin:0 0 .5rem; font-size:1.1rem; font-weight:640; }
.public-shell .prose .trip-cost-card li { padding:.14rem 0; }
.public-shell [id]:is(h2,h3) { scroll-margin-top:5.8rem; }

/* Existing photographs form a continuous card with their original link and title. */
.related-route-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr)); gap:.85rem; margin:.8rem 0 1.4rem; }
.related-route-card { position:relative; min-width:0; overflow:hidden; background:#fff; border:1px solid #d9e4ec; border-radius:.95rem; }
.public-shell .prose .related-route-card figure { display:block; margin:0; }
.public-shell .prose .related-route-card img { display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:0; }
.public-shell .prose .related-route-card img[src^="/media/routes/"],
.panorama-image[src^="/media/routes/"] { object-position:55% 59%; }
.public-shell .prose .route-photo-credit {
  position:relative; z-index:1; margin:0; padding:.28rem .8rem 0;
  color:#466176; font-size:.68rem; line-height:1.3;
}
.photo-credit { margin:.4rem .55rem 0; color:#466176; font-size:.75rem; overflow-wrap:anywhere; }
.photo-credit summary { cursor:pointer; width:fit-content; padding:.35rem 0; }
.photo-credit p { margin:.25rem 0; }
.related-route-copy { padding:.88rem .95rem .95rem; }
.public-shell .prose .related-route-copy h3 { margin:0 0 .38rem; font-size:1.02rem; }
.public-shell .prose .related-route-copy p { margin:0; }
.public-shell .related-route-link { display:inline-flex; align-items:center; gap:.45rem; min-height:36px; font-size:.87rem; font-weight:590; text-decoration:none; color:var(--exp-deep); }
.related-route-link::after { content:""; position:absolute; inset:0; }
.related-route-link::before { content:"→"; order:1; }
.related-route-card:hover,.related-route-card:focus-within { border-color:#8daec5; }
.public-shell .related-route-link:focus-visible { outline-offset:1px; }

.instructor-profile { display:grid; grid-template-columns:minmax(0,.68fr) minmax(0,1.32fr); align-items:center; gap:clamp(1rem,3vw,2.25rem); margin:1rem 0 1.5rem; padding:clamp(.75rem,2.2vw,1.35rem); border:1px solid #dbe7ef; border-radius:1.05rem; background:#fff; }
.public-shell .prose .instructor-profile :is(h2,p) { margin:.28rem 0 .55rem; }
.public-shell .prose .instructor-profile-photo { margin:0; }
.public-shell .prose .instructor-profile-photo img { width:100%; max-height:330px; object-fit:contain; background:#eaf1f5; border-radius:.75rem; }
.public-shell .prose .photo-trigger { width:min(100%,var(--photo-width,100%),calc(580px * var(--photo-ratio,1.5))); max-width:100%; margin-inline:auto; }
.public-shell :is(.archive-gallery,.instructor-card,.instructor-profile-photo,.fitness-coach-photos,.fitness-gallery,.fitness-equipment-layout,.ticket-screen-grid) .photo-trigger { width:100%; }
.public-shell .archive-gallery .carousel-track > figure { background:#eef3f7; }
.public-shell .prose .archive-gallery:not(.credential-gallery):not([data-gallery-label*="ученик"]):not([data-gallery-label*="Отзывы"]) .photo-trigger img { padding:0; height:auto; aspect-ratio:4/3; object-fit:contain; }
.public-shell .photo-trigger span { right:.48rem; bottom:.48rem; width:34px; height:34px; border-radius:.58rem; background:#172e41e8; }
.photo-trigger svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; }
.photo-trigger:focus-visible { outline:2px solid #2878a6; outline-offset:-3px; }

@media(max-width:640px) {
  .public-shell .booking-section.booking-inline { width:calc(100% - 28px); }
  .public-shell .booking-form .booking-fields--route { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-fields--route label:has([name="route"]) { grid-column:1/-1; }
  .related-route-grid { grid-auto-flow:column; grid-auto-columns:min(74vw,20rem); grid-template-columns:none; overflow:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; padding:3px 3px .55rem; scrollbar-color:#b0c2cf transparent; }
  .related-route-card { scroll-snap-align:start; }
  .instructor-profile { grid-template-columns:minmax(0,1fr); }
  .public-shell .prose .instructor-profile-photo { width:min(100%,210px); }
}
@media(max-width:350px) {
  .public-shell .booking-form .booking-fields--route { grid-template-columns:minmax(0,1fr); }
}
@media(prefers-reduced-motion:no-preference) {
  .related-route-card,.contact-icon,.rate-book { transition:background-color .18s,border-color .18s,box-shadow .18s; }
  .related-route-card img { transition:transform .28s ease-out; }
  .related-route-card:hover img { transform:scale(1.025); }
}


/* Panoramas and local route navigation */
.hero-view-stage { position:absolute; inset:0; touch-action:pan-y pinch-zoom; }
.home-views.has-view-controls figcaption { display:none; }
.home-views .hero-view-controls {
  inset:auto clamp(.85rem,2.6vw,1.75rem) clamp(.85rem,2.6vw,1.75rem) auto;
  display:grid; gap:.52rem; width:min(19.1rem,calc(100% - 1.8rem)); padding:.72rem .8rem;
  color:#fff; background:#102c41ee; border:1px solid #a5bfd46e; border-radius:.95rem;
  box-shadow:0 10px 30px #07141f38;
}
.hero-view-controls[hidden],.hero-view-controls [hidden] { display:none!important; }
.hero-view-caption { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; column-gap:.65rem; }
.hero-view-kicker { color:#cbddea; font-size:.72rem; font-weight:520; }
.hero-view-caption output {
  min-width:0; color:#fff; font-size:.87rem; font-weight:640; overflow-wrap:anywhere; text-align:start;
}
.hero-view-nav,.hero-view-steps { display:flex; align-items:center; gap:.28rem; }
.hero-view-steps { flex:1; }
.hero-view-controls .hero-view-nav button {
  flex:none; width:2.5rem; height:2.5rem; border:1px solid #7897af6e;
  border-radius:.5rem; color:#fff; background:#1b3b52; font-weight:610; font-size:1.03rem;
}
.hero-view-controls .hero-view-nav button:hover { background:#305672; }
.hero-view-controls .hero-view-steps .view-step {
  flex:1; min-width:1.35rem; width:auto; height:2.5rem; position:relative; background:transparent; border:0;
  font-size:.7rem; font-variant-numeric:tabular-nums; color:#cbddea;
}
.hero-view-steps .view-step::after {
  position:absolute; content:""; inset:auto .15rem .18rem; height:2px; border-radius:2px; background:#799bb2;
}
.hero-view-steps .view-step[aria-pressed=true] { color:#fff; background:#24465d; }
.hero-view-steps .view-step[aria-pressed=true]::after { background:#ffd6a4; }
.hero-view-controls .hero-view-nav [data-view-play][aria-pressed=true] { background:#e8b97f; color:#1c2c36; }
.hero-view-nav svg { width:1.13rem; height:1.13rem; fill:currentColor; }
.hero-view-nav [data-pause-icon] { fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; }
.public-shell .hero-view-controls :focus-visible { outline-color:#ffd6a4; outline-offset:1px; }
.photo-dialog > figure { touch-action:pan-y pinch-zoom; }

.trail-index.wrap {
  position:sticky; top:.45rem; z-index:9; display:flex; align-items:center; gap:.68rem;
  width:min(1000px,calc(100% - 44px)); margin:.8rem auto 0; padding:.22rem .48rem .32rem .82rem;
  overflow:hidden; background:#fff; border:1px solid #d8e5ed; border-radius:.78rem; box-shadow:0 6px 18px #19344813;
}
.trail-index-title { color:#53677a; white-space:nowrap; font-size:.75rem; font-weight:640; }
.trail-index-links { display:flex; flex:1; min-width:0; align-items:center; gap:.2rem; overflow-x:auto; scrollbar-width:thin; scrollbar-color:#c1d0dc transparent; }
.trail-index-links a {
  flex:none; display:flex; align-items:center; min-height:44px; padding:.35rem .65rem;
  color:#255372; border-radius:.49rem; text-decoration:none; font-size:.84rem; font-weight:590;
}
.trail-index-links a:hover { background:#edf5fa; }
.trail-index-links a[aria-current=location] { color:#173e59; background:#e5f0f7; }
.public-shell .trail-index-links a:focus-visible { outline-offset:-3px; }
.trail-index progress {
  position:absolute; inset:auto 0 0; width:100%; height:3px; appearance:none;
  border:0; background:#e8eff5; color:#b86836; pointer-events:none;
}
.trail-index progress::-webkit-progress-bar { background:#e8eff5; }
.trail-index progress::-webkit-progress-value { background:#b86836; }
.trail-index progress::-moz-progress-bar { background:#b86836; }
.public-shell .trail-index ~ * [data-trail-stop], .public-shell .trail-index ~ #zayavka { scroll-margin-top:3.7rem; }

/* Recovered route shelves share the ordinary photo-carousel controls. */
.archive-route-shelf[data-carousel] { display:block; padding:0; overflow:visible; }
.archive-route-shelf > .carousel-controls { justify-content:flex-end; }
.archive-route-shelf .carousel-track {
  --shelf-gap:.8rem;
  gap:var(--shelf-gap); padding:.12rem 3px .68rem;
  grid-auto-columns:calc((100% - 3 * var(--shelf-gap)) / 4);
}
.archive-route-shelf .carousel-track > article { scroll-snap-align:start; }
.archive-route-shelf .related-route-card { display:flex; flex-direction:column; }
.archive-route-shelf .related-route-copy { display:flex; flex-direction:column; flex:1; padding:.77rem .8rem .84rem; }
.archive-route-shelf .related-route-copy > p:last-child { margin-top:auto; padding-top:.35rem; }
.public-shell .prose .route-shelf-description { font-size:.82rem; line-height:1.48; margin:.2rem 0 .28rem; color:#4a6175; }
.route-shelf-placeholder { aspect-ratio:16/10; background:linear-gradient(130deg,#d8e9f3,#f3f6f9); }

.archive-coach {
  margin:.75rem 0 1.45rem; background:#fff; border:1px solid #d6e3ec; border-radius:1.05rem; overflow:hidden;
}
.public-shell .prose .archive-coach > summary {
  display:grid; grid-template-columns:7.5rem minmax(0,1fr) 2rem; align-items:center;
  gap:clamp(.7rem,2.2vw,1.4rem); min-height:5.3rem; padding:.65rem .95rem .65rem .65rem; cursor:pointer; list-style:none;
}
.archive-coach > summary::-webkit-details-marker { display:none; }
.public-shell .prose .archive-coach > summary img {
  display:block; width:100%; height:auto; aspect-ratio:6/5; object-fit:cover; object-position:center 32%; border-radius:.65rem;
}
.coach-summary { display:flex; flex-direction:column; gap:.28rem; color:#203c51; }
.coach-name { font-size:clamp(1.15rem,2.2vw,1.45rem); font-weight:650; }
.coach-prompt { color:#4b6880; font-size:.86rem; font-weight:500; }
.coach-chevron {
  justify-self:center; width:.72rem; height:.72rem; border-right:2px solid #285775;
  border-bottom:2px solid #285775; transform:rotate(45deg) translateY(-.15rem);
}
.archive-coach[open] .coach-chevron { transform:rotate(225deg) translateY(-.08rem); }
.coach-details { padding:.78rem 1.1rem 1.05rem; border-top:1px solid #e2ebf2; }
.public-shell .prose .coach-details p { margin:.35rem 0 .6rem; }
.public-shell .prose .coach-details figure { max-width:13rem; margin:.6rem 0; }
.public-shell .prose .coach-details figure img { height:auto; }

.article-author {
  display:flex; gap:.9rem; align-items:flex-start; margin:1.85rem 0 0; padding:1rem 1.05rem;
  background:#f5f8fb; border:1px solid #dce7ee; border-radius:.85rem;
}
.author-initials {
  display:grid; place-items:center; width:2.6rem; height:2.6rem; flex:none;
  color:#fff; background:#245675; border-radius:.62rem; font-size:.86rem; font-weight:680;
}
.public-shell .prose .article-author p { margin:0 0 .25rem; font-size:.87rem; }
.public-shell .prose .article-author .author-name { font-weight:650; color:var(--exp-ink); }
.public-shell .prose .article-author .author-dates { font-size:.78rem; }

@media (max-width:940px) {
  .archive-route-shelf .carousel-track { grid-auto-columns:calc((100% - 2 * var(--shelf-gap)) / 3); }
}
@media (max-width:820px), (pointer:coarse) and (max-width:960px) {
  .mobile-ready .trail-index { top:calc(max(.35rem,env(safe-area-inset-top)) + 57px); }
  .mobile-ready .trail-index ~ * [data-trail-stop], .mobile-ready .trail-index ~ #zayavka {
    scroll-margin-top:calc(3.8rem + env(safe-area-inset-top));
  }
}
@media (max-width:640px) {
  .home-views .hero-view-controls { inset:auto .55rem .55rem; width:auto; padding:.35rem .45rem .4rem; gap:.2rem; }
  .hero-view-controls .hero-view-nav button,.hero-view-controls .hero-view-steps .view-step { min-height:44px; }
  .hero-view-controls .hero-view-nav button { width:44px; }
  .hero-view-caption { padding-inline:.25rem; }
  .trail-index.wrap { width:calc(100% - 28px); gap:.25rem; padding-inline:.36rem; }
  .trail-index-title { display:none; }
  .archive-route-shelf .carousel-track { grid-auto-columns:min(76%,21rem); }
  .public-shell .prose .archive-coach > summary { grid-template-columns:4.5rem minmax(0,1fr) 1rem; }
  .article-author { padding:.8rem; gap:.65rem; }
}
@media (prefers-reduced-motion:no-preference) {
  .hero-view-nav button,.trail-index-links a,.coach-chevron { transition:background-color .18s, color .18s, transform .22s; }
  .archive-coach[open] .coach-details { animation:coach-in .25s ease-out; }
  @keyframes coach-in { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
}


/* Related reading and the resort ticket directory. */
.related-reading {
  margin-block:clamp(1rem,2.6vw,2rem) clamp(1.6rem,4vw,3.25rem);
  padding:clamp(.85rem,2.5vw,1.65rem); border:1px solid #dbe5ed; border-radius:1rem; background:#edf4f8;
}
.related-reading-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.25rem 1rem; }
.related-reading h2 { font-size:clamp(1.22rem,2.1vw,1.6rem); margin:0; }
.related-reading-head + .related-reading-grid { margin-top:.65rem; }
.related-reading-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; }
.related-reading-grid a {
  min-width:0; display:flex; align-items:center; justify-content:space-between; gap:.65rem;
  min-height:78px; padding:.8rem 1rem; border:1px solid var(--exp-line); border-radius:.8rem;
  background:#fff; color:var(--exp-deep); line-height:1.35; text-decoration:none;
  transition:background-color .18s,border-color .18s;
}
.related-reading-grid a:is(:hover,:focus-visible) { background:#eaf3f8; border-color:#9ab8cd; }
.related-reading-grid small { display:block; margin-bottom:.26rem; color:var(--exp-muted); font-size:.75rem; }
.related-reading-grid strong { font-size:.94rem; font-weight:660; overflow-wrap:anywhere; }
.related-arrow { flex:none; font-size:1.14rem; color:var(--exp-blue); }

.resort-ticket-grid,.ticket-old-rates,.ticket-options { display:grid; gap:.8rem; }
.resort-ticket-grid,.ticket-old-rates { grid-template-columns:repeat(3,minmax(0,1fr)); margin:1rem 0; }
.ticket-options { grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 0 1.4rem; }
.resort-ticket-card,.ticket-option,.ticket-old-rate {
  min-width:0; border:1px solid var(--exp-line); border-radius:1rem; background:#fff;
}
.resort-ticket-card { overflow:hidden; }
.public-shell .prose .resort-ticket-card figure { margin:0; padding:0; border:0; border-radius:0; }
.public-shell .prose .resort-ticket-card figure img {
  display:block; width:100%; height:clamp(95px,13vw,155px); padding:.85rem;
  object-fit:contain; border-radius:0; background:#fff;
}
.resort-ticket-copy { display:flex; flex-direction:column; align-items:flex-start; gap:.45rem; padding:.9rem; }
.public-shell .prose :is(.resort-ticket-copy,.ticket-old-rate) h3 { margin:0; font-size:1.08rem; }
.public-shell .prose .resort-ticket-copy p { margin:0 0 .26rem; color:var(--exp-muted); font-size:.85rem; }
.public-shell .prose .resort-ticket-copy a { font-size:.85rem; }
.ticket-option { padding:clamp(.9rem,3vw,1.45rem); background:#eaf3f8; scroll-margin-top:6rem; }
.ticket-option-wide { margin:0 0 1.35rem; }
.public-shell .prose .ticket-option h2 { margin:0 0 .5rem; font-size:clamp(1.2rem,2.8vw,1.55rem); }
.public-shell .prose .ticket-option p { margin:.4rem 0 .9rem; }
.public-shell .prose .ticket-option a.primary { padding:.55rem .8rem; color:#fff; font-weight:650; text-align:center; }
.public-shell .prose .ticket-info-link { display:block; margin:.7rem 0 0; font-size:.87rem; }
.ticket-intro,.ticket-disclosure { color:var(--exp-muted); }
.public-shell .prose .ticket-disclosure { font-size:.82rem; }
.public-shell .prose .ticket-old-rate { padding:.85rem; }
.public-shell .prose .ticket-old-rate p { margin:.45rem 0 0; }
.public-shell .prose .ticket-steps {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem;
  margin:1rem 0 1.5rem; padding:0; list-style:none; counter-reset:ticket-step;
}
.public-shell .prose .ticket-steps li {
  display:flex; align-items:flex-start; gap:.65rem; margin:0; padding:.75rem;
  border:1px solid var(--exp-line); border-radius:.75rem; background:#fff; counter-increment:ticket-step;
}
.ticket-steps li::before {
  content:counter(ticket-step); display:grid; place-items:center; flex:0 0 1.55rem;
  height:1.55rem; border-radius:50%; background:var(--exp-ice); color:var(--exp-blue);
  font-size:.82rem; font-weight:700;
}
.public-shell .prose .ticket-steps p { margin:0; font-size:.94rem; }
@media (max-width:750px) {
  .related-reading-grid,.ticket-old-rates,.resort-ticket-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .related-reading-grid,.resort-ticket-grid,.ticket-old-rates,.ticket-options,
  .public-shell .prose .ticket-steps { grid-template-columns:minmax(0,1fr); }
  .related-reading-grid a { min-height:62px; }
}



/* Mobile-first visual pass. The same surfaces and accents carry through each template. */
.public-shell {
  --exp-paper:#f6f7f8; --exp-ink:#142d40; --exp-muted:#43596a;
  --exp-blue:#19577e; --exp-deep:#153b55; --exp-ice:#e9f2f8;
  --exp-line:#dbe4eb; --trail-earth:#854719;
  --ember:#f4b371; --ember-light:#fff0de; --ember-ink:#62360f;
  --lift-shadow:0 6px 22px #14334910;
}
.public-shell .primary { border-radius:.78rem; font-weight:680; }
.public-shell .content-hero {
  background:radial-gradient(ellipse at 95% -25%,var(--cover-decoration),transparent 67%),var(--cover-tint);
}
.public-shell .content-hero--trail { --cover-tint:#eef4f8; --cover-decoration:#d5e4ef; }
.public-shell .content-hero--snow { --cover-tint:#eff5fa; --cover-decoration:#cedfee; }
.public-shell .content-hero--journal { --cover-tint:#fbf7f0; --cover-decoration:#f2dec5; }
.public-shell .content-hero .eyebrow {
  display:inline-flex; align-items:center; gap:.42rem; margin:0 0 .62rem; padding:.31rem .58rem;
  border:1px solid #d4e1ea; border-radius:.55rem; background:#ffffffa8;
  color:var(--exp-deep); font-size:.76rem; letter-spacing:.005em; text-transform:none;
}
.content-hero .eyebrow::before {
  content:""; width:.4rem; height:.4rem; flex:none; border-radius:50%; background:#ab5c28;
}
.public-shell .content-hero h1 { font-weight:710; line-height:1.13; }
.public-shell .content-hero h1::after { width:2.8rem; height:.23rem; border-radius:1rem; background:#ab5c28; }
.public-shell .content-cover { border-radius:1.1rem; box-shadow:0 8px 24px #183a5330; }
.public-shell .content-hero .actions { margin:.83rem 0 0; }
.public-shell .content-hero .hero-price { padding:.5rem .82rem; border:1px solid #c3d6e4; border-radius:.7rem; background:#fff8; text-decoration:none; }
.public-shell .content-hero .hero-price:is(:hover,:focus-visible) { background:#fff; }
.empty-heading-anchor { height:0; margin:0; padding:0; overflow:hidden; }
.public-shell .prose :is(p,li,ul,ol).empty-heading-anchor {
  display:block; height:0; min-height:0; margin:0; padding:0; border:0; list-style:none;
}
.public-shell .prose :is(h2,h3) { text-wrap:pretty; }

.public-shell .home-intro { border:1px solid #d9e4ec; box-shadow:var(--lift-shadow); }
.public-shell .home-intro.has-views .primary { background:var(--ember); color:#253243; }
.public-shell .home-intro.has-views .primary:hover { background:#ffd1a4; }
.public-shell .home-intro-copy > .eyebrow { letter-spacing:.1em; }
.public-shell .home-intro-copy > .actions { gap:.5rem; }
.home-views .hero-view-controls { border-color:#81a0b675; background:#122d43eb; box-shadow:0 6px 15px #081d3e35; }
.hero-view-controls .hero-view-steps .view-step[aria-pressed=true] { background:#f3b57d; color:#172e42; font-weight:760; }
.hero-view-steps .view-step[aria-pressed=true]::after { background:#9c5027; }
.public-shell .route-heading { background:linear-gradient(110deg,#e6f1f7,#f0f6f9); }
.route-filters button { border-radius:.76rem; }
.route-filters button[aria-pressed=true] { border-color:#254e69; background:#254e69; }
.route-card,.direction-card,.related-route-card { box-shadow:var(--lift-shadow); }
.public-shell .route-card-copy h3 { letter-spacing:-.017em; }
.public-shell .route-card-action span,.related-arrow { color:#825124; }
.public-shell .route-card--feature .route-card-action span { color:#fac28d; }
.public-shell .home-prices { background:linear-gradient(145deg,#e9f3f9,#f5f8fb); border:1px solid var(--exp-line); }
.public-shell .prose .rate-card { border-color:var(--exp-line); box-shadow:var(--lift-shadow); }
.public-shell .prose .activity-rate .activity-amount,.public-shell .prose .season-panel .activity-amount { font-variant-numeric:tabular-nums; }
.public-shell .season-tab[aria-selected=true] { background:#254e69; }
.public-shell .prose :is(.rate-book,.contact-actions a.action-link) { border-radius:.68rem; }
.public-shell .prose .rate-book:is(:hover,:focus-visible) { background:var(--ember-light); color:var(--ember-ink); }
.public-shell .trail-index-links a[aria-current=location] { background:#e5f0f7; box-shadow:inset 0 -2px #a55b2e; }

.public-shell .journal-library { padding-block:clamp(1.1rem,3.6vw,2.7rem); }
.journal-library-head { display:flex; align-items:end; justify-content:space-between; gap:.8rem 2rem; flex-wrap:wrap; }
.journal-library-head .eyebrow { color:var(--trail-earth); margin:0 0 .4rem; font-size:.7rem; letter-spacing:.09em; }
.journal-library-head h2 { margin:0; }
.journal-search { flex:0 1 25rem; min-width:0; }
.journal-search label { display:block; margin-bottom:.22rem; color:var(--exp-deep); font-size:.86rem; font-weight:650; }
.journal-query-box { display:flex; align-items:center; gap:.48rem; padding-inline:.7rem; border:1px solid #c4d3df; border-radius:.75rem; background:#fff; }
.journal-query-box:focus-within { outline:2px solid var(--exp-blue); outline-offset:2px; }
.journal-query-box svg { width:1.18rem; height:1.18rem; fill:none; stroke:var(--exp-blue); stroke-width:1.7; flex:none; }
.journal-query-box input { min-width:0; width:100%; min-height:44px; padding:.38rem 0; border:0; background:transparent; outline:0; color:var(--exp-ink); font:inherit; font-size:1rem; }
.public-shell .journal-query-box input:focus-visible { outline:0; }
.journal-search output { display:block; min-height:1.32rem; margin-top:.24rem; color:var(--exp-muted); font-size:.79rem; }
.journal-no-results { padding:.8rem 1rem; border:1px solid var(--exp-line); border-radius:.8rem; background:#fff; }
.public-shell .journal-library .grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:.7rem; margin-top:.8rem; }
.journal-library .card { min-width:0; border-radius:.95rem; box-shadow:var(--lift-shadow); }
.journal-library .card a {
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:.7rem;
  min-height:106px; padding:.75rem; color:var(--exp-ink); text-decoration:none;
}
.journal-library .card a:focus-visible { outline-offset:-3px; }
.journal-library .card:hover { border-color:#9bb7cb; }
.journal-library .card img.journal-thumb { width:66px; height:66px; border-radius:.7rem; object-fit:cover; }
.journal-symbol { width:2.75rem; height:2.75rem; padding:.7rem; color:var(--exp-blue); background:var(--exp-ice); border-radius:.67rem; stroke:currentColor; stroke-width:1.65; stroke-linejoin:round; stroke-linecap:round; }
.journal-library .card a > div.journal-card-copy { min-width:0; padding:0; }
.journal-card-copy small { display:block; color:var(--exp-muted); font-size:.7rem; line-height:1.28; }
.journal-card-copy .journal-card-summary {
  margin:.38rem 0 0;
  color:var(--exp-muted);
  font-size:.8rem;
  line-height:1.4;
  text-wrap:pretty;
}
.journal-library .card h3 { margin:.25rem 0 0; font-size:1rem; font-weight:665; line-height:1.28; text-wrap:pretty; }
.journal-library .card .journal-card-arrow { display:grid; place-items:center; width:1.7rem; height:1.7rem; border-radius:50%; background:var(--ember-light); color:var(--ember-ink); font-size:.88rem; }
.public-shell .journal-prose .journal-lead { border-color:#bb7b4d; background:#faf4eb; }
.public-shell .journal-toc > summary { min-height:44px; }
.journal-toc nav a { min-height:38px; display:flex; align-items:center; }
.related-reading-grid a { box-shadow:var(--lift-shadow); }

.table-views:not([hidden]) { display:inline-flex; gap:.2rem; max-width:100%; padding:.18rem; border:1px solid var(--exp-line); border-radius:.68rem; background:#edf3f8; }
.table-views button {
  min-height:44px; padding:.34rem .72rem; border:0; border-radius:.49rem; background:transparent;
  color:var(--exp-deep); font:inherit; font-size:.83rem; font-weight:680; cursor:pointer;
}
.table-views button[aria-pressed=true] { background:#254e69; color:#fff; }
.reading-cell-label { display:none; }
.reading-cell-value { display:contents; }
.public-shell .journal-table[data-table-view=cards] { border:0; overflow:visible; background:transparent; margin-top:.6rem; }
.public-shell .journal-table[data-table-view=cards] table { display:block; width:100%; min-width:0; }
.public-shell .journal-table[data-table-view=cards] caption {
  display:block; box-sizing:border-box; width:100%; padding:.55rem .15rem; margin:0 0 .25rem;
  text-align:left; color:var(--exp-muted); overflow-wrap:normal;
}
.journal-table[data-table-view=cards] thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
.journal-table[data-table-view=cards] tbody { display:grid; gap:.6rem; }
.public-shell .journal-table[data-table-view=cards] tbody tr {
  display:block; min-width:0; border:1px solid var(--exp-line); border-radius:.82rem; background:#fff;
}
.public-shell .journal-table[data-table-view=cards] :is(td,th) {
  position:static; display:grid; grid-template-columns:minmax(0,34%) minmax(0,1fr); gap:.52rem;
  width:auto; padding:.52rem .68rem; border:0; border-bottom:1px solid var(--exp-line);
  box-shadow:none; background:transparent; color:var(--exp-ink); overflow-wrap:break-word;
}
.public-shell .journal-table[data-table-view=cards] tbody > tr > :is(td,th):first-child {
  border-radius:.8rem .8rem 0 0; background:#eef5f9; font-weight:650;
}
.public-shell .journal-table[data-table-view=cards] tbody > tr > :is(td,th):last-child { border-bottom:0; }
.journal-table[data-table-view=cards] .reading-cell-label { display:block; color:var(--exp-muted); font-size:.74rem; line-height:1.35; font-weight:640; }
.journal-table[data-table-view=cards] .reading-cell-value { display:block; min-width:0; }
.journal-table[data-table-view=cards] .reading-cell-value > :first-child { margin-top:0; }
.journal-table[data-table-view=cards] .reading-cell-value > :last-child { margin-bottom:0; }

.public-shell .booking-section.booking-inline { border-radius:1.18rem; box-shadow:var(--lift-shadow); }
.public-shell .booking-form :is(input:not([type=checkbox]),textarea,select) { border-radius:.67rem; background:#fcfdfe; }
.public-shell .booking-inline .booking-submit:disabled { opacity:1; background:#e5ebf0; color:#526776; }
.public-shell .booking-form label { color:var(--exp-ink); }
.public-shell .prose .ticket-option { background:linear-gradient(130deg,#edf5fa,#f8fbfd); }
.resort-ticket-card,.ticket-option,.ticket-old-rate { box-shadow:var(--lift-shadow); }
.public-shell .site-footer { background:#142e43; }

@media (max-width:820px), (pointer:coarse) and (max-width:960px) {
  .mobile-ready .expedition-header .masthead { display:none; }
  .mobile-ready .expedition-header .header-direct { display:flex; flex:none; margin:0; }
  .mobile-ready .expedition-header .header-direct .header-phone { display:none; }
  .mobile-ready .header-utility { border-top:0; background:#edf4f8; }
  .mobile-ready .header-utility-inner {
    min-height:46px; width:calc(100% - 24px); max-width:580px;
    justify-content:flex-start; flex-wrap:nowrap; gap:.18rem; font-size:.72rem;
  }
  .mobile-ready .header-hours { margin-inline-end:auto; padding-inline-start:.13rem; }
  .mobile-ready .header-email span { display:none; }
  .mobile-ready .header-utility-inner .header-email,
  .mobile-ready .header-socials .contact-icon {
    display:inline-grid; place-items:center; width:40px; height:40px; min-height:40px; border-radius:.66rem;
  }
  .mobile-ready .header-utility-inner .header-email { border:1px solid #d5e3ed; background:#f7fbfd; color:var(--exp-blue); }
  .mobile-ready .header-socials { gap:.18rem; }
  .mobile-ready .mobile-contact {
    width:calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)); max-width:580px;
    display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:.28rem;
    padding:.18rem .27rem .18rem .48rem; margin-block:.35rem; border-radius:.86rem;
  }
  .mobile-ready .mobile-contact > .brand {
    display:inline-flex; min-width:0; gap:.32rem; justify-content:start;
    font-size:clamp(.91rem,3.7vw,1.17rem); font-weight:790;
  }
  .mobile-contact .brand img { width:clamp(25px,8vw,36px); height:auto; }
  .mobile-ready .mobile-contact .mobile-call {
    padding:.1rem .28rem; color:var(--exp-deep); font-size:clamp(.68rem,3.12vw,.86rem);
  }
  .mobile-ready .mobile-menu-toggle { background:#194c6c; border-radius:.62rem; }
  .mobile-menu[open] {
    inset:auto 0 0; width:min(100%,560px); max-height:calc(100dvh - 1.3rem); height:auto;
    margin:0 auto; border:1px solid var(--exp-line); border-radius:1.35rem 1.35rem 0 0;
    padding:.72rem max(.95rem,env(safe-area-inset-right)) max(1.1rem,env(safe-area-inset-bottom)) max(.95rem,env(safe-area-inset-left));
    box-shadow:0 -18px 55px #0c223c30; background:#f7fafc; scrollbar-gutter:stable both-edges;
  }
  .mobile-menu[open]::before {
    display:block; content:""; width:2.4rem; height:.25rem; margin:0 auto .45rem;
    border-radius:1rem; background:#aabfce;
  }
  .mobile-menu::backdrop { background:#0c223c80; }
  .mobile-menu-utility a[href$="#zayavka"] { background:var(--ember); color:#292d36; }
  .mobile-ready .trail-index { top:calc(max(.32rem,env(safe-area-inset-top)) + 54px); }
  .mobile-ready .trail-index ~ * [data-trail-stop],.mobile-ready .trail-index ~ #zayavka { scroll-margin-top:3.65rem; }
  .public-shell .journal-library .grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .public-shell .content-hero .hero-body { padding-block:.9rem 1.1rem; }
  .public-shell .content-hero h1 { font-size:clamp(1.47rem,6.35vw,2.02rem); }
  .public-shell .content-hero .content-cover { height:clamp(128px,41vw,208px); border-radius:.82rem; }
  .public-shell .content-hero h1::after { margin-top:.62rem; }
  .public-shell .home-intro-copy { padding:.95rem .93rem 1.04rem; background:linear-gradient(130deg,#eef5fa,#fff); }
  .public-shell .home-intro h1 { font-size:clamp(1.63rem,6.45vw,2.18rem); }
  .home-intro-copy > p:not(.eyebrow) { font-size:.95rem; line-height:1.52; }
  .home-views .hero-view-controls { border-radius:.78rem; }
  .public-shell .journal-library .grid { grid-template-columns:minmax(0,1fr); gap:.52rem; }
  .journal-library-head { gap:.73rem; }
  .journal-library .card a { min-height:79px; padding:.6rem; gap:.52rem; }
  .journal-library .card h3 { font-size:.95rem; }
  .journal-library .card img.journal-thumb { width:56px; height:56px; }
  .journal-symbol { width:2.45rem; height:2.45rem; padding:.57rem; }
  .journal-toc nav a { min-height:44px; }
  .public-shell .booking-form .booking-submit { width:100%; min-height:48px; }
  .public-shell .footer-columns { grid-template-columns:minmax(0,1fr); }
  .public-shell .footer-contacts { grid-row:1; padding-bottom:.8rem; border-bottom:1px solid #ffffff33; }
}
@media (max-width:355px) {
  .mobile-ready .header-utility-inner { gap:.12rem; font-size:.68rem; }
  .mobile-ready .header-utility-inner svg { width:13px; height:13px; }
  .public-shell .booking-form .booking-fields { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:no-preference) {
  .journal-library .card,.resort-ticket-card { transition:border-color .18s ease, box-shadow .18s ease; }
  .journal-card-arrow { transition:transform .18s ease; }
  .journal-library .card a:is(:hover,:focus-visible) .journal-card-arrow { transform:translate(2px,-2px); }
  .mobile-menu[open] { animation:sheet-in .21s cubic-bezier(.2,.7,.28,1); }
  @keyframes sheet-in {
    from { opacity:.8; transform:translateY(1.5rem); }
    to { opacity:1; transform:translateY(0); }
  }
}

/* Give the imported opening lines a level below the page title. */
.public-shell .prose .archive-lead-kicker {
  display:table; max-width:100%; margin:.45rem 0 .3rem; padding:.2rem .52rem;
  border-radius:.38rem; background:#eef3f7; color:var(--exp-muted);
  font-size:.81rem; line-height:1.34; font-weight:630;
}
.public-shell .prose .archive-lead-heading { margin:.65rem 0 .5rem; font-size:clamp(1.13rem,2.2vw,1.5rem); }
.public-shell .prose .archive-lead-repeat { margin:.65rem 0 .45rem; color:var(--exp-muted); font-size:.92rem; font-weight:540; }
@media (max-width:620px) {
  .public-shell .trail-index + .wrap > .prose:not(.journal-prose) { margin-top:.85rem; padding-block-start:.65rem; }
}

.public-shell .journal-table[data-table-view=cards] tr[data-reading-joined] { border-radius:.82rem .82rem 0 0; }
.public-shell .journal-table[data-table-view=cards] tr[data-reading-follow] { margin-top:-.6rem; border-top:0; border-radius:0 0 .82rem .82rem; }
.public-shell .journal-table[data-table-view=cards] tr[data-reading-follow][data-reading-joined] { border-radius:0; }
.public-shell .journal-table[data-table-view=cards] tr[data-reading-follow] > :is(td,th):first-child { border-radius:0; background:transparent; font-weight:inherit; }
.public-shell .journal-table[data-table-view=cards] tr[data-reading-joined] > :is(td,th):last-child { border-bottom:1px solid var(--exp-line); }

/* Home guide navigation and the reading header. */
.guide-links {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.62rem; margin:0 0 .8rem;
}
.guide-links a {
  display:flex; align-items:center; justify-content:space-between; gap:.6rem; min-height:52px;
  padding:.65rem .78rem; border:1px solid #d7e4ed; border-radius:.72rem;
  background:#fff; color:var(--exp-deep); font-size:.9rem; font-weight:670; line-height:1.35; text-decoration:none;
}
.guide-links a:is(:hover,:focus-visible) { background:#edf5fa; border-color:#a8c4d6; }
.home-sochi {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.28rem 1.25rem;
  padding:clamp(.95rem,3vw,1.7rem); border:1px solid #d9e6ef; border-radius:1rem; background:#edf5fa;
}
.home-sochi h2 { margin:0; font-size:clamp(1.2rem,2.4vw,1.66rem); }
.home-sochi p { grid-column:1; margin:0; color:var(--exp-muted); }
.home-sochi .quiet { grid-row:1 / span 2; grid-column:2; background:#fff; }
.home-destinations > p { margin:.25rem 0 .8rem; color:var(--exp-muted); }
.guide-destinations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.68rem; }
.guide-destinations article {
  min-width:0; padding:.84rem .94rem; border:1px solid #dce7ef; border-radius:.77rem; background:#fff;
}
.guide-destinations h3 { margin:0 0 .38rem; font-size:1rem; }
.guide-destinations p { margin:0; color:var(--exp-muted); font-size:.88rem; line-height:1.52; }
.home-directions#directions { scroll-margin-top:5rem; }

.breadcrumbs {
  display:block; max-width:100%; margin:0 0 .85rem; color:#3d5568; font-size:.82rem;
}
.breadcrumbs ol { display:flex; align-items:center; gap:.48rem; list-style:none; margin:0; padding:0; }
.breadcrumbs li { min-width:0; display:flex; align-items:center; gap:.48rem; }
.breadcrumbs li:not(:last-child) { flex:none; }
.breadcrumbs li + li::before {
  content:""; width:.34rem; height:.34rem; flex:none; border:solid #6d879b;
  border-width:1px 1px 0 0; rotate:45deg;
}
.breadcrumbs li a { color:#245775; text-decoration:underline; text-decoration-color:#9ab7c9; text-underline-offset:.22em; }
.breadcrumbs [aria-current=page] { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.public-shell .journal-hero.has-cover .content-cover { height:clamp(180px,24vw,340px); }
.public-shell .journal-hero .hero-body { gap:clamp(.85rem,3vw,2.8rem); }
@media(min-width:681px) {
  .public-shell .journal-hero.has-cover .hero-body { grid-template-columns:minmax(0,1fr) minmax(0,1.06fr); }
}
@media(max-width:680px) {
  .public-shell .journal-hero.has-cover .hero-body { grid-template-columns:minmax(0,1fr); }
  .public-shell .journal-hero.has-cover .content-cover { height:clamp(146px,48vw,262px); }
  .guide-destinations { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:560px) {
  .guide-links,.guide-destinations,.home-sochi { grid-template-columns:minmax(0,1fr); }
  .home-sochi .quiet { grid-row:auto; grid-column:1; justify-self:start; margin-top:.4rem; }
  .breadcrumbs { font-size:.76rem; }
  .breadcrumbs ol,.breadcrumbs li { gap:.38rem; }
  .related-reading-head { align-items:start; flex-direction:column; }
}

/* Short answers, route stories and booking controls. */
.public-shell .journal-prose .quick-answer {
  margin:0 0 1.2rem; padding:clamp(.85rem,2.25vw,1.32rem) clamp(.88rem,2.6vw,1.45rem);
  border:1px solid #d5e5ee; border-inline-start:3px solid #3a7595; border-radius:.85rem;
  background:#edf6fb; color:#1e3d54;
}
.public-shell .journal-prose .quick-answer h2 {
  margin:0 0 .32rem; color:#255873; font-size:.9rem; font-weight:710; letter-spacing:0;
}
.public-shell .journal-prose .quick-answer p { margin:0; line-height:1.55; }
.public-shell .journal-prose .gear-credit { margin:.6rem 0 1.05rem; color:var(--exp-muted); font-size:.82rem; }
.public-shell .journal-prose figure:has(img[src^="/__assets/gear-"]) img { width:min(100%,760px); height:auto; object-fit:contain; margin-inline:auto; }
.public-shell .journal-prose figure:has(img[src^="/__assets/gear-"]) figcaption { max-width:64ch; margin-inline:auto; }
.public-shell .journal-prose .gear-ticket-links {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.62rem; margin:1rem 0;
}
.public-shell .gear-ticket-links > div {
  min-width:0; display:grid; align-content:start; gap:.4rem; padding:.8rem; border:1px solid var(--exp-line);
  border-radius:.75rem; background:#edf5fa;
}
.public-shell .gear-ticket-links h3 { margin:0 0 .15rem; font-size:1rem; }
.public-shell .gear-ticket-links a { padding:.32rem .2rem; }
.public-shell .gear-ticket-links a[rel~=sponsored] { color:#714620; }
.public-shell .prose .route-section-link {
  display:inline-flex; align-items:center; min-height:44px; gap:.3rem;
  font-size:.87rem; text-underline-offset:.22em;
}
.route-story {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.75fr); align-items:center; gap:clamp(.85rem,2.5vw,1.8rem);
  margin:1.2rem 0 1.55rem; padding:clamp(.85rem,2.8vw,1.6rem); border:1px solid #dce7ef;
  border-radius:1rem; background:#fff; box-shadow:0 8px 24px #1d3a4d0b;
}
.public-shell .prose .route-story-copy > :first-child { margin-top:0; }
.public-shell .prose .route-story-copy > :last-child { margin-bottom:0; }
.public-shell .prose .route-story > figure {
  min-width:0; align-self:center; width:100%; margin:0; padding:0; background:none; border:0;
}
.public-shell .prose .route-story > figure img {
  width:100%; height:auto; max-height:580px; object-fit:contain; object-position:center;
  border-radius:.8rem;
}
.public-shell .trail-index.wrap {
  max-width:980px; border-radius:.84rem; padding:.32rem .55rem .4rem; box-shadow:0 6px 17px #1a40541a;
}
.public-shell .trail-index-links { gap:.22rem; }
.public-shell .trail-index-links a { min-height:42px; padding:.32rem .67rem; }
.public-shell .trail-index-links a[href="#zayavka"] { background:#f8ebd8; color:#633d20; }
.public-shell .trail-index-links a[href="#zayavka"]:is(:hover,[aria-current=location]) { background:#f5e0be; color:#533319; }
.public-shell .prose .aibga-rates {
  padding:clamp(.75rem,2.5vw,1.28rem); border:1px solid #d6e4ef; border-top:3px solid #6c9cba;
  border-radius:1rem; background:linear-gradient(150deg,#edf5fa,#f8fafc);
}
.public-shell .prose .aibga-rates .rate-actions {
  display:flex; justify-content:center; align-items:center; padding-top:.85rem;
}
.public-shell .prose .aibga-rates .rate-actions a {
  justify-content:center; width:min(100%,16rem); min-height:48px; padding:.45rem .85rem;
}
.public-shell .booking-section.booking-offer { position:relative; background:linear-gradient(148deg,#fff3df,#fff 62%); }
.booking-discount {
  display:inline-grid; place-items:center; width:3rem; height:3rem; margin:0 0 .55rem; border-radius:.95rem;
  background:#f6dfb8; color:#614020; font-size:1.12rem; font-weight:760; font-variant-numeric:tabular-nums;
}
@media (max-width:800px) {
  .route-story { grid-template-columns:minmax(0,1fr); align-items:start; }
  .public-shell .prose .route-story > figure { width:min(100%,32rem); justify-self:center; }
  .public-shell .prose .route-story > figure img { max-height:420px; }
}
@media (max-width:540px) {
  .route-story { padding:.82rem; }
  .public-shell .prose .route-story > figure img { max-height:360px; }
  .public-shell .journal-prose .gear-ticket-links { grid-template-columns:minmax(0,1fr); }
  .public-shell .trail-index-links a { min-height:44px; padding-inline:.58rem; }
  .public-shell .booking-offer .booking-intro { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.1rem .65rem; }
  .booking-discount { grid-row:1 / span 2; align-self:center; margin:0; }
  .public-shell .booking-offer .booking-intro > p:last-child { grid-column:1 / -1; }
}

/* Shared photo banner and page navigation. */
.public-shell .panorama-block.wrap {
  width:min(1240px,calc(100% - 52px)); margin:clamp(.95rem,2.6vw,2.1rem) auto 0;
}
.panorama-crumbs { margin:0 .14rem .66rem; }
.panorama-crumbs .breadcrumbs { margin:0; }
.panorama-hero {
  position:relative; isolation:isolate; display:grid; align-items:end; overflow:hidden;
  min-height:clamp(320px,33vw,445px); padding:clamp(1.6rem,4.6vw,4.2rem);
  border-radius:clamp(1.05rem,2.1vw,1.65rem); background:#162b3d; color:white;
  box-shadow:0 12px 29px #19364a19;
}
.panorama-hero--home { min-height:clamp(365px,38vw,510px); align-items:center; }
.panorama-image { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; }
.panorama-hero--journal .panorama-image { object-position:center 42%; }
.panorama-hero--camp .panorama-image { object-position:center 20%; }
.panorama-hero::before {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg,#0c2031ef 0%,#0c2031cf 36%,#1026386b 67%,#12283a21 100%);
}
.panorama-copy { position:relative; z-index:2; max-width:49rem; min-width:0; }
.panorama-kicker { margin:0 0 .7rem; color:inherit; font-size:.77rem; font-weight:720; letter-spacing:.13em; text-transform:uppercase; }
.panorama-copy .panorama-kicker { color:#ffcf9f; }
.public-shell .panorama-copy h1 {
  max-width:19ch; margin:0; color:#fff; font-size:clamp(2.06rem,4.25vw,3.8rem);
  font-weight:760; line-height:1.07; letter-spacing:-.038em; overflow-wrap:break-word;
  text-shadow:0 2px 12px #03101c5c;
}
.public-shell .panorama-hero--home h1 { font-size:clamp(2.15rem,4.8vw,4.15rem); }
.public-shell .panorama-copy h1::after { content:none; }
.panorama-copy .home-title-tail {
  display:block; margin-top:.42rem; font-size:.55em; font-weight:550; line-height:1.17; letter-spacing:-.025em;
}
.panorama-lead { max-width:42ch; margin:.84rem 0 0; color:#f1f6fc; font-size:clamp(.92rem,1.45vw,1.12rem); }
.panorama-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.56rem; margin-top:1.2rem; }
.panorama-actions .home-booking-link { display:contents; }
.public-shell .panorama-actions :where(.panorama-primary,.panorama-secondary,.home-booking-link a) {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:46px;
  padding:.55rem .86rem; border:1px solid #ffffff66; border-radius:.65rem;
  color:white; background:#152b3aa8; text-decoration:none; font-size:.91rem; font-weight:690; line-height:1.25;
}
.public-shell .panorama-actions .panorama-primary { color:#302014; background:#ffc48e; border-color:#ffc48e; }
.panorama-actions svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; }
.public-shell .panorama-actions a:hover { background:#24445b; color:#fff; }
.public-shell .panorama-actions .panorama-primary:hover { background:#ffd4ac; color:#302014; }

.public-shell .page-outline.wrap {
  max-width:1130px; margin:1rem auto 0; padding:.26rem .58rem .16rem;
  border:1px solid var(--exp-line); border-radius:.95rem; background:#fff;
}
.page-outline details[open] { display:flex; align-items:start; flex-wrap:wrap; gap:0 .72rem; }
.page-outline summary,.public-shell .journal-toc summary {
  display:flex; align-items:center; gap:.52rem; min-height:44px; padding:.45rem .6rem;
  color:var(--exp-deep); font-size:.85rem; font-weight:700; cursor:pointer; list-style:none;
}
.page-outline summary::-webkit-details-marker,.journal-toc summary::-webkit-details-marker { display:none; }
.page-outline summary::after,.journal-toc summary::after {
  content:""; width:.42rem; height:.42rem; flex:none; margin-inline-start:auto; border:solid currentColor;
  border-width:0 1.5px 1.5px 0; transform:rotate(45deg) translateY(-2px);
}
.page-outline details[open] summary::after,.journal-toc[open] summary::after { transform:rotate(225deg); }
.outline-count { padding:.08rem .34rem; border-radius:.32rem; background:#edf4f8; color:#466176; font-size:.72rem; }
.page-outline ol,.journal-toc ol { counter-reset:outline; list-style:none; }
.page-outline ol { flex:1 1 38rem; display:flex; flex-wrap:wrap; gap:.14rem .24rem; margin:0; padding:0; }
.page-outline li,.journal-toc li { counter-increment:outline; }
.page-outline a,.journal-toc nav a {
  display:flex; align-items:center; gap:.5rem; min-height:44px; padding:.35rem .65rem;
  border-radius:.5rem; color:var(--exp-deep); font-size:.82rem; line-height:1.25; text-decoration:none;
}
.page-outline a::before,.journal-toc nav a::before {
  content:counter(outline,decimal-leading-zero); flex:none; color:#547288;
  font-size:.71rem; font-variant-numeric:tabular-nums;
}
.journal-toc nav a[aria-current=location] { background:#e9f2f8; color:#173e59; }
.page-outline a { text-underline-offset:.24em; }
.page-outline a:is(:hover,:focus-visible,[aria-current=location]) { color:#173e59; text-decoration:underline; }
.page-outline a[aria-current=location]::before { color:#944a24; font-weight:700; }
.public-shell :is(.panorama-block,.page-outline) + .wrap > .prose:not(.journal-prose) {
  margin-block-start:clamp(.75rem,1.7vw,1.55rem); padding-block-start:clamp(.65rem,1.3vw,1rem);
}
.public-shell :is(.panorama-block,.page-outline) + .wrap > .prose:not(.journal-prose) > :first-child { margin-block-start:0; }
.public-shell :is(#faq,#lesson-tickets,#coach-profile,[data-trail-stop]) { scroll-margin-top:5.7rem; }
.journal-index { position:sticky; top:1rem; min-width:0; }
.journal-index .journal-toc { position:static; border-radius:.9rem; }
.journal-toc nav a { min-height:41px; }
:is(.page-outline,.journal-index) progress {
  display:block; width:100%; height:3px; appearance:none; border:0; border-radius:99px;
  background:#eaf1f6; color:#b56333; overflow:hidden;
}
:is(.page-outline,.journal-index) progress[hidden] { display:none; }
.page-outline progress { margin-top:.22rem; }
.journal-index progress { width:calc(100% - 1.4rem); margin:.45rem .7rem 0; }
:is(.page-outline,.journal-index) progress::-webkit-progress-bar { background:#eaf1f6; }
:is(.page-outline,.journal-index) progress::-webkit-progress-value { background:#b56333; }
:is(.page-outline,.journal-index) progress::-moz-progress-bar { background:#b56333; }

.public-shell .prose .page-faq {
  margin:clamp(1.65rem,4vw,3.25rem) 0; padding:clamp(.95rem,3vw,1.65rem);
  border:1px solid var(--exp-line); border-radius:1.05rem; background:#f9fcff;
}
.public-shell .prose .page-faq > h2 { margin:0 0 .7rem; }
.public-shell .prose .coach-lead { margin:0 0 1.35rem; }
.public-shell .prose .coach-lead .instructor-profile {
  align-items:center; grid-template-columns:minmax(12rem,.72fr) minmax(0,1.28fr);
  margin:0; padding:clamp(.85rem,2.7vw,1.7rem); background:linear-gradient(135deg,#ecf5fa,#fff 70%);
}
.public-shell .prose .coach-lead .instructor-profile-photo { width:100%; }
.public-shell .prose .coach-lead .instructor-profile-photo img { width:100%; max-height:345px; }
.public-shell .prose .coach-lead h2 { margin:0; font-size:clamp(1.5rem,3vw,2.22rem); }
.public-shell .prose .coach-specialty { margin:.3rem 0 .95rem; color:#255f83; font-size:.86rem; font-weight:720; }
.public-shell .prose .coach-archive-action { margin-bottom:0; }
.public-shell .prose .booking-section.booking-inline {
  width:100%; margin:1.24rem 0 1.8rem; border-top:3px solid #6a99b6;
  background:linear-gradient(155deg,#f2f8fc,#fff 57%); box-shadow:none;
}
.public-shell .prose .booking-inline .booking-form { color:var(--exp-ink); }
.public-shell .prose .booking-inline .booking-intro h2 { margin:0 0 .24rem; }
.public-shell .prose .booking-inline .booking-intro p { margin:.22rem 0 .58rem; }

.public-shell .prose .lesson-tickets {
  margin:1.55rem 0; padding:clamp(1rem,3.8vw,1.75rem); border:1px solid #d7e4ed;
  border-radius:1.1rem; background:#edf5fa;
}
.public-shell .prose .lesson-tickets h2 { margin:0 0 .48rem; }
.public-shell .prose .lesson-ticket-intro { max-width:72ch; margin:.25rem 0 1rem; font-size:.9rem; }
.lesson-ticket-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.lesson-ticket-card {
  display:grid; align-content:start; justify-items:start; gap:.48rem; min-width:0; padding:clamp(.85rem,2.3vw,1.3rem);
  border:1px solid #dce8ee; border-radius:.85rem; background:#fff;
}
.lesson-ticket-card--ski { border-top:3px solid #5c96b6; }
.lesson-ticket-card--walk { border-top:3px solid #c8905b; }
.public-shell .prose .lesson-ticket-card :is(h3,p) { margin:0; }
.public-shell .prose .lesson-ticket-card h3 { font-size:1.14rem; }
.public-shell .prose .lesson-ticket-card p { font-size:.89rem; }
.public-shell .prose .ticket-condition { margin:.78rem 0 0; font-size:.83rem; }
.resort-ticket-choices { display:grid; align-self:stretch; gap:.45rem; margin-top:auto; }
.resort-ticket-card { display:flex; flex-direction:column; }
.resort-ticket-copy { display:flex; flex:1; padding:clamp(.85rem,2.2vw,1.25rem); }
.public-shell .prose .resort-ticket-card figure img { height:94px; padding:.8rem 1.05rem; }
.public-shell .prose :is(.ticket-choose,.ticket-direct) {
  display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.48rem .72rem;
  border:1px solid #ccdfea; border-radius:.57rem; background:#f1f7fb; color:#234e6a;
  font-size:.86rem; font-weight:670; line-height:1.26; text-align:center; text-decoration:none;
}
.public-shell .prose .ticket-choose { border-color:#225b7d; background:#225b7d; color:#fff; }
.public-shell .prose .ticket-choose:hover { background:#164562; }
.public-shell .prose .ticket-direct:hover { background:#e0edf6; }
.public-shell .prose .lesson-ticket-card .ticket-direct {
  justify-content:start; padding-inline:.22rem; border-color:transparent; background:transparent; text-decoration:underline;
}

.public-shell .prose .contact-caption { margin:1.35rem 0 .6rem; color:var(--exp-deep); font-weight:660; }
.public-shell .contact-actions--expanded { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; margin:0 0 1.5rem; }
.public-shell :is(.contact-actions--expanded,.fitness-contacts) .contact-icon--labeled,
.public-shell .prose .contact-icon--standalone {
  display:inline-flex; gap:.55rem; justify-content:center; width:auto; min-height:48px; height:auto;
  padding:.52rem .72rem; border-radius:.68rem; text-decoration:none; font-size:.85rem; font-weight:660;
}
.public-shell :is(.contact-actions--expanded,.fitness-contacts) .contact-icon svg,
.public-shell .prose .contact-icon--standalone svg { flex:none; width:20px; height:20px; }
.public-shell .footer-social { gap:.62rem; }
.public-shell .contacts-board {
  display:grid; grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr); gap:.82rem; margin:1.2rem auto;
}
.contact-reach,.contact-address { min-width:0; padding:clamp(1rem,3.15vw,1.9rem); border:1px solid var(--exp-line); border-radius:1rem; background:#fff; }
.contact-reach-meta { display:flex; flex-wrap:wrap; gap:.15rem .85rem; }
.contact-reach-meta span:last-child { white-space:nowrap; }
.contact-address { background:linear-gradient(145deg,#e6f1f8,#f7fbfd); }
.contact-reach h2,.contact-address h3 { margin:0 0 .45rem; }
.contact-reach .panorama-kicker { color:#286085; }
.contact-reach > p:not(.panorama-kicker),.contact-address p { margin:.35rem 0 .66rem; color:var(--exp-muted); }
.contact-reach-links { display:grid; justify-items:start; gap:.22rem; margin:.6rem 0 .85rem; }
.contact-reach-links a { display:inline-flex; align-items:center; gap:.54rem; min-height:38px; font-weight:650; overflow-wrap:anywhere; }
.contact-reach-links svg { flex:none; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; }
.contacts-board .contact-actions { margin:0; }
.public-shell .journal-prose .journal-note {
  margin:0 0 1.04rem; padding:.85rem 1rem; border:1px solid #e8d7c1; border-inline-start:3px solid #ab6633;
  border-radius:.76rem; color:#563b2a; background:#fff5e9;
}
.public-shell .journal-prose .journal-note p { margin:.28rem 0 0; color:#5b4639; font-size:.91rem; }
.journal-note-links { display:flex; gap:.32rem .88rem; flex-wrap:wrap; margin-top:.42rem; font-size:.84rem; }

@media (min-width:821px) and (max-width:1060px) {
  .expedition-header .masthead { gap:.45rem; }
  .expedition-header .main-navigation { gap:.13rem; }
  .expedition-header .main-navigation > a,.expedition-header .nav-group > summary { padding-inline:.28rem; font-size:.8rem; }
}
@media (max-width:900px) {
  .journal-index { position:static; }
  .page-outline details[open] { display:block; }
  .page-outline ol { padding:0 .24rem .28rem; }
}
@media (max-width:680px) {
  .public-shell .panorama-block.wrap { width:calc(100% - 24px); margin-top:.75rem; }
  .panorama-crumbs { margin-bottom:.42rem; }
  .panorama-hero,.panorama-hero--home {
    align-items:end; min-height:clamp(310px,88vw,402px); padding:6rem 1.06rem 1.25rem;
  }
  .panorama-hero::before {
    background:linear-gradient(180deg,#10263812 2%,#0c203151 33%,#0c2031cf 63%,#0c2031f7 100%);
  }
  .public-shell .panorama-copy h1 { font-size:clamp(1.68rem,7.1vw,2.4rem); max-width:23ch; }
  .panorama-kicker { margin-bottom:.44rem; font-size:.68rem; letter-spacing:.095em; }
  .panorama-lead { margin-top:.55rem; font-size:.88rem; line-height:1.4; }
  .panorama-actions { margin-top:.8rem; gap:.4rem; }
  .public-shell .panorama-actions :where(.panorama-primary,.panorama-secondary,.home-booking-link a) { padding-inline:.64rem; font-size:.82rem; }
  .public-shell .page-outline.wrap { width:calc(100% - 24px); }
  .page-outline ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-outline a { padding-inline:.42rem; }
  .public-shell .prose .coach-lead .instructor-profile { grid-template-columns:minmax(0,1fr); align-items:start; }
  .public-shell .prose .coach-lead .instructor-profile-photo { width:100%; max-width:none; }
  .public-shell .prose .coach-lead .instructor-profile-photo img { height:clamp(170px,52vw,295px); object-position:center 33%; }
  .lesson-ticket-grid,.public-shell .contacts-board { grid-template-columns:minmax(0,1fr); }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .panorama-actions a,.contact-actions--expanded a,.lesson-ticket-card,.resort-ticket-card {
    transition:transform .17s ease,background-color .17s ease,box-shadow .17s ease;
  }
  .panorama-actions a:hover,.contact-actions--expanded a:hover { transform:translateY(-2px); }
  .lesson-ticket-card:focus-within,.resort-ticket-card:focus-within { box-shadow:0 8px 21px #173b5220; }
}


.public-shell .prose .camp-mission {
  margin:1.35rem 0; padding:clamp(.92rem,2.5vw,1.45rem); border:1px solid #d9e6ee;
  border-radius:1rem; background:#eef5f9;
}
.public-shell .prose .camp-mission h2 { margin:0 0 .72rem; }
.public-shell .prose .camp-mission ul {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.54rem;
  margin:0; padding:0; list-style:none;
}
.public-shell .prose .camp-mission li:not(.empty-heading-anchor) {
  display:grid; grid-template-columns:1.3rem minmax(0,1fr); align-items:start; gap:.48rem;
  position:relative; margin:0; padding:.7rem .64rem; border:1px solid #dce9f0; border-radius:.65rem;
  background:#fff; color:#24465e; font-size:.91rem; line-height:1.44;
}
.camp-mission li:not(.empty-heading-anchor)::before {
  content:""; width:1.28rem; height:1.28rem; border-radius:50%; background:#e0f1ea;
}
.camp-mission li:not(.empty-heading-anchor)::after {
  content:""; position:absolute; top:1.02rem; inset-inline-start:1rem; width:.52rem; height:.28rem;
  border:solid #216e53; border-width:0 0 2px 2px; transform:rotate(-45deg);
}
@media(max-width:740px) {
  .public-shell .prose .camp-mission ul { grid-template-columns:minmax(0,1fr); }
}

.public-shell .prose .camp-shifts { margin:1.35rem 0; }
.public-shell .prose .camp-shifts > h2 { margin:0 0 .4rem; }
.public-shell .prose .camp-shifts > p { margin:.35rem 0 .75rem; }
.camp-shift-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,9.6rem),1fr)); gap:.54rem; }
.camp-shift {
  display:flex; flex-direction:column; align-items:flex-start; min-width:0; gap:.24rem;
  padding:.65rem .73rem; border:1px solid #dbe8ef; border-radius:.68rem; background:#f8fcff;
}
.public-shell .prose .camp-shift h3 { margin:0; color:#284c65; font-size:.83rem; font-weight:680; }
.public-shell .prose .camp-shift p { margin:0; }
.public-shell .prose .camp-shift .camp-shift-date { color:#142e43; font-size:1.02rem; font-variant-numeric:tabular-nums; font-weight:690; }
.public-shell .prose .camp-shift p:last-child { margin-top:auto; padding-top:.14rem; }
.public-shell .prose .camp-shift a {
  display:inline-flex; align-items:center; min-height:44px; padding:.28rem .5rem; font-size:.81rem;
}

/* Lessons, direct contact and the mobile booking flow. */
.public-shell .header-utility {
  background:linear-gradient(105deg,#16384e,#10283b 62%);
  border-bottom:1px solid #24475c;
}
.header-utility-inner { color:#f3f8fc; }
.header-utility-inner .header-hours { color:#ebf6fd; font-weight:560; }
.header-utility-inner .header-hours svg { color:#ffbf83; }
.header-utility-inner :is(.header-email,.header-phone):hover { color:#ffcb98; }
.header-utility-inner .header-phone { padding-inline-start:.82rem; border-inline-start:1px solid #ffffff38; }
.header-utility .header-socials { gap:.32rem; }
.header-utility .header-socials .contact-icon { border-color:#ffffff24; }
.header-utility .header-socials .contact-icon:hover { box-shadow:0 0 0 2px #f1f8fd60; }

.public-shell .prose .winter-rates {
  margin:.9rem 0 1.55rem; padding:clamp(.76rem,3.1vw,1.62rem);
  border:1px solid #c2dbe8; border-radius:1.15rem; background:#e8f2f8;
}
.winter-rates .season-switch { background:#d8e9f4; border:1px solid #c5dce9; }
.public-shell .winter-rates .season-tab {
  min-height:44px; padding:.45rem .75rem; color:#19374b; font-size:.91rem;
}
.public-shell .winter-rates .season-tab[aria-selected="true"] { background:#1a4c69; color:#fff; }
.public-shell .winter-rates .season-tab:nth-child(2)[aria-selected="true"] { background:#77451f; color:#fff8ee; }
.public-shell .prose .winter-archive-note {
  margin:.74rem 0 .55rem; color:#1b2025; font-size:.88rem; font-weight:600;
}
.public-shell .prose .winter-rates .season-dates { margin:.4rem 0 .75rem; color:#2a4658; font-size:.84rem; }
.winter-rates .rate-grid { gap:clamp(.42rem,1.5vw,.74rem); }
.public-shell .prose .winter-rates .rate-card {
  display:grid; align-content:start; min-width:0; padding:clamp(.66rem,2vw,1.13rem);
  border-color:#c8dce8; border-top:3px solid #72a7c3; border-radius:.78rem; box-shadow:none;
}
.public-shell .prose .winter-rates :is(.season-panel:last-child,details:last-child) .rate-card {
  background:#fffbf5; border-color:#e9d9c6; border-top-color:#c98041;
}
.public-shell .prose .winter-rates .rate-card h3 { font-size:clamp(.82rem,1.5vw,1rem); }
.public-shell .prose .winter-rates .activity-amount { color:#182b39; }

.public-shell .prose .booking-lesson.booking-inline,
.public-shell .booking-lesson.booking-inline {
  width:min(100%,46rem); margin:1.12rem auto 1.7rem; padding:clamp(.95rem,3vw,1.65rem);
  border:1px solid #cbdde8; border-top:4px solid #2d6e92; border-radius:1.02rem;
  background:#fff; box-shadow:0 8px 24px #1431480e;
}
.public-shell .prose .booking-lesson--summer.booking-inline { border-top-color:#bd7942; }
.public-shell .booking-lesson .booking-intro { padding-bottom:.75rem; }
.public-shell .booking-lesson .booking-intro h2 { font-size:clamp(1.36rem,2.5vw,1.86rem); }
.public-shell .booking-lesson .booking-plan {
  min-width:0; margin:0; padding:.54rem .68rem .72rem;
  border:1px solid #d7e4ed; border-radius:.68rem; background:#f2f7fa;
}
.booking-plan legend { padding:0 .3rem; color:#1d4d67; font-size:.81rem; font-weight:690; }
.public-shell .booking-lesson .booking-plan .booking-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }
.public-shell .booking-lesson .booking-identity { grid-template-columns:repeat(2,minmax(0,1fr)); }
.public-shell .booking-lesson .booking-form :is(input:not([type=checkbox]),textarea,select) {
  min-width:0; min-height:44px; max-width:100%; margin-top:.22rem; padding:.38rem .55rem;
  border-color:#bfd3e0; background:#fff;
}
.booking-lesson input[type=date]::-webkit-date-and-time-value { text-align:left; min-height:1.15em; }
.booking-date-control { display:block; position:relative; }
.public-shell .booking-lesson .booking-form .booking-date-control input[type=date] { padding-inline-end:1.92rem; }
.booking-date-control svg {
  position:absolute; inset-inline-end:.58rem; top:50%; transform:translateY(-50%);
  width:17px; height:17px; fill:none; stroke:#245471; stroke-width:1.65; pointer-events:none;
}
.booking-date-control input::-webkit-calendar-picker-indicator { opacity:0; }
.booking-date-hint {
  position:absolute; inset-inline-start:.62rem; top:50%; transform:translateY(-50%); display:none;
  color:#4a6273; font-size:.82rem; pointer-events:none;
}
.booking-date-control input:invalid:not(:focus):not([data-has-value]) + .booking-date-hint { display:block; }
.booking-date-control input:invalid:not(:focus):not([data-has-value])::-webkit-datetime-edit { opacity:0; }
.public-shell .booking-lesson .booking-details summary { font-size:.83rem; }
.public-shell .booking-lesson .booking-status { margin:0; }
.public-shell .booking-lesson .booking-agreement label { line-height:1.4; }

.public-shell .prose .coach-lead {
  padding:clamp(.88rem,2.65vw,1.7rem); border:1px solid #cddfea; border-radius:1.08rem;
  background:linear-gradient(148deg,#e9f3fa 0%,#fff 70%);
}
.coach-lead-heading { max-width:75ch; }
.public-shell .prose .coach-lead-heading .coach-specialty { margin:0 0 .25rem; }
.public-shell .prose .coach-lead-heading h2 { margin:0 0 .36rem; }
.public-shell .prose .coach-lead-heading .coach-introduction { margin:0 0 1rem; }
.public-shell .prose .coach-lead .instructor-profile {
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); align-items:start;
  margin-top:.8rem; padding:0; border:0; background:transparent; border-radius:0;
}
.public-shell .prose .coach-lead .instructor-profile-photo img {
  width:100%; height:auto; max-height:450px; aspect-ratio:4/5;
}
.public-shell .prose .coach-lead .instructor-profile-copy ul { margin:.5rem 0 .62rem; padding-inline-start:1.18rem; }
.public-shell .prose .coach-lead .coach-lift {
  margin:0 0 .65rem; padding:.68rem .8rem; border-inline-start:3px solid #b7763e;
  border-radius:.55rem; background:#fff1df; color:#4f331c;
}
.coach-lift span { display:block; margin-top:.13rem; font-size:.85rem; }
.public-shell .prose .school-lead {
  padding:clamp(.84rem,2.5vw,1.45rem); border:1px solid #d2e4ed; border-radius:1rem; background:#ecf5fa;
}
.public-shell .prose .school-lead h2 { margin-top:0; }

.public-shell .prose .contact-callout {
  margin:1.2rem 0; padding:clamp(.8rem,2.4vw,1.16rem); text-align:center;
  border:1px solid #d1e2ee; border-radius:.92rem; background:#edf5fa;
}
.public-shell .prose .contact-callout :is(.contact-caption,.editorial-note) { margin:0 0 .55rem; }
.public-shell .prose .contact-actions--expanded { justify-content:center; gap:.56rem .68rem; }
.public-shell .prose .contact-callout .contact-actions { margin:0; }
.public-shell .contact-actions--expanded .contact-icon--labeled { min-height:46px; padding:.5rem .78rem; }
.public-shell .prose .contact-requisites {
  margin:1.14rem 0; padding:clamp(.84rem,2.4vw,1.5rem); border:1px solid #d2e1eb;
  border-radius:.9rem; background:#fff;
}
.public-shell .prose .contact-requisites h2 { margin:0 0 .72rem; }
.contact-requisites dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.72rem 1rem; margin:0; }
.contact-requisites dl > div { min-width:0; padding:.55rem .65rem; border-radius:.5rem; background:#f0f6fa; }
.contact-requisites dt { color:#3d5669; font-size:.82rem; }
.contact-requisites dd { margin:.15rem 0 0; font-size:.95rem; color:#172939; font-weight:620; overflow-wrap:anywhere; }

.public-shell .prose .yandex-panel {
  width:min(100%,42rem); max-width:none; margin:.9rem auto 1.6rem;
  padding:.8rem; border:1px solid #d2e1eb; border-radius:.95rem; background:#fff;
}
.yandex-panel .widget-intro {
  display:flex; justify-content:space-between; align-items:center; gap:.65rem 1rem;
  padding:.68rem; border-radius:.58rem; background:#eef5fa;
}
.yandex-panel .widget-intro[hidden] { display:none; }
.widget-brand { color:#20465f; font-weight:690; }
.public-shell .prose .yandex-panel .widget-copy p { text-align:start; margin:.17rem 0; font-size:.88rem; }
.widget-cookie,.widget-external { font-size:.83rem; text-underline-offset:.16em; }
.public-shell .prose .yandex-panel .widget-open { flex:none; min-height:44px; margin:0; background:#1b4f70; color:#fff; }
.public-shell .prose .yandex-panel .widget-open:hover { background:#133d57; }

.lesson-levels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; margin:.85rem 0; }
.public-shell .prose .lesson-level {
  min-width:0; padding:clamp(.72rem,2.2vw,1.16rem); border:1px solid #d5e2eb; border-radius:.76rem; background:#fff;
}
.lesson-level:nth-child(2) { background:#edf5fa; }
.lesson-level:nth-child(3) { background:#fff5e8; }
.lesson-level-number { display:inline-grid; place-items:center; min-width:2.08rem; min-height:2.08rem; color:#194d67; background:#e2eff6; border-radius:.5rem; font-size:.83rem; font-weight:690; }
.public-shell .prose .lesson-level h3 { margin:.48rem 0 .35rem; }
.public-shell .prose .lesson-level p { margin:0; font-size:.9rem; line-height:1.55; }
.public-shell .prose .lesson-skills { display:flex; flex-wrap:wrap; gap:.38rem; list-style:none; padding:0; }
.public-shell .prose .lesson-skills li { margin:0; padding:.24rem .53rem; border-radius:.5rem; color:#324e62; background:#e9f2f8; font-size:.82rem; }

@media (max-width:820px), (pointer:coarse) and (max-width:960px) {
  .mobile-ready .public-shell .header-utility { background:#143146; border-top:0; }
  .mobile-ready .header-utility-inner .header-email { color:#fff; border-color:#ffffff40; background:#22465e; }
  .mobile-ready .mobile-contact {
    position:sticky; top:max(.32rem,env(safe-area-inset-top)); z-index:30;
    background:#fcfdff; border:1px solid #c9dce8; box-shadow:0 4px 15px #132f4324;
  }
  .mobile-ready .mobile-menu-utility a[href$="#zayavka"] { grid-column:1/-1; }
}
@media (max-width:700px) {
  .public-shell .prose .coach-lead .instructor-profile { grid-template-columns:minmax(0,1fr); }
  .public-shell .prose .coach-lead .instructor-profile-photo img { height:clamp(228px,69vw,385px); aspect-ratio:auto; }
  .lesson-levels { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:540px) {
  .public-shell .booking-lesson .booking-plan .booking-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-lesson--winter .booking-plan label:has(> select) { grid-column:1/-1; }
  .public-shell .booking-lesson .booking-form :is(input:not([type=checkbox]),textarea,select) { font-size:1rem; }
  .public-shell .booking-lesson .booking-identity { grid-template-columns:minmax(0,1fr); }
  .winter-rates .rate-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-requisites dl { grid-template-columns:minmax(0,1fr); }
  .yandex-panel .widget-intro { flex-direction:column; align-items:stretch; }
  .public-shell .prose .yandex-panel .widget-open { width:100%; }
}
@media (max-width:365px) {
  .booking-plan label:nth-of-type(n+3) { grid-column:1/-1; }
}
@media (prefers-reduced-motion:no-preference) {
  .winter-rates .season-panel:not([hidden]) { animation:season-enter .18s ease-out; }
  @keyframes season-enter { from { opacity:.55; transform:translateY(3px); } to { opacity:1; transform:none; } }
}

/* Ticket catalogue, scoped to the six public resort pages. */
.public-shell .ticket-page[data-ticket-resort] {
  --ticket-accent:#245574; --ticket-hover:#153c56; --ticket-ink:#132940;
  --ticket-muted:#43576c; --ticket-soft:#eef5fa; --ticket-edge:#d9e7f1;
  --ticket-ring:#7ca7c7; --ticket-shadow:0 14px 32px #192b4a0c;
}
.public-shell .prose.ticket-page[data-ticket-resort] { max-width:1160px; padding-inline:clamp(0rem,2.2vw,1.75rem); }
.public-shell .ticket-page[data-ticket-resort=rosa],
.public-shell .ticket-page [data-resort=rosa] {
  --ticket-accent:#244e70; --ticket-hover:#173c58; --ticket-ink:#182d41;
  --ticket-muted:#435969; --ticket-soft:#eaf2f7; --ticket-edge:#d7e6ee; --ticket-ring:#85a9bf;
}
.public-shell .ticket-page[data-ticket-resort=polyana],
.public-shell .ticket-page [data-resort=polyana] {
  --ticket-accent:#0d6295; --ticket-hover:#084b75; --ticket-ink:#122f48;
  --ticket-muted:#425b70; --ticket-soft:#edf6fc; --ticket-edge:#d5e7f2; --ticket-ring:#79aecd;
}
.public-shell .ticket-page[data-ticket-resort=gazprom],
.public-shell .ticket-page [data-resort=gazprom] {
  --ticket-accent:#006858; --ticket-hover:#045346; --ticket-ink:#153831;
  --ticket-muted:#435c59; --ticket-soft:#ecf6f2; --ticket-edge:#d4e8df; --ticket-ring:#72b0a2;
}
.public-shell main:has(.ticket-page[data-ticket-resort]) > .panorama-block .panorama-hero {
  min-height:clamp(258px,29vw,390px);
}
.public-shell main:has(.ticket-page[data-ticket-resort]) > .panorama-block .panorama-copy h1 {
  max-width:24ch; font-size:clamp(1.8rem,4vw,3.45rem);
}
.public-shell .ticket-page :is(.ticket-feature,.ticket-instructions,.ticket-catalog,.ticket-zones,.ticket-tariffs,.resort-ticket-card)[id] {
  scroll-margin-top:6rem;
}
.public-shell .ticket-page :is(.ticket-instructions,.ticket-catalog,.ticket-zones,.ticket-tariffs) {
  margin-block:clamp(1.8rem,4vw,3.4rem);
}
.public-shell .ticket-page :is(.ticket-instructions,.ticket-catalog,.ticket-zones,.ticket-tariffs) > h2 {
  margin:0 0 .45rem; color:var(--ticket-ink); font-size:clamp(1.38rem,2.9vw,2.12rem); font-weight:730;
}
.public-shell .ticket-page :is(.ticket-caption,.ticket-intro) {
  margin:.35rem 0 .8rem; color:var(--ticket-muted); font-size:.94rem; line-height:1.56;
}
.public-shell .ticket-page :is(.ticket-feature,.ticket-product,.ticket-archive,.ticket-partner,.ticket-tariff,.ticket-zones > div) {
  min-width:0; border:1px solid var(--ticket-edge); border-radius:clamp(.85rem,1.6vw,1.25rem);
}
.public-shell .ticket-page .ticket-partner {
  display:grid; grid-template-columns:2.3rem minmax(0,1fr); gap:.7rem;
  align-items:start; margin:0 0 1rem; padding:.75rem clamp(.8rem,2vw,1.25rem); background:var(--ticket-soft);
}
.public-shell .ticket-page .ticket-partner-mark {
  display:grid; place-items:center; width:2.25rem; aspect-ratio:1; border-radius:50%;
  background:#fff; border:1px solid var(--ticket-edge); color:var(--ticket-accent); font-weight:760;
}
.public-shell .ticket-page .ticket-partner strong { display:block; color:var(--ticket-ink); font-size:.97rem; }
.public-shell .ticket-page .ticket-partner p {
  margin:.14rem 0 0; color:var(--ticket-muted); font-size:.87rem; line-height:1.44;
}
.public-shell .ticket-page .ticket-feature {
  display:grid; align-items:stretch; margin:0 0 1rem; overflow:hidden;
  background:linear-gradient(125deg,#fff 23%,var(--ticket-soft) 100%); box-shadow:var(--ticket-shadow);
}
.public-shell .ticket-page .ticket-feature--photo { grid-template-columns:minmax(0,1fr) minmax(0,.9fr); }
.public-shell .ticket-page .ticket-feature-copy {
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
  gap:.62rem; padding:clamp(1rem,3.6vw,2.6rem); min-width:0;
}
.public-shell .ticket-page .ticket-feature h2 {
  margin:0; color:var(--ticket-ink); font-size:clamp(1.35rem,3vw,2.16rem); font-weight:750; text-wrap:balance;
}
.public-shell .ticket-page .ticket-feature p { max-width:48ch; margin:0; color:var(--ticket-muted); line-height:1.55; }
.public-shell .ticket-page :is(.ticket-feature,.ticket-product) > .photo-trigger { width:100%; border-radius:0; }
.public-shell .ticket-page .ticket-feature > :is(img,.photo-trigger) {
  min-width:0; height:100%;
}
.public-shell .ticket-page .ticket-feature > img,
.public-shell .ticket-page .ticket-feature > .photo-trigger > img {
  display:block; width:100%; height:100%; min-height:12rem; max-height:24rem;
  border-radius:0; object-fit:cover; object-position:center 50%;
}
.public-shell .ticket-page .ticket-actions {
  display:flex; flex-wrap:wrap; align-items:center; gap:.58rem; margin-top:.45rem;
}
.public-shell .ticket-page :is(.ticket-buy,.ticket-secondary) {
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem; max-width:100%;
  min-height:46px; padding:.54rem .93rem; border:1px solid transparent; border-radius:.67rem;
  font-size:.93rem; font-weight:710; line-height:1.26; text-align:center; text-decoration:none;
}
.public-shell .ticket-page .ticket-buy { color:#fff; background:var(--ticket-accent); }
.public-shell .ticket-page .ticket-buy:hover { color:#fff; background:var(--ticket-hover); }
.public-shell .ticket-page .ticket-secondary {
  color:var(--ticket-ink); background:#fff; border-color:var(--ticket-edge);
}
.public-shell .ticket-page .ticket-secondary:hover { background:var(--ticket-soft); border-color:var(--ticket-ring); }
.public-shell .ticket-page :is(.ticket-buy,.ticket-secondary,.ticket-choose,.ticket-direct,.ticket-archive > summary):focus-visible {
  outline:2px solid var(--ticket-accent); outline-offset:3px;
}
.public-shell .ticket-page .ticket-buy > span,.public-shell .ticket-page .ticket-secondary > span {
  flex:none; font-size:1.05em; line-height:1; opacity:.87;
}
.public-shell .ticket-page :is(.ticket-product-grid,.ticket-gazprom-grid,.ticket-tariff-grid,.ticket-screen-grid,.ticket-zones) {
  display:grid; gap:clamp(.58rem,1.8vw,1.02rem);
}
.public-shell .ticket-page .ticket-product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:1rem; }
.public-shell .ticket-page .ticket-product {
  display:flex; flex-direction:column; overflow:hidden; background:#fff; box-shadow:var(--ticket-shadow);
}
.public-shell .ticket-page .ticket-product > img,
.public-shell .ticket-page .ticket-product > .photo-trigger > img {
  display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; border-radius:0; background:var(--ticket-soft);
}
.public-shell .ticket-page .ticket-product-copy {
  display:flex; flex-direction:column; align-items:flex-start; flex:1; gap:.45rem;
  padding:clamp(.82rem,2vw,1.25rem); min-width:0;
}
.public-shell .ticket-page .ticket-product h3,.public-shell .ticket-page .ticket-tariff h3 {
  margin:0; color:var(--ticket-ink); font-size:clamp(1.03rem,1.9vw,1.3rem); font-weight:720; line-height:1.23;
}
.public-shell .ticket-page .ticket-product p {
  margin:0 0 .42rem; color:var(--ticket-muted); font-size:.9rem; line-height:1.5;
}
.public-shell .ticket-page .ticket-product .ticket-buy { margin-top:auto; }
.public-shell .ticket-page .ticket-instructions > .ticket-caption { margin-bottom:1.05rem; }
.public-shell .ticket-page .ticket-steps {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(.55rem,1.8vw,1rem); margin:0; padding:0;
}
.public-shell .ticket-page .ticket-steps--five { grid-template-columns:repeat(5,minmax(0,1fr)); }
.public-shell .ticket-page .ticket-steps > li {
  display:grid; grid-template-columns:minmax(0,1fr); align-content:start; gap:.43rem;
  padding:clamp(.72rem,2.1vw,1.15rem); border-color:var(--ticket-edge); border-radius:.9rem; background:#fff;
}
.public-shell .ticket-page .ticket-steps > li::before {
  width:2.65rem; height:2.65rem; margin:0 0 .2rem;
  border:1px solid var(--ticket-ring); background:var(--ticket-soft); color:var(--ticket-accent);
  font-size:1.11rem; font-weight:680; font-variant-numeric:tabular-nums;
}
.public-shell .ticket-page .ticket-steps strong { color:var(--ticket-ink); font-size:.94rem; line-height:1.26; }
.public-shell .ticket-page .ticket-steps p { margin:0; color:var(--ticket-muted); font-size:.86rem; line-height:1.49; }
.public-shell .ticket-page .ticket-archive {
  margin-block:1rem; padding:0 clamp(.8rem,2.25vw,1.25rem); background:#fff;
}
.public-shell .ticket-page .ticket-archive > summary {
  display:flex; align-items:center; justify-content:space-between; gap:.9rem; min-height:48px;
  color:var(--ticket-ink); font-weight:680; line-height:1.3; list-style:none; cursor:pointer;
}
.public-shell .ticket-page .ticket-archive > summary::-webkit-details-marker { display:none; }
.public-shell .ticket-page .ticket-archive > summary::after {
  content:""; flex:none; width:.48rem; height:.48rem; margin:.15rem .25rem .3rem 0;
  border:solid var(--ticket-accent); border-width:0 2px 2px 0; transform:rotate(45deg);
}
.public-shell .ticket-page .ticket-archive[open] > summary { border-bottom:1px solid var(--ticket-edge); }
.public-shell .ticket-page .ticket-archive[open] > summary::after { transform:rotate(225deg); }
.public-shell .ticket-page .ticket-archive > h2 { margin-top:1rem; font-size:1.21rem; }
.public-shell .ticket-page .ticket-archive[open] { padding-bottom:1rem; }
.public-shell .ticket-page .ticket-archive .ticket-old-rates { margin-bottom:.4rem; }
.public-shell .ticket-page .ticket-gazprom-grid,.public-shell .ticket-page .ticket-zones {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.public-shell .ticket-page .ticket-gazprom-grid .ticket-feature { margin:0; }
.public-shell .ticket-page .ticket-gazprom-grid .ticket-feature-copy { justify-content:flex-start; }
.public-shell .ticket-page .ticket-gazprom-grid .ticket-actions { margin-top:auto; padding-top:.45rem; }
.public-shell .ticket-page .ticket-gazprom-grid .ticket-feature h2 { font-size:clamp(1.2rem,2.3vw,1.65rem); }
.public-shell .ticket-page .ticket-zones > :is(h2,p) { grid-column:1/-1; margin:0; }
.public-shell .ticket-page .ticket-zones > div {
  padding:.72rem .94rem; background:var(--ticket-soft);
}
.public-shell .ticket-page .ticket-zones > div > :is(h3,p) { margin:.14rem 0; }
.public-shell .ticket-page .ticket-price-note {
  margin:.7rem 0 0; padding:.72rem .95rem; border-inline-start:3px solid var(--ticket-ring);
  border-radius:.45rem; color:var(--ticket-ink); background:var(--ticket-soft); font-size:.93rem;
}
.public-shell .ticket-page .ticket-tariff-grid {
  grid-template-columns:repeat(4,minmax(0,1fr)); margin:.9rem 0 .75rem;
}
.public-shell .ticket-page .ticket-tariff { padding:.85rem; background:#fff; }
.public-shell .ticket-page .ticket-tariff p { margin:.45rem 0 0; font-size:.91rem; line-height:1.34; }
.public-shell .ticket-page .ticket-tariff p:first-of-type { color:var(--ticket-ink); font-weight:660; }
.public-shell .ticket-page .ticket-screen-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.public-shell .ticket-page .ticket-screen-grid figure { margin:0; padding:.32rem; border:1px solid var(--ticket-edge); border-radius:.65rem; }
.public-shell .ticket-page .ticket-screen-grid figure img {
  display:block; width:100%; height:auto; aspect-ratio:1/2; max-height:28rem; object-fit:contain;
}
.public-shell .ticket-page .ticket-hub-nav {
  display:flex; flex-wrap:wrap; gap:.43rem; margin:.1rem 0 .85rem;
}
.public-shell .ticket-page .ticket-hub-nav .ticket-secondary {
  min-height:44px; padding:.45rem .73rem; background:var(--ticket-soft); font-size:.84rem;
}
.public-shell .ticket-page .ticket-hub-nav .ticket-secondary:hover { color:var(--ticket-accent); border-color:var(--ticket-ring); }
.public-shell .ticket-page .resort-ticket-grid { gap:clamp(.65rem,1.9vw,1rem); }
.public-shell .ticket-page .resort-ticket-card { border-color:var(--ticket-edge); box-shadow:var(--ticket-shadow); }
.public-shell .ticket-page .resort-ticket-card:target { border-color:var(--ticket-accent); box-shadow:0 0 0 3px var(--ticket-soft); }
.public-shell .ticket-page .resort-ticket-card figure {
  width:100%; border-bottom:1px solid var(--ticket-edge); background:var(--ticket-soft);
}
.public-shell .ticket-page .resort-ticket-card figure img {
  height:clamp(72px,8vw,110px); max-height:none; padding:.8rem 1.4rem; background:transparent;
}
.public-shell .ticket-page .resort-ticket-copy {
  display:flex; gap:.48rem; padding:clamp(.84rem,2vw,1.26rem);
}
.public-shell .ticket-page .resort-ticket-choices {
  width:100%; grid-template-columns:minmax(0,1fr); gap:.42rem; padding-top:.32rem;
}
.public-shell .ticket-page .resort-ticket-copy h3 { color:var(--ticket-ink); font-size:clamp(1.18rem,2vw,1.42rem); font-weight:730; }
.public-shell .ticket-page[data-ticket-resort] .resort-ticket-copy .ticket-choose {
  color:#fff; background:var(--ticket-accent); border-color:var(--ticket-accent);
}
.public-shell .ticket-page[data-ticket-resort] .resort-ticket-copy .ticket-choose:hover { background:var(--ticket-hover); border-color:var(--ticket-hover); }
.public-shell .ticket-page .resort-ticket-copy .ticket-direct {
  color:var(--ticket-ink); background:var(--ticket-soft); border-color:var(--ticket-edge);
}
.public-shell .ticket-page .resort-ticket-copy .ticket-direct:hover { border-color:var(--ticket-ring); }

@media (max-width:900px) {
  .public-shell .ticket-page .ticket-steps--five { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:720px) {
  .public-shell .ticket-page .ticket-product-grid,.public-shell .ticket-page .ticket-tariff-grid,
  .public-shell .ticket-page .ticket-screen-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .public-shell .ticket-page .ticket-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:560px) {
  .public-shell main:has(.ticket-page[data-ticket-resort]) > .panorama-block .panorama-hero { min-height:225px; }
  .public-shell .ticket-page :is(.ticket-feature--photo,.ticket-product-grid,.ticket-gazprom-grid,.ticket-steps,.resort-ticket-grid) {
    grid-template-columns:minmax(0,1fr);
  }
  .public-shell .ticket-page .ticket-feature > .photo-trigger { height:auto; }
  .public-shell .ticket-page .ticket-feature > img,
  .public-shell .ticket-page .ticket-feature > .photo-trigger > img {
    height:auto; min-height:0; max-height:13rem; aspect-ratio:16/9;
  }
  .public-shell .ticket-page .ticket-actions { width:100%; }
  .public-shell .ticket-page :is(.ticket-actions,.ticket-product-copy) > :is(.ticket-buy,.ticket-secondary) {
    width:100%;
  }
  .public-shell .ticket-page .ticket-steps > li {
    grid-template-columns:2rem minmax(0,1fr); column-gap:.62rem; row-gap:.18rem; align-items:start;
    padding:.67rem .75rem;
  }
  .public-shell .ticket-page .ticket-steps > li::before {
    grid-row:span 2; width:1.88rem; height:1.88rem; margin:0; font-size:.91rem;
  }
  .public-shell .ticket-page .ticket-steps :is(strong,p) { grid-column:2; }
}
@media (max-width:520px) {
  .public-shell .contact-actions.contact-actions--messengers {
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.36rem;
    width:100%; max-width:25rem;
  }
  .public-shell .contact-callout .contact-actions--messengers { margin-inline:auto; }
  .public-shell .contact-actions--messengers .contact-icon--labeled {
    flex-direction:column; min-width:0; min-height:58px; gap:.18rem; padding:.3rem .12rem;
    font-size:.73rem; line-height:1.18;
  }
  .public-shell .prose .rate-card .rate-book { width:100%; }
}
@media (max-width:365px) {
  .public-shell .ticket-page :is(.ticket-tariff-grid,.ticket-zones) { grid-template-columns:minmax(0,1fr); }
}


/* Fitness with Ksenia */
.public-shell .prose .fitness-page {
  --fitness-ink:#193247;
  --fitness-blue:#205a79;
  --fitness-blue-dark:#17455f;
  --fitness-blue-paper:#eaf3f8;
  --fitness-butter:#fbf3e2;
  --fitness-brown:#6c4a25;
  --fitness-line:#d9e5ed;
  --fitness-space:clamp(1rem,3vw,2.25rem);
  --fitness-radius:clamp(.95rem,2.1vw,1.45rem);
  max-width:1080px;
  padding-inline:clamp(.15rem,2vw,1.4rem);
  color:var(--fitness-ink);
}
.public-shell .fitness-page :is(.fitness-intro,.fitness-section,.fitness-booking,.fitness-contacts) {
  scroll-margin-top:6.25rem;
}
.public-shell .fitness-page :is(.fitness-intro,.fitness-section,.fitness-booking,.fitness-gallery) {
  margin-block:0 clamp(1.45rem,4.2vw,3.15rem);
}
.public-shell .fitness-page :is(.fitness-intro,.fitness-booking) {
  padding:var(--fitness-space);
  border:1px solid var(--fitness-line);
  border-radius:var(--fitness-radius);
  background:var(--fitness-blue-paper);
}
.public-shell .fitness-page .fitness-intro {
  background:linear-gradient(130deg,#e8f3f9 0%,#f6f8f8 62%,#fbf4e7 100%);
}
.public-shell .fitness-page :is(.fitness-intro,.fitness-section,.fitness-booking) h2 {
  max-width:26ch;
  margin:.28rem 0 .55rem;
  color:var(--fitness-ink);
  font-size:clamp(1.35rem,2.6vw,2rem);
  line-height:1.17;
  font-weight:720;
  letter-spacing:-.025em;
  text-wrap:balance;
}
.public-shell .fitness-page .fitness-kicker {
  margin:0;
  color:var(--fitness-blue-dark);
  font-size:.79rem;
  line-height:1.35;
  font-weight:720;
  letter-spacing:.025em;
}
.public-shell .fitness-page :is(.fitness-intro,.fitness-section,.fitness-booking) p {
  max-width:72ch;
  margin:.55rem 0 .8rem;
}
.public-shell .fitness-page .fitness-facts {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.45rem;
  margin:.92rem 0 0;
}
.public-shell .fitness-page .fitness-facts > * {
  display:inline-block;
  padding:.25rem .62rem;
  border:1px solid #cfdfe9;
  border-radius:999px;
  background:#fff;
  color:var(--fitness-blue-dark);
  font-size:.82rem;
  line-height:1.4;
  font-weight:630;
}
.public-shell .fitness-page .fitness-intro a.fitness-button { margin-top:.85rem; }

.public-shell .fitness-page .fitness-rate-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(.65rem,2vw,1.1rem);
  margin:1rem 0;
}
.public-shell .fitness-page .fitness-rate {
  --rate-accent:#447894;
  --rate-chip:#e8f3f9;
  --rate-chip-ink:var(--fitness-blue-dark);
  display:flex;
  min-width:0;
  flex-direction:column;
  align-items:flex-start;
  padding:clamp(.9rem,2.5vw,1.55rem);
  border:1px solid var(--fitness-line);
  border-top:3px solid var(--rate-accent);
  border-radius:var(--fitness-radius);
  background:#fff;
  box-shadow:0 9px 22px #233d5010;
}
.public-shell .fitness-page .fitness-rate[data-format="individual"] {
  --rate-accent:#b88144;
  --rate-chip:var(--fitness-butter);
  --rate-chip-ink:var(--fitness-brown);
}
.public-shell .fitness-page .fitness-rate .fitness-kicker {
  padding:.23rem .57rem;
  border-radius:999px;
  background:var(--rate-chip);
  color:var(--rate-chip-ink);
  font-size:.77rem;
}
.public-shell .fitness-page .fitness-rate h3 {
  margin:.7rem 0 .34rem;
  color:var(--fitness-ink);
  font-size:clamp(1.12rem,2.1vw,1.44rem);
  font-weight:700;
  line-height:1.22;
}
.public-shell .fitness-page .fitness-rate p { margin:0 0 .75rem; }
.public-shell .fitness-page .fitness-price {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:.3rem .64rem;
  width:100%;
  margin-top:auto;
  padding-top:.65rem;
  border-top:1px solid var(--fitness-line);
  color:var(--fitness-ink);
  line-height:1.16;
}
.public-shell .fitness-page .fitness-price strong {
  font-size:clamp(1.7rem,3.2vw,2.22rem);
  font-weight:760;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.public-shell .fitness-page .fitness-price small {
  color:var(--exp-muted);
  font-size:.83rem;
  line-height:1.35;
}
.public-shell .fitness-page .fitness-rate .fitness-followup {
  margin:.45rem 0 .8rem;
  color:var(--fitness-blue-dark);
  font-size:.87rem;
  font-weight:600;
}
.public-shell .fitness-page a.fitness-button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:.44rem;
  max-width:100%;
  min-height:46px;
  padding:.5rem .87rem;
  border:1px solid var(--fitness-blue);
  border-radius:.68rem;
  background:var(--fitness-blue);
  color:#fff;
  font-weight:690;
  font-size:.9rem;
  line-height:1.3;
  text-align:center;
  text-decoration:none;
}
.public-shell .fitness-page a.fitness-button:hover {
  border-color:var(--fitness-blue-dark);
  background:var(--fitness-blue-dark);
}
.public-shell .fitness-page .fitness-rate[data-format="individual"] a.fitness-button {
  border-color:#e8d4b5;
  background:var(--fitness-butter);
  color:var(--fitness-brown);
}
.public-shell .fitness-page .fitness-rate[data-format="individual"] a.fitness-button:hover {
  border-color:#c79d64;
  background:#f7ead0;
}

.public-shell .fitness-page .fitness-booking {
  background:linear-gradient(135deg,#eaf4f9,#fff 70%);
}
.public-shell .fitness-page .fitness-contacts {
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:.9rem;
}

.public-shell .fitness-page .fitness-coach-layout {
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:clamp(.9rem,3vw,2rem);
  align-items:center;
}
.public-shell .fitness-page :is(.fitness-coach-photos,.fitness-gallery > div > div) {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(.45rem,1.4vw,.85rem);
}
.public-shell .fitness-page :is(.fitness-coach-photos,.fitness-gallery) figure { min-width:0; margin:0; }
.public-shell .fitness-page :is(.fitness-coach-photos,.fitness-gallery) img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:var(--photo-ratio, .75);
  object-fit:contain;
  background:#eaf1f5;
  border-radius:.85rem;
}
.public-shell .fitness-page .fitness-equipment-layout {
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
  align-items:start;
  gap:clamp(.75rem,2.4vw,1.5rem);
}
.public-shell .fitness-page .fitness-equipment-layout img {
  display:block; width:100%; height:auto; max-height:28rem;
  aspect-ratio:var(--photo-ratio, .75); object-fit:contain; background:#eaf1f5; border-radius:.85rem;
}
.public-shell .fitness-page .fitness-equipment-layout .fitness-facts-grid b {
  margin-inline-end:.45rem; color:var(--fitness-blue);
}
.public-shell .fitness-page .fitness-facts-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
  margin:.85rem 0 0;
}
.public-shell .fitness-page .fitness-facts-grid > :not(img) {
  min-width:0;
  margin:0;
  padding:.75rem .85rem;
  border:1px solid var(--fitness-line);
  border-radius:.74rem;
  background:#fff;
}
.public-shell .fitness-page .fitness-facts-grid h3 { margin:.08rem 0 .36rem; }
.public-shell .fitness-page .fitness-facts-grid p:last-child { margin-bottom:0; }
.public-shell .fitness-page .fitness-faq details {
  margin:.52rem 0;
  border:1px solid var(--fitness-line);
  border-radius:.72rem;
  background:#fff;
}
.public-shell .fitness-page .fitness-faq summary {
  min-height:44px;
  padding:.62rem .8rem;
  cursor:pointer;
  color:var(--fitness-blue-dark);
  font-weight:650;
  line-height:1.4;
}
.public-shell .fitness-page .fitness-faq details > p { margin:.08rem .8rem .76rem; }

@media (max-width:650px) {
  .public-shell .fitness-page :is(.fitness-rate-grid,.fitness-coach-layout,.fitness-equipment-layout,.fitness-facts-grid) {
    grid-template-columns:minmax(0,1fr);
  }
  .public-shell .fitness-page .fitness-coach-layout { gap:.8rem; }
  .public-shell .fitness-page .fitness-coach-photos { order:1; }
  .public-shell .fitness-page .fitness-rate a.fitness-button { width:100%; }
}
@media (max-width:365px) {
  .public-shell .fitness-page .fitness-contacts .contact-icon--labeled { flex:1 1 100%; }
}

/* Navigation · compact mountain guide */
.public-shell .expedition-header {
  background:#fff;
  box-shadow:0 2px 12px #15354b0a;
}
.public-shell .header-utility {
  background:linear-gradient(108deg,#102738,#1c445a);
  border-bottom-color:#25495f;
}
.expedition-header .masthead-brand { position:relative; flex:none; }
.expedition-header .masthead-brand .brand {
  display:flex;
  align-items:center;
  gap:.65rem;
  padding:.08rem 0;
  font-size:1.16rem;
  line-height:1.12;
  text-decoration:none;
}
.expedition-header .masthead-brand .brand > span { padding-bottom:.84rem; }
.expedition-header .masthead-brand .brand img {
  width:44px;
  height:44px;
  padding:5px;
  border:1px solid #d6e6eb;
  border-radius:.84rem;
  background:linear-gradient(145deg,#f6fafb,#e9f2f5);
  object-fit:contain;
}
.masthead-region {
  position:absolute;
  left:calc(44px + .65rem);
  bottom:.28rem;
  color:#4e6978;
  font-size:.61rem;
  font-weight:620;
  white-space:nowrap;
  pointer-events:none;
}
.expedition-header .main-navigation { gap:.24rem clamp(.16rem,.8vw,.68rem); }
.expedition-header .main-navigation > a,.expedition-header .nav-group > summary {
  gap:.46rem;
  padding:.38rem .57rem;
  border-radius:.65rem;
  color:#254255;
  text-decoration:none;
}
.expedition-header .main-navigation > a:is(:hover,[aria-current]),
.expedition-header .nav-group:is([open],.is-current) > summary,
.expedition-header .nav-group > summary:hover {
  background:#eaf3f6;
  color:#163d57;
}
.expedition-header .nav-group > summary::after {
  content:"";
  width:.38rem;
  height:.38rem;
  margin:-.16rem 0 0;
  border-right:1.6px solid;
  border-bottom:1.6px solid;
  color:currentColor;
  transform:rotate(45deg);
}
.expedition-header .nav-group[open] > summary::after {
  margin:.18rem 0 0;
  transform:rotate(225deg);
}
.public-shell .header-booking {
  padding-inline:.85rem;
  background:#183e58;
  box-shadow:0 3px 7px #143b5327;
}
.public-shell .header-booking:hover { background:#245b74; }
:is(.header-booking,.mega-tickets,.mobile-booking) svg {
  width:1rem;
  height:1rem;
  flex:none;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.expedition-header .nav-options {
  border-color:#d9e5eb;
  background:#fff;
  box-shadow:0 18px 45px #193c5525,0 4px 10px #193c5512;
}
.expedition-header .mega-nav {
  display:block;
  max-width:1110px;
  padding:.9rem;
  border-radius:1.1rem;
  max-height:calc(100vh - 8rem);
  max-height:calc(100dvh - 8rem);
  overflow:auto;
  overscroll-behavior:contain;
}
.mega-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:.55rem 1rem;
  margin-bottom:.7rem;
  padding:.56rem .66rem .63rem;
  border-bottom:1px solid #e3edf1;
}
.nav-kicker {
  margin:0 0 .18rem;
  color:#456978;
  font-size:.66rem;
  font-weight:740;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.mega-title {
  margin:0;
  color:#16344b;
  font-size:1.22rem;
  line-height:1.2;
  font-weight:740;
  letter-spacing:-.025em;
}
.expedition-header .mega-tickets {
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  min-height:38px;
  padding:.35rem .61rem;
  border:1px solid #e9dac6;
  border-radius:.57rem;
  background:#fbf2e5;
  color:#68472d;
  font-size:.79rem;
  font-weight:700;
}
.expedition-header .mega-tickets:hover { background:#f7e7d0; text-decoration:none; }
.mega-grid { display:grid; grid-template-columns:1.45fr 1fr 1fr; gap:.62rem; }
.mega-group {
  min-width:0;
  align-content:start;
  padding:.63rem;
  border:1px solid #e3edf1;
  border-radius:.77rem;
  background:#f8fbfc;
}
.mega-group:nth-child(1) { background:#f2f8f8; border-color:#deebeb; }
.mega-group:nth-child(4) { background:#f4f8fc; }
.mega-group:nth-child(5) { background:#fcf8f2; border-color:#f0e7da; }
.mega-group-heading { display:flex; align-items:center; gap:.52rem; margin-bottom:.24rem; }
.mega-group-heading strong {
  margin:0;
  color:#173b53;
  font-size:.84rem;
  font-weight:750;
  line-height:1.22;
}
.nav-category-icon {
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  flex:none;
  border-radius:.59rem;
  background:#e8f1f6;
  color:#225773;
}
.nav-category-icon[data-tone="ridge"],.nav-category-icon[data-tone="lake"] { background:#e0eeed; color:#22625c; }
.nav-category-icon[data-tone="coast"],.nav-category-icon[data-tone="snow"] { background:#e5f0fa; color:#255b81; }
.nav-category-icon[data-tone="camp"],.nav-category-icon[data-tone="faq"] { background:#f6ead7; color:#7b552f; }
.nav-category-icon[data-tone="outdoor"],.nav-category-icon[data-tone="journal"] { background:#eaeef6; color:#3c5277; }
.nav-category-icon svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.mega-links { display:grid; grid-template-columns:minmax(0,1fr); gap:.08rem .3rem; }
.expedition-header .mega-links a {
  display:flex;
  align-items:center;
  min-height:30px;
  min-width:0;
  padding:.24rem .42rem;
  border-radius:.4rem;
  color:#294758;
  font-size:.81rem;
  line-height:1.28;
  font-weight:590;
}
.expedition-header .mega-links a:is(:hover,:focus-visible,[aria-current]) {
  background:#e8f1f5;
  color:#143c57;
  text-decoration:none;
}
.expedition-header .instructors-group { position:relative; }
.expedition-header .instructor-options {
  left:0;
  width:255px;
  max-width:calc(100vw - 2rem);
  padding:.66rem;
  border-radius:.82rem;
}
.expedition-header .instructor-options .mega-links a { min-height:38px; }
@media (min-width:980px) {
  .mega-group:first-child .mega-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:821px) and (max-width:1060px) {
  .expedition-header .main-navigation { gap:.08rem; }
  .expedition-header .main-navigation > a,.expedition-header .nav-group > summary { padding-inline:.3rem; gap:.3rem; }
  .expedition-header .masthead-brand .brand { font-size:1.04rem; }
  .public-shell .header-booking { padding-inline:.52rem; }
  .public-shell .header-booking svg { display:none; }
}
@media (max-width:820px), (pointer:coarse) and (max-width:960px) {
  .expedition-header .mega-nav { max-height:none; }
  .expedition-header .mega-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .expedition-header .instructor-options { width:100%; max-width:none; }
  .mobile-ready .public-shell .mobile-contact {
    gap:.32rem;
    padding:.18rem .28rem .18rem .47rem;
    border-color:#d5e5ed;
    background:#fbfdfe;
    box-shadow:0 .36rem 1rem #153d5618;
  }
  .mobile-ready .mobile-contact .brand img {
    width:clamp(26px,8.1vw,36px);
    padding:3px;
    border:1px solid #dce9ee;
    border-radius:.52rem;
    background:#edf5f7;
  }
  .mobile-ready .mobile-contact .mobile-call { display:flex; gap:.28rem; align-items:center; }
  .mobile-call svg {
    width:.9rem;
    height:.9rem;
    flex:none;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linejoin:round;
    stroke-linecap:round;
  }
  .mobile-ready .mobile-menu-toggle { background:linear-gradient(145deg,#1b4865,#153247); }
  .mobile-menu[open] { background:#f6fafb; scrollbar-gutter:auto; }
  .mobile-menu[open]::before { display:none; }
  .mobile-menu-top {
    position:sticky;
    top:-.72rem;
    z-index:2;
    margin:0 0 .58rem;
    padding:.42rem 0;
    border-bottom:1px solid #e0e9ee;
    background:#f6fafb;
  }
  .mobile-menu-top .brand { font-size:1.03rem; }
  .mobile-menu-top .brand img { width:34px; height:auto; }
  .mobile-menu-intro {
    padding:.72rem;
    margin-bottom:.55rem;
    border:1px solid #dae9ee;
    border-radius:.85rem;
    background:linear-gradient(150deg,#e9f3f7,#f4f9fa);
  }
  .mobile-menu-title { margin:.09rem 0 .63rem; font-size:1.4rem; line-height:1.2; }
  .mobile-menu-intro .mobile-menu-utility { gap:.33rem; }
  .mobile-menu-intro .mobile-menu-utility a { background:#fff; border:1px solid #d9e6ed; }
  .mobile-menu-intro .mobile-menu-utility .mobile-booking {
    grid-column:1/-1;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:.42rem;
    background:#f5c88d;
    border-color:#edba77;
    color:#3c2919;
  }
  .mobile-menu .mobile-menu-entry { border-bottom:1px solid #e0eaee; }
  .mobile-menu .mobile-menu-row {
    grid-template-columns:32px minmax(0,1fr) 28px;
    gap:.54rem;
    padding:.27rem .28rem;
    min-height:49px;
    font-size:.9rem;
  }
  .mobile-menu-row[aria-current],.mobile-subnav a[aria-current] { background:#e7f1f8; }
  .mobile-menu .mobile-row-arrow { width:28px; height:28px; border:0; background:transparent; }
  .mobile-menu .mobile-subnav {
    margin-inline-start:1.24rem;
    padding-inline-start:.72rem;
    border-inline-start-color:#cedfe7;
  }
  .mobile-menu-footer { margin-top:.58rem; }
  .mobile-menu-channels { margin-top:0; }
}
@media (max-width:374px) {
  .mobile-call svg { display:none; }
}
@media (max-width:500px) {
  .expedition-header .mega-grid { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:no-preference) {
  .expedition-header :is(.nav-group > summary,.main-navigation > a,.mega-links a) { transition:background-color .15s ease; }
  .expedition-header .nav-group[open] > .nav-options { animation:nav-open .16s ease-out both; }
  @keyframes nav-open { from { opacity:.45; } to { opacity:1; } }
}

/* Keep navigation and editorial previews comfortable on narrow screens. */
.public-shell main:has(.journal-library) .panorama-hero {
  min-height:clamp(250px,25vw,345px);
}
.public-shell .panorama-hero--journal .panorama-copy h1 {
  max-width:24ch;
  font-size:clamp(1.7rem,3.75vw,3.25rem);
}
.journal-library-head .eyebrow { display:none; }
.public-shell .journal-library .grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
}
.journal-library .card a {
  align-items:start;
  min-height:122px;
  padding:.8rem;
}
.journal-library .card img.journal-thumb {
  width:clamp(72px,9vw,114px);
  height:clamp(78px,8vw,104px);
  object-position:center 40%;
}
.journal-library .card h3 { font-size:clamp(1rem,1.45vw,1.16rem); }
.journal-card-copy .journal-card-summary { font-size:.86rem; }
.journal-library .card .journal-card-arrow { align-self:center; }
.public-shell .gear-ticket-links a { min-height:44px; }

@media (max-width:820px), (pointer:coarse) and (max-width:960px) {
  .mobile-ready .header-utility-inner .header-hours {
    min-width:0; flex:1 1 auto; white-space:normal; line-height:1.2;
  }
  .mobile-ready .header-utility-inner :is(.header-email,.header-socials .contact-icon) {
    flex:0 0 44px; width:44px; height:44px; min-height:44px;
  }
}
@media (max-width:680px) {
  .public-shell main:has(.journal-library) .panorama-hero {
    min-height:clamp(220px,66vw,280px);
    padding-top:4.75rem;
  }
  .public-shell .panorama-hero--journal .panorama-copy h1 {
    font-size:clamp(1.6rem,7vw,2.25rem);
  }
}
@media (max-width:600px) {
  .public-shell .journal-library .grid { grid-template-columns:minmax(0,1fr); gap:.65rem; }
  .journal-library .card a { min-height:100px; gap:.6rem; padding:.66rem; }
}
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .journal-library .card img.journal-thumb { transition:filter .18s ease; }
  .journal-library .card a:is(:hover,:focus-visible) .journal-thumb { filter:saturate(1.18); }
}
