/* Homepage banners and compact service forms */
.banner-hero { background:#082c51; isolation:isolate; padding:56px 0 24px; }
.banner-hero .hero-orb,.banner-hero .hero-skyline-art { display:none; }
.banner-backgrounds,.banner-background { position:absolute; inset:0; width:100%; height:100%; }
.banner-backgrounds { z-index:-2; background:#082c51; }
.banner-background { object-fit:cover; opacity:0; transition:opacity .25s ease; }
.banner-background.is-active { opacity:1; }
.banner-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(3,24,51,.95),rgba(3,38,63,.85) 46%,rgba(3,31,55,.42)); }
.banner-hero .hero-grid { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:56px; align-items:center; }
.banner-hero .hero-copy h1 { color:#fff; font-size:clamp(34px,4.3vw,60px); line-height:1.08; max-width:670px; }
.banner-hero .hero-lead { color:#e0edf7; font-size:17px; max-width:630px; }
.banner-hero .eyebrow,.banner-kicker { color:#93e0ff; }
.banner-kicker { font-size:14px; font-weight:700; margin:0 0 20px; }
.banner-hero .hero-facts { color:#fff; }
.banner-hero .hero-facts span { color:#e0edf7; }
.banner-hero .button-text { color:#fff; }
.banner-hero .hero-image-frame.hero-image-original { width:100%; max-width:370px; border:1px solid #7cb1cf; border-radius:24px; box-shadow:0 20px 60px #00152b66; }
.banner-hero .hero-badge { display:none; }
button:focus-visible,summary:focus-visible,a:focus-visible { outline:3px solid #32b6ee; outline-offset:4px; }
.customer-logo-visual { background:linear-gradient(145deg,#126ba5,#063962); border-color:#3b93bf; min-height:0; padding:22px 22px 65px; }
.customer-logo-caption { color:#e3f5ff; font-size:12px; }
.customer-logo-visual picture,.customer-logo-visual img { height:auto; max-height:570px; object-fit:contain; }
.ordering-grid { align-items:start; }
.request-disclosure { border:1px solid #4b7799; border-radius:20px; background:#0e365a; overflow:hidden; scroll-margin-top:125px; min-width:0; }
.request-disclosure summary { display:flex; gap:14px; align-items:center; padding:24px; cursor:pointer; color:#fff; font-size:20px; font-weight:700; list-style:none; min-height:98px; }
.request-disclosure summary::-webkit-details-marker { display:none; }
.request-number { display:grid; place-items:center; flex:0 0 40px; height:40px; border-radius:50%; background:#16547b; color:#a1e3ff; font-size:16px; }
.request-expand { margin-left:auto; font-size:28px; font-weight:400; }
.request-disclosure[open] .request-expand { transform:rotate(45deg); }
.request-disclosure .request-card { border-radius:0; background:#eaf5fc; }
.request-card label,.support-form label { font-size:14px; }
.request-card input,.request-card select,.request-card textarea,.support-form input { min-width:0; background:#fff; line-height:1.4; }
.support-section { padding-block:48px; }
@media(max-width:800px) {
 .banner-hero { padding-top:34px; }
 .banner-hero .hero-grid { grid-template-columns:1fr; gap:28px; }
 .banner-hero .hero-copy { text-align:left; }
 .banner-hero .hero-image-frame.hero-image-original { max-width:270px; }
 .banner-hero .hero-actions { justify-content:flex-start; flex-wrap:wrap; }
 .banner-hero .hero-facts { justify-content:flex-start; }
 .ordering-grid { grid-template-columns:1fr; }
 .request-disclosure summary { font-size:18px; padding:20px; }
 .customer-logo-grid { grid-template-columns:1fr; gap:30px; }
}
@media(max-width:480px) { .field-pair { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .banner-background { transition:none; } html { scroll-behavior:auto; } }
.uploaded-banner[hidden],.uploaded-photo[hidden],.uploaded-bar[hidden]{display:none!important}
.uploaded-banner{background:#052b49;color:#fff;padding:0 0 12px}
.uploaded-stage{background:linear-gradient(125deg,#063d65,#061d36);height:clamp(260px,42vw,660px);display:flex;align-items:center;justify-content:center}
.uploaded-photo{width:100%;height:100%;object-fit:cover;object-position:center;animation:banner-reveal .25s ease}
.uploaded-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:12px}
#uploaded-caption{margin:0;font-size:16px;line-height:1.5;overflow-wrap:anywhere}
.has-uploaded-banner .banner-backgrounds{display:none}
.has-uploaded-banner{background:linear-gradient(120deg,#07314c,#0b4e6b)}
@keyframes banner-reveal{from{opacity:.3}to{opacity:1}}
@media(max-width:650px){.uploaded-bar{align-items:flex-start;flex-direction:column}.uploaded-stage{height:320px}}
@media(prefers-reduced-motion:reduce){.uploaded-photo{animation:none}}
.payment-instructions{background:#d9edf9;border:1px solid #93bdda;border-radius:12px;padding:16px;font-size:15px;line-height:1.6}.payment-instructions[hidden],#payment-provider[hidden],#payment-confirm-wrap[hidden]{display:none!important}#payment-account{white-space:pre-line;overflow-wrap:anywhere}.payment-instructions input[type=checkbox]{width:20px;min-height:20px;flex:0 0 20px}

.uploaded-stage{height:auto;aspect-ratio:16/9;position:relative;overflow:hidden}.uploaded-photo{position:absolute;inset:0}.uploaded-banner{width:100%}


/* A compact, consistent page sequence. */
.section{padding-block:52px}.section-heading{margin-bottom:24px}.section-heading h2{font-size:clamp(26px,3vw,36px)}
.delivery-announcement{padding:13px 20px;background:#d9eff9;color:#07334f;text-align:center;font-size:15px;line-height:1.5}.delivery-notice{padding:14px 18px;border-radius:10px;background:#e4f6ed;color:#164932;font-size:16px;line-height:1.5}
.compact-facilities{background:#eef5f9;color:#102d4b}.compact-facility-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.compact-facility-grid article{border-radius:16px;overflow:hidden;background:white;border:1px solid #cedee8}.compact-facility-grid article>img{display:block;width:100%;height:190px;object-fit:cover}.compact-facility-grid article>div{padding:20px}.compact-facility-grid h3{font-size:23px;margin:0 0 10px}.compact-facility-grid p{font-size:16px;line-height:1.55}.compact-facility-grid a{font-weight:700;color:#08609b}
.facility-more{margin:18px 0;border:1px solid #bdd4e4;background:#f5f9fc;color:#102d4b;border-radius:12px;overflow:hidden;scroll-margin-top:120px}.facility-more>summary{padding:18px 22px;font-size:17px;font-weight:700;cursor:pointer}.facility-more>.section{padding:30px 20px}.facility-more>.section>.shell{width:100%;max-width:100%}.facility-more>.plant-showcase,.facility-more>.facility-plan-row{margin:20px}.compact-quality,.compact-about{padding-block:10px}
.supply-group{background:#f6fafe;padding-block:16px 30px}.lifestyle-feature{padding-block:32px}.lifestyle-feature-card{grid-template-columns:minmax(220px,.65fr) 1fr;max-width:980px;gap:36px;align-items:center}.lifestyle-feature-visual{height:350px;min-height:0}.lifestyle-feature-visual img{width:100%;height:350px;object-fit:contain}.lifestyle-feature-copy{padding:20px}.lifestyle-feature-copy h2{font-size:clamp(25px,3vw,36px)}.supply-stories{padding-block:24px}.supply-story-card img{max-height:240px}.range-showcase{display:none}.banner-hero.has-uploaded-banner{padding-block:28px}.has-uploaded-banner .hero-image-frame,.has-uploaded-banner .hero-visual{display:none}.has-uploaded-banner .hero-grid{grid-template-columns:1fr}.has-uploaded-banner .hero-copy h1{font-size:36px}.team-section{padding-block:36px}.team-copy{padding:22px}.customer-logo-visual img{max-height:390px}
@media(max-width:700px){.section{padding-block:32px}.compact-facility-grid{grid-template-columns:1fr}.compact-facility-grid article{display:grid;grid-template-columns:35% 1fr}.compact-facility-grid article>img{height:100%;min-height:170px}.compact-facility-grid article>div{padding:16px}.compact-facility-grid h3{font-size:20px}.lifestyle-feature-card{grid-template-columns:1fr;gap:12px}.lifestyle-feature-visual,.lifestyle-feature-visual img{height:300px}.lifestyle-feature-copy{padding:14px}.facility-more>.section{padding:20px 12px}.delivery-announcement{font-size:14px}}
.supply-story-card picture{height:240px}.supply-story-card img{height:100%;max-height:none}.compact-facilities .plant-showcase{max-width:900px}.compact-facilities .facility-more .process-grid{gap:20px}

/* Equal portrait frames; intrinsic image size must never overflow the frame. */
#team .team-card .team-photo {
  position: relative;
  display: block;
  width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  aspect-ratio: 3 / 4;
  flex: 0 0 auto;
  overflow: hidden;
  background: #fff;
}
#team .team-card .team-photo img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  object-fit: contain;
  object-position: center center;
  margin: 0;
  padding: 0;
  transform: none;
}

/* Full uploaded photo, automatically fitted inside a 16:9 stage. */
.uploaded-stage::before{content:"";position:absolute;inset:-30px;background-image:var(--banner-photo);background-size:cover;background-position:center;filter:blur(24px);opacity:.8}.uploaded-stage .uploaded-photo{object-fit:contain;z-index:1}
