/* oneshot-clean — base reset + shared FAB / modal styles */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Pretendard Variable','Pretendard',system-ui,sans-serif;-webkit-font-smoothing:antialiased;color:var(--ink,#1a1a1a);background:var(--bg,#fff);line-height:1.55}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:transparent;color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
input,select,textarea{font:inherit;color:inherit}

/* Skip link for a11y */
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:8px;top:8px;background:#000;color:#fff;padding:8px 12px;z-index:9999}

/* Container */
.os-container{width:min(1200px,92%);margin-inline:auto}

/* Kakao FAB — 시안별 색은 theme에서 override */
.os-kakao-fab{
  position:fixed; right:16px; bottom:16px; z-index:60;
  display:inline-flex; align-items:center; gap:8px;
  background:#fee500; color:#3c1e1e;
  padding:12px 16px; border-radius:999px;
  box-shadow:0 12px 28px -10px rgba(0,0,0,.35);
  font-weight:700; font-size:14px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.os-kakao-fab:hover{transform:translateY(-2px); box-shadow:0 16px 36px -10px rgba(0,0,0,.45)}
.os-kakao-fab svg{flex:0 0 auto}
@media(max-width:480px){
  .os-kakao-fab{padding:11px 14px; font-size:13px}
}

/* Inquiry Modal */
.os-inquiry-modal{position:fixed; inset:0; z-index:80; display:none}
.os-inquiry-modal.open{display:block}
.os-inquiry-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.55); backdrop-filter:blur(4px)}
.os-inquiry-card{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(440px, 92vw); max-height:92vh; overflow:auto;
  background:#fff; color:#1a1a1a; border-radius:18px; padding:28px 24px;
  display:flex; flex-direction:column; gap:12px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,.4);
}
.os-inquiry-card h3{margin:0; font-size:22px; letter-spacing:-.02em}
.os-inquiry-lead{margin:0 0 4px; color:#555; font-size:13px}
.os-inquiry-card label{display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:600; color:#444}
.os-inquiry-card input,
.os-inquiry-card select,
.os-inquiry-card textarea{
  padding:10px 12px; border:1px solid #d8d8d8; border-radius:10px; background:#fafafa;
  font-size:14px; outline:none;
}
.os-inquiry-card input:focus,
.os-inquiry-card select:focus,
.os-inquiry-card textarea:focus{border-color:#1a1a1a; background:#fff}
.os-inquiry-submit{
  margin-top:6px; padding:14px; background:#1a1a1a; color:#fff; border-radius:10px;
  font-weight:700; letter-spacing:.02em;
}
.os-inquiry-submit:hover{background:#000}
.os-inquiry-close{
  position:absolute; top:12px; right:12px; width:34px; height:34px;
  border-radius:50%; background:#f0f0f0; font-size:18px; line-height:1;
}
.os-inquiry-note{margin:0; font-size:11px; color:#888; text-align:center}

/* Page-hidden utilities */
.os-only-mobile{display:none}
@media(max-width:768px){
  .os-only-mobile{display:block}
  .os-only-desktop{display:none}
}

/* Sticky bottom CTA (mobile) — 시안에서 import */
.os-sticky-cta{
  position:fixed; left:8px; right:8px; bottom:8px; z-index:55;
  display:none; gap:8px;
}
@media(max-width:768px){
  .os-sticky-cta{display:flex}
  .os-kakao-fab{bottom:64px}
}
.os-sticky-cta a{
  flex:1; padding:14px; border-radius:12px; text-align:center;
  font-weight:700; font-size:14px;
  box-shadow:0 12px 24px -10px rgba(0,0,0,.35);
}

/* Footer common */
.os-footer{padding:48px 0 80px; font-size:13px; color:#888}
.os-footer-grid{display:grid; grid-template-columns:1fr 1fr; gap:32px}
.os-footer-grid h4{font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#bbb; margin:0 0 12px}
.os-footer-grid p{margin:4px 0}
.os-footer-qr{display:flex; align-items:center; gap:14px}
.os-footer-qr img{width:88px; height:88px; background:#fff; padding:6px; border-radius:8px}
.os-footer-qr div{font-size:12px; color:#999; line-height:1.5}
@media(max-width:640px){
  .os-footer-grid{grid-template-columns:1fr}
}

/* Top nav baseline */
.os-nav{display:flex; align-items:center; justify-content:space-between; padding:18px 0; gap:16px}
.os-nav__brand{font-weight:800; letter-spacing:-.02em; font-size:18px}
.os-nav__menu{display:flex; gap:22px; font-size:14px; font-weight:500}
.os-nav__menu a:hover{opacity:.7}
@media(max-width:640px){
  .os-nav__menu{display:none}
}
