@font-face{font-family:'Crimson Text';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/crimson-text-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Crimson Text';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/crimson-text-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Crimson Text';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/crimson-text-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Crimson Text';font-style:italic;font-weight:400;font-display:swap;src:url('../assets/fonts/crimson-text-latin-400-italic.woff2') format('woff2')}
@font-face{font-family:'Mr De Haviland';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/mr-de-haviland-latin-400-normal.woff2') format('woff2')}
/* ===== The JM Dental: faithful clone ===== */
:root{
  --dark:#161616;
  --red:#d22f25;
  --red-dark:#b8261d;
  --white:#fff;
  --serif:'Crimson Text',Georgia,'Times New Roman',serif;
  --script:'Mr De Haviland',cursive;
  --container:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--serif);font-size:18px;line-height:1.55;color:#222;background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

.container{max-width:var(--container);margin:0 auto;padding:0 20px;width:100%}

/* ---------- Accessibility & polish ---------- */
:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:3px solid var(--red);outline-offset:2px;border-radius:2px}
.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:var(--dark);color:#fff;padding:10px 16px;border-radius:4px;font-family:var(--serif);font-weight:600;transition:top .2s ease}
.skip-link:focus{top:12px}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;background:var(--red);color:#fff;
  font-family:var(--serif);font-size:14px;font-weight:600;
  text-transform:uppercase;letter-spacing:1px;
  padding:13px 32px;border:none;cursor:pointer;line-height:1;
  transition:background .2s ease;
}
.btn:hover{background:var(--red-dark)}

