/*
Theme Name: Sunrise Shutters Astra Child
Description: Local development child theme for Sunrise Shutters.
Author: Sunrise Shutters
Template: astra
Version: 0.3.0
Text Domain: sunrise-astra-child
*/

:root {
	--ast-global-color-0: #dd1d1d;
	--ast-global-color-1: #111315;
	--ast-global-color-2: #1e293b;
	--ast-global-color-3: #334155;
	--ast-global-color-4: #f9fafb;
	--ast-global-color-5: #ffffff;
	--ast-global-color-6: #e2e8f0;
	--ast-global-color-7: #cbd5e1;
	--ast-global-color-8: #94a3b8;
	--e-global-color-astglobalcolor0: #dd1d1d;
	--e-global-color-astglobalcolor1: #111315;
	--e-global-color-astglobalcolor2: #1e293b;
	--e-global-color-astglobalcolor3: #334155;
	--e-global-color-astglobalcolor4: #f9fafb;
	--e-global-color-astglobalcolor5: #ffffff;
	--e-global-color-astglobalcolor6: #e2e8f0;
	--e-global-color-astglobalcolor7: #cbd5e1;
	--e-global-color-astglobalcolor8: #94a3b8;
	--sunrise-red: #c61a1a;
	--sunrise-red-deep: #9e1414;
	--sunrise-red-dark-ground: #e04b4b;
	--sunrise-ink: #101113;
	--sunrise-ink-2: #16181c;
	--sunrise-slate: #545a61;
	--sunrise-paper: #f4f2ee;
	--sunrise-white: #ffffff;
	--sunrise-line: #ddd8cf;
	--sunrise-amber: #f5a623;
	--sunrise-radius: 2px;
	--sunrise-shadow: 0 16px 44px rgba(16, 17, 19, 0.10);
	--sunrise-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--sunrise-display: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--sunrise-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
	--sunrise-max: 1240px;
}

html {
	scroll-behavior: smooth;
	/* Light-only design: opt out of Android forced/auto dark inversion and
	   keep UA form controls on the light scheme. */
	color-scheme: light only;
	/* Stop Android font boosting from inflating the display type. */
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	background: var(--sunrise-paper);
}

.sunrise-skip-link {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 99999;
	padding: 12px 16px;
	background: var(--sunrise-white);
	color: var(--sunrise-ink);
	font: 800 14px/1 var(--sunrise-font);
	transform: translateY(-160%);
}

.sunrise-skip-link:focus {
	transform: translateY(0);
}

.sunrise-shell {
	width: min(100% - 40px, var(--sunrise-max));
	margin-inline: auto;
}

.sunrise-site-header,
.sunrise-site-footer,
.sunrise-page {
	font-family: var(--sunrise-font);
}

.sunrise-site-header *,
.sunrise-site-header *::before,
.sunrise-site-header *::after,
.sunrise-site-footer *,
.sunrise-site-footer *::before,
.sunrise-site-footer *::after,
.sunrise-page *,
.sunrise-page *::before,
.sunrise-page *::after {
	box-sizing: border-box;
}

.sunrise-site-header a,
.sunrise-site-footer a,
.sunrise-page a {
	text-decoration: none;
}

.sunrise-site-header a:focus-visible,
.sunrise-site-header summary:focus-visible,
.sunrise-site-footer a:focus-visible,
.sunrise-page a:focus-visible,
.sunrise-page summary:focus-visible {
	outline: 3px solid var(--sunrise-red);
	outline-offset: 4px;
}

.sunrise-urgent-bar {
	background: #171a1d;
	color: var(--sunrise-white);
}

.sunrise-urgent-bar__inner {
	display: flex;
	min-height: 38px;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	font-size: 13px;
}

.sunrise-urgent-bar p {
	margin: 0;
	color: #d9dde0;
}

.sunrise-urgent-bar a {
	color: var(--sunrise-white);
	font-weight: 800;
}

.sunrise-brand-row {
	display: flex;
	min-height: 108px;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}

.sunrise-brand {
	display: inline-flex;
	align-items: center;
}

.sunrise-brand__logo {
	display: block;
	width: min(248px, 42vw);
	height: auto;
}

.sunrise-header-contact {
	display: flex;
	align-items: center;
	gap: 32px;
}

.sunrise-header-contact > div {
	display: grid;
	gap: 3px;
}

.sunrise-header-contact span {
	color: #666c72;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sunrise-header-contact > div a {
	color: var(--sunrise-ink);
	font-size: 20px;
	font-weight: 850;
}

.sunrise-nav {
	position: relative;
	z-index: 100;
	border-top: 1px solid var(--sunrise-line);
	border-bottom: 1px solid var(--sunrise-line);
	background: var(--sunrise-white);
}

.sunrise-desktop-menu {
	display: block;
}

.sunrise-mobile-menu {
	display: none;
}

.sunrise-nav__list,
.sunrise-nav__submenu,
.sunrise-site-footer ul,
.sunrise-proof-list,
.sunrise-inline-proof,
.sunrise-process,
.sunrise-area-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sunrise-nav__list {
	display: flex;
	min-height: 54px;
	align-items: stretch;
	justify-content: space-between;
	gap: 4px;
}

.sunrise-nav__list > li {
	display: flex;
	align-items: stretch;
}

.sunrise-nav__list > li > a,
.sunrise-nav__list > li > details > summary {
	display: flex;
	min-height: 54px;
	align-items: center;
	padding: 10px 9px;
	color: var(--sunrise-ink);
	cursor: pointer;
	font-size: 11px;
	font-weight: 850;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.sunrise-nav__list > li > details > summary {
	list-style: none;
}

.sunrise-nav__list > li > details > summary::-webkit-details-marker {
	display: none;
}

.sunrise-nav__list > li > details > summary::after {
	margin-left: 7px;
	color: var(--sunrise-red);
	content: "+";
	font-size: 15px;
}

.sunrise-nav__list > li > details[open] > summary::after {
	content: "−";
}

.sunrise-nav__list > li > a:hover,
.sunrise-nav__list > li > a:focus-visible,
.sunrise-nav__list summary:hover,
.sunrise-nav__list summary:focus-visible {
	color: var(--sunrise-red);
}

.sunrise-nav__urgent {
	color: var(--sunrise-red) !important;
}

.sunrise-nav__list details {
	position: relative;
}

.sunrise-nav__submenu {
	position: absolute;
	top: 100%;
	left: 0;
	width: 290px;
	padding: 10px;
	border: 1px solid var(--sunrise-line);
	background: var(--sunrise-white);
	box-shadow: 0 22px 45px rgba(21, 21, 21, 0.14);
}

.sunrise-nav__submenu a {
	display: block;
	padding: 11px 12px;
	color: #363b40;
	font-size: 13px;
	font-weight: 700;
}

.sunrise-nav__submenu a:hover,
.sunrise-nav__submenu a:focus-visible {
	background: #f2f3f4;
	color: var(--sunrise-red);
}

.sunrise-button {
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	padding: 12px 20px;
	border: 1px solid var(--sunrise-red);
	border-radius: var(--sunrise-radius);
	background: var(--sunrise-red);
	color: var(--sunrise-white) !important;
	font-size: 14px;
	font-weight: 850;
	line-height: 1.2;
	transition: background 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.sunrise-button--small {
	min-height: 44px;
	padding: 10px 16px;
	font-size: 13px;
}

.sunrise-button:hover,
.sunrise-button:focus-visible {
	border-color: #b61616;
	background: #b61616;
	transform: translateY(-1px);
}

.sunrise-button--outline {
	border-color: #73787d;
	background: transparent;
}

.sunrise-button--outline:hover,
.sunrise-button--outline:focus-visible {
	border-color: var(--sunrise-white);
	background: var(--sunrise-white);
	color: var(--sunrise-ink) !important;
}

.sunrise-button--dark-outline {
	border-color: #7d8388;
	background: transparent;
	color: var(--sunrise-ink) !important;
}

.sunrise-button--dark-outline:hover,
.sunrise-button--dark-outline:focus-visible {
	border-color: var(--sunrise-ink);
	background: var(--sunrise-ink);
	color: var(--sunrise-white) !important;
}

.sunrise-page {
	background: var(--sunrise-white);
	color: var(--sunrise-ink);
	overflow: hidden;
}

.sunrise-page h1,
.sunrise-page h2,
.sunrise-page h3,
.sunrise-site-footer h2 {
	font-family: var(--sunrise-display);
	font-weight: 800;
}

.sunrise-page h1,
.sunrise-page h2,
.sunrise-page h3,
.sunrise-page p {
	margin-top: 0;
}

.sunrise-page h1 {
	max-width: 820px;
	margin-bottom: 24px;
	font-size: clamp(42px, 5vw, 68px);
	letter-spacing: -0.045em;
	line-height: 1;
}

.sunrise-page h2 {
	margin-bottom: 22px;
	font-size: clamp(32px, 4vw, 54px);
	letter-spacing: -0.035em;
	line-height: 1.06;
}

.sunrise-page h3 {
	font-size: clamp(21px, 2.2vw, 28px);
	letter-spacing: -0.02em;
	line-height: 1.15;
}

.sunrise-eyebrow {
	margin-bottom: 18px !important;
	color: var(--sunrise-red);
	font-size: 12px;
	font-weight: 850;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sunrise-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.sunrise-text-link {
	display: inline-flex;
	align-items: center;
	color: var(--sunrise-red) !important;
	font-size: 14px;
	font-weight: 850;
}

.sunrise-text-link::after {
	margin-left: 9px;
	content: "→";
}

.sunrise-text-link:hover::after,
.sunrise-text-link:focus-visible::after {
	transform: translateX(3px);
}

.sunrise-hero,
.sunrise-service-hero {
	position: relative;
	padding: clamp(64px, 8vw, 112px) 0;
	background: var(--sunrise-white);
}

.sunrise-hero__grid,
.sunrise-service-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.02fr) minmax(360px, 0.82fr);
	gap: clamp(44px, 6vw, 84px);
	align-items: center;
}

.sunrise-hero__intro {
	max-width: 680px;
	margin-bottom: 30px;
	color: #555c62;
	font-size: clamp(18px, 2vw, 21px);
	line-height: 1.65;
}

.sunrise-hero__media,
.sunrise-service-hero__media {
	position: relative;
	min-height: 560px;
	background: #d9dcde;
	box-shadow: 20px 20px 0 #eceeef;
	overflow: hidden;
}

.sunrise-hero__image,
.sunrise-service-hero__image {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 560px;
	object-fit: cover;
}

.sunrise-hero__caption {
	position: absolute;
	right: 0;
	bottom: 0;
	display: grid;
	min-width: 240px;
	gap: 2px;
	padding: 18px 22px;
	background: var(--sunrise-red);
	color: var(--sunrise-white);
}

.sunrise-hero__caption span,
.sunrise-service-hero__marker span {
	font-size: 11px;
	font-weight: 750;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sunrise-hero__caption strong,
.sunrise-service-hero__marker strong {
	font-size: 19px;
}

.sunrise-proof-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin-top: 42px;
	border-top: 1px solid var(--sunrise-line);
}

.sunrise-proof-list li {
	display: grid;
	gap: 5px;
	padding: 21px 15px 0 0;
}

.sunrise-proof-list strong {
	font-size: 17px;
}

.sunrise-proof-list span {
	color: #62686e;
	font-size: 12px;
	line-height: 1.4;
}

.sunrise-section {
	padding: clamp(72px, 9vw, 128px) 0;
}

.sunrise-section--paper {
	background: #f2f3f4;
}

.sunrise-section--ink {
	background: #171a1d;
	color: var(--sunrise-white);
}

.sunrise-section--ink .sunrise-eyebrow,
.sunrise-cta .sunrise-eyebrow {
	color: #ff7777;
}

.sunrise-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.55fr);
	gap: 48px;
	align-items: end;
	margin-bottom: 46px;
}

