/*
Theme Name: CCTC
Theme URI:
Author:
Author URI:
Description: Child theme of Genesis Block Theme for CCTC.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: genesis-block-theme
Text Domain: cctc
*/

/* ==============================================================
   Text Selection
   ============================================================== */

::selection {
	background: rgba(55, 53, 126, 0.2);
	color: var(--cctc-dark);
}

/* ==============================================================
   CCTC Design Tokens
   ============================================================== */
:root {
	--cctc-purple:     #37357E;
	--cctc-dark:       #303030;
	--cctc-border:     #E8E7E7;
	--cctc-white:      #FFFFFF;
	--cctc-overlay:    rgba(0, 0, 0, 0.35);
	--cctc-header-h:   9.5rem; /* 152px */
	--font-main:       'IBM Plex Sans', sans-serif;

	/* Fluid type scale */
	--text-sm:   clamp(1.3rem, 1.2rem + 0.5vw, 1.5rem);       /* ~21–24px */
	--text-base: clamp(1.4rem, 1.25rem + 0.7vw, 1.625rem);    /* ~22–26px */
	--text-md:   clamp(1.5rem, 1.35rem + 0.75vw, 1.875rem);   /* ~24–30px */
	--text-lg:   clamp(1.7rem, 1.5rem + 1vw, 2.4rem);         /* ~27–38px */
	--text-xl:   clamp(2.625rem, 1.875rem + 3.75vw, 4.5rem);  /* ~42–72px */

	/* Fluid space scale */
	--space-xs:  clamp(1.125rem, 0.75rem + 1.5vw, 1.5rem);
	--space-sm:  clamp(1.5rem, 1.125rem + 1.875vw, 2.5rem);
	--space-md:  clamp(2.25rem, 1.5rem + 3.75vw, 3.75rem);
	--space-lg:  clamp(3rem, 1.875rem + 5.625vw, 6rem);
	--space-xl:  clamp(4.5rem, 3rem + 7.5vw, 8.5rem);

	/* Fluid horizontal page padding */
	--page-pad:  clamp(1.5rem, 3.75vw, 3.375rem);
}

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

body {
	margin: 0;
	font-family: var(--font-main);
	color: var(--cctc-dark);
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	text-decoration: none;
}

/* ==============================================================
   SITE HEADER
   ============================================================== */
.cctc-site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--cctc-white);
	border-bottom: 1.5px solid var(--cctc-border);
	height: var(--cctc-header-h);
}

.cctc-header-inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	grid-template-rows: var(--cctc-header-h);
	align-items: center;
	max-width: 1920px;
	margin: 0 auto;
	padding: 0 var(--page-pad);
}

.cctc-logo {
	display: flex;
	align-items: center;
}

.cctc-logo a {
	display: inline-flex;
	align-items: center;
}

.cctc-logo img {
	height: clamp(3.75rem, 5.5vw, 5rem);
	width: auto;
}

.cctc-primary-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: -5px;
}

.cctc-nav-list {
	display: flex;
	align-items: center;
	gap: clamp(2.25rem, 5.5vw, 7rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

.cctc-nav-list > li > a {
	display: flex;
	align-items: center;
	font-family: var(--font-main);
	font-weight: 500;
	font-size: var(--text-md);
	font-style: normal;
	line-height: 1.04;
	color: var(--cctc-dark);
	white-space: nowrap;
	text-decoration: none;
}

.cctc-nav-list > li > a:hover {
	color: var(--cctc-purple);
}

.cctc-nav-list > li.menu-item-has-children > a {
	gap: 0.4375rem;
}

.cctc-nav-list > li.menu-item-has-children > a::after {
	content: '';
	display: inline-block;
	width: 1rem;
	height: 0.5rem;
	background-image: url('images/icons/downcarrot.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
}

.cctc-nav-list .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 16rem;
	background: var(--cctc-white);
	border: 1.5px solid var(--cctc-border);
	border-radius: 0.75rem;
	list-style: none;
	margin: 0;
	padding: 0.75rem 0;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.cctc-nav-list li {
	position: relative;
}

.cctc-nav-list li:hover > .sub-menu {
	display: block;
}

.cctc-nav-list .sub-menu a {
	display: block;
	padding: 0.875rem 1.5rem;
	font-family: var(--font-main);
	font-size: var(--text-md);
	font-weight: 500;
	font-style: normal;
	line-height: 1.04;
	color: var(--cctc-dark);
	text-decoration: none;
	white-space: nowrap;
}

.cctc-nav-list .sub-menu a:hover {
	color: var(--cctc-purple);
	background: #f5f5f5;
}

.cctc-header-right {
	display: flex;
	align-items: center;
	justify-self: end;
}

.cctc-header-actions-list {
	display: flex;
	align-items: center;
	gap: clamp(1.125rem, 2.5vw, 2.625rem);
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Billpay — first item */
.cctc-header-actions-list li:first-child > a {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-family: var(--font-main);
	font-weight: 500;
	font-size: var(--text-md);
	color: var(--cctc-dark);
	text-decoration: none;
	white-space: nowrap;
}

.cctc-billpay-icon {
	width: 2rem;
	height: 2rem;
	flex-shrink: 0;
}

.cctc-billpay-icon--white {
	display: none;
}

.cctc-getintouch-icon {
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
}

.cctc-header-actions-list li:first-child > a::after {
	content: '';
	display: inline-block;
	width: 1.5625rem;
	height: 1.25rem;
	background-image: url('images/icons/billpay.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	flex-shrink: 0;
}

.cctc-header-actions-list li:first-child > a:hover {
	color: var(--cctc-purple);
}

/* Get in Touch — last item: purple button */
.cctc-header-actions-list li:last-child > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	background: var(--cctc-purple);
	color: var(--cctc-white);
	font-family: var(--font-main);
	font-weight: 400;
	font-size: var(--text-md);
	font-style: normal;
	letter-spacing: -0.039em;
	line-height: 1.04;
	padding: 0.625rem 0rem 0.625rem 1.5rem;
	height: clamp(3.375rem, 4.5vw, 4.25rem);
	min-width: clamp(11rem, 14vw, 14.5rem);
	border-radius: 0.625rem;
	text-decoration: none;
	white-space: nowrap;
	transition: 0.2s ease;
}

.cctc-header-actions-list li:last-child > a::after {
	content: '';
	display: block;
	align-self: center;
	width: 1.125rem;
	height: 1.125rem;
	background-image: url('images/arrow-icon.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center center;
	flex-shrink: 0;
}

.cctc-header-actions-list li:last-child > a:hover {
	background: #2a2862;
	color: var(--cctc-white);
}

/* --- CTA Button (hero) --- */
.cctc-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--cctc-purple);
	color: var(--cctc-white);
	padding: 0.625rem 1.25rem;
	height: clamp(3.375rem, 4.5vw, 4.25rem);
	min-width: clamp(11rem, 14vw, 14.5rem);
	border-radius: 0.625rem;
	text-decoration: none;
	transition: 0.2s ease;
}

.cctc-btn-primary:hover {
	background: #2a2862;
	color: var(--cctc-white);
}

.cctc-btn-primary .btn-inner {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.cctc-btn-primary .btn-inner span {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: var(--text-md);
	letter-spacing: -0.039em;
	line-height: 1.04;
	color: var(--cctc-white);
	white-space: nowrap;
	flex: 1;
}

.cctc-btn-primary .btn-inner img {
	width: 1.125rem;
	height: 1.125rem;
	flex-shrink: 0;
	display: block;
	align-self: center;
}

/* --- Mobile Toggle (hidden on desktop) --- */
.cctc-mobile-toggle {
	display: none;
	flex-direction: column;
	gap: 0.3125rem;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.25rem;
	grid-column: 3;
	justify-self: end;
	align-self: center;
}

.cctc-mobile-toggle span {
	display: block;
	width: 1.625rem;
	height: 2px;
	background: var(--cctc-dark);
	border-radius: 2px;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

/* ==============================================================
   HERO SECTION
   ============================================================== */
.cctc-hero {
	position: relative;
	min-height: calc(95svh - var(--cctc-header-h));
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cctc-hero-slides {
	position: absolute;
	inset: 0;
}

.cctc-hero-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 1.5s ease-in-out;
}

.cctc-hero-slide.is-active {
	opacity: 1;
}

.cctc-hero-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.cctc-hero-overlay {
	position: absolute;
	inset: 0;
	background: var(--cctc-overlay);
}

.cctc-hero-content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(2.25rem, 4.5vw, 4rem);
	padding: 0 var(--page-pad);
}

.cctc-hero-logo {
	width: clamp(14rem, 28vw, 26rem);
}

.cctc-hero-logo img {
	width: 100%;
	height: auto;
	filter: drop-shadow(0 4px 20px rgba(0, 0, 0, 0.1));
}

.cctc-btn-hero {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

/* ==============================================================
   OUR SERVICES SECTION
   ============================================================== */
.cctc-services {
	padding: var(--space-xl) var(--page-pad);
	background: var(--cctc-white);
}

.cctc-services-inner {
	max-width: 120rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
}

.cctc-services-heading {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: var(--text-xl);
	line-height: 1.18;
	color: var(--cctc-dark);
	text-align: center;
	margin: 0;
}

.cctc-services-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1.25rem, 2.1vw, 2.5rem);
}

.cctc-service-card {
	position: relative;
	background: var(--cctc-border);
	border-radius: 1.1875rem;
	padding: clamp(2rem, 2.5vw, 3rem);
	min-height: clamp(16rem, 20vw, 24rem);
	display: flex;
	flex-direction: column;
}

.card-icon {
	margin-bottom: clamp(1.5rem, 2.625vw, 2.4rem);
}

.card-icon img {
	width: clamp(2.5rem, 2.5vw, 3rem);
	height: clamp(2.5rem, 2.5vw, 3rem);
	object-fit: contain;
}

.card-title {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: var(--text-lg);
	line-height: 1.22;
	color: var(--cctc-dark);
	margin: 0 0 clamp(0.75rem, 1.5vw, 1.4rem);
}

.card-desc {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: var(--text-base);
	line-height: 1.4;
	color: var(--cctc-dark);
	margin: 0;
	padding-bottom: clamp(3rem, 3.5vw, 4.5rem);
}

.card-arrow {
	position: absolute;
	bottom: clamp(1.5rem, 2vw, 2.5rem);
	right: clamp(1.5rem, 2vw, 2.5rem);
	width: clamp(3rem, 3vw, 3.5rem);
	height: clamp(3rem, 3vw, 3.5rem);
	background: var(--cctc-purple);
	border-radius: 0.6875rem;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s ease;
	flex-shrink: 0;
}

.card-arrow img {
	width: clamp(1rem, 1vw, 1.1875rem);
	height: clamp(1rem, 1vw, 1.1875rem);
}

.card-arrow:hover {
	background: #2a2862;
}

/* ==============================================================
   ABOUT / MISSION SECTION
   ============================================================== */
.cctc-about {
	padding: var(--space-md) var(--page-pad) calc( var(--space-xl) * 1.75 );
	background: var(--cctc-white);
}

.cctc-about-inner {
	max-width: 120rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(1.25rem, 1.67vw, 2rem); /* ~32px at 1920px */
}

.cctc-about-top {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.25rem, 2.1vw, 2rem);
	align-items: stretch;
}

/* --- Left: Photo --- */
.cctc-about-image {
	border-radius: 2.125rem;
	overflow: hidden;
	min-height: clamp(20rem, 32.5vw, 39rem); /* ~624px at 1920px */
}

.cctc-about-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* --- Right: Content card --- */
.cctc-about-content {
	border: 2px solid var(--cctc-border);
	border-radius: 2.125rem;
	padding: clamp(3rem, 8vw, 10rem) clamp(3rem, 9vw, 12rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: clamp(1.5rem, 2vw, 2.375rem);
}

.cctc-about-heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2.25rem, 3vw, 3.25rem);
	line-height: 1.18;
	color: var(--cctc-dark);
	margin: 0;
}

.cctc-about-body {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: clamp(1.3rem, 1.35vw, 1.4rem);
	line-height: 1.4;
	color: var(--cctc-dark);
	opacity: 0.7;
	margin: 0;
}

.cctc-about-link {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	text-decoration: none;
	color: var(--cctc-dark);
}

.cctc-about-link img {
	width: 2.5rem;
	height: 2.5rem;
	flex-shrink: 0;
	display: block;
}

.cctc-about-link span {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(1.3rem, 1.6vw, 1.625rem);
	color: var(--cctc-dark);
}

.cctc-about-link:hover span {
	color: var(--cctc-purple);
}

/* Voice page: adjust vertical spacing */
.page-template-page-voice .cctc-about,
.page-template-page-voip .cctc-about {
	padding-top: var(--space-xl);
	padding-bottom: var(--space-md);
}

/* Voice page: constrain width and reduce right padding so heading has more room */
.page-template-page-voice .cctc-about-inner,
.page-template-page-voip .cctc-about-inner {
	max-width: 96rem;
}
.page-template-page-voice .cctc-about-content,
.page-template-page-voip .cctc-about-content {
	padding: clamp(2rem, 4vw, 4rem) clamp(3rem, 6vw, 7rem);
}

/* --- CTA Bar --- */
.cctc-cta-bar {
	background: var(--cctc-purple);
	border-radius: 1.25rem;
	padding: clamp(1.5rem, 2.5vw, 2.5rem) clamp(2rem, 3.5vw, 3.5rem);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
}

.cctc-cta-bar__text {
	font-family: var(--font-main);
	font-size: var(--text-md);
	color: var(--cctc-white);
	letter-spacing: -0.03em;
	line-height: 1.2;
	margin: 0;
}

.cctc-cta-bar__text strong {
	font-weight: 600;
}

.cctc-cta-bar__phone {
	display: flex;
	align-items: center;
	gap: clamp(0.75rem, 1vw, 1.25rem);
	font-family: var(--font-main);
	font-weight: 500;
	font-size: var(--text-md);
	color: var(--cctc-white);
	letter-spacing: -0.03em;
	white-space: nowrap;
	text-decoration: none;
}

.cctc-cta-bar__phone:hover,
.cctc-cta-bar__phone:visited,
.cctc-cta-bar__phone:active {
	color: var(--cctc-white) !important;
	opacity: 0.85;
}

.cctc-cta-bar__phone img {
	width: clamp(1.25rem, 1.27vw, 1.52rem);
	height: auto;
	flex-shrink: 0;
}

/* ==============================================================
   HOME PAGE MAIN CONTENT
   ============================================================== */
.cctc-home-main {
	width: 100%;
}

/* ==============================================================
   SITE FOOTER
   ============================================================== */
.cctc-site-footer {
	background: var(--cctc-border); /* #E8E7E7 light grey */
}

.cctc-footer-inner {
	max-width: 120rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: auto 1fr;
	grid-template-rows: auto auto auto;
	grid-template-areas:
		"logo    columns"
		"legal   columns"
		"social  columns";
	column-gap: clamp(8rem, 18vw, 28rem);
	padding: clamp(5rem, 8vw, 9rem) var(--page-pad);
}

/* --- Logo --- */
.cctc-footer-logo img {
	width: clamp(12rem, 23.6vw, 28.375rem); /* ~454px at 1920px */
	height: auto;
	display: block;
}

/* --- Columns --- */
.cctc-footer-columns {
	grid-area: columns;
	display: flex;
	gap: clamp(3rem, 6vw, 8rem);
	align-items: flex-start;
}

.cctc-footer-col {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	min-width: 10rem;
}

.cctc-footer-col-heading {
	font-family: var(--font-main);
	font-weight: 700;
	font-size: var(--text-sm);
	color: var(--cctc-purple);
	text-transform: uppercase;
	letter-spacing: 0.4px;
	margin: 0 0 0.25rem;
}

/* --- Contact groups --- */
.cctc-footer-contact-group {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin-bottom: 0.75rem;
}

.cctc-footer-contact-group:last-child {
	margin-bottom: 0;
}

.cctc-footer-contact-label {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: var(--text-sm);
	color: #18193f;
	margin: 0;
}

.cctc-footer-contact-text {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: var(--text-sm);
	line-height: 1.4;
	color: #18193f;
	margin: 0;
}

/* --- Nav lists (Services / Helpful Links) --- */
.cctc-footer-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.cctc-footer-nav-list a {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: var(--text-sm);
	color: #18193f;
	text-decoration: none;
	line-height: 1.5;
}

.cctc-footer-nav-list a:hover {
	color: var(--cctc-purple);
}

/* --- Legal nav (below logo) --- */
.cctc-footer-logo {
	grid-area: logo;
}

.cctc-footer-legal-wrap {
	grid-area: legal;
	padding-top: 1.25rem;
}

.cctc-footer-legal-nav {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: left;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
}

.cctc-footer-legal-nav li + li::before {
	content: '|';
	padding: 0 0.6rem;
	font-family: var(--font-main);
	font-size: var(--text-sm);
	color: #18193f;
	opacity: 0.35;
}

.cctc-footer-legal-nav a {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: var(--text-sm);
	color: #18193f;
	text-decoration: none;
	line-height: 1.5;
	opacity: 0.7;
}

.cctc-footer-legal-nav a:hover {
	color: var(--cctc-purple);
	opacity: 1;
}

.cctc-footer-legal-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
}

