.elementor-kit-6{--e-global-color-primary:#D42A3E;--e-global-color-secondary:#15171C;--e-global-color-text:#4A505C;--e-global-color-accent:#A8172B;--e-global-color-dsred50:#FFF3F5;--e-global-color-dsred100:#FCDDE2;--e-global-color-dsmuted:#6F7584;--e-global-color-dsdark:#1C1F26;--e-global-color-dsdark2:#2A2E38;--e-global-color-dssoft:#F5F6F8;--e-global-color-dsline:#E5E7EC;--e-global-color-dswhite:#FFFFFF;--e-global-color-dsstatred:#FF6B7C;--e-global-color-dsdarktxt:#C7CAD3;--e-global-typography-primary-font-family:"Outfit";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Outfit";--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-weight:600;color:#4A505C;font-family:"Inter", Sans-serif;font-size:16.8px;font-weight:400;line-height:1.7em;background-color:#FFFFFF;}.elementor-kit-6 a{color:#D42A3E;}.elementor-kit-6 a:hover{color:#A8172B;}.elementor-kit-6 h1{color:#15171C;font-family:"Outfit", Sans-serif;font-weight:700;line-height:1.12em;}.elementor-kit-6 h2{color:#15171C;font-family:"Outfit", Sans-serif;font-weight:700;line-height:1.12em;}.elementor-kit-6 h3{color:#15171C;font-family:"Outfit", Sans-serif;font-weight:600;line-height:1.12em;}.elementor-kit-6 h4{color:#15171C;font-family:"Outfit", Sans-serif;font-weight:700;line-height:1.12em;}.elementor-kit-6 h5{color:#15171C;font-family:"Outfit", Sans-serif;font-weight:700;line-height:1.12em;}.elementor-kit-6 h6{color:#15171C;font-family:"Outfit", Sans-serif;font-weight:700;line-height:1.12em;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-family:"Inter", Sans-serif;font-size:15.2px;font-weight:600;line-height:1em;color:#FFFFFF;background-color:#D42A3E;border-radius:999px 999px 999px 999px;padding:16.4px 24px 16.4px 24px;}.elementor-kit-6 button:hover,.elementor-kit-6 button:focus,.elementor-kit-6 input[type="button"]:hover,.elementor-kit-6 input[type="button"]:focus,.elementor-kit-6 input[type="submit"]:hover,.elementor-kit-6 input[type="submit"]:focus,.elementor-kit-6 .elementor-button:hover,.elementor-kit-6 .elementor-button:focus{color:#FFFFFF;background-color:#A8172B;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1100px;}.e-con{--container-max-width:1100px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}@media(max-width:1024px){.elementor-kit-6{font-size:16.4px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ===== Dynamic Smiles — site-wide extras (animations + bits Elementor has no control for) ===== */
:root{--ds-red:#D42A3E;--ds-red-deep:#A8172B;--ds-red-50:#FFF3F5;--ds-red-100:#FCDDE2;--ds-ink:#15171C;--ds-text:#4A505C;--ds-muted:#6F7584;--ds-line:#E5E7EC;--ds-dark:#1C1F26;--ds-dark-2:#2A2E38;
  --ease-out:cubic-bezier(.22,1,.36,1);--ease-in:cubic-bezier(.55,0,1,.45);--ease-drawer:cubic-bezier(.32,.72,0,1);
  --sm-spring:linear(0,.046,.162,.316,.484,.646,.791,.911,1.002,1.066,1.105,1.124,1.125,1.116,1.099,1.079,1.057,1.038,1.02,1.007,.996,.989,.986,.984,.984,.986,.988,.991,.994,.996,.998,1,1.001,1.002,1);
  --tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.3l2.2 2.2 4.8-5' fill='none' stroke='%23D42A3E' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
.elementor-heading-title{text-wrap:balance}
.elementor-button{transition:background-color .2s var(--ease-out),color .2s var(--ease-out),border-color .2s var(--ease-out),transform .2s var(--ease-out),box-shadow .2s var(--ease-out)}
.ds-btn-red .elementor-button{box-shadow:0 10px 22px -10px rgba(212,42,62,.65)}
.ds-btn-red .elementor-button:hover{transform:translateY(-1px)}
.elementor-button:active{transform:scale(.97)!important}
.ds-card{transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out),border-color .3s var(--ease-out)!important}
.ds-stars{color:var(--ds-red);letter-spacing:2px}
.ds-float b,.ds-plain b{display:block;font:700 1.25rem/1.1 Outfit,sans-serif;color:var(--ds-ink)}
.ds-plain b{display:inline;font:inherit;font-weight:600}

/* Chip with dot */
.ds-chip .elementor-heading-title{display:inline-flex;align-items:center;gap:8px}
.ds-chip .elementor-heading-title::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ds-red)}

