/* Landing-page improvements. The validated .quote-wizard and quote.css are
   deliberately excluded: no shared form typography or control rules here. */
.header .main-nav {
  gap: 26px;
}
.header .main-nav a {
  font-size: 15px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.header .header-actions {
  gap: 18px;
}
.header .language-switch {
  font-size: 14px;
}
.header .language-switch a {
  min-height: 44px;
}
.header .header-phone {
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  padding-block: 12px;
}
.header .header-phone:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.header .header-quote {
  font-size: 15px;
  gap: 14px;
}
.hero .eyebrow,
.products .eyebrow,
.why .eyebrow,
.process .eyebrow,
.work .eyebrow,
.faq .eyebrow {
  font-size: 14px;
  letter-spacing: 1.2px;
  line-height: 1.55;
}
.hero .hero-intro {
  font-size: 18px;
  line-height: 1.6;
}
.hero .hero-note,
.hero .visual-caption {
  font-size: 14px;
  line-height: 1.6;
}
.hero .hero-buttons .button,
.hero .hero-buttons .text-link {
  font-size: 16px;
}
.hero .hero-photo.photo-contain img {
  object-fit: contain;
}
.hero .hero-photo-frame {
  background: #f7f7f8;
}
.trust-strip .trust-inner p {
  font-size: 15px;
}
.products h2,
.why h2,
.process h2,
.work h2,
.faq h2 {
  font-size: clamp(30px, 3vw, 40px);
  line-height: 1.2;
  letter-spacing: -1.2px;
}
.products .section-intro,
.work .section-intro,
.faq .section-intro {
  font-size: 17px;
  line-height: 1.65;
  max-width: 450px;
}
.products .products-grid,
.work .work-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 32px 26px;
}
.products .product-card,
.work .project-card {
  grid-column: span 2;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.products .product-card {
  scroll-margin-top: 110px;
  border: 1px solid #e6e2df;
  border-radius: 5px;
  overflow: hidden;
  background: #fff;
}
.products .product-card:focus-visible {
  outline: 3px solid #8c211f;
  outline-offset: 5px;
}
.products .product-picture {
  height: auto;
  aspect-ratio: 4 / 3;
  background: #f7f7f8;
  border-radius: 0;
}
.products .product-photo {
  padding: 0;
}
.products .product-photo img {
  object-fit: contain;
  border-radius: 0;
}
.products .product-number {
  font-size: 14px;
  top: 12px;
  left: 14px;
  color: #514b4e;
  background: #fff;
  padding: 3px 8px;
}
.products .product-info {
  padding: 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.products .product-kind {
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 10px;
}
.products .product-info h3 {
  font-size: 21px;
  line-height: 1.4;
  margin: 0 0 12px;
  letter-spacing: -0.4px;
  overflow-wrap: break-word;
}
.products .product-info p {
  font-size: 16px;
  line-height: 1.65;
  max-width: none;
  color: #625d60;
  margin-bottom: 22px;
  flex: 1;
}
.products .product-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  font-size: 16px;
  font-weight: 650;
  line-height: 1.5;
}
.products .product-cta svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.products .product-card:hover .product-cta {
  color: #b51c1b;
}
.products .mockup-notice {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.6;
  margin-top: 24px;
}
.products .products-bottom,
.products .products-bottom .text-link {
  font-size: 16px;
  line-height: 1.6;
}
.why .why-grid {
  gap: 70px;
}
.why .why-intro > p:not(.eyebrow) {
  font-size: 17px;
  color: #dedadc;
  line-height: 1.65;
}
.why .eyebrow,
.why .benefit p {
  color: #dedadc;
}
.why .benefit-number {
  font-size: 15px;
}
.why .benefit h3 {
  font-size: 22px;
  line-height: 1.4;
}
.why .benefit p {
  font-size: 16px;
  line-height: 1.65;
  max-width: none;
}
.process .steps {
  gap: 40px;
}
.process .step-top > span {
  font-size: 40px;
  font-weight: 600;
}
.process .step h3 {
  font-size: 21px;
  line-height: 1.4;
}
.process .step p {
  font-size: 16px;
  line-height: 1.65;
}
.work {
  background: #f7f7f8;
  border-bottom: 1px solid #eeece8;
}
.work .project-card {
  background: #fff;
  border: 1px solid #e1ddda;
  border-radius: 5px;
  overflow: hidden;
}
.work .project-image {
  display: block;
  position: relative;
  flex: none;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  background: #eeedeb;
  overflow: hidden;
}
.work .project-image picture {
  position: absolute;
  inset: 0;
}
.work .project-image picture,
.work .project-image img {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  object-fit: contain;
}
.work .project-info {
  padding: 22px;
}
.work .project-info .project-type {
  font-size: 14px;
  color: #a62321;
  margin-bottom: 8px;
}
.work .project-info h3 {
  font-size: 21px;
  line-height: 1.4;
  margin-bottom: 12px;
}
.work .project-info p {
  font-size: 16px;
  line-height: 1.65;
  color: #625d60;
}
.work .projects-pending {
  font-size: 16px;
  line-height: 1.65;
  color: var(--muted);
  margin-bottom: 26px;
  max-width: 750px;
}
.work .project-placeholder {
  min-height: 190px;
  padding: 24px;
  background: #eeedeb;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1.5;
  text-align: center;
  color: #625d60;
}
.faq .faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 24px;
  align-items: start;
}
.faq .faq-item {
  border: 1px solid #d8d3cf;
  border-radius: 5px;
  background: #fff;
}
.faq .faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  cursor: pointer;
  padding: 22px;
  min-height: 80px;
}
.faq .faq-item summary::-webkit-details-marker {
  display: none;
}
.faq .faq-item summary h3 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.2px;
}
.faq .faq-item summary span {
  font-size: 24px;
  flex-shrink: 0;
}
.faq .faq-item[open] summary span {
  transform: rotate(45deg);
}
.faq .faq-item p {
  padding: 0 22px 24px;
  font-size: 16px;
  line-height: 1.65;
  color: #625d60;
}
.quote-intro .phone-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-height: 44px;
  margin-top: 12px;
  color: var(--dark);
  font-size: 18px;
  font-weight: 600;
}
.quote-intro .phone-link svg {
  width: 18px;
  height: 18px;
}
.footer .footer-top > div:first-child p {
  font-size: 16px;
  line-height: 1.65;
}
.footer .footer-links,
.footer .footer-links > span {
  font-size: 16px;
  line-height: 1.6;
}
.footer .footer-links {
  gap: 14px;
}
.footer .footer-links a {
  min-height: 44px;
}
.footer .footer-bottom {
  font-size: 14px;
  line-height: 1.6;
  padding-block: 24px;
}
.mobile-cta .mobile-call {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #cfc8c3;
  background: #fff;
  color: var(--dark);
  border-radius: 3px;
  min-height: 50px;
  padding: 12px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}
