/*
 * Camp Canopy: base, shared chrome and shared components.
 * Values: [m] measured (audit/measure), [ds] design-system.md, [spec] design-spec.md (approved changes).
 * Page-specific rules live in page-<key>.css. Hover changes beyond the two 1:1 hovers live only in hover.css (J10).
 * Class prefix .canopy- (the consent mu-plugin owns .cc-consent*, .cc-purpose*, .cc-consent-link).
 */

/* ---------- Fonts: self-hosted, latin, variable (seo-spec P1). Slab 300-700: live renders archive titles at 300. ---------- */
@font-face {
	font-family: "Roboto Slab";
	src: url("../fonts/roboto-slab-latin-var.woff2") format("woff2");
	font-weight: 300 700;
	font-style: normal;
	font-display: swap;
	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;
}
@font-face {
	font-family: "Roboto";
	src: url("../fonts/roboto-latin-var.woff2") format("woff2");
	font-weight: 300 700;
	font-style: normal;
	font-display: swap;
	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;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

html { font-size: var(--cc-fs-root); -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--cc-white);
	color: var(--cc-text);
	font-family: var(--cc-font-body);
	font-size: var(--cc-fs-body);
	line-height: var(--cc-lh-body);
	overflow-wrap: break-word;
}

img, svg, video { max-width: 100%; }
img { height: auto; }
figure { margin: 0; }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 20px;
	color: var(--cc-green);
	font-family: var(--cc-font-head);
	font-weight: var(--cc-fw-head);
	line-height: 1.3;
}

p { margin: 0 0 24px; }
ul, ol { margin: 0 0 24px; padding-left: 1.5em; }

/* Links: underlined at rest (A3); hover #000 is the 1:1 Astra hover. */
a { color: var(--cc-green); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--cc-black); }

:focus-visible { outline: 3px solid var(--cc-focus); outline-offset: 2px; } /* 3px: variant B9 promoted (DECISIONS L19) */

button { font: inherit; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.canopy-skip-link {
	position: absolute;
	top: 8px; left: 8px;
	z-index: 1000;
	padding: 10px 16px;
	background: var(--cc-white);
	color: var(--cc-green);
	font-weight: 700;
	transform: translateY(-200%);
}
.canopy-skip-link:focus { transform: none; }

.canopy-main:focus { outline: none; }

.canopy-icon { display: inline-block; flex: none; vertical-align: middle; }

/* ---------- Scaffolding: section > container > content (A10) ---------- */
.canopy-container {
	width: 100%;
	max-width: var(--cc-maxw);
	margin-inline: auto;
	padding-inline: var(--cc-gutter);
}

/* Default-template rhythm (Astra pages: 60px above and below the content). */
.canopy-section { padding-block: var(--cc-space-page); }

/* Running text is capped at 72ch [spec 3a]. Headings, forms, images and tables are not. */
.canopy-prose > p,
.canopy-prose > ul,
.canopy-prose > ol,
.canopy-measure { max-width: var(--cc-measure); }

/* Grid helpers: Elementor proportions with a 20px gap [spec 3a]. Stack at <= 767. */
.canopy-grid { display: grid; gap: var(--cc-col-gap); }
@media (min-width: 768px) {
	.canopy-grid--halves { grid-template-columns: 1fr 1fr; }
	.canopy-grid--two-one { grid-template-columns: 2fr 1fr; }
	.canopy-grid--one-two { grid-template-columns: 1fr 2fr; }
	.canopy-grid--thirds { grid-template-columns: repeat(3, 1fr); }
	.canopy-grid--side-main-side { grid-template-columns: 1fr 4fr 1fr; }
}

/* ---------- Buttons [ds 4] ---------- */
.canopy-btn {
	display: inline-block;
	padding: 12px 24px;
	border: 0;
	border-radius: var(--cc-radius-button);
	background: var(--cc-green);
	color: var(--cc-white);
	font-family: var(--cc-font-ui);
	font-size: var(--cc-fs-button);
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}
.canopy-btn:hover { color: var(--cc-white); }
.canopy-btn--shadow { box-shadow: var(--cc-shadow); }

/* ---------- Header [m home-1440/1100/768/390] ---------- */
.canopy-header { position: relative; padding: 10px 10px 39px; background: var(--cc-white); }

.canopy-header__home { display: block; }
.canopy-header__banner { display: block; width: 100%; height: auto; aspect-ratio: 1420 / 326; }
.canopy-header__name { display: block; padding: 20px; color: var(--cc-green); font-family: var(--cc-font-head); font-size: var(--cc-fs-h2); text-align: center; }
.canopy-header__home:focus-visible { outline-offset: -4px; }

.canopy-nav { position: relative; z-index: 20; }
.canopy-nav__menu,
.canopy-nav__menu .sub-menu { margin: 0; padding: 0; list-style: none; }

.canopy-nav__menu a {
	display: block;
	padding: 15px;
	background: var(--cc-white);
	color: var(--cc-nav);
	font-family: var(--cc-font-head);
	font-size: var(--cc-fs-nav);
	font-weight: 400;
	line-height: 20px;
	text-decoration: none;
}
.canopy-nav__menu a:hover { color: var(--cc-nav); }
.canopy-nav__menu .current-menu-item > a,
.canopy-nav__menu .current-menu-ancestor > a,
.canopy-nav__menu .current-menu-parent > a { font-weight: 700; }

.canopy-nav__sub-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: none;
	color: var(--cc-nav);
	cursor: pointer;
}
.canopy-nav__sub-toggle[aria-expanded="true"] .canopy-icon { transform: rotate(180deg); }

