/* Every template: page blocks (src/Blocks.php), buttons, the logo and the skip link. Colours, fonts, corners and
   spacing come only from the theme's CSS variables (src/Theme.php: --bs-* and --wew-*). A template's own CSS
   (templates/<name>.css) styles its header, banner and footer, and may override these. */
body{-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.display-5,.wew-brand{font-family:var(--wew-heading-font);font-weight:600;color:var(--wew-heading-color,var(--bs-emphasis-color))}
.wew-skip{position:absolute;left:16px;top:8px;z-index:10;background:var(--bs-body-bg);padding:6px 10px}

.wew-brand{font-size:1.35rem;color:var(--wew-brand);text-decoration:none;display:inline-flex;align-items:center;gap:10px}
.wew-mode-dark .wew-brand{color:var(--bs-emphasis-color)}
/* The logo's height is the Look's Logo size (--wew-logo-h, Theme::LOGO_SIZES); its width follows, within reason. */
.wew-brand-logo img{display:block;height:auto;max-height:var(--wew-logo-h,48px);width:auto;max-width:calc(var(--wew-logo-h,48px) * 4.6)}
/* The Look's Top edge (wew-edge) and Menu text in capitals (wew-caps). */
.wew-edge{border-top:6px solid var(--wew-brand)}
.wew-caps .wew-nav a:not(.btn),.wew-caps .wew-dd-btn{text-transform:uppercase;letter-spacing:.05em;font-size:.92em}
.wew-caps .wew-dd-menu a:not(.btn),.wew-caps .wew-dd-sub > .wew-dd-btn{text-transform:none;letter-spacing:normal;font-size:1em}
.wew-caps-all .wew-dd-menu a:not(.btn),.wew-caps-all .wew-dd-sub > .wew-dd-btn{text-transform:uppercase;letter-spacing:.08em;font-size:.8em;padding-top:6px;padding-bottom:6px}
/* Header menu (Template::menu, site-menu.js). Styles: .wew-nav-right, -center, -button. With .wew-js (site-menu.js)
   phones and the "button" style fold the links behind the Menu button; without it every link shows. */
.wew-nav,.wew-nav-links,.wew-nav-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:6px 20px}
.wew-nav-buttons{gap:8px}
.wew-nav a:not(.btn),.wew-dd-btn{color:var(--bs-secondary-color);text-decoration:none}
.wew-nav a:not(.btn):hover,.wew-nav a[aria-current=page],.wew-dd-btn:hover,.wew-dd-btn[data-current],.wew-dd-btn[aria-expanded=true]{color:var(--bs-emphasis-color)}
.wew-dd{position:relative}
.wew-dd-btn{background:none;border:0;padding:0;font:inherit}
.wew-dd-btn::after{content:"";display:inline-block;margin-left:.4em;vertical-align:.15em;border:.3em solid transparent;border-top-color:currentColor;border-bottom:0}
.wew-dd-menu{display:none;position:absolute;left:-14px;top:100%;z-index:30;min-width:210px;padding:8px 0;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.12)}
.wew-dd-menu a{display:block;padding:7px 16px;white-space:nowrap}
.wew-dd:hover > .wew-dd-menu,html:not(.wew-js) .wew-dd:focus-within > .wew-dd-menu,.wew-dd-btn[aria-expanded=true]+.wew-dd-menu{display:block}
/* A sub-group inside a dropdown opens to the side; to the left when there is no room on the right (site-menu.js sets data-flip). */
.wew-dd-sub > .wew-dd-btn{display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px;padding:7px 16px;text-align:start;white-space:nowrap}
.wew-dd-sub > .wew-dd-btn::after{border:.3em solid transparent;border-left-color:currentColor;border-right:0;vertical-align:0}
.wew-dd-sub > .wew-dd-menu{left:100%;top:-9px}
.wew-dd-sub[data-flip] > .wew-dd-menu{left:auto;right:100%}
/* Dropdown colour (Theme::MENU_DROPS). Dark: charcoal (the Charcoal band's colour), square, light grey words that turn white.
   Brand: the brand colour and its text colour. Phones (the folded menu) keep the page colour. */
.wew-drop-dark .wew-dd-menu{background:#3d4148;border-color:#3d4148;border-radius:0;box-shadow:0 8px 20px rgba(0,0,0,.18)}
.wew-drop-dark .wew-dd-menu :is(a:not(.btn),.wew-dd-btn){color:#c9ccd1}
.wew-drop-dark .wew-dd-menu :is(a:not(.btn),.wew-dd-btn):is(:hover,:focus-visible,[aria-current=page],[aria-expanded=true]){color:#fff;background:rgba(255,255,255,.06)}
.wew-drop-brand .wew-dd-menu{background:var(--wew-brand);border-color:var(--wew-brand);box-shadow:0 8px 20px rgba(0,0,0,.18)}
.wew-drop-brand .wew-dd-menu :is(a:not(.btn),.wew-dd-btn){color:var(--wew-brand-ink)}
.wew-drop-brand .wew-dd-menu :is(a:not(.btn),.wew-dd-btn):is(:hover,:focus-visible,[aria-current=page],[aria-expanded=true]){background:rgba(0,0,0,.14);text-decoration:underline}
.wew-js .wew-nav-button :is(.wew-drop-dark,.wew-drop-brand) .wew-dd-menu{background:none;border:0;box-shadow:none}
.wew-nav-toggle{display:none;align-items:center;gap:8px;background:none;border:1px solid var(--bs-border-color);border-radius:var(--wew-btn-radius);padding:6px 12px;color:var(--bs-emphasis-color);font:inherit}
.wew-nav-toggle::before{content:"";width:16px;height:12px;background:linear-gradient(currentColor 0 0) top/100% 2px no-repeat,linear-gradient(currentColor 0 0) center/100% 2px no-repeat,linear-gradient(currentColor 0 0) bottom/100% 2px no-repeat}
.wew-nav-toggle[aria-expanded=true]{background:var(--bs-tertiary-bg)}
.wew-js .wew-header{position:relative}
.wew-js .wew-nav-button .wew-nav-toggle{display:inline-flex}
.wew-js .wew-nav-button .wew-nav-links{display:none;position:absolute;left:0;right:0;top:100%;z-index:30;flex-direction:column;align-items:stretch;gap:2px;padding:10px 16px 16px;background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);box-shadow:0 10px 24px rgba(0,0,0,.08)}
.wew-js .wew-nav-button .wew-nav-toggle[aria-expanded=true]+.wew-nav-links{display:flex}
.wew-js .wew-nav-button .wew-nav-links>a,.wew-js .wew-nav-button .wew-dd-btn{display:block;padding:8px 0}
.wew-js .wew-nav-button .wew-dd-btn{pointer-events:none;color:var(--bs-emphasis-color);font-weight:600}
.wew-js .wew-nav-button .wew-dd-btn::after{display:none}
.wew-js .wew-nav-button .wew-dd-menu{display:block;position:static;min-width:0;padding:0 0 4px 14px;border:0;box-shadow:none;background:none}
.wew-js .wew-nav-button .wew-dd-menu a{padding:6px 0}
@media (max-width:767px){
.wew-js .wew-nav .wew-nav-toggle{display:inline-flex}
.wew-js .wew-nav .wew-nav-links{display:none;position:absolute;left:0;right:0;top:100%;z-index:30;flex-direction:column;align-items:stretch;gap:2px;padding:10px 16px 16px;background:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);box-shadow:0 10px 24px rgba(0,0,0,.08);text-align:start}
.wew-js .wew-nav .wew-nav-toggle[aria-expanded=true]+.wew-nav-links{display:flex}
.wew-js .wew-nav .wew-nav-links>a,.wew-js .wew-nav .wew-dd-btn{display:block;padding:8px 0}
.wew-js .wew-nav .wew-dd-btn{pointer-events:none;color:var(--bs-emphasis-color);font-weight:600}
.wew-js .wew-nav .wew-dd-btn::after{display:none}
.wew-js .wew-nav .wew-dd-menu{display:block;position:static;min-width:0;padding:0 0 4px 14px;border:0;box-shadow:none;background:none}
.wew-js .wew-nav .wew-dd-menu a{padding:6px 0}
}
@media (min-width:768px){
.wew-header .container:has(.wew-nav-center){flex-direction:column;justify-content:center;text-align:center}
.wew-nav-center,.wew-nav-center .wew-nav-links{justify-content:center}
}

/* Footer menu (Template::footerMenu): columns (a group per column, loose links first) or one row. */
.wew-fnav{flex-basis:100%;width:100%;grid-column:1/-1}
.wew-fnav a:not(.btn){color:var(--bs-secondary-color);text-decoration:none}
.wew-fnav a:not(.btn):hover,.wew-fnav a[aria-current=page]{color:var(--bs-emphasis-color);text-decoration:underline}
.wew-fnav-columns{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px 32px;text-align:start;padding-bottom:18px;margin-bottom:6px;border-bottom:1px solid var(--bs-border-color)}
.wew-fnav ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wew-fhead{margin:0 0 8px;font-weight:600;color:var(--bs-emphasis-color)}
.wew-fnav-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px}
.wew-fsub > span{display:block;margin-top:4px;font-weight:600;color:var(--bs-emphasis-color)}
.wew-fsub > ul{padding-left:12px;margin-top:6px}