.sunrise-section-heading h2,
.sunrise-section-heading p {
	margin-bottom: 0;
}

.sunrise-section-heading > p,
.sunrise-product-section__intro > p,
.sunrise-area-feature__grid > div > p,
.sunrise-faq__intro > p,
.sunrise-established-grid > div > p {
	color: #5b6268;
	font-size: 17px;
	line-height: 1.65;
}

.sunrise-section-heading--light > p {
	color: #c4c9cd;
}

.sunrise-section-heading--light h2 {
	color: var(--sunrise-white);
}

.sunrise-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.sunrise-service-card {
	display: flex;
	flex-direction: column;
	padding: clamp(28px, 4vw, 44px);
	border: 1px solid #d5d8da;
	background: var(--sunrise-white);
	color: var(--sunrise-ink) !important;
	transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.sunrise-service-card--urgent {
	border-top: 5px solid var(--sunrise-red);
}

.sunrise-service-card:hover,
.sunrise-service-card:focus-visible {
	border-color: #aeb3b7;
	box-shadow: var(--sunrise-shadow);
	transform: translateY(-3px);
}

.sunrise-card-index {
	margin-bottom: 46px;
	color: var(--sunrise-red);
	font-size: 13px;
	font-weight: 850;
}

.sunrise-service-card h3 {
	max-width: 450px;
	margin-bottom: 16px;
	font-size: clamp(27px, 3vw, 40px);
}

.sunrise-service-card p {
	max-width: 510px;
	margin-bottom: 28px;
	color: #5b6268;
	font-size: 16px;
	line-height: 1.65;
}

.sunrise-service-card .sunrise-text-link {
	margin-top: auto;
}

.sunrise-product-section__grid,
.sunrise-area-feature__grid,
.sunrise-copy-grid,
.sunrise-guidance__grid,
.sunrise-faq__grid,
.sunrise-established-grid {
	display: grid;
	grid-template-columns: minmax(280px, 0.65fr) minmax(0, 1.1fr);
	gap: clamp(48px, 8vw, 112px);
	align-items: start;
}

.sunrise-product-section__intro {
	position: sticky;
	top: 24px;
}

.sunrise-link-panel {
	border-top: 1px solid var(--sunrise-line);
}

.sunrise-link-panel a {
	color: var(--sunrise-ink) !important;
}

.sunrise-link-panel span {
	color: #666d72;
	font-size: 13px;
}

.sunrise-link-panel strong {
	font-size: 21px;
}

.sunrise-link-panel a::after {
	position: absolute;
	right: 0;
	content: "→";
	color: var(--sunrise-red);
}

.sunrise-link-panel a {
	position: relative;
	padding-right: 28px;
}

.sunrise-process {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid #42474b;
}

.sunrise-process li {
	min-height: 280px;
	padding: 30px 28px 20px 0;
	border-right: 1px solid #42474b;
}

.sunrise-process li + li {
	padding-left: 28px;
}

.sunrise-process li:last-child {
	border-right: 0;
}

.sunrise-process span {
	display: block;
	margin-bottom: 52px;
	color: #ff4b4b;
	font-size: 13px;
	font-weight: 850;
}

.sunrise-process h3 {
	margin-bottom: 14px;
	color: var(--sunrise-white);
}

.sunrise-process p {
	margin-bottom: 0;
	color: #c7cbce;
	font-size: 15px;
	line-height: 1.65;
}

.sunrise-area-feature {
	background: var(--sunrise-white);
}

.sunrise-area-list {
	border-top: 1px solid var(--sunrise-line);
}

.sunrise-area-list a {
	display: flex;
	min-height: 68px;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--sunrise-line);
	color: var(--sunrise-ink) !important;
	font-size: 20px;
	font-weight: 800;
}

.sunrise-area-list a::after {
	content: "→";
	color: var(--sunrise-red);
}

.sunrise-advice-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.sunrise-advice-card {
	display: flex;
	min-height: 270px;
	flex-direction: column;
	padding: 30px;
	border: 1px solid #d5d8da;
	background: var(--sunrise-white);
}

.sunrise-advice-card > p,
.sunrise-advice-card > span {
	color: #676e74;
	font-size: 12px;
	font-weight: 750;
}

.sunrise-advice-card h3 {
	margin: 18px 0 28px;
	font-size: 23px;
}

.sunrise-advice-card h3 a {
	color: var(--sunrise-ink);
}

.sunrise-advice-card > span {
	margin-top: auto;
}

.sunrise-breadcrumb {
	padding: 15px 0;
	border-bottom: 1px solid var(--sunrise-line);
	background: #f5f6f6;
	font-size: 12px;
	font-weight: 700;
}

.sunrise-breadcrumb .sunrise-shell {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sunrise-breadcrumb a {
	color: var(--sunrise-red);
}

.sunrise-breadcrumb span {
	color: #6b7176;
}

.sunrise-service-hero {
	padding: clamp(60px, 7vw, 96px) 0;
}

.sunrise-service-hero__grid {
	grid-template-columns: minmax(0, 1.08fr) minmax(340px, 0.7fr);
}

.sunrise-service-hero__media,
.sunrise-service-hero__image {
	min-height: 520px;
}

.sunrise-service-hero__marker {
	position: absolute;
	right: 0;
	bottom: 0;
	display: grid;
	min-width: 170px;
	gap: 2px;
	padding: 17px 20px;
	background: var(--sunrise-red);
	color: var(--sunrise-white);
}

.sunrise-inline-proof {
	display: flex;
	flex-wrap: wrap;
	gap: 9px 22px;
	margin-top: 35px;
}

.sunrise-inline-proof li {
	position: relative;
	padding-left: 16px;
	color: #5b6268;
	font-size: 13px;
	font-weight: 750;
}

.sunrise-inline-proof li::before {
	position: absolute;
	top: 0.48em;
	left: 0;
	width: 7px;
	height: 7px;
	background: var(--sunrise-red);
	content: "";
}

.sunrise-copy-grid {
	grid-template-columns: minmax(280px, 0.75fr) minmax(0, 1fr);
}

.sunrise-prose p {
	margin-bottom: 22px;
	color: #50575d;
	font-size: 18px;
	line-height: 1.75;
}

.sunrise-capability-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	background: #cfd3d6;
	border: 1px solid #cfd3d6;
}

.sunrise-capability-grid article {
	min-height: 260px;
	padding: clamp(28px, 4vw, 42px);
	background: var(--sunrise-white);
}

.sunrise-capability-grid article > span {
	display: block;
	margin-bottom: 42px;
	color: var(--sunrise-red);
	font-size: 12px;
	font-weight: 850;
}

.sunrise-capability-grid h3 {
	margin-bottom: 14px;
}

.sunrise-capability-grid p {
	margin-bottom: 0;
	color: #5b6268;
	font-size: 15px;
	line-height: 1.65;
}

.sunrise-guidance__grid > ul {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--sunrise-line);
}

.sunrise-guidance__grid li {
	position: relative;
	padding: 20px 0 20px 38px;
	border-bottom: 1px solid var(--sunrise-line);
	color: #4f565c;
	font-size: 16px;
	line-height: 1.6;
}

.sunrise-guidance__grid li::before {
	position: absolute;
	top: 22px;
	left: 0;
	color: var(--sunrise-red);
	content: "✓";
	font-weight: 900;
}

.sunrise-chip-links {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
}

.sunrise-chip-links a {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	padding: 9px 14px;
	border: 1px solid #cfd3d6;
	background: var(--sunrise-white);
	color: var(--sunrise-ink) !important;
	font-size: 13px;
	font-weight: 750;
}

.sunrise-chip-links a:hover,
.sunrise-chip-links a:focus-visible {
	border-color: var(--sunrise-red);
	color: var(--sunrise-red) !important;
}

.sunrise-faq__grid {
	grid-template-columns: minmax(260px, 0.58fr) minmax(0, 1fr);
}

.sunrise-faq__intro {
	position: sticky;
	top: 24px;
}

.sunrise-faq__items {
	border-top: 1px solid var(--sunrise-line);
}

.sunrise-faq__items details {
	border-bottom: 1px solid var(--sunrise-line);
}

.sunrise-faq__items summary {
	position: relative;
	padding: 24px 46px 24px 0;
	color: var(--sunrise-ink);
	cursor: pointer;
	font-size: 18px;
	font-weight: 800;
	list-style: none;
}

.sunrise-faq__items summary::-webkit-details-marker {
	display: none;
}

.sunrise-faq__items summary::after {
	position: absolute;
	top: 22px;
	right: 0;
	color: var(--sunrise-red);
	content: "+";
	font-size: 24px;
}

.sunrise-faq__items details[open] summary::after {
	content: "−";
}

.sunrise-faq__items details p {
	max-width: 720px;
	margin-bottom: 24px;
	color: #555c62;
	font-size: 16px;
	line-height: 1.7;
}

.sunrise-related {
	background: #f2f3f4;
}

.sunrise-related__grid,
.sunrise-route-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	margin-top: 38px;
	background: #cfd3d6;
	border: 1px solid #cfd3d6;
}

.sunrise-related__grid a,
.sunrise-route-grid a {
	display: grid;
	min-height: 180px;
	align-content: space-between;
	gap: 25px;
	padding: 26px;
	background: var(--sunrise-white);
	color: var(--sunrise-ink) !important;
}

.sunrise-related__grid span,
.sunrise-route-grid span {
	color: var(--sunrise-red);
	font-size: 11px;
	font-weight: 850;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.sunrise-related__grid strong,
.sunrise-route-grid strong {
	font-size: 19px;
	line-height: 1.3;
}

.sunrise-areas-hero {
	padding: clamp(72px, 9vw, 120px) 0;
}

.sunrise-areas-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(300px, 0.6fr);
	gap: clamp(48px, 8vw, 110px);
	align-items: end;
}

.sunrise-areas-hero h1 {
	margin-bottom: 0;
}

.sunrise-areas-hero__grid > div:last-child p {
	color: #555c62;
	font-size: 17px;
	line-height: 1.7;
}

.sunrise-area-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.sunrise-area-card-grid > a {
	display: flex;
	min-height: 300px;
	flex-direction: column;
	padding: 30px;
	border: 1px solid #d2d6d9;
	background: var(--sunrise-white);
	color: var(--sunrise-ink) !important;
}

.sunrise-area-card-grid span {
	margin-bottom: 50px;
	color: var(--sunrise-red);
	font-size: 11px;
	font-weight: 850;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.sunrise-area-card-grid h3 {
	margin-bottom: 14px;
}

.sunrise-area-card-grid p {
	margin-bottom: 26px;
	color: #5b6268;
	font-size: 14px;
	line-height: 1.6;
}

.sunrise-area-card-grid strong {
	margin-top: auto;
	color: var(--sunrise-red);
	font-size: 13px;
}

.sunrise-chip-links--large a {
	min-height: 52px;
	padding: 12px 17px;
	font-size: 15px;
}

.sunrise-route-grid {
	background: #42474b;
	border-color: #42474b;
}

.sunrise-route-grid a {
	background: #202428;
	color: var(--sunrise-white) !important;
}

.sunrise-cta {
	padding: clamp(62px, 7vw, 94px) 0;
	background: #202428;
	color: var(--sunrise-white);
}

.sunrise-cta__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 48px;
	align-items: center;
}

