:root{
  --white:#FFFFFF;
  --concrete:#E7E8E5;
  --black:#111111;
  --orange:#FF4E00;
  --metal:#B8BAB7;
  --font: -apple-system, BlinkMacSystemFont, "Malgun Gothic", "Apple SD Gothic Neo", sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font);
  color:var(--black);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{margin:0;font-weight:800;letter-spacing:-0.01em;}
p{margin:0 0 1em;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}

/* ---------- HEADER ---------- */
.site-header{
  height:60px;
  border-bottom:1px solid var(--concrete);
  position:sticky;top:0;background:var(--white);z-index:50;
}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;}
.logo{font-weight:800;font-size:1.05rem;letter-spacing:-0.02em;}
.btn-call{
  background:var(--orange);color:var(--white);
  font-weight:700;font-size:0.92rem;
  padding:9px 20px;
  border:none;
}
.btn-primary{
  display:inline-block;
  background:var(--orange);color:var(--white);
  font-weight:700;font-size:1rem;
  padding:14px 30px;
  border:none;
}

/* ---------- HERO ---------- */
.hero{position:relative;width:100%;height:78vh;min-height:520px;overflow:hidden;background:var(--black);}
.hero-photo{width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:0.92;}
.hero-panel{
  position:absolute;left:0;bottom:0;
  background:var(--orange);
  color:var(--white);
  padding:36px 40px 40px;
  max-width:600px;
  width:min(92%,600px);
}
.hero-panel h1{font-size:clamp(2.4rem,6vw,3.6rem);margin-bottom:14px;line-height:1;}
.hero-panel .hero-copy{font-size:1.1rem;font-weight:500;margin-bottom:0;}

/* ---------- PHOTO STRIP ---------- */
.photo-strip{display:flex;width:100%;overflow-x:auto;}
.photo-strip-item{position:relative;flex:0 0 auto;height:340px;}
.photo-strip-item img{height:100%;width:auto;object-fit:cover;}
.photo-strip-label{
  position:absolute;left:0;bottom:0;
  background:rgba(17,17,17,0.82);color:var(--white);
  font-size:0.85rem;font-weight:700;
  padding:8px 14px;
}

/* ---------- SECTIONS ---------- */
.section{padding:88px 0;}
.section-alt{background:var(--concrete);}
.section-head{margin-bottom:44px;max-width:640px;}
.section-eyebrow{
  color:var(--orange);font-weight:800;font-size:0.8rem;
  letter-spacing:0.08em;margin-bottom:10px;
}
.section-head h2{font-size:clamp(1.7rem,3.4vw,2.3rem);margin-bottom:12px;}

