
:root{
  --bg:#f6f1e8; --paper:#fffaf0; --paper-2:#fbf5e8; --ink:#103323; --ink-2:#284737; --muted:#667568;
  --green:#0f5132; --green-2:#1d6b45; --lime:#d7f06a; --gold:#e2b627; --orange:#f59b2e;
  --line:rgba(16,51,35,.16); --shadow:0 24px 80px rgba(16,51,35,.16); --shadow-soft:0 16px 48px rgba(16,51,35,.10);
  --radius-xl:44px; --radius-lg:30px; --container:1180px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans TC","Microsoft JhengHei","PingFang TC","Helvetica Neue",Arial,sans-serif;line-height:1.7;letter-spacing:.01em;overflow-x:hidden}
a{text-decoration:none;color:inherit} img{max-width:100%;display:block}.container{width:min(var(--container),calc(100% - 40px));margin:0 auto}
.skip-link{position:absolute;left:-999px;top:10px;background:var(--ink);color:white;padding:8px 12px;z-index:999}.skip-link:focus{left:10px}
.site-header{position:fixed;left:18px;right:18px;top:16px;z-index:50;background:rgba(255,250,240,.84);border:1px solid var(--line);border-radius:999px;backdrop-filter:blur(18px);box-shadow:0 12px 40px rgba(16,51,35,.10)}
.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:0 12px 0 8px}
.brand{display:flex;align-items:center;gap:14px;min-width:310px}.brand-mark-wrap{width:58px;height:58px;border-radius:50%;background:var(--green);display:grid;place-items:center;overflow:hidden;box-shadow:0 8px 18px rgba(16,51,35,.18)}
.brand-logo{width:58px;height:58px;object-fit:cover}.brand-title{display:block;font-weight:950;font-size:1rem}.brand-subtitle{display:block;font-size:.78rem;color:var(--muted);line-height:1.2}
.nav-toggle{display:none;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:8px 12px;font-weight:900;color:var(--ink)}
.site-nav{display:flex;align-items:center;gap:10px;font-size:.9rem;font-weight:900;color:var(--ink);white-space:nowrap}.site-nav a{padding:9px 12px;border-radius:999px;opacity:.82}.site-nav a:hover{opacity:1;background:rgba(15,81,50,.08)}.lang-link{border:1px solid var(--line);background:white;border-radius:999px}
section{padding:98px 0}.kicker{font-size:.82rem;text-transform:uppercase;letter-spacing:.16em;font-weight:950;color:var(--green)}
h1,h2,h3,p{margin-top:0}h1{font-size:clamp(4rem,10vw,10rem);line-height:.92;letter-spacing:-.08em;margin:0 0 28px;font-weight:950}
h2{font-size:clamp(2.2rem,5vw,5.6rem);line-height:.98;letter-spacing:-.065em;font-weight:950;margin:10px 0 20px;color:var(--ink)}
.lead{font-size:clamp(1.12rem,1.8vw,1.42rem);color:var(--ink-2);font-weight:650}
.hero{min-height:100vh;padding:132px 0 78px;background:radial-gradient(circle at 20% 10%,rgba(215,240,106,.45),transparent 28%),radial-gradient(circle at 85% 40%,rgba(245,155,46,.18),transparent 30%),var(--bg);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:center;min-height:calc(100vh - 210px)}
.hero-tag{display:inline-flex;gap:10px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:10px 14px;margin-bottom:24px;box-shadow:var(--shadow-soft);font-weight:900;color:var(--green)}
.hero-title span{display:block}.hero-title .accent{color:var(--green)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:14px 22px;font-weight:950;border:1px solid var(--line);box-shadow:0 10px 24px rgba(16,51,35,.10)}
.btn-primary{background:var(--ink);color:white;border-color:var(--ink)}.btn-secondary{background:var(--paper);color:var(--ink)}
.hero-stage{position:relative;height:620px}.device-card{position:absolute;border:1px solid var(--line);border-radius:var(--radius-xl);background:rgba(255,250,240,.86);box-shadow:var(--shadow);overflow:hidden;backdrop-filter:blur(14px)}
.device-main{inset:34px 20px 82px 58px}.device-main img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(.92)}.device-main:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,51,35,.05),rgba(16,51,35,.34))}
.metric-board{position:absolute;right:0;bottom:22px;width:min(500px,86%);background:rgba(16,51,35,.88);border:1px solid rgba(255,255,255,.18);border-radius:34px;padding:20px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(2,1fr);gap:14px;color:white}
.metric{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:22px;padding:18px}.metric strong{display:block;font-size:clamp(1.8rem,3vw,3.2rem);line-height:1;font-weight:950}.metric span{display:block;color:rgba(255,255,255,.78);font-weight:800;margin-top:8px}
.float-note{position:absolute;left:0;bottom:0;background:var(--lime);border:1px solid rgba(16,51,35,.22);border-radius:999px;padding:16px 18px;box-shadow:var(--shadow-soft);font-weight:950;color:var(--ink);transform:rotate(-2deg)}
.marquee{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);overflow:hidden}.marquee-track{display:flex;gap:36px;white-space:nowrap;animation:marquee 28s linear infinite;font-weight:950;color:var(--green);letter-spacing:.06em}.marquee-track span{display:inline-flex;align-items:center;gap:36px}@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.story{background:var(--paper)}.story-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:48px;align-items:center}.illustration-card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow-soft);padding:18px;position:relative;overflow:hidden}.illustration-card:after{content:"從傳統研究到 AI 賦能";position:absolute;left:26px;bottom:24px;background:white;border:1px solid var(--line);border-radius:999px;padding:10px 14px;font-weight:950;color:var(--green);box-shadow:var(--shadow-soft)}
.story-copy{background:white;border:1px solid var(--line);border-radius:var(--radius-xl);padding:42px;box-shadow:var(--shadow-soft)}
.slogan-card{margin:24px 0;background:linear-gradient(135deg,var(--gold),#f6cf4f);border:1px solid rgba(16,51,35,.14);border-radius:26px;padding:26px;text-align:center;box-shadow:0 22px 42px rgba(226,182,39,.25);font-size:clamp(1.6rem,3vw,3rem);line-height:1.1;font-weight:950;font-style:italic}
.capability-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.capability{background:var(--paper);border:1px solid var(--line);border-radius:20px;text-align:center;padding:14px 8px;font-weight:950;color:var(--green)}
.icon{width:36px;height:36px;display:block;margin:0 auto 8px;stroke:var(--green);fill:none;stroke-width:2.2}.legacy-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:28px}.legacy-item{background:white;border:1px solid var(--line);border-radius:20px;padding:18px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--shadow-soft)}.legacy-icon{font-size:1.35rem}.legacy-item b{display:block}.legacy-item span{display:block;color:var(--muted);font-size:.86rem;font-weight:650;line-height:1.35}
.panel-section{background:var(--bg)}.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.big-panel{border-radius:var(--radius-xl);padding:40px;border:1px solid var(--line);box-shadow:var(--shadow-soft);background:white;min-height:620px}.dark-panel{background:var(--ink);color:white}.dark-panel h2{color:white}.dark-panel p{color:rgba(255,255,255,.78)}
.flow-mini-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:24px 0}.flow-mini{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:16px 10px;text-align:center;font-weight:950}.flow-mini b{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--lime);margin:0 auto 8px}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.service-card,.method-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:18px;text-align:center;box-shadow:0 8px 22px rgba(16,51,35,.06)}.service-card h3{font-size:.98rem}.method-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}.method-card{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);box-shadow:none}.method-card b{display:block;color:var(--lime);margin-bottom:8px}.method-card span{color:rgba(255,255,255,.78);font-weight:650;font-size:.9rem}.dark-panel .icon{stroke:var(--lime)}
.facility{background:var(--paper)}.facility-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:42px;align-items:center}.facility-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}.facility-list div{background:white;border:1px solid var(--line);border-radius:24px;padding:22px 16px;text-align:center;box-shadow:var(--shadow-soft);font-weight:950}.facility-list span{display:block;color:var(--muted);font-size:.86rem;margin-top:6px;line-height:1.4}.facility-photo{border:1px solid var(--line);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow);transform:rotate(1deg)}.facility-photo img{width:100%;height:520px;object-fit:cover}
.industries{background:var(--bg)}.industry-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.industry{background:white;border:1px solid var(--line);border-radius:30px;padding:34px 22px;text-align:center;box-shadow:var(--shadow-soft);min-height:230px;transition:transform .25s ease,box-shadow .25s ease}.industry:hover{transform:translateY(-8px) rotate(-1deg);box-shadow:var(--shadow)}.industry .icon{width:58px;height:58px;stroke:var(--ink)}.accent{stroke:var(--orange)}.industry b{display:block;font-size:1.1rem}.industry em{display:block;color:var(--muted);font-style:normal;font-weight:800}.industry small{display:block;color:var(--muted);font-weight:650;line-height:1.55;margin-top:12px}
.quality{background:var(--paper)}.quality-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:34px}.quality-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.quality-item{background:white;border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:var(--shadow-soft);display:flex;gap:14px;align-items:flex-start}.quality-item .icon{flex:0 0 36px;margin:0}.quality-item span{display:block;color:var(--muted);font-weight:650;line-height:1.5}.qc-board{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.qc-stat{background:var(--ink);color:white;border-radius:30px;padding:26px;box-shadow:var(--shadow-soft)}.qc-num{display:block;font-size:clamp(2.2rem,4vw,4rem);line-height:1;font-weight:950;color:var(--lime)}.qc-label{display:block;font-weight:950;margin-top:10px}.qc-stat small{display:block;color:rgba(255,255,255,.76);font-weight:650;margin-top:8px;line-height:1.45}
.contact{background:var(--ink);color:white;border-top-left-radius:44px;border-top-right-radius:44px}.contact h2{color:white}.contact p{color:rgba(255,255,255,.78)}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px}.contact-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:30px;padding:28px}.contact-line{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}.contact-line:last-child{border-bottom:0}.contact-line b{color:var(--lime)}.site-footer{background:#081f16;color:rgba(255,255,255,.72);padding:28px 0}.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}
@media(max-width:1080px){.hero-grid,.story-grid,.split-grid,.facility-grid,.quality-grid,.contact-grid{grid-template-columns:1fr}.legacy-strip,.industry-grid{grid-template-columns:repeat(2,1fr)}.hero-stage{height:560px}.site-nav{gap:4px;font-size:.82rem}.service-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.site-header{left:10px;right:10px}.nav-toggle{display:inline-flex}.site-nav{position:fixed;left:16px;right:16px;top:96px;display:none;flex-direction:column;align-items:stretch;background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:12px;box-shadow:var(--shadow)}.site-nav.is-open{display:flex}.brand{min-width:0}.brand-subtitle{display:none}.capability-row,.legacy-strip,.flow-mini-grid,.method-card-grid,.facility-list,.quality-list,.qc-board{grid-template-columns:1fr}}
@media(max-width:640px){.container{width:min(100% - 28px,1180px)}.header-inner{min-height:64px}.brand-mark-wrap{width:48px;height:48px}.brand-logo{width:48px;height:48px}.brand-title{font-size:.9rem}h1{font-size:clamp(3.2rem,17vw,5rem)}section{padding:70px 0}.hero{padding-top:104px}.hero-grid{gap:24px}.hero-stage{height:470px}.device-main{inset:0 0 120px 0}.metric-board{width:100%;grid-template-columns:1fr;bottom:0}.float-note{display:none}.industry-grid,.service-grid{grid-template-columns:1fr}.big-panel{min-height:auto;padding:28px}.story-copy{padding:28px}.contact-line{grid-template-columns:1fr}}


/* --- V5.1 hero/header refinements based on review --- */

/* Keep the original logo in a rectangular green block, not a circular crop */
.brand-mark-wrap{
  width:118px;
  height:62px;
  min-width:118px;
  border-radius:18px;
  background:#259743;
  overflow:hidden;
  padding:8px 12px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.brand-logo{
  width:96px;
  height:auto;
  object-fit:contain;
}

/* Make header still rounded, but prevent the logo itself from becoming a round icon */
.site-header .brand-mark-wrap img{
  border-radius:0;
}

/* Rebalance the opening hero so Chinese title is strong but no longer oversized */
.hero-grid{
  grid-template-columns:.95fr 1.05fr;
  gap:44px;
}

h1.hero-title{
  font-size:clamp(3.25rem, 6.8vw, 7.2rem);
  line-height:1.01;
  letter-spacing:-.055em;
  max-width:780px;
}
.hero-title span{
  white-space:nowrap;
}
.hero-copy .lead{
  max-width:650px;
  font-size:clamp(1.03rem, 1.45vw, 1.25rem);
}

/* English pill at top: keep compact but not tiny */
.hero-tag{
  max-width:620px;
  font-size:clamp(.88rem, 1.15vw, 1.05rem);
  line-height:1.45;
}

/* Right visual area: reduce clipping and keep metric board aligned */
.hero-stage{
  height:600px;
  min-width:0;
}
.device-main{
  inset:36px 32px 96px 34px;
}
.metric-board{
  right:26px;
  bottom:34px;
  width:min(500px, calc(100% - 52px));
  align-items:stretch;
}
.metric{
  min-height:128px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.metric strong{
  white-space:nowrap;
}
.metric span{
  line-height:1.38;
}

/* Make slogan pill more visible and easier to read */
.float-note{
  left:8px;
  bottom:18px;
  max-width:520px;
  padding:18px 26px;
  font-size:clamp(1rem, 1.25vw, 1.18rem);
  line-height:1.25;
  text-align:center;
  border-radius:999px;
  z-index:4;
}

@media(max-width:1080px){
  h1.hero-title{
    font-size:clamp(3rem, 8.8vw, 6.2rem);
  }
  .hero-title span{
    white-space:normal;
  }
  .hero-stage{
    height:540px;
  }
  .metric-board{
    right:20px;
    width:min(520px, calc(100% - 40px));
  }
}

@media(max-width:900px){
  .brand-mark-wrap{
    width:92px;
    min-width:92px;
    height:54px;
    border-radius:16px;
  }
  .brand-logo{
    width:74px;
  }
}

@media(max-width:640px){
  .brand-mark-wrap{
    width:72px;
    min-width:72px;
    height:48px;
    border-radius:14px;
    padding:6px 8px;
  }
  .brand-logo{
    width:58px;
  }
  h1.hero-title{
    font-size:clamp(2.85rem, 13vw, 4.6rem);
    line-height:1.03;
  }
  .hero-stage{
    height:500px;
  }
  .device-main{
    inset:0 0 150px 0;
  }
  .metric-board{
    right:0;
    width:100%;
    bottom:18px;
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
  }
  .metric{
    min-height:112px;
    padding:16px;
  }
  .float-note{
    display:block;
    left:0;
    bottom:0;
    max-width:100%;
    font-size:.95rem;
    transform:none;
  }
}

@media(max-width:420px){
  .metric-board{
    grid-template-columns:1fr;
  }
  .hero-stage{
    height:650px;
  }
}


/* --- V5.2 title system: keep Chinese section titles within ~two lines --- */
h2{
  font-size:clamp(2.15rem, 4.15vw, 4.65rem);
  line-height:1.05;
  letter-spacing:-.045em;
  text-wrap:balance;
}

.big-panel h2{
  font-size:clamp(2rem, 3.05vw, 3.65rem);
  line-height:1.08;
  letter-spacing:-.04em;
  max-width:13.5em;
}

.dark-panel h2{
  font-size:clamp(2rem, 3.05vw, 3.55rem);
  line-height:1.08;
  max-width:12.5em;
}

.story-copy h2,
.facility-copy h2,
.quality h2,
.contact h2{
  max-width:12.5em;
}

.industries .section-head h2{
  max-width:13em;
}

.section-head{
  max-width:980px;
}

/* Service / AI cards were too tall visually after title scaling; tighten spacing */
.big-panel{
  padding:36px;
}

.big-panel p{
  font-size:1rem;
  line-height:1.65;
}

.flow-mini-grid{
  margin:20px 0;
}

.service-card{
  min-height:112px;
  padding:16px 12px;
}

.method-card-grid{
  margin-top:20px;
}

/* Keep major hero title large, but separate from section-title rules */
h1.hero-title{
  font-size:clamp(3.1rem, 6.2vw, 6.7rem);
  line-height:1.02;
  letter-spacing:-.05em;
}

/* Make all card headings compact enough not to wrap excessively */
.service-card h3,
.industry b,
.facility-list b{
  text-wrap:balance;
}

@media(max-width:1080px){
  h2{
    font-size:clamp(2rem, 6vw, 4.1rem);
  }
  .big-panel h2,
  .dark-panel h2{
    font-size:clamp(2rem, 5.2vw, 3.7rem);
    max-width:14em;
  }
}

@media(max-width:640px){
  h2,
  .big-panel h2,
  .dark-panel h2{
    font-size:clamp(1.9rem, 9.8vw, 3.25rem);
    line-height:1.12;
    letter-spacing:-.035em;
    max-width:100%;
  }
}


/* --- V5.3 layout refinement --- */

/* Hero title: slightly smaller, keep 3 lines, add visual breathing room */
h1.hero-title{
  font-size:clamp(2.9rem, 5.85vw, 6.2rem);
  line-height:1.07;
  letter-spacing:-.045em;
  max-width:10.4em;
}
.hero-title span{
  display:block;
  margin-bottom:.10em;
}
.hero-title span:last-child{
  margin-bottom:0;
}
.hero-copy .lead{
  max-width:700px;
  line-height:1.62;
}

/* About section: switch to a full-width editorial layout */
.about-wide{
  display:grid;
  gap:24px;
}
.about-wide-head{
  background:#fff;
  border:1px solid var(--line);
  border-radius:40px;
  box-shadow:var(--shadow-soft);
  padding:42px 48px;
}
.about-wide-head h2{
  max-width:9.5em;
  margin-bottom:18px;
}
.about-wide-copy{
  max-width:1100px;
  columns:2;
  column-gap:38px;
}
.about-wide-copy p{
  break-inside:avoid;
  margin-bottom:18px;
}
.about-wide-body{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:24px;
  align-items:stretch;
}
.about-visual-card{
  background:var(--paper-2);
  border:1px solid var(--line);
  border-radius:38px;
  box-shadow:var(--shadow-soft);
  padding:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:340px;
}
.about-side{
  background:#fff;
  border:1px solid var(--line);
  border-radius:38px;
  box-shadow:var(--shadow-soft);
  padding:24px;
  display:grid;
  gap:18px;
  align-content:start;
}
.about-side .slogan-card{
  margin:0;
}
.about-side .capability-row{
  grid-template-columns:repeat(5, 1fr);
}
.about-side .capability{
  min-height:126px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

/* Research Flow + AI panels: each full-width block */
.stacked-panels{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
}
.stacked-panels .big-panel{
  min-height:auto;
  width:100%;
}
.stacked-panels .big-panel h2{
  max-width:11.5em;
}
.stacked-panels .dark-panel h2{
  max-width:11em;
}
.stacked-panels .service-grid{
  grid-template-columns:repeat(4, 1fr);
}
.stacked-panels .method-card-grid{
  grid-template-columns:repeat(3, 1fr);
}

/* Refine line breaks for Chinese headings */
.story h2,
.panel-section h2,
.quality h2{
  text-wrap:balance;
}

@media(max-width:1080px){
  .about-wide-copy{
    columns:1;
  }
  .about-wide-body{
    grid-template-columns:1fr;
  }
  .about-side .capability-row{
    grid-template-columns:repeat(3, 1fr);
  }
}
@media(max-width:760px){
  h1.hero-title{
    font-size:clamp(2.7rem, 11vw, 4.8rem);
    line-height:1.08;
  }
  .about-wide-head{
    padding:30px 24px;
  }
  .about-side .capability-row{
    grid-template-columns:repeat(2, 1fr);
  }
  .stacked-panels .service-grid,
  .stacked-panels .method-card-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}
@media(max-width:520px){
  .about-side .capability-row,
  .stacked-panels .service-grid,
  .stacked-panels .method-card-grid{
    grid-template-columns:1fr;
  }
}


/* --- V5.3.1 logo vertical centering fix --- */
.brand-mark-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:6px 12px;
}

.brand-logo{
  display:block;
  width:96px;
  height:auto;
  object-fit:contain;
  object-position:center;
  transform:translateY(-5px);
}

@media(max-width:900px){
  .brand-logo{
    width:74px;
    transform:translateY(-4px);
  }
}

@media(max-width:640px){
  .brand-logo{
    width:58px;
    transform:translateY(-3px);
  }
}


/* --- V5.4 full-width sections: keep titles in one line on desktop --- */
.about-wide-head h2,
.stacked-panels .big-panel h2,
.stacked-panels .dark-panel h2,
.quality h2,
.industries .section-head h2,
.facility-copy h2,
.contact h2{
  max-width:none;
  white-space:nowrap;
  font-size:clamp(2.25rem, 3.45vw, 4.25rem);
  line-height:1.08;
  letter-spacing:-.04em;
}

/* About copy should not begin too far to the right; keep full-width but tidy */
.about-wide-head{
  padding:40px 48px;
}
.about-wide-copy{
  columns:2;
  column-gap:44px;
  max-width:1280px;
}

/* Service and AI panels are now one-page-wide, so title + intro should breathe horizontally */
.stacked-panels .big-panel{
  padding:40px 48px;
}
.stacked-panels .big-panel p{
  max-width:1120px;
}
.stacked-panels .dark-panel p{
  max-width:1040px;
}

/* Keep the service block from looking horizontally clipped at common notebook widths */
.stacked-panels .service-grid{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}
.flow-mini-grid{
  grid-template-columns:repeat(5, minmax(0, 1fr));
}

/* Quality title specifically: no awkward break after comma when full width */
.quality .lead{
  max-width:720px;
}

@media(max-width:1180px){
  .about-wide-head h2,
  .stacked-panels .big-panel h2,
  .stacked-panels .dark-panel h2,
  .quality h2,
  .industries .section-head h2,
  .facility-copy h2,
  .contact h2{
    white-space:normal;
    text-wrap:balance;
    font-size:clamp(2rem, 4.6vw, 3.55rem);
  }
}

@media(max-width:760px){
  .about-wide-head,
  .stacked-panels .big-panel{
    padding:30px 24px;
  }
  .about-wide-copy{
    columns:1;
  }
}


/* --- V5.5 homepage / fullscreen hero layout stabilization --- */
.hero-grid{
  grid-template-columns:minmax(0, 1fr) minmax(440px, 540px);
  gap:52px;
  align-items:center;
}
.hero-copy,
.hero-stage{
  min-width:0;
}
.hero-copy{
  max-width:760px;
}
.hero-stage{
  width:min(100%, 540px);
  justify-self:end;
  height:610px;
}
.device-main{
  inset:18px 18px 108px 18px;
}
.metric-board{
  right:18px;
  bottom:26px;
  width:calc(100% - 36px);
  max-width:none;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}
.metric{
  min-height:112px;
}
.float-note{
  left:50%;
  transform:translateX(-50%);
  bottom:8px;
  width:max-content;
  max-width:calc(100% - 24px);
  text-align:center;
  z-index:6;
}
.hero-title span{
  white-space:normal;
}
h1.hero-title{
  max-width:8.6em;
  font-size:clamp(2.85rem, 5.2vw, 6rem);
  line-height:1.06;
}
html[lang="en"] h1.hero-title{
  max-width:8.9em;
  font-size:clamp(2.55rem, 4.5vw, 5.15rem);
  line-height:1.08;
  letter-spacing:-.04em;
}
html[lang="en"] .hero-copy{
  max-width:780px;
}
html[lang="en"] .hero-copy .lead{
  max-width:720px;
  font-size:clamp(1rem, 1.25vw, 1.14rem);
}
.hero-tag{
  max-width:680px;
}
@media(max-width:1320px){
  .hero-grid{
    grid-template-columns:minmax(0, 1fr) minmax(400px, 500px);
    gap:40px;
  }
  .hero-stage{
    width:min(100%, 500px);
    height:570px;
  }
}
@media(max-width:1180px){
  .hero-grid{
    grid-template-columns:1fr;
    gap:28px;
  }
  .hero-copy{
    max-width:none;
  }
  .hero-stage{
    justify-self:center;
    width:min(100%, 560px);
    height:560px;
  }
  .device-main{
    inset:10px 10px 118px 10px;
  }
  .metric-board{
    width:calc(100% - 20px);
    right:10px;
    bottom:26px;
  }
  .float-note{
    bottom:10px;
  }
}
@media(max-width:760px){
  .hero-stage{
    height:520px;
  }
  h1.hero-title{
    font-size:clamp(2.55rem, 10vw, 4.7rem);
  }
  html[lang="en"] h1.hero-title{
    font-size:clamp(2.2rem, 8.6vw, 4.2rem);
  }
}
@media(max-width:520px){
  .hero-stage{
    height:590px;
  }
  .metric-board{
    grid-template-columns:1fr;
    gap:10px;
  }
  .metric{
    min-height:96px;
  }
  .float-note{
    width:calc(100% - 14px);
    max-width:calc(100% - 14px);
    white-space:normal;
    font-size:.95rem;
    line-height:1.2;
  }
}



/* --- V5.5.1 use provided logo image and center it precisely --- */
.brand{
  gap:16px;
}
.brand-mark-wrap{
  width:124px;
  min-width:124px;
  height:74px;
  padding:0;
  border-radius:22px;
  background:transparent;
  box-shadow:0 8px 18px rgba(16,51,35,.14);
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
}
.brand-logo{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center center;
  transform:none !important;
  border-radius:22px;
}

@media(max-width:900px){
  .brand-mark-wrap{
    width:108px;
    min-width:108px;
    height:64px;
    border-radius:18px;
  }
  .brand-logo{
    border-radius:18px;
  }
}

@media(max-width:640px){
  .brand-mark-wrap{
    width:88px;
    min-width:88px;
    height:52px;
    border-radius:14px;
  }
  .brand-logo{
    border-radius:14px;
  }
}