.canopy-nav__toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-inline: auto;
	padding: 0;
	border: 0;
	background: var(--cc-nav);
	color: var(--cc-white);
	cursor: pointer;
}

/* Desktop: the nav sits in the banner's white band (banner bottom + 20 - 79 = -59px) [m home-1440: nav top y277]. */
@media (min-width: 910px) {
	.canopy-nav { margin-top: -59px; }
	.canopy-nav__toggle { display: none; }
	.canopy-nav__menu { display: flex; justify-content: center; }
	.canopy-nav__menu > li { position: relative; display: flex; align-items: center; background: var(--cc-white); }
	/* Parents: 15/34/15/15 today; the chevron button takes the extra 19px. */
	.canopy-nav__menu > .menu-item-has-children > a { padding-right: 4px; }
	.canopy-nav__menu > li > .canopy-nav__sub-toggle { width: 30px; height: 50px; }
	.canopy-nav__menu .sub-menu {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 30;
		width: var(--cc-nav-dropdown);
		background: var(--cc-white);
		visibility: hidden;
	}
	.canopy-nav__menu > li:hover > .sub-menu,
	.canopy-nav__menu > li:focus-within > .sub-menu,
	.canopy-nav__menu > li.is-open > .sub-menu { visibility: visible; }
	.canopy-nav__menu > li.is-closed > .sub-menu { visibility: hidden; }
}

