/* Owner-approved ocean accents; functional warning/error colors stay intact. */
:root { --ocean: #007a7f; --ocean-deep: #005f64; --ocean-light: #80d8d0; }
:focus-visible { outline: 3px solid var(--ocean-deep); outline-offset: 4px; }
.gold-button, .small-gold-button, .mobile-actions a:last-child {
  background: var(--ocean); color: #fff; border: 1px solid var(--ocean);
  min-height: 48px; box-shadow: none; text-transform: none;
}
.gold-button:hover, .gold-button:focus-visible, .small-gold-button:hover,
.small-gold-button:focus-visible, .mobile-actions a:last-child:hover,
.mobile-actions a:last-child:focus-visible {
  background: var(--ocean-deep); color: #fff; border-color: var(--ocean-deep);
  transform: none;
}
.site-header .gold-button, .prep-proof-section .gold-button,
.service-detail-hero .gold-button, .service-detail-cta .gold-button,
.hero .gold-button { border-color: var(--ocean-light); }
.site-header :focus-visible, .footer :focus-visible, footer :focus-visible,
.prep-proof-section :focus-visible, .hero :focus-visible,
.service-detail-hero :focus-visible, .service-detail-cta :focus-visible {
  outline-color: var(--ocean-light);
}
.eyebrow, .original-work-heading .eyebrow, .text-link:hover, .service-copy a,
.service-links .service-request-only::after, .related-service-grid small,
.service-detail-content aside svg { color: var(--ocean-deep); }
.hero h1 span, .hero-kicker, .hero-points svg, .header-phone svg, .header-email svg,
.header-quick-call svg, .service-image > span, .footer-contact svg,
.footer-points svg, .footer-truck a, .a9-credit small,
.prep-proof-section .eyebrow, .prep-proof-points svg,
.footer-quote .eyebrow, .service-detail-hero-copy > p,
.service-detail-cta .eyebrow, .request-group legend span,
.service-card:hover .service-request-only::after { color: var(--ocean-light); }
.gold-rule, .prep-proof-list li::before { background: var(--ocean-light); }
.hero-points li::before, .hero-points--clean li::before { background: var(--ocean-light); }
.service-request-form, .service-detail-content aside { border-top-color: var(--ocean); }
.request-fields input:focus, .request-fields select:focus, .request-fields textarea:focus {
  border-color: var(--ocean-deep); box-shadow: 0 0 0 3px #007a7f26;
}
.contact-channels a:hover { border-color: var(--ocean-light); }
.site-header nav a::after { background: var(--ocean-light); }

/* Use the established transparent symbol once, alongside a readable wordmark. */
.brand-logo.brand-logo--compact {
  width: auto; height: auto; min-width: 0; max-width: 270px;
  display: inline-flex; justify-content: flex-start; gap: 10px;
  text-decoration: none; color: #fffdf5;
}
.brand-logo--compact::before, .brand-logo--compact::after { content: none; display: none; }
.brand-logo--compact img.brand-symbol {
  width: 72px; height: auto; max-width: none; flex: 0 0 auto; filter: none;
}
.brand-wordmark { display: grid; gap: 5px; min-width: 0; }
.brand-wordmark strong { font: 700 29px/1 Georgia, 'Times New Roman', serif; white-space: nowrap; }
.brand-wordmark small { font: 700 11px/1.2 Arial, sans-serif; letter-spacing: .17em; }
.footer-main .brand-logo--compact { margin-bottom: 16px; }

.site-header.site-header--polished { position: sticky; top: 0; }
.site-header--polished .header-inner {
  display: flex; justify-content: space-between; align-items: center;
  width: min(1200px, calc(100% - 32px)); min-height: 88px;
  gap: 22px; padding: 12px 0; position: relative;
}
.site-header--polished .header-contact { display: flex; gap: 5px; }
.site-header--polished .header-contact .gold-button { min-height: 44px; font-size: 13px; }
.site-header--polished .header-phone { font-size: 16px; justify-content: center; }
.site-header--polished .header-email { font-size: 11px; justify-content: center; }
.site-header--polished nav { position: static; gap: 24px; box-shadow: none; }
.site-header--polished nav a { min-height: 44px; display: inline-flex; align-items: center; text-transform: none; font-size: 14px; }
.site-header--polished nav .menu-quote { display: none; }
.site-header--polished nav[hidden] { display: none !important; }
.site-header--polished .menu-button { display: none; }
.menu-icon { display: grid; gap: 4px; width: 18px; }
.menu-icon span { display: block; height: 2px; background: currentColor; border-radius: 1px; }
.navigation-open .menu-icon span:first-child { transform: translateY(6px) rotate(45deg); }
.navigation-open .menu-icon span:nth-child(2) { opacity: 0; }
.navigation-open .menu-icon span:last-child { transform: translateY(-6px) rotate(-45deg); }
.site-header--polished .menu-button:hover { background: #ffffff14; }
html { scroll-padding-top: 100px; }
[id] { scroll-margin-top: 100px; }

.service-illustration-label { display: block; padding: 8px 16px; color: #526575; background: #f5f7f8; font-size: 12px; }
.google-review-section { background: #fffdf5; padding: 48px 0; color: var(--navy); }
.google-review-section > div { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.google-review-section h2 { font-size: 28px; margin: 0 0 12px; }
.google-review-section p { max-width: 650px; margin: 0; line-height: 1.65; }
.google-review-section .gold-button { flex-shrink: 0; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 1120px) {
  .site-header--polished .header-inner { flex-wrap: wrap; min-height: 76px; gap: 12px; }
  .site-header--polished .header-contact { display: none; }
  .site-header--polished nav {
    display: flex; position: static; flex-basis: 100%; flex-direction: column;
    align-items: stretch; gap: 0; padding: 8px 16px 16px; margin: 0;
    background: var(--navy); border-top: 1px solid #ffffff26;
  }
  .site-header--polished[data-navigation-ready] nav {
    position: absolute; top: 100%; left: -16px; right: -16px;
    max-height: min(70vh, 420px); overflow-y: auto; box-shadow: 0 12px 20px #0003;
  }
  .site-header--polished nav a, .site-header--polished nav .menu-quote {
    display: flex; min-height: 48px; padding: 12px 8px;
    border-bottom: 1px solid #ffffff21; font-size: 16px;
  }
  .site-header--polished[data-navigation-ready] .menu-button {
    display: inline-flex; gap: 8px; width: auto; min-width: 78px;
    height: 48px; padding: 10px 12px; font-size: 14px; font-weight: 700;
    border-color: #80d8d080; flex-shrink: 0;
  }
}
@media (max-width: 760px) {
  .brand-logo--compact img.brand-symbol { width: 52px; }
  .brand-logo.brand-logo--compact { gap: 8px; }
  .brand-wordmark strong { font-size: 23px; }
  .brand-wordmark small { font-size: 9px; letter-spacing: .12em; }
  .site-header--polished .header-inner { min-height: 72px; padding: 10px 0; }
  .site-header--polished[data-navigation-ready] .menu-button { min-width: 76px; padding-inline: 10px; }
  .mobile-actions a { min-height: 48px; font-size: 12px; }
  .mobile-actions a:last-child { color: #fff; }
  .google-review-section > div { align-items: stretch; flex-direction: column; }
  .google-review-section .gold-button { width: 100%; }
  html { scroll-padding-top: 88px; }
  [id] { scroll-margin-top: 88px; }
}
@media (max-width: 360px) {
  .brand-logo--compact img.brand-symbol { width: 42px; }
  .brand-wordmark strong { font-size: 21px; }
  .brand-wordmark small { font-size: 8px; }
  .site-header--polished .header-inner { gap: 8px; }
}
/* Approved original artwork: keep pixels and transparency intact. */
.approved-symbol {
  position: relative; display: block; overflow: hidden; flex: 0 0 auto;
  width: 72px; aspect-ratio: 1.9; border-radius: 3px; background: #fffdf5;
}
.brand-logo--compact .approved-symbol img {
  position: absolute; width: 161.685%; max-width: none; height: auto;
  left: -31.579%; top: -4%; object-fit: contain; filter: none;
}
.brand-logo.brand-logo--full {
  display: block; width: min(100%, 320px); height: auto; max-width: 100%;
  padding: 12px; background: #fffdf5; border-radius: 6px;
  margin: 0 0 24px; box-sizing: border-box;
}
.brand-logo--full::before, .brand-logo--full::after { content: none; display: none; }
.brand-logo.brand-logo--full img { display: block; width: 100%; height: auto; max-width: none; filter: none; }
.service-detail-footer .brand-logo--full { margin-inline: auto; }
.service-image .service-illustration-label, .service-detail-hero > .service-illustration-label {
  position: absolute; left: auto; right: 10px; bottom: 10px; z-index: 3;
  display: block; width: auto; height: auto; min-width: 0; min-height: 0;
  white-space: nowrap; transform: none;
  padding: 4px 8px; border-radius: 3px; color: #fff;
  background: #061f35e6; font: 500 11px/1.4 Arial, sans-serif;
}
@media (max-width: 760px) { .approved-symbol { width: 52px; } }
@media (max-width: 360px) { .approved-symbol { width: 42px; } }
/* Readable native descriptor; teal emphasis stays static. */
.brand-logo.brand-logo--compact { max-width: 340px; }
.brand-wordmark small {
  display: flex; flex-wrap: nowrap; gap: .35em;
  font-size: 11px; line-height: 1.3; letter-spacing: .06em;
}
.brand-wordmark small > span { white-space: nowrap; }
.brand-wordmark .brand-renovations { color: var(--ocean-light); }
@media (max-width: 760px) {
  .brand-wordmark small { display: grid; gap: 1px; font-size: 10px; line-height: 1.2; }
}