.cctc-footer-credit__link {
	display: block;
	font-family: var(--font-main);
	font-weight: 400;
	font-size: var(--text-sm);
	color: #18193f;
	text-decoration: none;
	line-height: 1.5;
	opacity: 0.7;
}

.cctc-footer-credit__link:hover {
	color: var(--cctc-purple);
	opacity: 1;
}

/* --- Social links --- */
.cctc-footer-social {
	grid-area: social;
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-top: -2rem;
}

.cctc-footer-social__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	opacity: 0.7;
	transition: opacity 0.2s;
}

.cctc-footer-social__link:hover {
	opacity: 1;
}

.cctc-footer-social__link img {
	width: 100%;
	height: 100%;
	display: block;
}

/* --- Sub-footer (copyright) --- */
.cctc-footer-sub {
	border-top: 1px solid #d0cfcf;
}

.cctc-footer-sub-inner {
	max-width: 120rem;
	margin: 0 auto;
	padding: 1rem var(--page-pad);
}

.cctc-footer-sub p {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: var(--text-sm);
	color: #18193f;
	opacity: 0.6;
	margin: 0;
}

/* --- Mobile Nav Drawer (hidden on desktop) --- */
.cctc-mobile-nav {
	display: none;
}

/* ==============================================================
   RESPONSIVE
   ============================================================== */
@media ( max-width: 1024px ) and ( min-width: 713px ) {
	:root {
		--cctc-header-h: 7rem;
	}

	.cctc-logo img {
		height: clamp(2.75rem, 4vw, 3.5rem);
	}

	.cctc-nav-list {
		gap: clamp(1.25rem, 2.5vw, 2.5rem);
	}

	.cctc-nav-list > li > a,
	.cctc-nav-list .sub-menu a {
		font-size: 1.35rem;
	}

	.cctc-header-actions-list li:first-child > a {
		font-size: 1.35rem;
		margin-top: 4px;
	}

	.cctc-header-actions-list li:last-child > a {
		font-size: 1.35rem;
		height: 2.75rem;
		min-width: 9rem;
	}
}

@media ( max-width: 712px ) {
	:root {
		--cctc-header-h: 4.5rem; /* 72px on mobile */
	}

	.cctc-primary-nav,
	.cctc-header-right {
		display: none;
	}

	/* Mobile drawer */
	.cctc-mobile-nav:not([hidden]) {
		display: block;
		position: absolute;
		top: var(--cctc-header-h);
		left: 0;
		right: 0;
		background: var(--cctc-white);
		border-bottom: 1.5px solid var(--cctc-border);
		padding: var(--space-sm) var(--page-pad);
		box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
		z-index: 999;
	}

	.cctc-mobile-nav-list {
		display: flex;
		flex-direction: column;
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.cctc-mobile-nav-list li a {
		display: block;
		padding: 0.875rem 0;
		font-family: var(--font-main);
		font-weight: 500;
		font-size: var(--text-md);
		color: var(--cctc-dark);
		text-decoration: none;
		border-bottom: 1px solid var(--cctc-border);
	}

	.cctc-mobile-nav-list > li:last-child > a {
		border-bottom: none;
	}

	.cctc-mobile-nav-list li a:hover {
		color: var(--cctc-purple);
	}

	.cctc-mobile-nav-list .sub-menu {
		list-style: none;
		margin: 0;
		padding: 0 0 0 1rem;
	}

	.cctc-mobile-nav-list .sub-menu li a {
		font-size: var(--text-sm);
		color: #666;
	}

	.cctc-mobile-toggle {
		display: flex;
	}

	.cctc-services-grid {
		grid-template-columns: 1fr;
	}

	.cctc-about-top {
		grid-template-columns: 1fr;
	}

	.cctc-about-image {
		min-height: 18rem;
	}

	.cctc-cta-bar {
		height: auto;
		padding: 1.25rem var(--page-pad);
		gap: 0.875rem;
	}

	.cctc-cta-bar__text,
	.cctc-cta-bar__phone {
		font-size: 1.25rem;
	}

	.cctc-footer-inner {
		display: flex;
		flex-direction: column;
		gap: var(--space-md);
	}

	.cctc-footer-logo {
		order: 1;
	}

	.cctc-footer-social {
		order: 2;
		padding-top: 1.5rem;
	}

	.cctc-footer-columns {
		order: 3;
		flex-wrap: wrap;
		gap: var(--space-sm);
	}

	.cctc-footer-legal-wrap {
		order: 4;
		align-self: flex-start;
		text-align: left;
	}

	.cctc-footer-legal-wrap .cctc-footer-legal-nav {
		justify-content: flex-start;
	}

	.cctc-footer-col {
		min-width: calc( 50% - var(--space-sm) );
	}
}

@media ( max-width: 1024px ) {
	.cctc-hero {
		min-height: 56.25vw; /* 16:9 landscape ratio */
	}
}

@media ( max-width: 819px ) and ( min-width: 769px ) {
	.cctc-services-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media ( max-width: 768px ) and ( min-width: 712px ) {
	.cctc-services-grid {
		grid-template-columns: 1fr;
	}
}

@media ( max-width: 430px ) {
	.cctc-cta-bar {
		align-items: center;
		text-align: center;
		margin-top: 4rem;
	}
}

@media ( max-width: 430px ) {
	/* Gauge image – smaller on tiny screens */
	.plan-gauge-wrap {
		width: 50%;
	}

	/* Voice card padding */
	.cctc-voice-card {
		padding: 1.5rem;
	}

	.cctc-faq {
		padding-top: 1.5rem !important;
	}
}

/* ==============================================================
   SERVICE PAGES – Dark Header Override
   ============================================================== */
.page-template-page-service .cctc-site-header,
.page-template-page-voice .cctc-site-header,
.page-template-page-about .cctc-site-header {
	background: var(--cctc-dark);
	border-bottom-color: rgba(255, 255, 255, 0.1);
}

.page-template-page-service .cctc-logo img,
.page-template-page-voice .cctc-logo img,
.page-template-page-about .cctc-logo img,
.error404 .cctc-logo img {
	filter: brightness(0) invert(1);
}

.page-template-page-service .cctc-nav-list > li > a,
.page-template-page-voice .cctc-nav-list > li > a,
.page-template-page-about .cctc-nav-list > li > a {
	color: var(--cctc-white);
}

.page-template-page-service .cctc-nav-list > li > a:hover,
.page-template-page-voice .cctc-nav-list > li > a:hover,
.page-template-page-about .cctc-nav-list > li > a:hover {
	color: rgba(255, 255, 255, 0.65);
}

.page-template-page-service .cctc-nav-list > li.menu-item-has-children > a::after,
.page-template-page-voice .cctc-nav-list > li.menu-item-has-children > a::after,
.page-template-page-about .cctc-nav-list > li.menu-item-has-children > a::after {
	filter: brightness(0) invert(1);
}

.page-template-page-service .cctc-header-actions-list li:first-child > a,
.page-template-page-voice .cctc-header-actions-list li:first-child > a,
.page-template-page-about .cctc-header-actions-list li:first-child > a {
	color: var(--cctc-white);
}

.page-template-page-service .cctc-billpay-icon--dark,
.page-template-page-voice .cctc-billpay-icon--dark,
.page-template-page-about .cctc-billpay-icon--dark {
	display: none;
}

.page-template-page-service .cctc-billpay-icon--white,
.page-template-page-voice .cctc-billpay-icon--white,
.page-template-page-about .cctc-billpay-icon--white {
	display: block;
}

.page-template-page-service .cctc-header-actions-list li:first-child > a:hover,
.page-template-page-voice .cctc-header-actions-list li:first-child > a:hover,
.page-template-page-about .cctc-header-actions-list li:first-child > a:hover {
	color: rgba(255, 255, 255, 0.65);
}

.page-template-page-service .cctc-header-actions-list li:first-child > a::after,
.page-template-page-voice .cctc-header-actions-list li:first-child > a::after,
.page-template-page-about .cctc-header-actions-list li:first-child > a::after {
	filter: brightness(0) invert(1);
}

.page-template-page-service .cctc-mobile-toggle span,
.page-template-page-voice .cctc-mobile-toggle span,
.page-template-page-about .cctc-mobile-toggle span {
	background: var(--cctc-white);
}

/* ==============================================================
   SERVICE PAGE – Layout
   ============================================================== */
.cctc-service-main {
	background: var(--cctc-dark);
}

.cctc-service-hero {
	padding: var(--space-xl) var(--page-pad) calc( var(--space-xl) * 1.5 );
}

.cctc-service-inner {
	max-width: 120rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-lg);
}

/* --- Hero top --- */
.cctc-service-hero-top {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(1.75rem, 2.5vw, 3rem);
	text-align: center;
	width: 100%;
}

.cctc-service-h1 {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2.5rem, 5.5vw, 6.5rem);
	line-height: 1.09;
	color: var(--cctc-white);
	margin: 0;
	max-width: 80rem;
}