.sunrise-cta h2 {
	max-width: 780px;
	margin-bottom: 0;
	color: var(--sunrise-white);
}

.sunrise-site-footer {
	padding: 74px 0 0;
	background: #111416;
	color: var(--sunrise-white);
}

.sunrise-site-footer__grid {
	display: grid;
	grid-template-columns: minmax(250px, 1.15fr) repeat(3, minmax(170px, 0.7fr));
	gap: 48px;
	padding-bottom: 62px;
}

.sunrise-brand--footer {
	display: inline-block;
	padding: 10px;
	background: var(--sunrise-white);
}

.sunrise-brand--footer .sunrise-brand__logo {
	width: 215px;
}

.sunrise-site-footer__brand > p {
	max-width: 340px;
	margin: 24px 0 0;
	color: #bdc2c6;
	font-size: 14px;
	line-height: 1.7;
}

.sunrise-site-footer h2 {
	margin: 0 0 22px;
	color: var(--sunrise-white);
	font-size: 16px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.sunrise-site-footer li + li {
	margin-top: 10px;
}

.sunrise-site-footer nav a {
	color: #cbd0d3;
	font-size: 13px;
}

.sunrise-site-footer nav a:hover,
.sunrise-site-footer nav a:focus-visible {
	color: var(--sunrise-white);
}

.sunrise-site-footer__contact p {
	display: grid;
	gap: 3px;
	margin: 0 0 18px;
	color: #bdc2c6;
	font-size: 13px;
	line-height: 1.6;
}

.sunrise-site-footer__contact span {
	font-size: 11px;
	font-weight: 750;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.sunrise-site-footer__contact a {
	color: var(--sunrise-white);
	font-size: 18px;
	font-weight: 850;
}

.sunrise-site-footer__base {
	display: flex;
	min-height: 70px;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	border-top: 1px solid #3b4044;
	color: #aeb4b8;
	font-size: 12px;
}

.sunrise-site-footer__base p {
	margin: 0;
}

.sunrise-site-footer__base div {
	display: flex;
	gap: 18px;
}

.sunrise-site-footer__base a {
	color: #cbd0d3;
}

@media (max-width: 1080px) {
	.sunrise-header-contact > div {
		display: none;
	}

	.sunrise-nav__list > li > a,
	.sunrise-nav__list > li > details > summary {
		padding-inline: 6px;
		font-size: 10px;
	}

	.sunrise-site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.sunrise-brand-row {
		min-height: 90px;
	}

	.sunrise-nav .sunrise-shell {
		width: 100%;
	}

	.sunrise-desktop-menu {
		display: none;
	}

	.sunrise-mobile-menu {
		display: block;
	}

	/* Legacy "MENU +" strip retired; the hamburger overlay component below
	   owns the mobile menu now. */

	.sunrise-nav__list {
		display: block;
		padding: 8px 20px 20px;
		border-top: 1px solid var(--sunrise-line);
	}

	.sunrise-nav__list > li,
	.sunrise-nav__list > li > a,
	.sunrise-nav__list > li > details,
	.sunrise-nav__list > li > details > summary {
		display: block;
		width: 100%;
	}

	.sunrise-nav__list > li > a,
	.sunrise-nav__list > li > details > summary {
		min-height: 0;
		padding: 13px 0;
		border-bottom: 1px solid #e4e6e8;
		font-size: 12px;
	}

	.sunrise-nav__submenu {
		position: static;
		width: 100%;
		padding: 6px 0 10px 16px;
		border: 0;
		box-shadow: none;
	}

	.sunrise-hero__grid,
	.sunrise-service-hero__grid,
	.sunrise-areas-hero__grid {
		grid-template-columns: 1fr;
	}

	.sunrise-hero__media,
	.sunrise-hero__image,
	.sunrise-service-hero__media,
	.sunrise-service-hero__image {
		min-height: 440px;
	}

	.sunrise-section-heading,
	.sunrise-cta__grid {
		grid-template-columns: 1fr;
		align-items: start;
	}

	.sunrise-process {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sunrise-process li:nth-child(2) {
		border-right: 0;
	}

	.sunrise-process li:nth-child(n + 3) {
		border-top: 1px solid #42474b;
	}

	.sunrise-product-section__grid,
	.sunrise-area-feature__grid,
	.sunrise-copy-grid,
	.sunrise-guidance__grid,
	.sunrise-faq__grid,
	.sunrise-established-grid {
		grid-template-columns: 1fr;
	}

	.sunrise-product-section__intro,
	.sunrise-faq__intro {
		position: static;
	}

	.sunrise-related__grid,
	.sunrise-route-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sunrise-area-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sunrise-advice-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.sunrise-shell {
		width: min(100% - 32px, var(--sunrise-max));
	}

	.sunrise-urgent-bar__inner {
		min-height: 42px;
		justify-content: center;
	}

	.sunrise-urgent-bar p {
		display: none;
	}

	.sunrise-brand-row {
		min-height: 82px;
	}

	.sunrise-header-contact .sunrise-button {
		display: none;
	}

	.sunrise-brand__logo {
		width: 220px;
		max-width: 65vw;
	}

	.sunrise-page h1 {
		font-size: clamp(39px, 12vw, 56px);
	}

	.sunrise-page h2 {
		font-size: clamp(31px, 9vw, 43px);
	}

	.sunrise-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.sunrise-actions .sunrise-button {
		width: 100%;
	}

	.sunrise-proof-list {
		grid-template-columns: 1fr;
	}

	.sunrise-proof-list li {
		grid-template-columns: 110px 1fr;
		align-items: center;
		padding: 15px 0;
		border-bottom: 1px solid var(--sunrise-line);
	}

	.sunrise-hero__media,
	.sunrise-hero__image,
	.sunrise-service-hero__media,
	.sunrise-service-hero__image {
		min-height: 340px;
	}

	.sunrise-hero__caption {
		min-width: 210px;
	}

	.sunrise-service-card {
		min-height: 0;
	}

	.sunrise-section-heading {
		gap: 20px;
	}

	.sunrise-link-panel a {
		grid-template-columns: 1fr;
		gap: 5px;
	}

	.sunrise-process,
	.sunrise-capability-grid,
	.sunrise-related__grid,
	.sunrise-route-grid,
	.sunrise-area-card-grid {
		grid-template-columns: 1fr;
	}

	.sunrise-process li,
	.sunrise-process li + li {
		min-height: 230px;
		padding: 28px 0;
		border-top: 1px solid #42474b;
		border-right: 0;
	}

	.sunrise-process span {
		margin-bottom: 34px;
	}

	.sunrise-cta__grid {
		gap: 30px;
	}

	.sunrise-site-footer__grid {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.sunrise-site-footer__base {
		align-items: flex-start;
		flex-direction: column;
		justify-content: center;
		padding: 20px 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.sunrise-site-header *,
	.sunrise-site-footer *,
	.sunrise-page * {
		transition-duration: 0.01ms !important;
	}
}

.sunrise-blog-page {
	background: var(--sunrise-paper);
	color: var(--sunrise-ink);
}

.sunrise-blog-page .site-content,
.sunrise-blog-page .ast-container,
.sunrise-blog-page #primary {
	max-width: none;
	padding: 0;
	margin: 0;
}

.sunrise-blog-page #secondary {
	display: none;
}

@media (min-width: 922px) {
	.sunrise-blog-page .elementor-location-header {
		min-height: 220px;
	}

	.sunrise-blog-page .elementor-97 .elementor-element.elementor-element-5ee1a8c {
		--e-nav-menu-horizontal-menu-item-margin: 10px;
	}

	.sunrise-blog-page .elementor-97 .elementor-element.elementor-element-5ee1a8c .elementor-nav-menu--main .elementor-item {
		display: flex;
		align-items: center;
		min-height: 44px;
	}
}

.sunrise-blog {
	font-family: Mulish, Arial, sans-serif;
	overflow: hidden;
}

.sunrise-blog *,
.sunrise-blog *::before,
.sunrise-blog *::after {
	box-sizing: border-box;
}

.sunrise-blog a {
	color: inherit;
	text-decoration: none;
}

.sunrise-blog__inner {
	width: min(100% - 40px, 1240px);
	margin-inline: auto;
}

.sunrise-blog__hero {
	position: relative;
	padding: clamp(72px, 9vw, 124px) 0 clamp(56px, 7vw, 96px);
	background: var(--sunrise-white);
	border-bottom: 1px solid var(--sunrise-line);
}

.sunrise-blog__hero::after {
	position: absolute;
	right: max(20px, calc((100vw - 1240px) / 2));
	bottom: 0;
	width: clamp(120px, 18vw, 260px);
	height: 8px;
	background: var(--sunrise-red);
	content: "";
}

.sunrise-blog__eyebrow {
	margin: 0 0 20px;
	color: var(--sunrise-red);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.sunrise-blog__title {
	max-width: 900px;
	margin: 0;
	color: var(--sunrise-ink);
	font-family: Mulish, Arial, sans-serif;
	font-size: clamp(42px, 6vw, 72px);
	font-weight: 800;
	letter-spacing: -0.045em;
	line-height: 1.02;
}

.sunrise-blog__intro {
	max-width: 690px;
	margin: 26px 0 0;
	color: var(--sunrise-slate);
	font-size: clamp(18px, 2vw, 21px);
	line-height: 1.6;
}

.sunrise-blog__topics {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 34px;
}

.sunrise-blog__topic {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 9px 15px;
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	background: var(--sunrise-paper);
	color: var(--sunrise-ink);
	font-size: 14px;
	font-weight: 700;
	transition: border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.sunrise-blog__topic:hover,
.sunrise-blog__topic:focus-visible {
	border-color: var(--sunrise-red);
	color: var(--sunrise-red);
	transform: translateY(-1px);
}

.sunrise-blog__featured-wrap {
	padding: clamp(54px, 7vw, 94px) 0;
}

.sunrise-blog__featured {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.8fr);
	min-height: 520px;
	border-radius: var(--sunrise-radius);
	background: var(--sunrise-ink);
	box-shadow: var(--sunrise-shadow);
	overflow: hidden;
}

.sunrise-blog article.sunrise-blog__featured {
	padding: 0;
	background: var(--sunrise-ink);
	color: var(--sunrise-white);
}

.sunrise-blog__featured-media,
.sunrise-blog__card-media {
	display: block;
	background: #d9d9d9;
	overflow: hidden;
}

.sunrise-blog__featured-media img,
.sunrise-blog__card-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.sunrise-blog__featured:hover .sunrise-blog__featured-media img,
.sunrise-blog__card:hover .sunrise-blog__card-media img {
	transform: scale(1.025);
}

.sunrise-blog__media-fallback {
	display: grid;
	min-height: 280px;
	place-items: center;
	background: #272727;
	color: #c7c7c7;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.sunrise-blog__featured-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(38px, 5vw, 70px);
	color: var(--sunrise-white);
}

.sunrise-blog__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin: 0 0 18px;
	color: #b8bbc0;
	font-size: 13px;
	font-weight: 700;
}

.sunrise-blog__featured-title {
	margin: 0;
	font-family: Mulish, Arial, sans-serif;
	font-size: clamp(30px, 3.3vw, 48px);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.sunrise-blog .sunrise-blog__featured-title,
.sunrise-blog .sunrise-blog__featured-title a {
	color: var(--sunrise-white);
}

.sunrise-blog__featured-title a:focus-visible,
.sunrise-blog__card-title a:focus-visible {
	outline: 3px solid var(--sunrise-red);
	outline-offset: 5px;
}

.sunrise-blog__excerpt {
	margin: 23px 0 0;
	color: #d6d8da;
	font-size: 16px;
	line-height: 1.65;
}

.sunrise-blog__read-link {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	min-height: 44px;
	margin-top: 30px;
	padding: 11px 18px;
	border: 1px solid var(--sunrise-red);
	border-radius: var(--sunrise-radius);
	background: var(--sunrise-red);
	color: var(--sunrise-white);
	font-size: 14px;
	font-weight: 800;
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.sunrise-blog__read-link:hover,
.sunrise-blog__read-link:focus-visible {
	background: var(--sunrise-white);
	color: var(--sunrise-ink);
	transform: translateY(-1px);
}

.sunrise-blog__latest {
	padding: 8px 0 clamp(72px, 10vw, 132px);
}

.sunrise-blog__section-title {
	margin: 0 0 36px;
	font-family: Mulish, Arial, sans-serif;
	font-size: clamp(32px, 4vw, 50px);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.sunrise-blog__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 24px;
}

.sunrise-blog__card {
	display: flex;
	grid-column: span 5;
	flex-direction: column;
	min-width: 0;
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	background: var(--sunrise-white);
	box-shadow: 0 10px 28px rgba(21, 21, 21, 0.045);
	overflow: hidden;
	transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.sunrise-blog article.sunrise-blog__card {
	padding: 0;
}

.sunrise-blog__card:nth-child(4n + 1),
.sunrise-blog__card:nth-child(4n) {
	grid-column: span 7;
}

.sunrise-blog__card:hover {
	border-color: #b9bdc1;
	box-shadow: var(--sunrise-shadow);
	transform: translateY(-3px);
}

.sunrise-blog__card-media {
	aspect-ratio: 16 / 9;
}

.sunrise-blog__card:nth-child(4n + 2) .sunrise-blog__card-media,
.sunrise-blog__card:nth-child(4n + 3) .sunrise-blog__card-media {
	aspect-ratio: 4 / 3;
}

.sunrise-blog__card-content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: clamp(24px, 3vw, 34px);
}

.sunrise-blog__card .sunrise-blog__meta {
	color: #686d73;
	margin-bottom: 14px;
}

.sunrise-blog__card-title {
	margin: 0;
	font-family: Mulish, Arial, sans-serif;
	font-size: clamp(23px, 2.2vw, 31px);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.18;
}

.sunrise-blog .sunrise-blog__card-title,
.sunrise-blog .sunrise-blog__card-title a {
	color: var(--sunrise-ink);
}

.sunrise-blog__card-excerpt {
	margin: 18px 0 0;
	color: var(--sunrise-slate);
	font-size: 15px;
	line-height: 1.65;
}

.sunrise-blog__card-more {
	align-self: flex-start;
	margin-top: auto;
	padding-top: 25px;
	color: var(--sunrise-red);
	font-size: 14px;
	font-weight: 800;
}

.sunrise-blog__pagination {
	margin-top: 52px;
}

.sunrise-blog__pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.sunrise-blog__pagination .page-numbers {
	display: inline-grid;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	place-items: center;
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	background: var(--sunrise-white);
	font-weight: 800;
}

.sunrise-blog__pagination .current,
.sunrise-blog__pagination a:hover,
.sunrise-blog__pagination a:focus-visible {
	border-color: var(--sunrise-red);
	background: var(--sunrise-red);
	color: var(--sunrise-white);
}

.sunrise-blog__help {
	padding: clamp(58px, 7vw, 88px) 0;
	background: var(--sunrise-ink);
	color: var(--sunrise-white);
}

.sunrise-blog__help-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 40px;
	align-items: center;
}

.sunrise-blog section.sunrise-blog__help .sunrise-blog__help-title {
	max-width: 760px;
	margin: 0;
	color: var(--sunrise-white);
	font-family: Mulish, Arial, sans-serif;
	font-size: clamp(31px, 4vw, 50px);
	font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.08;
}

.sunrise-blog__help-copy {
	max-width: 650px;
	margin: 18px 0 0;
	color: #c9ccd0;
	font-size: 17px;
	line-height: 1.6;
}

.sunrise-blog__help-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: flex-end;
}

.sunrise-blog__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 20px;
	border: 1px solid var(--sunrise-red);
	border-radius: var(--sunrise-radius);
	background: var(--sunrise-red);
	color: var(--sunrise-white);
	font-size: 14px;
	font-weight: 800;
	white-space: nowrap;
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.sunrise-blog__button--secondary {
	border-color: #62666b;
	background: transparent;
}

.sunrise-blog__button:hover,
.sunrise-blog__button:focus-visible {
	background: var(--sunrise-white);
	color: var(--sunrise-ink);
	transform: translateY(-1px);
}

.sunrise-blog__empty {
	padding: 64px;
	border: 1px solid var(--sunrise-line);
	background: var(--sunrise-white);
	text-align: center;
}

.sunrise-blog__empty h2 {
	margin: 0;
	font-size: 32px;
}

.sunrise-blog__empty p {
	margin: 14px auto 0;
	color: var(--sunrise-slate);
}

@media (max-width: 900px) {
	.sunrise-blog__featured {
		grid-template-columns: 1fr;
	}

	.sunrise-blog__featured-media {
		min-height: 380px;
	}

	.sunrise-blog__card,
	.sunrise-blog__card:nth-child(4n + 1),
	.sunrise-blog__card:nth-child(4n) {
		grid-column: span 6;
	}

	.sunrise-blog__help-grid {
		grid-template-columns: 1fr;
	}

	.sunrise-blog__help-actions {
		justify-content: flex-start;
	}
}

@media (max-width: 767px) {
	html,
	body {
		overflow-x: hidden;
		overflow-x: clip;
	}

	.sunrise-blog__inner {
		width: min(100% - 32px, 1240px);
	}

	.sunrise-blog__hero {
		padding: 58px 0 64px;
	}

	.sunrise-blog__hero::after {
		right: 16px;
		width: 110px;
		height: 6px;
	}

	.sunrise-blog__title {
		font-size: clamp(40px, 12vw, 54px);
	}

	.sunrise-blog__featured-media {
		min-height: 260px;
	}

	.sunrise-blog__featured-content {
		padding: 30px 24px 34px;
	}

	.sunrise-blog__grid {
		grid-template-columns: 1fr;
	}

	.sunrise-blog__card,
	.sunrise-blog__card:nth-child(4n + 1),
	.sunrise-blog__card:nth-child(4n) {
		grid-column: 1;
	}

	.sunrise-blog__card-media,
	.sunrise-blog__card:nth-child(4n + 2) .sunrise-blog__card-media,
	.sunrise-blog__card:nth-child(4n + 3) .sunrise-blog__card-media {
		aspect-ratio: 16 / 10;
	}

	.sunrise-blog__help-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.sunrise-blog__button {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sunrise-blog *,
	.sunrise-blog *::before,
	.sunrise-blog *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* ---------------------------------------------------------------------------
   Persistent mobile contact bar
   Mobile carries the majority of real search clicks and the emergency journey
   is phone-led, so the call action must survive scrolling.
   --------------------------------------------------------------------------- */

.sunrise-callbar {
	display: none;
}

@media (max-width: 900px) {
	.sunrise-callbar {
		position: fixed;
		inset: auto 0 0 0;
		z-index: 999;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1px;
		background: var(--sunrise-line);
		border-top: 1px solid var(--sunrise-line);
		box-shadow: 0 -8px 28px rgba(21, 21, 21, 0.16);
		padding-bottom: env(safe-area-inset-bottom, 0);
	}

	.sunrise-callbar__action {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 2px;
		min-height: 60px;
		padding: 10px 14px;
		text-decoration: none;
		text-align: center;
	}

	.sunrise-callbar__action--call {
		background: var(--sunrise-red);
		color: var(--sunrise-white);
	}

	.sunrise-callbar__action--alt {
		background: var(--sunrise-ink);
		color: var(--sunrise-white);
	}

	.sunrise-callbar__label {
		font-size: 0.68rem;
		font-weight: 600;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		opacity: 0.82;
	}

	.sunrise-callbar__value {
		font-family: var(--sunrise-display);
		font-size: 1.02rem;
		font-weight: 700;
		letter-spacing: 0.01em;
	}

	.sunrise-callbar__action:focus-visible {
		outline: 3px solid var(--sunrise-white);
		outline-offset: -5px;
	}

	/* Keep the bar from covering the end of the page or the footer links. */
	body {
		padding-bottom: 72px;
	}
}

/* ---------------------------------------------------------------------------
   Closing CTA with inline enquiry form
   The previous site captured enquiries inline; the rebuild had reduced every
   conversion point to a link out to /contact/. This restores an inline form
   without reintroducing a page builder.
   --------------------------------------------------------------------------- */

.sunrise-cta__grid {
	grid-template-columns: minmax(0, 1fr) minmax(320px, 0.95fr);
	align-items: start;
	gap: 40px 56px;
}

.sunrise-cta__grid > div:first-child {
	grid-column: 1;
}

.sunrise-cta .sunrise-actions {
	grid-column: 1;
	align-self: start;
}

.sunrise-cta__intro {
	max-width: 60ch;
	margin: 14px 0 0;
	color: rgba(255, 255, 255, 0.76);
}

.sunrise-cta__form {
	grid-column: 2;
	grid-row: 1 / span 2;
}

.sunrise-enquiry {
	padding: 26px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: var(--sunrise-radius);
}

.sunrise-enquiry__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 16px;
}

.sunrise-enquiry__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}

.sunrise-enquiry__field--wide {
	grid-column: 1 / -1;
}

.sunrise-enquiry label {
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.78);
}

.sunrise-enquiry input,
.sunrise-enquiry select,
.sunrise-enquiry textarea {
	width: 100%;
	padding: 11px 12px;
	font-family: inherit;
	font-size: 1rem;
	color: var(--sunrise-white);
	background: rgba(0, 0, 0, 0.28);
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: var(--sunrise-radius);
}

.sunrise-enquiry textarea {
	resize: vertical;
}

.sunrise-enquiry input:focus-visible,
.sunrise-enquiry select:focus-visible,
.sunrise-enquiry textarea:focus-visible {
	outline: 2px solid var(--sunrise-red);
	outline-offset: 1px;
	border-color: var(--sunrise-red);
}

.sunrise-enquiry .sunrise-button {
	margin-top: 18px;
	border: 0;
	cursor: pointer;
	font-size: 1rem;
}

/* Honeypot — removed from the accessibility tree and the visual flow. */
.sunrise-enquiry__trap {
	position: absolute;
	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;
}

.sunrise-enquiry__notice {
	margin: 0 0 18px;
	padding: 12px 14px;
	font-size: 0.95rem;
	border-radius: var(--sunrise-radius);
}

.sunrise-enquiry__notice--ok {
	background: rgba(38, 132, 76, 0.22);
	border: 1px solid rgba(96, 200, 140, 0.5);
}

.sunrise-enquiry__notice--error {
	background: rgba(198, 26, 26, 0.22);
	border: 1px solid rgba(255, 119, 119, 0.55);
}

.sunrise-enquiry__notice a {
	color: inherit;
}

@media (max-width: 900px) {
	.sunrise-cta__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.sunrise-cta__grid > div:first-child,
	.sunrise-cta .sunrise-actions,
	.sunrise-cta__form {
		grid-column: 1;
		grid-row: auto;
	}
}

@media (max-width: 640px) {
	.sunrise-enquiry__grid {
		grid-template-columns: 1fr;
	}

	.sunrise-enquiry {
		padding: 20px;
	}
}

/* Proof band — real installation photography on the homepage. */
.sunrise-proof-band__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sunrise-proof-band__grid li {
	margin: 0;
	overflow: hidden;
	border-radius: var(--sunrise-radius);
	background: var(--sunrise-paper);
}

.sunrise-proof-band__grid img {
	display: block;
	width: 100%;
	height: 240px;
	object-fit: cover;
}

@media (max-width: 900px) {
	.sunrise-proof-band__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sunrise-proof-band__grid img {
		height: 180px;
	}
}

/* ---------------------------------------------------------------------------
   Trust band — visible review standing and credentials.
   Display only; no AggregateRating markup (self-serving reviews are ineligible).
   --------------------------------------------------------------------------- */

.sunrise-trust-section {
	padding: 26px 0;
	background: var(--sunrise-paper);
	border-bottom: 1px solid var(--sunrise-line);
}

.sunrise-trust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px 44px;
}

.sunrise-trust__rating {
	display: flex;
	align-items: baseline;
	gap: 10px;
	flex-shrink: 0;
}

.sunrise-trust__stars {
	display: inline-flex;
	gap: 1px;
	font-size: 1.12rem;
	line-height: 1;
}

.sunrise-trust__star--full,
.sunrise-trust__star--half {
	color: #f5a623;
}

.sunrise-trust__star--empty {
	color: var(--sunrise-line);
}

.sunrise-trust__star--half {
	background: linear-gradient(90deg, #f5a623 55%, var(--sunrise-line) 55%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.sunrise-trust__rating strong {
	font-family: var(--sunrise-display);
	font-size: 1.24rem;
	color: var(--sunrise-ink);
}

.sunrise-trust__count {
	font-size: 0.92rem;
	color: var(--sunrise-slate);
}

.sunrise-trust__points {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 30px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.92rem;
	color: var(--sunrise-slate);
}

.sunrise-trust__points li {
	position: relative;
	padding-left: 20px;
}

.sunrise-trust__points li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.44em;
	width: 9px;
	height: 9px;
	background: var(--sunrise-red);
	border-radius: 50%;
}

@media (max-width: 900px) {
	.sunrise-trust {
		gap: 14px;
	}

	.sunrise-trust__points {
		flex-direction: column;
		gap: 6px;
	}
}

.sunrise-coverage-note {
	max-width: 72ch;
	margin: -12px 0 24px;
	color: var(--sunrise-slate);
}

/* ===========================================================================
   INDUSTRIAL LEDGER PASS (visual layer only)
   Direction: spec-sheet industrial. System black display type in caps, mono
   microtext for data, one locked red accent, hairlines only where they
   separate real content, grayscale-to-colour photography, quiet reveals.
   No SEO/CRO surface changes: markup, copy, links, forms and analytics
   attributes above are untouched; this layer re-skins them.
   =========================================================================== */

/* ---- Type system ---- */

h1, h2, h3 {
	font-family: var(--sunrise-display);
}

.sunrise-page h1,
.sunrise-hero h1 {
	font-size: clamp(2.15rem, 3.4vw, 2.95rem);
	font-weight: 800;
	line-height: 0.99;
	letter-spacing: -0.03em;
	text-transform: uppercase;
	color: var(--sunrise-ink);
}

.sunrise-section h2,
.sunrise-cta h2,
.sunrise-product-section h2 {
	font-size: clamp(1.8rem, 3.1vw, 2.7rem);
	font-weight: 800;
	line-height: 1.03;
	letter-spacing: -0.025em;
	text-transform: uppercase;
}

/* Eyebrows: quiet kickers by default; the caps-mono treatment is reserved
   for the hero and the closing CTA so the page keeps one or two loud labels,
   not one per section. */
.sunrise-eyebrow {
	font-family: var(--sunrise-font);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--sunrise-slate);
}

