/* Dr. Brett H. Loeser — clean professional medical design: white background, black text. */
:root{ --ink:#000000; --ink-soft:#444444; --muted:#666666;
  --bg:#ffffff; --soft:#f7f7f7; --soft2:#fafafa; --line:#d9d9d9; --line-dark:#000000; }
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink); background:var(--bg); font-size:18px; line-height:1.6; }
img{ max-width:100%; }
a{ color:var(--ink); text-decoration:underline; }
a:hover{ color:var(--ink-soft); }
.wrap{ max-width:1080px; margin:0 auto; padding:0 20px; }
h1{ font-size:34px; line-height:1.2; color:var(--ink); margin:0 0 16px; font-weight:700; }
h2{ font-size:26px; line-height:1.3; color:var(--ink); margin:34px 0 10px; font-weight:700; }
h3{ font-size:21px; color:var(--ink); margin:0 0 8px; font-weight:700; }
p{ margin:0 0 16px; }
/* header */
.site-header{ position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--line); }
.head-in{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding:12px 20px; }
.wordmark{ text-decoration:none; color:var(--ink); line-height:1.15; }
.wordmark .wm-name{ display:block; font-family:Georgia,"Times New Roman",serif; font-size:26px; font-weight:700; color:var(--ink); }
.wordmark .wm-cred{ font-family:Georgia,serif; font-size:16px; color:var(--ink); margin-left:6px; }
.wordmark .wm-tag{ display:block; font-size:13px; letter-spacing:1.5px; text-transform:uppercase; color:var(--muted); }
.head-actions{ margin-left:auto; display:flex; align-items:center; gap:8px; }
.call-btn{ display:inline-block; background:#000; color:#fff !important; text-decoration:none;
  font-weight:700; border-radius:999px; padding:10px 18px; font-size:15px; white-space:nowrap; }