.cctc-service-sub {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: clamp(1.125rem, 1.1458vw, 1.375rem); /* 22px at 1920px */
	line-height: 1.6;
	color: var(--cctc-white);
	margin: 0;
	max-width: 80rem;
	padding-bottom: 2rem;
}

/* --- Address form --- */
.cctc-service-form {
	display: flex;
	align-items: center;
	background: var(--cctc-white);
	border-radius: 0.75rem;
	padding: 0.625rem;
	width: min(42rem, 100%);
	gap: 0.5rem;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.09);
}

.cctc-service-form__input {
	flex: 1 !important;
	min-width: 0 !important;
	width: auto !important;
	border: none !important;
	outline: none !important;
	font-family: var(--font-main) !important;
	font-size: 1.25rem !important;
	color: var(--cctc-dark) !important;
	background: transparent !important;
	padding: 0 0.5rem !important;
	height: 40px !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.cctc-service-form__input::placeholder {
	color: #787878;
}

.cctc-service-form__btn {
	flex-shrink: 0;
	background: var(--cctc-purple);
	color: var(--cctc-white);
	border: none;
	border-radius: 0.375rem;
	height: 40px;
	min-width: 55px;
	padding: 0 1.25rem;
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.25rem;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: 0 1px 3px rgba(0, 46, 53, 0.16);
	transition: background 0.2s;
}

.cctc-service-form__btn:hover {
	background: #2a2862;
}

.cctc-service-form__btn .btn-inner {
	display: flex;
	align-items: center;
	gap: 0.625rem;
}

.cctc-service-form__btn .btn-inner img {
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;
	display: block;
	position: relative;
	top: 1px;
}

/* --- Plan category tabs --- */
.cctc-service-tabs {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.cctc-service-tabs__list {
	display: flex;
	width: 100%;
}

.cctc-service-tab {
	flex: 1;
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(0.875rem, 1.35vw, 1.625rem);
	color: var(--cctc-white);
	text-align: center;
	padding: 0 0.5rem 1.25rem;
	opacity: 0.35;
	transition: opacity 0.2s;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cctc-service-tab.is-active {
	opacity: 1;
}

.cctc-service-tab:hover:not(.is-active):not(.is-unavailable) {
	opacity: 0.6;
}

.cctc-service-tab.is-unavailable {
	opacity: 0.2;
	cursor: not-allowed;
}

.cctc-service-tabs__track {
	position: relative;
	height: 4px;
	background: rgba(255, 255, 255, 0.12);
	border-radius: 20px;
	width: 100%;
}

.cctc-service-tabs__bar {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 0;
	background: var(--cctc-white);
	border-radius: 20px;
	transition: left 0.25s ease, width 0.25s ease;
}

/* --- Plan cards grid --- */
.cctc-plans-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 28rem));
	justify-content: center;
	gap: clamp(1rem, 1.67vw, 2rem);
	width: 100%;
}

/* --- Individual plan card --- */
.cctc-plan-card {
	background: var(--cctc-white);
	border-radius: 2.4375rem; /* 39px */
	padding: clamp(1.5rem, 2vw, 2.5rem) clamp(1rem, 1.25vw, 1.5rem);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(0.75rem, 1vw, 1.25rem);
}

/* --- Gauge --- */
.plan-gauge-wrap {
	position: relative;
	width: 80%;
	aspect-ratio: 1 / 0.55;
	overflow: hidden;
}

.plan-gauge-img {
	display: block;
	width: 100%;
	height: auto;
}

.plan-gauge-center {
	position: absolute;
	top: 68%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
	width: 80%;
}

.plan-name {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.25rem, 2.2vw, 2.625rem); /* 42px at 1920px */
	color: var(--cctc-dark);
	margin: 0 0 0.2em;
	line-height: 1.1;
}

.plan-speed {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(1rem, 1.25vw, 1.5rem); /* 24px at 1920px */
	color: var(--cctc-dark);
	margin: 0;
	line-height: 1.4;
}

/* --- Pricing --- */
.plan-price {
	font-family: var(--font-main);
	font-weight: 700;
	font-size: clamp(2.5rem, 5.5vw, 6.625rem); /* 106px at 1920px */
	color: var(--cctc-dark);
	margin: 0;
	line-height: 1;
}

.plan-period {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(0.875rem, 0.9375vw, 1.125rem); /* 18px at 1920px */
	color: var(--cctc-dark);
	text-align: center;
	letter-spacing: 0.02em;
	margin: 0;
}

/* --- Buttons --- */
.plan-actions {
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: clamp(0.625rem, 0.9vw, 1.125rem);
	margin-top: auto;
}

.plan-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	border-radius: 0.875rem;
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(1rem, 1.35vw, 1.625rem); /* 26px at 1920px */
	text-decoration: none;
	padding: 0 1rem;
	height: clamp(2.75rem, 3.5vw, 4.25rem); /* 68px at 1920px */
	transition: 0.2s ease;
	letter-spacing: -0.03em;
	cursor: pointer;
	white-space: nowrap;
}

.plan-btn--outline {
	border: 1.5px solid var(--cctc-purple);
	color: var(--cctc-purple);
	background: transparent;
}

.plan-btn--outline:hover {
	background: var(--cctc-purple);
	color: var(--cctc-white);
}

.plan-btn--filled {
	background: var(--cctc-purple);
	color: var(--cctc-white);
	border: none;
}

.plan-btn--filled:hover {
	background: #2a2862;
	color: var(--cctc-white);
}

/* --- Disclaimer --- */
.cctc-service-disclaimer {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: clamp(1.125rem, 0.9375vw, 1.125rem); /* 18px at 1920px */
	color: var(--cctc-white);
	line-height: 1.5;
	text-align: center;
	margin: 0;
	max-width: 70rem;
	opacity: 0.75;
}

/* ==============================================================
   SPEED TEST SECTION
   ============================================================== */
.cctc-speedtest {
	padding: var(--space-xl) var(--page-pad);
	background: var(--cctc-white);
}

.cctc-speedtest__inner {
	max-width: 120rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3rem;
}

.cctc-speedtest__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2rem, 2.9167vw, 3.5rem); /* 56px at 1920px */
	line-height: 1.18;
	color: #303030;
	text-align: center;
	margin: 0;
}

.cctc-speedtest__widget {
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.cctc-speedtest__widget {
	border-radius: 1.25rem;
	overflow: hidden;
}

.cctc-speedtest__widget iframe {
	display: block;
	width: 100%;
	max-width: 735px;
	border: none;
	border-radius: 1.25rem;
}

.cctc-speedtest__widget div {
	padding: 0.5rem 0;
}

/* ==============================================================
   FAQ SECTION
   ============================================================== */
.cctc-faq {
	padding: var(--space-md) var(--page-pad) calc( var(--space-xl) * 1.5 );
	background: var(--cctc-white);
}

.cctc-faq__inner {
	max-width: 120rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(2rem, 3vw, 4.625rem);
}

.cctc-faq__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2rem, 2.9167vw, 3.5rem);
	line-height: 1.18;
	color: #303030;
	margin: 0;
}

.cctc-faq__list {
	display: flex;
	flex-direction: column;
}

.cctc-faq__item {
	border-bottom: 1.5px solid #e8e7e7;
}

.cctc-faq__question {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	background: transparent;
	border: none;
	box-shadow: none;
	padding: 1.5rem 0;
	cursor: pointer;
	text-align: left;
	-webkit-appearance: none;
	appearance: none;
}

.cctc-faq__question span:first-child {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(1.375rem, 1.25vw, 1.5rem);
	line-height: 1.4;
	color: #303030;
	flex: 1;
}

.cctc-faq__icon {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	background: var(--cctc-purple);
	border-radius: 8px;
	position: relative;
}

.cctc-faq__icon::before,
.cctc-faq__icon::after {
	content: '';
	position: absolute;
	background: #fff;
	border-radius: 2px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.cctc-faq__icon::before {
	width: 12px;
	height: 2px;
}

.cctc-faq__icon::after {
	width: 2px;
	height: 12px;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.cctc-faq__question.is-open .cctc-faq__icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
	opacity: 0;
}

.cctc-faq__answer {
	padding: 0 0 1.5rem;
	font-family: var(--font-main);
	font-size: clamp(1.25rem, 1.1458vw, 1.375rem);
	line-height: 1.6;
	color: #303030;
}

.cctc-faq__answer p {
	margin: 0 0 0.75rem;
}

.cctc-faq__answer p:last-child {
	margin-bottom: 0;
}

/* CTA bar — voice page: match all section widths */
.page-template-page-voice .cctc-cta-bar {
	max-width: 96rem;
}


/* ==============================================================
   VOICE PAGE
   ============================================================== */

/* Plan grid */
.cctc-voice-grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(1rem, 1.67vw, 2rem);
	width: 100%;
	max-width: 96rem;
	margin-left: auto;
	margin-right: auto;
}

