/*
Theme Name: Capital Dumpster Rentals
Theme URI: https://capitaldumpsterrentals.us
Author: Right Now Marketing Group
Author URI: https://capitaldumpsterrentals.us
Description: Standalone, plugin-free WordPress theme for a nationwide roll-off dumpster rental business. On activation it builds a 4-page website (Home, About, Dumpster Sizes, Contact) from core Gutenberg blocks. Business details resolve at render time through a {{token}} system driven by the theme settings page.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: capital-dumpster
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
	/* Palette - charcoal + concrete, safety yellow for action */
	--cdr-charcoal:     #1c1f24;
	--cdr-charcoal-800: #262a31;
	--cdr-charcoal-700: #343a43;
	--cdr-steel:        #8a929c;

	--cdr-yellow:       #ffc629;   /* buttons, accents - use with charcoal text */
	--cdr-yellow-600:   #f0b400;   /* hover */
	--cdr-yellow-100:   #fff4cc;

	--cdr-ink:          #15171b;
	--cdr-body:         #3d434c;
	--cdr-muted:        #575f6a;   /* 5:1 on concrete */
	--cdr-line:         #dcd9d2;

	--cdr-bg:           #ffffff;
	--cdr-concrete:     #e7e5e0;
	--cdr-concrete-50:  #f4f3f0;

	--cdr-stripe: repeating-linear-gradient(-45deg, var(--cdr-yellow) 0 14px, var(--cdr-charcoal) 14px 28px);

	/* Type */
	--cdr-font-head: "Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
	--cdr-font-body: "Barlow", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

	--cdr-h1:   clamp(2.8rem, 1.7rem + 4.6vw, 5.4rem);
	--cdr-h2:   clamp(2.1rem, 1.5rem + 2.4vw, 3.5rem);
	--cdr-h3:   clamp(1.3rem, 1.2rem + 0.45vw, 1.6rem);
	--cdr-lead: clamp(1.08rem, 1rem + 0.35vw, 1.25rem);

	/* Layout */
	--cdr-wrap:     1200px;
	--cdr-narrow:   760px;
	--cdr-gutter:   clamp(1rem, 0.5rem + 2.2vw, 2.25rem);
	--cdr-section:  clamp(3.75rem, 2.5rem + 5.5vw, 7rem);
	--cdr-header-h: 78px;

	/* Shape - square, industrial */
	--cdr-r-sm: 3px;
	--cdr-r:    6px;
	--cdr-r-lg: 10px;

	--cdr-shadow:      0 8px 24px -10px rgba(21, 23, 27, .28);
	--cdr-shadow-hard: 6px 6px 0 var(--cdr-charcoal);
	--cdr-shadow-yel:  8px 8px 0 var(--cdr-yellow);

	--cdr-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--cdr-header-h) + 16px);
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

body {
	margin: 0;
	font-family: var(--cdr-font-body);
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--cdr-body);
	background: var(--cdr-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--cdr-font-head);
	color: var(--cdr-ink);
	line-height: 1;
	letter-spacing: 0;
	font-weight: 800;
	margin: 0 0 .5em;
	text-wrap: balance;
}
h1 { font-size: var(--cdr-h1); text-transform: uppercase; }
h2 { font-size: var(--cdr-h2); text-transform: uppercase; }
h3 { font-size: var(--cdr-h3); font-weight: 700; line-height: 1.15; }
h4 { font-size: 1.15rem; font-weight: 700; }

p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

a {
	color: var(--cdr-ink);
	text-decoration: underline;
	text-decoration-color: var(--cdr-yellow);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
	transition: color .18s var(--cdr-ease), text-decoration-color .18s var(--cdr-ease);
}
a:hover { text-decoration-color: var(--cdr-ink); }

strong { color: var(--cdr-ink); font-weight: 700; }

:focus-visible {
	outline: 3px solid var(--cdr-yellow);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--cdr-charcoal);
}

::selection { background: var(--cdr-yellow); color: var(--cdr-ink); }

.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;
}

