/* His Speech Therapy Center - modern medical pastel green */

:root{
  --bg: #F7FFFB;
  --surface: #FFFFFF;
  --surface-2: #F1FFFA;
  --text: #0C1B2A;
  --muted: #5B6B7C;
  --line: rgba(12, 27, 42, 0.12);
  --primary: #35C28A;
  --primary-2: #149E67;
  --primary-soft: rgba(53, 194, 138, 0.14);
  --accent: #7EE7B0;
  --shadow: 0 18px 45px rgba(14, 45, 72, 0.12);
  --shadow-soft: 0 10px 25px rgba(14, 45, 72, 0.10);
  --radius: 18px;
  --radius-sm: 14px;
  --container: 1120px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  color:var(--text);
  background: radial-gradient(1100px 700px at 20% 10%, rgba(126,231,176,0.18), transparent 58%),
              radial-gradient(900px 600px at 90% 0%, rgba(53,194,138,0.14), transparent 60%),
              var(--bg);
  font-family: "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Segoe UI", Roboto, Arial, sans-serif;
  line-height: 1.55;
}

a{ color:inherit; }
img{ max-width:100%; display:block; }

.container{
  width:min(var(--container), calc(100% - 40px));
  margin:0 auto;
}

.skip-link{
  position:absolute;
  left:-999px;
  top:10px;
  padding:10px 12px;
  border-radius:10px;
  background: var(--surface);
  border:1px solid var(--line);
  box-shadow: var(--shadow-soft);
  z-index: 1000;
}
.skip-link:focus{ left: 14px; }

.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(10px);
  background: rgba(247, 255, 251, 0.72);
  border-bottom: 1px solid rgba(12,27,42,0.08);
}
.site-header.is-elevated{
  background: rgba(247, 255, 251, 0.92);
  box-shadow: 0 10px 30px rgba(14, 45, 72, 0.10);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding: 14px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap: 12px;
  text-decoration:none;
  min-width: 220px;
}
.brand-logo{
  width: 52px;
  height: 52px;
  border-radius: 16px;
  border: 1px solid rgba(12,27,42,0.10);
  background: rgba(255,255,255,0.8);
  box-shadow: 0 12px 24px rgba(14,45,72,0.10);
  object-fit: contain;
  padding: 6px;
}
.brand-text{ display:flex; flex-direction:column; line-height:1.05; }
.brand-name{ font-weight: 800; letter-spacing: -0.02em; }
.brand-sub{ font-size: 12px; color: var(--muted); margin-top: 3px; }

.nav{
  display:flex;
  align-items:center;
  gap: 6px;
}
.nav a{
  text-decoration:none;
  color: rgba(12,27,42,0.86);
  font-weight: 600;
  padding: 10px 12px;
  border-radius: 12px;
}
.nav a:hover{
  background: rgba(53,194,138,0.10);
}

.icon-btn{
  display:none;
  border: 1px solid rgba(12,27,42,0.12);
  background: rgba(255,255,255,0.6);
  border-radius: 14px;
  width: 44px;
  height: 44px;
  align-items:center;
  justify-content:center;
  box-shadow: 0 10px 20px rgba(14,45,72,0.08);
}
.nav-toggle-lines{
  width: 18px;
  height: 12px;
  position: relative;
  display:block;
}
.nav-toggle-lines::before,
.nav-toggle-lines::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height: 2px;
  border-radius: 99px;
  background: rgba(12,27,42,0.75);
}
.nav-toggle-lines::before{ top: 1px; }
.nav-toggle-lines::after{ bottom: 1px; }

.pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(12,27,42,0.12);
  background: rgba(255,255,255,0.5);
  text-decoration:none;
  font-weight: 700;
}
.pill-primary{
  border-color: rgba(53,194,138,0.35);
  background: linear-gradient(135deg, rgba(53,194,138,1), rgba(20,158,103,1));
  color: white;
  box-shadow: 0 12px 26px rgba(53,194,138,0.26);
}
.pill-soft{
  border-color: rgba(53,194,138,0.25);
  background: rgba(53,194,138,0.10);
}

