:root{
  --ink:#24312a;
  --ink2:#536057;
  --muted:#747f77;
  --bg:#fbf7ee;
  --bg2:#eef6f0;
  --paper:#fffdf8;
  --green:#2f7a54;
  --green2:#dfeee4;
  --sun:#f5b840;
  --coral:#e97861;
  --blue:#6ca7c8;
  --line:rgba(36,49,42,.14);
  --shadow:0 18px 48px rgba(55,74,61,.14);
  --bar:72px;
  --max:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:calc(var(--bar) + 18px);-webkit-text-size-adjust:100%}
body{font-family:'Pretendard',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);line-height:1.72;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-x:hidden;overflow-wrap:anywhere}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,textarea{font:inherit}

.bar{position:fixed;top:0;left:0;right:0;height:var(--bar);z-index:50;display:flex;align-items:center;gap:24px;padding:0 clamp(18px,4vw,44px);background:rgba(251,247,238,.92);backdrop-filter:saturate(150%) blur(14px);border-bottom:1px solid rgba(47,122,84,.16)}
.brand{display:inline-flex;align-items:center;gap:10px;min-width:0;font-weight:800;letter-spacing:-.01em;color:var(--green)}
.brand-symbol{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--sun);color:#453012;font-size:13px;font-weight:900;box-shadow:inset 0 0 0 4px rgba(255,255,255,.45)}
.brand b{display:block;min-width:0;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sf-logo{display:block;max-width:180px}
.bar nav{display:flex;align-items:center;gap:20px;margin-left:auto}
.bar nav a{font-size:14px;font-weight:700;color:var(--ink2);transition:color .18s ease}
.bar nav a:hover,.bar nav a.active{color:var(--green)}
.bar .cta{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 16px;border-radius:8px;background:var(--green);color:#fff;font-size:14px;font-weight:800;white-space:nowrap;box-shadow:0 8px 18px rgba(47,122,84,.22)}
.progress{position:fixed;left:0;top:var(--bar);height:3px;width:100%;z-index:49;background:transparent}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green),var(--sun),var(--coral));transition:width .12s linear}

.track{display:block;padding-top:var(--bar)}
.panel{position:relative;padding:clamp(74px,8vw,112px) 24px}
.inner{width:100%;max-width:var(--max);margin:0 auto}
.kicker{font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}

.hero{min-height:calc(100svh - var(--bar) - 52px);display:flex;align-items:flex-start;overflow:hidden;padding-top:clamp(76px,8vw,116px);padding-bottom:clamp(72px,8vw,108px);border-bottom:1px solid var(--line)}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.16;transform:scale(1.02)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(251,247,238,.98) 0%,rgba(251,247,238,.94) 48%,rgba(251,247,238,.82) 100%)}
.hero .inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,430px);gap:46px;align-items:center}
.hero-copy{max-width:680px}
.hero h1{margin-top:14px;max-width:820px;font-size:clamp(42px,6vw,78px);line-height:1.04;font-weight:900;letter-spacing:0;color:var(--green);word-break:break-all;overflow-wrap:anywhere}
.hero .lead{margin-top:22px;max-width:none;font-size:clamp(19px,2.2vw,28px);line-height:1.45;font-weight:800;color:var(--ink)}
.hero .lead span{display:block}
.hero-photo{aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:var(--paper);border:1px solid rgba(47,122,84,.16);box-shadow:var(--shadow)}
.hero-photo-empty{background:rgba(255,253,248,.72)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(2.35)}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:8px;font-size:15px;font-weight:850;transition:transform .16s ease,background .16s ease,border-color .16s ease}
.btn:hover{transform:translateY(-2px)}
.btn.primary{background:var(--green);color:#fff;box-shadow:0 12px 26px rgba(47,122,84,.22)}
.btn.secondary{background:rgba(255,253,248,.76);border:1px solid var(--line);color:var(--green)}
.points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:30px;max-width:760px}
.points span{display:flex;align-items:center;min-height:70px;padding:14px 16px;border:1px solid rgba(47,122,84,.18);border-left:4px solid var(--sun);border-radius:8px;background:rgba(255,253,248,.82);font-size:14px;font-weight:800;color:var(--ink2)}

.section-head{max-width:720px;margin-bottom:34px}
.section-head h2{margin-top:10px;font-size:clamp(30px,4.2vw,52px);line-height:1.16;font-weight:900;letter-spacing:0;color:var(--ink)}
.section-head p{margin-top:14px;color:var(--ink2);font-size:clamp(16px,1.7vw,18px);max-width:58ch}
.section-head.split{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,430px);gap:28px;align-items:end}
.section-head.split p{margin:0}

