/* =============================================================================
   DC360 theme — supplementary styles (v1.1 navy & teal brand)
   All colours come from theme.json presets; the aliases below keep component
   rules readable. WordPress outputs presets on `body`, so aliases live there too.
   ========================================================================== */

:root, body {
	--dc-navy: var(--wp--preset--color--contrast, #081D36);
	--dc-deep-blue: var(--wp--preset--color--contrast-2, #063A64);
	--dc-teal: var(--wp--preset--color--accent, #00C9C7);
	--dc-cyan: var(--wp--preset--color--cyan, #00A8D0);
	--dc-teal-ink: var(--wp--preset--color--accent-ink, #007C80);
	--dc-ink: var(--wp--preset--color--ink, #1A1F24);
	--dc-offwhite: var(--wp--preset--color--surface, #F4F7FA);
	--dc-mist: var(--wp--preset--color--surface-2, #E8EFF5);
	--dc-line: var(--wp--preset--color--line, #D3DDE6);
	--dc-muted: var(--wp--preset--color--muted, #4B5A69);
	--dc-on-dark: var(--wp--preset--color--on-dark-muted, #B6C6D6);
	--dc-white: #FFFFFF;
	--dc-gradient: var(--wp--preset--gradient--brand, linear-gradient(135deg, #063A64 0%, #00A8D0 55%, #00C9C7 100%));
	--dc-radius: var(--wp--custom--radius, 6px);
	--dc-radius-lg: var(--wp--custom--radius-lg, 14px);
	--dc-shadow: var(--wp--custom--shadow, 0 1px 2px rgba(8,29,54,.06), 0 8px 24px rgba(8,29,54,.08));
	--dc-shadow-lg: var(--wp--custom--shadow-lg, 0 2px 4px rgba(8,29,54,.06), 0 18px 48px rgba(8,29,54,.14));
	--dc-rule: 1px solid var(--dc-line);
	--dc-ease: cubic-bezier(.2, .7, .2, 1);
	--dc-icon-url: none;
}

html { scroll-padding-top: 110px; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "cv11", "ss01"; }
img, svg, video, iframe { max-width: 100%; }
::selection { background: var(--dc-teal); color: var(--dc-navy); }
h1, h2, h3, .wp-block-site-title { font-stretch: 112%; }
h1, h2 { text-wrap: balance; }
p { text-wrap: pretty; }

/* Focus: navy ring on light surfaces, teal on navy. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 2px solid var(--dc-deep-blue); outline-offset: 3px; }
:where(.has-contrast-background-color, .has-contrast-2-background-color, .dc360-footer, .dc360-cta-band) :where(a, button, summary, input, select, textarea):focus-visible { outline-color: var(--dc-teal); }

/* Text on navy surfaces. */
.has-contrast-background-color, .has-contrast-2-background-color { color: var(--dc-on-dark); }
:where(.has-contrast-background-color, .has-contrast-2-background-color) :where(h1, h2, h3, h4, h5, h6) { color: var(--dc-white); }
:where(.has-contrast-background-color, .has-contrast-2-background-color) a:where(:not(.wp-element-button)) { color: var(--dc-teal); }

/* Brand signature line at the very top of every page. */
.dc360-site-header::before { content: ""; display: block; height: 3px; background: var(--dc-gradient); }

/* ---------- Header ---------- */
.dc360-site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .dc360-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .dc360-site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .dc360-site-header { top: 0; } }
.dc360-header { border-bottom: var(--dc-rule); box-shadow: 0 1px 0 rgba(8,29,54,.02), 0 6px 18px -12px rgba(8,29,54,.18); }
.dc360-logo { display: inline-flex; align-items: center; line-height: 0; border-radius: 4px; }
.dc360-logo img { display: block; height: 64px; width: auto; }
@media (max-width: 781px) { .dc360-logo img { height: 48px; } }
.dc360-header .wp-block-navigation { font-weight: 600; color: var(--dc-navy); }
.dc360-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { padding-block: .45rem; border-bottom: 2px solid transparent; transition: border-color .15s, color .15s; }
.dc360-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover { color: var(--dc-teal-ink); }
.dc360-header .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.dc360-header .wp-block-navigation-item.current-menu-ancestor > .wp-block-navigation-item__content,
.dc360-header .wp-block-navigation-item [aria-current="page"] { border-bottom-color: var(--dc-teal); }
.dc360-header .wp-block-navigation__submenu-container { border: var(--dc-rule) !important; border-radius: var(--dc-radius-lg); box-shadow: var(--dc-shadow-lg); padding: .5rem 0 !important; min-width: 290px !important; }
.dc360-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem 1.15rem !important; font-weight: 500; }
.dc360-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--dc-offwhite); color: var(--dc-teal-ink); }
.dc360-header-cta .wp-block-button__link { padding: .75rem 1.2rem; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem clamp(1.25rem, 4vw, 2.5rem); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 1rem; font-size: 1.125rem; }
@media (max-width: 599px) {
	.dc360-hide-sm { display: none !important; }
	.dc360-header-cta .wp-block-button__link { padding: .6rem .8rem; font-size: .8125rem; }
}

/* Mobile overlay menu */
.dc360-nav-quote { display: none !important; }
.wp-block-navigation__responsive-container.is-menu-open .dc360-nav-quote { display: flex !important; }
.wp-block-navigation__responsive-container.is-menu-open .dc360-nav-quote .wp-block-navigation-item__content { color: var(--dc-teal-ink); font-weight: 700; }
.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,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.1rem !important; }
.dc360-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: .25rem 0 .25rem 1rem !important; min-width: 0 !important; border-left: 2px solid var(--dc-teal) !important; border-radius: 0; }
.dc360-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .35rem 0 !important; font-size: 1rem; color: var(--dc-muted); }
.dc360-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.25rem; color: var(--dc-navy); }

/* ---------- Typography helpers ---------- */
.is-style-dc360-eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--dc-teal-ink);
	display: flex; align-items: center; gap: .75rem;
}
.is-style-dc360-eyebrow::before { content: ""; width: 1.75rem; height: 2px; border-radius: 2px; background: var(--dc-gradient); flex: none; }
:where(.has-contrast-background-color, .has-contrast-2-background-color, .dc360-cta-band) .is-style-dc360-eyebrow { color: var(--dc-teal); }
.has-text-align-center.is-style-dc360-eyebrow { justify-content: center; }
.dc360-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; max-width: 42em; }
.dc360-h1-kicker { display: block; font-family: var(--wp--preset--font-family--body); font-size: clamp(1rem, 1.6vw, 1.25rem); font-weight: 600; letter-spacing: 0; line-height: 1.4; color: var(--dc-teal); margin-bottom: .9rem; font-stretch: 100%; }

/* ---------- Lists ---------- */
.is-style-dc360-plain { list-style: none; padding-left: 0 !important; }
.is-style-dc360-checks { list-style: none; padding-left: 0 !important; }
.is-style-dc360-checks li { position: relative; padding-left: 2rem; margin-bottom: .7rem; }
.is-style-dc360-checks li::before {
	content: ""; position: absolute; left: 0; top: .2em; width: 1.25rem; height: 1.25rem; border-radius: 50%;
	background: var(--dc-mist) url("../icons/check.svg") center / 70% no-repeat;
	background-blend-mode: normal;
}
.is-style-dc360-checks li::after { content: ""; position: absolute; left: 0; top: .2em; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--dc-teal-ink); -webkit-mask: url("../icons/check.svg") center / 70% no-repeat; mask: url("../icons/check.svg") center / 70% no-repeat; }
.is-style-dc360-checks li::before { background: rgba(0, 201, 199, .14); }
:where(.has-contrast-background-color, .has-contrast-2-background-color) .is-style-dc360-checks li::after { background: var(--dc-teal); }

/* ---------- Cards & groups ---------- */
.is-style-dc360-card {
	position: relative;
	background: var(--dc-white);
	border: var(--dc-rule);
	border-radius: var(--dc-radius-lg);
	padding: clamp(1.5rem, 3vw, 2.1rem);
	height: 100%;
	display: flex; flex-direction: column;
	box-shadow: 0 1px 2px rgba(8,29,54,.04);
	transition: border-color .2s var(--dc-ease), box-shadow .25s var(--dc-ease), transform .25s var(--dc-ease);
	overflow: hidden;
}
.is-style-dc360-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--dc-gradient); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--dc-ease); }
.dc360-card-clickable:hover, .dc360-card-clickable:focus-within { border-color: rgba(0, 168, 208, .45); box-shadow: var(--dc-shadow-lg); transform: translateY(-3px); }
.dc360-card-clickable:hover::before, .dc360-card-clickable:focus-within::before { transform: scaleX(1); }
.is-style-dc360-card .dc360-card-link { margin-top: auto !important; padding-top: 1rem; }
.dc360-card-clickable { cursor: pointer; }
.dc360-card-clickable .dc360-card-link a::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.dc360-card-num { font-family: var(--wp--preset--font-family--mono); font-size: var(--wp--preset--font-size--x-small); color: var(--dc-teal-ink); letter-spacing: .08em; }
.dc360-card-link a { font-weight: 700; text-decoration: none; font-family: var(--wp--preset--font-family--heading); color: var(--dc-teal-ink); }
.dc360-card-link a::after { content: " →"; transition: margin .15s; }
.dc360-card-link a:hover::after { margin-left: .25rem; }