.hero{
  position: relative;
  padding: 54px 0 34px;
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.25fr 0.9fr;
  gap: 28px;
  align-items: stretch;
  position: relative;
  z-index: 2;
}
.hero-media{
  display:grid;
  grid-template-rows: 1fr auto;
  gap: 12px;
  align-content: start;
}
.hero-photo{
  border-radius: var(--radius);
  overflow:hidden;
  border: 1px solid rgba(12,27,42,0.10);
  background: rgba(255,255,255,0.72);
  box-shadow: var(--shadow);
  min-height: 320px;
  position: relative;
}
.hero-photo--pattern{
  background:
    radial-gradient(12px 12px at 26px 26px, rgba(20,158,103,0.18) 0 60%, transparent 62%),
    radial-gradient(12px 12px at 62px 62px, rgba(53,194,138,0.14) 0 60%, transparent 62%),
    radial-gradient(900px 480px at 15% 15%, rgba(126,231,176,0.26), transparent 60%),
    radial-gradient(900px 520px at 85% 70%, rgba(53,194,138,0.14), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,0.72), rgba(255,255,255,0.60));
  background-size: 88px 88px, 88px 88px, auto, auto, auto;
  background-position: 0 0, 22px 22px, 0 0, 0 0, 0 0;
}
.hero-photo--pattern::after{
  content:"";
  position:absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, rgba(255,255,255,0.0), rgba(255,255,255,0.65));
}
.hero-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
  transform: scale(1.02);
  filter: saturate(1.02) contrast(1.02);
}
.hero-mini-card{
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(12,27,42,0.10);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
  padding: 18px;
}
.badge{
  display:inline-flex;
  align-items:center;
  gap: 10px;
  background: rgba(255,255,255,0.65);
  border: 1px solid rgba(12,27,42,0.10);
  padding: 8px 12px;
  border-radius: 999px;
  color: rgba(12,27,42,0.78);
  font-weight: 700;
  box-shadow: 0 12px 20px rgba(14,45,72,0.08);
}
.hero h1{
  margin: 16px 0 10px;
  font-size: clamp(30px, 3.2vw, 46px);
  line-height: 1.12;
  letter-spacing: -0.03em;
}
.lead{
  margin: 0;
  max-width: 56ch;
  color: rgba(12,27,42,0.72);
  font-size: 16px;
}
.hero-cta{
  display:flex;
  gap: 10px;
  margin-top: 18px;
  flex-wrap: wrap;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(12,27,42,0.12);
  text-decoration:none;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.btn-primary{
  border-color: rgba(53,194,138,0.35);
  background: linear-gradient(135deg, rgba(53,194,138,1), rgba(20,158,103,1));
  color: white;
  box-shadow: 0 16px 34px rgba(53,194,138,0.28);
}
.btn-ghost{
  background: rgba(255,255,255,0.6);
}
.btn:hover{ transform: translateY(-1px); }
.btn:active{ transform: translateY(0); }

.hero-meta{
  margin: 18px 0 0;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}
.hero-meta > div{
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(12,27,42,0.10);
  border-radius: 16px;
  padding: 12px;
}
.hero-meta dt{
  font-weight: 900;
  font-size: 12px;
  color: rgba(12,27,42,0.60);
}
.hero-meta dd{
  margin: 6px 0 0;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.hero-card{
  background: rgba(255,255,255,0.70);
  border: 1px solid rgba(12,27,42,0.10);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  position: relative;
  overflow:hidden;
}
.hero-card::before{
  content:"";
  position:absolute;
  inset:-40%;
  background: radial-gradient(circle at 30% 30%, rgba(126,231,176,0.30), transparent 55%);
  transform: rotate(12deg);
}
.hero-card-inner{
  position: relative;
  z-index: 1;
  padding: 20px;
}
.hero-card-title{
  font-weight: 900;
  letter-spacing: -0.02em;
  font-size: 16px;
}
.steps{
  margin: 14px 0 0;
  padding: 0;
  list-style:none;
  display:grid;
  gap: 10px;
}
.steps li{
  display:flex;
  align-items:flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(12,27,42,0.08);
}
.step-num{
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: rgba(53,194,138,0.16);
  border: 1px solid rgba(53,194,138,0.25);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  flex: 0 0 auto;
}
.hero-card-actions{
  display:flex;
  gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.fine{
  margin: 10px 0 0;
  font-size: 12px;
  color: rgba(12,27,42,0.62);
}

.hero-bg{
  position:absolute;
  inset: 0;
  z-index: 1;
  pointer-events:none;
}
.blob{
  position:absolute;
  border-radius: 999px;
  filter: blur(0px);
  opacity: 0.85;
}
.blob-1{
  width: 520px;
  height: 520px;
  background: radial-gradient(circle at 35% 35%, rgba(126,231,176,0.32), rgba(126,231,176,0.05) 55%, transparent 70%);
  left: -160px;
  top: -140px;
}
.blob-2{
  width: 560px;
  height: 560px;
  background: radial-gradient(circle at 40% 30%, rgba(53,194,138,0.20), rgba(53,194,138,0.05) 58%, transparent 72%);
  right: -240px;
  bottom: -260px;
}
.gridlines{
  position:absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(12,27,42,0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(12,27,42,0.04) 1px, transparent 1px);
  background-size: 48px 48px;
  mask-image: radial-gradient(circle at 30% 20%, rgba(0,0,0,0.55), transparent 60%);
  opacity: 0.85;
}

.section{
  padding: 56px 0;
}
.section-soft{
  background: rgba(255,255,255,0.45);
  border-top: 1px solid rgba(12,27,42,0.06);
  border-bottom: 1px solid rgba(12,27,42,0.06);
}
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 14px;
  margin-bottom: 18px;
}
.section-head.row{ align-items:center; }
.section-head h2{
  margin:0;
  font-size: 26px;
  letter-spacing: -0.02em;
}
.section-head p{
  margin: 6px 0 0;
  color: rgba(12,27,42,0.68);
  max-width: 70ch;
}

.about-split{
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 14px;
  align-items: stretch;
}
.about-media{
  border-radius: var(--radius);
  overflow:hidden;
  border: 1px solid rgba(12,27,42,0.10);
  background: rgba(255,255,255,0.72);
  box-shadow: var(--shadow-soft);
  position: relative;
  min-height: 360px;
}
.about-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
  filter: saturate(1.02) contrast(1.02);
}
.about-overlay{
  position:absolute;
  left: 14px;
  bottom: 14px;
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
}
.about-chip{
  display:inline-flex;
  align-items:center;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.55);
  background: rgba(12,27,42,0.40);
  color: rgba(255,255,255,0.92);
  font-weight: 900;
  letter-spacing: -0.01em;
  backdrop-filter: blur(8px);
}
.about-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
.about-card{
  border-radius: var(--radius);
  background: rgba(255,255,255,0.70);
  border: 1px solid rgba(12,27,42,0.10);
  box-shadow: var(--shadow-soft);
  padding: 18px;
}
.about-card h3{
  margin: 0 0 8px;
  letter-spacing: -0.02em;
}
.about-card p{
  margin:0;
  color: rgba(12,27,42,0.70);
}