@media (min-width: 1101px) {
  .products .product-card:nth-last-child(2):nth-child(3n + 1),
  .work .project-card:nth-last-child(2):nth-child(3n + 1) {
    grid-column: 2 / span 2;
  }
  .products .product-card:last-child:nth-child(3n + 2),
  .work .project-card:last-child:nth-child(3n + 2) {
    grid-column: 4 / span 2;
  }
}
@media (max-width: 1280px) {
  .header .main-nav {
    gap: 16px;
  }
  .header .header-actions {
    gap: 12px;
  }
  .header .header-phone {
    display: none;
  }
}
@media (min-width: 681px) and (max-width: 1100px) {
  .products .products-grid,
  .work .work-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 28px 22px;
  }
  .products .product-card:last-child:nth-child(2n + 1),
  .work .project-card:last-child:nth-child(2n + 1) {
    grid-column: 2 / span 2;
  }
}
@media (min-width: 681px) {
  .work .work-grid:has(.pending-project) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 960px) {
  .header .main-nav {
    display: none;
  }
  .header .main-nav.is-open {
    display: flex;
  }
  .header .main-nav.is-open a {
    font-size: 18px;
    min-height: 48px;
  }
  .why .why-grid {
    gap: 45px;
  }
  .process .steps {
    gap: 24px;
  }
}
@media (max-width: 700px) {
  .header .header-actions {
    gap: 12px;
  }
  .header .header-phone {
    display: none;
  }
  .hero .hero-intro {
    font-size: 17px;
  }
  .hero .hero-note,
  .hero .visual-caption {
    max-width: none;
    font-size: 14px;
  }
  .hero .hero-buttons {
    flex-wrap: wrap;
  }
  .products .section-heading,
  .work .section-heading,
  .faq .section-heading {
    gap: 20px;
  }
  .products .products-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
  }
  .why .why-grid,
  .process .steps,
  .faq .faq-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .process .steps {
    gap: 32px;
  }
  .process .step p {
    max-width: none;
  }
  .why .benefit p,
  .why .why-intro > p:not(.eyebrow) {
    font-size: 16px;
  }
  .footer .footer-links {
    gap: 10px;
  }
  .footer .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 14px;
  }
  .mobile-cta {
    gap: 10px;
  }
  .mobile-cta .button {
    flex: 1;
    width: auto;
    font-size: 15px;
    gap: 8px;
    padding-inline: 12px;
  }
}
@media (max-width: 680px) {
  .products .products-grid,
  .work .work-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }
  .products .product-card,
  .work .project-card {
    grid-column: auto;
  }
  .products .product-info,
  .work .project-info {
    padding: 20px;
  }
}
@media (max-width: 375px) {
  .mobile-cta .button svg {
    display: none;
  }
}