.cctc-voice-grid .cctc-voice-card {
	flex: 0 1 clamp(18rem, 28vw, 28rem);
}

/* Individual card */
.cctc-voice-card {
	background: var(--cctc-white);
	border-radius: 2.4375rem; /* 39px */
	padding: 3.4375rem; /* 55px */
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
	display: flex;
	flex-direction: column;
	gap: 3.4375rem;
	align-items: center;
}

.voice-card__name {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.5rem, 1.8229vw, 2.1875rem); /* 35px */
	color: var(--cctc-purple);
	text-align: center;
	margin: 0;
}

.voice-card__price-wrap {
	display: flex;
	align-items: flex-end;
	gap: 0.25rem;
	width: 100%;
}

.voice-card__price {
	font-family: var(--font-main);
	font-weight: 700;
	font-size: clamp(2.5rem, 4.1729vw, 5rem);
	line-height: 1;
	color: #303030;
}

.voice-card__period {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(0.75rem, 0.9531vw, 1.1445rem);
	line-height: 1.1;
	color: #303030;
	padding-bottom: 0.25rem;
}

/* Info rows */
.voice-card__rows {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	width: 100%;
	flex: 1;
}

.voice-card__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 0;
	border-top: 1px solid #e8e7e7;
}

.voice-card__row:last-child {
	border-bottom: 1px solid #e8e7e7;
}

.voice-card__row-label {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: clamp(1.125rem, 1.0416vw, 1.25rem);
	color: #303030;
}

.voice-card__row-value {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.125rem, 1.0416vw, 1.25rem);
	color: #303030;
	text-align: right;
}

/* ==============================================================
   VOICE FEATURES SECTION
   ============================================================== */
.cctc-voice-features {
	padding: var(--space-xl) var(--page-pad);
	background: var(--cctc-white);
}

.cctc-voice-features__inner {
	max-width: 96rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
}

.cctc-voice-features__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2rem, 2.9167vw, 3.5rem);
	line-height: 1.18;
	color: var(--cctc-dark);
	text-align: center;
	margin: 0;
}

/* --- Feature tabs --- */
.cctc-voice-ftabs {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.cctc-voice-ftabs__list {
	display: flex;
	padding-bottom: clamp(1.25rem, 2.3vw, 2.75rem);
}

.cctc-voice-ftab {
	flex: 1;
	background: transparent;
	border: none;
	box-shadow: none;
	outline: none;
	cursor: pointer;
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(1.125rem, 1.35vw, 1.625rem);
	color: var(--cctc-dark);
	padding: 0;
	opacity: 0.3;
	transition: opacity 0.2s;
	white-space: nowrap;
	text-align: center;
	-webkit-appearance: none;
	appearance: none;
}

.cctc-voice-ftab:hover,
.cctc-voice-ftab:focus,
.cctc-voice-ftab:active,
.cctc-voice-ftab:focus-visible {
	background: transparent;
	color: var(--cctc-dark);
	box-shadow: none;
	outline: none;
}

.cctc-voice-ftab.is-active {
	opacity: 1;
}

.cctc-voice-ftab:hover:not(.is-active) {
	opacity: 0.55;
}

.cctc-voice-ftabs__track {
	position: relative;
	height: 4px;
	background: var(--cctc-border);
	border-radius: 20px;
	width: 100%;
}

.cctc-voice-ftabs__bar {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 0;
	background: var(--cctc-purple);
	border-radius: 20px;
	transition: left 0.25s ease, width 0.25s ease;
}

/* --- Feature card grid --- */
.cctc-voice-feature-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(1rem, 1.67vw, 2rem);
}

.cctc-voice-feature-card {
	border: 1.5px solid var(--cctc-border);
	border-radius: 1.25rem;
	padding: clamp(2rem, 2.5vw, 3rem);
	min-height: clamp(26rem, 30vw, 36rem);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 2rem;
}

.cctc-voice-feature-card.is-hidden {
	display: none;
}

.voice-feature-card__top {
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.voice-feature-card__icon-img {
	width: 3.75rem;
	height: 3.75rem;
	object-fit: contain;
	flex-shrink: 0;
}

.voice-feature-card__text {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.voice-feature-card__name {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.375rem, 1.5625vw, 1.875rem);
	line-height: 1.15;
	color: var(--cctc-dark);
	margin: 0;
}

.voice-feature-card__desc {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: clamp(1.1875rem, 1.0416vw, 1.25rem);
	line-height: 1.6;
	color: var(--cctc-dark);
	opacity: 0.7;
	margin: 0;
}

.voice-feature-card__pricing {
	border-left: 2px solid var(--cctc-purple);
	padding-left: 0.875rem;
	margin-top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
}

.voice-feature-card__price,
.voice-feature-card__setup {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.1875rem, 1.0416vw, 1.25rem);
	line-height: 1.48;
	color: var(--cctc-dark);
	margin: 0;
}

.voice-feature-card__setup em {
	font-style: italic;
	font-weight: 400;
}

/* Responsive */
@media ( max-width: 711px ) {
	.cctc-voice-feature-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.cctc-voice-ftabs__list {
		overflow-x: auto;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.cctc-voice-ftabs__list::-webkit-scrollbar {
		display: none;
	}

	.cctc-voice-ftab {
		flex: none;
		padding-left: 1rem;
		padding-right: 1rem;
		font-size: 1rem;
	}
}

@media ( max-width: 430px ) {
	.cctc-voice-feature-grid {
		grid-template-columns: 1fr;
	}

	.cctc-voice-ftabs__list {
		overflow-x: auto;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.cctc-voice-ftabs__list::-webkit-scrollbar {
		display: none;
	}

	.cctc-voice-ftab {
		flex: none;
		font-size: 1.125rem;
	}
}

/* ==============================================================
   VOICE — VoIP Included Section
   ============================================================== */
.cctc-voice-voip {
	padding: var(--space-xl) var(--page-pad) var(--space-xl);
	background: var(--cctc-white);
}

.cctc-voice-voip__inner {
	max-width: 96rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
}

.cctc-voice-voip__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 1.25rem;
}

.cctc-voice-voip__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2rem, 2.9167vw, 3.5rem);
	line-height: 1.18;
	color: var(--cctc-dark);
	margin: 0;
}

.cctc-voice-voip__card {
	border: 1.5px solid #e8e7e7;
	border-radius: 1.25rem;
	padding: 2.125rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	width: 100%;
	max-width: 72rem;
	margin-top: var(--space-md);
}


.cctc-voice-voip__footer {
	border: 1.5px solid #e8e7e7;
	border-radius: 1.25rem;
	padding: 2.125rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	width: 100%;
	max-width: 72rem;
}


.cctc-voice-voip__card-title {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(1.375rem, 1.5625vw, 1.875rem);
	line-height: 1.3;
	color: var(--cctc-purple);
	margin: 0;
}

.cctc-voice-voip__card-desc {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: clamp(1.375rem, 1.25vw, 1.5rem);
	line-height: 1.6;
	color: var(--cctc-dark);
	opacity: 0.7;
	margin: 0;
}

/* --- Device card grid --- */
.cctc-voice-voip__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(1rem, 1.67vw, 2rem);
}

.cctc-voip-device-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	text-align: center;
}

