
:root{
  --bg:#f4f3ef;
  --paper:#ffffff;
  --paper-2:#faf8f3;
  --ink:#17201d;
  --muted:#6a726d;
  --line:#ddd8cf;
  --deep:#15342d;
  --deep-2:#21443b;
  --accent:#9c6444;
  --max:1520px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans KR",Arial,sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,#f7f5ef 0%,var(--bg) 100%);
  line-height:1.7;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
.wrap{width:min(calc(100% - 48px),var(--max));margin:0 auto}

.topbar{
  position:sticky;top:0;z-index:120;
  background:rgba(247,245,239,.96);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(23,32,29,.08);
}
.topbar-inner{
  min-height:96px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:26px;
}
.brand{display:flex;align-items:center;gap:16px;min-width:0}
.brand-logo{
  width:96px;height:74px;background:#fff;border:1px solid rgba(23,32,29,.08);
  display:grid;place-items:center;border-radius:10px;overflow:hidden;flex-shrink:0;
}
.brand-logo img{width:100%;height:100%;object-fit:contain;background:#fff}
.brand-copy strong{display:block;color:var(--deep);font-size:1.05rem;letter-spacing:-.04em}
.brand-copy span{display:block;color:var(--muted);font-size:.82rem}

.nav-rail{display:flex;justify-content:center;align-items:center;gap:34px;height:96px}
.nav-item{position:static;height:96px;display:flex;align-items:center;font-size:1.04rem;font-weight:800;color:#31413b}
.nav-item > a{display:flex;align-items:center;height:100%;position:relative;padding:0 2px}
.nav-item > a::after{
  content:"";position:absolute;left:0;right:0;bottom:22px;height:2px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .2s ease;
}
.nav-item:hover > a::after,.nav-item.active > a::after{transform:scaleX(1)}

.actions{display:flex;align-items:center;gap:12px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 22px;border:1px solid transparent;border-radius:999px;
  font-weight:800;white-space:nowrap;transition:transform .18s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--deep);color:#fff}
.btn-outline{background:transparent;color:var(--deep);border-color:rgba(22,51,45,.15)}
.eng-link{font-weight:800;color:var(--muted)}
.menu-toggle{width:42px;height:42px;border:0;background:transparent;display:none;cursor:pointer;padding:0}
.menu-toggle span,.menu-toggle::before,.menu-toggle::after{
  content:"";display:block;width:24px;height:2px;background:var(--deep);margin:6px auto;border-radius:999px;
}

.mega{
  position:fixed;
  left:24px;
  right:24px;
  top:96px;
  background:rgba(255,255,255,.98);
  border:1px solid var(--line);
  border-top:0;
  box-shadow:0 24px 60px rgba(23,32,29,.10);
  display:none;
  z-index:119;
}
.nav-item:hover .mega{display:block}
.mega-inner{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.mega-col{
  min-height:248px;
  padding:26px 24px 28px;
  border-right:1px solid var(--line);
}
.mega-col:last-child{border-right:0}
.mega-col h4{margin:0 0 16px;color:var(--deep);font-size:1.02rem;letter-spacing:-.03em}
.mega-col a{display:block;color:var(--muted);font-size:.97rem;padding:6px 0}
.mega-col a:hover{color:var(--deep)}

.page-head{padding:18px 0 0}
.breadcrumb{font-size:.9rem;color:var(--muted)}

.main-hero{
  position:relative;
  min-height:860px;
  overflow:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#0f1715;
}
.main-hero-slides{position:absolute;inset:0;overflow:hidden}
.main-hero-slide{
  position:absolute;inset:0;opacity:0;transition:opacity 1s ease-in-out;
  background-position:center;background-size:cover;background-repeat:no-repeat;
}
.main-hero-slide.active{opacity:1}
.main-hero-slide::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(8,12,14,.70) 0%, rgba(8,12,14,.42) 34%, rgba(8,12,14,.14) 62%, rgba(8,12,14,.34) 100%),
    linear-gradient(180deg, rgba(8,12,14,.14), rgba(8,12,14,.40));
}
.main-hero-slide.s1{background-image:url('./assets/hero-facility.svg')}
.main-hero-slide.s2{background-image:url('./assets/hero-water.svg')}
.main-hero-slide.s3{background-image:url('./assets/hero-reuse.svg')}
.main-hero-slide.s4{background-image:url('./assets/hero-tunnel.svg')}

.main-hero-inner{
  position:relative;z-index:2;min-height:860px;display:flex;align-items:flex-end;padding:0 0 92px;
}
.main-hero-copy{max-width:980px;color:#fff}
.main-hero-copy h1{
  margin:0;
  font-size:clamp(3rem,5.6vw,6.2rem);
  line-height:.98;
  letter-spacing:-.09em;
  font-weight:900;
}
.main-hero-copy p{
  margin:26px 0 0;
  max-width:760px;
  color:rgba(255,255,255,.86);
  font-size:1.08rem;
}
.main-hero-line{
  width:220px;height:3px;background:rgba(255,255,255,.74);margin-top:44px;position:relative;
}
.main-hero-line::after{
  content:"";position:absolute;left:232px;top:0;width:46px;height:3px;background:rgba(255,255,255,.74);
}
.main-hero-dots{position:absolute;left:0;right:0;bottom:34px;z-index:3}
.main-hero-dots .wrap{display:flex;gap:10px;align-items:center}
.main-hero-dot{width:42px;height:4px;background:rgba(255,255,255,.28)}
.main-hero-dot.active{background:rgba(255,255,255,.84)}

.main-section{padding:82px 0 44px}
.main-section-head{
  display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:34px;
}
.main-section-head h2{
  margin:0;font-size:4rem;line-height:.95;letter-spacing:-.08em;color:#2b2f2d;
}
.main-section-head p{max-width:430px;margin:0;color:var(--muted)}

.business-visual-list{display:grid;gap:28px}
.business-visual{
  position:relative;
  min-height:380px;
  overflow:hidden;
  background:#cfd6d9;
}
.business-visual::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(8,12,14,.42) 0%, rgba(8,12,14,.18) 42%, rgba(8,12,14,0) 70%);
  z-index:1;
}
.business-visual::after{
  content:"";position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;
}

.business-overlay{
  position:relative;z-index:2;width:min(100% - 56px, 520px);margin:0 0 0 56px;padding-top:146px;color:#fff;
}
.business-overlay h3{
  margin:0 0 14px;font-size:3.4rem;line-height:.95;letter-spacing:-.08em;
}
.business-overlay p{
  margin:0;font-size:1.04rem;color:rgba(255,255,255,.92);max-width:430px;
}
.business-next{
  position:fixed;right:34px;bottom:28px;width:78px;height:78px;background:#0067b8;color:#fff;
  display:grid;place-items:center;font-size:2.1rem;font-weight:700;box-shadow:0 16px 32px rgba(0,103,184,.22);z-index:40;
}

.section{padding:110px 0}
.section-head{
  display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:26px;align-items:end;margin-bottom:28px;
}
.section-kicker{display:inline-block;margin-bottom:10px;color:var(--accent);font-size:.88rem;font-weight:800;letter-spacing:.06em}
.section-head h2{margin:0 0 10px;font-size:clamp(2.1rem,3.8vw,3.6rem);line-height:1.02;letter-spacing:-.06em;color:var(--deep)}
.section-head p,.section-note{margin:0;color:var(--muted)}

.editorial{
  display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.editorial-panel{
  padding:36px 34px 38px;background:var(--paper);border-right:1px solid var(--line);
}
.editorial-panel:last-child{border-right:0}
.editorial-panel.dark{background:linear-gradient(160deg,#152320,#223732);color:#fff}
.editorial-panel h3{margin:0 0 14px;font-size:1.62rem;line-height:1.08;letter-spacing:-.05em}
.editorial-panel p{margin:0;color:inherit}
.editorial-panel.dark p{color:rgba(255,255,255,.82)}
.editorial-points{display:grid;gap:0;margin-top:24px}
.editorial-point{
  display:grid;grid-template-columns:116px 1fr;gap:18px;padding:16px 0;border-top:1px solid rgba(23,32,29,.10);
}
.editorial-panel.dark .editorial-point{border-top-color:rgba(255,255,255,.12)}
.editorial-point strong{display:block}
.editorial-point span{color:var(--muted);font-size:.94rem}
.editorial-panel.dark .editorial-point span{color:rgba(255,255,255,.74)}

.business-table{display:grid;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.biz-row{
  display:grid;grid-template-columns:140px 1.15fr .85fr;gap:24px;padding:26px 0;border-top:1px solid var(--line);
}
.biz-row:first-child{border-top:0}
.biz-no{font-size:3.1rem;line-height:1;font-weight:900;letter-spacing:-.09em;color:#c9b698}
.biz-main strong{display:block;color:var(--deep);font-size:1.32rem;line-height:1.08;letter-spacing:-.04em;margin-bottom:8px}
.biz-main p{margin:0;color:var(--muted)}
.biz-meta{color:var(--muted);font-size:.94rem;padding-left:20px;border-left:1px solid var(--line)}
.biz-meta div+div{margin-top:6px}

.contact-editorial{
  display:grid;grid-template-columns:1fr .9fr;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.contact-col{
  padding:34px 32px 36px;background:var(--paper);border-right:1px solid var(--line);
}
.contact-col:last-child{border-right:0}
.contact-col h3{margin:0 0 12px;color:var(--deep);font-size:1.5rem;line-height:1.1;letter-spacing:-.04em}
.contact-col p{margin:0;color:var(--muted)}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px}
.field{display:grid;gap:8px}
.field.full{grid-column:1 / -1}
label{font-size:.92rem;font-weight:800;color:var(--deep)}
input,textarea{width:100%;padding:15px 16px;border:1px solid var(--line);background:#fffdf8;color:var(--ink);outline:none}
textarea{min-height:160px;resize:vertical}
.info-stack{display:grid;gap:12px;margin-top:18px}
.info-box{padding:18px;background:#f8f3ea;border:1px solid #e4dccb}
.info-box strong{display:block;color:var(--deep);margin-bottom:4px}
.info-box span{color:var(--muted)}
.map-frame{min-height:360px;border:1px solid var(--line);background:linear-gradient(180deg,#f8f3e9,#eee5d6)}
.footer{padding:40px 0 60px;color:var(--muted);font-size:.95rem}
.footer-inner{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

@media (max-width:1280px){
  .mega{display:none!important}
  .main-hero{min-height:700px}
  .main-hero-inner{min-height:700px;padding-bottom:62px}
  .section-head,.editorial,.biz-row,.contact-editorial,.fields{grid-template-columns:1fr}
  .biz-meta{border-left:0;padding-left:0}
  .main-section-head{display:block}
}
@media (max-width:980px){
  .nav-rail{display:none}
  .menu-toggle{display:block}
  .brand-copy span{display:none}
  .topbar-inner{grid-template-columns:auto 1fr auto}
}
@media (max-width:820px){
  .main-hero{min-height:560px}
  .main-hero-inner{min-height:560px;padding-bottom:34px}
  .main-hero-copy h1{font-size:clamp(2.1rem,10vw,3.4rem)}
  .business-visual{min-height:300px}
  .business-overlay{margin-left:20px;width:calc(100% - 40px);padding-top:88px}
  .business-next{width:64px;height:64px;right:18px;bottom:18px}
}


/* v23 business-specific photo selection */
.main-hero-slide.s1{background-image:url('https://images.pexels.com/photos/34118906/pexels-photo-34118906.jpeg?auto=compress&cs=tinysrgb&w=1800');}
.main-hero-slide.s2{background-image:url('https://images.pexels.com/photos/35425762/pexels-photo-35425762.jpeg?auto=compress&cs=tinysrgb&w=1800');}
.main-hero-slide.s3{background-image:url('https://images.pexels.com/photos/10390780/pexels-photo-10390780.jpeg?auto=compress&cs=tinysrgb&w=1800');}
.main-hero-slide.s4{background-image:url('https://images.pexels.com/photos/19369734/pexels-photo-19369734.jpeg?auto=compress&cs=tinysrgb&w=1800');}
.main-hero-slide.s5{background-image:url('https://images.pexels.com/photos/19351240/pexels-photo-19351240.jpeg?auto=compress&cs=tinysrgb&w=1800');}

.business-visual.media-water::after{background-image:url('https://images.pexels.com/photos/34118906/pexels-photo-34118906.jpeg?auto=compress&cs=tinysrgb&w=1800');}
.business-visual.media-reuse::after{background-image:url('https://images.pexels.com/photos/35425762/pexels-photo-35425762.jpeg?auto=compress&cs=tinysrgb&w=1800');}
.business-visual.media-infra::after{background-image:url('https://images.pexels.com/photos/10390780/pexels-photo-10390780.jpeg?auto=compress&cs=tinysrgb&w=1800');}


/* v28 nav underline stabilization */
.nav-item > a::after{transform:scaleX(0);}
.nav-item:hover > a::after,
.nav-item.active > a::after{transform:scaleX(1);}


/* v29 simplify company mega after removing capability */
.mega-inner{
  grid-template-columns: repeat(5,minmax(0,1fr));
}


/* v31 category pages */
.category-page-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.category-main{padding:38px 36px;background:var(--paper);border-right:1px solid var(--line)}
.category-side{padding:38px 36px;background:linear-gradient(160deg,#152320,#223732);color:#fff}
.category-main h3,.category-side h3{margin:0 0 16px;font-size:1.6rem;line-height:1.1;letter-spacing:-.04em}
.category-main p,.category-side p{margin:0 0 16px}
.category-points{display:grid;gap:0;margin-top:18px}
.category-point{display:grid;grid-template-columns:138px 1fr;gap:18px;padding:16px 0;border-top:1px solid rgba(23,32,29,.10)}
.category-side .category-point{border-top-color:rgba(255,255,255,.14)}
.category-point strong{display:block}
.category-point span{color:var(--muted)}
.category-side .category-point span{color:rgba(255,255,255,.78)}
@media (max-width:1280px){
  .category-page-grid{grid-template-columns:1fr}
  .category-main{border-right:0;border-bottom:1px solid var(--line)}
}


/* v32 page polish */
.category-page-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
.category-main{padding:40px 38px;background:var(--paper);border-right:1px solid var(--line)}
.category-side{padding:40px 38px;background:linear-gradient(160deg,#14231f,#213b34);color:#fff}
.category-main h3,.category-side h3{margin:0 0 16px;font-size:1.62rem;line-height:1.08;letter-spacing:-.05em}
.category-main p,.category-side p{margin:0 0 16px}
.category-points{display:grid;gap:0;margin-top:18px}
.category-point{display:grid;grid-template-columns:146px 1fr;gap:18px;padding:16px 0;border-top:1px solid rgba(23,32,29,.10)}
.category-side .category-point{border-top-color:rgba(255,255,255,.12)}
.category-point strong{display:block}
.category-point span{color:var(--muted)}
.category-side .category-point span{color:rgba(255,255,255,.78)}
.section-note:empty{display:none}
@media (max-width:1280px){
  .category-page-grid{grid-template-columns:1fr}
  .category-main{border-right:0;border-bottom:1px solid var(--line)}
}


/* v33 CEO signoff */
.ceo-signoff{
  margin-top:34px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:20px;
}
.ceo-signoff-label{
  font-size:1.05rem;
  color:rgba(255,255,255,.92);
  font-weight:800;
  letter-spacing:-.02em;
}
.ceo-signature{
  font-family:"Brush Script MT","Segoe Script","Apple Chancery","Nanum Pen Script",cursive;
  font-size:2.3rem;
  line-height:1;
  color:#fff;
  letter-spacing:.02em;
}


/* v34 real signature image */
.ceo-signoff{
  margin-top:34px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:20px;
}
.ceo-signoff-label{
  font-size:1.05rem;
  color:rgba(255,255,255,.92);
  font-weight:800;
  letter-spacing:-.02em;
}
.ceo-signature-image{
  height:86px;
  width:auto;
  display:block;
  opacity:1;
  filter:drop-shadow(0 0 8px rgba(255,255,255,.28));
}


/* v38 remove empty meta copy */
.section-head p:empty{display:none;}

.eng-link.current{
  font-weight:800;
  color:var(--ink);
  text-decoration:underline;
  text-underline-offset:6px;
}


/* v58 best mobile rebuild */
.mobile-menu-button,
.mobile-menu-overlay,
.mobile-menu-panel{
  display:none;
}

@media (max-width: 900px){
  body.menu-open{
    overflow:hidden !important;
  }

  .nav-rail,
  .menu-toggle,
  .mobile-nav-toggle,
  .mega,
  .mega-inner{
    display:none !important;
  }

  .topbar,
  .topbar *{
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
  }

  .topbar-inner{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:12px !important;
    padding:14px 0 !important;
  }

  .brand{
    display:flex !important;
    align-items:center !important;
    gap:14px !important;
    width:100% !important;
    min-width:0 !important;
  }

  .brand-logo{
    width:84px !important;
    height:84px !important;
    flex:0 0 84px !important;
  }

  .brand-copy{
    min-width:0 !important;
    flex:1 1 auto !important;
  }

  .brand-copy strong{
    display:block !important;
    white-space:nowrap !important;
    word-break:keep-all !important;
    font-size:clamp(1rem, 4.6vw, 1.3rem) !important;
    line-height:1.15 !important;
  }

  .brand-copy span{
    display:none !important;
  }

  .actions{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:12px !important;
    width:100% !important;
  }

  .btn.btn-outline{
    height:54px !important;
    padding:0 18px !important;
    font-size:.98rem !important;
    white-space:nowrap !important;
  }

  .eng-link{
    font-size:1rem !important;
    white-space:nowrap !important;
  }

  .mobile-menu-button{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    min-height:44px !important;
    border:0 !important;
    background:transparent !important;
    padding:0 !important;
    cursor:pointer !important;
    position:relative !important;
    z-index:10031 !important;
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
  }

  .mobile-menu-button span{
    position:relative !important;
    display:block !important;
    width:28px !important;
    height:2.5px !important;
    background:#16362f !important;
    border-radius:2px !important;
    transition:background .18s ease !important;
  }

  .mobile-menu-button span::before,
  .mobile-menu-button span::after{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    width:28px !important;
    height:2.5px !important;
    background:#16362f !important;
    border-radius:2px !important;
    transition:transform .18s ease, top .18s ease !important;
  }

  .mobile-menu-button span::before{ top:-8px !important; }
  .mobile-menu-button span::after{ top:8px !important; }

  .mobile-menu-button.is-open span{ background:transparent !important; }
  .mobile-menu-button.is-open span::before{ top:0 !important; transform:rotate(45deg) !important; }
  .mobile-menu-button.is-open span::after{ top:0 !important; transform:rotate(-45deg) !important; }

  .mobile-menu-overlay{
    display:block !important;
    position:fixed !important;
    inset:0 !important;
    background:rgba(8,16,15,.34) !important;
    backdrop-filter:blur(3px) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    z-index:10020 !important;
    transition:opacity .2s ease, visibility .2s ease !important;
  }

  .mobile-menu-overlay.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .mobile-menu-panel{
    display:flex !important;
    flex-direction:column !important;
    position:fixed !important;
    top:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:min(86vw, 390px) !important;
    background:#f7f4ee !important;
    box-shadow:-18px 0 40px rgba(0,0,0,.16) !important;
    transform:translateX(100%) !important;
    z-index:10021 !important;
    transition:transform .22s ease !important;
  }

  .mobile-menu-panel.is-open{
    transform:translateX(0) !important;
  }

  .mobile-menu-head{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:14px !important;
    padding:20px 18px 16px !important;
    border-bottom:1px solid rgba(18,38,33,.08) !important;
  }

  .mobile-menu-head strong{
    display:block !important;
    color:#16362f !important;
    font-size:1.02rem !important;
    letter-spacing:-.02em !important;
  }

  .mobile-menu-close{
    width:40px !important;
    height:40px !important;
    border:0 !important;
    background:transparent !important;
    color:#16362f !important;
    font-size:2rem !important;
    line-height:1 !important;
    cursor:pointer !important;
  }

  .mobile-menu-nav{
    overflow:auto !important;
    padding:8px 0 20px !important;
  }

  .mobile-menu-group{
    border-bottom:1px solid rgba(18,38,33,.08) !important;
  }

  .mobile-menu-group-toggle{
    width:100% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    padding:18px 18px !important;
    background:transparent !important;
    border:0 !important;
    color:#16362f !important;
    font-size:1.02rem !important;
    font-weight:800 !important;
    text-align:left !important;
    cursor:pointer !important;
  }

  .mobile-menu-plus{
    color:rgba(22,54,47,.6) !important;
    font-size:1.3rem !important;
    line-height:1 !important;
  }

  .mobile-menu-links{
    display:none !important;
    padding:0 18px 16px !important;
  }

  .mobile-menu-links.open{
    display:block !important;
  }

  .mobile-menu-links a{
    display:block !important;
    padding:8px 0 !important;
    color:#16362f !important;
    font-size:.96rem !important;
    line-height:1.45 !important;
  }

  .main-hero-copy{
    padding:42px 0 72px !important;
  }

  .main-hero-copy h1{
    font-size:clamp(1.9rem, 12vw, 3rem) !important;
    line-height:.98 !important;
  }

  .main-hero-copy p{
    font-size:.95rem !important;
    line-height:1.72 !important;
    word-break:keep-all !important;
  }

  .business-next{
    width:72px !important;
    height:72px !important;
    right:18px !important;
    bottom:18px !important;
  }
}
