/* Cinzel 400 normal - latin-ext (SIL Open Font License) */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/cinzel-latin-ext-normal-0ad36e.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Cinzel 400 normal - latin (SIL Open Font License) */
@font-face {
  font-family: 'Cinzel';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/cinzel-latin-normal-c164e2.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Jost 300 italic - latin-ext (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/jost-latin-ext-italic-ab15cc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Jost 300 italic - latin (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: italic;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/jost-latin-italic-2c03d5.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Jost 300 normal - latin-ext (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/jost-latin-ext-normal-1bb29f.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Jost 300 normal - latin (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(/fonts/jost-latin-normal-b58a58.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Jost 400 normal - latin-ext (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jost-latin-ext-normal-1bb29f.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Jost 400 normal - latin (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/jost-latin-normal-b58a58.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Jost 500 normal - latin-ext (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/jost-latin-ext-normal-1bb29f.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Jost 500 normal - latin (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/jost-latin-normal-b58a58.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Jost 600 normal - latin-ext (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/jost-latin-ext-normal-1bb29f.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Jost 600 normal - latin (SIL Open Font License) */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/jost-latin-normal-b58a58.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ===================================
    Bio Willow Coffins - theme (v3, 09/10/2026)
    Base: Crafto "spa salon" demo. Layout language taken from the brochure:
    - white zones alternating with #e3e5da zones, colour blocks offset behind the content (".bw-spread")
    - full-bleed photographs with square corners, no boxed cards
    - very large grey numerals (Felix Titling 196pt in the brochure) that cross photo edges
    - small caps (Cinzel = Felix Titling) alternating with light italics and light figures (Jost = Helvetica Light)
    Fonts are self-hosted (@font-face above, tools/fonts_local.py).
====================================== */
:root {
    --base-color: #6b7556;
    --very-light-gray: #e3e5da;
    --dark-gray: #2f2f2d;
    --medium-gray: #6f6f68;
    --light-medium-gray: #f2f3ee;
    --alt-font: 'Cinzel', serif;
    --primary-font: 'Jost', sans-serif;
    --bw-sage: #e3e5da;
    --bw-white: #ffffff;
    --bw-charcoal: #515151;
    --bw-numeral: #5b5b5b;
    --bw-grey: #7c7c7c;
    --fs-body: 18px;
    --fs-label: 17px;
    --fs-lead: 23px;
    --fs-title: 52px;
    --fs-product: clamp(64px, 8.5vw, 150px);
    --fs-numeral: clamp(150px, 22vw, 360px);
    --fs-numeral-band: clamp(120px, 15vw, 250px);
    --fs-value: 34px;
    --fs-sizes: 22px;
    --fs-note: 15px;
}
html, body { overflow-x: hidden; }
body { font-size: var(--fs-body); line-height: 1.7; font-weight: 300; color: #3f3f3c; background: var(--bw-white); }
b, strong { font-weight: 500; }
::selection { background: var(--bw-sage); color: var(--dark-gray); }
img { border-radius: 0 !important; }
.alt-font, h1, h2, h3, h4, h5, h6, .bw-label, .bw-title, .bw-product-name, .bw-numeral, .bw-entry-name, .bw-entry-num, .bw-quote, .bw-hero-title { font-weight: 400 !important; font-synthesis: none; }
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { margin-bottom: 25px; letter-spacing: .02em; }

/* ---------- zones ---------- */
.bw-white { background: var(--bw-white) !important; }
.bw-sage { background: var(--bw-sage) !important; }
.bw-charcoal { background: var(--bw-charcoal) !important; color: #e9eae3; }
section { position: relative; }
/* brochure p.11: a sage block offset behind the content, the title straddling white and sage */
.bw-spread { background: var(--bw-white); }
.bw-spread::before { content: ""; position: absolute; top: var(--spread-top, 110px); bottom: 0; right: 0; width: var(--spread-w, 58%); background: var(--bw-sage); z-index: 0; }
.bw-spread.bw-spread-left::before { right: auto; left: 0; }
.bw-spread > .container, .bw-spread > .container-fluid { position: relative; z-index: 1; }

/* ---------- type ---------- */
.bw-label { font-family: var(--alt-font); font-size: var(--fs-label); letter-spacing: .05em; color: var(--dark-gray); line-height: 1.45; display: block; }
.bw-label-sm { font-family: var(--alt-font); font-size: 15px; letter-spacing: .12em; color: var(--bw-grey); line-height: 1.4; display: block; }
.bw-italic { font-family: var(--primary-font); font-style: italic; font-weight: 300; }
.bw-lead { font-family: var(--primary-font); font-style: italic; font-weight: 300; font-size: var(--fs-lead); line-height: 1.5; color: #4a4a46; }
.bw-note { font-family: var(--primary-font); font-style: italic; font-weight: 300; font-size: var(--fs-note); line-height: 1.6; color: var(--medium-gray); }
.bw-title { font-family: var(--alt-font); font-size: var(--fs-title); line-height: 1.12; color: var(--dark-gray); }
.bw-title-white { color: #fff; }
.bw-product-name { font-family: var(--alt-font); font-size: var(--fs-product); line-height: .95; color: #111; letter-spacing: .01em; margin: 0; }
.bw-numeral { font-family: var(--alt-font); font-size: var(--fs-numeral); line-height: .78; color: var(--bw-numeral); letter-spacing: -.02em; pointer-events: none; }
.bw-numeral-band { font-family: var(--alt-font); font-size: var(--fs-numeral-band); line-height: .8; color: var(--bw-numeral); letter-spacing: -.02em; }
.bw-value { font-family: var(--primary-font); font-weight: 300; font-size: var(--fs-value); line-height: 1.15; color: #111; }
.bw-sizes { list-style: none; padding: 0; margin: 0 0 8px; }
.bw-sizes li { font-family: var(--primary-font); font-weight: 300; font-size: var(--fs-sizes); line-height: 1.55; color: #111; }
.bw-stat { font-family: var(--primary-font); font-weight: 300; font-size: 58px; line-height: 1; color: #111; margin: 0 0 8px; }
.bw-quote { font-family: var(--alt-font); font-size: 30px; line-height: 1.45; color: #fff; }
.bw-quote-dark { color: var(--dark-gray); }
.bw-hero-title { font-family: var(--alt-font); font-size: clamp(42px, 5.6vw, 92px); line-height: 1.08; letter-spacing: .02em; color: #fff; text-shadow: 0 2px 22px rgba(0,0,0,.35); }
.bw-rule { border-top: 1px solid #cfd2c4; }
.bw-link { font-family: var(--alt-font); font-size: var(--fs-label); letter-spacing: .06em; color: var(--dark-gray); border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.bw-link:hover { color: var(--base-color); }
.bw-link-white { color: #fff; }
.bw-link-white:hover { color: #e3e5da; }

/* ---------- header ---------- */
.navbar .navbar-nav .nav-link { font-size: 17px; padding: 50px 18px; font-weight: 400; letter-spacing: .6px; white-space: nowrap; }
.navbar .navbar-nav .nav-item.active > .nav-link { opacity: 1; text-decoration: underline; text-underline-offset: 8px; text-decoration-thickness: 1px; }
header .navbar-brand img { max-height: 96px; }
.header-icon .header-social-icon a { padding-left: 22px; }
/* pages whose first zone is sage: dark navigation */
.bw-dark-header .navbar .navbar-nav .nav-link, .bw-dark-header .widget-text, .bw-dark-header .header-social-icon a { color: var(--dark-gray) !important; }

/* ---------- full-bleed photographic heroes ---------- */
.bw-hero { min-height: 100vh; background-size: cover; background-position: center; display: flex; align-items: flex-end; z-index: 2; }
.bw-hero.bw-hero-80 { min-height: 80vh; }
.bw-hero.bw-hero-60 { min-height: 62vh; }
.bw-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,22,18,.55) 0%, rgba(20,22,18,.08) 38%, rgba(20,22,18,.12) 60%, rgba(20,22,18,.6) 100%); z-index: 0; }
.bw-hero > .container { position: relative; z-index: 1; padding-bottom: 90px; }
.bw-hero .breadcrumb, .bw-hero .breadcrumb a { color: #fff; }
.bw-hero.has-numeral { overflow: visible !important; }   /* Crafto clips background sections; the numeral must cross the edge */
.bw-hero .bw-numeral { position: absolute; right: 4vw; bottom: 0; transform: translateY(56%); z-index: 3; }
.bw-hero.has-numeral + section { padding-top: calc(var(--fs-numeral) * .5); }
/* sage hero for model pages that have no photograph of their own */
.bw-hero-sage { min-height: 92vh; background: var(--bw-sage); display: flex; align-items: center; padding-top: 140px; }
.bw-hero-sage .bw-numeral { position: absolute; left: 3vw; bottom: -2vw; opacity: .9; }
.bw-hero-sage .bw-cut-hero { width: 100%; max-height: 62vh; object-fit: contain; filter: drop-shadow(0 22px 24px rgba(0,0,0,.18)); }

/* ---------- immersive split: photo bleeding to the viewport edge ---------- */
.bw-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 86vh; padding: 0 !important; }
.bw-split > .bw-split-media { background-size: cover; background-position: center; min-height: 420px; }
.bw-split > .bw-split-text { display: flex; flex-direction: column; justify-content: center; padding: 9vw 7vw; }
.bw-split.bw-split-reverse > .bw-split-media { order: 2; }

/* ---------- full-bleed mosaic (no gutters, no corners) ---------- */
.bw-mosaic { display: grid; grid-template-columns: 1fr 1.55fr 1.2fr; height: 62vh; min-height: 420px; padding: 0 !important; }
.bw-mosaic > div { background-size: cover; background-position: center; }

/* ---------- collection index (brochure p.5) ---------- */
.bw-entry { display: grid; grid-template-columns: 96px 1fr; align-items: end; gap: 18px; padding: 18px 0; border-bottom: 1px solid #cfd2c4; color: var(--dark-gray); }
.bw-entry-num { font-family: var(--alt-font); font-size: 64px; line-height: .85; color: var(--bw-numeral); }
.bw-entry-name { font-family: var(--alt-font); font-size: 30px; line-height: 1.1; display: block; color: #111; }
.bw-entry-desc { font-family: var(--primary-font); font-style: italic; font-weight: 300; font-size: 17px; color: var(--medium-gray); display: block; margin-top: 4px; }
.bw-entry:hover .bw-entry-name { color: var(--base-color); }

/* ---------- collection bands ---------- */
.bw-band { padding-top: 110px; padding-bottom: 110px; overflow: hidden; }
.bw-band .bw-cut { width: 100%; height: auto; filter: drop-shadow(0 18px 20px rgba(0,0,0,.16)); }
.bw-band .bw-photo { width: 100%; height: auto; }

/* ---------- cut-outs and product imagery ---------- */
.bw-cut { width: 100%; height: auto; filter: drop-shadow(0 18px 20px rgba(0,0,0,.16)); }
.bw-swatch { width: 100%; max-width: 190px; height: auto; }
/* photos shot on white: blended into the zone colour, never framed by a shadow (a shadow would draw a card) */
img[style*="mix-blend-mode:multiply"] { filter: none !important; }
.bw-feature i { display: block; margin-bottom: 18px; }

/* ---------- Bio Willow icon set (icons.css): brochure colours ---------- */
:root { --ico-line: #515151; --ico-accent: #6b7556; --ico-bg: #e3e5da; }
.bw-sage .bw-ico, .bw-sage-panel .bw-ico { --ico-bg: #ffffff; }
.bw-ico-xl { --ico-size: 118px; }
.bw-ico-md { --ico-size: 78px; }
.bw-ico-sm { --ico-size: 62px; }
.bw-feature .bw-ico { display: block; margin: 0 auto 22px; }
@media (max-width: 767px) { .bw-ico-xl { --ico-size: 104px; } }

/* ---------- interactive banners (home: Nestling + Ash caskets) ---------- */
.bw-banners { display: grid; grid-template-columns: 1fr 1fr; padding: 0 !important; }
.bw-banner { position: relative; min-height: 78vh; background-size: cover; background-position: center; display: flex; align-items: flex-end; overflow: hidden; color: #fff; }
.bw-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,22,18,0) 35%, rgba(20,22,18,.62) 100%); transition: background .4s ease; }
.bw-banner:hover::before { background: linear-gradient(180deg, rgba(20,22,18,.1) 0%, rgba(20,22,18,.72) 100%); }
.bw-banner-body { position: relative; padding: 5vw; }
.bw-banner .bw-entry-num { color: rgba(255,255,255,.75); font-size: 120px; }
.bw-banner .bw-title { color: #fff; }

/* ---------- process steps (willow year) ---------- */
.process-step-style-06 .step-box { background-color: var(--base-color) !important; }
.process-step-style-06 h3 { font-family: var(--primary-font); font-weight: 300 !important; font-size: 30px; letter-spacing: 0; color: #111; }

/* ---------- quote ---------- */
.blockquote-style-03 blockquote { border-color: var(--base-color) !important; }

/* ---------- product page spec grid ---------- */
.bw-spec-block + .bw-spec-block { margin-top: 38px; }
.bw-order-line a { color: var(--dark-gray); }

/* ---------- prev / next ---------- */
.bw-pager a { display: flex; align-items: flex-end; gap: 16px; color: var(--dark-gray); }
.bw-pager .bw-entry-num { font-size: 84px; }
.bw-pager a:hover .bw-entry-name { color: var(--base-color); }

/* ---------- buttons ---------- */
.btn { font-family: var(--primary-font); letter-spacing: 1.5px; font-weight: 500; }
.btn.btn-double-border.btn-border-base-color { color: var(--dark-gray); }
.btn.btn-double-border.btn-border-base-color:after { border-color: var(--base-color); transition: .3s ease; }

/* ---------- misc ---------- */
.swiper-slide .opacity-light { opacity: 1 !important; }
.bg-gradient-nero-grey-brown { background-image: linear-gradient(180deg, rgba(28,30,26,.62) 0%, rgba(28,30,26,.28) 45%, rgba(28,30,26,.58) 100%); }
.swiper-number-pagination-style-01 .swiper-number .swiper-pagination-bullet:after { height: 1px; background-color: #fff; }
.magic-drag-cursor #ball-cursor:before { content: "DRAG"; font-size: 14px; font-weight: 500; font-family: var(--primary-font) !important; }
.border-color-light-gray { border-color: #cfd2c4 !important; }
.bw-badge text { font-family: var(--alt-font); font-size: 15.5px; letter-spacing: 4px; fill: #2f2f2d; }
.bw-ffma { height: 84px; width: auto; }
.bw-cta-band { background: var(--bw-charcoal); color: #e9eae3; }
.bw-cta-band a { color: #fff; }
.bw-cta-band .bw-label-sm { color: #c9ccbf; }
.bw-cta-band .bw-title { color: #fff; font-size: 34px; }
.large-icon li { margin: 0 3px; }
.social-icon-style-04 ul li a span { background-color: var(--base-color) !important; }
.slider-custom-text-prev, .slider-custom-text-next { border-color: #cfd2c4 !important; }
.skip-link { position: absolute; left: -9999px; top: 10px; z-index: 10000; background: #fff; color: #000; padding: 8px 14px; }
.skip-link:focus { left: 10px; }

/* ---------- to order ---------- */
.bw-contact-phone { font-family: var(--primary-font); font-weight: 400; font-size: 40px; line-height: 1.25; color: #111; }
.bw-contact-email { font-family: var(--primary-font); font-weight: 300; font-size: 32px; line-height: 1.3; color: #111; word-break: break-word; }
.bw-contact-web { font-family: var(--primary-font); font-weight: 600; font-size: 32px; line-height: 1.3; color: #111; }
.bw-contact-handle { font-family: var(--primary-font); font-weight: 300; font-size: 28px; color: #111; }
.bw-contact-phone a, .bw-contact-email a, .bw-contact-web a, .bw-contact-handle a { color: #111; }
.bw-enquiry { display: none; border-left: 2px solid var(--base-color); padding: 4px 0 4px 18px; margin-bottom: 30px; }
.bw-enquiry.show { display: block; }
.bw-copy { font-family: var(--primary-font); font-size: 14px; font-weight: 500; letter-spacing: 1.2px; text-transform: uppercase; background: none; border: 1px solid var(--base-color); color: var(--dark-gray); padding: 6px 14px; margin-left: 12px; vertical-align: middle; cursor: pointer; }
.bw-copy:hover { background: #fff; }
.bw-checklist li { list-style: none; padding: 14px 0; border-bottom: 1px solid #cfd2c4; }
.bw-checklist { padding: 0; }

/* ---------- footer ---------- */
footer.half-footer { padding: 70px 0; }
footer .elements-social .medium-icon li a { width: 50px; height: 50px; }

/* ---------- responsive ---------- */
@media (max-width: 1399px) {
    .center-logo .navbar-nav .nav-link, header.sticky .center-logo .navbar-nav .nav-link { padding-left: 14px; padding-right: 14px; }
}
@media (max-width: 1199px) {
    .navbar.center-logo .navbar-nav .nav-link, header.sticky .center-logo .navbar-nav .nav-link { padding: 50px 9px; font-size: 16px; }
    .header-icon .header-social-icon a { font-size: 15px; padding-left: 14px; }
    :root { --fs-title: 44px; }
}
@media (max-width: 991px) {
    header .navbar-brand, header.sticky .fixed-header .navbar-brand, header.sticky .disable-fixed .navbar-brand { padding: 12px 0; }
    header .navbar-brand img { max-height: 58px; }
    .navbar .navbar-nav .nav-link, .navbar.center-logo .navbar-nav .nav-link { padding: 10px 0; font-size: 18px; color: var(--dark-gray) !important; }
    :root { --fs-title: 38px; --fs-lead: 21px; }
    .bw-split, .bw-banners { grid-template-columns: 1fr; }
    .bw-split > .bw-split-media { min-height: 62vh; order: 0 !important; }
    .bw-split > .bw-split-text { padding: 60px 24px; }
    .bw-mosaic { grid-template-columns: 1fr 1fr; height: auto; }
    .bw-mosaic > div { min-height: 280px; }
    .bw-mosaic > div:nth-child(2) { grid-column: 1 / 3; grid-row: 1; min-height: 340px; }
    .bw-spread::before { display: none; }
    .bw-spread .bw-spread-panel { background: var(--bw-sage); margin: 0 -12px; padding: 50px 28px; }
    .bw-band { padding-top: 80px; padding-bottom: 80px; }
    .bw-hero > .container { padding-bottom: 70px; }
}
@media (max-width: 767px) {
    :root { --fs-body: 17px; --fs-label: 16px; --fs-title: 31px; --fs-lead: 19px; --fs-value: 30px; --fs-sizes: 20px; --fs-note: 14px; }
    .bw-hero.bw-hero-80 { min-height: 72vh; }
    .bw-hero .bw-numeral { right: 16px; }
    .bw-entry { grid-template-columns: 70px 1fr; }
    .bw-entry-num { font-size: 48px; }
    .bw-entry-name { font-size: 24px; }
    .bw-quote { font-size: 22px; }
    .bw-stat { font-size: 44px; }
    .bw-banner { min-height: 62vh; }
    .bw-banner .bw-entry-num { font-size: 84px; }
    .bw-contact-phone { font-size: 30px; }
    .bw-contact-email, .bw-contact-web { font-size: 22px; }
    .bw-contact-handle { font-size: 20px; }
    .bw-pager .bw-entry-num { font-size: 54px; }
    .bw-cta-band .bw-title { font-size: 26px; }
    footer.half-footer { padding: 50px 0; }
}

/* Terms of use (16/10/2026): a short sage band instead of the full-height hero, readable legal text */
.bw-terms-hero { min-height: 0; padding-top: 190px; padding-bottom: 70px; }
.bw-terms h2.bw-terms-h { font-family: var(--alt-font); font-size: 20px; letter-spacing: .1em; text-transform: uppercase; color: var(--dark-gray); line-height: 1.35; margin: 45px 0 15px; }
.bw-terms p, .bw-terms li { font-size: 18px; line-height: 1.7; color: #4a4a46; }
.bw-terms ul.bw-terms-list { padding-left: 22px; margin-bottom: 20px; }
.bw-terms ul.bw-terms-list li { margin-bottom: 10px; }
.bw-terms a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) { .bw-terms-hero { padding-top: 140px; padding-bottom: 45px; } .bw-terms p, .bw-terms li { font-size: 16px; } }
/* ===================================
    Bio Willow icon set (scripts/icons.py), shared by the three versions.
    Colours come from the theme: --ico-bg (blob), --ico-line (drawing), --ico-accent (willow rod, leaves, sun).
    Without JS, or with reduced motion, the icons are simply shown; with JS they draw themselves in view.
====================================== */
.bw-ico { width: var(--ico-size, 84px); height: var(--ico-size, 84px); overflow: visible; display: inline-block; flex: none; vertical-align: middle; }
.bw-ico .i-bg { fill: var(--ico-bg, #e3e5da); }
.bw-ico .i-bgw { transform-box: view-box; transform-origin: 55px 54px; transition: transform 1.4s cubic-bezier(.3,.7,.3,1); }
.bw-ico .i-ln, .bw-ico .i-ac, .bw-ico .i-st { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: var(--ico-stroke, 1.9); }
.bw-ico .i-ln, .bw-ico .i-st { stroke: var(--ico-line, #2f2f2d); }
.bw-ico .i-ac { stroke: var(--ico-accent, #8d6a45); stroke-width: calc(var(--ico-stroke, 1.9) * 1.15); }
.bw-ico .i-st { stroke-dasharray: 2.2 3.2; opacity: .75; }
.bw-ico .i-acf { fill: var(--ico-accent, #8d6a45); }
.bw-ico .i-dot { fill: var(--ico-line, #2f2f2d); }

/* draw-in (classes added by js/bw-icons.js) */
.bw-ico.bw-draw .i-ln, .bw-ico.bw-draw .i-ac { stroke-dasharray: 1 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.5s cubic-bezier(.65,0,.25,1); }
.bw-ico.bw-draw .i-acf, .bw-ico.bw-draw .i-dot, .bw-ico.bw-draw .i-st { opacity: 0; transition: opacity .9s ease 1s; }
.bw-ico.bw-draw .i-bg { opacity: 0; transition: opacity 1s ease; }
.bw-ico.bw-draw.is-in .i-ln, .bw-ico.bw-draw.is-in .i-ac { stroke-dashoffset: 0; }
.bw-ico.bw-draw.is-in .i-acf, .bw-ico.bw-draw.is-in .i-dot, .bw-ico.bw-draw.is-in .i-bg { opacity: 1; }
.bw-ico.bw-draw.is-in .i-st { opacity: .75; }
.bw-ico-host:hover .bw-ico .i-bgw, .bw-ico:hover .i-bgw { transform: rotate(28deg) scale(1.04); }
@media (prefers-reduced-motion: reduce) { .bw-ico .i-bgw { transition: none; } }