.cctc-voip-device-card__img-wrap {
	width: 100%;
	height: 280px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cctc-voip-device-card__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.cctc-voice-voip__footer {
	text-align: center;
	margin-left: auto;
	margin-right: auto;
}

.cctc-voice-voip__footer-heading {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(1.375rem, 1.5625vw, 1.875rem);
	line-height: 1.3;
	color: var(--cctc-purple);
	margin: 0;
}

.cctc-voice-voip__footer-text {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: clamp(1.375rem, 1.25vw, 1.5rem);
	line-height: 1.6;
	color: var(--cctc-dark);
	opacity: 0.7;
	margin: 0;
}

.cctc-voip-device-card__price {
	font-family: var(--font-main);
	font-weight: 700;
	font-size: clamp(1.5rem, 2.0833vw, 2.5rem);
	color: var(--cctc-purple);
	margin: 0;
}

@media ( max-width: 768px ) {
	.cctc-voice-voip__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media ( max-width: 430px ) {
	.cctc-voice-voip__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==============================================================
   BROADBAND FACTS MODAL — structural only, no content styling
   ============================================================== */
.cctc-bb-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cctc-bb-modal[hidden] {
	display: none;
}

.cctc-bb-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(48, 48, 48, 0.80);
	backdrop-filter: blur(40px);
	cursor: pointer;
}

.cctc-bb-modal__box {
    position: relative;
    z-index: 1;
    width: 500px;
    background: #fff;
    border-radius: 39px;
    padding: 6.5rem 4rem 3.5rem;
    max-width: 96vw;
    max-height: 96dvh;
    /* height: 780px; ← remove this */
    overflow-y: hidden; /* or remove entirely */
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.35);
}

.cctc-bb-modal__close {
	position: absolute;
	top: 2.75rem;
	right: 2rem;
	z-index: 2;
	background: transparent;
	border: none;
	box-shadow: none;
	outline: none;
	padding: 0;
	cursor: pointer;
	line-height: 0;
	-webkit-appearance: none;
	appearance: none;
}

.cctc-bb-modal__close img {
	width: 18px;
	height: 18px;
}

.cctc-bb-modal__close:hover {
	opacity: 0.6;
}

.cctc-bb-modal__close:focus,
.cctc-bb-modal__close:focus-visible {
	outline: none;
	background: transparent;
	box-shadow: none;
}


.cctc-bb-modal__content {
	width: 100%;
}

@media ( max-width: 430px ) {
	.cctc-bb-modal__box {
		padding: 3rem 0.75rem 1.25rem;
		border-radius: 1.25rem;
		max-width: 100vw;
		max-height: 97dvh;
	}

	.cctc-bb-modal__close {
		top: 1rem;
		right: 1rem;
	}
}

@media ( max-width: 375px ) {
	.cctc-bb-modal__box {
		padding: 2.75rem 0.375rem 1rem;
		border-radius: 1rem;
		max-width: 100vw;
		max-height: 98dvh;
		height: 98dvh;
	}

	.cctc-bb-modal__close {
		top: 0.75rem;
		right: 0.75rem;
	}
}

/* ==============================================================
   FCC BROADBAND FACTS LABEL (.bbl)
   ============================================================== */
.bbl {
	font-family: Segoe UI, Helvetica, Arial, sans-serif !important;
	font-size: small !important;
	line-height: 1.1 !important;
	border: 2px solid !important;
	float: left;
	padding: .5rem !important;
	margin-bottom: .5rem !important;
	min-width: 325px;
	max-width: 350px;
}
.bbl section table { width: 100%; }
.bbl section {
	margin: 0 0 .2rem;
	padding: 0 0 .10rem;
	width: 100%;
	border-bottom: 2px solid;
}

.plan-btn--disabled {
	opacity: 0.4;
	cursor: default;
	pointer-events: none;
}

.cctc-no-plans,
.cctc-plans-loading {
	grid-column: 1 / -1;
	color: var(--cctc-white);
	font-family: var(--font-main);
	font-size: clamp(1rem, 1.25vw, 1.375rem);
	text-align: center;
	padding: 3rem 0;
}

.cctc-no-plans a {
	color: var(--cctc-white);
	text-decoration: underline;
}

/* ==============================================================
   SERVICE PAGE – Responsive
   ============================================================== */

/* 2-column at mobile */
@media ( max-width: 711px ) {
	.cctc-service-h1 {
		font-size: 2.75rem;
	}

	.cctc-service-sub {
		font-size: 1.375rem;
	}

	.cctc-service-form {
		width: min(26rem, 100%);
	}

	.cctc-plans-grid,
	.cctc-voice-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.plan-gauge-wrap {
		width: 65%;
	}

	.cctc-voice-card {
		padding: 2rem;
	}
}

/* Tab list scrolls on narrow screens */
@media ( max-width: 711px ) {
	.cctc-service-tabs__list {
		overflow-x: auto;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.cctc-service-tabs__list::-webkit-scrollbar {
		display: none;
	}

	.cctc-service-tab {
		flex: none;
		padding-left: 1rem;
		padding-right: 1rem;
		font-size: 1rem;
	}
}

@media ( max-width: 430px ) {
	.cctc-service-tab {
		font-size: 1.125rem;
	}
}

/* ==============================================================
   VOICE PAGE – Promo section (image + content card)
   ============================================================== */

.cctc-voice-promo {
	background: #E8E7E7;
	padding: clamp(6rem, 10vw, 10rem) clamp(1rem, 5vw, 4rem);
}

.cctc-voice-promo__inner {
	max-width: 96rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: stretch;
}

/* --- Image column --- */
.cctc-voice-promo__image-col {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.cctc-voice-promo__img-wrap {
	border-radius: 2rem;
	overflow: hidden;
	width: 100%;
	flex: 1;
}

.cctc-voice-promo__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* --- Questions card (overlaps bottom of image) --- */
.cctc-voice-promo__q-card {
	position: absolute;
	bottom: -3rem;
	left: -6rem;
	background: #fff;
	border-radius: 1rem;
	padding: 1.25rem 2rem;
	text-align: left;
	white-space: nowrap;
}

.cctc-voice-promo__q-label {
	color: var(--cctc-purple);
	font-family: var(--font-main);
	font-size: clamp(1.25rem, 1.5625vw, 1.6875rem);
	font-weight: 600;
	margin: 0 0 0.25rem;
	line-height: 1.2;
}

.cctc-voice-promo__q-phone {
	color: var(--cctc-dark);
	font-family: var(--font-main);
	font-size: clamp(1rem, 1.25vw, 1.25rem);
	font-weight: 500;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	text-decoration: none;
}

.cctc-voice-promo__q-phone:hover {
	text-decoration: underline;
}

.cctc-voice-promo__q-phone:visited {
	color: var(--cctc-dark) !important;
}

/* --- Content card --- */
.cctc-voice-promo__content-card {
	background: #fff;
	border-radius: 2rem;
	padding: clamp(4rem, 8vw, 8rem) clamp(3.5rem, 7vw, 7.5rem);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.cctc-voice-promo__heading {
	font-family: var(--font-main);
	font-size: clamp(2.125rem, 2.8125vw, 2.8125rem);
	font-weight: 600;
	color: var(--cctc-dark);
	margin: 0 0 1.25rem;
	line-height: 1.2;
}

.cctc-voice-promo__desc {
	font-family: var(--font-main);
	font-size: clamp(1.3rem, 1.35vw, 1.4rem);
	color: var(--cctc-dark);
	opacity: 0.7;
	margin: 0 0 2rem;
	line-height: 1.65;
}

.cctc-voice-promo__desc p {
	margin: 0 0 0.75em;
}

.cctc-voice-promo__desc p:last-child {
	margin-bottom: 0;
}

.cctc-voice-promo__desc a {
	color: inherit;
	text-decoration: underline;
}

.cctc-voice-promo__link {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	font-family: var(--font-main);
	font-size: clamp(1.3rem, 1.6vw, 1.625rem);
	font-weight: 500;
	color: var(--cctc-dark);
	text-decoration: none;
}

.cctc-voice-promo__link img {
	width: 2.5rem;
	height: 2.5rem;
	flex-shrink: 0;
}

.cctc-voice-promo__link:hover {
	opacity: 0.75;
}

/* --- Responsive --- */
@media ( max-width: 1024px ) and ( min-width: 601px ) {
	.cctc-voice-promo__q-card {
		left: -2rem;
	}
}

@media ( max-width: 600px ) {
	.cctc-voice-promo__inner {
		grid-template-columns: 1fr;
	}

	.cctc-voice-promo__content-card {
		order: 1;
	}

	.cctc-voice-promo__image-col {
		order: 2;
		align-items: flex-start;
	}

	.cctc-voice-promo__q-card {
		position: static;
		margin-top: 1.25rem;
		align-self: flex-start;
	}
}

@media ( max-width: 430px ) {
	.cctc-voice-promo__q-card {
		width: 100%;
		box-sizing: border-box;
	}

	.cctc-voice-promo__content-card {
		padding: 2rem 1.5rem;
	}
}

/* ==============================================================
   VOICE PAGE – Safety / fiber info section
   ============================================================== */

.cctc-voice-safety {
	background: #fff;
	padding: clamp(4rem, 7vw, 7rem) clamp(1rem, 5vw, 4rem);
}

.cctc-voice-safety__inner {
	max-width: 96rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(2.5rem, 4vw, 4rem);
}

.cctc-voice-safety__cols {
	display: grid;
	grid-template-columns: 1fr 1.75fr;
	gap: clamp(3rem, 9vw, 9rem);
	align-items: start;
}

/* --- Left column --- */
.cctc-voice-safety__left {
	padding-top: 1.375rem;
}

.cctc-voice-safety__eyebrow {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
}

.cctc-voice-safety__eyebrow-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.25rem;
	height: 1.25rem;
	border: 1.5px solid var(--cctc-purple);
	border-radius: 50%;
	color: var(--cctc-purple);
	font-family: var(--font-main);
	font-size: 0.75rem;
	font-weight: 600;
	flex-shrink: 0;
	line-height: 1;
}

.cctc-voice-safety__eyebrow-icon::after {
	content: 'i';
}

.cctc-voice-safety__eyebrow span:last-child {
	font-family: var(--font-main);
	font-size: clamp(0.875rem, 1.125vw, 1.125rem);
	font-weight: 500;
	color: var(--cctc-purple);
	letter-spacing: 0.01em;
	text-transform: uppercase;
}

.cctc-voice-safety__heading {
	font-family: var(--font-main);
	font-size: clamp(2.25rem, 3.5vw, 3.5rem);
	font-weight: 600;
	color: var(--cctc-dark);
	line-height: 1.18;
	margin: 0 0 1.5rem;
}

.cctc-voice-safety__desc {
	font-family: var(--font-main);
	font-size: clamp(1.125rem, 1.25vw, 1.25rem);
	color: var(--cctc-dark);
	line-height: 1.7;
	margin: 0;
}

/* --- Right column: FAQ accordion --- */
.cctc-voice-sfaq {
	display: flex;
	flex-direction: column;
}

.cctc-voice-sfaq__item + .cctc-voice-sfaq__item {
	border-top: 1.5px solid #D9D9D9;
}

.cctc-voice-sfaq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	width: 100%;
	padding: 1.375rem 0;
	background: transparent;
	border: none;
	box-shadow: none;
	outline: none;
	cursor: pointer;
	text-align: left;
	-webkit-appearance: none;
	appearance: none;
}

.cctc-voice-sfaq__question:hover,
.cctc-voice-sfaq__question:focus,
.cctc-voice-sfaq__question:active {
	background: transparent;
	box-shadow: none;
	outline: none;
}

.cctc-voice-sfaq__question > span:first-child {
	font-family: var(--font-main);
	font-size: clamp(1.125rem, 1.5vw, 1.5rem);
	font-weight: 500;
	color: var(--cctc-dark);
	line-height: 1.4;
}

.cctc-voice-sfaq__icon {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	background: var(--cctc-purple);
	border-radius: 8px;
	position: relative;
}

.cctc-voice-sfaq__icon::before,
.cctc-voice-sfaq__icon::after {
	content: '';
	position: absolute;
	background: #fff;
	border-radius: 2px;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.cctc-voice-sfaq__icon::before {
	width: 12px;
	height: 2px;
}

.cctc-voice-sfaq__icon::after {
	width: 2px;
	height: 12px;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.cctc-voice-sfaq__question.is-open .cctc-voice-sfaq__icon::after {
	transform: translate(-50%, -50%) rotate(90deg);
	opacity: 0;
}

.cctc-voice-sfaq__answer {
	font-family: var(--font-main);
	font-size: clamp(1.125rem, 1.25vw, 1.25rem);
	color: var(--cctc-dark);
	line-height: 1.65;
	padding-bottom: 1.25rem;
	opacity: 0.8;
}

.cctc-voice-sfaq__answer[hidden] {
	display: none;
}

/* --- Responsive --- */
@media ( max-width: 768px ) {
	.cctc-voice-safety__cols {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
}

@media ( max-width: 430px ) {
	.cctc-voice-safety__heading {
		font-size: 2rem;
	}
}

/* ==============================================================
   ABOUT PAGE – Hero + image section
   ============================================================== */

/* Reduce bottom padding on hero so image sits close */
.cctc-about-hero {
	padding-bottom: 0;
}

.cctc-about-hero .cctc-service-h1 {
	max-width: 60rem;
}

.cctc-about-hero__intro {
	font-family: var(--font-main);
	font-size: 1.5rem;
	font-weight: 400;
	color: var(--cctc-white);
	line-height: 1.7;
	margin: 0;
	max-width: 60rem;
	text-align: center;
}

/* Gray image section */
.cctc-about-image-section {
	background: var(--cctc-dark);
	padding: clamp(5rem, 8vw, 8rem) clamp(1rem, 3vw, 2rem);
}

.cctc-about-image-section__inner {
	max-width: 130rem;
	margin: 0 auto;
}

.cctc-about-image-section__img-wrap {
	border-radius: 2rem;
	overflow: hidden;
	width: 100%;
	aspect-ratio: 4 / 2;
}

.cctc-about-image-section__img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

@media ( max-width: 768px ) {
	.cctc-about-image-section__img-wrap {
		aspect-ratio: 4 / 3;
	}
}

@media ( max-width: 430px ) {
	.cctc-about-image-section__img-wrap {
		aspect-ratio: 1 / 1;
		border-radius: 1.25rem;
	}
}

/* ==============================================================
   About Page — Timeline Slider
   ============================================================== */

.cctc-timeline {
	background: var(--cctc-dark);
	padding: clamp(4rem, 6vw, 6rem) clamp(1rem, 3vw, 2rem) clamp(9rem, 14vw, 14rem);
}

.cctc-timeline__inner {
	max-width: 110rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(2.5rem, 5vw, 5rem);
}

/* Nav buttons */
.cctc-timeline__nav {
	display: flex;
	gap: 0.5rem;
	margin-bottom: clamp(2rem, 3vw, 3rem);
}

.cctc-timeline__btn {
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	transition: opacity 0.2s;
	flex-shrink: 0;
}

.cctc-timeline__btn img {
	display: block;
	width: 3.75rem;
	height: 3.75rem;
}

.cctc-timeline__btn:hover {
	opacity: 0.8;
}

.cctc-timeline__btn:disabled {
	opacity: 0.35;
	cursor: default;
}

/* Slides */
.cctc-timeline__slide {
	display: none;
	flex-direction: column;
	gap: 1.25rem;
	color: var(--cctc-white);
	position: relative;
	min-height: 20rem;
}

.cctc-timeline__slide.is-active {
	display: flex;
}

.cctc-timeline__year {
	position: absolute;
	top: -0.5em;
	right: -0.03em;
	font-family: var(--font-main);
	font-weight: 900;
	font-size: clamp(13rem, 22vw, 27rem);
	line-height: 0.767;
	color: rgba(255, 255, 255, 0.25);
	opacity: 1;
	pointer-events: none;
	user-select: none;
	white-space: nowrap;
	z-index: 2;
}

.cctc-timeline__eyebrow,
.cctc-timeline__heading,
.cctc-timeline__text {
	position: relative;
	z-index: 1;
}

.cctc-timeline__eyebrow {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.5rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	opacity: 0.7;
}

.cctc-timeline__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: var(--text-xl);
	line-height: 1.15;
	margin: 0;
	max-width: 60rem;
}

.cctc-timeline__text {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.7;
	margin: 0;
	max-width: 56rem;
	opacity: 0.9;
	margin-bottom: clamp(2rem, 4vw, 4rem);
}

/* Track */
.cctc-timeline__footer {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
}

.cctc-timeline__track {
	position: relative;
	height: 0.25rem;
	background: rgba(255, 255, 255, 0.1);
	border-radius: 999px;
}

.cctc-timeline__scrubber {
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 0.75rem;
	height: 0.75rem;
	background: var(--cctc-white);
	border-radius: 50%;
	transition: left 0.4s ease;
}

.cctc-timeline__year-labels {
	display: flex;
	justify-content: space-between;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 1.5rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--cctc-white);
}

@media ( max-width: 768px ) {
	.cctc-timeline__heading {
		font-size: clamp(2rem, 6vw, 3.5rem);
	}
}

/* ==============================================================
   About Page — Employee Directory
   ============================================================== */

.cctc-directory {
	background: var(--cctc-white);
	padding: clamp(3rem, 5vw, 5rem) clamp(1rem, 3vw, 2rem);
}

.cctc-directory__inner {
	max-width: 110rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(2.5rem, 4vw, 4rem);
}

.cctc-directory__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(3rem, 5.5vw, 4.5rem);
	line-height: 1.15;
	color: var(--cctc-dark-text);
	margin: 0;
}

.cctc-directory__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2.25rem;
	align-items: start;
}

.cctc-directory__card {
	border: 1.5px solid #e8e7e7;
	border-radius: 1.25rem;
	padding: 2.5rem;
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.cctc-directory__card.is-hidden {
	display: none;
}

.cctc-directory__card-info {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
}

.cctc-directory__name {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.875rem;
	line-height: 1.3;
	color: var(--cctc-dark-text);
}

.cctc-directory__role {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.25rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--cctc-dark-text);
}

.cctc-directory__phone {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	color: var(--cctc-dark-text);
}

.cctc-directory__contact {
	display: flex;
	align-items: center;
	gap: 0.8125rem;
	text-decoration: none;
	color: var(--cctc-dark-text);
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.4;
	word-break: break-all;
}

.cctc-directory__contact:hover {
	text-decoration: underline;
}

.cctc-directory__contact-icon {
	flex-shrink: 0;
}

/* Pagination */
.cctc-directory__pagination {
	display: flex;
	justify-content: flex-end;
	gap: 1.25rem;
}

.cctc-directory__page-btn {
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	transition: opacity 0.2s;
}

.cctc-directory__page-btn img {
	display: block;
	width: 1.75rem;
	height: 1.75rem;
}

.cctc-directory__page-btn:hover {
	opacity: 0.8;
}

.cctc-directory__page-btn:disabled {
	opacity: 0.35;
	cursor: default;
}

.cctc-directory .cctc-cta-bar {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.cctc-directory__page-btn:focus,
.cctc-directory__page-btn:active {
	outline: none;
	box-shadow: none;
	-webkit-box-shadow: none;
}

@media ( max-width: 1024px ) {
	.cctc-directory__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media ( max-width: 600px ) {
	.cctc-directory__grid {
		grid-template-columns: 1fr;
	}
}

/* ==============================================================
   About Page — Annual Meeting & Newsletters
   ============================================================== */

.cctc-annual {
	background: var(--cctc-white);
	padding: clamp(3rem, 5vw, 5rem) clamp(1rem, 3vw, 2rem);
}

.cctc-annual__inner {
	max-width: 110rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 2.5fr 2fr;
	gap: clamp(3rem, 8vw, 9.4375rem);
	align-items: start;
}

.cctc-annual__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(3rem, 5.5vw, 4.5rem);
	line-height: 1.15;
	color: var(--cctc-dark-text);
	margin: 0 0 2.4375rem;
}

.cctc-annual__text {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.7;
	color: var(--cctc-dark-text);
}

.cctc-annual__text p {
	margin: 0 0 1em;
}

.cctc-annual__text p:last-child {
	margin-bottom: 0;
}

/* Newsletter list */
.cctc-annual__nl-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cctc-annual__nl-item {
	display: flex;
	flex-direction: column;
}

.cctc-annual__nl-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 2.25rem 0;
	text-decoration: none;
	color: var(--cctc-dark-text);
}

.cctc-annual__nl-link:hover .cctc-annual__nl-title {
	text-decoration: underline;
}

.cctc-annual__nl-title {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.875rem;
	line-height: 1.4;
}

.cctc-annual__nl-icon {
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
}

.cctc-annual__nl-item--hidden {
	display: none;
}

.cctc-annual__nl-item--hidden.is-visible {
	display: flex;
}

.cctc-annual__nl-divider {
	height: 1px;
	background: #e8e7e7;
}

/* See More */
.cctc-annual__see-more {
	display: flex;
	justify-content: flex-end;
	margin-top: 2rem;
}

.cctc-annual__see-more-link {
	display: flex;
	align-items: center;
	gap: 0.9375rem;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	color: var(--cctc-dark-text);
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.5rem;
}

.cctc-annual__see-more-icon {
	width: 2.25rem;
	height: 2.25rem;
	flex-shrink: 0;
}

.cctc-annual__see-more-icon--less {
	display: none;
}

.cctc-annual__see-more-icon--less.is-visible {
	display: block;
}

.cctc-annual__see-more-icon--more.is-hidden {
	display: none;
}

.cctc-annual__see-more-link:hover {
	opacity: 0.8;
}

.cctc-annual__see-more-link:focus,
.cctc-annual__see-more-link:active {
	background: none;
	box-shadow: none;
	-webkit-box-shadow: none;
	color: var(--cctc-dark-text);
	outline: none;
	opacity: 1;
}

@media ( max-width: 768px ) {
	.cctc-annual__inner {
		grid-template-columns: 1fr;
	}
}

/* ==============================================================
   About Page — Board of Directors
   ============================================================== */

.cctc-board {
	background: var(--cctc-white);
	padding: clamp(3rem, 5vw, 5rem) clamp(1rem, 3vw, 2rem);
}

.cctc-board__inner {
	max-width: 110rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(2.5rem, 4vw, 4.375rem);
}

.cctc-board__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(3rem, 5.5vw, 4.5rem);
	line-height: 1.15;
	color: var(--cctc-dark-text);
	margin: 0;
}

