:root{
  --bg:#f5f5f2;
  --surface:#ffffff;
  --text:#151515;
  --muted:#60635f;
  --line:#d9d9d3;
  --dark:#202821;
  --soft:#ecece7;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"Noto Sans KR","Apple SD Gothic Neo",sans-serif;line-height:1.68;word-break:keep-all;overflow-wrap:break-word}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:3px solid currentColor;outline-offset:4px}
img{max-width:100%;height:auto;display:block}
.wrap{width:min(calc(100% - 40px),var(--max));margin:0 auto}
.site-header{position:sticky;top:0;z-index:30;background:rgba(245,245,242,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:26px}
.brand{font-size:1.28rem;font-weight:800;letter-spacing:.065em}
.nav{display:flex;align-items:center;gap:21px;flex-wrap:wrap}
.nav a{font-size:.95rem;color:#303330}
.nav a:hover,.nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px;font-weight:700}
.hero{padding:92px 0 76px}
.eyebrow{margin-bottom:18px;font-size:.85rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.hero h1,
.subhero h1{
  font-family:"SUIT","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  font-weight:800;
  letter-spacing:-.035em;
}
.hero h1{margin:0 0 25px;max-width:990px;font-size:clamp(2.4rem,6vw,5.25rem);line-height:1.04}
.hero p{max-width:760px;margin:0;color:#424642;font-size:1.12rem}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.btn{display:inline-block;padding:13px 19px;border:1px solid var(--text);border-radius:999px;font-weight:700}
.btn.primary{background:var(--text);color:#fff}
.media-box{border:1px solid var(--line);background:#e8e8e3;color:#676a66;display:grid;place-items:center;text-align:center;border-radius:20px;padding:24px}
.hero-media{margin-top:48px;min-height:430px}
.media-wide{min-height:330px}
.media-tall{min-height:430px}
.media-small{min-height:220px}
.before-after{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.section{padding:72px 0;border-top:1px solid var(--line)}
.section h2{margin:0 0 18px;font-size:clamp(1.8rem,4vw,3rem);line-height:1.16;letter-spacing:-.025em}
.section-intro{max-width:780px;margin:0 0 34px;color:#565a56}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.card{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:18px}
.card h3{margin:0 0 10px;font-size:1.28rem}
.card p{margin:0;color:#535753}
.card .more,.text-link{display:inline-block;margin-top:18px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.step{padding-top:14px;border-top:2px solid var(--text)}
.step strong{display:block;margin-bottom:8px}
.notice{padding:34px;background:var(--dark);color:#fff;border-radius:22px}
.notice h2{margin-top:0}
.notice p{max-width:790px;color:#e7e9e7}
.subhero{padding:66px 0 42px}
.subhero h1{margin:0 0 18px;font-size:clamp(2.25rem,5vw,4rem);line-height:1.08}
.subhero p{max-width:780px;margin:0;color:#505450}
.content{padding:24px 0 76px}
.content-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:30px}
.content h2{margin:34px 0 12px;font-size:1.72rem;line-height:1.25}
.content h2:first-child{margin-top:0}
.content p{color:#484c48}
.list{padding-left:20px}
.list li+li{margin-top:6px}
.info-box{margin:28px 0;padding:24px;background:#fff;border:1px solid var(--line);border-radius:16px}
.info-box h2{margin-top:0}
.inline-link{text-decoration:underline;text-underline-offset:4px;font-weight:700}
.split{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.photo-sequence{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}
.checklist{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0}
.checkitem{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
/* ===== FAQ ACCORDION ===== */

.faq{
  margin-top:56px;
  padding-top:38px;
  border-top:1px solid var(--line);
}

.faq > h2{
  margin:0 0 22px;
}

/* 각 질문 */
.faq-item{
  padding:0;
  border-bottom:1px solid var(--line);
}

/* 질문 버튼 */
.faq-item summary{
  position:relative;
  display:block;
  padding:20px 46px 20px 0;
  font-size:1.08rem;
  font-weight:800;
  line-height:1.5;
  color:var(--text);
  cursor:pointer;
  list-style:none;
  word-break:keep-all;
}

/* 브라우저 기본 삼각형 제거 */
.faq-item summary::-webkit-details-marker{
  display:none;
}

/* 오른쪽 + 표시 */
.faq-item summary::after{
  content:"+";
  position:absolute;
  right:4px;
  top:50%;
  transform:translateY(-50%);
  color:#E9652B;
  font-size:1.45rem;
  font-weight:500;
  line-height:1;
}

/* 열렸을 때 − 표시 */
.faq-item[open] summary::after{
  content:"−";
}

/* 답변 영역 */
.faq-answer{
  padding:0 42px 22px 0;
}

.faq-answer p{
  margin:0;
  color:#4D514D;
  font-size:1rem;
  line-height:1.75;
  word-break:keep-all;
}


/* 모바일 */
@media(max-width:900px){

  .faq{
    margin-top:44px;
    padding-top:32px;
  }

  .faq > h2{
    margin-bottom:16px;
  }

  .faq-item summary{
    padding:18px 38px 18px 0;
    font-size:1rem;
  }

  .faq-item summary::after{
    right:2px;
    font-size:1.35rem;
  }

  .faq-answer{
    padding:0 30px 20px 0;
  }

  .faq-answer p{
    font-size:.95rem;
    line-height:1.7;
  }
}
.footer{padding:38px 0 56px;border-top:1px solid var(--line);color:#555a55}
.footer strong{color:#111}
.small{font-size:.92rem}
@media(max-width:900px){
  .header-inner{align-items:flex-start;flex-direction:column;padding:18px 0}
  .nav{gap:13px}
  .grid,.process,.content-grid,.split,.photo-sequence,.checklist,.before-after{grid-template-columns:1fr}
  .hero{padding-top:58px}
  .hero-media,.media-tall{min-height:290px}
}
/* ===== BLOCKCRAFT NEW HOME ===== */

.home-hero{
  padding:48px 0 56px;
}

.home-hero-inner{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:42px;
  align-items:center;
}

.home-hero-copy h1{
  margin:0 0 22px;
 font-family:"SUIT","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  font-size:clamp(2.15rem,4vw,3.7rem);
  font-weight:800;
  line-height:1.24;
  letter-spacing:-.035em;
  color:var(--text);
  word-break:keep-all;
}

.home-hero-copy > p{
  margin:0 0 24px;
  font-family:"SUIT","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  font-size:1.1rem;
  font-weight:600;
  line-height:1.7;
  letter-spacing:-.02em;
  color:#555A5E;
  word-break:keep-all;
}
/* 첫 화면 서비스 4개 */
.service-quick-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:24px;
}

.service-quick-card{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
  min-height:60px;
  padding:0 16px;
  background:#FFFFFF;
  border:1px solid #B9BDC0;
  border-radius:12px;
  color:#2F3336;
  font-weight:800;
  text-align:center;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
  transition:
    background .2s ease,
    border-color .2s ease,
    color .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

.service-quick-card:hover{
  background:#FFF4EF;
  border-color:#E9652B;
  color:#C84F1E;
  transform:translateY(-2px);
  box-shadow:0 7px 16px rgba(0,0,0,.08);
}

.service-quick-card span{
  min-width:0;
  font-size:1rem;
}

/* 시공사례 */
.hero-case-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:52px;
  margin-top:12px;
  background:var(--text);
  color:#fff;
  border-radius:10px;
  font-weight:700;
}

/* 실제 대표사진 */
.home-hero-photo{
  overflow:hidden;
  border-radius:18px;
  background:var(--soft);
}

.home-hero-photo img{
  display:block;
  width:100%;
  height:520px;
  object-fit:cover;
  object-position:center;
}

/* 모바일 메뉴 */
.mobile-menu-btn{
  display:none;
  min-height:42px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--text);
  color:#fff;
  font:inherit;
  font-weight:700;
  cursor:pointer;
}

.mobile-menu-btn:focus-visible{
  outline:3px solid currentColor;
  outline-offset:3px;
}

/* ===== MOBILE ===== */

@media(max-width:900px){


  .header-inner{
    padding:15px 0;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:12px;
  }

  .brand{
    font-size:1.18rem;
  }

  .mobile-menu-btn{
    display:flex;
    align-items:center;
    justify-content:center;
  }

  /* 화면 전체 폭 기준 드롭다운 */
  .site-header .nav{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    z-index:100;
    padding:10px 20px 18px;
    background:var(--surface);
    border-bottom:1px solid var(--line);
    box-shadow:0 10px 22px rgba(0,0,0,.08);
  }

  .site-header .nav.is-open{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }

  .site-header .nav a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    min-height:44px;
    padding:6px 9px;
    background:var(--soft);
    border:1px solid var(--line);
    border-radius:8px;
    font-size:.88rem;
    font-weight:700;
    text-align:center;
    text-decoration:none;
  }

  .site-header .nav a[aria-current="page"]{
    background:var(--text);
    color:#fff;
  }

  /* 메인 첫 화면 */
  .home-hero{
    padding:24px 0 30px;
  }

  .home-hero-inner{
    grid-template-columns:1fr;
    gap:16px;
  }

 .home-hero-copy h1{
  margin-bottom:16px;
  font-size:clamp(1.9rem,7.2vw,2.35rem);
  font-weight:800;
  line-height:1.28;
  letter-spacing:-.03em;
  word-break:keep-all;
}

.home-hero-copy > p{
  margin-bottom:14px;
  font-size:1rem;
  font-weight:600;
  line-height:1.7;
}

  /* 서비스 4개는 모바일 2×2 */
  .service-quick-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    margin-top:14px;
  }

 .service-quick-card{
  min-height:48px;
  padding:0 8px;
  border-radius:8px;
  background:#FFFFFF;
  border-color:#B9BDC0;
  box-shadow:0 3px 9px rgba(0,0,0,.06);
}

  .service-quick-card span{
    font-size:.94rem;
    line-height:1.25;
  }

  .hero-case-link{
    min-height:48px;
    margin-top:8px;
    font-size:.94rem;
  }

  /* 서비스 버튼 아래 실제 사진이 빨리 보이도록 */
  .home-hero-photo{
    border-radius:11px;
  }

  .home-hero-photo img{
    width:100%;
    height:auto;
    aspect-ratio:4 / 3;
    object-fit:cover;
    object-position:center;
  }
  
  }

/* ===== BLOCKCRAFT QUICK CONTACT ===== */

/* PC : 오른쪽 고정 전화 / 문자 버튼 */
.desktop-quick-contact{
  position:fixed;
  right:26px;
  bottom:26px;
  z-index:1300;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.quick-contact-btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border-radius:50%;
  color:#fff;
  text-decoration:none;
  box-shadow:0 10px 28px rgba(0,0,0,.22);
  transition:
    transform .2s ease,
    box-shadow .2s ease;
}

/* 전화 */
.quick-contact-phone{
  background:#4A4F54;
  color:#fff;
}

/* 문자 */
.quick-contact-sms{
  background:#F05A24;
  box-shadow:
    0 10px 30px rgba(0,0,0,.22),
    0 0 0 6px rgba(240,90,36,.16);
}

.quick-contact-btn:hover{
  transform:translateY(-3px) scale(1.06);
}

.quick-contact-phone:hover{
  box-shadow:0 14px 34px rgba(18,59,99,.28);
}

.quick-contact-sms:hover{
  box-shadow:
    0 14px 34px rgba(240,90,36,.32),
    0 0 0 7px rgba(240,90,36,.18);
}

.quick-contact-btn:focus-visible{
  outline:3px solid #fff;
  outline-offset:3px;
}

.quick-contact-btn svg{
  width:29px;
  height:29px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* PC : 마우스를 올리면 설명 표시 */
.quick-contact-btn span{
  position:absolute;
  right:76px;
  top:50%;
  transform:translate(8px,-50%);
  padding:9px 13px;
  border-radius:9px;
  background:var(--text);
  color:#fff;
  font-size:.86rem;
  font-weight:800;
  white-space:nowrap;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  box-shadow:0 6px 18px rgba(0,0,0,.16);
  transition:
    opacity .18s ease,
    transform .18s ease,
    visibility .18s ease;
}

.quick-contact-btn:hover span,
.quick-contact-btn:focus-visible span{
  opacity:1;
  visibility:visible;
  transform:translate(0,-50%);
}


/* ===== MOBILE ===== */
@media(max-width:900px){

  body{
    padding-bottom:62px;
  }

  .desktop-quick-contact{
    display:none;
  }
  
.service-quick-card:active{
  background:#E2E5E7;
  border-color:#E9652B;
  color:#C84F1E;
}

  .mobile-contact-bar{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1300;
    display:grid;
    grid-template-columns:1fr 1fr;
    height:62px;
    box-shadow:0 -5px 22px rgba(0,0,0,.18);
  }

  .mobile-contact-bar a{
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:.98rem;
    font-weight:900;
    letter-spacing:-.02em;
    text-decoration:none;
  }

  .mobile-contact-bar a:first-child{
  background:#4A4F54;
  color:#fff;
  }

  .mobile-contact-bar a:last-child{
    background:#F05A24;
    color:#fff;
  }

  .mobile-contact-bar a:active{
    filter:brightness(.88);
  }
}


/* PC에서는 모바일 하단바 숨김 */
@media(min-width:901px){
  .mobile-contact-bar{
    display:none;
  }
}

/* ===== HOME BEFORE / AFTER ===== */

.home-before-after-section{
  padding:72px 0;
}

.home-before-after-head{
  margin-bottom:26px;
}

.home-before-after-head h2{
  margin:0 0 10px;
  font-family:"SUIT","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  font-size:clamp(1.7rem,3vw,2.35rem);
  font-weight:800;
  line-height:1.3;
  letter-spacing:-.035em;
}

.home-before-after-head p{
  margin:0;
  color:var(--muted);
  font-size:1.1rem;
  line-height:1.7;
}

.home-before-after-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.home-before-after-card{
  margin:0;
}

.home-before-after-photo{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  aspect-ratio:4 / 3;
  border-radius:14px;
  background:#E9EAE8;
  border:1px solid var(--line);
  color:var(--muted);
  font-weight:700;
}

.home-before-after-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.home-before-after-card figcaption{
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px 3px 0;
}

.home-before-after-card figcaption strong{
  font-size:.88rem;
  letter-spacing:.06em;
  color:#E9652B;
}

.home-before-after-card figcaption span{
  color:var(--text);
  font-size:1rem;
  font-weight:700;
}

.home-before-after-desc{
  margin:22px 0 0;
  max-width:760px;
  color:var(--muted);
  font-size:1rem;
  line-height:1.7;
  word-break:keep-all;
}


/* 모바일에서도 Before / After를 나란히 비교 */
@media(max-width:900px){

  .home-section{
    padding:38px 0;
  }

  .home-before-after-head{
    margin-bottom:18px;
  }

  .home-before-after-head h2{
    margin-bottom:7px;
    font-size:1.45rem;
  }

  .home-before-after-head p{
    font-size:1rem;
  line-height:1.7;
}

.home-before-after-grid{
  grid-template-columns:1fr;
  gap:22px;
}

  .home-before-after-photo{
    border-radius:9px;
  }

  .home-before-after-photo span{
    font-size:.78rem;
  }

  .home-before-after-card figcaption{
    gap:5px;
    padding-top:8px;
  }

  .home-before-after-card figcaption strong{
    font-size:.82rem;
  }

  .home-before-after-card figcaption span{
    font-size:.94rem;
  }
}

/* ===== HOME SECTIONS ===== */

/* 홈 섹션 제목 크기를 시공 전·후 제목에 맞춤 */
.home-section h2{
  font-family:"SUIT","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  font-size:clamp(1.7rem,3vw,2.35rem);
  font-weight:800;
  line-height:1.3;
  letter-spacing:-.035em;
}

/* 시공과정 카드 */
.home-process-card{
  max-width:760px;
  background:#FFFFFF;
  border:1px solid #D9D9D3;
  border-radius:12px;
}

.home-process-list{
  margin:0;
  padding:0;
  list-style:none;
}

.home-process-item{
  padding:20px 22px;
}

.home-process-item + .home-process-item{
  border-top:1px solid #E2E2DC;
}

.home-process-step{
  display:block;
  margin-bottom:6px;
  color:#E9652B;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
}

.home-process-item h3{
  margin:0 0 6px;
  color:#2F3336;
  font-size:1.06rem;
  font-weight:800;
  line-height:1.4;
  letter-spacing:-.02em;
}

.home-process-item p{
  margin:0;
  color:#666B6F;
  font-size:.94rem;
  font-weight:400;
  line-height:1.65;
}

.home-process-note{
  max-width:760px;
}

/* FAQ: 홈 섹션 안에서 기존 .faq의 여백·구분선 중복 제거 */
.home-faq .faq{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

/* 서비스 지역 띠 */
.home-service-area{
  padding:22px 0;
  border-top:1px solid var(--line);
}

.home-service-area p{
  margin:0;
  color:var(--text);
  font-size:1rem;
  font-weight:700;
  line-height:1.6;
}

@media(max-width:900px){

  .home-section h2{
    font-size:1.45rem;
  }

  .home-process-card{
    border-radius:10px;
  }

  .home-process-item{
    padding:18px 16px;
  }

  .home-process-step{
    font-size:.73rem;
  }
}

/* ===== PHOTO CONSULT BUTTON ===== */
.photo-consult-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  margin-top:18px;
  padding:0 18px;
  border:1px solid #E9652B;
  border-radius:10px;
  background:#FFF4EF;
  color:#C84F1E;
  font-weight:700;
  text-decoration:none;
  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.photo-consult-btn:hover{
  background:#E9652B;
  border-color:#E9652B;
  color:#fff;
  transform:translateY(-1px);
}

@media(max-width:900px){
  .photo-consult-btn{
    min-height:46px;
    margin-top:16px;
    padding:0 16px;
    font-size:.95rem;
    border-radius:9px;
  }
}

.photo-consult p{
  word-break:keep-all;
}

/* ===== CONTACT PAGE ===== */

.contact-guide h2{
  margin-top:0;
}

.contact-guide h2 + .list{
  margin-bottom:38px;
}

/* 상담 진행 3단계 */
.consult-steps{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
  align-items:stretch;
  gap:10px;
  margin-top:18px;
}

.consult-step{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:128px;
  padding:20px 18px;
  background:#fff;
  border:1px solid #D7DADD;
  border-radius:12px;
  text-align:center;
}

.consult-step strong{
  display:block;
  margin-bottom:8px;
  font-size:1.02rem;
  font-weight:800;
  color:#2F3336;
}

.consult-step span{
  display:block;
  font-size:.9rem;
  line-height:1.55;
  color:#666B6F;
  word-break:keep-all;
}

.consult-step-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#E9652B;
  font-size:1.35rem;
  font-weight:800;
}

.consult-note{
  margin:16px 0 0;
  font-size:.92rem;
  line-height:1.65;
  color:#666B6F;
  word-break:keep-all;
}

/* 상담 페이지 전체 폭 */
.contact-page-layout{
  display:block;
}

/* PC 상담 CTA */
.contact-action-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  margin-top:30px;
  padding:22px 24px;
  background:#F7F7F6;
  border:1px solid #D7DADD;
  border-radius:14px;
}

.contact-action-copy{
  min-width:0;
}

.contact-action-box h2{
  margin:0 0 5px;
  font-size:1.2rem;
}

.contact-action-box p{
  margin:0;
  color:#666B6F;
  line-height:1.6;
  word-break:keep-all;
}

.contact-action-buttons{
  display:grid;
  grid-template-columns:repeat(2,140px);
  gap:10px;
  flex-shrink:0;
}

.contact-action-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  border-radius:10px;
  color:#fff;
  font-weight:800;
  text-decoration:none;
  transition:transform .2s ease, opacity .2s ease;
}

.contact-action-btn:hover{
  transform:translateY(-1px);
  opacity:.92;
}

.contact-action-phone{
  background:#4A4F54;
}

.contact-action-sms{
  background:#F05A24;
}


/* 모바일 */
@media(max-width:900px){

  .contact-guide h2 + .list{
    margin-bottom:32px;
  }

  .consult-steps{
    grid-template-columns:1fr;
    gap:8px;
    margin-top:15px;
  }

  .consult-step{
    min-height:auto;
    padding:17px 16px;
    border-radius:10px;
  }

  .consult-step strong{
    margin-bottom:5px;
    font-size:1rem;
  }

  .consult-step span{
    font-size:.9rem;
  }

  .consult-step-arrow{
    height:18px;
    font-size:1.2rem;
    transform:rotate(90deg);
  }

  .consult-note{
    margin-top:14px;
    font-size:.9rem;
  }

.contact-action-box{
  display:none;
}

}

/* 상담문의 페이지 하단 여백 */
.contact-content{
  padding-bottom:20px;
}

.contact-footer{
  padding-top:26px;
}

@media(max-width:900px){
  .contact-content{
    padding-bottom:8px;
  }

  .contact-footer{
    padding-top:24px;
  }
}

/* ===== SERVICE MAIN PHOTO ===== */

.service-main-photo{
  overflow:hidden;
  border-radius:12px;
}

.service-main-photo img{
  display:block;
  width:100%;
  height:480px;
  object-fit:cover;
  object-position:center;
}

@media(max-width:900px){

  .service-main-photo{
    border-radius:10px;
  }

  .service-main-photo img{
    height:auto;
    aspect-ratio:4 / 3;
    object-fit:cover;
  }
}

/* ===== CONSTRUCTION PAGE SPACING ===== */

.construction-hero{
  padding-bottom:24px;
}

.construction-content{
  padding-top:0;
  padding-bottom:36px;
}

@media(max-width:900px){
  .construction-hero{
    padding-bottom:22px;
  }

  .construction-content{
    padding-top:0;
    padding-bottom:28px;
  }
}

/* ===== CONSTRUCTION PAGE CARDS ===== */

/* 주요 시공 현장 */
.construction-sites{
  margin-top:38px;
}

.construction-sites h2,
.construction-checks h2{
  margin-bottom:10px;
}

.construction-section-intro{
  margin:0 0 22px;
  color:#565A56;
  line-height:1.7;
  word-break:keep-all;
}

.construction-site-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.construction-site-card{
  min-width:0;
  padding:22px 20px;
  background:#FFFFFF;
  border:1px solid #D9D9D3;
  border-radius:12px;
}

.construction-site-card strong{
  display:block;
  margin-bottom:8px;
  font-size:1.02rem;
  font-weight:800;
  color:#2F3336;
  word-break:keep-all;
}

.construction-site-card span{
  display:block;
  color:#626662;
  font-size:.92rem;
  line-height:1.6;
  word-break:keep-all;
}


/* 모바일 */
@media(max-width:900px){

  .construction-sites{
    margin-top:30px;
  }

  .construction-section-intro{
    margin-bottom:16px;
    font-size:.95rem;
  }

  .construction-site-grid{
    grid-template-columns:1fr;
    gap:9px;
  }

  .construction-site-card{
    padding:17px 16px;
    border-radius:10px;
  }

  .construction-site-card strong{
    margin-bottom:5px;
    font-size:1rem;
  }

  .construction-site-card span{
    font-size:.9rem;
  }
}

/* ===== CONSTRUCTION PROCESS ===== */

.construction-process{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
  row-gap:24px;
  margin-top:54px;
}

.construction-process-head{
  grid-column:1 / -1;
  margin-bottom:4px;
}

.construction-process-head h2{
  margin:0 0 10px;
}

.construction-process-head p{
  margin:0;
  color:#5F6460;
  line-height:1.7;
  word-break:keep-all;
}


/* STEP 카드 */
.construction-step,
.construction-step-reverse{
  display:flex;
  flex-direction:column;
  margin:0;
  padding:22px;
  background:#FFFFFF;
  border:1px solid #D9D9D3;
  border-radius:14px;
}


/* 기존 지그재그 해제 */
.construction-step-reverse .construction-step-photo,
.construction-step-reverse .construction-step-copy{
  order:initial;
}


/* 세로 사진 */
.construction-step-photo{
  width:74%;
  margin:0 auto 20px;
  overflow:hidden;
  border-radius:11px;
  background:#ECEDEB;
}

.construction-step-photo img{
  display:block;
  width:100%;
  height:auto;
}


/* STEP 설명 */
.construction-step-copy{
  min-width:0;
}

.construction-step-label{
  display:inline-block;
  margin-bottom:7px;
  color:#E9652B;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
}

.construction-step-copy h3{
  margin:0 0 9px;
  font-size:1.25rem;
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.03em;
}

.construction-step-copy p{
  margin:0;
  color:#5F6460;
  font-size:.94rem;
  line-height:1.65;
  word-break:keep-all;
}


/* 모바일 : 1열 카드 */
@media(max-width:900px){

  .construction-process{
    grid-template-columns:1fr;
    gap:18px;
    margin-top:42px;
  }

  .construction-process-head{
    margin-bottom:4px;
  }

  .construction-process-head p{
    font-size:.95rem;
  }

  .construction-step,
  .construction-step-reverse{
    padding:18px 16px;
    border-radius:12px;
  }

  .construction-step-photo{
    width:88%;
    margin:0 auto 16px;
    border-radius:10px;
  }

  .construction-step-label{
    margin-bottom:6px;
    font-size:.73rem;
  }

  .construction-step-copy h3{
    margin-bottom:7px;
    font-size:1.16rem;
  }

  .construction-step-copy p{
    font-size:.92rem;
    line-height:1.6;
  }
}

.construction-reuse-note{
  margin:24px 0 0;
  padding:16px 18px;
  background:#F7F7F4;
  border-radius:10px;
  color:#565A56;
  line-height:1.7;
  word-break:keep-all;
}

@media(max-width:900px){
  .construction-reuse-note{
    margin-top:20px;
    padding:14px 15px;
    font-size:.92rem;
  }
}

/* ===== CONSTRUCTION CONTACT CTA ===== */

.construction-contact-cta{
  margin-top:34px;
  padding:28px 30px;
  background:#F7F7F4;
  border:1px solid #E2E2DC;
  border-radius:14px;
}

.construction-contact-cta h2{
  margin:0 0 14px;
  font-size:1.45rem;
  line-height:1.35;
  letter-spacing:-.03em;
}

.construction-contact-cta p{
  margin:0;
  color:#565A56;
  line-height:1.75;
  word-break:keep-all;
}

.construction-contact-cta p strong{
  color:#2F3336;
  font-weight:800;
}

.construction-contact-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:20px;
  min-height:44px;
  padding:0 18px;
  background:#F05A24;
  border-radius:9px;
  color:#FFFFFF;
  font-weight:800;
  text-decoration:none;
}

.construction-contact-link:hover{
  background:#D94F1F;
}


/* 모바일 */
@media(max-width:900px){

  .construction-contact-cta{
    margin-top:26px;
    padding:22px 20px;
    border-radius:12px;
  }

  .construction-contact-cta h2{
    margin-bottom:12px;
    font-size:1.28rem;
  }

  .construction-contact-cta p{
    font-size:.94rem;
    line-height:1.7;
  }

  .construction-contact-link{
    margin-top:17px;
    min-height:42px;
    padding:0 16px;
    font-size:.92rem;
  }
}

/* ===== REPAIR BEFORE / AFTER ===== */

.repair-before-after{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin:0 0 42px;
}

.repair-ba-item{
  margin:0;
}

.repair-ba-item img{
  display:block;
  width:100%;
  height:440px;
  object-fit:cover;
  border-radius:12px;
}

.repair-ba-item figcaption{
  margin-top:8px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  color:#E9652B;
}


/* 모바일 */
@media(max-width:900px){

  .repair-before-after{
    grid-template-columns:1fr;
    gap:20px;
    margin:0 0 36px;
  }

  .repair-ba-item{
    width:90%;
    margin:0 auto;
  }

  .repair-ba-item img{
    height:360px;
    border-radius:10px;
  }

  .repair-ba-item figcaption{
    margin-top:7px;
    font-size:.76rem;
  }
}

/* ===== REPAIR PAGE SPACING ===== */

.repair-hero{
  padding-bottom:24px;
}

.repair-content{
  padding-top:0;
  padding-bottom:36px;
}

@media(max-width:900px){
  .repair-hero{
    padding-bottom:22px;
  }

  .repair-content{
    padding-top:0;
    padding-bottom:28px;
  }
}

/* ===== REPAIR PARTIAL NOTE ===== */

.repair-partial-note{
  margin-top:24px;
  padding:20px 22px;
  background:#F7F7F4;
  border-radius:12px;
}

.repair-partial-note h2{
  margin:0 0 10px;
  font-size:1.25rem;
  line-height:1.4;
  letter-spacing:-.03em;
}

.repair-partial-note p{
  margin:0;
  color:#5F6460;
  line-height:1.7;
  word-break:keep-all;
}

@media(max-width:900px){

  .repair-partial-note{
    margin-top:20px;
    padding:18px 16px;
    border-radius:10px;
  }

  .repair-partial-note h2{
    margin-bottom:8px;
    font-size:1.12rem;
  }

  .repair-partial-note p{
    font-size:.92rem;
    line-height:1.65;
  }
}

/* ===== REPAIR PROCESS ===== */

.repair-process{
  margin-top:54px;
}

.repair-process-head{
  margin-bottom:28px;
}

.repair-process-head h2{
  margin:0 0 10px;
}

.repair-process-head p{
  margin:0;
  color:#5F6460;
  line-height:1.7;
  word-break:keep-all;
}

.repair-process-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
  row-gap:24px;
}

.repair-process-card{
  display:flex;
  flex-direction:column;
  padding:22px;
  background:#FFFFFF;
  border:1px solid #D9D9D3;
  border-radius:14px;
}

.repair-process-card img{
  display:block;
  width:74%;
  height:auto;
  margin:0 auto 20px;
  border-radius:11px;
}

.repair-process-label{
  display:inline-block;
  margin-bottom:7px;
  color:#E9652B;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
}

.repair-process-card h3{
  margin:0 0 9px;
  font-size:1.25rem;
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.03em;
}

.repair-process-card p{
  margin:0;
  color:#5F6460;
  font-size:.94rem;
  line-height:1.65;
  word-break:keep-all;
}


/* 모바일 */
@media(max-width:900px){

  .repair-process{
    margin-top:42px;
  }

  .repair-process-head{
    margin-bottom:22px;
  }

  .repair-process-head p{
    font-size:.95rem;
  }

  .repair-process-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .repair-process-card{
    padding:18px 16px;
    border-radius:12px;
  }

  .repair-process-card img{
    width:88%;
    height:auto;
    margin:0 auto 16px;
    border-radius:10px;
  }

  .repair-process-label{
    margin-bottom:6px;
    font-size:.73rem;
  }

  .repair-process-card h3{
    margin-bottom:7px;
    font-size:1.16rem;
  }

  .repair-process-card p{
    font-size:.92rem;
    line-height:1.6;
  }
}

/* ===== REPAIR CONTACT CTA ===== */

.repair-contact-cta{
  margin-top:34px;
  padding:28px 30px;
  background:#F7F7F4;
  border:1px solid #E2E2DC;
  border-radius:14px;
}

.repair-contact-cta h2{
  margin:0 0 14px;
  font-size:1.45rem;
  line-height:1.35;
  letter-spacing:-.03em;
}

.repair-contact-cta p{
  margin:0;
  color:#565A56;
  line-height:1.75;
  word-break:keep-all;
}

.repair-contact-cta p strong{
  color:#2F3336;
  font-weight:800;
}

.repair-contact-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:20px;
  min-height:44px;
  padding:0 18px;
  background:#F05A24;
  border-radius:9px;
  color:#FFFFFF;
  font-weight:800;
  text-decoration:none;
}

.repair-contact-link:hover{
  background:#D94F1F;
}

@media(max-width:900px){

  .repair-contact-cta{
    margin-top:26px;
    padding:22px 20px;
    border-radius:12px;
  }

  .repair-contact-cta h2{
    margin-bottom:12px;
    font-size:1.28rem;
  }

  .repair-contact-cta p{
    font-size:.94rem;
    line-height:1.7;
  }

  .repair-contact-link{
    margin-top:17px;
    min-height:42px;
    padding:0 16px;
    font-size:.92rem;
  }
}

/* ===== REPLACEMENT BEFORE / AFTER ===== */

.replacement-before-after{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin:0 0 42px;
}

.replacement-ba-item{
  margin:0;
}

.replacement-ba-item img{
  display:block;
  width:100%;
  height:440px;
  object-fit:cover;
  border-radius:12px;
}

.replacement-ba-item figcaption{
  margin-top:8px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  color:#E9652B;
}


/* 모바일 */
@media(max-width:900px){

  .replacement-before-after{
    grid-template-columns:1fr;
    gap:20px;
    margin:0 0 36px;
  }

  .replacement-ba-item{
    width:90%;
    margin:0 auto;
  }

  .replacement-ba-item img{
    height:360px;
    border-radius:10px;
  }

  .replacement-ba-item figcaption{
    margin-top:7px;
    font-size:.76rem;
  }
}

/* ===== REPLACEMENT PAGE SPACING ===== */

.replacement-hero{
  padding-bottom:24px;
}

.replacement-content{
  padding-top:0;
  padding-bottom:36px;
}

@media(max-width:900px){

  .replacement-hero{
    padding-bottom:22px;
  }

  .replacement-content{
    padding-top:0;
    padding-bottom:28px;
  }
}

/* ===== REPLACEMENT CASES ===== */

.replacement-cases{
  margin-top:34px;
}

.replacement-cases h2{
  margin:0 0 18px;
}

.replacement-case-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.replacement-case-card{
  padding:20px;
  background:#FFFFFF;
  border:1px solid #D9D9D3;
  border-radius:12px;
}

.replacement-case-card h3{
  margin:0 0 7px;
  font-size:1rem;
  font-weight:800;
  color:#2F3336;
}

.replacement-case-card p{
  margin:0;
  color:#626662;
  font-size:.92rem;
  line-height:1.6;
  word-break:keep-all;
}

.replacement-reuse-note{
  margin-top:24px;
  padding:20px 22px;
  background:#F7F7F4;
  border-radius:12px;
}

.replacement-reuse-note h2{
  margin:0 0 10px;
  font-size:1.25rem;
  line-height:1.4;
  letter-spacing:-.03em;
}

.replacement-reuse-note p{
  margin:0;
  color:#5F6460;
  line-height:1.7;
  word-break:keep-all;
}


/* 모바일 */
@media(max-width:900px){

  .replacement-cases{
    margin-top:28px;
  }

  .replacement-case-grid{
    grid-template-columns:1fr;
    gap:10px;
  }

  .replacement-case-card{
    padding:17px 16px;
    border-radius:10px;
  }

  .replacement-case-card h3{
    font-size:.98rem;
  }

  .replacement-case-card p{
    font-size:.9rem;
  }

  .replacement-reuse-note{
    margin-top:20px;
    padding:18px 16px;
    border-radius:10px;
  }

  .replacement-reuse-note h2{
    margin-bottom:8px;
    font-size:1.12rem;
  }

  .replacement-reuse-note p{
    font-size:.92rem;
    line-height:1.65;
  }
}

/* ===== REPLACEMENT PROCESS ===== */

.replacement-process{
  margin-top:54px;
}

.replacement-process-head{
  margin-bottom:28px;
}

.replacement-process-head h2{
  margin:0 0 10px;
}

.replacement-process-head p{
  margin:0;
  color:#5F6460;
  line-height:1.7;
  word-break:keep-all;
}

.replacement-process-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
  row-gap:24px;
}

.replacement-process-card{
  display:flex;
  flex-direction:column;
  padding:22px;
  background:#FFFFFF;
  border:1px solid #D9D9D3;
  border-radius:14px;
}

.replacement-process-card img{
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  border-radius:11px;
}

.replacement-process-label{
  display:inline-block;
  margin-top:20px;
  margin-bottom:7px;
  color:#E9652B;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
}

.replacement-process-card h3{
  margin:0 0 9px;
  font-size:1.25rem;
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.03em;
}

.replacement-process-card p{
  margin:0;
  color:#5F6460;
  font-size:.94rem;
  line-height:1.65;
  word-break:keep-all;
}


/* 모바일 */
@media(max-width:900px){

  .replacement-process{
    margin-top:42px;
  }

  .replacement-process-head{
    margin-bottom:22px;
  }

  .replacement-process-head p{
    font-size:.95rem;
  }

  .replacement-process-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .replacement-process-card{
    padding:18px 16px;
    border-radius:12px;
  }

  .replacement-process-card img{
    width:100%;
    aspect-ratio:4 / 3;
    object-fit:cover;
    border-radius:10px;
  }

  .replacement-process-label{
    margin-top:16px;
    margin-bottom:6px;
    font-size:.73rem;
  }

  .replacement-process-card h3{
    margin-bottom:7px;
    font-size:1.16rem;
  }

  .replacement-process-card p{
    font-size:.92rem;
    line-height:1.6;
  }
}

/* ===== REPLACEMENT CONTACT CTA ===== */

.replacement-contact-cta{
  margin-top:34px;
  padding:28px 30px;
  background:#F7F7F4;
  border:1px solid #E2E2DC;
  border-radius:14px;
}

.replacement-contact-cta h2{
  margin:0 0 14px;
  font-size:1.45rem;
  line-height:1.35;
  letter-spacing:-.03em;
}

.replacement-contact-cta p{
  margin:0;
  color:#565A56;
  line-height:1.75;
  word-break:keep-all;
}

.replacement-contact-cta p strong{
  color:#2F3336;
  font-weight:800;
}

.replacement-contact-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:20px;
  min-height:44px;
  padding:0 18px;
  background:#F05A24;
  border-radius:9px;
  color:#FFFFFF;
  font-weight:800;
  text-decoration:none;
}

.replacement-contact-link:hover{
  background:#D94F1F;
}

@media(max-width:900px){

  .replacement-contact-cta{
    margin-top:26px;
    padding:22px 20px;
    border-radius:12px;
  }

  .replacement-contact-cta h2{
    margin-bottom:12px;
    font-size:1.28rem;
  }

  .replacement-contact-cta p{
    font-size:.94rem;
    line-height:1.7;
  }

  .replacement-contact-link{
    margin-top:17px;
    min-height:42px;
    padding:0 16px;
    font-size:.92rem;
  }
}

/* ===== CURB PAGE SPACING ===== */

.curb-hero{
  padding-bottom:24px;
}

.curb-content{
  padding-top:0;
  padding-bottom:36px;
}

/* 메인사진과 다음 내용 사이 */
.curb-content .service-main-photo{
  margin-bottom:38px;
}

/* 경계석의 역할 */
.curb-role-list{
  margin:16px 0 0;
  padding-left:26px;
  line-height:1.75;
}

/* 시공이 필요한 경우 제목 */
.curb-role-list + h2{
  margin-top:42px;
}


/* 모바일 */
@media(max-width:900px){

  .curb-hero{
    padding-bottom:22px;
  }

  .curb-content{
    padding-top:0;
    padding-bottom:28px;
  }

  .curb-content .service-main-photo{
    margin-bottom:34px;
  }

  .curb-role-list{
    margin-top:14px;
    padding-left:24px;
    line-height:1.7;
  }

  .curb-role-list + h2{
    margin-top:38px;
  }
}

/* ===== CURB CASES ===== */

.curb-case-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:18px;
}

.curb-case-card{
  display:grid;
  grid-template-columns:38% minmax(0,1fr);
  column-gap:16px;
  align-items:center;
  padding:14px;
  background:#FFFFFF;
  border:1px solid #D9D9D3;
  border-radius:12px;
}

.curb-case-card img{
  grid-row:1 / 4;
  display:block;
  width:100%;
  aspect-ratio:4 / 3;
  object-fit:cover;
  border-radius:10px;
}

.curb-case-label{
  display:inline-block;
  align-self:end;
  margin:0 0 6px;
  color:#E9652B;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
}

.curb-case-card h3{
  margin:0 0 6px;
  font-size:1.02rem;
  line-height:1.4;
  letter-spacing:-.03em;
}

.curb-case-card p{
  margin:0;
  color:#626662;
  font-size:.9rem;
  line-height:1.58;
  word-break:keep-all;
}


/* 모바일 */
@media(max-width:900px){

  .curb-case-grid{
    grid-template-columns:1fr;
    gap:10px;
    margin-top:18px;
  }

  .curb-case-card{
    grid-template-columns:34% minmax(0,1fr);
    column-gap:13px;
    padding:12px;
    border-radius:10px;
  }

  .curb-case-card img{
    border-radius:9px;
  }

  .curb-case-label{
    margin-bottom:5px;
    font-size:.7rem;
  }

  .curb-case-card h3{
    margin-bottom:5px;
    font-size:.96rem;
    line-height:1.35;
  }

  .curb-case-card p{
    font-size:.85rem;
    line-height:1.5;
  }
}

/* ===== CURB PROCESS ===== */

.curb-process{
  margin-top:54px;
}

.curb-process-head{
  margin-bottom:28px;
}

.curb-process-head h2{
  margin:0 0 10px;
}

.curb-process-head p{
  margin:0;
  color:#5F6460;
  line-height:1.7;
  word-break:keep-all;
}

.curb-process-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:20px;
  row-gap:24px;
}

.curb-process-card{
  display:flex;
  flex-direction:column;
  padding:22px;
  background:#FFFFFF;
  border:1px solid #D9D9D3;
  border-radius:14px;
}

.curb-process-copy{
  min-width:0;
}

.curb-process-card img{
  display:block;
  width:74%;
  height:auto;
  margin:0 auto 20px;
  border-radius:11px;
}

.curb-process-label{
  display:inline-block;
  margin-bottom:7px;
  color:#E9652B;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
}

.curb-process-card h3{
  margin:0 0 9px;
  font-size:1.25rem;
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.03em;
}

.curb-process-card p{
  margin:0;
  color:#5F6460;
  font-size:.94rem;
  line-height:1.65;
  word-break:keep-all;
}


/* 모바일 */
@media(max-width:900px){

  .curb-process{
    margin-top:42px;
  }

  .curb-process-head{
    margin-bottom:22px;
  }

  .curb-process-head p{
    font-size:.95rem;
  }

  .curb-process-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .curb-process-card{
    padding:18px 16px;
    border-radius:12px;
  }

  .curb-process-card img{
    width:88%;
    height:auto;
    margin:0 auto 16px;
    border-radius:10px;
  }

  .curb-process-label{
    margin-bottom:6px;
    font-size:.73rem;
  }

  .curb-process-card h3{
    margin-bottom:7px;
    font-size:1.16rem;
  }

  .curb-process-card p{
    font-size:.92rem;
    line-height:1.6;
  }
}

/* ===== CURB CONTACT CTA ===== */

.curb-contact-cta{
  margin-top:34px;
  padding:28px 30px;
  background:#F7F7F4;
  border:1px solid #E2E2DC;
  border-radius:14px;
}

.curb-contact-cta h2{
  margin:0 0 14px;
  font-size:1.45rem;
  line-height:1.35;
  letter-spacing:-.03em;
}

.curb-contact-cta p{
  margin:0;
  color:#565A56;
  line-height:1.75;
  word-break:keep-all;
}

.curb-contact-cta p strong{
  color:#2F3336;
  font-weight:800;
}

.curb-contact-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:20px;
  min-height:44px;
  padding:0 18px;
  background:#F05A24;
  border-radius:9px;
  color:#FFFFFF;
  font-weight:800;
  text-decoration:none;
}

.curb-contact-link:hover{
  background:#D94F1F;
}


/* 모바일 */
@media(max-width:900px){

  .curb-contact-cta{
    margin-top:26px;
    padding:22px 20px;
    border-radius:12px;
  }

  .curb-contact-cta h2{
    margin-bottom:12px;
    font-size:1.28rem;
  }

  .curb-contact-cta p{
    font-size:.94rem;
    line-height:1.7;
  }

  .curb-contact-link{
    margin-top:17px;
    min-height:42px;
    padding:0 16px;
    font-size:.92rem;
  }
}

/* ===== CASES LIST ===== */

.cases-hero{
  padding-bottom:24px;
}

.cases-content{
  padding:0 0 36px;
}

.cases-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
}


/* 사례 카드 */
.case-card{
  display:grid;
  grid-template-columns:58% minmax(0,1fr);
  overflow:hidden;
  min-width:0;
  background:#263840;
  border-radius:18px;
}


/* 대표사진 */
.case-card-photo{
  display:block;
  min-height:300px;
  overflow:hidden;
}

.case-card-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .3s ease;
}

.case-card:hover .case-card-photo img{
  transform:scale(1.025);
}


/* 텍스트 영역 */
.case-card-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:24px 20px;
}


.case-card-title{
  margin:0;
  font-size:1.62rem;
  line-height:1.3;
  letter-spacing:-.035em;
}

.case-card-title a{
  color:#FFFFFF;
  text-decoration:none;
}

.case-card-location{
  display:block;
  margin-bottom:6px;
  color:#7ED0BE;
  font-size:1.08em;
  font-weight:900;
  letter-spacing:-.01em;
}


/* 설명 */
.case-card p{
  margin:15px 0 0;
  color:#D5DDDF;
  font-size:.94rem;
  line-height:1.65;
  word-break:keep-all;
}


/* 상세보기 */
.case-card-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  align-self:flex-start;
  margin-top:20px;
  color:#D6C48E;
  font-size:.9rem;
  font-weight:800;
  text-decoration:none;
}

.case-card-link span{
  transition:transform .2s ease;
}

.case-card-link:hover span{
  transform:translateX(4px);
}


/* 모바일 */
@media(max-width:900px){

.cases-hero{
  padding-bottom:22px;
}

  .cases-content{
    padding:0 0 28px;
  }

  .cases-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

 .case-card{
  grid-template-columns:62% minmax(0,1fr);
  border-radius:15px;
}

  .case-card-photo{
    min-height:255px;
  }

  .case-card-body{
    padding:13px 13px;
  }


  .case-card-title{
  font-size:1.12rem;
  line-height:1.34;
}

.case-card-location{
  margin-bottom:5px;
  font-size:1.15em;
}

  .case-card p{
    margin-top:12px;
    font-size:.84rem;
    line-height:1.58;
  }

  .case-card-link{
    margin-top:16px;
    font-size:.83rem;
  }
}

/* ===== CASE DETAIL ===== */

.case-detail-hero{
  padding-bottom:24px;
}

.case-detail-meta{
  margin-bottom:12px;
  color:#4D9F90;
  font-size:1rem;
  font-weight:800;
  letter-spacing:.02em;
}

/* 시공 전·후 섹션 헤더 */

.case-detail-ba-head{
  padding-top:24px;
  border-top:1px solid #E2E2DC;
}

.case-detail-ba-kicker{
  display:block;
  margin-bottom:7px;
  color:#5F6460;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
}

/* 상세페이지 Before / After */

.case-detail-before-after{
  padding:0 0 36px;
}

.case-detail-section-head{
  margin-bottom:22px;
}

.case-detail-section-head h2{
  margin:0 0 10px;
  font-size:1.72rem;
  line-height:1.25;
  letter-spacing:-.03em;
}

.case-detail-section-head p{
  margin:0;
  color:#5F6460;
  line-height:1.7;
  word-break:keep-all;
}

.case-detail-ba-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}

