/* Homepage refinements requested for the Cau 6 showcase. */
:root { --card-radius: 12px; }

/* Keep the construction visual language consistent across interactive surfaces. */
:is(.stats, .vision-card, .project-card, .strength, .certificate-card, .news-card, .partner-logo, .footer-address) {
  border-radius: var(--card-radius);
}

:is(.header-cta, .primary-btn, .cta-button, .form-submit, .footer-contact-button) {
  border-radius: var(--card-radius);
}

:is(.form-field input, .form-field select, .form-field textarea) { border-radius: var(--card-radius); }

/* Scale the banner copy down 15% and keep a measured text column over the bridge. */
.hero-copy { width: min(560px, 50%); padding-left: 24px; }
.hero h1 { max-width: 520px; font-size: clamp(1.87rem, 2.93vw, 2.93rem); line-height: 1.08; }
.hero p { max-width: 440px; font-size: clamp(1.1rem, 1.44vw, 1.3rem); line-height: 1.65; }

.stat span { font-size: calc(.75rem - 1px); line-height: 1.4; }

/* Three equal project cards keep the section direct and easy to scan. */
.projects { padding: 66px 0 78px; background: #fff; }
.projects-heading .section-title { margin: 0; color: var(--navy); text-wrap: balance; }
.project-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: none;
  gap: 18px;
}
.project-card { display: flex; min-width: 0; flex-direction: column; }
.project-card:first-child { grid-row: auto; }
.project-card .project-image,
.project-card:first-child .project-image,
.project-card:not(:first-child) .project-image { flex: none; min-height: 0; aspect-ratio: 1.45; }
.project-card .project-body,
.project-card:first-child .project-body,
.project-card:not(:first-child) .project-body { flex: 1; min-height: 92px; padding: 17px 16px 18px; }

/* Editorial news grid: one lead story and two supporting stories at the same total height. */
.home-news { padding: 76px 0 82px; background: #fff; }
.home-news .text-link::after { display: none; }
.news-grid {
  grid-template-columns: minmax(0, 1.55fr) minmax(290px, .85fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  min-height: 540px;
  gap: 16px;
}
.news-card { min-height: 0; border: 0; background: var(--navy); }
.news-card:first-child { grid-row: 1 / -1; }
.news-card > a { position: relative; display: block; height: 100%; min-height: 0; overflow: hidden; }
.news-card > a::after { content: ""; position: absolute; inset: 28% 0 0; z-index: 1; background: linear-gradient(180deg, transparent, rgba(4, 28, 57, .9)); pointer-events: none; }
.news-card-image,
.news-card:first-child .news-card-image { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
.news-card-image img { width: 100%; height: 100%; object-fit: cover; }
.news-card-body { position: absolute; right: 0; bottom: 0; left: 0; z-index: 2; padding: 24px 25px 25px; }
.news-card:not(:first-child) .news-card-body { padding: 18px 19px 19px; }
.news-date { color: #f1bd53; }
.news-card h3,
.news-card:first-child h3 { color: #fff; font-size: 1rem; line-height: 1.45; text-wrap: balance; }
.news-card:first-child h3 { max-width: 32ch; font-size: clamp(1.15rem, 1.8vw, 1.55rem); }
.news-card p,
.news-read-more { display: none !important; }

/* Long process labels stay legible without breaking the six-step rhythm. */
.process-step h3 { font-size: .68rem; line-height: 1.45; }

/* Contact is intentionally compact and lives with the footer navigation. */
.footer { scroll-margin-top: 84px; }
.footer-address { padding: 18px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.1); }
.footer-address h3 { margin-top: 0; }
.footer-hours { color: #9eacc0; }
.footer-contact-button { display: inline-flex; align-items: center; gap: 12px; margin-top: 4px; padding: 11px 14px; color: #082d5d; background: #f5a623; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.footer-contact-button span { font-size: 1rem; line-height: 1; }

@media (max-width: 880px) {
  .news-grid { grid-template-columns: minmax(0, 1.35fr) minmax(240px, .9fr); min-height: 470px; }
  .project-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: auto; }
  .project-card:first-child { grid-row: auto; }
  .project-card:first-child .project-image,
  .project-card:not(:first-child) .project-image { min-height: 0; aspect-ratio: 1.45; }
}

@media (max-width: 600px) {
  .projects { padding: 54px 0 62px; }
  .news-grid { grid-template-columns: 1fr; grid-template-rows: none; min-height: 0; gap: 12px; }
  .news-card,
  .news-card:first-child { grid-row: auto; min-height: 245px; }
  .news-card:first-child { min-height: 330px; }
  .news-card-body,
  .news-card:not(:first-child) .news-card-body { padding: 18px 17px 19px; }
  .news-card:first-child h3 { font-size: 1.08rem; }

  .certificate-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(250px, 82vw);
    gap: 14px;
    margin-inline: -15px;
    padding: 2px 15px 16px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: 15px;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .certificate-grid::-webkit-scrollbar { display: none; }
  .certificate-card { scroll-snap-align: start; }

  .hero-copy { width: min(315px, 90%); padding-left: 16px; }
  .hero h1 { max-width: 290px; font-size: clamp(1.46rem, 6.7vw, 1.7rem); }
  .hero p { max-width: 280px; font-size: .7rem; line-height: 1.58; }
  .project-grid { grid-template-columns: 1fr; }
  .project-card:first-child .project-image,
  .project-card:not(:first-child) .project-image { aspect-ratio: 1.45; }
  .footer-address { padding: 16px; }
}
