/* 메모리코드 대표 사이트 — 형제 사이트(weddingsnap) 디자인 토큰 그대로 */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body,h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
table{border-collapse:collapse;width:100%}
:root{
  --ivory:#FAF8F5;--ivory-deep:#F2EFEA;--ink:#191713;--ink-soft:#6E665A;--ink-faint:#9A9186;
  --line:rgba(25,23,19,.14);--line-soft:rgba(25,23,19,.08);
  --brown:#5B4C3D;--brown-mid:#7A6853;--brown-deep:#2B241C;
  --font:"Pretendard Variable",Pretendard,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  --serif:"Cormorant Garamond","Noto Serif KR",serif;
  --wrap:1180px;
}
body{font-family:var(--font);background:var(--ivory);color:var(--ink);line-height:1.75;word-break:keep-all;letter-spacing:-.01em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

/* 헤더 */
.hdr{position:absolute;top:0;left:0;right:0;z-index:10;color:#fff}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:84px}
.logo{display:flex;flex-direction:column;line-height:1.2}
.logo b{font-family:var(--serif);font-weight:400;font-size:26px;letter-spacing:.22em}
.logo small{font-size:11px;letter-spacing:.18em;opacity:.8}
.nav{display:flex;align-items:center;gap:30px;font-size:14px;letter-spacing:.04em}
.nav a{opacity:.85;transition:opacity .2s}.nav a:hover{opacity:1}
.nav .pill{border:1px solid rgba(255,255,255,.5);padding:9px 20px;border-radius:999px;opacity:1}
.nav .pill:hover{background:#fff;color:var(--ink)}

/* 히어로 */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;color:#fff;background:var(--brown-deep) center/cover no-repeat}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,12,.6) 0,rgba(20,16,12,0) 180px),linear-gradient(90deg,rgba(20,16,12,.82) 0%,rgba(20,16,12,.45) 55%,rgba(20,16,12,.15) 100%)}
.hero.sub{min-height:72vh}
.hero .wrap{position:relative;width:100%;padding-top:84px}
.eyebrow{display:flex;align-items:center;gap:16px;font-size:14px;letter-spacing:.35em;opacity:.9}
.eyebrow::before{content:"";width:44px;height:1px;background:currentColor}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(46px,7vw,92px);line-height:1.15;letter-spacing:-.01em;margin:22px 0 6px}
.hero .en{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,3.4vw,44px);opacity:.92;padding-left:.6em}
.hero .lead{max-width:600px;margin-top:28px;font-size:17px;line-height:1.85;color:rgba(255,255,255,.88)}
.hero .lead strong{color:#fff;font-weight:600}
.links{display:flex;flex-wrap:wrap;gap:34px;margin-top:44px}
.links a{font-weight:600;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.6);transition:gap .2s}
.links a::after{content:" →";opacity:.8}
.links a:hover{border-color:#fff}

/* 섹션 공통 */
section.s{padding:120px 0}
section.alt{background:var(--ivory-deep)}
.kicker{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--brown-mid);letter-spacing:.02em}
.s h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3.6vw,44px);line-height:1.3;margin:8px 0 18px}
.s .desc{color:var(--ink-soft);max-width:640px;font-size:16.5px}
.head{margin-bottom:56px}

/* 소개 2단 */
.about{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center}
.about img{width:100%;aspect-ratio:16/15;object-fit:cover}
.about p+p{margin-top:16px}
.about p{color:var(--ink-soft)}
.facts{display:grid;grid-template-columns:repeat(3,1fr);margin-top:40px;border-top:1px solid var(--line)}
.facts li{padding:22px 0 0}
.facts b{display:block;font-family:var(--serif);font-size:34px;font-weight:500;color:var(--brown)}
.facts span{font-size:13.5px;color:var(--ink-soft)}

/* 서비스 카드 */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:36px 24px}
.card figure{overflow:hidden;aspect-ratio:4/3;background:var(--ivory-deep)}
.card img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.card:hover img{transform:scale(1.05)}
.card .no{display:block;margin-top:18px;font-family:var(--serif);font-style:italic;color:var(--ink-faint);font-size:15px}
.card h3{font-family:"Noto Serif KR",serif;font-weight:500;font-size:20px;margin:2px 0 6px}
.card p{font-size:14.5px;color:var(--ink-soft);line-height:1.65}
.card .go{display:inline-block;margin-top:12px;font-size:13px;letter-spacing:.06em;border-bottom:1px solid var(--line);padding-bottom:3px}
.card:hover .go{border-color:var(--ink)}

/* 표 */
.tbl{border-top:2px solid var(--ink)}
.tbl th,.tbl td{padding:20px 16px;border-bottom:1px solid var(--line);text-align:left;font-size:15px;vertical-align:top}
.tbl thead th{font-weight:600;font-size:13px;letter-spacing:.06em;color:var(--ink-soft);background:transparent}
.tbl td:first-child{font-weight:600;white-space:nowrap}
.tbl .price{white-space:nowrap;text-align:right}
.tbl .price s{color:var(--ink-faint);font-size:13px;margin-right:8px}
.tbl .price b{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--brown)}
.note{margin-top:18px;font-size:13.5px;color:var(--ink-faint)}