.cctc-board__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(2rem, 3vw, 1.875rem);
}

.cctc-board__card {
	display: flex;
	flex-direction: column;
	gap: 1.875rem;
	padding-top: 1.5rem;
}

.cctc-board__photo-wrap {
	width: 100%;
	aspect-ratio: 449 / 490;
	overflow: hidden;
	border-radius: 1.75rem;
}

.cctc-board__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	display: block;
}

.cctc-board__info {
	display: flex;
	flex-direction: column;
	gap: 0.5625rem;
}

.cctc-board__name {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.875rem;
	line-height: 1.3;
	color: var(--cctc-dark-text);
}

.cctc-board__role {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.125rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--cctc-purple);
}

.cctc-board__address {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.4;
	color: var(--cctc-dark-text);
	margin: 0.75rem 0 0;
}

@media ( max-width: 1024px ) {
	.cctc-board__card {
		gap: 1.25rem;
	}

	.cctc-board__photo-wrap {
		border-radius: 1.25rem;
	}

	.cctc-board__name {
		font-size: 1.5rem;
	}

	.cctc-board__role {
		font-size: 1rem;
	}

	.cctc-board__address {
		font-size: 1.25rem;
	}
}

@media ( max-width: 600px ) {
	.cctc-board__grid {
		grid-template-columns: 1fr;
	}
}

/* ==============================================================
   About Page — Who We Are
   ============================================================== */

.cctc-who {
	background: var(--cctc-white);
	padding: clamp(6rem, 10vw, 10rem) clamp(1rem, 3vw, 2rem) clamp(3rem, 5vw, 5rem);
}

.cctc-who__inner {
	max-width: 110rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(3rem, 5vw, 4.75rem);
}

.cctc-who__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(3rem, 5.5vw, 4.5rem);
	line-height: 1.15;
	color: var(--cctc-dark-text);
	margin: 0;
}

/* Statements (mission + vision) */
.cctc-who__statements {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 4vw, 3.9375rem);
}

.cctc-who__statement-heading {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(2.25rem, 3.5vw, 3.25rem);
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--cctc-dark-text);
	margin: 0 0 1.875rem;
}

.cctc-who__statement-text {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.7;
	color: var(--cctc-dark-text);
	margin: 0;
}

/* Values */
.cctc-who__values-heading {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(2.25rem, 3.5vw, 3.25rem);
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--cctc-dark-text);
	margin: 0 0 1.5625rem;
}

.cctc-who__values-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.6875rem;
}

.cctc-who__value-card {
	border: 1.5px solid #e8e7e7;
	border-radius: 1.25rem;
	padding: 2.125rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.cctc-who__value-title {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.625rem;
	line-height: 1.3;
	color: var(--cctc-purple);
}

.cctc-who__value-desc {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.4rem;
	line-height: 1.2;
	color: var(--cctc-dark-text);
	margin: 0;
}

@media ( max-width: 1024px ) {
	.cctc-who__values-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media ( max-width: 768px ) {
	.cctc-who__statements {
		grid-template-columns: 1fr;
	}

	.cctc-who__values-grid {
		grid-template-columns: 1fr;
	}
}

@media ( max-width: 430px ) {
	.cctc-who__inner {
		gap: 5rem;
	}
}


/* ==============================================================
   Careers Page Intro
   ============================================================== */

.cctc-careers-intro-section {
	padding: clamp(2rem, 4vw, 3.5rem) clamp(1rem, 3vw, 2rem) 0;
}

@media ( max-width: 1024px ) {
	.cctc-careers-intro-section {
		padding-left: clamp(2rem, 5vw, 4rem);
	}
}

.cctc-careers-intro-inner {
	max-width: 110rem;
	margin: 0 auto;
}

.cctc-careers-intro {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.375rem;
	line-height: 1.7;
	color: var(--cctc-dark-text);
	max-width: 70rem;
}

.cctc-careers-intro p {
	margin: 0 0 1em;
}

.cctc-careers-intro p:last-child {
	margin-bottom: 0;
}

.cctc-careers-intro a {
	color: var(--cctc-purple);
	text-decoration: underline;
}

/* ==============================================================
   Scholarships Page
   ============================================================== */

.cctc-scholarships-heading-wrap {
	max-width: 110rem;
	margin: 0 auto;
	padding: clamp(5rem, 8vw, 8rem) 0 0;
}

.cctc-scholarships-heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2.5rem, 4vw, 4rem);
	line-height: 1.1;
	color: var(--cctc-dark-text);
	margin: 0;
}

.cctc-scholarships {
	background: var(--cctc-white);
	padding: clamp(4rem, 6vw, 7rem) clamp(1rem, 3vw, 2rem);
}

.cctc-scholarships__inner {
	max-width: 110rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(6rem, 10vw, 12rem);
}

/* Each scholarship row */
.cctc-scholarship {
	display: grid;
	grid-template-columns: 1.4fr 1.5fr;
	gap: clamp(3rem, 6vw, 7.5rem);
	align-items: start;
}

/* Left card */
.cctc-scholarship__card {
	background: var(--cctc-border);
	border-radius: 1.625rem;
	padding: clamp(3rem, 5vw, 5rem) clamp(3.5rem, 6vw, 6rem);
	display: flex;
	flex-direction: column;
	gap: 2.5rem;
}

.cctc-scholarship__name {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(2rem, 2.8vw, 3rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--cctc-dark-text);
	margin: 0;
}

