/* A&T section system: defined panels, aligned copy, and signal gold. */
.at-section {
  --section-border: #414141;
  background: #141414;
  color: #fff;
  border-top: 1px solid #343434;
  border-bottom: 0;
  padding-top: clamp(3.75rem, 6vw, 6rem);
  padding-bottom: clamp(3.75rem, 6vw, 6rem);
}
.at-section > *, .at-section article, .at-section li { min-width: 0; }
.at-section p { color: #ccc; font-size: 1rem; line-height: 1.75; }
.at-section h2 { font-size: clamp(2.5rem, 4.2vw, 4.25rem); line-height: 1.04; letter-spacing: -.015em; }
.at-section h2 em { color: var(--yellow); }
.at-section .eyebrow {
  display: flex;
  align-items: center;
  gap: .875rem;
  color: var(--yellow);
  font-size: .75rem;
  line-height: 1.6;
  margin: 0 0 1.25rem;
}
.at-section .eyebrow::before { content: ''; width: 2rem; height: 2px; background: currentColor; flex-shrink: 0; }
.at-section .section-heading { display: block; margin-bottom: 2.75rem; }
.at-section .section-heading > p { margin: 1.5rem 0 0; max-width: 43rem; font-size: 1rem; }
.at-section :is(a, summary):focus-visible { outline: 3px solid var(--yellow); outline-offset: 4px; }

/* Equipment: one specification panel with a shared status footer. */
.capabilities { background: #1b1b1b; }
.equipment-board { border: 1px solid var(--section-border); border-top: 3px solid var(--yellow); box-shadow: 0 16px 36px #0003; }
.capabilities .spec-grid { border: 0; background: transparent; }
.capabilities .spec-grid article { display: flex; flex-direction: column; padding: clamp(1.5rem, 2.4vw, 2.5rem); border-color: var(--section-border); background: linear-gradient(145deg, #292929, #202020); }
.capabilities .spec-label { color: #ffdf24; font-size: .75rem; line-height: 1.6; margin: 0 0 1.75rem; }
.capabilities .spec-grid h3 { min-height: 2.24em; font-size: clamp(1.875rem, 2.7vw, 2.5rem); line-height: 1.12; margin: 0 0 1.25rem; }
.capabilities .spec-grid p { font-size: 1rem; margin: 0; }
.capabilities .equipment-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.5rem; align-items: baseline; margin: 0; padding: 1.5rem clamp(1.5rem, 2.4vw, 2.5rem); border-top: 1px solid var(--section-border); background: #151515; font-size: .875rem; }
.equipment-note strong { color: var(--yellow); font-size: .75rem; letter-spacing: .08em; }
@supports (grid-template-rows: subgrid) {
  .capabilities .spec-grid article { display: grid; grid-template-rows: subgrid; grid-row: span 3; }
  .capabilities .spec-grid h3 { min-height: 0; }
}

/* Industries: six distinct categories on the same readable grid. */
.industries { display: block; background: #101010; }
.industries > div:first-child { max-width: 58rem; margin-bottom: 2.75rem; }
.industries .industry-intro { margin: 1.5rem 0 0; max-width: 43rem; }
.industries .industry-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.industries .industry-list article, .industries .industry-list article:first-child {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  column-gap: 1rem;
  align-content: start;
  padding: 1.75rem;
  border: 1px solid var(--section-border);
  border-top: 3px solid #a48d12;
  background: linear-gradient(145deg, #232323, #191919);
}
.industries .industry-list article > span { grid-row: 1 / span 2; display: flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; padding: 0; font-size: 1.5rem; font-weight: 700; background: var(--yellow); color: #111; }
.industries .industry-list h3 { font-size: 1.125rem; line-height: 1.5; margin: 0 0 .75rem; }
.industries .industry-list p { font-size: 1rem; margin: 0; }

/* Difference: the image and copy share a single frame and top edge. */
.difference { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 0; align-items: stretch; background: #1b1b1b; }
.difference .detail-photo { height: auto; min-height: 36rem; max-height: none; border: 1px solid var(--section-border); border-right: 0; border-top: 3px solid var(--yellow); }
.difference .detail-photo img { object-position: 50% center; }
.difference .photo-statement { left: 2rem; right: 2rem; bottom: 2rem; }
.difference .photo-statement strong { font-size: clamp(2rem, 3vw, 3rem); line-height: 1.08; }
.difference .difference-copy { padding: clamp(1.5rem, 3vw, 3rem); border: 1px solid var(--section-border); border-top: 3px solid var(--yellow); background: #191919; }
.difference h2 { font-size: clamp(2.25rem, 3.3vw, 3.5rem); }
.difference .section-intro { margin: 1.5rem 0 1.75rem; font-size: 1rem; }
.difference .value-list { border-top: 1px solid var(--section-border); }
.difference .value-list article { gap: 1rem; padding: 1.5rem 0; border: 0; border-bottom: 1px solid var(--section-border); }
.difference .value-list article:last-child { border-bottom: 0; padding-bottom: 0; }
.difference .value-list article > span { color: var(--yellow); font-size: 1.5rem; flex: 0 0 1.75rem; }
.difference .value-list h3 { font-size: 1rem; line-height: 1.5; }
.difference .value-list p { font-size: 1rem; }

/* Company: a joined story and company record, with named founder panels. */
.company { background: #101010; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 0; align-items: stretch; }
.company-story { padding: clamp(1.5rem, 3vw, 3rem); background: linear-gradient(145deg, #242424, #191919); border: 1px solid var(--section-border); border-top: 3px solid var(--yellow); }
.company h2 { font-size: clamp(2.25rem, 3.3vw, 3.5rem); }
.company .company-story > p:not(.eyebrow) { font-size: 1rem; max-width: 42rem; margin: 1.5rem 0 0; }
.company .founders { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; border: 0; margin-top: 2rem; padding: 0; }
.company .founders > div { border-left: 3px solid var(--yellow); background: #101010; padding: 1rem 1.25rem; }
.company .founders span { color: #bcbcbc; font-size: .75rem; line-height: 1.6; letter-spacing: .04em; }
.company .founders strong { font-size: 1.125rem; line-height: 1.5; margin-top: .5rem; }
.company .heritage-card { padding: clamp(1.5rem, 3vw, 3rem); border: 1px solid var(--section-border); border-left: 0; border-top: 3px solid var(--yellow); background: #151515; }
.company .heritage-top { font-size: .75rem; line-height: 1.6; border-color: var(--section-border); color: #ddd; }
.company .est-label { color: #bbb; font-size: .75rem; }
.company .est-year { font-size: clamp(6rem, 10vw, 10rem); }
.company .heritage-card > p { color: #fff; font-size: 1rem; }
.company .heritage-rule { background: var(--section-border); }
.company dl > div { font-size: .875rem; }
.company dt { color: #aaa; }
.company dd { color: #fff; }

/* Process: one continuous four-step panel. */
.process { background: #1b1b1b; }
.process .process-steps { gap: 0; margin: 0; border: 1px solid var(--section-border); border-top: 3px solid var(--yellow); box-shadow: 0 16px 36px #0003; }
.process .process-steps li { padding: 1.75rem; border: 0; border-right: 1px solid var(--section-border); background: linear-gradient(145deg, #282828, #202020); }
.process .process-steps li:last-child { border-right: 0; }
.process .process-steps li > span { display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; margin: 0 0 1.75rem; background: var(--yellow); color: #111; font-size: 1.75rem; font-weight: 700; }
.process .process-steps h3 { font-size: 1.125rem; min-height: 3em; line-height: 1.5; margin: 0 0 .75rem; }
.process .process-steps p { font-size: 1rem; margin: 0; }

/* FAQ: the heading and accordion use the full width together. */
.faq { display: block; background: #101010; }
.faq > div:first-child { margin-bottom: 2.75rem; }
.faq .faq-list { border: 1px solid var(--section-border); border-top: 3px solid var(--yellow); background: #1c1c1c; }
.faq .faq-list details { border: 0; border-bottom: 1px solid var(--section-border); }
.faq .faq-list details:last-child { border-bottom: 0; }
.faq .faq-list summary { padding: 1.5rem 1.75rem; gap: 1.5rem; align-items: center; font-size: 1rem; }
.faq .faq-list summary > span { display: inline-flex; justify-content: center; align-items: center; flex: 0 0 1.75rem; height: 1.75rem; border: 1px solid #79704a; color: var(--yellow); font-size: 1.375rem; }
.faq .faq-list summary:hover { background: #282828; }
.faq .faq-list details[open] { background: #252525; }
.faq .faq-list details[open] summary { color: var(--yellow); }
.faq .faq-list details > p { font-size: 1rem; max-width: 62rem; margin: 0; padding: 0 1.75rem 1.5rem; }

@media (max-width: 1100px) {
  .industries .industry-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .difference { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .company .founders { grid-template-columns: 1fr; }
  .process .process-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process .process-steps li:nth-child(2) { border-right: 0; }
  .process .process-steps li:nth-child(-n+2) { border-bottom: 1px solid var(--section-border); }
  .process .process-steps h3 { min-height: 0; }
}
@media (max-width: 800px) {
  .capabilities .spec-grid { grid-template-columns: 1fr; }
  .capabilities .spec-grid article { display: flex; grid-row: auto; border-right: 0; border-bottom: 1px solid var(--section-border); }
  .capabilities .spec-grid article:last-child { border-bottom: 0; }
  .capabilities .spec-grid h3 { min-height: 0; }
  .capabilities .equipment-note { grid-template-columns: 1fr; gap: .5rem; }
  .difference, .company { grid-template-columns: 1fr; }
  .difference .detail-photo { min-height: 25rem; height: 25rem; border-right: 1px solid var(--section-border); border-bottom: 0; }
  .difference .difference-copy { border-top: 1px solid var(--section-border); }
  .company .heritage-card { border-left: 1px solid var(--section-border); border-top: 0; }
  .company .est-year { font-size: 8rem; }
  .company .founders { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .at-section h2 { font-size: clamp(2rem, 8.5vw, 2.75rem); }
  .at-section .section-heading, .industries > div:first-child, .faq > div:first-child { margin-bottom: 2rem; }
  .industries .industry-list { grid-template-columns: 1fr; }
  .industries .industry-list article, .industries .industry-list article:first-child { padding: 1.5rem; }
  .company .founders, .process .process-steps { grid-template-columns: 1fr; }
  .process .process-steps li { border-right: 0; border-bottom: 1px solid var(--section-border); }
  .process .process-steps li:last-child { border-bottom: 0; }
  .faq .faq-list summary { padding: 1.25rem; }
  .faq .faq-list details > p { padding: 0 1.25rem 1.25rem; }
}

/* Contact uses the same charcoal surfaces; gold marks actions and small details. */
.contact {
  background: #101010;
  color: #f5f5f5;
  border-top: 1px solid #343434;
  padding-top: clamp(3.75rem, 6vw, 6rem);
  padding-bottom: clamp(3.75rem, 6vw, 6rem);
}
.contact > .eyebrow { display: flex; align-items: center; gap: .875rem; color: #ddc44b; font-size: .75rem; margin-bottom: 1.25rem; }
.contact > .eyebrow::before { content: ''; width: 2rem; height: 2px; flex-shrink: 0; background: currentColor; }
.contact .contact-heading { display: block; margin-bottom: 2.75rem; }
.contact h2 { font-size: clamp(2.5rem, 4.2vw, 4.25rem); line-height: 1.04; }
.contact h2 em { color: var(--yellow); }
.contact .contact-heading > p { color: #c5c5c5; font-size: 1rem; font-weight: 400; line-height: 1.75; margin: 1.5rem 0 0; max-width: 43rem; }
.contact .contact-grid { gap: 0; border: 1px solid #414141; padding: 0; background: #1a1a1a; }
.contact .contact-grid > div { min-width: 0; padding: clamp(1.5rem, 2.4vw, 2.5rem); }
.contact .contact-grid > div + div { border-left: 1px solid #414141; }
.contact .contact-label { color: #ddc44b; font-size: .75rem; line-height: 1.6; }
.contact .contact-grid strong { color: #f5f5f5; font-size: 1.125rem; line-height: 1.5; }
.contact .contact-grid p, .contact .contact-grid li { color: #c5c5c5; font-size: 1rem; line-height: 1.75; }
.contact .business-phone { color: #fff; font-size: clamp(2rem, 3vw, 2.625rem); }
.contact .business-email { color: #e5e5e5; border-bottom: 0; padding-bottom: 0; overflow-wrap: anywhere; max-width: 100%; }
.contact .business-contact a > span { color: #ddc44b; }
.contact .business-contact a:hover { color: var(--yellow); }
.contact .quote-form { background: linear-gradient(145deg, #232323, #191919); color: #f5f5f5; border: 1px solid #414141; padding: clamp(1.5rem, 3vw, 2.5rem); margin-top: 1.5rem; color-scheme: dark; }
.contact .quote-heading h3 { color: #fff; font-size: clamp(2rem, 3vw, 2.5rem); }
.contact .quote-heading p { color: #c5c5c5; font-size: 1rem; }
.contact .form-grid label { color: #e5e5e5; font-size: .875rem; }
.contact .form-grid label > span { color: #bcbcbc; }
.contact .form-grid input, .contact .form-grid textarea { background: #121212; color: #f5f5f5; border-color: #686868; color-scheme: dark; }
/* Keep the native iPhone date picker inside the same bounds as other fields. */
.contact .form-grid input[type="date"] {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 3.25rem;
}
.contact .form-grid input[type="date"]::-webkit-date-and-time-value { min-width: 0; text-align: left; }
.contact .form-grid input[type="date"]::-webkit-datetime-edit { padding: 0; }
.contact .form-grid input::placeholder, .contact .form-grid textarea::placeholder { color: #ababab; opacity: 1; }
.contact .form-grid input:focus-visible, .contact .form-grid textarea:focus-visible { outline: 2px solid #ddc44b; outline-offset: 2px; border-color: #ddc44b; }
.contact .form-actions { padding-top: 1.5rem; border-top: 1px solid #414141; }
.contact .form-actions .button.dark { background: var(--yellow); color: #111; border-color: var(--yellow); }
.contact .form-actions .button.dark:hover { background: #ffe64d; border-color: #ffe64d; }
.contact .form-actions p, .contact #quote-status { color: #c5c5c5; font-size: .875rem; }
.contact a:focus-visible, .contact button:focus-visible { outline: 2px solid var(--yellow); outline-offset: 4px; }
@media (max-width: 650px) {
  .contact .contact-grid { grid-template-columns: 1fr; }
  .contact .contact-grid > div + div { border-left: 0; border-top: 1px solid #414141; }
  .contact h2 { font-size: clamp(2rem, 8.5vw, 2.75rem); }
  .contact .contact-heading { margin-bottom: 2rem; }
  .contact .form-actions { align-items: stretch; flex-direction: column; gap: 1rem; }
}

/* Consistent headline bounds across every section. */
.title-lockup {
  display: grid;
  width: max-content;
  max-width: 100%;
  min-width: 0;
}
.title-lockup > :is(h1, h2) { min-width: 0; max-width: 100%; overflow-wrap: break-word; }
/* A quiet transition between the hero and service panels. */
.confidence-strip {
  background: #191919;
  color: #ededed;
  border-top: 1px solid #343434;
  border-bottom: 1px solid #343434;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.confidence-strip > div,
.confidence-strip > div:first-child,
.confidence-strip > div:last-child {
  justify-content: center;
  gap: 1rem;
  padding: .25rem 1.25rem;
  border: 0;
  border-right: 1px solid #414141;
  min-width: 0;
}
.confidence-strip > div:last-child { border-right: 0; }
.confidence-strip .strip-mark { flex-shrink: 0; color: #ddc44b; border-color: #ddc44b; font-size: 1.375rem; }
.confidence-strip strong { color: #ededed; font-size: .875rem; line-height: 1.5; }
@media (max-width: 650px) {
  .confidence-strip { padding-top: .5rem; padding-bottom: .5rem; }
  .confidence-strip > div,
  .confidence-strip > div:first-child,
  .confidence-strip > div:last-child {
    justify-content: flex-start;
    padding: 1rem 0;
    border-right: 0;
    border-bottom: 1px solid #414141;
  }
  .confidence-strip > div:last-child { border-bottom: 0; }
}

/* Vector arrows retain the site's colors instead of becoming mobile emoji. */
.link-arrow { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 1em; height: 1em; vertical-align: -.1em; line-height: 1; }
.link-arrow svg { display: block; width: 100%; height: 100%; }

/* Business review information lives with the founders and company facts. */
.company .company-records { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--section-border); scroll-margin-top: 120px; }
.company .company-records h3 { color: var(--yellow); font-family: var(--body); font-size: .75rem; line-height: 1.6; letter-spacing: .06em; margin: 0 0 .75rem; }
.company .company-records p { color: #c5c5c5; font-size: .875rem; line-height: 1.75; margin: 0; }
.company .heritage-card dl > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1rem; align-items: baseline; }
.company .heritage-card dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 400px) {
  .company .heritage-card dl > div { grid-template-columns: 1fr; gap: .25rem; }
  .company .heritage-card dd { text-align: left; }
}

/* Compact spacing after removing the section labels. */
.section { padding-top: clamp(3rem, 4.5vw, 4.5rem); padding-bottom: clamp(3rem, 4.5vw, 4.5rem); }
.section .section-heading, .industries > div:first-child, .faq > div:first-child, .contact .contact-heading { margin-bottom: 2rem; }
.at-section .section-heading > p, .industries .industry-intro, .company .company-story > p:not(.eyebrow), .contact .contact-heading > p { margin-top: 1.25rem; }
.difference .section-intro { margin: 1.25rem 0 1.5rem; }
.difference .value-list article { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.company .founders, .company .company-records { margin-top: 1.5rem; }
.premium-hero { min-height: clamp(32rem, calc(100svh - 12.5rem), 40rem); }
.premium-hero .hero-content { padding-top: clamp(2.5rem, 4vw, 4rem); padding-bottom: clamp(2.5rem, 4vw, 4rem); }
.premium-hero h1 { margin-bottom: 1.25rem; }
.premium-hero .hero-copy { margin-bottom: 1.5rem; }
@media (max-width: 650px) {
  .section { padding-top: 2.5rem; padding-bottom: 2.5rem; }
  .section .section-heading, .industries > div:first-child, .faq > div:first-child, .contact .contact-heading { margin-bottom: 1.5rem; }
  .premium-hero { min-height: 0; }
  .premium-hero .hero-content { padding-top: 2.5rem; padding-bottom: 2.5rem; }
}
