:root {
	--river: #0f4c6e;
	--river-deep: #08384f;
	--sunset: #e85d37;
	--sunset-dark: #c94726;
	--sage: #78927a;
	--sage-dark: #546f5a;
	--ochre: #e8b04a;
	--cream: #fffaf2;
	--sand: #f4ecdd;
	--white: #ffffff;
	--ink: #17313f;
	--muted: #5f6f75;
	--line: rgba(23, 49, 63, 0.14);
	--shadow: 0 24px 70px rgba(8, 56, 79, 0.13);
	--radius-sm: 12px;
	--radius: 24px;
	--radius-lg: 38px;
	--shell: min(1180px, calc(100% - 40px));
	--section-space: clamp(64px, 7vw, 96px);
	--font: "Trebuchet MS", "Avenir Next", "Segoe UI", Arial, sans-serif;
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: var(--font);
	font-size: 17px;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body.nav-open {
	overflow: hidden;
}

img,
svg {
	display: block;
	max-width: 100%;
}

a {
	color: var(--river);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--sunset-dark);
}

button,
input,
textarea,
select {
	font: inherit;
}

button,
a {
	-webkit-tap-highlight-color: transparent;
}

:focus-visible {
	outline: 3px solid var(--ochre);
	outline-offset: 4px;
}

h1,
h2,
h3,
h4,
p {
	margin-top: 0;
}

h1,
h2,
h3 {
	letter-spacing: -0.035em;
	line-height: 1.08;
}

h1 {
	font-size: clamp(3.35rem, 8vw, 6.8rem);
}

h2 {
	font-size: clamp(2.4rem, 5.4vw, 4.6rem);
}

h3 {
	font-size: clamp(1.35rem, 2vw, 1.65rem);
}

h1 em,
h2 em {
	color: var(--sunset);
	font-style: normal;
}

.shell {
	margin-inline: auto;
	width: var(--shell);
}

.section {
	padding-block: var(--section-space);
}

.page-hero + .section,
.trust-strip + .section,
.section + .section {
	border-radius: clamp(30px, 4vw, 52px) clamp(30px, 4vw, 52px) 0 0;
	margin-top: -28px;
	position: relative;
	z-index: 2;
}

.skip-link {
	background: var(--river-deep);
	border-radius: 0 0 8px 8px;
	color: var(--white);
	font-weight: 700;
	left: 20px;
	padding: 12px 18px;
	position: fixed;
	top: -100px;
	z-index: 9999;
}

.skip-link:focus {
	color: var(--white);
	top: 0;
}

.eyebrow {
	align-items: center;
	color: var(--river);
	display: flex;
	font-size: 0.76rem;
	font-weight: 800;
	gap: 10px;
	letter-spacing: 0.17em;
	margin-bottom: 16px;
	text-transform: uppercase;
}

.eyebrow span {
	background: var(--sunset);
	border-radius: 999px;
	height: 7px;
	width: 34px;
}

.eyebrow--light {
	color: var(--cream);
}

.button-row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 26px;
}

.button {
	align-items: center;
	background: var(--sunset);
	border: 2px solid var(--sunset);
	border-radius: 999px;
	color: var(--white);
	display: inline-flex;
	font-size: 0.9rem;
	font-weight: 800;
	gap: 10px;
	justify-content: center;
	letter-spacing: 0.02em;
	min-height: 52px;
	padding: 13px 24px;
	text-decoration: none;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.button svg {
	fill: currentColor;
	height: 19px;
	width: 19px;
}

.button:hover {
	background: var(--sunset-dark);
	border-color: var(--sunset-dark);
	color: var(--white);
	transform: translateY(-2px);
}

.button--small {
	font-size: 0.82rem;
	min-height: 42px;
	padding: 9px 18px;
}

.button--outline {
	background: transparent;
	border-color: var(--river);
	color: var(--river);
}

.button--outline:hover {
	background: var(--river);
	border-color: var(--river);
}

.button--light {
	background: var(--cream);
	border-color: var(--cream);
	color: var(--river-deep);
}

.button--light:hover {
	background: var(--ochre);
	border-color: var(--ochre);
	color: var(--river-deep);
}

.text-link {
	color: var(--river-deep);
	font-size: 0.92rem;
	font-weight: 800;
	text-decoration-color: var(--sunset);
	text-decoration-thickness: 2px;
}

.text-link--arrow {
	align-items: center;
	display: inline-flex;
	gap: 8px;
}

.text-link--arrow svg {
	fill: currentColor;
	height: 20px;
	width: 20px;
}

.icon-disc {
	align-items: center;
	background: var(--sand);
	border-radius: 50%;
	color: var(--river);
	display: inline-flex;
	flex: 0 0 auto;
	height: 54px;
	justify-content: center;
	width: 54px;
}

.icon-disc svg {
	fill: currentColor;
	height: 26px;
	width: 26px;
}

/* Header */
.site-header {
	background: rgba(255, 250, 242, 0.94);
	background: color-mix(in srgb, var(--cream) 94%, transparent);
	border-bottom: 1px solid transparent;
	left: 0;
	position: sticky;
	right: 0;
	top: 0;
	transition: box-shadow 180ms ease, border-color 180ms ease, background-color 180ms ease;
	z-index: 100;
}

.site-header.is-scrolled {
	backdrop-filter: blur(14px);
	border-color: var(--line);
	box-shadow: 0 12px 30px rgba(8, 56, 79, 0.06);
}

.site-header__inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	min-height: 84px;
}

