/* Global responsive hardening for the public website. Keep layout content inside the viewport. */
*, *::before, *::after { box-sizing: border-box; }
html { max-width: 100%; overflow-x: clip; }
body.site-body { width: 100%; max-width: 100%; overflow-x: clip; }
main, header, footer, section, nav, form, figure, picture { min-width: 0; }
img, svg, video, canvas, iframe { max-width: 100%; }
img { height: auto; }
.container { width: min(var(--container,1280px), calc(100% - 64px)); }
.hero-grid > *, .intro-grid > *, .about-story-grid > *, .page-hero-grid > *, .service-detail-hero-grid > *, .contact-grid > *, .footer-main > *, .portfolio-index-row > * { min-width: 0; }
.hero-copy h1, .page-hero h1, .about-story-copy h2, .project-detail-heading h1, .section-heading-row h2 { max-width: 100%; overflow-wrap: anywhere; }
.hero-visual, .intro-visual, .about-story-visual, .service-row-placeholder, .service-detail-placeholder, .project-cover-stage, .project-gallery-image-stage { min-width: 0; max-width: 100%; }
.hero-cms-picture, .hero-cms-image { display: block; width: 100%; max-width: 100%; }
.hero-cms-image { height: 100%; object-fit: cover; }
.about-story-visual > img, .intro-visual > img, .service-row-placeholder > img, .service-detail-placeholder > img { display: block; width: 100%; height: auto; object-fit: cover; }
.portfolio-category-rail { min-width: 0; }
.portfolio-categories { min-width: 0; max-width: 100%; overscroll-behavior-inline: contain; }
.portfolio-index-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(310px, 410px); align-items: start; gap: 24px; }
.portfolio-index-title { min-width: 0; }
.portfolio-index-side { display: flex; min-width: 0; align-items: flex-start; justify-content: flex-end; gap: 22px; }
.portfolio-index-meta { flex: 0 0 auto; order: 2; margin-top: 1px; }
.portfolio-search-premium.portfolio-search-inline { width: min(100%,340px); min-width: 0; flex: 1 1 auto; margin: 0; }
.portfolio-search-premium.portfolio-search-inline label { max-width: 52%; white-space: normal; }
.portfolio-search-premium.portfolio-search-inline > div { flex: 1 1 120px; }
.portfolio-search-premium.portfolio-search-inline input { width: 100%; }
.project-gallery-grid, .portfolio-gallery-grid, .project-editorial-grid, .related-project-grid { min-width: 0; }
.project-cover-stage > img, .project-gallery-image-stage img { display: block; max-width: 100%; object-fit: contain; }
.project-gallery-item, .project-gallery-open, .project-gallery-image-stage { min-width: 0; max-width: 100%; }
.project-lightbox { max-width: calc(100vw - 24px); }
.whatsapp-float.whatsapp-float--icon { width: 56px; min-width: 56px; height: 56px; min-height: 56px; align-items: center; justify-content: center; padding: 0; border-radius: 50%; }
.whatsapp-float.whatsapp-float--icon .whatsapp-mark { width: 29px; height: 29px; }
.whatsapp-float.whatsapp-float--icon:focus-visible { outline: 3px solid rgba(18,140,75,.28); outline-offset: 3px; }
.footer-whatsapp-link { display: inline-flex; max-width: 100%; align-items: center; gap: 9px; overflow-wrap: anywhere; }
.footer-whatsapp-link .whatsapp-mark { flex: 0 0 19px; width: 19px; height: 19px; }

@media (max-width: 1100px) {
  .container { width: min(var(--container,1280px), calc(100% - 48px)); }
  .hero-grid { grid-template-columns: minmax(0,1fr) minmax(0,.92fr); gap: clamp(22px,4vw,42px); }
  .hero-visual { padding-right: 22px; }
}

