/* Small, stable overrides that must remain available even when a cached
   compiled stylesheet is restored by an existing browser tab. */
.legal-brand {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
}

.legal-brand img {
  display: block;
  width: min(270px, 100%);
  height: auto;
}

.legal-brand > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

@media (max-width: 600px) {
  .legal-brand img { width: min(240px, 100%); }
}

/* Keep the final call-to-action centered across desktop and mobile. */
.cta-inner {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 34px;
  text-align: center;
}

.cta h2 { max-width: 640px; }

@media (max-width: 900px) {
  .cta-inner { gap: 30px; }
}

/* The consulting card is the featured entry in the desktop catalog. */
.service-card:first-child {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}

.service-card:first-child .service-motion {
  border-color: rgba(255,255,255,.12);
  background: rgba(255,255,255,.08);
}

.service-card:first-child p { color: rgba(255,255,255,.72); }

.service-card:first-child .service-details > b {
  border-color: rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: var(--paper);
}

.service-card:first-child .service-details .service-category,
.service-card:first-child .service-details .service-availability {
  border-color: var(--green-border);
  background: rgba(0,176,111,.15);
  color: var(--green);
}

@media (min-width: 1051px) {
  .service-card:first-child { grid-column: span 2; grid-row: auto; }
}

@media (max-width: 1050px) {
  .service-card:first-child { grid-column: auto; }
}

html[data-theme="dark"] .service-card:first-child {
  border-color: rgba(0,176,111,.68);
  background: rgba(0,176,111,.15);
  box-shadow: 0 18px 48px rgba(0,176,111,.10);
}

html[data-theme="dark"] .service-card:first-child .service-motion {
  border-color: rgba(0,176,111,.35);
  background: rgba(0,176,111,.09);
}

.brand-logo-image { content:url("/tc-lockup-horizontal-color.png?v=128"); }
html[data-theme="dark"] .brand-logo-image { content:url("/tc-lockup-horizontal-on-charcoal.png?v=128"); }