.cards{
  display:grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 14px;
}
.card{
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(12,27,42,0.10);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
  padding: 18px;
  display:flex;
  flex-direction:column;
  min-height: 260px;
}
.card-actions{
  margin-top: 12px;
}

.section-foot{
  margin-top: 18px;
  display:flex;
  justify-content:center;
}
.card-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 36px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(53,194,138,0.12);
  border: 1px solid rgba(53,194,138,0.24);
  font-weight: 900;
  letter-spacing: -0.01em;
  width: fit-content;
}
.card h3{
  margin: 12px 0 8px;
  letter-spacing: -0.02em;
}
.card p{
  margin: 0 0 12px;
  color: rgba(12,27,42,0.70);
}
.checklist{
  margin: auto 0 0;
  padding: 0;
  list-style: none;
  display:grid;
  gap: 8px;
}
.checklist li{
  display:flex;
  gap: 10px;
  align-items:flex-start;
  color: rgba(12,27,42,0.78);
}
.checklist li::before{
  content:"✓";
  font-weight: 900;
  color: var(--primary-2);
  margin-top: 1px;
}

.voucher-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.info-panel{
  border-radius: var(--radius);
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(12,27,42,0.10);
  box-shadow: var(--shadow-soft);
  padding: 18px;
}
.info-panel h3{
  margin: 0 0 10px;
  letter-spacing:-0.02em;
}
.dotlist{
  margin:0;
  padding-left: 18px;
  color: rgba(12,27,42,0.72);
  display:grid;
  gap: 8px;
}

