/*
Theme Name: Tucker's Paving
Description: JBC-managed block theme for Tucker's Paving.
Version: 0.5.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: tuckers-paving
*/

@font-face { font-family: Oswald; font-style: normal; font-weight: 200 700; font-display: swap; src: url("assets/fonts/oswald-latin.woff2") format("woff2"); }
@font-face { font-family: Montserrat; font-style: normal; font-weight: 100 900; font-display: swap; src: url("assets/fonts/montserrat-latin.woff2") format("woff2"); }
@font-face { font-family: Montserrat; font-style: italic; font-weight: 100 900; font-display: swap; src: url("assets/fonts/montserrat-latin-italic.woff2") format("woff2"); }

:root { --tp-asphalt:#242424; --tp-charcoal:#303030; --tp-red:#d8231e; --tp-red-dark:#b51b17; --tp-concrete:#ebebeb; --tp-paper:#f7f7f7; --tp-white:#fff; --tp-line:#323232; --tp-focus:#ffd54f; --tp-shadow:0 12px 24px rgb(0 0 0 / 18%); }
html { scroll-behavior:smooth; }
body { background:var(--tp-paper); color:#383838; font-family:Montserrat,Arial,sans-serif; font-size:16px; line-height:1.55; margin:0; overflow-wrap:break-word; }
*,*::before,*::after { box-sizing:border-box; }
img,video,iframe { display:block; height:auto; max-width:100%; }
h1,h2,h3,h4,h5,h6 { color:var(--tp-asphalt); font-family:Oswald,"Arial Narrow",sans-serif; font-weight:400; line-height:1.15; }
h1 { font-size:clamp(2.2rem,5vw,4.2rem); } h2 { font-size:clamp(1.85rem,3.5vw,3.2rem); } h3 { font-size:clamp(1.35rem,2vw,2rem); }
a { color:var(--tp-red-dark); }
a,button,input,select,textarea,summary { transition:color 160ms ease,background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--tp-focus); outline-offset:3px; }
.screen-reader-text { clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute!important; white-space:nowrap; width:1px; }
.screen-reader-text:focus { background:var(--tp-white); clip:auto!important; clip-path:none; color:var(--tp-asphalt); height:auto; left:1rem; padding:.75rem 1rem; top:1rem; width:auto; z-index:100000; }
.alignwide { margin-inline:auto; max-width:1200px; padding-inline:clamp(1rem,4vw,3rem); }
.alignfull { width:100%; }

.site-header { color:var(--tp-white); position:relative; z-index:20; }
/* Core flow/block gaps are section spacing, not header seams. Keep these
   resets on the header's own children and its immediate main boundary. */
.wp-site-blocks > .wp-block-template-part:has(> .site-header),
.wp-site-blocks > .site-header,
.site-header > .site-header__nav,
.wp-block-template-part:has(> .site-header) + main.entry-shell,
.site-header + main.entry-shell { margin-block:0; }
/* The template-part wrapper must stick: a sticky row inside the short header
   is constrained by that header's bottom. Its negative utility offset lets
   the contact strip scroll away while retaining normal flow and row height. */
.wp-block-template-part.tp-sticky-header,
.site-header.tp-sticky-header {
  position:sticky; top:calc(var(--tp-admin-offset, 0px) - var(--tp-utility-height, 0px)); z-index:20;
}
html.tp-sticky-navigation { scroll-padding-top:var(--tp-sticky-clearance, 0px); }
.site-header__utility { background:var(--tp-asphalt); min-height:100px; }
.site-header__utility-inner { align-items:center; display:flex; justify-content:space-between!important; min-height:100px; }
.site-header__social { color:var(--tp-white); font-size:.78rem; font-weight:700; letter-spacing:.06em; margin:0; text-transform:uppercase; }
.header-call { margin-left:auto; }
.header-call .wp-block-button__link { min-width:230px; }
.site-header__nav { background-color:#666; background-image:url("assets/images/road-arrows-background.jpg"); background-blend-mode:multiply; background-position:center 54%; background-repeat:no-repeat; background-size:cover; min-height:166px; }
.site-header__nav-inner { align-items:center; display:flex; min-height:166px; }
.brand-lockup { background:url("assets/images/tuckers-logo.png") center/contain no-repeat; flex:0 0 210px; height:140px; }
.brand-lockup__name,.brand-lockup__name a { color:transparent!important; display:block; font-size:0; height:100%; margin:0; width:100%; }
.primary-navigation { align-items:center; display:flex; gap:clamp(.5rem,2vw,1.75rem); justify-content:flex-end; }
.primary-navigation a { align-items:center; color:var(--tp-white); display:inline-flex; font-size:.98rem; font-weight:750; justify-content:center; min-height:44px; min-width:44px; padding:.5rem .15rem; text-decoration:none; text-shadow:0 1px 3px rgb(0 0 0 / 60%); }
.primary-navigation a:hover { border-bottom:2px solid var(--tp-white); }
.site-header .primary-navigation ul { list-style:none; margin:0; padding:0; }
.site-header .primary-navigation > .wp-block-navigation__container { align-items:center; display:flex; flex-wrap:nowrap; gap:inherit; }
.site-header .primary-navigation .wp-block-navigation-item { align-items:center; display:flex; margin:0; position:relative; }
.site-header .primary-navigation .wp-block-navigation-item__content { color:var(--tp-white); }
/* Explicit foreground and background replace the core black-on-white submenu
   defaults together. Core otherwise inherits black links onto our dark panel. */
.site-header .primary-navigation .has-child > .wp-block-navigation__submenu-container {
  background:var(--tp-asphalt); border:1px solid #666; border-top:3px solid var(--tp-red);
  box-shadow:0 12px 28px rgb(0 0 0 / 30%); color:var(--tp-white);
  display:flex; flex-direction:column; gap:0; height:0; inset-inline-end:0; inset-inline-start:auto;
  min-width:20rem; opacity:0; overflow:hidden; padding:8px; position:absolute;
  top:100%; visibility:hidden; width:20rem; z-index:30;
}
.site-header .primary-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  border:0; color:var(--tp-white); font-size:.9rem; justify-content:flex-start; min-height:48px;
  padding:12px 16px; text-shadow:none; width:100%;
}
.site-header .primary-navigation .wp-block-navigation__submenu-container a:focus-visible { background:var(--tp-red-dark); color:#fff; }
/* Current resource is an underline; yellow outlines remain keyboard focus. */
.site-header .primary-navigation a[aria-current="page"] { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:5px; }
.site-header .primary-navigation .tp-current-ancestor > a { text-decoration:underline dotted; text-underline-offset:5px; }
.site-header .primary-navigation .wp-block-navigation-submenu__toggle {
  align-items:center; background:transparent; border:0; color:#fff; cursor:pointer;
  display:inline-flex; flex:0 0 44px; height:44px; justify-content:center; margin:0; padding:12px; width:44px;
}
.site-header .primary-navigation .wp-block-navigation-submenu__toggle svg { height:12px; margin:0; stroke:currentColor; transition:transform 200ms ease; width:12px; }
.site-header .primary-navigation .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.site-header .primary-navigation .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
  height:auto; opacity:1; overflow:visible; visibility:visible;
}
.site-header .primary-navigation :is(a,button):focus-visible { outline:3px solid var(--tp-focus); outline-offset:3px; z-index:2; }
.primary-navigation__toggle {
  align-items:center; background:transparent; border:1px solid #777; color:#fff; cursor:pointer;
  display:none; font:700 .85rem Montserrat,sans-serif; gap:12px; justify-content:center;
  min-height:48px; min-width:104px; padding:12px;
}
.primary-navigation__icon { display:block; height:20px; position:relative; width:24px; }
.primary-navigation__icon > span { background:currentColor; display:block; height:2px; left:0; position:absolute; top:9px; transition:transform 220ms ease,opacity 220ms ease; width:24px; }
.primary-navigation__icon > span:first-child { transform:translateY(-7px); }
.primary-navigation__icon > span:last-child { transform:translateY(7px); }
.primary-navigation__toggle[aria-expanded="true"] { background:var(--tp-red-dark); border-color:var(--tp-red-dark); }
.primary-navigation__toggle[aria-expanded="true"] .primary-navigation__icon > span:first-child { transform:rotate(45deg); }
.primary-navigation__toggle[aria-expanded="true"] .primary-navigation__icon > span:nth-child(2) { opacity:0; }
.primary-navigation__toggle[aria-expanded="true"] .primary-navigation__icon > span:last-child { transform:rotate(-45deg); }
.site-header:has(.primary-navigation__no-script) .primary-navigation .has-child:focus-within > .wp-block-navigation__submenu-container { height:auto; opacity:1; overflow:visible; visibility:visible; }
.site-header:has(.primary-navigation__no-script) .wp-block-navigation-submenu__toggle { display:none; }
@media (hover:hover) and (pointer:fine) {
  .site-header .primary-navigation .wp-block-navigation__submenu-container a:hover,
  .site-header .primary-navigation .wp-block-navigation-submenu__toggle:hover { background:var(--tp-red-dark); color:#fff; }
}
@media (min-width:1025px) {
  /* Animate the real row and logo dimensions together, including flow height.
     The compact logo is exactly 80% of the resting 210px by 140px box. */
  .tp-sticky-header .site-header__nav,
  .tp-sticky-header .site-header__nav-inner { transition:min-height 220ms ease; }
  .tp-sticky-header .brand-lockup { transition:flex-basis 220ms ease,height 220ms ease; }
  .tp-sticky-header.is-compact .site-header__nav,
  .tp-sticky-header.is-compact .site-header__nav-inner { min-height:128px; }
  .tp-sticky-header.is-compact .brand-lockup { flex-basis:168px; height:112px; }
  html:has(.tp-sticky-header.is-compacting) { overflow-anchor:none; }
  /* Outrank core's expanded-state width as well as its resting width. */
  .site-header .primary-navigation .has-child > .wp-block-navigation-submenu__toggle[aria-expanded] ~ .wp-block-navigation__submenu-container { min-width:20rem; width:20rem; max-width:calc(100vw - 32px); }
}
@media (min-width:1025px) and (hover:hover) and (pointer:fine) {
  .site-header .primary-navigation .has-child:not(.tp-submenu-dismissed):hover > .wp-block-navigation__submenu-container { height:auto; opacity:1; overflow:visible; visibility:visible; }
}
/* Mobile owns the header layout: core's body .is-layout-flex otherwise
   outranks the single-class grid rule on this rendered Group. */
@media (max-width:1024px) {
  .site-header { background:var(--tp-asphalt); }
  .site-header .site-header__utility { display:none; }
  .site-header > .site-header__nav { background:var(--tp-asphalt); margin-block:0; min-height:88px; padding-inline:0; }
  .site-header .site-header__nav-inner {
    align-items:center; display:grid; gap:16px; grid-template-columns:minmax(0,1fr) auto;
    min-height:88px; padding-inline:max(16px,env(safe-area-inset-left)) max(16px,env(safe-area-inset-right));
  }
  .site-header .brand-lockup { height:76px; margin-block:6px; padding:0; width:104px; }
  .site-header .primary-navigation__toggle { display:inline-flex; min-width:48px; width:48px; }
  .primary-navigation__toggle-label { clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; width:1px; }
  .site-header nav.primary-navigation {
    background:var(--tp-asphalt); border-top:2px solid var(--tp-red); display:none;
    inset-inline:0; top:var(--tp-navigation-top); bottom:0; justify-content:stretch; margin:0;
    height:calc(100dvh - var(--tp-navigation-top)); max-height:calc(100dvh - var(--tp-navigation-top));
    overflow:auto; overscroll-behavior:contain; padding:12px max(20px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
    position:fixed; width:100%; z-index:40;
  }
  .site-header .primary-navigation .header-call { display:block; margin:20px 0 0; width:100%; }
  .site-header .primary-navigation .header-call .wp-block-button,
  .site-header .primary-navigation .header-call a { width:100%; }
  .site-header .primary-navigation .header-call a { background:var(--tp-red-dark); border:0; min-height:48px; padding:12px; text-shadow:none; }
  .site-header .primary-navigation.is-open { animation:tp-navigation-reveal 220ms ease both; display:block; }
  .site-header .primary-navigation > .wp-block-navigation__container { align-items:stretch; flex-direction:column; gap:0; }
  .site-header .primary-navigation .wp-block-navigation-item { flex-wrap:wrap; width:100%; }
  .site-header .primary-navigation > ul > .wp-block-navigation-item { border-bottom:1px solid #484848; }
  .site-header .primary-navigation .wp-block-navigation-item__content {
    border:0; flex:1; font-size:1rem; justify-content:flex-start; min-height:52px; padding:12px 8px; text-shadow:none;
  }
  .site-header .primary-navigation .wp-block-navigation-submenu__toggle { border-left:1px solid #666; flex-basis:48px; height:48px; width:48px; }
  .site-header .primary-navigation .has-child > .wp-block-navigation__submenu-container {
    background:#1b1b1b; border:0; border-inline-start:2px solid var(--tp-red); box-shadow:none; flex-basis:100%;
    height:0; margin:0 0 0 8px; min-width:0; opacity:0; overflow:hidden; padding:0; position:static; visibility:hidden; width:auto;
  }
  .site-header .primary-navigation .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
    animation:tp-navigation-reveal 200ms ease both; height:auto; margin-bottom:12px; opacity:1; overflow:visible; visibility:visible;
  }
  .site-header .primary-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size:.875rem; min-height:48px; padding:12px 16px; }
  .site-header .primary-navigation a:focus-visible { background:var(--tp-red-dark); color:#fff; }
  /* The marker exists in the DOM only when JavaScript is disabled. */
  .site-header:has(.primary-navigation__no-script) nav.primary-navigation { display:block; grid-column:1/-1; height:auto; max-height:none; position:static; }
  .site-header:has(.primary-navigation__no-script) .primary-navigation__toggle,
  .site-header:has(.primary-navigation__no-script) .wp-block-navigation-submenu__toggle { display:none; }
  .site-header:has(.primary-navigation__no-script) .primary-navigation .has-child > .wp-block-navigation__submenu-container { height:auto; opacity:1; overflow:visible; visibility:visible; }
}
@keyframes tp-navigation-reveal { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) {
  .tp-sticky-header .site-header__nav,.tp-sticky-header .site-header__nav-inner,
  .tp-sticky-header .brand-lockup { transition:none!important; }
  .site-header .primary-navigation,.site-header .primary-navigation *,
  .site-header .primary-navigation__toggle,.site-header .primary-navigation__toggle * { animation:none!important; transition:none!important; }
}

main { min-height:45vh; }
.entry-shell { padding:0; }
.wp-block-post-content { width:100%; }
.entry-content h2,.entry-content h3 { color:var(--tp-red); font-family:Montserrat,Arial,sans-serif; font-style:italic; font-weight:400; }
.entry-content p { max-width:72ch; }
.entry-content li+li { margin-top:.5rem; }

.tp-hero { background-color:#888; background-image:url("assets/images/road-arrows-background.jpg"); background-blend-mode:multiply; background-position:center; background-size:cover; padding:54px clamp(1rem,4vw,3rem); }
.page-template-blog-archive .tp-hero { background-image:url("assets/images/blog-background.jpg"); }
.page-template-article .tp-hero { background-image:url("assets/images/article-background.jpg"); }
.page-template-testimonials .tp-hero { background-image:url("assets/images/testimonials-background.jpg"); }
.page-template-faq .tp-hero,.page-template-contact .tp-hero { background-image:url("assets/images/asphalt-lines-background.jpg"); }
.tp-hero__inner { background:rgb(255 255 255 / 91%); max-width:1120px; padding:clamp(2rem,5vw,4.5rem); text-align:center; }
.tp-hero h1 { font-family:Montserrat,Arial,sans-serif; font-size:1.05rem; font-style:italic; font-weight:400; margin:0 0 1rem; }
.tp-hero__title { color:var(--tp-red)!important; font-size:clamp(2rem,4.3vw,4rem); margin:0 auto 1.5rem; max-width:27ch; text-transform:uppercase; }
.tp-hero__lede { margin:0 auto; max-width:74ch; }
.tp-eyebrow { color:#555; font-size:.74rem; font-style:italic; margin:0 0 .5rem; }
.tp-actions { display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:1.5rem; }
.wp-block-button__link { align-items:center; background:var(--tp-red); border:1px solid var(--tp-line); border-radius:0; color:var(--tp-white); display:inline-flex; font-size:.86rem; font-weight:800; justify-content:center; min-height:48px; padding:.85rem 1.5rem; text-decoration:none; }
.wp-block-button__link:hover { background:var(--tp-asphalt); border-color:var(--tp-red); color:var(--tp-white); }
.is-style-outline>.wp-block-button__link { background:var(--tp-white); color:var(--tp-asphalt); }

.tp-section { padding-block:clamp(3.5rem,7vw,6.5rem); }
.tp-section--concrete { background:var(--tp-concrete); }
.tp-section--dark { background:var(--tp-asphalt); color:var(--tp-white); }
.tp-section--dark :where(h2,h3,p,a) { color:inherit; }

.tp-home-hero { align-items:stretch; background-color:#777; background-image:url("assets/images/asphalt-lines-background.jpg"); background-blend-mode:multiply; display:grid; grid-template-columns:minmax(310px,440px) minmax(0,1fr); margin-top:-1px; padding:64px max(5vw,calc((100vw - 1200px)/2)); }
.tp-home-hero__form { background:var(--tp-asphalt); color:var(--tp-white); padding:clamp(1.5rem,3vw,2.5rem); }
.tp-home-hero__form::before { background:url("assets/images/tuckers-logo.png") center/contain no-repeat; content:""; display:block; height:145px; margin:0 auto 1rem; width:210px; }
.tp-home-hero__message { align-self:center; background:rgb(255 255 255 / 92%); padding:clamp(2rem,5vw,5rem); }
.tp-home-hero__message h1 { color:#444; font-family:Montserrat,Arial,sans-serif; font-size:.78rem; font-style:italic; font-weight:400; }
.tp-home-hero__message .tp-hero__lede { color:var(--tp-asphalt); font-family:Oswald,sans-serif; font-size:clamp(2rem,4vw,4rem); line-height:1.14; max-width:24ch; text-transform:uppercase; }
.tp-home-hero__message .tp-eyebrow { display:none; }
.tp-home-hero__image { margin:1.5rem auto 0; max-width:310px; }
.tp-home-hero__image img { aspect-ratio:4/3; object-fit:cover; width:100%; }

.tp-form { display:grid; gap:.8rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.tp-form label { color:inherit; display:block; font-size:.72rem; }
.tp-form input,.tp-form select,.tp-form textarea { background:transparent; border:1px solid #555; border-radius:0; color:inherit; margin-top:.3rem; min-height:44px; padding:.65rem; width:100%; }
.tp-form textarea { min-height:110px; resize:vertical; }
.tp-form input[type="checkbox"] { height:22px; min-height:22px; width:22px; }
.tp-form__wide { grid-column:1/-1; }
.tp-form__notice { background:#fff2b8; border-left:4px solid #8a6500; color:#302600; font-size:.72rem; padding:.75rem; }
.tp-form__notice a { color:#302600; }
.tp-form__consent { align-items:center; display:flex!important; gap:.6rem; }
.tp-form button[disabled] { background:var(--tp-red); border:1px solid var(--tp-line); color:var(--tp-asphalt); min-height:48px; padding:.8rem 1.4rem; }

.tp-card-grid { align-items:stretch!important; display:grid!important; gap:1.35rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.tp-card { background:var(--tp-white); border:1px solid var(--tp-line); border-radius:0 0 24px 0; box-shadow:none; display:flex; flex-direction:column; height:100%; overflow:hidden; padding:1.25rem; }
.tp-card__media { margin:-1.25rem -1.25rem 1rem; overflow:hidden; }
.tp-card__media img { aspect-ratio:4/3; object-fit:cover; width:100%; }
.tp-card h2,.tp-card h3 { color:var(--tp-red); font-family:Montserrat,Arial,sans-serif; font-size:1rem; font-style:italic; font-weight:500; margin:.3rem 0; }
.tp-card p { font-size:.84rem; }
.tp-card__link-raw { margin-top:auto; }
.tp-card__link-raw a { align-items:center; background:var(--tp-red); border:1px solid var(--tp-line); color:var(--tp-white); display:inline-flex; font-size:.75rem; font-weight:750; min-height:44px; padding:.6rem 1rem; text-decoration:none; }
.tp-services { background:var(--tp-concrete); padding-block:4rem; }
.tp-services .tp-card-grid { grid-template-columns:repeat(4,minmax(0,1fr)); max-width:1060px; }
/* Grid gap supplies spacing; remove Gutenberg's sibling block margins. */
.tp-services .tp-card-grid > .tp-card { margin-block:0; }
/* Keep the button at the bottom when WordPress supplies inner block margins. */
.tp-services .tp-card > .tp-card__link-raw { margin-block-start:auto; }

.tp-home-intro { background-color:#333; background-image:url("assets/images/asphalt-lines-background.jpg"); background-blend-mode:multiply; background-position:center; background-size:cover; color:var(--tp-white); }
.tp-home-intro h2,.tp-home-intro h3 { color:var(--tp-red); }
.tp-home-intro p { color:var(--tp-white); }
/* Homepage services: canonical Gutenberg cards and integrated CTA. */
.tp-service-section { background:var(--tp-asphalt); color:var(--tp-paper); padding:clamp(3.5rem,6vw,5.5rem) 24px; }
.tp-service-section__inner { margin-inline:auto; max-width:1200px; }
.tp-service-section__intro { max-width:720px; margin-bottom:2.5rem; }
.tp-service-section .tp-eyebrow { color:var(--tp-paper); font-size:.8rem; font-style:normal; letter-spacing:.16em; border-left:4px solid var(--tp-red); padding-left:14px; }
.tp-service-section h2 { color:var(--tp-white); font:600 clamp(2.2rem,3.5vw,3.2rem)/1.15 Oswald,sans-serif; text-transform:uppercase; margin:1rem 0; }
.tp-service-section__intro>p:last-child { color:#dedede; font-size:1rem; line-height:1.65; max-width:64ch; }
.tp-service-section__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:1fr; gap:24px; }
.tp-service-card { background:var(--tp-paper); color:var(--tp-asphalt); border:2px solid transparent; min-width:0; display:flex; flex-direction:column; margin:0; }
.tp-service-section__inner>.tp-service-section__grid,.tp-service-section__inner>.tp-service-section__cta { max-width:none; }
.tp-service-section__grid>.tp-service-card { width:100%; max-width:none; margin-block:0; }
.tp-service-card>.tp-service-card__image,.tp-service-card>.tp-service-card__body { width:100%; max-width:none; margin:0; }
.tp-service-card:focus-within { border-color:var(--tp-red); }
.tp-service-card__image { margin:0; }
.tp-service-card__image img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.tp-service-card__body { display:flex; flex:1; flex-direction:column; padding:24px; }
.tp-service-card h3 { color:var(--tp-asphalt); font:600 1.6rem/1.2 Oswald,sans-serif; font-style:normal; margin:0 0 12px; }
.tp-service-card__body>p { font-size:.95rem; line-height:1.65; margin:0 0 16px; }
.tp-service-card__body>.tp-service-card__link { margin:auto 0 0; padding-top:8px; }
.tp-service-card__link a { display:inline-flex; align-items:center; gap:12px; min-height:44px; color:var(--tp-red-dark); font-weight:750; text-decoration:underline; text-underline-offset:5px; }
.tp-service-card__link a:hover { color:var(--tp-asphalt); }
.tp-service-section a:focus-visible { outline:3px solid var(--tp-asphalt); outline-offset:4px; }
.tp-service-section__cta { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:32px; padding-top:32px; border-top:1px solid #747474; }
.tp-service-section__cta h3 { color:var(--tp-white); font:500 clamp(1.5rem,2.2vw,2rem)/1.25 Oswald,sans-serif; margin:0 0 10px; }
.tp-service-section__cta p { color:#dedede; margin:0; }
.tp-service-section__cta .tp-actions { flex-shrink:0; margin:0; }
.tp-service-section__cta .tp-primary-cta a { background:var(--tp-red-dark); }
.tp-service-section__cta a:focus-visible { outline-color:#fff; }
@media (max-width:1024px) {
  .tp-service-section__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tp-service-section__cta { align-items:flex-start; flex-direction:column; }
}
@media (max-width:600px) {
  .tp-service-section { padding-inline:20px; }
  .tp-service-section__grid { grid-template-columns:1fr; }
  .tp-service-card__body { padding:22px; }
  .tp-service-section__cta .tp-actions { width:100%; flex-direction:column; align-items:stretch; }
  .tp-service-section__cta .wp-block-button__link { width:100%; text-align:center; }
}
.tp-contact-band { align-items:center; background:var(--tp-asphalt); display:flex; justify-content:space-between; padding:1.4rem max(5vw,calc((100vw - 1120px)/2)); }
.tp-contact-band h2 { color:#ddd; font:italic 1.2rem Montserrat,sans-serif; }
.tp-contact-band .tp-actions { margin:0; }

.tp-testimonials { background:var(--tp-paper); }
.tp-testimonials>h2 { color:var(--tp-red); text-align:center; text-transform:uppercase; }
.tp-testimonial-grid { display:grid; gap:1.2rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
/* Grid gap replaces Gutenberg's sibling margins; quotes remain noninteractive. */
.tp-testimonials .tp-testimonial-grid > .tp-testimonial-card { margin-block:0; }
.tp-testimonial-card { background:var(--tp-asphalt); border:0; color:var(--tp-white); margin:0; min-height:220px; padding:2rem; text-align:center; }
.tp-testimonial-card p { color:var(--tp-white); }
.tp-testimonial-card .tp-stars { color:var(--tp-red); font-size:1.2rem; letter-spacing:.12em; }
.tp-testimonial-card cite { color:#ddd; display:block; font-style:normal; margin-top:1rem; }
.tp-review-disclosure { margin:1.5rem auto 0; max-width:1120px; }
.tp-review-disclosure summary { background:var(--tp-red); border:1px solid var(--tp-line); color:var(--tp-white); cursor:pointer; font-weight:800; list-style-position:inside; min-height:48px; padding:.85rem 1.2rem; text-align:center; }
.tp-review-disclosure[open] summary { margin-bottom:1.2rem; }

.tp-reasons { background-color:#333; background-image:url("assets/images/asphalt-lines-background.jpg"); background-blend-mode:multiply; background-position:center; background-size:cover; color:var(--tp-white); text-align:center; }
.tp-reasons h2,.tp-reasons h3,.tp-reasons p { color:var(--tp-white); margin-inline:auto; max-width:900px; }
.tp-reasons__grid { display:grid; gap:1rem; grid-template-columns:repeat(4,minmax(0,1fr)); margin-block:2rem; max-width:1040px; }
.tp-reasons .tp-reasons__grid > .tp-reason-card { margin-block:0; }
.tp-reason-card { border:1px solid #3d3d3d; min-height:150px; padding:2rem 1rem; }
.tp-reason-card::before { background:url("assets/images/tuckers-logo.png") center/contain no-repeat; content:""; display:block; height:44px; margin:0 auto 1rem; width:60px; }
.tp-reason-card p { font-size:.78rem; font-weight:700; }

.tp-split { align-items:center; display:grid; gap:clamp(2rem,6vw,5rem); grid-template-columns:minmax(0,1fr) minmax(320px,1fr); }
.tp-split__media { display:grid; gap:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.tp-split__media:has(>:only-child) { grid-template-columns:1fr; }
.tp-split .tp-split__media > .tp-split__image { margin-block:0; }
.tp-split__image { margin:0; }
.tp-split__image img { aspect-ratio:4/3; object-fit:cover; width:100%; }
.tp-about-story { background-color:#444; background-image:url("assets/images/asphalt-lines-background.jpg"); background-blend-mode:multiply; background-position:center; background-size:cover; color:var(--tp-white); }
.tp-about-story h2,.tp-about-story h3 { color:var(--tp-red); } .tp-about-story p { color:var(--tp-white); }
.tp-about-details .tp-split__image img { aspect-ratio:3/5; }
.tp-service-detail { background:var(--tp-concrete); }
.tp-service-detail .tp-content-list { border-left:2px solid var(--tp-red); list-style:none; padding-left:1rem; }

.tp-trust-strip { background:var(--tp-paper); border-block:1px solid var(--tp-line); padding-block:2.5rem; }
.tp-trust-strip .wp-block-columns { display:grid; gap:1rem; grid-template-columns:repeat(4,minmax(0,1fr)); }
.tp-trust-strip .wp-block-column { border-left:3px solid var(--tp-red); padding:.5rem 1rem; }
.tp-trust__label { font-weight:750; }

.tp-faq { background-color:#444; background-image:url("assets/images/asphalt-lines-background.jpg"); background-blend-mode:multiply; background-position:center; background-size:cover; max-width:none; padding-inline:max(5vw,calc((100vw - 1080px)/2)); }
.tp-faq details { background:var(--tp-white); border:0; margin-bottom:1rem; padding:.5rem 1.1rem; }
.tp-faq > .tp-faq__item { margin-block:0 1rem; }
.tp-faq summary { cursor:pointer; font-size:1rem; font-style:italic; min-height:52px; padding:.8rem .25rem; }
.tp-faq details[open] { border-left:5px solid var(--tp-red); }
.tp-faq details p { padding:0 .25rem 1rem; }

.tp-map-fallback { align-items:center; background:#ddd url("assets/images/road-arrows-background.jpg") center/cover; border:12px solid var(--tp-white); display:flex; justify-content:center; min-height:360px; padding:2rem; text-align:center; }
.tp-map-fallback p { background:rgb(255 255 255 / 92%); max-width:44ch; padding:1.25rem; }
.tp-areas { background:var(--tp-paper); }
.tp-areas .tp-card { align-items:center; justify-content:center; min-height:210px; text-align:center; }
.tp-areas .tp-card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }

.tp-gallery>h2 { color:var(--tp-red); text-align:center; }
.tp-gallery-grid { display:grid; gap:1rem; grid-template-columns:repeat(3,minmax(0,1fr)); }
.tp-gallery .tp-gallery-grid > .tp-gallery__image { margin-block:0; }
.tp-gallery__image { margin:0; overflow:hidden; }
.tp-gallery__image img { aspect-ratio:4/3; object-fit:cover; width:100%; }

.tp-archive .tp-card { min-height:280px; }
.tp-archive .tp-card-grid { max-width:1140px; }
.tp-archive .tp-card-grid > .tp-card { margin-block:0; }
/* Native Query Loop wraps each card in a post-template list item. */
.tp-archive .tp-card-grid > .wp-block-post,
.tp-archive .tp-card-grid > .wp-block-post > .tp-card { margin-block:0; }
.tp-archive .tp-card > .tp-card__link-raw { margin-block-start:auto; }
.tp-archive .tp-card::before { background:url("assets/images/article-background.jpg") center/cover; content:""; display:block; height:150px; margin:-1.25rem -1.25rem 1.25rem; }
.tp-article { max-width:900px; }
.tp-article h2 { border-bottom:2px solid var(--tp-red); padding-bottom:.5rem; }

.tp-contact-layout { background-color:#888; background-image:url("assets/images/asphalt-lines-background.jpg"); background-blend-mode:multiply; background-position:center; background-size:cover; display:grid; gap:2rem; grid-template-columns:1fr 1fr; }
/* Align the panel containers without changing their different contents. */
.tp-contact-layout > .tp-contact-form-card,.tp-contact-layout > .tp-contact-card { margin-block:0; }
.tp-contact-form-card,.tp-contact-card { background:rgb(247 247 247 / 94%); padding:clamp(1.5rem,4vw,3rem); }
.tp-contact-card h2,.tp-contact-card h3 { color:var(--tp-red); font-family:Montserrat,Arial,sans-serif; font-style:italic; }
.tp-contact-logo img { height:220px; margin-inline:auto; object-fit:contain; }

.tp-media-grid { display:grid; gap:1.25rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.tp-media-grid>.alignwide { margin:0; max-width:none; padding:0; }
.tp-source-media { margin:0; } .tp-source-media img { aspect-ratio:4/3; object-fit:cover; width:100%; }
.tp-media-fallback { align-items:center; aspect-ratio:16/9; background:var(--tp-concrete); border:1px solid var(--tp-line); display:flex; justify-content:center; padding:2rem; text-align:center; }
.tp-resource-note { background:#fff2b8; border-left:4px solid #8a6500; padding:1rem; }

.tp-final-cta { background:var(--tp-asphalt); color:var(--tp-white); padding-inline:max(5vw,calc((100vw - 1120px)/2)); }
.tp-final-cta h2,.tp-final-cta p { color:var(--tp-white); }
.tp-final-cta .tp-actions { justify-content:flex-start; }
.tp-thank-you-actions { text-align:center; }

.site-footer { background-color:var(--tp-paper); background-image:url("assets/images/asphalt-lines-background.jpg"); background-blend-mode:screen; background-position:center; background-size:cover; border-top:1px solid var(--tp-line); color:var(--tp-asphalt); }
.site-footer__grid { display:grid!important; gap:0!important; grid-template-columns:1fr 1fr 1fr; margin:0; width:100%; }
.site-footer__grid>.wp-block-column { min-height:280px; padding:clamp(2rem,5vw,4rem); }
.site-footer__grid>.wp-block-column+.wp-block-column { border-left:1px solid var(--tp-line); }
.site-footer h2 { font:italic 1.55rem Montserrat,sans-serif; margin-top:0; }
.site-footer__location { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; align-items:start; gap:1.5rem; text-align:left; }
.site-footer__grid>.site-footer__location { padding-inline:clamp(1.25rem,2.2vw,2rem); }
.site-footer__location>.site-footer__contact-item { min-width:0; margin:0; text-align:left; }
.site-footer__contact-item h2 { margin:0 0 .65rem; }
.site-footer__contact-item p { margin:0; }
.site-footer__location .site-footer__contact-item a { align-items:flex-start; justify-content:flex-start; max-width:100%; min-width:44px; }
@media (min-width:768px) and (max-width:1199px) {
  .site-footer__location { grid-template-columns:minmax(0,1fr); }
}
.site-footer__brand { align-items:center; background:url("assets/images/tuckers-logo.png") center/min(70%,380px) auto no-repeat; display:flex; justify-content:center; }
.site-footer__brand a { color:transparent; display:block; font-size:0; height:190px; width:100%; }
.site-footer__services { text-align:center; }
.site-footer__services ul { list-style:none; margin:0; padding:0; }
.site-footer__services li+li { margin-top:.45rem; }
.site-footer a { align-items:center; color:var(--tp-asphalt); display:inline-flex; min-height:44px; text-underline-offset:.2em; }
.site-footer__social { margin:0; padding:1.4rem; text-align:center; }
.site-footer__social a { align-items:center; background:var(--tp-red); border-radius:50px; color:var(--tp-white); display:inline-flex; font-size:.75rem; font-weight:750; padding:.5rem 1rem; text-decoration:none; }
.site-footer__legal { background:var(--tp-red); color:var(--tp-white); margin:0; padding:1.5rem; }

.error404 .entry-shell,.tp-404 { background:var(--tp-paper); padding-block:clamp(3rem,8vw,7rem); text-align:center; }
.tp-404__code { color:var(--tp-red); font-family:Oswald,sans-serif; font-size:clamp(5rem,20vw,12rem); line-height:.8; margin:0; }

@media (max-width:980px) {
	.tp-services .tp-card-grid,.tp-reasons__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:767px) {
	body { font-size:15px; }
	.tp-hero { padding:32px 1rem; } .tp-hero__inner { padding:2rem 1.25rem; }
	.tp-hero h1 { font-size:.92rem; } .tp-hero__title { font-size:clamp(1.75rem,9vw,2.55rem); }
	.tp-home-hero { display:flex; flex-direction:column; padding:2rem 1rem; }
	.tp-home-hero__message { order:-1; padding:2rem 1.25rem; }
	.tp-home-hero__message .tp-hero__lede { font-size:2rem; }
	.tp-home-hero__form::before { height:105px; }
	.tp-form { grid-template-columns:1fr; } .tp-form__wide { grid-column:auto; }
	.tp-card-grid,.tp-services .tp-card-grid,.tp-testimonial-grid,.tp-reasons__grid,.tp-trust-strip .wp-block-columns,.tp-gallery-grid,.tp-media-grid { grid-template-columns:1fr; }
	.tp-contact-band { align-items:stretch; flex-direction:column; padding:1.5rem 1rem; }
	.tp-contact-band .tp-actions { justify-content:flex-start; }
	.tp-split { display:flex; flex-direction:column; padding-inline:1rem; }
	.tp-split__media { grid-template-columns:1fr; width:100%; }
	.tp-about-details .tp-split__image img { aspect-ratio:4/3; }
	.tp-areas .tp-card-grid { grid-template-columns:1fr; }
	.tp-map-fallback { min-height:260px; }
	.tp-contact-layout { grid-template-columns:1fr; padding-inline:1rem; }
	.site-footer__grid { grid-template-columns:1fr!important; }
	.site-footer__grid>.wp-block-column { min-height:0; padding:2rem 1.25rem; }
	.site-footer__grid>.wp-block-column+.wp-block-column { border-left:0; border-top:1px solid var(--tp-line); }
	.site-footer__location { grid-template-columns:minmax(0,1fr); gap:1.25rem; }
	.site-footer__brand { min-height:230px!important; }
}
@media (prefers-reduced-motion:reduce) {
	html { scroll-behavior:auto; }
	*,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
}
.tp-form__hp { clip:rect(0 0 0 0)!important; clip-path:inset(50%)!important; height:1px!important; overflow:hidden!important; position:absolute!important; white-space:nowrap!important; width:1px!important; }

/* Proposed Service Areas hub: scoped presentation, no global layout changes. */
.tp-region-hero { background-color:#303030; background-image:url("assets/images/asphalt-lines-background.jpg"); padding:clamp(2.5rem,5vw,4rem) max(1.25rem,calc((100% - 1200px)/2)); }
.tp-region-hero .tp-hero__inner { background:none; color:#fff; padding:0; text-align:left; max-width:1200px; }
.tp-region-hero .tp-eyebrow { color:#fff; border-left:4px solid #ed554c; padding-left:1rem; font-style:normal; }
.tp-region-hero h1 { color:#fff; font-family:Oswald,sans-serif; font-size:clamp(2.5rem,5vw,4.5rem); font-style:normal; font-weight:600; line-height:1.1; margin:1rem 0; }
.tp-region-hero .tp-hero__lede { margin:0; max-width:64ch; }
.tp-region-hero .tp-actions { justify-content:flex-start; margin-top:1.5rem; }
.tp-region-hero .tp-primary-cta a,.tp-region-contact .tp-primary-cta a { background:#b51b17; color:#fff; }
.tp-region-map { display:grid; grid-template-columns:minmax(0,1fr); gap:0; padding:3.5rem 1.25rem; max-width:1240px; margin:0 auto!important; }
.tp-region-map h2,.tp-region-communities h2,.tp-region-cta h2 { font-style:normal; font-family:Oswald,sans-serif; line-height:1.2; }
.tp-region-map h2 { font-size:clamp(2rem,3vw,3rem); margin:.75rem 0 1rem; }
.tp-region-map__copy { max-width:760px; margin-bottom:1.5rem!important; }
.tp-region-map__copy .tp-eyebrow { color:#b51b17; font-style:normal; }
.tp-region-map__canvas { position:relative; width:100%; margin:0!important; border:1px solid #454e54; background:#191e21; overflow:hidden; }
.tp-region-map__canvas img { width:100%; height:auto; display:block; }
.tp-region-map__canvas .tp-region-map__mobile { display:none; }
.tp-region-map__city { position:absolute; inset:0; pointer-events:none; }
.tp-region-map__point { position:absolute; left:var(--x); top:var(--y); width:12px; height:12px; transform:translate(-50%,-50%); }
.tp-region-map__point { pointer-events:auto; cursor:pointer; }
.tp-region-map__point::before { content:''; position:absolute; inset:0; border-radius:50%; background:#d32621; border:2px solid #fff; box-shadow:0 0 0 3px #191e21; }
.tp-region-map__marker { position:absolute; left:var(--lx); top:var(--ly); transform:translate(-50%,-50%); min-width:44px; min-height:44px; padding:6px 10px; display:flex; align-items:center; justify-content:center; background:#242b30; color:#fff; border:1px solid #77838a; font-size:14px; font-weight:600; text-decoration:none; line-height:1.2; white-space:nowrap; pointer-events:auto; }
.tp-region-map__marker:hover { background:#3d474e; color:#fff; border-color:#fff; }
.tp-region-map__marker:focus-visible { outline:3px solid #fff; outline-offset:3px; z-index:3; }
.tp-region-map__marker[aria-current] { background:#a71915; color:#fff; border:2px solid #fff; }
.tp-region-map__marker[aria-current]::after { content:'✓'; margin-left:6px; font-weight:700; }
.tp-region-map__city:has([aria-current]) .tp-region-map__point::before { background:#ff3931; box-shadow:0 0 0 4px #191e21,0 0 0 6px #fff; }
.tp-region-map__city:focus-within { z-index:3; }
.tp-region-map__selection { display:flex; justify-content:space-between; align-items:center; gap:1rem; border-left:4px solid #b51b17; background:#f1f0ec; padding:1rem 1.25rem; margin:0!important; }
.tp-region-map__selection p { margin:0; }
.tp-region-map__selected-name { font-weight:700; }
.tp-region-map__selected-description { font-size:.9rem; margin-top:.25rem!important; }
.tp-region-map__selection a[hidden] { display:none; }
.tp-region-map .tp-region-map__attribution { margin:.65rem 0 0; font-size:.75rem; color:#505050; }
/* Keep the map out of Gutenberg's 760px constrained-child measure.
   All component rows share one centerline; the approved mobile layout is unchanged. */
@media(min-width:601px) {
	.tp-region-map.alignwide { width:min(100%,1220px); max-width:1220px; margin-inline:auto!important; }
	.tp-region-map > .tp-region-map__copy { width:min(100%,760px); margin-inline:auto!important; }
	.tp-region-map > .tp-region-map__canvas,
	.tp-region-map > .tp-region-map__selection,
	.tp-region-map > .tp-region-map__attribution { width:min(100%,1180px); max-width:1180px; margin-inline:auto!important; }
	.tp-region-map > .tp-region-map__attribution { text-align:center; }
}
.tp-region-map__selected-link,.tp-community__link { display:inline-flex; align-items:center; min-height:44px; color:#971611; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.tp-region-map__selected-link:focus-visible,.tp-community__link:focus-visible { outline:3px solid #971611; outline-offset:3px; }
.tp-region-communities { background:#242424; color:#fff; padding:clamp(2.5rem,5vw,4rem) 1.25rem; }
.tp-region-width { max-width:1200px; margin:0 auto!important; }
.tp-region-communities h2 { font-size:clamp(2rem,3vw,2.75rem); margin:0 0 1.5rem; color:#fff; }
.tp-community-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.tp-community { background:#f7f7f7; color:#242424; border:2px solid transparent; padding:1.25rem; margin:0!important; }
.tp-community:focus-within { border-color:#b51b17; }
.tp-region-communities .tp-community-grid > .tp-community { display:flex; flex-direction:column; }
/* Flex margins do not collapse: preserve the existing heading-to-copy gap. */
.tp-region-communities .tp-community > h3 + p { margin-block-start:0; }
.tp-region-communities .tp-community > p:has(> .tp-community__link) { margin-block-start:auto; padding-block-start:.5rem; }
.tp-community .tp-community__number { color:#971611; font-size:.85rem; font-weight:700; margin:0 0 .5rem; }
.tp-community h3 { font-family:Oswald,sans-serif; font-style:normal; font-size:1.5rem; margin:0 0 .65rem; }
.tp-community p { margin:.5rem 0 0; font-size:.9rem; }
.tp-community__link { gap:.5rem; font-size:.85rem; }
.tp-region-cta { max-width:1200px; margin:0 auto!important; padding:3.5rem 1.25rem; display:grid; grid-template-columns:1fr 1.4fr; gap:3rem; align-items:start; }
.tp-region-cta > .tp-region-statement,.tp-region-cta > .tp-region-contact { margin-block:0; }
.tp-region-cta h2 { font-size:clamp(1.75rem,3vw,2.25rem); margin:0 0 1rem; }
.tp-region-contact { border-left:4px solid #b51b17; padding-left:2rem; }
.tp-region-contact .tp-actions { justify-content:flex-start; }
@media(max-width:1024px) { .tp-region-map__marker { font-size:12px; padding:6px; } .tp-community-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .tp-region-cta { gap:2rem; } }
@media(max-width:600px) { .tp-region-map__canvas .tp-region-map__desktop { display:none; } .tp-region-map__canvas .tp-region-map__mobile { display:block; } .tp-region-map__point { left:var(--mx); top:var(--my); } .tp-region-map__marker { left:var(--mlx); top:var(--mly); } .tp-region-map__selection { flex-direction:column; align-items:flex-start; gap:.25rem; } .tp-region-map { padding:2rem 1.25rem; } .tp-community-grid { grid-template-columns:1fr; } .tp-region-cta { grid-template-columns:1fr; padding:2.5rem 1.25rem; } .tp-region-contact { padding-left:1rem; } .tp-region-hero .tp-actions { flex-direction:column; align-items:stretch; } .tp-region-hero .wp-block-button__link { width:100%; } }
.tp-region-map__label { pointer-events:none; }

.tp-region-map__city:has(.tp-region-map__point:hover) .tp-region-map__marker { border-color:#fff; }

/* Shared navigation-card contract: service, article and community destinations.
   Informational grids, map markers, disclosures and mixed CTA panels stay still. */
:is(.tp-services .tp-card-grid > .tp-card,
    .tp-archive .tp-card-grid .tp-card,
    .tp-service-section .tp-service-section__grid > .tp-service-card,
    .tp-region-communities .tp-community-grid > .tp-community) {
  transform:none; box-shadow:none; transition:transform 200ms ease,box-shadow 200ms ease;
}
:is(.tp-services .tp-card-grid > .tp-card,
    .tp-archive .tp-card-grid .tp-card,
    .tp-service-section .tp-service-section__grid > .tp-service-card,
    .tp-region-communities .tp-community-grid > .tp-community):focus-within {
  transform:translateY(-8px); box-shadow:var(--tp-shadow);
}
@media (hover:hover) and (pointer:fine) {
  :is(.tp-services .tp-card-grid > .tp-card,
      .tp-archive .tp-card-grid .tp-card,
      .tp-service-section .tp-service-section__grid > .tp-service-card,
      .tp-region-communities .tp-community-grid > .tp-community):hover {
    transform:translateY(-8px); box-shadow:var(--tp-shadow);
  }
  .tp-service-card:hover { border-color:var(--tp-red); }
  .tp-community:hover { border-color:#b51b17; }
}
@media (prefers-reduced-motion:reduce) {
  /* !important cancels the existing theme-wide reduced-motion duration rule. */
  :is(.tp-services .tp-card-grid > .tp-card,
      .tp-archive .tp-card-grid .tp-card,
      .tp-service-section .tp-service-section__grid > .tp-service-card,
      .tp-region-communities .tp-community-grid > .tp-community) { transition:none!important; }
  :is(.tp-services .tp-card-grid > .tp-card,
      .tp-archive .tp-card-grid .tp-card,
      .tp-service-section .tp-service-section__grid > .tp-service-card,
      .tp-region-communities .tp-community-grid > .tp-community):is(:hover,:focus-within) {
    transform:none;
  }
}

/* Evidenced homepage video: local poster, stable player frame, deliberate activation. */
.tp-home-video { background: #191919; color: #f8f7f3; padding: clamp(32px, 5vw, 64px) 20px; }
.tp-home-video .tp-home-video__inner { width: min(100%, 1100px); max-width: 1100px; margin-inline: auto; }
.tp-home-video .tp-eyebrow { color: #f8f7f3; border-left: 4px solid #d9232e; padding-left: 12px; }
.tp-home-video h2 { color: #fff; font-style: normal; font-size: clamp(30px, 4vw, 48px); line-height: 1.12; margin: 12px 0 24px; }
.tp-home-video .tp-home-video__frame { position: relative; width: 100%; max-width: none; aspect-ratio: 16 / 9; background: #080808; overflow: hidden; border: 1px solid #666; }
.tp-home-video__frame > img, .tp-home-video__frame > iframe { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; margin: 0; }
.tp-home-video__play { position: absolute; inset: auto auto 24px 24px; display: inline-flex; align-items: center; gap: 12px; min-height: 56px; min-width: 56px; padding: 12px 22px; background: #a8121d; color: #fff; border: 2px solid #fff; border-radius: 0; font: inherit; font-weight: 700; cursor: pointer; }
.tp-home-video__play[hidden] { display: none; }
.tp-home-video__play:hover { background: #800d16; }
.tp-home-video__play:focus-visible, .tp-home-video__details a:focus-visible, .tp-home-video__frame > iframe:focus-visible { outline: 3px solid #fff; outline-offset: -6px; }
.tp-home-video .tp-home-video__details { max-width: none; margin-top: 16px; }
.tp-home-video__details p { color: #ddd; margin: 0; font-size: 15px; }
.tp-home-video__details a { display: inline-flex; align-items: center; min-height: 44px; color: #fff; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 600px) { .tp-home-video__play { inset: auto auto 12px 12px; padding: 8px 14px; min-height: 48px; } }

/* Contact intake: shared field layout, visible keyboard focus and truthful states. */
[data-contact-intake] [hidden] { display:none!important; }
[data-contact-intake] :is(input,select,textarea,button):focus-visible { outline:3px solid currentColor; outline-offset:3px; }
[data-contact-intake] button { min-height:44px; padding:.8rem 1.4rem; cursor:pointer; }
[data-contact-intake] button:disabled { cursor:not-allowed; opacity:.65; }
[data-contact-status]:focus { outline:3px solid currentColor; outline-offset:3px; }