.sunrise-hero .sunrise-eyebrow,
.sunrise-service-hero .sunrise-eyebrow,
.sunrise-cta .sunrise-eyebrow {
	font-family: var(--sunrise-mono);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sunrise-red-deep);
}

.sunrise-cta .sunrise-eyebrow {
	color: var(--sunrise-red-dark-ground);
}

/* Section headings stack: headline on top, support copy below it. */
.sunrise-section-heading {
	display: block;
	margin-bottom: 44px;
}

.sunrise-section-heading > p,
.sunrise-section-heading > a {
	max-width: 62ch;
	margin-top: 16px;
	display: inline-block;
}

.sunrise-section-heading h2 {
	max-width: 24ch;
}

/* ---- Header ---- */

.sunrise-urgent-bar {
	background: var(--sunrise-ink);
	color: var(--sunrise-white);
}

.sunrise-urgent-bar__inner {
	min-height: 42px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	font-family: var(--sunrise-mono);
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.sunrise-urgent-bar__inner p {
	margin: 0;
	display: flex;
	align-items: center;
	color: rgba(255, 255, 255, 0.72);
}

.sunrise-urgent-bar__inner a {
	color: var(--sunrise-white);
	text-decoration: none;
	background-image: linear-gradient(var(--sunrise-red-dark-ground), var(--sunrise-red-dark-ground));
	background-size: 0% 2px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size 0.25s ease;
	padding-bottom: 3px;
}

.sunrise-urgent-bar__inner a:hover,
.sunrise-urgent-bar__inner a:focus-visible {
	background-size: 100% 2px;
}

/* Live-line indicator: the emergency line is genuinely staffed 24/7. */
.sunrise-live-dot {
	width: 8px;
	height: 8px;
	margin-right: 10px;
	border-radius: 50%;
	background: var(--sunrise-red-dark-ground);
	flex-shrink: 0;
	animation: sunrise-pulse 2.2s ease-out infinite;
}

@keyframes sunrise-pulse {
	0% { box-shadow: 0 0 0 0 rgba(224, 75, 75, 0.45); }
	70% { box-shadow: 0 0 0 9px rgba(224, 75, 75, 0); }
	100% { box-shadow: 0 0 0 0 rgba(224, 75, 75, 0); }
}

.sunrise-brand-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 20px 0;
}