/* 강점 */
.points{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.points li{padding:36px 28px 0 0}
.points .n{font-family:var(--serif);font-size:42px;color:var(--brown-mid);font-weight:300;line-height:1}
.points h3{font-size:18px;font-weight:600;margin:18px 0 10px}
.points p{font-size:14.5px;color:var(--ink-soft)}

/* 단계 */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;counter-reset:st}
.steps li{background:#fff;padding:32px 26px;border:1px solid var(--line-soft)}
.steps li::before{counter-increment:st;content:"STEP 0" counter(st);display:block;font-family:var(--serif);font-style:italic;color:var(--brown-mid);margin-bottom:14px}
.steps h3{font-size:18px;font-weight:600;margin-bottom:8px}
.steps p{font-size:14.5px;color:var(--ink-soft)}

/* 연락 카드 */
.contact{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.contact a,.contact div{display:block;background:#fff;border:1px solid var(--line-soft);padding:30px 26px;transition:border-color .2s,transform .2s}
.contact a:hover{border-color:var(--brown);transform:translateY(-3px)}
.contact small{display:block;font-family:var(--serif);font-style:italic;font-size:16px;color:var(--brown-mid)}
.contact b{display:block;font-size:18px;margin:8px 0 4px}
.contact span{font-size:14px;color:var(--ink-soft)}

/* FAQ */
.faq{border-top:2px solid var(--ink);max-width:900px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:26px 44px 26px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:20px;font-family:var(--serif);font-size:30px;font-weight:300;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq h3{font-size:17.5px;font-weight:600}
.faq h3::before{content:"Q.";font-family:var(--serif);font-style:italic;color:var(--brown-mid);margin-right:12px;font-size:20px}
.faq p{padding:0 0 28px 34px;color:var(--ink-soft)}

/* CTA 띠 */
.band{position:relative;padding:130px 0;color:#fff;text-align:center;background:var(--brown-deep) center/cover no-repeat}
.band::before{content:"";position:absolute;inset:0;background:rgba(20,16,12,.62)}
.band .wrap{position:relative}
.band h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,4vw,48px);margin:8px 0 16px}
.band p{opacity:.85}
.btns{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:36px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:16px 32px;font-weight:600;font-size:15px;transition:.2s}
.btn.k{background:#FEE500;color:#191919}.btn.k:hover{background:#f5dc00}
.btn.o{border:1px solid rgba(255,255,255,.7);color:#fff}.btn.o:hover{background:#fff;color:var(--ink)}
.btn.d{background:var(--ink);color:#fff}.btn.d:hover{background:var(--brown)}

/* 플로팅 상담 */
.float{position:fixed;right:22px;bottom:22px;z-index:20;background:var(--ivory);color:var(--ink);padding:15px 24px;font-weight:600;font-size:15px;box-shadow:0 10px 30px rgba(0,0,0,.18);transition:transform .2s}
.float:hover{transform:translateY(-3px)}


/* 푸터 */
.ftr{background:var(--brown-deep);color:rgba(255,255,255,.6);padding:80px 0 40px;font-size:13.5px}
.ftr .top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:60px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.12)}
.ftr .logo{color:#fff;margin-bottom:18px}
.ftr h4{margin:0 0 16px;color:#fff;font-family:var(--serif);font-weight:400;font-size:18px;letter-spacing:.1em}
.ftr ul{columns:2;column-gap:20px}
.ftr li{margin-bottom:8px}.ftr a:hover{color:#fff}
.ftr .biz{padding-top:28px;line-height:1.9}
.ftr .biz span{margin-right:14px;display:inline-block}

@media (max-width:960px){
  section.s{padding:84px 0}
  .about{grid-template-columns:1fr;gap:40px}
  .points,.steps,.contact{grid-template-columns:repeat(2,1fr)}
  .ftr .top{grid-template-columns:1fr;gap:36px}
}
@media (max-width:640px){
  .nav a:not(.pill){display:none}
  .hdr .wrap{height:70px}.logo b{font-size:21px}
  .hero .lead{font-size:15.5px}
  .links{gap:22px}
  .points,.steps,.contact,.facts{grid-template-columns:1fr}
  .points li{padding-right:0}
  .tbl thead{display:none}
  .tbl tr{display:block;padding:16px 0;border-bottom:1px solid var(--line)}
  .tbl td{display:block;border:0;padding:3px 0}
  .tbl .price{text-align:left}
  .float{right:14px;bottom:14px;padding:13px 20px}
  .cards{grid-template-columns:1fr 1fr;gap:28px 14px}
  .card h3{font-size:16.5px}.card p{font-size:13px}.card .go{display:none}
  .about img{aspect-ratio:4/3}
}
