/*
Theme Name: Combat Computers
Theme URI: https://combatcomputers.com
Author: Combat Computers Inc.
Description: Custom block theme for Combat Computers Inc. — Island-wide IT service since 1998.
Version: 2.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: combat-computers
*/

/* Most styling lives in theme.json. This file holds what theme.json can't express. */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

.cc-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	background: var(--wp--preset--color--accent); color: #000; padding: .75rem 1rem; font-weight: 700;
}
.cc-skip-link:focus { left: 1rem; top: 1rem; }

/* Header */
.cc-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--wp--preset--color--line); }
.admin-bar .cc-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cc-header { top: 46px; } }
.cc-logo img { display: block; height: 60px; width: auto; }
.cc-header-phone {
	color: #fff; text-decoration: none; white-space: nowrap;
	background: #000; padding: .65rem 1.1rem; font-size: 1.05rem;
}
.cc-header-phone:hover { color: var(--wp--preset--color--accent); }
@media (max-width: 1100px) { .cc-header-phone { display: none; } }
@media (max-width: 600px) { .cc-logo img { height: 46px; } }

.wp-block-navigation .wp-block-navigation-item__content { padding-block: .35rem; }
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation a[aria-current="page"] { color: var(--wp--preset--color--accent); }
.wp-block-navigation .wp-block-navigation__submenu-container { border: 1px solid var(--wp--preset--color--line) !important; min-width: 230px !important; }
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem 1rem; }

/* Mobile menu overlay: left-aligned, larger tap targets. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.3rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding: .25rem 0 0 1.25rem !important; border: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.05rem; color: var(--wp--preset--color--muted); padding: 0; }

/* Hero (front page cover + page title band) */
.cc-hero h1 { margin-bottom: .5rem; }
.cc-hero .cc-tagline { font-size: clamp(1.1rem, 2vw, 1.4rem); color: #fff; margin-top: 0; }
.cc-title-band .wp-block-post-excerpt__excerpt { max-width: 720px; margin-inline: auto; }

/* Section headings and intro */
.cc-section-intro { max-width: 720px; margin-inline: auto !important; color: var(--wp--preset--color--muted); }

/* Services (centred columns, like the original) */
.cc-services .wp-block-column { text-align: center; }
.cc-services h3 { color: #fff; font-size: 1.375rem; margin-bottom: .75rem; }
.cc-services p { color: var(--wp--preset--color--muted); }
.cc-icon {
	display: inline-grid; place-items: center;
	width: 56px; height: 56px; margin: 0 auto .5rem !important;
	border: 2px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}
.cc-icon::before { content: ""; width: 26px; height: 26px; background: currentColor; -webkit-mask: var(--cc-i) center / contain no-repeat; mask: var(--cc-i) center / contain no-repeat; }
.cc-icon-shield { --cc-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 6v6c0 4.5 3.4 8.3 8 9 4.6-.7 8-4.5 8-9V6z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.cc-icon-network { --cc-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='3' width='6' height='5' rx='1'/%3E%3Crect x='3' y='16' width='6' height='5' rx='1'/%3E%3Crect x='15' y='16' width='6' height='5' rx='1'/%3E%3Cpath d='M12 8v4M6 16v-2h12v2'/%3E%3C/svg%3E"); }
.cc-icon-cloud { --cc-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 18h10a4 4 0 0 0 .5-8A6 6 0 0 0 6 9.5 4.3 4.3 0 0 0 7 18z'/%3E%3C/svg%3E"); }
.cc-icon-phone { --cc-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.cc-icon-printer { --cc-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 9V3h10v6'/%3E%3Crect x='3' y='9' width='18' height='8' rx='2'/%3E%3Cpath d='M7 14h10v7H7z'/%3E%3C/svg%3E"); }
.cc-icon-laptop { --cc-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='16' height='11' rx='1'/%3E%3Cpath d='M2 19h20'/%3E%3C/svg%3E"); }

/* Partner logos on black, like the original strip */
.cc-partner-logos {
	list-style: none; padding: 0; margin: 2rem auto 0; max-width: 1100px;
	display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.75rem 2.75rem;
}
.cc-partner-logos li { flex: 0 0 auto; }
.cc-partner-logos img { display: block; height: 64px; width: auto; }
@media (max-width: 600px) { .cc-partner-logos { gap: 1rem 1.25rem; } .cc-partner-logos img { height: 44px; } }

/* Checklists */
.cc-checklist { list-style: none; padding-left: 0; }
.cc-checklist li { position: relative; padding-left: 1.75rem; margin-bottom: .6rem; }
.cc-checklist li::before {
	content: ""; position: absolute; left: 0; top: .6em; width: .6rem; height: .6rem;
	background: var(--wp--preset--color--accent);
}
.cc-checklist strong, .wp-block-list strong { color: #fff; }

/* Hours table */
.cc-hours table { border-collapse: collapse; width: 100%; }
.cc-hours td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .55rem 0; }
.cc-hours td:last-child { text-align: right; color: #fff; }

/* Panels (CTA boxes, help card) */
.cc-panel { border-left: 4px solid var(--wp--preset--color--accent); }

/* Page content headings: h3 in white Montserrat */
.entry-content h3, .wp-block-post-content h3 { color: #fff; }

/* FAQ */
.wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line); padding: 1.1rem 0; }
.wp-block-details summary { cursor: pointer; color: #fff; font-size: 1.0625rem; }
.wp-block-details summary::marker { color: var(--wp--preset--color--accent); }
.wp-block-details[open] summary { margin-bottom: .5rem; }

/* Download buttons on Support */
.cc-downloads .wp-block-button__link { min-width: 260px; text-align: center; }

/* Footer */
.cc-footer { border-top: 1px solid var(--wp--preset--color--line); }
.cc-footer-info { text-align: center; }
.cc-footer .cc-footer-heading {
	font-family: var(--wp--preset--font-family--heading); font-size: .95rem;
	color: #fff; letter-spacing: .08em; margin-bottom: .5rem;
}
.cc-footer .wp-block-social-links { gap: 1.25rem; }
.cc-footer-links a { margin: 0 .6rem; text-decoration: none; }
.cc-footer-links a:hover { text-decoration: underline; }

/* Outline buttons: same size as filled ones (core gives them smaller padding). */
.wp-block-button.is-style-outline > .wp-block-button__link { padding: 1.1rem 2rem; border-width: 2px; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--accent); color: #000; }