.btn{border-radius:var(--wew-btn-radius)}
.btn-wew{background:var(--wew-brand);color:var(--wew-brand-ink);border:2px solid var(--wew-brand)}
.btn-wew:hover,.btn-wew:focus-visible{background:var(--wew-brand);color:var(--wew-brand-ink);border-color:var(--wew-brand);filter:brightness(1.08)}
.btn-wew-secondary{background:transparent;color:var(--bs-emphasis-color);border:2px solid var(--wew-brand)}
.btn-wew-secondary:hover{background:var(--wew-brand);color:var(--wew-brand-ink)}
.btn-wew-accent,.btn-wew-accent:hover,.btn-wew-accent:focus-visible{background:var(--wew-accent);color:var(--wew-accent-ink);border:2px solid var(--wew-accent)}
.btn-wew-accent:hover{filter:brightness(1.08)}
.wew-btn-outline .btn-wew{background:transparent;color:var(--bs-emphasis-color)}
.wew-btn-outline .btn-wew:hover{background:var(--wew-brand);color:var(--wew-brand-ink)}

.wew-hero{background:var(--wew-band);padding:var(--wew-space) 0}
.wew-hero .lead{color:var(--bs-secondary-color);max-width:560px}
.wew-section{padding:var(--wew-space) 0}
.wew-hero + .wew-section,.wew-section + .wew-section{padding-top:0}
main > .wew-hero + .wew-section{padding-top:var(--wew-space)}
.wew-section h1{margin-bottom:1rem}
.wew-section h2,.wew-section h3{margin:1.5rem 0 .75rem}
.wew-section .container > :first-child{margin-top:0}
.wew-text{max-width:720px}
.wew-button{margin:1.25rem 0}

.wew-image{margin:1.5rem 0}
.wew-image img{display:block;max-width:100%;height:auto;border-radius:var(--bs-border-radius-lg)}
.wew-image-normal{max-width:720px}
.wew-image-wide img{width:100%}
.wew-full{padding:0}
.wew-image-full{margin:0}
.wew-image-full img{width:100%;border-radius:0;max-height:80vh;object-fit:cover}
.wew-image figcaption{color:var(--bs-secondary-color);font-size:.9rem;margin-top:.5rem}
.wew-image-full figcaption{padding:0 calc(var(--bs-gutter-x,1.5rem) * .5);max-width:1320px;margin:.5rem auto 0}

.wew-footer{color:var(--bs-secondary-color);font-size:.9rem}
.wew-footer a{color:var(--bs-secondary-color)}
.wew-contact{display:flex;flex-wrap:wrap;gap:4px 16px}
.wew-contact strong{color:var(--bs-emphasis-color)}
.wew-tagline{font-style:italic}