.cctc-scholarship__apply {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--cctc-purple);
	color: var(--cctc-white);
	font-family: var(--font-main);
	font-weight: 500;
	font-size: var(--text-sm);
	letter-spacing: -0.03em;
	text-decoration: none;
	padding: 1rem 1.75rem;
	border-radius: 0.625rem;
	transition: background 0.2s;
	align-self: flex-start;
}

.cctc-scholarship__apply:hover {
	background: #2a2862;
	color: var(--cctc-white);
}

.cctc-scholarship__apply img {
	width: 0.875rem;
	height: 0.875rem;
	filter: brightness(0) invert(1);
}

/* Right detail */
.cctc-scholarship__detail {
	display: flex;
	flex-direction: column;
	gap: 4rem;
}

.cctc-scholarship__deadline-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.cctc-scholarship__deadline-icon {
	flex-shrink: 0;
	width: 1.4rem;
	height: 1.4rem;
}

.cctc-scholarship__deadline {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	color: var(--cctc-dark-text);
	margin: 0;
}

.cctc-scholarship__deadline strong {
	font-weight: 600;
}

.cctc-scholarship__divider {
	height: 1px;
	background: var(--cctc-border);
}

.cctc-scholarship__description {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.6;
	color: var(--cctc-dark-text);
	padding-bottom: 1rem;
}

.cctc-scholarship__description p {
	margin: 0 0 1em;
}

.cctc-scholarship__description p:last-child {
	margin-bottom: 0;
}

/* Accordion */
.cctc-scholarship__accordion {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.cctc-scholarship__accordion-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	width: 100%;
	text-align: left;
	color: var(--cctc-dark-text);
}

.cctc-scholarship__accordion-btn:hover,
.cctc-scholarship__accordion-btn:focus,
.cctc-scholarship__accordion-btn:active {
	background: none;
	box-shadow: none;
	-webkit-box-shadow: none;
	color: var(--cctc-dark-text);
}

.cctc-scholarship__accordion-label {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(1.5rem, 2vw, 2rem);
	color: var(--cctc-dark-text);
}

.cctc-scholarship__accordion-icon {
	width: 1.75rem;
	height: 1.75rem;
	flex-shrink: 0;
}

.cctc-scholarship__accordion-icon--less {
	display: none;
}

.cctc-scholarship__accordion-btn[aria-expanded="true"] .cctc-scholarship__accordion-icon--open {
	display: none;
}

.cctc-scholarship__accordion-btn[aria-expanded="true"] .cctc-scholarship__accordion-icon--less {
	display: block;
}

.cctc-scholarship__accordion-content {
	overflow: hidden;
}

.cctc-scholarship__accordion-body {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.6;
	color: var(--cctc-dark-text);
	padding: 2rem 0 0.5rem;
}

.cctc-scholarship__accordion-body p {
	margin: 0 0 1em;
}

.cctc-scholarship__accordion-body p:last-child {
	margin-bottom: 0;
}

.cctc-scholarships__inner > .cctc-cta-bar {
	margin-top: clamp(1rem, 3vw, 2rem);
}

@media ( max-width: 1024px ) {
	.cctc-scholarships {
		padding-left: clamp(2rem, 5vw, 4rem);
		padding-right: clamp(2rem, 5vw, 4rem);
	}

	.cctc-scholarships-heading-wrap {
		padding-left: clamp(2rem, 5vw, 4rem);
	}
}

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

/* =====================================================
   CONTACT PAGE
   ===================================================== */

.cctc-contact {
	padding: clamp(7rem, 11vw, 12rem) 0 clamp(7rem, 11vw, 12rem);
}

.cctc-contact__inner {
	max-width: 118rem;
	margin: 0 auto;
	padding: 0 clamp(1.5rem, 3vw, 3rem);
	display: flex;
	flex-direction: column;
	gap: clamp(5rem, 9vw, 10rem);
}

/* Top: two-column layout */
.cctc-contact__top {
	display: grid;
	grid-template-columns: 1fr 2.5fr;
	gap: clamp(3rem, 7vw, 9rem);
	align-items: center;
}

/* Left: Info */
.cctc-contact__info {
	display: flex;
	flex-direction: column;
	gap: clamp(3rem, 5vw, 5rem);
}

.cctc-contact__heading-group {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.cctc-contact__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2.75rem, 4.5vw, 4rem);
	line-height: 1.18;
	letter-spacing: -0.02em;
	color: var(--cctc-dark-text);
	margin: 0;
}

.cctc-contact__intro {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.375rem;
	line-height: 1.6;
	color: var(--cctc-dark-text);
	margin: 0;
}

.cctc-contact__details {
	display: flex;
	flex-direction: column;
	gap: 3.5rem;
}

.cctc-contact__detail-row {
	display: flex;
	align-items: flex-start;
	gap: 1.375rem;
}

.cctc-contact__icon-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 0.2rem;
}

.cctc-contact__icon-wrap img {
	width: 2.25rem;
	height: 2.25rem;
}

.cctc-contact__detail-content {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.cctc-contact__detail-label {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.5rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--cctc-dark-text);
	margin: 0;
	line-height: 1.1;
}

.cctc-contact__detail-lines {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.cctc-contact__detail-lines p {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.6;
	color: var(--cctc-dark-text);
	margin: 0;
}

.cctc-contact__detail-lines strong {
	font-weight: 500;
}

.cctc-contact__detail-lines a {
	color: var(--cctc-dark-text);
	text-decoration: none;
}

.cctc-contact__detail-lines a:hover {
	text-decoration: underline;
}

.cctc-contact__divider {
	height: 1px;
	background: var(--cctc-border);
}

/* Right: Form wrap */
.cctc-contact__form-wrap {
	background: var(--cctc-border);
	border-radius: 3.5rem;
	padding: clamp(4.5rem, 7vw, 7rem);
}

/* Fluent Form overrides */
.cctc-contact__form-wrap .ff-el-form-control {
	background: #fff;
	border: none !important;
	border-radius: 0.9375rem !important;
	padding: 1.4375rem !important;
	font-family: var(--font-main) !important;
	font-size: 1.5rem !important;
	color: var(--cctc-dark-text) !important;
	min-height: 4.375rem;
	box-shadow: none !important;
	width: 100%;
}

.cctc-contact__form-wrap textarea.ff-el-form-control {
	min-height: 10rem;
	resize: vertical;
}

.cctc-contact__form-wrap .ff-el-form-control:focus {
	outline: 2px solid var(--cctc-purple) !important;
	outline-offset: 0;
	box-shadow: none !important;
}

.cctc-contact__form-wrap .ff-t-container {
	display: flex !important;
	align-items: flex-start;
	gap: clamp(1rem, 2vw, 1.5rem);
	margin-bottom: 2.5rem !important;
}

.cctc-contact__form-wrap .ff-t-cell {
	flex: 1 !important;
	min-width: 0;
	float: none !important;
	width: auto !important;
}

.cctc-contact__form-wrap .ff-t-cell .ff-el-group {
	margin-bottom: 0 !important;
}

.cctc-contact__form-wrap .ff-el-group {
	margin-bottom: 2.5rem !important;
}

.cctc-contact__form-wrap .ff-el-group:last-child {
	margin-bottom: 0 !important;
}

.cctc-contact__form-wrap .ff-btn-submit,
.cctc-contact__form-wrap .ff-btn.ff-btn-submit {
	background: var(--cctc-purple) !important;
	color: #fff !important;
	font-family: var(--font-main) !important;
	font-weight: 500 !important;
	font-size: 1.25rem !important;
	letter-spacing: -0.03em !important;
	border: none !important;
	border-radius: 0.625rem !important;
	padding: 0.625rem 1.25rem !important;
	min-height: 3.375rem !important;
	cursor: pointer !important;
	transition: background 0.2s !important;
	box-shadow: none !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.5rem !important;
}

.cctc-contact__form-wrap .ff-btn-submit::after,
.cctc-contact__form-wrap .ff-btn.ff-btn-submit::after {
	content: '';
	display: block;
	width: 0.875rem;
	height: 0.875rem;
	background-image: url('images/arrow.svg');
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	filter: brightness(0) invert(1);
	flex-shrink: 0;
}

.cctc-contact__form-wrap .ff-btn-submit:hover,
.cctc-contact__form-wrap .ff-btn.ff-btn-submit:hover {
	background: #2a2862 !important;
}

.cctc-contact__form-wrap .ff_submit_btn_wrapper {
	text-align: right;
}

/* Bottom cards */
.cctc-contact__cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.5rem, 2.5vw, 2rem);
}

.cctc-contact__card {
	border: 1.5px solid var(--cctc-border);
	border-radius: 1.25rem;
	padding: clamp(1.75rem, 2.5vw, 2.25rem);
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.cctc-contact__card-heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.5rem, 2vw, 1.875rem);
	line-height: 1.15;
	color: var(--cctc-dark-text);
	margin: 0;
}

.cctc-contact__card-text {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.375rem;
	line-height: 1.6;
	color: var(--cctc-dark-text);
}

.cctc-contact__card-text p {
	margin: 0;
}

.cctc-contact__directions {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	text-decoration: none;
	color: var(--cctc-dark-text);
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.375rem;
	margin-top: 2rem;
	align-self: flex-start;
}

.cctc-contact__directions img {
	width: 2.25rem;
	height: 2.25rem;
}

.cctc-contact__directions:hover {
	opacity: 0.75;
}

@media ( max-width: 1023px ) {
	.cctc-contact__top {
		grid-template-columns: 1fr;
	}
}

@media ( max-width: 820px ) and ( min-width: 712px ) {
	.cctc-contact__info {
		display: grid;
		grid-template-columns: 1fr 1fr;
		align-items: start;
	}
}

@media ( max-width: 768px ) {
	.cctc-contact__cards {
		grid-template-columns: 1fr;
	}
}

/* ==============================================================
   Privacy Policy Page
   ============================================================== */

body.privacy-policy .post-content {
	padding: clamp(5rem, 8vw, 8rem) clamp(2rem, 5vw, 4rem);
	max-width: 110rem;
	margin: 0 auto;
}

/* ==============================================================
   Default-template content pages (Legal, Network Management Policy,
   Broadband Internet Service Agreement, Long Distance Service Agreement,
   Bylaw Changes)
   ============================================================== */

body.page-slug-legal .post-content,
body.page-slug-network-management-policy .post-content,
body.page-slug-broadband-internet-service-agreement .post-content,
body.page-slug-long-distance-service-agreement .post-content,
body.page-slug-bylaw-changes .post-content {
	padding: clamp(5rem, 8vw, 8rem) clamp(2rem, 5vw, 4rem);
	max-width: 110rem;
	margin: 0 auto;
}

/* Page title */
body.page-slug-legal .entry-title,
body.page-slug-network-management-policy .entry-title,
body.page-slug-broadband-internet-service-agreement .entry-title,
body.page-slug-long-distance-service-agreement .entry-title,
body.page-slug-bylaw-changes .entry-title {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2.5rem, 4vw, 4rem);
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--cctc-dark);
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

/* Body text */
body.page-slug-legal .entry-content,
body.page-slug-network-management-policy .entry-content,
body.page-slug-broadband-internet-service-agreement .entry-content,
body.page-slug-long-distance-service-agreement .entry-content,
body.page-slug-bylaw-changes .entry-content {
	font-family: var(--font-main);
	font-size: 1.375rem;
	line-height: 1.7;
	color: var(--cctc-dark);
}

body.page-slug-legal .entry-content p,
body.page-slug-network-management-policy .entry-content p,
body.page-slug-broadband-internet-service-agreement .entry-content p,
body.page-slug-long-distance-service-agreement .entry-content p,
body.page-slug-bylaw-changes .entry-content p {
	font-family: var(--font-main);
	font-size: 1.375rem;
	line-height: 1.7;
	color: var(--cctc-dark);
	margin-bottom: 1.25em;
}

