/*
Theme Name: Tally K9 Turnkey
Theme URI: https://tallyk9.com/
Author: Tally K9
Description: A turnkey, poster-inspired WordPress theme for Tally K9 Dog Boarding and Training. Includes the current menu structure, service pages, built-in contact forms, poster artwork, and editable WordPress content areas.
Version: 2.9.35
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: tally-k9
License: GNU General Public License v2 or later
*/

:root {
  --tally-navy: #04182d;
  --tally-navy-2: #082641;
  --tally-blue: #0d3b60;
  --tally-yellow: #f8c400;
  --tally-yellow-2: #ffd230;
  --tally-paper: #f5f3ed;
  --tally-white: #ffffff;
  --tally-ink: #071a2e;
  --tally-muted: #637286;
  --tally-line: rgba(7, 26, 46, .15);
  --tally-shadow: 0 22px 55px rgba(1, 18, 34, .18);
  --tally-max: 1240px;
  --tally-radius: 18px;
  --tally-display: Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Narrow", sans-serif;
  --tally-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--tally-ink);
  background: var(--tally-paper);
  font-family: var(--tally-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: #0b568c; text-decoration-thickness: 2px; text-underline-offset: 3px; }
a:hover { color: var(--tally-navy); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.container { width: min(calc(100% - 40px), var(--tally-max)); margin-inline: auto; }
.site-main { min-height: 55vh; overflow: hidden; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { clip: auto !important; width: auto; height: auto; padding: 12px 16px; margin: 8px; background: #fff; color: #000; z-index: 100000; }

/* Distressed / torn edges */
.torn-bottom, .torn-top { position: relative; }
.torn-bottom::after,
.torn-top::before {
  content: "";
  position: absolute;
  left: -2%;
  width: 104%;
  height: 25px;
  background: inherit;
  z-index: 4;
  pointer-events: none;
}
.torn-bottom::after {
  bottom: -17px;
  clip-path: polygon(0 0,100% 0,100% 45%,98% 65%,96% 44%,94% 72%,92% 48%,90% 76%,88% 52%,86% 70%,84% 47%,82% 78%,80% 54%,78% 73%,76% 46%,74% 76%,72% 52%,70% 71%,68% 44%,66% 75%,64% 50%,62% 78%,60% 48%,58% 73%,56% 51%,54% 80%,52% 47%,50% 72%,48% 50%,46% 77%,44% 46%,42% 73%,40% 52%,38% 79%,36% 49%,34% 72%,32% 44%,30% 76%,28% 50%,26% 71%,24% 47%,22% 78%,20% 52%,18% 72%,16% 46%,14% 77%,12% 50%,10% 72%,8% 46%,6% 78%,4% 51%,2% 72%,0 48%);
}
.torn-top::before {
  top: -17px;
  transform: rotate(180deg);
  clip-path: polygon(0 0,100% 0,100% 45%,98% 65%,96% 44%,94% 72%,92% 48%,90% 76%,88% 52%,86% 70%,84% 47%,82% 78%,80% 54%,78% 73%,76% 46%,74% 76%,72% 52%,70% 71%,68% 44%,66% 75%,64% 50%,62% 78%,60% 48%,58% 73%,56% 51%,54% 80%,52% 47%,50% 72%,48% 50%,46% 77%,44% 46%,42% 73%,40% 52%,38% 79%,36% 49%,34% 72%,32% 44%,30% 76%,28% 50%,26% 71%,24% 47%,22% 78%,20% 52%,18% 72%,16% 46%,14% 77%,12% 50%,10% 72%,8% 46%,6% 78%,4% 51%,2% 72%,0 48%);
}
.grunge {
  position: relative;
  isolation: isolate;
}
.grunge::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .22;
  background-image:
    radial-gradient(circle at 15% 30%, transparent 0 2px, rgba(255,255,255,.28) 3px, transparent 5px),
    radial-gradient(circle at 70% 65%, transparent 0 1px, rgba(0,0,0,.35) 2px, transparent 4px),
    linear-gradient(97deg, transparent 0 18%, rgba(255,255,255,.15) 18.2% 18.7%, transparent 19% 100%);
  background-size: 53px 47px, 39px 41px, 100% 100%;
  mix-blend-mode: overlay;
  pointer-events: none;
}

/* Header */
.announcement-bar {
  position: relative;
  z-index: 60;
  background: var(--tally-yellow);
  color: var(--tally-navy);
  text-align: center;
  padding: 9px 20px 12px;
  font-weight: 650;
  font-size: .9rem;
  letter-spacing: .01em;
}
.utility-bar { background: #020f1d; color: #fff; }
.utility-inner { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: .9rem; }
.utility-links { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.utility-bar a { color: #fff; text-decoration: none; font-weight: 700; }
.utility-bar a:hover { color: var(--tally-yellow); }
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(4, 24, 45, .98);
  border-bottom: 3px solid var(--tally-yellow);
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}
body.admin-bar .site-header { top: 32px; }
.header-inner { min-height: 98px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-branding { display: flex; align-items: center; flex: 0 0 auto; }
.site-logo { display: block; max-width: 340px; line-height: 0; }
.site-logo img, .site-logo .custom-logo { width: min(340px, 34vw); max-height: 82px; object-fit: contain; object-position: left center; }
.site-title-fallback { color: #fff; font-family: var(--tally-display); font-size: 2.2rem; letter-spacing: .03em; text-decoration: none; }
.site-title-fallback span { color: var(--tally-yellow); }
.main-navigation ul { list-style: none; display: flex; align-items: center; justify-content: flex-end; gap: 4px; padding: 0; margin: 0; }
.main-navigation li { position: relative; }
.main-navigation a {
  display: block;
  padding: 13px 10px;
  color: #fff;
  text-decoration: none;
  font-size: .77rem;
  line-height: 1;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  border-radius: 5px;
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a { color: var(--tally-yellow); background: rgba(255,255,255,.06); }
.main-navigation .menu-item-pay a { border: 2px solid var(--tally-yellow); color: var(--tally-yellow); }
.main-navigation .menu-item-club a { background: var(--tally-yellow); color: var(--tally-navy); }
.menu-toggle {
  display: none;
  width: 48px;
  height: 45px;
  border: 2px solid var(--tally-yellow);
  border-radius: 7px;
  background: transparent;
  color: #fff;
  align-items: center;
  justify-content: center;
}
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content: ""; display: block; width: 24px; height: 3px; background: var(--tally-yellow); border-radius: 3px; transition: transform .2s ease, opacity .2s ease; }
.menu-toggle span { margin: 5px 0; }
.menu-toggle[aria-expanded="true"] span { opacity: 0; }
.menu-toggle[aria-expanded="true"]::before { transform: translateY(8px) rotate(45deg); }
.menu-toggle[aria-expanded="true"]::after { transform: translateY(-8px) rotate(-45deg); }

/* Shared typography and buttons */
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: var(--tally-yellow); font-size: .78rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 30px; height: 4px; background: currentColor; clip-path: polygon(0 20%, 100% 0, 94% 100%, 5% 75%); }
.display-title { margin: 10px 0 18px; font-family: var(--tally-display); font-size: clamp(2.7rem, 6vw, 6rem); line-height: .95; letter-spacing: .015em; text-transform: uppercase; }
.display-title .yellow { color: var(--tally-yellow); }
.section-title { margin: 9px 0 16px; color: var(--tally-navy); font-family: var(--tally-display); font-size: clamp(2.25rem, 4vw, 4.1rem); line-height: .98; letter-spacing: .015em; text-transform: uppercase; }
.section-title.light { color: #fff; }
.section-lead { max-width: 750px; color: var(--tally-muted); font-size: 1.08rem; }
.section-lead.light { color: #cfdae5; }
.button-row { display: flex; gap: 13px; flex-wrap: wrap; }
.tally-button,
.wp-block-button__link,
input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 51px;
  padding: 0 22px;
  border: 0;
  border-radius: 6px;
  background: var(--tally-yellow);
  color: var(--tally-navy);
  font-weight: 700;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .045em;
  box-shadow: 7px 7px 0 rgba(0,0,0,.22);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.tally-button:hover, .wp-block-button__link:hover, input[type="submit"]:hover { color: var(--tally-navy); background: var(--tally-yellow-2); transform: translate(2px,2px); box-shadow: 4px 4px 0 rgba(0,0,0,.26); }
.tally-button.outline { color: #fff; background: transparent; border: 2px solid #fff; box-shadow: none; }
.tally-button.outline:hover { color: var(--tally-navy); background: #fff; }
.tally-button.dark { color: #fff; background: var(--tally-navy); }
.tally-button.dark:hover { color: #fff; background: #0b3154; }

/* Homepage hero */
.poster-hero {
  position: relative;
  min-height: 680px;
  display: grid;
  align-items: center;
  color: #fff;
  background:
    linear-gradient(90deg, rgba(3,19,35,.99) 0%, rgba(3,19,35,.96) 54%, rgba(3,19,35,.35) 75%, rgba(3,19,35,.05) 100%),
    url("assets/images/navy-texture-clean-v2.webp") center/cover no-repeat,
    var(--tally-navy);
  isolation: isolate;
}
.poster-hero::before {
  content: "";
  position: absolute;
  right: max(0px, calc((100vw - var(--tally-max)) / 2 - 25px));
  bottom: 0;
  width: min(44vw, 585px);
  height: 100%;
  background: url("assets/images/tally-k9-dog-hero-v6.webp") right bottom/contain no-repeat;
  z-index: -1;
  filter: saturate(1.05) contrast(1.04);
}
.poster-hero-content { width: min(69%, 810px); padding: 82px 0 110px; }
.poster-hero .display-title { font-size: clamp(3.3rem, 6.7vw, 6.9rem); text-shadow: 0 5px 0 rgba(0,0,0,.15); }
.poster-hero .hero-copy { max-width: 660px; margin: 0 0 28px; color: #e3ebf3; font-size: 1.19rem; }
.hero-phone-strip {
  display: inline-flex;
  align-items: center;
  gap: 15px;
  margin: 0 0 25px;
  padding: 10px 26px 12px 18px;
  color: var(--tally-navy);
  background: var(--tally-yellow);
  font-family: var(--tally-display);
  font-size: clamp(1.55rem, 3.4vw, 3rem);
  letter-spacing: .035em;
  line-height: 1;
  text-decoration: none;
  transform: rotate(-.5deg);
  clip-path: polygon(0 9%, 3% 3%, 7% 8%, 13% 2%, 20% 7%, 29% 1%, 38% 6%, 47% 2%, 56% 8%, 65% 2%, 74% 7%, 83% 1%, 91% 6%, 100% 2%, 98% 91%, 91% 96%, 82% 91%, 73% 98%, 64% 92%, 55% 97%, 46% 91%, 37% 98%, 28% 92%, 19% 97%, 10% 91%, 2% 98%);
}
.hero-phone-strip:hover { color: var(--tally-navy); background: var(--tally-yellow-2); }
.hero-phone-strip img { width: 43px; height: 43px; }
.hero-phone-strip small { display: block; margin-top: 4px; font-family: var(--tally-body); font-size: .68rem; font-weight: 650; letter-spacing: .55em; text-align: center; }
.hero-badge {
  position: absolute;
  right: min(29vw, 390px);
  bottom: 45px;
  width: 205px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  padding: 18px;
  color: var(--tally-navy);
  background: var(--tally-yellow);
  border: 5px solid var(--tally-navy);
  outline: 4px solid var(--tally-yellow);
  border-radius: 50%;
  text-align: center;
  transform: rotate(4deg);
  box-shadow: 0 18px 35px rgba(0,0,0,.28);
  z-index: 3;
}
.hero-badge strong { display: block; font-family: var(--tally-display); font-size: 3.9rem; line-height: .85; }
.hero-badge span { font-weight: 700; line-height: 1.05; text-transform: uppercase; }

.hero-overlay-shell {
  min-height: inherit;
  display: flex;
  align-items: center;
}
.hero-side-card {
  width: min(525px, 47.5vw);
  margin: 0;
  box-shadow: 0 20px 50px rgba(0,0,0,.28);
  border: 2px solid rgba(248,196,0,.28);
  position: relative;
  z-index: 3;
}
.hero-side-card .price-lockup strong { color: var(--tally-yellow); }
.hero-side-card .check-list li { border-color: rgba(255,255,255,.22); }
.hero-side-card .check-list li::before { color: var(--tally-navy); background: var(--tally-yellow); }



.mobile-hero-training-wrap {
  display: none;
}

/* Icon strip */
.proof-strip { position: relative; z-index: 8; padding: 35px 0 30px; background: var(--tally-yellow); color: var(--tally-navy); }
.proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.proof-item { display: flex; align-items: center; gap: 14px; min-height: 82px; padding: 7px 24px; border-right: 2px solid rgba(4,24,45,.45); }
.proof-item:last-child { border-right: 0; }
.proof-icon { width: 55px; height: 55px; flex: 0 0 55px; display: grid; place-items: center; border-radius: 50%; background: var(--tally-navy); color: var(--tally-yellow); font-family: var(--tally-display); font-size: 1.7rem; }
.proof-item strong { display: block; font-family: var(--tally-display); font-size: 1.2rem; line-height: 1; text-transform: uppercase; letter-spacing: .02em; }
.proof-item span { display: block; margin-top: 5px; font-size: .82rem; line-height: 1.3; font-weight: 650; }

/* Sections and cards */
.home-section { padding: 92px 0; }
.section-dark { background: var(--tally-navy); color: #fff; }
.section-paper { background: var(--tally-paper); }
.section-white { background: #fff; }
.section-yellow { background: var(--tally-yellow); }
.section-heading { margin-bottom: 42px; }
.section-heading.center { max-width: 820px; margin-inline: auto; text-align: center; }
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.service-card {
  position: relative;
  min-height: 360px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 31px;
  overflow: hidden;
  background: linear-gradient(145deg, #092845, #04172b);
  border: 3px solid var(--tally-yellow);
  box-shadow: 11px 11px 0 rgba(4,24,45,.13);
}
.service-card::after { content: ""; position: absolute; top: -55px; right: -55px; width: 145px; height: 145px; border: 21px solid rgba(248,196,0,.14); border-radius: 50%; }
.service-card .service-number { color: var(--tally-yellow); font-family: var(--tally-display); font-size: 4.6rem; line-height: .8; opacity: .9; }
.service-card h3 { margin: 38px 0 12px; color: #fff; font-family: var(--tally-display); font-size: 2.25rem; line-height: .95; text-transform: uppercase; }
.service-card p { margin: 0 0 24px; color: #c9d6e2; }
.text-link { color: var(--tally-yellow); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; text-decoration: none; }
.text-link:hover { color: #fff; }

.split-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 34px; align-items: stretch; }
.promo-panel { padding: 42px; background: #fff; box-shadow: var(--tally-shadow); border: 1px solid rgba(4,24,45,.08); }
.promo-panel.yellow { background: var(--tally-yellow); color: var(--tally-navy); }
.promo-panel.dark { background: var(--tally-navy); color: #fff; }
.promo-panel h3 { margin: 0 0 14px; font-family: var(--tally-display); font-size: clamp(2.2rem, 4vw, 4rem); line-height: .95; text-transform: uppercase; }
.price-lockup { display: flex; align-items: center; gap: 18px; margin: 25px 0; }
.price-lockup strong { font-family: var(--tally-display); font-size: clamp(4.3rem, 8vw, 7rem); line-height: .8; }
.promo-panel .price-lockup strong.is-word, .promo-panel .price-lockup strong.word-lockup { font-size: clamp(2.8rem, 5vw, 4.6rem); line-height: .9; }
.price-lockup span { max-width: 150px; font-weight: 700; line-height: 1.05; text-transform: uppercase; }
.check-list { list-style: none; padding: 0; margin: 24px 0; }
.check-list li { position: relative; padding: 11px 0 11px 36px; border-bottom: 1px solid currentColor; border-color: rgba(99,114,134,.28); font-weight: 650; }
.check-list li::before { content: "✓"; position: absolute; left: 0; top: 8px; width: 24px; height: 24px; display: grid; place-items: center; color: var(--tally-yellow); background: var(--tally-navy); border-radius: 50%; font-size: .82rem; }

.philosophy-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 54px; align-items: center; }
.poster-frame { position: relative; padding: 12px; background: var(--tally-yellow); box-shadow: 18px 18px 0 var(--tally-navy); transform: rotate(-1deg); }
.poster-frame img { display: block; width: 100%; }
.pull-quote { margin: 22px 0; padding: 22px 0 22px 25px; border-left: 8px solid var(--tally-yellow); color: var(--tally-navy); font-family: var(--tally-display); font-size: clamp(1.7rem, 3vw, 2.6rem); line-height: 1.08; text-transform: uppercase; }

.reinforcement-band { padding: 50px 0; background: #fff; color: var(--tally-navy); }
.reinforcement-inner { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 35px; }
.reinforcement-title { display: flex; align-items: center; gap: 22px; }
.reinforcement-check { width: 76px; height: 76px; flex: 0 0 76px; display: grid; place-items: center; border-radius: 50%; background: var(--tally-navy); color: var(--tally-yellow); font-size: 2.3rem; font-weight: 700; }
.reinforcement-title h2 { margin: 0; font-family: var(--tally-display); font-size: clamp(2rem, 4vw, 3.5rem); line-height: .93; text-transform: uppercase; }
.reinforcement-band p { margin: 0; padding-left: 35px; border-left: 2px solid var(--tally-navy); font-weight: 700; }

.poster-showcase { padding: 85px 0; background: #061a31; }
.poster-showcase img { display: block; width: 100%; border: 4px solid var(--tally-yellow); box-shadow: 0 26px 60px rgba(0,0,0,.38); }

.cta-band { padding: 65px 0; background: var(--tally-yellow); color: var(--tally-navy); }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 35px; }
.cta-inner h2 { margin: 0; font-family: var(--tally-display); font-size: clamp(2.3rem, 5vw, 4.8rem); line-height: .92; text-transform: uppercase; }
.cta-inner p { margin: 10px 0 0; font-weight: 650; }

/* Interior pages */
.page-hero {
  position: relative;
  padding: 75px 0 83px;
  color: #fff;
  background: linear-gradient(100deg, rgba(3,19,35,.97), rgba(4,34,59,.91)), url("assets/images/navy-texture-clean-v2.webp") center/cover;
}
.page-hero h1 { margin: 10px 0 0; font-family: var(--tally-display); font-size: clamp(3rem, 7vw, 6rem); line-height: .92; letter-spacing: .02em; text-transform: uppercase; }
.breadcrumbs { color: #b9c8d6; font-size: .84rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; }
.breadcrumbs a { color: var(--tally-yellow); text-decoration: none; }
.page-content { padding: 82px 0 100px; background: var(--tally-paper); }
.page-content > .container > :first-child { margin-top: 0; }
.content-width { max-width: 960px; }
.page-content h2, .page-content h3, .page-content h4 { color: var(--tally-navy); font-family: var(--tally-display); line-height: 1; text-transform: uppercase; }
.page-content h2 { margin: 45px 0 17px; font-size: clamp(2.1rem, 4vw, 3.5rem); }
.page-content h3 { margin: 34px 0 14px; font-size: clamp(1.65rem, 3vw, 2.35rem); }
.page-content p { margin: 0 0 1.25em; }
.page-intro { max-width: 920px; margin-bottom: 40px; font-size: 1.12rem; }
.content-card { padding: 34px; background: #fff; border: 1px solid rgba(4,24,45,.1); box-shadow: var(--tally-shadow); }
.content-card + .content-card { margin-top: 25px; }
.content-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 25px; }
.content-grid.three { grid-template-columns: repeat(3, 1fr); }
.notice-box { margin: 30px 0; padding: 24px 26px; background: var(--tally-yellow); color: var(--tally-navy); border-left: 9px solid var(--tally-navy); font-weight: 700; box-shadow: 8px 8px 0 rgba(4,24,45,.12); }
.dark-notice { background: var(--tally-navy); color: #fff; border-left-color: var(--tally-yellow); }

.pricing-section { margin: 35px 0 55px; }
.price-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.price-card { position: relative; padding: 29px; overflow: hidden; background: #fff; border-top: 7px solid var(--tally-yellow); box-shadow: var(--tally-shadow); }
.price-card h3 { margin-top: 0; }
.price-card .amount { display: block; margin: 12px 0; color: var(--tally-navy); font-family: var(--tally-display); font-size: 2.6rem; line-height: 1; }
.price-card small { color: var(--tally-muted); }
.pricing-table-wrap { overflow-x: auto; margin: 25px 0 45px; box-shadow: var(--tally-shadow); }
.pricing-table { width: 100%; min-width: 680px; border-collapse: collapse; background: #fff; }
.pricing-table th, .pricing-table td { padding: 18px 20px; text-align: left; border-bottom: 1px solid #d8dfe6; vertical-align: top; }
.pricing-table th { color: var(--tally-yellow); background: var(--tally-navy); font-family: var(--tally-display); font-size: 1.18rem; letter-spacing: .03em; text-transform: uppercase; }
.pricing-table tr:last-child td { border-bottom: 0; }
.pricing-table td:last-child { color: #0a4d7e; font-weight: 700; white-space: nowrap; }
.timeline { position: relative; margin: 40px 0; padding-left: 33px; border-left: 5px solid var(--tally-yellow); }
.timeline-step { position: relative; margin: 0 0 34px; padding: 24px 27px; background: #fff; box-shadow: 0 13px 34px rgba(4,24,45,.1); }
.timeline-step::before { content: ""; position: absolute; left: -46px; top: 28px; width: 21px; height: 21px; background: var(--tally-navy); border: 5px solid var(--tally-yellow); border-radius: 50%; }
.timeline-step h3 { margin: 0 0 9px; }

.gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 25px; }
.gallery-grid figure { margin: 0; padding: 9px; background: var(--tally-yellow); box-shadow: 12px 12px 0 var(--tally-navy); }
.gallery-grid figure:first-child { grid-row: span 2; }
.gallery-grid img { display: block; width: 100%; height: 100%; object-fit: cover; }
.editor-gallery { margin-top: 55px; }

.contact-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 30px; }
.contact-panel { padding: 35px; background: var(--tally-navy); color: #fff; box-shadow: 12px 12px 0 var(--tally-yellow); }
.contact-panel h2, .contact-panel h3 { color: #fff; }
.contact-panel a { color: var(--tally-yellow); }
.contact-detail { padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.contact-detail strong { display: block; color: var(--tally-yellow); font-size: .77rem; letter-spacing: .12em; text-transform: uppercase; }
.tally-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 17px; }
.tally-form .full { grid-column: 1 / -1; }
.tally-form label { display: block; margin-bottom: 6px; color: var(--tally-navy); font-weight: 650; }
.tally-form input[type="text"], .tally-form input[type="email"], .tally-form input[type="tel"], .tally-form select, .tally-form textarea {
  width: 100%;
  padding: 13px 14px;
  color: var(--tally-ink);
  background: #fff;
  border: 2px solid #b9c5d0;
  border-radius: 3px;
  outline: 0;
}
.tally-form input:focus, .tally-form select:focus, .tally-form textarea:focus { border-color: var(--tally-yellow); box-shadow: 0 0 0 3px rgba(248,196,0,.25); }
.tally-form textarea { min-height: 145px; resize: vertical; }
.form-status { margin-bottom: 22px; padding: 16px 19px; background: #e5f6e8; border-left: 6px solid #2e8a40; font-weight: 700; }
.form-status.error { background: #ffe6e5; border-left-color: #a42720; }
.honeypot { position: absolute !important; left: -9999px !important; }
.club-box { max-width: 850px; margin: 0 auto; padding: 45px; background: #fff; border: 5px solid var(--tally-yellow); box-shadow: 15px 15px 0 var(--tally-navy); }
.club-box .tally-form { grid-template-columns: 1fr 1fr; }
.payment-box { max-width: 850px; margin: 0 auto; padding: 54px; text-align: center; background: var(--tally-yellow); box-shadow: 16px 16px 0 var(--tally-navy); }
.payment-box h2 { margin-top: 0; font-size: clamp(2.8rem, 6vw, 5rem); }

/* WordPress editor content */
.entry-editor-content { margin-top: 55px; }
.entry-editor-content:empty { display: none; }
.entry-editor-content .alignwide { max-width: 1180px; margin-left: auto; margin-right: auto; }
.entry-editor-content .alignfull { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); }
.wp-block-image img { height: auto; }
.wp-block-quote { border-left: 7px solid var(--tally-yellow); padding-left: 24px; }

/* Footer */
.site-footer { position: relative; padding: 75px 0 24px; color: #c8d3de; background: #020f1d; }
.footer-grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 45px; }
.footer-logo { max-width: 330px; margin-bottom: 18px; }
.site-footer h3 { margin: 0 0 16px; color: #fff; font-family: var(--tally-display); font-size: 1.75rem; text-transform: uppercase; }
.site-footer a { color: #c8d3de; text-decoration: none; }
.site-footer a:hover { color: var(--tally-yellow); }
.footer-menu { list-style: none; padding: 0; margin: 0; }
.footer-menu li { margin: 9px 0; }
.footer-callout { padding: 21px; color: var(--tally-navy); background: var(--tally-yellow); font-weight: 850; }
.footer-callout strong { display: block; font-family: var(--tally-display); font-size: 1.8rem; text-transform: uppercase; }
.copyright { display: flex; justify-content: space-between; gap: 25px; flex-wrap: wrap; margin-top: 48px; padding-top: 23px; border-top: 1px solid rgba(255,255,255,.13); color: #8094a7; font-size: .83rem; }
.mobile-call-bar { display: none; }

/* 404 */
.not-found { min-height: 65vh; display: grid; place-items: center; padding: 80px 20px; text-align: center; background: var(--tally-navy); color: #fff; }
.not-found .display-title { color: var(--tally-yellow); }

@media (max-width: 1100px) {
  .header-inner { min-height: 88px; }
  .site-logo img, .site-logo .custom-logo { width: 260px; }
  .main-navigation a { padding-inline: 7px; font-size: .69rem; }
  .poster-hero::before { right: -70px; width: 48vw; }
  .hero-badge { right: 25vw; }
  .hero-side-card { width: min(488px, 50vw); }
  .proof-grid { grid-template-columns: repeat(2, 1fr); }
  .proof-item:nth-child(2) { border-right: 0; }
  .proof-item:nth-child(-n+2) { border-bottom: 2px solid rgba(4,24,45,.35); }
}

@media (max-width: 900px) {
  .hero-side-card { display: none; }
  body.admin-bar .site-header { top: 46px; }
  .utility-inner { justify-content: center; }
  .utility-note { display: none; }
  .menu-toggle { display: block; }
  .main-navigation { position: absolute; top: 100%; left: 0; right: 0; padding: 12px 24px 35px; background: rgba(2,15,29,.99); transform: scaleY(0); transform-origin: top; opacity: 0; visibility: hidden; transition: transform .22s ease, opacity .22s ease, visibility .22s ease; overflow-y: auto; max-height: calc(100vh - 76px); z-index: 100; }
  .main-navigation.is-open { transform: scaleY(1); opacity: 1; visibility: visible; }
  .main-navigation ul { display: block; }
  .main-navigation a { padding: 15px; font-size: .9rem; border-bottom: 1px solid rgba(255,255,255,.1); }
  .poster-hero { min-height: 730px; align-items: start; }
  .poster-hero::before { right: -95px; bottom: -60px; width: 62vw; height: 76%; opacity: .82; }
  .poster-hero-content { width: 82%; padding: 70px 0 240px; }
  .hero-badge { right: 18px; bottom: 50px; width: 170px; }
  .hero-badge strong { font-size: 3.2rem; }
  .services-grid, .content-grid.three, .price-grid { grid-template-columns: 1fr; }
  .split-grid, .philosophy-grid, .reinforcement-inner, .contact-layout, .footer-grid { grid-template-columns: 1fr; }
  .poster-frame { max-width: 650px; margin-inline: auto; }
  .reinforcement-band p { padding: 25px 0 0; border-left: 0; border-top: 2px solid var(--tally-navy); }
  .cta-inner { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 680px) {
  .hero-overlay-shell { min-height: 100%; }
  body { font-size: 16px; padding-bottom: 63px; }
  .poster-hero {
    background:
      linear-gradient(90deg, rgba(3,19,35,.98) 0%, rgba(3,19,35,.82) 50%, rgba(3,19,35,.12) 100%),
      url("assets/images/navy-texture-clean-v2.webp") center/cover no-repeat,
      var(--tally-navy);
  }
  .container { width: min(calc(100% - 28px), var(--tally-max)); }
  .announcement-bar { font-size: .74rem; line-height: 1.35; }
  .utility-inner { min-height: 38px; font-size: .76rem; }
  .utility-links { gap: 12px; }
  .header-inner { min-height: 76px; }
  .site-logo img, .site-logo .custom-logo { width: 225px; max-height: 65px; }
  /* Mobile-only: show the complete hero artwork without cutting off its bottom. */
  .poster-hero {
    min-height: clamp(560px, 143.3vw, 740px);
    overflow: hidden;
  }
  .poster-hero::before {
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
    background-position: center bottom;
    background-size: contain;
    background-repeat: no-repeat;
  }
  .poster-hero-content { width: 100%; padding: 55px 0 315px; }
  .poster-hero .display-title { font-size: clamp(3rem, 16vw, 4.5rem); }
  .poster-hero .hero-copy { font-size: 1rem; }
  .hero-phone-strip { width: 100%; justify-content: center; padding-inline: 12px; font-size: 1.65rem; }
  .hero-phone-strip img { width: 35px; height: 35px; }
  .hero-badge { width: 145px; right: 15px; bottom: 35px; padding: 14px; }
  .hero-badge strong { font-size: 2.75rem; }
  .button-row .tally-button { width: 100%; }
  .proof-grid { grid-template-columns: 1fr; }
  .proof-item { border-right: 0; border-bottom: 2px solid rgba(4,24,45,.35); }
  .proof-item:last-child { border-bottom: 0; }
  .home-section { padding: 68px 0; }
  .service-card, .promo-panel, .content-card { padding: 26px; }
  .section-title { font-size: 2.65rem; }
  .reinforcement-title { align-items: flex-start; }
  .reinforcement-check { width: 58px; height: 58px; flex-basis: 58px; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-grid figure:first-child { grid-row: auto; }
  .page-hero { padding: 58px 0 67px; }
  .page-content { padding: 60px 0 78px; }
  .content-grid, .tally-form, .club-box .tally-form { grid-template-columns: 1fr; }
  .tally-form .full { grid-column: auto; }
  .club-box, .payment-box { padding: 28px; box-shadow: 9px 9px 0 var(--tally-navy); }
  .mobile-call-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; display: grid; grid-template-columns: 1fr 1fr; box-shadow: 0 -7px 22px rgba(0,0,0,.25); }
  .mobile-call-bar a { min-height: 63px; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--tally-navy); background: var(--tally-yellow); font-weight: 700; text-decoration: none; text-transform: uppercase; }
  .mobile-call-bar a:last-child { color: #fff; background: var(--tally-navy); }
}


/* Exact-look editable revision: formatting, logo/phone and mobile fixes. */
.site-logo { max-width: 390px; overflow: visible; }
.site-logo img, .site-logo .custom-logo {
  width: min(390px, 36vw);
  max-height: 98px;
  object-fit: contain;
  object-position: left center;
  overflow: visible;
}
.main-navigation li.menu-item-contact { order: 90; }
.main-navigation li.menu-item-pay { order: 98; margin-left: 7px; }
.main-navigation li.menu-item-club { order: 99; margin-left: 5px; }

.phone-lockup {
  display: inline-flex;
  align-items: flex-start;
  gap: .18em;
  line-height: .9;
  white-space: nowrap;
  vertical-align: middle;
}
.phone-prefix,
.phone-word { display: block; }
.phone-word-wrap {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  line-height: .9;
}
.phone-digits {
  display: block;
  margin-top: .18em;
  padding-left: .42em;
  font-family: var(--tally-body);
  font-size: .31em;
  font-weight: 700;
  letter-spacing: .42em;
  line-height: 1;
}
.utility-phone .phone-lockup {
  font-family: var(--tally-display);
  font-size: 1.08rem;
  color: #fff;
}
.hero-phone-strip .phone-lockup {
  font-family: var(--tally-display);
  font-size: inherit;
  color: inherit;
}
.footer-phone .phone-lockup,
.contact-phone .phone-lockup {
  font-family: var(--tally-display);
  font-size: 1.55rem;
}
.footer-phone .phone-lockup { color: var(--tally-navy); }
.contact-phone .phone-lockup { color: var(--tally-yellow); }

.proof-strip { padding: 32px 0 28px; }
.proof-grid { gap: 16px; }
.proof-item {
  min-width: 0;
  padding: 10px 16px;
}
.proof-item > div { min-width: 0; }
.proof-icon {
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
}

/* Mobile pricing tables become clean cards instead of cramped sideways tables. */
.pricing-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.pricing-table td[data-label]::before { content: none; }

.contact-layout,
.split-grid,
.philosophy-grid,
.footer-grid,
.tally-form,
.content-grid,
.price-grid {
  min-width: 0;
}
.contact-layout > *,
.split-grid > *,
.philosophy-grid > *,
.footer-grid > *,
.tally-form > *,
.content-grid > *,
.price-grid > * {
  min-width: 0;
  max-width: 100%;
}
.tally-form {
  width: 100%;
  max-width: 100%;
}
.tally-form input,
.tally-form textarea,
.tally-form select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.content-card,
.contact-panel,
.club-box,
.payment-box,
.price-card {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.tally-form-submit {
  width: 100%;
  max-width: 100%;
  min-height: 54px;
  height: auto;
  padding: 14px 18px;
  line-height: 1.15;
  white-space: normal;
  overflow: visible;
  text-align: center;
  font-size: clamp(.78rem, 2.8vw, .92rem);
}

@media (max-width: 900px) {
  .main-navigation ul { display: flex; flex-direction: column; align-items: stretch; }
  .main-navigation li.menu-item-contact,
  .main-navigation li.menu-item-pay,
  .main-navigation li.menu-item-club { order: initial; margin-left: 0; }
  .site-logo img, .site-logo .custom-logo { width: 290px; max-height: 82px; }
  .poster-hero-content { width: 84%; }
}

@media (max-width: 760px) {
  .pricing-table-wrap {
    overflow: visible;
    box-shadow: none;
    background: transparent;
  }
  .pricing-table,
  .pricing-table thead,
  .pricing-table tbody,
  .pricing-table tr,
  .pricing-table th,
  .pricing-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }
  .pricing-table thead {
    display: none;
  }
  .pricing-table tbody {
    display: grid;
    gap: 14px;
  }
  .pricing-table tr {
    padding: 16px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(4,24,45,.11);
    border-left: 7px solid var(--tally-yellow);
  }
  .pricing-table td {
    padding: 0 0 10px;
    border: 0;
    white-space: normal !important;
    color: var(--tally-ink);
  }
  .pricing-table td:last-child {
    padding-bottom: 0;
    color: var(--tally-navy);
    font-family: var(--tally-display);
    font-size: 1.6rem;
    line-height: 1;
  }
  .pricing-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 3px;
    color: var(--tally-muted);
    font-family: var(--tally-body);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
  }
  .price-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .container { width: min(calc(100% - 28px), var(--tally-max)); }
  .site-logo { max-width: calc(100vw - 105px); }
  .site-logo img, .site-logo .custom-logo { width: 245px; max-width: 100%; max-height: 76px; }
  .utility-links { width: 100%; justify-content: center; }
  .utility-phone .phone-lockup { font-size: .95rem; }
  .hero-phone-strip {
    max-width: 100%;
    padding-left: 12px;
    padding-right: 12px;
    font-size: clamp(1.45rem, 7.2vw, 1.85rem);
  }
  .hero-phone-strip img { flex: 0 0 34px; }
  .poster-hero-content { width: 100%; }
  .phone-digits { letter-spacing: .32em; padding-left: .32em; }
  .footer-phone .phone-lockup,
  .contact-phone .phone-lockup { font-size: 1.25rem; }
  .contact-panel,
  .content-card,
  .club-box,
  .payment-box,
  .price-card { padding-left: 22px; padding-right: 22px; }
}

@media (max-width: 420px) {
  .tally-form-submit {
    padding: 13px 12px;
    font-size: .78rem;
    letter-spacing: .025em;
  }
}


/* === v2.7.1: cleaner professional icons + stronger mobile pricing === */
.proof-icon {
  background: transparent !important;
  box-shadow: none;
  overflow: visible;
  border-radius: 0;
}
.proof-icon img {
  width: 64px;
  height: 64px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(4,24,45,.18));
}
.proof-item .proof-icon + div span {
  display: block;
  margin-top: 5px;
}
.service-card .service-number {
  display: none;
}
.service-card .service-icon {
  position: relative;
  z-index: 2;
  display: inline-flex;
  width: 76px;
  height: 76px;
  margin-bottom: 22px;
}
.service-card .service-icon img {
  width: 76px;
  height: 76px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,.18));
}
.service-card h3 {
  margin-top: 8px;
}
.price-card-icon {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.price-card-icon img {
  width: 58px;
  height: 58px;
  display: block;
}
.wash-price-card {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 14px 16px;
}
.wash-price-card .amount {
  grid-column: 1 / -1;
  margin: 0;
}
.wash-price-card .price-card-copy h3 {
  margin: 0 0 4px;
}
.wash-price-card .price-card-copy small {
  display: block;
}

/* Pricing mobile pass: stacked rows, clearer hierarchy, no sideways scrolling. */
.pricing-table-wrap {
  max-width: 100%;
}
.pricing-table {
  table-layout: fixed;
}
.pricing-table th:nth-child(1),
.pricing-table td:nth-child(1) { width: 30%; }
.pricing-table th:nth-child(2),
.pricing-table td:nth-child(2) { width: 45%; }
.pricing-table th:nth-child(3),
.pricing-table td:nth-child(3) { width: 25%; }

@media (max-width: 760px) {
  .pricing-section {
    margin: 26px 0 42px;
  }
  .pricing-section > h2 {
    margin-bottom: 16px;
    font-size: clamp(2rem, 10vw, 2.65rem);
  }
  .pricing-table-wrap {
    margin: 18px 0 36px;
    overflow: visible !important;
    box-shadow: none !important;
    background: transparent !important;
  }
  .pricing-table {
    width: 100%;
    min-width: 0 !important;
    border-collapse: separate;
    border-spacing: 0;
    background: transparent !important;
  }
  .pricing-table thead {
    display: none !important;
  }
  .pricing-table tbody {
    display: grid !important;
    gap: 16px;
  }
  .pricing-table tr {
    position: relative;
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 8px;
    width: 100%;
    padding: 18px 18px 16px !important;
    background: #fff;
    border: 1px solid rgba(4,24,45,.10);
    border-left: 8px solid var(--tally-yellow);
    border-radius: 16px;
    box-shadow: 0 12px 26px rgba(4,24,45,.12);
  }
  .pricing-table td {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
  .pricing-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    color: var(--tally-muted);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .09em;
    line-height: 1.1;
    text-transform: uppercase;
  }
  .pricing-table td[data-label="Service"] {
    color: var(--tally-navy);
    font-family: var(--tally-display);
    font-size: 1.42rem;
    line-height: 1.02;
    letter-spacing: .02em;
    text-transform: uppercase;
    padding-right: 0 !important;
  }
  .pricing-table td[data-label="Service"]::before {
    color: var(--tally-yellow);
  }
  .pricing-table td[data-label="Details"] {
    color: var(--tally-ink);
    font-size: .96rem;
    line-height: 1.35;
  }
  .pricing-table td[data-label="Price"] {
    justify-self: start;
    width: auto !important;
    margin-top: 4px;
    padding: 8px 13px 9px !important;
    color: var(--tally-navy) !important;
    background: var(--tally-yellow);
    border-radius: 999px;
    font-family: var(--tally-display);
    font-size: 1.45rem !important;
    line-height: 1 !important;
    letter-spacing: .02em;
  }
  .pricing-table td[data-label="Price"]::before {
    display: none;
  }
  .price-grid {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 16px;
  }
  .price-card {
    border-top: 0;
    border-left: 8px solid var(--tally-yellow);
    border-radius: 16px;
    padding: 18px !important;
    box-shadow: 0 12px 26px rgba(4,24,45,.12);
  }
  .wash-price-card {
    grid-template-columns: auto 1fr auto;
    gap: 12px;
  }
  .wash-price-card .amount {
    grid-column: auto;
    justify-self: end;
    align-self: center;
    margin: 0;
    font-size: 2.1rem;
  }
}

@media (max-width: 520px) {
  .proof-item {
    align-items: center;
  }
  .proof-icon,
  .proof-icon img {
    width: 56px;
    height: 56px;
    flex-basis: 56px;
  }
  .service-card .service-icon,
  .service-card .service-icon img {
    width: 68px;
    height: 68px;
  }
  .wash-price-card {
    grid-template-columns: auto 1fr;
  }
  .wash-price-card .amount {
    grid-column: 1 / -1;
    justify-self: start;
    padding: 7px 13px 8px;
    background: var(--tally-yellow);
    border-radius: 999px;
    font-size: 1.65rem;
  }
}


/* === v2.7.2 requested-only changes: header phone + mobile pricing polish === */

/* Header phone: easier to read, no 3647 under DOGS in the small header/utility location only. */
.utility-phone .phone-lockup,
.utility-phone .phone-prefix,
.utility-phone .phone-word,
.utility-phone .phone-word-wrap {
  font-family: var(--tally-body) !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
  line-height: 1.15 !important;
}
.utility-phone .phone-lockup {
  font-size: .98rem !important;
  align-items: center !important;
}
.utility-phone .phone-word-wrap {
  display: inline-flex !important;
  flex-direction: row !important;
}
.utility-phone .phone-digits {
  display: none !important;
}

/* Mobile pricing: cleaner card layout and better spacing. */
@media (max-width: 760px) {
  .pricing-table-wrap {
    margin: 16px 0 34px !important;
    padding: 0 !important;
    overflow: visible !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  .pricing-table,
  .pricing-table thead,
  .pricing-table tbody,
  .pricing-table tr,
  .pricing-table th,
  .pricing-table td {
    width: 100% !important;
    min-width: 0 !important;
  }

  .pricing-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: transparent !important;
  }

  .pricing-table thead {
    display: none !important;
  }

  .pricing-table tbody {
    display: grid !important;
    gap: 14px !important;
  }

  .pricing-table tr {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "service price"
      "details details";
    column-gap: 14px;
    row-gap: 8px;
    align-items: start;
    padding: 17px 16px 15px !important;
    background: #fff !important;
    border: 1px solid rgba(4,24,45,.10) !important;
    border-left: 7px solid var(--tally-yellow) !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 24px rgba(4,24,45,.11) !important;
  }

  .pricing-table td {
    display: block !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .pricing-table td::before {
    display: none !important;
  }

  .pricing-table td[data-label="Service"] {
    grid-area: service;
    color: var(--tally-navy) !important;
    font-family: var(--tally-display);
    font-size: 1.34rem !important;
    line-height: 1.02 !important;
    letter-spacing: .015em;
    text-transform: uppercase;
    padding-top: 2px !important;
  }

  .pricing-table td[data-label="Details"] {
    grid-area: details;
    color: var(--tally-ink) !important;
    font-size: .96rem !important;
    line-height: 1.38 !important;
    opacity: .92;
    padding-top: 2px !important;
  }

  .pricing-table td[data-label="Price"] {
    grid-area: price;
    justify-self: end;
    align-self: start;
    width: auto !important;
    max-width: 145px;
    padding: 8px 12px 9px !important;
    color: var(--tally-navy) !important;
    background: var(--tally-yellow) !important;
    border-radius: 999px !important;
    font-family: var(--tally-display);
    font-size: 1.28rem !important;
    line-height: 1 !important;
    letter-spacing: .015em;
    text-align: center;
    box-shadow: inset 0 0 0 1px rgba(4,24,45,.08);
  }

  .price-card.wash-price-card {
    display: grid !important;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 17px 16px !important;
    border-left: 7px solid var(--tally-yellow);
    border-radius: 16px;
  }

  .wash-price-card .price-card-icon,
  .wash-price-card .price-card-icon img {
    width: 50px;
    height: 50px;
  }

  .wash-price-card .price-card-copy {
    min-width: 0;
  }

  .wash-price-card .price-card-copy h3 {
    margin: 0 0 3px !important;
    font-size: 1.22rem;
    line-height: 1.05;
  }

  .wash-price-card .price-card-copy small {
    line-height: 1.3;
  }

  .wash-price-card .amount {
    grid-column: auto !important;
    justify-self: end !important;
    align-self: center !important;
    margin: 0 !important;
    padding: 8px 12px 9px;
    background: var(--tally-yellow);
    border-radius: 999px;
    font-size: 1.55rem !important;
    line-height: 1 !important;
    white-space: nowrap;
  }
}

@media (max-width: 460px) {
  .pricing-table tr {
    grid-template-columns: 1fr;
    grid-template-areas:
      "service"
      "details"
      "price";
  }

  .pricing-table td[data-label="Price"] {
    justify-self: start;
    max-width: none;
  }

  .price-card.wash-price-card {
    grid-template-columns: auto minmax(0,1fr);
  }

  .wash-price-card .amount {
    grid-column: 1 / -1 !important;
    justify-self: start !important;
  }
}


/* === v2.7.3 requested-only changes: header email, pricing scrollbar, equal cards/hover === */

/* Header email matches the easier-read header phone style. */
.utility-email,
.utility-bar a.utility-email {
  font-family: var(--tally-body) !important;
  font-weight: 600 !important;
  font-size: .98rem !important;
  letter-spacing: .01em !important;
  line-height: 1.15 !important;
  color: #fff !important;
  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
}
.utility-email:hover,
.utility-bar a.utility-email:hover {
  color: var(--tally-yellow) !important;
}

/* Remove horizontal scrollbar from pricing tables. */
.pricing-table-wrap {
  overflow-x: visible !important;
  overflow-y: visible !important;
}
.pricing-table {
  min-width: 0 !important;
  width: 100% !important;
  table-layout: fixed;
}
.pricing-table th,
.pricing-table td {
  overflow-wrap: normal;
  word-break: normal;
}
.pricing-table td:last-child {
  white-space: normal !important;
}

/* Keep same-row white page cards visually equal, then enlarge 15% on hover. */
.content-grid,
.price-grid {
  align-items: stretch;
}
.content-grid {
  grid-auto-rows: 1fr;
}
.content-card,
.price-card {
  height: 100%;
  min-height: 100%;
  transition: transform .2s ease, box-shadow .2s ease;
  transform-origin: center;
  position: relative;
}
.content-card:hover,
.price-card:hover {
  transform: scale(1.15);
  z-index: 20;
  box-shadow: 0 24px 60px rgba(1,18,34,.24);
}

/* Avoid hover enlargement causing awkward mobile overflow. */
@media (max-width: 760px) {
  .content-card:hover,
  .price-card:hover {
    transform: none;
  }
}


/* === v2.7.4 requested-only fixes: header email class + equal card alignment === */

/* Match the header email to the header phone now that the email link has its own class. */
.utility-links {
  align-items: center !important;
}
.utility-phone,
.utility-email {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 24px;
  color: #fff !important;
  text-decoration: none !important;
}
.utility-email {
  font-family: var(--tally-body) !important;
  font-weight: 600 !important;
  font-size: .98rem !important;
  letter-spacing: .01em !important;
  line-height: 1.15 !important;
}
.utility-phone .phone-lockup {
  font-family: var(--tally-body) !important;
  font-weight: 600 !important;
  font-size: .98rem !important;
  letter-spacing: .01em !important;
  line-height: 1.15 !important;
  align-items: center !important;
}
.utility-phone .phone-prefix,
.utility-phone .phone-word,
.utility-phone .phone-word-wrap {
  font-family: var(--tally-body) !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
  line-height: 1.15 !important;
}
.utility-email:hover,
.utility-phone:hover,
.utility-phone:hover .phone-lockup {
  color: var(--tally-yellow) !important;
}

/* Fix grid card vertical offsets: the old adjacent-card margin made later boxes sit lower. */
.content-grid > .content-card,
.content-grid > .price-card,
.price-grid > .price-card,
.content-card-grid > .content-card,
.content-card-grid > .info-card {
  margin-top: 0 !important;
}

/* Keep same-row cards aligned and equal height. */
.content-grid,
.content-card-grid,
.price-grid {
  align-items: stretch !important;
}
.content-grid > .content-card,
.content-card-grid > .content-card,
.content-card-grid > .info-card,
.price-grid > .price-card {
  height: 100% !important;
  align-self: stretch !important;
  display: flex;
  flex-direction: column;
}

/* Preserve the requested 15% desktop hover growth after alignment fix. */
.content-grid > .content-card:hover,
.content-card-grid > .content-card:hover,
.content-card-grid > .info-card:hover,
.price-grid > .price-card:hover {
  transform: scale(1.15);
  z-index: 20;
}

@media (max-width: 760px) {
  .content-grid > .content-card,
  .content-card-grid > .content-card,
  .content-card-grid > .info-card,
  .price-grid > .price-card {
    height: auto !important;
  }

  .content-grid > .content-card:hover,
  .content-card-grid > .content-card:hover,
  .content-card-grid > .info-card:hover,
  .price-grid > .price-card:hover {
    transform: none !important;
  }
}


/* === v2.7.5 requested-only fix: contact form submit button cutoff === */
.tally-form-submit,
.tally-form button.tally-form-submit,
.tally-form input.tally-form-submit[type="submit"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 64px !important;
  height: auto !important;
  padding: 16px 18px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  overflow: visible !important;
  text-align: center !important;
  box-sizing: border-box !important;
}

@media (max-width: 420px) {
  .tally-form-submit,
  .tally-form button.tally-form-submit,
  .tally-form input.tally-form-submit[type="submit"] {
    min-height: 68px !important;
    padding: 15px 12px !important;
    font-size: .78rem !important;
    letter-spacing: .02em !important;
    line-height: 1.22 !important;
  }
}


/* === v2.8.4 requested-only changes === */
/* Slightly larger white menu text on desktop only */
@media (min-width: 981px) {
  .main-navigation a,
  .primary-menu a,
  .menu a,
  .site-header .main-navigation a,
  .site-header .menu a {
    font-size: 1.04rem !important;
  }
}


/* === v2.8.5 requested-only change: make the white boxes pop with blue backgrounds === */
.content-card,
.price-card {
  background: var(--tally-navy) !important;
  color: #ffffff !important;
  border: 2px solid rgba(248,196,0,.95) !important;
  box-shadow: 0 18px 40px rgba(4,24,45,.22), 10px 10px 0 rgba(4,24,45,.12) !important;
}

.content-card h2,
.content-card h3,
.content-card h4,
.price-card h2,
.price-card h3,
.price-card h4 {
  color: var(--tally-yellow) !important;
}

.content-card p,
.content-card li,
.content-card span,
.content-card small,
.price-card p,
.price-card li,
.price-card span,
.price-card small {
  color: rgba(255,255,255,.92) !important;
}

.content-card a,
.price-card a {
  color: var(--tally-yellow) !important;
}

.price-card .amount {
  color: var(--tally-yellow) !important;
}

.content-card:hover,
.price-card:hover {
  box-shadow: 0 26px 60px rgba(4,24,45,.28), 12px 12px 0 rgba(4,24,45,.14) !important;
}


/* === v2.8.6 requested-only change: keep desktop menu on one line === */
@media (min-width: 981px) {
  .header-inner {
    gap: 14px !important;
  }

  .site-branding {
    flex-shrink: 1 !important;
  }

  .site-logo {
    max-width: 310px !important;
  }

  .site-logo img,
  .site-logo .custom-logo {
    width: min(310px, 27vw) !important;
    max-height: 80px !important;
  }

  .main-navigation {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }

  .main-navigation ul {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-end !important;
    gap: 2px !important;
  }

  .main-navigation li {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }

  .main-navigation a,
  .primary-menu a,
  .site-header .main-navigation a,
  .site-header .menu a {
    white-space: nowrap !important;
    font-size: clamp(.66rem, .72vw, .82rem) !important;
    letter-spacing: .03em !important;
    padding: 12px 6px !important;
  }

  .main-navigation li.menu-item-pay,
  .main-navigation li.menu-item-club {
    margin-left: 3px !important;
  }
}


/* === v2.8.7 requested-only changes: cleaner icons + larger one-line desktop menu === */
@media (min-width: 981px) {
  .header-inner {
    gap: 10px !important;
  }

  .site-branding,
  .site-logo {
    max-width: 255px !important;
    flex: 0 1 255px !important;
  }

  .site-logo img,
  .site-logo .custom-logo,
  .custom-logo {
    width: min(255px, 22vw) !important;
    max-width: 255px !important;
    max-height: 78px !important;
    height: auto !important;
  }

  .main-navigation {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin-left: 8px !important;
  }

  .main-navigation ul,
  .main-navigation .menu {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 2px !important;
    white-space: nowrap !important;
  }

  .main-navigation li {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }

  .main-navigation a,
  .primary-menu a,
  .menu a,
  .site-header .main-navigation a,
  .site-header .menu a {
    white-space: nowrap !important;
    font-size: clamp(.83rem, .90vw, .95rem) !important;
    letter-spacing: .02em !important;
    padding: 12px 7px !important;
    line-height: 1 !important;
  }
}


/* === v2.8.9 requested-only change: exact icon-set exports and centered display === */
.proof-icon,
.service-icon,
.price-card-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
  text-align: center !important;
}

.proof-icon img,
.service-icon img,
.price-card-icon img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 auto !important;
  transform: none !important;
  filter: none !important;
}

/* Exact raster icons have their own original light background/shadow; don't add extra styling. */
.proof-icon,
.service-card .service-icon,
.price-card-icon {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.proof-icon {
  width: 72px !important;
  height: 72px !important;
  flex: 0 0 72px !important;
}

.service-card .service-icon {
  width: 86px !important;
  height: 86px !important;
  margin-inline: auto !important;
  margin-bottom: 18px !important;
}

.price-card-icon {
  width: 66px !important;
  height: 66px !important;
  flex: 0 0 66px !important;
}


/* === v2.9.0 requested-only change: use approved individual centered icon files === */
.proof-icon,
.service-icon,
.price-card-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.proof-icon img,
.service-icon img,
.price-card-icon img {
  display: block !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 auto !important;
  filter: none !important;
  transform: none !important;
}

.proof-icon {
  width: 76px !important;
  height: 76px !important;
  flex: 0 0 76px !important;
}

.proof-icon img {
  width: 76px !important;
  height: 76px !important;
}

.service-card .service-icon {
  width: 92px !important;
  height: 92px !important;
  margin-inline: auto !important;
  margin-bottom: 18px !important;
}

.service-card .service-icon img {
  width: 92px !important;
  height: 92px !important;
}

.price-card-icon {
  width: 72px !important;
  height: 72px !important;
  flex: 0 0 72px !important;
}

.price-card-icon img {
  width: 72px !important;
  height: 72px !important;
}


/* === v2.9.1 requested-only change: transparent centered icons, same placements as earlier === */
.proof-icon,
.service-icon,
.price-card-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  padding: 0 !important;
}

.proof-icon img,
.service-icon img,
.price-card-icon img {
  display: block !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 0 auto !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  filter: none !important;
  transform: none !important;
  background: transparent !important;
}

.proof-icon {
  width: 74px !important;
  height: 74px !important;
  flex: 0 0 74px !important;
  align-self: center !important;
}

.service-card .service-icon {
  width: 90px !important;
  height: 90px !important;
  margin: 0 auto 18px auto !important;
}

.price-card-icon {
  width: 70px !important;
  height: 70px !important;
  flex: 0 0 70px !important;
  align-self: center !important;
}

.wash-price-card .price-card-icon {
  justify-self: center !important;
}


/* === v2.9.4 training-page card spacing cleanup ===
   Let each training program card end naturally after its content instead of
   stretching shorter cards to the height of the longest card in the grid. */
.training-program-grid {
  grid-auto-rows: auto !important;
  align-items: start !important;
}
.training-program-grid > .content-card {
  height: auto !important;
  min-height: 0 !important;
  align-self: start !important;
}

/* === v2.9.7 mobile sticky contact bar + header ===
   Keep the phone/email utility bar locked above the main header on phones. */
@media (max-width: 680px) {
  .utility-bar {
    position: sticky;
    top: 0;
    z-index: 90;
    min-height: 38px;
    box-shadow: 0 5px 14px rgba(0,0,0,.2);
  }

  .site-header {
    top: 38px;
    z-index: 80;
  }

  body.admin-bar .utility-bar {
    top: 46px;
  }

  body.admin-bar .site-header {
    top: 84px;
  }

  .main-navigation {
    max-height: calc(100vh - 114px);
  }
}

/* === v2.9.8 Instagram collage gallery === */
.instagram-gallery-heading {
  max-width: 780px;
  margin-inline: auto;
}

.instagram-gallery-heading .page-intro {
  margin-inline: auto;
}

.instagram-collage {
  columns: 3 320px;
  column-gap: clamp(18px, 2.25vw, 32px);
  margin-top: 38px;
  padding: 12px 10px 58px;
  overflow: visible;
}

.instagram-collage-item {
  --gallery-tilt: 0deg;
  position: relative;
  display: inline-block;
  width: 100%;
  margin: 0 0 clamp(20px, 2.25vw, 32px);
  padding: 7px;
  break-inside: avoid;
  background: var(--tally-yellow);
  border: 2px solid rgba(4, 24, 45, .22);
  box-shadow: 11px 13px 0 rgba(4, 24, 45, .94), 0 20px 35px rgba(4, 24, 45, .18);
  transform: rotate(var(--gallery-tilt));
  transform-origin: center center;
  transition: transform .28s ease, box-shadow .28s ease;
  isolation: isolate;
  z-index: 1;
}

.instagram-collage-item:nth-child(1) {
  --gallery-tilt: -.55deg;
  border-radius: 24px 7px 18px 9px;
}

.instagram-collage-item:nth-child(2) {
  --gallery-tilt: .65deg;
  width: 91%;
  margin-left: auto;
  border-radius: 8px 30px 10px 20px;
}

.instagram-collage-item:nth-child(3) {
  --gallery-tilt: -.35deg;
  width: 96%;
  border-radius: 12px 10px 30px 8px;
}

.instagram-collage-item:nth-child(4) {
  --gallery-tilt: .45deg;
  width: 88%;
  margin-left: auto;
  border-radius: 30px 9px 17px 7px;
}

.instagram-collage-item:nth-child(5) {
  --gallery-tilt: -.45deg;
  width: 95%;
  border-radius: 8px 22px 7px 28px;
}

.instagram-collage-item::after {
  content: "";
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(4, 24, 45, .12);
  border-radius: inherit;
  pointer-events: none;
  z-index: 2;
}

.instagram-collage .instagram-media,
.instagram-collage .instagram-media-rendered {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 540px !important;
  margin: 0 auto !important;
  border-radius: inherit !important;
  overflow: hidden !important;
}

.instagram-collage .instagram-media > a {
  display: grid;
  min-height: 330px;
  place-items: center;
  padding: 30px;
  background: #fff;
  color: var(--tally-blue);
  font-weight: 650;
  text-align: center;
}

@media (hover: hover) and (pointer: fine) {
  .instagram-collage-item:hover,
  .instagram-collage-item:focus-within {
    z-index: 20;
    transform: rotate(var(--gallery-tilt)) scale(1.15);
    box-shadow: 17px 19px 0 rgba(4, 24, 45, .96), 0 30px 55px rgba(4, 24, 45, .30);
  }
}

@media (max-width: 760px) {
  .instagram-collage {
    columns: 1;
    padding-inline: 0;
    margin-top: 28px;
  }

  .instagram-collage-item,
  .instagram-collage-item:nth-child(n) {
    --gallery-tilt: 0deg;
    width: 100%;
    margin-left: 0;
    border-radius: 18px 7px 18px 7px;
    box-shadow: 8px 9px 0 rgba(4, 24, 45, .94), 0 14px 28px rgba(4, 24, 45, .16);
  }
}

@media (prefers-reduced-motion: reduce) {
  .instagram-collage-item {
    transition: none;
  }

  .instagram-collage-item:hover,
  .instagram-collage-item:focus-within {
    transform: rotate(var(--gallery-tilt));
  }
}



/* === v2.9.9 mobile menu order ===
   Keep Contact Us directly above Pay Here in the mobile dropdown only. */
@media (max-width: 900px) {
  .main-navigation ul,
  .main-navigation .menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .main-navigation li.menu-item-contact {
    order: 90 !important;
    margin-left: 0 !important;
  }

  .main-navigation li.menu-item-pay {
    order: 91 !important;
    margin-left: 0 !important;
  }

  .main-navigation li.menu-item-club {
    order: 92 !important;
    margin-left: 0 !important;
  }
}

/* === v2.9.30 contact consultation form readability ===
   Keep labels, entered values, placeholders and mobile autofill readable. */
.contact-layout .content-card,
.contact-layout .content-card h2,
.contact-layout .tally-form {
  color: var(--tally-ink) !important;
}

.contact-layout .tally-form label {
  color: var(--tally-navy) !important;
  opacity: 1 !important;
}

.contact-layout .tally-form input[type="text"],
.contact-layout .tally-form input[type="email"],
.contact-layout .tally-form input[type="tel"],
.contact-layout .tally-form select,
.contact-layout .tally-form textarea {
  color: #071a2e !important;
  -webkit-text-fill-color: #071a2e !important;
  caret-color: #071a2e !important;
  background-color: #ffffff !important;
  border-color: #8fa1b2 !important;
  opacity: 1 !important;
}

.contact-layout .tally-form input::placeholder,
.contact-layout .tally-form textarea::placeholder {
  color: #566779 !important;
  -webkit-text-fill-color: #566779 !important;
  opacity: 1 !important;
}

.contact-layout .tally-form select option {
  color: #071a2e !important;
  background: #ffffff !important;
}

.contact-layout .tally-form input:-webkit-autofill,
.contact-layout .tally-form input:-webkit-autofill:hover,
.contact-layout .tally-form input:-webkit-autofill:focus,
.contact-layout .tally-form textarea:-webkit-autofill,
.contact-layout .tally-form select:-webkit-autofill {
  -webkit-text-fill-color: #071a2e !important;
  caret-color: #071a2e !important;
  -webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
  box-shadow: 0 0 0 1000px #ffffff inset !important;
  transition: background-color 9999s ease-out 0s;
}

@media (max-width: 680px) {
  .contact-layout .content-card {
    background: #ffffff !important;
  }

  .contact-layout .tally-form label {
    font-size: .96rem;
    line-height: 1.3;
  }

  .contact-layout .tally-form input[type="text"],
  .contact-layout .tally-form input[type="email"],
  .contact-layout .tally-form input[type="tel"],
  .contact-layout .tally-form select,
  .contact-layout .tally-form textarea {
    font-size: 16px !important;
  }
}



/* === v2.9.30 mobile horizontal overflow fix ===
   Prevent decorative torn edges, embedded posts and transformed elements from
   creating a side-to-side page pan on phones. This does not change desktop. */
@media (max-width: 900px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip !important;
  }

  .announcement-bar,
  .utility-bar,
  .site-header,
  .site-main,
  .site-footer,
  .mobile-call-bar,
  .main-navigation {
    max-width: 100vw;
  }

  .torn-bottom::after,
  .torn-top::before {
    left: 0;
    width: 100%;
  }

  .instagram-collage,
  .instagram-collage-item,
  .instagram-collage .instagram-media,
  .instagram-collage .instagram-media-rendered {
    max-width: 100% !important;
  }
}

@supports not (overflow: clip) {
  @media (max-width: 900px) {
    html,
    body {
      overflow-x: hidden !important;
    }
  }
}

/* === v2.9.30 softer card typography + refined desktop hero card ===
   Keep the poster-style display type for major page titles, but use a cleaner,
   lighter face for large headings and numbers inside boxes throughout the site. */
.promo-panel h2,
.promo-panel h3,
.promo-panel h4,
.service-card h2,
.service-card h3,
.service-card h4,
.content-card h2,
.content-card h3,
.content-card h4,
.price-card h2,
.price-card h3,
.price-card h4,
.club-box h2,
.club-box h3,
.payment-box h2,
.payment-box h3,
.contact-panel h2,
.contact-panel h3,
.notice-box h2,
.notice-box h3 {
  font-family: var(--tally-body) !important;
  font-weight: 600 !important;
  letter-spacing: .005em !important;
  line-height: 1.08 !important;
}

.promo-panel h3 {
  font-size: clamp(2rem, 3.25vw, 3.35rem);
}

.service-card h3 {
  font-size: 2.05rem;
}

.price-lockup strong,
.price-card .amount,
.payment-box .amount,
.club-box .amount {
  font-family: var(--tally-body) !important;
  font-weight: 600 !important;
  letter-spacing: -.035em;
}

.pricing-table th {
  font-family: var(--tally-body) !important;
  font-weight: 600 !important;
}

@media (min-width: 901px) {
  .hero-side-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 34px 38px 36px;
    min-height: 500px;
    border-width: 2px;
    border-radius: 10px;
  }

  .hero-side-card .eyebrow {
    margin-bottom: 9px;
    font-size: .74rem;
    font-weight: 650;
    letter-spacing: .13em;
  }

  .hero-side-card h3 {
    max-width: 440px;
    margin: 0 0 18px;
    font-size: clamp(2.25rem, 3vw, 3.3rem);
    line-height: 1.04 !important;
    text-wrap: balance;
  }

  .hero-side-card .price-lockup {
    display: grid;
    grid-template-columns: 105px minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    margin: 0 0 14px;
    padding: 15px 18px;
    background: rgba(255,255,255,.065);
    border-left: 5px solid var(--tally-yellow);
    border-radius: 7px;
  }

  .hero-side-card .price-lockup strong,
  .hero-side-card .price-lockup strong.word-lockup {
    font-size: 3rem;
    line-height: 1;
    text-transform: uppercase;
    text-align: center;
  }

  .hero-side-card .price-lockup span {
    max-width: none;
    font-size: .88rem;
    font-weight: 600;
    line-height: 1.28;
    letter-spacing: .02em;
  }

  .hero-side-card .check-list {
    margin: 5px 0 22px;
  }

  .hero-side-card .check-list li {
    padding: 8px 0 8px 35px;
    font-size: .94rem;
    font-weight: 550;
    line-height: 1.3;
  }

  .hero-side-card .check-list li::before {
    top: 6px;
  }

  .hero-side-card .tally-button {
    align-self: flex-start;
    min-width: 190px;
    font-weight: 650;
  }
}


/* Mobile/tablet only: place the all-breeds training card directly below the hero artwork. */
@media (max-width: 900px) {
  .mobile-hero-training-wrap {
    display: block;
    position: relative;
    z-index: 9;
    padding: 24px 0 34px;
    background: var(--tally-paper);
  }

  .mobile-hero-training-card {
    width: 100%;
    margin: 0;
    padding: 28px;
    border: 2px solid var(--tally-yellow);
    border-radius: 9px;
    box-shadow: 9px 9px 0 rgba(4,24,45,.14);
  }

  .mobile-hero-training-card .eyebrow {
    margin-bottom: 8px;
    font-size: .73rem;
    font-weight: 650;
    letter-spacing: .12em;
  }

  .mobile-hero-training-card h3 {
    margin: 0 0 18px;
    font-size: clamp(2rem, 8vw, 2.8rem);
    line-height: 1.04 !important;
    text-wrap: balance;
  }

  .mobile-hero-training-card .price-lockup {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    align-items: center;
    gap: 15px;
    margin: 0 0 14px;
    padding: 14px 15px;
    background: rgba(255,255,255,.065);
    border-left: 5px solid var(--tally-yellow);
    border-radius: 7px;
  }

  .mobile-hero-training-card .price-lockup strong,
  .mobile-hero-training-card .price-lockup strong.word-lockup {
    color: var(--tally-yellow);
    font-size: 2.35rem;
    line-height: 1;
    text-align: center;
    text-transform: uppercase;
  }

  .mobile-hero-training-card .price-lockup span {
    max-width: none;
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.28;
  }

  .mobile-hero-training-card .check-list {
    margin: 5px 0 22px;
  }

  .mobile-hero-training-card .check-list li {
    padding: 9px 0 9px 35px;
    font-size: .93rem;
    font-weight: 550;
    line-height: 1.3;
    border-color: rgba(255,255,255,.2);
  }

  .mobile-hero-training-card .check-list li::before {
    top: 7px;
    color: var(--tally-navy);
    background: var(--tally-yellow);
  }

  .mobile-hero-training-card .tally-button {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}



/* === v2.9.35 Contact Us submit-button alignment fix ===
   Use a true button element so the label remains centered and contained. */
.contact-layout .tally-form .full:last-child {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-width: 0;
}

.contact-layout .tally-form button.tally-form-submit {
  appearance: none;
  -webkit-appearance: none;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 60px !important;
  margin: 0 !important;
  padding: 14px 20px !important;
  box-sizing: border-box !important;
  line-height: 1.15 !important;
  white-space: normal !important;
  overflow: hidden !important;
  text-align: center !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

@media (max-width: 420px) {
  .contact-layout .tally-form button.tally-form-submit {
    min-height: 64px !important;
    padding: 13px 12px !important;
    font-size: .8rem !important;
    letter-spacing: .02em !important;
  }
}


/* === v2.9.35 mobile menu opens at the current scroll position ===
   Anchor the dropdown to the visible sticky header rather than the header's
   original document position, so it opens immediately wherever the user is. */
@media (max-width: 900px) {
  .main-navigation.is-viewport-menu {
    position: fixed !important;
    top: var(--mobile-menu-top, 114px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    max-height: calc(100dvh - var(--mobile-menu-top, 114px)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    z-index: 1000 !important;
    box-shadow: 0 18px 32px rgba(0, 0, 0, .34);
  }
}


/* === v2.9.35 mobile menu scroll-position lock + homepage call-now graphic === */
body.menu-open {
  overflow: hidden;
}

.hero-call-now-wrap {
  padding: 22px 0 0;
  position: relative;
  z-index: 4;
}
.hero-call-now-card {
  display: block;
  text-decoration: none;
  color: var(--tally-navy);
  text-align: center;
  box-shadow: 14px 14px 0 rgba(4,24,45,.18);
  border: 2px solid rgba(4,24,45,.18);
}
.hero-call-now-card:hover {
  transform: translateY(-2px);
  box-shadow: 18px 18px 0 rgba(4,24,45,.2);
}
.hero-call-now-card h3 {
  color: var(--tally-navy);
  margin-bottom: 14px;
}
.hero-call-number {
  margin: 6px 0 16px;
}
.hero-call-number .phone-lockup {
  font-family: var(--tally-display);
  font-size: clamp(2.2rem, 6vw, 4.15rem);
  color: var(--tally-navy);
  align-items: flex-start;
  justify-content: center;
  gap: .12em;
}
.hero-call-number .phone-digits {
  font-size: .24em;
  letter-spacing: .32em;
  padding-left: .32em;
  margin-top: .15em;
}
.hero-call-now-card p {
  max-width: 720px;
  margin: 0 auto;
  color: rgba(4,24,45,.92);
  font-size: 1rem;
}

@media (max-width: 900px) {
  body.menu-open {
    width: 100%;
  }
  .hero-call-now-wrap {
    padding-top: 16px;
  }
  .hero-call-now-card {
    padding: 24px 20px;
    box-shadow: 10px 10px 0 rgba(4,24,45,.16);
  }
  .hero-call-now-card h3 {
    font-size: clamp(1.6rem, 7vw, 2.4rem);
  }
  .hero-call-number .phone-lockup {
    font-size: clamp(1.75rem, 8.7vw, 3rem);
    white-space: nowrap;
  }
  .hero-call-number .phone-digits {
    letter-spacing: .26em;
    padding-left: .26em;
  }
}

@media (max-width: 680px) {
  .hero-call-now-wrap {
    padding-top: 12px;
  }
  .hero-call-now-card {
    padding: 22px 16px;
  }
  .hero-call-now-card p {
    font-size: .95rem;
  }
}


/* === v2.9.35 lock open mobile menu to the visible header + clearer call number === */
html.menu-open,
body.menu-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}

.hero-call-now-card h3 {
  margin: 4px 0 10px;
  font-size: clamp(2.7rem, 6vw, 5rem);
  line-height: .88;
}
.hero-call-number {
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  gap: .12em;
  margin: 10px auto 18px;
  color: var(--tally-navy) !important;
  font-family: var(--tally-display);
  font-size: clamp(2.7rem, 6.4vw, 5.1rem);
  line-height: .82;
  white-space: nowrap;
}
.hero-call-prefix {
  display: block;
  color: var(--tally-navy) !important;
}
.hero-call-dogs {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  color: var(--tally-navy) !important;
  line-height: .8;
}
.hero-call-dogs strong {
  display: block;
  color: var(--tally-navy) !important;
  font: inherit;
  line-height: .8;
}
.hero-call-dogs small {
  display: block;
  margin-top: .32em;
  padding-left: .34em;
  color: var(--tally-navy) !important;
  font-family: var(--tally-body);
  font-size: .22em;
  font-weight: 700;
  letter-spacing: .34em;
  line-height: 1;
}

@media (max-width: 900px) {
  body.menu-open .utility-bar,
  body.menu-open .site-header {
    position: sticky !important;
  }

  body.menu-open .utility-bar {
    top: 0 !important;
    z-index: 1300 !important;
  }

  body.menu-open .site-header {
    top: 38px !important;
    z-index: 1250 !important;
  }

  body.admin-bar.menu-open .utility-bar {
    top: 46px !important;
  }

  body.admin-bar.menu-open .site-header {
    top: 84px !important;
  }

  .main-navigation.is-viewport-menu {
    z-index: 1200 !important;
  }

  .hero-call-now-card h3 {
    font-size: clamp(2.45rem, 11vw, 3.8rem) !important;
  }

  .hero-call-number {
    display: flex;
    width: 100%;
    font-size: clamp(2rem, 10vw, 3.15rem) !important;
    letter-spacing: 0;
  }
}

@media (max-width: 420px) {
  .hero-call-number {
    font-size: clamp(1.72rem, 9.2vw, 2.45rem) !important;
  }
  .hero-call-dogs small {
    font-size: .24em;
  }
}


/* === v2.9.35 reliable mobile close control + slimmer call-now strip === */
@media (max-width: 900px) {
  html.menu-open,
  body.menu-open {
    overflow: hidden !important;
    overscroll-behavior: none;
  }

  body.menu-open .utility-bar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 1400 !important;
  }

  body.menu-open .site-header {
    position: fixed !important;
    top: var(--open-utility-height, 38px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 1390 !important;
  }

  body.admin-bar.menu-open .utility-bar {
    top: 46px !important;
  }

  body.admin-bar.menu-open .site-header {
    top: calc(46px + var(--open-utility-height, 38px)) !important;
  }

  body.menu-open .menu-toggle {
    position: relative !important;
    z-index: 1500 !important;
    pointer-events: auto !important;
    touch-action: manipulation;
  }

  .main-navigation.is-viewport-menu {
    position: fixed !important;
    top: var(--mobile-menu-top, 114px) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 1350 !important;
    max-height: calc(100dvh - var(--mobile-menu-top, 114px)) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
  }
}

.hero-call-now-wrap {
  padding: 12px 0 4px !important;
}

.hero-call-now-card {
  min-height: 112px;
  padding: 14px 24px !important;
  display: grid !important;
  grid-template-columns: auto minmax(320px, auto) auto;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 3vw, 42px);
  overflow: hidden;
  color: #fff !important;
  background: var(--tally-navy) !important;
  border: 3px solid var(--tally-yellow) !important;
  border-radius: 0;
  box-shadow: 8px 8px 0 rgba(4,24,45,.18) !important;
  text-align: left !important;
  text-decoration: none;
}

.hero-call-now-card:hover {
  transform: translateY(-1px);
  box-shadow: 10px 10px 0 rgba(4,24,45,.2) !important;
}

.hero-call-now-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 150px;
}

.hero-call-now-eyebrow {
  margin: 0 0 3px !important;
  color: var(--tally-yellow) !important;
  font-size: .72rem !important;
  line-height: 1 !important;
}

.hero-call-now-title {
  color: #fff;
  font-family: var(--tally-display);
  font-size: clamp(2rem, 3.4vw, 3.25rem);
  line-height: .82;
  text-transform: uppercase;
}

.hero-call-number {
  display: inline-flex !important;
  width: auto !important;
  margin: 0 !important;
  align-items: flex-start;
  justify-content: center;
  color: var(--tally-yellow) !important;
  font-family: var(--tally-display);
  font-size: clamp(2.15rem, 4.5vw, 4rem) !important;
  line-height: .82;
  white-space: nowrap;
}

.hero-call-prefix,
.hero-call-dogs,
.hero-call-dogs strong,
.hero-call-dogs small {
  color: var(--tally-yellow) !important;
}

.hero-call-dogs small {
  margin-top: .28em;
  font-size: .22em;
}

.hero-call-now-note {
  max-width: 175px;
  color: #fff;
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: .04em;
  text-align: left;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  .hero-call-now-wrap {
    padding-top: 10px !important;
  }

  .hero-call-now-card {
    min-height: 104px;
    padding: 12px 15px !important;
    grid-template-columns: auto 1fr;
    gap: 8px 15px;
    box-shadow: 6px 6px 0 rgba(4,24,45,.16) !important;
  }

  .hero-call-now-copy {
    min-width: 102px;
  }

  .hero-call-now-title {
    font-size: clamp(1.55rem, 7vw, 2.35rem);
  }

  .hero-call-number {
    justify-self: end;
    font-size: clamp(1.75rem, 8vw, 3rem) !important;
  }

  .hero-call-now-note {
    grid-column: 1 / -1;
    max-width: none;
    font-size: .7rem;
    text-align: center;
  }
}

@media (max-width: 420px) {
  .hero-call-now-card {
    min-height: 98px;
    padding: 11px 10px !important;
    gap: 6px 8px;
  }

  .hero-call-now-copy {
    min-width: 88px;
  }

  .hero-call-now-eyebrow {
    font-size: .6rem !important;
  }

  .hero-call-now-title {
    font-size: clamp(1.35rem, 6.5vw, 1.85rem);
  }

  .hero-call-number {
    font-size: clamp(1.48rem, 7.3vw, 2.15rem) !important;
  }
}
