/*
 * 디자인 부품 — body 클래스로 조합: hd-* (헤더) / hero-* (첫 화면·띠) / card-* (카드·박스·버튼 모양)
 *                                   / h2-* (섹션 제목) / ord-* (홈 섹션 순서) / ft-* (푸터)
 * *-flyer, ord-0, ft-stack 은 기본(style.css) 그대로라 규칙이 없다.
 */

/* ================= 헤더 ================= */
/* hd-clean: 밝은 한 줄 헤더 + 아래 안내 띠 */
.hd-clean .site-header { background: rgba(255,255,255,0.97); border-bottom: 1px solid #e8eaee; box-shadow: 0 2px 12px rgba(17,24,39,0.04); }
.hd-clean .header-inner { height: 68px; }
.hd-clean .brand { font-family: var(--font-body); font-weight: 900; color: var(--ink); font-size: 1.35rem; display: flex; align-items: center; gap: 8px; }
.hd-clean .brand::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--red); }
.hd-clean .main-nav { color: #4b5563; gap: 26px; }
.hd-clean .header-call { background: #fff; color: var(--red); border: 2px solid var(--red); box-shadow: none; padding: 8px 18px; }
.hd-clean .header-call:hover { background: var(--red); color: #fff; }
.hd-clean .topbar { background: var(--cream); color: var(--red-dark); font-weight: 700; font-size: 0.86rem; text-align: left; padding: 9px 0; }

/* hd-split: 상호·안내·전화 줄 + 어두운 메뉴 줄 */
.hd-split .site-header { background: #fff; border-bottom: none; box-shadow: 0 2px 10px rgba(0,0,0,0.06); }
.hd-split .header-top { display: flex; align-items: center; gap: 18px; height: 62px; }
.hd-split .brand { font-size: 1.5rem; color: var(--ink); }
.hd-split .header-note { flex: 1; text-align: center; font-size: 0.86rem; font-weight: 700; color: var(--red-dark); }
.hd-split .header-call { border-radius: 6px; box-shadow: none; padding: 10px 18px; }
.hd-split .header-nav { background: var(--ink); }
.hd-split .main-nav { margin-left: 0; gap: 0; color: #fff; font-size: 0.93rem; }
.hd-split .main-nav a { padding: 11px 18px; border-right: 1px solid rgba(255,255,255,0.12); }
.hd-split .main-nav a:first-child { border-left: 1px solid rgba(255,255,255,0.12); }
.hd-split .main-nav a:hover { background: var(--red); color: #fff; }

/* hd-bold: 가운데 상호, 왼쪽 메뉴, 오른쪽 전화 — 어두운 바 */
.hd-bold .topbar { background: var(--yellow); color: var(--ink); }
.hd-bold .site-header { background: var(--ink); border-bottom: 4px solid var(--yellow); }
.hd-bold .header-stack { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 70px; gap: 16px; }
.hd-bold .brand { grid-column: 2; color: #fff; font-size: 1.7rem; }
.hd-bold .main-nav { grid-column: 1; grid-row: 1; margin-left: 0; color: rgba(255,255,255,0.82); gap: 16px; font-size: 0.9rem; }
.hd-bold .main-nav a:hover { color: var(--yellow); }
.hd-bold .header-call { grid-column: 3; justify-self: end; background: var(--yellow); color: var(--ink); border-radius: 0; box-shadow: none; }

/* hd-soft: 떠 있는 둥근 헤더 + 알약 안내 (헤더가 떠 보이도록 바탕을 사이트 색으로 옅게) */
body.hd-soft { background: var(--cream); }
.hd-soft .site-header { top: 10px; background: transparent; border-bottom: none; padding-top: 10px; }
.hd-soft .header-pill { display: flex; align-items: center; gap: 18px; background: #fff; border-radius: 999px; box-shadow: 0 6px 20px rgba(0,0,0,0.08); padding: 10px 12px 10px 28px; }
.hd-soft .brand-box { display: flex; flex-direction: column; line-height: 1.15; }
.hd-soft .brand { color: var(--red); font-size: 1.35rem; }
.hd-soft .brand-sub { order: 2; font-size: 0.75rem; color: var(--text-sub); font-weight: 700; }
.hd-soft .main-nav { gap: 6px; }
.hd-soft .main-nav a { padding: 7px 12px; border-radius: 999px; }
.hd-soft .main-nav a:hover { background: var(--cream); }
.hd-soft .header-call { box-shadow: none; }
.hd-soft .topbar { display: inline-block; margin: 14px 0 0; background: #fff; color: var(--red-dark); border-radius: 999px; padding: 6px 16px; font-size: 0.85rem; box-shadow: 0 2px 8px rgba(0,0,0,0.05); }

/* hd-trust: 위쪽 어두운 안내 띠(전화 포함) + 흰 헤더, 밑줄 메뉴 */
.hd-trust .util-bar { background: var(--ink); color: rgba(255,255,255,0.8); font-size: 0.84rem; }
.hd-trust .util-inner { display: flex; align-items: center; justify-content: space-between; height: 40px; gap: 12px; }
.hd-trust .util-bar .topbar { background: none; color: inherit; padding: 0; font-size: inherit; text-align: left; }
.hd-trust .header-call { background: none; box-shadow: none; padding: 0; color: var(--yellow); font-size: 0.95rem; border-radius: 0; }
.hd-trust .header-call:hover { background: none; color: #fff; }
.hd-trust .site-header { background: #fff; border-bottom: 1px solid #dfe3ea; }
.hd-trust .header-inner { height: 72px; }
.hd-trust .brand { color: var(--red-dark); font-size: 1.55rem; }
.hd-trust .main-nav { gap: 0; color: #334155; }
.hd-trust .main-nav a { padding: 25px 16px 22px; border-bottom: 3px solid transparent; }
.hd-trust .main-nav a:hover { color: var(--red-dark); border-bottom-color: var(--red); }

@media (max-width: 900px) {
  .hd-bold .header-stack { display: flex; flex-wrap: wrap; height: auto; padding: 10px 20px 0; gap: 0; }
  .hd-bold .brand { order: 1; font-size: 1.3rem; }
  .hd-bold .header-call { order: 2; margin-left: auto; font-size: 0.86rem; padding: 7px 12px; }
  .hd-bold .main-nav { order: 3; width: 100%; overflow-x: auto; white-space: nowrap; padding: 10px 2px; }
}
@media (max-width: 760px) {
  .hd-clean .header-inner { height: auto; }
  .hd-clean .topbar { text-align: center; }
  .hd-split .header-top { height: auto; padding: 10px 20px; flex-wrap: wrap; gap: 8px; }
  .hd-split .header-note { order: 3; flex: 0 0 100%; text-align: left; font-size: 0.78rem; }
  .hd-split .header-call { margin-left: auto; font-size: 0.86rem; padding: 7px 12px; }
  .hd-split .main-nav { overflow-x: auto; white-space: nowrap; }
  .hd-split .main-nav a { padding: 10px 14px; }
  .hd-soft .site-header { top: 0; padding: 8px 10px 0; }
  .hd-soft .header-pill { flex-wrap: wrap; border-radius: 22px; padding: 10px 14px; row-gap: 4px; }
  .hd-soft .brand-box { order: 1; }
  .hd-soft .header-call { order: 2; margin-left: auto; font-size: 0.86rem; padding: 8px 12px; }
  .hd-soft .main-nav { order: 3; width: 100%; overflow-x: auto; white-space: nowrap; margin-left: 0; }
  .hd-trust .util-inner { height: auto; padding: 6px 20px; flex-wrap: wrap; gap: 2px; }
  .hd-trust .util-bar .topbar { font-size: 0.76rem; }
  .hd-trust .header-inner { height: auto; padding: 10px 20px 0; flex-wrap: wrap; }
  .hd-trust .main-nav { width: 100%; overflow-x: auto; white-space: nowrap; margin-left: 0; }
  .hd-trust .main-nav a { padding: 10px 12px; }
  .hd-split .main-nav::-webkit-scrollbar, .hd-bold .main-nav::-webkit-scrollbar, .hd-soft .main-nav::-webkit-scrollbar, .hd-trust .main-nav::-webkit-scrollbar { display: none; }
}

/* ================= 첫 화면(히어로) + 체크 띠 ================= */
/* hero-clean: 왼쪽은 사이트 색을 옅게 깐 면, 오른쪽은 사진이 그대로 보이게 */
.hero-clean .hero, .hero-clean .page-head {
  background: linear-gradient(90deg, var(--cream) 0%, var(--cream) 40%, rgba(255,255,255,0) 72%), url('/hero.jpg') right center/cover no-repeat !important;
  color: var(--ink); text-align: left; border-bottom: 5px solid var(--red);
}
.hero-clean .page-head { background: linear-gradient(90deg, var(--cream) 0%, var(--cream) 55%, rgba(255,255,255,0.35) 100%), url('/hero.jpg') right center/cover no-repeat !important; }
.hero-clean .hero { padding: 84px 0 76px; }
.hero-clean .hero .wrap > * { max-width: 600px; }
.hero-clean .hero-eyebrow { background: var(--red); color: #fff; box-shadow: none; transform: none; border-radius: 6px; padding: 5px 14px; margin-bottom: 16px; }
.hero-clean .hero h1, .hero-clean .page-head h1 { text-shadow: none; color: var(--ink); }
.hero-clean .hero h1 em { color: var(--red); }
.hero-clean .hero-sub { margin: 0 0 22px; color: #4b5563; opacity: 1; }
.hero-clean .page-head .hero-sub { margin: 0; }
.hero-clean .hero-tel { background: #fff; color: var(--red); border-radius: 10px; box-shadow: 0 6px 18px rgba(0,0,0,0.1); }
.hero-clean .hero .cta-actions { justify-content: flex-start; }
.hero-clean .hero .btn-ghost { background: #fff; color: var(--ink); border: 1.5px solid #d1d5db; }
.hero-clean .hero-areas { color: #4b5563; opacity: 1; }
.hero-clean .page-head { padding: 52px 0 44px; }
.hero-clean .check-strip { background: var(--ink); color: #fff; }
.hero-clean .check-strip div { border-right: 1px solid rgba(255,255,255,0.15); }

/* hero-split: 왼쪽 색면 + 오른쪽 비스듬한 사진 */
.hero-split .hero { position: relative; background: var(--red) !important; text-align: left; padding: 70px 0 64px; overflow: hidden; }
.hero-split .hero::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 44%; background: url('/hero.jpg') center/cover no-repeat; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); }
.hero-split .hero .wrap { position: relative; z-index: 1; }
.hero-split .hero .wrap > * { max-width: 560px; }
.hero-split .hero-eyebrow { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,0.8); box-shadow: none; transform: none; border-radius: 4px; padding: 4px 14px; }
.hero-split .hero h1 { text-shadow: none; }
.hero-split .hero-sub { margin: 0 0 22px; }
.hero-split .hero-tel { background: var(--ink); color: #fff; border-radius: 6px; box-shadow: none; }
.hero-split .hero .cta-actions { justify-content: flex-start; }
.hero-split .page-head { background: var(--ink) !important; text-align: left; border-bottom: 6px solid var(--red); }
.hero-split .page-head h1 { text-shadow: none; }
.hero-split .check-strip { background: var(--ink); color: #fff; justify-content: flex-start; }
.hero-split .check-strip div { border-right: none; border-left: 4px solid var(--yellow); margin: 10px 0 10px 20px; padding: 2px 14px; }

/* hero-bold: 큰 글씨 왼쪽 정렬, 형광 강조 */
.hero-bold .hero { padding: 96px 0 84px; text-align: left; }
.hero-bold .hero-eyebrow { background: transparent; color: var(--yellow); border: 2px solid var(--yellow); border-radius: 0; transform: none; box-shadow: none; }
.hero-bold .hero h1 { font-size: clamp(2.4rem, 7vw, 4.2rem); line-height: 1.1; text-shadow: none; }
.hero-bold .hero h1 em { background: var(--yellow); color: var(--ink); padding: 0 8px; }
.hero-bold .hero-sub { margin: 0 0 24px; font-size: 1.15rem; }
.hero-bold .hero-tel { background: var(--red); color: #fff; border-radius: 0; box-shadow: 6px 6px 0 rgba(0,0,0,0.35); }
.hero-bold .hero .cta-actions { justify-content: flex-start; }
.hero-bold .page-head { background: var(--ink) !important; text-align: left; padding: 48px 0 40px; }
.hero-bold .page-head h1 { text-shadow: none; font-size: clamp(1.8rem, 5vw, 2.8rem); }
.hero-bold .check-strip { background: var(--red); color: #fff; }
.hero-bold .check-strip div { border-right: 2px solid rgba(255,255,255,0.25); }

/* hero-soft: 둥근 사진 상자, 가운데 정렬 + 알약 띠 */
.hero-soft .hero, .hero-soft .page-head { margin: 16px auto 0; max-width: 1120px; border-radius: 28px; }
.hero-soft .hero { padding: 64px 24px 56px; }
.hero-soft .hero-eyebrow { transform: none; box-shadow: none; background: #fff; color: var(--red); }
.hero-soft .hero h1, .hero-soft .page-head h1 { text-shadow: none; }
.hero-soft .hero-tel { border-radius: 999px; box-shadow: 0 8px 20px rgba(0,0,0,0.18); }
.hero-soft .page-head { background: var(--red) !important; padding: 44px 24px 38px; }
.hero-soft .check-strip { background: transparent; gap: 10px; padding: 18px 20px 0; color: var(--ink); }
.hero-soft .check-strip div { background: #fff; border: none; border-radius: 999px; padding: 9px 18px; box-shadow: 0 2px 10px rgba(0,0,0,0.06); }

/* hero-trust: 사진 위 흰 상자 */
.hero-trust .hero { padding: 80px 0; text-align: left; }
.hero-trust .hero .wrap { max-width: 600px; margin-left: max(20px, calc((100% - 1080px) / 2 + 20px)); margin-right: auto; background: rgba(255,255,255,0.96); color: var(--ink); padding: 36px 38px; border-radius: 4px; border-top: 5px solid var(--red); box-shadow: 0 20px 40px rgba(0,0,0,0.25); }
.hero-trust .hero-eyebrow { background: var(--cream); color: var(--red-dark); transform: none; box-shadow: none; border-radius: 2px; font-size: 0.85rem; }
.hero-trust .hero h1 { text-shadow: none; font-size: clamp(1.8rem, 4.5vw, 2.6rem); }
.hero-trust .hero h1 em { color: var(--red); }
.hero-trust .hero-sub { margin: 0 0 18px; color: #475569; opacity: 1; font-size: 1rem; }
.hero-trust .hero-tel { background: var(--red); color: #fff; border-radius: 4px; box-shadow: none; font-size: clamp(1.4rem, 3.6vw, 2rem); }
.hero-trust .hero .cta-actions { justify-content: flex-start; }
.hero-trust .hero .btn-ghost { background: #fff; color: var(--ink); border: 1px solid #cbd5e1; }
.hero-trust .hero-areas { color: #64748b; opacity: 1; font-size: 0.85rem; }
.hero-trust .page-head { background: var(--red-dark) !important; text-align: left; padding: 42px 0 36px; }
.hero-trust .page-head h1 { text-shadow: none; }
.hero-trust .check-strip { background: #f1f5f9; color: var(--ink); border-bottom: 1px solid #dfe3ea; }
.hero-trust .check-strip div { border-right: 1px solid #dfe3ea; }

@media (max-width: 760px) {
  .hero-clean .hero { padding: 48px 0 44px; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, var(--cream) 44%), url('/hero.jpg') center top/100% auto no-repeat, var(--cream) !important; padding-top: 170px; }
  .hero-split .hero { padding: 210px 0 40px; }
  .hero-split .hero::after { width: 100%; height: 180px; bottom: auto; clip-path: polygon(0 0, 100% 0, 100% 82%, 0 100%); }
  .hero-bold .hero { padding: 56px 0 48px; }
  .hero-soft .hero, .hero-soft .page-head { margin: 12px 10px 0; border-radius: 22px; }
  .hero-soft .hero { padding: 44px 16px 40px; }
  .hero-trust .hero { padding: 36px 0; }
  .hero-trust .hero .wrap { margin: 0 14px; padding: 26px 22px; }
}

/* ================= 카드·박스·버튼 모양 ================= */
/* card-clean: 얇은 선 + 부드러운 그림자 */
.card-clean .btn { border-radius: 8px; box-shadow: none !important; }
.card-clean .btn-primary { background: var(--red); color: #fff; }
.card-clean .section { padding: 64px 0; }
.card-clean .section-alt { background: #f7f8fa; }
.card-clean .card, .card-clean .price-card, .card-clean .area-block { border: 1px solid #e6e8ec; border-radius: 14px; box-shadow: 0 1px 2px rgba(17,24,39,0.04); }
.card-clean .card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(17,24,39,0.08); border-color: #e6e8ec; }
.card-clean .card h3 { color: var(--ink); font-family: var(--font-body); font-weight: 900; }
.card-clean .card-more { color: var(--red); }
.card-clean .feature { background: #fff; border: 1px solid #e6e8ec; border-radius: 14px; }
.card-clean .price-table { border: 1px solid #e6e8ec; }
.card-clean .price-table th { background: #f3f4f6; color: var(--ink); }
.card-clean .check-list li::before { background: transparent; color: var(--red); border: 1.5px solid var(--red); }
.card-clean .dong-links a { background: #f3f4f6; border: none; }
.card-clean .map-grid a { border: 1px solid #e6e8ec; box-shadow: none; }
.card-clean .cta-box { background: linear-gradient(135deg, var(--red), var(--red-dark)); border-radius: 18px; }
.card-clean .cta-box::before { display: none; }
.card-clean .cta-box .btn-red { background: var(--ink); }
.card-clean .cta-box .btn-primary { background: #fff; color: var(--red); }
.card-clean .faq-item { border: 1px solid #e6e8ec; border-radius: 12px; }
.card-clean .quote-form input[type="text"], .card-clean .quote-form input[type="tel"], .card-clean .quote-form select, .card-clean .q-phone .q-prefix { border: 1px solid #d6d9df; border-radius: 8px; }
.card-clean .call-bar-btn.sms { background: var(--ink); color: #fff; }
.card-clean .post-meta { border-bottom: 1px solid #e6e8ec; }
.card-clean .post-body table { border: 1px solid #e6e8ec; }

/* card-accent: 왼쪽 색 막대 목록형 */
.card-accent .btn { border-radius: 6px; box-shadow: none !important; }
.card-accent .section-alt { background: #f4f5f7; }
.card-accent .card-grid { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; }
.card-accent .card { border: none; border-left: 5px solid var(--red); border-radius: 0 10px 10px 0; background: var(--cream); box-shadow: none; padding: 18px 20px; }
.card-accent .card:hover { transform: translateX(4px); box-shadow: none; background: #fff; border-color: var(--red); }
.card-accent .card h3 { color: var(--ink); }
.card-accent .card-more { color: var(--red); }
.card-accent .feature-grid { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.card-accent .feature { display: grid; grid-template-columns: 54px 1fr; column-gap: 14px; background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; }
.card-accent .feature-icon { grid-row: span 2; width: 54px; height: 54px; border-radius: 50%; background: var(--cream); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; margin: 0; }
.card-accent .price-card { border: none; border-top: 5px solid var(--red); border-radius: 0 0 10px 10px; box-shadow: 0 4px 14px rgba(0,0,0,0.06); text-align: left; }
.card-accent .price-table { border: none; }
.card-accent .price-table th { background: var(--red); color: #fff; }
.card-accent .area-block { box-shadow: none; border: 1px solid #e5e7eb; border-radius: 10px; }
.card-accent .map-grid a { box-shadow: none; border-radius: 6px; }
.card-accent .faq-item { border: none; border-bottom: 1px solid #e5e7eb; border-radius: 0; background: transparent; }
.card-accent .faq-item summary, .card-accent .faq-item p { padding-left: 0; }
.card-accent .cta-box { background: var(--red); border-radius: 10px; text-align: left; display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 24px; }
.card-accent .cta-box::before { display: none; }
.card-accent .cta-box .cta-actions { grid-row: span 2; grid-column: 2; }
.card-accent .cta-box .btn-red { background: var(--ink); }
.card-accent .call-bar-btn { background: var(--ink); }
.card-accent .call-bar-btn.sms { background: var(--red); color: #fff; }

/* card-flat: 각진 평면 + 어두운 띠 섹션 */
.card-flat .btn { border-radius: 0; }
.card-flat .btn-primary { box-shadow: 4px 4px 0 rgba(0,0,0,0.35); }
.card-flat .section-alt { background: var(--ink); color: rgba(255,255,255,0.86); }
.card-flat .section-alt h2 { color: #fff; }
.card-flat .section-alt .section-sub, .card-flat .section-alt .body-text { color: rgba(255,255,255,0.7); }
.card-flat .section-alt .price-card, .card-flat .section-alt .area-block, .card-flat .section-alt .card, .card-flat .section-alt .feature { background: #1f2833; border: none; box-shadow: none; color: rgba(255,255,255,0.85); }
.card-flat .section-alt .price-card .t, .card-flat .section-alt .card h3, .card-flat .section-alt .feature h3 { color: #fff; }
.card-flat .section-alt .price-card .v { color: var(--yellow); }
.card-flat .section-alt .price-card .n, .card-flat .section-alt .card p, .card-flat .section-alt .feature p { color: rgba(255,255,255,0.6); }
.card-flat .section-alt .area-block h3 a { color: var(--yellow); }
.card-flat .section-alt .dong-links a { background: transparent; border-color: rgba(255,255,255,0.35); color: #fff; }
.card-flat .section-alt .dong-links a:hover { background: var(--yellow); color: var(--ink); }
.card-flat .section-alt .check-list li { border-color: rgba(255,255,255,0.15); }
.card-flat .section-alt .check-list a { color: var(--yellow); }
.card-flat .section-alt .price-table { color: var(--text); }
.card-flat .section-alt .map-wrap::before { opacity: 0.15; }
.card-flat .card { border: none; border-top: 5px solid var(--red); border-radius: 0; background: #f3f4f6; box-shadow: none; }
.card-flat .card:hover { transform: translateY(-4px); box-shadow: 0 10px 0 var(--ink); border-color: var(--red); }
.card-flat .card h3 { color: var(--ink); font-size: 1.25rem; }
.card-flat .feature { background: #fff; border: 3px solid var(--ink); border-radius: 0; }
.card-flat .price-card, .card-flat .area-block, .card-flat .map-grid a { border-radius: 0; }
.card-flat .price-table { border-width: 3px; }
.card-flat .faq-item { border: none; border-left: 6px solid var(--yellow); border-radius: 0; background: #f3f4f6; }
.card-flat .cta-box { border-radius: 0; background: var(--red); }
.card-flat .cta-box::before { background: repeating-linear-gradient(-45deg, var(--ink), var(--ink) 14px, var(--yellow) 14px, var(--yellow) 28px); }
.card-flat .cta-box .btn-red { background: var(--ink); }
.card-flat .quote-form input[type="text"], .card-flat .quote-form input[type="tel"], .card-flat .quote-form select, .card-flat .q-phone .q-prefix { border-radius: 0; border-width: 3px; }
.card-flat .call-bar-btn { border-radius: 0; }

/* card-round: 둥글고 떠 있는 그림자 카드, 크림 바탕 */
.card-round { background: var(--cream); }
.card-round .btn { border-radius: 999px; box-shadow: none !important; }
.card-round .btn-ghost { background: #fff; color: var(--ink); }
.card-round .cta-box .btn-ghost { background: rgba(255,255,255,0.18); color: #fff; }
.card-round .section-alt { background: #fff; border-radius: 32px; max-width: 1120px; margin: 0 auto; }
.card-round .card, .card-round .price-card, .card-round .area-block, .card-round .feature { border: none; border-radius: 22px; background: #fff; box-shadow: 0 8px 24px rgba(0,0,0,0.06); }
.card-round .section-alt .card, .card-round .section-alt .price-card, .card-round .section-alt .area-block, .card-round .section-alt .feature { background: var(--cream); box-shadow: none; }
.card-round .card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(0,0,0,0.1); border-color: transparent; }
.card-round .feature-icon { width: 58px; height: 58px; border-radius: 50%; background: var(--cream); display: flex; align-items: center; justify-content: center; }
.card-round .section-alt .feature-icon { background: #fff; }
.card-round .price-table { border: none; border-radius: 18px; overflow: hidden; box-shadow: 0 8px 24px rgba(0,0,0,0.06); }
.card-round .price-table th { background: var(--red); color: #fff; }
.card-round .check-list li { border-bottom: none; }
.card-round .check-list li::before { background: var(--red); color: #fff; }
.card-round .dong-links a { border: none; background: var(--cream); }
.card-round .section-alt .dong-links a { background: #fff; }
.card-round .map-grid a { border: none; border-radius: 16px; box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
.card-round .faq-item { border: none; border-radius: 18px; box-shadow: 0 4px 14px rgba(0,0,0,0.05); }
.card-round .faq-item summary::before { content: "💬"; }
.card-round .cta-box { border-radius: 28px; background: var(--red); }
.card-round .cta-box::before { display: none; }
.card-round .cta-box .btn-red { background: #fff; color: var(--red); }
.card-round .quote-form input[type="text"], .card-round .quote-form input[type="tel"], .card-round .quote-form select, .card-round .q-phone .q-prefix { border: 2px solid #ece5da; border-radius: 14px; }
.card-round .call-bar { padding: 8px; gap: 8px; background: rgba(255,255,255,0.95); }
.card-round .call-bar-btn { border-radius: 999px; padding: 12px 8px; }
.card-round .post-article { background: #fff; border-radius: 28px; margin-top: 20px; margin-bottom: 30px; box-shadow: 0 8px 24px rgba(0,0,0,0.05); }
@media (max-width: 760px) {
  .card-round .section-alt { border-radius: 24px; margin: 0 8px; }
  body.card-round { padding-bottom: 72px; }
  .card-accent .card-grid, .card-accent .feature-grid { grid-template-columns: 1fr; }
  .card-accent .cta-box { display: block; text-align: center; }
}

/* card-line: 각진 얇은 선, 위쪽 굵은 선 */
.card-line .btn { border-radius: 4px; box-shadow: none !important; }
.card-line .section-alt { background: #f8fafc; border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; }
.card-line .card, .card-line .price-card, .card-line .area-block { border: 1px solid #dfe3ea; border-radius: 4px; box-shadow: none; }
.card-line .card { border-top: 3px solid var(--ink); }
.card-line .card:hover { transform: none; box-shadow: 0 8px 20px rgba(15,23,42,0.08); border-color: #dfe3ea; border-top-color: var(--red); }
.card-line .card h3 { color: var(--ink); }
.card-line .card-more { color: var(--red-dark); }
.card-line .feature { background: #fff; border: 1px solid #dfe3ea; border-radius: 4px; text-align: center; }
.card-line .price-card .v { color: var(--red-dark); }
.card-line .price-table { border: 1px solid #dfe3ea; }
.card-line .price-table th { background: var(--red-dark); color: #fff; }
.card-line .check-list li::before { border-radius: 2px; background: var(--red-dark); color: #fff; }
.card-line .dong-links a { border-radius: 4px; border: 1px solid #cbd5e1; background: #fff; }
.card-line .map-grid a { border-radius: 4px; border: 1px solid #cbd5e1; box-shadow: none; }
.card-line .faq-item { border: 1px solid #dfe3ea; border-radius: 4px; }
.card-line .faq-item summary::after { color: var(--red-dark); }
.card-line .cta-box { background: var(--red-dark); border-radius: 4px; }
.card-line .cta-box::before { display: none; }
.card-line .cta-box .btn-red { background: #fff; color: var(--red-dark); }
.card-line .quote-form input[type="text"], .card-line .quote-form input[type="tel"], .card-line .quote-form select, .card-line .q-phone .q-prefix { border: 1px solid #cbd5e1; border-radius: 4px; }
.card-line .call-bar-btn { background: var(--red-dark); }
.card-line .call-bar-btn.sms { background: #fff; color: var(--ink); }
.card-line .post-meta { border-bottom: 1px solid #dfe3ea; }

/* ================= 섹션 제목 ================= */
.h2-line .section h2, .h2-num .section h2, .h2-marker .section h2, .h2-center .section h2 { border-left: none; padding-left: 0; }
.h2-line .post-body h2, .h2-num .post-body h2, .h2-marker .post-body h2, .h2-center .post-body h2 { border-left: none; padding-left: 0; }
/* h2-line: 제목 위 짧은 막대 */
.h2-line .section h2 { font-size: 1.8rem; }
.h2-line .section h2::before { content: ""; display: block; width: 36px; height: 4px; border-radius: 2px; background: var(--red); margin-bottom: 14px; }
.h2-line .post-body h2 { border-bottom: 2px solid var(--red); padding-bottom: 8px; display: inline-block; }
/* h2-num: 01·02 번호 */
.h2-num main { counter-reset: yls; }
.h2-num .section h2 { font-size: 1.75rem; }
.h2-num .section > h2:first-child::before, .h2-num .section > .wrap > h2:first-child::before {
  counter-increment: yls; content: counter(yls, decimal-leading-zero); display: block;
  font-family: var(--font-body); font-size: 0.95rem; font-weight: 900; color: var(--red); letter-spacing: 0.12em; margin-bottom: 4px;
}
.h2-num .post-body h2::before { content: ""; display: inline-block; width: 10px; height: 10px; background: var(--red); margin-right: 10px; vertical-align: middle; }
/* h2-marker: 형광펜 */
.h2-marker .section h2, .h2-marker .post-body h2 { display: inline-block; font-size: 1.9rem; background: linear-gradient(transparent 64%, var(--yellow) 64%); padding-right: 6px; }
.h2-marker .post-body h2 { font-size: 1.4rem; }
.h2-marker .section h2 + * { margin-top: 18px; }
.h2-marker .card-flat .section-alt h2, .card-flat.h2-marker .section-alt h2 { background: linear-gradient(transparent 82%, var(--yellow) 82%); }
/* h2-center: 가운데 + 밑줄 */
.h2-center .section h2 { text-align: center; font-size: 1.7rem; }
.h2-center .section h2::after { content: ""; display: block; width: 48px; height: 3px; background: var(--red); margin: 12px auto 0; }
.h2-center .section-sub { text-align: center; margin-left: auto; margin-right: auto; }
.h2-center .post-body h2 { padding-bottom: 8px; border-bottom: 1px solid #dfe3ea; }

/* ================= 홈 섹션 순서 ================= */
.home.ord-1 main, .home.ord-2 main { display: flex; flex-direction: column; }
.home.ord-1 main > *, .home.ord-2 main > * { width: 100%; }
.home.ord-1 main > .hero, .home.ord-2 main > .hero { order: 0; }
.home.ord-1 main > .check-strip, .home.ord-2 main > .check-strip { order: 1; }
.home.ord-1 main > section:not(.hero) { order: 50; }
.home.ord-2 main > section:not(.hero) { order: 50; }
/* ord-1: 이유 → 서비스 → 비용 → 접수 → 지역 → 질문 */
.home.ord-1 main > section:has(.feature-grid) { order: 10; }
.home.ord-1 main > section:has(.card-grid) { order: 11; }
.home.ord-1 main > section:has(.price-cards) { order: 12; }
.home.ord-1 main > section.quote-sec { order: 13; }
.home.ord-1 main > section:has(.area-grid) { order: 14; }
.home.ord-1 main > section:has(.faq-list) { order: 15; }
.home.ord-1 main > section:has(.cta-box) { order: 16; }
/* ord-2: 비용 → 접수 → 서비스 → 질문 → 이유 → 지역 */
.home.ord-2 main > section:has(.price-cards) { order: 10; }
.home.ord-2 main > section.quote-sec { order: 11; }
.home.ord-2 main > section:has(.card-grid) { order: 12; }
.home.ord-2 main > section:has(.faq-list) { order: 13; }
.home.ord-2 main > section:has(.feature-grid) { order: 14; }
.home.ord-2 main > section:has(.area-grid) { order: 15; }
.home.ord-2 main > section:has(.cta-box) { order: 16; }

/* ================= 푸터 ================= */
/* ft-cols: 3단 (마크업도 다름) */
.ft-cols .footer-cols { background: #12171e; border-top: 6px solid var(--red); padding-top: 44px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 28px; }
.footer-cols .fcol p { margin-bottom: 6px; }
.footer-cols .footer-brand { color: #fff; }
.fcol-title { font-weight: 900; color: #fff; margin-bottom: 10px !important; }
.footer-list { list-style: none; line-height: 2; }
.footer-list a { opacity: 0.8; }
.footer-list a:hover { opacity: 1; color: var(--yellow); }
.footer-bottom { margin-top: 26px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.1); }
@media (max-width: 700px) { .footer-grid { grid-template-columns: 1fr 1fr; } .footer-grid .fcol:first-child { grid-column: 1 / -1; } }
/* ft-center: 밝은 가운데 정렬 */
.ft-center .site-footer { background: #fff; color: var(--text-sub); border-top: none; border-radius: 32px 32px 0 0; text-align: center; margin-top: 30px; box-shadow: 0 -6px 24px rgba(0,0,0,0.04); }
.ft-center .site-footer a { color: var(--ink); }
.ft-center .footer-brand { color: var(--red); }
.ft-center .footer-links a:hover { color: var(--red); }
