/* Identity layer: loaded after theme.css so palette generation cannot wipe layout. */
body{font-family:var(--font)}
.footer-brand{min-width:0}
.footer-brand p{max-width:38em}
.detail-info .sub{color:var(--theme-muted);margin:0 0 16px}
.catalog-intro .section-title{margin-bottom:28px}

body.demo03{
  --theme-surface:#fbfaf6;--theme-surface-soft:#f3efe6;
  --font:"Plus Jakarta Sans",Inter,sans-serif;--max:1180px;
}
.d3-metrics{background:var(--theme-surface)}

/* Home uses a full-bleed banner. */
body.demo03.is-home .d3-hero{position:relative;isolation:isolate;min-height:max(680px,calc(100svh - 115px));padding:0;overflow:hidden;background:#101722;color:#fff}
body.demo03.is-home .d3-hero-grid{display:flex;align-items:center;min-height:inherit}
body.demo03.is-home .d3-hero-grid>div:first-child{position:relative;z-index:2;max-width:780px;padding:110px 0 130px}
body.demo03.is-home .d3-hero-photo{position:absolute;inset:0;z-index:0}
body.demo03.is-home .d3-hero-photo .d2-hero{width:100%;height:100%;min-height:100%;border-radius:0}
body.demo03.is-home .d3-hero-photo .d2-hero:after{background:linear-gradient(90deg,#101722f2 0%,#101722ba 43%,#10172250 100%)}
body.demo03.is-home .d3-hero-photo img,body.demo03.is-home .d3-hero-photo .d2-hero-slide img{border-radius:0}
body.demo03.is-home .d3-hero h1{max-width:14ch;font-size:clamp(58px,6.8vw,104px);line-height:1.02;letter-spacing:-.055em;color:#fff}
body.demo03.is-home .d3-hero .d2-kicker{color:#f5ca78}
body.demo03.is-home .d3-hero .d2-lede{max-width:560px;color:#eef2f5;font-size:clamp(17px,1.5vw,21px)}
body.demo03.is-home .d3-hero .btn.outline{color:#fff;border-color:#ffffffa8;background:#ffffff12}
body.demo03.is-home .d3-hero .d2-hero-dots{bottom:34px}
/* Home banner: a soft gold light passes over the image. */
body.demo03.is-home .d3-hero:after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(105deg,transparent 40%,#ffd68a26 49%,#ffd68a08 54%,transparent 63%);
  background-size:200% 100%;animation:d03-banner-light 8s ease-in-out infinite
}
@keyframes d03-banner-light{
  0%,18%{background-position:140% 0}
  65%,100%{background-position:-140% 0}
}
@media(prefers-reduced-motion:reduce){
  body.demo03.is-home .d3-hero:after{animation:none;background:none}
}
@media(max-width:700px){
  body.demo03.is-home .d3-hero{min-height:max(650px,calc(100svh - 76px))}
  body.demo03.is-home .d3-hero-grid>div:first-child{padding:105px 0 100px}
  body.demo03.is-home .d3-hero h1{font-size:clamp(46px,11vw,70px)}
  body.demo03.is-home .d3-hero-photo .d2-hero:after{background:linear-gradient(90deg,#101722e8,#10172291)}
}

/* About is an editorial company profile, with the image and story reversed. */
body.demo03.is-about{background:#fbfaf6}
body.demo03.is-about .d3-hero{padding:70px 0 80px;background:#f2eee5}
body.demo03.is-about .d3-hero-grid{
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(40px,6vw,100px);align-items:center
}
body.demo03.is-about .d3-hero-grid>div:first-child{
  grid-column:2;grid-row:1;min-width:0;padding:32px 0
}
body.demo03.is-about .d3-hero-grid>div:first-child:before{
  content:"COMPANY PROFILE";display:block;margin-bottom:12px;
  color:#9b6b21;font-size:12px;font-weight:800;letter-spacing:.18em
}
body.demo03.is-about .d3-hero h1{
  max-width:none;margin-bottom:20px;
  font:600 clamp(38px,3.4vw,54px)/1.12 Georgia,serif;
  letter-spacing:-.04em;color:#18232d
}
body.demo03.is-about .d3-hero .d2-kicker{color:#a46e20}
body.demo03.is-about .d3-hero .d2-lede{
  max-width:510px;color:#4e5a62;font-size:18px;line-height:1.6
}
body.demo03.is-about .d3-hero-photo{
  grid-column:1;grid-row:1;min-height:480px;height:min(62svh,600px);
  padding:10px;background:#dcd4c6;box-shadow:22px 22px 0 #ded6c6
}
body.demo03.is-about .d3-hero-photo img{
  width:100%;height:100%;object-fit:cover;object-position:65% center;
  border-radius:0
}
body.demo03.is-about .d3-metrics{display:none}
body.demo03.is-about .d3-metrics+.section{padding:88px 0;background:#fff}
body.demo03.is-about .d3-values{
  grid-template-columns:repeat(4,minmax(0,1fr));gap:0;
  border-top:1px solid #dcdedc;border-bottom:1px solid #dcdedc
}
body.demo03.is-about .d3-values article{
  min-width:0;padding:30px 24px;background:transparent;
  border-right:1px solid #dcdedc;border-radius:0;box-shadow:none
}
body.demo03.is-about .d3-values article:last-child{border-right:0}
body.demo03.is-about .d3-values span{font-size:22px;color:#ad7929}
body.demo03.is-about .d3-values h3{color:#18232d}
body.demo03.is-about .section.soft{background:#eaece6}
body.demo03.is-about .section.soft>.container{
  display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(36px,6vw,90px)
}
body.demo03.is-about .d3-timeline{border-left-color:#b8c5b5}
body.demo03.is-about .d3-manufacturing-visual{margin-top:28px;overflow:hidden;border-radius:8px}
body.demo03.is-about .d3-manufacturing-visual img{display:block;width:100%;height:310px;object-fit:cover;object-position:center}
body.demo03.is-about .d3-manufacturing-link{display:inline-block;margin-top:18px;color:#9b6b21;font-weight:700;text-decoration:none}
@media(max-width:950px){
  body.demo03.is-about .d3-hero-grid{grid-template-columns:1fr;gap:36px}
  body.demo03.is-about .d3-hero-grid>div:first-child{grid-column:1;grid-row:1;padding:0}
  body.demo03.is-about .d3-hero-photo{grid-column:1;grid-row:2;min-height:0;height:420px;box-shadow:12px 12px 0 #ded6c6}
  body.demo03.is-about .d3-values{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.demo03.is-about .d3-values article:nth-child(2){border-right:0}
  body.demo03.is-about .d3-values article:nth-child(-n+2){border-bottom:1px solid #dcdedc}
  body.demo03.is-about .section.soft>.container{grid-template-columns:1fr}
}
@media(max-width:600px){
  body.demo03.is-about .d3-hero{padding:48px 0 60px}
  body.demo03.is-about .d3-hero h1{font-size:clamp(34px,9vw,42px)}
  body.demo03.is-about .d3-hero-photo{height:300px}
  body.demo03.is-about .d3-manufacturing-visual img{height:240px}
  body.demo03.is-about .d3-metrics+.section{padding:60px 0}
  body.demo03.is-about .d3-values{grid-template-columns:1fr}
  body.demo03.is-about .d3-values article{border-right:0;border-bottom:1px solid #dcdedc}
  body.demo03.is-about .d3-values article:last-child{border-bottom:0}
}

/* Additional home-page buyer support content. */
body.demo03.is-home .home-support{background:var(--theme-surface-soft)}
body.demo03.is-home .home-support-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px;align-items:end;margin-bottom:34px}
body.demo03.is-home .home-support-head h2{margin:8px 0 0;font-size:clamp(30px,3.5vw,48px);line-height:1.08}
body.demo03.is-home .home-support-head>p{margin:0;color:var(--theme-muted);font-size:17px;line-height:1.65}
body.demo03.is-home .home-support-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
body.demo03.is-home .home-support-grid article{padding:28px;border:1px solid var(--theme-line);background:var(--theme-surface)}
body.demo03.is-home .home-support-grid span{display:block;color:var(--theme-primary);font-weight:800;letter-spacing:.08em}
body.demo03.is-home .home-support-grid h3{margin:20px 0 10px;font-size:21px}
body.demo03.is-home .home-support-grid p{margin:0;color:var(--theme-muted);line-height:1.6}
body.demo03.is-home .home-support-foot{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:14px;padding:24px 28px;background:var(--theme-dark);color:#fff}
body.demo03.is-home .home-support-foot strong{font-size:20px}
body.demo03.is-home .home-support-foot p{margin:5px 0 0;color:#cbd5e1}
@media(max-width:800px){body.demo03.is-home .home-support-head{grid-template-columns:1fr;gap:12px}body.demo03.is-home .home-support-grid{grid-template-columns:1fr}body.demo03.is-home .home-support-foot{align-items:flex-start;flex-direction:column}}
/* Global heading guard: keep page titles from overwhelming layouts. */
body[class*="demo"] h1{font-size:clamp(30px,3.2vw,48px)!important;line-height:1.08!important;letter-spacing:-.025em;overflow-wrap:break-word;text-wrap:balance}
@media(max-width:600px){body[class*="demo"] h1{font-size:clamp(28px,9vw,38px)!important}}
