/* 늘봄내과의원 — 공통 스타일
   색: 클린 화이트 · 딥 네이비 · 청록/스카이 포인트 / 글꼴: Pretendard + Manrope(숫자·영문)
   글자 크기 토글: html[data-fs] → 루트 font-size 변경, 모든 치수는 rem 기준 */
:root{
  --navy:#0c2440; --navy2:#173a63; --ink:#13233a; --muted:#475a70; --line:#d9e3ee; --line2:#e9eff5;
  --bg:#f3f7fb; --white:#fff;
  --teal:#0f8f9c; --teal-d:#0a6b76; --teal-l:#e2f5f6; --sky:#45b8e0; --sky-l:#e8f6fc;
  --open:#0b7a55; --open-l:#e0f5ec; --lunch:#a14a05; --lunch-l:#fdf0e1; --closed:#5a6779; --closed-l:#edf0f4; --warn:#b42318;
  --r:1.25rem; --r-s:.75rem;
  --sh:0 1px 2px rgba(12,36,64,.06),0 8px 24px -8px rgba(12,36,64,.12);
  --sh-l:0 2px 4px rgba(12,36,64,.05),0 24px 48px -16px rgba(12,36,64,.22);
  --num:'Manrope','Pretendard Variable',Pretendard,sans-serif;
}
html{font-size:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:6rem}
html[data-fs="2"]{font-size:112.5%}
html[data-fs="3"]{font-size:125%}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;font-family:'Pretendard Variable',Pretendard,-apple-system,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;font-size:1.0625rem;line-height:1.7;color:var(--ink);background:var(--white);word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.3;letter-spacing:-.02em;color:var(--navy)}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px;border-radius:6px}
.wrap{width:100%;max-width:76rem;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:1rem;top:1rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{font-family:var(--num);font-feature-settings:'tnum'}

/* ribbon · infobar */
.ribbon{background:#071a30;color:#b9cadb;font-size:.8125rem;text-align:center;padding:.4rem 1rem;line-height:1.5}
.ribbon b{color:#fff}
.infobar{background:var(--navy);color:#dbe6f2;font-size:.9375rem}
.infobar .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:2.75rem;padding-top:.35rem;padding-bottom:.35rem}
.ib-status{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.ib-status b{color:#fff}
.ib-sub{color:#a9bdd2}
.ib-right{display:flex;gap:1.25rem;align-items:center}
.ib-right b{color:#fff;font-family:var(--num)}
.ib-tel{text-decoration:none;color:#fff;font-weight:600;white-space:nowrap}
.ib-tel small{color:#a9bdd2;font-weight:400}
.dot{width:.7rem;height:.7rem;border-radius:50%;background:#9aa7b6;flex:none;display:inline-block;position:relative}
.dot[data-s="open"],.dot[data-s="last"]{background:#2fd08f}
.dot[data-s="open"]::after,.dot[data-s="last"]::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:ping 1.8s ease-out infinite}
.dot[data-s="lunch"]{background:#f5a524}
.dot[data-s="before"]{background:#7cc8f0}
@keyframes ping{0%{transform:scale(1);opacity:.7}100%{transform:scale(2.8);opacity:0}}

/* header */
header.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line2);transition:box-shadow .3s}
header.top.scrolled{box-shadow:0 6px 20px -10px rgba(12,36,64,.25)}
.nav{display:flex;align-items:center;gap:1rem;min-height:4.5rem}
.logo{display:flex;align-items:center;gap:.65rem;text-decoration:none;flex:none}
.logo svg{width:2.6rem;height:2.6rem;flex:none}
.logo span{display:flex;flex-direction:column;line-height:1.15}
.logo b{font-size:1.25rem;color:var(--navy);letter-spacing:-.03em}
.logo small{font-family:var(--num);font-size:.6rem;letter-spacing:.14em;color:var(--teal-d);font-weight:700}
.menu{display:flex;gap:.25rem;margin-left:auto}
.menu a{text-decoration:none;font-weight:600;font-size:1rem;color:var(--ink);padding:.55rem .8rem;border-radius:.6rem;transition:background .2s,color .2s;white-space:nowrap}
.menu a:hover{background:var(--bg);color:var(--teal-d)}
.menu a[aria-current="page"]{color:var(--teal-d);background:var(--teal-l)}
.menu .menu-cta{display:none}
.fs{display:flex;align-items:center;gap:.15rem;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:.2rem .25rem .2rem .7rem;flex:none}
.fs-label{font-size:.75rem;color:var(--muted);font-weight:600;margin-right:.2rem}
.fs button{border:0;background:none;width:2rem;height:2rem;border-radius:50%;cursor:pointer;font-weight:700;color:var(--muted);line-height:1;display:grid;place-items:center;padding:0}
.fs button[data-fs="1"]{font-size:.8rem}.fs button[data-fs="2"]{font-size:.98rem}.fs button[data-fs="3"]{font-size:1.18rem}
.fs button[aria-pressed="true"]{background:var(--navy);color:#fff}
.burger{display:none;width:2.9rem;height:2.9rem;border:1px solid var(--line);background:#fff;border-radius:.75rem;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex:none;padding:0}
.burger span{width:1.2rem;height:2px;background:var(--navy);border-radius:2px;transition:transform .3s,opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.1rem;padding:.7rem 1.4rem;border-radius:.85rem;font-weight:700;font-size:1.0625rem;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .2s,background .2s,box-shadow .2s,color .2s,border-color .2s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-teal{background:var(--teal-d);color:#fff}
.btn-teal:hover{background:#085a63;box-shadow:0 10px 24px -10px rgba(10,107,118,.7)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy2)}
.btn-line{background:#fff;color:var(--navy);border-color:var(--line)}
.btn-line:hover{border-color:var(--navy)}
.btn-ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.2)}
.btn svg{width:1.15em;height:1.15em}
.hdr-cta{min-height:2.75rem;padding:.5rem 1.1rem;font-size:.95rem}

/* sections */
section{position:relative}
.sec{padding:clamp(4rem,8vw,6.5rem) 0}
.sec-bg{background:var(--bg)}
.head{max-width:44rem;margin-bottom:clamp(2rem,4vw,3rem)}
.head.center{margin-left:auto;margin-right:auto;text-align:center}
.kicker{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--num);font-size:.8125rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-d);margin-bottom:.8rem}
.kicker::before{content:"";width:1.4rem;height:2px;background:currentColor}
.head h2{font-size:clamp(1.75rem,3.6vw,2.6rem);font-weight:800}
.head p{margin-top:.9rem;color:var(--muted);font-size:1.0625rem}
.note{font-size:.875rem;color:var(--muted)}
.tag{display:inline-block;font-size:.8125rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;background:var(--teal-l);color:var(--teal-d);white-space:nowrap}
.tag.navy{background:#e4ebf4;color:var(--navy)}
.tag.amber{background:var(--lunch-l);color:var(--lunch)}
.tag.red{background:#fdecea;color:var(--warn)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:clamp(1.25rem,3vw,1.75rem);box-shadow:var(--sh)}
.grid{display:grid;gap:clamp(1rem,2vw,1.5rem)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.photo{border-radius:var(--r);overflow:hidden;background:var(--bg);position:relative;margin:0}
.photo img{width:100%;height:100%;object-fit:cover}
.ico{width:3.2rem;height:3.2rem;border-radius:.9rem;display:grid;place-items:center;background:var(--teal-l);color:var(--teal-d);flex:none}
.ico svg{width:1.7rem;height:1.7rem}
.ticks{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}
.ticks li{position:relative;padding-left:1.7rem}
.ticks li::before{content:"";position:absolute;left:0;top:.42em;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--teal-l) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3l2.6 2.5L12 5.4' fill='none' stroke='%230a6b76' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat}

/* status pill (본문용) */
.pill{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;padding:.4rem .9rem .4rem .75rem;border-radius:999px;background:var(--closed-l);color:var(--closed);font-size:1rem}
.pill[data-s="open"],.pill[data-s="last"]{background:var(--open-l);color:var(--open)}
.pill[data-s="lunch"]{background:var(--lunch-l);color:var(--lunch)}
.pill[data-s="before"]{background:var(--sky-l);color:#0b5f86}
.pill .dot{background:var(--closed)}
.pill .dot[data-s="open"],.pill .dot[data-s="last"]{background:var(--open)}
.pill .dot[data-s="lunch"]{background:var(--lunch)}
.pill .dot[data-s="before"]{background:#0b5f86}

/* hours table (공통) */
.hours{width:100%;border-collapse:separate;border-spacing:0;font-size:1.0625rem}
.hours th,.hours td{padding:.85rem 1rem;border-bottom:1px solid var(--line2);text-align:left}
.hours thead th{font-size:.875rem;color:var(--muted);font-weight:700;background:var(--bg)}
.hours tbody th{font-weight:800;color:var(--navy);width:6.5rem;white-space:nowrap}
.hours td.num{font-weight:700}
.hours tr.off td,.hours tr.off th{color:var(--muted)}
.hours tr.today th,.hours tr.today td{background:var(--teal-l)}
.hours tr.today th{color:var(--teal-d)}
.hours tr.today th::after{content:"오늘";display:inline-block;margin-left:.4rem;font-size:.7rem;font-weight:800;background:var(--teal-d);color:#fff;padding:.05rem .4rem;border-radius:.35rem;vertical-align:.15em}

/* CTA band */
.ctaband{background:var(--navy);color:#dbe6f2;border-radius:calc(var(--r) * 1.4);padding:clamp(2rem,5vw,3.5rem);display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center;position:relative;overflow:hidden}
.ctaband::after{content:"";position:absolute;right:-6rem;top:-6rem;width:20rem;height:20rem;border-radius:50%;background:radial-gradient(circle,rgba(69,184,224,.35),transparent 70%);pointer-events:none}
.ctaband h2{color:#fff;font-size:clamp(1.6rem,3.2vw,2.3rem);font-weight:800}
.ctaband p{margin-top:.7rem}
.ctaband .acts{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;position:relative;z-index:1}
.ctaband .tel{font-family:var(--num);font-size:clamp(1.6rem,3vw,2.1rem);font-weight:800;color:#fff;display:block;margin-top:1rem;text-decoration:none}
.ctaband .tel small{font-size:.9rem;font-weight:500;color:#a9bdd2}

/* footer */
footer.site{background:#081a2f;color:#a7b9cc;padding:3.5rem 0 calc(2rem + env(safe-area-inset-bottom));font-size:.9375rem}
.fgrid{display:flex;justify-content:space-between;gap:2.5rem;flex-wrap:wrap}
.fbrand p{margin-top:1rem;line-height:1.8}
.logo-inv b{color:#fff}.logo-inv small{color:#7fd3dd}
.fcols{display:flex;gap:2.5rem;flex-wrap:wrap}
.fcols p{display:flex;flex-direction:column;gap:.35rem}
.fcols b{color:#fff;margin-bottom:.3rem}
.fcols a{text-decoration:none}
.fcols a:hover{color:#fff;text-decoration:underline}
.credit{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.8125rem;color:#8ea2b7}
.credit b{color:#cfdbe8}

/* mobile bar, toast */
.mbar{display:none}
.toast{position:fixed;left:50%;bottom:2rem;transform:translate(-50%,150%);background:var(--navy);color:#fff;padding:1rem 1.4rem;border-radius:1rem;box-shadow:var(--sh-l);z-index:90;width:max-content;max-width:min(92vw,32rem);font-size:.975rem;line-height:1.55;opacity:0;transition:transform .45s cubic-bezier(.2,.9,.3,1.2),opacity .3s;pointer-events:none}
.toast.show{transform:translate(-50%,0);opacity:1}
.toast.ok::before{content:"✓";display:inline-grid;place-items:center;width:1.4rem;height:1.4rem;border-radius:50%;background:#2fd08f;color:var(--navy);font-weight:900;margin-right:.6rem;font-size:.85rem}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}

/* page hero (서브) */
.phero{background:linear-gradient(180deg,var(--bg),#fff);padding:clamp(2.5rem,6vw,4.5rem) 0 clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line2);overflow:hidden}
.phero .wrap{position:relative}
.crumb{font-size:.875rem;color:var(--muted);display:flex;gap:.4rem;align-items:center;margin-bottom:1rem}
.crumb a{text-decoration:none}.crumb a:hover{color:var(--teal-d)}
.phero h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:800;letter-spacing:-.035em;position:relative}
.phero .lead{margin-top:1rem;max-width:42rem;color:var(--muted);font-size:clamp(1.0625rem,1.6vw,1.2rem);position:relative}
.phero .pulse{position:absolute;right:clamp(1rem,4vw,2rem);top:50%;transform:translateY(-50%);width:min(38%,24rem);pointer-events:none}
.phero .pulse path{fill:none;stroke:var(--teal);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:700;stroke-dashoffset:700;animation:draw 2.4s .3s ease forwards}
.phero .pulse path.bg{stroke:var(--line);stroke-dasharray:none;stroke-dashoffset:0;animation:none}
@keyframes draw{to{stroke-dashoffset:0}}

/* forms (공통) */
.field{display:flex;flex-direction:column;gap:.45rem;min-width:0}
.field>label,.field>.lbl{font-weight:700;color:var(--navy);font-size:1rem}
.req{color:var(--warn);margin-left:.15rem}
.input{width:100%;min-height:3.3rem;padding:.8rem 1rem;border:1.5px solid #c5d3e1;border-radius:.8rem;background:#fff;font-size:1.0625rem;transition:border-color .2s,box-shadow .2s}
textarea.input{min-height:8rem;resize:vertical}
.input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(15,143,156,.15)}
.input[aria-invalid="true"]{border-color:var(--warn);box-shadow:0 0 0 4px rgba(180,35,24,.1)}
.err{color:var(--warn);font-size:.9rem;font-weight:600}
.err:empty{display:none}

@media (max-width:1180px){
  .fs-label{display:none}
  .menu a{padding:.5rem .55rem;font-size:.95rem}
}
@media (max-width:1040px){
  .burger{display:flex}
  .hdr-cta{display:none}
  .fs{margin-left:auto}
  .menu{position:fixed;top:0;right:0;bottom:0;width:min(86vw,22rem);height:100vh;height:100dvh;background:#fff;flex-direction:column;gap:.2rem;padding:6rem 1.25rem 2rem;box-shadow:-20px 0 60px -20px rgba(12,36,64,.35);transform:translateX(105%);visibility:hidden;transition:transform .4s cubic-bezier(.2,.8,.2,1),visibility 0s .4s;margin:0;overflow-y:auto;z-index:1}
  .menu.open{transform:none;visibility:visible;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
  .menu a{font-size:1.15rem;padding:.9rem 1rem;border-radius:.8rem}
  .menu .menu-cta{display:block;margin-top:1rem;background:var(--teal-d);color:#fff;text-align:center}
  .menu .menu-cta:hover{background:#085a63;color:#fff}
  .burger{position:relative;z-index:2}
  header.top{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ctaband{grid-template-columns:1fr}
  .ctaband .acts{justify-content:flex-start}
  .phero .pulse{opacity:.3;width:55%}
}
@media (max-width:760px){
  body{padding-bottom:4.6rem}
  .g2,.g3{grid-template-columns:minmax(0,1fr)}
  .ib-hours,.ib-sub{display:none}
  .ib-tel small{display:none}
  .infobar{font-size:.875rem}
  .mbar{display:grid;grid-template-columns:auto 1fr 1.3fr;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding:.55rem .75rem calc(.55rem + env(safe-area-inset-bottom));box-shadow:0 -8px 24px -12px rgba(12,36,64,.25)}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:.4rem;min-height:3.1rem;border-radius:.8rem;text-decoration:none;font-weight:700;font-size:.95rem;padding:0 .8rem;white-space:nowrap;min-width:0}
  .mbar .call{background:var(--bg);color:var(--navy);border:1px solid var(--line)}
  .mbar .call svg{width:1.1rem;height:1.1rem}
  .mbar .stat{background:var(--bg);color:var(--navy);border:1px solid var(--line);overflow:hidden}
  .mbar .stat .dot{background:var(--closed)}
  .mbar .stat .dot[data-s="open"],.mbar .stat .dot[data-s="last"]{background:var(--open)}
  .mbar .stat .dot[data-s="lunch"]{background:var(--lunch)}
  .mbar .stat .dot[data-s="before"]{background:#0b5f86}
  .mbar .go{background:var(--teal-d);color:#fff}
  .toast{bottom:5.6rem}
  .hours th,.hours td{padding:.7rem .6rem}
  .hours tbody th{width:auto}
}
@media (max-width:480px){
  /* 좁은 화면 헤더는 글자 크기 토글과 무관하게 px 고정 (넘침 방지) */
  .logo small{display:none}
  .logo{gap:8px}
  .logo b{font-size:18px}
  .logo svg{width:36px;height:36px}
  .nav{gap:8px;min-height:64px}
  .fs{padding:2px}
  .fs button{width:30px;height:30px}
  .fs button[data-fs="1"]{font-size:12px}.fs button[data-fs="2"]{font-size:15px}.fs button[data-fs="3"]{font-size:18px}
  .burger{width:44px;height:44px}
  .ribbon{font-size:12px}
  .g4{grid-template-columns:minmax(0,1fr)}
  .mbar{grid-template-columns:auto 1fr 1.2fr;padding-left:.5rem;padding-right:.5rem;gap:.4rem}
  .mbar a{padding:0 .55rem;font-size:.9rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
}