/* Below 910: dark square toggle overlapping the banner's white band; inline panel that pushes content. */
@media (max-width: 909px) {
	.canopy-header { padding-bottom: 29px; }
	.canopy-nav__toggle { width: 36px; height: 43px; margin-top: -41px; }
	.canopy-nav__menu { display: none; padding: 10px 10px 0; text-align: left; }
	.canopy-nav.is-open .canopy-nav__menu { display: block; }
	.canopy-nav__menu > li { display: grid; grid-template-columns: 1fr auto; align-items: center; }
	.canopy-nav__menu > li > .canopy-nav__sub-toggle { width: 44px; height: 30px; border-left: 1px solid #c4c4c4; }
	.canopy-nav__menu a { padding: 10px 4px; }
	.canopy-nav__menu .sub-menu { display: none; grid-column: 1 / -1; }
	.canopy-nav__menu > li.is-open > .sub-menu { display: block; }
	.canopy-nav__menu .sub-menu a { font-weight: inherit; }
	.canopy-nav__menu .current-menu-ancestor .sub-menu a,
	.canopy-nav__menu .current-menu-parent .sub-menu a { font-weight: 700; }
}
@media (max-width: 767px) {
	.canopy-header { padding-bottom: 34px; }
	.canopy-nav__toggle { width: 50px; height: 53px; margin-top: -33px; }
}

/* ---------- Footer [m home-1440 footer 216] ---------- */
.canopy-footer__band { display: grid; background: var(--cc-teal-band); color: var(--cc-white); }
@media (min-width: 768px) {
	/* minmax(0, 1fr): three equal columns even when a long word in the narrow quote can't wrap (it overflows, as on live; B10-2). */
	.canopy-footer__band { grid-template-columns: repeat(3, minmax(0, 1fr)); min-height: 256px; }
}
.canopy-footer__col { position: relative; min-width: 0; background: var(--cc-teal-band); box-shadow: var(--cc-shadow); }
.canopy-footer__col--quotes { padding: 40px 10px 10px; }
.canopy-footer__col--social { padding: 40px 0 43px; }
.canopy-footer__col--contact { padding: 42px 10px 10px; }

.canopy-footer__heading {
	margin: 0 0 20px;
	color: var(--cc-white);
	font-size: var(--cc-fs-h5);
	line-height: 1;
}
/* R-9: three different offsets, reproduced. */
.canopy-footer__col--quotes .canopy-footer__heading { margin-left: 30px; }
.canopy-footer__col--social .canopy-footer__heading { padding-left: 44px; }
.canopy-footer__col--contact .canopy-footer__heading { margin: 0 0 35px 34px; }

.canopy-footer a { color: var(--cc-white); text-decoration: none; }
.canopy-footer a:hover { color: var(--cc-white); }
.canopy-footer :focus-visible { outline-color: var(--cc-focus-on-dark); }

/* Contact lines: today's look (0.1em line-heights, spacing from margins) with sane line-heights (R-17). */
.canopy-footer__email,
.canopy-footer__phone { margin: 0 0 12px 34px; font-weight: 700; line-height: 20px; }
.canopy-footer__email { font-size: 15px; }
.canopy-footer__phone { font-size: 17px; }

.canopy-social { display: flex; flex-wrap: wrap; gap: 12px; margin: 44px 0 0; padding: 0 0 0 38px; list-style: none; }
.canopy-social__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--cc-social);
	color: var(--cc-white);
}

/* Testimonials (design-spec 5a). */
.canopy-rotator--quotes { color: var(--cc-white); }
.canopy-quote { position: relative; max-width: 340px; margin: 0 auto; padding: 0 50px 20px; text-align: center; }
.canopy-quote__text { margin: 0; }
.canopy-quote__text p { margin: 0; font-family: var(--cc-font-body); font-size: 20px; font-style: italic; line-height: 25px; }
.canopy-quote__mark { position: absolute; color: rgba(255, 255, 255, 0.7); }
.canopy-quote__mark--open { top: 0; left: 0; }
.canopy-quote__mark--close { right: 0; bottom: -14px; }
.canopy-quote__by { margin-top: 8px; font-size: 15px; }
.canopy-rotator--quotes .canopy-rotator__controls { justify-content: center; gap: 8px; margin-top: 16px; color: var(--cc-white); }
/* Columns side by side (>= 768): today's Strong Testimonials box - 30px inner padding and ~56px glyph space per side,
   so the quote is always column - 192px wide (288 at 1440, 175 at 1100, 149 at 1024, 64 at 768: about one word per
   line at 768, R-2). Quote 1.3em: 19.5px, and 17.78px at 768 where the old root was 13.68px. Measured on live:
   audit/measure/live-tablet-breakpoint.txt (B10-1). Scoped to 768-1100 (B10-1's range); 1440 keeps its verified
   look (quote 240 wide vs live 288, flagged in verify-report). */
