*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Pretendard,"Noto Sans KR","Malgun Gothic",Arial,sans-serif;color:#172033;background:#fff;line-height:1.7}.container{width:min(1180px,calc(100% - 40px));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid #e8edf3}.nav{height:78px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;color:#172033;text-decoration:none}.brand-text{display:flex;flex-direction:column;line-height:1.1}.brand-text strong{letter-spacing:.08em}.brand-text small{margin-top:5px;color:#6a7688}.nav nav{display:flex;gap:28px}.nav nav a{color:#364154;text-decoration:none;font-size:14px;font-weight:700}.hero{background:linear-gradient(135deg,#f7f9fc 0%,#eef4f9 60%,#e9f1f8 100%);overflow:hidden}.hero-grid{min-height:690px;display:grid;grid-template-columns:1.08fr .92fr;gap:70px;align-items:center}.eyebrow,.section-kicker{font-size:13px;font-weight:800;letter-spacing:.15em;color:#0f5f9d}.hero h1{font-size:48px;line-height:1.16;margin:18px 0 24px;letter-spacing:-.04em}.hero h1 span{color:#0f5f9d}.hero-desc{font-size:19px;color:#59667a;max-width:690px}.hero-actions{display:flex;gap:12px;margin:34px 0 26px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:10px;text-decoration:none;font-weight:800}.primary{background:#0f5f9d;color:#fff}.ghost{border:1px solid #b9c6d5;color:#263247;background:#fff}.light{background:#fff;color:#12304e}.hero-tags{display:flex;gap:10px;flex-wrap:wrap}.hero-tags span{font-size:12px;font-weight:800;padding:7px 10px;border-radius:8px;background:#fff;border:1px solid #dbe4ed;color:#40506a}.hero-visual{display:flex;justify-content:center}.panel{width:100%;max-width:470px;background:#222b35;border:14px solid #35414e;border-radius:14px;box-shadow:0 30px 60px rgba(40,60,80,.18)}.panel-head{height:52px;background:#151b22;color:#aab4bf;display:flex;align-items:center;gap:8px;padding:0 14px;font-size:11px;letter-spacing:.13em}.panel-head b{margin-left:auto}.dot{width:10px;height:10px;border-radius:50%;background:#7c8791}.dot.red{background:#d65f59}.dot.amber{background:#d6a94e}.dot.green{background:#65ad78}.panel-body{padding:28px;background:linear-gradient(180deg,#2d3742,#202830)}.screen{background:#071b2d;border:2px solid #64788c;border-radius:5px;padding:20px;color:#c9e9ff;box-shadow:inset 0 0 30px rgba(0,104,177,.2)}.screen-title{font-size:12px;color:#63c4ff;border-bottom:1px solid #184c70;padding-bottom:10px;margin-bottom:12px}.status-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #12344d}.status-row:last-child{border:0}.ok{color:#77e49b}.io-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:25px}.io-grid span{height:34px;border-radius:4px;background:linear-gradient(#52606d,#323c46);border:1px solid #71808e}.section{padding:110px 0}.alt{background:#f7f9fc}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.section h2{font-size:38px;line-height:1.25;margin:14px 0 0;letter-spacing:-.03em}.lead{font-size:18px;color:#566276}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:48px}.card{background:#fff;border:1px solid #e3e9ef;border-radius:14px;padding:26px;min-height:270px}.card .num{font-size:12px;font-weight:900;color:#0f5f9d}.card h3{font-size:20px;margin:30px 0 12px}.card p{color:#667286;font-size:14px}.strength-grid{margin-top:48px;border-top:1px solid #dfe5eb}.strength-item{display:grid;grid-template-columns:80px 1fr;gap:10px;padding:30px 0;border-bottom:1px solid #dfe5eb}.strength-item>span{font-weight:900;color:#0f5f9d}.strength-item h3{margin:0 0 6px;font-size:22px}.strength-item p{margin:0;color:#667286}.cta{background:#0d3152;color:#fff;padding:62px 0}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta p{margin:0 0 8px;font-size:12px;letter-spacing:.15em;color:#9ec9e8;font-weight:800}.cta h2{margin:0;font-size:30px}.contact-note{color:#667286;max-width:480px}.contact-box{border:1px solid #e1e7ee;border-radius:14px;overflow:hidden}.contact-box div{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:18px 22px;border-bottom:1px solid #edf1f5}.contact-box div:last-child{border-bottom:0}.contact-box span{color:#7b8795;font-size:14px}.contact-box strong{font-weight:700}.footer-inner{min-height:150px;display:flex;justify-content:space-between;align-items:center;color:#7c8794}.footer-inner strong{color:#172033;letter-spacing:.08em}.footer-inner p{margin:4px 0 0;font-size:13px}footer{border-top:1px solid #e8edf3}@media(max-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.nav nav{display:none}.hero-grid,.two-col{grid-template-columns:1fr}.hero-grid{padding:80px 0;gap:50px}.hero h1{font-size:44px}.cards{grid-template-columns:1fr 1fr}.hero-visual{max-width:560px}.section{padding:80px 0}.cta-inner{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.container{width:min(100% - 28px,1180px)}.hero-grid{min-height:auto;padding:60px 0}.hero h1{font-size:36px}.hero-desc{font-size:16px}.hero-actions{flex-direction:column}.btn{width:100%}.cards{grid-template-columns:1fr}.section h2{font-size:30px}.section{padding:64px 0}.panel{border-width:8px}.contact-box div{grid-template-columns:1fr;gap:2px}.cta h2{font-size:25px}.footer-inner{padding:30px 0;align-items:flex-start;flex-direction:column;gap:20px}}
.brand-logo-wrap{display:flex;align-items:center;justify-content:center;width:76px;height:48px;flex:0 0 auto}
.brand-logo{display:block;max-width:100%;max-height:100%;width:auto;height:auto}
.footer-brand{display:flex;align-items:center;gap:14px}
.footer-logo{display:block;width:78px;height:auto;object-fit:contain}