.skip-link {
	position: absolute;
	left: 1rem;
	top: -100px;
	z-index: 1000;
	background: var(--cdr-yellow);
	color: var(--cdr-ink);
	padding: .75rem 1.1rem;
	font-weight: 700;
	text-decoration: none;
}
.skip-link:focus { top: 1rem; }

/* ============================================================
   CONTENT FLOW
   The entry content is full width, so .alignfull needs no
   100vw breakout (which causes sideways scroll on Windows).
   ============================================================ */
.cdr-main { display: block; }

.entry-content > *:not(.alignfull) {
	max-width: var(--cdr-wrap);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--cdr-gutter);
	padding-right: var(--cdr-gutter);
}
.entry-content > .alignfull {
	width: auto;
	max-width: none;
	margin: 0;
}

.cdr-section {
	position: relative;
	padding: var(--cdr-section) var(--cdr-gutter);
}
.cdr-section > *,
.cdr-wrap {
	max-width: var(--cdr-wrap);
	margin-left: auto;
	margin-right: auto;
}
.cdr-wrap { padding-left: var(--cdr-gutter); padding-right: var(--cdr-gutter); }
.cdr-section > .cdr-wrap { padding-left: 0; padding-right: 0; }

/* Standard page/single fallback content */
.cdr-page:not(.cdr-builder) .entry-content,
.cdr-single .entry-content,
.cdr-index {
	padding-top: clamp(2.5rem, 2rem + 3vw, 4.5rem);
	padding-bottom: clamp(3rem, 2rem + 4vw, 5.5rem);
}
.cdr-single .entry-header {
	max-width: var(--cdr-narrow);
	margin: 0 auto;
	padding: clamp(3rem, 2rem + 4vw, 5rem) var(--cdr-gutter) 0;
}
.cdr-single .entry-content > * { max-width: var(--cdr-narrow); }

/* ============================================================
   BUTTONS - one system for block buttons and PHP buttons.
   Block modifiers stay scoped to .wp-block-button.cdr-btn--x so
   they never paint the wrapper div.
   ============================================================ */
.wp-block-buttons { gap: .75rem; }

.cdr-btn,
.wp-block-button .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	min-height: 54px;
	padding: .8rem 1.6rem;
	border-radius: var(--cdr-r-sm);
	border: 2px solid transparent;
	font-family: var(--cdr-font-head);
	font-size: 1.12rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	line-height: 1.1;
	text-decoration: none;
	cursor: pointer;
	transition: transform .16s var(--cdr-ease), box-shadow .16s var(--cdr-ease), background-color .16s var(--cdr-ease), color .16s var(--cdr-ease), border-color .16s var(--cdr-ease);
}
.cdr-btn:hover,
.wp-block-button .wp-block-button__link:hover {
	transform: translate(-2px, -2px);
	box-shadow: 4px 4px 0 var(--cdr-charcoal);
}
.cdr-btn:active,
.wp-block-button .wp-block-button__link:active { transform: none; box-shadow: none; }
@media (prefers-reduced-motion: reduce) {
	.cdr-btn:hover,
	.wp-block-button .wp-block-button__link:hover { transform: none; }
}

/* default + primary: safety yellow */
.cdr-btn.cdr-btn--primary,
.wp-block-button .wp-block-button__link,
.wp-block-button.cdr-btn--primary .wp-block-button__link {
	background: var(--cdr-yellow);
	border-color: var(--cdr-yellow);
	color: var(--cdr-ink);
}
.cdr-btn.cdr-btn--primary:hover,
.wp-block-button .wp-block-button__link:hover,
.wp-block-button.cdr-btn--primary .wp-block-button__link:hover {
	background: var(--cdr-yellow-600);
	border-color: var(--cdr-charcoal);
	color: var(--cdr-ink);
}

/* charcoal solid */
.cdr-btn.cdr-btn--dark,
.wp-block-button.cdr-btn--dark .wp-block-button__link {
	background: var(--cdr-charcoal);
	border-color: var(--cdr-charcoal);
	color: #fff;
}
.cdr-btn.cdr-btn--dark:hover,
.wp-block-button.cdr-btn--dark .wp-block-button__link:hover {
	background: var(--cdr-charcoal-700);
	color: #fff;
	box-shadow: 4px 4px 0 var(--cdr-yellow);
}

