/* Shared phone fixes — loaded on every customer page after its own styles */
@media (max-width:768px){
  /* readable minimum text size for small labels */
  .tab{font-size:10px !important;letter-spacing:0.14em !important;padding:8px 12px !important;}
  .anchor-link{font-size:12px !important;}
  .footer-link-block,.footer-copy,.footer-legal a{font-size:12px !important;}
  .fl3,.yn-btn,.tbtn,.label,.pc-hours,.pp-per,.ls-ref-name,.intro-pill,.hs-lbl,.cal-hint,
  .ci-card-services,.sig-label,.book-block-sub,.ci-field-lbl,.waiver-print-btn,.equip-col h3{font-size:12px !important;}
  .opt-tag,.opt-pill,.sec-label,.section-label,.opt-hi-lbl,.hero-eyebrow,.hero-tag,.stat-lbl,.hm-label,
  .bk-tag,.bk-m-lbl,.itin-day-word,.eyebrow,.blk-kick,.intro-kicker,.sig-block-title,.modules-header p{font-size:11px !important;}
  .mb-kicker,.mb-credit,.meta{font-size:11px !important;}
  .tc-lbl{font-size:12px !important;}
}

/* Keep selected / current items readable (overrides the automatic contrast tweaks,
   which only meant to darken the un-selected state) */
