/* Content-level polish for the rebuilt Caymland site.
   The rocken kit stays untouched; these rules adapt our own content and the mobile header. */

.contact__icon svg,
.contact-info__icon svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* Service pages: three headline lines stay in their column */
.split-hero { grid-template-columns: minmax(0, 1.3fr) minmax(20rem, .7fr); gap: 4rem; }
.split-hero__title { font-size: 5.1rem; }
.split-hero__title .line:nth-child(2) { padding-left: 2.2rem; }
.split-hero__title .line:nth-child(3) { padding-left: 4.4rem; }

@media (max-width: 1199.98px) {
  .topbar { display: none; }
  .mainbar { height: 5.25rem; }
  .logo img { height: 2.6rem; }
  .page-hero { padding-top: 8.5rem; }
  .subpage .page-hero { padding-top: 8.5rem; }
  .split-hero { grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .85fr); }
  .split-hero__title { font-size: 4.4rem; }
}

@media (max-width: 991.98px) {
  .about { min-height: 0; }
  .orb-wrap { z-index: 0; }
  .split-hero__title { padding-left: 0; }
  .split-hero__title .line:nth-child(2), .split-hero__title .line:nth-child(3) { padding-left: 0; }
}

@media (max-width: 767.98px) {
  .nav .btn { display: none; }
  .nav { gap: 0; }
  .mainbar { height: 5rem; }
  .hero__title { font-size: 2.25rem; }
  .hero__body { bottom: 2.25rem; }
  .hero__sub { font-size: 1.05rem; margin-top: .65rem; }
  .about p { font-size: 1.1rem; line-height: 1.55; }
  .page-hero h1, .subpage .page-hero h1 { font-size: 2rem; }
  .faq-item summary { font-size: 1.05rem; }
  .faq-item p { padding-right: 1.5rem; font-size: .95rem; }
  .split-hero__title { font-size: 2.5rem; }
  .split-hero__copy p { font-size: 1rem; }
  .closing p { font-size: 1.6rem; }
  .legal-page .page-hero h1 { font-size: 2.1rem; overflow-wrap: anywhere; }
  .contact__photos { flex-wrap: wrap; }
  .contact__photos img:first-child { width: 9.5rem; height: auto; aspect-ratio: 11 / 14.8; }
  .contact__photos img:last-child { width: 6.5rem; height: auto; aspect-ratio: 1; }
  .contact__portrait { width: min(100%, 20rem); margin-left: auto; margin-right: auto; }
  .banner__photo img { height: 18rem; }
  .collage { grid-auto-rows: 8rem; }
  .platforms__head { display: block; }
  .platforms__head .tag { display: block; margin-bottom: 1rem; }
  .reviews .title { font-size: 2rem; }
  .review__quote { width: 4.25rem; height: auto; padding-top: 2.1rem; font-size: 4.5rem; }
  .review__author { padding: 1.1rem 1.2rem; }
  .review__author b { font-size: 1.05rem; }
  .review__author span { font-size: .85rem; line-height: 1.4; }
  .feedback__line { line-height: 1.4; }
}

@media (max-width: 575.98px) {
  .contact__portrait { width: min(100%, 18rem); }
  .about { padding-top: 2.5rem; padding-bottom: 3rem; }
  .footer { padding-top: 1.25rem; padding-bottom: 1.25rem; }
}

@media (max-width: 767.98px) {
  .collage-section__control { flex-direction: column; align-items: stretch; }
  .collage-section__control::before, .collage-section__control::after { display: none; }
  .collage-section__control .btn { justify-content: center; }
}

/* Content-image fitting: preserve the source image proportions inside the kit components. */
.svc img { width: auto; }
.contact__portrait { height: auto; }
.banner__cell--logo img { height: 4rem; width: auto; filter: brightness(0) invert(1); }

/* Keep the decorative contact star behind the headline, not behind the section background. */
@media (min-width: 992px) {
  .contact__star { z-index: 0; }
  .contact__head .title { position: relative; z-index: 1; }
}

/* Keep white text on the blue header action while the generic nav hover is active. */
.header .nav a.btn--blue:hover,
.header .nav a.btn--blue:focus-visible { color: #fff; }

/* Contact form label scale */
.form-field label { font-size: 1.25rem; }
@media (max-width: 767.98px) { .form-field label { font-size: 1.05rem; } }
