/* WordPress runtime bridge. The approved layout remains in the original three design stylesheets. */
body.admin-bar .site-header { top: 32px; }
@media (max-width:782px) { body.admin-bar .site-header { top: 46px; } }

.tt-container { width:min(100% - (var(--gutter) * 2),var(--container)); margin-inline:auto; }

.site-header svg,
.site-footer svg,
main svg,
.chat-panel svg,
.quick-contact-dock svg,
.mobile-contact-bar svg { flex: 0 0 auto; }

.mobile-sheet {
  position: fixed;
  z-index: 1005;
  inset: 0 0 0 auto;
  width: min(92vw,30rem)!important;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  color: var(--white)!important;
  background: #090909!important;
  border-left: 1px solid var(--line-dark)!important;
  box-shadow: -30px 0 80px rgba(0,0,0,.42);
  transform: translateX(104%);
  transition: transform .32s var(--ease), visibility .32s;
  visibility: hidden;
}
.mobile-sheet[hidden] { display: flex; }
.mobile-sheet.is-open { transform: translateX(0); visibility: visible; }
.mobile-sheet-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.5rem; border-bottom:1px solid var(--line-dark); }
.mobile-sheet-header p { max-width:20rem; margin:.75rem 0 0; color:rgba(255,255,255,.5); font-size:.78rem; }
.mobile-sheet-header > button { width:2.75rem; height:2.75rem; display:grid; place-items:center; flex:0 0 auto; border:1px solid var(--line-dark); border-radius:50%; color:var(--white); background:transparent; cursor:pointer; }
.mobile-brand { display:inline-flex; }
.mobile-brand img { width:3.25rem; height:3.25rem; object-fit:cover; }
body.menu-open::after { content:""; position:fixed; z-index:1002; inset:0; background:rgba(0,0,0,.58); backdrop-filter:blur(3px); }

/* Native WordPress service tabs need the layout/state primitives supplied by
   the React tabs component in the approved build. */
.service-group-tabs button {
  display:flex!important;
  align-items:center;
  line-height:1.2;
  white-space:nowrap;
  transition:color .25s ease,background .25s ease,border-color .25s ease;
}
.service-group-tabs button > span {
  width:1.75rem;
  flex:0 0 1.75rem;
}
.service-group-tabs button.is-active,
.service-group-tabs button[aria-selected="true"] {
  color:var(--black)!important;
  background:var(--yellow)!important;
}
.service-group-tabs button.is-active > span,
.service-group-tabs button[aria-selected="true"] > span {
  color:var(--black)!important;
}
.service-group-panel[hidden] { display:none!important; }