/* Service icon (class added by markup or by the theme’s render filter). */
.dc360-has-icon .dc360-card-num { display: none; }
.dc360-icon { width: 3rem; height: 3rem; border-radius: 12px; display: grid; place-items: center; margin-bottom: 1.1rem; background: linear-gradient(135deg, rgba(6,58,100,.08), rgba(0,201,199,.16)); flex: none; }
.dc360-icon::after { content: ""; width: 1.75rem; height: 1.75rem; background: var(--dc-deep-blue); -webkit-mask: var(--dc-icon-url) center / contain no-repeat; mask: var(--dc-icon-url) center / contain no-repeat; }
.dc360-icon--progress { --dc-icon-url: url("../icons/progress.svg"); }
.dc360-icon--pre-drywall { --dc-icon-url: url("../icons/pre-drywall.svg"); }
.dc360-icon--pre-bid { --dc-icon-url: url("../icons/pre-bid.svg"); }
.dc360-icon--multifamily { --dc-icon-url: url("../icons/multifamily.svg"); }
.dc360-icon--tours { --dc-icon-url: url("../icons/tours.svg"); }
.dc360-icon--remote { --dc-icon-url: url("../icons/remote.svg"); }
.dc360-icon--before-after { --dc-icon-url: url("../icons/before-after.svg"); }
.dc360-icon--residential { --dc-icon-url: url("../icons/residential.svg"); }
.dc360-icon--sphere { --dc-icon-url: url("../icons/sphere.svg"); }
.dc360-icon--eye { --dc-icon-url: url("../icons/eye.svg"); }
.dc360-icon--chat { --dc-icon-url: url("../icons/chat.svg"); }
.dc360-icon--layers { --dc-icon-url: url("../icons/layers.svg"); }
.dc360-icon--hardhat { --dc-icon-url: url("../icons/hardhat.svg"); }
.dc360-icon--share { --dc-icon-url: url("../icons/share.svg"); }
.dc360-icon--shield { --dc-icon-url: url("../icons/shield.svg"); }