.case-detail-ba-item{
  margin:0;
}

.case-detail-ba-item img{
  display:block;
  width:100%;
  height:440px;
  object-fit:cover;
  border-radius:12px;
}

.case-detail-ba-item figcaption{
  margin-top:8px;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  color:#E9652B;
}

/* 상세페이지 작업 과정 */

.case-detail-process{
  padding:0;
}

.case-detail-process-head{
  padding-top:28px;
  margin-bottom:24px;
  border-top:1px solid #E2E2DC;
}

.case-detail-process-kicker{
  display:block;
  margin-bottom:7px;
  color:#5F6460;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
}

.case-detail-process-head h2{
  margin:0 0 10px;
  font-size:1.72rem;
  line-height:1.25;
  letter-spacing:-.03em;
}

.case-detail-process-head p{
  margin:0;
  color:#5F6460;
  line-height:1.7;
  word-break:keep-all;
}

.case-detail-process-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}

.case-detail-process-grid-4{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.case-detail-process-item{
  min-width:0;
}

.case-detail-process-item img{
  display:block;
  width:100%;
  aspect-ratio:5 / 6;
  object-fit:cover;
  border-radius:12px;
}

.case-detail-process-copy{
  padding-top:15px;
}

.case-detail-process-copy > span{
  display:block;
  margin-bottom:6px;
  color:#E9652B;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.08em;
}

.case-detail-process-copy h3{
  margin:0 0 8px;
  font-size:1.25rem;
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.03em;
}

.case-detail-process-copy p{
  margin:0;
  color:#5F6460;
  font-size:.94rem;
  line-height:1.65;
  word-break:keep-all;
}

/* 상세페이지 상담 CTA */

.case-detail-contact{
  padding:0 0 36px;
}

.case-detail-contact-cta{
  margin-top:34px;
  padding:28px 30px;
  background:#F7F7F4;
  border:1px solid #E2E2DC;
  border-radius:14px;
}

.case-detail-contact-cta h2{
  margin:0 0 14px;
  font-size:1.45rem;
  line-height:1.35;
  letter-spacing:-.03em;
}

.case-detail-contact-cta p{
  margin:0;
  color:#565A56;
  line-height:1.75;
  word-break:keep-all;
}

.case-detail-contact-cta p strong{
  color:#2F3336;
  font-weight:800;
}

.case-detail-contact-links{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:20px;
}

.case-detail-service-link,
.case-detail-contact-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 18px;
  border-radius:9px;
  font-weight:800;
  text-decoration:none;
}