/* ---------- Headings ---------- */
.script{font-family:var(--script);font-weight:400;color:#fff;letter-spacing:1px;line-height:1.05}
/* Mr De Haviland has a single 400 cut: without this, bold headings force the
   browser to synthesize a thicker fake bold. 400 is the original's true look. */
.welcome-sm,.welcome-lg,.social h2,.reviews h2,.page-banner h1,.home-faq h2,.svc-faq h2{font-weight:400}

/* ---------- Header / Nav ---------- */
.site-header{background:#fff;border-bottom:1px solid #eee;position:sticky;top:0;z-index:50;transition:box-shadow .25s ease}
.site-header.scrolled{box-shadow:0 4px 20px rgba(0,0,0,.08)}
.site-header .container{display:flex;align-items:center;justify-content:space-between;min-height:84px}
.brand img{height:58px;width:auto}
.main-nav>ul{list-style:none;display:flex;align-items:center;gap:26px}
.main-nav a,.main-nav .more-btn{
  font-family:var(--serif);font-size:16px;font-weight:400;color:#1b1b1b;
  text-transform:uppercase;letter-spacing:normal;background:none;border:none;cursor:pointer;
  display:inline-flex;align-items:center;gap:4px;padding-bottom:2px;
}
.main-nav a:hover,.main-nav .more-btn:hover{color:#8a1b15}
/* Current page: brand red, semibold. Same treatment as the original. */
.main-nav a[aria-current="page"]{color:var(--red);font-weight:600}
.main-nav li{position:relative}
.more-btn .caret{display:inline-block;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #1b1b1b;margin-top:2px}
.dropdown{
  position:absolute;top:100%;right:0;background:#fff;min-width:210px;
  box-shadow:0 8px 24px rgba(0,0,0,.15);border:1px solid #eee;
  list-style:none;display:none;padding:6px 0;z-index:60;
}
.has-dropdown:hover .dropdown,.has-dropdown.open .dropdown{display:block}
.dropdown li{display:block}
.dropdown a{display:block;padding:10px 18px;font-size:16px}
.dropdown a:hover{background:#f6f6f6}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:8px}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--red)}

/* ---------- Hero ---------- */
.hero{
  position:relative;min-height:675px;display:flex;align-items:center;background-color:#161616;
  background-image:linear-gradient(rgba(0,0,0,.3),rgba(0,0,0,.3)),url('../assets/img/hero.webp');
  background-size:cover;background-position:70% 12%;color:#fff;
}
.hero-phone{position:absolute;top:24px;left:0;right:0}
.hero-phone .container{display:flex;justify-content:flex-end}
.hero-phone a{font-size:22px;color:#fff}
.hero-content{padding-top:40px}
.hero-content h1{display:flex;flex-direction:column;line-height:1}
.hero-content .welcome-sm{font-family:var(--script);font-size:42px;color:#fff;letter-spacing:1px}
.hero-content .welcome-lg{font-family:var(--script);font-size:78px;color:#fff;letter-spacing:1px;margin-top:-6px}
.credentials{margin-top:16px;font-size:15px;line-height:1.5;color:#f0f0f0;text-shadow:0 1px 3px rgba(0,0,0,.55);max-width:46ch}
.credentials .cred-name{font-size:23px;font-weight:400;letter-spacing:.015em;color:#fff;margin-bottom:6px}
.credentials p{margin:1px 0}
/* Hero photo: full-bleed background on mobile (good as-is); contained two-column on desktop */
.hero-figure{display:none}
@media(min-width:880px){
  .hero{min-height:600px;background-color:#141414;background-image:radial-gradient(820px 520px at 84% 6%, rgba(210,47,37,.16), transparent 60%)}
  .hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-block:54px}
  .hero-content{padding-top:0}
  .hero-figure{display:flex;justify-content:center;margin:0}
  .hero-figure img{width:460px;max-width:100%;height:460px;object-fit:cover;object-position:50% 62%;border-radius:0;box-shadow:0 26px 64px rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.12)}
  .hero-phone{top:18px}
}
/* Mobile: type sits high on the photo at the original's scale, not tucked at the bottom.
   min-height rather than height, so the longer credential list can grow the band. */
@media(max-width:879px){
  .hero{align-items:flex-start;min-height:500px;background-position:60% 22%}
  .hero-inner{padding-left:24px;padding-right:24px}
  .hero-content{padding-top:124px;padding-bottom:44px;padding-left:0}
  .hero-phone{top:10px}
  .hero-phone .container{justify-content:flex-start;padding:0 24px}
  .credentials{font-size:22px;line-height:33px;margin-top:10px;max-width:none}
  .credentials .cred-name{font-size:22px;margin-bottom:0}
}

/* ---------- Trust strip (consolidated credentials) ---------- */
.trust-strip{background:#fafafa;border-top:1px solid #ececec;border-bottom:1px solid #ececec;padding:18px 0}
.trust-strip .container{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 30px;text-align:center}
.trust-strip span{position:relative;font-family:'Helvetica Neue',Arial,sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#555}
.trust-strip span:not(:last-child)::after{content:'';position:absolute;right:-16px;top:50%;width:5px;height:5px;border-radius:50%;background:var(--red);transform:translateY(-50%)}
@media(max-width:760px){.trust-strip span::after{display:none}.trust-strip .container{gap:10px 18px}}

/* ---------- Cards (3 image tiles) ---------- */
.cards{background:var(--dark);padding:50px 0}
.cards .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.card{
  position:relative;min-height:372px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;color:#fff;padding:36px 28px;
  background-size:cover;background-position:center;
}
.card.passion{background-image:linear-gradient(rgba(0,0,0,.34),rgba(0,0,0,.34)),url('../assets/img/card-passion.webp')}
.card.experience{background-image:linear-gradient(rgba(0,0,0,.34),rgba(0,0,0,.34)),url('../assets/img/card-experience.webp')}
.card.technology{background-image:linear-gradient(rgba(0,0,0,.34),rgba(0,0,0,.34)),url('../assets/img/card-technology.webp')}
.card h3{font-family:var(--serif);font-size:36px;font-weight:600;color:#fff;margin-bottom:14px}
.card p{font-size:19px;color:#fff;max-width:300px;margin-bottom:22px}

/* ---------- Marketing bands (gold + red seats), matching the original ---------- */
.band{position:relative;min-height:232px;display:flex;align-items:center;background-size:cover;background-position:center;background-repeat:no-repeat}
.band-inner{display:flex;align-items:center;justify-content:center;gap:30px;flex-wrap:wrap;text-align:center}
.band-title{font-family:var(--script);font-weight:400;font-size:clamp(34px,5.6vw,60px);line-height:1.12;letter-spacing:1px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.55)}
.band-gold{background-image:url('../assets/img/banner-leading.webp')}
.band-seats{background-image:linear-gradient(rgba(0,0,0,.18),rgba(0,0,0,.18)),url('../assets/img/seats-band.webp');background-position:center bottom;min-height:320px}
@media(max-width:640px){.band{min-height:172px}.band-inner{gap:16px}}

/* ---------- Social ---------- */
.social{background:var(--dark);text-align:center;padding:46px 0}
.social h2{font-family:var(--script);font-size:60px;color:#fff;letter-spacing:1px;margin-bottom:24px}
.social-icons{display:flex;justify-content:center;gap:18px}
.social-icons a{
  width:46px;height:46px;border-radius:50%;background:#2b2b2b;color:#fff;
  display:flex;align-items:center;justify-content:center;transition:background .2s;
}
.social-icons a:hover{background:var(--red)}
.social-icons svg{width:22px;height:22px;fill:#fff}

/* ---------- Reviews (Google, auto-scrolling) ---------- */
.reviews{background:#fafafa;text-align:center;padding:64px 0;overflow:hidden}
.reviews h2{font-family:var(--script);font-size:60px;color:var(--red);letter-spacing:1px;margin-bottom:10px}
.rev-summary{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;color:#555;font-size:18px}
.rev-summary .stars{color:#f5a623;font-size:22px;letter-spacing:2px}
.rev-summary strong{color:#1a1a1a}
.rev-summary .gmark{width:20px;height:20px;display:inline-block;vertical-align:middle}
.marquee{position:relative;margin-top:38px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.marquee:focus-visible{outline:3px solid var(--red);outline-offset:6px}
.marquee__track{display:flex;width:max-content;animation:marquee 64s linear infinite}
.marquee:hover .marquee__track,.marquee:focus-within .marquee__track{animation-play-state:paused}
.marquee__group{display:flex;gap:22px;padding:8px 11px;margin:0;list-style:none}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.rev-card{flex:0 0 360px;width:360px;text-align:left;background:#fff;border:1px solid #ececec;border-radius:12px;padding:26px;box-shadow:0 8px 26px rgba(0,0,0,.05)}
.rev-card .rc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.rev-card .rc-stars{color:#f5a623;font-size:16px;letter-spacing:1px}
.rev-card .rc-g{width:22px;height:22px}
.rev-card blockquote{margin:0;font-size:16.5px;line-height:1.6;color:#3a3a3a}
.rev-card .rc-author{margin-top:18px;display:flex;align-items:center;gap:11px}
.rev-card .rc-avatar{width:40px;height:40px;border-radius:50%;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;flex:none}
.rev-card .rc-name{font-weight:600;color:#1a1a1a;font-size:15px;line-height:1.2}
.rev-card .rc-via{font-size:12px;color:#8a8a8a}
.rev-cta{margin-top:40px}
.rev-cta .btn{background:#fff;color:var(--red);border:1.5px solid var(--red)}
.rev-cta .btn:hover{background:var(--red);color:#fff}
@media(prefers-reduced-motion:reduce){
  .marquee{overflow-x:auto}
  .marquee__track{animation:none}
  .marquee__group[aria-hidden]{display:none}
}

/* ---------- Contact ---------- */
.contact{background:#fff;padding:50px 0}
.contact .row{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.contact h4{font-family:var(--serif);font-size:24px;font-weight:600;color:#222;margin-bottom:10px}
.contact .block{margin-bottom:30px}
.contact p{font-size:18px;color:#333;margin-bottom:6px}
.contact a{color:var(--red)}
.hours-table{width:100%;max-width:340px;border-collapse:collapse}
.hours-table td{padding:6px 0;font-size:18px;color:#333}
.hours-table .day{color:#666}
.hours-row-toggle{cursor:pointer;display:flex;align-items:center;justify-content:space-between;max-width:340px;font-size:18px;border-bottom:1px solid #eee;padding:8px 0}
.hours-row-toggle .caret{border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #888;transition:transform .2s}
.hours-row-toggle.open .caret{transform:rotate(180deg)}
.hours-full{display:none;margin-top:6px}
.hours-full.open{display:block}

/* form */
.contact form{display:flex;flex-direction:column;gap:14px;max-width:520px}
.contact input,.contact textarea{
  font-family:var(--serif);font-size:16px;padding:12px 14px;border:1px solid #ccc;background:#fff;width:100%;
}
.contact textarea{min-height:120px;resize:vertical}
.form-note{font-size:12.5px;color:#999;line-height:1.45}
.form-actions{display:flex;align-items:center;gap:14px}
.form-actions .cancel{color:#777;cursor:pointer;font-size:15px;background:none;border:none;font-family:var(--serif)}
.form-actions .cancel:hover{color:#444}
.form-msg{display:none;color:#1a7f37;font-weight:600;margin-top:8px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* map */
.map-wrap{position:relative;min-height:520px;height:100%}
.map-wrap iframe{width:100%;height:100%;min-height:520px;border:0;display:block}
.get-directions{
  position:absolute;left:14px;top:14px;background:#fff;color:#1a73e8;font-size:14px;font-weight:600;
  padding:10px 16px;box-shadow:0 2px 8px rgba(0,0,0,.25);display:inline-flex;gap:8px;align-items:center;
}

/* ---------- Serving / Welcome (red) ---------- */
.serving{background:var(--red);color:#fff;padding:42px 0;text-align:center}
.serving h4{font-family:var(--serif);font-size:26px;font-weight:600;color:#fff;margin-bottom:14px}
.serving p{font-size:19px;color:#fff;max-width:1000px;margin:0 auto}
.serving a{color:#fff;text-decoration:underline}

/* ---------- Footer ---------- */
.site-footer{background:var(--dark);color:#bdbdbd;padding:58px 0 0;font-size:15px}
.footer-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr 1.5fr;gap:42px}
.f-logo{height:54px;width:auto;background:#fff;border-radius:50%;padding:3px}
.f-name{font-family:var(--serif);font-size:23px;font-weight:700;color:#fff;margin:14px 0 8px}
.f-tag{color:#a9a9a9;line-height:1.65;max-width:34ch;font-size:14.5px}
.f-social{display:flex;gap:11px;margin-top:20px}
.f-social a{width:38px;height:38px;border-radius:50%;background:#2b2b2b;color:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s}
.f-social a:hover{background:var(--red)}
.f-social svg{width:18px;height:18px;fill:#fff}
.f-h{font-family:'Helvetica Neue',Arial,sans-serif;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin-bottom:16px;font-weight:700}
.f-col ul{list-style:none}
.f-col li{margin-bottom:11px;line-height:1.4}
.f-col a{color:#bdbdbd;transition:color .18s ease}
.f-col a:hover{color:#fff}
.f-contact li{color:#bdbdbd}
.f-contact a{color:#bdbdbd}
.f-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.f-badges span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:5px 11px}
.f-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:48px;padding:20px 0;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:#8f8f8f}
.f-bottom p{margin:0}
@media(max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}.f-col--brand{grid-column:1/-1}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}.f-bottom{flex-direction:column;text-align:center;justify-content:center}}

/* ---------- Subpage content ---------- */
.page-banner{
  position:relative;min-height:300px;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background-color:#161616;
  background-image:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45)),url('../assets/img/banner-leading.webp');
  background-size:cover;background-position:center;
}
.page-banner h1{font-family:var(--script);font-size:72px;color:#fff;letter-spacing:1px;padding:0 20px}
/* Subpage split header: photo beside the title (photos imported from the original site) */
.page-hero{background-color:#141414;background-image:radial-gradient(820px 520px at 85% 8%, rgba(210,47,37,.16), transparent 60%);color:#fff}
.page-hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(2rem,5vw,4.5rem);align-items:center;padding-block:clamp(2.6rem,5vw,4rem);min-height:300px}
.page-hero-text h1{font-family:var(--script);font-size:clamp(44px,6vw,64px);color:#fff;letter-spacing:1px;line-height:1;font-weight:400}
.page-hero-intro{margin-top:16px;font-size:18px;font-weight:400;color:#dcdcdc;line-height:1.6;max-width:44ch}
.page-hero-img{margin:0;display:flex;justify-content:flex-end}
.page-hero-img img{max-width:290px;max-height:300px;width:auto;height:auto}
@media(max-width:860px){
  .page-hero-grid{grid-template-columns:1fr;text-align:center}
  .page-hero-img{order:-1}
  .page-hero-img img{max-height:300px}
  .page-hero-intro{margin-inline:auto}
}
.page-content{padding:54px 0}
.page-content .container{max-width:980px}
.page-content h2{font-family:var(--serif);font-size:30px;font-weight:700;color:var(--red);margin:34px 0 12px}
.page-content h3{font-family:var(--serif);font-size:24px;font-weight:700;color:#222;margin:26px 0 10px}
.page-content h4{font-family:var(--serif);font-size:23px;font-weight:700;color:var(--red);margin:30px 0 10px}
.page-content h5{font-family:var(--serif);font-size:20px;font-weight:700;color:#222;margin:20px 0 8px}
.page-content p{font-size:19px;color:#333;margin-bottom:16px;line-height:1.6}
.page-content ul{margin:0 0 18px 26px}
.page-content li{font-size:19px;color:#333;margin-bottom:8px;line-height:1.55}
.page-content a{color:var(--red);text-decoration:underline}
.hub-head{font-family:var(--serif);font-size:30px;font-weight:700;color:var(--red);margin:0 0 22px}
.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 44px}
.hub-card{display:block;border:1px solid #ececec;border-radius:12px;padding:22px;text-decoration:none;color:#1a1a1a;background:#fff;transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}
.hub-card:hover{box-shadow:0 10px 28px rgba(0,0,0,.08);border-color:var(--red);transform:translateY(-3px)}
.hub-card h3{font-family:var(--serif);font-size:21px;font-weight:700;color:#1a1a1a;margin-bottom:6px}
.hub-card p{font-size:15px;color:#666;margin:0;line-height:1.5}
.hub-card .more{display:inline-block;margin-top:13px;color:var(--red);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:820px){.hub-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.hub-grid{grid-template-columns:1fr}}
.services-layout{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:start}
.services-layout img{width:100%;border:1px solid #eee}
.services-layout ul{columns:1}

/* ---------- Legal / policy pages ---------- */
.page-content.legal .container{max-width:800px}
.legal-notice{background:#fff7e6;border:1px solid #f0d8a0;border-left:4px solid #d9a441;border-radius:8px;padding:15px 18px;margin:0 0 28px;font-size:15px;color:#6b5320;line-height:1.55}
.legal-notice strong{color:#5a4413}
.page-content .updated{font-size:15px;color:#888;margin:-6px 0 26px}
.page-content.legal h2{font-size:25px}
.page-content.legal p,.page-content.legal li{font-size:17px;line-height:1.65}
.page-content.legal address{font-style:normal;color:#333;line-height:1.6}
.f-legal{display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center}
.f-legal a{color:#bdbdbd;font-size:13px}
.f-legal a:hover{color:#fff}
/* Footer credit link, carried over from the original site */
.f-top100{text-align:center;padding:0 0 26px}
.f-top100 a{font-family:var(--serif);font-size:16px;color:#eb3e34}
.f-top100 a:hover{color:#fff}

/* ---------- Service pages (unified with the subpage design) ---------- */
.page-content .svc-intro{font-size:21px;line-height:1.6;color:#333;margin-bottom:24px}
.page-content .svc-intro strong{color:#1a1a1a}
.svc-fig{margin:6px 0 28px}
.svc-fig img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;border:1px solid #eee}
.page-content ol{margin:0 0 18px 26px}
.page-content ol li{font-size:19px;color:#333;margin-bottom:8px;line-height:1.55}
.page-content table{width:100%;border-collapse:collapse;margin:10px 0 22px;font-size:17px}
.page-content th,.page-content td{text-align:left;padding:12px 14px;border-bottom:1px solid #eee}
.page-content thead th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--red)}
.page-content tbody td:first-child{color:#666}
.page-content .treated-by{margin-top:30px;padding-top:18px;border-top:1px solid #eee;font-size:16px;color:#666}
.page-content .related-inline{margin-top:14px;font-size:17px;color:#555}
/* FAQ: sits inside page-content, styled to match */
.faq{margin-top:8px}
.faq-item{border-bottom:1px solid #e6e6e6}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 2px;cursor:pointer;list-style:none;font-family:var(--serif);font-size:22px;font-weight:700;color:#222}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'';flex:none;width:10px;height:10px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(45deg);transition:transform .2s}
.faq-item[open] summary::after{transform:rotate(-135deg)}
.faq-item .faq-a{padding:0 2px 20px;font-size:18px;color:#444;line-height:1.6}
.faq-item summary:hover{color:var(--red)}

/* Collapsed sections: folded away for readability, not hidden. The markup
   stays in the page so crawlers index it at full weight and any visitor can
   open it. Never swap this for display:none, that is cloaking. */
.collapse-block{border-top:1px solid #ececec;margin:0 0 34px}
.collapse-block>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;cursor:pointer;list-style:none;padding:22px 2px}
.collapse-block>summary::-webkit-details-marker{display:none}
.collapse-block>summary::after{content:'';flex:none;width:11px;height:11px;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(45deg);transition:transform .2s ease}
.collapse-block[open]>summary::after{transform:rotate(-135deg)}
.collapse-block>summary h2{margin:0;text-align:left}
.collapse-block>summary:hover h2{opacity:.75}
/* Hidden from sighted visitors by explicit request. NOTE: this is not
   cloaking (identical HTML is served to everyone), but Google discounts or
   ignores text hidden this way, so the ranking value is largely forfeited.
   Delete this one rule to bring both sections back. */
.seo-only{display:none}
/* Closing CTA: full-width red band, matching the site's red sections */
.svc-end{background:var(--red);color:#fff;text-align:center;padding:50px 0}
.svc-end h2{font-family:var(--serif);font-size:32px;font-weight:700;color:#fff;margin-bottom:10px}
.svc-end p{font-size:18px;color:#ffeceb;max-width:56ch;margin:0 auto 24px;line-height:1.55}
.svc-end .btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.svc-end .btn{background:#fff;color:var(--red)}
.svc-end .btn:hover{background:#161616;color:#fff}
.svc-end .btn-outline{background:transparent;border:1.5px solid rgba(255,255,255,.65);color:#fff}
.svc-end .btn-outline:hover{background:rgba(255,255,255,.14);color:#fff}

/* ---------- Responsive ---------- */
@media(max-width:900px){
  .contact .row{grid-template-columns:1fr}
  .cards .grid{grid-template-columns:1fr}
  .reviews .review-cards{grid-template-columns:1fr}
  .services-layout{grid-template-columns:1fr}
  .map-wrap{min-height:380px}
}
@media(max-width:760px){
  /* Mobile menu: full-screen black overlay, like the original thejmdental.com */
  .nav-toggle{display:flex;position:relative;z-index:2}
  .nav-toggle span{transition:transform .2s ease,opacity .15s ease,background .2s ease}
  .nav-toggle.open span{background:#fff}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  body.nav-open{overflow:hidden}
  .main-nav{position:fixed;inset:0;background:#131313;display:none;z-index:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
  .main-nav.open{display:block}
  .main-nav>ul{flex-direction:column;align-items:stretch;gap:0;padding:96px 28px 56px 56px}
  .main-nav>ul>li{padding:0}
  .main-nav a{display:block;width:auto;padding:16px 0;color:#fff;font-size:29px;text-transform:none;letter-spacing:.02em}
  .main-nav a:hover{color:#fff}
  .main-nav a[aria-current="page"]{color:#fff}
  /* Flatten the More group into the list, as the original did */
  .main-nav .more-btn{display:none}
  .main-nav .dropdown{position:static;display:block;box-shadow:none;border:none;background:none;min-width:0;padding:0}
  .main-nav .dropdown a{padding:16px 0;font-size:29px}
  .main-nav .dropdown a:hover{background:none}
  .main-nav .dd-sep{border-top:0;margin-top:0;padding-top:0}
  .main-nav .dropdown a[target="_blank"]::after{color:rgba(255,255,255,.5)}
  .hero-content .welcome-lg{font-size:50px;line-height:60px}
  .hero-content .welcome-sm{font-size:50px;line-height:60px}
  .banner h2,.social h2,.section-head,.reviews h2{font-size:40px}
  .page-banner h1{font-size:52px}
}

/* ---------- Homepage FAQ (AEO) ---------- */
.home-faq{background:#fff;padding:clamp(3rem,6vw,4.5rem) 0;border-top:1px solid #f0f0f0}
.home-faq .container{max-width:820px}
.home-faq h2{font-family:var(--script);font-size:clamp(40px,6vw,52px);color:var(--red);text-align:center;letter-spacing:1px;margin-bottom:26px}

/* ---------- Swiss / elegant pass: thinner weights, more air ---------- */
body{letter-spacing:.004em}
.page-content h2,.page-content h3,.page-content h4,.page-content h5,
.hub-head,.hub-card h3,.faq-item summary,.svc-end h2,.f-name{font-weight:600}
.credentials p{font-weight:400;opacity:.92}
.trust-strip span{font-weight:500;letter-spacing:.14em;font-size:11.5px}
.reviews,.contact,.serving{padding-block:clamp(3.4rem,7vw,5.2rem)}
.page-content{padding-block:clamp(3rem,6vw,4.4rem)}
/* MORE dropdown: separate the practice links from the honours/authority links */
.dropdown{min-width:238px}
.dd-sep{border-top:1px solid #ececec;margin-top:6px;padding-top:6px}
.dropdown a[target="_blank"]::after{content:"\2197";margin-left:6px;color:#c6a09c;font-size:11px;vertical-align:top}
/* ---------- Story pages (Passion/Experience/Technology): original construct ---------- */
.story-hero{background:#fff;padding:56px 0 6px;text-align:center}
.story-hero h1{font-family:var(--script);font-weight:400;color:var(--red);font-size:clamp(46px,6vw,62px);letter-spacing:1px;line-height:1.1}
.story-page{padding-top:34px}
.story-layout{display:grid;grid-template-columns:minmax(260px,430px) 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.story-img{margin:0}
.story-img img{width:100%;height:auto}
.story-text>*:first-child{margin-top:0}
.story-layout.no-img{grid-template-columns:1fr;max-width:74ch}
.page-content a.btn{color:#fff;text-decoration:none}
.story-text p{max-width:70ch}
@media(max-width:820px){
  .story-layout{grid-template-columns:1fr}
  .story-img{max-width:430px;margin-inline:auto}
}