/* outline on light surfaces */
.cdr-btn.cdr-btn--ghost,
.wp-block-button.cdr-btn--ghost .wp-block-button__link {
	background: transparent;
	border-color: var(--cdr-charcoal);
	color: var(--cdr-ink);
}
.cdr-btn.cdr-btn--ghost:hover,
.wp-block-button.cdr-btn--ghost .wp-block-button__link:hover {
	background: var(--cdr-charcoal);
	color: #fff;
	box-shadow: 4px 4px 0 var(--cdr-yellow);
}

/* outline on dark surfaces */
.cdr-btn.cdr-btn--light,
.wp-block-button.cdr-btn--light .wp-block-button__link {
	background: transparent;
	border-color: rgba(255, 255, 255, .6);
	color: #fff;
}
.cdr-btn.cdr-btn--light:hover,
.wp-block-button.cdr-btn--light .wp-block-button__link:hover {
	background: var(--cdr-yellow);
	border-color: var(--cdr-yellow);
	color: var(--cdr-ink);
	box-shadow: 4px 4px 0 #fff;
}

/* phone icon prefix */
.wp-block-button.cdr-btn--call .wp-block-button__link::before,
.cdr-btn.cdr-btn--call::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--cdr-i-phone) center / contain no-repeat;
	mask: var(--cdr-i-phone) center / contain no-repeat;
}

/* arrow suffix */
.wp-block-button.cdr-btn--arrow .wp-block-button__link::after,
.cdr-btn.cdr-btn--arrow::after {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: var(--cdr-i-arrow) center / contain no-repeat;
	mask: var(--cdr-i-arrow) center / contain no-repeat;
	transition: transform .16s var(--cdr-ease);
}
.wp-block-button.cdr-btn--arrow .wp-block-button__link:hover::after,
.cdr-btn.cdr-btn--arrow:hover::after { transform: translateX(3px); }

/* ============================================================
   ICON SET - CSS masks (no icon library). Stroke icons, 24px grid.
   ============================================================ */
:root {
	--cdr-i-phone: 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='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
	--cdr-i-arrow: 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.4' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--cdr-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	--cdr-i-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
	--cdr-i-mail: 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-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E");
	--cdr-i-pin: 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 22s7-6.2 7-12a7 7 0 1 0-14 0c0 5.8 7 12 7 12z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
	--cdr-i-clock: 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%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
	--cdr-i-chat: 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='M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.6A8 8 0 1 1 21 12z'/%3E%3C/svg%3E");
	--cdr-i-home: 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='M3 11l9-7 9 7'/%3E%3Cpath d='M5 10v10h14V10'/%3E%3Cpath d='M10 20v-6h4v6'/%3E%3C/svg%3E");
	--cdr-i-hammer: 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='M14 4l6 6-3 3-6-6z'/%3E%3Cpath d='M11 7L3 15l3 3 8-8'/%3E%3Cpath d='M15 3l2-1 5 5-1 2'/%3E%3C/svg%3E");
	--cdr-i-roof: 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='M2 13L12 5l10 8'/%3E%3Cpath d='M6 10.5L12 6l6 4.5'/%3E%3Cpath d='M5 13v7h14v-7'/%3E%3Cpath d='M16 6V3h2v4.5'/%3E%3C/svg%3E");
	--cdr-i-building: 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='3' width='11' height='18' rx='1'/%3E%3Cpath d='M15 9h4a1 1 0 0 1 1 1v11H15'/%3E%3Cpath d='M8 7h3M8 11h3M8 15h3'/%3E%3C/svg%3E");
	--cdr-i-leaf: 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 19c0-9 6-14 15-14 0 9-5 15-14 15'/%3E%3Cpath d='M5 19l8-8'/%3E%3C/svg%3E");
	--cdr-i-box: 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='M21 8l-9-5-9 5 9 5 9-5z'/%3E%3Cpath d='M3 8v8l9 5 9-5V8'/%3E%3Cpath d='M12 13v8'/%3E%3C/svg%3E");
	--cdr-i-truck: 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='M2 6h11v10H2z'/%3E%3Cpath d='M13 9h4l4 4v3h-8'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E");
	--cdr-i-calendar: 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='3' y='5' width='18' height='16' rx='1'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
	--cdr-i-dumpster: 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='M2 8h20l-2 10H4z'/%3E%3Cpath d='M9 8v10M15 8v10'/%3E%3Ccircle cx='7' cy='20' r='1.2'/%3E%3Ccircle cx='17' cy='20' r='1.2'/%3E%3C/svg%3E");
	--cdr-i-tag: 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='M20.6 13.4l-7.2 7.2a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='8' cy='8' r='1.5'/%3E%3C/svg%3E");
	--cdr-i-shield: 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 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M8.5 12l2.5 2.5L15.5 10'/%3E%3C/svg%3E");
	--cdr-i-hardhat: 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='M2 18h20'/%3E%3Cpath d='M4 18v-2a8 8 0 0 1 16 0v2'/%3E%3Cpath d='M10 8V5h4v3'/%3E%3C/svg%3E");
	--cdr-i-map: 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='M9 4L3 6v14l6-2 6 2 6-2V4l-6 2z'/%3E%3Cpath d='M9 4v14M15 6v14'/%3E%3C/svg%3E");
	--cdr-i-ruler: 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='2' y='8' width='20' height='8' rx='1'/%3E%3Cpath d='M6 8v3M10 8v4M14 8v3M18 8v4'/%3E%3C/svg%3E");
}

