@charset "utf-8";
:root{
--cream:#FFF9F0;
--ink:#2B2420;
--ink-soft:#6B5F54;
--line:#EAE1D3;
--yellow:#FFC23B;
--blue:#3B82F6;
--red:#FF4747;
--card:#FFFFFF;
--accent-warm:#FF8A4C;
--radius:18px;
}

*{box-sizing:border-box; margin:0; padding:0;}

html{scroll-behavior:smooth;}

body{
font-family:"Pretendard","Apple SD Gothic Neo","Noto Sans KR",sans-serif;
background:var(--cream);
color:var(--ink);
line-height:1.7;
padding-bottom:130px; /* 하단 고정바 공간 */
-webkit-font-smoothing:antialiased;
}

img{max-width:100%; display:block;}

a{text-decoration:none; color:inherit;}

.wrap{
max-width:720px;
margin:0 auto;
padding:0 20px;
}

/* ===== Skip / accessibility ===== */
.skip-link{
position:absolute; left:-9999px; top:auto;
}
.skip-link:focus{
left:10px; top:10px; background:var(--ink); color:#fff; padding:10px 16px; border-radius:8px; z-index:999;
}

/* ===== HERO IMAGE PLACEHOLDER ===== */
.hero-image{
width:100%;
aspect-ratio:16/10;
background:
  linear-gradient(135deg, #E5E0D8 25%, transparent 25%) 0 0/20px 20px,
  linear-gradient(225deg, #E5E0D8 25%, transparent 25%) 0 0/20px 20px,
  linear-gradient(315deg, #E5E0D8 25%, transparent 25%) 0 0/20px 20px,
  linear-gradient(45deg, #E5E0D8 25%, transparent 25%) 0 0/20px 20px,
  #D9D2C6;
display:flex;
align-items:center;
justify-content:center;
color:#9C9284;
font-size:14px;
letter-spacing:0.02em;
border-bottom:1px solid var(--line);
}
.hero-image span{
background:rgba(255,255,255,0.85);
padding:8px 16px;
border-radius:30px;
font-weight:600;
}

/* ===== Top bar ===== */
.top-eyebrow{
text-align:center;
padding:22px 20px 6px;
font-size:13px;
letter-spacing:0.12em;
color:var(--accent-warm);
font-weight:700;
}

header.intro{
padding:6px 20px 28px;
text-align:center;
}
header.intro h1{
font-size:26px;
line-height:1.4;
font-weight:800;
color:var(--ink);
margin-bottom:10px;
}
header.intro h1 .accent{
color:var(--accent-warm);
}
header.intro p.lede{
font-size:15px;
color:var(--ink-soft);
}

/* ===== Section base ===== */
section{
padding:36px 0;
border-top:1px solid var(--line);
}
section:first-of-type{border-top:none;}

.section-label{
display:inline-flex;
align-items:center;
gap:8px;
font-size:13px;
font-weight:700;
color:#fff;
background:var(--accent-warm);
padding:5px 12px;
border-radius:30px;
margin-bottom:14px;
}

h2{
font-size:21px;
font-weight:800;
margin-bottom:14px;
line-height:1.45;
}

h3{
font-size:16px;
font-weight:700;
margin:18px 0 8px;
color:var(--ink);
}

p{
font-size:15.5px;
color:#3E362F;
margin-bottom:12px;
}

.lead-block p{
color:var(--ink-soft);
}

/* ===== Checklist ===== */
.check-card{
background:var(--card);
border:1px solid var(--line);
border-radius:var(--radius);
padding:20px 22px;
margin-top:16px;
}
.check-card .check-title{
font-weight:700;
font-size:15px;
margin-bottom:10px;
color:var(--ink);
}
.check-card ul{
list-style:none;
}
.check-card li{
position:relative;
padding-left:24px;
margin-bottom:9px;
font-size:14.5px;
color:#4A4138;
}
.check-card li::before{
content:"✔";
position:absolute;
left:0;
top:0;
color:var(--accent-warm);
font-size:13px;
}

/* ===== Process steps ===== */
.process-track{
display:flex;
flex-wrap:wrap;
gap:10px;
margin-top:18px;
}
.process-step{
flex:1 1 auto;
min-width:90px;
background:var(--card);
border:1px solid var(--line);
border-radius:14px;
padding:14px 10px;
text-align:center;
font-size:13.5px;
font-weight:600;
position:relative;
}
.process-step .num{
display:block;
font-size:11px;
color:var(--accent-warm);
font-weight:800;
margin-bottom:4px;
}

/* ===== Observation point cards ===== */
.obs-card{
background:var(--card);
border:1px solid var(--line);
border-radius:var(--radius);
padding:20px 22px;
margin-top:14px;
}
.obs-card .obs-head{
display:flex;
align-items:center;
gap:10px;
font-weight:700;
font-size:15.5px;
margin-bottom:10px;
}
.obs-card .obs-icon{
width:30px; height:30px;
border-radius:50%;
background:#FFF1E0;
display:flex; align-items:center; justify-content:center;
font-size:15px;
flex-shrink:0;
}
.obs-card ul{
list-style:none;
margin-top:6px;
}
.obs-card li{
position:relative;
padding-left:18px;
font-size:14px;
color:var(--ink-soft);
margin-bottom:6px;
}
.obs-card li::before{
content:"-";
position:absolute;
left:0;
color:#C9BBA6;
}

/* ===== Caution box ===== */
.caution-box{
background:#FFF4F0;
border:1px solid #FFD9CC;
border-radius:var(--radius);
padding:20px 22px;
margin-top:16px;
}
.caution-box p{color:#5C3A2E; margin-bottom:10px;}
.caution-box p:last-child{margin-bottom:0;}

/* ===== Onestop list ===== */
.onestop{
margin-top:18px;
display:flex;
flex-direction:column;
gap:10px;
}
.onestop-item{
display:flex;
gap:14px;
align-items:flex-start;
background:var(--card);
border:1px solid var(--line);
border-radius:14px;
padding:16px 18px;
}
.onestop-item .badge{
flex-shrink:0;
width:34px; height:34px;
border-radius:10px;
background:linear-gradient(135deg,var(--yellow),var(--accent-warm));
color:#fff;
font-weight:800;
font-size:14px;
display:flex; align-items:center; justify-content:center;
}
.onestop-item h3{margin:0 0 4px;}
.onestop-item p{margin:0; font-size:14px; color:var(--ink-soft);}

.flow-strip{
margin-top:18px;
text-align:center;
font-size:14px;
font-weight:700;
color:var(--ink);
background:#FFF1E0;
border-radius:12px;
padding:14px;
letter-spacing:0.01em;
}

/* ===== FAQ ===== */
.faq-item{
border:1px solid var(--line);
border-radius:14px;
margin-bottom:10px;
overflow:hidden;
background:var(--card);
}
.faq-item summary{
list-style:none;
cursor:pointer;
padding:16px 18px;
font-weight:700;
font-size:14.5px;
display:flex;
justify-content:space-between;
align-items:center;
gap:10px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
content:"+";
font-size:20px;
color:var(--accent-warm);
flex-shrink:0;
transition:transform .2s ease;
}
.faq-item[open] summary::after{
transform:rotate(45deg);
}
.faq-item .faq-a{
padding:0 18px 18px;
font-size:14px;
color:var(--ink-soft);
}

/* ===== Trust footer note ===== */
.closing{
text-align:center;
padding:40px 20px 20px;
}
.closing h2{font-size:19px;}
.closing p{color:var(--ink-soft); font-size:14px;}

footer.site-footer{
text-align:center;
font-size:12px;
color:#9C9284;
padding:24px 20px 10px;
}

/* ===================== 하단 고정 버튼바 ===================== */
.fixed-bottom-bar{
position:fixed;
left:0; right:0; bottom:0;
z-index:500;
background:#fff;
border-top:1px solid var(--line);
padding:10px 16px calc(10px + env(safe-area-inset-bottom));
box-shadow:0 -6px 18px rgba(0,0,0,0.06);
}
.fixed-bottom-bar .row-top{
display:flex;
gap:8px;
margin-bottom:8px;
}
.fixed-bottom-bar a.btn{
flex:1;
display:flex;
align-items:center;
justify-content:center;
height:48px;
border-radius:30px;
font-size:20px;
font-weight:800;
color:#fff;
transition:transform .12s ease, filter .12s ease;
}
.fixed-bottom-bar a.btn:active{
transform:scale(0.97);
filter:brightness(0.95);
}
.btn-dog{ background:#F89285;}
.btn-cat{ background:#F89285;}
.btn-call{
width:100%;
background:var(--red);
height:50px;
border-radius:30px;
display:flex;
align-items:center;
justify-content:center;
color:#fff;
font-weight:800;
font-size:20px;
gap:8px;
}
.btn-call svg{width:18px; height:18px;}

/* focus visibility */
a:focus-visible, summary:focus-visible{
outline:3px solid var(--blue);
outline-offset:2px;
}

@media (prefers-reduced-motion: reduce){
*{transition:none !important;}
}

@media (max-width:380px){
header.intro h1{font-size:22px;}
.process-step{min-width:80px; font-size:12.5px;}
}

@media (min-width:760px){
.fixed-bottom-bar{
  max-width:720px;
  left:50%;
  transform:translateX(-50%);
  border-radius:24px 24px 0 0;
}
}