/* Bell 2 Lodge. One stylesheet for the whole site. Colours and fonts match the old Avada theme. */
:root {
  --red: #8c0f05;
  --red-dark: #780404;
  --text: #555;
  --head: #333;
  --line: #e5e5e5;
  --wrap: 1340px;
  --body-font: "PT Sans", Arial, Helvetica, sans-serif;
  --head-font: "Ubuntu", Arial, Helvetica, sans-serif;
  --nav-font: "Antic Slab", Georgia, serif;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 18px/1.45 var(--body-font); color: var(--text); background: #fff; }
img { max-width: 100%; height: auto; vertical-align: middle; }
a { color: var(--red); text-decoration: none; }
a:hover { color: var(--red-dark); text-decoration: underline; }
h1, h2, h3, h4 { font-family: var(--head-font); font-weight: 400; color: var(--head); margin: 0 0 .5em; }
h1 { font-size: 34px; line-height: 48px; }
h2 { font-size: 22px; line-height: 1.3; }
h3 { font-size: 18px; line-height: 1.4; }
p { margin: 0 0 1em; }
hr { border: 0; height: 1px; margin: 24px auto 40px; background: radial-gradient(ellipse at 50% -50%, #d8d6d6 0, rgba(255,255,255,0) 80%); }
.center { text-align: center; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 20px; }
.narrow { max-width: 850px; margin: 0 auto; padding: 0 20px; }
.narrow.w-3-5 { max-width: 820px; }
.narrow.w-1-2 { max-width: 650px; }
.narrow.w-1-3 { max-width: 473px; }
.narrow.w-3-4 { max-width: 1015px; }

/* Header */
.topbar { border-bottom: 1px solid var(--line); font-size: 13px; }
.topbar .wrap { display: flex; justify-content: space-between; align-items: center; min-height: 44px; }
.social { list-style: none; margin: 0; padding: 0; display: flex; gap: 14px; }
.social svg { width: 15px; height: 15px; fill: #9b9b9b; display: block; }
.social a:hover svg { fill: var(--red); }
.secondary a { color: #0a0a0a; margin-left: 18px; }
.brand { display: flex; justify-content: space-between; align-items: center; padding-top: 12px; padding-bottom: 13px; gap: 20px; }
.logo img { height: 81px; width: auto; }
.brand-right { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; font-size: 13px; }
.phone { font: 16px/1.5 var(--head-font); color: #747474; }
.search { display: flex; }
.search input { font: 13px var(--body-font); border: 1px solid #d2d2d2; padding: 6px 8px; width: 200px; }
.search button { border: 0; background: #333; padding: 0 8px; cursor: pointer; }
.search svg { width: 14px; height: 14px; fill: #fff; display: block; }
.main-nav { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.main-nav ul { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; flex-wrap: wrap; }
.main-nav a { display: block; font: 15px/40px var(--nav-font); color: #333; padding: 0 22px; border-top: 3px solid transparent; }
.main-nav a:hover, .main-nav .current a { color: var(--red); text-decoration: none; border-top-color: var(--red); }
.main-nav .heli a { color: var(--red); }
.menu-toggle { display: none; }

/* Page banner */
.banner img { display: block; width: 100%; max-height: 600px; object-fit: cover; }

/* Content bands and columns */
.band { padding: 40px 0 20px; background-position: center top; }
.band.texture { background-image: url(/images/2015/09/home_body_bg.webp); }
.band.dark { background: #2b2b2b url(/images/2015/09/home_banner_bg.webp) center; color: #eee; }
.band.photo { background-size: cover; background-position: center; color: #fff; }
.band.dark h1, .band.dark h2, .band.dark h3, .band.photo h1, .band.photo h2, .band.photo h3 { color: #fff; }
.band > .row, .band > .price-cards { max-width: var(--wrap); margin-left: auto; margin-right: auto; }
.row { display: flex; flex-wrap: wrap; gap: 0 4%; padding: 0 20px; }
.row > [class^="col-"] { margin-bottom: 20px; min-width: 0; }
.col-1 { flex: 0 0 100%; }
.col-1-2 { flex: 0 0 48%; }
.col-1-3 { flex: 0 0 30.66%; }
.col-2-3 { flex: 0 0 65.33%; }
.col-1-4 { flex: 0 0 22%; }
.col-3-4 { flex: 0 0 74%; }
.col-1-5 { flex: 0 0 16.8%; }
.col-2-5 { flex: 0 0 37.6%; }
.col-3-5 { flex: 0 0 58.4%; }
.col-1-6 { flex: 0 0 13.33%; }
.col-5-6 { flex: 0 0 82.67%; }
.row > [class^="col-"]:empty { margin: 0; }

/* Buttons */
.button { display: inline-block; font: 700 12px/1 var(--body-font); text-transform: uppercase; letter-spacing: .02em; color: #fff;
  background: var(--red); border: 0; padding: 10px 20px; margin: 6px 0; cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 3px 0 var(--red-dark), 1px 5px 5px 3px rgba(0,0,0,.3); }
.button:hover { background: var(--red-dark); color: #fff; text-decoration: none; }
.button::after { content: " \203A"; }
.button.small { font-size: 11px; padding: 8px 14px; }

/* Lists, tables, callouts */
ul.checklist { list-style: none; padding: 0; }
ul.checklist li { padding-left: 26px; position: relative; margin-bottom: 6px; }
ul.checklist li::before { content: "\2713"; position: absolute; left: 0; color: var(--red); font-weight: 700; }
.table { width: 100%; border-collapse: collapse; margin-bottom: 1em; font-size: 16px; }
.table th, .table td { border-bottom: 1px solid var(--line); padding: 6px 8px; text-align: left; vertical-align: top; }
.callout { border-left: 3px solid var(--red); background: rgba(255,255,255,.7); padding: 16px 20px; margin-bottom: 1em; }
iframe { max-width: 100%; border: 0; }

/* Image strips (old Avada carousels) and photo gallery */
.carousel { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin-bottom: 1em; }
.carousel img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.88); display: flex; align-items: center; justify-content: center; z-index: 50; cursor: zoom-out; }
.lightbox img { max-width: 92vw; max-height: 90vh; }

/* Rates */
.price-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; padding: 0 20px 30px; }
.price-card { background: #fff; border: 1px solid #e0dede; text-align: center; padding-bottom: 20px; }
.price-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; margin-bottom: 14px; }
.price-card .price { font: 400 42px/1 var(--head-font); color: var(--head); margin: 8px 0; }
.price-card .note { font-size: 15px; color: #777; }

/* Blog */
article.post { max-width: 860px; margin: 0 auto; padding: 0 20px 30px; }
.post-date { color: #999; font-size: 14px; }
.post-hero { display: block; margin-bottom: 20px; }

/* Forms (Contact, Heliskiing Enquiry) */
.static-form .nf-form-fields-required { font-size: 14px; color: #777; margin-bottom: 10px; }
.static-form .nf-row { display: flex; gap: 0 20px; }
.static-form .nf-cell { flex: 1; margin-bottom: 14px; }
.static-form .label-hidden .nf-field-label { position: absolute; left: -9999px; }
.static-form input[type=text], .static-form input[type=email], .static-form input[type=tel], .static-form select, .static-form textarea {
  width: 100%; font: 16px var(--body-font); padding: 10px 12px; border: 1px solid #d2d2d2; background: #fff; color: #333; }
.static-form textarea { min-height: 140px; }
.static-form ul { list-style: none; padding: 0; margin: 4px 0 0; display: flex; gap: 20px; }
.static-form input[type=submit] { font: 700 13px var(--body-font); text-transform: uppercase; color: #fff; background: var(--red); border: 0; padding: 12px 28px; cursor: pointer;
  box-shadow: 0 3px 0 var(--red-dark); }
.ninja-forms-req-symbol { color: var(--red); }

/* Footer */
.site-footer { background: #363839 url(/images/2015/09/home_banner_bg.webp) center; color: #ddd; font-size: 14px; }
.footer-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; padding-top: 43px; padding-bottom: 40px; }
.site-footer h4 { color: #ddd; font: 700 13px var(--body-font); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 14px; }
.site-footer a { color: #ddd; }
.site-footer .posts { list-style: none; padding: 0; margin: 0; }
.site-footer .posts li { border-bottom: 1px solid rgba(255,255,255,.1); padding: 8px 0; }
.insta { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: 10px; }
.insta img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.copyright { background: #232323; color: #8c8c8c; font-size: 12px; padding: 18px 0 16px; }

/* Small screens */
@media (max-width: 800px) {
  body { font-size: 16px; }
  .logo img { height: auto; width: 100%; max-width: 340px; }
  .brand-right { flex-direction: row; align-items: center; }
  h1 { font-size: 28px; line-height: 1.3; }
  .row > [class^="col-"] { flex-basis: 100%; }
  .row > [class^="col-"]:empty, .hide-mobile { display: none; }
  .brand { flex-direction: column; align-items: flex-start; }
  .brand-right { width: 100%; justify-content: space-between; }
  .search input { width: 130px; }
  .menu-toggle { display: block; width: 100%; font: 15px/44px var(--nav-font); background: none; border: 0; text-align: left; cursor: pointer; color: #333; }
  .main-nav ul { display: none; flex-direction: column; }
  .main-nav.open ul { display: flex; }
  .main-nav a { border-top: 1px solid var(--line); padding: 0; }
  .footer-cols { grid-template-columns: 1fr 1fr; }
  .static-form .nf-row { flex-direction: column; }
}
@media (max-width: 500px) {
  .footer-cols { grid-template-columns: 1fr; }
  .secondary a { margin-left: 12px; }
}

/* Columns whose heading is centred are centred as a whole (icon blocks, feature boxes) */
[class^="col-"]:has(> h2.center), [class^="col-"]:has(> h3.center) { text-align: center; }
.band.dark a:not(.button), .band.photo a:not(.button) { color: #f2b8a8; }
/* Column photo backgrounds (old Avada column images) */
[class^="col-"].photo { background-size: cover; background-position: center; min-height: 280px; }
/* Photo tiles with a caption (Chalets area photos) */
.row:has(> .photo) { gap: 0; padding: 0; }
[class^="col-"].photo { position: relative; margin-bottom: 0; min-height: 260px; }
.photo > .label { position: absolute; top: 18px; right: 0; background: rgba(0,0,0,.55); color: #fff; font-size: 14px; padding: 8px 16px; }
/* Boxed list tables (Chalets amenities) */
.narrow .table, [class^="col-"] > .table { background: #fff; border: 1px solid #e0dede; }
.table tr:nth-child(even) td { background: #f6f6f6; }
/* Mobile-only blocks (old Avada mobile layouts) */
.show-mobile { display: none; }
@media (max-width: 800px) { .row.show-mobile { display: flex; } }
/* Embedded Google map */
.map iframe { display: block; width: 100%; height: 420px; }
/* Table header bar (Our Location distances) */
.table.distances thead th { background: var(--red); color: #fff; font: 400 18px var(--head-font); padding: 14px 16px; }
.table thead th { font-weight: 700; }
.static-form { text-align: left; }
/* Blog cards (home + /blog/) */
.post-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin: 10px 0 20px; }
.post-card { display: block; background: #fff; border: 1px solid #e0dede; color: var(--text); }
.post-card:hover { text-decoration: none; border-color: #ccc; }
.post-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.post-card h4 { color: var(--red); margin: 14px 16px 4px; font-size: 18px; }
.post-card p { margin: 0 16px 14px; font-size: 15px; }
.post-card .post-date { margin-bottom: 6px; }

/* Home: Accommodation / Heli-Skiing tiles, edge to edge */
.band.tiles { padding: 0; }
.band.tiles > .row { max-width: none; padding: 0; gap: 0; }
.band.tiles .row > [class^="col-"] { flex: 0 0 25%; margin: 0; }
.band.tiles .row > [class^="col-"]:not(.photo) { padding: 25px; }
.band.tiles .button { background: transparent; border: 1px solid #fff; box-shadow: none; }
.band.tiles .button:hover { background: rgba(255,255,255,.12); }
@media (max-width: 800px) { .band.tiles .row > [class^="col-"] { flex-basis: 100%; } .band.tiles .photo { min-height: 220px; } }
/* Rows made only of photo tiles run edge to edge (Food & Services, About strips) */
.band > .row:not(:has(> :not(.photo))) { max-width: none; }
[class^="col-"].photo:empty { min-height: 0; height: 300px; }
.col-1-5.photo:empty, .col-1-6.photo:empty { height: auto; aspect-ratio: 4 / 3; }
.band:has(> .row:only-child:not(:has(> :not(.photo)))) { padding: 0; }
.section-title { padding: 10px 20px 0; }
/* Heli Skiing: Join Us social row */
.join-us { font-size: 13px; color: #777; margin: 18px 0 6px; }
.social.big { justify-content: center; gap: 8px; margin-bottom: 10px; }
.social.big a { display: block; background: #9b9b9b; border-radius: 4px; padding: 8px; }
.social.big a:hover { background: var(--red); }
.social.big svg { width: 18px; height: 18px; fill: #fff; }

.band.dark .ninja-forms-req-symbol, .band.dark .nf-form-fields-required { color: #f2b8a8; }
/* Photo Gallery: bigger four-across photos */
.page-photo-gallery .carousel { grid-template-columns: repeat(4, 1fr); gap: 4px; }
.page-photo-gallery .carousel img { aspect-ratio: 3 / 2; }
.carousel img { cursor: zoom-in; }
@media (max-width: 800px) { .page-photo-gallery .carousel { grid-template-columns: repeat(2, 1fr); } }

/* Page title bar (blog posts, Operations Update) */
.title-bar { background: #303030 url(/images/2015/07/site_title_bar_bg.webp) center; border-bottom: 1px solid #d2d3d4; }
.title-bar .wrap { min-height: 87px; display: flex; align-items: center; }
.title-bar h1 { color: #fff; font-size: 18px; line-height: 1.3; margin: 0; }
.narrow:has(> h1.center), .narrow:has(> h2.center) { text-align: center; }
.narrow:has(> h1.center) .static-form, .narrow:has(> h2.center) .static-form { text-align: left; }

/* Header extras: phone icon, sticky main menu (as on the old site) */
.phone svg { width: 16px; height: 16px; fill: #747474; vertical-align: -2px; margin-right: 5px; }
.main-nav { position: sticky; top: 0; z-index: 50; }
@media (max-width: 800px) { .main-nav { position: static; } }
/* Copyright bar socials + back-to-top */
.copyright .wrap { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.copyright .social svg { width: 16px; height: 16px; fill: #666; }
.copyright .social a:hover svg { fill: #fff; }
.to-top { position: fixed; right: 30px; bottom: 0; z-index: 60; width: 40px; height: 32px; background: #333; border-radius: 4px 4px 0 0;
  display: flex; align-items: center; justify-content: center; opacity: .85; }
.to-top:hover { opacity: 1; }
.to-top svg { width: 18px; height: 18px; fill: #fff; }
html { scroll-behavior: smooth; }

/* Mobile-only / desktop-only blocks that aren't rows */
@media (max-width: 800px) { div.show-mobile:not(.row) { display: block; } }

/* Home: hours table */
.table.hours { border-collapse: collapse; background: #f9f9f9; font-size: 15px; }
.table.hours th, .table.hours td { border: 1px solid #e0dede; padding: 14px 16px; font-weight: 400; }
.table.hours tbody td:first-child, .table.hours tbody td b { font-weight: 700; }

/* Outlined button (dark bands) */
.button.outline { background: transparent; border: 1px solid #fff; box-shadow: none; padding: 11px 20px; }
.button.outline:hover { background: rgba(255,255,255,.12); }

/* Home: route map (was the hmaps plugin) */
.route-map { height: 660px; background: #cfe3ef; position: relative; z-index: 0; }
.route-map .leaflet-tile-pane { filter: saturate(.18) brightness(1.06) contrast(.92); }
.route-map .leaflet-popup-content { font: 14px/1.4 var(--body-font); }
@media (max-width: 800px) { .route-map { height: 380px; } }

/* Home: four call-to-action boxes on the forest photo */
.band.cta-boxes { background-size: cover; padding: 45px 0 40px; }
.cta-boxes .row { gap: 52px; }
.cta-boxes .row > .col-1-4 { position: relative; background: url(/images/2015/10/home_feature_box_bg.webp) #2b2b2b; border-radius: 10px;
  padding: 60px 20px 25px; margin: 25px 0 0; flex: 1 1 0; text-align: center; color: #ddd; }
.cta-boxes .col-1-4 > img:first-child { position: absolute; top: -25px; left: 50%; margin-left: -37px; }
.cta-boxes h2 { color: #fff; margin-top: 0; }
.cta-boxes p img { display: block; margin: 0 auto; border-radius: 8px; }
@media (max-width: 800px) { .cta-boxes .row { gap: 40px; } .cta-boxes .row > .col-1-4 { flex-basis: 100%; } }
.band.tiles a:not(.button) { color: #fff; }

/* Header: textured band, shadow under the menu, phone beside the search (as on the old site) */
.brand-band { background: #fff url(/images/2015/07/header_background.webp) repeat; }
.main-nav { border-bottom: 0; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.brand-right { flex-direction: row; align-items: center; gap: 14px; }
/* Home: rule under the welcome note */
hr.sep { border: 0; border-top: 1px solid #e0dede; max-width: 1170px; margin: 30px auto 25px; }
/* Home tiles: Read More sits at the right */
.band.tiles .row > [class^="col-"]:not(.photo) { display: flex; flex-direction: column; }
.band.tiles .row > [class^="col-"]:not(.photo) > .button { align-self: flex-end; }
/* Home CTA boxes: buttons line up along the bottom */
.cta-boxes .row > .col-1-4 { display: flex; flex-direction: column; align-items: center; }
.cta-boxes .row > .col-1-4 > .button { margin-top: auto; }
.cta-boxes .row > .col-1-4 > p { width: 100%; }
/* Search page */
.search.big { margin: 10px 0 25px; }
.search.big input { width: 100%; max-width: 420px; font-size: 16px; padding: 9px 10px; }
.search.big button { color: #fff; font: 700 13px var(--body-font); text-transform: uppercase; padding: 0 16px; background: var(--red); }
.search-hit { border-bottom: 1px solid var(--line); padding: 10px 0; }
.search-hit h3 { margin: 0 0 4px; }
.search-hit p { margin: 0; font-size: 15px; }
.search-hit mark { background: #fbe9a5; }
/* closing band on inner pages: same boxes, no photos */
.band.cta-boxes.slim { padding: 30px 0 35px; }
.cta-boxes.slim .row > .col-1-4 { padding: 55px 20px 22px; }
.cta-boxes.slim h2 { margin-bottom: 6px; }
.cta-boxes.slim p { font-size: 14px; margin-bottom: 16px; }
/* Half-width photo running to the page edge beside text (Contact, thank-you pages) */
.band.split { padding: 0; }
.band.split > .row { max-width: none; padding: 0; gap: 0; align-items: stretch; }
.band.split .row > .photo { flex: 0 0 50%; min-height: 560px; margin: 0; }
.band.split .row > .col-1-2:not(.photo) { flex: 0 0 50%; max-width: 600px; padding: 60px 40px 60px; margin: 0; }
.band.split .callout { background: #f6f6f6; padding: 22px 26px 30px; margin-top: 16px; }
@media (max-width: 800px) { .band.split .row > .col-1-2:not(.photo) { flex-basis: 100%; max-width: none; padding: 30px 20px; } }

/* Carousels (site.js turns a .carousel with 2+ photos into a full-width strip, 4 across, as on the old site) */
.carousel.strip { display: block; position: relative; width: 100vw; margin: 0 0 0 calc(50% - 50vw); }
.carousel.strip .track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.carousel.strip .track::-webkit-scrollbar { display: none; }
.carousel.strip .track > * { flex: 0 0 25%; scroll-snap-align: start; aspect-ratio: var(--r, 1.5); overflow: hidden; display: block; }
.carousel.strip img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; display: block; }
.carousel.strip .arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border: 0; cursor: pointer;
  background: rgba(60,60,60,.55); }
.carousel.strip .arrow:hover { background: rgba(60,60,60,.85); }
.carousel.strip .prev { left: 0; } .carousel.strip .next { right: 0; }
.carousel.strip .arrow::before { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; }
.carousel.strip .prev::before { transform: translate(-30%, -50%) rotate(135deg); }
.carousel.strip .next::before { transform: translate(-70%, -50%) rotate(-45deg); }
@media (max-width: 800px) { .carousel.strip .track > * { flex-basis: 50%; } }
@media (max-width: 500px) { .carousel.strip .track > * { flex-basis: 100%; } }
section.band:has(> .row > .col-1 > .carousel.strip) { padding: 0; }
section.band:has(> .row > .col-1 > .carousel.strip) > .row, section.band:has(> .row > .col-1 > .carousel.strip) .col-1 { margin: 0; padding-top: 0; padding-bottom: 0; }
/* Lightbox arrows */
.lightbox button { position: absolute; background: none; border: 0; color: #fff; font: 300 56px/1 sans-serif; cursor: pointer; padding: 10px 18px; opacity: .8; }
.lightbox button:hover { opacity: 1; }
.lightbox .lb-prev { left: 10px; top: 50%; transform: translateY(-50%); }
.lightbox .lb-next { right: 10px; top: 50%; transform: translateY(-50%); }
.lightbox .lb-close { right: 10px; top: 10px; font-size: 40px; }
.lightbox.single .lb-prev, .lightbox.single .lb-next { display: none; }
.lightbox { z-index: 2000; }

/* Rows made only of photos run the full width */
.row:has(> .photo):not(:has(> :not(.photo))) { max-width: none; }
/* Chalets: rooms band wider, as on the old site */
.page-chalets .band.dark > .row:has(> .col-1-3) { max-width: 1400px; }
/* Simple list tables (Chalets amenities) */
.narrow .table td { padding: 10px 16px; font-size: 15px; }
/* Outlined button on light bands */
.button.outline.dark { border-color: #555; color: #444; }
.button.outline.dark:hover { background: rgba(0,0,0,.06); color: #222; }
.join-us { text-align: center; }
/* Photo credits with a small camera, as on the old site */
p.credits::before { content: ""; display: block; width: 16px; height: 14px; margin: 0 auto 6px; opacity: .8;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 21'%3E%3Cpath fill='%23ccc' d='M8 0h8l2 3h4a2 2 0 012 2v14a2 2 0 01-2 2H2a2 2 0 01-2-2V5a2 2 0 012-2h4zm4 6a5.5 5.5 0 100 11 5.5 5.5 0 000-11zm0 2.5a3 3 0 110 6 3 3 0 010-6z'/%3E%3C/svg%3E") center / contain no-repeat; }
.band.dark p.credits a { color: #bbb; }
/* Forms: compact fields and an outlined submit on the right, like the old Ninja Forms */
.static-form input[type=text], .static-form input[type=email], .static-form input[type=tel], .static-form select, .static-form textarea {
  font: 13px/1.3 var(--body-font); padding: 8px 10px; }
.static-form textarea { min-height: 90px; }
.static-form .nf-row { gap: 0 10px; }
.static-form .nf-cell { margin-bottom: 12px; }
.static-form .submit-container { text-align: right; }
.static-form input[type=submit] { background: transparent; color: #333; border: 1px solid #333; box-shadow: none; padding: 9px 30px; font-size: 12px; border-radius: 2px; }
.static-form input[type=submit]:hover { background: #333; color: #fff; }
.band.dark .static-form input[type=submit] { color: #fff; border-color: #fff; }
.band.dark .static-form input[type=submit]:hover { background: rgba(255,255,255,.15); }
.static-form .radio-container { display: flex; align-items: center; gap: 20px; font-size: 13px; }
.static-form .radio-container .nf-field-label { margin: 0; }
.static-form .radio-container ul { margin: 0; }
/* strip spans the band itself (no 100vw maths, so no scrollbar offset) */
.carousel.strip { width: auto; margin: 0; }
section.band:has(> .row > .col-1 > .carousel.strip) > .row { max-width: none; padding: 0; }
section.band:has(> .row > .col-1 > .carousel.strip) .col-1 { flex-basis: 100%; }
.static-form .radio-wrap { display: flex; align-items: center; gap: 24px; }
p.credits { padding-top: 20px; }
.band.split > .row > .col-1-2.photo { align-self: stretch; min-height: 640px; }
/* Bands that are only a row of photos: no padding, photos share the full width equally */
section.band:has(> .row:only-child:not(:has(> :not(.photo)))) { padding: 0; }
.row:has(> .photo):not(:has(> :not(.photo))) > .photo { flex: 1 1 0; margin: 0; }
@media (max-width: 800px) { .row:has(> .photo):not(:has(> :not(.photo))) > .photo { flex-basis: 100%; } }
/* Carousels inside a half/third column show one photo at a time, inside the column */
[class^="col-"]:not(.col-1) > .carousel.strip .track > * { flex-basis: 100%; }
[class^="col-"]:not(.col-1) > .carousel.strip { margin-bottom: 1em; }
.row:has(> .photo):not(:has(> :not(.photo))) > .photo.col-1-2 { flex-grow: 2; }
.row:has(> .photo):not(:has(> :not(.photo))) > .photo.col-2-3 { flex-grow: 2; }
/* Links styled as buttons on light texture bands are outlined, as on the old site */
.band.texture a.button:not(.outline) { background: transparent; border: 1px solid #555; color: #444; box-shadow: none; }
.band.texture a.button:not(.outline):hover { background: rgba(0,0,0,.06); color: #222; }
/* A "carousel" with a single photo is just that photo, full column width */
.carousel:not(.strip):has(> :only-child) { display: block; }
.carousel:not(.strip):has(> :only-child) img { width: 100%; aspect-ratio: auto; height: auto; }
.row:has(> .photo):not(:has(> :not(.photo))) + * { margin-top: 45px; }
.route-map.color .leaflet-tile-pane { filter: none; }
.route-map.local { height: 430px; }
.route-map img { max-width: 235px; height: auto; display: block; margin: 4px 0; }
/* Dark bands: link buttons are outlined white (the CTA boxes keep their red buttons) */
.band.dark:not(.cta-boxes) a.button:not(.outline) { background: transparent; border: 1px solid #fff; box-shadow: none; padding: 11px 22px; }
.band.dark:not(.cta-boxes) a.button:not(.outline):hover { background: rgba(255,255,255,.12); }
/* Button icons (Our Location) */
.button[class*="icon-"]::after { content: none; }
.button[class*="icon-"]::before { content: ""; display: inline-block; width: 13px; height: 13px; margin-right: 8px; vertical-align: -2px; background: currentColor;
  -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.button.icon-car { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 11l1.5-4.5A2 2 0 018.4 5h7.2a2 2 0 011.9 1.5L19 11a2 2 0 012 2v5h-2v2h-3v-2H8v2H5v-2H3v-5a2 2 0 012-2zm2.1 0h9.8l-1-3.2a1 1 0 00-1-.8H9.1a1 1 0 00-1 .8zM6.5 16a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm11 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z'/%3E%3C/svg%3E"); }
.button.icon-map { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3l6 2 6-2v18l-6 2-6-2-6 2V5zm1 2.4v13.2l4 1.3V6.7z'/%3E%3C/svg%3E"); }
.button.icon-cam { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 6h12a2 2 0 012 2v2l5-3v10l-5-3v2a2 2 0 01-2 2H3a2 2 0 01-2-2V8a2 2 0 012-2z'/%3E%3C/svg%3E"); }
.button.icon-alert { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 110 20 10 10 0 010-20zm-1 5v7h2V7zm0 9v2h2v-2z'/%3E%3C/svg%3E"); }
.button.icon-road { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 3h2v3h2V3h2l6 18h-8v-4h-2v4H3zm2 6v4h2V9z'/%3E%3C/svg%3E"); }
.page-our-location .col-1-5, .page-our-location .col-1-4, .page-our-location .col-1-3 { text-align: center; }
.page-our-location .col-1-5 > .button { min-width: 155px; }
/* Distance tables: open rows on the texture, as on the old site */
.table.distances { background: transparent !important; border: 0 !important; }
.table.distances td, .table.distances tbody th { background: transparent !important; border: 0; padding: 9px 16px; font-size: 15px; }
.table.distances thead tr:nth-child(2) th, .table.distances tr:first-child + tr th { background: transparent; }
/* Rates: one pricing table, as on the old site */
.price-cards { max-width: 680px; margin: 0 auto 10px; gap: 0; padding: 0; grid-template-columns: repeat(3, 1fr); background: #f6f6f6; border: 1px solid #ddd; }
.price-card { background: transparent; border: 0; border-left: 1px solid #ddd; padding-bottom: 24px; }
.price-card:first-child { border-left: 0; }
.price-card h3 { background: #fff; margin: 0; padding: 14px 8px; font-size: 16px; border-bottom: 1px solid #ddd; }
.price-card img { aspect-ratio: 222 / 148; margin-bottom: 12px; }
.price-card .price { font: 700 48px/1 var(--head-font); color: var(--red); margin: 18px 0 14px; }
.price-card .price sup { font-size: 18px; font-weight: 400; vertical-align: 22px; margin-right: 2px; }
.price-card .note { font-size: 16px; color: #555; }
@media (max-width: 700px) { .price-cards { grid-template-columns: 1fr; } .price-card { border-left: 0; border-top: 1px solid #ddd; } }
.rates-notes { max-width: 685px; }
.rates-notes img.wide { width: 100%; height: auto; }
.band > .price-cards { max-width: 680px; }
.narrow.rates-notes { max-width: 685px; text-align: left; }
.narrow.rates-notes p { text-align: left; }
/* Blog index: list with date boxes, as on the old site */
.post-list { padding-top: 20px; }
.post-item { display: grid; grid-template-columns: 66px 258px 1fr; gap: 0 14px; padding: 30px 0 14px; border-bottom: 1px solid #e0dede; margin-bottom: 30px; position: relative; }
.post-date-box { display: flex; flex-direction: column; text-align: center; }
.post-date-box .day, .post-date-box .my { background: #8c0f05; color: #fff; line-height: 1; }
.post-date-box .day { font: 700 22px var(--head-font); padding: 8px 0 2px; }
.post-date-box .my { font-size: 13px; padding: 2px 0 9px; }
.post-date-box .type { height: 46px; background: #eee url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%238c0f05' d='M17 3l4 4-11 11-5 1 1-5zM5 21h14v1H5z'/%3E%3C/svg%3E") center / 16px no-repeat; margin-top: 3px; }
.post-thumb img { width: 100%; display: block; }
.post-body h2 { font-size: 18px; margin: 0 0 18px; }
.post-body p { font-size: 16px; }
.post-item .read-more { grid-column: 3; justify-self: end; font-size: 13px; margin-top: 10px; }
.post-item .read-more::after { content: " \203A"; }
@media (max-width: 700px) { .post-item { grid-template-columns: 66px 1fr; } .post-body, .post-item .read-more { grid-column: 1 / -1; } .post-body { margin-top: 14px; } }
/* Blog posts: article + sidebar */
.post-layout { display: grid; grid-template-columns: minmax(0, 1fr) 245px; gap: 0 50px; padding-top: 10px; }
.post-main img { max-width: 100%; height: auto; }
.post-nav { text-align: right; font-size: 14px; margin-bottom: 20px; }
.post-nav a { margin-left: 14px; }
.post-nav .prev::before { content: "\2039 "; } .post-nav .next::after { content: " \203A"; }
.post-main figure { margin: 0 0 1.4em; }
.post-main figure img { display: block; width: 100%; }
.post-main figcaption { text-align: right; font-size: 11px; color: #555; padding: 6px 8px 0; }
.post-side h4 { font: 400 15px var(--head-font); color: #333; margin: 0 0 10px; }
.post-side ul { list-style: none; padding: 0; margin: 0 0 30px; }
.post-side li { border-bottom: 1px solid #e0dede; padding: 8px 0; font-size: 14px; }
.post-side li::before { content: "\203A  "; color: var(--red); }
.about-author { border-top: 1px solid #e0dede; margin-top: 40px; padding-top: 20px; display: grid; grid-template-columns: 72px 1fr; gap: 6px 20px; }
.about-author h3 { grid-column: 1 / -1; font-size: 16px; margin: 0 0 10px; }
.about-author img { border-radius: 50%; }
.about-author p { font-size: 14px; margin: 0; }
@media (max-width: 800px) { .post-layout { grid-template-columns: 1fr; } }
.band.split h1 { font-size: 26px; line-height: 1.35; margin-bottom: 16px; }
.band.split .callout h2 { font-size: 18px; }
.band.split .callout p { font-size: 14px; }
.band.split > .row > .col-1-2.photo { min-height: 520px; }
.page-contact .band.split > .row > .col-1-2.photo { min-height: 640px; }
iframe[src*="cloudflarestream"] { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; display: block; }

/* ---- Parity pass 2026-11-06 (measured against the live Avada site) ---- */
/* Page banners fade in once the photo has loaded (Slider Revolution "Fade In", 600 ms) */
.hero-js .banner img { opacity: 0; transition: opacity .6s ease-in-out; }
.hero-js .banner img.in { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .hero-js .banner img { transition: none; } }
/* Text on dark and photo bands is light grey, not white */
.band.dark { color: #d9d9d9; }
.band.dark h1, .band.dark h2, .band.dark h3 { color: #d9d9d9; }
.band.tiles h2 { color: #ccc; }
.band.tiles p { color: #dfdfdf; }
.page-home .band.dark:not(.tiles) h2, .page-home .band.dark:not(.tiles) p { color: #ccc; }
.band.dark .static-form label, .band.dark .static-form legend { color: #afafaf; }
.band.dark p.credits a { color: #999; }
.photo > .label { color: #dcdcdc; background: rgba(0,0,0,.5); }
.join-us { color: #a0a0a0; }
.button.outline.dark { color: #555; }
.page-heli-skiing .button.outline.dark { color: #707070; }
/* Buttons: flat (no shadow), 11px 23px, 13px text */
.button { font-size: 13px; line-height: 16px; padding: 11px 23px; box-shadow: none; }
.button.outline, .band.dark:not(.cta-boxes) a.button:not(.outline) { padding: 11px 23px; }
.button.distributor { font-size: 12px; line-height: 14px; padding: 9px 20px; }
.button.small { font-size: 13px; line-height: 16px; padding: 8px 16px; }
/* Footer text 18px, as on the old site */
.site-footer { font-size: 18px; line-height: 25px; }
.site-footer p { color: #8c8989; }
.site-footer a:not(.button) { color: #bfbfbf; line-height: 27px; }
.site-footer .posts li { padding: 12px 0 0; }
/* Tables: 18px text, 10px 20px cells */
.table, .table.hours, .narrow .table td, .table.distances td, .table.distances tbody th { font-size: 18px; line-height: 25px; }
.table.hours th { padding: 20px; }
.table.hours td, .narrow .table td { padding: 10px 20px; }
.table.distances td, .table.distances tbody th { padding: 6px; }
/* Copy column: 850px of text (the padding sits outside it) */
.narrow { max-width: 890px; }
.narrow.rates-notes { max-width: 890px; }
.page-heli-skiing .narrow { max-width: 847px; }
.copyright { line-height: 1.45; }
/* Rates grid: 3 x 277px = 831px inside the 850px column, as on live */
.price-cards, .band > .price-cards { max-width: 831px; }

/* Rates cards, matched to live's Avada pricing table */
.price-cards { background: transparent; border: 0; gap: 0; }
.price-card { background: #f4f4f4; border: 1px solid #c1c1c1; border-left-width: 1px; margin: 9px 0; padding: 0 15px 15px; }
.price-card:first-child { border-left: 1px solid #c1c1c1; }
.price-card h3 { margin: 0 -15px; padding: 15px; font-size: 16px; line-height: 24px; border-bottom: 1px solid #c1c1c1; }
.price-card .shot { position: relative; z-index: 1; display: block; margin: 0 -15px; }
.price-card .shot img { display: block; width: 100%; aspect-ratio: 276 / 180; margin: 0; }
.price-card .shot::before, .price-card .shot::after { content: ""; position: absolute; z-index: -1; bottom: 15px; left: 10px; width: 60%; height: 20%;
  max-width: 460px; box-shadow: 0 17px 10px rgba(0,0,0,.7); transform: rotate(-3deg); }
.price-card .shot::after { left: auto; right: 10px; transform: rotate(3deg); }
.price-card .price { font: 700 55px/63px var(--head-font); color: var(--red); margin: 0; padding: 15px 0; }
.price-card .price sup { font: 400 21px/25px var(--head-font); color: #505050; vertical-align: top; position: relative; top: 11px; margin-right: 1px; }
.price-card .note { font-size: 18px; line-height: 25px; color: #555; margin: 0 0 20px; }
.price-card .button { margin: 15px 0 20px; }
/* Book Now buttons: FontAwesome-style chevron, as on live */
.button.distributor::after { content: ""; display: inline-block; width: 8px; height: 12px; margin-left: 10px; vertical-align: -1px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M285.5 273L91.1 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.7-22.7c-9.4-9.4-9.4-24.5 0-33.9L188.5 256 34.5 101.3c-9.3-9.4-9.3-24.5 0-33.9l22.7-22.7c9.4-9.4 24.6-9.4 33.9 0L285.5 239c9.4 9.4 9.4 24.6 0 34z'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M285.5 273L91.1 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.7-22.7c-9.4-9.4-9.4-24.5 0-33.9L188.5 256 34.5 101.3c-9.3-9.4-9.3-24.5 0-33.9l22.7-22.7c9.4-9.4 24.6-9.4 33.9 0L285.5 239c9.4 9.4 9.4 24.6 0 34z'/%3E%3C/svg%3E") center / contain no-repeat; }
@media (max-width: 700px) { .price-card { margin: 9px 0 0; } }
.price-cards, .band > .price-cards { background: #f4f4f4; }