/* Forms (src/Forms.php). Error red: #b42318 on white 6.5:1, #ff8a80 on the dark background 8:1 (WCAG AA 4.5:1). */
/* 860px: room for two or three fields side by side (half / third of a row) while one field stays a readable width. */
.wew-form{margin:1.5rem 0;--wew-danger:#b42318}
.wew-mode-dark .wew-form{--wew-danger:#ff8a80}
.wew-field{margin:0 0 1rem;padding:0;border:0;min-width:0}
.wew-field legend{float:none;font-size:1rem}
.wew-req{color:var(--bs-secondary-color)}
.wew-form-note{color:var(--bs-secondary-color);margin:0 0 1rem}
.wew-field-error{color:var(--wew-danger);font-size:.9rem;margin-top:.25rem}
.wew-form [aria-invalid=true] .form-check-input,.wew-form .form-control[aria-invalid=true],.wew-form .form-select[aria-invalid=true]{border-color:var(--wew-danger)}
.wew-form-alert,.wew-form-sent{border:1px solid var(--bs-border-color);border-left:4px solid var(--wew-danger);border-radius:var(--bs-border-radius);padding:.75rem 1rem;margin-bottom:1rem;background:var(--wew-card-bg)}
.wew-form-sent{border-left-color:var(--wew-brand);max-width:640px;margin:1.5rem 0}
.wew-form-sent p{margin:0}
.wew-form-send{margin-top:1rem}
/* The platform's human check (bootstrap/forms/form.css variables) in the site's own colours. */
.wew-form .pf-check{--pf-bg:var(--wew-card-bg);--pf-text:var(--bs-body-color);--pf-muted:var(--bs-secondary-color);--pf-line:var(--bs-border-color);--pf-glow:transparent;--pf-radius:var(--bs-border-radius-lg)}
@media (max-width:575px){.wew-brand-logo{flex-wrap:wrap}.wew-brand-logo img{max-width:150px;max-height:calc(var(--wew-logo-h,48px) * .84)}}
/* A form waiting for its answer (form-send.js): Send is disabled, says "Sending…" and shows a spinner. */
.wew-busy{cursor:progress;opacity:.85}
.wew-busy::before{content:"";display:inline-block;width:.9em;height:.9em;margin-right:.5em;vertical-align:-.1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:wew-spin .7s linear infinite}
@keyframes wew-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.wew-busy::before{animation:none;border-right-color:currentColor;opacity:.5}}

/* Sections (src/Sections.php): columns of widgets on a plain, tint, dark (brand colour) or photo background.
   Templates may restyle any of these; colours come only from the theme's variables. */
.wew-sec{padding:var(--wew-space) 0}
.wew-sec-plain + .wew-sec-plain{padding-top:0}
.wew-sec-tint{background:var(--wew-band)}
.wew-sec-dark,.wew-sec-image{background:var(--wew-brand);color:var(--wew-brand-ink)}
/* Charcoal: a neutral dark band (it also carries wew-sec-dark, so text, links and buttons follow the dark rules). */
.wew-sec.wew-sec-charcoal{background:#3d4148;color:#f3f4f6}
.wew-sec-image{background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.45)),var(--wew-sec-img) center/cover no-repeat;color:#fff}
.wew-sec-dark :is(h1,h2,h3,.wew-eyebrow,.wew-fact strong,.wew-contact-label),.wew-sec-image :is(h1,h2,h3,.wew-eyebrow,.wew-fact strong,.wew-contact-label){color:inherit}
.wew-sec-dark a:not(.btn),.wew-sec-image a:not(.btn){color:inherit;text-decoration:underline}
.wew-sec-dark .btn-wew,.wew-sec-image .btn-wew{background:var(--wew-accent);color:var(--wew-accent-ink);border-color:var(--wew-accent)}
.wew-sec-dark .btn-wew-secondary,.wew-sec-image .btn-wew-secondary{color:inherit;border-color:currentColor}
.wew-sec .container > .row > div > :first-child{margin-top:0}
.wew-sec .container > .row > div > :last-child{margin-bottom:0} /* section columns only, not a form's own rows */
.wew-sec h1,.wew-sec h2,.wew-sec h3{margin:0 0 .75rem}
.wew-sec :is(.wew-text,.wew-list,.wew-terms,.wew-cards,.wew-facts,.wew-contact-cards,.wew-hours,.wew-image,.wew-buttons,.wew-form) + :is(h2,h3,.wew-eyebrow){margin-top:1.75rem}
.wew-sec .wew-image{margin:0 0 1rem}
.wew-sec .wew-image-normal{max-width:none}
.wew-sec .wew-image img{width:100%}
/* Its own size: a logo or small picture is never stretched past its own pixels (it blurs); still shrinks to fit. */
.wew-image-own img,.wew-sec .wew-image-own img{width:auto}
.wew-sec-center .wew-image-own img{margin-left:auto;margin-right:auto}
.wew-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:1.25rem 0}
.wew-eyebrow{margin:0 0 .35rem;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bs-link-color)}
.wew-lead{font-size:1.15rem}
.wew-callout{border-left:4px solid var(--wew-accent);padding:.6rem 1rem;background:var(--wew-band);font-weight:600}
.wew-sec-tint .wew-callout{background:var(--bs-body-bg)}
.wew-callout > :last-child,.wew-text > :last-child{margin-bottom:0}
.wew-framed img{border:6px solid var(--bs-body-bg);box-shadow:0 1px 2px rgba(0,0,0,.08),0 10px 28px rgba(0,0,0,.12)}

/* Accent band: the accent colour with its own text colour (the checked accent pair). Buttons take the brand colour;
   marks and rules drawn in the accent switch to the text colour so they stay visible. No faded text: it must read. */
.wew-sec-accent{background:var(--wew-accent);color:var(--wew-accent-ink)}
.wew-sec-accent :is(h1,h2,h3,.wew-eyebrow,.wew-fact strong,.wew-fact span,.wew-contact-label,.wew-terms dt,.wew-terms dd,.wew-timeline strong,.wew-timeline span){color:inherit}
.wew-sec-accent a:not(.btn){color:inherit;text-decoration:underline}
.wew-sec-accent .btn-wew,.wew-sec-accent .btn-wew:hover{background:var(--wew-brand);color:var(--wew-brand-ink);border-color:var(--wew-brand)}
.wew-sec-accent .btn-wew-secondary{background:transparent;color:inherit;border-color:currentColor}
.wew-sec-accent .btn-wew-secondary:hover{background:var(--wew-brand);color:var(--wew-brand-ink);border-color:var(--wew-brand)}
.wew-sec-accent .wew-list-checks li::before{border-color:currentColor}
.wew-sec-accent :is(.wew-fact,.wew-callout,.wew-timeline,.wew-terms > div){border-color:currentColor}
.wew-sec-accent .wew-callout{background:transparent}
.wew-sec-accent .wew-timeline li::before{background:currentColor;border-color:var(--wew-accent)}
.wew-sec-accent .wew-contact-cards li{background:transparent;border-color:currentColor}

/* Banner with a photo behind (Blocks::hero) */
.wew-hero-image{position:relative;overflow:hidden;color:#fff;background:#111}
.wew-hero-photo{position:absolute;inset:0}
.wew-hero-photo img{width:100%;height:100%;object-fit:cover}
.wew-hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.8),rgba(0,0,0,.4))}
.wew-hero-image .container{position:relative;padding-top:calc(var(--wew-space) * .6);padding-bottom:calc(var(--wew-space) * .6)}
.wew-hero-image h1,.wew-hero-image .lead{color:#fff}
.wew-hero-image .wew-eyebrow{color:var(--wew-accent)}
.wew-hero-image .lead{opacity:.9}
.wew-hero-image .btn-wew-secondary{color:#fff;border-color:#fff}
.wew-hero-image .btn-wew-secondary:hover{background:#fff;color:#111}

/* Lists: bullets, check marks, numbered, term – description; 1-3 columns */
.wew-list{padding-left:1.25rem;margin:0 0 1rem}
.wew-list li{margin:0 0 .4rem;break-inside:avoid}
.wew-list-checks{list-style:none;padding-left:0}
.wew-list-checks li{position:relative;padding-left:1.6rem}
.wew-list-checks li::before{content:"";position:absolute;left:.15rem;top:.35em;width:.55rem;height:.9rem;border:solid var(--wew-accent);border-width:0 3px 3px 0;transform:rotate(45deg)}
@media (min-width:576px){.wew-cols-2,.wew-cols-3{columns:2;column-gap:2rem}}
@media (min-width:992px){.wew-cols-3{columns:3}}
.wew-terms{margin:0 0 1rem}
.wew-terms > div{padding:.55rem 0;border-bottom:1px solid var(--bs-border-color);break-inside:avoid}
.wew-terms dt{font-weight:700;color:var(--bs-emphasis-color)}
.wew-terms dd{margin:0;color:var(--bs-secondary-color)}
.wew-sec-dark .wew-terms dd,.wew-sec-image .wew-terms dd{color:inherit;opacity:.85}

/* Cards, facts, contact details, hours */
.wew-cards{margin-bottom:1rem}
.wew-card{display:flex;flex-direction:column;height:100%;background:var(--wew-card-bg);color:inherit;text-decoration:none;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);overflow:hidden;transition:transform .15s,box-shadow .15s}
a.wew-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,.12)}
.wew-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.wew-card-body{display:grid;gap:.35rem;padding:1rem 1.1rem 1.2rem}
.wew-card-title{font-family:var(--wew-heading-font);font-weight:600;font-size:1.15rem;color:var(--bs-emphasis-color)}
.wew-card-text{color:var(--bs-secondary-color)}
.wew-card-more{font-weight:600;color:var(--bs-link-color)}
.wew-facts{margin-bottom:1rem}
.wew-fact{border-top:3px solid var(--wew-accent);padding-top:.6rem}
.wew-fact strong{display:block;font-family:var(--wew-heading-font);font-size:1.6rem;line-height:1.15;color:var(--bs-emphasis-color)}
.wew-fact span{color:var(--bs-secondary-color);font-size:.95rem}
.wew-sec-dark .wew-fact span,.wew-sec-image .wew-fact span{color:inherit;opacity:.85}
.wew-contact-cards{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.wew-contact-cards li{background:var(--wew-card-bg);border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);padding:.9rem 1rem;display:grid;gap:.2rem}
.wew-sec-dark .wew-contact-cards li,.wew-sec-image .wew-contact-cards li{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
.wew-contact-label{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bs-secondary-color)}
.wew-contact-value{font-weight:600}
.wew-hours{margin:0 0 1rem}