.callout{
  margin-top: 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 16px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, rgba(53,194,138,0.18), rgba(255,255,255,0.72));
  border: 1px solid rgba(53,194,138,0.22);
  box-shadow: var(--shadow-soft);
}
.callout-copy{
  display:flex;
  flex-direction:column;
  gap: 4px;
}
.callout-copy strong{ letter-spacing:-0.02em; }
.callout-copy span{ color: rgba(12,27,42,0.70); }

.accordion{
  display:grid;
  gap: 10px;
}
.notice-list{
  display:grid;
  gap: 10px;
}
.notice-row{
  text-decoration:none;
  border-radius: var(--radius);
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(12,27,42,0.10);
  box-shadow: var(--shadow-soft);
  padding: 14px 16px;
  display:grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items:center;
}
.notice-row:hover{
  border-color: rgba(20,158,103,0.28);
  box-shadow: 0 16px 34px rgba(14,45,72,0.12);
  transform: translateY(-1px);
}
.notice-row:active{ transform: translateY(0); }
.notice-item{
  border-radius: var(--radius);
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(12,27,42,0.10);
  box-shadow: var(--shadow-soft);
  overflow:hidden;
}
.notice-item summary{
  cursor:pointer;
  list-style:none;
  display:grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items:center;
  padding: 14px 16px;
  user-select:none;
}
.notice-item summary::-webkit-details-marker{ display:none; }
.notice-title{ font-weight: 900; letter-spacing:-0.02em; }
.notice-date{ color: rgba(12,27,42,0.55); font-weight: 700; font-size: 13px; }
.notice-body{
  padding: 0 16px 16px;
  color: rgba(12,27,42,0.72);
}
.tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(12,27,42,0.12);
  background: rgba(255,255,255,0.60);
  font-weight: 900;
  font-size: 12px;
  color: rgba(12,27,42,0.70);
}
.tag-primary{
  border-color: rgba(53,194,138,0.30);
  background: rgba(53,194,138,0.14);
  color: rgba(12,27,42,0.80);
}

.page-hero{
  padding: 34px 0 14px;
}
.page-hero-grid{
  display:grid;
  grid-template-columns: 1fr 0.9fr;
  gap: 18px;
  align-items: center;
}
.page-title{
  margin: 14px 0 8px;
  font-size: clamp(28px, 2.8vw, 40px);
  line-height: 1.12;
  letter-spacing: -0.03em;
}
.page-lead{
  margin: 0;
  color: rgba(12,27,42,0.70);
  max-width: 62ch;
}
.page-hero-actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.page-hero-photo{
  border-radius: var(--radius);
  overflow:hidden;
  border: 1px solid rgba(12,27,42,0.10);
  background: rgba(255,255,255,0.72);
  box-shadow: var(--shadow);
  min-height: 240px;
}
.page-hero-photo--pattern{
  background:
    radial-gradient(900px 500px at 20% 20%, rgba(126,231,176,0.22), transparent 60%),
    radial-gradient(900px 520px at 80% 70%, rgba(53,194,138,0.14), transparent 62%),
    linear-gradient(135deg, rgba(53,194,138,0.10), rgba(255,255,255,0.70));
}
.therapist-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:28px;
margin-top:30px;
}
.therapist-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:32px;
margin-top:40px;
}