html body > nav.tabs > a.tab.active,html body .tabs a.tab.active{color:#F0EBE3 !important;}
html body #tier-toggle .tier-btn.on,
html body .selector-row .sel-opt.active,
html body #exp-picks .pick-opt.on,
html body .yn-wrap button.yn-btn.on,
html body .yn-wrap button.yn-btn.on .yn-price,
html body #b-transfer .yn-btn.on,html body #b-transfer .yn-btn.on .yn-price{color:#fff !important;}
html body .cal-grid .cday.picked,html body .cal-grid .cday.sel,html body .cal-grid .cday.selected,
html body .cday.picked .cday-n,html body .cday.sel .cday-n{color:#fff !important;}

@media (max-width:768px){
  /* 3D map: keep the small data credit clear of the resort name */
  .map-block .mb-copy{justify-content:flex-start;padding-top:40px !important;}
  .map-block .mb-pin{bottom:64px !important;right:16px !important;}
  .map-block .mb-pin .meta{color:#F0EBE3 !important;opacity:0.8;}
  .map-block .mb-credit{left:16px;right:16px;bottom:10px;font-size:8px !important;line-height:1.4;}
  /* footer links: comfortable tap size on phones */
  .site-footer a.footer-link-block,.site-footer .footer-legal a,.site-footer a.footer-contact-item{display:inline-block;padding:10px 6px !important;min-height:40px;}
  .contact-links a{display:inline-block;padding:8px 2px;}
}

@media (max-width:768px){
  /* lesson pages: info sections stack instead of squeezing into a narrow column */
  .uni-block{flex-direction:column !important;align-items:stretch !important;height:auto !important;padding:48px 24px !important;gap:24px !important;}
  .uni-left,.uni-right{width:100% !important;}
  .price-cards{flex-direction:column !important;gap:28px !important;}
  .price-card{width:100% !important;}
  .pc-persons{font-size:13px !important;}
  .pc-price{font-size:17px !important;}
}
@media (max-width:768px){
  /* booking pages: no tall empty panels on phones */
  .total-block{min-height:0 !important;justify-content:flex-start !important;}
  .step-block .step-hdr{min-height:0;}
  [id^="sb-"]{min-height:0 !important;}
  [id^="sb-"] > div{justify-content:flex-start !important;}
}

/* Booking calendars: available days in solid dark text (light calendars only) */
.cday:not(.past):not(.empty):not(.picked):not(.sel):not(.selected):not(.disabled){color:#2B2625;}
.cday:not(.past):not(.empty) .cday-n{font-weight:600;}

/* Booking steps (dates / group): grow to fit the content instead of clipping it on shorter screens */
#sb-dates,#sb-people,#sb-when{height:auto !important;min-height:55vh;min-height:55svh;overflow:visible !important;}
#sb-dates > div,#sb-people > div{padding-top:44px;padding-bottom:44px;}

/* Footer partner logos (BASI · IFMGA · GMGA · FWT Junior · MS.I · Project Hokkaido) — centred row above the copyright line */
.footer-partners{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:28px 64px;padding:40px 64px;border-top:1px solid rgba(43,38,37,0.12);}
.footer-partners a,.footer-partners span{display:flex;align-items:center;}@media (hover:hover){.footer-partners a:hover{background:none;opacity:0.75;transform:none;}}
.footer-partners img{display:block;width:auto;}
.footer-partners .fp-basi{height:50px;}
.footer-partners .fp-ifmga{height:78px;}
.footer-partners .fp-fwt{height:58px;}
.footer-partners .fp-msi{height:50px;}
.footer-partners .fp-gmga{height:80px;}
.footer-partners .fp-hok{height:58px;}
@media (max-width:768px){
  .footer-partners{gap:22px 24px;padding:26px 16px;}
  .footer-partners .fp-basi{height:34px;}
  .footer-partners .fp-ifmga{height:56px;}
  .footer-partners .fp-gmga{height:58px;}
  .footer-partners .fp-fwt{height:40px;}
  .footer-partners .fp-msi{height:34px;}
  .footer-partners .fp-hok{height:44px;}
}

/* Footer social buttons (Facebook · Instagram · WhatsApp) — larger and clearer */
.footer-social a{width:44px;height:44px;border:1.5px solid rgba(43,38,37,0.45);}
.footer-social a svg{width:19px;height:19px;}
.footer-social a svg *{stroke-width:1.6;}
@media (max-width:768px){
  .footer-social{gap:14px !important;margin-top:6px;}
  .footer-social a{width:48px !important;height:48px !important;}
  .footer-social a svg{width:23px;height:23px;}
}

/* Keep the lowercase "i" in MS.i even inside uppercase headings and tabs */
.msi-i{text-transform:none !important;}

/* Lighter photo treatment (2026-10-07): soft shadow keeps white text readable over brighter photos */
.hero h1,.hero-sub,.hero-book,.hero-content h1,.hero-content p,
:is(a,.hm-tile)[class$="-block"]:not(.footer-link-block):has(> img) h2,:is(a,.hm-tile)[class$="-block"]:not(.footer-link-block):has(> img) p,
.book-block-title,.book-block-sub,.page-book{text-shadow:0 1px 3px rgba(0,0,0,0.35),0 2px 22px rgba(0,0,0,0.4);}

/* ── Menu button (2026-10-08): fully on-screen on phones, bolder lines, turns into ✕ when open ── */
.top-bar .top-right{margin-right:0;}
.top-bar .hamburger-btn{position:relative;align-self:center;width:40px;height:40px;padding:0 6px 0 0;gap:5px;align-items:flex-end;justify-content:center;flex-direction:column;
  border:none;background:none;box-sizing:border-box;transition:opacity 0.2s;}
.top-bar .hamburger-btn span{width:24px;height:2.5px;background:#F0EBE3;border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,0.35);transition:transform 0.3s,opacity 0.2s,width 0.3s;}
.top-bar .hamburger-btn span:nth-child(2){width:16px;}@media (hover:hover){.top-bar .hamburger-btn:hover{opacity:0.8;transform:none;}.top-bar .hamburger-btn:hover span:nth-child(2){width:24px;}}
.top-bar .hamburger-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.top-bar .hamburger-btn[aria-expanded="true"] span:nth-child(2){opacity:0;}
.top-bar .hamburger-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
@media (max-width:768px){
  .top-bar .top-left{margin-left:-14px;}
  .top-bar .hamburger-btn{width:44px;height:40px;padding-right:4px;}
}

/* Phones: fixed backgrounds force a repaint on every scroll frame (janky on Android) */
@media (max-width:768px){ body{background-attachment:scroll !important;} }

/* ── Phones: identical, symmetrical spacing inside every photo/link block (2026-10-08) ──
   Title box = the child that holds the <h2>, text box = the child that holds the <p> (not counted by position,
   so blocks with extra decorative layers line up too). */
@media (max-width:768px){
  :is(a,.hm-tile)[class$="-block"][class]:not(.footer-link-block) > div:has(> h2){width:100% !important;padding:36px 24px 10px !important;flex-shrink:0 !important;}
  :is(a,.hm-tile)[class$="-block"][class]:not(.footer-link-block) > div:has(> p):not(:has(> h2)){width:100% !important;padding:10px 24px 36px !important;margin:0 !important;align-items:flex-start !important;text-align:left !important;justify-content:flex-end !important;flex:1 1 auto !important;}
  :is(a,.hm-tile)[class$="-block"][class]:not(.footer-link-block) p{margin-bottom:0 !important;padding:0 !important;}
  :is(a,.hm-tile)[class$="-block"][class]:not(.footer-link-block) > div:not(:has(*)):not([class$="-overlay"]):not([class$="-border"]){padding:0 !important;}
  /* blocks with only a title: centre it so the space above and below is equal */
  :is(a,.hm-tile)[class$="-block"][class]:not(.footer-link-block):not(:has(p)){justify-content:center !important;}
  :is(a,.hm-tile)[class$="-block"][class]:not(.footer-link-block):not(:has(p)) > div:has(> h2){padding:36px 24px !important;}
  /* empty text boxes (no content) would push the title off-centre */
  :is(a,.hm-tile)[class$="-block"][class]:not(.footer-link-block) > div[style*="position:relative"]:not(:has(*)){display:none !important;}
}

/* Phones: the last item in a section shouldn't add its own bottom margin on top of the section's padding,
   so the space above the first item and below the last item matches. */
@media (max-width:768px){
  main :is(section,.section,.section-sm,.sec,.pricing,.uni-block,.submit-block,.session-pick,.step-block,.gd-about,.gal-head) :last-child{margin-bottom:0 !important;}
}

/* Phones: the open booking step fits its content (no empty band at the bottom) with even spacing */
@media (max-width:768px){
  .step-block.active{height:auto !important;min-height:0 !important;}
  .step-block.active .step-hdr{height:auto !important;padding:28px 24px 8px !important;}
  .step-block.active .step-body{padding:16px 24px 28px !important;}
}

/* ── Touch phones/tablets: lighter rendering so fast scrolling stays smooth on real devices (2026-10-08) ──
   Live CSS filters on large photos and animated transitions are expensive for phone GPUs during momentum
   scrolling (Safari shows blank/shifting tiles). Desktop keeps every effect. */
@media (hover:none) and (pointer:coarse){
  main img, main video, .hero img, .hero video, :is(a,.hm-tile)[class$="-block"] img, .book-block img, .split-photo img{filter:none !important;}
  /* logos drawn black-on-white that are shown white-on-black need their invert filter (About page logo section) */
  main .ls-result-col img{filter:invert(1) !important;}
  :is(a,.hm-tile)[class$="-block"], :is(a,.hm-tile)[class$="-block"] *, .book-block, .book-block *, [class*="-img"]{transition:none !important;}
  body{background-image:none !important;}
  /* photos lose their +13% brightness filter here, so lighten the shading over them to keep the same overall lightness */
  :is(a,.hm-tile)[class$="-block"] > div[class$="-overlay"]{opacity:0.6 !important;}
}
/* Phones: smaller copy of the homepage "Project Caucasus" section background */
@media (max-width:768px){ .about-section .about-left{background-image:url('../images/general/about-section-bg-1200w.jpg') !important;} }

/* Booking page shown inline under a trip page (iframe): no header, breadcrumb, footer or chat of its own */
html.embedded header.top-bar, html.embedded nav.tabs, html.embedded nav.flyout, html.embedded footer,
html.embedded .pcchat-btn, html.embedded .pcchat-panel, html.embedded #pcchatBtn, html.embedded #pcchatPanel{display:none !important;}
html.embedded, html.embedded body{padding-top:0 !important;margin-top:0 !important;background-color:#E8E4DF !important;}
html.embedded main > :first-child, html.embedded .content > :first-child, html.embedded main > .content{margin-top:0 !important;}
html.embedded a.pc-chosen{outline:4px solid #2B2625;outline-offset:-4px;}

/* Inline booking section under "Book Now" (js/inlinebook.js) */
.inline-book{position:relative;background:#E8E4DF;border-top:3px solid #2B2625;scroll-margin-top:44px;}
.inline-book iframe{display:block;width:100%;border:0;background:#E8E4DF;scroll-margin-top:44px;}
.inline-book .ib-options + .ib-form{border-top:3px solid #2B2625;}
.inline-book-close{position:absolute;top:14px;right:16px;z-index:2;width:40px;height:40px;border:3px solid #2B2625;background:#E8E4DF;color:#2B2625;font-size:18px;font-weight:800;cursor:pointer;line-height:1;}
@media (hover:hover){.inline-book-close:hover{background:#2B2625;color:#F0EBE3;}}

/* ── Cookie & privacy consent (js/consent.js) ── */
.pc-consent{position:fixed;z-index:400;right:24px;bottom:24px;width:min(420px,calc(100vw - 48px));background:#E8E4DF;color:#2B2625;border:3px solid #2B2625;box-shadow:0 10px 40px rgba(20,14,12,0.25);font-family:inherit;}
.pc-consent .pcc-inner{padding:22px 22px 18px;}
.pc-consent .pcc-title{margin:0 0 8px;font-size:15px;font-weight:900;font-style:italic;letter-spacing:-0.01em;text-transform:uppercase;}
.pc-consent .pcc-txt{margin:0;font-size:13px;line-height:1.6;color:#3d3937;}
.pc-consent .pcc-txt a{color:#2B2625;font-weight:700;text-decoration:underline;}
.pc-consent .pcc-set{margin-top:14px;border-top:1px solid rgba(43,38,37,0.2);}
.pc-consent .pcc-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid rgba(43,38,37,0.2);cursor:pointer;}
.pc-consent .pcc-row b{display:block;font-size:13px;}
.pc-consent .pcc-row small{display:block;font-size:12px;line-height:1.45;color:#5d5958;margin-top:2px;}
.pc-consent .pcc-row input{width:20px;height:20px;accent-color:#2B2625;flex-shrink:0;}
.pc-consent .pcc-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.pc-consent .pcc-b{flex:1 1 auto;padding:12px 14px;border:3px solid #2B2625;background:#E8E4DF;color:#2B2625;font:inherit;font-size:11px;font-weight:800;letter-spacing:0.16em;text-transform:uppercase;cursor:pointer;}
.pc-consent .pcc-dark{background:#2B2625;color:#F0EBE3;}
.pc-consent .pcc-link{flex:0 0 100%;border:none;padding:6px 0 0;background:none;text-decoration:underline;letter-spacing:0.12em;}
@media (hover:hover){ .pc-consent .pcc-b:not(.pcc-link):hover{opacity:0.85;} }
@media (max-width:768px){
  .pc-consent{left:0;right:0;bottom:0;width:auto;border-width:3px 0 0;box-shadow:0 -8px 30px rgba(20,14,12,0.2);max-height:80vh;max-height:80svh;overflow:auto;}
  .pc-consent .pcc-inner{padding:18px 20px calc(16px + env(safe-area-inset-bottom));}
}
/* 3D map placeholder until the visitor allows external maps */
.mb-consent{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:#DCDCDC;color:#2B2625;}
.mb-consent p{margin:0;max-width:420px;font-size:14px;line-height:1.6;}
.mb-consent button{padding:13px 22px;border:3px solid #2B2625;background:#E8E4DF;color:#2B2625;font:inherit;font-size:12px;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;cursor:pointer;}
html.pc-consent-open .pcchat-btn, html.pc-consent-open #pcchatBtn{display:none !important;}

/* ── Phones: text over photos must stay readable (2026-10-10) ──
   Soft dark gradient only where text sits — top (titles) and bottom (paragraphs) — middle stays clear for the riders. */
@media (max-width:768px){
  :is(a,.hm-tile)[class$="-block"][class]:not(.footer-link-block) > div[class$="-overlay"][class],
  .opt-block[class] > .opt-overlay[class], .proj-block[class] > div[class$="-overlay"][class]{
    background:linear-gradient(to bottom,rgba(20,16,14,0.55) 0%,rgba(20,16,14,0.22) 28%,rgba(20,16,14,0.08) 46%,rgba(20,16,14,0.45) 70%,rgba(20,16,14,0.72) 100%) !important;opacity:1 !important;}
  /* heroes: title + meta at the bottom */
  .hero[class] > .hero-overlay[class]{background:linear-gradient(to bottom,rgba(20,16,14,0.15) 0%,rgba(20,16,14,0.05) 35%,rgba(20,16,14,0.45) 65%,rgba(20,16,14,0.72) 100%) !important;opacity:1 !important;}
  /* Book Now blocks: even scrim behind the centred title */
  .book-block{position:relative;}
  .book-block::after{content:'';position:absolute;inset:0;background:rgba(20,16,14,0.32);pointer-events:none;z-index:0;}
  .book-block > .book-block-inner, .book-block > .book-inner{position:relative;z-index:1;}
  /* small text gets a tighter, stronger shadow (big titles keep the soft one) */
  :is(a,.hm-tile)[class$="-block"]:not(.footer-link-block):has(> img) p, .opt-block p, .opt-block .opt-desc, .opt-block .opt-meta, .opt-block .opt-price,
  .hero-sub, .hero .label, .hero .value, .hero-meta-item, .book-block-sub, .lost-text{
    text-shadow:0 1px 2px rgba(0,0,0,0.6),0 2px 14px rgba(0,0,0,0.5) !important;}
  .book-block-sub{color:#F0EBE3 !important;opacity:1 !important;}
  .hero .label{color:rgba(240,235,227,0.9) !important;}
  .opt-block .opt-meta{color:rgba(240,235,227,0.88) !important;}
  .opt-block .opt-desc{color:rgba(240,235,227,0.92) !important;}
  .opt-block .opt-unit{color:rgba(240,235,227,0.85) !important;text-shadow:0 1px 2px rgba(0,0,0,0.5),0 2px 12px rgba(0,0,0,0.45);}
  .opt-block .opt-pill{color:#F0EBE3 !important;border-color:rgba(240,235,227,0.75) !important;text-shadow:0 1px 2px rgba(0,0,0,0.5);}
  .opt-block .opt-cta, .opt-block a[class*="opt-"]{color:#F0EBE3 !important;border-color:rgba(240,235,227,0.7) !important;}
}

/* Phones: remaining small text over photos (2026-10-13 scan) */
@media (max-width:768px){
  .book-sub{color:#F0EBE3 !important;opacity:1 !important;text-shadow:0 1px 2px rgba(0,0,0,0.6),0 2px 14px rgba(0,0,0,0.5) !important;}
  .hero-sub{color:rgba(240,235,227,0.94) !important;}
  /* About Trip / Day by Day / Included full-bleed photo sections: even scrim so the lists read on light photos */
  section[style*="height:65vh;height:65svh"]{position:relative;}
  section[style*="height:65vh;height:65svh"]:has(> img)::after{content:'';position:absolute;inset:0;background:rgba(20,16,14,0.45);pointer-events:none;z-index:0;}
  section[style*="height:65vh;height:65svh"] > div{position:relative;z-index:1;}
  section[style*="height:65vh;height:65svh"]:has(> img) h2, section[style*="height:65vh;height:65svh"]:has(> img) div, section[style*="height:65vh;height:65svh"]:has(> img) span, section[style*="height:65vh;height:65svh"]:has(> img) li, section[style*="height:65vh;height:65svh"]:has(> img) p{text-shadow:0 1px 2px rgba(0,0,0,0.55),0 2px 12px rgba(0,0,0,0.4);}
  section[style*="height:65vh;height:65svh"] [style*="rgba(240,235,227,0.2"], section[style*="height:65vh;height:65svh"] [style*="rgba(240,235,227,0.3"], section[style*="height:65vh;height:65svh"] [style*="rgba(240,235,227,0.4"]{color:rgba(240,235,227,0.78) !important;}
  section[style*="height:65vh;height:65svh"] [style*="border-bottom:1px solid rgba(240,235,227,0.0"]{border-color:rgba(240,235,227,0.25) !important;}
  /* team photo cards: darker foot, brighter role / certificates / bio */
  .tm .tm-overlay{background:linear-gradient(to top,rgba(20,16,14,0.82) 0%,rgba(20,16,14,0.55) 30%,rgba(20,16,14,0.12) 60%,transparent 78%) !important;}
  .tm .tm-certs{color:rgba(240,235,227,0.85) !important;}
  .tm .tm-bio{color:rgba(240,235,227,0.8) !important;}
  .tm .tm-role{font-size:11px !important;}
}

/* No "glow" on dark text (2026-10-15): the readability shadows are meant for white text over photos.
   Dark text on a plain cream / grey / white panel only gets blurred by them. */
[style*="color:#2B2625"], [style*="color:#2b2625"], [style*="color: #2B2625"], [style*="color:rgba(43,38,37"], [style*="color:rgba(43, 38, 37"],
.page-book, .inc-split-panel, .inc-split-panel *{text-shadow:none !important;}

/* Header colour (2026-10-16): #392F31 on every page — top bar + the breadcrumb strip under it */
html body header.top-bar, html body nav.tabs{background-color:#392F31 !important;}
html body nav.tabs > a.tab:not(.active){color:#A8A39E !important;}

/* Phones: the photo + panel blocks (Cat Skiing in Georgia, Private Ski Lessons, Ski Touring / Heliskiing in Gudauri)
   show only the cream panel — title, text and button. Desktop and tablets keep the photo. (2026-10-16) */
@media (max-width:768px){ .cs-block > .cs-photo{display:none !important;} }

/* Footer: the Project Caucasus logo (dark version) instead of typed text (2026-10-16) */
.footer-logo{display:inline-block;line-height:0;}
.footer-logo img{height:52px;width:auto;display:block;}
@media (hover:hover){ a.footer-logo:hover{transform:none !important;opacity:0.85;} }
@media (max-width:768px){ .footer-logo{display:block;} .footer-logo img{height:36px;margin:0 auto;} }

/* Footer (2026-10-16): no frames on links, legal links or social icons; on hover only a soft rounded fade, nothing grows */
html body .site-footer .footer-link-block, html body .site-footer .footer-social a{border:none !important;border-radius:10px;}
@media (hover:hover){
  html body .site-footer a:hover, html body .site-footer .footer-link-block:hover, html body .site-footer .footer-social a:hover{transform:none !important;}
  html body .site-footer .footer-link-block:hover, html body .site-footer .footer-social a:hover{background-color:rgba(43,38,37,0.08) !important;}
}
@media (min-width:769px){ html body .site-footer .footer-legal-blocks{gap:2px 6px;margin-left:-10px;} html body .site-footer .footer-legal-blocks .footer-link-block{width:auto !important;text-align:left;padding:7px 10px !important;} }

/* Option switchers (Gudauri/Svaneti/Kazbegi, Heliskiing, Cat Skiing): buttons never grow on hover, selected or not */
@media (hover:hover){ .day-sw-btn:hover, .day-sw-days:hover, .heli-sw-btn:hover{transform:none !important;} }
/* About + Our Team use a differently named breadcrumb strip — same header colour */
html body nav.tabs-bar{background-color:#392F31 !important;}
/* Chat button: black, same as the floating Book Now */
html body .pcchat-btn, html body #pcchatBtn{background:#2B2625 !important;background-image:none !important;}
@media (hover:hover){html body .pcchat-btn:hover, html body #pcchatBtn:hover{background:#4a4342 !important;}}
/* Chat always on top of everything (floating Book Now, menus, banners) */
html body .pcchat-panel, html body #pcchatPanel{z-index:100000 !important;}
html body .pcchat-btn, html body #pcchatBtn{z-index:100001 !important;}
/* Chat send button: plain (no grain), cream on the dark chat panel; pointing changes the colour only, never the size */
html body .pcchat-send, html body #pcchatSend{background:#E8E4DF !important;background-image:none !important;color:#2B2625 !important;transform:none !important;transition:background-color 0.2s, color 0.2s !important;}
html body .pcchat-send svg path, html body #pcchatSend svg path{fill:currentColor !important;}
@media (hover:hover){html body .pcchat-send:hover, html body #pcchatSend:hover{background:#ffffff !important;color:#2B2625 !important;transform:none !important;}}
html body .pcchat-send:active, html body #pcchatSend:active{transform:none !important;}
html body .hamburger-btn{font-family:'Sora',sans-serif;}
/* Lesson booking: time slot buttons — bigger boxes, clearer text; pointing changes colour only, never the size */
html body .slot-btn-row{gap:8px;}
html body .slot-btn{min-width:150px;padding:18px 14px;font-size:13px;letter-spacing:0.12em;font-weight:800;color:#2B2625;border:1px solid rgba(43,38,37,0.45);background:transparent;transform:none !important;transition:background-color 0.18s,border-color 0.18s,color 0.18s;}
html body .slot-btn .slot-range{font-size:12px;letter-spacing:0.02em;opacity:0.75;font-weight:500;margin-top:6px;}
@media (hover:hover){html body .slot-btn:hover{transform:none !important;background:rgba(43,38,37,0.07);border-color:#2B2625;}}
html body .slot-btn.on, html body .slot-btn.on:hover{background:#2B2625;border-color:#2B2625;color:#E8E4DF;}
html body .slot-btn.on .slot-range{opacity:0.85;}
@media (max-width:768px){html body .slot-btn{min-width:120px;padding:16px 10px;font-size:12px;}}
/* Lesson booking day blocks: the day's price sits bottom-left, big and black (desktop: grid; phone: last in the block) */
@media (min-width:769px){
  html body .day-block{display:grid;grid-template-columns:minmax(200px,auto) auto 1fr;grid-template-rows:1fr auto;column-gap:56px;row-gap:28px;align-items:center;}
  html body .day-block-left{grid-column:1;grid-row:1;align-self:center;}
  html body .day-block-mid{grid-column:2;grid-row:1 / span 2;}
  html body .day-block-right{grid-column:3;grid-row:1 / span 2;}
  html body .day-block-price{grid-column:1;grid-row:2;align-self:end;}
}
html body .day-block-price{display:flex;flex-direction:column;gap:4px;color:#2B2625;font-size:14px;font-weight:600;color:rgba(43,38,37,0.55);}
html body .day-block-price.has{color:#2B2625;}
html body .day-block-price .dbp-pp{font-size:15px;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;opacity:0.8;}
html body .day-block-price .dbp-total{font-size:clamp(34px,3.2vw,46px);font-weight:900;letter-spacing:-0.03em;line-height:1;}
html body .day-block-price .dbp-lbl{font-size:12px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;opacity:0.7;}
@media (max-width:768px){html body .day-block-price{width:100%;padding-top:16px;border-top:1px solid rgba(43,38,37,0.15);}}
/* Lesson booking: Skiing Level box — clear label and the same big boxes as the time slots */
html body #sb-level .lvl-lbl{font-size:14px;letter-spacing:0.2em;text-transform:uppercase;color:#2B2625;font-weight:800;margin-bottom:18px;}
html body #sb-level .btn-grp{display:flex;flex-wrap:wrap;gap:8px;}
html body #sb-level .tbtn{flex:1;min-width:150px;padding:18px 14px;font-size:13px;letter-spacing:0.12em;font-weight:800;color:#2B2625;border:1px solid rgba(43,38,37,0.45);background:transparent;transform:none !important;transition:background-color 0.18s,border-color 0.18s,color 0.18s;}
@media (hover:hover){html body #sb-level .tbtn:hover{transform:none !important;background:rgba(43,38,37,0.07);border-color:#2B2625;}}
html body #sb-level .tbtn.on, html body #sb-level .tbtn.on:hover{background:#2B2625;background-image:none;border-color:#2B2625;color:#E8E4DF;}
@media (max-width:768px){html body #sb-level .tbtn{min-width:calc(50% - 4px);padding:16px 10px;font-size:12px;}}
/* Phones: never two photos back to back on itinerary pages — text first, then its photo
   (Included / Not Included, and the first block right after the top photo) */
@media (max-width:768px){
  html body .inc-split{flex-direction:column !important;}
  html body .inc-split > .inc-split-panel{order:1 !important;}
  html body .inc-split > .inc-split-photo{order:2 !important;}
  html body .hero + .split{flex-direction:column !important;}
  html body .hero + .split > .split-body{order:1 !important;}
  html body .hero + .split > .split-photo{order:2 !important;}
}
/* Course pages: section bar under the top photo (Dates · Overview · … · Book Now) — twice the size, in the style of the
   homepage "Cat Skiing in Georgia" block: cream background, dark heavy italic capitals, black rounded Book Now */
html body .anchor-bar{background:#E8E4DF;border-top:1px solid rgba(43,38,37,0.12);border-bottom:1px solid rgba(43,38,37,0.12);padding:0 72px;min-height:84px;display:flex;align-items:center;gap:0;overflow:visible;}
html body .anchor-bar .anchor-link{display:flex;align-items:center;height:84px;padding:0 clamp(18px,2.4vw,34px);font-size:clamp(15px,1.45vw,21px) !important;font-weight:800;font-style:italic;text-transform:uppercase;letter-spacing:0.01em;color:#2B2625 !important;white-space:nowrap;border-right:1px solid rgba(43,38,37,0.18);transition:color 0.2s,background-color 0.2s;transform:none !important;}
html body .anchor-bar .anchor-link:first-child{padding-left:0;}
html body .anchor-bar .anchor-link:last-child{margin-left:auto;height:auto;padding:18px 44px;border:none;border-radius:10px;background:#2B2625 !important;color:#E8E4DF !important;font-style:normal;font-size:14px !important;letter-spacing:0.24em;}
@media (hover:hover){
  html body .anchor-bar .anchor-link:hover{color:rgba(43,38,37,0.6) !important;}
  html body .anchor-bar .anchor-link:last-child:hover{background:#4a4342 !important;color:#E8E4DF !important;}
}
@media (max-width:768px){
  html body .anchor-bar{display:grid;grid-template-columns:1fr 1fr;padding:10px 16px 18px;min-height:0;}
  html body .anchor-bar .anchor-link{height:auto;padding:16px 4px;font-size:16px !important;justify-content:center;border-right:none;border-bottom:1px solid rgba(43,38,37,0.15);}
  html body .anchor-bar .anchor-link:first-child{padding-left:4px;}
  html body .anchor-bar .anchor-link:last-child{grid-column:1 / -1;margin:14px 0 0;padding:16px;justify-content:center;font-size:13px !important;border:none;}
}
/* All main titles (h1/h2) in the house style of the homepage "Cat Skiing in Georgia" block: heavy, slanted capitals */
html body :is(h1,h2):not(footer *):not(.site-footer *):not(header *):not(nav *):not(.pcchat-panel *):not(.flyout *){font-style:italic !important;text-transform:uppercase !important;font-weight:900 !important;}
/* Course date boxes at the end of the page: plain black "Book Now →" (no background) */
html body .session-book{display:inline-flex;align-items:center;gap:12px;font-size:15px;font-weight:800;letter-spacing:0.24em;text-transform:uppercase;color:#2B2625;white-space:nowrap;}
html body .session-half > .session-book{margin-top:32px;}
html body .session-half-foot .session-book{margin-left:auto;}
@media (hover:hover){html body :is(.session-half,.session-pick-grid):hover .session-book{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px;}}
@media (max-width:768px){html body .session-book{font-size:13px;letter-spacing:0.2em;}html body .session-half > .session-book{margin-top:22px;}}
/* BASI pages: "What You Need" items in one grid so left and right items line up row by row */
html body .req-list.req-grid{display:grid !important;grid-template-columns:1fr 1fr;column-gap:56px;align-items:stretch;}
html body .req-list.req-grid > .req-item{height:100%;}
@media (max-width:768px){html body .req-list.req-grid{grid-template-columns:1fr;}}
/* Chat: your messages and the assistant's link buttons in warm cream (no blue grain), matching the send button */
html body .pcchat-msg.user{background:#E8E4DF !important;background-image:none !important;color:#2B2625 !important;}
html body .pcchat-action{background:#E8E4DF !important;background-image:none !important;color:#2B2625 !important;transform:none !important;}
@media (hover:hover){html body .pcchat-action:hover{background:#ffffff !important;color:#2B2625 !important;}}
/* Buttons and form fields use the site font (browsers default them to Arial) */
html body button, html body input, html body select, html body textarea{font-family:'Sora',sans-serif;}
/* Lesson booking pages: the big page title in the house style too (it is a span, not an h1) */
html body .hero-h1, html body .hero-h2{font-style:italic !important;text-transform:uppercase !important;font-weight:900 !important;}
html body .when-h{font-style:italic !important;}
/* Ski touring package prices: Solo to 6 people — 3 per row on desktop, 2 per row on phones */
html body .pricing .pr-grid{grid-template-columns:repeat(3,1fr) !important;}
@media (max-width:768px){html body .pricing .pr-grid{grid-template-columns:repeat(2,1fr) !important;}}
/* Date cards / date boxes / course boxes: never show the browser's blue link highlight or focus ring; text stays dark */
html body :is(.need-card,.session-pick-grid,.mod-btn){-webkit-tap-highlight-color:transparent;}
html body :is(.need-card,.session-pick-grid,.mod-btn):is(:hover,:focus,:active,:visited){outline:none;color:#2B2625;text-decoration:none;}
html body :is(.need-card,.session-pick-grid,.mod-btn):focus-visible{outline:3px solid #2B2625;outline-offset:3px;}
/* The selected course box is dark and links to the page you are on (so it always counts as visited): keep its text light */
html body .mod-btn.on, html body .mod-btn.on:is(:hover,:focus,:active,:visited){color:#E8E4DF;}
/* Menu (three-bar button): light text on the dark panel; pointed/open item turns bright white */
html body .flyout .flyout-item, html body .flyout .flyout-sub, html body .flyout .flyout-dest{color:rgba(240,235,227,0.82);}
html body .flyout .flyout-item.is-active, html body .flyout .flyout-sub.is-active{color:#fff;}
@media (hover:hover){html body .flyout :is(.flyout-item,.flyout-sub,.flyout-dest):hover{color:#fff;transform:none !important;}}
html body .flyout .flyout-lbl{color:rgba(240,235,227,0.6);font-size:12px;}
html body .flyout .flyout-note{color:rgba(240,235,227,0.55);font-size:12px;}

/* Header section buttons (2026-10-27): bold, frameless; colour/background change on hover only (never grow).
   They fill the space between the logo and the menu button; hidden below 1180px (menu button only). */
.top-bar .top-nav{flex:1;display:flex;align-items:center;justify-content:center;gap:0;margin:0 16px;min-width:0;}
.top-nav a{font-family:'Sora',sans-serif;font-size:12px;font-weight:800;font-style:italic;letter-spacing:0.04em;text-transform:uppercase;color:rgba(240,235,227,0.72);text-decoration:none;padding:9px 10px;border-radius:8px;white-space:nowrap;transition:color 0.2s,background-color 0.2s;}
@media (hover:hover){ .top-nav a:hover{color:#FFFFFF;background-color:rgba(240,235,227,0.12);transform:none !important;} }
.top-nav a.on{color:#FFFFFF;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px;}
.top-nav a:focus-visible{outline:2px solid #F0EBE3;outline-offset:2px;}
@media (min-width:1440px){ .top-nav a{font-size:13px;padding:9px 12px;} }
@media (min-width:1700px){ .top-nav a{font-size:14px;padding:9px 15px;} }
/* Tablets (769–1179px, 2026-10-27): the same buttons become a swipeable strip right under the header,
   in the place of the "Home / Lessons" breadcrumb line (which is hidden at these widths). Phones use the bottom bar below. */
@media (min-width:769px) and (max-width:1179px){
  .top-bar .top-nav{position:absolute;top:100%;left:0;right:0;height:32px;margin:0;padding:0 6px;justify-content:flex-start;gap:0;
    overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;background-color:#392F31;border-top:1px solid rgba(240,235,227,0.08);
    -webkit-mask-image:linear-gradient(to right,#000 88%,transparent);mask-image:linear-gradient(to right,#000 88%,transparent);}
  .top-bar .top-nav::-webkit-scrollbar{display:none;}
  .top-bar .top-nav a{flex:0 0 auto;font-size:12px;padding:6px 10px;letter-spacing:0.04em;}
  .top-bar .top-nav a.on{text-underline-offset:5px;}
  .top-bar .top-nav a:last-child{margin-right:28px;}
  html body nav.tabs, html body nav.tabs-bar{display:none !important;}
  .top-bar:has(.hamburger-btn[aria-expanded="true"]) .top-nav{visibility:hidden;}
  /* pages without a breadcrumb line (homepage): make room for the strip */
  body:not(:has(nav.tabs, nav.tabs-bar)) main{padding-top:32px;}
  body:not(:has(nav.tabs, nav.tabs-bar)) #camps{scroll-margin-top:85px !important;}
  body:not(:has(nav.tabs, nav.tabs-bar)) #contact{scroll-margin-top:100px !important;}
}

/* Phones (2026-10-27): app-style bottom bar — Guiding, Lessons, Courses, Camps, Menu (built by site.js) */
/* phone bottom bar height (bar, Price + Book bar, step-form bars and the chat button all sit on it) */
:root{--mbar-h:70px;}
.pc-mbar{display:none;}
@media (max-width:768px){
  .top-bar .top-nav{display:none;}
  .pc-mbar{position:fixed;left:0;right:0;bottom:0;z-index:220;display:grid;grid-template-columns:repeat(4,1fr) 0.72fr;column-gap:4px;background-color:#392F31;
    border-top:1px solid rgba(240,235,227,0.12);padding:8px 6px calc(8px + env(safe-area-inset-bottom,0px));}
  .pc-mbar a, .pc-mbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:54px;border:none;background:none;padding:0;
    font-family:'Sora',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;font-size:14.5px;letter-spacing:0;color:rgba(240,235,227,0.62);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color 0.2s;}
  .pc-mbar .on{color:#FFFFFF;}
  .pc-mbar .on span{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2.5px;}
  .pc-mbar a:focus-visible, .pc-mbar button:focus-visible{outline:2px solid #F0EBE3;outline-offset:-2px;border-radius:8px;}
  @media (max-width:374px){ .pc-mbar a, .pc-mbar button{font-size:13.5px;} }
  @media (max-width:339px){ .pc-mbar a, .pc-mbar button{font-size:12px;} }
  html.has-mbar body{padding-bottom:calc(var(--mbar-h) + env(safe-area-inset-bottom,0px));}
  html.has-mbar body .pcchat-btn, html.has-mbar body #pcchatBtn{bottom:calc(var(--mbar-h) + 16px + env(safe-area-inset-bottom,0px)) !important;}
  html.has-mbar body .pcchat-panel, html.has-mbar body #pcchatPanel{bottom:calc(var(--mbar-h) + 94px + env(safe-area-inset-bottom,0px)) !important;}
  html.has-mbar body .pc-book-pill{bottom:calc(var(--mbar-h) + 94px + env(safe-area-inset-bottom,0px)) !important;}
  html.has-mbar body .pc-consent{bottom:calc(var(--mbar-h) + env(safe-area-inset-bottom,0px));}
}

/* Phones (2026-10-27): text fields at 16px — below that iPhones zoom the page in when a field is tapped */
@media (max-width:768px){
  html body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]), html body select, html body textarea{font-size:16px !important;}
}

/* Phones (2026-10-27): app-style back bar — "‹ Parent" on the left, current page name on the right.
   Replaces the small "Home / Guiding / …" breadcrumb line at phone widths (built by site.js). */
.pc-back{display:none;}
@media (max-width:768px){
  html.has-back body nav.tabs, html.has-back body nav.tabs-bar{display:none !important;}
  .pc-back{position:fixed;left:0;right:0;top:44px;z-index:99;height:40px;display:flex;align-items:center;gap:10px;padding:0 16px 0 4px;
    background-color:#392F31;border-top:1px solid rgba(240,235,227,0.08);}
  .pc-back-link{display:flex;align-items:center;gap:2px;height:40px;padding:0 10px 0 6px;flex:0 0 auto;max-width:55%;
    font-family:'Sora',sans-serif;font-weight:800;font-style:italic;text-transform:uppercase;font-size:13px;letter-spacing:0.03em;color:rgba(240,235,227,0.78);text-decoration:none;
    -webkit-tap-highlight-color:transparent;border-radius:8px;transition:color 0.2s,background-color 0.2s;}
  .pc-back-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .pc-back-link svg{width:20px;height:20px;flex:0 0 auto;}
  .pc-back-link:active{background-color:rgba(240,235,227,0.12);color:#FFFFFF;}
  .pc-back-link:focus-visible{outline:2px solid #F0EBE3;outline-offset:-2px;}
  .pc-back-title{flex:1;min-width:0;text-align:right;font-family:'Sora',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;font-size:13px;letter-spacing:0.02em;
    color:#FFFFFF;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:4px;}
}

/* Phones (2026-10-27): the header and back bar slide away while scrolling down and come back when scrolling up (site.js toggles html.hdr-hidden) */
@media (max-width:768px){
  html.has-mbar header.top-bar{transition:transform 0.28s cubic-bezier(0.22,0.61,0.36,1);will-change:transform;}
  html.hdr-hidden header.top-bar{transform:translateY(-100%);}
  html.hdr-hidden.has-back header.top-bar{transform:translateY(calc(-100% - 42px));}   /* header + back bar inside it move as one */
}
@media (max-width:768px) and (prefers-reduced-motion:reduce){ html.has-mbar header.top-bar{transition:none;} }

/* Touch screens (2026-10-27): app-style press feedback — anything tappable dims while the finger is on it.
   No grey tap flash, and no double-tap zoom delay on controls. Nothing grows or moves. */
@media (hover:none), (pointer:coarse){
  html{-webkit-tap-highlight-color:transparent;}
  html body a, html body button, html body [role=button], html body label, html body summary{touch-action:manipulation;}
  html body a:active, html body button:active, html body [role=button]:active, html body summary:active,
  html body .day-sw-btn:active, html body .heli-sw-btn:active, html body .day-sw-days:active{opacity:0.7;}
}

/* Phones (2026-10-27): homepage Guiding block — zoom the photo so the line of skiers sits in the middle, between the title and the text */
@media (max-width:768px){
  /* the photo is a full-width band whose edges fall in the gaps between skiers (nobody cut in half);
     the line of skiers sits between the title and the text, and the photo fades into matching snow below */
  html body .hm-guiding-block{background:linear-gradient(to right,#DDE4E6,#AFBCC1) !important;}
  html body .hm-guiding-block .hm-guiding-img{top:calc(46% - 68.4vw) !important;bottom:auto !important;height:100vw !important;object-position:52.8% 50% !important;
    -webkit-mask-image:linear-gradient(to bottom,#000 78%,transparent 100%);mask-image:linear-gradient(to bottom,#000 78%,transparent 100%);}
}

/* Phones (2026-10-27): tab row on trip pages — Overview · Itinerary · Included · Prices (built by site.js).
   It sits above "About Trip" and stays pinned under the back bar while scrolling. */
.pc-tabs{display:none;}
@media (max-width:768px){
  .pc-tabs{position:sticky;top:84px;z-index:50;display:flex;background:#E8E4DF;border-bottom:2px solid #2B2625;padding:0 6px;overflow-x:auto;scrollbar-width:none;transition:top 0.28s cubic-bezier(0.22,0.61,0.36,1);}
  .pc-tabs::-webkit-scrollbar{display:none;}
  html.hdr-hidden .pc-tabs{top:0;}
  .pc-tabs a{flex:1 0 auto;text-align:center;padding:13px 10px 11px;font-family:'Sora',sans-serif;font-weight:900;font-style:italic;text-transform:uppercase;font-size:13px;letter-spacing:0.02em;
    color:rgba(43,38,37,0.5);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-2px;transition:color 0.2s,border-color 0.2s;}
  .pc-tabs a.on{color:#2B2625;border-bottom-color:#2B2625;}
  .pc-tabs a:focus-visible{outline:2px solid #2B2625;outline-offset:-3px;}
}

/* Phones (2026-10-27): simpler footer — logo + social on one line, contact rows, legal links, partner logos grid.
   Section links are hidden because the bottom bar already has them. */
@media (max-width:768px){
  html body .site-footer .footer-main{display:grid !important;grid-template-columns:1fr auto;gap:14px 12px !important;padding:28px 20px 18px !important;text-align:left !important;align-items:center;}
  html body .site-footer .footer-main > div:has(.footer-logo){grid-column:1;grid-row:1;}
  html body .site-footer .footer-main > div:has(.footer-links){display:none !important;}           /* section links: the bottom bar already has them */
  html body .site-footer .footer-main > div:has(.footer-contact-item){grid-column:1 / -1;grid-row:2;}
  html body .site-footer .footer-main > div:has(.footer-social){grid-column:2;grid-row:1;justify-self:end;}
  html body .site-footer .footer-logo{display:inline-block !important;margin:0 !important;} html body .site-footer .footer-logo img{height:34px !important;margin:0 !important;}
  html body .site-footer .footer-tagline{display:none !important;}
  html body .site-footer .footer-col-label{display:none !important;}
  html body .site-footer .footer-social{margin:0 !important;gap:4px !important;justify-content:flex-end !important;}
  html body .site-footer .footer-contact-item{display:block;text-align:left !important;font-size:14px !important;padding:10px 0 !important;border-top:1px solid rgba(43,38,37,0.12);margin:0 !important;}
  html body .site-footer .footer-legal-blocks{display:flex !important;flex-wrap:wrap !important;gap:2px 14px !important;justify-content:flex-start !important;margin:6px 0 0 !important;padding-top:10px;border-top:1px solid rgba(43,38,37,0.12);}
  html body .site-footer .footer-legal-blocks .footer-link-block{font-size:12px !important;padding:6px 0 !important;width:auto !important;color:rgba(43,38,37,0.7) !important;}
  html body .site-footer .footer-legal-blocks a[href*="#contact"]{display:none !important;}
  html body .site-footer .footer-partners{display:grid !important;grid-template-columns:repeat(3,1fr);gap:14px 10px !important;padding:16px 20px !important;justify-items:center;align-items:center;}
  html body .site-footer .footer-partners img{max-width:100% !important;height:auto !important;max-height:40px !important;width:auto !important;} html body .site-footer .footer-partners :is(.fp-ifmga,.fp-gmga){max-height:52px !important;}
  html body .site-footer .footer-bottom{padding:12px 20px 16px !important;text-align:center;}
}

/* Phones: the back bar sits inside the header (site.js), directly under it */
@media (max-width:768px){ header.top-bar > .pc-back{position:absolute !important;top:100% !important;left:0;right:0;} }

/* Calendars (2026-10-27): selected days are black with a white number — never a dark number on a dark circle */
html body .cday.ski-se .cday-n, html body .cday.ski-end .cday-n, html body .cday.picked .cday-n, html body .cday.sel .cday-n, html body .cday.selected .cday-n,
html body .cal-cell.sel, html body .cal-cell.selected, html body .cal-cell.picked{color:#FFFFFF !important;}
html body .cday.ski-end .cday-n{background:#6b6360 !important;}
/* Calendars where the day number sits directly in the cell (Guide Only, Heliskiing): a picked day is a solid black square with a white number */
html body .cday.sel:not(:has(.cday-n)), html body .cday.picked:not(:has(.cday-n)), html body .cday.selected:not(:has(.cday-n)){background:#2B2625 !important;color:#FFFFFF !important;}
html body .cday.sel .cday-n, html body .cday.picked .cday-n{background:#2B2625 !important;color:#FFFFFF !important;border-radius:50%;min-width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;}
html body .cday.ski-se .cday-n{background:#2B2625 !important;color:#FFFFFF !important;border-radius:50%;min-width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;}
html body .cday.ski-end .cday-n{border-radius:50%;min-width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;}

/* Text-link Book Now in the trip heroes (Goderdzi, Heliskiing): the same heavy italic as the big BOOK NOW in the date boxes */
html body a.book-cta{padding:10px 0 !important;font-weight:900 !important;font-style:italic !important;letter-spacing:-0.03em !important;text-transform:uppercase !important;font-size:clamp(34px,4.2vw,60px) !important;line-height:0.9 !important;}
@media (max-width:768px){ html body a.book-cta{font-size:clamp(30px,9vw,40px) !important;} }

/* Black date box: always one column on phones (some trip pages had an older two-column rule winning) */
@media (max-width:768px){
  html body .session-pick a.session-pick-grid{display:grid !important;grid-template-columns:1fr !important;}
  html body .session-pick a.session-pick-grid > .session-half:first-child{border-right:none !important;border-bottom:3px solid #2B2625 !important;}
  html body .session-pick a.session-pick-grid .session-half{padding:30px 26px !important;}
  html body .session-pick .session-half-month{letter-spacing:0.16em !important;}
}
/* Black date box: same layout on every page — both halves full height, content left-aligned (trip pages had an older centring rule) */
html body .session-pick a.session-pick-grid{align-items:stretch !important;justify-content:stretch !important;text-align:left !important;}
html body .session-pick a.session-pick-grid > .session-half{align-items:flex-start !important;justify-content:center !important;text-align:left !important;}
@media (min-width:769px){ html body .session-pick a.session-pick-grid{grid-template-columns:1fr 1fr !important;} }

/* Title scale (2026-10-27): every section title is one of two sizes.
   tt-xl = big section titles (mostly over photos: About Trip, Day by Day, Pricing, Guiding…)
   tt-l  = panel titles (Cat Skiing in Georgia, Included, Elite Camps, legal sections…)
   Hero titles (the page name in the first block) keep their own size. Classes are set in the page source. */
html body h2.tt-xl.tt-xl.tt-xl.tt-xl{font-size:clamp(56px,6vw,96px) !important;line-height:0.88 !important;}
html body h2.tt-l.tt-l.tt-l.tt-l{font-size:clamp(34px,3.4vw,52px) !important;line-height:0.92 !important;}
@media (max-width:768px){
  html body h2.tt-xl.tt-xl.tt-xl.tt-xl{font-size:40px !important;}
  html body h2.tt-l.tt-l.tt-l.tt-l{font-size:28px !important;}
}
/* Date box with price + Book Now on one line (BASI Level 2): wrap instead of pushing past the edge */
html body .session-half-foot{flex-wrap:wrap !important;row-gap:14px !important;}
html body .session-pick a.session-pick-grid > .session-half{min-width:0 !important;}

/* One button look (2026-10-27): every main action button = the most common style on the site
   (black #2B2625, cream text, 14 px / 800 / wide letter spacing, 10 px corners). Secondary buttons = same shape, outlined.
   Form choices, day switchers, steppers and the phone bottom-bar buttons are other kinds of control and are not touched. */
html body :is(a,button):is(.cs-explore,.camp-btn,.hm-btn,.hp-btn,.basi-btn,.split-book,.proj-btn,.ty-btn-dark,.btn,.waiver-print-btn,.pc-book-pill,.sub-btn):not(.btn-outline){
  background-color:#2B2625 !important;background-image:none !important;color:#E8E4DF !important;border:2px solid #2B2625 !important;border-radius:10px !important;
  font-family:inherit !important;font-size:14px !important;font-weight:800 !important;letter-spacing:0.24em !important;text-transform:uppercase !important;
  padding:16px 42px !important;line-height:1.2 !important;text-decoration:none !important;box-shadow:none;transition:background-color 0.2s,border-color 0.2s !important;}
html body a.anchor-link:is([style*="background"],.cta,.anchor-book){border-radius:10px !important;}
html body :is(a,button):is(.btn-outline,.ty-btn:not(.ty-btn-dark)){
  background-color:transparent !important;color:#2B2625 !important;border:2px solid #2B2625 !important;border-radius:10px !important;
  font-size:14px !important;font-weight:800 !important;letter-spacing:0.24em !important;text-transform:uppercase !important;padding:16px 42px !important;line-height:1.2 !important;}
@media (hover:hover){
  html body :is(a,button):is(.cs-explore,.camp-btn,.hm-btn,.hp-btn,.basi-btn,.split-book,.proj-btn,.ty-btn-dark,.btn,.waiver-print-btn,.pc-book-pill,.sub-btn):not(.btn-outline):hover{background-color:#4a4342 !important;border-color:#4a4342 !important;transform:none !important;}
  html body :is(a,button):is(.btn-outline,.ty-btn:not(.ty-btn-dark)):hover{background-color:rgba(43,38,37,0.08) !important;transform:none !important;}
}
@media (max-width:768px){
  html body :is(a,button):is(.cs-explore,.camp-btn,.hm-btn,.hp-btn,.basi-btn,.split-book,.proj-btn,.ty-btn,.btn,.waiver-print-btn,.sub-btn,.btn-outline):not(.zz-none){font-size:13px !important;letter-spacing:0.2em !important;padding:14px 28px !important;}
}
html body :is(.sub-btn,.cs-explore,.camp-btn,.hm-btn,.basi-btn,.btn) svg :is(line,polyline,path){stroke:currentColor !important;}
html body :is(.sub-btn,.cs-explore,.camp-btn,.hm-btn,.basi-btn,.btn) svg{color:inherit;}

/* Course pages: the section bar (Dates · Overview · … · Book Now) stays at the top while scrolling; the part you are in is underlined */
@media (min-width:769px){
  html body .anchor-bar{position:sticky;top:var(--pc-hdr-h,72px);z-index:40;min-height:64px;}
  html body .anchor-bar .anchor-link{height:64px;font-size:clamp(14px,1.2vw,18px) !important;box-shadow:inset 0 -3px 0 transparent;transition:color 0.2s,box-shadow 0.2s;}
  html body .anchor-bar .anchor-link:last-child{height:auto;padding:13px 36px;}
  html body .anchor-bar .anchor-link.on{box-shadow:inset 0 -3px 0 #2B2625;}
}
@media (max-width:768px){
  html body .anchor-bar{position:sticky;top:84px;z-index:50;display:flex;padding:0 6px;min-height:0;border-top:none;border-bottom:2px solid #2B2625;overflow-x:auto;scrollbar-width:none;transition:top 0.28s cubic-bezier(0.22,0.61,0.36,1);}
  html body .anchor-bar::-webkit-scrollbar{display:none;}
  html.hdr-hidden body .anchor-bar{top:0;}
  html body .anchor-bar .anchor-link{flex:1 0 auto;height:auto;padding:13px 10px 11px;font-size:13px !important;font-weight:900;letter-spacing:0.02em;color:rgba(43,38,37,0.5) !important;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;justify-content:center;}
  html body .anchor-bar .anchor-link:first-child{padding-left:10px;}
  html body .anchor-bar .anchor-link:last-child:not([href^="#"]){display:none;}   /* Book Now: the price + Book bar at the bottom already has it */
  html body .anchor-bar .anchor-link.on{color:#2B2625 !important;border-bottom-color:#2B2625;}
}

/* 3D maps: a still picture of the map shows straight away (before the 3D map loads, or until it is allowed) */
.map-block .mb-canvas{background:#141110 var(--mb-still,none) center/cover no-repeat;}
@media (max-width:768px){ .map-block .mb-canvas{background-image:var(--mb-still-ph,var(--mb-still,none));} }
html body .mb-consent{inset:auto 0 0 0;justify-content:flex-end;gap:12px;padding:90px 24px 30px;background:linear-gradient(to bottom,rgba(20,17,16,0) 0%,rgba(20,17,16,0.72) 60%,rgba(20,17,16,0.85) 100%);color:#E8E4DF;}
html body .mb-consent p{font-size:12px;line-height:1.5;color:rgba(232,228,223,0.8);order:2;}
html body .mb-consent button{order:1;border:2px solid #E8E4DF;border-radius:10px;background:#E8E4DF;color:#2B2625;font-size:13px;font-weight:800;letter-spacing:0.22em;padding:15px 34px;transition:background-color 0.2s;}
@media (hover:hover){ html body .mb-consent button:hover{background:#cfcac4;transform:none;} }
html body .map-block .mb-status{background:transparent;text-shadow:0 1px 8px rgba(0,0,0,0.7);}
html body .map-block:has(.mb-consent) .mb-status{display:none;}
html body .map-block:has(.mb-consent) :is(.mb-pin,.mb-credit){display:none;}

/* Phones: every link/button has a fingertip-size touch area (44px) — the look stays the same, only the invisible touch area grows */
@media (max-width:768px){
  html body .site-footer a.footer-link-block{min-height:44px;display:inline-flex !important;align-items:center;justify-content:center;box-sizing:border-box;}
  html body .site-footer a.footer-contact-item{min-height:44px;display:flex !important;align-items:center;box-sizing:border-box;}
  html body :is(.cal-arr,.swipe-dots button,.hamburger-btn,.pc-back-link,.footer-partners a,.footer-logo,.top-logo){position:relative;}
  html body :is(.cal-arr,.swipe-dots button,.hamburger-btn,.pc-back-link,.footer-partners a,.footer-logo,.top-logo)::after{content:'';position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%);}
  html body :is(.yn-btn,.tbtn){min-height:44px;}
}

/* Phones: legal pages fold into section titles (js in site.js); computer and print show everything */
.fold-all{display:none;}
@media screen and (max-width:768px){
  html.has-fold .fold-all{display:block;margin:20px 24px 4px auto;padding:12px 18px;background:none;border:2px solid #2B2625;border-radius:10px;color:#2B2625;font-family:'Sora',sans-serif;font-size:12px;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;cursor:pointer;}
  html.has-fold .uni-block{padding:22px 24px !important;gap:0 !important;min-height:0 !important;}
  html.has-fold .uni-block .uni-left{position:relative;padding-right:44px;cursor:pointer;-webkit-tap-highlight-color:transparent;}
  html.has-fold .uni-block .uni-left .uni-title{font-size:24px !important;margin:0 !important;}
  html.has-fold .uni-block .uni-left .uni-eyebrow{margin:0 0 6px !important;}
  html.has-fold .uni-block .uni-left::after{content:'+';position:absolute;right:0;top:50%;transform:translateY(-50%);width:34px;height:34px;border:2px solid #2B2625;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 20px/1 'Sora',sans-serif;color:#2B2625;}
  html.has-fold .uni-block.open .uni-left::after{content:'–';}
  html.has-fold .uni-block .uni-right{display:none !important;}
  html.has-fold .uni-block.open .uni-right{display:flex !important;padding-top:20px;}
}

/* Computer: trip tabs (Overview · Itinerary · Included · Prices) stay under the header while scrolling — same look as the course page bar */
@media (min-width:769px){
  .pc-tabs{position:sticky;top:var(--pc-hdr-h,72px);z-index:60;display:flex;align-items:center;background:#E8E4DF;border-top:1px solid rgba(43,38,37,0.12);border-bottom:1px solid rgba(43,38,37,0.12);padding:0 72px;min-height:64px;}
  .pc-tabs a{display:flex;align-items:center;height:64px;padding:0 clamp(18px,2.4vw,34px);font-family:'Sora',sans-serif;font-size:clamp(14px,1.2vw,18px);font-weight:800;font-style:italic;text-transform:uppercase;letter-spacing:0.01em;color:#2B2625;text-decoration:none;border-right:1px solid rgba(43,38,37,0.18);box-shadow:inset 0 -3px 0 transparent;transition:color 0.2s,box-shadow 0.2s;}
  .pc-tabs a:first-child{padding-left:0;}
  .pc-tabs a:last-child{border-right:none;}
  .pc-tabs a.on{box-shadow:inset 0 -3px 0 #2B2625;}
  @media (hover:hover){ .pc-tabs a:hover{color:rgba(43,38,37,0.6);} }
  .pc-tabs a:focus-visible{outline:2px solid #2B2625;outline-offset:-3px;}
}

/* Smallest phones (iPhone SE, 320px): option buttons may wrap their text instead of pushing the page sideways */
@media (max-width:360px){
  html body :is(.day-sw-btn,.heli-sw-btn,.day-sw-days){min-width:0 !important;padding-left:4px !important;padding-right:4px !important;}
  html body :is(.day-sw-btn,.heli-sw-btn,.day-sw-days) :is(b,span){white-space:normal !important;overflow-wrap:anywhere;text-align:center;}
}

/* FAQ button in every footer (desktop + phone): framed, softly rounded, spaced capitals */
.footer-faq{display:inline-block;margin-top:22px;padding:13px 22px;border:2px solid #2B2625;border-radius:10px;color:#2B2625;font-size:11px;font-weight:800;letter-spacing:0.2em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background-color 0.2s,color 0.2s;}
@media (hover:hover){.footer-faq:hover{background:#2B2625;color:#E8E4DF;}}
@media (max-width:768px){
  /* phone footer: FAQ button gets its own full-width row under the logo + social icons */
  html body .site-footer .footer-main > div:has(.footer-faq){display:contents !important;}
  html body .site-footer .footer-main .footer-social{grid-column:2 !important;grid-row:1 !important;justify-self:end;}
  html body .site-footer .footer-main .footer-faq{grid-column:1 / -1 !important;grid-row:2 !important;display:block;text-align:center;margin:6px 0 2px;padding:14px 18px;font-size:12px !important;}
  html body .site-footer .footer-main > div:has(.footer-contact-item){grid-row:3 !important;}
}

/* readable greys (WCAG AA 4.5:1 on cream / grey) + slightly larger tiny labels — approved 2026-11-01 */
html body .footer-tagline,html body .footer-contact-item,html body .og-text,html body .hm-news-block > p,html body .session-half-meta,html body .pcc-title{color:#655F5B !important;}
@media (max-width:768px){ html body .pc-tabs a:not(.on){color:#655F5B !important;} }
@media (min-width:769px){ html body .tabs-bar .tab, html body nav.tabs .tab{font-size:10.5px !important;} html body .footer-legal-blocks .footer-link-block{font-size:11px !important;width:auto !important;padding:8px 12px !important;} }

/* base colours for phone-only bars (hidden on computers) so checkers never read them as default blue links */
.pc-mbar a,.pc-mbar button,.pc-back,.pc-back a,.pc-back-title{color:#F0EBE3;}
.pc-mbar button{background:transparent;border:0;}
.pc-bookbar a{color:#F0EBE3;}
