:root {
    --ink: #2f2a24;
    --muted: #6f675e;
    --line: #ddd5cb;
    --paper: #fffdf9;
    --cream: #f4efe7;
    --cream-2: #ebe3d7;
    --accent: #8f7d67;
    --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: "Pretendard", "Noto Sans KR", "Apple SD Gothic Neo", Arial, sans-serif;
    color: var(--ink);
    background: var(--paper);
    line-height: 1.65;
    overflow-x: hidden;
}
a { color: inherit; }
img { max-width: 100%; display: block; }
button, input { font: inherit; }
.content-wrap { width: min(calc(100% - 48px), var(--max)); margin: 0 auto; }
.section-pad { padding: 96px 0; }

/* header */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255,253,249,.94);
    border-bottom: 1px solid rgba(47,42,36,.08);
    backdrop-filter: blur(14px);
}
.header-inner {
    width: min(calc(100% - 48px), 1280px);
    height: 88px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; min-width: 250px; }
.brand-mark {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.brand-mark img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.brand-copy { display: grid; line-height: 1.05; }
.brand-copy strong { font-family: Georgia, "Times New Roman", serif; font-size: 22px; letter-spacing: -.03em; font-weight: 600; }
.brand-copy small { margin-top: 6px; font-size: 10px; letter-spacing: .26em; color: #8c8176; }
.nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(18px,3vw,48px); }
.nav-link { text-decoration: none; font-size: 15px; font-weight: 600; position: relative; padding: 32px 0; }
.nav-link::after { content:""; position:absolute; left:0; right:100%; bottom:22px; height:1px; background:var(--ink); transition:.25s ease; }
.nav-link:hover::after, .nav-link:focus-visible::after { right:0; }
.menu-toggle { display:none; width:42px; height:42px; border:0; background:transparent; padding:8px; cursor:pointer; }
.menu-toggle span { display:block; height:2px; background:var(--ink); margin:6px 0; transition:.2s; }

/* type */
.eyebrow { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.23em; color:rgba(255,255,255,.85); }
.eyebrow.dark { color:#968877; }
.section-heading h2 { margin:10px 0 14px; font-family: Georgia, "Noto Serif KR", serif; font-size:clamp(34px,4vw,54px); line-height:1.18; font-weight:500; letter-spacing:-.04em; }
.section-heading h2 { word-break:keep-all; }
.section-heading p { margin:0; color:var(--muted); }
.section-heading.centered { text-align:center; }
.short-rule { display:block; width:48px; height:1px; background:#b6aa9c; margin:24px auto 0; }

/* slider */
.hero-slider { position:relative; overflow:hidden; background:#ddd; }
.hero-slide { position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .85s ease, visibility .85s ease; background-image:var(--hero-image); background-size:cover; background-position:center; }
.hero-slide.is-active { opacity:1; visibility:visible; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(24,20,16,.75) 0%,rgba(24,20,16,.42) 36%,rgba(24,20,16,.16) 70%,rgba(24,20,16,.08) 100%),linear-gradient(0deg,rgba(20,17,14,.22),transparent 60%); }
.hero-content { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; text-align:left; padding:clamp(48px,6vw,88px) 24px; color:white; text-shadow:0 1px 20px rgba(0,0,0,.18); }
.hero-content > * { max-width: 760px; }
.hero-content h1, .hero-content h2 { margin:12px 0 24px; font-family: Georgia, "Noto Serif KR", serif; font-size:clamp(42px,5.9vw,72px); line-height:1.16; font-weight:500; letter-spacing:-.045em; word-break:keep-all; }
.hero-services { margin:0; font-size:clamp(16px,1.8vw,22px); letter-spacing:.02em; word-break:keep-all; }
.hero-rule { width:54px; height:1px; background:rgba(255,255,255,.8); margin:24px 0; }
.hero-description { margin:0; font-size:clamp(15px,1.45vw,19px); line-height:1.75; word-break:keep-all; }
.slider-arrow { position:absolute; top:50%; z-index:4; width:50px; height:50px; margin-top:-25px; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:rgba(0,0,0,.08); color:#fff; font-size:32px; line-height:1; cursor:pointer; transition:.2s; }
.slider-arrow:hover { background:rgba(0,0,0,.25); }
.slider-prev { left:28px; }.slider-next { right:28px; }
.slider-dots { position:absolute; z-index:4; bottom:22px; left:50%; transform:translateX(-50%); display:flex; gap:10px; }
.slider-dots button { width:10px; height:10px; border:0; border-radius:50%; padding:0; background:rgba(255,255,255,.42); cursor:pointer; transition:transform .25s ease, background-color .25s ease, opacity .25s ease; }
.slider-dots button.is-active { width:28px; border-radius:999px; background:#fff; transform:scale(1.05); }

/* service strip */
.service-strip { background:linear-gradient(90deg,#f8f5ef,#eee8df,#f8f5ef); border-bottom:1px solid #ebe4da; }
.service-grid { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:repeat(5,1fr); padding:38px 24px; }
.service-card { min-width:0; padding:8px 24px; text-align:center; text-decoration:none; border-right:1px solid #d9d1c6; }
.service-card:last-child { border-right:0; }
.service-card strong { display:block; margin-top:16px; font-family:Georgia,"Noto Serif KR",serif; font-size:21px; font-weight:500; }
.service-card p { min-height:52px; margin:12px 0 18px; color:#6c655d; font-size:14px; line-height:1.75; }
.service-link { font-size:13px; color:#655d54; }.service-link b { margin-left:8px; font-weight:400; transition:.2s; }.service-card:hover .service-link b { margin-left:13px; }
.service-icon { display:block; width:70px; height:70px; margin:0 auto; border-radius:50%; background:rgba(255,255,255,.55); position:relative; }
.service-icon::before, .service-icon::after { content:""; position:absolute; inset:18px; border:1.6px solid #6f685f; }
.icon-shield::before { border-radius:50% 50% 55% 55% / 30% 30% 70% 70%; transform:scale(.78); }
.icon-home::before { transform:rotate(45deg) scale(.65); border-bottom-color:transparent; border-right-color:transparent; }.icon-home::after { inset:30px 23px 17px; border-top:0; }
.icon-grid::before { inset:18px; background:linear-gradient(90deg,transparent 48%,#6f685f 48%,#6f685f 52%,transparent 52%),linear-gradient(0deg,transparent 48%,#6f685f 48%,#6f685f 52%,transparent 52%); }
.icon-roller::before { inset:21px 18px 32px; }.icon-roller::after { inset:34px 31px 14px; border-width:0 0 0 2px; }
.icon-vacuum::before { inset:25px 23px 18px 18px; border-radius:50% 50% 40% 40%; }.icon-vacuum::after { inset:15px 15px 28px 36px; border-width:2px 2px 0 0; border-radius:0 12px 0 0; }

/* home sections */
.brand-intro { text-align:center; background:#fff; }
.intro-copy { max-width:780px; margin:30px auto 0; color:#655e56; font-size:17px; line-height:2; }
.promise-section { background:#f4efe8; }
.promise-section .section-heading { max-width:560px; }
.promise-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:46px; border-top:1px solid #d3c9bd; border-bottom:1px solid #d3c9bd; }
.promise-grid article { padding:36px 34px 40px; border-right:1px solid #d3c9bd; }.promise-grid article:last-child{border-right:0}.promise-grid b{font-family:Georgia,serif;font-size:14px;color:#9b8d7c}.promise-grid h3{font-size:22px;margin:16px 0 10px;font-family:Georgia,"Noto Serif KR",serif;font-weight:500}.promise-grid p{margin:0;color:var(--muted);font-size:15px}

/* detail */
.sub-hero { height:clamp(400px,43vw,460px); position:relative; background-image:var(--hero-image); background-size:cover; background-position:center; display:flex; align-items:flex-end; color:#fff; }
.sub-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(30,25,20,.72) 0%,rgba(30,25,20,.42) 42%,rgba(30,25,20,.12) 72%,rgba(30,25,20,.02) 100%),linear-gradient(0deg,rgba(26,22,18,.28),transparent 62%); }
.sub-hero-content { position:relative; z-index:2; padding-bottom:clamp(44px,6vw,72px); max-width:min(760px,100%); }
.sub-hero .eyebrow { color:rgba(255,255,255,.82); }
.sub-hero h1 { margin:10px 0 14px; font-family:Georgia,"Noto Serif KR",serif; font-size:clamp(38px,5vw,64px); font-weight:500; line-height:1.08; letter-spacing:-.05em; word-break:keep-all; overflow-wrap:break-word; }
.sub-hero p { margin:0; max-width:34rem; font-size:clamp(15px,1.35vw,18px); line-height:1.78; color:rgba(255,255,255,.9); word-break:keep-all; }
.split-intro { display:grid; grid-template-columns:minmax(280px,.88fr) minmax(0,1.12fr); gap:clamp(40px,5vw,72px); align-items:start; }
.split-intro .section-heading h2,
.process-layout .section-heading h2,
.cta-inner h2 { word-break:keep-all; }
.detail-lead { padding-top:12px; font-size:17px; color:#615a52; }.detail-lead p{margin:0 0 20px}
.soft-section { background:#f5f0e9; }
.feature-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:48px; background:#d8cfc4; border:1px solid #d8cfc4; }
.feature-card { background:#fffdf9; padding:38px 42px; min-height:230px; }
.feature-card > span { font-family:Georgia,serif; font-size:13px; color:#9c8b79; }
.feature-card h3 { margin:22px 0 12px; font-family:Georgia,"Noto Serif KR",serif; font-size:24px; font-weight:500; }
.feature-card p { margin:0; color:#6c645c; font-size:15px; }
.process-layout { display:grid; grid-template-columns:minmax(260px,.84fr) minmax(0,1.16fr); gap:clamp(40px,5vw,72px); align-items:start; }
.check-list { border-top:1px solid #bfb5a8; }
.check-list div { display:grid; grid-template-columns:64px 1fr; align-items:center; min-height:76px; border-bottom:1px solid #ded7cd; }
.check-list b { font-family:Georgia,serif; font-size:13px; color:#9c8d7b; }.check-list span{font-size:17px}
.recommend-section { background:#eee8df; }
.tag-list { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:38px; }
.tag-list span { border:1px solid #bfb4a6; border-radius:999px; padding:12px 20px; background:rgba(255,255,255,.55); font-size:14px; }
.notice-band { background:#e3dbcf; padding:28px 0; }.notice-band .content-wrap{display:flex;gap:24px;align-items:flex-start}.notice-band strong{min-width:64px;font-size:14px;letter-spacing:.1em}.notice-band p{margin:0;color:#5d554c;font-size:14px}

/* CTA + footer */
.cta-section { background:#3a342d; color:#fff; padding:68px 0; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:40px; }.cta-inner h2{font-family:Georgia,"Noto Serif KR",serif;font-size:clamp(28px,3vw,40px);font-weight:500;margin:8px 0 8px}.cta-inner p{margin:0;color:rgba(255,255,255,.7)}
.btn-primary { flex:0 0 auto; display:inline-flex; align-items:center; gap:22px; padding:16px 22px; border:1px solid rgba(255,255,255,.55); text-decoration:none; transition:.2s; }.btn-primary:hover{background:#fff;color:#302b25}.btn-primary span{font-size:20px}
.site-footer { background:#25211d; color:#d8d2ca; }
.footer-inner { width:min(calc(100% - 48px),var(--max)); margin:0 auto; padding:56px 0 38px; display:grid; grid-template-columns:1.3fr .8fr 1fr; gap:50px; }
.footer-brand { font-family:Georgia,"Noto Serif KR",serif; font-size:24px; color:#fff; }.footer-copy{max-width:390px;color:#9f978e;font-size:14px}.footer-contact{display:grid;align-content:start;gap:5px}.footer-contact span{font-size:12px;color:#8e867e;letter-spacing:.12em}.footer-contact a{font-size:21px;color:#fff;text-decoration:none}.footer-contact small{color:#817a72}.footer-links{display:grid;grid-template-columns:repeat(2,max-content);gap:8px 28px;align-content:start}.footer-links a{text-decoration:none;color:#bcb4ab;font-size:14px}.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:20px 24px;text-align:center;color:#746e68;font-size:12px;letter-spacing:.05em}

@media (max-width: 980px) {
    .header-inner { height:76px; }
    .brand { min-width:0; }
    .brand-copy strong{font-size:19px}.brand-mark{width:60px;height:60px}
    .menu-toggle { display:block; position:relative; z-index:3; }
    .nav { position:absolute; left:0; right:0; top:76px; display:grid; gap:0; background:#fffdf9; border-bottom:1px solid #e4ddd3; padding:6px 24px 18px; transform:translateY(-130%); opacity:0; pointer-events:none; transition:.25s ease; }
    .nav.is-open { transform:translateY(0); opacity:1; pointer-events:auto; }
    .nav-link { padding:13px 4px; border-bottom:1px solid #eee8e0; }.nav-link::after{display:none}
    .service-grid { grid-template-columns:repeat(3,1fr); }.service-card{border-bottom:1px solid #d9d1c6}.service-card:nth-child(3){border-right:0}.service-card:nth-child(n+4){border-bottom:0}
    .split-intro,.process-layout { grid-template-columns:1fr; gap:32px; }
    .promise-grid { grid-template-columns:1fr; }.promise-grid article{border-right:0;border-bottom:1px solid #d3c9bd}.promise-grid article:last-child{border-bottom:0}
    .footer-inner{grid-template-columns:1fr 1fr}.footer-links{grid-column:1/-1}
}

@media (max-width: 700px) {
    .content-wrap,.header-inner,.footer-inner { width:min(calc(100% - 32px),var(--max)); }
    .section-pad { padding:68px 0; }
    .brand-copy small { display:none; }
    .service-grid { grid-template-columns:repeat(2,1fr); padding:18px 16px; }.service-card{padding:22px 12px;border-right:1px solid #d9d1c6;border-bottom:1px solid #d9d1c6}.service-card:nth-child(2n){border-right:0}.service-card:nth-child(3){border-right:1px solid #d9d1c6}.service-card:nth-child(n+4){border-bottom:1px solid #d9d1c6}.service-card:last-child{grid-column:1/-1;border-right:0;border-bottom:0}.service-card p{min-height:0}.service-icon{width:60px;height:60px}
    .section-heading h2 { font-size:36px; }.intro-copy{font-size:15px;line-height:1.9}.intro-copy br{display:none}
    .sub-hero{height:clamp(320px,72vw,380px)}.sub-hero-content{padding-bottom:34px}.sub-hero h1{font-size:clamp(32px,9vw,44px)}.sub-hero p{font-size:14px;line-height:1.7}.sub-hero p br{display:none}
    .feature-grid { grid-template-columns:1fr; }.feature-card{min-height:0;padding:30px 26px}.detail-lead{font-size:16px}.check-list div{grid-template-columns:52px 1fr;min-height:68px}.check-list span{font-size:15px}
    .cta-inner { display:block; }.btn-primary{margin-top:28px}.cta-inner h2{font-size:30px}
    .notice-band .content-wrap{display:block}.notice-band p{margin-top:8px}
    .footer-inner{grid-template-columns:1fr;gap:28px}.footer-links{grid-column:auto}.footer-copy{margin-bottom:0}
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}


/* Home page fidelity overrides scoped to body.home-page so detail pages keep
   their existing layout behavior. */
body.home-page .site-header {
    position: relative;
    top: auto;
    background: #fff;
    border-bottom: 1px solid #efe9e0;
    backdrop-filter: none;
}

body.home-page .header-inner {
    width: min(calc(100% - 64px), 1024px);
    height: 100px;
    gap: 28px;
}

body.home-page .brand {
    min-width: 272px;
    gap: 10px;
}

body.home-page .brand-mark {
    width: 60px;
    height: 60px;
}

body.home-page .brand-copy strong {
    font-family: "Noto Serif KR", "Batang", Georgia, serif;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: -.025em;
}

body.home-page .brand-copy small {
    margin-top: 5px;
    font-size: 9px;
    letter-spacing: .28em;
}

body.home-page .nav {
    margin-left: auto;
    gap: 44px;
}

body.home-page .nav-link {
    padding: 38px 0;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: -.01em;
}

body.home-page .nav-link::after {
    bottom: 28px;
}

body.home-page .menu-toggle {
    display: block;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    margin-left: 14px;
    padding: 7px;
}

body.home-page .menu-toggle span {
    height: 2px;
    margin: 6px 0;
    background: #2f2a24;
}

body.home-page .home-reference-slider {
    width: 100%;
    aspect-ratio: 9 / 3;
    height: auto;
    min-height: 0;
    max-height: none;
    background: #eee7de;
}

body.home-page .home-reference-slider .hero-slide {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

body.home-page .home-reference-slider .slider-arrow {
    width: 46px;
    height: 46px;
    margin-top: -23px;
    border-color: rgba(64, 55, 46, .22);
    background: rgba(255, 255, 255, .66);
    color: #493f35;
    font-size: 28px;
    box-shadow: 0 4px 18px rgba(50, 42, 34, .08);
}

body.home-page .home-reference-slider .slider-arrow:hover {
    background: rgba(255, 255, 255, .9);
}

body.home-page .home-reference-slider .slider-prev {
    left: 28px;
}

body.home-page .home-reference-slider .slider-next {
    right: 28px;
}

body.home-page .home-reference-slider .slider-dots {
    bottom: 20px;
    gap: 8px;
}

body.home-page .home-reference-slider .slider-dots button {
    width: 8px;
    height: 8px;
    background: rgba(76, 66, 55, .26);
}

body.home-page .home-reference-slider .slider-dots button.is-active {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(76, 66, 55, .76);
    transform: none;
}

body.home-page .service-strip {
    background: #f7f3ed;
    border-top: 1px solid #ece4d8;
    border-bottom: 1px solid #ece4d8;
}

body.home-page .service-grid {
    width: min(calc(100% - 64px), 1024px);
    max-width: none;
    padding: 14px 0 18px;
}

body.home-page .service-card {
    min-height: 140px;
    padding: 0 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    border-right: 1px solid #ded6ca;
}

body.home-page .service-icon {
    width: 64px;
    height: 64px;
    background: rgba(239, 233, 226, .9);
}

body.home-page .service-icon img {
    width: 40px;
    height: 40px;
}

body.home-page .service-card strong {
    margin-top: 10px;
    font-family: "Noto Serif KR", "Batang", Georgia, serif;
    font-size: 17px;
    line-height: 1.25;
    font-weight: 500;
    letter-spacing: -.03em;
}

body.home-page .service-card p {
    min-height: 32px;
    margin: 6px 0 8px;
    font-size: 11px;
    line-height: 1.45;
    color: #6a625a;
}

body.home-page .service-link {
    margin-top: auto;
    font-size: 11px;
    color: #5f574f;
}

body.home-page .brand-intro {
    padding: 8px 0 96px;
    background: #fff;
}

body.home-page .brand-intro .section-heading .eyebrow {
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .18em;
    color: #9a8d7c;
}

body.home-page .brand-intro .section-heading h2 {
    margin: 6px 0 0;
    font-family: "Noto Serif KR", "Batang", Georgia, serif;
    font-size: 40px;
    line-height: 1.25;
    font-weight: 500;
    letter-spacing: -.04em;
}

body.home-page .brand-intro .short-rule {
    width: 42px;
    margin-top: 14px;
    background: #c7b8a6;
}

body.home-page .intro-copy {
    max-width: 700px;
    margin: 14px auto 0;
    font-size: 15px;
    line-height: 1.72;
    color: #5f5851;
}

@media (min-width: 1400px) {
}

@media (max-width: 980px) {
    body.home-page .header-inner {
        width: min(calc(100% - 40px), 1024px);
        height: 82px;
    }

    body.home-page .menu-toggle {
        margin-left: 4px;
    }

    body.home-page .nav {
        top: 82px;
        margin-left: 0;
    }

    body.home-page .service-grid {
        width: min(calc(100% - 40px), 1024px);
    }
}

@media (max-width: 700px) {
    body.home-page .content-wrap,
    body.home-page .header-inner,
    body.home-page .footer-inner {
        width: min(calc(100% - 28px), var(--max));
    }

    body.home-page .brand-copy small {
        display: none;
    }

    body.home-page .home-reference-slider .slider-arrow {
        display: none;
    }

    body.home-page .home-reference-slider .slider-dots {
        bottom: 16px;
        gap: 8px;
    }

    body.home-page .service-grid {
        width: 100%;
        padding: 18px 16px;
    }

    body.home-page .service-card {
        min-height: 0;
        padding: 22px 12px;
    }

    body.home-page .service-card p {
        min-height: 0;
    }

    body.home-page .service-icon {
        width: 64px;
        height: 64px;
    }

    body.home-page .service-icon img {
        width: 42px;
        height: 42px;
    }

    body.home-page .brand-intro {
        padding: 58px 20px 72px;
    }

    body.home-page .brand-intro .section-heading h2 {
        font-size: 36px;
    }

    body.home-page .intro-copy {
        font-size: 15px;
        line-height: 1.85;
    }
}

/* ========================================================================== 
   HOME PAGE - design-reference.png fidelity overrides
   The reference image is 1024px wide. Desktop proportions below intentionally
   track that artwork instead of the earlier generic landing-page treatment.
   ========================================================================== */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* reference header: 100px, 1024px inner canvas, nav + hamburger together */
.site-header {
    position: relative;
    top: auto;
    background: #fff;
    border-bottom: 1px solid #f0ece6;
    backdrop-filter: none;
}
.header-inner {
    width: min(calc(100% - 64px), 1024px);
    height: 100px;
    gap: 28px;
}
.brand {
    min-width: 285px;
    gap: 10px;
}
.brand-mark {
    width: 60px;
    height: 60px;
}
.brand-copy strong {
    font-family: "Noto Serif KR", "Batang", Georgia, serif;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -.025em;
}
.brand-copy small {
    margin-top: 5px;
    font-size: 9px;
    letter-spacing: .28em;
}
.nav {
    margin-left: auto;
    gap: 44px;
}
.nav-link {
    padding: 38px 0;
    font-size: 15px;
    font-weight: 500;
}
.nav-link::after { bottom: 28px; }
.menu-toggle {
    display: block;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    margin-left: 14px;
    padding: 7px;
}
.menu-toggle span {
    height: 2px;
    margin: 6px 0;
    background: #2f2a24;
}

/* reference service block: 5 equal columns, calm beige background, taller vertical rhythm */
.service-strip {
    background: #f8f5ef;
    border-bottom: 0;
}
.service-grid {
    width: min(calc(100% - 64px), 1024px);
    max-width: none;
    padding: 40px 0 48px;
}
.service-card {
    min-height: 250px;
    padding: 0 26px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    border-right: 1px solid #ded8cf;
}
.service-icon {
    width: 72px;
    height: 72px;
    background: rgba(235, 231, 224, .68);
}
.service-card strong {
    margin-top: 20px;
    font-family: "Noto Serif KR", "Batang", Georgia, serif;
    font-size: 20px;
    line-height: 1.3;
    font-weight: 500;
}
.service-card p {
    min-height: 58px;
    margin: 15px 0 18px;
    font-size: 14px;
    line-height: 1.72;
    color: #5f5851;
}
.service-link {
    margin-top: auto;
    font-size: 13px;
    color: #5e574f;
}

/* reference brand introduction */
.brand-intro {
    padding: 70px 0 92px;
    background: #fff;
}
.brand-intro .section-heading .eyebrow {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .15em;
    color: #988a7b;
}
.brand-intro .section-heading h2 {
    margin: 8px 0 0;
    font-family: "Noto Serif KR", "Batang", Georgia, serif;
    font-size: 46px;
    line-height: 1.25;
    font-weight: 500;
    letter-spacing: -.045em;
}
.brand-intro .short-rule {
    width: 44px;
    margin-top: 18px;
    background: #c8baaa;
}
.intro-copy {
    max-width: 690px;
    margin: 24px auto 0;
    font-size: 17px;
    line-height: 1.8;
    color: #5f5851;
}

@media (min-width: 1400px) {
}

@media (max-width: 980px) {
    .header-inner {
        width: min(calc(100% - 40px), 1024px);
        height: 82px;
    }
    .menu-toggle { display: block; margin-left: 4px; }
    .nav {
        top: 82px;
        margin-left: 0;
    }
    .service-grid {
        width: min(calc(100% - 40px), 1024px);
    }
}

@media (max-width: 700px) {
    .header-inner { width: calc(100% - 28px); height: 72px; }
    .brand { min-width: 0; }
    .brand-mark { width: 60px; height: 60px; }
    .brand-copy strong { font-size: 18px; }
    .nav { top: 72px; }
    .service-grid {
        width: 100%;
        padding: 18px 16px;
    }
    .brand-intro { padding: 58px 20px 72px; }
    .brand-intro .section-heading h2 { font-size: 36px; }
    .intro-copy { font-size: 15px; line-height: 1.85; }
}


/* Service icons: SVG artwork matched to design-reference.png */
.service-icon::before,
.service-icon::after {
    content: none !important;
    display: none !important;
}
.service-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #f1ede7;
}
.service-icon img {
    display: block;
    width: 47px;
    height: 47px;
    object-fit: contain;
}
.service-card:nth-child(1) .service-icon img { width: 49px; height: 49px; }
.service-card:nth-child(2) .service-icon img { width: 46px; height: 46px; }
.service-card:nth-child(3) .service-icon img { width: 48px; height: 48px; }
.service-card:nth-child(4) .service-icon img { width: 47px; height: 47px; }
.service-card:nth-child(5) .service-icon img { width: 46px; height: 46px; }

@media (max-width: 700px) {
    .service-icon { width: 64px; height: 64px; }
    .service-icon img { width: 42px; height: 42px; }
}

/* =========================================================
   Sickhouse detail page
========================================================= */
.sickhouse-intro-section { background:#fffdf9; }
.sickhouse-media-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(42px,6vw,84px); align-items:center; }
.sickhouse-media-layout.reverse .sickhouse-copy { order:1; }
.sickhouse-media-layout.reverse .sickhouse-media { order:2; }
.sickhouse-media { min-width:0; }
.sickhouse-media img { width:100%; height:auto; display:block; object-fit:contain; }
.framed-media { padding:22px; background:#fff; border:1px solid #e4ddd3; box-shadow:0 16px 40px rgba(47,42,36,.06); }
.sickhouse-copy { min-width:0; }
.sickhouse-copy h2 { margin:12px 0 28px; font-family:Georgia,"Noto Serif KR",serif; font-size:clamp(34px,3.8vw,52px); line-height:1.28; font-weight:500; letter-spacing:-.045em; word-break:keep-all; }
.sickhouse-copy p { margin:0 0 18px; color:#625b53; font-size:16px; line-height:1.9; word-break:keep-all; }
.sickhouse-copy p:last-child { margin-bottom:0; }
.sickhouse-emphasis { margin-top:28px!important; padding-left:20px; border-left:2px solid #ab9b88; color:#403a34!important; font-weight:500; }
.sickhouse-note { padding:16px 18px; background:#f5f0e9; border-left:2px solid #9a8b79; font-size:14px!important; }
.section-intro-copy { max-width:820px; margin:26px auto 0; text-align:center; color:#6a625a; font-size:16px; line-height:1.85; word-break:keep-all; }
.sickhouse-wide-image { max-width:980px; margin:46px auto 0; overflow:hidden; }
.sickhouse-wide-image img { width:100%; height:auto; display:block; }
.dark-image-card { background:#0b0d0d; }
.lineup-image { max-width:820px; }
.compact-image { max-width:760px; margin-top:28px; }
.ht-product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:52px; }
.ht-product-card { padding:30px 28px; border:1px solid #d9d1c6; background:#fffdf9; }
.ht-product-title { display:flex; align-items:flex-start; gap:12px; }
.ht-product-title span { flex:0 0 auto; font-family:Georgia,serif; color:#8f7d67; font-size:14px; padding-top:5px; }
.ht-product-title h3 { margin:0; font-family:Georgia,"Noto Serif KR",serif; font-size:22px; font-weight:500; line-height:1.4; word-break:keep-all; }
.ht-product-card p { margin:16px 0 0; color:#6a625a; font-size:14px; line-height:1.8; word-break:keep-all; }
.proof-section { border-top:1px solid #ebe4da; border-bottom:1px solid #ebe4da; }
.proof-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; margin-top:44px; }
.proof-card { margin:0; padding:18px; background:#fff; border:1px solid #ded7cd; }
.proof-card img { width:100%; height:auto; display:block; }
.proof-card figcaption { margin-top:14px; color:#6f675e; font-size:13px; text-align:center; }
.experiment-media { padding:20px; background:#fff; border:1px solid #e1d9cf; }
.field-gallery { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:44px; }
.field-gallery img { width:100%; height:auto; display:block; background:#fff; border:1px solid #e0d8ce; }
.sickhouse-process-list div { min-height:68px; }

@media (max-width:980px) {
    .sickhouse-media-layout { grid-template-columns:1fr; gap:36px; }
    .sickhouse-media-layout.reverse .sickhouse-media { order:1; }
    .sickhouse-media-layout.reverse .sickhouse-copy { order:2; }
    .ht-product-grid { grid-template-columns:1fr; }
    .proof-grid { grid-template-columns:1fr; }
    .field-gallery { grid-template-columns:1fr; }
    .sickhouse-wide-image,.lineup-image,.compact-image { max-width:100%; }
}

@media (max-width:700px) {
    .framed-media,.experiment-media { padding:10px; }
    .sickhouse-copy h2 { margin-bottom:22px; font-size:clamp(30px,9vw,38px); line-height:1.3; }
    .sickhouse-copy h2 br { display:none; }
    .sickhouse-copy p,.section-intro-copy { font-size:15px; line-height:1.82; }
    .sickhouse-emphasis { margin-top:22px!important; padding-left:14px; }
    .sickhouse-wide-image { margin-top:30px; }
    .ht-product-grid { margin-top:34px; gap:12px; }
    .ht-product-card { padding:24px 20px; }
    .ht-product-title h3 { font-size:20px; }
    .proof-grid,.field-gallery { margin-top:30px; gap:12px; }
    .proof-card { padding:10px; }
}

/* =========================================================
   Move-in cleaning image + text section
========================================================= */

.image-text-section {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1fr);
    gap: clamp(40px, 5vw, 72px);
    align-items: center;
    margin-top: 48px;
}

.image-text-thumb {
    min-width: 0;
}

.image-text-thumb img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 2px;
}

.image-text-content {
    min-width: 0;
    display: grid;
    gap: 0;
}

.image-text-item {
    padding: 26px 0;
    border-bottom: 1px solid #ded7cd;
}

.image-text-item:first-child {
    padding-top: 0;
}

.image-text-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.image-text-item h3 {
    margin: 0 0 12px;
    font-family: Georgia, "Noto Serif KR", serif;
    font-size: 25px;
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: -.025em;
    color: var(--ink);
    word-break: keep-all;
}

.image-text-item p {
    margin: 0;
    color: #655e56;
    font-size: 15px;
    line-height: 1.85;
    word-break: keep-all;
}


/* =========================================================
   Tablet
========================================================= */

@media (max-width: 980px) {

    .image-text-section {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .image-text-thumb img {
        aspect-ratio: 16 / 9;
    }

}


/* =========================================================
   Mobile
========================================================= */

@media (max-width: 700px) {

    .image-text-section {
        margin-top: 34px;
        gap: 26px;
    }

    .image-text-thumb img {
        aspect-ratio: 4 / 3;
    }

    .image-text-item {
        padding: 22px 0;
    }

    .image-text-item h3 {
        font-size: 21px;
    }

    .image-text-item p {
        font-size: 14px;
        line-height: 1.8;
    }

}

/* =========================================================
   Move-in gallery + description
========================================================= */

.movein-gallery-section {
    margin-top: 48px;
}


/* 이미지 2장 */

.movein-gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(24px, 4vw, 64px);
}

.movein-gallery-item {
    min-width: 0;
    overflow: hidden;
}

.movein-gallery-item img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}


/* 설명 영역 */

.movein-description-list {
    width: 100%;
    max-width: 100%;
    margin-top: 50px;
}

.movein-description-item {
    padding: 24px 0;
    border-bottom: 1px solid #ded7cd;
}

.movein-description-item:first-child {
    padding-top: 0;
}

.movein-description-item:last-child {
    border-bottom: 0;
}

.movein-description-item h3 {
    margin: 0 0 12px;

    font-family:
            Georgia,
            "Noto Serif KR",
            serif;

    font-size: 25px;
    line-height: 1.4;
    font-weight: 500;

    letter-spacing: -.025em;

    color: var(--ink);

    word-break: keep-all;
}

.movein-description-item p {
    margin: 0;

    color: #655e56;

    font-size: 15px;
    line-height: 1.85;

    word-break: keep-all;
}


/* =========================================================
   Tablet
========================================================= */

@media (max-width: 980px) {

    .movein-gallery {
        gap: 22px;
    }

    .movein-description-list {
        max-width: 100%;
        margin-top: 40px;
    }

}


/* =========================================================
   Mobile
========================================================= */

@media (max-width: 700px) {

    .movein-gallery-section {
        margin-top: 34px;
    }

    .movein-gallery {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .movein-gallery-item img {
        aspect-ratio: 4 / 3;
    }

    .movein-description-list {
        margin-top: 30px;
    }

    .movein-description-item {
        padding: 20px 0;
    }

    .movein-description-item h3 {
        font-size: 21px;
    }

    .movein-description-item p {
        font-size: 14px;
        line-height: 1.8;
    }

}

/* =========================================================
   Grout gallery
========================================================= */

.grout-gallery-section {
    background: var(--paper);
}

.gallery-lead {
    max-width: 680px;
    margin: 24px auto 0 !important;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.8;
    word-break: keep-all;
}

.grout-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 48px;
}

.grout-gallery-item {
    margin: 0;
    overflow: hidden;
    background: #eee8df;
}

.grout-gallery-item img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform .35s ease;
}

.grout-gallery-item:hover img {
    transform: scale(1.035);
}


/* 마지막 7번째 이미지는 전체 폭 */
.grout-gallery-item:nth-child(7) {
    grid-column: 1 / -1;
}

.grout-gallery-item:nth-child(7) img {
    aspect-ratio: 16 / 7;
}


/* =========================================================
   Tablet
========================================================= */

@media (max-width: 980px) {

    .grout-gallery-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    .grout-gallery-item:nth-child(7) {
        grid-column: 1 / -1;
    }

    .grout-gallery-item:nth-child(7) img {
        aspect-ratio: 16 / 8;
    }

}


/* =========================================================
   Mobile
========================================================= */

@media (max-width: 700px) {

    .gallery-lead {
        font-size: 14px;
        margin-top: 20px !important;
    }

    .grout-gallery-grid {
        grid-template-columns: 1fr;
        gap: 14px;
        margin-top: 34px;
    }

    .grout-gallery-item:nth-child(7) {
        grid-column: auto;
    }

    .grout-gallery-item img,
    .grout-gallery-item:nth-child(7) img {
        aspect-ratio: 4 / 3;
    }

}

/* =========================================================
   Coating gallery slider
   Infinite smooth autoplay + swipe
========================================================= */
.coating-gallery-section {
    background: var(--paper);
}

.gallery-lead {
    max-width: 680px;
    margin: 24px auto 0 !important;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.8;
    word-break: keep-all;
}

.coating-slider {
    position: relative;
    margin-top: 48px;
}

.coating-slider-viewport {
    width: 100%;
    overflow: hidden;
    touch-action: pan-y;
    cursor: grab;
    user-select: none;
}

.coating-slider-viewport.is-dragging {
    cursor: grabbing;
}

.coating-slider-track {
    display: flex;
    gap: 18px;
    transform: translate3d(0, 0, 0);
    transition: transform .9s cubic-bezier(.22, .61, .36, 1);
    will-change: transform;
}

.coating-slider-track.is-dragging {
    transition: none !important;
}

/* PC: 한 화면에 3장 */
.coating-slide {
    flex: 0 0 calc((100% - 36px) / 3);
    min-width: 0;
    margin: 0;
    overflow: hidden;
    background: #eee8df;
    user-select: none;
}

.coating-slide img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    transition: transform .35s ease;
}

.coating-slide:hover img {
    transform: scale(1.025);
}

/* 좌우 버튼 */
.coating-gallery-arrow {
    position: absolute;
    top: 50%;
    z-index: 5;
    width: 48px;
    height: 48px;
    margin-top: -24px;
    padding: 0;
    border: 1px solid rgba(47, 42, 36, .22);
    border-radius: 50%;
    background: rgba(255, 253, 249, .92);
    color: var(--ink);
    font-family: Georgia, serif;
    font-size: 31px;
    line-height: 42px;
    cursor: pointer;
    box-shadow: 0 5px 18px rgba(0, 0, 0, .07);
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.coating-gallery-arrow:hover,
.coating-gallery-arrow:focus-visible {
    background: var(--ink);
    color: #fff;
    border-color: var(--ink);
}

.coating-gallery-prev {
    left: -24px;
}

.coating-gallery-next {
    right: -24px;
}

/* 현재 사진 표시 */
.coating-gallery-dots {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 28px;
}

.coating-gallery-dots button {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #c9c0b5;
    cursor: pointer;
    transition: width .25s ease, background-color .25s ease, border-radius .25s ease;
}

.coating-gallery-dots button.is-active {
    width: 26px;
    border-radius: 999px;
    background: #645b51;
}

/* Tablet: 한 화면에 2장 */
@media (max-width: 980px) {
    .coating-slider-track {
        gap: 16px;
    }

    .coating-slide {
        flex: 0 0 calc((100% - 16px) / 2);
    }

    .coating-gallery-prev {
        left: 8px;
    }

    .coating-gallery-next {
        right: 8px;
    }
}

/* Mobile: 한 화면에 1장 */
@media (max-width: 700px) {
    .gallery-lead {
        margin-top: 20px !important;
        font-size: 14px;
    }

    .coating-slider {
        margin-top: 34px;
    }

    .coating-slider-track {
        gap: 0;
    }

    .coating-slide {
        flex: 0 0 100%;
    }

    .coating-gallery-arrow {
        width: 42px;
        height: 42px;
        margin-top: -21px;
        font-size: 27px;
        line-height: 36px;
        background: rgba(255, 253, 249, .88);
    }

    .coating-gallery-prev {
        left: 10px;
    }

    .coating-gallery-next {
        right: 10px;
    }

    .coating-gallery-dots {
        gap: 7px;
        margin-top: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .coating-slider-track {
        transition-property: transform !important;
        transition-duration: .9s !important;
        transition-timing-function: cubic-bezier(.22,.61,.36,1) !important;
    }
}

/* =========================================================
   Header logo text alignment
========================================================= */

.brand-copy {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    line-height: 1.05;
}

.brand-copy strong {
    display: block;
}

.brand-copy small {
    display: block;
    width: 100%;
    margin-top: 5px;
    text-align: center;
}

/* =========================================================
   Footer company information
========================================================= */

.footer-company {
    min-width: 0;
}

.footer-brand-logo {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}

.footer-brand-mark {
    width: 56px;
    height: 56px;
    object-fit: contain;
    flex: 0 0 auto;
}

.footer-brand-copy {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    line-height: 1.05;
}

.footer-brand-copy strong {
    display: block;

    font-family:
            Georgia,
            "Noto Serif KR",
            serif;

    font-size: 24px;
    font-weight: 500;

    color: #fff;

    letter-spacing: -.025em;
}

.footer-brand-copy small {
    display: block;
    width: 100%;

    margin-top: 6px;

    text-align: center;

    color: #8e867e;

    font-size: 9px;
    letter-spacing: .26em;
}


/* 사업자 정보 */

.footer-business-info {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, max-content));

    gap:
            4px 18px;

    margin-top: 18px;

    color: #928a82;

    font-size: 12px;
    line-height: 1.7;
}

.footer-business-info p {
    margin: 0;
}

.footer-business-info p.full {
    grid-column: 1 / -1;
}

.footer-business-info span {
    margin-right: 6px;

    color: #bbb3aa;
}

.footer-business-info a {
    color: inherit;
    text-decoration: none;
}

.footer-business-info a:hover {
    color: #fff;
}


/* =========================================================
   Tablet
========================================================= */

@media (max-width: 980px) {

    .footer-business-info {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .footer-business-info p.full {
        grid-column: auto;
    }

}


/* =========================================================
   Mobile
========================================================= */

@media (max-width: 700px) {

    .footer-brand-mark {
        width: 50px;
        height: 50px;
    }

    .footer-brand-copy strong {
        font-size: 21px;
    }

    .footer-brand-copy small {
        font-size: 8px;
    }

    .footer-business-info {
        margin-top: 14px;
        font-size: 11px;
    }

}
/* =========================================================
   Elastic gallery slider
========================================================= */

.elastic-slider {
    position: relative;

    width: min(
            calc(100% - 48px),
            var(--max)
    );

    margin:
            70px auto 0;
}


/* viewport */

.elastic-slider-viewport {
    width: 100%;
    overflow: hidden;

    touch-action: pan-y;

    cursor: grab;

    user-select: none;
}

.elastic-slider-viewport.is-dragging {
    cursor: grabbing;
}


/* track */

.elastic-slider-track {
    display: flex;

    gap: 18px;

    transform:
            translate3d(0, 0, 0);

    transition:
            transform .9s cubic-bezier(.22, .61, .36, 1);

    will-change: transform;
}

.elastic-slider-track.is-dragging {
    transition: none !important;
}


/* PC = 3장 */

.elastic-slide {
    flex:
            0 0 calc((100% - 36px) / 3);

    min-width: 0;

    margin: 0;

    overflow: hidden;

    background:
            #eee8df;

    user-select: none;
}

.elastic-slide img {
    display: block;

    width: 100%;

    aspect-ratio:
            4 / 3;

    object-fit: cover;

    pointer-events: none;

    user-select: none;

    -webkit-user-drag: none;

    transition:
            transform .35s ease;
}

.elastic-slide:hover img {
    transform:
            scale(1.025);
}


/* arrows */

.elastic-gallery-arrow {
    position: absolute;

    top: 50%;

    z-index: 5;

    width: 48px;
    height: 48px;

    margin-top: -24px;

    padding: 0;

    border:
            1px solid rgba(47, 42, 36, .22);

    border-radius: 50%;

    background:
            rgba(255, 253, 249, .92);

    color:
            var(--ink);

    font-family:
            Georgia,
            serif;

    font-size:
            31px;

    line-height:
            42px;

    cursor:
            pointer;

    box-shadow:
            0 5px 18px rgba(0, 0, 0, .07);

    transition:
            background-color .2s ease,
            color .2s ease,
            border-color .2s ease;
}

.elastic-gallery-arrow:hover,
.elastic-gallery-arrow:focus-visible {
    background:
            var(--ink);

    color:
            #fff;

    border-color:
            var(--ink);
}

.elastic-gallery-prev {
    left: -24px;
}

.elastic-gallery-next {
    right: -24px;
}


/* dots */

.elastic-gallery-dots {
    display: flex;

    justify-content: center;

    flex-wrap: wrap;

    gap: 9px;

    margin-top: 28px;
}

.elastic-gallery-dots button {
    width: 8px;
    height: 8px;

    padding: 0;

    border: 0;

    border-radius: 50%;

    background:
            #c9c0b5;

    cursor: pointer;

    transition:
            width .25s ease,
            background-color .25s ease,
            border-radius .25s ease;
}

.elastic-gallery-dots button.is-active {
    width: 26px;

    border-radius:
            999px;

    background:
            #645b51;
}


/* =========================================================
   Tablet = 2장
========================================================= */

@media (max-width: 980px) {

    .elastic-slider {
        width:
                min(calc(100% - 40px), var(--max));
    }

    .elastic-slider-track {
        gap: 16px;
    }

    .elastic-slide {
        flex:
                0 0 calc((100% - 16px) / 2);
    }

    .elastic-gallery-prev {
        left: 8px;
    }

    .elastic-gallery-next {
        right: 8px;
    }

}


/* =========================================================
   Mobile = 1장
========================================================= */

@media (max-width: 700px) {

    .elastic-slider {
        width:
                calc(100% - 32px);

        margin-top:
                48px;
    }

    .elastic-slider-track {
        gap: 0;
    }

    .elastic-slide {
        flex:
                0 0 100%;
    }

    .elastic-gallery-arrow {
        width: 42px;
        height: 42px;

        margin-top:
                -21px;

        font-size:
                27px;

        line-height:
                36px;

        background:
                rgba(255, 253, 249, .88);
    }

    .elastic-gallery-prev {
        left: 10px;
    }

    .elastic-gallery-next {
        right: 10px;
    }

    .elastic-gallery-dots {
        gap: 7px;

        margin-top:
                20px;
    }

}

/* =========================================================
   Sickhouse - Test & Documents
   두 자료 이미지 높이 통일
========================================================= */

.proof-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 42px;
    align-items: stretch;
}

.proof-card {
    margin: 0;
    padding: 14px 14px 18px;

    display: flex;
    flex-direction: column;

    background: #fff;
    border: 1px solid #ddd5cb;

    overflow: hidden;
}

/*
 * 원본 이미지의 가로/세로 비율이 달라도
 * 두 카드의 이미지 영역을 동일한 높이로 맞춤
 */
.proof-card img {
    display: block;

    width: 100%;
    height: 520px;

    object-fit: contain;
    object-position: center;

    background: #fff;
}

.proof-card figcaption {
    margin-top: 14px;

    text-align: center;

    color: var(--muted);
    font-size: 13px;
    line-height: 1.6;
}


/* =========================================================
   Sickhouse - Field Work Gallery
   7장 갤러리
========================================================= */

.field-gallery {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 14px;

    margin-top: 42px;
}


/*
 * 모든 사진을 동일한 크기로 출력
 *
 * 세로 사진 때문에 페이지가 길어지는 문제 방지
 */
.field-gallery img {
    display: block;

    width: 100%;

    aspect-ratio: 4 / 3;

    object-fit: cover;
    object-position: center;

    background: #eee8df;
}


/*
 * 마지막 7번째 사진은
 * 한 줄 전체를 사용하는 대표 이미지
 */
.field-gallery img:nth-child(7) {
    grid-column: 1 / -1;

    aspect-ratio: 16 / 7;
}


/* =========================================================
   Tablet
========================================================= */

@media (max-width: 980px) {

    .proof-grid {
        gap: 18px;
    }

    .proof-card img {
        height: 430px;
    }


    .field-gallery {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap: 12px;
    }

    .field-gallery img:nth-child(7) {
        grid-column: 1 / -1;

        aspect-ratio: 16 / 8;
    }

}


/* =========================================================
   Mobile
========================================================= */

@media (max-width: 700px) {

    /* 시험자료는 모바일에서 한 장씩 */
    .proof-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .proof-card {
        padding: 10px 10px 14px;
    }

    .proof-card img {
        width: 100%;
        height: auto;

        max-height: none;

        object-fit: contain;
    }


    /* 현장사진은 모바일에서 한 장씩 */
    .field-gallery {
        grid-template-columns: 1fr;
        gap: 10px;

        margin-top: 30px;
    }

    .field-gallery img,
    .field-gallery img:nth-child(7) {
        grid-column: auto;

        aspect-ratio: 4 / 3;

        object-fit: cover;
    }

}

/* =========================================================
   Sickhouse intro text alignment
========================================================= */

.sickhouse-intro-section .sickhouse-media-layout {
    display: block;
}

.sickhouse-intro-section .sickhouse-copy {
    width: 100%;
    max-width: 900px;

    margin: 0 auto;

    text-align: left;
}

.sickhouse-intro-section .sickhouse-copy h2 {
    max-width: 650px;
}

.sickhouse-intro-section .sickhouse-copy p {
    max-width: 820px;
}


/* Tablet */
@media (max-width: 980px) {

    .sickhouse-intro-section .sickhouse-copy {
        max-width: 100%;
    }

    .sickhouse-intro-section .sickhouse-copy h2,
    .sickhouse-intro-section .sickhouse-copy p {
        max-width: 100%;
    }

}


/* Mobile */
@media (max-width: 700px) {

    .sickhouse-intro-section .sickhouse-copy {
        width: 100%;
    }

}