.sunrise-header-contact {
	display: flex;
	align-items: center;
	gap: 0;
}

.sunrise-header-phone {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 4px 26px;
	text-decoration: none;
	border-left: 1px solid var(--sunrise-line);
}

.sunrise-header-phone:first-child {
	border-left: 0;
}

.sunrise-header-phone__label {
	font-family: var(--sunrise-mono);
	font-size: 0.6rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sunrise-slate);
}

.sunrise-header-phone--emergency .sunrise-header-phone__label {
	color: var(--sunrise-red-deep);
}

.sunrise-header-phone__number {
	font-family: var(--sunrise-display);
	font-size: 1.42rem;
	font-weight: 800;
	letter-spacing: -0.015em;
	line-height: 1;
	color: var(--sunrise-ink);
	white-space: nowrap;
}

.sunrise-header-phone--emergency .sunrise-header-phone__number {
	color: var(--sunrise-red);
}

.sunrise-header-phone:hover .sunrise-header-phone__number,
.sunrise-header-phone:focus-visible .sunrise-header-phone__number {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
}

.sunrise-header-contact .sunrise-button {
	margin-left: 26px;
}

/* ---- Navigation ---- */

.sunrise-nav {
	border-top: 1px solid var(--sunrise-line);
	border-bottom: 1px solid var(--sunrise-line);
	background: var(--sunrise-white);
}

.sunrise-nav__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sunrise-nav__list > li > a,
.sunrise-nav__list > li > details > summary {
	display: block;
	padding: 15px 11px;
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--sunrise-ink);
	text-decoration: none;
	cursor: pointer;
	background-image: linear-gradient(var(--sunrise-red), var(--sunrise-red));
	background-size: 0% 2px;
	background-position: 50% 100%;
	background-repeat: no-repeat;
	transition: background-size 0.22s ease, color 0.22s ease;
}

.sunrise-nav__list > li > a:hover,
.sunrise-nav__list > li > a:focus-visible,
.sunrise-nav__list > li > details[open] > summary,
.sunrise-nav__list > li > details > summary:hover {
	color: var(--sunrise-red-deep);
	background-size: 100% 2px;
}

.sunrise-nav__urgent {
	color: var(--sunrise-red) !important;
}

.sunrise-nav summary {
	list-style: none;
}

.sunrise-nav summary::-webkit-details-marker {
	display: none;
}

.sunrise-nav summary::after {
	content: "+";
	margin-left: 7px;
	font-weight: 400;
	display: inline-block;
	transition: transform 0.22s ease;
}

.sunrise-nav details[open] summary::after {
	transform: rotate(45deg);
}

.sunrise-desktop-menu .sunrise-nav__submenu {
	position: absolute;
	z-index: 60;
	min-width: 270px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: var(--sunrise-white);
	border: 1px solid var(--sunrise-ink);
	box-shadow: var(--sunrise-shadow);
}

.sunrise-desktop-menu .sunrise-nav__submenu a {
	display: block;
	padding: 10px 20px;
	font-size: 0.86rem;
	font-weight: 500;
	color: var(--sunrise-ink);
	text-decoration: none;
	border-left: 2px solid transparent;
	transition: border-color 0.18s ease, background 0.18s ease, padding-left 0.18s ease;
}

.sunrise-desktop-menu .sunrise-nav__submenu a:hover,
.sunrise-desktop-menu .sunrise-nav__submenu a:focus-visible {
	background: var(--sunrise-paper);
	border-left-color: var(--sunrise-red);
	padding-left: 24px;
}

.sunrise-desktop-menu > .sunrise-nav__list > li {
	position: relative;
}

/* ---- Buttons ---- */

.sunrise-button {
	display: inline-block;
	padding: 15px 26px;
	font-family: var(--sunrise-font);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--sunrise-white);
	background: var(--sunrise-red);
	border: 1px solid var(--sunrise-red);
	border-radius: var(--sunrise-radius);
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.12s ease, color 0.2s ease;
}

.sunrise-button:hover,
.sunrise-button:focus-visible {
	background: var(--sunrise-red-deep);
	border-color: var(--sunrise-red-deep);
	color: var(--sunrise-white);
}

.sunrise-button:active {
	transform: translateY(1px);
}

.sunrise-button--small {
	padding: 12px 20px;
	font-size: 0.7rem;
}

.sunrise-button--outline {
	background: transparent;
	border-color: currentColor;
	color: inherit;
}

.sunrise-button--outline:hover,
.sunrise-button--outline:focus-visible {
	background: rgba(255, 255, 255, 0.1);
	border-color: currentColor;
	color: inherit;
}

.sunrise-button--dark-outline {
	background: transparent;
	border-color: var(--sunrise-ink);
	color: var(--sunrise-ink);
}

.sunrise-button--dark-outline:hover,
.sunrise-button--dark-outline:focus-visible {
	background: var(--sunrise-ink);
	color: var(--sunrise-white);
}

.sunrise-text-link {
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--sunrise-red-deep);
}

.sunrise-text-link::after {
	content: "\2192";
	display: inline-block;
	margin-left: 8px;
	transition: transform 0.2s ease;
}