.therapist-card{
background:white;
padding:28px;
border-radius:16px;
text-align:center;
box-shadow:0 12px 24px rgba(0,0,0,0.08);
transition:all .25s ease;
}

.therapist-card:hover{
transform:translateY(-6px);
box-shadow:0 16px 32px rgba(0,0,0,0.12);
}

.therapist-card img{
width:120px;
height:120px;
border-radius:50%;
object-fit:cover;
margin-bottom:16px;
}

.therapist-role{
color:#16a34a;
font-weight:600;
margin-top:6px;
}

.therapist-desc{
font-size:14px;
color:#666;
margin-top:10px;
}

@media (max-width:768px){
.therapist-grid{
grid-template-columns:1fr;
}
}
.therapist-card{
background:#fff;
border-radius:14px;
padding:24px;
text-align:center;
box-shadow:0 8px 20px rgba(0,0,0,0.06);
}

.therapist-card img{
width:120px;
height:120px;
border-radius:50%;
object-fit:cover;
margin-bottom:14px;
}

.therapist-role{
color:#16a34a;
font-weight:600;
margin-top:4px;
}

.therapist-desc{
font-size:14px;
color:#666;
margin-top:8px;
}
.therapy-layout{
  display:grid;
  grid-template-columns: 280px 1fr;
  gap: 14px;
  align-items:start;
}
.therapy-aside{
  position: sticky;
  top: 88px;
  border-radius: var(--radius);
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(12,27,42,0.10);
  box-shadow: var(--shadow-soft);
  padding: 16px;
}
.therapy-nav-title{
  font-weight: 1000;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
.therapy-article {
  scroll-margin-top: 120px;
}
.therapy-nav{
  display:grid;
  gap: 6px;
}
.therapy-nav a{
  text-decoration:none;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(12,27,42,0.08);
  background: rgba(255,255,255,0.55);
  font-weight: 900;
  color: rgba(12,27,42,0.78);
}
.therapy-nav a:hover{
  border-color: rgba(20,158,103,0.24);
  background: rgba(53,194,138,0.10);
}
.therapy-cta{
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.therapy-content{
  display:grid;
  gap: 12px;
}
.therapy-article{
  border-radius: var(--radius);
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(12,27,42,0.10);
  box-shadow: var(--shadow-soft);
  padding: 18px;
}
.therapy-article h2{
  margin: 0 0 10px;
  letter-spacing: -0.02em;
}
.therapy-article h3{
  margin: 16px 0 10px;
  letter-spacing: -0.02em;
}
.therapy-article p{
  margin: 10px 0;
  color: rgba(12,27,42,0.72);
}
.bullet{
  margin: 10px 0 0;
  padding-left: 20px;
  color: rgba(12,27,42,0.74);
  display:grid;
  gap: 8px;
}
.page-hero-photo img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display:block;
  filter: saturate(1.02) contrast(1.02);
}

.contact-grid{
  display:grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 14px;
  align-items: stretch;
}
.map-frame{
  border-radius: var(--radius);
  overflow:hidden;
  border: 1px solid rgba(12,27,42,0.10);
  background: rgba(255,255,255,0.72);
  box-shadow: var(--shadow-soft);
  min-height: 340px;
}
.map-frame iframe{
  width: 100%;
  height: 100%;
  border: 0;
  display:block;
}
.contact-card{
  border-radius: var(--radius);
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(12,27,42,0.10);
  box-shadow: var(--shadow-soft);
  padding: 18px;
  display:flex;
  flex-direction:column;
  gap: 12px;
}
.contact-row{
  display:grid;
  grid-template-columns: 84px 1fr;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(12,27,42,0.08);
}
.contact-label{
  font-weight: 900;
  color: rgba(12,27,42,0.62);
}
.contact-value{
  font-weight: 800;
  letter-spacing:-0.01em;
}
.contact-actions{
  display:flex;
  gap: 10px;
  margin-top: 2px;
  flex-wrap: wrap;
}

.notice-banner{
  margin-top: auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  padding: 12px 12px;
  border-radius: 16px;
  background: rgba(53,194,138,0.12);
  border: 1px solid rgba(53,194,138,0.22);
  color: rgba(12,27,42,0.78);
  font-weight: 800;
}

.link{
  color: var(--primary-2);
  text-decoration:none;
  font-weight: 900;
}
.link:hover{ text-decoration: underline; }
.link-btn{
  border:0;
  background: transparent;
  color: rgba(12,27,42,0.70);
  font-weight: 900;
  cursor:pointer;
  padding: 8px 10px;
  border-radius: 12px;
}
.link-btn:hover{
  background: rgba(255,255,255,0.60);
  border: 1px solid rgba(12,27,42,0.08);
}

.site-footer{
  padding: 28px 0;
  border-top: 1px solid rgba(12,27,42,0.08);
  background: rgba(255,255,255,0.55);
}
.footer-brand-row{
  display:flex;
  align-items:center;
  gap: 10px;
}
.footer-logo{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(12,27,42,0.10);
  background: rgba(255,255,255,0.85);
  object-fit: contain;
  padding: 6px;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr 0.7fr 1fr;
  gap: 14px;
  align-items:start;
}
.footer-brand{
  font-weight: 1000;
  letter-spacing:-0.02em;
}
.footer-text{ margin: 8px 0 0; color: rgba(12,27,42,0.68); }
.footer-links{
  display:grid;
  gap: 8px;
}
.footer-links a{
  text-decoration:none;
  color: rgba(12,27,42,0.72);
  font-weight: 800;
}
.footer-links a:hover{ color: rgba(12,27,42,0.92); }
.footer-contact{
  display:grid;
  gap: 8px;
  color: rgba(12,27,42,0.72);
  font-weight: 700;
}
.muted{ color: rgba(12,27,42,0.56); font-weight: 900; }

.fab-call{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 80;
  width: 58px;
  height: 58px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(53,194,138,1), rgba(20,158,103,1));
  color: white;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  box-shadow: 0 20px 40px rgba(53,194,138,0.26);
  border: 1px solid rgba(255,255,255,0.35);
}
.fab-text{ display:none; font-weight: 900; }