@media(max-width:560px){
  .brand-logo-wrap{width:64px;height:42px}
  .brand-text strong{font-size:14px}
  .brand-text small{font-size:11px}
  .footer-logo{width:68px}
}

/* ===== V6: 메인 현장사진 ===== */
.hero-photo-frame{
  margin:0;
  width:100%;
  max-width:520px;
  border-radius:18px;
  overflow:hidden;
  background:#dfe8f1;
  box-shadow:0 28px 60px rgba(40,60,80,.18);
  position:relative;
}
.hero-photo-frame img{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.hero-photo-frame figcaption{
  position:absolute;
  left:18px;
  bottom:16px;
  padding:8px 11px;
  border-radius:7px;
  background:rgba(10,28,45,.72);
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  backdrop-filter:blur(6px);
}

/* ===== V6: 시공사례 ===== */
.projects-section{background:#fff}
.section-heading-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:end;
}
.section-side-copy{
  margin:0;
  color:#667286;
  font-size:17px;
  max-width:520px;
}
.projects-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-top:48px;
}
.project-card{
  overflow:hidden;
  border:1px solid #e1e7ee;
  border-radius:16px;
  background:#fff;
  transition:transform .2s ease, box-shadow .2s ease;
}
.project-card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 38px rgba(31,55,77,.10);
}
.project-image-wrap{
  overflow:hidden;
  background:#e8eef4;
  aspect-ratio:16/10;
}
.project-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s ease;
}
.project-card:hover .project-image{transform:scale(1.025)}
.project-body{padding:24px 24px 28px}
.project-category{
  display:inline-block;
  color:#0f5f9d;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  margin-bottom:10px;
}
.project-body h3{
  margin:0 0 10px;
  font-size:21px;
  line-height:1.35;
}
.project-body p{
  margin:0;
  color:#667286;
  font-size:14px;
}

@media(max-width:900px){
  .section-heading-row{grid-template-columns:1fr;gap:18px}
  .projects-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .projects-grid{grid-template-columns:1fr}
  .hero-photo-frame{max-width:none}
}


/* ===== V8: 시공사례 클릭 상세보기 ===== */
.project-card{cursor:pointer}
.project-card:focus-visible{
  outline:3px solid rgba(15,95,157,.25);
  outline-offset:4px
}
.project-more{
  display:inline-block;
  margin-top:18px;
  color:#0f5f9d;
  font-size:13px;
  font-weight:800
}
body.modal-open{overflow:hidden}
.project-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:28px
}
.project-modal.open{display:flex}
.project-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(12,22,34,.72);
  backdrop-filter:blur(5px)
}
.project-modal-panel{
  position:relative;
  z-index:1;
  width:min(1120px,100%);
  max-height:90vh;
  overflow:auto;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
  gap:0;
  background:#fff;
  border-radius:18px;
  box-shadow:0 30px 90px rgba(0,0,0,.28)
}
.project-modal-close{
  position:absolute;
  top:14px;
  right:16px;
  z-index:3;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:rgba(16,30,43,.82);
  color:#fff;
  font-size:30px;
  line-height:1;
  cursor:pointer
}
.project-modal-gallery{
  padding:24px;
  background:#f3f6f9
}
.modal-main-wrap{
  overflow:hidden;
  border-radius:12px;
  background:#dfe7ee;
  aspect-ratio:4/3
}
.modal-main-wrap img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  background:#e8eef4
}
.modal-thumbs{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:12px
}
.modal-thumb{
  padding:0;
  border:2px solid transparent;
  border-radius:8px;
  overflow:hidden;
  background:#dfe7ee;
  cursor:pointer;
  aspect-ratio:4/3
}
.modal-thumb.active{border-color:#0f5f9d}
.modal-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block
}
.project-modal-info{
  padding:62px 38px 38px
}
.project-modal-info h2{
  margin:10px 0 20px;
  font-size:30px;
  line-height:1.3
}
.project-modal-info p{
  margin:0;
  color:#5d697b;
  white-space:pre-line
}

@media(max-width:800px){
  .project-modal{padding:14px}
  .project-modal-panel{grid-template-columns:1fr}
  .project-modal-gallery{padding:16px}
  .project-modal-info{padding:28px 22px 30px}
  .project-modal-info h2{font-size:25px}
}