@media (min-width: 768px) and (max-width: 1100px) {
	.canopy-rotator--quotes { padding: 0 30px; }
	.canopy-rotator--quotes .canopy-quote { max-width: none; padding: 0 56px 20px; }
	.canopy-rotator--quotes .canopy-quote__text p { font-size: 19.5px; line-height: 24.75px; overflow-wrap: normal; } /* long words overflow whole, as on live (not "resourc-es]") */
}
@media (min-width: 768px) and (max-width: 768px) {
	.canopy-rotator--quotes .canopy-quote__text p { font-size: 17.78px; line-height: 22.57px; }
}

.canopy-footer__legal { padding: 30px 0 26px; }
.canopy-footer__copyright { margin: 0; color: var(--cc-green); font-family: var(--cc-font-ui); font-size: 15px; line-height: 25px; text-align: center; }
/* Legal links: the copyright line's type, underlined (they sit beside plain text of the same colour), focus ring for a light band. */
.canopy-footer__legal-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 24px; margin: 6px 0 0; padding: 0; list-style: none; font-family: var(--cc-font-ui); font-size: 15px; line-height: 25px; }
.canopy-footer__legal-links a { display: inline-block; padding: 10px 0; /* 45px tall tap target */ color: var(--cc-green); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.canopy-footer__legal-links a:hover { color: var(--cc-green); text-decoration-thickness: 2px; }
.canopy-footer__legal :focus-visible { outline-color: var(--cc-focus); }

@media (max-width: 767px) {
	/* Stacked footer keeps today's block heights at 390 [m home-390: 302 / 225 / 178, copyright band 119]. */
	.canopy-footer__col--quotes { min-height: 302px; }
	.canopy-footer__col--social { min-height: 225px; }
	.canopy-footer__col--contact { min-height: 178px; }
	.canopy-footer__legal { min-height: 119px; padding-bottom: 76px; /* the legal links clear the fixed Privacy choices pill (44px at bottom 24-26px) at page end */ }
	.canopy-quote__text p { font-size: 15px; line-height: 23px; }
	.canopy-footer__copyright,
	.canopy-footer__legal-links { font-size: 14px; line-height: 23px; }
}

/* ---------- Rotator (shared: Home slider, footer quotes) ---------- */
.canopy-rotator__viewport { position: relative; }
.canopy-rotator__track { display: grid; }
.canopy-rotator__slide { grid-area: 1 / 1; min-width: 0; /* box keeps its width; a long word overflows, as on live (B10-2) */ opacity: 0; visibility: hidden; transition: opacity var(--cc-fade, 600ms) ease, visibility 0s linear var(--cc-fade, 600ms); }
.canopy-rotator__slide.is-active { opacity: 1; visibility: visible; transition: opacity var(--cc-fade, 600ms) ease, visibility 0s; }
.canopy-rotator__controls { display: flex; align-items: center; }
.canopy-rotator__arrow,
.canopy-rotator__pause,
.canopy-rotator__dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	min-height: 24px;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
}
.canopy-rotator__icon-play { display: none; }
.is-paused .canopy-rotator__icon-pause { display: none; }
.is-paused .canopy-rotator__icon-play { display: inline; }
.canopy-rotator__dots { display: flex; gap: 0; }
.canopy-rotator__dot span { display: block; width: 11px; height: 11px; border-radius: 50%; background: var(--cc-dot-inactive); }
.canopy-rotator__dot[aria-current="true"] span { background: var(--cc-nav); }

/* ---------- Carousel (shared: Camp photos) ---------- */
.canopy-carousel { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; column-gap: 8px; }
.canopy-carousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 100%;
	gap: 7px;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.canopy-carousel__track::-webkit-scrollbar { display: none; }