.hide-desktop{ display:none; }

@media (max-width: 980px){
  .hero-grid{ grid-template-columns: 1fr; }
  .hero{ padding-top: 42px; }
  .hero-media{ grid-template-rows: auto auto; }
  .page-hero-grid{ grid-template-columns: 1fr; }
  .cards{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .about-split{ grid-template-columns: 1fr; }
  .about-grid{ grid-template-columns: 1fr; }
  .voucher-grid{ grid-template-columns: 1fr; }
  .contact-grid{ grid-template-columns: 1fr; }
  .map-frame{ min-height: 320px; }
  .footer-grid{ grid-template-columns: 1fr; }
  .hide-desktop{ display:block; }
  .therapy-layout{ grid-template-columns: 1fr; }
  .therapy-aside{ position: relative; top: auto; }
}

@media (max-width: 820px){
  .icon-btn{ display:inline-flex; }

  .nav{
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    padding: 12px;
    display:none;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    background: rgba(247,255,251,0.96);
    border-bottom: 1px solid rgba(12,27,42,0.08);
    box-shadow: 0 20px 40px rgba(14,45,72,0.10);
  }
  .nav.is-open{ display:flex; }
  .nav a{ padding: 12px 12px; }
  .brand{ min-width: auto; }
}

@media (max-width: 520px){
  .container{ width: calc(100% - 28px); }
  .hero-meta{ grid-template-columns: 1fr; }
  .cards{ grid-template-columns: 1fr; }
  .btn{ width: 100%; }
  .fab-call{
    width: auto;
    padding: 14px 16px;
  }
  .fab-text{ display:inline; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .btn:hover{ transform:none; }
}