.about{background:var(--paper)}
.about .section-head{max-width:none}
.about .section-head h2{font-size:clamp(28px,3vw,40px);white-space:nowrap}
.about .section-head p{max-width:none;white-space:nowrap}
.about-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(320px,1.05fr);gap:44px;align-items:center}
.about-copy .big{font-size:clamp(24px,3vw,36px);line-height:1.38;font-weight:900;color:var(--ink)}
.about-copy .big em{font-style:normal;color:var(--green)}
.promise-list{display:grid;gap:10px;margin-top:28px;list-style:none}
.promise-list li{position:relative;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-weight:800;color:var(--ink2)}
.promise-list li::before{display:none}
.visual{aspect-ratio:4/3;min-height:0;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,var(--green2),#fff8df);box-shadow:var(--shadow)}
.visual img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:center;transform:scale(1.55)}

.gal{background:linear-gradient(180deg,var(--bg) 0%,#f6fbf7 100%)}
.gallery-note{max-width:none!important;white-space:normal!important}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.card{position:relative;min-height:230px;aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:var(--green2);box-shadow:0 12px 30px rgba(36,49,42,.12)}
.card img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.28);transition:transform .35s ease}
.card:hover img{transform:scale(1.34)}
.card .cap{position:absolute;left:10px;right:10px;bottom:10px;display:inline-flex;width:max-content;max-width:calc(100% - 20px);padding:8px 11px;border-radius:8px;background:rgba(255,253,248,.92);color:var(--green);font-size:13px;font-weight:900;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.gal .empty{border:1px dashed var(--line);border-radius:8px;padding:42px 24px;text-align:center;color:var(--muted);background:var(--paper)}

.svc-sec{background:var(--paper)}
.svc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.service-card{min-height:230px;border:1px solid var(--line);border-top:5px solid var(--green);border-radius:8px;background:var(--bg);padding:24px;box-shadow:0 12px 30px rgba(36,49,42,.08)}
.service-card:nth-child(2){border-top-color:var(--sun)}
.service-card:nth-child(3){border-top-color:var(--coral)}
.service-card .no{font-size:13px;font-weight:900;color:var(--green);letter-spacing:.12em}
.service-card h3{margin-top:18px;font-size:clamp(21px,2.2vw,27px);line-height:1.25;font-weight:900;color:var(--ink)}
.service-card p{margin-top:14px;color:var(--ink);font-size:18px;font-weight:800;line-height:1.65}

.faq-sec{background:#f7fbf8}
.faq{border-top:2px solid var(--green);background:var(--paper);border-radius:8px;overflow:hidden;box-shadow:0 14px 34px rgba(36,49,42,.08)}
.faq .qa{border-bottom:1px solid var(--line)}
.faq .qa:last-child{border-bottom:0}
.faq summary{list-style:none;cursor:pointer;position:relative;padding:22px 58px 22px 24px;font-size:18px;font-weight:900;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:24px;top:50%;transform:translateY(-50%);font-size:26px;line-height:1;color:var(--green)}
.faq .qa[open] summary::after{content:"\2212"}
.faq .ans{padding:0 58px 24px 24px;color:var(--ink2);font-size:15.5px}

.contact{background:var(--green);color:#fff;padding-bottom:50px}
.contact .kicker,.contact .section-head h2{color:#fff}
.contact .section-head p{color:rgba(255,255,255,.78)}
.contact .grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.15fr);grid-template-areas:"info map" "call map";gap:16px;align-items:stretch}
.contact dl{grid-area:info;display:grid;grid-template-columns:88px 1fr;gap:12px 16px;padding:24px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:rgba(255,255,255,.09)}
.contact dt{font-size:13px;font-weight:900;color:#ffe6a3}
.contact dt,.contact dd{min-width:0}
.contact dd{color:rgba(255,255,255,.88);word-break:break-all;overflow-wrap:anywhere}
.contact dd a{text-decoration:underline;text-underline-offset:3px}
.bigcall{grid-area:call;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:24px;border-radius:8px;background:#fff;color:var(--green)}
.bigcall span{font-size:12px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.bigcall a{font-size:clamp(28px,3.4vw,44px);line-height:1;font-weight:900}
.foot{margin-top:28px;padding-top:22px;color:rgba(255,255,255,.72);font-size:14px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;border-top:1px solid rgba(255,255,255,.2);word-break:break-all;overflow-wrap:anywhere}
.foot b{color:#fff;font-weight:900}

.sf-map{grid-area:map;margin:0}
.sf-map-embed{width:100%;height:100%;min-height:396px;border-radius:8px;overflow:hidden;position:relative;background:#e9ecef}
.sf-map-embed iframe,.sf-map-embed>div{width:100%!important;height:100%!important;border:0}
.sf-map-fallback{border:1px solid rgba(255,255,255,.22);border-radius:8px;padding:22px;background:rgba(255,255,255,.08)}
.sf-map-addr{font-size:15px;line-height:1.6;display:flex;gap:10px;align-items:baseline}
.sf-map-pin{flex:none;font-size:11px;font-weight:900;letter-spacing:.04em;opacity:.75;border:1px solid currentColor;border-radius:6px;padding:3px 7px}
.sf-map-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.sf-map-links a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;border:0;border-radius:8px;padding:0 14px;font-size:13px;font-weight:850;color:#fff;background:rgba(255,255,255,.09)}
.sf-map-links a:hover{background:rgba(255,255,255,.16)}

@media(prefers-reduced-motion:no-preference){
  .js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .65s cubic-bezier(.2,.7,.2,1),transform .65s cubic-bezier(.2,.7,.2,1)}
  [data-reveal].in{opacity:1;transform:none}
  .js .stagger>*{opacity:0;transform:translateY(16px);transition:opacity .55s cubic-bezier(.2,.7,.2,1),transform .55s cubic-bezier(.2,.7,.2,1)}
  .stagger.in>*{opacity:1;transform:none}
  .stagger.in>*:nth-child(2){transition-delay:.06s}
  .stagger.in>*:nth-child(3){transition-delay:.12s}
  .stagger.in>*:nth-child(4){transition-delay:.18s}
}

.sf-iq-rail{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:9998;display:flex;flex-direction:column;gap:8px}
.sf-iq-r{width:52px;height:52px;border-radius:8px;border:1px solid rgba(36,49,42,.12);cursor:pointer;background:#fff;color:var(--green);font:900 12px/1 'Pretendard',system-ui,sans-serif;display:flex;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 8px 22px rgba(36,49,42,.16);transition:transform .16s ease,background .16s ease,color .16s ease}
.sf-iq-r:hover{transform:translateY(-2px)}
.sf-iq-r-on{background:var(--green);color:#fff}
.sf-iq-r[data-sf-top]{opacity:0;transform:translateY(8px) scale(.9);pointer-events:none;transition:opacity .25s ease,transform .25s ease}
.sf-iq-r[data-sf-top].sf-show{opacity:1;transform:none;pointer-events:auto}
.sf-iq-back{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(21,30,24,.55);backdrop-filter:blur(4px)}
.sf-iq-back.open{display:flex}
.sf-iq-modal{width:100%;max-width:460px;background:#fff;color:#16181c;border-radius:12px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.28);transform:translateY(14px) scale(.98);opacity:0;transition:transform .24s cubic-bezier(.2,.7,.2,1),opacity .24s ease;font-family:'Pretendard',system-ui,sans-serif;line-height:1.6;word-break:keep-all;overflow-wrap:anywhere}
.sf-iq-back.open .sf-iq-modal{transform:none;opacity:1}
.sf-iq-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:24px 24px 6px}
.sf-iq-head h3{font-size:20px;font-weight:900;letter-spacing:0;margin:0}
.sf-iq-head p{margin:6px 0 0;color:#6b7078;font-size:13px}
.sf-iq-x{flex:none;width:34px;height:34px;border:0;background:#f1f2f4;border-radius:8px;cursor:pointer;font-size:18px;color:#444;line-height:1}
.sf-iq-x:hover{background:#e6e8ea}
.sf-iq-body{padding:14px 24px 24px}
.sf-iq-field{margin-top:14px}
.sf-iq-field label{display:block;font-size:13px;font-weight:800;margin-bottom:6px;color:#33373d}
.sf-iq-field input,.sf-iq-field textarea{width:100%;border:1px solid #d9dce0;border-radius:8px;padding:12px 14px;font:inherit;font-size:15px;color:#16181c;background:#fff;transition:border-color .18s,box-shadow .18s}
.sf-iq-field textarea{min-height:96px;resize:vertical}
.sf-iq-field input:focus,.sf-iq-field textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,122,84,.16)}
.sf-iq-submit{margin-top:18px;width:100%;border:0;cursor:pointer;background:var(--green);color:#fff;font:900 16px/1 'Pretendard',system-ui,sans-serif;padding:15px;border-radius:8px;transition:filter .18s,transform .12s}
.sf-iq-submit:hover{filter:brightness(1.05)}
.sf-iq-submit:active{transform:translateY(1px)}
.sf-iq-submit[disabled]{opacity:.6;cursor:default}
.sf-iq-note{margin-top:12px;font-size:12px;color:#8a8f96;text-align:center}
.sf-iq-note a{color:var(--green);font-weight:900}
.sf-iq-ok,.sf-iq-err{display:none;padding:8px 0 4px}
.sf-iq-ok.show,.sf-iq-err.show{display:block}
.sf-iq-ok{text-align:center}
.sf-iq-ok .sf-iq-check{width:54px;height:54px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;margin:6px auto 14px}
.sf-iq-ok h4{font-size:18px;margin:0 0 6px}
.sf-iq-ok p{color:#6b7078;font-size:14px;margin:0}
.sf-iq-err{color:#c0392b;font-size:13px;text-align:center}

.sf-draggable{cursor:grab;scroll-behavior:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.sf-draggable::-webkit-scrollbar{display:none}
.sf-draggable.sf-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none}
.sf-draggable img{-webkit-user-drag:none;user-drag:none}
.sf-lb-clickable{cursor:zoom-in}
.sf-lb{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center;background:rgba(8,9,11,.92);backdrop-filter:blur(4px)}
.sf-lb.open{display:flex}
.sf-lb img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);user-select:none;-webkit-user-drag:none}
.sf-lb-btn{position:absolute;border:0;cursor:pointer;background:rgba(255,255,255,.12);color:#fff;width:52px;height:52px;border-radius:50%;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .16s}
.sf-lb-btn:hover{background:rgba(255,255,255,.24)}
.sf-lb-prev{left:18px;top:50%;transform:translateY(-50%)}
.sf-lb-next{right:18px;top:50%;transform:translateY(-50%)}
.sf-lb-close{top:18px;right:18px;width:46px;height:46px;font-size:22px}
.sf-lb-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.85);font:800 13px/1 'Pretendard',system-ui,sans-serif;letter-spacing:.04em}
.sf-yt{position:relative;width:100%;aspect-ratio:16/9;background:#0a0a0a center/cover no-repeat;border-radius:8px;overflow:hidden;cursor:pointer}
.sf-yt::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.18);transition:background .2s}
.sf-yt:hover::after{background:rgba(0,0,0,.05)}
.sf-yt-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:78px;height:78px;border-radius:50%;background:rgba(18,18,20,.74);display:flex;align-items:center;justify-content:center;transition:transform .18s,background .18s;pointer-events:none}
.sf-yt:hover .sf-yt-play{transform:translate(-50%,-50%) scale(1.08);background:#e02f2f}
.sf-yt-play svg{width:30px;height:30px;margin-left:4px;fill:#fff}
.sf-yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:3}
.sf-video{display:block;width:100%;border-radius:8px;overflow:hidden;background:#000}
.sf-video video{display:block;width:100%;height:auto}

@media(max-width:980px){
  .bar nav{display:none}
  .brand b{max-width:42vw}
  .hero::after{background:linear-gradient(180deg,rgba(251,247,238,.96) 0%,rgba(251,247,238,.9) 48%,rgba(251,247,238,.7) 100%)}
  .hero .inner{grid-template-columns:1fr}
  .hero-photo{max-width:440px}
  .points,.cards,.svc{grid-template-columns:1fr 1fr}
  .about-grid,.section-head.split,.contact .grid{grid-template-columns:1fr}
  .about .section-head h2,.about .section-head p{white-space:normal}
  .contact .grid{grid-template-areas:"info" "map" "call"}
  .visual,.visual img{min-height:340px}
  .sf-map-embed{min-height:320px}
}
@media(max-width:640px){
  :root{--bar:64px}
  .bar{gap:12px;padding:0 14px}
  .brand-symbol{width:36px;height:36px;font-size:12px}
  .brand b{font-size:16px;max-width:48vw}
  .bar .cta{height:36px;padding:0 12px;font-size:13px}
  .panel{padding:64px 18px}
  .contact{padding-right:30px;padding-bottom:120px}
  .contact .inner{width:calc(100vw - 58px)!important;max-width:100%!important;margin-left:0}
  .contact .grid,.contact dl,.contact .sf-map,.contact .bigcall{width:100%!important;max-width:100%!important;min-width:0!important}
  .hero{min-height:calc(100svh - var(--bar) - 40px);padding-top:64px;padding-bottom:60px}
  .hero h1{font-size:clamp(34px,8.7vw,50px)}
  .hero .lead{font-size:20px}
  .hero-photo{max-width:none}
  .points,.cards,.svc{grid-template-columns:1fr}
  .points span{min-height:auto}
  .section-head{margin-bottom:24px}
  .section-head h2{font-size:32px}
  .card{min-height:240px}
  .contact dl{grid-template-columns:74px 1fr;padding:20px}
  .contact dl{display:block}
  .contact dt{margin-top:14px}
  .contact dt:first-child{margin-top:0}
  .contact dd{margin-top:4px;max-width:22em;font-size:14px;line-height:1.7}
  .foot>div{max-width:24em}
  .sf-iq-rail{left:12px;right:12px;top:auto;bottom:12px;transform:none;flex-direction:row;justify-content:center}
  .sf-iq-r{width:25%;max-width:86px;height:44px}
  .sf-iq-back{padding:14px}
  .sf-iq-modal{max-width:none}
  .sf-lb-btn{width:44px;height:44px;font-size:20px}
  .sf-lb-prev{left:8px}
  .sf-lb-next{right:8px}
}