/* Breadcrumbs on a banner (Blocks::hero, Pages::crumbs) */
.wew-crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem .5rem;padding:0;margin:0 0 .75rem;font-size:.9rem;color:var(--bs-secondary-color)}
.wew-crumbs li + li::before{content:"›";margin-right:.5rem;opacity:.7}
.wew-crumbs a{color:inherit}
.wew-hero-image .wew-crumbs ol{color:rgba(255,255,255,.85)}
/* Timeline (list style) */
.wew-timeline{list-style:none;padding:0 0 0 1.25rem;margin:0 0 1rem;border-left:3px solid var(--wew-accent)}
.wew-timeline li{position:relative;padding:.35rem 0 .6rem}
.wew-timeline li::before{content:"";position:absolute;left:calc(-1.25rem - 7px);top:.75rem;width:11px;height:11px;border-radius:50%;background:var(--wew-accent);border:2px solid var(--bs-body-bg)}
.wew-timeline strong{display:block;font-family:var(--wew-heading-font);color:var(--bs-emphasis-color)}
.wew-timeline span{color:var(--bs-secondary-color)}
.wew-sec-dark .wew-timeline strong,.wew-sec-image .wew-timeline strong{color:inherit}
.wew-sec-dark .wew-timeline span,.wew-sec-image .wew-timeline span{color:inherit;opacity:.85}

/* Gallery and its viewer (site-gallery.js) */
/* Table widget: Bootstrap's table, taking the section's text colour (also on dark and accent bands); stripes and
   lines are see-through grey so they suit any background. The caption sits above the table. */
.wew-table{margin-bottom:1rem}
.wew-table .table{--bs-table-bg:transparent;--bs-table-color:inherit;--bs-table-striped-color:inherit;--bs-table-striped-bg:rgba(127,127,127,.09);--bs-table-border-color:rgba(127,127,127,.28);margin-bottom:0}
.wew-table caption{caption-side:top;color:inherit;font-weight:600}
/* Interactive tables (site-table.js): rows per page and search above, the count and pages below, a note under it. */
.wew-table-bar{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center;justify-content:space-between;margin:0 0 .6rem}
.wew-table-bar>div{display:flex;align-items:center;gap:.5rem}
.wew-table-bar label{margin:0}
.wew-table-per select{width:auto}
.wew-table-search{margin-inline-start:auto}
.wew-table-search input{width:min(16rem,60vw)}
.wew-table-sortby{display:none!important}
.wew-table-foot{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center;justify-content:space-between;margin:-.4rem 0 1rem}
.wew-table-count{margin:0}
/* wewTables asking the site for a page (aria-busy) and a page that could not be had. */
.wew-table[aria-busy] tbody{opacity:.55;transition:opacity .15s}
.wew-table-error{flex:1 1 100%;margin:0;color:var(--bs-danger-text-emphasis)}
.wew-table-pages{display:flex;flex-wrap:wrap;gap:.15rem;margin-inline-start:auto}
.wew-page{min-width:2.25rem;min-height:2.25rem;padding:0 .4rem;border:1px solid transparent;border-radius:2px;background:none;color:inherit;font:inherit;cursor:pointer}
.wew-page:disabled{opacity:.35;cursor:default}
.wew-page:not(:disabled):hover{border-color:var(--bs-border-color)}
.wew-page-on{border-color:currentColor;cursor:default}
.wew-page-gap{align-self:center;padding:0 .25rem}
.wew-sort{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.5rem;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:inherit;cursor:pointer}
.text-end>.wew-sort{justify-content:flex-end}
.wew-sort::after{content:"\2195";opacity:.45;font-size:.85em}
[aria-sort=ascending]>.wew-sort::after{content:"\25B2";opacity:.9}
[aria-sort=descending]>.wew-sort::after{content:"\25BC";opacity:.9}
.wew-sort:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.wew-table-none td{text-align:center!important;font-style:italic}
.wew-table-note{margin:.25rem 0 1rem}
/* Space inside cells (Widgets\Table::CELLS); compact is Bootstrap's table-sm. */
.wew-cells-comfortable>:not(caption)>*>*{padding:.5rem .625rem}
.wew-cells-roomy>:not(caption)>*>*{padding:.75rem 1rem}
@media (max-width:575.98px){
  .wew-table-bar>div{flex:1 1 100%}
  .wew-table-bar select,.wew-table-search input{flex:1 1 auto;width:auto}
  .wew-table-bar label{flex:0 0 5rem}
  .wew-table-search{margin:0}
  .wew-table-bar:has(+.wew-table-stack) .wew-table-sortby{display:flex!important}
  .wew-table-per span{display:none}
  .wew-table-foot{flex-direction:column;align-items:stretch}
  .wew-table-pages{margin:0;justify-content:center}
  .wew-page{min-width:2.75rem;min-height:2.75rem}
}
/* Phones: each row a card, each cell labelled with its column heading (Sections::table, phone stack). The heading row
   stays for screen readers only. */
