:root{
  --bg: #ffffff;
  --ink: #0f172a; /* slate-900 */
  --primary: #2A3890;
  --accent: #E0BB43;
  --ink-600: #475569; /* slate-600 */
  --ink-500: #64748b; /* slate-500 */
  --ink-400: #94a3b8; /* slate-400 */
  --muted: #f8fafc; /* slate-50 */
  --line: #e2e8f0; /* slate-200 */
  --shadow: 0 10px 30px rgba(2,6,23,.08);
  --radius-lg: 1rem; /* 16px */
  --radius-xl: 1.25rem; /* 20px */
  --radius-2xl: 1.5rem; /* 24px */
  --container: 1200px;
}

html{scroll-behavior:smooth}
body{
  margin:0; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Noto Sans, Ubuntu, Cantarell, Helvetica Neue, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--ink); background:var(--bg); line-height:1.6;
}

/* Utilities */
.container{max-width:var(--container); margin-inline:auto; padding:0 1rem}
.btn{display:inline-block; padding:.85rem 1.25rem; border-radius:1rem; font-weight:600; font-size:.95rem; text-decoration:none}
.btn-primary{background:var(--primary); color:#fff}
.btn-primary:hover{background:#222e78}
.btn-outline{border:1px solid var(--line); color:var(--ink); background:#fff}
.btn-outline:hover{background:#f1f5f9}
.card{border:1px solid var(--line); border-radius:var(--radius-2xl); background:#fff; padding:1.25rem}
.shadow{box-shadow:var(--shadow)}
.muted{color:var(--ink-600)}
.h1{font-size:clamp(2rem, 3vw + 1rem, 3rem); line-height:1.15; font-weight:700}
.h2{font-size:clamp(1.6rem, 2vw + .75rem, 2.25rem); line-height:1.2; font-weight:700}
.h3{font-size:1.125rem; font-weight:700}
.grid{display:grid; gap:1.25rem}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.aspect-43{position:relative; padding-top:75%; border-radius:1rem; overflow:hidden; background:#e2e8f0}
.aspect-square{position:relative; padding-top:100%; border-radius:1rem; overflow:hidden; background:#e2e8f0}
.aspect-media{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block}
.placeholder{display:block; background:repeating-linear-gradient(135deg,#f1f5f9 0 12px,#e2e8f0 12px 24px); border:1px dashed #cbd5f5; color:var(--ink-400); position:relative}
.placeholder::after{content:'Image coming soon'; position:absolute; inset:0; display:grid; place-items:center; font-size:.85rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:inherit}
.team-scroller{display:flex; gap:1.25rem; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:1rem; margin-top:1.25rem; scroll-behavior:smooth}
.team-scroller:focus-visible{outline:2px solid #2A389022; outline-offset:4px}
.team-scroller::-webkit-scrollbar{height:6px}
.team-scroller::-webkit-scrollbar-thumb{background:#cbd5f5; border-radius:999px}
.team-scroller::-webkit-scrollbar-track{background:#e2e8f0}
.team-card{min-width:260px; flex:0 0 260px; display:flex; flex-direction:column; scroll-snap-align:start}
.team-card .team-name{margin:.75rem 0 .25rem; font-size:1.125rem; font-weight:700}
.team-card .team-role{margin-top:.2rem; font-size:.95rem; font-weight:600}
.team-card .team-blurb{margin-top:.5rem; font-size:.95rem}
.team-card .team-more{margin-top:.6rem; font-size:.95rem; line-height:1.5; display:none}
.team-card.expanded .team-more{display:block}
.team-card .team-toggle{margin-top:auto}
.btn-small{padding:.55rem .9rem; font-size:.85rem; border-radius:.75rem}
.badge{display:inline-flex; align-items:center; gap:.5rem; padding:.35rem .65rem; border-radius:.9rem; background:var(--accent-soft); color:var(--ink)}
.badge .check{width:18px; height:18px; color:var(--primary)}
.section-soft{background:#f8fafc}
.eyebrow{text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; font-weight:600; color:var(--accent); margin-bottom:.4rem}
.section-head{margin-bottom:2.5rem}
.section-head > *{margin-top:0; margin-bottom:.5rem}
.section-head > *:last-child{margin-bottom:0}
.about-grid{align-items:center; gap:2.5rem}
.about-panel{display:flex; flex-direction:column; gap:1.25rem}
.about-panel .placeholder{min-height:220px; border-radius:var(--radius-xl); margin-bottom:1rem}
.list-check{list-style:none; margin:1.25rem 0 0; padding:0; display:flex; flex-direction:column; gap:.65rem; color:var(--ink-600); font-size:.95rem}
.list-check li{display:flex; gap:.6rem; align-items:flex-start}
.list-check svg{flex:0 0 auto; width:18px; height:18px; color:#10b981; margin-top:.2rem}
.charter-grid li{padding-left:0}
.charter-grid li svg{flex:0 0 auto; width:18px; height:18px; color:#10b981; margin-top:.2rem}
.charter-grid .card{height:100%}
.charter-note{margin-top:2rem; font-size:.95rem}
.pill{display:inline-flex; align-items:center; gap:.35rem; background:#e2e8f0; border-radius:999px; padding:.3rem .9rem; font-size:.78rem; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-500)}
.feature-card{display:flex; flex-direction:column; gap:.5rem; border-radius:var(--radius-2xl); border:1px solid var(--line); background:#fff}
.page-hero{text-align:center; padding:4.5rem 0 3rem}
.page-hero .container{max-width:720px}

/* Treatments */
.treatment-hero-meta{margin-top:2.5rem; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.treatment-meta-card{border:1px solid var(--line); border-radius:var(--radius-2xl); padding:1rem 1.2rem; background:#fff; display:grid; gap:.6rem; align-items:start; text-align:center; justify-items:center}
.treatment-meta-title{margin:0 0 .15rem; font-weight:600}
.treatment-meta-card .icon-circle{margin-bottom:.25rem}
.treatment-browser{padding-top:0}
.treatment-pills{display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; margin-bottom:2rem}
.treatment-pill{display:inline-flex; align-items:center; gap:.45rem; border:1px solid var(--line); padding:.6rem 1rem; border-radius:999px; color:var(--ink-600); text-decoration:none; font-weight:600; font-size:.92rem; background:#fff; transition:all .2s ease}
.treatment-pill:hover{border-color:var(--ink-400); color:var(--ink)}
.treatment-pill:focus-visible{outline:2px solid #0ea5e9; outline-offset:3px}
.icon-circle{width:48px; height:48px; border-radius:999px; background:#eef2ff; color:#4338ca; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; position:relative}
.icon-circle svg{width:22px; height:22px}
.icon-circle::before{display:none}
.icon-circle i{display:none}
.icon-circle-sm{width:36px; height:36px; font-size:.85rem}
.icon-circle-sm svg{width:18px; height:18px}
.icon-sky{background:#e0f2fe; color:#0369a1}
.icon-mint{background:#ecfdf5; color:#047857}
.icon-sun{background:#fef9c3; color:#92400e}
.icon-berry{background:#fdf4ff; color:#a21caf}
.treatment-highlights{margin-top:2rem}
.treatment-highlight{display:flex; flex-direction:column; gap:.65rem}
.treatment-highlight .h3{margin:0}
.treatment-section{scroll-margin-top:120px}
.treatment-panel{display:grid; gap:2rem}
.treatment-heading{display:flex; gap:1rem; align-items:flex-start; margin-bottom:1rem}
.treatment-copy{display:flex; flex-direction:column; gap:1rem}
.treatment-aside{display:flex; flex-direction:column; gap:1rem}
.treatment-card{border:1px solid var(--line); border-radius:var(--radius-2xl); padding:1.5rem; background:#fff; display:flex; flex-direction:column; gap:1rem}
.treatment-points{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.85rem; font-size:.95rem; color:var(--ink-600)}
.treatment-points li{display:flex; gap:.75rem; align-items:flex-start}
.treatment-dot{flex:0 0 auto; width:32px; height:32px; border-radius:999px; background:#ecfdf5; color:#047857; display:grid; place-items:center; margin-top:.1rem}
.treatment-dot svg{width:16px; height:16px}
.treatment-points strong{display:block; font-size:.95rem; color:var(--ink)}
.treatment-points .muted{margin:.1rem 0 0; font-size:.9rem}
.treatment-media{border-radius:var(--radius-2xl); overflow:hidden}
.treatment-list{list-style:disc; padding-left:1.25rem; color:var(--ink-600); font-size:.95rem; margin:0 0 1.5rem}
.treatment-grid-cards{display:grid; gap:1.5rem}

/* Top bar */
.topbar{background:var(--primary); color:#fff}
.topbar .row{display:flex; gap:1rem; align-items:center; justify-content:space-between; padding:.5rem 1rem}
.topbar a{color:#fff; text-decoration:none; font-weight:600}

/* Header */
header{position:sticky; top:0; z-index:40; backdrop-filter:saturate(180%) blur(8px); background:rgba(255,255,255,.85); border-bottom:1px solid var(--line)}
.nav{display:flex; align-items:center; justify-content:space-between; padding: .9rem 1rem}
.brand{display:flex; align-items:center; gap:.75rem; text-decoration:none; color:inherit}
.brand-logo{height:44px; width:auto; display:block}
.brand small{display:block; margin-top:-2px; color:var(--ink-500)}
.menu{display:none; gap:2rem; align-items:center}
.menu a{color:var(--ink-600); text-decoration:none; font-size:.95rem}
.menu a:hover{color:var(--ink)}
.menu a[aria-current="page"]{color:var(--primary); font-weight:700; position:relative}
.menu a[aria-current="page"]::after{content:""; position:absolute; left:0; right:0; bottom:-6px; height:3px; border-radius:999px; background:var(--accent)}
.cta{display:none; gap:.6rem}
.hamburger{display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:.8rem; padding:.55rem .8rem; background:#fff}

/* Mobile drawer */
.drawer{display:none; border-top:1px solid var(--line); background:#fff}
.drawer a{display:block; padding:1rem; color:var(--ink-600); text-decoration:none}
.drawer a:hover{background:#f8fafc}
.drawer a[aria-current="page"]{color:var(--primary); font-weight:700; background:#f1f5f9}

/* Hero */
.hero{background:linear-gradient(#f8fafc, #ffffff)}
.hero .wrap{padding:4rem 0; display:grid; gap:2rem; align-items:center}
.hero .bullets{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; margin-top:1rem; color:var(--ink-600); font-size:.95rem}
.callout{position:absolute; bottom:-1.25rem; right:-1.25rem; background:#fff; border:1px solid var(--line); border-radius:1rem; width:260px; padding:1rem; box-shadow:var(--shadow)}

/* Trust bar */
.trust{border-block:1px solid var(--line); background:#fff}
.kpi{background:#f8fafc; border:1px solid var(--line); border-radius:1rem; padding:1rem; text-align:center}
.kpi .big{font-size:1.6rem; font-weight:700}
.kpi-link{display:block; color:inherit; text-decoration:none}
.kpi-link:hover{box-shadow:var(--shadow); text-decoration:none}
.kpi-reviews{background:linear-gradient(135deg,#e0e7ff,#ffffff); border-color:#cbd5f5}
.kpi-newpatients{background:linear-gradient(135deg,#ecfdf5,#ffffff); border-color:#c7f1e5}
.kpi-membership{background:linear-gradient(135deg,#fef9c3,#ffffff); border-color:#f9e8a1}

/* Sections */
section{padding:4rem 0}

/* Services */
.service-card{transition:box-shadow .2s ease}
.service-card:hover{box-shadow:var(--shadow)}

/* CTA band */
.band{background:var(--primary); color:#fff; border-radius:1.5rem; padding:2rem}

/* Membership */
.included{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem}

/* Opening hours */
.hours{background:var(--primary); color:#fff; text-align:center}
.hours .section-head{color:#fff; margin-inline:auto; max-width:620px}
.hours .section-head p{color:rgba(255,255,255,.85)}
.hours-list{list-style:none; margin:0; padding:0; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
.hours-card{background:#fff; color:var(--ink); border-radius:var(--radius-xl); padding:1.4rem 1rem; box-shadow:var(--shadow); display:flex; flex-direction:column; justify-content:center; align-items:center; gap:.35rem; min-height:140px}
.hours-day{text-transform:uppercase; letter-spacing:.14em; font-weight:700; font-size:.9rem; color:var(--primary)}
.hours-time{font-weight:700; font-size:1rem}
.hours-card.is-closed{background:transparent; border:1px solid rgba(255,255,255,.5); color:#fff; box-shadow:none}
.hours-card.is-closed .hours-day,
.hours-card.is-closed .hours-time{color:#fff}
.hours-note{margin-top:2rem; font-size:.95rem; color:rgba(255,255,255,.85)}

/* Contact */
form label{display:block; font-weight:600; font-size:.95rem}
input, textarea{width:100%; margin-top:.35rem; border:1px solid var(--line); border-radius:1rem; padding:.8rem 1rem; font:inherit}
input:focus, textarea:focus{outline:2px solid #2A389022}
address{font-style:normal}

/* Footer */
footer{border-top:1px solid var(--line); background:#f8fafc}
.foot-top{display:grid; gap:1.25rem}
.foot-col a{color:inherit; text-decoration:none}
.foot-col a:hover{text-decoration:underline}
a[href*="daccaa.com"]{color:var(--primary); font-weight:700; text-decoration:none;}
a[href*="daccaa.com"]:visited{color:var(--primary)}

.reviews-wrap{display:grid; gap:1rem; margin-top:1.25rem}
.review-summary-card{border:1px solid var(--line); border-radius:var(--radius-2xl); padding:1.25rem; background:#fff; display:grid; gap:.65rem; box-shadow:var(--shadow)}
.review-summary-card .summary-top{display:flex; gap:1rem; align-items:center; flex-wrap:wrap}
.review-summary-card .big-rating{display:flex; align-items:baseline; gap:.4rem; font-weight:700; color:var(--primary)}
.review-summary-card .star-row{color:var(--accent); display:flex; gap:.15rem; font-size:1.1rem}
.review-summary-card .overview{color:var(--ink-600); font-size:.95rem}
.review-carousel{position:relative; overflow:visible; border:1px solid var(--line); border-radius:var(--radius-2xl); background:#fff; box-shadow:var(--shadow)}
.review-viewport{overflow:hidden; border-radius:inherit}
.review-track{display:flex; transition:transform .4s ease; will-change:transform; width:100%}
.review-slide{padding:1.25rem; box-sizing:border-box; flex:0 0 100%; max-width:100%}
.review-card{display:grid; gap:.75rem; height:100%}
.review-card.summary{background:#f8fafc; border-radius:var(--radius-xl); border:1px solid var(--line); padding:1.25rem}
.review-card.cta{display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:.5rem}
.review-meta{display:flex; gap:.75rem; align-items:center}
.review-photo{width:48px; height:48px; border-radius:999px; object-fit:cover; background:var(--muted)}
.review-author{font-weight:700; margin:0}
.review-when{color:var(--ink-500); font-size:.9rem; margin:0}
.review-stars{color:var(--accent); font-size:1rem}
.review-text{color:var(--ink-600); font-size:.95rem; line-height:1.5; margin:0}
.review-link{font-weight:700; color:var(--primary); text-decoration:none}
.review-link:hover{text-decoration:underline}
.google-btn{background:#4285F4; color:#fff; border:none; border-radius:.6rem; padding:.5rem .9rem; font-weight:700; font-size:.95rem; display:inline-flex; align-items:center; gap:.4rem; text-decoration:none; box-shadow:0 8px 16px rgba(0,0,0,.12)}
.google-btn:hover{background:#336fda}
.review-nav{display:flex; justify-content:space-between; position:absolute; inset:0; pointer-events:none; overflow:visible}
.review-nav button{pointer-events:auto; width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:#fff; display:grid; place-items:center; box-shadow:0 10px 20px rgba(0,0,0,.08); cursor:pointer}
.review-nav button:hover{background:#f8fafc}
.review-nav .prev{position:absolute; left:-48px; top:50%; transform:translateY(-50%)}
.review-nav .next{position:absolute; right:-48px; top:50%; transform:translateY(-50%)}
.review-dots{display:flex; gap:.4rem; justify-content:center; padding:0 0 1rem; margin:0; list-style:none}
.review-dots button{width:8px; height:8px; border-radius:999px; border:none; background:var(--line); cursor:pointer}
.review-dots button[aria-current="true"]{background:var(--primary)}

@media (max-width: 640px){
  .review-nav .prev{left:8px}
  .review-nav .next{right:8px}
}

.contact-card{display:grid; gap:1rem}
.contact-map{border-radius:var(--radius-xl); overflow:hidden; border:1px solid var(--line)}
.contact-map iframe{display:block}
.contact-list{display:grid; gap:.65rem; padding:.25rem 0}
.contact-item{display:flex; gap:.6rem; align-items:center; padding:.55rem .75rem; border:1px solid var(--line); border-radius:var(--radius-lg); background:#f8fafc}
.contact-icon{width:36px; height:36px; border-radius:50%; background:#e0e7ff; display:grid; place-items:center; color:var(--primary)}
.contact-icon svg,
.contact-icon i{width:18px; height:18px; font-size:18px; line-height:1; display:inline-block}
.contact-label{margin:0; font-weight:700; color:var(--ink)}
.contact-item a{color:var(--primary); font-weight:700; text-decoration:none}
.contact-item a:hover{text-decoration:underline}
.contact-item address{margin:.1rem 0 0; font-style:normal; color:var(--ink-600); line-height:1.4}
.hours-card-modern{display:grid; gap:1rem; background:#f8fafc}
.hours-header p{margin:.2rem 0}
.hours-grid.compact{display:grid; gap:.6rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.hours-chip{border:1px solid var(--line); border-radius:.9rem; padding:.75rem; display:flex; flex-direction:column; align-items:flex-start; background:#fff}
.hours-chip .hours-day{font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--primary); font-size:.9rem}
.hours-chip .hours-time{font-weight:600; color:var(--ink); margin-top:.2rem}
.hours-chip.is-closed{background:#fff7ed; border-color:#fed7aa}
.hours-chip.is-closed .hours-day{color:#c2410c}
.hours-alert{border:1px solid #fecdd3; background:#fff1f2; border-radius:var(--radius-lg); padding:1rem}

/* Responsive */
@media (min-width: 768px){
  .menu{display:flex}
  .cta{display:flex}
  .hamburger{display:none}
  .hero .wrap{grid-template-columns:1.05fr .95fr}
  .grid-md-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid-md-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-top{grid-template-columns:2fr 1fr 1fr 1fr}
  .treatment-panel{grid-template-columns:1.1fr .9fr}
  .treatment-grid-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width: 960px){
  .treatment-hero-meta{grid-template-columns:repeat(3,minmax(0,1fr))}
}