.call-btn:hover{ background:#333; }
.lang-btn{ background:#fff; border:2px solid #000; color:#000; border-radius:999px;
  padding:8px 14px; font-size:15px; font-weight:700; cursor:pointer; white-space:nowrap; }
.nav-toggle{ display:none; background:#000; color:#fff; border:0; border-radius:8px; padding:9px 14px; font-size:15px; font-weight:700; cursor:pointer; }
.main-nav{ width:100%; display:flex; flex-wrap:wrap; gap:2px; padding:0 0 8px; }
.main-nav a{ text-decoration:none; color:var(--ink); font-weight:600; font-size:15.5px; padding:7px 11px; border-radius:8px; }
.main-nav a:hover{ background:var(--soft); color:var(--ink); }
.main-nav a.active{ background:#000; color:#fff; }
/* hero — clean white, no dark background */
.hero{ position:relative; background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; margin:8px 0 26px; }
.hero .slides{ position:relative; }
.hero .slide{ display:none; }
.hero .slide.on{ display:block; }
.hero .slide img{ width:100%; height:430px; object-fit:contain; background:#fff; display:block; }
.hero .cap{ text-align:center; font-family:Georgia,serif; font-size:22px; color:var(--ink); padding:14px 16px 18px; background:#fff; }
.hero .arrow{ position:absolute; top:38%; background:#000; color:#fff; border:0; border-radius:50%;
  width:46px; height:46px; font-size:24px; cursor:pointer; z-index:5; }
.hero .arrow.prev{ left:12px; } .hero .arrow.next{ right:12px; }
.hero .dots{ text-align:center; padding:10px 0 14px; background:#fff; }
.hero .dot{ display:inline-block; width:12px; height:12px; border-radius:50%; background:#ccc; margin:0 5px; border:0; cursor:pointer; padding:0; }
.hero .dot.on{ background:#000; }
/* layout */
main{ padding:26px 0 60px; }
.lede{ font-size:20px; color:var(--ink-soft); }
.callout{ background:var(--soft); border-left:6px solid #000; border-radius:12px; padding:20px 22px; margin:26px 0; }
.callout h2{ margin-top:0; }
.panels{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:26px 0; }
.panel{ background:var(--soft2); border:1px solid var(--line); border-radius:14px; padding:22px; }
.panel h2{ margin-top:0; }
.hours-list{ list-style:none; margin:0 0 8px; padding:0; }
.hours-list li{ padding:7px 0; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:12px; }
.hours-list li:last-child{ border-bottom:0; }
.btn{ display:inline-block; background:#000; color:#fff !important; text-decoration:none; font-weight:700;
  border-radius:999px; padding:12px 22px; font-size:17px; border:0; cursor:pointer; }
.btn:hover{ background:#333; }
.btn-ghost{ background:#fff; color:#000 !important; border:2px solid #000; }
.ai-note{ background:#fff; border:1px solid #000; border-radius:12px; padding:18px 22px; margin:26px 0; }
.ai-note h2{ margin-top:0; color:var(--ink); }
/* figures */
figure{ margin:0 0 20px; }
figure img{ width:100%; object-fit:contain; background:var(--soft2); border-radius:12px; display:block; }
figcaption{ text-align:center; color:var(--ink-soft); font-size:16px; margin-top:8px; }
.float-right{ float:right; width:300px; margin:0 0 18px 24px; }
.float-right img{ height:400px; }
/* grids */
.grid3{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.grid2{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.card{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:20px; }
.card h3{ margin-top:0; }
.case-card{ border:1px solid var(--line); border-radius:14px; padding:16px; background:#fff; }
.case-card h3{ font-size:19px; margin:0 0 12px; text-align:center; }
.pair{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pair figure, .steps figure{ margin:0; }
.pair img, .steps img{ width:100%; height:230px; object-fit:contain; background:var(--soft2); border-radius:10px; cursor:zoom-in; }
.steps{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.steps img{ height:200px; }
.steps .full{ grid-column:1 / -1; }
.steps .full img{ height:260px; }
.case-cap{ text-align:center; color:var(--ink-soft); font-size:16px; margin-top:12px; }
.tour-grid figure img{ height:230px; cursor:zoom-in; }
/* testimonials */
.ratings-strip{ display:flex; flex-wrap:wrap; gap:16px; margin:20px 0 28px; }
.rating{ flex:1; min-width:220px; background:var(--soft); border-radius:12px; padding:16px 20px; text-align:center; }
.rating .stars{ font-size:26px; color:#000; }
.rating .num{ font-size:22px; font-weight:800; color:var(--ink); }
blockquote{ margin:0 0 20px; background:var(--soft2); border-left:5px solid #000; border-radius:0 12px 12px 0; padding:18px 22px; }
blockquote p{ font-style:italic; margin:0 0 10px; }
blockquote footer{ font-weight:700; color:var(--ink); font-style:normal; }
blockquote .src{ font-size:14px; color:var(--ink-soft); font-weight:400; }
/* forms */
.form-card{ border:1px solid var(--line); border-radius:14px; padding:20px; background:#fff; }
.form-card h3{ margin-top:0; }
label{ display:block; font-weight:700; margin:14px 0 6px; }
input[type=text],input[type=email],input[type=tel],textarea{ width:100%; font-size:18px; padding:12px 14px;
  border:2px solid #999; border-radius:10px; font-family:inherit; }
input:focus,textarea:focus{ outline:3px solid #000; border-color:#000; }
textarea{ min-height:130px; resize:vertical; }
.hp{ position:absolute; left:-9999px; }
.form-msg{ display:none; border-radius:10px; padding:14px 16px; margin:16px 0; font-size:17px; }
.form-msg.ok{ display:block; background:#e6f4ea; color:#145214; border:1px solid #9fd6a8; }
.form-msg.err{ display:block; background:#fdecea; color:#7a1a14; border:1px solid #f2b0aa; }
/* video */
.video-wrap{ position:relative; width:100%; padding-top:56.25%; border-radius:14px; overflow:hidden; background:#000; }
.video-wrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
/* map */
.map-wrap{ border-radius:14px; overflow:hidden; border:1px solid var(--line); }
.map-wrap iframe{ width:100%; height:380px; border:0; display:block; }
/* lightbox — photo viewer overlay only, not page design */
#lightbox{ position:fixed; inset:0; z-index:300; background:rgba(0,0,0,.92); display:none;
  align-items:center; justify-content:center; flex-direction:column; padding:20px; }
#lightbox.open{ display:flex; }
#lightbox img{ max-width:94vw; max-height:78vh; object-fit:contain; border-radius:10px; background:#fff; }
#lightbox .lb-cap{ color:#fff; margin-top:12px; font-size:17px; text-align:center; }
#lightbox .lb-close{ position:absolute; top:16px; right:20px; background:none; border:0; color:#fff; font-size:40px; cursor:pointer; }
#lightbox .lb-arrow{ position:absolute; top:45%; background:rgba(255,255,255,.2); color:#fff; border:0; border-radius:50%; width:48px; height:48px; font-size:24px; cursor:pointer; }
#lightbox .lb-prev{ left:14px; } #lightbox .lb-next{ right:14px; }
/* footer — clean white, black text, thin top rule */
.site-footer{ background:#fff; color:#000; padding:36px 0 26px; border-top:1px solid #000; }
.site-footer .cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.site-footer h3{ color:#000; margin:0 0 10px; font-size:19px; }
.site-footer a{ color:#000; }
.site-footer ul{ list-style:none; margin:0; padding:0; }
.site-footer li{ padding:4px 0; }
.site-footer .credit{ text-align:center; margin-top:30px; padding-top:18px; border-top:1px solid var(--line); font-size:15px; }
.site-footer .credit a{ color:#000; font-weight:700; }
.fb-link img{ width:28px; height:28px; vertical-align:middle; }
@media (max-width:760px){
  body{ font-size:17px; }
  h1{ font-size:28px; } h2{ font-size:23px; }
  .wordmark .wm-name{ font-size:21px; }
  .head-in{ padding:10px 14px; }
  .call-btn{ padding:7px 11px; font-size:11px; white-space:nowrap; }
  .lang-btn{ padding:7px 10px; font-size:12px; }
  .nav-toggle{ display:inline-block; }
  .main-nav{ display:none; flex-direction:column; }
  .main-nav.open{ display:flex; }
  .main-nav a{ padding:10px 12px; border-bottom:1px solid var(--line); }
  .hero .slide img{ height:250px; }
  .hero .cap{ font-size:18px; }
  .panels,.grid3,.grid2{ grid-template-columns:1fr; }
  .site-footer .cols{ grid-template-columns:1fr; }
  .float-right{ float:none; width:100%; margin:0 0 18px; }
  .float-right img{ height:auto; max-height:420px; }
  .pair img{ height:170px; }
  .tour-grid figure img{ height:200px; }
}
