/* ==========================================================================
   Polymer Printing — brand tokens and base styles
   Source of truth: docs/Polymer-Printing-Brand-Style-Guide.pdf (v1.0)
   ========================================================================== */

:root {
	/* Color */
	--pp-navy:      #0A1F35; /* Deep Navy — hero, footer */
	--pp-blue:      #16609F; /* Polymer Blue — primary, links */
	--pp-blue-dark: #0F4A7D; /* link hover */
	--pp-blue-mid:  #3F84C0; /* Mid Blue — details (white text: large only) */
	--pp-sky:       #8DCAFF; /* Sky — accents on dark only */
	--pp-orange:    #F5A33B; /* Filament Orange — main CTA, navy text */
	--pp-graphite:  #383838; /* body text, wordmark */
	--pp-slate:     #5B6673; /* secondary text */
	--pp-mist:      #F2F6FA; /* section backgrounds */
	--pp-border:    #DCE4EC;
	--pp-tint:      #E6F1FB; /* tag/pill background */

	/* Type */
	--pp-font-display: 'Montserrat', 'Arial', sans-serif;
	--pp-font-body:    'IBM Plex Sans', 'Arial', sans-serif;
	--pp-font-mono:    'IBM Plex Mono', 'Courier New', monospace;

	/* Shape & spacing (8px grid) */
	--pp-radius-sm: 8px;
	--pp-radius:    12px;
	--pp-radius-lg: 16px;
	--pp-space:     8px;
}

