/* Grow Theory: site-wide layer on top of each page's inline design styles */

html { scroll-behavior: smooth; background: #0E0E10; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
[hidden] { display: none !important; }
section[id] { scroll-margin-top: 24px; }
.mq-group > li { flex-shrink: 0; }
.ghost, .btn { white-space: nowrap; }
.pt-scroll { width: 100%; }
.nav-toggle { display: none; }

/* Keep content at 1248px on wide screens while backgrounds stay full bleed */
.gt > *:not(.mq) {
  padding-left: max(96px, calc((100% - 1248px) / 2)) !important;
  padding-right: max(96px, calc((100% - 1248px) / 2)) !important;
}
.gt > section[style*="height: 800px"] { height: auto !important; min-height: 800px; }
.gt > section[style*="height: 760px"] { height: auto !important; min-height: 760px; }
.gt > section[style*="height: 640px"] { height: auto !important; min-height: 640px; }

/* ---------- Tablet ---------- */
@media (max-width: 1100px) {
  .gt > *:not(.mq) { padding-left: 32px !important; padding-right: 32px !important; }
  .gt > section { padding-top: 80px !important; padding-bottom: 80px !important; }
  .gt > section[style*="height: 800px"],
  .gt > section[style*="height: 760px"],
  .gt > section[style*="height: 640px"] {
    min-height: 0; padding-top: 56px !important; padding-bottom: 72px !important; gap: 48px !important;
  }
  .gt [style*="grid-template-columns"] { grid-template-columns: minmax(0, 1fr) !important; }
  .gt [style*="repeat(4, minmax"], .gt [style*="repeat(5, minmax"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .gt .ledger { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 24px !important; font-size: 17px !important; }
  .gt section > svg[width], .gt section > div > svg[width] { max-width: 100%; height: auto; }

  .hero-art { width: 100% !important; max-width: 560px; height: auto !important; aspect-ratio: 1 / 1; margin: 0 auto; }
  .hero-art > svg { width: 100% !important; height: 100% !important; }
  .photo-frame { width: 100% !important; max-width: 420px; height: auto !important; aspect-ratio: 9 / 11; }

  .gt .svc { grid-template-columns: auto minmax(0, 1fr) auto !important; gap: 20px 24px !important; padding: 28px !important; }
  .gt .svc > .svc-d { grid-column: 1 / -1; }
  .gt .svc > svg { width: 80px; height: 80px; }

  .pt-scroll { overflow-x: auto; padding-bottom: 12px; }
  .pt { min-width: 1040px; }

  .stairs { height: auto !important; }
  .stairs > svg { display: none; }
  .stairs li { margin-top: 0 !important; }

  .gt section.on-orange { flex-direction: column; align-items: flex-start !important; }
  .gt footer > div:first-child { flex-direction: column; }
  .gt footer nav { flex-wrap: wrap; }
  .gt footer > div:last-child { flex-wrap: wrap; }
  .step { grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; }
}

/* ---------- Phone ---------- */
@media (max-width: 720px) {
  .gt > *:not(.mq) { padding-left: 20px !important; padding-right: 20px !important; }
  .gt > section { padding-top: 64px !important; padding-bottom: 64px !important; }

  .gt > header { height: auto !important; padding-top: 14px !important; padding-bottom: 14px !important; flex-wrap: wrap; row-gap: 12px; }
  .gt > header nav { gap: 16px !important; flex-wrap: wrap; }
  .gt > header .wm { width: auto !important; font-size: 19px !important; }
  .gt > header .btn.sm { display: none; }

  .gt h1 { font-size: 38px !important; }
  .gt h2 { font-size: 30px !important; }
  .gt h3 { font-size: 19px !important; }
  .gt [style*="repeat(4, minmax"], .gt [style*="repeat(5, minmax"] { grid-template-columns: minmax(0, 1fr) !important; }
  .gt .svc { grid-template-columns: auto minmax(0, 1fr) !important; }
  .gt .svc > .svc-go { display: none; }
  .gt .svc .disp { font-size: 28px !important; }
  .gt .svc > svg { width: 64px; height: 64px; }
  .gt section.on-orange h2 { font-size: 30px !important; }
  .gt .mq { height: 104px; }
  .gt .mq-group { gap: 56px; padding-right: 56px; }
  .gt .mq-logo { transform: scale(.8); }
  .gt [style*="font-size: 72px"], .gt [style*="font-size: 60px"] { font-size: 44px !important; }
  .gt [style*="font-size: 52px; line-height: 1; color: #F2551F"] { font-size: 40px !important; }

  .gt footer > a { gap: 16px !important; }
  .gt footer > a > svg { width: 64px; height: 64px; }
  .gt footer .wm { font-size: 40px !important; }
  .gt footer nav { gap: 16px !important; }
  .gt footer > div:last-child { flex-direction: column; gap: 8px !important; }

  .faq-q { font-size: 18px !important; }
  .faq-a { padding-right: 0 !important; }
  .gt .btn { height: 52px; }
  .gt [style*="display: flex; gap: 28px; align-items: center"], .gt [style*="display: flex; gap: 20px; align-items: center"] { flex-wrap: wrap; row-gap: 16px; }

  /* --- mobile pass 2 --- */
  .gt > header { position: sticky; top: 0; z-index: 50; background: #0E0E10; }
  .gt > header nav { display: none !important; }
  .nav-toggle { display: inline-flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; width: 44px; height: 44px; margin-left: auto; padding: 0; background: none; border: 1px solid #3A3A40; cursor: pointer; }
  .nav-toggle span { display: block; width: 20px; height: 2px; background: #F4F4F2; transition: transform .25s ease; }
  .nav-toggle:focus-visible { outline: 2px solid #F2551F; outline-offset: 3px; }
  .gt > header.nav-open .nav-toggle span:first-child { transform: translateY(4px) rotate(45deg); }
  .gt > header.nav-open .nav-toggle span:last-child { transform: translateY(-4px) rotate(-45deg); }
  .gt > header.nav-open nav { display: flex !important; flex-direction: column; align-items: stretch !important; gap: 0 !important; width: 100%; order: 3; padding: 4px 0 18px; }
  .gt > header.nav-open nav .nl { padding: 15px 0; font-size: 18px; color: #F4F4F2; border-bottom: 1px solid #1F1F23; background-size: 0 0; }
  .gt > header.nav-open nav .btn.sm { display: inline-flex !important; justify-content: center; margin-top: 18px; height: 52px; font-size: 16px; }
  section[id] { scroll-margin-top: 84px; }

  .gt > section[style*="gap"] { gap: 32px !important; }
  .gt > section [style*="gap: 96px"], .gt > section [style*="gap: 88px"], .gt > section [style*="gap: 80px"],
  .gt > section [style*="gap: 72px"], .gt > section [style*="gap: 64px"] { gap: 20px !important; }
  .gt > section [style*="gap: 56px"] { gap: 28px !important; }
  .gt > footer { gap: 36px !important; padding-top: 64px !important; }

  .hero-art { max-width: 330px; }

  .gt [style*="repeat(5, minmax"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .roster { height: 104px !important; }
  .roster img { max-width: 78%; height: auto !important; max-height: 56px; }
  .stat { min-height: 0 !important; gap: 14px; padding: 22px !important; }
  .stat .disp, .gt [style*="font-size: 56px"] { font-size: 40px !important; }

  .pt-scroll { overflow: visible !important; padding-bottom: 0 !important; }
  .pt { display: flex !important; flex-wrap: wrap; gap: 6px !important; min-width: 0 !important; }
  .pt-empty { display: none !important; }
  .pt-el { width: calc((100% - 30px) / 6); height: auto; aspect-ratio: 1 / 1; }
  .pt-s { font-size: 17px; }
  .pt-sup { font-size: 10px; top: -7px; }
  .pt-n { font-size: 8px; top: 3px; left: 4px; }
  .pt-read { order: -1; width: 100%; min-height: 250px; padding: 0 0 14px !important; gap: 16px !important; align-items: flex-start !important; }
  .rd-tile { width: 112px !important; height: 112px !important; }
  .rd-s { font-size: 40px; }
  .rd-sup { font-size: 22px; top: -16px; }
  .rd-n { font-size: 11px; top: 8px; left: 9px; }
  .rd-name { font-size: 9px; bottom: 8px; left: 9px; }
  .pt-read .disp { font-size: 22px !important; }
  .pt-read p { font-size: 15px !important; }
}
/* Contact forms (shared by home and service pages) */
.fld{display:flex;flex-direction:column;gap:8px}
.fld label{font-size:14px;font-weight:500;color:#A1A1AA}
.in{height:50px;width:100%;background:transparent;border:0;border-bottom:1px solid #3A3A40;color:#F4F4F2;font:inherit;font-size:18px;padding:0 2px;border-radius:0;transition:border-color .2s}
.in:focus{border-bottom-color:#F2551F}
.in::placeholder{color:#71717A}
.in option{color:#0E0E10}
textarea.in{height:112px;padding-top:12px;resize:none;line-height:1.5}
.link-d{background:none;border:0;padding:8px 0;font:inherit;font-weight:600;font-size:16px;color:#F2551F;text-decoration:underline;text-underline-offset:5px;cursor:pointer;align-self:flex-start}
.gt input:focus-visible,.gt select:focus-visible,.gt textarea:focus-visible{outline:2px solid #F2551F;outline-offset:4px}
@media (max-width: 720px) { section[id] { scroll-margin-top: 84px; } }