.canopy-carousel__item { scroll-snap-align: start; }
.canopy-carousel__item img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
@media (min-width: 768px) { .canopy-carousel__track { grid-auto-columns: calc((100% - 7px) / 2); } }
@media (min-width: 1025px) { .canopy-carousel__track { grid-auto-columns: calc((100% - 14px) / 3); } }
.canopy-carousel__arrow { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; min-height: 44px; padding: 0; border: 0; background: none; color: var(--cc-black); cursor: pointer; }
.canopy-carousel__controls { grid-column: 2; display: flex; justify-content: flex-end; margin-top: 8px; color: var(--cc-nav); }
.canopy-carousel__controls .canopy-rotator__pause { color: var(--cc-nav); }
.canopy-carousel.is-paused .canopy-rotator__icon-pause { display: none; }
.canopy-carousel.is-paused .canopy-rotator__icon-play { display: inline; }

/* ---------- Accordion (Camp FAQ) [ds 4] ---------- */
.canopy-accordion__item { background: var(--cc-white); }
.canopy-accordion__heading { margin: 0; font: inherit; }
.canopy-accordion__btn {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 15px 20px;
	border: 0;
	background: var(--cc-white);
	color: var(--cc-text);
	font-family: var(--cc-font-body);
	font-size: 15px;
	font-weight: 700;
	line-height: 15px;
	text-align: left;
	cursor: pointer;
}
.canopy-accordion__btn[aria-expanded="true"] { color: var(--cc-green); }
.canopy-accordion__minus { display: none; }
.canopy-accordion__btn[aria-expanded="true"] .canopy-accordion__plus { display: none; }
.canopy-accordion__btn[aria-expanded="true"] .canopy-accordion__minus { display: inline-block; }
.canopy-accordion__content { padding: 0 20px 15px; color: var(--cc-text); }
.canopy-accordion__content > :last-child { margin-bottom: 0; }
.canopy-accordion__content p,
.canopy-accordion__content ul { max-width: var(--cc-measure); }
/* Native <details> in page content (privacy policy dropdowns): the FAQ accordion's type and spacing, native marker
   and keyboard behaviour kept, no animation. */
.canopy-prose > details { max-width: var(--cc-measure); margin: 0; border: 1px solid var(--cc-border-soft); background: var(--cc-white); }
.canopy-prose > details + details { border-top: 0; }
.canopy-prose > details + :not(details) { margin-top: 1.5em; }
.canopy-prose summary { padding: 15px 20px; color: var(--cc-text); font-family: var(--cc-font-body); font-size: 15px; font-weight: 700; line-height: 1.4; cursor: pointer; }
.canopy-prose details[open] > summary { color: var(--cc-green); }
.canopy-prose details > :not(summary) { margin-inline: 20px; }
.canopy-prose details > :last-child { margin-bottom: 15px; }
@media (max-width: 767px) {
	.canopy-accordion__btn { padding: 12px 15px; font-size: 14px; }
	.canopy-prose summary { padding: 12px 15px; font-size: 14px; }
	.canopy-prose details > :not(summary) { margin-inline: 15px; }
	.canopy-accordion__content { padding: 0 15px 12px; }
	.canopy-accordion__item + .canopy-accordion__item { border-top: 1px solid var(--cc-border-soft); }
}

/* ---------- Tabs (About) [ds 4] ---------- */
.canopy-tabs__list { display: flex; flex-wrap: wrap; }
.canopy-tabs__tab {
	padding: 20px 25px;
	border: 1px solid transparent;
	border-bottom: 0;
	background: none;
	color: var(--cc-text);
	font-family: var(--cc-font-head);
	font-size: 15px;
	font-weight: 600;
	line-height: 15px;
	cursor: pointer;
}
.canopy-tabs__tab[aria-selected="true"] { border-color: var(--cc-white); background: var(--cc-panel-grey); color: var(--cc-green); }
.canopy-tabs__panel { padding: 20px; background: var(--cc-panel-grey); color: var(--cc-text-on-grey); }
.canopy-tabs__panel > * { max-width: var(--cc-measure); }
.canopy-tabs__panel > :last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.canopy-tabs__tab { padding: 10px; font-size: 14px; line-height: 23px; }
}

