html, body { overflow-x: hidden; }

.hero-image { background-image: url('hero-dental-interior.png'); background-position: center; }
.brand-logo { width:130px; height:49px; overflow:hidden; border-radius:4px; background:#292929; }
.brand-logo img { width:100%; height:100%; object-fit:cover; object-position:center 44%; }
.page-loader { grid-template-columns:1fr; justify-items:center; }
.loader-logo { width:130px; height:112px; object-fit:cover; object-position:center 44%; border-radius:50%; box-shadow:0 0 0 1px rgba(220,110,86,.45); animation:logoPulse 1.6s ease-in-out infinite; }
.page-loader > span { color:rgba(255,255,255,.72); font-size:9px; font-weight:700; letter-spacing:.2em; }
.hero-orbit { width:126px; height:126px; bottom:32px; border:0; background:rgba(10,40,42,.65); }
.hero-orbit:before,.hero-orbit i { content:""; position:absolute; border-radius:50%; pointer-events:none; }
.hero-orbit:before { inset:-8px; border:2px dashed rgba(220,110,86,.8); animation:orbitSpin 12s linear infinite; }
.hero-orbit i { inset:8px; border:1px solid rgba(255,255,255,.36); }
.hero-orbit img { width:74px; height:74px; object-fit:cover; object-position:center 44%; border-radius:50%; position:relative; z-index:1; }
.hero-orbit span { position:absolute; z-index:2; right:18px; bottom:8px; font-size:20px; color:#e9c8aa; animation:arrowBob 1.7s ease-in-out infinite; }
@keyframes logoPulse { 50% { transform:scale(1.04); box-shadow:0 0 0 12px rgba(220,110,86,.07); } }
@keyframes orbitSpin { to { transform:rotate(360deg); } }
@keyframes arrowBob { 50% { transform:translateY(7px); } }
.site-footer { display:block; padding:64px 8vw 22px; }
.footer-main { display:grid; grid-template-columns:1.4fr .8fr 1.15fr .8fr; gap:30px; padding-bottom:52px; }
.footer-tagline { margin:18px 0 0; color:rgba(255,255,255,.65); font-size:12px; }
.footer-column { display:grid; align-content:start; gap:8px; font-size:12px; }
.footer-column > span { margin-bottom:8px; color:#e9c8aa; font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.footer-column a { color:#fff; text-decoration:none; }
.footer-column a:hover { color:#e9c8aa; }
.footer-cta { padding-left:25px; border-left:1px solid rgba(255,255,255,.2); }
.footer-cta p { margin:0 0 18px; font:500 22px/1.18 'Playfair Display',serif; }
.button-footer { background:#dc6e56; color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:20px; border-top:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.56); font-size:10px; }
.footer-bottom a { color:#fff; text-decoration:none; }
.clinic-gallery { background:#f0ebe2; display:grid; grid-template-columns:.65fr 1.35fr; gap:55px; align-items:start; }
.gallery-heading h2 { font-size:clamp(45px,5vw,72px); }
.gallery-heading > p:last-child { max-width:240px; font-size:12px; }
.clinic-gallery-grid { display:grid; grid-template-columns:1.15fr .85fr; grid-template-rows:270px 340px; gap:12px; }
.gallery-shot { margin:0; position:relative; overflow:hidden; background:#173f44; }
.gallery-shot img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.gallery-shot:hover img { transform:scale(1.05); }
.gallery-shot figcaption { position:absolute; left:15px; bottom:13px; color:#fff; font-size:10px; letter-spacing:.05em; text-shadow:0 1px 8px #000; }
.shot-sign { grid-row:span 2; }.shot-lobby img { object-position:center; }.shot-room img { object-position:center 42%; }.shot-brand img { object-position:center; }

@media (max-width: 440px) {
  .review-window { margin-right: -6vw; }
}

@media (max-width: 800px) {
  .site-footer { padding:45px 7vw 20px; }
  .footer-main { grid-template-columns:1fr 1fr; gap:36px 22px; padding-bottom:36px; }
  .footer-cta { padding:0; border:0; }
  .footer-bottom { flex-direction:column; gap:8px; }
  .clinic-gallery { grid-template-columns:1fr; gap:25px; }
  .clinic-gallery-grid { grid-template-rows:240px 290px; }
  .hero-orbit { display:none; }
}

@media (max-width: 440px) {
  .footer-main { grid-template-columns:1fr; gap:28px; }
}
