/* The approved layouts stay in place; this sheet adds the requested TrueWing polish. */
.business-hours { display: grid; gap: 2px; margin-top: 10px; line-height: 1.5; }
.business-hours strong { color: #dce9f7; font-weight: 600; }
.business-hours .hours-zone { opacity: .85; }
.footer-contact a[href^="mailto:"] { overflow-wrap: anywhere; }

/* Preserve the footprint of intrinsic buttons after removing their arrow. */
.btn { padding-inline: calc(23px + .55em + 6px); }
.btn::after,
.text-link[data-estimate]::after,
a[href^="tel:"]::after { content: none; }
.btn:hover { background: #034fc8; box-shadow: 0 5px 13px #075ee820; }
.header .btn { padding-inline: calc(22px + .55em + 6px); }

.header-row { min-height: 88px; gap: 28px; }
.header-actions { gap: 27px; }
.brand { padding-block: 5px; }
.phone { white-space: nowrap; font-variant-numeric: tabular-nums; }
.phone svg { flex-shrink: 0; }
.nav a { position: relative; }
.nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -5px; height: 1px; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .16s ease; }
.nav a:hover::after,.nav a:focus-visible::after { transform: scaleX(1); }

/* Directional shading stays behind the copy and clears early enough to reveal the home. */
.hero-overlay { background: linear-gradient(90deg,#062349f6 0%,#062349ed 21%,#062349cf 34%,#06234982 46%,#0623492b 56%,#06234900 67%); }
.hero-message > p { max-width: 490px; }
.hero h1 { margin-bottom: 23px; }
body:not(.destination-page) .hero h1 span { display: block; white-space: nowrap; }
.rating-placeholder { gap: 14px; margin-top: 28px; }
.rating-copy { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rating-placeholder p { color: #fff; font-size: .9375rem; font-weight: 700; line-height: 1.4; }
.rating-stars { color: #ffc928; font-size: 1.125rem; line-height: 1; letter-spacing: .08em; white-space: nowrap; }
.google-g { display: block; flex-shrink: 0; width: 24px; height: 25px; object-fit: contain; border: 0; border-radius: 0; background: transparent; }
.rating-placeholder .google-g { width: 30px; height: 31px; }

/* One eyebrow scale, with the existing light blue for readable text on navy. */
.destination-page .destination-eyebrow { color: var(--blue); font-size: .8125rem; font-weight: 650; line-height: 1.5; letter-spacing: .13em; margin: 0 0 12px; }
.destination-page .destination-hero .destination-eyebrow,
.destination-page .destination-process .destination-eyebrow,
.destination-page .destination-final .destination-eyebrow { color: var(--sky); margin-bottom: 12px; }
.destination-page .destination-hero-copy { max-width: 560px; }
.destination-page .destination-prose { max-width: 860px; }
.destination-page .destination-section--services .destination-prose { max-width: none; }

/* White editorial service presentation, with consistently proportioned imagery. */
.services { background: #fff; padding-top: 42px; padding-bottom: 48px; }
.services h2 { margin-bottom: 30px; }
.services h2::before { content: ''; display: block; width: 30px; height: 2px; margin: 0 auto 15px; background: var(--blue); }
.service-grid { gap: 36px; }
.service-photo { display: block; width: 100%; height: auto; aspect-ratio: 2.15; margin-bottom: 15px; }
.service-photo img { transition: transform .24s ease; }
.service-image-1 { object-position: 58% 30%; }
.service-image-2 { object-position: 80% 28%; }
.service-image-3 { object-position: 66% 60%; }
.service h3 { font-size: 1.34rem; line-height: 1.16; margin-bottom: 11px; }
.service p { max-width: 37ch; line-height: 1.55; }
.service > .text-link,.destination-links .text-link { background-image: linear-gradient(currentColor,currentColor); background-position: left bottom; background-size: 0 1px; background-repeat: no-repeat; transition: background-size .16s ease; }
.service > .text-link:hover,.destination-links .text-link:hover { text-decoration: none; background-size: 100% 1px; }

/* The two navy sections carry the only abstract wing line motifs on the homepage. */
.process { position: relative; isolation: isolate; overflow: hidden; padding-block: 38px; }
.process::before,.final::before { content: ''; position: absolute; width: 450px; height: 193px; right: -34px; bottom: -13px; background: url('/assets/truewing-lines.svg') center / contain no-repeat; opacity: .075; pointer-events: none; z-index: 0; }
.process > .wrap,.final > .wrap { position: relative; z-index: 1; }
.process-grid { gap: 44px; }
.steps { gap: 32px; }
.steps li { grid-template-columns: 26px minmax(0,1fr); gap: 16px; }
.step-number { font-size: 2rem; color: var(--sky); font-variant-numeric: tabular-nums; padding-top: 0; }
.steps h3 { max-width: 23ch; line-height: 1.35; }
.steps p { max-width: 30ch; line-height: 1.55; }

.why h2 { margin-bottom: 31px; }
.why-list { gap: 34px 30px; }
.why-item { gap: 16px; }
.why-photo img { object-position: 67% center; }
.feature-mark { width: 19px; height: 21px; border: 0; border-radius: 0; background: none; margin-top: 0; }
.feature-mark::after { width: 12px; height: 6px; left: 3px; top: 6px; border-left: 1.5px solid var(--blue); border-bottom: 1.5px solid var(--blue); }
.why-item p { line-height: 1.55; }

.project-photo { height: auto; aspect-ratio: 2.18; }
.project-image-1 { object-position: 65% 54%; }
.project-image-2 { object-position: center 29%; }
.photo-placeholder { padding: 8px 12px; background: #062349eb; }
.project-info { padding-top: 18px; }
.project-info h3 { margin-bottom: 16px; }

.reviews { background: var(--pale); padding-block: 30px 35px; }
.reviews-top { margin-bottom: 23px; }
.review { padding: 25px; gap: 16px; border: 1px solid var(--line); border-radius: 6px; box-shadow: none; }
.review .google-g { width: 22px; height: 23px; margin-top: 2px; }
.review blockquote { line-height: 1.55; }

.education { padding-block: 40px; }
.education-layout { grid-template-columns: 230px minmax(0,1fr); gap: 38px; }
.education-grid { gap: 32px; }
.education-item { grid-template-columns: 130px minmax(0,1fr); gap: 19px; }
.education-item > img { height: 194px; object-position: 43% 24%; }
.education-item > img.size-image { object-position: 77% 29%; }
.education h3 { line-height: 1.35; }
.education p { line-height: 1.55; }

.faq details { border-color: var(--line); box-shadow: none; }
.faq summary { padding: 15px 39px 15px 18px; transition: color .14s ease,background-color .14s ease; }
.faq summary::after { width: 20px; right: 12px; top: 50%; transform: translateY(-50%); text-align: center; font-size: 1.125rem; line-height: 1; }
.faq summary:hover { color: var(--blue); background: var(--pale); }
.faq details p { padding-inline: 18px; padding-bottom: 18px; }

.final::after { background: linear-gradient(90deg,#062349f5 0%,#062349e8 40%,#062349c9 73%,#062349bc 100%); }
.final::before { width: 430px; height: 185px; opacity: .06; right: 5%; bottom: -12px; }
.final-background { object-position: center 49%; }

.opening-card:not(:has(.confirmation)) { padding: 28px 30px 21px; border-color: var(--line); box-shadow: 0 12px 32px #0623491a; }
.estimate-form { gap: 18px; }
.estimate-form .field { gap: 8px; }
.estimate-form .field label { line-height: 1.4; }
.estimate-form .field input { height: 46px; padding: 11px 13px; border-color: #cbd9e8; transition: border-color .14s ease; }
.estimate-form .field input:focus { border-color: var(--blue); outline: 2px solid var(--blue); outline-offset: 2px; }
.destination-page .destination-availability .destination-estimate-card:not(:has(.confirmation)) { background: #fff; border: 1px solid var(--line); }
.destination-page .destination-benefits h3 { line-height: 1.2; }

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .service-photo:hover img,.service-photo:focus-visible img { transform: scale(1.025); }
  .service-photo:hover .service-image-2,.service-photo:focus-visible .service-image-2 { transform: scale(1.685); }
}
@media (max-width: 1200px) {
  .header-row { gap: 20px; }
  .header-actions { gap: 20px; }
  .education-layout { grid-template-columns: 210px minmax(0,1fr); gap: 28px; }
  .education-item { grid-template-columns: 103px minmax(0,1fr); gap: 16px; }
}
@media (max-width: 1280px) {
  .hero-overlay { background: linear-gradient(90deg,#062349f6 0%,#062349ec 25%,#062349ca 40%,#06234978 53%,#06234924 64%,#06234900 75%); }
}
@media (max-width: 980px) {
  .header .btn { padding-inline: calc(18px + .55em + 6px); }
  .service-grid { gap: 25px; }
  .service h3 { font-size: 1.23rem; }
  .why-list { gap: 26px; }
  .review { padding: 20px; gap: 12px; }
  .education-layout { grid-template-columns: 1fr; gap: 26px; }
  .education-item { grid-template-columns: 115px minmax(0,1fr); }
  .steps { gap: 26px; }
}
@media (max-width: 720px) {
  .header-row { min-height: 79px; gap: 14px; }
  .header-actions { gap: 19px; }
  .brand { padding-block: 4px; }
  .nav a::after { left: 0; right: auto; bottom: 7px; width: 24px; }
  .hero-overlay { background: linear-gradient(90deg,#062349f3 0%,#062349e3 46%,#0623499e 74%,#0623494d 100%); }
  .hero-message > p { max-width: 490px; }
  .rating-placeholder { gap: 14px; margin-top: 25px; }
  .rating-placeholder p { font-size: .875rem; }
  .rating-copy { gap: 8px 10px; }
  .rating-stars { font-size: 1rem; }
  .services { padding-block: 38px 41px; }
  .services h2::before { margin-left: 0; }
  .service-grid { gap: 33px; }
  .service-photo { aspect-ratio: 1.9; }
  .service h3 { font-size: 1.4rem; }
  .service p { max-width: 42ch; }
  .process { padding-block: 35px; }
  .process-grid { gap: 27px; }
  .process::before,.final::before { width: 300px; height: 129px; right: -20px; opacity: .055; }
  .steps { gap: 27px; }
  .steps li { grid-template-columns: 26px minmax(0,1fr); gap: 18px; }
  .steps h3,.steps p { max-width: none; }
  .why-list { gap: 27px; }
  .project-photo { aspect-ratio: 1.65; }
  .review { padding: 23px; gap: 15px; }
  .education { padding-block: 38px; }
  .education-grid { gap: 30px; }
  .education-item { grid-template-columns: 98px minmax(0,1fr); gap: 18px; }
  .education-item > img { height: 163px; }
  .faq summary { padding-block: 16px; }
  .final::after { background: linear-gradient(110deg,#062349f2 0%,#062349df 55%,#062349ce 100%); }
  .opening-card:not(:has(.confirmation)) { padding: 25px 23px; }
  .estimate-form { gap: 18px; }
  .estimate-form .field input { height: 48px; }
}
@media (max-width: 360px) {
  .education-item { grid-template-columns: 1fr; }
  .education-item > img { width: 100%; height: 145px; object-position: center 28%; }
}
.estimate-response {
  display: block;
  margin: 0 0 8px;
  color: var(--blue);
  font-size: .9375rem;
  font-weight: 700;
  line-height: 1.4;
}
