/* v34 — final readability pass: white toolbar band + clearly larger typography. Header stays untouched. */
:root{--vision-blue:#4d5dfa;--vision-green:#29a71a}

/* Small green-blue Aa control: desktop icon-only so it never crowds the approved header. */
.a11y-entry{
  display:inline-grid;place-items:center;flex:0 0 auto;width:38px;height:38px;padding:0;
  border:1px solid rgba(77,93,250,.16);border-radius:12px;background:#fff;color:#17191f;
  box-shadow:0 5px 16px rgba(35,46,95,.08);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.a11y-entry__icon{
  display:grid;place-items:center;width:28px;height:28px;border-radius:9px;
  background:linear-gradient(135deg,var(--vision-blue),var(--vision-green));color:#fff;
  font-family:'Nunito',sans-serif;font-size:11px;font-weight:900;letter-spacing:-.02em;
}
.a11y-entry:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(35,46,95,.13)}
.a11y-entry:focus-visible{outline:3px solid var(--vision-blue);outline-offset:2px}
.a11y-entry[aria-pressed="true"]{border-color:rgba(41,167,26,.62);box-shadow:0 0 0 3px rgba(41,167,26,.12),0 8px 20px rgba(35,46,95,.10)}
.a11y-entry--mobile{display:none;width:100%;height:auto;min-height:52px;padding:9px 12px;border-radius:16px;grid-template-columns:32px 1fr;gap:10px;text-align:left;justify-items:start;font-family:'Nunito',sans-serif;font-size:15px;font-weight:850}
.a11y-entry--mobile .a11y-entry__icon{width:32px;height:32px;border-radius:10px}
.a11y-entry--mobile .a11y-entry__label{align-self:center}

/* Compact panel in normal document flow. Right edge follows the desktop header container. */
.a11y-toolbar[hidden]{display:none!important}
.a11y-toolbar{position:relative;z-index:70;width:100%;margin-top:80px;padding:10px 0 8px;background:#fff;font-family:'Nunito',sans-serif}
.a11y-toolbar__shell{width:min(1420px,calc(100% - 40px));margin:0 auto;display:flex;justify-content:flex-end}
.a11y-toolbar__inner{
  display:inline-flex;align-items:center;gap:9px;max-width:100%;padding:7px 9px 7px 12px;
  border:1px solid rgba(37,44,74,.10);border-radius:15px;background:#fff;
  box-shadow:0 8px 24px rgba(28,38,82,.10);
}
.a11y-toolbar__label{color:#515867;font-size:13px;font-weight:850;white-space:nowrap}
.a11y-control-group{display:flex;align-items:center;gap:5px}
.a11y-control-group button{
  min-width:42px;height:40px;padding:0 9px;border:1px solid #d7dbe5;border-radius:10px;
  background:#fff;color:#151922;font:900 15px/1 'Nunito',sans-serif;cursor:pointer;
}
.a11y-control-group button:hover{border-color:#9da6ba;background:#fafbff}
.a11y-control-group button:focus-visible{outline:3px solid var(--vision-blue);outline-offset:2px}
.a11y-control-group button[aria-pressed="true"]{border-color:var(--vision-blue);background:#f2f4ff;box-shadow:inset 0 0 0 2px var(--vision-blue);color:#1d2fb8}

/* The readability mode changes CONTENT only. Header, burger and site colours remain exactly normal. */
body.vision-mode{overflow-x:hidden!important}
body.vision-mode[data-vision-size="medium"]{--vision-body:21px;--vision-h1:76px;--vision-h2:64px;--vision-h3:50px;--vision-h4:28px;--vision-display:108px;--vision-section-display:90px;--vision-season:64px;--vision-date:34px}
body.vision-mode[data-vision-size="large"]{--vision-body:24px;--vision-h1:86px;--vision-h2:72px;--vision-h3:56px;--vision-h4:32px;--vision-display:120px;--vision-section-display:98px;--vision-season:70px;--vision-date:38px}
body.vision-mode[data-vision-size="xlarge"]{--vision-body:27px;--vision-h1:96px;--vision-h2:80px;--vision-h3:62px;--vision-h4:36px;--vision-display:132px;--vision-section-display:106px;--vision-season:76px;--vision-date:42px}

body.vision-mode.vision-mode.vision-mode main :where(p,li,dd,dt,label){font-size:var(--vision-body)!important;line-height:1.56!important}
body.vision-mode.vision-mode.vision-mode main :where(small,figcaption){font-size:max(18px,calc(var(--vision-body) * .82))!important;line-height:1.44!important}
body.vision-mode.vision-mode.vision-mode main h1{font-size:var(--vision-h1)!important;line-height:1.08!important}
body.vision-mode.vision-mode.vision-mode main h2{font-size:var(--vision-h2)!important;line-height:1.14!important}
body.vision-mode.vision-mode.vision-mode main h3{font-size:var(--vision-h3)!important;line-height:1.20!important}
body.vision-mode.vision-mode.vision-mode main h4{font-size:var(--vision-h4)!important;line-height:1.22!important}
/* Large decorative headings and date lines must never become smaller than in the ordinary site. */
body.vision-mode.vision-mode.vision-mode main .ref-heading__ghost{font-size:var(--vision-display)!important;line-height:.96!important}
body.vision-mode.vision-mode.vision-mode main .display-title{font-size:var(--vision-display)!important;line-height:.96!important}
body.vision-mode.vision-mode.vision-mode main .section-display-title{font-size:var(--vision-section-display)!important;line-height:1!important;white-space:normal!important;max-width:100%!important;overflow-wrap:break-word!important}
body.vision-mode.vision-mode.vision-mode main .season-title{font-size:var(--vision-season)!important;line-height:1.05!important}
body.vision-mode.vision-mode.vision-mode main .home-winter-showcase__dates{font-size:var(--vision-date)!important;line-height:1.15!important}
body.vision-mode main :where(.ref-button,.trip-primary-cta,.winter-shift-card__cta,.home-winter-showcase__cta,.faq-question){min-height:48px!important;white-space:normal!important}
body.vision-mode main :where(.ref-button,.trip-primary-cta,.winter-shift-card__cta,.home-winter-showcase__cta){font-size:max(16px,calc(var(--vision-body) * .82))!important;line-height:1.25!important}
body.vision-mode main :where(section,article,div,nav,aside){min-width:0}
body.vision-mode main :where(img,svg,video){max-width:100%}
body.vision-mode main :where(.eyebrow,.status,.service-tag,.extras-kicker,.archive-era-kicker,.archive-era-head__title,.archive-era-head__dates,.ref-program-tab,.archive-open){
  font-size:max(16px,calc(var(--vision-body) * .78))!important;line-height:1.35!important;white-space:normal!important;
}
body.vision-mode main .contact-social-link strong{font-size:max(18px,calc(var(--vision-body) * .86))!important;line-height:1.3!important}
body.vision-mode main :where(h1,h2,h3,h4,p,li,dd,dt,label,a,button,strong){overflow-wrap:break-word}

/* Footer text grows slightly too, without changing the footer structure. */
body.vision-mode .site-footer :where(p,a){font-size:max(16px,calc(var(--vision-body) * .82))!important;line-height:1.48!important}
body.vision-mode .site-footer h2{font-size:max(22px,calc(var(--vision-h3) * .82))!important}

/* The radial welcome composition cannot safely host 22px copy. Reflow it into cards, keep all visuals/colours. */
body.vision-mode .ref-feature-wheel{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;
  width:min(1050px,100%)!important;height:auto!important;margin:30px auto 54px!important;padding:0!important;overflow:visible!important;
}
body.vision-mode .ref-feature-wheel__photo{
  position:static!important;order:-1!important;grid-column:1/-1!important;justify-self:center!important;
  width:250px!important;height:250px!important;margin:4px auto 22px!important;transform:none!important;
}
body.vision-mode .ref-mini-card{
  position:relative!important;inset:auto!important;width:auto!important;min-width:0!important;min-height:0!important;
  padding:24px 18px 20px!important;transform:none!important;text-align:center!important;
}
body.vision-mode .ref-mini-card img{width:46px!important;height:46px!important;margin:-37px auto 9px!important}
body.vision-mode.vision-mode.vision-mode .ref-mini-card h3{font-size:var(--vision-h3)!important;line-height:1.18!important;margin:0!important}
body.vision-mode.vision-mode.vision-mode .ref-mini-card p{font-size:var(--vision-body)!important;line-height:1.46!important;margin:8px 0 0!important}
body.vision-mode[data-vision-size="xlarge"] .ref-feature-wheel{grid-template-columns:repeat(2,minmax(0,1fr))!important}
body.vision-mode[data-vision-size="xlarge"] .ref-mini-card:last-child{grid-column:1/-1!important;justify-self:center!important;width:min(100%,calc(50% - 9px))!important}

/* Let cards grow with copy instead of preserving old fixed-height compositions. */
body.vision-mode :where(.parents-card,.parents-card--company,.parents-card--warning,.parents-card--listen,.parents-card--documents,.parents-card--arrival,.parents-card--take){min-height:0!important;height:auto!important}
body.vision-mode .ref-about-card__copy p{max-width:75ch!important}
body.vision-mode .ref-shift{height:auto!important;min-height:0!important;grid-template-columns:minmax(0,1fr) auto!important;gap:16px!important}
body.vision-mode .ref-shift__price{min-width:0!important}
body.vision-mode .ref-shift__price strong{white-space:normal!important}
body.vision-mode .winter-shift-card{height:auto!important;min-height:0!important}
body.vision-mode .faq-question{font-size:max(18px,calc(var(--vision-body) * .94))!important;text-align:left!important}
body.vision-mode .faq-answer p{max-width:75ch!important}

body.vision-mode[data-vision-size="large"] :where(.home-winter-showcase__facts,.home-winter-showcase__list){grid-template-columns:repeat(2,minmax(0,1fr))!important}
body.vision-mode[data-vision-size="xlarge"] :where(.home-winter-showcase__facts,.home-winter-showcase__list,.parents-grid,.documents-grid,.discount-grid){grid-template-columns:1fr!important}
body.vision-mode[data-vision-size="xlarge"] :where(.ref-shift,.winter-shift-card){grid-template-columns:1fr!important}
body.vision-mode[data-vision-size="xlarge"] .ref-shift__price,
body.vision-mode[data-vision-size="xlarge"] .winter-shift-card__price{text-align:left!important}

/* Larger v34 typography gets more room before it can collide with neighbouring cards. */
body.vision-mode[data-vision-size="large"] :where(.extras-grid,.ref-extra-grid){grid-template-columns:1fr!important}
body.vision-mode[data-vision-size="xlarge"] :where(.extras-grid,.ref-extra-grid,.ref-territory-grid,.contact-office-card,.contact-camp-card,.archive-legacy-grid,.contact-social-card,.contact-social-links){grid-template-columns:1fr!important}
body.vision-mode[data-vision-size="xlarge"] .ref-territory-grid::before{display:none!important}
body.vision-mode[data-vision-size="xlarge"] .ref-territory-grid article{transform:none!important;min-height:0!important;height:auto!important}
body.vision-mode[data-vision-size="xlarge"] .service-card{grid-template-columns:1fr!important;min-height:0!important}
body.vision-mode[data-vision-size="xlarge"] .service-card__media{height:320px!important;min-height:0!important}
body.vision-mode[data-vision-size="xlarge"] .ref-mini-card:last-child{width:100%!important}

/* Never leave WOW elements invisible while font size is being changed. */
body.vision-mode main .wow{visibility:visible!important;opacity:1!important;animation:none!important;transition:none!important}

@media(max-width:1320px) and (min-width:1081px){
  .a11y-toolbar__shell{width:min(1180px,calc(100% - 32px))}
}
@media(max-width:1180px) and (min-width:761px){
  body.vision-mode[data-vision-size="medium"]{--vision-body:20px;--vision-h1:68px;--vision-h2:54px;--vision-h3:38px;--vision-h4:27px;--vision-display:82px;--vision-section-display:76px;--vision-season:62px;--vision-date:32px}
  body.vision-mode[data-vision-size="large"]{--vision-body:23px;--vision-h1:76px;--vision-h2:60px;--vision-h3:42px;--vision-h4:30px;--vision-display:94px;--vision-section-display:84px;--vision-season:68px;--vision-date:36px}
  body.vision-mode[data-vision-size="xlarge"]{--vision-body:25px;--vision-h1:84px;--vision-h2:66px;--vision-h3:46px;--vision-h4:34px;--vision-display:104px;--vision-section-display:92px;--vision-season:74px;--vision-date:40px}
  body.vision-mode[data-vision-size="large"] :where(.home-winter-showcase__facts,.home-winter-showcase__list,.parents-grid,.documents-grid,.discount-grid){grid-template-columns:1fr!important}
  body.vision-mode[data-vision-size="xlarge"] :where(.ref-feature-wheel,.home-winter-showcase__facts,.home-winter-showcase__list,.parents-grid,.documents-grid,.discount-grid,.ref-shift,.winter-shift-card){grid-template-columns:1fr!important}
  body.vision-mode[data-vision-size="xlarge"] .ref-mini-card:last-child{grid-column:auto!important;width:auto!important;justify-self:stretch!important}
}
@media(max-width:1080px){
  .a11y-entry--desktop{display:none!important}
  .a11y-entry--mobile{display:grid!important}
  .a11y-toolbar__shell{width:min(100% - 28px,1180px)}
}

@media(max-width:900px){
  body.vision-mode[data-vision-size] .ref-feature-wheel{grid-template-columns:1fr!important}
  body.vision-mode[data-vision-size] .ref-mini-card:last-child{grid-column:auto!important;width:auto!important;justify-self:stretch!important}
}
@media(max-width:760px){
  .a11y-toolbar{margin-top:64px;padding:7px 0;background:#fff}
  .a11y-toolbar__shell{width:calc(100% - 20px);justify-content:flex-end}
  .a11y-toolbar__inner{padding:6px 7px 6px 10px;gap:7px;border-radius:13px}
  .a11y-toolbar__label{font-size:12px}
  .a11y-control-group{gap:4px}
  .a11y-control-group button{min-width:38px;height:38px;padding:0 7px;font-size:14px;border-radius:9px}
  body.vision-mode[data-vision-size="medium"]{--vision-body:19px;--vision-h1:39px;--vision-h2:40px;--vision-h3:25px;--vision-h4:22px;--vision-display:64px;--vision-section-display:54px;--vision-season:42px;--vision-date:29px}
  body.vision-mode[data-vision-size="large"]{--vision-body:21px;--vision-h1:43px;--vision-h2:44px;--vision-h3:29px;--vision-h4:25px;--vision-display:70px;--vision-section-display:60px;--vision-season:46px;--vision-date:32px}
  body.vision-mode[data-vision-size="xlarge"]{--vision-body:23px;--vision-h1:47px;--vision-h2:48px;--vision-h3:33px;--vision-h4:28px;--vision-display:76px;--vision-section-display:66px;--vision-season:50px;--vision-date:35px}
  body.vision-mode.vision-mode.vision-mode[data-vision-size="medium"] main :where(small,figcaption){font-size:17px!important}
  body.vision-mode.vision-mode.vision-mode[data-vision-size="large"] main :where(small,figcaption){font-size:19px!important}
  body.vision-mode.vision-mode.vision-mode[data-vision-size="xlarge"] main :where(small,figcaption){font-size:21px!important}
  body.vision-mode[data-vision-size] .ref-feature-wheel{grid-template-columns:1fr!important;gap:16px!important;margin:24px auto 38px!important}
  body.vision-mode .ref-feature-wheel__photo{width:220px!important;height:220px!important;margin-bottom:20px!important}
  body.vision-mode[data-vision-size] .ref-mini-card:last-child{grid-column:auto!important;width:auto!important;justify-self:stretch!important}
  body.vision-mode :where(.home-winter-showcase__facts,.home-winter-showcase__list,.parents-grid,.documents-grid,.discount-grid){grid-template-columns:1fr!important}
  body.vision-mode :where(.ref-shift,.winter-shift-card){grid-template-columns:1fr!important}
  body.vision-mode .ref-shift__price,body.vision-mode .winter-shift-card__price{text-align:left!important}
}
@media(max-width:390px){
  .a11y-toolbar__label{display:none}
  .a11y-toolbar__inner{padding-left:7px}
}
@media(prefers-reduced-motion:reduce){.a11y-entry,.a11y-control-group button{transition:none!important}}

/* Screen-reader-only status text must never occupy visual space. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