/* Round tick bullets (icon lists) */
.ds-ticks .elementor-icon-list-icon{width:18px;height:18px;border-radius:50%;background:var(--ds-red-50) var(--tick) center/100% no-repeat;flex-shrink:0}
.ds-ticks.ds-ticks-lg .elementor-icon-list-icon{width:22px;height:22px}
.ds-ticks .elementor-icon-list-icon i,.ds-ticks .elementor-icon-list-icon svg{display:none!important}
.ds-ticks-plain .elementor-icon-list-icon{width:15px;height:15px;background:var(--tick) center/100% no-repeat}
.ds-ticks-plain .elementor-icon-list-icon i,.ds-ticks-plain .elementor-icon-list-icon svg{display:none!important}

/* Photos: fixed ratios, gentle zoom on hover, label pill */
.ds-ph{overflow:hidden}
.ds-ph img{width:100%!important;height:100%!important;object-fit:cover;display:block;transition:transform .6s}
.ds-ph:hover img{transform:scale(1.03)}
.ds-ar-45 img{aspect-ratio:4/5;height:auto!important}
.ds-ar-43 img{aspect-ratio:4/3;height:auto!important}
.ds-ar-34 img{aspect-ratio:3/4;height:auto!important;object-position:50% 70%}
.ds-hero-photo img{object-position:50% 30%}

/* Hero photo backdrop + doctor photo backdrop */
.ds-hero-media::before{content:"";position:absolute;inset:-18px -18px 18px 18px;border-radius:28px;background:linear-gradient(140deg,var(--ds-red-100),transparent 70%)}
.ds-doc-photo::before{content:"";position:absolute;inset:22px 0 0 22px;border-radius:26px;background:var(--ds-red-100)}
@media (max-width:767px){.ds-hero-media::before{inset:-10px -10px 10px 10px}}

/* Office mosaic */
.ds-office-grid{display:grid!important;grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:240px 240px;gap:14px}
.ds-office-grid>.e-con{height:100%;min-height:0}
.ds-office-grid>.e-con:nth-child(1 of .e-con){grid-row:1/3}
.ds-office-grid>.e-con:nth-child(4 of .e-con){grid-column:2/4}
.ds-office-grid .elementor-widget-image,.ds-office-grid .elementor-widget-image .elementor-widget-container,.ds-office-grid .elementor-widget-image img{height:100%!important}
@media (max-width:1024px){.ds-office-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.ds-office-grid>.e-con{aspect-ratio:4/3;height:auto}.ds-office-grid>.e-con:nth-child(1 of .e-con){grid-row:auto;grid-column:1/-1}.ds-office-grid>.e-con:nth-child(4 of .e-con){grid-column:auto}}
@media (max-width:767px){.ds-office-grid{grid-template-columns:1fr}}

/* How-it-works big numbers sit behind */
.ds-how-num{pointer-events:none}

