/* Source: generated-dental-gradient-mesh — Original work — generated for the Devantis catalogue */
/* The design's inline <style> block, moved to its own file unmodified. */
:root{
  --color-ink:#241d33;
  --color-ink-soft:#5c5470;
  --color-canvas:#f8f5fb;
  --color-blush:#ffd9e2;
  --color-mint:#c9f2e2;
  --color-butter:#fdeec2;
  --color-lilac:#ded3fb;
  --color-sky:#cfe6ff;
  --color-accent:#6f4fd8;
  --color-accent-deep:#4a2fa6;
  --color-glass:rgba(255,255,255,.62);
  --color-glass-line:rgba(255,255,255,.85);
  --color-shadow:rgba(84,62,140,.14);
  --radius-lg:34px;
  --radius-md:22px;
  --radius-sm:14px;
  --shell:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{background:#f8f5fb;margin:0;color:var(--color-ink);font-family:"Outfit","Segoe UI",system-ui,-apple-system,sans-serif;font-weight:300;font-size:17px;line-height:1.65;overflow-x:hidden;overflow-wrap:break-word}
img,svg{max-width:100%}
a{color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.02;letter-spacing:-.035em;font-weight:200}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
.mesh{position:fixed;inset:-18%;z-index:-2;pointer-events:none;filter:blur(2px)}
.mesh span{position:absolute;display:block;border-radius:50%;opacity:.85}
.m1{width:62vw;height:62vw;left:-16vw;top:-12vw;background:radial-gradient(circle at 40% 40%,var(--color-blush),rgba(255,217,226,0) 68%)}
.m2{width:70vw;height:70vw;right:-22vw;top:-8vw;background:radial-gradient(circle at 50% 50%,var(--color-lilac),rgba(222,211,251,0) 66%)}
.m3{width:80vw;height:80vw;left:8vw;top:38%;background:radial-gradient(circle at 50% 50%,var(--color-mint),rgba(201,242,226,0) 64%)}
.m4{width:56vw;height:56vw;right:-10vw;top:58%;background:radial-gradient(circle at 50% 50%,var(--color-butter),rgba(253,238,194,0) 66%)}
.m5{width:64vw;height:64vw;left:-12vw;bottom:-14vw;background:radial-gradient(circle at 50% 50%,var(--color-sky),rgba(207,230,255,0) 68%)}
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;mix-blend-mode:multiply}
.shell{width:100%;max-width:var(--shell);margin:0 auto;padding:0 22px}
section{position:relative;padding:96px 0}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--color-accent);margin:0 0 18px}
.lede{color:var(--color-ink-soft);font-size:clamp(16px,1.4vw,19px);max-width:52ch}
h2{font-size:clamp(34px,6.4vw,62px)}
h2 b{font-weight:600}
h2 em{font-style:normal;font-weight:600;color:var(--color-accent-deep)}
.glass{background:var(--color-glass);border:1px solid var(--color-glass-line);border-radius:var(--radius-lg);box-shadow:0 24px 60px -30px var(--color-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;text-decoration:none;font-weight:500;font-size:15px;letter-spacing:-.01em;border:1px solid transparent}
.btn-solid{background:linear-gradient(120deg,var(--color-accent),#9a6ff0);color:#fff;box-shadow:0 18px 34px -18px rgba(111,79,216,.9)}
.btn-ghost{background:rgba(255,255,255,.6);border-color:rgba(111,79,216,.28);color:var(--color-accent-deep)}
.btn-dark{background:var(--color-ink);color:#fff}
header{position:relative;z-index:20;padding:20px 0}
nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:12px 14px 12px 20px;border-radius:999px;background:rgba(255,255,255,.58);border:1px solid rgba(255,255,255,.9);box-shadow:0 16px 40px -28px var(--color-shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:11px;font-weight:600;font-size:17px;letter-spacing:-.03em;text-decoration:none;margin-right:auto}
.brand small{display:block;font-weight:300;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--color-ink-soft);line-height:1}
.navlinks{display:flex;gap:22px;font-size:14.5px;color:var(--color-ink-soft)}
.navlinks a{text-decoration:none}
.navlinks a:hover{color:var(--color-accent-deep)}
.nav-cta{padding:11px 20px;font-size:14px}
.hero{padding:56px 0 80px}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:44px;align-items:center}
h1{font-size:clamp(44px,8.4vw,92px);letter-spacing:-.05em}
h1 .thin{font-weight:200;display:block}
h1 .fat{font-weight:800;display:block;background:linear-gradient(100deg,var(--color-accent-deep),#c86fae 55%,#3fae94);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lede{margin-top:24px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:999px;background:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.9);font-size:13.5px;color:var(--color-ink-soft)}
.chip i{width:7px;height:7px;border-radius:50%;background:var(--color-accent);display:block}
.hero-art{position:relative;padding:26px;overflow:hidden;min-height:340px}
.hero-art .halo{position:absolute;width:118%;height:118%;left:-9%;top:-9%;background:radial-gradient(circle at 30% 25%,rgba(255,217,226,.9),transparent 55%),radial-gradient(circle at 78% 70%,rgba(201,242,226,.9),transparent 58%);pointer-events:none}
.hero-art svg{position:relative;display:block;width:100%;height:auto}
.badge-float{position:absolute;right:18px;bottom:18px;background:rgba(255,255,255,.86);border-radius:18px;padding:12px 16px;font-size:13px;line-height:1.3;border:1px solid #fff;box-shadow:0 16px 34px -22px var(--color-shadow)}
.badge-float b{display:block;font-weight:600;font-size:20px;letter-spacing:-.03em}
.treat-head{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:end;margin-bottom:44px}
.price-list{display:grid;gap:14px}
.price-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:22px 26px;border-radius:var(--radius-md);background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.85);transition:transform .25s ease,background .25s ease}
.price-row:hover{transform:translateX(6px);background:rgba(255,255,255,.78)}
.price-row h3{font-size:21px;font-weight:500;letter-spacing:-.03em}
.price-row p{font-size:14.5px;color:var(--color-ink-soft);margin-top:5px;max-width:56ch}
.price{font-weight:600;font-size:23px;letter-spacing:-.04em;white-space:nowrap}
.price small{display:block;font-weight:300;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-soft);text-align:right}
.price-row.feature{background:linear-gradient(115deg,rgba(222,211,251,.75),rgba(201,242,226,.6));border-color:rgba(255,255,255,.95)}
.tag{display:inline-block;margin-left:10px;padding:3px 10px;border-radius:999px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;background:var(--color-ink);color:#fff;vertical-align:middle}
.treat-note{margin-top:22px;font-size:14px;color:var(--color-ink-soft)}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:48px}
.member{padding:26px;position:relative;overflow:hidden}
.team-grid .member:nth-child(2){transform:translateY(26px)}
.member .portrait{width:100%;border-radius:22px;overflow:hidden;display:block;margin-bottom:20px}
.member h3{font-size:23px;font-weight:600;letter-spacing:-.035em}
.member .role{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent);margin-top:7px;font-weight:500}
.member p.bio{font-size:14.5px;color:var(--color-ink-soft);margin-top:14px}
.member .gdc{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-soft);margin-top:16px;padding-top:14px;border-top:1px solid rgba(111,79,216,.16)}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:46px;align-items:start}
.quote{padding:28px;border-radius:var(--radius-md)}
.quote:nth-child(1){background:linear-gradient(140deg,rgba(255,217,226,.8),rgba(255,255,255,.6))}
.quote:nth-child(2){background:linear-gradient(140deg,rgba(201,242,226,.8),rgba(255,255,255,.6));margin-top:34px}
.quote:nth-child(3){background:linear-gradient(140deg,rgba(253,238,194,.85),rgba(255,255,255,.6))}
.quote:nth-child(4){background:linear-gradient(140deg,rgba(222,211,251,.8),rgba(255,255,255,.6))}
.quote{border:1px solid rgba(255,255,255,.85)}
.stars{display:flex;gap:3px;margin-bottom:14px}
.quote blockquote{margin:0;font-size:17.5px;font-weight:300;letter-spacing:-.015em;line-height:1.5}
.who{display:flex;align-items:center;gap:12px;margin-top:20px}
.who .av{width:40px;height:40px;border-radius:50%;flex:0 0 40px;overflow:hidden}
.who b{font-weight:500;font-size:15px;display:block}
.who span{font-size:12.5px;color:var(--color-ink-soft)}
.rating-strip{display:flex;flex-wrap:wrap;gap:14px 40px;margin-top:44px;padding:26px 30px;border-radius:var(--radius-md);background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.9)}
.rating-strip div b{display:block;font-size:30px;font-weight:600;letter-spacing:-.04em}
.rating-strip div span{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-soft)}
.visit-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:26px;margin-top:44px}
.hours{padding:32px}
.hours li{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px dashed rgba(111,79,216,.2);font-size:15.5px}
.hours li:last-child{border-bottom:0}
.hours li b{font-weight:500}
.hours li.today{color:var(--color-accent-deep);font-weight:500}
.hours li.shut span{color:var(--color-ink-soft)}
.map-card{padding:0;overflow:hidden;position:relative;min-height:330px;display:flex;flex-direction:column}
.map-card svg.map{display:block;width:100%;height:auto;flex:1}
.addr{padding:24px 28px;background:rgba(255,255,255,.72);border-top:1px solid rgba(255,255,255,.9)}
.addr h3{font-size:19px;font-weight:600;letter-spacing:-.03em}
.addr p{font-size:14.5px;color:var(--color-ink-soft);margin-top:8px}
.addr .links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.addr .links a{font-size:13.5px;text-decoration:none;padding:8px 15px;border-radius:999px;background:rgba(111,79,216,.1);color:var(--color-accent-deep)}
.book-panel{position:relative;overflow:hidden;padding:clamp(34px,5vw,66px);border-radius:var(--radius-lg);background:linear-gradient(125deg,#2a2140,#453573 46%,#6b4a9e);color:#fff;box-shadow:0 40px 80px -44px rgba(42,33,64,.8)}
.book-panel .blob{position:absolute;border-radius:50%;filter:blur(28px);opacity:.55}
.book-panel .b1{width:340px;height:340px;right:-90px;top:-120px;background:radial-gradient(circle,#ffd9e2,transparent 70%)}
.book-panel .b2{width:300px;height:300px;left:-110px;bottom:-130px;background:radial-gradient(circle,#c9f2e2,transparent 70%)}
.book-inner{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:38px;align-items:center}
.book-panel h2{color:#fff}
.book-panel h2 em{color:#ffd9e2}
.book-panel .eyebrow{color:#c9f2e2}
.book-panel p{color:rgba(255,255,255,.78);margin-top:20px;max-width:46ch}
.book-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.book-actions .btn-solid{background:#fff;color:var(--color-accent-deep);box-shadow:none}
.book-actions .btn-ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4);color:#fff}
.slots{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-md);padding:24px}
.slots h3{font-size:15px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#c9f2e2}
.slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.slot{background:rgba(255,255,255,.12);border-radius:14px;padding:12px 14px;font-size:14px}
.slot b{display:block;font-weight:500;font-size:15px}
.slot span{font-size:12px;color:rgba(255,255,255,.65)}
.slot.gone{opacity:.42;text-decoration:line-through}
.slots .foot{margin-top:18px;font-size:13px;color:rgba(255,255,255,.7)}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:start}
.faq-side .insurers{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.faq-side .insurers span{font-size:13px;padding:9px 15px;border-radius:12px;background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.9);color:var(--color-ink-soft)}
details{border-radius:var(--radius-md);background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.85);padding:20px 24px;margin-bottom:12px}
details[open]{background:rgba(255,255,255,.78)}
summary{cursor:pointer;list-style:none;font-size:18px;font-weight:500;letter-spacing:-.025em;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-weight:300;font-size:26px;line-height:1;color:var(--color-accent);flex:0 0 auto}
details[open] summary::after{content:"–"}
details p{margin-top:12px;font-size:15px;color:var(--color-ink-soft)}
footer{padding:70px 0 46px;margin-top:20px;border-top:1px solid rgba(111,79,216,.14)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
.foot-grid h4{font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--color-ink-soft);margin-bottom:14px}
.foot-grid li{padding:5px 0;font-size:14.5px;color:var(--color-ink-soft)}
.foot-grid a{text-decoration:none}
.foot-grid a:hover{color:var(--color-accent-deep)}
.foot-brand p{font-size:14.5px;color:var(--color-ink-soft);margin-top:14px;max-width:34ch}
.legal{margin-top:44px;padding-top:22px;border-top:1px solid rgba(111,79,216,.12);display:flex;flex-wrap:wrap;gap:10px 26px;font-size:13px;color:var(--color-ink-soft)}
@media (max-width:960px){
  section{padding:72px 0}
  .hero-grid,.treat-head,.visit-grid,.book-inner,.faq-grid{grid-template-columns:1fr}
  .team-grid,.quotes{grid-template-columns:repeat(2,1fr)}
  .team-grid .member:nth-child(2){transform:none}
  .quotes .quote:nth-child(2){margin-top:0}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  body{font-size:16px}
  section{padding:56px 0}
  .shell{padding:0 16px}
  nav{border-radius:26px;padding:14px 16px}
  .navlinks{order:3;width:100%;gap:14px;flex-wrap:wrap;font-size:13.5px}
  .nav-cta{padding:10px 16px}
  .team-grid,.quotes,.foot-grid{grid-template-columns:1fr}
  .price-row{grid-template-columns:1fr;gap:10px}
  .price{font-size:21px}
  .price small{text-align:left}
  .hero-art{padding:16px;min-height:260px}
  .badge-float{right:12px;bottom:12px;padding:10px 13px}
  .rating-strip{gap:18px 26px;padding:22px}
  .slot-grid{grid-template-columns:1fr}
  .hours li{font-size:14.5px}
}
