/* RFC V2 | Shared public-site visual consistency | 2026-09-19
   Non-destructive presentation layer: no routes, content, form fields or data changes.
   Hero rules scoped to Home; common heading rules do not target Services or Projects' bespoke heroes. */
:root { --rfc-site-ink:#262262; --rfc-site-accent:#00aeef; --rfc-site-stroke:#e5e8f2; }
main { min-width:0; }
main :where(.wrap,.split,.detail-grid,.cards,.card,.card-body,.form-panel,.search-group) { min-width:0; }
main :where(h1,h2,h3,p,a,dd) { overflow-wrap:break-word; }
/* Home: restore a comfortably sized first fold without changing carousel data or actions. */
main .hero.hero--carousel { padding-block:clamp(28px,3.3vw,48px) clamp(32px,4vw,56px); }
main .hero.hero--carousel .hero-grid { gap:clamp(24px,3.4vw,48px); }
main .hero.hero--carousel .hero-copy h1 { max-width:760px; font-size:clamp(2.35rem,4.25vw,4.35rem); line-height:1.1; }
main .hero.hero--carousel .hero-copy > p { max-width:650px; }
main .hero.hero--carousel .hero-visual { min-width:0; min-height:0; }
main .hero.hero--carousel .hero-note { margin-top:22px; padding-top:16px; }
main .home-services-v2, main .home-projects-v2 { padding-block:clamp(44px,5.2vw,70px); }
main .home-about-v2 { padding-block:clamp(42px,4.8vw,64px); }
/* News, products, contact, quote, search, certificate verification and ordinary detail pages. */
main .page-heading:not(.service-page-heading) { padding-block:clamp(30px,4.3vw,56px); }
main .page-heading:not(.service-page-heading) .eyebrow { margin-bottom:12px; }
main .page-heading:not(.service-page-heading) h1 { max-width:1000px; margin:0; font-size:clamp(2.3rem,4.05vw,4.05rem); line-height:1.12; }
main .page-heading:not(.service-page-heading) p { max-width:72ch; margin:16px 0 0; font-size:clamp(1rem,1.3vw,1.13rem); line-height:1.65; }
main .detail-grid { gap:clamp(24px,4vw,60px); }
main .detail-grid > * { min-width:0; }
main .detail-grid .gallery img { border-radius:12px; }
main .detail-grid .prose { max-width:75ch; }
main .form-panel { border-radius:14px; }
main .form-panel :is(input,textarea,select) { min-width:0; max-width:100%; }
main .form-panel .button { max-width:100%; }
main .search-form .actions { gap:12px; }
main .search-form input { min-width:0; }
main .search-group { margin-block:32px; }
main .cards > * { min-width:0; }
main .cards .card-image { overflow:hidden; }
main .cards .card-image img { width:100%; object-fit:cover; }
main .cards .card-body { min-width:0; }
main .contact-split > * { min-width:0; }
main .contact-map-frame { width:100%; max-width:100%; }
/* Respect existing Arabic typesetting while keeping titles proportionate. */
html[dir="rtl"] main .page-heading:not(.service-page-heading) h1,
html[dir="rtl"] main .hero.hero--carousel .hero-copy h1 { letter-spacing:0; line-height:1.34; }
@media (max-width:1024px) {
  main .hero.hero--carousel .hero-copy h1 { font-size:clamp(2.25rem,4.7vw,3.75rem); }
}
@media (max-width:700px) {
  main .hero.hero--carousel { padding-block:28px 32px; }
  main .hero.hero--carousel .hero-grid { gap:26px; grid-template-columns:minmax(0,1fr); }
  main .hero.hero--carousel .hero-copy h1 { font-size:clamp(2.15rem,9.1vw,3.15rem); }
  main .hero.hero--carousel .hero-visual { min-height:0; }
  main .hero.hero--carousel .hero-note { margin-top:18px; }
  main .page-heading:not(.service-page-heading) { padding-block:28px 32px; }
  main .page-heading:not(.service-page-heading) h1 { font-size:clamp(2.1rem,8.5vw,3rem); }
  main .home-services-v2,main .home-projects-v2,main .home-about-v2 { padding-block:40px 44px; }
  main .form-panel { padding:20px; }
  main .search-form .actions { align-items:stretch; }
  main .search-form .actions input, main .search-form .actions .button { width:100%; }
}
@media (prefers-reduced-motion:reduce) { main .cards .card-image img { transition:none; } }
