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

:root { --ink:#332f2b; --muted:#756f67; --line:#ddd5cc; --paper:#fbfaf7; --cream:#f6f1ea; --sand:#e9dfd2; --accent:#00C7A5; --accent-soft:#e8f7f3; --deep:#3b3530; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'Noto Sans KR', sans-serif; font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased; }
img { display:block; width:100%; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.section-shell { width:min(1120px, calc(100% - 48px)); margin:0 auto; }
.topbar { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 32px; border-bottom:1px solid rgba(51,47,43,.1); background:rgba(251,250,247,.92); position:relative; z-index:2; }
.brand { font-size:13px; font-weight:700; letter-spacing:.04em; }
.brand span { font-weight:700; letter-spacing:0; margin-left:5px; color:var(--accent); }
.top-contact { font-size:14px; font-weight:600; padding-bottom:2px; border-bottom:1px solid var(--accent); }
.hero { display:grid; grid-template-columns:minmax(270px,.86fr) minmax(430px,1.14fr); align-items:center; gap:70px; padding-top:64px; padding-bottom:88px; }
.eyebrow { display:inline-flex; align-items:center; gap:9px; margin:0 0 14px; color:var(--accent); font-size:13px; font-weight:700; letter-spacing:.12em; line-height:1.3; }
.eyebrow::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--accent); flex:none; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { letter-spacing:-.055em; line-height:1.22; }
h1 { font-size:clamp(40px,5vw,68px); font-weight:500; margin-bottom:24px; }
h1 em,h2 em { color:var(--accent); font-style:normal; }
.hero-sub { font-size:19px; line-height:1.55; margin-bottom:34px; color:#4c443c; }
.accent-text { color:var(--accent); font-weight:700; }
.hero-note { font-size:13px; color:var(--muted); margin:13px 0 0; }
.button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; gap:24px; padding:0 22px; border-radius:2px; font-size:15px; font-weight:700; transition:transform .2s ease, background-color .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:var(--white); background:var(--accent); }
.button-primary:hover { background:var(--accent); }
.button-light { color:var(--accent); background:var(--white); }
.button-light:hover { background:var(--accent-soft); }
.hero-image { position:relative; min-height:560px; }
.image-frame img { height:560px; object-fit:cover; object-position:center; }
.image-caption { position:absolute; left:20px; bottom:20px; color:white; font-size:13px; text-shadow:0 1px 10px rgba(0,0,0,.35); }
.concern-section { display:grid; grid-template-columns:.85fr 1fr; column-gap:80px; padding-top:86px; padding-bottom:92px; border-top:1px solid var(--line); }
h2 { font-size:clamp(29px,3.5vw,48px); font-weight:500; margin-bottom:30px; }
.section-heading { margin-bottom:36px; }
.section-heading.compact { margin-bottom:30px; }
.product-note { display:inline-block; margin:-12px 0 28px; padding-bottom:3px; border-bottom:1px solid rgba(0,199,165,.45); color:var(--accent); font-size:16px; font-weight:700; letter-spacing:-.03em; line-height:1.6; }
.note-dot { display:inline-block; width:6px; height:6px; margin:0 8px 2px 0; border-radius:50%; background:var(--accent); vertical-align:middle; animation:notePulse 2.8s ease-in-out infinite; }
@keyframes notePulse { 0%,100% { opacity:1; transform:scale(1); } 50% { opacity:.38; transform:scale(.78); } }
@media (prefers-reduced-motion: reduce) { .note-dot { animation:none; } }
.bridge-copy { grid-column:2; margin:25px 0 0; color:var(--accent); font-weight:600; }
.mobile-only { display:none; }
.feature-section { padding:83px 0 95px; background:var(--cream); }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; border-top:1px solid var(--line); }
.feature-item { position:relative; padding:25px 10px 0 0; min-height:176px; border-right:1px solid var(--line); }
.feature-item:last-child { border-right:0; }
.feature-number { color:var(--accent); font-size:12px; letter-spacing:.12em; }
.feature-icon { display:block; font-size:27px; line-height:1; margin:24px 0 13px; color:var(--accent); font-weight:400; }
.feature-item h3,.process-grid h3 { font-size:18px; margin:0 0 7px; letter-spacing:-.04em; }
.feature-item h3 { line-height:1.45; }
.feature-item h3 em,.process-grid h3 em { color:var(--accent); font-style:normal; }
.feature-item p,.process-grid p { color:var(--muted); font-size:14px; margin:0; line-height:1.55; }
.products-section { padding-top:95px; padding-bottom:110px; }
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.product-card { border-top:1px solid var(--ink); }
.product-image { aspect-ratio:1.2/1; overflow:hidden; background:var(--sand); }
.product-image img { height:100%; object-fit:cover; transition:transform .5s ease; }
.product-card:hover .product-image img { transform:scale(1.035); }
.product-copy { padding:21px 3px 0; }
.product-copy h3 { font-size:21px; letter-spacing:-.04em; margin-bottom:10px; display:flex; justify-content:space-between; }
.product-copy h3 span { color:var(--accent); font-size:12px; letter-spacing:.1em; font-weight:500; }
.product-copy p { color:var(--muted); font-size:14px; line-height:1.65; margin:0; }
.process-section { padding:87px 0 97px; background:#f2eee9; }
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.process-grid article { padding:25px 26px 25px 0; min-height:164px; border-right:1px solid var(--line); }
.process-grid article:not(:first-child) { padding-left:26px; }
.process-grid article:last-child { border-right:0; }
.process-grid span { display:block; color:var(--accent); font-size:13px; font-weight:600; margin-bottom:27px; }
.gallery-section { padding-top:98px; padding-bottom:104px; }
.gallery-heading { display:flex; align-items:end; justify-content:space-between; }
.gallery-heading h2 { margin-bottom:0; }
.slider-controls { display:flex; gap:7px; }
.slider-button { border:1px solid var(--line); background:transparent; width:45px; height:45px; color:var(--accent); cursor:pointer; }
.slider-button:hover { color:var(--white); background:var(--accent); }
.gallery-track { display:flex; gap:18px; overflow-x:auto; padding-bottom:8px; scroll-snap-type:x mandatory; scrollbar-width:none; }
.gallery-track::-webkit-scrollbar { display:none; }
.gallery-card { flex:0 0 calc(50% - 9px); scroll-snap-align:start; }
.gallery-card img { aspect-ratio:1.36/1; object-fit:cover; }
.gallery-card p { font-size:14px; margin:12px 0 0; color:var(--accent); }
.gallery-note { color:var(--muted); font-size:12px; margin:22px 0 0; }
.cta-band { background:var(--deep); color:var(--white); }
.cta-band-inner { display:flex; justify-content:space-between; align-items:center; gap:50px; padding-top:70px; padding-bottom:70px; }
.cta-band .eyebrow { color:var(--accent); }
.cta-band h2 { margin-bottom:19px; }
.cta-band p:not(.eyebrow) { color:#f2e8dd; margin:0; }
.area-section { padding-top:95px; padding-bottom:98px; }
.area-section .section-heading p:last-child { color:var(--muted); font-size:14px; margin-top:-15px; }
.area-summary { display:flex; align-items:center; gap:20px; padding:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.area-summary span { flex:none; color:var(--accent); font-size:14px; font-weight:700; }
.area-summary p { margin:0; color:#51483f; font-size:17px; }
.area-note { margin:14px 0 0; color:var(--muted); font-size:14px; }
.inquiry-section { background:var(--cream); padding:90px 0; }
.inquiry-layout { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.inquiry-copy h2 { margin-bottom:15px; }
.inquiry-copy > p:last-child { color:var(--muted); }
.inquiry-card { padding:28px; background:#fffaf4; border:1px solid #d8c5b2; }
.message-preview { padding:4px 0 22px; color:#5a5048; font-size:15px; line-height:1.75; }
.message-preview p:first-child { font-weight:600; color:var(--ink); margin-bottom:17px; }
.message-preview p:last-child { margin:0; }
.full-button { width:100%; }
.final-cta { text-align:center; padding-top:104px; padding-bottom:110px; }
.final-cta h2 { margin-bottom:18px; }
.final-cta > p:not(.eyebrow):not(.phone) { color:var(--muted); margin-bottom:30px; }
.phone { color:var(--muted); font-size:13px; margin:17px 0 0; }
.phone a { color:var(--accent); font-weight:600; }
.site-footer { background:#3b3530; color:#e8e1da; }
.footer-inner { padding-top:42px; padding-bottom:42px; }
.footer-brand { font-size:17px; color:var(--white); font-weight:600; margin-bottom:24px; }
.footer-info,.footer-address,.footer-regions { font-size:13px; line-height:1.75; color:#cfc5ba; }
.footer-info p,.footer-address p,.footer-regions p { margin:0; }
.footer-address { margin-top:18px; font-size:12px; color:#aa9e92; }
.footer-regions { margin-top:18px; }
.footer-regions p:first-child { color:#cfc5ba; }
.copyright { color:#9b9188; font-size:11px; letter-spacing:.08em; margin:30px 0 0; }
.mobile-fixed-cta { display:none; }

@media (max-width: 760px) {
  body { font-size:16px; padding-bottom:68px; }
  .section-shell { width:calc(100% - 38px); }
  .topbar { height:62px; padding:0 19px; position:sticky; top:0; }
  .top-contact { font-size:13px; }
  .hero { display:flex; flex-direction:column-reverse; align-items:stretch; gap:30px; padding-top:22px; padding-bottom:62px; }
  .hero-image,.image-frame img { min-height:0; height:360px; }
  .hero-image { margin:0 -19px; }
  .hero-copy { padding-top:2px; }
  .eyebrow { font-size:12px; letter-spacing:.18em; margin-bottom:11px; }
  h1 { font-size:42px; line-height:1.18; margin-bottom:17px; }
  .hero-sub { font-size:18px; margin-bottom:23px; }
  .hero-note { font-size:12px; }
  .button { min-height:50px; font-size:15px; gap:18px; }
  .image-caption { left:18px; bottom:17px; font-size:12px; }
  .concern-section { display:block; padding-top:62px; padding-bottom:65px; }
  h2 { font-size:31px; margin-bottom:25px; }
  .section-heading { margin-bottom:27px; }
  .product-note { margin:-8px 0 24px; font-size:14px; line-height:1.6; }
  .bridge-copy { margin-top:24px; font-size:15px; line-height:1.6; }
  .mobile-only { display:block; }
  .feature-section { padding:61px 0 65px; }
  .feature-grid { grid-template-columns:repeat(2,1fr); gap:0 18px; }
  .feature-item { min-height:178px; padding-top:21px; border-right:0; border-bottom:1px solid var(--line); }
  .feature-item:nth-child(3) { grid-column:1 / -1; border-bottom:0; }
  .feature-icon { margin:22px 0 11px; }
  .feature-item h3 { font-size:17px; }
  .feature-item p { font-size:13px; }
  .products-section { padding-top:65px; padding-bottom:72px; }
  .product-grid { display:block; }
  .product-card { margin-bottom:38px; }
  .product-card:last-child { margin-bottom:0; }
  .product-image { aspect-ratio:1.42/1; }
  .product-copy { padding-top:15px; }
  .product-copy h3 { margin-bottom:6px; }
  .process-section { padding:63px 0 69px; }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid article { min-height:150px; padding:19px 15px 20px 0; }
  .process-grid article:not(:first-child) { padding-left:15px; }
  .process-grid article:nth-child(1),.process-grid article:nth-child(2) { border-bottom:1px solid var(--line); }
  .process-grid article:nth-child(2) { border-right:0; }
  .process-grid article:nth-child(4) { border-right:0; }
  .process-grid span { margin-bottom:20px; }
  .process-grid h3 { font-size:16px; }
  .process-grid p { font-size:13px; }
  .gallery-section { padding-top:68px; padding-bottom:71px; }
  .gallery-heading { align-items:end; margin-bottom:25px; }
  .gallery-heading h2 { margin-bottom:0; }
  .slider-button { width:38px; height:38px; }
  .gallery-card { flex-basis:84%; }
  .gallery-card img { aspect-ratio:1.18/1; }
  .cta-band-inner { display:block; padding-top:55px; padding-bottom:55px; }
  .cta-band h2 { margin-bottom:16px; }
  .cta-band-inner .button { margin-top:26px; width:100%; }
  .area-section { padding-top:67px; padding-bottom:71px; }
  .area-summary { display:block; padding:18px 0; }
  .area-summary p { margin-top:7px; font-size:16px; line-height:1.65; }
  .area-note { margin-top:12px; font-size:14px; }
  .inquiry-section { padding:65px 0; }
  .inquiry-layout { display:block; }
  .inquiry-copy { margin-bottom:29px; }
  .inquiry-card { padding:20px; }
  .message-preview { font-size:14px; }
  .final-cta { padding-top:73px; padding-bottom:80px; }
  .final-cta h2 { font-size:37px; }
  .site-footer { padding-bottom:7px; }
  .footer-inner { padding-top:38px; padding-bottom:39px; }
  .footer-brand { font-size:16px; }
  .footer-info { font-size:12px; }
  .mobile-fixed-cta { position:fixed; z-index:10; left:0; right:0; bottom:0; display:flex; align-items:center; justify-content:center; gap:18px; height:60px; color:var(--white); background:var(--accent); font-size:16px; font-weight:700; box-shadow:0 -5px 20px rgba(51,47,43,.12); }
}

@media (min-width: 761px) and (max-width: 980px) {
  .hero { gap:38px; }
  .hero-image,.image-frame img { min-height:500px; height:500px; }
  h1 { font-size:52px; }
}