.case-detail-service-link{
  background:#FFFFFF;
  border:1px solid #CFCFC8;
  color:#3F4441;
}

.case-detail-contact-link{
  background:#F05A24;
  border:1px solid #F05A24;
  color:#FFFFFF;
}

.case-detail-service-link:hover{
  border-color:#AEB0AA;
  background:#F2F2EE;
}

.case-detail-contact-link:hover{
  background:#D94F1F;
  border-color:#D94F1F;
}

/* 모바일 */

@media(max-width:900px){

  .case-detail-hero{
    padding-bottom:22px;
  }

  .case-detail-meta{
    margin-bottom:10px;
    font-size:.98rem;
  }
  
    .case-detail-ba-head{
    padding-top:22px;
  }

  .case-detail-ba-kicker{
    margin-bottom:6px;
    font-size:.74rem;
  }

  .case-detail-before-after{
    padding-bottom:28px;
  }

  .case-detail-section-head{
    margin-bottom:18px;
  }

  .case-detail-section-head h2{
    margin-bottom:8px;
    font-size:1.45rem;
  }

  .case-detail-section-head p{
    font-size:.95rem;
    line-height:1.7;
  }

  .case-detail-ba-grid{
    grid-template-columns:1fr;
    gap:20px;
  }

  .case-detail-ba-item{
    width:90%;
    margin:0 auto;
  }

  .case-detail-ba-item img{
    height:360px;
    border-radius:10px;
  }

  .case-detail-ba-item figcaption{
    margin-top:7px;
    font-size:.76rem;
  }
  
    /* 상세페이지 작업 과정 */

  .case-detail-process{
    padding-bottom:0;
  }

  .case-detail-process-head{
    padding-top:22px;
    margin-bottom:18px;
  }

  .case-detail-process-kicker{
    margin-bottom:6px;
    font-size:.74rem;
  }

  .case-detail-process-head h2{
    margin-bottom:8px;
    font-size:1.45rem;
  }

  .case-detail-process-head p{
    font-size:.95rem;
    line-height:1.7;
  }

  .case-detail-process-grid{
    grid-template-columns:1fr;
    gap:26px;
  }

  .case-detail-process-item{
    width:90%;
    margin:0 auto;
  }

  .case-detail-process-item img{
    width:100%;
    aspect-ratio:5 / 6;
    border-radius:10px;
  }

  .case-detail-process-copy{
    padding-top:12px;
  }

  .case-detail-process-copy > span{
    margin-bottom:5px;
    font-size:.73rem;
  }

  .case-detail-process-copy h3{
    margin-bottom:7px;
    font-size:1.16rem;
  }

  .case-detail-process-copy p{
    font-size:.92rem;
    line-height:1.65;
  }
  /* 상세페이지 상담 CTA */

.case-detail-contact{
  padding-bottom:28px;
}

.case-detail-contact-cta{
  margin-top:26px;
  padding:22px 20px;
  border-radius:12px;
}

.case-detail-contact-cta h2{
  margin-bottom:12px;
  font-size:1.28rem;
}

.case-detail-contact-cta p{
  font-size:.94rem;
  line-height:1.7;
}

.case-detail-contact-links{
  flex-direction:column;
  align-items:center;
  gap:9px;
  margin-top:17px;
}

.case-detail-service-link,
.case-detail-contact-link{
  width:210px;
  min-height:42px;
  padding:0 14px;
  font-size:.92rem;
}
}


