/* One shared frame for the homepage, public pages and administration pages. */
:root{--site-frame:1240px;--site-gutter:16px;--site-radius:28px;--site-banner-height:360px}
body.site-layout>.site-header,
body.site-layout :is(.hero,.library-hero,.inquiry-intro,.servo-banner,.request-hero,.eagle-section-divider),
body.site-layout.home-page #main>section,
body.site-layout>.footer{
  box-sizing:border-box;width:calc(100% - 2 * var(--site-gutter));max-width:var(--site-frame);
  margin-left:auto;margin-right:auto;border-radius:var(--site-radius)
}
body.site-layout>.site-header{margin-top:12px;margin-bottom:12px}
body.site-layout :is(.hero,.library-hero,.inquiry-intro,.servo-banner,.request-hero){margin-top:16px}
body.site-layout main>.eagle-section-divider{margin-top:12px;margin-bottom:12px;border-radius:16px}
body.site-layout :is(.library-hero,.inquiry-intro,.servo-banner,.request-hero){
  min-height:var(--site-banner-height);padding:0;display:flex;align-items:center
}
body.site-layout :is(.library-hero,.inquiry-intro,.servo-banner,.request-hero)>.container{
  width:calc(100% - 64px);max-width:1160px;margin:0 auto;padding:40px 0;min-width:0
}
body.site-layout :is(.library-hero,.inquiry-intro,.servo-banner,.request-hero) h1{
  font-size:clamp(28px,3.3vw,40px);line-height:1.25;margin:12px 0 16px;min-height:0;overflow-wrap:anywhere
}
body.site-layout :is(.library-hero,.inquiry-intro,.servo-banner,.request-hero) p{
  font-size:14px;line-height:1.8
}
body.site-layout .equipment-banner>.equipment-banner-inner{
  width:100%;max-width:none;padding:0;min-height:var(--site-banner-height);display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch
}
body.site-layout .equipment-banner .equipment-banner-copy{
  display:flex;flex-direction:column;justify-content:center;align-self:stretch;
  padding:32px 24px 32px 40px;min-width:0
}
body.site-layout .equipment-banner .equipment-banner-copy>p:not(.equipment-banner-count){min-height:0}
body.site-layout .equipment-banner .equipment-banner-photo{height:auto;min-height:0}
body.site-layout .equipment-banner .library-brand-links{margin-top:18px;flex-wrap:wrap}
body.site-layout main>.breadcrumbs{width:calc(100% - 64px);max-width:1160px;margin-inline:auto}
/* Keep the homepage service background and its divider on exactly the same edges. */
body.site-layout.home-page #main>.eagle-section-divider{padding:16px 24px}
body.site-layout.home-page #main>section:not(.hero){padding-block:clamp(32px,4vw,56px)}
body.site-layout.home-page .hero-motion .erc-hero-layout{min-height:0}
@media(max-width:700px){
  :root{--site-gutter:8px;--site-radius:20px;--site-banner-height:300px}
  body.site-layout>.site-header{margin-top:8px;margin-bottom:8px;border-radius:18px}
  body.site-layout :is(.hero,.library-hero,.inquiry-intro,.servo-banner,.request-hero){margin-top:10px}
  body.site-layout main>.eagle-section-divider{margin-block:10px;border-radius:12px}
  body.site-layout :is(.library-hero,.inquiry-intro,.servo-banner,.request-hero)>.container{
    width:calc(100% - 40px);padding:28px 0
  }
  body.site-layout :is(.library-hero,.inquiry-intro,.servo-banner,.request-hero) h1{font-size:28px}
  body.site-layout :is(.library-hero,.inquiry-intro,.servo-banner,.request-hero) p{font-size:13px}
  body.site-layout .equipment-banner>.equipment-banner-inner{width:100%;padding:0}
  body.site-layout .equipment-banner .equipment-banner-copy{padding:28px 12px 28px 20px}
  body.site-layout .equipment-banner .equipment-banner-copy h1{font-size:clamp(20px,4.8vw,28px)}
  body.site-layout .equipment-banner .library-brand-links{gap:8px}
  body.site-layout .equipment-banner .library-brand-links a{font-size:11px;padding:8px 10px}
  body.site-layout.home-page #main>.eagle-section-divider{padding:12px 18px}
  body.site-layout.home-page #main>section:not(.hero){padding-block:32px}
  body.site-layout main>.breadcrumbs{width:calc(100% - 40px)}
}

/* Nested feature panels share the service section's outer frame. */
body.site-layout.home-page #about,
body.site-layout.home-page #contact{container-type:inline-size}
body.site-layout.home-page :is(.client-showcase,.company-history,.contact-panel){
  box-sizing:border-box;width:100cqw;max-width:none;
  margin-left:calc((100% - 100cqw) / 2);margin-right:calc((100% - 100cqw) / 2);
  border-radius:var(--site-radius)
}


/* Content panels use the same outside edges as their page banner.
   Keep the banner's internal text padding independent from this frame. */
body.site-layout:not(.home-page) main :is(
  .portal-wrap > .container,
  .inquiry-surface > .container,
  .cooperation-wrap,
  .section > .container,
  .library-content > .container,
  .unit-archive > .container,
  .search-results-wrap > .container
),
body.site-layout > .membership-shell {
  box-sizing: border-box;
  width: calc(100% - 2 * var(--site-gutter));
  max-width: var(--site-frame);
  margin-left: auto;
  margin-right: auto;
  min-width: 0;
}
body.site-layout .portal-shell,
body.site-layout .portal-shell:has(#admin-dashboard),
body.site-layout .portal-form,
body.site-layout .admin-hub-login {
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}
/* Put supporting guidance below the full-width repair form. */
body.site-layout .inquiry-layout { grid-template-columns: minmax(0, 1fr); }
body.site-layout .inquiry-aside {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: start;
}
@media (max-width: 700px) {
  body.site-layout .inquiry-aside { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}


/* Photo-library categories: one left guide for logo, breadcrumb,
   banner copy, archive heading, filters and the first photo column. */
body.equipment-page { --equipment-inset: 40px; }
body.site-layout.equipment-page > .site-header .head-inner {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  padding-inline: calc(var(--equipment-inset) - 1px);
}
body.site-layout.equipment-page main > .breadcrumbs,
body.site-layout.equipment-page main > .unit-archive {
  box-sizing: border-box;
  width: calc(100% - 2 * var(--site-gutter));
  max-width: var(--site-frame);
  margin-inline: auto;
  border-radius: var(--site-radius);
  text-align: left;
}
body.site-layout.equipment-page main > .breadcrumbs {
  padding-inline: var(--equipment-inset);
  justify-content: flex-start;
}
body.site-layout.equipment-page .equipment-banner .equipment-banner-copy {
  padding-left: var(--equipment-inset);
  align-items: stretch;
  text-align: left;
}
body.site-layout.equipment-page .equipment-banner-copy > :is(h1,p,span,nav) {
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}
body.site-layout.equipment-page .equipment-banner .library-brand-links {
  justify-content: flex-start;
}
body.site-layout.equipment-page main .unit-archive > .container {
  width: 100%;
  max-width: none;
  padding-inline: var(--equipment-inset);
  text-align: left;
}
@media (max-width: 700px) {
  body.equipment-page { --equipment-inset: 20px; }
}