.site-brand {
	display: block;
	width: clamp(265px, 26vw, 340px);
}

.site-brand img {
	height: auto;
	width: 100%;
}

.site-nav {
	align-items: center;
	display: flex;
	gap: 28px;
}

.site-nav__list {
	align-items: center;
	display: flex;
	gap: clamp(18px, 2.4vw, 34px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav__list a {
	color: var(--ink);
	font-size: 0.84rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	position: relative;
	text-decoration: none;
	text-transform: uppercase;
}

.site-nav__list a::after {
	background: var(--sunset);
	bottom: -8px;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 180ms ease;
	width: 100%;
}

.site-nav__list a:hover::after,
.site-nav__list .current-menu-item > a::after {
	transform: scaleX(1);
	transform-origin: left;
}

.nav-toggle {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--ink);
	display: none;
	gap: 10px;
	padding: 8px;
}

.nav-toggle__label {
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.nav-toggle__icon {
	display: grid;
	gap: 4px;
	width: 24px;
}

.nav-toggle__icon span {
	background: currentColor;
	height: 2px;
	transition: transform 180ms ease, opacity 180ms ease;
	width: 100%;
}

/* Home hero */
.hero {
	background:
		radial-gradient(circle at 79% 25%, rgba(232, 176, 74, 0.2), transparent 24%),
		linear-gradient(180deg, var(--cream), #f9f0e2);
	min-height: min(720px, calc(100vh - 82px));
	overflow: hidden;
	padding: clamp(56px, 6vw, 86px) 0 142px;
	position: relative;
}

.hero__sun {
	background: var(--sunset);
	border-radius: 50%;
	filter: blur(80px);
	height: 260px;
	opacity: 0.08;
	position: absolute;
	right: 5%;
	top: 4%;
	width: 260px;
}

.hero__grid {
	align-items: center;
	display: grid;
	gap: clamp(40px, 5vw, 72px);
	grid-template-columns: minmax(0, 1.15fr) minmax(330px, 0.85fr);
	position: relative;
	z-index: 2;
}

.hero h1 {
	margin-bottom: 22px;
}

.hero__lead {
	color: var(--muted);
	font-size: clamp(1.1rem, 1.8vw, 1.32rem);
	max-width: 680px;
}

.hero__copy .button-row {
	margin-top: 28px;
}

.hero__art-card {
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(255, 255, 255, 0.95);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
	margin-left: auto;
	max-width: 460px;
	padding: clamp(18px, 2.6vw, 30px);
	position: relative;
	transform: rotate(2deg);
}

.hero__art-card > img {
	height: auto;
	width: 100%;
}

.hero__status {
	align-items: center;
	background: var(--white);
	border-radius: 18px;
	bottom: -27px;
	box-shadow: 0 16px 34px rgba(8, 56, 79, 0.12);
	display: flex;
	gap: 12px;
	left: -22px;
	padding: 14px 18px;
	position: absolute;
	transform: rotate(-2deg);
}

.hero__status p {
	font-size: 0.78rem;
	line-height: 1.35;
	margin: 0;
}

.status-dot {
	background: #36a164;
	border: 4px solid #daf0e2;
	border-radius: 50%;
	height: 15px;
	width: 15px;
}

.hero__foothills {
	bottom: -2px;
	height: 152px;
	left: 0;
	position: absolute;
	width: 100%;
	z-index: 1;
}

.hero__foothills svg {
	height: 100%;
	width: 100%;
}

.trust-strip {
	background: var(--river-deep);
	color: var(--white);
	padding-bottom: 28px;
}

.trust-strip__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}

.trust-strip__grid > div {
	align-items: center;
	border-right: 1px solid rgba(255, 255, 255, 0.14);
	display: flex;
	gap: 16px;
	padding: 20px clamp(18px, 3vw, 36px);
}

.trust-strip__grid > div:last-child {
	border: 0;
}

.trust-strip svg {
	fill: var(--ochre);
	height: 30px;
	width: 30px;
}

.trust-strip p {
	font-size: 0.82rem;
	line-height: 1.35;
	margin: 0;
}

.trust-strip strong {
	display: block;
	font-size: 0.92rem;
}

/* Sections */
.section--intro {
	background: var(--white);
}

.intro-grid {
	align-items: start;
	display: grid;
	gap: clamp(38px, 5vw, 72px);
	grid-template-columns: 1.15fr 0.85fr;
}

.intro-grid h2 {
	margin-bottom: 0;
}

.intro-grid__copy {
	padding-top: 26px;
}

.intro-grid__copy > p {
	color: var(--muted);
	font-size: 1.12rem;
}

.section--features {
	background: var(--river);
	color: var(--white);
	position: relative;
}

.section--features::before {
	background-image: radial-gradient(rgba(255, 255, 255, 0.08) 1px, transparent 1px);
	background-size: 18px 18px;
	content: "";
	inset: 0;
	mask-image: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent);
	opacity: 0.35;
	position: absolute;
}

.section--features .shell {
	position: relative;
}

.section-heading {
	align-items: end;
	display: grid;
	gap: 48px;
	grid-template-columns: 1.2fr 0.8fr;
	margin-bottom: 44px;
}

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

.section-heading > p {
	color: rgba(255, 255, 255, 0.76);
	font-size: 1.08rem;
	margin-bottom: 8px;
}

.section-heading--dark > p {
	color: var(--muted);
}

.feature-grid {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(2, 1fr);
}

.feature-card {
	background: rgba(255, 255, 255, 0.07);
	min-height: 245px;
	padding: clamp(28px, 3.5vw, 40px);
	position: relative;
	transition: background-color 180ms ease, transform 180ms ease;
}

.feature-card:nth-child(1) {
	border-radius: var(--radius) 0 0 0;
}

.feature-card:nth-child(2) {
	border-radius: 0 var(--radius) 0 0;
}

.feature-card:nth-child(3) {
	border-radius: 0 0 0 var(--radius);
}

.feature-card:nth-child(4) {
	border-radius: 0 0 var(--radius) 0;
}

.feature-card:hover {
	background: rgba(255, 255, 255, 0.11);
	transform: translateY(-3px);
}

.feature-card .icon-disc {
	background: var(--ochre);
	color: var(--river-deep);
	margin-bottom: 25px;
}

.feature-card__number {
	color: rgba(255, 255, 255, 0.36);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	position: absolute;
	right: 30px;
	top: 28px;
}

.feature-card h3 {
	font-size: 1.65rem;
	margin-bottom: 11px;
}

.feature-card p {
	color: rgba(255, 255, 255, 0.72);
	margin-bottom: 0;
	max-width: 470px;
}

.section--plans {
	background: var(--sand);
}

.plan-grid {
	align-items: stretch;
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(3, 1fr);
}

.plan-card {
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(23, 49, 63, 0.1);
	border-radius: var(--radius);
	display: flex;
	flex-direction: column;
	padding: clamp(26px, 3vw, 34px);
	position: relative;
}

.plan-card--featured {
	background: var(--river-deep);
	color: var(--white);
	transform: translateY(-12px);
}

.plan-card__badge {
	background: var(--ochre);
	border-radius: 999px;
	color: var(--river-deep);
	font-size: 0.7rem;
	font-weight: 900;
	letter-spacing: 0.12em;
	padding: 6px 13px;
	position: absolute;
	right: 24px;
	text-transform: uppercase;
	top: 23px;
}

.plan-card__label {
	font-size: 0.77rem;
	font-weight: 900;
	letter-spacing: 0.11em;
	margin-bottom: 17px;
	padding-right: 50px;
	text-transform: uppercase;
}

.plan-card__price {
	font-size: clamp(2.8rem, 5vw, 4.2rem);
	font-weight: 800;
	letter-spacing: -0.06em;
	line-height: 1;
	margin-bottom: 18px;
}

.plan-card__price > span {
	color: var(--sunset);
	font-size: 1.5rem;
	vertical-align: top;
}

.plan-card__price small {
	color: var(--muted);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0;
}

.plan-card--featured .plan-card__price small,
.plan-card--featured > p:not(.plan-card__label, .plan-card__price, .plan-card__badge) {
	color: rgba(255, 255, 255, 0.72);
}

.plan-card > p:not(.plan-card__label, .plan-card__price, .plan-card__badge) {
	color: var(--muted);
}

.plan-card ul {
	display: grid;
	gap: 11px;
	list-style: none;
	margin: 8px 0 24px;
	padding: 0;
}

.plan-card li {
	align-items: center;
	display: flex;
	font-size: 0.92rem;
	gap: 9px;
}

.plan-card li svg {
	fill: var(--sage-dark);
	height: 20px;
	width: 20px;
}

.plan-card--featured li svg {
	fill: var(--ochre);
}

.plan-card .button {
	margin-top: auto;
	width: 100%;
}

.plan-card--featured .button {
	background: var(--ochre);
	border-color: var(--ochre);
	color: var(--river-deep);
}

.plan-note {
	color: var(--muted);
	font-size: 0.9rem;
	margin: 24px auto 0;
	text-align: center;
}

.local-story {
	background: var(--white);
	overflow: hidden;
}

.local-story__grid {
	align-items: center;
	display: grid;
	gap: clamp(42px, 5vw, 72px);
	grid-template-columns: 1fr 1fr;
}

.local-story__art {
	background: linear-gradient(180deg, #f6e8d3 0%, #fffaf2 100%);
	border-radius: var(--radius-lg);
	height: 410px;
	overflow: hidden;
	position: relative;
}

.local-story__art img {
	height: 100%;
	object-fit: contain;
	padding: clamp(18px, 3vw, 34px);
	width: 100%;
}

.local-story__copy > p:not(.eyebrow) {
	color: var(--muted);
	font-size: 1.12rem;
}

.final-cta {
	background: var(--sunset);
	color: var(--white);
}

.final-cta__inner {
	align-items: center;
	display: grid;
	gap: clamp(38px, 5vw, 72px);
	grid-template-columns: 1.15fr 0.85fr;
}

.final-cta h2 {
	margin-bottom: 0;
}

.final-cta__inner > div:last-child p {
	color: rgba(255, 255, 255, 0.82);
	font-size: 1.1rem;
}

/* Inner pages */
.page-hero {
	background:
		radial-gradient(circle at 82% 17%, rgba(232, 176, 74, 0.18), transparent 24%),
		linear-gradient(160deg, var(--cream), #f2e5d2);
	overflow: hidden;
	padding-block: clamp(62px, 7vw, 94px);
	position: relative;
}

.page-hero::after {
	background: var(--sage);
	border-radius: 50% 50% 0 0;
	bottom: -110px;
	content: "";
	height: 160px;
	left: -5%;
	position: absolute;
	transform: rotate(2deg);
	width: 110%;
}

.page-hero__grid {
	align-items: center;
	display: grid;
	gap: clamp(40px, 5vw, 72px);
	grid-template-columns: 1.15fr 0.85fr;
	position: relative;
	z-index: 2;
}

.page-hero h1 {
	font-size: clamp(3.4rem, 7vw, 6.3rem);
	margin-bottom: 22px;
	max-width: 900px;
}

.page-hero p:not(.eyebrow, .support-card__label) {
	color: var(--muted);
	font-size: 1.16rem;
	max-width: 680px;
}

.page-hero__mark {
	filter: drop-shadow(0 22px 40px rgba(8, 56, 79, 0.12));
	margin-left: auto;
	width: min(100%, 390px);
}

.page-hero--simple .shell {
	position: relative;
	z-index: 2;
}

.page-hero--simple h1 {
	margin-bottom: 0;
}

.split-heading {
	align-items: end;
	display: grid;
	gap: clamp(38px, 5vw, 72px);
	grid-template-columns: 1.1fr 0.9fr;
	margin-bottom: 42px;
}

.split-heading h2 {
	margin-bottom: 0;
}

.split-heading > p {
	color: var(--muted);
	font-size: 1.08rem;
}

.detail-grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(2, 1fr);
}

.detail-card {
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: clamp(26px, 3vw, 36px);
}

.detail-card .icon-disc {
	margin-bottom: 22px;
}

.detail-card p {
	color: var(--muted);
	margin-bottom: 0;
}

.section--plans-page {
	padding-top: clamp(68px, 7vw, 100px);
}

.company-quote {
	background: var(--river);
	border-radius: var(--radius-lg);
	color: var(--white);
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	font-weight: 700;
	padding: clamp(32px, 4vw, 46px);
	position: relative;
}

.company-quote::before {
	color: var(--ochre);
	content: "“";
	font-size: 5rem;
	left: 24px;
	line-height: 1;
	opacity: 0.9;
	position: absolute;
	top: 14px;
}

.company-quote p {
	color: inherit !important;
	font-size: inherit !important;
	margin: 20px 0 0;
}

.company-story {
	background: var(--white);
}

.company-story__grid {
	align-items: center;
	display: grid;
	gap: clamp(40px, 5vw, 72px);
	grid-template-columns: 0.8fr 1.2fr;
}

.company-story__visual {
	background: var(--sand);
	border-radius: var(--radius-lg);
	padding: clamp(24px, 3vw, 36px);
	text-align: center;
}

.company-story__visual img {
	margin: 0 auto 12px;
	width: 100%;
}

.company-story__visual p {
	color: var(--river);
	font-size: 0.76rem;
	font-weight: 900;
	letter-spacing: 0.18em;
	margin: 0;
	text-transform: uppercase;
}

.prose > p:not(.eyebrow) {
	color: var(--muted);
	font-size: 1.1rem;
}

.section--values {
	background: var(--river);
	color: var(--white);
}

.values-grid {
	display: grid;
	gap: 1px;
	grid-template-columns: repeat(3, 1fr);
}

.values-grid article {
	background: rgba(255, 255, 255, 0.07);
	min-height: 225px;
	padding: clamp(26px, 3vw, 36px);
}

.values-grid article:first-child {
	border-radius: var(--radius) 0 0 var(--radius);
}

.values-grid article:last-child {
	border-radius: 0 var(--radius) var(--radius) 0;
}

.values-grid span {
	color: var(--ochre);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.values-grid h3 {
	margin-top: 38px;
}

.values-grid p {
	color: rgba(255, 255, 255, 0.72);
}

.page-hero .button {
	margin-top: 20px;
}

.support-card {
	background: var(--white);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow);
	padding: clamp(30px, 4vw, 42px);
}

.support-card .icon-disc {
	background: var(--ochre);
	color: var(--river-deep);
	margin-bottom: 20px;
}

.support-card__label {
	color: var(--muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	margin-bottom: 6px;
	text-transform: uppercase;
}

.support-card > a {
	display: inline-block;
	font-size: clamp(1.2rem, 2.4vw, 1.7rem);
	font-weight: 800;
	margin-bottom: 20px;
}

.support-card > p:last-child {
	font-size: 0.94rem !important;
	margin-bottom: 0;
}

.portal-grid {
	display: grid;
	gap: 16px;
}

.portal-card {
	align-items: center;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	color: var(--ink);
	display: grid;
	gap: 24px;
	grid-template-columns: auto 1fr auto;
	padding: 21px 26px;
	text-decoration: none;
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.portal-card:hover {
	border-color: rgba(232, 93, 55, 0.45);
	box-shadow: 0 16px 40px rgba(8, 56, 79, 0.08);
	color: var(--ink);
	transform: translateY(-2px);
}

.portal-card > svg {
	fill: var(--sunset);
	height: 28px;
	width: 28px;
}

.portal-card strong {
	display: block;
	font-size: 1.2rem;
}

.portal-card span > span:not(.icon-disc) {
	color: var(--muted);
}

.support-tips {
	background: var(--river);
	color: var(--white);
}

.support-tips__grid {
	display: grid;
	gap: clamp(40px, 5vw, 72px);
	grid-template-columns: 1fr 1fr;
}

.support-tips ol {
	display: grid;
	gap: 1px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.support-tips li {
	align-items: center;
	background: rgba(255, 255, 255, 0.07);
	display: flex;
	gap: 20px;
	padding: 20px;
}

.support-tips li:first-child {
	border-radius: var(--radius) var(--radius) 0 0;
}

.support-tips li:last-child {
	border-radius: 0 0 var(--radius) var(--radius);
}

.support-tips li > span {
	align-items: center;
	background: var(--ochre);
	border-radius: 50%;
	color: var(--river-deep);
	display: flex;
	flex: 0 0 auto;
	font-weight: 900;
	height: 42px;
	justify-content: center;
	width: 42px;
}

.support-tips li p {
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.45;
	margin: 0;
}

.support-tips li strong {
	color: var(--white);
	display: block;
}

.page-hero--contact {
	padding-block: clamp(48px, 5.5vw, 72px) clamp(74px, 7vw, 96px);
}

.page-hero--contact h1 {
	font-size: clamp(3.2rem, 6vw, 5.4rem);
	margin-bottom: 18px;
}

.contact-hero__copy > p:not(.eyebrow) {
	max-width: 640px;
}

.contact-hero__actions {
	gap: 20px;
	margin-top: 26px;
}

.contact-direct {
	align-items: center;
	background: var(--river);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--radius);
	box-shadow: 0 18px 46px rgba(8, 56, 79, 0.16);
	color: var(--white);
	display: grid;
	gap: 20px;
	grid-template-columns: auto 1fr;
	padding: clamp(24px, 3vw, 32px);
}

.contact-direct .icon-disc {
	background: var(--ochre);
	color: var(--river-deep);
}

.contact-direct p {
	color: rgba(255, 255, 255, 0.72) !important;
	font-size: 0.84rem !important;
	font-weight: 800;
	letter-spacing: 0.05em;
	margin-bottom: 2px;
	text-transform: uppercase;
}

.contact-direct a {
	color: var(--white);
	display: inline-block;
	font-size: clamp(1.05rem, 2vw, 1.4rem);
	font-weight: 800;
	overflow-wrap: anywhere;
}

.contact-direct > div > span {
	color: rgba(255, 255, 255, 0.7);
	display: block;
	font-size: 0.84rem;
	margin-top: 5px;
}

.contact-section {
	background:
		radial-gradient(circle at 88% 8%, rgba(120, 146, 122, 0.12), transparent 22%),
		var(--white);
	scroll-margin-top: 92px;
}

.contact-grid {
	align-items: start;
	display: grid;
	gap: clamp(34px, 5vw, 68px);
	grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr);
}

.contact-form-wrap {
	background: var(--cream);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: 0 20px 52px rgba(8, 56, 79, 0.08);
	padding: clamp(26px, 4vw, 42px);
}

.contact-form-wrap h2 {
	font-size: clamp(2rem, 4vw, 3.2rem);
	margin-bottom: 12px;
}

.contact-form__intro {
	color: var(--muted);
	margin-bottom: 22px;
	max-width: 650px;
}

.contact-privacy-note {
	align-items: start;
	background: rgba(120, 146, 122, 0.11);
	border-left: 4px solid var(--sage-dark);
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
	display: grid;
	gap: 12px;
	grid-template-columns: auto 1fr;
	margin-bottom: 26px;
	padding: 14px 16px;
}

.contact-privacy-note svg {
	fill: var(--sage-dark);
	height: 22px;
	margin-top: 2px;
	width: 22px;
}

.contact-privacy-note p {
	color: var(--muted);
	font-size: 0.88rem;
	line-height: 1.5;
	margin: 0;
}

.contact-privacy-note strong {
	color: var(--ink);
}

.contact-form-wrap .contact-form-fields,
.contact-form-wrap .fusion-one-half,
.contact-form-wrap .fusion-layout-column {
	float: none;
	margin: 0;
	width: 100%;
}

.contact-form-wrap label {
	color: var(--ink);
	display: block;
	font-size: 0.88rem;
	font-weight: 800;
	letter-spacing: 0.015em;
}

.contact-field-label {
	display: block;
	margin-bottom: 7px;
}

.required-marker {
	color: var(--sunset-dark);
	margin-left: 3px;
}

.optional-marker {
	color: var(--muted);
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0;
	margin-left: 5px;
}

.contact-form-wrap input:not([type="submit"]),
.contact-form-wrap textarea,
.contact-form-wrap select {
	background: var(--white);
	border: 2px solid rgba(23, 49, 63, 0.18);
	border-radius: 10px;
	color: var(--ink);
	margin-top: 0;
	max-width: 100%;
	min-height: 50px;
	padding: 12px 14px;
	transition: border-color 160ms ease, box-shadow 160ms ease;
	width: 100%;
}

.contact-form-wrap input:not([type="submit"]):focus,
.contact-form-wrap textarea:focus,
.contact-form-wrap select:focus {
	border-color: var(--river);
	box-shadow: 0 0 0 4px rgba(15, 76, 110, 0.14);
	outline: 0;
}

.contact-form-wrap textarea {
	height: 150px;
	min-height: 150px;
	resize: vertical;
}

.contact-form-wrap input[type="submit"] {
	background: var(--sunset);
	border: 2px solid var(--sunset);
	border-radius: 999px;
	color: var(--white);
	cursor: pointer;
	font-weight: 800;
	min-height: 50px;
	padding: 11px 28px;
	transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.contact-form-wrap input[type="submit"]:hover {
	background: var(--sunset-dark);
	border-color: var(--sunset-dark);
	transform: translateY(-1px);
}

.contact-form-wrap .wpcf7-form p {
	margin-bottom: 18px;
}

.contact-form-wrap .wpcf7-not-valid {
	border-color: #a52a1a !important;
	box-shadow: 0 0 0 3px rgba(165, 42, 26, 0.12);
}

.contact-form-wrap .wpcf7-not-valid-tip {
	color: #8f2417;
	font-size: 0.84rem;
	font-weight: 700;
	margin-top: 6px;
}

.contact-form-wrap .wpcf7-response-output {
	background: var(--white);
	border-radius: 10px;
	margin-inline: 0 !important;
	padding: 12px 16px !important;
}

.contact-aside {
	padding-top: 8px;
}

.contact-aside h2 {
	font-size: clamp(2rem, 4vw, 3.25rem);
	margin-bottom: 0;
}

.contact-aside ul {
	display: grid;
	gap: 18px;
	list-style: none;
	margin: 26px 0 0;
	padding: 0;
}

.contact-aside li {
	align-items: start;
	display: grid;
	gap: 13px;
	grid-template-columns: auto 1fr;
}

.contact-aside li > svg {
	fill: var(--sage-dark);
	height: 24px;
	width: 24px;
}

.contact-aside strong {
	display: block;
}

.contact-aside li span {
	color: var(--muted);
}

.contact-client-card {
	align-items: start;
	background: var(--river-deep);
	border-radius: var(--radius);
	color: var(--white);
	display: grid;
	gap: 16px;
	grid-template-columns: auto 1fr;
	margin-top: 34px;
	padding: 24px;
}

.contact-client-card .icon-disc {
	background: rgba(255, 255, 255, 0.1);
	color: var(--ochre);
	height: 46px;
	width: 46px;
}

.contact-client-card h3 {
	color: var(--white);
	font-size: 1.18rem;
	margin-bottom: 6px;
}

.contact-client-card p {
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.88rem;
	line-height: 1.5;
	margin-bottom: 12px;
}

.contact-client-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
}

.contact-client-links a {
	color: var(--white);
	font-size: 0.86rem;
	font-weight: 800;
}

.login-section {
	background:
		radial-gradient(circle at 92% 8%, rgba(232, 176, 74, 0.17), transparent 22%),
		linear-gradient(180deg, var(--cream), #f6ecdc);
	padding-top: clamp(48px, 5vw, 72px);
}

.login-intro {
	align-items: end;
	display: grid;
	gap: clamp(30px, 5vw, 72px);
	grid-template-columns: 1.2fr 0.8fr;
	margin-bottom: clamp(30px, 4vw, 48px);
}

.login-intro h1 {
	font-size: clamp(2.75rem, 5.5vw, 5rem);
	margin-bottom: 0;
	max-width: 820px;
}

.login-intro > p {
	color: var(--muted);
	font-size: 1.08rem;
	margin-bottom: 8px;
	max-width: 520px;
}

.login-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.login-card {
	background: rgba(255, 255, 255, 0.88);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	box-shadow: 0 18px 45px rgba(8, 56, 79, 0.08);
	display: flex;
	flex-direction: column;
	gap: 22px;
	overflow: hidden;
	padding: clamp(28px, 3.5vw, 42px);
	position: relative;
}

.login-card::before {
	background: var(--sunset);
	content: "";
	height: 6px;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.login-card--webmail::before {
	background: var(--ochre);
}

.login-card__top {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

.login-card--plesk .icon-disc {
	background: rgba(232, 93, 55, 0.13);
	color: var(--sunset-dark);
}

.login-card--webmail .icon-disc {
	background: rgba(232, 176, 74, 0.22);
	color: var(--river-deep);
}

.login-card__destination {
	align-items: center;
	background: var(--sand);
	border-radius: 999px;
	color: var(--sage-dark);
	display: inline-flex;
	font-size: 0.7rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	padding: 7px 11px;
	text-transform: uppercase;
}

.login-card__label {
	color: var(--river);
	font-size: 0.76rem;
	font-weight: 900;
	letter-spacing: 0.14em;
	margin-bottom: 9px;
	text-transform: uppercase;
}

.login-card h2 {
	font-size: clamp(2rem, 3.6vw, 3rem);
	margin-bottom: 12px;
}

.login-card > div > p:not(.login-card__label),
.login-card__access p {
	color: var(--muted);
}

.login-card__features {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.login-card__features li {
	align-items: center;
	display: flex;
	gap: 10px;
}

.login-card__features svg {
	fill: var(--sage-dark);
	flex: 0 0 auto;
	height: 20px;
	width: 20px;
}

.login-card__access {
	align-items: end;
	border-top: 1px solid var(--line);
	display: grid;
	gap: 18px;
	grid-template-columns: 1fr auto;
	margin-top: auto;
	padding-top: 22px;
}

.login-card__access p {
	font-size: 0.88rem;
	line-height: 1.45;
	margin: 0;
}

.login-card__access strong,
.login-card__access span {
	display: block;
}

.login-card__access strong {
	color: var(--ink);
}

.login-card__access .button {
	white-space: nowrap;
}

.login-security,
.login-help {
	align-items: center;
	border-radius: var(--radius);
	display: flex;
	gap: 18px;
	padding: 18px 22px;
}

.login-security {
	background: var(--river-deep);
	color: var(--white);
	margin-top: 24px;
}

.login-security .icon-disc {
	background: rgba(255, 255, 255, 0.1);
	color: var(--ochre);
}

.login-security p,
.login-help p {
	margin: 0;
}

.login-security p {
	color: rgba(255, 255, 255, 0.74);
}

.login-security strong {
	color: var(--white);
}

.login-help {
	background: rgba(255, 255, 255, 0.68);
	border: 1px solid var(--line);
	margin-top: 14px;
}

.content-shell {
	max-width: 880px;
}

.content-shell > * {
	max-width: 100%;
}

.entry-card {
	border-bottom: 1px solid var(--line);
	margin-bottom: 30px;
	padding-bottom: 30px;
}

.not-found {
	align-items: center;
	display: flex;
	min-height: 70vh;
	padding-block: 90px;
}

.not-found__inner {
	max-width: 760px;
}

.not-found__code {
	color: var(--ochre);
	font-size: clamp(7rem, 20vw, 15rem);
	font-weight: 900;
	letter-spacing: -0.1em;
	line-height: 0.72;
	margin-bottom: 50px;
}

.not-found h1 {
	font-size: clamp(3rem, 7vw, 5.8rem);
}

/* Footer */
.site-footer {
	background: var(--river-deep);
	color: var(--white);
	position: relative;
}

.site-footer__ridge {
	color: var(--river-deep);
	height: 66px;
	left: 0;
	overflow: hidden;
	position: absolute;
	top: -64px;
	width: 100%;
}

.site-footer__ridge svg {
	height: 100%;
	width: 100%;
}

.site-footer__grid {
	align-items: start;
	display: grid;
	gap: clamp(28px, 3.5vw, 48px);
	grid-template-columns: minmax(280px, 1.45fr) 0.6fr 0.82fr minmax(245px, 1fr);
	padding-block: 52px 42px;
}

.site-footer h2 {
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	margin-bottom: 16px;
	text-transform: uppercase;
}

.site-footer__logo {
	display: inline-block;
	margin-bottom: 17px;
	max-width: 100%;
	text-decoration: none;
}

.site-footer__logo img {
	background: var(--cream);
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-radius: 15px;
	box-shadow: 0 14px 34px rgba(0, 0, 0, 0.12);
	height: auto;
	padding: 11px 15px;
	width: min(100%, 340px);
}

.site-footer__brand p,
.site-footer__local p {
	color: rgba(255, 255, 255, 0.67);
	font-size: 0.9rem;
	line-height: 1.55;
	margin: 0;
}

.site-footer__brand p {
	max-width: 350px;
}

.footer-links {
	display: grid;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-links a {
	color: rgba(255, 255, 255, 0.76);
	font-size: 0.9rem;
	text-decoration: none;
}

.footer-links a:hover {
	color: var(--ochre);
}

.site-footer__local {
	align-items: start;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 18px;
	display: flex;
	gap: 14px;
	padding: 18px;
}

.site-footer__local .icon-disc {
	background: rgba(255, 255, 255, 0.1);
	color: var(--ochre);
	height: 46px;
	width: 46px;
}

.site-footer__local strong {
	color: var(--white);
}

.site-footer__legal {
	border-top: 1px solid rgba(255, 255, 255, 0.11);
}

.site-footer__legal .shell {
	align-items: center;
	display: flex;
	justify-content: space-between;
	min-height: 62px;
}

.site-footer__legal p,
.site-footer__legal a {
	color: rgba(255, 255, 255, 0.58);
	font-size: 0.76rem;
	margin: 0;
	text-decoration: none;
}

/* Reveal behavior is enhancement-only. */
.js .reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 560ms ease, transform 560ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.js .reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 1000px) {
	.site-header__inner {
		min-height: 76px;
	}

	.nav-toggle {
		display: flex;
	}

	.site-nav {
		align-items: stretch;
		background: var(--cream);
		border-top: 1px solid var(--line);
		box-shadow: 0 25px 50px rgba(8, 56, 79, 0.12);
		display: none;
		flex-direction: column;
		gap: 24px;
		left: 0;
		padding: 32px 20px 38px;
		position: absolute;
		right: 0;
		top: 100%;
	}

	.site-nav.is-open {
		display: flex;
	}

	.site-nav__list {
		align-items: stretch;
		flex-direction: column;
		gap: 0;
	}

	.site-nav__list a {
		border-bottom: 1px solid var(--line);
		display: block;
		font-size: 1rem;
		padding: 14px 2px;
	}

	.site-nav__list a::after {
		display: none;
	}

	.site-nav__support {
		align-self: flex-start;
	}

	.nav-open .nav-toggle__icon span:nth-child(1) {
		transform: translateY(6px) rotate(45deg);
	}

	.nav-open .nav-toggle__icon span:nth-child(2) {
		opacity: 0;
	}

	.nav-open .nav-toggle__icon span:nth-child(3) {
		transform: translateY(-6px) rotate(-45deg);
	}

	.hero__grid,
	.page-hero__grid {
		grid-template-columns: 1fr;
	}

	.hero__art-card {
		margin: 0 auto;
		max-width: 390px;
	}

	.hero__art {
		margin-top: 15px;
	}

	.page-hero__mark {
		margin: 0 auto;
		max-width: 330px;
	}

	.page-hero--company .page-hero__grid,
	.page-hero--support .page-hero__grid,
	.page-hero--contact .page-hero__grid {
		grid-template-columns: 1fr 0.8fr;
	}

	.plan-grid {
		grid-template-columns: 1fr;
	}

	.plan-card--featured {
		transform: none;
	}

	.site-footer__grid {
		grid-template-columns: 1.4fr 0.7fr 0.9fr;
	}

	.site-footer__local {
		grid-column: 1 / -1;
	}
}

@media (max-width: 760px) {
	:root {
		--shell: min(100% - 30px, 1180px);
		--section-space: 56px;
	}

	body {
		font-size: 16px;
	}

	h1 {
		font-size: clamp(3.2rem, 15vw, 5.2rem);
	}

	h2 {
		font-size: clamp(2.25rem, 11vw, 3.5rem);
	}

	.hero {
		min-height: auto;
		padding: 48px 0 112px;
	}

	.hero__status {
		bottom: -38px;
		left: 10px;
		right: 10px;
	}

	.trust-strip__grid {
		grid-template-columns: 1fr;
		padding-block: 10px;
	}

	.trust-strip {
		padding-bottom: 18px;
	}

	.trust-strip__grid > div {
		border-bottom: 1px solid rgba(255, 255, 255, 0.13);
		border-right: 0;
	}

	.intro-grid,
	.login-intro,
	.section-heading,
	.local-story__grid,
	.final-cta__inner,
	.split-heading,
	.company-story__grid,
	.support-tips__grid,
	.contact-grid {
		grid-template-columns: 1fr;
	}

	.intro-grid__copy {
		padding-top: 0;
	}

	.feature-grid,
	.detail-grid,
	.values-grid,
	.login-grid {
		grid-template-columns: 1fr;
	}

	.feature-card,
	.feature-card:nth-child(n),
	.values-grid article,
	.values-grid article:first-child,
	.values-grid article:last-child {
		border-radius: 0;
	}

	.feature-card:first-child,
	.values-grid article:first-child {
		border-radius: var(--radius) var(--radius) 0 0;
	}

	.feature-card:last-child,
	.values-grid article:last-child {
		border-radius: 0 0 var(--radius) var(--radius);
	}

	.local-story__art {
		height: 320px;
	}

	.page-hero {
		padding-block: 54px 82px;
	}

	.page-hero h1 {
		font-size: clamp(3rem, 14vw, 5rem);
	}

	.page-hero--company .page-hero__grid,
	.page-hero--support .page-hero__grid,
	.page-hero--contact .page-hero__grid {
		grid-template-columns: 1fr;
	}

	.page-hero + .section,
	.trust-strip + .section,
	.section + .section {
		border-radius: 28px 28px 0 0;
		margin-top: -18px;
	}

	.portal-card {
		gap: 16px;
		grid-template-columns: auto 1fr;
		padding: 22px 18px;
	}

	.portal-card > svg {
		display: none;
	}

	.site-footer__grid {
		grid-template-columns: 1fr 1fr;
		padding-block: 50px 38px;
	}

	.site-footer__brand,
	.site-footer__local {
		grid-column: 1 / -1;
	}

	.site-footer__legal .shell {
		align-items: flex-start;
		flex-direction: column;
		justify-content: center;
		padding-block: 16px;
	}
}

@media (max-width: 480px) {
	.site-brand {
		width: 238px;
	}

	.nav-toggle__label {
		display: none;
	}

	.button-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.button-row .button {
		width: 100%;
	}

	.hero__art-card {
		padding: 14px;
	}

	.local-story__art {
		height: 275px;
	}

	.site-footer__grid {
		grid-template-columns: 1fr;
	}

	.site-footer__brand,
	.site-footer__local {
		grid-column: auto;
	}

	.login-help {
		align-items: flex-start;
	}

	.login-security {
		align-items: flex-start;
	}

	.login-card__access {
		align-items: stretch;
		grid-template-columns: 1fr;
	}

	.login-card__access .button {
		width: 100%;
	}
}

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

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.js .reveal {
		opacity: 1;
		transform: none;
	}
}