/* ===== SERVICE RELATED CASES ===== */

.service-related-cases{
  margin-top:40px;
}

.service-related-cases h2{
  margin:0 0 16px;
}

/* 사례 1개=1칸, 2개=나란히 (칸 최대 300px) */
.service-related-cases-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,300px));
  gap:20px;
}

.service-related-case-item{
  min-width:0;
}

.service-related-case-photo{
  display:block;
  overflow:hidden;
  border-radius:10px;
  background:#ECEDEB;
}

.service-related-case-photo img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:5/6;
  object-fit:cover;
}

.service-related-case-label{
  margin:10px 0 0;
  color:#2F3336;
  font-size:.95rem;
  font-weight:700;
  line-height:1.45;
  letter-spacing:-.02em;
  word-break:keep-all;
}

.service-related-cases-more{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  margin-top:20px;
  padding:0 22px;
  border:1px solid #BFC1BD;
  border-radius:10px;
  background:#fff;
  color:#2F3336;
  font-size:.95rem;
  font-weight:700;
  text-decoration:none;
}

.service-related-cases-more:hover{
  border-color:#2F3336;
  color:#2F3336;
}


/* 모바일 */
@media(max-width:900px){

  .service-related-cases{
    margin-top:32px;
  }

  .service-related-cases h2{
    margin-bottom:14px;
  }

  .service-related-cases-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }

  .service-related-case-photo{
    border-radius:9px;
  }

  .service-related-case-label{
    margin-top:9px;
    font-size:.92rem;
  }

  .service-related-cases-more{
    display:flex;
    width:100%;
    min-height:48px;
    margin-top:20px;
    font-size:.92rem;
  }
}