.is-style-dc360-ruled { border-top: 2px solid var(--dc-line); padding-top: 1.5rem; position: relative; }
.is-style-dc360-ruled::before { content: ""; position: absolute; top: -2px; left: 0; width: 2.5rem; height: 2px; background: var(--dc-gradient); }
:where(.has-contrast-background-color) .is-style-dc360-ruled { border-top-color: rgba(255,255,255,.14); }
.is-style-dc360-notice {
	border: var(--dc-rule);
	border-left: 4px solid var(--dc-teal-ink);
	background: var(--dc-offwhite);
	padding: 1.25rem 1.5rem;
	border-radius: var(--dc-radius);
	font-size: var(--wp--preset--font-size--small);
}
.is-style-dc360-notice > *:first-child { margin-top: 0; }
.is-style-dc360-notice strong { color: var(--dc-navy); }

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .18s, color .18s, box-shadow .18s, transform .18s; }
.wp-block-button:not(.is-style-dc360-ghost) .wp-block-button__link { box-shadow: 0 6px 16px -8px rgba(0, 168, 208, .65); }
.wp-block-button:not(.is-style-dc360-ghost) .wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-dc360-ghost .wp-block-button__link { background: transparent; color: var(--dc-navy); box-shadow: inset 0 0 0 2px var(--dc-navy); }
.wp-block-button.is-style-dc360-ghost .wp-block-button__link:hover { background: var(--dc-navy); color: var(--dc-white); }
:where(.has-contrast-background-color, .has-contrast-2-background-color, .dc360-cta-band) .wp-block-button.is-style-dc360-ghost .wp-block-button__link { color: var(--dc-white); box-shadow: inset 0 0 0 2px rgba(255,255,255,.75); }
:where(.has-contrast-background-color, .has-contrast-2-background-color, .dc360-cta-band) .wp-block-button.is-style-dc360-ghost .wp-block-button__link:hover { background: var(--dc-white); color: var(--dc-navy); box-shadow: inset 0 0 0 2px var(--dc-white); }
:where(.has-contrast-background-color, .has-contrast-2-background-color, .dc360-cta-band) .wp-block-button:not(.is-style-dc360-ghost) .wp-block-button__link:hover { background: var(--dc-white); color: var(--dc-navy); }
.wp-block-button .wp-block-button__link.has-base-color { color: var(--dc-white); }