/* ---------- Video (1:1 lazy YouTube) ---------- */
.canopy-video { position: relative; aspect-ratio: 16 / 9; background: #000; }
.canopy-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Registration block (design-spec 8b; Customizer .reg-* values) ---------- */
.canopy-reg { margin: 25px 0; }
.canopy-reg__button {
	display: block;
	width: 100%;
	padding: 16px 20px;
	border-radius: var(--cc-radius-reg);
	background: var(--cc-green-button);
	box-shadow: var(--cc-shadow-reg);
	color: var(--cc-white);
	font-family: var(--cc-font-body);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
}
.canopy-reg__button:hover { color: var(--cc-white); box-shadow: var(--cc-shadow-reg-hover); }
.canopy-reg__deadline { margin: 12px 0 0; color: var(--cc-deadline); font-size: 15px; font-weight: 500; text-align: center; }
.canopy-reg--soon .canopy-reg__deadline { color: var(--cc-alert); font-weight: 700; }
.canopy-reg--closed,
.canopy-reg--notyet {
	padding: 10px;
	border: 1px solid var(--cc-alert);
	border-radius: var(--cc-radius-alert);
	color: var(--cc-alert);
	font-weight: 700;
	text-align: left;
}
.canopy-reg--notyet { padding: 10px 16px; border-color: var(--cc-green); color: var(--cc-green); }

/* ---------- Lead and callout (design-spec 4a) ---------- */
.is-style-cc-lead { color: var(--cc-heading-astra); font-size: 18px; line-height: 1.6; margin-bottom: 1.4em; }
.is-style-cc-callout {
	margin: 2em 0;
	padding: 20px 24px;
	border: 1px solid var(--cc-panel-blue);
	background: var(--cc-panel-grey);
	color: var(--cc-text-on-grey);
}
.is-style-cc-callout > :last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.is-style-cc-lead { font-size: 16px; }
	.is-style-cc-callout { padding: 16px 20px; }
}

/* ---------- Search form (404, search) ---------- */
.canopy-search { display: flex; max-width: 300px; }
.canopy-search input[type="search"] { flex: 1; min-width: 0; padding: 10px 12px; border: 1px solid #ddd; background: #f8f8f8; color: var(--cc-text); font: inherit; }
.canopy-search input::placeholder { color: var(--cc-text-kit-on-white); }
.canopy-search button { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; border: 1px solid #ddd; border-left: 0; background: #f8f8f8; color: var(--cc-text); cursor: pointer; }

/* ---------- Consent banner (design-spec 6; plugin markup, theme overrides) ---------- */
.cc-consent { font-family: var(--cc-font-body); border-radius: 5px; border: 1px solid var(--cc-border-soft); }
.cc-consent h2 { font-family: var(--cc-font-head); font-weight: 600; color: var(--cc-green); letter-spacing: 0; font-size: 22px; }
.cc-consent-btn, .cc-consent-link { border-radius: 3px; }
.cc-consent-btn:focus-visible, .cc-consent-link:focus-visible, .cc-consent-close:focus-visible { outline: 3px solid var(--cc-focus); outline-offset: 2px; }
@media (max-width: 520px) { .cc-consent h2 { font-size: 19px; } }

/* ---------- Reduced motion (studio default) ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
@media (prefers-reduced-motion: no-preference) {
	html:focus-within { scroll-behavior: smooth; }
}

/* B10-1: the old site switched to phone type at <= 768px (Astra 4.7.3 inline responsive CSS: html 85.5%,
   h1 30 / h2 25 / h3 20), while columns stacked only at <= 767. These are this file's <= 767 type rules, repeated so
   768 gets them too; 769+ stays desktop, 390 is unchanged. Source: audit/measure/live-tablet-breakpoint.txt */
@media (max-width: 768px) {
	.canopy-quote__text p { font-size: 15px; line-height: 23px; }
	.canopy-footer__copyright,
	.canopy-footer__legal-links { font-size: 14px; line-height: 23px; }
	.canopy-accordion__btn { font-size: 14px; }
	.canopy-tabs__tab { font-size: 14px; line-height: 23px; }
	.is-style-cc-lead { font-size: 16px; }
}