.sunrise-text-link:hover::after,
.sunrise-text-link:focus-visible::after {
	transform: translateX(5px);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
	outline: 2px solid var(--sunrise-red);
	outline-offset: 2px;
}

.sunrise-cta a:focus-visible,
.sunrise-section--ink a:focus-visible,
.sunrise-site-footer a:focus-visible {
	outline-color: var(--sunrise-white);
}

/* ---- Hero ---- */

.sunrise-hero,
.sunrise-service-hero {
	background: var(--sunrise-paper);
}

.sunrise-hero__intro,
.sunrise-service-hero .sunrise-hero__intro {
	max-width: 56ch;
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--sunrise-slate);
}

.sunrise-hero__media,
.sunrise-service-hero__media {
	position: relative;
}

.sunrise-hero__media img,
.sunrise-service-hero__media img {
	position: relative;
	z-index: 1;
	display: block;
}

.sunrise-hero__media::before,
.sunrise-service-hero__media::before {
	content: "";
	position: absolute;
	inset: 22px -22px -22px 22px;
	border: 1px solid var(--sunrise-red);
	opacity: 0.5;
	pointer-events: none;
}

.sunrise-hero__caption {
	position: absolute;
	z-index: 2;
	right: -14px;
	bottom: -14px;
	padding: 14px 18px;
	background: var(--sunrise-ink);
	color: var(--sunrise-white);
	border-top: 3px solid var(--sunrise-red);
	font-family: var(--sunrise-mono);
	font-size: 0.66rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.6;
}

.sunrise-hero__caption span {
	display: block;
}

.sunrise-hero__caption span:first-child {
	color: rgba(255, 255, 255, 0.62);
}

.sunrise-proof-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px;
	margin: 40px 0 0;
	padding: 0;
	list-style: none;
	border-top: 2px solid var(--sunrise-ink);
}

.sunrise-proof-list li {
	padding-top: 16px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.sunrise-proof-list strong {
	font-family: var(--sunrise-display);
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--sunrise-ink);
}

.sunrise-proof-list li:nth-child(2) strong {
	color: var(--sunrise-red);
}

.sunrise-proof-list span {
	font-family: var(--sunrise-mono);
	font-size: 0.66rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sunrise-slate);
}

/* ---- Trust band ---- */

.sunrise-trust-section {
	padding: 0;
	background: var(--sunrise-ink);
	border-bottom: 0;
}

.sunrise-trust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px 0;
	padding: 16px 0;
}

.sunrise-trust__rating {
	display: flex;
	align-items: baseline;
	gap: 12px;
	padding-right: 34px;
}

.sunrise-trust__stars {
	font-size: 1rem;
}

.sunrise-trust__star--full,
.sunrise-trust__star--half {
	color: var(--sunrise-amber);
}

.sunrise-trust__star--empty {
	color: rgba(255, 255, 255, 0.25);
}

.sunrise-trust__rating strong {
	font-family: var(--sunrise-display);
	font-size: 1.3rem;
	font-weight: 800;
	color: var(--sunrise-white);
}

.sunrise-trust__count {
	font-family: var(--sunrise-mono);
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
}

.sunrise-trust__points {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 0;
	font-family: var(--sunrise-mono);
	font-size: 0.66rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.72);
}

.sunrise-trust__points li {
	padding: 0 26px;
	border-left: 1px solid rgba(255, 255, 255, 0.2);
}

.sunrise-trust__points li::before {
	display: none;
}

/* ---- Sections & cards ---- */

.sunrise-section {
	padding: clamp(64px, 8vw, 104px) 0;
}

.sunrise-service-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.sunrise-service-card {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 28px 24px;
	background: var(--sunrise-white);
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	text-decoration: none;
	color: inherit;
	transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.sunrise-service-card:hover,
.sunrise-service-card:focus-visible {
	transform: translateY(-4px);
	border-color: var(--sunrise-ink);
	box-shadow: var(--sunrise-shadow);
}

.sunrise-service-card--urgent {
	border-top: 3px solid var(--sunrise-red);
}

.sunrise-card-index {
	font-family: var(--sunrise-mono);
	font-size: 0.68rem;
	letter-spacing: 0.12em;
	color: var(--sunrise-slate);
}

.sunrise-service-card--urgent .sunrise-card-index {
	color: var(--sunrise-red-deep);
}

.sunrise-service-card h3 {
	font-size: 1.06rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	line-height: 1.2;
	margin: 0;
}

.sunrise-service-card p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.6;
	color: var(--sunrise-slate);
	flex-grow: 1;
}

/* ---- Product index rows ---- */

.sunrise-link-panel {
	counter-reset: sunrise-product;
	display: block;
	border-bottom: 1px solid var(--sunrise-line);
}

.sunrise-link-panel a {
	counter-increment: sunrise-product;
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) auto;
	align-items: baseline;
	gap: 18px;
	padding: 19px 4px;
	border-top: 1px solid var(--sunrise-line);
	text-decoration: none;
	transition: background 0.18s ease;
}

.sunrise-link-panel a::before {
	content: counter(sunrise-product, decimal-leading-zero);
	font-family: var(--sunrise-mono);
	font-size: 0.7rem;
	color: var(--sunrise-slate);
}

.sunrise-link-panel a::after {
	content: "\2192";
	font-size: 1.05rem;
	color: var(--sunrise-ink);
	transition: transform 0.2s ease, color 0.2s ease;
}

.sunrise-link-panel span {
	display: block;
	font-family: var(--sunrise-mono);
	font-size: 0.64rem;
	letter-spacing: 0.11em;
	text-transform: uppercase;
	color: var(--sunrise-slate);
	margin-bottom: 3px;
}

.sunrise-link-panel strong {
	display: block;
	font-family: var(--sunrise-display);
	font-size: clamp(1.15rem, 1.9vw, 1.5rem);
	font-weight: 800;
	letter-spacing: -0.015em;
	color: var(--sunrise-ink);
	transition: color 0.18s ease;
}

.sunrise-link-panel a > span:first-of-type + strong,
.sunrise-link-panel a strong + span {
	margin-bottom: 0;
}

.sunrise-link-panel a:hover,
.sunrise-link-panel a:focus-visible {
	background: var(--sunrise-white);
}

.sunrise-link-panel a:hover strong,
.sunrise-link-panel a:focus-visible strong {
	color: var(--sunrise-red-deep);
}

.sunrise-link-panel a:hover::after,
.sunrise-link-panel a:focus-visible::after {
	transform: translateX(5px);
	color: var(--sunrise-red-deep);
}

/* ---- Dark sections ---- */

.sunrise-section--ink {
	background: var(--sunrise-ink-2);
}

.sunrise-section--ink h2,
.sunrise-section-heading--light h2 {
	color: var(--sunrise-white);
}

.sunrise-section--ink .sunrise-section-heading p {
	color: rgba(255, 255, 255, 0.66);
}

.sunrise-process {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 30px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sunrise-process li {
	border-top: 1px solid rgba(255, 255, 255, 0.24);
	padding-top: 20px;
}

.sunrise-process li span {
	display: block;
	font-family: var(--sunrise-display);
	font-size: 2.4rem;
	font-weight: 800;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1px rgba(255, 255, 255, 0.44);
	margin-bottom: 14px;
}

.sunrise-process li h3 {
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--sunrise-white);
	margin: 0 0 8px;
}

.sunrise-process li p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.62;
	color: rgba(255, 255, 255, 0.62);
}

/* ---- Proof band photography ---- */

.sunrise-proof-band__grid li {
	border: 1px solid var(--sunrise-line);
	background: var(--sunrise-white);
}

.sunrise-proof-band__grid img {
	filter: grayscale(1) contrast(1.05);
	transition: filter 0.45s ease;
}

@media (hover: hover) {
	.sunrise-proof-band__grid li:hover img {
		filter: none;
	}
}

.sunrise-proof-band__grid li:focus-within img {
	filter: none;
}

/* ---- Chips ---- */

.sunrise-chip-links a {
	display: inline-block;
	padding: 10px 16px;
	font-family: var(--sunrise-mono);
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--sunrise-ink);
	background: var(--sunrise-white);
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	transition: border-color 0.18s ease, transform 0.18s ease, color 0.18s ease;
}

.sunrise-chip-links a:hover,
.sunrise-chip-links a:focus-visible {
	border-color: var(--sunrise-ink);
	transform: translateY(-2px);
	color: var(--sunrise-red-deep);
}

/* ---- FAQ ---- */

.sunrise-faq__items details {
	background: var(--sunrise-white);
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	margin-top: -1px;
}

.sunrise-faq__items summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 18px 20px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}

.sunrise-faq__items summary::-webkit-details-marker {
	display: none;
}

.sunrise-faq__items summary::after {
	content: "+";
	font-size: 1.35rem;
	font-weight: 400;
	line-height: 1;
	color: var(--sunrise-red-deep);
	transition: transform 0.22s ease;
	flex-shrink: 0;
}

.sunrise-faq__items details[open] summary::after {
	transform: rotate(45deg);
}

.sunrise-faq__items details p {
	padding: 0 20px 18px;
	margin: 0;
	max-width: 68ch;
	color: var(--sunrise-slate);
	line-height: 1.65;
}

/* ---- Related tiles ---- */

.sunrise-related__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: 16px;
}

.sunrise-related__grid a {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 22px;
	background: var(--sunrise-white);
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	text-decoration: none;
	transition: transform 0.2s ease, border-color 0.2s ease;
}

.sunrise-related__grid a span {
	font-family: var(--sunrise-mono);
	font-size: 0.64rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--sunrise-slate);
}

.sunrise-related__grid a strong {
	font-size: 1.02rem;
	font-weight: 800;
	color: var(--sunrise-ink);
	transition: color 0.18s ease;
}

.sunrise-related__grid a:hover,
.sunrise-related__grid a:focus-visible {
	transform: translateY(-3px);
	border-color: var(--sunrise-ink);
}

.sunrise-related__grid a:hover strong {
	color: var(--sunrise-red-deep);
}

/* ---- CTA + form ---- */

.sunrise-cta {
	background: var(--sunrise-ink-2);
}

.sunrise-cta__intro {
	color: rgba(255, 255, 255, 0.7);
}

.sunrise-enquiry {
	background: rgba(255, 255, 255, 0.045);
	border-color: rgba(255, 255, 255, 0.16);
}

.sunrise-enquiry label {
	font-family: var(--sunrise-mono);
	font-size: 0.64rem;
	letter-spacing: 0.14em;
}

.sunrise-enquiry input,
.sunrise-enquiry select,
.sunrise-enquiry textarea {
	background: rgba(0, 0, 0, 0.3);
	border-color: rgba(255, 255, 255, 0.24);
}

/* ---- Breadcrumb ---- */

.sunrise-breadcrumb {
	border-bottom: 1px solid var(--sunrise-line);
	background: var(--sunrise-white);
}

.sunrise-breadcrumb .sunrise-shell {
	display: flex;
	align-items: center;
	gap: 10px;
	padding-top: 13px;
	padding-bottom: 13px;
	font-family: var(--sunrise-mono);
	font-size: 0.66rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sunrise-breadcrumb a {
	color: var(--sunrise-slate);
	text-decoration: none;
}

.sunrise-breadcrumb a:hover {
	color: var(--sunrise-red-deep);
}

.sunrise-breadcrumb [aria-current] {
	color: var(--sunrise-ink);
}

/* ---- Advice cards ---- */

.sunrise-advice-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.sunrise-advice-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 26px 24px;
	background: var(--sunrise-white);
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	text-decoration: none;
	transition: transform 0.2s ease, border-color 0.2s ease;
}