/* ---------- SERVICE STRIP (zigzag) ---------- */
.service-strip{
  display:flex;align-items:stretch;
  border-top:1px solid var(--metal);
  min-height:280px;
}
.service-strip:last-child{border-bottom:1px solid var(--metal);}
.service-strip-photo{flex:0 0 42%;overflow:hidden;}
.service-strip-photo img{width:100%;height:100%;object-fit:cover;min-height:280px;}
.service-strip-text{flex:1;display:flex;flex-direction:column;justify-content:center;padding:36px 48px;}
.service-strip.strip-reverse{flex-direction:row-reverse;}
.service-strip-title{font-size:1.6rem;font-weight:800;margin-bottom:12px;}
.service-strip-desc{color:#333;max-width:440px;}
.service-strip-link{color:var(--orange);font-weight:700;font-size:0.92rem;}

/* ---------- JUDGMENT SECTION ---------- */
.judgment{display:grid;grid-template-columns:1fr 3px 1fr;gap:0;align-items:center;}
.judgment-photo{overflow:hidden;}
.judgment-photo img{width:100%;height:100%;object-fit:cover;min-height:420px;}
.judgment-line{background:var(--orange);height:100%;min-height:420px;}
.judgment-list{padding:0 48px;list-style:none;margin:0;}
.judgment-list li{
  padding:18px 0;border-bottom:1px solid var(--metal);
  font-weight:600;font-size:1.05rem;
}
.judgment-list li:first-child{padding-top:0;}

/* ---------- FILM STRIP ---------- */
.film-strip{display:flex;gap:6px;overflow-x:auto;padding:4px 0 14px;}
.film-strip img{height:280px;width:auto;flex:0 0 auto;object-fit:cover;}

/* ---------- FAQ ---------- */
.faq-accordion{border-top:1px solid var(--metal);}
.faq-item{border-bottom:1px solid var(--metal);padding:22px 0;}
.faq-item summary{
  cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;
  font-weight:700;font-size:1.05rem;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-plus{position:relative;width:18px;height:18px;flex:0 0 auto;margin-left:20px;}
.faq-plus::before,.faq-plus::after{
  content:"";position:absolute;background:var(--orange);
  top:50%;left:50%;transform:translate(-50%,-50%);
}
.faq-plus::before{width:18px;height:2px;}
.faq-plus::after{width:2px;height:18px;}
.faq-item[open] .faq-plus::after{display:none;}
.faq-answer{padding-top:14px;color:#333;max-width:720px;}

/* ---------- CTA ---------- */
.cta{background:var(--orange);color:var(--white);padding:90px 0;text-align:center;}
.cta h2{font-size:clamp(1.7rem,4vw,2.4rem);margin-bottom:28px;}
.cta .btn-primary{background:var(--black);}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--black);color:var(--metal);padding:44px 0;}
.footer-brand{color:var(--white);font-weight:800;font-size:1.1rem;margin-bottom:12px;}
.footer-info{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:0.88rem;}

/* ---------- SUB PAGE HEROES ---------- */
.page-hero{position:relative;width:100%;overflow:hidden;background:var(--black);}
.page-hero img{width:100%;object-fit:cover;}
.ph-stack{}
.ph-stack img{height:56vh;min-height:380px;}
.ph-stack .ph-title{padding:36px 0 8px;}
.ph-side{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;}
.ph-side img{height:100%;min-height:460px;}
.ph-side .ph-title{display:flex;flex-direction:column;justify-content:center;padding:0 48px;}
.ph-overlap{position:relative;}
.ph-overlap img{height:64vh;min-height:420px;}
.ph-overlap .ph-title{position:absolute;left:0;bottom:0;background:var(--orange);color:var(--white);padding:28px 36px;max-width:560px;}
.ph-full{}
.ph-full img{height:52vh;min-height:340px;}
.ph-full .ph-title{padding:32px 0 8px;}
.ph-twin{display:grid;grid-template-columns:1.4fr 1fr;gap:6px;}
.ph-twin img{width:100%;height:46vh;min-height:300px;object-fit:cover;}
.ph-twin .ph-title{grid-column:1/-1;padding:28px 0 8px;}
.page-hero h1{font-size:clamp(2rem,4.6vw,3rem);}
.page-hero .ph-eyebrow{color:var(--orange);font-weight:800;font-size:0.85rem;letter-spacing:0.06em;margin-bottom:8px;}

.intro-answer{font-size:1.15rem;font-weight:500;max-width:760px;margin:36px auto 0;padding:0 24px;}

.scope-table{width:100%;border-collapse:collapse;margin-top:12px;}
.scope-table th,.scope-table td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--metal);}
.scope-table th{background:var(--concrete);font-weight:800;width:32%;}

.related-list{list-style:none;display:flex;gap:14px;flex-wrap:wrap;padding:0;margin:20px 0 0;}
.related-list a{background:var(--black);color:var(--white);padding:12px 20px;font-weight:700;font-size:0.9rem;}

.body-photo{margin:32px 0;}
.body-photo img{width:100%;height:auto;}
.body-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:32px 0;}
.body-photo-pair img{width:100%;height:340px;object-fit:cover;}
.body-photo-pair figcaption{font-size:0.85rem;color:#555;margin-top:6px;}
figure{margin:0;}

.updated-note{font-size:0.82rem;color:#666;margin-top:10px;}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 860px){
  .hero{height:66vh;}
  .hero-panel{padding:26px 24px 30px;width:100%;max-width:none;}
  .service-strip,.service-strip.strip-reverse{flex-direction:column;}
  .service-strip-photo{flex:0 0 auto;height:220px;}
  .service-strip-photo img{min-height:220px;}
  .service-strip-text{padding:26px 24px;}
  .judgment{grid-template-columns:1fr;}
  .judgment-line{height:3px;min-height:0;width:100%;}
  .judgment-photo img{min-height:260px;}
  .judgment-list{padding:24px;}
  .section{padding:56px 0;}
  .ph-side{grid-template-columns:1fr;}
  .ph-side img{min-height:260px;}
  .ph-side .ph-title{padding:24px;}
  .ph-twin{grid-template-columns:1fr;}
  .body-photo-pair{grid-template-columns:1fr;}
}