.cdr-ico {
	display: inline-grid;
	place-items: center;
	width: 54px;
	height: 54px;
	border-radius: var(--cdr-r-sm);
	background: var(--cdr-yellow);
	color: var(--cdr-ink);
	flex: none;
}
.cdr-ico::before {
	content: "";
	width: 26px;
	height: 26px;
	background: currentColor;
	-webkit-mask: var(--cdr-i, var(--cdr-i-dumpster)) center / contain no-repeat;
	mask: var(--cdr-i, var(--cdr-i-dumpster)) center / contain no-repeat;
}
.cdr-ico--phone     { --cdr-i: var(--cdr-i-phone); }
.cdr-ico--mail      { --cdr-i: var(--cdr-i-mail); }
.cdr-ico--pin       { --cdr-i: var(--cdr-i-pin); }
.cdr-ico--clock     { --cdr-i: var(--cdr-i-clock); }
.cdr-ico--chat      { --cdr-i: var(--cdr-i-chat); }
.cdr-ico--home      { --cdr-i: var(--cdr-i-home); }
.cdr-ico--hammer    { --cdr-i: var(--cdr-i-hammer); }
.cdr-ico--roof      { --cdr-i: var(--cdr-i-roof); }
.cdr-ico--building  { --cdr-i: var(--cdr-i-building); }
.cdr-ico--leaf      { --cdr-i: var(--cdr-i-leaf); }
.cdr-ico--box       { --cdr-i: var(--cdr-i-box); }
.cdr-ico--truck     { --cdr-i: var(--cdr-i-truck); }
.cdr-ico--calendar  { --cdr-i: var(--cdr-i-calendar); }
.cdr-ico--dumpster  { --cdr-i: var(--cdr-i-dumpster); }
.cdr-ico--tag       { --cdr-i: var(--cdr-i-tag); }
.cdr-ico--shield    { --cdr-i: var(--cdr-i-shield); }
.cdr-ico--hardhat   { --cdr-i: var(--cdr-i-hardhat); }
.cdr-ico--map       { --cdr-i: var(--cdr-i-map); }
.cdr-ico--ruler     { --cdr-i: var(--cdr-i-ruler); }
.cdr-ico--dark      { background: var(--cdr-charcoal); color: var(--cdr-yellow); }