/* Base ------------------------------------------------------------------ */
body {
	font-family: var(--pp-font-body);
	color: var(--pp-graphite);
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.site-title {
	font-family: var(--pp-font-display);
	color: #1E2A36;
	letter-spacing: -0.01em;
}

a { color: var(--pp-blue); }
a:hover, a:focus { color: var(--pp-blue-dark); }

:focus-visible {
	outline: 3px solid var(--pp-sky);
	outline-offset: 2px;
}

/* Utilities ------------------------------------------------------------- */
.pp-label {
	font-family: var(--pp-font-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--pp-blue);
}

.pp-btn {
	display: inline-block;
	font-family: var(--pp-font-display);
	font-weight: 600;
	padding: 1rem 1.75rem;
	min-height: 44px;
	border-radius: var(--pp-radius-sm);
	text-decoration: none;
}
.pp-btn--cta     { background: var(--pp-orange); color: var(--pp-navy); }
.pp-btn--primary { background: var(--pp-blue);   color: #fff; }
.pp-btn--outline { border: 1px solid var(--pp-blue); color: var(--pp-blue); }

/* Layer-line texture (behind photo slots / hero panels, never behind text) */
.pp-layer-lines {
	background-color: #E8EEF4;
	background-image: repeating-linear-gradient(0deg, rgba(22,96,159,.07) 0 2px, transparent 2px 8px);
}
.pp-layer-lines--dark {
	background-color: #12304F;
	background-image: repeating-linear-gradient(0deg, rgba(141,202,255,.10) 0 2px, transparent 2px 8px);
}

/* ==========================================================================
   Layout helpers
   ========================================================================== */
.pp-wrap { max-width: 1280px; margin: 0 auto; padding: 0 clamp(16px, 5vw, 80px); box-sizing: border-box; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.pp-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--pp-orange); color: var(--pp-navy); padding: 10px 16px; border-radius: var(--pp-radius-sm); font-weight: 600; }
.pp-skip:focus { left: 8px; }

/* Wordmark --------------------------------------------------------------- */
.pp-wordmark { display: inline-flex; flex-direction: column; line-height: 1; }
.pp-wordmark__top { font-family: var(--pp-font-display); font-weight: 700; font-size: 24px; color: var(--pp-graphite); letter-spacing: -0.3px; }
.pp-wordmark__sub { font-family: var(--pp-font-display); font-weight: 500; font-size: 11px; color: var(--pp-graphite); letter-spacing: 3.6px; margin-top: 5px; }
.pp-wordmark--light .pp-wordmark__top { color: #fff; }
.pp-wordmark--light .pp-wordmark__sub { color: #C9D8E6; }

/* Header ----------------------------------------------------------------- */
.pp-header { background: #fff; border-bottom: 1px solid var(--pp-border); position: relative; z-index: 50; }
.pp-header__inner { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.pp-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.pp-logo:hover .pp-wordmark__top { color: var(--pp-blue); }
.pp-nav { display: flex; align-items: center; gap: 36px; }
.pp-menu { display: flex; gap: 36px; list-style: none; margin: 0; padding: 0; }
.pp-menu a { color: var(--pp-graphite); font-size: 15px; font-weight: 500; text-decoration: none; padding: 8px 0; }
.pp-menu a:hover, .pp-menu .current-menu-item > a, .pp-menu a[aria-current="page"] { color: var(--pp-blue); }
.pp-menu .current-menu-item > a { box-shadow: inset 0 -2px 0 var(--pp-blue); }
.pp-nav__cta.pp-btn { padding: 13px 22px; font-size: 15px; font-family: var(--pp-font-body); }
.pp-nav__cta.pp-btn:hover { background: var(--pp-blue-dark); color: #fff; }
.pp-nav-toggle { display: none; background: none; border: 0; width: 48px; height: 48px; padding: 12px; cursor: pointer; border-radius: var(--pp-radius-sm); }
.pp-nav-toggle__bars, .pp-nav-toggle__bars::before, .pp-nav-toggle__bars::after { display: block; width: 24px; height: 2px; background: var(--pp-graphite); border-radius: 2px; position: relative; transition: transform .2s, background .2s; }
.pp-nav-toggle__bars::before, .pp-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.pp-nav-toggle__bars::before { top: -7px; }
.pp-nav-toggle__bars::after { top: 7px; }
.pp-nav-open .pp-nav-toggle__bars { background: transparent; }
.pp-nav-open .pp-nav-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.pp-nav-open .pp-nav-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 960px) {
	.pp-header__inner { min-height: 68px; }
	.pp-logo .pp-mark { width: 56px; height: 34px; }
	.pp-nav-toggle { display: block; }
	.pp-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--pp-border); box-shadow: 0 12px 24px rgba(10,31,53,.08); flex-direction: column; align-items: stretch; gap: 0; padding: 8px clamp(16px, 5vw, 80px) 24px; }
	.pp-nav-open .pp-nav { display: flex; }
	.pp-menu { flex-direction: column; gap: 0; }
	.pp-menu a { display: block; padding: 14px 0; font-size: 17px; border-bottom: 1px solid var(--pp-border); }
	.pp-menu .current-menu-item > a { box-shadow: none; }
	.pp-nav__cta.pp-btn { margin-top: 20px; text-align: center; }
}

/* Footer ----------------------------------------------------------------- */
.pp-footer { background: var(--pp-navy); color: #C9D8E6; font-size: 15px; padding: 64px 0 40px; margin-top: 96px; }
.pp-footer a { color: #C9D8E6; text-decoration: none; }
.pp-footer a:hover { color: #fff; text-decoration: underline; }
.pp-footer__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
.pp-footer__brand p { margin: 14px 0 0; line-height: 1.6; }
.pp-footer__col { display: flex; flex-direction: column; gap: 10px; }
.pp-footer__col address { font-style: normal; line-height: 1.6; }
.pp-footer__label { font-family: var(--pp-font-mono); font-size: 12px; font-weight: 400; color: var(--pp-sky); letter-spacing: 1px; text-transform: uppercase; margin: 0 0 4px; }
.pp-footer .pp-footer__strong { color: #fff; }
.pp-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.pp-footer__bottom { border-top: 1px solid #1F3E5E; margin-top: 48px; padding-top: 24px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; color: #9FB4C8; }
.pp-footer__bottom a { color: #9FB4C8; }
@media (max-width: 960px) { .pp-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pp-footer { margin-top: 64px; } .pp-footer__grid { grid-template-columns: 1fr; gap: 32px; } }

/* Astra defaults we don't want --------------------------------------------- */
.ast-separate-container { background: #fff; }

/* ==========================================================================
   0.2.1 fixes from first visual review
   ========================================================================== */
/* Page content: align with header/footer, readable line length, breathing room */
.ast-plain-container #content > .ast-container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 clamp(16px, 5vw, 80px);
	box-sizing: border-box;
}
.ast-plain-container .site-main > article { padding-top: clamp(32px, 6vw, 64px); }
.page-template-default .entry-content:not(.pp-prose) > *:not(.forminator-ui):not(.alignwide):not(.alignfull) { max-width: 760px; }
.entry-content h2 { margin-top: 1.6em; }
.entry-content h2:first-child { margin-top: 0; }
.ast-plain-container .entry-header { margin-bottom: 1rem; }

/* Buttons: never underlined, proper hover states */
.pp-btn, .entry-content a.pp-btn, .pp-btn:hover, .pp-btn:focus { text-decoration: none !important; }
.pp-btn--cta:hover, .pp-btn--cta:focus { background: #E8922A; color: var(--pp-navy); }
.pp-btn--primary:hover, .pp-btn--primary:focus { background: var(--pp-blue-dark); color: #fff; }

/* Mobile menu toggle: override Astra's global <button> styling */
.pp-header .pp-nav-toggle,
.pp-header .pp-nav-toggle:hover,
.pp-header .pp-nav-toggle:focus,
.pp-header .pp-nav-toggle[aria-expanded="true"] {
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--pp-graphite);
}
.pp-header .pp-nav-toggle:focus-visible { outline: 3px solid var(--pp-sky); outline-offset: 2px; }

/* Footer: no default margins on <address>/<ul> */
.pp-footer address { margin: 0; }
.pp-footer ul { margin: 0; }

/* ==========================================================================
   Home page (front-page.php)
   ========================================================================== */
.home.ast-plain-container #content > .ast-container { max-width: none; padding: 0; display: block; }
.pp-home { width: 100%; }
.pp-home h2 { font-family: var(--pp-font-display); font-weight: 700; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.15; letter-spacing: -0.6px; color: #1E2A36; margin: 0; }
.pp-home h3 { font-family: var(--pp-font-display); font-weight: 700; color: #1E2A36; margin: 0; }
.pp-home p { margin: 0; }
.pp-label { margin: 0; }
.pp-label--sky { color: var(--pp-sky); }
.pp-label--slate { color: var(--pp-slate); font-size: 12px; }
.pp-btn--lg { padding: 18px 30px; font-size: 17px; font-family: var(--pp-font-body); }
.pp-btn--ghost { color: #fff; border: 1px solid #3F6A93; font-weight: 500; }
.pp-btn--ghost:hover, .pp-btn--ghost:focus { color: #fff; border-color: var(--pp-sky); background: rgba(141,202,255,.08); }
.pp-btn:focus-visible { outline: 3px solid var(--pp-orange); outline-offset: 3px; }
.pp-link-arrow { font-weight: 600; font-size: 16px; color: var(--pp-blue); text-decoration: none; }
.pp-link-arrow:hover { text-decoration: underline; }

/* Hero */
.pp-hero { background: var(--pp-navy); color: #C9D8E6; padding: clamp(48px, 7vw, 40px) 0; }
.pp-hero__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: center; min-height: 600px; }
.pp-hero__copy { display: flex; flex-direction: column; gap: 28px; }
.pp-hero h1 { margin: 0; font-family: var(--pp-font-display); font-weight: 800; font-size: clamp(36px, 4.4vw, 60px); line-height: 1.06; letter-spacing: -1.2px; color: #fff; }
.pp-hero__lead { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.55; max-width: 540px; }
.pp-hero__actions { display: flex; flex-wrap: wrap; gap: 16px; }
.pp-hero__note { font-size: 14px; color: #9FB4C8; }
.pp-hero__media { position: relative; border-radius: 16px; overflow: hidden; background: #000; height: 600px; }
.pp-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; display: block; }
.pp-hero__tag { position: absolute; right: 20px; bottom: 18px; font-family: var(--pp-font-mono); font-size: 12px; color: var(--pp-sky); background: rgba(10,31,53,.75); padding: 6px 10px; border-radius: 6px; }

/* Trust bar */
.pp-trust { background: var(--pp-mist); border-bottom: 1px solid var(--pp-border); }
.pp-trust__list { list-style: none; margin: 0 auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; min-height: 88px; align-items: center; font-size: 15px; font-weight: 500; }
.pp-trust__list li { display: flex; gap: 10px; align-items: center; margin: 0; }
.pp-trust svg { width: 22px; height: 22px; flex-shrink: 0; fill: none; stroke: var(--pp-blue); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* Sections */
.pp-section { padding: clamp(64px, 8vw, 100px) 0; }
.pp-section--mist { background: var(--pp-mist); }
.pp-section--tight-top { padding-top: 16px; }
.pp-section__head { display: flex; flex-direction: column; gap: 14px; margin-bottom: 44px; }
.pp-section__head--split { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 48px; }
.pp-section__head--row { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 32px; }
.pp-section__intro { font-size: 17px; line-height: 1.6; color: var(--pp-slate); max-width: 420px; }
.pp-section__foot { margin-top: 32px !important; font-size: 15px; color: var(--pp-slate); }

/* Service cards */
.pp-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.pp-card { border: 1px solid var(--pp-border); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; background: #fff; transition: box-shadow .2s, transform .2s; }
.pp-card:hover { box-shadow: 0 12px 28px rgba(10,31,53,.10); transform: translateY(-2px); }
.pp-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.pp-card__body { padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.pp-card h3 { font-size: 22px; }
.pp-card h3 a { color: inherit; text-decoration: none; }
.pp-card h3 a::after { content: ""; position: absolute; inset: 0; }
.pp-card { position: relative; }
.pp-card p { font-size: 16px; line-height: 1.6; color: var(--pp-slate); }

/* Material tabs */
.pp-tabs { display: flex; gap: 12px; margin-bottom: 40px; overflow-x: auto; padding: 4px; }
.pp-home .pp-tab { font-family: var(--pp-font-display); font-weight: 700; font-size: 16px; padding: 14px 26px; min-height: 48px; border-radius: 999px; cursor: pointer; border: 1px solid #B9C7D6; background: #fff; color: var(--pp-graphite); flex-shrink: 0; line-height: 1; }
.pp-home .pp-tab:hover { border-color: var(--pp-blue); color: var(--pp-blue); background: #fff; }
.pp-home .pp-tab[aria-selected="true"] { background: var(--pp-blue); border-color: var(--pp-blue); color: #fff; }
.pp-home .pp-tab:focus-visible { outline: 3px solid var(--pp-orange); outline-offset: 3px; }
.pp-mat { background: #fff; border: 1px solid var(--pp-border); border-radius: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; }
.pp-mat[hidden] { display: none; }
.pp-mat__visual { min-height: 400px; position: relative; display: flex; align-items: center; justify-content: center; }
.pp-mat__big { font-family: var(--pp-font-display); font-weight: 800; font-size: clamp(64px, 9vw, 120px); color: rgba(22,96,159,.18); letter-spacing: -2px; }
.pp-mat__size { position: absolute; left: 20px; bottom: 18px; font-family: var(--pp-font-mono); font-size: 12px; color: var(--pp-slate); }
.pp-mat__body { padding: clamp(28px, 4vw, 48px); display: flex; flex-direction: column; gap: 14px; }
.pp-mat__code { font-family: var(--pp-font-display); font-weight: 800; font-size: 36px; color: var(--pp-blue); line-height: 1; }
.pp-mat__name { font-size: 15px; color: var(--pp-slate); margin-top: -6px !important; }
.pp-mat__text { font-size: 18px; line-height: 1.6; margin-bottom: 6px !important; }
.pp-pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pp-pills li { background: var(--pp-tint); color: var(--pp-blue-dark); font-size: 14px; font-weight: 500; padding: 7px 12px; border-radius: 999px; margin: 0; }
.pp-mat .pp-link-arrow { margin-top: 10px; align-self: flex-start; }

/* Steps */
.pp-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.pp-steps li { border-top: 3px solid var(--pp-blue); padding-top: 24px; display: flex; flex-direction: column; gap: 10px; margin: 0; }
.pp-steps li:nth-child(2) { border-color: var(--pp-blue-mid); }
.pp-steps li:nth-child(3) { border-color: #6AA9E0; }
.pp-steps li:nth-child(4) { border-color: var(--pp-sky); }
.pp-steps__n { font-family: var(--pp-font-mono); font-size: 14px; color: var(--pp-blue); }
.pp-steps h3 { font-size: 21px; }
.pp-steps p { font-size: 16px; line-height: 1.6; color: var(--pp-slate); }

/* Recent work strip */
.pp-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.pp-strip img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 12px; display: block; }

/* CTA band */
.pp-cta-band { background: var(--pp-blue); border-radius: 20px; padding: clamp(36px, 5vw, 64px) clamp(28px, 5vw, 72px); display: flex; justify-content: space-between; align-items: center; gap: 48px; color: #DCEBF8; }
.pp-cta-band h2 { color: #fff !important; font-size: clamp(26px, 3vw, 38px) !important; margin-bottom: 14px !important; }
.pp-cta-band p { font-size: 18px; line-height: 1.6; max-width: 760px; }
.pp-cta-band .pp-btn { flex-shrink: 0; }

/* Home — responsive */
@media (max-width: 960px) {
	.pp-hero__grid { grid-template-columns: 1fr; gap: 40px; min-height: 0; }
	.pp-hero__media { height: auto; aspect-ratio: 4 / 3; }
	.pp-trust__list { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 20px; padding-bottom: 20px; }
	.pp-section__head--split { flex-direction: column; align-items: flex-start; gap: 16px; }
	.pp-cards, .pp-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pp-cards .pp-card:last-child { grid-column: 1 / -1; }
	.pp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
	.pp-mat { grid-template-columns: 1fr; }
	.pp-mat__visual { min-height: 180px; }
	.pp-cta-band { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) {
	.pp-trust__list { grid-template-columns: 1fr; gap: 14px; }
	.pp-cards, .pp-strip, .pp-steps { grid-template-columns: 1fr; }
	.pp-strip { gap: 16px; }
	.pp-section__head--row { flex-direction: column; align-items: flex-start; }
	.pp-hero__actions .pp-btn { flex: 1 1 100%; text-align: center; }
}

/* 0.3.1 — home fixes */
.home #primary.pp-home { margin: 0; padding: 0; }
@media (max-width: 600px) {
	.pp-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; overflow: visible; padding: 0; margin-bottom: 24px; }
	.pp-home .pp-tab { padding: 12px 0; font-size: 15px; text-align: center; }
}

/* 0.4.0 — material panels: stock spool photo with the material name over it */
.pp-mat__visual.has-photo { background: var(--pp-navy); overflow: hidden; }
.pp-mat__visual.has-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.pp-mat__visual.has-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,31,53,.15) 0%, rgba(10,31,53,.55) 100%); }
.pp-mat__visual.has-photo .pp-mat__big { position: relative; z-index: 1; color: #fff; text-shadow: 0 2px 24px rgba(10,31,53,.55); letter-spacing: -1px; }
.pp-mat__visual.has-photo .pp-mat__size { z-index: 1; color: #fff; background: rgba(10,31,53,.7); padding: 6px 10px; border-radius: 6px; }

/* 0.4.1 — Our Work gallery (core Gallery block, editable by Troy in the page editor) */
.page-template-default .entry-content > .wp-block-gallery { max-width: none; }
.entry-content .wp-block-gallery.pp-gallery,
.entry-content .wp-block-gallery { gap: 20px !important; margin: 32px 0 40px; }
.entry-content .wp-block-gallery .wp-block-image { border-radius: 12px; overflow: hidden; background: var(--pp-mist); }
.entry-content .wp-block-gallery .wp-block-image img { transition: transform .35s ease; cursor: zoom-in; }
.entry-content .wp-block-gallery .wp-block-image:hover img { transform: scale(1.03); }
.entry-content .wp-block-gallery .lightbox-trigger { opacity: 1; background: rgba(10,31,53,.65); border-radius: 6px; }
@media (max-width: 760px) {
	.entry-content .wp-block-gallery.columns-3 > .wp-block-image { width: calc(50% - 10px) !important; }
	.entry-content .wp-block-gallery { gap: 12px !important; }
}
/* Lightbox overlay in brand navy */
.wp-lightbox-overlay .scrim { background-color: rgba(10,31,53,.94) !important; }
.wp-lightbox-overlay .close-button { color: #fff; }

/* 0.4.2 — block-editor pages: left-align content like the rest of the site; full-width gallery; no stretched last photo */
.page-template-default .entry-content > * { margin-left: 0 !important; margin-right: auto !important; }
.page-template-default .entry-content > .wp-block-gallery { max-width: none !important; width: 100%; }
.entry-content .wp-block-gallery.has-nested-images figure.wp-block-image { flex-grow: 0 !important; }
.entry-content .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image { width: calc(33.333% - 13.34px) !important; }
@media (max-width: 760px) {
	.entry-content .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image { width: calc(50% - 6px) !important; }
}

/* ==========================================================================
   0.5.0 — Forms (Forminator) and Request a Quote page
   ========================================================================== */
/* Inner-page navy title band (used by the quote page) */
.pp-page-hero { background: var(--pp-navy); color: #C9D8E6; padding: clamp(40px, 6vw, 64px) 0 clamp(48px, 6vw, 72px); }
.pp-page-hero h1 { margin: 0 0 14px; font-family: var(--pp-font-display); font-weight: 800; font-size: clamp(34px, 4.4vw, 52px); letter-spacing: -1px; color: #fff; }
.pp-page-hero p { margin: 0; font-size: clamp(17px, 1.6vw, 19px); line-height: 1.55; max-width: 720px; }

.pp-quote-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 40px; align-items: start; padding-top: 56px; padding-bottom: 24px; }
.pp-form-card { background: #fff; border: 1px solid var(--pp-border); border-radius: 16px; padding: clamp(24px, 4vw, 48px); }
.pp-form-card > p:empty { display: none; }
.pp-quote-aside { display: flex; flex-direction: column; gap: 24px; position: sticky; top: 24px; }
.pp-aside-box { border: 1px solid var(--pp-border); border-radius: 16px; padding: 28px; background: #fff; }
.pp-aside-box--mist { background: var(--pp-mist); border-color: var(--pp-mist); }
.pp-aside-box h2 { margin: 0 0 18px; font-family: var(--pp-font-display); font-weight: 700; font-size: 20px; color: #1E2A36; }
.pp-aside-box p { margin: 0 0 6px; font-size: 15px; color: var(--pp-slate); }
.pp-aside-title { font-weight: 600; color: var(--pp-graphite) !important; }
.pp-next { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.pp-next li { display: grid; grid-template-columns: 32px 1fr; gap: 10px; font-size: 15px; line-height: 1.5; color: var(--pp-graphite); margin: 0; }
.pp-next span { font-family: var(--pp-font-mono); font-size: 13px; color: var(--pp-blue); padding-top: 2px; }
@media (max-width: 960px) {
	.pp-quote-grid { grid-template-columns: 1fr; padding-top: 32px; }
	.pp-quote-aside { position: static; }
}
/* Quote page template: full-width band, Astra wrapper padding removed */
.pp-quote-page { width: 100%; }
body:has(.pp-quote-page) #content > .ast-container { max-width: none; padding: 0; display: block; }

/* --- Forminator fields: brand look (override the plugin's default design) --- */
.forminator-ui.forminator-custom-form[data-design] { font-family: var(--pp-font-body) !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-row { margin-bottom: 20px !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-label {
	font-family: var(--pp-font-body) !important; font-size: 15px !important; font-weight: 500 !important;
	color: var(--pp-graphite) !important; margin-bottom: 8px !important; line-height: 1.3 !important;
}
.forminator-ui.forminator-custom-form[data-design] .forminator-required { color: #C2410C !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-input,
.forminator-ui.forminator-custom-form[data-design] .forminator-textarea,
.forminator-ui.forminator-custom-form[data-design] select,
.forminator-ui.forminator-custom-form[data-design] .select2-selection--single {
	font-family: var(--pp-font-body) !important; font-size: 16px !important; color: var(--pp-graphite) !important;
	background: #fff !important; border: 1px solid #B9C7D6 !important; border-radius: 8px !important;
	min-height: 48px !important; padding: 12px 14px !important; box-shadow: none !important;
}
.forminator-ui.forminator-custom-form[data-design] .forminator-textarea { min-height: 140px !important; line-height: 1.5 !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-input-with-icon .forminator-input { padding-left: 40px !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-input:focus,
.forminator-ui.forminator-custom-form[data-design] .forminator-textarea:focus,
.forminator-ui.forminator-custom-form[data-design] .select2-container--open .select2-selection--single,
.forminator-ui.forminator-custom-form[data-design] .select2-container--focus .select2-selection--single {
	border-color: var(--pp-blue) !important; box-shadow: 0 0 0 3px rgba(22,96,159,.18) !important; outline: none !important;
}
.forminator-ui.forminator-custom-form[data-design] .select2-selection__rendered { line-height: 22px !important; padding: 0 !important; color: var(--pp-graphite) !important; }
.forminator-ui.forminator-custom-form[data-design] .select2-selection__arrow { height: 46px !important; right: 10px !important; }
.forminator-ui.forminator-custom-form[data-design] ::placeholder { color: #8A96A3 !important; opacity: 1; }
.forminator-ui.forminator-custom-form[data-design] .forminator-description { font-size: 13px !important; color: var(--pp-slate) !important; margin-top: 8px !important; }

/* Section headings inside the form */
.forminator-ui.forminator-custom-form[data-design] .forminator-field-section .forminator-title {
	font-family: var(--pp-font-display) !important; font-weight: 700 !important; font-size: 21px !important;
	color: #1E2A36 !important; margin: 0 !important; padding-top: 12px !important;
}
.forminator-ui.forminator-custom-form[data-design] .forminator-row:not(:first-of-type) .forminator-field-section { border-top: 1px solid var(--pp-border); padding-top: 28px; margin-top: 12px; }

/* Upload drop zones */
.forminator-ui.forminator-custom-form[data-design] .forminator-multi-upload {
	border: 2px dashed #9DB6CF !important; border-radius: 12px !important; background: #F7FAFD !important;
	padding: 28px 16px !important; transition: border-color .2s, background .2s;
}
.forminator-ui.forminator-custom-form[data-design] .forminator-multi-upload:hover,
.forminator-ui.forminator-custom-form[data-design] .forminator-multi-upload.forminator-dragover { border-color: var(--pp-blue) !important; background: var(--pp-tint) !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-multi-upload-message p { font-size: 15px !important; color: var(--pp-graphite) !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-multi-upload-message a { color: var(--pp-blue) !important; font-weight: 600; }
.forminator-ui.forminator-custom-form[data-design] .forminator-icon-upload::before { color: var(--pp-blue) !important; }

/* Build-size note */
.forminator-ui .pp-form-note { margin: 0; font-size: 14px; line-height: 1.55; color: var(--pp-slate); background: var(--pp-mist); border-radius: 10px; padding: 14px 16px; }

/* Consent checkbox */
.forminator-ui.forminator-custom-form[data-design] .forminator-checkbox__label,
.forminator-ui.forminator-custom-form[data-design] .forminator-consent__label { font-size: 16px !important; color: var(--pp-graphite) !important; line-height: 1.5 !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-checkbox-box { border-color: #8A96A3 !important; border-radius: 4px !important; }
.forminator-ui.forminator-custom-form[data-design] input:checked + .forminator-checkbox-box { background: var(--pp-blue) !important; border-color: var(--pp-blue) !important; }

/* Submit button */
.forminator-ui.forminator-custom-form[data-design] .forminator-button-submit {
	font-family: var(--pp-font-display) !important; font-weight: 700 !important; font-size: 17px !important;
	background: var(--pp-orange) !important; color: var(--pp-navy) !important; border: 0 !important;
	border-radius: 8px !important; padding: 18px 34px !important; min-height: 56px !important; box-shadow: none !important;
	transition: background .2s;
}
.forminator-ui.forminator-custom-form[data-design] .forminator-button-submit:hover,
.forminator-ui.forminator-custom-form[data-design] .forminator-button-submit:focus { background: #E8922A !important; color: var(--pp-navy) !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-button-submit:focus-visible { outline: 3px solid var(--pp-blue) !important; outline-offset: 3px !important; }

/* Errors and success */
.forminator-ui.forminator-custom-form[data-design] .forminator-error-message { color: #B42318 !important; background: transparent !important; font-size: 14px !important; padding: 6px 0 0 !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-has_error .forminator-input,
.forminator-ui.forminator-custom-form[data-design] .forminator-has_error .forminator-textarea { border-color: #B42318 !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-response-message.forminator-success { background: #E7F6EC !important; color: #14532D !important; border-radius: 10px !important; padding: 18px 20px !important; font-size: 16px !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-response-message.forminator-error { background: #FDECEA !important; color: #7A1A12 !important; border-radius: 10px !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-response-message p { color: inherit !important; }


/* 0.5.1 — form polish */
#primary.pp-quote-page { margin: 0 !important; padding: 0 !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-row:nth-child(2) .forminator-field-section { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; }
.forminator-ui.forminator-custom-form[data-design] .forminator-field-section .forminator-title { padding-top: 0 !important; }
.forminator-ui.forminator-custom-form[data-design] .select2-container .select2-selection--single {
	height: 48px !important; min-height: 48px !important; padding: 0 40px 0 14px !important; display: flex !important; align-items: center !important;
}
.forminator-ui.forminator-custom-form[data-design] .select2-container .select2-selection--single .select2-selection__rendered { line-height: 46px !important; }
.forminator-ui.forminator-custom-form[data-design] .select2-container .select2-selection--single .select2-selection__arrow { top: 0 !important; height: 46px !important; display: flex; align-items: center; }
.forminator-ui.forminator-custom-form[data-design] .forminator-field-select .forminator-field { margin: 0 !important; }
.pp-form-card .forminator-edit-module { margin-top: 12px; font-size: 13px; }

/* ==========================================================================
   0.6.0 — Inner pages (page.php): title band + content components
   ========================================================================== */
#primary.pp-page { margin: 0 !important; padding: 0 !important; width: 100%; }
body:has(main.pp-page) #content > .ast-container { max-width: none; padding: 0; display: block; }
.pp-page-body { padding-top: clamp(40px, 6vw, 64px); padding-bottom: 24px; }
.pp-prose { font-size: 17px; line-height: 1.65; color: var(--pp-graphite); }
.pp-prose > * { max-width: 760px; margin-left: 0 !important; margin-right: auto !important; }
.pp-prose > .pp-wide, .pp-prose > .wp-block-gallery, .pp-prose > .pp-cta-band, .pp-prose > .pp-steps { max-width: none; }
.pp-prose h2 { font-family: var(--pp-font-display); font-weight: 700; font-size: clamp(24px, 2.6vw, 32px); letter-spacing: -0.4px; color: #1E2A36; margin: 56px 0 16px; }
.pp-prose > h2:first-child { margin-top: 0; }
.pp-prose h3 { font-family: var(--pp-font-display); font-weight: 700; font-size: 21px; color: #1E2A36; margin: 0 0 10px; }
.pp-prose p { margin: 0 0 16px; }
.pp-prose ul:not([class]) { padding-left: 1.2em; margin: 0 0 16px; }
.pp-prose ul:not([class]) li { margin-bottom: 8px; }
.pp-prose .pp-label { margin-bottom: 10px; }
.pp-lead { font-size: 19px; color: var(--pp-slate); }

/* Feature rows: photo + text, alternating */
.pp-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; margin: 0 0 clamp(40px, 6vw, 72px); }
.pp-feature:nth-of-type(even) .pp-feature__media { order: 2; }
.pp-feature__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 16px; display: block; height: auto; }
.pp-feature__body p:last-child { margin-bottom: 0; }

/* Card grids */
.pp-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin: 0 0 40px; }
.pp-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0 0 40px; }
.pp-box { background: #fff; border: 1px solid var(--pp-border); border-radius: 16px; padding: 28px; }
.pp-box--mist { background: var(--pp-mist); border-color: var(--pp-mist); }
.pp-box h3 { font-size: 19px; }
.pp-box p, .pp-box ul { font-size: 16px; }
.pp-box > :last-child { margin-bottom: 0; }

/* Material cards */
.pp-matcard { background: #fff; border: 1px solid var(--pp-border); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.pp-matcard__img { position: relative; aspect-ratio: 16 / 9; background: var(--pp-navy); overflow: hidden; }
.pp-matcard__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pp-matcard__img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,31,53,.1), rgba(10,31,53,.55)); }
.pp-matcard__img span { position: absolute; left: 24px; bottom: 16px; z-index: 1; font-family: var(--pp-font-display); font-weight: 800; font-size: 44px; color: #fff; letter-spacing: -1px; text-shadow: 0 2px 18px rgba(10,31,53,.5); line-height: 1; }
.pp-matcard__body { padding: 24px 28px 28px; }
.pp-matcard__name { color: var(--pp-slate); font-size: 15px; margin-bottom: 10px !important; }
.pp-matcard .pp-pills { margin: 6px 0 14px; }
.pp-matcard__size { font-family: var(--pp-font-mono); font-size: 13px; color: var(--pp-slate); margin: 0 !important; }

/* Pills and steps outside the home page */
.pp-prose .pp-pills { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pp-prose .pp-pills li { background: var(--pp-tint); color: var(--pp-blue-dark); font-size: 14px; font-weight: 500; padding: 6px 12px; border-radius: 999px; margin: 0; }
.pp-prose .pp-steps { margin: 8px 0 48px; }
.pp-prose .pp-steps h3 { font-size: 19px; margin: 0; }
.pp-prose .pp-steps p { font-size: 15px; margin: 0; }

/* Contact */
.pp-contact-grid { display: grid; grid-template-columns: minmax(300px, 360px) minmax(0, 1fr); gap: 40px; align-items: start; }
.pp-contact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 18px; }
.pp-contact-list li { margin: 0; font-size: 16px; }
.pp-contact-list a { overflow-wrap: anywhere; }
.pp-contact-grid > .pp-box { position: sticky; top: 24px; }
.pp-contact-grid > .pp-box .pp-btn { display: flex; justify-content: center; width: 100%; }
.pp-contact-list strong { display: block; font-family: var(--pp-font-mono); font-weight: 400; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; color: var(--pp-blue); margin-bottom: 4px; }
.pp-contact-grid .pp-form-card { padding: clamp(24px, 4vw, 40px); }

/* CTA band inside page content */
.pp-prose .pp-cta-band { margin: 56px 0 0; }
.pp-prose .pp-cta-band p { margin: 0; color: #DCEBF8; }

@media (max-width: 960px) {
	.pp-feature, .pp-contact-grid { grid-template-columns: 1fr; }
	.pp-contact-grid > .pp-box { position: static; }
	.pp-feature:nth-of-type(even) .pp-feature__media { order: 0; }
	.pp-grid-3 { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
	.pp-grid-2 { grid-template-columns: 1fr; }
	.pp-prose .pp-steps { grid-template-columns: 1fr; }
}
.pp-prose .pp-feature h2, .pp-prose .pp-box h2, .pp-prose .pp-form-card h2 { margin-top: 0; }
.pp-prose .pp-wide p:empty, .pp-prose > p:empty { display: none; }
.pp-prose .pp-wide br + br { display: none; }

/* 0.7.0: oversized logo mark in the page-title band (option B) */
.pp-page-hero { position: relative; overflow: hidden; isolation: isolate; }
.pp-page-hero > .pp-wrap { position: relative; z-index: 1; }
.pp-page-hero p { text-shadow: 0 1px 14px var(--pp-navy), 0 0 4px var(--pp-navy); }
.pp-hero-mark { position: absolute; z-index: 0; width: 1100px; height: auto; right: -260px; top: -180px; opacity: .38; pointer-events: none; }
@media (max-width: 960px) {
	.pp-hero-mark { width: 820px; right: -300px; top: -140px; }
}
@media (max-width: 700px) {
	.pp-hero-mark { width: 600px; right: -330px; top: -90px; opacity: .26; }
}

/* 0.8.0: branded 404 */
.pp-404__code { font-family: var(--pp-font-mono); font-size: 14px; letter-spacing: 3px; color: var(--pp-sky); margin: 0 0 10px !important; }
.pp-404__actions { display: flex; flex-wrap: wrap; gap: 14px; margin: 0 0 36px; }
.pp-404 .pp-btn--ghost { color: var(--pp-navy); border-color: #B9CCDE; }
.pp-404 .pp-btn--ghost:hover, .pp-404 .pp-btn--ghost:focus { color: var(--pp-navy); border-color: var(--pp-blue); background: #EEF5FB; }
.pp-404__links { list-style: none; margin: 0; padding: 24px 0 0; border-top: 1px solid #E1E8EF; display: flex; flex-wrap: wrap; gap: 10px 28px; }
.pp-404__links a { font-weight: 500; }