/* ===== Hero: town rotator ===== */
.ds-rotator p{margin:0}
.ds-rotator b{color:var(--ds-ink);font-weight:600;position:relative;display:inline-block;transition:opacity .3s var(--ease-out),transform .32s var(--ease-out),filter .3s var(--ease-out)}
.ds-rotator b.out{opacity:0;transform:translateY(-.45em);filter:blur(3px);transition-duration:.18s;transition-timing-function:var(--ease-in)}
.ds-rotator b.in{opacity:0;transform:translateY(.55em);filter:blur(3px);transition:none}
.ds-rotator b::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--ds-red);transform-origin:left;transition:transform .4s var(--ease-out) .12s}
.ds-rotator b:is(.out,.in)::after{transform:scaleX(0);transition-duration:.12s;transition-delay:0s}
.ds-rotator b.calm,.ds-rotator b.calm.out,.ds-rotator b.calm.in{transform:none!important;filter:none!important}
.ds-rotator b.calm{transition:opacity .25s linear!important}
.ds-rotator b.calm.out,.ds-rotator b.calm.in{opacity:0}

/* ===== Smile underline (hero) + logo smile ===== */
.u-smile{font-style:normal;color:var(--ds-red);display:block;width:fit-content;padding-bottom:.08em;position:relative;--glint:#FF7070;--sm-at:.55s}
.ds-logo a,.ds-logo .elementor-widget-container{position:relative;display:inline-block}
.ds-logo{--glint:#FF5A5A;--glow:rgba(255,30,30,.75)}
.ls,.smile{position:absolute;pointer-events:none}
.ls{inset:0}
.sm-sw,.sm-sheen{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.sm-sw path{fill:var(--smile,#FF1010)}
.sm-sheen path{fill:#fff}
.sm-sheen{opacity:0;-webkit-mask-image:linear-gradient(100deg,transparent 35%,#000 50%,transparent 65%);mask-image:linear-gradient(100deg,transparent 35%,#000 50%,transparent 65%);-webkit-mask-size:300% 100%;mask-size:300% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:100% 0;mask-position:100% 0}
.sm-star{position:absolute;display:block}
.sm-star svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.sm-star path{fill:var(--smile,#FF1010)}
.sm-rays{position:absolute;display:block;left:50%;top:50%;width:320%;height:320%;translate:-50% -50%;opacity:0;background:linear-gradient(0deg,transparent 0 40%,var(--glint,#fff) 47% 53%,transparent 60% 100%) center/100% 22% no-repeat,linear-gradient(90deg,transparent 0 40%,var(--glint,#fff) 47% 53%,transparent 60% 100%) center/22% 100% no-repeat;-webkit-mask-image:radial-gradient(circle,#000 0,#000 18%,transparent 62%);mask-image:radial-gradient(circle,#000 0,#000 18%,transparent 62%)}
.ls-box{position:absolute;left:0;top:72.46%;width:19.79%;height:28.26%}
.ls-star{left:18.32%;top:61.96%;width:4.17%;height:17.39%}
.smile{left:-.04em;right:.08em;bottom:-.3em;height:.42em}
.smile-star{right:-.34em;bottom:.24em;width:.36em;height:.36em}
@media (prefers-reduced-motion:no-preference){
  .sm-sw{transform-origin:6% 70%;animation:sm-draw var(--sm-draw,.85s) cubic-bezier(.65,0,.35,1) var(--sm-at,.3s) both,sm-form 1s var(--sm-spring) var(--sm-at,.3s) both}
  .sm-sheen{animation:sm-sheen .8s cubic-bezier(.22,1,.36,1) calc(var(--sm-at,.3s) + .8s) both}
  .sm-star svg{transform-origin:50% 50%;animation:sm-pop .7s var(--sm-spring) calc(var(--sm-at,.3s) + .72s) both,sm-flare .9s cubic-bezier(.22,1,.36,1) calc(var(--sm-at,.3s) + .8s) both}
  .sm-rays{animation:sm-rays .75s cubic-bezier(.22,1,.36,1) calc(var(--sm-at,.3s) + .82s) both}
  .smile.idle .sm-star svg,.ls.idle .sm-star svg{animation:sm-twinkle 7s var(--sm-spring) 0s var(--sm-loops,infinite)}
  .smile.idle .sm-rays,.ls.idle .sm-rays{animation:sm-rays-idle 7s cubic-bezier(.22,1,.36,1) 0s var(--sm-loops,infinite)}
  .smile.idle .sm-sheen,.ls.idle .sm-sheen{animation:sm-sheen-idle 7s cubic-bezier(.22,1,.36,1) 0s var(--sm-loops,infinite)}
  .smile.idle .sm-sw,.ls.idle .sm-sw{animation:sm-flex 7s var(--sm-spring) 0s var(--sm-loops,infinite)}
  .ls.idle{--sm-loops:3}
  .logo-seen .ls .sm-sw,.logo-seen .ls .sm-sheen,.logo-seen .ls .sm-star svg,.logo-seen .ls .sm-rays{animation:none}
  .ds-logo:hover .ls .sm-star svg{animation:sm-pop .6s var(--sm-spring) both,sm-flare .8s cubic-bezier(.22,1,.36,1) both}
  .ds-logo:hover .ls .sm-rays{animation:sm-rays .7s cubic-bezier(.22,1,.36,1) both}
  .ds-logo:hover .ls .sm-sheen{animation:sm-sheen .8s cubic-bezier(.22,1,.36,1) both}
}
@keyframes sm-draw{from{clip-path:inset(-30% 100% -30% 0)}to{clip-path:inset(-30% -2% -30% 0)}}
@keyframes sm-form{from{transform:scaleY(.45) rotate(-5deg)}to{transform:none}}
@keyframes sm-sheen{0%{opacity:0;-webkit-mask-position:100% 0;mask-position:100% 0}10%,85%{opacity:.85}100%{opacity:0;-webkit-mask-position:0 0;mask-position:0 0}}
@keyframes sm-pop{from{opacity:0;transform:scale(.4) rotate(-180deg)}to{opacity:1;transform:none}}
@keyframes sm-flare{0%{filter:brightness(1) drop-shadow(0 0 0 transparent)}35%{filter:brightness(1.6) drop-shadow(0 0 .35em var(--glow,rgba(255,40,40,.9)))}100%{filter:brightness(1) drop-shadow(0 0 0 transparent)}}
@keyframes sm-rays{0%{opacity:0;scale:.3;rotate:0deg}30%{opacity:1}100%{opacity:0;scale:1.25;rotate:45deg}}
@keyframes sm-twinkle{0%,82%{transform:none;filter:none}88%{transform:scale(1.3) rotate(90deg);filter:brightness(1.6) drop-shadow(0 0 .3em var(--glow,rgba(255,40,40,.9)))}96%,100%{transform:rotate(90deg);filter:none}}
@keyframes sm-rays-idle{0%,84%{opacity:0;scale:.3;rotate:0deg}88%{opacity:1}100%{opacity:0;scale:1.2;rotate:45deg}}
@keyframes sm-sheen-idle{0%,74%{opacity:0;-webkit-mask-position:100% 0;mask-position:100% 0}75%{opacity:.75}87%{opacity:.75;-webkit-mask-position:0 0;mask-position:0 0}88%,100%{opacity:0}}
@keyframes sm-flex{0%,74%{transform:none}80%{transform:scaleY(1.12)}86%,100%{transform:none}}

/* ===== Stats: rise in once, star pops ===== */
.ds-stats .star{display:inline-block;font-style:normal}
.stats-armed .ds-stat{opacity:0;transform:translateY(12px);filter:blur(4px)}
.stats-in .ds-stat{opacity:1;transform:none;filter:none;transition:opacity .5s var(--ease-out),transform .6s var(--ease-out),filter .5s var(--ease-out)}
.stats-in .ds-stat:nth-child(2 of .ds-stat){transition-delay:.08s}.stats-in .ds-stat:nth-child(3 of .ds-stat){transition-delay:.16s}.stats-in .ds-stat:nth-child(4 of .ds-stat){transition-delay:.24s}
.stats-in .star{animation:star-pop .6s var(--sm-spring) .25s both}
@keyframes star-pop{from{transform:scale(.5) rotate(-30deg)}}

/* ===== Before / after slider ===== */
@property --pos{syntax:'<percentage>';inherits:true;initial-value:50%}
.ba-wrap{background:#fff;border:1px solid var(--ds-line);border-radius:18px;padding:10px 10px 14px;box-shadow:0 1px 2px rgba(16,24,40,.05),0 14px 34px -14px rgba(16,24,40,.16)}
.ba{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:4/3;max-width:100%;background:var(--ds-ink);user-select:none;touch-action:pan-y;margin:0;--pos:50%}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;max-width:none}
.ba .ba-after{clip-path:inset(0 0 0 var(--pos))}
.ba .ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:#fff;transform:translateX(-1px);pointer-events:none}
.ba .ba-handle::after{content:"";position:absolute;top:50%;left:50%;width:42px;height:42px;transform:translate(-50%,-50%);border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D42A3E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l-6 6 6 6M15 6l6 6-6 6'/%3E%3C/svg%3E") center/20px no-repeat;box-shadow:0 6px 18px rgba(0,0,0,.3);transition:transform .25s var(--sm-spring)}
.ba:hover .ba-handle::after,.ba:focus-within .ba-handle::after{transform:translate(-50%,-50%) scale(1.1)}
.ba .ba-label{position:absolute;top:12px;font:600 .7rem Inter,sans-serif;padding:.4em .75em;border-radius:999px;pointer-events:none}
.ba .ba-label.l{left:12px;background:rgba(21,23,28,.75);color:#fff}
.ba .ba-label.r{right:12px;background:var(--ds-red);color:#fff}
.ba input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;-webkit-appearance:none;appearance:none}
.ba input[type=range]:focus-visible + .ba-handle::after{outline:3px solid var(--ds-red);outline-offset:3px}
.ba-cap{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin-top:12px;font-size:.86rem;color:var(--ds-muted);text-align:center;line-height:1.7}
.ba-cap strong{font-weight:600;color:var(--ds-ink)}
.ba-cap span::before{content:"· "}

/* ===== FAQ (Elementor nested accordion) ===== */
.ds-faq .e-n-accordion{display:grid;gap:10px}
.ds-faq .e-n-accordion-item{border:1px solid var(--ds-line);border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(16,24,40,.05),0 14px 34px -14px rgba(16,24,40,.16);transition:border-color .2s var(--ease-out);overflow:hidden}
.ds-faq .e-n-accordion-item[open]{border-color:var(--ds-red-100)}
.ds-faq .e-n-accordion-item-title{border:0!important;padding:18px 20px!important;min-height:48px}
.ds-faq .e-n-accordion-item-title-icon{width:12px;justify-content:center}
.ds-faq .e-n-accordion-item-title-icon i,.ds-faq .e-n-accordion-item-title-icon svg{transition:transform .25s var(--ease-out)}
.ds-faq .e-n-accordion-item>.e-con{border:0!important;padding:0 20px 18px!important}
.ds-faq .e-n-accordion-item>.e-con p:last-child{margin:0}
@media (prefers-reduced-motion:no-preference){.ds-faq .e-n-accordion-item[open]>.e-con{animation:faq-in .26s var(--ease-out)}}
@keyframes faq-in{from{opacity:0;transform:translateY(-6px)}}

/* ===== Directions map ===== */
.dirmap{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 2px 4px rgba(16,24,40,.05),0 30px 60px -24px rgba(16,24,40,.28);border:1px solid var(--ds-line);line-height:1.7}
.dirmap>*{min-width:0}
.dm-map{position:relative;min-height:520px;background:#ECEEF1}
.dm-fallback{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;padding:24px;color:var(--ds-muted);background:repeating-linear-gradient(0deg,transparent 0 39px,#E1E4E9 39px 40px),repeating-linear-gradient(90deg,transparent 0 39px,#E1E4E9 39px 40px),#F1F2F5}
.dm-fallback b{color:var(--ds-ink)}
.dm-map.ready .dm-fallback{display:none}
.dm-frame{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:1;background:transparent;transition:opacity .3s var(--ease-out),filter .3s var(--ease-out)}
.dm-map.loading .dm-frame{opacity:.45;filter:grayscale(1) blur(2px)}
.dm-panel{padding:26px 24px;display:flex;flex-direction:column;gap:14px;max-height:620px;overflow:auto}
.dm-title{font:700 1.2rem/1.2 Outfit,sans-serif;color:var(--ds-ink);margin:0}
.dm-form{display:grid;gap:10px}
.dm-form label{display:grid;gap:6px;font:600 .84rem Inter,sans-serif;color:var(--ds-ink)}
.dm-form input{font:400 16px Inter,sans-serif;padding:.75em .9em;border:1px solid var(--ds-line);border-radius:12px;min-height:48px;width:100%}
.dm-form input:focus{border-color:var(--ds-red);outline:none;box-shadow:0 0 0 4px var(--ds-red-50)}
.dm-go{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75em 1.5em;border-radius:999px;font:600 .95rem/1 Inter,sans-serif;text-decoration:none;background:var(--ds-red);color:#fff!important;box-shadow:0 10px 22px -10px rgba(212,42,62,.65);transition:background-color .2s var(--ease-out),transform .2s var(--ease-out)}
.dm-go:hover{background:var(--ds-red-deep)}
.dm-result{background:var(--ds-red-50);border-radius:14px;padding:14px 16px;font-size:.92rem}
.dm-result p{margin:0}
.dm-result .muted{color:var(--ds-muted)}
.dm-result .big{font:700 1.8rem/1 Outfit,sans-serif;color:var(--ds-ink);display:block;margin:4px 0 8px}
.dm-result .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.dm-result .pill{display:inline-flex;align-items:center;min-height:36px;padding:.5em 1em;border-radius:999px;background:var(--ds-red);color:#fff;font:600 .82rem/1 Inter,sans-serif;text-decoration:none}
.dm-sub{margin:4px 0 0;font:700 .72rem Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--ds-red)}
.dm-towns{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
.dm-towns li{margin:0}
.dirmap button.dm-town{width:100%;display:grid;grid-template-columns:20px 1fr;column-gap:8px;text-align:left;align-items:center;padding:9px 10px;border:1px solid var(--ds-line);border-radius:12px;background:#fff;cursor:pointer;font:600 .9rem/1.15 Inter,sans-serif;color:var(--ds-ink);min-height:48px;transition:border-color .2s var(--ease-out),background-color .2s var(--ease-out)}
.dirmap button.dm-town:hover,.dirmap button.dm-town:focus{border-color:var(--ds-ink);background:#fff;color:var(--ds-ink)}
.dirmap .dm-town small{grid-column:2;font-weight:500;font-size:.74rem;color:var(--ds-muted)}
.dm-town .dm-tooth{grid-row:1/3}
.dirmap button.dm-town.on{border-color:var(--ds-red);background:var(--ds-red-50)}
.dm-tooth svg{width:18px;height:18px;fill:#fff;stroke:var(--ds-ink);stroke-width:1.4;transition:fill .2s,stroke .2s}
.dm-town.on .dm-tooth svg{fill:var(--ds-red);stroke:var(--ds-red)}
.dm-tooth.big svg{width:44px;height:44px;fill:var(--ds-red);stroke:var(--ds-red)}
@media (prefers-reduced-motion:no-preference){.dm-town.on .dm-tooth svg{animation:tooth-pop .55s var(--sm-spring)}@keyframes tooth-pop{from{transform:scale(.7) rotate(-14deg)}}}
@media (max-width:1024px){.dirmap{grid-template-columns:1fr}.dm-map{min-height:380px}.dm-panel{max-height:none}}
@media (max-width:767px){.dm-towns{grid-template-columns:1fr}}

/* ===== Booking form: success morph ===== */
.form-ok{display:grid;justify-items:center;gap:12px;text-align:center;padding:30px 22px;background:#fff;border-radius:20px;color:var(--ds-text);font-weight:500}
.form-ok:focus{outline:none}
.form-ok p{margin:0}
.form-ok b{display:block;font:700 1.35rem/1.2 Outfit,sans-serif;color:var(--ds-ink);margin-bottom:4px}
.ok-badge{position:relative;width:64px;height:64px}
.ok-badge svg{width:64px;height:64px;overflow:visible}
.ok-badge circle{fill:var(--ds-red)}
.ok-badge path{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:32}
.ok-badge i{position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3.5px;border-radius:50%;background:var(--ds-red);opacity:0}
::view-transition-group(book){animation-duration:.45s;animation-timing-function:var(--ease-drawer)}
::view-transition-old(book){animation:.15s var(--ease-in) both vt-out}
::view-transition-new(book){animation:.3s var(--ease-out) .12s both vt-in}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0}}
@media (prefers-reduced-motion:no-preference){
  .ok-badge svg{animation:ok-pop .6s var(--sm-spring) .35s both}
  .ok-badge path{animation:ok-draw .4s var(--ease-out) .65s both}
  .ok-badge i{animation:ok-spark .7s var(--ease-out) .6s}
  @keyframes ok-pop{from{transform:scale(.6);opacity:0}}
  @keyframes ok-draw{from{stroke-dashoffset:32}}
  @keyframes ok-spark{0%{opacity:0;transform:scale(.4)}25%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1)}}
}

/* ===== Header ===== */
.ds-header{backdrop-filter:saturate(1.6) blur(10px);-webkit-backdrop-filter:saturate(1.6) blur(10px)}
.ds-mega .e-n-menu-content>.e-con{transform-origin:top center}
@media (prefers-reduced-motion:no-preference){.ds-mega .e-n-menu-content>.e-con.e-active{animation:mega-in .2s var(--ease-out)}}
@keyframes mega-in{from{opacity:0;transform:translateY(-6px) scale(.98)}}
.ds-mega-sub .elementor-icon-list-text{color:var(--ds-muted)!important;font-size:.86rem!important}

/* Mobile sticky bar room */
@media (max-width:1024px){body{padding-bottom:76px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}}
.elementor-widget-text-editor p:last-child{margin-bottom:0}
.elementor-widget-text-editor p{margin-top:0}
.elementor-widget-text-editor b,.elementor-widget-text-editor strong,.elementor-icon-list-text strong{color:var(--ds-ink);font-weight:600}
.ds-dark .elementor-widget-text-editor b,.ds-dark .elementor-widget-text-editor strong,.ds-dark .elementor-icon-list-text strong{color:#fff}
.ds-dark .elementor-widget-text-editor a{color:#fff}
.elementor-widget-text-editor a{color:var(--ds-red);text-underline-offset:3px}
.elementor-widget-text-editor a:hover{color:var(--ds-red-deep)}
.ds-float{--width:auto;width:auto;white-space:nowrap}
.ds-more{margin-top:auto!important;padding-top:8px}
.ds-more-arrow .elementor-heading-title::after{content:" →"}
.ds-hero-media>.elementor-widget-image,.ds-doc-photo>.elementor-widget-image{position:relative;z-index:1}
.ds-hero-media>.e-con{z-index:2}
.ds-ph .elementor-widget-container{overflow:hidden;border-radius:inherit;height:100%}
@media (max-width:767px){.ds-hero-media{max-width:460px;margin-inline:auto}.ds-doc-photo{max-width:440px}}
.ds-auto{--width:auto;width:auto}
.elementor-widget-html:has(.ba-wrap),.elementor-widget-html:has(.ba-wrap) .elementor-widget-container{height:100%}
.ba-wrap{height:100%}
.elementor-widget-icon .elementor-icon-wrapper{line-height:0}/* End custom CSS */