/* ---------- Hero (home) ---------- */
.dc360-hero { position: relative; overflow: hidden; isolation: isolate; background-image: radial-gradient(60% 80% at 85% 20%, rgba(0, 168, 208, .22), transparent 60%), radial-gradient(50% 60% at 0% 100%, rgba(6, 58, 100, .9), transparent 70%); }
.dc360-hero::before, .dc360-hero::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; border: 1px solid rgba(0, 201, 199, .18); pointer-events: none; }
.dc360-hero::before { width: 1100px; height: 420px; right: -260px; top: 40px; transform: rotate(-18deg); }
.dc360-hero::after { width: 760px; height: 280px; right: -120px; top: 120px; transform: rotate(-18deg); border-color: rgba(0, 168, 208, .14); }
.dc360-hero h1 { max-width: 15ch; color: var(--dc-white); }
.dc360-hero .dc360-lead { color: #D3DEE9; }
.dc360-hero .dc360-hero-art img { width: 100%; height: auto; display: block; }
.dc360-hero .dc360-hero-art { margin: 0; filter: drop-shadow(0 30px 60px rgba(0, 0, 0, .35)); }
.dc360-capabilities { border-top: 1px solid rgba(255,255,255,.12); }
.dc360-capabilities p { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--dc-on-dark); }
.dc360-capabilities strong { color: var(--dc-white); display: flex; align-items: center; gap: .55rem; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: var(--wp--preset--font-size--medium); margin-bottom: .2rem; }
.dc360-capabilities strong::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--dc-teal); box-shadow: 0 0 0 4px rgba(0, 201, 199, .18); flex: none; }

/* ---------- Page hero ---------- */
.dc360-page-hero { position: relative; overflow: hidden; isolation: isolate; border-bottom: var(--dc-rule); }
.dc360-page-hero::before { content: ""; position: absolute; z-index: -1; width: 900px; height: 340px; right: -320px; top: -60px; border-radius: 50%; border: 1px solid rgba(0, 168, 208, .22); transform: rotate(-18deg); }
.dc360-page-hero::after { content: ""; position: absolute; z-index: -1; width: 560px; height: 210px; right: -160px; top: 30px; border-radius: 50%; border: 1px solid rgba(0, 201, 199, .2); transform: rotate(-18deg); }
.dc360-page-hero h1 { max-width: 20ch; }
.dc360-page-hero .is-style-dc360-card { box-shadow: var(--dc-shadow); border-top: 3px solid var(--dc-teal); }
.dc360-page-hero .is-style-dc360-card p strong { color: var(--dc-navy); }