@media (max-width:575.98px){
  .wew-table-stack{overflow:visible}
  .wew-table-stack .table{--bs-table-striped-bg:transparent;--bs-table-bg:transparent;border:0}
  .wew-table-stack :is(table,tbody,tr,td){display:block;width:100%}
  .wew-table-stack caption{display:block}
  .wew-table-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .wew-table-stack tr{border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);margin-bottom:.75rem;padding:.2rem .85rem;background:var(--wew-card-bg,transparent)}
  .wew-table-stack td{display:grid;grid-template-columns:minmax(5.5rem,38%) minmax(0,1fr);gap:.75rem;padding:.45rem 0;border:0;border-bottom:1px solid var(--bs-border-color-translucent);text-align:start!important;overflow-wrap:anywhere}
  .wew-table-stack td:last-child{border-bottom:0}
  .wew-table-stack td::before{content:attr(data-label);font-weight:600;color:var(--bs-secondary-color);overflow-wrap:normal}
  .wew-table-stack td:not([data-label]){display:block}
  .wew-table-stack td:not([data-label])::before{content:none}
  .wew-table-stack td[data-empty]{display:none}
  .wew-sec-dark .wew-table-stack tr,.wew-sec-image .wew-table-stack tr{background:transparent;border-color:rgba(255,255,255,.25)}
}
.wew-table th{font-family:var(--wew-heading-font);white-space:nowrap}
.wew-table-brand thead th{background:var(--wew-brand);color:var(--wew-brand-ink);border-color:var(--wew-brand)}
/* Highlight the first rows (TableStyle top: a podium): bold, on a light wash of the brand colour. Marked on the rows
   themselves (Widgets\Table::render), so they stay marked when visitors sort or page (site-table.js moves rows). */
.wew-table .wew-top>*{--bs-table-bg-state:color-mix(in srgb,var(--wew-brand) 14%,transparent);font-weight:600}
@media (max-width:575.98px){.wew-table-stack tr.wew-top{border-color:var(--wew-brand)}}
/* Look "Words in tables: Darker" (Theme table_text). Dark and photo bands keep their own light text. */
body.wew-tt-strong .wew-table .table{--bs-table-color:var(--wew-table-text);--bs-table-striped-color:var(--wew-table-text)}
body.wew-tt-strong :is(.wew-sec-dark,.wew-sec-image) .wew-table .table{--bs-table-color:inherit;--bs-table-striped-color:inherit}
/* Embed widget (Embeds): a video keeps 16:9; a map and a calendar get a set height (they don't size themselves). */
.wew-embed{margin-bottom:1rem}
.wew-embed iframe{display:block;width:100%;border:0;border-radius:var(--bs-border-radius)}
.wew-embed-video iframe{aspect-ratio:16/9;height:auto}
.wew-embed-map iframe{height:450px}
.wew-embed-month iframe{height:600px}
.wew-embed-agenda iframe{height:500px}
/* Events widget (Events): a month heading, then one line per event: a date tile (weekday over the day), the title,
   then time and place. The tile takes the brand colour; on a dark band it turns see-through. */