/* ===== HOME NEED (보도블럭시공이 필요한 경우) ===== */

.home-need-intro{
  margin:0 0 22px;
  max-width:760px;
  color:#666B6F;
  font-size:.94rem;
  line-height:1.65;
}

.home-need-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
}

.home-need-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:22px 20px;
  background:#FFFFFF;
  border:1px solid #D9D9D3;
  border-radius:12px;
}

.home-need-card h3{
  margin:0 0 8px;
  color:#2F3336;
  font-size:1.06rem;
  font-weight:800;
  line-height:1.4;
  letter-spacing:-.02em;
}

.home-need-card p{
  margin:0;
  color:#666B6F;
  font-size:.94rem;
  line-height:1.65;
}

.home-need-card .inline-link{
  align-self:flex-start;
  margin-top:auto;
  padding-top:16px;
  color:#2F3336;
  font-size:.92rem;
}

@media(max-width:900px){

  .home-need-intro{
    margin-bottom:18px;
    font-size:.92rem;
  }

  .home-need-grid{
    grid-template-columns:minmax(0,1fr);
    gap:9px;
  }

  .home-need-card{
    padding:17px 16px;
    border-radius:10px;
  }

  .home-need-card .inline-link{
    padding-top:12px;
  }
}

/* ===== HOME CASES (홈 시공사례 — 관련 사례 컴포넌트 홈 변형) ===== */

.service-related-cases--home{
  margin-top:0;
}

.service-related-cases--home .service-related-cases-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

@media(max-width:900px){

  .service-related-cases--home{
    margin-top:0;
  }

  .service-related-cases--home .service-related-cases-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