.sunrise-advice-card:hover,
.sunrise-advice-card:focus-visible {
	transform: translateY(-3px);
	border-color: var(--sunrise-ink);
}

/* ---- Footer ---- */

.sunrise-site-footer {
	background: #0c0d0f;
	overflow: hidden;
}

.sunrise-site-footer h2 {
	font-family: var(--sunrise-mono);
	font-size: 0.66rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.5);
}

.sunrise-site-footer a {
	color: rgba(255, 255, 255, 0.78);
	transition: color 0.18s ease;
}

.sunrise-site-footer a:hover {
	color: var(--sunrise-white);
}

.sunrise-site-footer__tel {
	font-family: var(--sunrise-display);
	font-size: 1.1rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--sunrise-white) !important;
	text-decoration: none;
}

.sunrise-site-footer__tel--emergency {
	color: var(--sunrise-red-dark-ground) !important;
}

.sunrise-footer-mark {
	display: none;
}

/* ---- Mobile call bar polish ---- */

.sunrise-callbar__label {
	font-family: var(--sunrise-mono);
	letter-spacing: 0.14em;
}

/* ---- Reveal motion (JS adds .sunrise-reveal only when allowed) ---- */

.sunrise-reveal {
	opacity: 0;
	transform: translateY(16px);
}

.sunrise-reveal--in {
	opacity: 1;
	transform: none;
	transition: opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1), transform 0.55s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (prefers-reduced-motion: reduce) {
	.sunrise-reveal {
		opacity: 1;
		transform: none;
	}

	.sunrise-live-dot {
		animation: none;
	}

	.sunrise-button,
	.sunrise-service-card,
	.sunrise-related__grid a,
	.sunrise-chip-links a {
		transition: none;
	}
}

/* ---- Responsive ---- */