@media (max-width: 820px) {
  .container { width: calc(100% - 44px); }
  .hero-grid { grid-template-columns: minmax(0,1fr); width: min(100% - 44px,var(--container,1280px)); }
  .hero-copy { width: 100%; max-width: 100%; }
  .hero-copy h1 { width: 100%; max-width: 100%; font-size: clamp(38px,7.9vw,62px); line-height: 1.04; letter-spacing: -.06em; overflow-wrap: break-word; }
  .hero-visual { width: 100%; max-width: 100%; padding-right: 25px; overflow: visible; }
  .hero-cms-picture { width: 100%; }
  .hero-cms-image { width: 100%; max-height: 460px; }
  .portfolio-index-row { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .portfolio-index-side { justify-content: space-between; align-items: center; }
  .portfolio-search-premium.portfolio-search-inline { width: min(100%, 430px); }
  .project-detail-heading, .project-detail-toolbar { min-width: 0; }
  .project-cover-stage { width: 100%; min-width: 0; }
  .project-cover-stage > img { width: 100%; height: auto; max-height: 640px; }
  .project-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .project-gallery-item, .project-gallery-item.is-landscape, .project-gallery-item.is-portrait, .project-gallery-item.is-square { grid-column: span 1; }
  .project-gallery-image-stage img { width: 100%; height: auto; max-height: 560px; }
  .service-detail-row { min-width: 0; }
  .footer-main { min-width: 0; }
}

@media (max-width: 560px) {
  .container { width: calc(100% - 36px); }
  .topline-inner { min-width: 0; }
  .header-inner { width: calc(100% - 32px); gap: 12px; }
  .brand { min-width: 0; }
  .primary-navigation { right: 0; left: 0; max-width: 100vw; }
  .hero-section { padding-top: 20px; }
  .hero-grid { width: calc(100% - 36px); gap: 20px; }
  .hero-copy { padding-block: 19px 10px; }
  .hero-copy h1 { margin-top: 15px; font-size: clamp(33px,9.5vw,47px); line-height: 1.06; letter-spacing: -.058em; }
  .hero-description { max-width: 100%; font-size: 12px; line-height: 1.8; }
  .hero-actions { max-width: 100%; }
  .hero-footnote { flex-wrap: wrap; }
  .hero-visual { padding-right: 0; padding-bottom: 21px; }
  .media-placeholder--hero { width: 100%; min-height: 0; height: auto; aspect-ratio: 1.22 / 1; }
  .hero-cms-image { height: auto; max-height: 340px; aspect-ratio: 1.22 / 1; object-fit: cover; }
  .hero-side-note { right: 4px; writing-mode: vertical-rl; }
  .hero-stamp { left: 6px; bottom: 0; }
  .hero-bottom { flex-wrap: wrap; }
  .section-heading-row { gap: 15px; }
  .section-heading-row h2 { font-size: clamp(31px,9vw,42px); }
  .intro-grid, .about-story-grid { min-width: 0; }
  .intro-visual, .about-story-visual { max-width: 100%; }
  .service-row { grid-template-columns: 25px minmax(0,1fr) 24px; }
  .service-row h3 { overflow-wrap: anywhere; }
  .service-detail-row { grid-template-columns: 25px minmax(0,1fr); gap: 12px; }
  .service-row-placeholder { grid-column: 2; width: 100%; margin-top: 5px; }
  .service-detail-placeholder { grid-column: 1 / -1; width: 100%; }
  .portfolio-category-rail { align-items: flex-start; flex-direction: column; gap: 8px; }
  .portfolio-categories { width: 100%; max-width: 100%; padding-bottom: 7px; }
  .portfolio-index-row { gap: 12px; padding-top: 20px; }
  .portfolio-index-row h1 { font-size: clamp(28px,8.4vw,35px); overflow-wrap: normal; }
  .portfolio-index-side { width: 100%; flex-wrap: wrap; gap: 12px; }
  .portfolio-index-meta { margin-left: auto; }
  .portfolio-search-premium.portfolio-search-inline { width: 100%; flex: 1 1 100%; order: 2; }
  .portfolio-search-premium.portfolio-search-inline label { max-width: 45%; font-size: 8px; }
  .portfolio-search-premium.portfolio-search-inline input { width: 100%; min-width: 0; }
  .portfolio-gallery-grid { grid-template-columns: minmax(0,1fr); }
  .project-card--gallery { grid-column: 1 !important; margin-top: 0 !important; }
  .project-gallery-item, .project-gallery-item.is-landscape, .project-gallery-item.is-portrait, .project-gallery-item.is-square { grid-column: 1 !important; }
  .project-detail-heading { min-width: 0; }
  .project-detail-heading h1 { max-width: 100%; font-size: clamp(29px,8.5vw,39px); overflow-wrap: anywhere; }
  .project-detail-location-block { max-width: 100%; }
  .project-cover-stage { min-height: 0; padding: 6px; }
  .project-cover-stage > img { width: 100%; height: auto; max-height: 560px; object-fit: contain; }
  .project-cover-stage.is-portrait { min-height: 0; }
  .project-cover-stage.is-portrait > img { height: auto; max-height: 620px; }
  .project-story-layout { grid-template-columns: minmax(0,1fr); }
  .project-facts-strip { display: flex; flex-wrap: wrap; }
  .project-facts-strip > div { min-width: min(100%,135px); max-width: 100%; overflow-wrap: anywhere; }
  .project-gallery-grid { grid-template-columns: minmax(0,1fr); }
  .project-gallery-image-stage img { width: 100%; height: auto; max-height: 600px; object-fit: contain; }
  .project-gallery-open { width: 100%; }
  .project-gallery-caption { max-width: 100%; overflow-wrap: anywhere; }
  .project-lightbox { width: calc(100vw - 18px); max-width: calc(100vw - 18px); padding: 10px; }
  .project-lightbox-content img { width: auto; max-width: 100%; max-height: calc(100dvh - 110px); object-fit: contain; }
  .contact-information { grid-template-columns: minmax(0,1fr); }
  .contact-information > .eyebrow, .contact-information h2, .contact-map-note { grid-column: 1; }
  .form-two-col { grid-template-columns: minmax(0,1fr); }
  .footer-main { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 28px 16px; }
  .footer-contact, .footer-column { min-width: 0; }
  .footer-contact p, .footer-contact a { overflow-wrap: anywhere; }
  .whatsapp-float.whatsapp-float--icon { right: 13px; bottom: 13px; width: 52px; min-width: 52px; height: 52px; min-height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