.wew-events{margin-bottom:1rem}
.wew-events-month{font-size:1.25rem;margin:1.5rem 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid var(--bs-border-color)}
.wew-events > .wew-events-month:first-child{margin-top:0}
.wew-events-list{list-style:none;padding:0;margin:0 0 1rem}
.wew-event{display:flex;gap:1rem;align-items:flex-start;padding:.6rem 0;border-bottom:1px solid var(--bs-border-color-translucent)}
.wew-event:last-child{border-bottom:0}
.wew-event-date{flex:0 0 3.4rem;display:flex;flex-direction:column;align-items:center;padding:.3rem 0;border-radius:var(--bs-border-radius);background:var(--wew-brand);color:var(--wew-brand-ink);line-height:1.1}
.wew-event-wd,.wew-event-mon{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.wew-event-day{font-family:var(--wew-heading-font);font-size:1.35rem;font-weight:700}
.wew-event-body{display:flex;flex-direction:column;min-width:0}
.wew-event-title{font-weight:600;color:var(--bs-emphasis-color)}
.wew-event-meta{color:var(--bs-secondary-color);font-size:.92rem}
/* An event's description and its Google page link (Events::DETAILS, google). Long addresses wrap on phones. */
.wew-event-about{margin-top:.4rem;overflow-wrap:anywhere}
.wew-event-about p{margin:0 0 .6rem}
.wew-event-about>:last-child{margin-bottom:0}
.wew-event-about ul,.wew-event-about ol{margin:0 0 .6rem;padding-left:1.25rem}
.wew-event-more{margin-top:.25rem}
.wew-event-more>summary{display:inline-block;padding:.35rem 0;color:var(--bs-link-color);cursor:pointer;font-size:.92rem}
.wew-event-more>summary::before{content:"\25B8";display:inline-block;width:1em}
.wew-event-more[open]>summary::before{content:"\25BE"}
.wew-event-google{display:inline-block;margin-top:.4rem;padding:.2rem 0;font-size:.92rem}
.wew-events-none{color:var(--bs-secondary-color)}
/* Feed widget (Feeds): another site's entries as a plain list in the page's look. */
.wew-feed{margin-bottom:1rem}
.wew-feed-list{list-style:none;padding:0;margin:0 0 .75rem}
.wew-feed-item{padding:.5rem 0;border-bottom:1px solid var(--bs-border-color-translucent);overflow-wrap:anywhere}
.wew-feed-item:last-child{border-bottom:0}
.wew-feed-title{display:block}
/* A title stands out only when a date or summary sits under it; a plain list of titles reads as plain links. */
.wew-feed-item:has(>.wew-feed-meta,>.wew-feed-summary) .wew-feed-title{font-weight:600}
.wew-feed-meta{display:block;color:var(--bs-secondary-color);font-size:.875rem}
.wew-feed-summary{margin:.3rem 0 0}
.wew-feed-summary p{margin:0 0 .6rem}
.wew-feed-summary>:last-child{margin-bottom:0}
.wew-feed-credit{font-size:.875rem;color:var(--bs-secondary-color);margin:0}
.wew-feed-none{color:var(--bs-secondary-color)}
.wew-sec-dark :is(.wew-feed-meta,.wew-feed-credit,.wew-feed-none),.wew-sec-image :is(.wew-feed-meta,.wew-feed-credit,.wew-feed-none){color:inherit;opacity:.85}
.wew-events-note,.wew-feed-note{font-size:.85rem;padding:.5rem .75rem;border:1px dashed var(--bs-border-color);border-radius:var(--bs-border-radius);color:var(--bs-secondary-color)}
.wew-sec-dark .wew-event-date,.wew-sec-image .wew-event-date{background:rgba(255,255,255,.14);color:inherit}
.wew-sec-dark .wew-event-title,.wew-sec-image .wew-event-title{color:inherit}
.wew-sec-dark :is(.wew-event-about a,.wew-event-more>summary,.wew-event-google),.wew-sec-image :is(.wew-event-about a,.wew-event-more>summary,.wew-event-google){color:inherit}
.wew-sec-dark :is(.wew-event-meta,.wew-events-none),.wew-sec-image :is(.wew-event-meta,.wew-events-none){color:inherit;opacity:.85}
/* Documents widget: a year heading, then one line per file: the title as a link, the date, kind and size under it. */
.wew-docs{margin-bottom:1rem}
.wew-docs-year{font-size:1.25rem;margin:1.5rem 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid var(--bs-border-color)}
.wew-docs > .wew-docs-year:first-child{margin-top:0}
.wew-docs-list{list-style:none;padding:0;margin:0 0 1rem}
.wew-docs-list li{padding:.45rem 0;border-bottom:1px solid var(--bs-border-color-translucent)}
.wew-docs-list li:last-child{border-bottom:0}
.wew-docs-list a{font-weight:600}
.wew-doc-meta{display:block;font-size:.875rem;opacity:.75}
/* Documents as headings (Widgets\Documents::LAYOUTS headings): a heading per document, its link words below. */
.wew-docs-heads{margin:0 0 1rem}
.wew-docs .wew-docs-year-big{font-size:calc(1.4rem + 1vw);border:0;padding:0;margin:2.5rem 0 1.75rem}
.wew-docs > .wew-docs-year-big:first-child{margin-top:0}
@media (min-width:1200px){.wew-docs .wew-docs-year-big{font-size:2.25rem}}
.wew-doc{margin:0 0 2.25rem}
.wew-doc:last-child{margin-bottom:0}
.wew-sec .wew-docs .wew-doc-head,.wew-section .wew-docs .wew-doc-head{margin:0 0 1.2rem}
.wew-doc-link{margin:0}
.wew-doc p.wew-doc-meta{margin:.15rem 0 0}
.wew-gallery{list-style:none;padding:0;margin-bottom:1rem}
/* Gallery as a slideshow: one whole photo at a time in a strip that snaps; buttons and count under it (site-gallery.js). */
.wew-slides{margin-bottom:1rem;position:relative}
.wew-slides ul{list-style:none;margin:0;padding:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:var(--bs-border-radius)}
.wew-slides ul::-webkit-scrollbar{display:none}
.wew-slides li{flex:0 0 100%;scroll-snap-align:start;display:flex;align-items:center;justify-content:center;background:rgba(127,127,127,.08)}
.wew-slides img{display:block;max-width:100%;height:auto;max-height:75vh}
.wew-slides-bar{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:8px}
.wew-slides-bar button{border:1px solid currentColor;background:transparent;color:inherit;border-radius:50%;width:38px;height:38px;font-size:1.4rem;line-height:1}
.wew-slides-count{min-width:4em;text-align:center;font-size:.9rem}
.wew-gallery a{display:block;border-radius:var(--bs-border-radius);overflow:hidden}
.wew-gallery img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .2s}
.wew-gallery a:hover img{transform:scale(1.03)}
.wew-viewer{padding:0;border:0;background:#111;color:#fff;max-width:min(1100px,96vw);max-height:94vh}
.wew-viewer::backdrop{background:rgba(0,0,0,.85)}
.wew-viewer img{display:block;max-width:100%;max-height:calc(94vh - 56px);margin:0 auto}
.wew-viewer-bar{display:flex;gap:10px;align-items:center;justify-content:center;padding:10px}
.wew-viewer-bar button{background:#fff;color:#111;border:0;border-radius:6px;padding:6px 14px;font:inherit}
.wew-viewer-count{min-width:5em;text-align:center}
.wew-zoom{display:block;cursor:zoom-in}
.wew-image-link{display:block}
/* The PDF viewer (site-docs.js): the title and buttons on top, the PDF filling the rest. */
.wew-doc-viewer{width:min(1100px,96vw);height:94vh;max-height:94vh}
.wew-doc-viewer[open]{display:flex;flex-direction:column}
.wew-doc-viewer .wew-viewer-bar{justify-content:flex-start}
.wew-doc-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wew-doc-viewer .wew-viewer-bar a{color:#fff}
.wew-doc-viewer iframe{flex:1;width:100%;border:0;background:#fff}
/* Shared sections in the footer (Parts): they fill the top of the footer edge to edge. */
.wew-footer:has(> .wew-sec){padding-top:0;border-top:0}
.wew-footer > .wew-sec{margin-bottom:20px;text-align:start}
/* Top bar (Template::topBar) */
.wew-topbar{background:var(--wew-brand);color:var(--wew-brand-ink);font-size:.875rem}
.wew-topbar .container{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 20px;padding-top:6px;padding-bottom:6px}
.wew-topbar-details,.wew-topbar-links{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center}
.wew-topbar a:not(.btn){color:inherit;text-decoration:none}
.wew-topbar a:not(.btn):hover{text-decoration:underline}
/* Fonts shipped with the engine (Theme::FONTS; fonts/*-OFL.txt). A browser downloads a font only when a page uses it. */
@font-face{font-family:"Barlow Condensed";src:url(fonts/barlow-condensed-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url(fonts/barlow-condensed-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/montserrat-latin-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:Montserrat;src:url(fonts/montserrat-latin-var-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
/* Centred section ("Centre the words"): headings, text, buttons and images centre; lists, forms and cards keep their
   own alignment inside, centred as a block, so they still read. */
.wew-sec-center{text-align:center}
.wew-sec-center :is(.wew-buttons){justify-content:center}
.wew-sec-center :is(.wew-text,.wew-image){margin-left:auto;margin-right:auto}
.wew-sec-center :is(.wew-list,.wew-terms,.wew-timeline,.wew-form,.wew-contact-cards,.wew-hours){text-align:start;margin-left:auto;margin-right:auto;max-width:640px}
/* People cards (cards style "people") */
.wew-person{display:grid;justify-items:center;align-content:start;gap:.2rem;height:100%;padding:1.25rem 1rem;text-align:center;background:var(--wew-card-bg);color:var(--bs-body-color);border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg)}
.wew-person img{width:128px;height:128px;border-radius:50%;object-fit:cover;margin-bottom:.6rem}
.wew-person-name{font-family:var(--wew-heading-font);font-weight:600;font-size:1.15rem;line-height:1.3;margin:0;color:var(--wew-heading-color,var(--bs-emphasis-color))}
.wew-sec .wew-person .wew-person-name,.wew-section .wew-person .wew-person-name{margin:0 0 .25rem}
.wew-person-role{color:var(--bs-secondary-color)}
.wew-person a{color:var(--bs-link-color);word-break:break-word}
/* People card choices (Widgets\Cards::PEOPLE_*). A full-width photo is cut to its shape from the middle, a little high so
   heads stay in. The shaded panel darkens the text a step: soft grey text on grey is under 4.5:1 (WCAG 1.4.3). */
.wew-people:is(.wew-people-portrait,.wew-people-square) .wew-person{justify-items:stretch}
.wew-people:is(.wew-people-portrait,.wew-people-square) .wew-person img{width:100%;height:auto;aspect-ratio:4/5;border-radius:0;object-position:50% 25%;margin-bottom:.4rem}
.wew-people-square .wew-person img{aspect-ratio:1}
@media (max-width:575.98px){.wew-people:is(.wew-people-portrait,.wew-people-square) .wew-person img{max-width:15rem;justify-self:center}}
.wew-people-shaded .wew-person{background:rgba(0,0,0,.1);border-color:rgba(0,0,0,.46);border-radius:0;padding:1.25rem}
body.wew-mode-light .wew-people-shaded .wew-person{color:color-mix(in srgb,var(--bs-body-color) 60%,#000)}
body.wew-mode-light .wew-people-shaded .wew-person-role{color:inherit}
.wew-mode-dark .wew-people-shaded .wew-person,:is(.wew-sec-dark,.wew-sec-image) .wew-people-shaded .wew-person{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.35)}
.wew-people-none .wew-person{background:none;border:0;padding:.5rem 0}
.wew-people-small .wew-person{font-size:.875rem}
.wew-people-small .wew-person-name{font-size:1.125rem}
.wew-hero-image .btn-wew{background:var(--wew-accent);color:var(--wew-accent-ink);border-color:var(--wew-accent)}

/* Slideshow options (Widgets\Gallery). Shapes: every photo cropped to fill one shape, so the show keeps its height. */
.wew-slides:not(.wew-slides-whole) li{background:none;position:relative;overflow:hidden}
.wew-slides-band li{aspect-ratio:3/1}
.wew-slides-wide li{aspect-ratio:16/9}
.wew-slides-classic li{aspect-ratio:4/3}
.wew-slides-square li{aspect-ratio:1/1}
/* Pinned to the box: a height of 100% does not resolve against a height that comes from aspect-ratio. */
.wew-slides:not(.wew-slides-whole) img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
/* Effects other than "slide": the photos stack in one place; the current one shows, the one before it goes. The
   starting place of a photo coming in is its effect's transform; speed = --wew-slide-speed (the widget's setting). */
.wew-stacked ul{display:grid;overflow:hidden;scroll-snap-type:none}
.wew-stacked li{grid-area:1/1;opacity:0;visibility:hidden;z-index:0;
  transition:opacity var(--wew-slide-speed,600ms) ease,transform var(--wew-slide-speed,600ms) cubic-bezier(.2,.75,.25,1),visibility 0s linear var(--wew-slide-speed,600ms)}
.wew-stacked li.is-current{opacity:1;visibility:visible;transform:none;z-index:2;transition-delay:0s}
.wew-stacked li.is-leaving{visibility:visible;z-index:1;transition-delay:0s}
.wew-fx-swoop li{transform:translateX(70%) scale(.96)}
.wew-fx-swoop li.is-leaving{transform:translateX(-25%) scale(.96)}
.wew-fx-drop li{transform:translateY(-100%)}
.wew-fx-rise li{transform:translateY(100%)}
.wew-fx-zoom li{transform:scale(1.18)}
.wew-fx-drop li.is-leaving,.wew-fx-rise li.is-leaving{transform:none}
.wew-fx-zoom li.is-leaving{transform:scale(.94)}
.wew-fx-none li{transition:none}
/* Controls: dots, the pause button. With no other controls the pause button sits over the photo's corner. */
.wew-slides-dots{display:flex;gap:12px;align-items:center}
.wew-slides-dots button{width:12px;height:12px;padding:0;font-size:0}
.wew-slides-dots button[aria-current="true"]{background:currentColor}
.wew-slides-bar .wew-slides-pause{font-size:.8rem;letter-spacing:-.1em}
.wew-slides-bar-min{position:absolute;right:12px;bottom:12px;margin:0;z-index:3}
.wew-slides-bar-min button{background:rgba(0,0,0,.55);color:#fff;border-color:rgba(255,255,255,.7)}
.wew-slides-bar button:focus-visible{outline:3px solid var(--bs-link-color);outline-offset:2px}

/* Section width "full": edge to edge, no side margins and no padding (a photo band, a slideshow across the screen). */
.wew-sec.wew-sec-full{padding:0}
.wew-sec-full + .wew-sec-plain{padding-top:var(--wew-space)}
.wew-sec-full :is(.wew-slides,.wew-image){margin-bottom:0}
.wew-sec-full .wew-slides ul{border-radius:0}
.wew-sec-full .wew-slides-bar:not(.wew-slides-bar-min){padding:0 12px 8px}

/* Callout tones (Blocks::TONES): light boxes with dark words, readable on any section background; the icon is the
   tone's small sign in a circle beside the words. */
.wew-callout:is(.wew-callout-info,.wew-callout-success,.wew-callout-warning,.wew-callout-danger){font-weight:400;border:1px solid var(--wew-tone-line);border-left:4px solid var(--wew-tone);background:var(--wew-tone-bg);color:var(--wew-tone-ink)}
.wew-callout:is(.wew-callout-info,.wew-callout-success,.wew-callout-warning,.wew-callout-danger) a{color:inherit;text-decoration:underline;font-weight:600}
.wew-callout-info{--wew-tone:#2b8fc0;--wew-tone-line:#b9dff0;--wew-tone-bg:#e3f2fa;--wew-tone-ink:#1d4f66}
.wew-callout-success{--wew-tone:#2f9e44;--wew-tone-line:#b9e3c2;--wew-tone-bg:#e6f6e9;--wew-tone-ink:#1d5228}
.wew-callout-warning{--wew-tone:#e8a317;--wew-tone-line:#f3d9a0;--wew-tone-bg:#fdf4e1;--wew-tone-ink:#5c4006}
.wew-callout-danger{--wew-tone:#d6336c;--wew-tone-line:#f2bccb;--wew-tone-bg:#fce8ee;--wew-tone-ink:#6b1530}
.wew-callout-icon{position:relative;padding-left:3.1rem}
.wew-callout-icon::before{content:"i";position:absolute;left:.85rem;top:50%;transform:translateY(-50%);width:1.5rem;height:1.5rem;border-radius:50%;
  background:var(--wew-tone,var(--wew-accent));color:#fff;font:700 .9rem/1.5rem Georgia,serif;text-align:center}
.wew-callout-success.wew-callout-icon::before{content:"\2713";font-family:inherit}
.wew-callout-warning.wew-callout-icon::before,.wew-callout-danger.wew-callout-icon::before{content:"!"}
.wew-callout-warning.wew-callout-icon::before{color:#3b2a04}

/* Coloured words in a formatted table cell (Widgets\Table::COLOURS): a light-mode and a dark-mode shade. Brand is the
   site's link colour, which the Look checks for contrast. */
.wew-c-brand{color:var(--bs-link-color)}
.wew-c-red{color:#c92a2a}
.wew-c-green{color:#2b8a3e}
.wew-c-blue{color:#1864ab}
.wew-c-grey{color:var(--bs-secondary-color)}
.wew-mode-dark .wew-c-red{color:#ff8787}
.wew-mode-dark .wew-c-green{color:#69db7c}
.wew-mode-dark .wew-c-blue{color:#74c0fc}
.wew-sec-dark :is(.wew-c-red,.wew-c-green,.wew-c-blue,.wew-c-brand),.wew-sec-image :is(.wew-c-red,.wew-c-green,.wew-c-blue,.wew-c-brand){color:inherit;font-weight:700}

/* Banner options (Blocks::HERO). Each one, when chosen, wins over the template's own banner (section.wew-hero.… is
   more specific than any template rule); "" leaves the template's look. */
section.wew-hero.wew-hero-look-tint:not(.wew-hero-image){background:var(--wew-band);color:var(--bs-body-color)}
section.wew-hero.wew-hero-look-grey:not(.wew-hero-image){background:color-mix(in srgb,var(--bs-body-color) 4%,var(--bs-body-bg));color:var(--bs-body-color);border-bottom:1px solid var(--bs-border-color)}
section.wew-hero.wew-hero-look-plain:not(.wew-hero-image){background:transparent;color:var(--bs-body-color)}
section.wew-hero.wew-hero-look-brand:not(.wew-hero-image){background:var(--wew-brand);color:var(--wew-brand-ink)}
section.wew-hero:is(.wew-hero-look-tint,.wew-hero-look-grey,.wew-hero-look-plain):not(.wew-hero-image) :is(h1,.wew-crumbs ol,.wew-crumbs a){color:var(--bs-emphasis-color)}
section.wew-hero:is(.wew-hero-look-tint,.wew-hero-look-grey,.wew-hero-look-plain):not(.wew-hero-image) :is(.lead,.wew-eyebrow){color:var(--bs-secondary-color)}
section.wew-hero:is(.wew-hero-look-tint,.wew-hero-look-grey,.wew-hero-look-plain):not(.wew-hero-image) .wew-eyebrow::before{display:none}
section.wew-hero.wew-hero-look-brand:not(.wew-hero-image) :is(h1,.lead,.wew-eyebrow,.wew-crumbs ol,.wew-crumbs a){color:var(--wew-brand-ink)}
/* Buttons on the brand colour: the main one in the accent (as on dark sections), the second in the brand's text colour. */
section.wew-hero.wew-hero-look-brand:not(.wew-hero-image) .btn-wew{background:var(--wew-accent);color:var(--wew-accent-ink);border-color:var(--wew-accent)}
section.wew-hero.wew-hero-look-brand:not(.wew-hero-image) .btn-wew-secondary{background:transparent;color:var(--wew-brand-ink);border-color:currentColor}
/* Height: the least height, words in the middle; a photo is cropped to fill it. */
section.wew-hero:is(.wew-hero-height-short,.wew-hero-height-medium,.wew-hero-height-tall,.wew-hero-height-screen){display:flex;align-items:center}
section.wew-hero:is(.wew-hero-height-short,.wew-hero-height-medium,.wew-hero-height-tall,.wew-hero-height-screen) > .container{width:100%}
section.wew-hero.wew-hero-height-short{min-height:200px}
section.wew-hero.wew-hero-height-medium{min-height:320px}
section.wew-hero.wew-hero-height-tall{min-height:480px}
section.wew-hero.wew-hero-height-screen{min-height:80vh}
@media (max-width:575.98px){section.wew-hero.wew-hero-height-tall{min-height:360px}section.wew-hero.wew-hero-height-screen{min-height:60vh}}
/* Space above and below the words (none: only the banner's height, e.g. a photo tucked under the menu). */
section.wew-hero.wew-hero-space-slim{padding-top:30px;padding-bottom:30px}
section.wew-hero.wew-hero-space-slim > .container{padding-top:0;padding-bottom:0}
section.wew-hero.wew-hero-space-none,section.wew-hero.wew-hero-space-none > .container{padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0}
section.wew-hero.wew-hero-space-none :is(h1,.lead,.wew-buttons):last-child{margin-bottom:0}
section.wew-hero.wew-hero-bare:not([class*="wew-hero-height-"]){min-height:320px}
/* Inside the page column: rounded, with room around it. */
.wew-hero-box{margin-top:1.5rem}
.wew-hero-box > section.wew-hero{border-radius:var(--bs-border-radius);overflow:hidden}
.wew-hero-box > section.wew-hero > .container{max-width:none;padding-left:clamp(1rem,4vw,3rem);padding-right:clamp(1rem,4vw,3rem)}
/* The title. */
section.wew-hero.wew-hero-title-size-medium h1{font-size:calc(1.4rem + 1.2vw);max-width:none}
section.wew-hero.wew-hero-title-size-small h1{font-size:1.5rem;max-width:none;line-height:1.25}
section.wew-hero.wew-hero-title-case-caps h1{text-transform:uppercase;letter-spacing:.05em}
section.wew-hero.wew-hero-title-weight-bold h1{font-weight:700}
section.wew-hero.wew-hero-title-weight-normal h1{font-weight:400}
section.wew-hero.wew-hero-title-size-small h1:last-child,section.wew-hero.wew-hero-title-size-medium h1:last-child{margin-bottom:0}
/* Alignment. */
section.wew-hero.wew-hero-align-left{text-align:left}
section.wew-hero.wew-hero-align-left :is(h1,.lead,.display-5){margin-left:0;margin-right:auto}
section.wew-hero.wew-hero-align-center{text-align:center}
section.wew-hero.wew-hero-align-center :is(h1,.lead,.display-5){margin-left:auto;margin-right:auto}
section.wew-hero.wew-hero-align-center .wew-buttons{justify-content:center}
/* How much a photo is darkened. */
section.wew-hero.wew-hero-shade-soft .wew-hero-photo::after{background:linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.12))}
section.wew-hero.wew-hero-shade-none .wew-hero-photo::after{display:none}
section.wew-hero.wew-hero-shade-none{background:transparent}

/* Text and page options (Theme: page_width, text_width, heading_weight, heading_case, links, header_line,
   footer_heads; colours and line height are variables). A site that keeps the defaults has none of these classes. */
@media (min-width:1400px){.wew-pw-standard .container{max-width:var(--wew-page-w)}}
@media (min-width:1200px){.wew-pw-narrow .container{max-width:var(--wew-page-w)}}
.wew-text-full :is(.wew-text,.wew-image-normal){max-width:none}
body.wew-hw-bold :is(h1,h2,h3,h4,.display-5){font-weight:700}
body.wew-hw-regular :is(h1,h2,h3,h4,.display-5){font-weight:400}
body.wew-hc-caps :is(h1,h2,h3,h4,.display-5){text-transform:uppercase;letter-spacing:.04em}
body.wew-hc-normal :is(h1,h2,h3,h4,.display-5){text-transform:none;letter-spacing:normal}
/* Links underlined on hover only, in text (Theme::LINKS; the Look refuses it when the link colour doesn't stand out
   from the text). On dark, photo and accent bands links take the text colour, so they keep their underline. */
body.wew-links-hover :is(main,footer) a:not(.btn){text-decoration:none}
body.wew-links-hover :is(main,footer) a:not(.btn):is(:hover,:focus-visible){text-decoration:underline}
.wew-links-hover :is(.wew-sec-dark,.wew-sec-image,.wew-sec-accent,.wew-hero-image) a:not(.btn){text-decoration:underline}
body.wew-hl-none .wew-header{border-bottom:0}
body.wew-hl-line .wew-header{border-bottom:1px solid var(--bs-border-color)}
/* Footer headings as small spaced capitals (the club's: 14 px, regular, 1 px apart). */
body.wew-foot-caps .wew-footer :is(h1,h2,h3,h4){font-size:.875rem;font-weight:400;text-transform:uppercase;letter-spacing:.07em;line-height:1.4;margin-bottom:.9rem}