body.page-slug-legal .entry-content p:last-child,
body.page-slug-network-management-policy .entry-content p:last-child,
body.page-slug-broadband-internet-service-agreement .entry-content p:last-child,
body.page-slug-long-distance-service-agreement .entry-content p:last-child,
body.page-slug-bylaw-changes .entry-content p:last-child {
	margin-bottom: 0;
}

/* Headings */
body.page-slug-legal .entry-content h2,
body.page-slug-network-management-policy .entry-content h2,
body.page-slug-broadband-internet-service-agreement .entry-content h2,
body.page-slug-long-distance-service-agreement .entry-content h2,
body.page-slug-bylaw-changes .entry-content h2 {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.75rem, 2.5vw, 2.25rem);
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--cctc-dark);
	margin: 2em 0 0.75em;
}

body.page-slug-legal .entry-content h3,
body.page-slug-network-management-policy .entry-content h3,
body.page-slug-broadband-internet-service-agreement .entry-content h3,
body.page-slug-long-distance-service-agreement .entry-content h3,
body.page-slug-bylaw-changes .entry-content h3 {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.5rem, 2vw, 1.875rem);
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--cctc-dark);
	margin: 1.75em 0 0.6em;
}

body.page-slug-legal .entry-content h4,
body.page-slug-network-management-policy .entry-content h4,
body.page-slug-broadband-internet-service-agreement .entry-content h4,
body.page-slug-long-distance-service-agreement .entry-content h4,
body.page-slug-bylaw-changes .entry-content h4 {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: 1.375rem;
	color: var(--cctc-dark);
	margin: 1.5em 0 0.5em;
}

/* Links */
body.page-slug-legal .entry-content a,
body.page-slug-legal .entry-content p a,
body.page-slug-network-management-policy .entry-content a,
body.page-slug-network-management-policy .entry-content p a,
body.page-slug-broadband-internet-service-agreement .entry-content a,
body.page-slug-broadband-internet-service-agreement .entry-content p a,
body.page-slug-long-distance-service-agreement .entry-content a,
body.page-slug-long-distance-service-agreement .entry-content p a,
body.page-slug-bylaw-changes .entry-content a,
body.page-slug-bylaw-changes .entry-content p a {
	color: var(--cctc-purple);
	text-decoration: underline;
	box-shadow: none;
	transition: opacity 0.2s;
}

body.page-slug-legal .entry-content a:hover,
body.page-slug-legal .entry-content p a:hover,
body.page-slug-network-management-policy .entry-content a:hover,
body.page-slug-network-management-policy .entry-content p a:hover,
body.page-slug-broadband-internet-service-agreement .entry-content a:hover,
body.page-slug-broadband-internet-service-agreement .entry-content p a:hover,
body.page-slug-long-distance-service-agreement .entry-content a:hover,
body.page-slug-long-distance-service-agreement .entry-content p a:hover,
body.page-slug-bylaw-changes .entry-content a:hover,
body.page-slug-bylaw-changes .entry-content p a:hover {
	color: var(--cctc-purple);
	box-shadow: none;
	opacity: 0.75;
}

/* Lists */
body.page-slug-legal .entry-content ul,
body.page-slug-legal .entry-content ol,
body.page-slug-network-management-policy .entry-content ul,
body.page-slug-network-management-policy .entry-content ol,
body.page-slug-broadband-internet-service-agreement .entry-content ul,
body.page-slug-broadband-internet-service-agreement .entry-content ol,
body.page-slug-long-distance-service-agreement .entry-content ul,
body.page-slug-long-distance-service-agreement .entry-content ol,
body.page-slug-bylaw-changes .entry-content ul,
body.page-slug-bylaw-changes .entry-content ol {
	font-family: var(--font-main);
	font-size: 1.375rem;
	line-height: 1.7;
	color: var(--cctc-dark);
	margin-bottom: 1.25em;
}

body.page-slug-legal .entry-content li,
body.page-slug-network-management-policy .entry-content li,
body.page-slug-broadband-internet-service-agreement .entry-content li,
body.page-slug-long-distance-service-agreement .entry-content li,
body.page-slug-bylaw-changes .entry-content li {
	margin-bottom: 0.5em;
}

/* ==============================================================
   Network Status Page
   ============================================================== */

.cctc-ns {
	background: var(--cctc-white);
	padding: clamp(4rem, 6vw, 7rem) clamp(1rem, 3vw, 2rem);
}

.cctc-ns__inner {
	max-width: 110rem;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: clamp(4rem, 6vw, 6rem);
}

/* --- All Systems Operational banner --- */

.cctc-ns-operational {
	display: flex;
	align-items: center;
	gap: 2rem;
	background: #F0FDF4;
	border: 1.5px solid #86EFAC;
	border-radius: 1.25rem;
	padding: clamp(2rem, 4vw, 3rem) clamp(2rem, 4vw, 3.5rem);
}

.cctc-ns-operational__icon {
	flex-shrink: 0;
	display: flex;
}

.cctc-ns-operational__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.5rem, 2.5vw, 2.25rem);
	color: #15803D;
	margin: 0 0 0.4em;
	letter-spacing: -0.02em;
}

.cctc-ns-operational__sub {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.375rem;
	color: #166534;
	margin: 0;
}

/* --- Section group headings --- */

.cctc-ns-group__heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.75rem, 2.5vw, 2.5rem);
	color: var(--cctc-dark);
	margin: 0 0 2rem;
	letter-spacing: -0.02em;
}

/* --- Status badges --- */

.cctc-ns-badge {
	display: inline-block;
	font-family: var(--font-main);
	font-weight: 600;
	font-size: 1.125rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	padding: 0.35em 0.85em;
	border-radius: 0.4em;
	line-height: 1;
}

.cctc-ns-badge--outage {
	background: #FEF2F2;
	color: #B91C1C;
	border: 1.5px solid #FECACA;
}

.cctc-ns-badge--planned_maintenance {
	background: #EEF2FF;
	color: #37357E;
	border: 1.5px solid #C7D2FE;
}

.cctc-ns-badge--degraded_service {
	background: #FFFBEB;
	color: #B45309;
	border: 1.5px solid #FDE68A;
}

.cctc-ns-badge--resolved {
	background: #F0FDF4;
	color: #15803D;
	border: 1.5px solid #86EFAC;
}

/* --- Severity label --- */

.cctc-ns-severity {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: 1.125rem;
	color: var(--cctc-dark);
	opacity: 0.6;
}

/* --- Active incidents list --- */

.cctc-ns-incidents {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

.cctc-ns-incident {
	border: 1.5px solid var(--cctc-border);
	border-radius: 1.25rem;
	padding: clamp(2rem, 3vw, 2.75rem) clamp(2rem, 3vw, 3rem);
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.cctc-ns-incident--outage {
	border-color: #FECACA;
	background: #FFFBFB;
}

.cctc-ns-incident--planned_maintenance {
	border-color: #C7D2FE;
	background: #FAFBFF;
}

.cctc-ns-incident--degraded_service {
	border-color: #FDE68A;
	background: #FFFDF5;
}

.cctc-ns-incident__header {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.cctc-ns-incident__title {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(1.5rem, 2vw, 2rem);
	color: var(--cctc-dark);
	margin: 0;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

/* --- Meta rows (area, service, dates) --- */

.cctc-ns-incident__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.5rem;
}

.cctc-ns-meta-item {
	display: flex;
	flex-direction: column;
	gap: 0.2em;
}

.cctc-ns-meta-item__label {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cctc-dark);
	opacity: 0.5;
}

.cctc-ns-meta-item__value {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.375rem;
	color: var(--cctc-dark);
}

/* --- Incident description --- */

.cctc-ns-incident__desc {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.375rem;
	line-height: 1.65;
	color: var(--cctc-dark);
}

.cctc-ns-incident__desc p {
	margin: 0 0 1em;
}

.cctc-ns-incident__desc p:last-child {
	margin-bottom: 0;
}

/* --- Resolved incidents list --- */

.cctc-ns-resolved-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.cctc-ns-resolved-item {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: clamp(1.5rem, 2vw, 2rem) 0;
}

.cctc-ns-resolved-item:first-child {
	padding-top: 0;
}

.cctc-ns-resolved-item__header {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.cctc-ns-resolved-item__title {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: clamp(1.375rem, 1.8vw, 1.75rem);
	color: var(--cctc-dark);
	margin: 0;
	letter-spacing: -0.01em;
}

/* --- Support callout --- */

.cctc-ns-support {
	background: var(--cctc-border);
	border-radius: 1.25rem;
	padding: clamp(2rem, 3vw, 2.75rem) clamp(2rem, 3vw, 3rem);
}

.cctc-ns-support__text {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: 1.375rem;
	line-height: 1.65;
	color: var(--cctc-dark);
	margin: 0;
}

.cctc-ns-support__text a {
	color: var(--cctc-purple);
	text-decoration: underline;
}

.cctc-ns-support__text a:hover {
	opacity: 0.8;
}

@media ( max-width: 1024px ) {
	.cctc-ns {
		padding-left: clamp(2rem, 5vw, 4rem);
		padding-right: clamp(2rem, 5vw, 4rem);
	}
}

@media ( max-width: 600px ) {
	.cctc-ns-operational {
		flex-direction: column;
		align-items: flex-start;
		gap: 1.25rem;
	}

	.cctc-ns-incident__meta {
		gap: 1rem 2rem;
	}
}

/* ==============================================================
   404 PAGE
   ============================================================== */

/* Dark header on 404 (matches service/about/voice pages) */
.error404 .cctc-site-header {
	background: var(--cctc-dark);
	border-bottom-color: rgba(255, 255, 255, 0.12);
}

.error404 .cctc-nav-list > li > a,
.error404 .cctc-header-actions-list li:first-child > a {
	color: var(--cctc-white);
}

.error404 .cctc-nav-list > li > a:hover,
.error404 .cctc-header-actions-list li:first-child > a:hover {
	color: rgba(255, 255, 255, 0.75);
}

.error404 .cctc-nav-list li.menu-item-has-children > a::after {
	filter: brightness(0) invert(1);
}

.error404 .cctc-billpay-icon--dark { display: none; }
.error404 .cctc-billpay-icon--white { display: block; }

.error404 .cctc-mobile-toggle span {
	background: var(--cctc-white);
}

/* 404 layout */
.cctc-404-main {
	min-height: calc(100vh - var(--cctc-header-h));
	display: flex;
	flex-direction: column;
}

.cctc-404-hero {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-xl) var(--page-pad);
}

.cctc-404-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: clamp(1rem, 2vw, 1.5rem);
}

.cctc-404-eyebrow {
	font-family: var(--font-main);
	font-weight: 500;
	font-size: var(--text-md);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.6);
}

.cctc-404-number {
	font-family: var(--font-main);
	font-weight: 700;
	font-size: clamp(7rem, 18vw, 18rem);
	line-height: 1;
	color: var(--cctc-white);
	margin: 0;
	letter-spacing: -0.04em;
}

.cctc-404-heading {
	font-family: var(--font-main);
	font-weight: 600;
	font-size: clamp(2rem, 4vw, 4rem);
	line-height: 1.1;
	color: var(--cctc-white);
	margin: 0;
}

.cctc-404-sub {
	font-family: var(--font-main);
	font-weight: 400;
	font-size: var(--text-base);
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.75);
	margin: 0 0 clamp(0.5rem, 1.5vw, 1rem);
}

@media ( max-width: 600px ) {
	.cctc-404-number {
		font-size: clamp(5rem, 25vw, 8rem);
	}
}