/* ---------- Steps ---------- */
.dc360-steps { position: relative; }
.dc360-steps > .wp-block-column { position: relative; border-top: 2px solid var(--dc-line); padding-top: 1.5rem; }
.dc360-steps > .wp-block-column::before { content: ""; position: absolute; top: -2px; left: 0; width: 100%; height: 2px; background: var(--dc-gradient); transform: scaleX(.18); transform-origin: left; }
.dc360-step-num { display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--dc-navy); color: var(--dc-teal) !important; font-family: var(--wp--preset--font-family--heading) !important; font-weight: 700; font-size: .875rem !important; margin-bottom: .75rem !important; }
:where(.has-surface-background-color) .dc360-step-num { background: var(--dc-navy); }

/* ---------- Scope strip ---------- */
.dc360-scope { border-top: var(--dc-rule); border-bottom: var(--dc-rule); padding-block: 1.25rem; }
.dc360-scope strong { color: var(--dc-navy); font-family: var(--wp--preset--font-family--heading); font-size: 1.125rem; font-stretch: 112%; }
.dc360-scope .wp-block-column + .wp-block-column { border-left: var(--dc-rule); padding-left: clamp(1rem, 2vw, 2rem); }
@media (max-width: 781px) { .dc360-scope .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; border-top: var(--dc-rule); padding-top: 1rem; } }

/* ---------- Images ---------- */
.wp-block-image img { height: auto; }
.wp-block-image.is-style-dc360-placeholder img { border-radius: var(--dc-radius-lg); outline: 1px dashed var(--dc-line); outline-offset: -1px; }
.wp-block-image.is-style-default img, .wp-block-cover { border-radius: var(--dc-radius-lg); }

/* ---------- FAQ (details) ---------- */
.wp-block-details { border-bottom: var(--dc-rule); }
.wp-block-details summary { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: var(--wp--preset--font-size--large); color: var(--dc-navy); cursor: pointer; list-style: none; position: relative; padding-right: 2.5rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 0; top: -.1rem; width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border-radius: 50%; background: var(--dc-offwhite); color: var(--dc-teal-ink); font-weight: 500; transition: transform .2s, background-color .2s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); background: var(--dc-teal); color: var(--dc-navy); }
.wp-block-details > :not(summary) { margin-top: .75rem; color: var(--dc-muted); }

/* ---------- CTA band (accent-background sections from earlier content) ---------- */
.dc360-cta-band, .wp-block-group.alignfull.has-accent-background-color {
	position: relative; isolation: isolate; overflow: hidden;
	background: var(--wp--preset--gradient--navy-depth, linear-gradient(160deg, #081D36 0%, #0A2A4D 60%, #063A64 100%)) !important;
	color: var(--dc-on-dark) !important;
}
.dc360-cta-band::before, .wp-block-group.alignfull.has-accent-background-color::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--dc-gradient); }
.dc360-cta-band::after, .wp-block-group.alignfull.has-accent-background-color::after { content: ""; position: absolute; z-index: -1; width: 700px; height: 260px; right: -180px; bottom: -120px; border-radius: 50%; border: 1px solid rgba(0, 201, 199, .25); transform: rotate(-18deg); }
:where(.dc360-cta-band, .wp-block-group.alignfull.has-accent-background-color) :where(h1, h2, h3) { color: var(--dc-white) !important; }
:where(.dc360-cta-band, .wp-block-group.alignfull.has-accent-background-color) p { color: #D3DEE9 !important; }
.wp-block-group.alignfull.has-accent-background-color .wp-block-button__link { background: var(--dc-teal); color: var(--dc-navy); }

/* ---------- Projects ---------- */
.dc360-project-card .wp-block-post-featured-image { margin-bottom: 1rem; overflow: hidden; border-radius: var(--dc-radius-lg); }
.dc360-project-card .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; transition: transform .4s var(--dc-ease); }
.dc360-project-card:hover .wp-block-post-featured-image img { transform: scale(1.02); }
.dc360-project-card .wp-block-post-terms { font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; letter-spacing: .08em; color: var(--dc-muted); }
.dc360-project-card .wp-block-post-terms a { color: inherit; text-decoration: none; }

/* ---------- Tables ---------- */
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); }
.wp-block-table td, .wp-block-table th { border: 0; border-bottom: var(--dc-rule); padding: .75rem .5rem .75rem 0; text-align: left; vertical-align: top; }
.wp-block-table thead { border-bottom: 2px solid var(--dc-navy); }

