@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');

:root{
  --navy:#142B4A;
  --navy-deep:#0D2038;
  --navy-soft:#294666;
  --ink:#18283B;
  --muted:#687789;
  --paper:#FFFFFF;
  --surface:#F5F7FA;
  --surface-blue:#E9EEF4;
  --line:#E2E8EF;
  --accent:#D9A85F;
  --daangn:#FF6F0F;
  --shadow:0 18px 48px rgba(20,43,74,.09);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans KR',sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,a{-webkit-tap-highlight-color:transparent}
.topbar{height:78px;padding:0 max(6vw,24px);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(226,232,239,.9)}
.brand{display:flex;align-items:center;gap:12px;font-weight:900;font-size:19px;letter-spacing:-.7px;color:var(--navy)}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--navy);color:white;font-size:17px;box-shadow:0 5px 12px rgba(20,43,74,.18)}
.top-call{background:var(--navy);color:white;border-radius:8px;padding:11px 22px;font-size:13px;font-weight:800;transition:background .2s,transform .2s}
.top-call:hover{background:var(--navy-soft);transform:translateY(-1px)}

.hero{padding:76px max(7vw,28px) 78px;display:grid;grid-template-columns:1.02fr .98fr;gap:5.5vw;align-items:center;background:linear-gradient(115deg,#F5F7FA 0%,#E9EEF4 100%);min-height:600px;overflow:hidden}
.hero-copy{max-width:620px}
.eyebrow{font-size:11px;letter-spacing:2.1px;color:#647B96;font-weight:900;margin:0 0 17px;text-transform:uppercase}
.hero .eyebrow:before{content:"";display:inline-block;width:23px;height:2px;background:var(--accent);vertical-align:middle;margin:0 10px 3px 0}
.hero h1{font-size:clamp(40px,5.1vw,68px);line-height:1.2;letter-spacing:-3.2px;margin:0 0 24px;color:var(--navy);font-weight:900;word-break:keep-all}
.hero h1 em,.section-heading h2 em{font-style:normal;color:#597594}
.hero-desc{color:#5E6E80;max-width:470px;font-size:16px;line-height:1.9;word-break:keep-all}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:31px}
.button{display:inline-flex;justify-content:center;align-items:center;gap:12px;padding:14px 21px;border-radius:8px;font-weight:800;font-size:14px;transition:transform .2s,box-shadow .2s,background .2s;border:1px solid transparent;cursor:pointer}
.button:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(20,43,74,.13)}
.button-dark{background:var(--navy);color:white}
.button-dark:hover{background:var(--navy-soft)}
.button-light{background:white;border-color:#DCE4ED;color:var(--navy)}
.small-note{font-size:12px;color:#738195;margin-top:23px}
.photo-frame{position:relative;background:#DCE4ED;border-radius:18px;overflow:hidden;min-height:410px;box-shadow:var(--shadow)}
.photo-frame:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.25);border-radius:inherit;pointer-events:none}
.photo-frame img{width:100%;height:100%;min-height:410px;object-fit:cover;display:block}
.photo-tag{position:absolute;bottom:20px;left:20px;background:rgba(255,255,255,.94);color:var(--navy);padding:10px 16px;border-radius:7px;font-size:12px;font-weight:800;box-shadow:0 5px 18px rgba(13,32,56,.12)}

.trust-strip{display:flex;justify-content:center;gap:9vw;padding:25px 20px;border-bottom:1px solid var(--line);background:#fff}
.trust-strip div{display:flex;align-items:center;gap:13px}
.trust-strip b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--surface-blue);color:var(--navy);font-size:11px}
.trust-strip span{font-size:13px;font-weight:800;color:#33465D}

.section{padding:100px max(8vw,28px)}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}
.section-heading h2{font-size:clamp(30px,3.5vw,44px);line-height:1.35;letter-spacing:-1.8px;margin:0 0 14px;color:var(--navy);font-weight:900;word-break:keep-all}
.section-heading>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.8}
.intro-text>p{font-size:16px;color:#58697C;line-height:2.05;word-break:keep-all}
.info-pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:23px}
.info-pills span{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 13px;font-size:12px;color:#5E6E80;font-weight:700}

.services{background:var(--surface)}
.centered{text-align:center}
.centered .eyebrow:before{content:"";display:inline-block;width:20px;height:2px;background:var(--accent);vertical-align:middle;margin:0 9px 3px 0}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:44px}
.service-card{position:relative;background:white;border:1px solid #E4EAF0;padding:29px 26px 27px;border-radius:12px;min-height:190px;box-shadow:0 5px 18px rgba(20,43,74,.025);transition:transform .22s,box-shadow .22s,border-color .22s}
.service-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(20,43,74,.08);border-color:#C8D4E1}
.service-icon{display:grid;place-items:center;width:48px;height:48px;background:var(--surface-blue);border-radius:12px;font-size:23px}
.service-card h3{font-size:17px;margin:17px 0 7px;color:var(--navy);font-weight:900;letter-spacing:-.4px}
.service-card p{font-size:13px;color:var(--muted);margin:0;line-height:1.8;word-break:keep-all}

.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:39px}
.gallery-item{margin:0;overflow:hidden}
.gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:11px;background:var(--surface-blue);transition:transform .35s;display:block}
.gallery-item:hover img{transform:scale(1.025)}
.gallery-item figcaption{font-size:13px;color:#66778A;padding:11px 3px;font-weight:600}

.review-section{background:linear-gradient(135deg,#F4F7FA,#E9EEF4)}
.promise-card{position:relative;max-width:760px;margin:38px auto 0;background:white;padding:43px 48px;text-align:center;border:1px solid #E1E8F0;border-radius:14px;box-shadow:0 14px 35px rgba(20,43,74,.06)}
.quote-mark{font-family:Georgia,serif;font-size:58px;line-height:.9;color:#A8B9CC}
.promise-card p{font-size:18px;font-weight:800;color:var(--navy);line-height:1.8;word-break:keep-all}
.promise-card span{font-size:12px;color:var(--muted)}

.contact{padding:82px 24px;text-align:center;background:var(--navy);color:white;position:relative;overflow:hidden}
.contact:before,.contact:after{content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(255,255,255,.07);border-radius:50%;pointer-events:none}
.contact:before{left:-180px;top:-210px}.contact:after{right:-180px;bottom:-230px}
.contact .eyebrow{color:#B8C8D9}
.contact h2{font-size:clamp(28px,4vw,42px);letter-spacing:-1.5px;margin:0 0 10px;font-weight:900;position:relative}
.contact>p:not(.eyebrow){color:#C4D0DD;font-size:14px;position:relative}
.contact-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:30px 0;position:relative}
.button-cream{background:white;color:var(--navy)}
.button-outline{border:1px solid rgba(255,255,255,.38);color:white;background:rgba(255,255,255,.04)}
.contact-meta{display:flex;justify-content:center;gap:22px;flex-wrap:wrap;color:#C4D0DD;font-size:12px;position:relative}

footer{padding:34px 20px 95px;text-align:center;color:#718094;font-size:12px;background:#fff}
footer strong{color:var(--navy);font-size:16px;font-weight:900}
footer p{margin:5px 0}
.copyright{font-size:10px;color:#9AA5B2;margin-top:14px}
.copyright a{text-decoration:underline;text-underline-offset:3px}
.mobile-bar{display:none}

.button-daangn{background:var(--daangn);color:#fff;border-radius:8px;padding:14px 20px;gap:8px;box-shadow:0 6px 16px rgba(255,111,15,.2)}
.button-daangn:hover{background:#F76508;box-shadow:0 10px 22px rgba(255,111,15,.28)}
.button-daangn:active{transform:translateY(0);background:#E85F00}
.button-daangn[hidden]{display:none}
.daangn-icon{width:22px;height:22px;flex:none;padding:3px;border-radius:50%;background:rgba(255,255,255,.2)}

:focus-visible{outline:3px solid #E2B56E;outline-offset:3px}
@media(max-width:900px){
  .hero{gap:4vw;padding-left:5vw;padding-right:5vw}
  .hero h1{font-size:clamp(39px,5.6vw,58px)}
  .section{padding-left:6vw;padding-right:6vw}
}
@media(max-width:700px){
  html{scroll-padding-top:66px}
  .topbar{height:64px;padding:0 18px}
  .brand{font-size:17px;gap:9px}
  .brand-mark{width:34px;height:34px;border-radius:10px}
  .top-call{padding:9px 15px;font-size:12px}
  .hero{padding:49px 22px 38px;grid-template-columns:1fr;gap:27px;min-height:0}
  .hero h1{font-size:clamp(39px,10vw,49px);letter-spacing:-2.3px;margin-bottom:17px}
  .hero-desc{font-size:14px;line-height:1.85}
  .hero-actions{gap:8px;margin-top:24px}
  .button{padding:13px 15px;font-size:13px}
  .photo-frame,.photo-frame img{min-height:245px}
  .photo-frame{border-radius:13px}
  .trust-strip{gap:0;justify-content:space-around;padding:17px 8px}
  .trust-strip div{gap:6px;flex-direction:column}
  .trust-strip b{width:27px;height:27px}
  .trust-strip span{font-size:11px}
  .section{padding:68px 22px}
  .intro{grid-template-columns:1fr;gap:13px}
  .intro-text>p{font-size:15px}
  .service-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:29px}
  .service-card{padding:19px 15px;min-height:165px;border-radius:10px}
  .service-icon{width:41px;height:41px;font-size:20px;border-radius:10px}
  .service-card h3{font-size:15px;margin:13px 0 5px}
  .service-card p{font-size:12px}
  .gallery-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:28px}
  .gallery-item img{border-radius:8px}
  .gallery-item figcaption{font-size:11px;padding:8px 2px}
  .promise-card{padding:29px 20px;margin-top:27px;border-radius:11px}
  .promise-card p{font-size:15px}
  .contact{padding:65px 20px}
  .contact-actions{flex-direction:column;max-width:340px;margin:25px auto}
  .contact-actions .button{width:100%}
  .contact-meta{gap:8px 16px}
  .mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;padding:9px 13px calc(9px + env(safe-area-inset-bottom));gap:9px;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
  .mobile-bar a{flex:1;text-align:center;padding:11px;border-radius:7px;background:var(--navy);color:white;font-size:13px;font-weight:800}
  .mobile-bar a+a{background:var(--daangn)}
  footer{padding-bottom:105px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}