@media (max-width: 1120px) {
	.sunrise-header-phone {
		padding: 4px 18px;
	}

	.sunrise-header-phone__number {
		font-size: 1.2rem;
	}

	.sunrise-service-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.sunrise-process {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 900px) {
	.sunrise-urgent-bar__inner {
		flex-direction: row;
		font-size: 0.62rem;
	}

	.sunrise-brand-row {
		flex-wrap: wrap;
		gap: 14px;
	}

	.sunrise-advice-grid {
		grid-template-columns: 1fr;
	}

	.sunrise-trust__rating {
		padding-right: 0;
		width: 100%;
	}

	.sunrise-trust__points {
		flex-direction: column;
	}

	.sunrise-trust__points li {
		border-left: 0;
		padding: 0;
	}

	.sunrise-footer-mark {
		margin-top: 28px;
	}
}

@media (max-width: 640px) {
	.sunrise-service-grid {
		grid-template-columns: 1fr;
	}

	.sunrise-process {
		grid-template-columns: 1fr;
	}

	.sunrise-proof-list {
		gap: 14px;
	}

	.sunrise-link-panel a {
		grid-template-columns: 34px minmax(0, 1fr) auto;
		gap: 12px;
	}

	.sunrise-hero__caption {
		right: 0;
		bottom: 0;
	}

	.sunrise-hero__media::before,
	.sunrise-service-hero__media::before {
		display: none;
	}
}

/* Reconcile the slab-style grids: related tiles use the card language;
   the areas route grid keeps the slab but on brand tokens. */
.sunrise-related__grid {
	gap: 16px;
	background: transparent;
	border: 0;
}

.sunrise-route-grid {
	background: var(--sunrise-line);
	border-color: var(--sunrise-line);
}

.sunrise-route-grid a {
	background: var(--sunrise-white);
	text-decoration: none;
	transition: background 0.18s ease;
}

.sunrise-route-grid a:hover,
.sunrise-route-grid a:focus-visible {
	background: var(--sunrise-paper);
}

/* Header phones: below 760px the top strip and the fixed call bar carry the
   numbers, so the brand row keeps only the quote action. */
@media (max-width: 760px) {
	.sunrise-header-phone {
		display: none;
	}

	.sunrise-header-contact .sunrise-button {
		margin-left: 0;
	}
}

/* Product index rows: pin label + title into a stacked middle column. */
.sunrise-link-panel a {
	grid-template-columns: 44px minmax(0, 1fr) auto;
	grid-template-rows: auto auto;
	align-items: center;
}

.sunrise-link-panel a::before {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.sunrise-link-panel span {
	grid-column: 2;
	grid-row: 1;
	margin-bottom: 0;
}

.sunrise-link-panel strong {
	grid-column: 2;
	grid-row: 2;
}

.sunrise-link-panel a::after {
	grid-column: 3;
	grid-row: 1 / span 2;
	align-self: center;
}

@media (max-width: 640px) {
	/* The question line is context, not action: below 640px the strip keeps
	   only the emergency link and the fixed call bar carries the urgency. */
	.sunrise-urgent-bar__inner p {
		display: none;
	}

	.sunrise-urgent-bar__inner {
		justify-content: center;
	}
}

/* ===========================================================================
   MOBILE MENU: hamburger + full-screen ink takeover
   <details> stays the mechanism (works without JS, links crawlable). The
   fixed call bar (z 999) deliberately stays visible ABOVE the overlay so a
   call is one tap away even while browsing the menu.
   =========================================================================== */

.sunrise-mobile-nav {
	display: none;
}

@media (max-width: 900px) {
	.sunrise-mobile-nav {
		display: block;
	}

	/* Compact single-bar header: logo left, burger right. */
	.sunrise-nav {
		display: none;
	}

	.sunrise-header-contact {
		display: none;
	}

	.sunrise-brand-row {
		flex-wrap: nowrap;
		align-items: center;
		min-height: 0;
		padding: 12px 0;
	}

	.sunrise-brand img {
		max-height: 46px;
		width: auto;
	}

	.sunrise-mobile-menu summary {
		display: flex;
		align-items: center;
		gap: 10px;
		padding: 12px 10px;
		margin: -12px -10px;
		cursor: pointer;
		list-style: none;
		user-select: none;
	}

	.sunrise-mobile-menu summary::-webkit-details-marker {
		display: none;
	}

	.sunrise-burger {
		display: block;
		width: 24px;
	}

	.sunrise-burger span {
		display: block;
		height: 2px;
		background: var(--sunrise-ink);
		transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease, background 0.2s ease;
	}

	.sunrise-burger span + span {
		margin-top: 5px;
	}

	.sunrise-mobile-menu__word {
		font-family: var(--sunrise-mono);
		font-size: 0.62rem;
		font-weight: 600;
		letter-spacing: 0.16em;
		text-transform: uppercase;
		color: var(--sunrise-ink);
	}

	.sunrise-mobile-menu__word--open {
		display: none;
	}

	/* Open state: summary becomes the fixed Close control on the overlay. */
	.sunrise-mobile-menu[open] summary {
		position: fixed;
		top: 14px;
		right: 16px;
		z-index: 960;
		margin: 0;
	}

	.sunrise-mobile-menu[open] .sunrise-burger span,
	.sunrise-mobile-menu[open] .sunrise-mobile-menu__word {
		color: var(--sunrise-white);
		background: var(--sunrise-white);
	}

	.sunrise-mobile-menu[open] .sunrise-mobile-menu__word {
		background: none;
	}

	.sunrise-mobile-menu[open] .sunrise-burger span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.sunrise-mobile-menu[open] .sunrise-burger span:nth-child(2) {
		opacity: 0;
	}

	.sunrise-mobile-menu[open] .sunrise-burger span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.sunrise-mobile-menu[open] .sunrise-mobile-menu__word--closed {
		display: none;
	}

	.sunrise-mobile-menu[open] .sunrise-mobile-menu__word--open {
		display: inline;
	}

	/* The takeover panel. */
	.sunrise-mobile-menu__panel {
		display: none;
	}

	.sunrise-mobile-menu[open] .sunrise-mobile-menu__panel {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 940;
		background: var(--sunrise-ink);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 74px 22px calc(96px + env(safe-area-inset-bottom, 0px));
		animation: sunrise-panel-in 0.32s cubic-bezier(0.16, 1, 0.3, 1);
	}

	@keyframes sunrise-panel-in {
		from { opacity: 0; transform: translateY(10px); }
		to { opacity: 1; transform: none; }
	}

	/* Menu list inside the overlay: oversized index typography. */
	.sunrise-mobile-menu__panel .sunrise-nav__list {
		display: block;
		margin: 0;
		padding: 0;
		border: 0;
	}

	.sunrise-mobile-menu__panel .sunrise-nav__list > li {
		border-bottom: 1px solid rgba(255, 255, 255, 0.12);
		animation: sunrise-menu-item 0.45s cubic-bezier(0.16, 1, 0.3, 1) backwards;
	}

	.sunrise-mobile-menu__panel .sunrise-nav__list > li:nth-child(1) { animation-delay: 0.05s; }
	.sunrise-mobile-menu__panel .sunrise-nav__list > li:nth-child(2) { animation-delay: 0.09s; }
	.sunrise-mobile-menu__panel .sunrise-nav__list > li:nth-child(3) { animation-delay: 0.13s; }
	.sunrise-mobile-menu__panel .sunrise-nav__list > li:nth-child(4) { animation-delay: 0.17s; }
	.sunrise-mobile-menu__panel .sunrise-nav__list > li:nth-child(5) { animation-delay: 0.21s; }
	.sunrise-mobile-menu__panel .sunrise-nav__list > li:nth-child(6) { animation-delay: 0.25s; }
	.sunrise-mobile-menu__panel .sunrise-nav__list > li:nth-child(7) { animation-delay: 0.29s; }
	.sunrise-mobile-menu__panel .sunrise-nav__list > li:nth-child(8) { animation-delay: 0.33s; }

	@keyframes sunrise-menu-item {
		from { opacity: 0; transform: translateY(14px); }
		to { opacity: 1; transform: none; }
	}

	.sunrise-mobile-menu__panel .sunrise-nav__list > li > a,
	.sunrise-mobile-menu__panel .sunrise-nav__list > li > details > summary {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 15px 0;
		margin: 0;
		font-family: var(--sunrise-display);
		font-size: 1.42rem;
		font-weight: 800;
		letter-spacing: -0.01em;
		text-transform: uppercase;
		color: var(--sunrise-white);
		background-image: none;
		position: static;
	}

	.sunrise-mobile-menu__panel .sunrise-nav__urgent {
		color: var(--sunrise-red-dark-ground) !important;
	}

	.sunrise-mobile-menu__panel .sunrise-nav__list summary::after {
		content: "+";
		margin-left: 12px;
		font-size: 1.5rem;
		font-weight: 400;
		color: var(--sunrise-red-dark-ground);
		transition: transform 0.22s ease;
	}

	.sunrise-mobile-menu__panel .sunrise-nav__list details[open] summary::after {
		transform: rotate(45deg);
	}

	.sunrise-mobile-menu__panel .sunrise-nav__submenu {
		position: static;
		min-width: 0;
		margin: 0;
		padding: 2px 0 16px;
		border: 0;
		background: transparent;
		box-shadow: none;
	}

	.sunrise-mobile-menu__panel .sunrise-nav__submenu a {
		display: block;
		padding: 9px 0 9px 18px;
		font-size: 0.98rem;
		font-weight: 500;
		color: rgba(255, 255, 255, 0.74);
		border-left: 1px solid rgba(255, 255, 255, 0.22);
	}

	.sunrise-mobile-menu__panel .sunrise-nav__submenu a:hover,
	.sunrise-mobile-menu__panel .sunrise-nav__submenu a:focus-visible {
		color: var(--sunrise-white);
		background: transparent;
		border-left-color: var(--sunrise-red-dark-ground);
		padding-left: 18px;
	}

	/* Emergency block: the reason most visitors opened this menu. */
	.sunrise-mobile-menu__contact {
		margin-top: 30px;
		padding-top: 24px;
		border-top: 2px solid var(--sunrise-red);
		display: flex;
		flex-direction: column;
		gap: 12px;
		animation: sunrise-menu-item 0.45s cubic-bezier(0.16, 1, 0.3, 1) 0.37s backwards;
	}

	.sunrise-mobile-menu__contact-label {
		margin: 0;
		font-family: var(--sunrise-mono);
		font-size: 0.64rem;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: rgba(255, 255, 255, 0.6);
	}

	.sunrise-mobile-menu__emergency {
		font-family: var(--sunrise-display);
		font-size: clamp(1.9rem, 9vw, 2.5rem);
		font-weight: 800;
		letter-spacing: -0.02em;
		line-height: 1;
		color: var(--sunrise-red-dark-ground);
		text-decoration: none;
	}

	.sunrise-mobile-menu__emergency:active {
		color: var(--sunrise-white);
	}

	.sunrise-mobile-menu__service {
		font-size: 0.94rem;
		color: rgba(255, 255, 255, 0.78);
		text-decoration: none;
	}

	.sunrise-mobile-menu__quote {
		margin-top: 6px;
		text-align: center;
	}
}

/* Scroll lock while the overlay is open (class set by site.js). */
html.sunrise-menu-open,
html.sunrise-menu-open body {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.sunrise-mobile-menu[open] .sunrise-mobile-menu__panel,
	.sunrise-mobile-menu__panel .sunrise-nav__list > li,
	.sunrise-mobile-menu__contact {
		animation: none;
	}

	.sunrise-burger span {
		transition: none;
	}
}

/* ===========================================================================
   LIGHT-FIRST REVISION (client round 1)
   The page becomes light throughout; the closing CTA and the footer are the
   only dark blocks. Footer logo runs as a white knockout so the wordmark is
   legible on the dark ground.
   =========================================================================== */

/* Urgent strip: light, with the emergency number in red. */
.sunrise-urgent-bar {
	background: var(--sunrise-paper);
	color: var(--sunrise-ink);
	border-bottom: 1px solid var(--sunrise-line);
}

.sunrise-urgent-bar__inner p {
	color: var(--sunrise-slate);
}

.sunrise-urgent-bar__inner a {
	color: var(--sunrise-red-deep);
	background-image: linear-gradient(var(--sunrise-red-deep), var(--sunrise-red-deep));
}

.sunrise-live-dot {
	background: var(--sunrise-red);
	animation-name: sunrise-pulse-light;
}

@keyframes sunrise-pulse-light {
	0% { box-shadow: 0 0 0 0 rgba(198, 26, 26, 0.35); }
	70% { box-shadow: 0 0 0 9px rgba(198, 26, 26, 0); }
	100% { box-shadow: 0 0 0 0 rgba(198, 26, 26, 0); }
}

/* Trust band: light ledger strip. */
.sunrise-trust-section {
	background: var(--sunrise-white);
	border-top: 1px solid var(--sunrise-line);
	border-bottom: 1px solid var(--sunrise-line);
}

.sunrise-trust__rating strong {
	color: var(--sunrise-ink);
}

.sunrise-trust__count {
	color: var(--sunrise-slate);
}

.sunrise-trust__star--empty {
	color: var(--sunrise-line);
}

.sunrise-trust__points {
	color: var(--sunrise-slate);
}

.sunrise-trust__points li {
	border-left-color: var(--sunrise-line);
}

/* Dark content sections become paper; the CTA keeps the single dark moment. */
.sunrise-section--ink {
	background: var(--sunrise-paper);
}

.sunrise-section--ink h2,
.sunrise-section-heading--light h2 {
	color: var(--sunrise-ink);
}

.sunrise-section--ink .sunrise-section-heading p,
.sunrise-section-heading--light + p,
.sunrise-section-heading--light p {
	color: var(--sunrise-slate);
}

.sunrise-process {
	border-top: 0;
}

.sunrise-process li {
	border-top-color: rgba(16, 17, 19, 0.22);
}

.sunrise-process li span {
	-webkit-text-stroke: 1px rgba(16, 17, 19, 0.38);
}

.sunrise-process li h3 {
	color: var(--sunrise-ink);
}

.sunrise-process li p {
	color: var(--sunrise-slate);
}

/* Region tiles on the areas hub and anywhere else they appear. */
.sunrise-region-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.sunrise-region-grid a {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 22px;
	background: var(--sunrise-white);
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	text-decoration: none;
	transition: transform 0.2s ease, border-color 0.2s ease;
}

.sunrise-region-grid a span {
	font-family: var(--sunrise-mono);
	font-size: 0.64rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--sunrise-slate);
}

.sunrise-region-grid a strong {
	font-family: var(--sunrise-display);
	font-size: 1.14rem;
	font-weight: 800;
	color: var(--sunrise-ink);
	transition: color 0.18s ease;
}

.sunrise-region-grid a:hover,
.sunrise-region-grid a:focus-visible {
	transform: translateY(-3px);
	border-color: var(--sunrise-ink);
}

.sunrise-region-grid a:hover strong {
	color: var(--sunrise-red-deep);
}

@media (max-width: 900px) {
	.sunrise-region-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Prose pages (imported region and city content). */
.sunrise-prose-hero {
	padding-bottom: 0;
}

.sunrise-prose-hero h1 {
	max-width: 22ch;
}

.sunrise-prose-body {
	padding-top: 34px;
}

.sunrise-prose {
	max-width: 72ch;
}

.sunrise-prose h2 {
	font-size: 1.35rem;
	font-weight: 800;
	letter-spacing: -0.01em;
	margin: 34px 0 12px;
}

.sunrise-prose p {
	color: var(--sunrise-slate);
	line-height: 1.7;
	margin: 0 0 16px;
}

.sunrise-prose ul {
	margin: 0 0 16px;
	padding-left: 20px;
	color: var(--sunrise-slate);
}

/* Footer logo: the artwork carries its own white ground, which reads as a
   plaque on the dark footer. No filter. */
.sunrise-brand--footer img {
	background: var(--sunrise-white);
	padding: 10px 14px;
	border-radius: var(--sunrise-radius);
}

/* Mobile menu overlay: light takeover. */
@media (max-width: 900px) {
	.sunrise-mobile-menu[open] .sunrise-mobile-menu__panel {
		background: var(--sunrise-paper);
	}

	.sunrise-mobile-menu[open] .sunrise-burger span {
		background: var(--sunrise-ink);
	}

	.sunrise-mobile-menu[open] .sunrise-mobile-menu__word {
		color: var(--sunrise-ink);
	}

	.sunrise-mobile-menu__panel .sunrise-nav__list > li {
		border-bottom-color: rgba(16, 17, 19, 0.14);
	}

	.sunrise-mobile-menu__panel .sunrise-nav__list > li > a,
	.sunrise-mobile-menu__panel .sunrise-nav__list > li > details > summary {
		color: var(--sunrise-ink);
	}

	.sunrise-mobile-menu__panel .sunrise-nav__urgent {
		color: var(--sunrise-red) !important;
	}

	.sunrise-mobile-menu__panel .sunrise-nav__list summary::after {
		color: var(--sunrise-red-deep);
	}

	.sunrise-mobile-menu__panel .sunrise-nav__submenu a {
		color: var(--sunrise-slate);
		border-left-color: rgba(16, 17, 19, 0.24);
	}

	.sunrise-mobile-menu__panel .sunrise-nav__submenu a:hover,
	.sunrise-mobile-menu__panel .sunrise-nav__submenu a:focus-visible {
		color: var(--sunrise-ink);
		border-left-color: var(--sunrise-red);
	}

	.sunrise-mobile-menu__contact {
		border-top-color: var(--sunrise-red);
	}

	.sunrise-mobile-menu__contact-label {
		color: var(--sunrise-slate);
	}

	.sunrise-mobile-menu__emergency {
		color: var(--sunrise-red);
	}

	.sunrise-mobile-menu__emergency:active {
		color: var(--sunrise-ink);
	}

	.sunrise-mobile-menu__service {
		color: var(--sunrise-ink);
	}
}

/* ---- Location pages (regions and repair cities) ---- */

.sunrise-location-hero {
	padding: clamp(48px, 6vw, 84px) 0;
}

.sunrise-location-hero h1 {
	max-width: 24ch;
}

.sunrise-location-body__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	gap: 56px;
	align-items: start;
}

.sunrise-location-rail {
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.sunrise-map-panel {
	background: var(--sunrise-white);
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	padding: 18px;
}

.sunrise-map-panel img {
	display: block;
	width: 100%;
	height: auto;
}

.sunrise-map-panel__caption {
	margin: 12px 0 0;
	font-family: var(--sunrise-mono);
	font-size: 0.64rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--sunrise-slate);
}

.sunrise-location-rail__links {
	background: var(--sunrise-white);
	border: 1px solid var(--sunrise-line);
	border-radius: var(--sunrise-radius);
	padding: 20px;
}

.sunrise-location-rail__links h2 {
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0 0 10px;
}

.sunrise-location-rail__links ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.sunrise-location-rail__links a {
	display: block;
	padding: 9px 0;
	border-top: 1px solid var(--sunrise-line);
	color: var(--sunrise-ink);
	text-decoration: none;
	font-size: 0.95rem;
	font-weight: 600;
}

.sunrise-location-rail__links a:hover,
.sunrise-location-rail__links a:focus-visible {
	color: var(--sunrise-red-deep);
}

/* Mid-page emergency band: the location page's conversion moment. */
.sunrise-location-band {
	background: var(--sunrise-red);
	color: var(--sunrise-white);
	padding: 34px 0;
}

.sunrise-location-band__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 10px 34px;
}

.sunrise-location-band__ask {
	margin: 0;
	font-family: var(--sunrise-display);
	font-size: clamp(1.15rem, 2.4vw, 1.5rem);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: -0.01em;
}

.sunrise-location-band__tel {
	font-family: var(--sunrise-display);
	font-size: clamp(1.7rem, 4vw, 2.4rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--sunrise-white);
	text-decoration: none;
	border-bottom: 3px solid rgba(255, 255, 255, 0.4);
}

.sunrise-location-band__tel:hover,
.sunrise-location-band__tel:focus-visible {
	border-bottom-color: var(--sunrise-white);
}

.sunrise-location-band__note {
	margin: 0;
	font-family: var(--sunrise-mono);
	font-size: 0.66rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.8);
}

.sunrise-trust__count--other {
	padding-left: 18px;
	border-left: 1px solid var(--sunrise-line);
}

.sunrise-site-footer__whatsapp,
.sunrise-site-footer__review {
	text-decoration: none;
}

.sunrise-site-footer__review {
	font-size: 0.85rem;
	color: rgba(255, 255, 255, 0.6);
}

@media (max-width: 1000px) {
	.sunrise-location-body__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.sunrise-location-rail {
		position: static;
		max-width: 480px;
	}
}

/* Explicit page ground: never inherit a UA or OS dark canvas. */
body {
	background: var(--sunrise-white);
	color: var(--sunrise-ink);
}