/* ---------- Footer ---------- */
.dc360-footer { position: relative; background-image: radial-gradient(50% 70% at 100% 0%, rgba(0, 168, 208, .14), transparent 60%); }
.dc360-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--dc-gradient); }
.dc360-footer a { color: var(--dc-white); text-decoration: none; }
.dc360-footer a:hover { color: var(--dc-teal); text-decoration: underline; }
.dc360-footer-heading { font-size: var(--wp--preset--font-size--x-small) !important; text-transform: uppercase; letter-spacing: .14em; color: var(--dc-teal) !important; margin-bottom: 1rem; font-stretch: 100% !important; }
.dc360-footer .is-style-dc360-plain li { margin-bottom: .5rem; }
.dc360-footer-brand { display: flex; align-items: center; gap: .85rem; }
.dc360-footer-brand img { width: 52px; height: 52px; border-radius: 12px; box-shadow: 0 0 0 1px rgba(255,255,255,.08); }
.dc360-footer-brand .wp-block-site-title, .dc360-footer-brand .dc360-footer-name { margin: 0; color: var(--dc-white); font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: 1.5rem; font-stretch: 118%; letter-spacing: .01em; }
.dc360-footer-tagline { color: var(--dc-teal) !important; font-family: var(--wp--preset--font-family--heading); font-weight: 700; letter-spacing: .02em; }
.dc360-footer .dc360-legal { list-style: none; padding: 0 !important; margin: 0; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }

/* ---------- Project facts / demo ---------- */
.dc360-facts__list { margin: 0; border-top: 2px solid var(--dc-navy); }
.dc360-facts__list > div { padding: .85rem 0; border-bottom: var(--dc-rule); }
.dc360-facts__list dt { font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; letter-spacing: .1em; color: var(--dc-muted); }
.dc360-facts__list dd { margin: .2rem 0 0; font-weight: 600; color: var(--dc-navy); }
.dc360-facts__h { font-size: var(--wp--preset--font-size--medium) !important; margin-top: 2rem; }
.dc360-facts__stages { padding-left: 1.25rem; font-size: var(--wp--preset--font-size--small); }
.dc360-facts__quote { margin: 2rem 0 0; padding-left: 1.25rem; border-left: 3px solid var(--dc-teal); }
.dc360-facts__quote cite { display: block; font-style: normal; font-size: var(--wp--preset--font-size--small); color: var(--dc-muted); margin-top: .5rem; }
.dc360-demo-banner { background: #FFF4D6; border: 2px dashed #8A6100; padding: 1rem 1.25rem; margin-bottom: 2rem; color: #3D2B00; }

/* ---------- Layout utilities ---------- */
.dc360-main .wp-block-post-content > .alignfull:first-child { margin-top: 0; }
.is-style-dc360-card.dc360-aside { height: auto; position: sticky; top: 110px; }
.dc360-quote fieldset > .dc360-field { margin-top: 1.1rem; }
.has-global-padding > .alignfull.has-global-padding { padding-left: var(--wp--style--root--padding-left); padding-right: var(--wp--style--root--padding-right); }
@media (max-width: 781px) {
	.wp-block-columns { gap: var(--wp--preset--spacing--40) !important; }
	.dc360-reverse-mobile { flex-direction: column-reverse; }
	.dc360-hero::before, .dc360-hero::after { opacity: .5; }
}
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.dc360-card-clickable:hover, .dc360-card-clickable:focus-within { transform: none; }
}

/* ---------- Tablet (782–1100px) ---------- */
@media (min-width: 600px) and (max-width: 1100px) {
	/* Use the overlay menu on tablets so the header never wraps. */
	.dc360-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.dc360-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.dc360-header .wp-block-navigation__responsive-container.is-menu-open { display: flex; }
}
@media (min-width: 782px) and (max-width: 1100px) {
	/* Four- and five-column rows become two per row. */
	.wp-block-columns:has(> .wp-block-column:nth-child(4)) { flex-wrap: wrap !important; }
	.wp-block-columns:has(> .wp-block-column:nth-child(4)) > .wp-block-column { flex-basis: calc(50% - var(--wp--preset--spacing--40)) !important; flex-grow: 0; }
}
