
/* Shared inner-page components built from the supplied page sketches. */
body[data-page] { background: #f4f5f7; }
body[data-page] main { overflow: clip; }
.inner-hero {
  position: relative;
  min-height: clamp(470px, 61vh, 650px);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: #152027 url("../images/about-b.jpg") center 58% / cover no-repeat;
}
.inner-hero-s {
  position: relative;
  min-height: clamp(470px, 61vh, 650px);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: #152027 url("../images/solutions-ba.jpg") center 58% / cover no-repeat;
}
.inner-hero-s.hero-alt { background-image: url("../images/solutions-ba.jpg"); background-position: center 46%; }
.inner-hero-s::before { content:""; position:absolute; inset:0; background: linear-gradient(180deg,rgba(4,8,11,.22),rgba(4,8,11,.5)), linear-gradient(90deg,rgba(4,8,11,.18),rgba(4,8,11,.04) 55%,rgba(4,8,11,.24)); }
.inner-hero-s-content { position:relative; z-index:2; width:min(1180px,calc(100% - 40px)); padding:150px 0 125px; text-align:center; }
.inner-hero-s h1 { margin:0; color:#fff; font-size:clamp(4rem,8vw,7.8rem); line-height:.9; letter-spacing:-.075em; text-align:center; text-transform:uppercase; text-shadow:0 8px 30px rgba(0,0,0,.35); }
.inner-hero-s p { max-width:640px; margin:20px auto 0; color:rgba(255,255,255,.8); }
.inner-hero-bl {
  position: relative;
  min-height: clamp(470px, 61vh, 650px);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: #152027 url("../images/solutions-bl.jpg") center 58% / cover no-repeat;
}
.inner-hero-bl.hero-alt { background-image: url("../images/solutions-ba.jpg"); background-position: center 46%; }
.inner-hero-bl::before { content:""; position:absolute; inset:0; background: linear-gradient(180deg,rgba(4,8,11,.22),rgba(4,8,11,.5)), linear-gradient(90deg,rgba(4,8,11,.18),rgba(4,8,11,.04) 55%,rgba(4,8,11,.24)); }
.inner-hero-bl-content { position:relative; z-index:2; width:min(1180px,calc(100% - 40px)); padding:150px 0 125px; text-align:center; }
.inner-hero-bl h1 { margin:0; color:#fff; font-size:clamp(4rem,8vw,7.8rem); line-height:.9; letter-spacing:-.075em; text-align:center; text-transform:uppercase; text-shadow:0 8px 30px rgba(0,0,0,.35); }
.inner-hero-bl p { max-width:640px; margin:20px auto 0; color:rgba(255,255,255,.8); }

.inner-hero-fl {
  position: relative;
  min-height: clamp(470px, 61vh, 650px);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: #152027 url("../images/solutions-fl.jpg") center 58% / cover no-repeat;
}

.inner-hero-fl.hero-alt { background-image: url("../images/solutions-ba.jpg"); background-position: center 46%; }
.inner-hero-fl::before { content:""; position:absolute; inset:0; background: linear-gradient(180deg,rgba(4,8,11,.22),rgba(4,8,11,.5)), linear-gradient(90deg,rgba(4,8,11,.18),rgba(4,8,11,.04) 55%,rgba(4,8,11,.24)); }
.inner-hero-fl-content { position:relative; z-index:2; width:min(1180px,calc(100% - 40px)); padding:150px 0 125px; text-align:center; }
.inner-hero-fl h1 { margin:0; color:#fff; font-size:clamp(4rem,8vw,7.8rem); line-height:.9; letter-spacing:-.075em; text-align:center; text-transform:uppercase; text-shadow:0 8px 30px rgba(0,0,0,.35); }
.inner-hero-fl p { max-width:640px; margin:20px auto 0; color:rgba(255,255,255,.8); }

.inner-hero-news {
  position: relative;
  min-height: clamp(470px, 61vh, 650px);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: #152027 url("../images/news-b.jpg") center 58% / cover no-repeat;
}

.inner-hero-news.hero-alt { background-image: url("../images/solutions-ba.jpg"); background-position: center 46%; }
.inner-hero-news::before { content:""; position:absolute; inset:0; background: linear-gradient(180deg,rgba(4,8,11,.22),rgba(4,8,11,.5)), linear-gradient(90deg,rgba(4,8,11,.18),rgba(4,8,11,.04) 55%,rgba(4,8,11,.24)); }
.inner-hero-news-content { position:relative; z-index:2; width:min(1180px,calc(100% - 40px)); padding:150px 0 125px; text-align:center; }
.inner-hero-news h1 { margin:0; color:#fff; font-size:clamp(4rem,8vw,7.8rem); line-height:.9; letter-spacing:-.075em; text-align:center; text-transform:uppercase; text-shadow:0 8px 30px rgba(0,0,0,.35); }
.inner-hero-news p { max-width:640px; margin:20px auto 0; color:rgba(255,255,255,.8); }

.inner-hero-sh {
  position: relative;
  min-height: clamp(470px, 61vh, 650px);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: #152027 url("../images/support-b.jpg") center 58% / cover no-repeat;
}

.inner-hero-sh.hero-alt { background-image: url("../images/support-b.jpg"); background-position: center 46%; }
.inner-hero-sh::before { content:""; position:absolute; inset:0; background: linear-gradient(180deg,rgba(4,8,11,.22),rgba(4,8,11,.5)), linear-gradient(90deg,rgba(4,8,11,.18),rgba(4,8,11,.04) 55%,rgba(4,8,11,.24)); }
.inner-hero-sh-content { position:relative; z-index:2; width:min(1180px,calc(100% - 40px)); padding:150px 0 125px; text-align:center; }
.inner-hero-sh h1 { margin:0; color:#fff; font-size:clamp(4rem,8vw,7.8rem); line-height:.9; letter-spacing:-.075em; text-align:center; text-transform:uppercase; text-shadow:0 8px 30px rgba(0,0,0,.35); }
.inner-hero-sh p { max-width:640px; margin:20px auto 0; color:rgba(255,255,255,.8); }

.inner-hero-case {
  position: relative;
  min-height: clamp(470px, 61vh, 650px);
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: #152027 url("../images/case-b.jpg") center 58% / cover no-repeat;
}

.inner-hero-case.hero-alt { background-image: url("../images/solutions-ba.jpg"); background-position: center 46%; }
.inner-hero-case::before { content:""; position:absolute; inset:0; background: linear-gradient(180deg,rgba(4,8,11,.22),rgba(4,8,11,.5)), linear-gradient(90deg,rgba(4,8,11,.18),rgba(4,8,11,.04) 55%,rgba(4,8,11,.24)); }
.inner-hero-case-content { position:relative; z-index:2; width:min(1180px,calc(100% - 40px)); padding:150px 0 125px; text-align:center; }
.inner-hero-case h1 { margin:0; color:#fff; font-size:clamp(4rem,8vw,7.8rem); line-height:.9; letter-spacing:-.075em; text-align:center; text-transform:uppercase; text-shadow:0 8px 30px rgba(0,0,0,.35); }
.inner-hero-case p { max-width:640px; margin:20px auto 0; color:rgba(255,255,255,.8); }


.inner-hero.hero-alt { background-image: url("../images/contact-b.jpg"); background-position: center 46%; }
.inner-hero::before { content:""; position:absolute; inset:0; background: linear-gradient(180deg,rgba(4,8,11,.22),rgba(4,8,11,.5)), linear-gradient(90deg,rgba(4,8,11,.18),rgba(4,8,11,.04) 55%,rgba(4,8,11,.24)); }
.inner-hero-content { position:relative; z-index:2; width:min(1180px,calc(100% - 40px)); padding:150px 0 125px; text-align:center; }
.inner-hero h1 { margin:0; color:#fff; font-size:clamp(4rem,8vw,7.8rem); line-height:.9; letter-spacing:-.075em; text-align:center; text-transform:uppercase; text-shadow:0 8px 30px rgba(0,0,0,.35); }
.inner-hero p { max-width:640px; margin:20px auto 0; color:rgba(255,255,255,.8); }
.inner-content { position:relative; z-index:10; padding:92px 0 110px; }
.breadcrumb { position:relative; z-index:16; display:flex; align-items:center; gap:10px; min-height:54px; margin-top:0; padding-top:18px; color:#778085; font-size:.72rem; font-weight:700; }
.breadcrumb a:hover { color:var(--red); }
.breadcrumb [aria-current="page"] { color:var(--red); }
.page-tabs { width:min(920px,100%); margin:0 auto 42px; display:grid; grid-template-columns:repeat(var(--tab-count,3),minmax(0,1fr)); gap:3px; padding:4px; border:1px solid var(--red); border-radius:999px; background:rgba(255,255,255,.84); box-shadow:0 12px 30px rgba(10,17,20,.06); }
.page-tab { min-height:44px; display:grid; place-items:center; padding:8px 15px; border-radius:999px; color:#353a3d; font-size:.68rem; font-weight:900; letter-spacing:.08em; text-align:center; text-transform:uppercase; transition:.2s ease; }
.page-tab:hover,.page-tab.is-active,.page-tab[aria-selected="true"] { color:#fff; background:var(--red); box-shadow:0 9px 22px rgba(191,0,8,.2); }
.page-section { padding:clamp(68px,8vw,112px) 0; }
.page-section-title { margin:0 0 26px; font-size:clamp(2.25rem,4.6vw,4.7rem); line-height:.96; letter-spacing:-.055em; }
.page-section-copy { max-width:760px; color:#5d666a; }
.page-newsletter { padding:54px 0 46px; background:#fff; border-top:1px solid rgba(17,19,21,.08); }
.page-newsletter-inner { display:grid; grid-template-columns:280px minmax(0,1fr); align-items:center; gap:60px; }
.page-newsletter-brand img { width:190px; }
.page-newsletter-brand p { margin:10px 0 0; color:#687074; font-size:.8rem; }
.page-newsletter-copy { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.9fr); align-items:center; gap:32px; }
.page-newsletter-copy h2 { margin:0; font-size:clamp(1.6rem,3vw,3rem); letter-spacing:-.045em; }
.page-newsletter-copy p { margin:5px 0 0; color:#6b7377; font-size:.8rem; }
.page-newsletter-form { display:grid; grid-template-columns:1fr auto; gap:10px; }
.page-newsletter-form input { min-height:48px; padding:0 18px; border:1px solid rgba(17,19,21,.11); border-radius:999px; background:#f7f8f8; }

/* News */
.news-toolbar { margin-bottom:36px; }
.news-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 18px; padding:14px; background:#fff; border:1px solid rgba(17,19,21,.07); box-shadow:0 16px 44px rgba(11,18,22,.05); }
.news-card { min-width:0; padding-bottom:18px; border-bottom:1px solid #dfe3e4; }
.news-card[hidden] { display:none!important; }
.news-card-media { aspect-ratio:1.45/1; overflow:hidden; background:#e8ecee; }
.news-card-media img { width:100%; height:100%; object-fit:cover; transition:transform .45s var(--ease); }
.news-card:hover img { transform:scale(1.035); }
.news-card h2 { margin:15px 0 6px; font-size:1rem; line-height:1.35; }
.news-card p { margin:0; display:-webkit-box; overflow:hidden; color:#697175; font-size:.75rem; line-height:1.55; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.news-card time { display:block; margin-top:8px; color:#90979a; font-size:.68rem; }
.pagination { display:flex; justify-content:flex-end; gap:4px; margin-top:28px; }
.pagination button { width:34px; height:34px; border:0; color:#fff; background:#2d3133; cursor:pointer; }
.pagination button.is-active { background:var(--red); }

/* Contact */
.contact-quick-cards { position:relative; z-index:20; width:min(760px,calc(100% - 40px)); margin:-30px auto 70px; display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.contact-quick-card { overflow:hidden; background:#fff; border-radius:18px; box-shadow:0 22px 48px rgba(12,18,22,.12); }
.contact-quick-card img { width:100%; aspect-ratio:1.65/1; object-fit:cover; }
.contact-quick-copy { padding:24px; }
.contact-quick-copy h2 { margin:0 0 8px; font-size:1.3rem; }
.contact-quick-copy p { margin:0 0 18px; color:#6d7478; font-size:.8rem; }
.offices-title { margin:0 0 36px; text-align:center; font-size:1.7rem; }
.office-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px 80px; }
.office-entry { padding:24px 0; border-bottom:1px solid rgba(17,19,21,.1); }
.office-entry h3 { margin:0 0 13px; font-size:.95rem; text-transform:uppercase; }
.office-entry p,.office-entry a { margin:5px 0; display:block; color:#687075; font-size:.77rem; }
.office-entry i { color:var(--red); font-style:normal; margin-right:8px; }
.office-map { margin:70px 0 32px; }
.office-map img { width:100%; }
.office-cards { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.office-card { padding:20px; background:#fff; border:1px solid rgba(17,19,21,.07); border-radius:16px; box-shadow:0 10px 28px rgba(12,18,22,.05); }
.office-card h3 { min-height:42px; margin:0 0 12px; font-size:.78rem; text-transform:uppercase; }
.office-card p,.office-card a { display:block; margin:5px 0; color:#71797d; font-size:.67rem; }
.flag-dot { display:inline-grid; place-items:center; width:28px; height:28px; margin-left:8px; color:#fff; background:var(--red); border-radius:50%; font-size:.58rem; }
.contact-form-section { padding-top:85px; }
.contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 28px; }
.form-field { display:grid; gap:7px; }
.form-field.full { grid-column:1/-1; }
.form-field label { font-size:.72rem; font-weight:800; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-height:52px; padding:13px 17px; border:1px solid rgba(17,19,21,.1); border-radius:14px; background:#fff; }
.form-field textarea { min-height:160px; resize:vertical; }
.consent-line { grid-column:1/-1; display:flex; gap:10px; align-items:flex-start; font-size:.72rem; }
.contact-submit-row { grid-column:1/-1; display:flex; align-items:center; gap:14px; }
.social-qr { margin-top:55px; display:flex; justify-content:center; gap:20px; flex-wrap:wrap; }
.qr-card { display:grid; gap:8px; place-items:center; color:#444; font-size:.7rem; }
.qr-placeholder { width:90px; aspect-ratio:1; padding:8px; background:repeating-linear-gradient(45deg,#111 0 6px,#fff 6px 12px); border:8px solid #fff; box-shadow:0 8px 20px rgba(0,0,0,.08); }

/* About R&D */
.research-section { padding:52px 0 104px; }
.research-intro-grid { display:grid; grid-template-columns:1.2fr 1fr .65fr; gap:10px; margin-bottom:34px; }
.research-intro-grid img { width:100%; height:300px; object-fit:cover; border-radius:12px; }
.research-block { margin-top:54px; }
.research-block h2 { margin:0 0 24px; font-size:clamp(2.2rem,4vw,4.2rem); letter-spacing:-.05em; }
.research-block h3 { margin:24px 0 8px; color:var(--red); font-size:1.15rem; }
.research-block p { margin:0; color:#555f63; line-height:1.9; }
.research-split { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:48px; margin-top:34px; }
.research-split.reverse > :first-child { order:2; }
.research-split img { width:100%; border-radius:14px; box-shadow:0 18px 44px rgba(10,18,22,.1); }
.research-mosaic { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }

/* Gallery */
.gallery-page-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px 18px; }
.gallery-card h2 { margin:14px 12px 5px; color:var(--red); font-size:1.25rem; }
.gallery-card p { margin:0 12px; color:#656d71; font-size:.76rem; }
.gallery-carousel { position:relative; aspect-ratio:1.45/1; overflow:hidden; border-radius:18px; background:#e9edef; }
.gallery-carousel img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .3s ease; }
.gallery-carousel img.is-active { opacity:1; }
.gallery-arrow { position:absolute; z-index:3; top:50%; width:44px; height:44px; display:grid; place-items:center; border:0; border-radius:50%; color:#fff; background:rgba(17,19,21,.5); transform:translateY(-50%); cursor:pointer; }
.gallery-arrow.prev { left:18px; }.gallery-arrow.next { right:18px; }
.gallery-dots { position:absolute; z-index:3; right:0; bottom:18px; left:0; display:flex; justify-content:center; gap:7px; }
.gallery-dots button { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.6); }
.gallery-dots button.is-active { background:var(--red); }

/* Support */
.support-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.support-card { position:relative; min-height:530px; overflow:hidden; border-radius:18px; background:#172129; }
.support-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.support-card:hover img { transform:scale(1.035); }
.support-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 25%,rgba(4,9,12,.16) 45%,rgba(4,9,12,.9)); }
.support-card-copy { position:absolute; z-index:2; right:0; bottom:0; left:0; padding:28px; color:#fff; }
.support-card-copy h2 { margin:0 0 7px; color:#fff; font-size:1.35rem; }
.support-card-copy p { margin:0 0 18px; color:rgba(255,255,255,.72); font-size:.78rem; }
.support-card-copy a { display:inline-flex; align-items:center; gap:8px; color:#fff; font-size:.75rem; font-weight:800; }
.support-card.faq { grid-column:span 1; }
.support-card.faq .support-card-copy h2 { color:#ff3b43; font-size:2rem; }
.support-chip-row { display:flex; flex-wrap:wrap; gap:8px; }
.support-chip { padding:5px 9px; border-radius:999px; background:rgba(255,255,255,.13); font-size:.64rem; }

/* Warranty */
.warranty-wrap { padding:35px 0 105px; }
.warranty-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 44px; }
.warranty-column h2 { margin:0 0 20px; font-size:1.45rem; }
.warranty-column { display:grid; align-content:start; gap:18px; }
.upload-row { display:grid; grid-template-columns:1fr auto; gap:10px; }
.upload-box { grid-column:1/-1; min-height:170px; display:grid; place-items:center; padding:25px; text-align:center; border:2px dashed #c5cacc; border-radius:18px; background:#fff; cursor:pointer; }
.upload-box input { position:absolute; opacity:0; pointer-events:none; }
.upload-icon { width:52px; height:52px; display:grid; place-items:center; margin:auto; color:#fff; background:var(--red); border-radius:50%; font-size:1.6rem; }
.warranty-additional { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 44px; padding-top:16px; }
.warranty-terms { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:20px; font-size:.72rem; }
.warranty-panel[hidden] { display:none!important; }
.verify-card { max-width:760px; margin:auto; padding:50px; background:#fff; border-radius:24px; box-shadow:0 18px 50px rgba(10,18,22,.08); }
.verify-card h2 { margin-top:0; font-size:2rem; }

/* Solutions */
.solutions-layout { display:grid; grid-template-columns:270px minmax(0,1fr); align-items:start; gap:36px; }
.solution-sidebar { position:sticky; top:92px; background:#fff; border:1px solid rgba(17,19,21,.08); border-radius:16px; overflow:hidden; }
.solution-group { border-bottom:1px solid #e3e6e7; }
.solution-group:last-child { border-bottom:0; }
.solution-group summary { display:flex; justify-content:space-between; gap:12px; padding:18px; color:var(--red); font-size:.8rem; font-weight:900; cursor:pointer; list-style:none; }
.solution-group summary::-webkit-details-marker { display:none; }
.solution-group ul { margin:0; padding:0 18px 16px; list-style:none; }
.solution-group li { margin:8px 0; }
.solution-group a { color:#30373a; font-size:.72rem; }
.solution-group a:hover { color:var(--red); }
.solution-card { margin-bottom:42px; background:#fff; border:1px solid rgba(17,19,21,.07); border-radius:18px; overflow:hidden; box-shadow:0 16px 42px rgba(10,17,20,.06); }
.solution-card img { width:100%; aspect-ratio:1.8/1; object-fit:cover; }
.solution-card-copy { padding:26px; }
.solution-card-copy h2 { margin:0 0 12px; font-size:1.35rem; }
.solution-card-copy p { color:#60696d; font-size:.78rem; line-height:1.85; }
.solution-config-cta { display:grid; grid-template-columns:1fr auto; align-items:center; gap:30px; padding:34px; color:#fff; background:#111719; border-radius:22px; }
.solution-config-cta h2 { margin:0; color:#fff; font-size:2rem; }
.solution-config-cta p { margin:6px 0 0; color:rgba(255,255,255,.65); font-size:.78rem; }

@media (max-width:1050px) {
  .news-grid { grid-template-columns:repeat(2,1fr); }
  .office-cards { grid-template-columns:repeat(2,1fr); }
  .support-grid { grid-template-columns:repeat(2,1fr); }
  .page-newsletter-inner,.page-newsletter-copy { grid-template-columns:1fr; gap:24px; }
  .solutions-layout { grid-template-columns:1fr; }
  .solution-sidebar { position:relative; top:auto; }
}
@media (max-width:760px) {
  .inner-hero { min-height:520px; }
  .inner-hero-content { padding-top:135px; padding-bottom:105px; }
  .inner-hero h1 { font-size:clamp(3.2rem,16vw,5.4rem); }
  .inner-content { padding-top:72px; }
  .page-tabs { overflow-x:auto; grid-template-columns:repeat(var(--tab-count,3),minmax(145px,1fr)); justify-content:start; border-radius:22px; }
  .news-grid,.contact-quick-cards,.office-list,.contact-form,.research-intro-grid,.research-split,.gallery-page-grid,.warranty-form,.warranty-additional { grid-template-columns:1fr; }
  .research-split.reverse > :first-child { order:0; }
  .office-cards { grid-template-columns:1fr; }
  .support-grid { grid-template-columns:1fr; }
  .support-card { min-height:390px; }
  .warranty-terms { align-items:flex-start; flex-direction:column; }
  .solution-config-cta { grid-template-columns:1fr; }
  .page-newsletter-form { grid-template-columns:1fr; }
  .form-field.full,.contact-submit-row,.consent-line { grid-column:auto; }
}
@media (max-width:480px) {
  .container { width:min(var(--container),calc(100% - 28px)); }
  .news-grid { grid-template-columns:1fr; padding:10px; }
  .contact-quick-copy,.solution-card-copy { padding:20px; }
  .verify-card { padding:28px 20px; }
}