/* About section: one designed personal introduction followed by Keegan's letter. */
.prepared-request { display:flex; align-items:center; gap:20px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.prepared-request[hidden] { display:none; }
.prepared-request .button { flex:none; }
.prepared-request p { margin:0; color:rgba(49,64,71,.62); font-size:13px; line-height:1.5; }
html[data-theme="dark"] .prepared-request { border-color:rgba(255,255,255,.12); }
html[data-theme="dark"] .prepared-request p { color:rgba(255,255,255,.64); }

.about-band { position:relative; overflow:hidden; }
.about { display:grid; grid-template-columns:1fr; gap:clamp(24px,3vw,36px); align-items:stretch; padding-block:clamp(92px,9vw,125px); }
.about-profile { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-columns:minmax(170px,220px) minmax(0,1fr); gap:clamp(30px,5vw,58px); align-items:center; padding:clamp(30px,4.5vw,54px); border:1px solid rgba(49,64,71,.10); border-radius:28px; background:var(--cream); box-shadow:var(--shadow-sm); }
.about-profile::before,.about-profile::after { content:""; position:absolute; z-index:-1; border:1px solid rgba(49,64,71,.12); border-radius:50%; pointer-events:none; }
.about-profile::before { width:390px; height:390px; right:-105px; top:-220px; }
.about-profile::after { width:250px; height:250px; right:70px; bottom:-165px; border-style:dashed; }
.about-portrait { position:relative; z-index:1; width:100%; margin:0; aspect-ratio:1; }
.about-portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 50%; border-radius:22px; box-shadow:0 18px 42px rgba(49,64,71,.16); }
.about-profile-copy { position:relative; z-index:1; max-width:690px; }
.about-profile-copy .section-kicker { margin:0 0 20px; }
.about-profile-copy h2 { max-width:680px; margin:0; font-size:clamp(2.15rem,4.2vw,3.35rem); line-height:1.06; letter-spacing:-.035em; }
.about-profile-copy>p:not(.section-kicker) { max-width:620px; margin:20px 0 0; color:rgba(49,64,71,.70); font-size:18px; line-height:1.65; }
.about-profile-copy>span { display:inline-block; margin-top:22px; color:var(--green); font:600 11px/1.5 "Poppins",sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.about-profile-spark { position:absolute; z-index:1; width:19px; height:19px; right:clamp(30px,6vw,78px); top:clamp(28px,5vw,62px); background:var(--green); clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%); animation:sparkBlink 3.8s ease-in-out infinite; }
.about-letter { position:relative; width:min(100%,960px); min-width:0; justify-self:center; padding:52px clamp(30px,5vw,66px) 56px; border:1px solid rgba(49,64,71,.12); border-radius:var(--radius-card); background:var(--paper); box-shadow:var(--shadow-md); }
.about-letter::before { content:""; position:absolute; top:-1px; left:clamp(30px,5vw,66px); width:72px; height:4px; border-radius:0 0 999px 999px; background:var(--green); }
.about-letter-header { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:48px; color:var(--green); cursor:pointer; list-style:none; font:600 11px/1.4 "Poppins",sans-serif; letter-spacing:.14em; text-transform:uppercase; }
.about-letter-header::-webkit-details-marker { display:none; }
.about-letter-header:focus-visible { outline:3px solid rgba(0,176,111,.30); outline-offset:8px; border-radius:8px; }
.about-letter-toggle { display:inline-flex; align-items:center; gap:10px; color:var(--ink); font-size:13px; letter-spacing:0; text-transform:none; }
.about-letter-toggle .ui-icon { color:var(--green); transition:rotate .22s ease; }
.about-letter-toggle-close { display:none; }
.about-letter[open] .about-letter-toggle-open { display:none; }
.about-letter[open] .about-letter-toggle-close { display:inline; }
.about-letter[open] .about-letter-toggle .ui-icon { rotate:180deg; }
.about-letter-body { margin-top:22px; padding-top:30px; border-top:1px solid var(--line); }
.about-letter p { max-width:760px; margin:0 0 22px; color:rgba(49,64,71,.72); font-size:18px; line-height:1.72; }
.about-letter .about-salutation { margin-top:30px; color:var(--ink); font-family:"Poppins",sans-serif; font-weight:600; }
.about-letter-body .about-salutation { margin-top:0; }
.about-inline-link { color:var(--green); font-weight:600; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.about-signoff { margin-top:30px !important; margin-bottom:5px !important; color:var(--ink) !important; }
.about-signature { display:block; color:var(--ink); font-family:"Brush Script MT","Segoe Script","Bradley Hand",cursive; font-size:42px; line-height:1; transform:rotate(-4deg); transform-origin:left center; }
.about-letter .about-button { margin-top:30px; }
html[data-theme="dark"] .about-profile { border-color:#ffffff24; background:#ffffff0d; box-shadow:none; }
html[data-theme="dark"] .about-profile::before,html[data-theme="dark"] .about-profile::after { border-color:#ffffff24; }
html[data-theme="dark"] .about-profile-copy>p:not(.section-kicker) { color:#ffffffb8; }
html[data-theme="dark"] .about-letter { border-color:#ffffff24; background:#ffffff0d; box-shadow:none; }
html[data-theme="dark"] .about-letter-body { border-color:#ffffff24; }
html[data-theme="dark"] .about-letter-toggle { color:var(--paper); }
html[data-theme="dark"] .about-letter p { color:#ffffffb8; }
html[data-theme="dark"] .about-letter .about-salutation,html[data-theme="dark"] .about-signoff,html[data-theme="dark"] .about-signature { color:var(--paper) !important; }

@media (max-width:900px) {
  .about { gap:24px; }
  .about-profile { grid-template-columns:140px minmax(0,1fr); gap:28px; padding:30px; }
  .about-profile-copy h2 { font-size:clamp(1.9rem,5vw,2.5rem); }
  .about-letter { padding:42px 38px 46px; }
}

@media (max-width:600px) {
  .prepared-request { align-items:stretch; flex-direction:column; }
  .prepared-request .button { width:100%; justify-content:space-between; }
  .about { display:grid; grid-template-columns:1fr; gap:18px; padding-block:64px 72px; }
  .about-profile { grid-template-columns:96px minmax(0,1fr); gap:16px; align-items:start; padding:20px; border-radius:22px; }
  .about-profile::before { width:230px; height:230px; right:-126px; top:-115px; }
  .about-profile::after { width:155px; height:155px; right:-18px; bottom:-102px; }
  .about-portrait { width:96px; }
  .about-portrait img { border-radius:18px; box-shadow:0 12px 28px rgba(49,64,71,.14); }
  .about-profile-copy .section-kicker { margin-bottom:12px; padding:6px 10px; font-size:9px; letter-spacing:.11em; }
  .about-profile-copy h2 { font-size:clamp(1.25rem,6vw,1.55rem); line-height:1.14; letter-spacing:-.025em; }
  .about-profile-copy>p:not(.section-kicker) { margin-top:10px; font-size:14px; line-height:1.5; }
  .about-profile-copy>span { margin-top:12px; font-size:9px; line-height:1.45; letter-spacing:.08em; }
  .about-profile-spark { width:14px; height:14px; right:16px; top:15px; }
  .about-letter { width:100%; margin:0; padding:30px 24px 34px; }
  .about-letter::before { left:24px; width:54px; }
  .about-letter-header { flex-wrap:wrap; gap:10px 16px; font-size:10px; }
  .about-letter-toggle { font-size:12px; }
  .about-letter p { font-size:17px; line-height:1.68; }
  .about-letter .about-button { width:100%; justify-content:space-between; box-shadow:none; }
}

@media (max-width:360px) {
  .about-profile { grid-template-columns:84px minmax(0,1fr); gap:13px; padding:17px; }
  .about-portrait { width:84px; }
  .about-profile-copy h2 { font-size:1.2rem; }
  .about-profile-copy>p:not(.section-kicker) { font-size:13px; }
}

@media (prefers-reduced-motion:reduce) {
  .about-profile-spark { animation:none; }
}

/* Shared footer directory: stable structure across every route. */
.footer { min-height:0; grid-template-columns:minmax(220px,.62fr) minmax(0,1.38fr); align-items:start; gap:clamp(48px,7vw,90px); padding-block:72px 42px; }
.footer-brand-column { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:24px; }
.footer-contact { max-width:100%; display:grid; gap:7px; }
.footer-contact a { width:fit-content; max-width:100%; color:var(--green); font:600 14px/1.5 "Poppins",sans-serif; overflow-wrap:anywhere; }
.footer-directory { min-width:0; display:grid; gap:42px; }
.footer-groups { display:grid; grid-template-columns:.75fr 1.25fr .7fr; gap:clamp(32px,5vw,70px); align-items:start; }
.footer-group { min-width:0; display:grid; align-content:start; gap:13px; }
.footer-group-title { margin-bottom:5px; color:var(--green); font:700 10px/1.4 "Poppins",sans-serif; letter-spacing:.15em; text-transform:uppercase; }
.footer-group a { width:fit-content; max-width:100%; font:600 13px/1.5 "Poppins",sans-serif; overflow-wrap:anywhere; }
.footer-bottom { display:flex; justify-content:flex-end; padding-top:22px; border-top:1px solid var(--line); color:rgba(49,64,71,.60); font-size:12px; line-height:1.5; }
html[data-theme="dark"] .footer-bottom { border-color:rgba(255,255,255,.12); color:rgba(255,255,255,.62); }
@media (max-width:900px) { .footer { grid-template-columns:1fr; gap:46px; padding-block:58px 38px; text-align:left; }.footer-brand-column { align-items:flex-start; }.footer-brand { justify-content:flex-start !important; }.footer-directory { width:100%; }.footer-bottom { justify-content:flex-start; } }
@media (max-width:600px) { .footer { gap:38px; padding-block:52px 34px; }.footer-groups { grid-template-columns:1fr 1fr; gap:38px 28px; }.footer-group:nth-child(2) { grid-row:span 2; }.footer-group a { font-size:14px; } }
@media (max-width:390px) { .footer-groups { grid-template-columns:1fr; gap:32px; }.footer-group:nth-child(2) { grid-row:auto; } }

/* Attached About drawer and short service-finder email fallback. */
.about { gap:0; }
.about-profile { z-index:1; }
.about-letter { z-index:2; width:min(calc(100% - clamp(40px,8vw,120px)),960px); margin-top:-1px; padding:18px clamp(30px,5vw,66px) 20px; border-top-color:rgba(49,64,71,.06); border-radius:0 0 28px 28px; }
.about-letter[open] { padding-bottom:56px; }
.about-letter::before { top:0; }
.about-letter-body { margin-top:18px; }
html[data-theme="dark"] .about-letter { border-top-color:rgba(255,255,255,.08); }
.service-finder-panel .service-finder-email { display:grid; gap:18px; padding:20px; border:1px solid rgba(255,255,255,.14); border-radius:18px; background:rgba(0,0,0,.14); }
.service-finder-email-heading p { margin:0 0 5px; color:var(--paper); font:600 15px/1.4 "Poppins",sans-serif; }
.service-finder-email-heading span { color:rgba(255,255,255,.62); font-size:13px; line-height:1.5; }
.service-finder-email-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.service-finder-panel .service-finder-email label { display:grid; gap:8px; color:rgba(255,255,255,.72); font:600 11px/1.4 "Poppins",sans-serif; }
.service-finder-email-request { grid-column:1/-1; }
.service-finder-email input,.service-finder-email textarea { width:100%; min-width:0; border:1px solid rgba(255,255,255,.16); border-radius:12px; outline:0; background:rgba(255,255,255,.07); color:var(--paper); font:400 16px/1.5 "Inter",sans-serif; }
.service-finder-email input { min-height:48px; padding:11px 13px; }
.service-finder-panel .service-finder-email textarea { min-height:104px; padding:12px 13px; resize:vertical; }
.service-finder-email input:focus,.service-finder-email textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(0,176,111,.16); }
.service-finder-email-submit { min-height:54px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:0 16px 0 19px; border:0; border-radius:999px; background:var(--green); color:var(--paper); font:600 13px/1.4 "Poppins",sans-serif; cursor:pointer; }
.service-finder-email-submit b { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:rgba(49,64,71,.22); }
.service-finder-email-fallback { width:fit-content; display:inline-flex; align-items:center; gap:8px; color:var(--paper); font:600 12px/1.5 "Poppins",sans-serif; text-decoration:underline; text-decoration-color:var(--green); text-underline-offset:4px; }
@media (max-width:600px) {
  .about { gap:0; }
  .about-letter { width:calc(100% - 20px); margin-top:-1px; padding:16px 18px 18px; border-radius:0 0 20px 20px; }
  .about-letter[open] { padding-bottom:34px; }
  .about-letter::before { left:18px; }
  .service-finder-panel .service-finder-email { padding:16px; }
  .service-finder-email-fields { grid-template-columns:1fr; }
  .service-finder-email-request { grid-column:auto; }
}

/* Stable copy of the current homepage layout refinements. */
.homepage-header::after {
  background:
    linear-gradient(90deg,rgba(49,64,71,.88) 0%,rgba(49,64,71,.68) 50%,rgba(49,64,71,.42) 100%),
    linear-gradient(180deg,rgba(49,64,71,.12),rgba(49,64,71,.34));
}
.homepage-header h1 { font-weight:700; }
.quick-help-band { padding-block:clamp(26px,4vw,48px); background:var(--paper); }
.quick-help-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.quick-help-grid-single { grid-template-columns:minmax(0,1fr); }
.quick-help-card { min-width:0; display:flex; flex-direction:column; justify-content:space-between; gap:28px; padding:clamp(26px,3.2vw,40px); border:1px solid var(--line); border-radius:var(--radius-card); background:var(--cream); }
.quick-help-card h2 { max-width:540px; margin:18px 0 12px; font:600 clamp(1.55rem,2.5vw,2.15rem)/1.16 "Poppins",sans-serif; letter-spacing:-.025em; }
.quick-help-card p:not(.section-kicker) { max-width:620px; margin:0; color:rgba(49,64,71,.68); font-size:17px; line-height:1.65; }
.quick-help-card .button { width:fit-content; min-width:245px; box-shadow:none; }
.quick-help-card-urgent { border-color:var(--ink); background:var(--ink); color:var(--paper); }
.quick-help-card-urgent p:not(.section-kicker) { color:rgba(255,255,255,.74); }
html[data-theme="dark"] .quick-help-card:not(.quick-help-card-urgent) { border-color:rgba(255,255,255,.16); background:var(--ink); color:var(--paper); box-shadow:0 18px 42px rgba(0,0,0,.14); }
html[data-theme="dark"] .quick-help-card:not(.quick-help-card-urgent) h2 { color:var(--paper); }
html[data-theme="dark"] .quick-help-card:not(.quick-help-card-urgent) p:not(.section-kicker) { color:rgba(255,255,255,.76); }
.tucson-copy h2,.home-guides-heading h2,.about-profile-copy h2 { font-weight:600; }
.help-band { padding-block:clamp(68px,7vw,90px); }
.help-list>div { min-height:62px; }
.home-guides-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:1fr; align-items:stretch; }
.home-guide-card,.home-guide-card:last-child,.home-guide-card:nth-child(4),.home-guide-card:nth-child(5) { height:100%; grid-column:auto; }
.about-band { background:var(--cream); }
.about { padding-block:0; overflow:hidden; border:1px solid var(--line); border-radius:28px; background:var(--paper); box-shadow:var(--shadow-sm); }
.about-profile { border:0; border-radius:0; background:transparent; }
.about-profile::before,.about-profile::after { display:none; }
.about-portrait img { filter:none; }
.about-letter { width:100%; max-width:none; margin:0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
html[data-theme="dark"] .about { border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.07); box-shadow:none; }
html[data-theme="dark"] .about-profile,html[data-theme="dark"] .about-letter { background:transparent; }
.review-grid { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-inline:contain; padding:2px 2px 18px; scrollbar-width:thin; }
.review-card { flex:0 0 clamp(340px,36vw,430px); scroll-snap-align:start; }
@media (max-width:900px) { .quick-help-grid { grid-template-columns:1fr; } }
@media (max-width:600px) {
  .homepage-header::after { background:linear-gradient(180deg,rgba(49,64,71,.54) 0%,rgba(49,64,71,.72) 44%,rgba(49,64,71,.87) 100%); }
  .quick-help-band { padding-block:20px; }
  .quick-help-grid { gap:14px; }
  .quick-help-card { gap:22px; padding:24px 20px; border-radius:20px; }
  .quick-help-card h2 { font-size:1.48rem; }
  .quick-help-card p:not(.section-kicker) { font-size:16px; }
  .quick-help-card .button { width:100%; min-width:0; justify-content:space-between; }
  .home-guides-grid { grid-template-columns:1fr; }
  .home-guide-card:last-child { grid-column:auto; }
  .about { border-radius:22px; }
  .about-profile { border-radius:0; }
  .about-letter { width:100%; border-radius:0; }
  .review-grid { gap:12px; padding:2px 2px 16px; }
  .review-card { flex:0 0 min(82vw,320px); scroll-snap-align:start; padding:17px; }
  .review-card>p { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:8; font-size:14px; line-height:1.55; }
}

/* Stable full-desktop header alignment. */
@media (min-width:1121px) {
  .homepage-header .nav { display:grid; grid-template-columns:220px minmax(0,1fr); align-items:center; column-gap:clamp(28px,3vw,44px); }
  .homepage-header .brand { min-width:0; display:flex; align-items:center; }
  .homepage-header .brand img { width:220px !important; max-width:220px !important; }
  .homepage-header .navlinks { min-width:0; justify-content:flex-end; gap:clamp(12px,1.35vw,20px); font-size:13px; line-height:1; white-space:nowrap; }
  .homepage-header .navlinks>a:not(.button) { min-height:46px; display:inline-flex; align-items:center; }
  .homepage-header .navlinks .theme-toggle,.homepage-header .navlinks .button { flex:none; }
}
@media (min-width:1041px) and (max-width:1120px) {
  .navlinks { display:none; }
  .mobile-nav { display:block; }
}

/* Keep the off-canvas navigation independent from the hero color scheme. */
.homepage-header .mobile-sidebar { color:var(--ink); }
.homepage-header .mobile-sidebar .brand-logo-image { content:url("/tc-lockup-horizontal-color.png?v=128"); }
html[data-theme="dark"] .homepage-header .mobile-sidebar { color:var(--paper); }
html[data-theme="dark"] .homepage-header .mobile-sidebar .brand-logo-image { content:url("/tc-lockup-horizontal-on-charcoal.png?v=128"); }
.mobile-service-browser { scroll-margin-top:18px; }