.lead-form input:not([type="checkbox"]),
.lead-form textarea,
.lead-form select {
  width:100%;
  min-width:0;
  padding:.76rem .8rem;
  border:1px solid rgba(5,5,5,.18);
  border-radius:.35rem;
  color:var(--ink);
  background:rgba(255,255,255,.72);
  outline:0;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.lead-form textarea { resize:vertical; }
.lead-form input:focus,
.lead-form textarea:focus,
.lead-form select:focus { border-color:var(--yellow-deep)!important; box-shadow:0 0 0 3px rgba(255,196,0,.14); }
.lead-form input[type="checkbox"] { width:1rem; height:1rem; flex:0 0 auto; margin-top:.18rem; accent-color:var(--yellow); }
.choice-card { margin:0; }
.choice-card > span:first-of-type { font-size:.8rem; font-weight:600; }
.honeypot-field { position:absolute!important; left:-99999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-message[hidden] { display:none; }
.planner-step .planner-actions { margin-top:1.4rem; }

.faq-question { list-style:none; cursor:pointer; }
.faq-question::-webkit-details-marker { display:none; }
.faq-question > b { display:flex; align-items:flex-start; gap:1rem; font-weight:720; }
.faq-question > b small { min-width:1.8rem; color:var(--yellow-deep); font-family:var(--font-mono); font-size:.65rem; }

.insight-library-image img,
.article-feature-image img,
.related-insight-image img { width:100%; height:100%; object-fit:cover; }
.article-body > h2 { scroll-margin-top:7rem; padding-top:1rem; margin-top:2.5rem; }
.article-body > h2:first-child { margin-top:0; }
.article-body > ul li::before { content:"✓"; flex:0 0 auto; color:var(--yellow-deep); font-weight:800; }
.pagination { margin-top:3rem; }
.nav-links { display:flex; flex-wrap:wrap; gap:.5rem; }
.page-numbers { min-width:2.7rem; height:2.7rem; display:grid; place-items:center; border:1px solid var(--line-light); color:var(--ink); text-decoration:none; }
.page-numbers.current,.page-numbers:hover { color:var(--black); background:var(--yellow); border-color:var(--yellow); }

.chat-panel { display:flex; flex-direction:column; }
.chat-panel[hidden] { display:none; }
.chat-sheet .chat-body { overflow-y:auto; }
.chat-sheet .chat-reset { width:calc(100% - 2.3rem); }
.quick-contact-dock > button { font-family:inherit; }

.legal-content { width:min(100% - (var(--gutter) * 2), 840px); padding-block:clamp(4rem,8vw,7rem); }
.legal-content h2 { margin:3rem 0 1rem; font-size:clamp(1.75rem,3vw,2.6rem); letter-spacing:-.04em; }
.legal-content p { color:var(--gray-700); }
.legal-note { padding:.8rem 1rem; border-left:3px solid var(--yellow); background:var(--yellow-pale); }

/* Classic WordPress fallbacks: search, 404, comments, and pagination. */
.archive-hero { padding:clamp(9rem,14vw,12rem) 0 clamp(4rem,7vw,6rem); }
.archive-hero h1 { max-width:16ch; margin:.5rem 0 0; font-size:clamp(3rem,7vw,6.5rem); letter-spacing:-.065em; line-height:.92; }
.archive-body { padding-block:clamp(4rem,8vw,7rem); }
.search-form { display:flex; max-width:42rem; margin-top:2rem; }
.search-form label { flex:1; }
.search-form .search-field { width:100%; min-height:3.25rem; padding:.75rem 1rem; border:1px solid currentColor; color:var(--ink); background:var(--white); }
.search-form .search-submit { min-height:3.25rem; padding:.75rem 1.15rem; border:1px solid var(--yellow); color:var(--black); background:var(--yellow); font-weight:750; cursor:pointer; }
.not-found-page { padding:8rem 0 5rem; }
.nothing-found { padding:3rem 0; }
.comments-area { padding-block:4rem; }
.comment-list { display:grid; gap:1rem; padding:0; list-style:none; }
.comment-list > li { padding:1.25rem; border:1px solid var(--line-light); background:var(--white); }

/* Native posts inherit the same card behavior as the approved source. */
.insight-library-grid .insight-library-card:nth-child(odd):last-child { grid-column:1/-1; }

@media (min-width:901px) { .mobile-sheet { display:none!important; } }
@media (max-width:900px) {
  .menu-toggle { display:flex; align-items:center; justify-content:center; }
  .desktop-nav,.header-cta { display:none; }
}
@media (max-width:820px) {
  body { padding-bottom:3.65rem; }
  .insight-library-grid .insight-library-card:nth-child(odd):last-child { grid-column:auto; }
}
@media (max-width:560px) {
  .lead-form .choice-grid { grid-template-columns:1fr; }
  .compact-lead-form .form-submit { width:100%; }
  .mobile-contact-bar a { min-width:0; font-size:.66rem; }
}

@media (max-width:680px) {
  .home-services .service-group-tabs button:nth-child(2n) { border-right:0!important; }
  .home-services .service-group-tabs button:nth-last-child(-n+2) { border-bottom:0!important; }
}

@media print {
  .site-header,.site-footer,.quick-contact-dock,.chat-panel,.mobile-contact-bar { display:none!important; }
}
