/* Dr Hafça Moqadem — feuille de style du site
   Palette : noir, blanc, teal #909090. Titres Outfit, textes Poppins. */

:root{--teal:#909090;--teal-dark:#707070;--ink:#1c1c1c;--muted:#767676;--pale:#f5f5f5;--line:#e7e7e7}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:#fff;color:var(--ink);font-family:"Poppins",Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;cursor:pointer;border:0}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #daac60;outline-offset:4px}
p{line-height:1.7}
h1,h2,h3,h4,p{margin-top:0}
h1,h2,h3,h4{font-family:"Outfit",Arial,sans-serif}
h1,h2{font-weight:500;letter-spacing:-.055em;line-height:1.06}
h2{font-size:clamp(34px,4.2vw,58px)}
h3{font-weight:500;letter-spacing:-.02em}
img{max-width:100%;display:block}
.wrap{width:min(1240px,calc(100% - 96px));margin:auto}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:600;display:block;margin-bottom:25px}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:22px;border-radius:50px;padding:17px 23px;background:var(--teal);color:#fff;font-size:13px;line-height:1.2;white-space:nowrap}
.pill:hover{background:var(--teal-dark)}
.pill.white{background:#fff;color:var(--ink)}
.pill.white:hover{background:#f0f0f0}
.pill.ghost{background:transparent;color:inherit;border:1px solid currentColor}
.arrow{font-size:18px;line-height:1}
.textlink{display:inline-flex;align-items:center;gap:16px;font-size:13px;border-bottom:1px solid currentColor;padding:12px 0}
.skip{position:fixed;top:-70px;left:20px;background:#fff;color:#000;padding:15px;z-index:9}
.skip:focus{top:20px}
.todo{background:#fdf3e2;border-radius:20px;padding:2px 10px;font-size:11px;color:#8a6a2c;white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- bandeau teal (hero accueil + entête des pages) ---------- */
.hero{background:var(--teal);color:#fff;margin:12px 12px 0;border-radius:22px 22px 60px 60px;position:relative}
.hero.compact{border-radius:22px 22px 40px 40px}
.hero:after{content:"";position:absolute;width:94px;height:45px;border-radius:0 0 60px 60px;bottom:-28px;background:var(--teal);left:calc(50% - 47px);box-shadow:0 9px 0 #e2e2e2,0 17px 0 #f2f2f2}
.nav{height:99px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff30;gap:20px}
.brand{display:flex;gap:12px;align-items:center}
.brand svg{width:37px;height:44px;flex:none}
.brand strong{font-size:18px;letter-spacing:-.03em;font-weight:500;font-family:"Outfit",Arial,sans-serif}
.brand small{display:block;letter-spacing:.16em;font-size:8px;margin-top:7px}
.navwrap{display:flex;gap:26px;align-items:center}
.navlinks{display:flex;gap:26px;font-size:12px;align-items:center}
.navlinks a{opacity:.85}
.navlinks a:hover,.navlinks a[aria-current="page"]{opacity:1;border-bottom:1px solid currentColor;padding-bottom:3px}
.navleft{display:flex;align-items:center;gap:24px;min-width:0}
.burger{display:inline-flex;align-items:center;gap:11px;background:#ffffff1a;color:#fff;border-radius:40px;padding:11px 16px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;transition:background .25s;flex:none}
.burger:hover{background:#ffffff2e}
.burger-bars{display:grid;gap:3.5px;width:17px}
.burger-bars span{display:block;height:1.5px;background:currentColor;border-radius:2px;transition:transform .3s ease,opacity .2s ease}
.burger[aria-expanded="true"] .burger-bars span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.burger[aria-expanded="true"] .burger-bars span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] .burger-bars span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
.hero-grid{display:grid;grid-template-columns:1.06fr 1fr;align-items:center;min-height:620px;padding:45px 0 76px;gap:20px}
.hero h1{font-size:clamp(50px,6.4vw,91px);max-width:630px;margin-bottom:26px}
.hero h1 em{font-family:"Outfit",Arial,sans-serif;font-weight:400}
.hero-copy>p{max-width:390px;color:#f1f1f1;font-size:15px}
.actions{display:flex;gap:22px;align-items:center;margin-top:30px;flex-wrap:wrap}
.signature{font-size:11px;color:#e2e2e2;margin-top:44px}
.hero-art{position:relative;overflow:clip;min-width:0;height:490px;display:grid;place-items:center}
.orbit{position:absolute;inset:12% 1%;border:1px solid #ffffff26;border-radius:50%;transform:rotate(-30deg)}
.orbit.two{inset:2% 12%;transform:rotate(30deg)}
.hero-art>svg{width:100%;max-height:475px;filter:drop-shadow(8px 25px 18px #28282860);animation:float 6s ease-in-out infinite}
.artlabel{position:absolute;font-size:10px;letter-spacing:.12em;text-transform:uppercase;line-height:1.8}
.artlabel.top{top:13%;left:1%}
.artlabel.bottom{bottom:10%;right:0}
.artlabel:before{content:"";width:5px;height:5px;display:inline-block;background:#c7c7c7;border-radius:50%;margin-right:10px}
.spark{position:absolute;right:13%;top:14%;font-size:38px;font-weight:400;color:#cecece}
.motion-toggle{position:absolute;bottom:24px;right:32px;background:transparent;color:#e0e0e0;border:1px solid #ffffff45;border-radius:30px;padding:8px 13px;font-size:10px}
.footer-end .motion-toggle{position:static;color:#8b8b8b;border-color:#ffffff26;font-size:10px}
.footer-end .motion-toggle:hover{color:#e9e9e9;border-color:#ffffff4d}
.scrollmark{position:absolute;bottom:-13px;left:calc(50% - 5px);z-index:1;font-size:18px}

/* entête des pages intérieures : illustration à gauche, texte à droite */
.pagehero-grid{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:60px;padding:60px 0 84px;min-height:440px}
.pagehero-art{position:relative;min-width:0;height:400px;display:grid;place-items:center;overflow:clip}
.pagehero-art>svg{width:100%;max-height:370px;filter:drop-shadow(6px 20px 16px #28282855);animation:float 7s ease-in-out infinite}
.pagehero h1{font-size:clamp(42px,5vw,72px);margin-bottom:22px}
.pagehero p.lead{color:#f1f1f1;font-size:16px;max-width:470px}
.breadcrumb{font-size:11px;color:#dbdbdb;padding-top:26px}
.breadcrumb a:hover{border-bottom:1px solid currentColor}
.breadcrumb span{opacity:.6;margin:0 8px}

/* ---------- sections ---------- */
.section{padding:110px 0}
.section.tight{padding:80px 0}
.section.pale{background:#f5f5f5;border-radius:28px;margin:0 24px}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:40px}
.section-head h2{max-width:620px;margin:0}
.section-head>p{max-width:330px;color:var(--muted);font-size:14px;margin:0}

/* sélecteur de soins de l'accueil */
.services-layout{display:grid;grid-template-columns:240px 1fr;gap:40px}
.services-aside{display:flex;flex-direction:column;justify-content:space-between;padding:8px 15px 0 0}
.services-aside p{font-size:14px;color:var(--muted)}
.service-controls{display:flex;gap:9px}
.round{height:40px;width:40px;border-radius:50%;background:var(--ink);color:#fff;font-size:19px}
.round.light{background:#f0f0f0;color:var(--ink)}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.card{padding:0;background:#ededed;border-radius:12px;min-height:285px;text-align:left;position:relative;overflow:hidden;color:var(--ink);transition:transform .3s;display:block}
.card:hover{transform:translateY(-6px)}
.card:nth-child(2){background:#e4e4e4}
.card:nth-child(3){background:#d2d2d2}
.card-art{height:220px;width:100%;display:block;transition:transform .5s}
.card:hover .card-art{transform:scale(1.06)}
.card-bottom{position:absolute;inset:auto 16px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.card-bottom strong{font-size:15px;font-weight:500;max-width:140px;line-height:1.25;font-family:"Outfit",Arial,sans-serif}
.card-bottom span{background:#fff;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;flex:none}
.service-detail{border-top:1px solid var(--line);margin-top:25px;padding-top:20px;display:flex;gap:30px;align-items:baseline;font-size:13px}
.service-detail strong{min-width:180px;font-weight:500;font-family:"Outfit",Arial,sans-serif}
.service-detail p{color:var(--muted);margin:0}

/* esthétique */
.smile{background:#f5f5f5;border-radius:28px;margin:0 24px}
.smile-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:110px}
.smile-art{min-width:0;position:relative}
.smile-art svg{width:100%;max-height:450px}
.smallnote{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#707070;display:block;text-align:center}
.smile-copy h2{max-width:470px}
.smile-copy p{font-size:15px;color:var(--muted);max-width:390px}
.smile-copy .eyebrow{color:var(--teal)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0}
.tags span{border:1px solid #d5d5d5;border-radius:30px;padding:9px 13px;font-size:11px}

/* implantologie */
.implant-section{padding-bottom:80px}
.implant-section .section-head{align-items:start}
.implant-stage{height:550px;position:relative;display:grid;place-items:center}
.implant-stage:before,.implant-stage:after{content:"";position:absolute;width:630px;height:480px;border:1px solid #ebebeb;border-radius:50%;transform:rotate(-18deg);pointer-events:none}
.implant-stage:after{width:450px;height:450px;transform:rotate(35deg)}
.implant-art{width:470px;max-width:100%;height:470px;position:relative;z-index:1}
.callout{position:absolute;max-width:220px;z-index:2}
.callout h3{font-size:14px;font-weight:500;margin-bottom:9px}
.callout h3:before{content:"+";display:inline-grid;place-items:center;background:var(--teal);color:#fff;width:16px;height:16px;border-radius:50%;margin-right:9px;font-size:13px}
.callout p{font-size:12px;color:var(--muted);padding-left:25px}
.callout.a{left:2%;top:30px}
.callout.b{right:0;top:70px}
.callout.c{left:4%;bottom:20px}
.callout.d{right:0;bottom:50px}
.implant-caption{font-size:10px;color:#6e6e6e;text-align:center}

/* toutes les familles de soins */
.family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.family{background:#f6f6f6;border-radius:14px;padding:30px 28px 26px;display:flex;flex-direction:column;gap:14px;transition:background .3s,transform .3s;min-height:230px}
.family:hover{background:#f0f0f0;transform:translateY(-4px)}
.family svg{width:34px;height:34px;color:var(--teal)}
.family h3{font-size:19px;margin:0}
.family p{font-size:13px;color:var(--muted);margin:0;flex:1}
.family-more{font-size:12px;display:inline-flex;align-items:center;gap:10px;color:var(--teal)}
.family.wide{grid-column:span 3;flex-direction:row;align-items:center;min-height:0;gap:26px}
.family.wide p{max-width:620px}

/* détail d'un soin sur la page famille */
.treatment{display:grid;grid-template-columns:200px 1fr;gap:40px;padding:34px 0;border-top:1px solid var(--line)}
.treatment:first-of-type{border-top:0}
.treatment h3{font-size:22px;margin:0;scroll-margin-top:110px}
.treatment p{margin:0;color:var(--muted);font-size:15px;max-width:640px}
.treatment .pending{display:inline-block;margin-top:12px}

/* bandeau de repères */
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin-top:10px}
.facts li{list-style:none;font-size:13px;color:var(--muted);display:flex;gap:12px;align-items:flex-start}
.facts li:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal);margin-top:8px;flex:none}
.facts{padding-left:0}

/* parcours */
.journey{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:step;padding-left:0}
.journey li{list-style:none;border-top:1px solid var(--line);padding-top:18px}
.journey h3{font-size:16px;margin:0 0 8px}
.journey p{font-size:13px;color:var(--muted);margin:0}

/* faq */
.faq{border-top:1px solid var(--line);max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:22px 0;font-family:"Outfit",Arial,sans-serif;font-size:18px;display:flex;justify-content:space-between;gap:20px;align-items:center;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";color:var(--teal);font-size:22px;flex:none}
.faq details[open] summary:after{content:"–"}
.faq p{margin:0 0 22px;color:var(--muted);font-size:14px;max-width:700px}

/* blog */
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.post{display:flex;flex-direction:column;gap:14px;background:#f6f6f6;border-radius:14px;overflow:hidden;transition:transform .3s}
.post:hover{transform:translateY(-4px)}
.post-art{height:170px;width:100%;background:#e4e4e4;display:block}
.post-body{padding:0 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.post h3{font-size:19px;margin:0}
.post p{font-size:13px;color:var(--muted);margin:0;flex:1}
.post .meta{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8a8a8a}
.prose{max-width:720px}
.prose h2{font-size:30px;margin:44px 0 14px}
.prose p{font-size:16px;color:#3a3a3a}
.notice{background:#fdf3e2;border-radius:14px;padding:18px 22px;font-size:13px;color:#7d6127;max-width:720px;margin-bottom:34px}

/* appel au rendez-vous */
.ctaband{background:var(--teal);color:#fff;border-radius:28px;margin:0 12px 12px;padding:86px 0;position:relative;overflow:hidden}
.ctaband .wrap{display:flex;justify-content:space-between;align-items:center;gap:50px;position:relative;z-index:1}
.ctaband h2{max-width:560px;margin:0}
.ctaband p{color:#e2e2e2;font-size:14px;max-width:340px;margin:16px 0 0}
.ctaband .orbit{inset:-40% 55% -40% -10%}

/* formulaires */
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:720px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-size:12px;letter-spacing:.04em;color:var(--muted)}
.field input,.field textarea,.field select{border:1px solid var(--line);border-radius:10px;padding:14px 16px;font:inherit;font-size:14px;background:#fbfdfc}
.field textarea{min-height:130px;resize:vertical}

/* pied de page */
.sitefooter{background:#f6f6f6;color:var(--ink);padding:90px 0 26px;position:relative;overflow:hidden}
.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1.5fr;gap:40px}
.sitefooter h3{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#a3a3a3;margin:0 0 20px;font-weight:600;font-family:"Poppins",Arial,sans-serif}
.sitefooter ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;font-size:14px}
.sitefooter a{color:#434343}
.sitefooter a:hover{color:var(--teal)}
.footer-contact p{margin:0}
.footer-mail{font-family:"Outfit",Arial,sans-serif;font-size:clamp(19px,2vw,27px);letter-spacing:-.03em;display:block;margin-bottom:14px;line-height:1.3}
.footer-phone{font-size:15px;color:#434343;display:block}
.sitefooter .follow{margin-top:36px}
.socials{display:flex;gap:11px}
.socials a{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:#525252;transition:background .25s,color .25s,border-color .25s}
.socials a:hover{background:var(--teal);border-color:var(--teal);color:#fff}
.socials svg{width:17px;height:17px}

/* Mot de marque surdimensionné, avec une lumière qui court le long des lettres.
   Même technique que le pied de page Marvra : le ::after reprend le texte via
   attr(), ne peint que le contour, et un masque étroit se déplace dessus. */
.brandline-holder{position:relative;height:clamp(58px,11.5vw,165px);margin-top:56px;overflow:hidden}
.brandline{position:absolute;left:0;right:0;bottom:-.19em;text-align:center;white-space:nowrap;user-select:none;pointer-events:none;font-family:"Outfit",Arial,sans-serif;font-weight:500;font-size:min(21vw,280px);line-height:1;letter-spacing:-.055em;color:rgba(19,27,29,.055)}
.brandline::after{content:attr(data-text);position:absolute;inset:0;color:transparent;-webkit-text-stroke:1px rgba(76,152,213,.42);-webkit-mask-image:linear-gradient(100deg,transparent 40%,#000 50%,transparent 60%);mask-image:linear-gradient(100deg,transparent 40%,#000 50%,transparent 60%);-webkit-mask-size:280% 100%;mask-size:280% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:brand-sheen 9s linear infinite}
@keyframes brand-sheen{from{-webkit-mask-position:160% 0;mask-position:160% 0}to{-webkit-mask-position:-60% 0;mask-position:-60% 0}}

.footer-end{border-top:1px solid var(--line);margin-top:22px;padding-top:22px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#8a8a8a;flex-wrap:wrap}
.footer-end-links{display:flex;gap:18px}

/* dialogue rendez-vous */
dialog{border:0;border-radius:20px;padding:38px;max-width:450px;width:calc(100% - 32px);box-shadow:0 20px 120px #0003}
dialog::backdrop{background:#161616a8}
dialog h2{font-size:32px}
dialog p{font-size:14px;color:var(--muted)}
.close{float:right;background:#f5f5f5;border-radius:50%;width:32px;height:32px;font-size:20px;margin:-20px -20px 10px 10px}

/* animations */
.reveal{animation:appear .8s both}
.outline{stroke-dasharray:1500;stroke-dashoffset:1500;animation:trace 3s ease forwards}
.implant-crown{animation:seat 5s ease-in-out infinite}
.paused *,.paused *::before,.paused *::after{animation-play-state:paused!important}
@keyframes float{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-14px) rotate(1deg)}}
@keyframes trace{to{stroke-dashoffset:0}}
@keyframes appear{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes seat{0%,100%{transform:translateY(-12px)}50%{transform:translateY(0)}}

/* ---------- adaptatif ---------- */
@media(min-width:1600px){.hero-grid{min-height:700px}}
@media(max-width:1100px){
  .family-grid,.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .family.wide{grid-column:span 2}
  .journey{grid-template-columns:repeat(2,1fr);gap:24px}
  .footer-grid{grid-template-columns:1fr 1fr;gap:34px}
}
@media(max-width:1000px){
  .wrap{width:calc(100% - 56px)}
  .navwrap{gap:14px}
  .navlinks{display:none}
  .hero-grid{min-height:560px}
  .hero h1{font-size:60px}
  .hero-art{height:390px}
  .pagehero-grid{grid-template-columns:1fr;gap:20px;padding:40px 0 70px}
  .pagehero-art{order:2;height:320px}
  .services-layout{grid-template-columns:160px 1fr;gap:20px}
  .smile-grid{gap:45px}
  .callout{max-width:180px}
  .implant-art{width:390px}
  .section-head{gap:35px}
  .treatment{grid-template-columns:1fr;gap:12px}
  .ctaband .wrap{display:block}
  .ctaband .actions{margin-top:28px}
}
@media(max-width:700px){
  .wrap{width:calc(100% - 32px)}
  .hero{margin:7px 7px 0;border-radius:16px 16px 35px 35px}
  .nav{height:80px}
  .brand strong{font-size:14px}
  .brand small{font-size:7px}
  .brand svg{width:27px}
  .nav .pill{font-size:11px;padding:13px 16px;gap:10px}
  .navwrap>.pill{display:none}
  .navleft{gap:14px}
  .burger-label{display:none}
  .burger{padding:11px 12px;gap:0}
  .hero-grid{grid-template-columns:1fr;padding:45px 0 65px;gap:5px}
  .eyebrow{font-size:9px;margin-bottom:22px}
  .hero h1{font-size:50px;margin-bottom:22px}
  .hero-copy>p{font-size:14px;max-width:310px}
  .actions{gap:14px}
  .pill{font-size:12px;padding:15px 18px;gap:13px}
  .signature{margin-top:24px}
  .hero-art{height:340px;margin-top:20px}
  .hero-art>svg{height:340px}
  .artlabel{font-size:8px}
  .motion-toggle{bottom:20px;right:20px}
  .pagehero h1{font-size:40px}
  .section{padding:70px 0}
  .section.pale,.ctaband{margin-left:7px;margin-right:7px;border-radius:22px}
  .section-head{display:block;margin-bottom:28px}
  .section-head h2{font-size:37px}
  .section-head>p{margin-top:24px;max-width:100%;font-size:14px}
  .services-layout{grid-template-columns:1fr;gap:22px}
  .services-aside{flex-direction:row;align-items:center;gap:20px;padding:0}
  .services-aside p{max-width:210px;font-size:12px;margin:0}
  .service-controls{flex-shrink:0}
  .cards{gap:10px;overflow:auto;display:flex;scroll-snap-type:x mandatory;padding:6px 0}
  .card{min-width:75%;min-height:285px;scroll-snap-align:start}
  .service-detail{display:block}
  .service-detail p{margin-top:10px}
  .smile{margin:0 7px;border-radius:22px}
  .smile-grid{grid-template-columns:1fr;gap:38px}
  .smile-art svg{max-height:330px}
  .smile-copy h2{font-size:39px}
  .implant-stage{height:auto;display:flex;flex-wrap:wrap;gap:20px}
  .implant-stage:before,.implant-stage:after{display:none}
  .implant-art{order:-1;width:100%;height:360px}
  .callout{position:static;max-width:none;width:calc(50% - 10px)}
  .callout h3{font-size:12px}
  .callout p{font-size:11px;padding-left:0}
  .implant-caption{margin-top:25px;line-height:1.6}
  .family-grid,.post-grid{grid-template-columns:1fr}
  .family.wide{grid-column:span 1;flex-direction:column;align-items:flex-start}
  .facts{grid-template-columns:1fr;gap:12px}
  .journey{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:30px}
  .sitefooter{padding-top:64px}
  .brandline-holder{height:clamp(44px,17vw,90px);margin-top:40px}
  .brandline{font-size:23vw}
  .footer-end{gap:12px}
  .ctaband{padding:60px 0}
  dialog{padding:30px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none!important;transition:none!important}
  .outline{stroke-dashoffset:0}
  .brandline::after{-webkit-mask-image:none;mask-image:none;-webkit-text-stroke-color:rgba(19,27,29,.07)}
}

/* ---------- ajouts ---------- */
.pending{background:#fdf3e2;color:#8a6a2c;border-radius:20px;padding:4px 12px;font-size:11px;display:inline-block}

/* ---------- panneau de navigation latéral (comme marvra.com, ouvert à gauche) ---------- */
.menu-overlay{position:fixed;inset:0;background:#161616a6;backdrop-filter:blur(2px);z-index:90;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s}
.menu-overlay.open{opacity:1;visibility:visible;transition:opacity .3s ease}
.menu-drawer{position:fixed;top:0;left:0;bottom:0;width:min(92vw,460px);background:#1c1c1c;color:#e9e9e9;z-index:100;display:flex;flex-direction:column;gap:26px;padding:28px 34px 34px;overflow-y:auto;overscroll-behavior:contain;transform:translateX(-100%);visibility:hidden;transition:transform 420ms cubic-bezier(.16,1,.3,1),visibility 0s linear 420ms}
.menu-drawer.open{transform:none;visibility:visible;transition:transform 420ms cubic-bezier(.16,1,.3,1)}
.menu-top{display:flex;justify-content:space-between;align-items:center}
.menu-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#a3a3a3}
.menu-close{background:#ffffff14;color:#fff;width:40px;height:40px;border-radius:50%;font-size:22px;line-height:1;transition:background .25s}
.menu-close:hover{background:#ffffff2e}
.menu-primary{display:flex;flex-direction:column}
.menu-primary a{font-family:"Outfit",Arial,sans-serif;font-size:clamp(23px,4.2vw,31px);letter-spacing:-.04em;padding:7px 0;color:#f6f6f6;transition:color .2s ease,padding-left .3s ease}
.menu-primary a:hover{color:#c2c2c2;padding-left:9px}
.menu-services h3{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#a3a3a3;margin:0 0 14px;font-weight:600;font-family:"Poppins",Arial,sans-serif}
.menu-services-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px 16px}
.menu-services-grid a{display:flex;align-items:center;gap:9px;font-size:12.5px;line-height:1.3;color:#bebebe;transition:color .2s ease}
.menu-services-grid a:hover{color:#fff}
.menu-services-grid svg{width:18px;height:18px;color:#787878;flex:none}
.menu-foot{margin-top:auto;display:flex;flex-direction:column;gap:16px;border-top:1px solid #ffffff1a;padding-top:22px;align-items:flex-start}
.menu-contact{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#b5b5b5}
.menu-contact a:hover{color:#fff}
.menu-social{display:flex;gap:16px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#a3a3a3}
body.menu-open{overflow:hidden}
@media(max-width:700px){.menu-drawer{padding:22px 24px 28px;gap:22px}.menu-services-grid{grid-template-columns:1fr}}

/* ---------- barre d'entete claire (toutes les pages) ---------- */
.topbar{position:sticky;top:0;z-index:40;background:linear-gradient(180deg,#fefefe 0%,#fefefe 58%,rgba(253,254,254,0) 100%);transition:background .3s ease,box-shadow .3s ease}
.topbar.is-scrolled{background:#fff;box-shadow:0 8px 24px rgba(12,60,66,.06)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:86px}
.topbar .brand{color:var(--ink)}
.topbar .brand svg{color:var(--teal)}
.topbar .brand small{color:#a3a3a3}
.topbar .navlinks{display:flex;gap:28px;font-size:13px;align-items:center}
.topbar .navlinks a{color:#494949;opacity:1;border-bottom:1px solid transparent;padding-bottom:3px}
.topbar .navlinks a:hover,.topbar .navlinks a[aria-current="page"]{color:var(--teal);border-bottom-color:currentColor}
.topbar .burger{background:#f5f5f5;color:var(--ink)}
.topbar .burger:hover{background:#e3e3e3}
.topbar-cta{flex:none}

/* ---------- hero clair de l'accueil ---------- */
:root{--topbar-h:86px}
.herolight{background:linear-gradient(170deg,#ffffff 0%,#fcfcfc 55%,#f6f6f6 100%);padding:clamp(10px,2.2vh,34px) 0 clamp(14px,2.4vh,34px);position:relative;overflow:hidden;min-height:calc(100dvh - var(--topbar-h));display:grid;grid-template-rows:1fr auto;align-items:center;margin-top:calc(var(--topbar-h) * -1);padding-top:calc(var(--topbar-h) + clamp(6px,1.4vh,20px))}
.herolight-grid{grid-area:1/1;display:flex;align-items:center;min-height:0;width:min(1240px,calc(100% - 96px));margin:auto}
.herolight-copy{position:relative;z-index:2}
.eyebrow-rule{display:block;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#787878;font-weight:600;margin-bottom:24px}
.herolight h1{font-size:clamp(38px,4.3vw,62px);letter-spacing:-.05em;margin-bottom:20px}
.herolight h1 em{font-style:normal;color:var(--teal)}
.herolight-copy{max-width:min(560px,44vw)}
.herolight-copy>p{font-size:16px;color:var(--muted);max-width:430px;margin-bottom:32px}
.pill.outline{background:#fff;color:var(--ink);border:1px solid var(--line);gap:12px}
.pill.outline:hover{background:#fff;border-color:var(--teal);color:var(--teal)}
.play{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--pale);color:var(--teal);font-size:9px;flex:none}

.herolight-media{grid-area:1/1;justify-self:end;align-self:stretch;position:relative;width:min(52vw,1080px);margin-top:calc((var(--topbar-h) + clamp(6px,1.4vh,20px)) * -1);overflow:hidden;z-index:1}
.hero-media{margin:0;position:absolute;inset:0;display:block}
.hero-media img{-webkit-mask-image:linear-gradient(95deg,transparent 0,rgba(0,0,0,.45) 9%,#000 24%);mask-image:linear-gradient(95deg,transparent 0,rgba(0,0,0,.45) 9%,#000 24%)}
.hero-media[hidden]{display:none}
.hero-media img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:50% 46%}

.hero-thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-media-placeholder{display:grid;place-items:center;gap:14px;width:100%}
.hero-media-placeholder svg{width:100%;max-width:430px}
.media-note{font-size:11px;color:#8a8a8a;background:#fff;border:1px dashed #d6d6d6;border-radius:10px;padding:8px 13px;text-align:center}
.media-note code{font-size:11px;color:var(--teal)}
.hero-label{position:absolute;display:grid;gap:3px;max-width:190px;z-index:3}
.hero-label strong{font-family:"Outfit",Arial,sans-serif;font-weight:500;font-size:13px;color:var(--ink);letter-spacing:-.01em;line-height:1.35;text-shadow:0 1px 3px rgba(255,255,255,.95),0 2px 12px rgba(255,255,255,.9)}
.hero-label span{font-size:11.5px;line-height:1.5;color:#696969;text-shadow:0 1px 3px rgba(255,255,255,.95),0 2px 12px rgba(255,255,255,.9)}
.hero-label:after{content:"";position:absolute;top:9px;width:56px;height:1px;background:#c4c4c4}
.hero-label:before{content:"";position:absolute;top:6px;width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 3px rgba(76,152,213,.14)}
.hero-label-badge{width:34px;height:34px;border-radius:50%;border:1px solid #dedede;background:#fff;display:grid;place-items:center;color:var(--teal)}
.hero-label-badge svg{width:16px;height:16px}
.hero-label-text{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;line-height:1.85;color:#767676}
.hero-label:after{content:"";position:absolute;top:17px;width:64px;height:1px;background:#d4d4d4}
.hero-label:before{content:"";position:absolute;top:14px;width:7px;height:7px;border-radius:50%;border:1px solid #b8b8b8;background:#fff}
.hero-label:before{content:"";display:block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-bottom:7px}
.hero-label--a{top:15%;left:4%}
.hero-label--a:after{left:calc(100% + 14px)}
.hero-label--a:before{left:calc(100% + 70px)}
.hero-label--b{top:34%;right:3%}
.hero-label--b:after{right:calc(100% + 14px)}
.hero-label--b:before{right:calc(100% + 70px)}
.hero-label--c{bottom:15%;right:3%}
.hero-label--c:after{right:calc(100% + 14px)}
.hero-label--c:before{right:calc(100% + 70px)}

.herolight-bottom{grid-area:2/1;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;border-top:1px solid #e4e4e4;padding-top:clamp(14px,2vh,26px);margin-top:clamp(12px,2vh,22px);position:relative;z-index:2}
.herofeatures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;flex:1}
.herofeature{display:grid;gap:6px;font-size:12px;color:var(--muted);align-content:start}
.herofeature-icon{width:42px;height:42px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--teal);margin-bottom:8px;transition:background .25s,color .25s,border-color .25s}
.herofeature-icon svg{width:20px;height:20px}
.herofeature:hover .herofeature-icon{background:var(--teal);color:#fff;border-color:var(--teal)}
.herofeature strong{font-family:"Outfit",Arial,sans-serif;font-size:14px;font-weight:500;color:var(--ink)}
.heroslider{display:flex;align-items:center;gap:20px;flex:none}
.heroslider-dots{display:flex;gap:13px}
.heroslider-dots button{background:none;font-size:12px;color:#a2a2a2;padding:3px 0;border-bottom:1px solid transparent}
.heroslider-dots button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--teal)}
.heroslider-arrows{display:flex;gap:9px}


@media(max-width:1100px){
  .herofeatures{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
}
@media(max-width:1000px){
  :root{--topbar-h:74px}
  .topbar .navlinks{display:none}
  .topbar-inner{height:74px}
  .herolight{min-height:0;margin-top:0;padding-top:clamp(18px,3vh,34px)}
  .herolight{display:flex;flex-direction:column}
  .herolight-grid{order:1}
  .herolight-media{order:2}
  .herolight-bottom{order:3}
  .herolight-grid{display:block;width:calc(100% - 56px)}
  .herolight-copy{max-width:none}
  /* largeur explicite : les enfants sont tous en position absolue, une largeur
     auto ferait retomber le panneau a zero */
  .herolight-media{grid-area:auto;justify-self:stretch;align-self:auto;width:100%;margin:22px 0 0;height:clamp(250px,42vh,380px)}
  .hero-media img{-webkit-mask-image:none;mask-image:none;object-position:50% 50%}
  .herolight-bottom{display:block}
  .heroslider{margin-top:26px;justify-content:space-between}
}
@media(max-width:700px){
  :root{--topbar-h:66px}
  .topbar-cta{display:none}
  .topbar-inner{height:66px}
  .herolight{padding:34px 0 30px}
  .herolight h1{font-size:40px}
  .herolight-copy>p{font-size:15px;margin-bottom:26px}
  .hero-media{min-height:280px}
  .hero-label{display:none}
  .herofeatures{grid-template-columns:1fr 1fr;gap:16px}
  .herofeature{font-size:11px}

}


.herolight-media:has(.hero-media.is-cutout:not([hidden]))::before{background:radial-gradient(circle at 50% 47%,#aaaaaa 0%,#bebebe 34%,rgba(190,220,219,.7) 56%,rgba(238,246,245,0) 74%)}
.herolight-media:has(.hero-media.is-cutout:not([hidden]))::after{opacity:.55}

/* Image detouree (fond transparent) : sans un leger voile, un sujet blanc
   disparait sur la page blanche. Lavis neutre tres clair, facon fond studio,
   plus une ombre portee sous le sujet. Aucun aplat colore. */
.hero-media.is-cutout:before{content:"";position:absolute;inset:0;background:radial-gradient(60% 56% at 55% 48%,#d8d8d8 0%,rgba(219,235,235,.72) 46%,rgba(255,255,255,0) 78%)}
/* sujet detoure : on le montre entier (il a ses propres marges), la page
   fournit le fond. Une image qui porte son fond, elle, remplit le panneau. */
.hero-media.is-cutout img{position:relative;z-index:1;filter:brightness(1.04) contrast(1.05)}

/* ---------- mega menu des soins ---------- */
.navlinks-trigger{background:none;color:#494949;font-size:13px;display:inline-flex;align-items:center;gap:7px;padding:3px 0;border-bottom:1px solid transparent}
.navlinks-trigger:hover,.navlinks-trigger[aria-expanded="true"]{color:var(--teal);border-bottom-color:currentColor}
.navlinks-trigger .chevron{font-size:13px;line-height:1;transition:transform .25s ease}
.navlinks-trigger[aria-expanded="true"] .chevron{transform:rotate(180deg)}
.megamenu{position:absolute;top:100%;left:0;right:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 22px 40px rgba(12,60,66,.08);z-index:39}
.megamenu[hidden]{display:none}
.megamenu-inner{padding:34px 0 26px}
.megamenu-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px 30px}
.megacol-head{display:flex;align-items:center;gap:9px;font-family:"Outfit",Arial,sans-serif;font-size:14px;color:var(--ink);padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:11px}
.megacol-head:hover{color:var(--teal)}
.megacol-head svg{width:19px;height:19px;color:var(--teal);flex:none}
.megacol ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
.megacol a{font-size:12.5px;color:#696969;line-height:1.4}
.megacol li a:hover{color:var(--teal)}
.megacol em{font-style:normal;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#a58436;background:#fdf3e2;border-radius:20px;padding:1px 7px;margin-left:5px}
.megamenu-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);margin-top:26px;padding-top:20px}
@media(max-width:1200px){.megamenu-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1000px){.megamenu{display:none}}

/* arborescence du panneau lateral */
.menu-tree{display:flex;flex-direction:column;gap:18px}
.menu-branch-head{display:flex;align-items:center;gap:9px;font-family:"Outfit",Arial,sans-serif;font-size:14.5px;color:#f6f6f6;margin-bottom:8px}
.menu-branch-head svg{width:18px;height:18px;color:#787878;flex:none}
.menu-branch ul{list-style:none;margin:0;padding:0 0 0 27px;display:flex;flex-direction:column;gap:6px}
.menu-branch li a{font-size:12.5px;color:#b5b5b5}
.menu-branch li a:hover{color:#fff}

/* Generated service illustrations, 24 September 2026. */
#cards .card{background:#f5f5f5}
#cards .service-image{height:285px;object-fit:cover;object-position:center}
#cards .card-bottom{z-index:1}
#cards .card-bottom strong{background:rgba(255,255,255,.94);padding:7px 10px;border-radius:7px}
/* Homepage editorial composition — reference supplied 24/09/2026.
   Scoped to .home so interior pages keep their existing layouts. */
.home .wrap{width:min(1140px,calc(100% - 96px))}
.home main>.section{padding:64px 0}
.home main h2{font-size:clamp(32px,3.2vw,44px);line-height:1.04;letter-spacing:-.045em}
.home main .eyebrow{font-size:10px;letter-spacing:.14em;margin-bottom:13px;color:var(--teal)}
.home main .section-head{gap:44px;margin-bottom:26px}
.home main .section-head>p{font-size:12px;max-width:345px}
.home main .pill{padding:13px 19px;font-size:11px;gap:14px}
.home .herolight{min-height:660px;height:min(780px,100dvh)}
.home .herolight-grid{width:min(1140px,calc(100% - 96px))}
.home .herolight h1{font-size:clamp(42px,4.2vw,60px)}
.home .herolight-copy>p{font-size:14px}
.home #soins .services-layout{display:block;position:relative}
.home #soins .services-aside{display:block;padding:0}
.home #soins .services-aside>p{display:none}
.home #soins .service-controls{position:absolute;left:-48px;right:-48px;top:37%;justify-content:space-between;pointer-events:none}
.home #soins .service-controls button{pointer-events:auto;width:34px;height:34px;font-size:17px;background:#f6f6f6;color:var(--teal);transition:background .2s}
.home #soins .service-controls button:hover{background:#e5e5e5}
.home #cards{gap:18px}
.home #cards .card{min-height:0;background:white;border:1px solid #e5e5e5;border-radius:9px;box-shadow:var(--card-shadow)}
.home #cards .service-image{height:190px;object-fit:cover;object-position:center 38%;background:#f5f5f5}
.home #cards .card-bottom{position:relative;inset:auto;display:flex;align-items:flex-start;padding:17px 18px;gap:12px;background:white;min-height:100px}
.home #cards .card-caption{display:block;width:auto;height:auto;border-radius:0;background:transparent;flex:1}
.home #cards .card-bottom strong{display:block;background:transparent;border-radius:0;padding:0;max-width:none;font-size:18px;line-height:1.2;margin-bottom:7px}
.home #cards .card-bottom small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.6}
.home #cards .card-arrow{color:var(--teal);background:#f6f6f6;width:25px;height:25px;flex:none}
.home #soins .service-detail{display:none}
.home .editorial-smile{position:relative;isolation:isolate;margin:0;border-radius:0;min-height:375px;display:flex;align-items:center;overflow:hidden;background:#f5f5f5}
.home .smile-panorama{position:absolute;z-index:-2;inset:0 0 0 auto;width:76%;height:100%;object-fit:cover;object-position:center 55%}
.home .editorial-smile:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#f5f5f5 0%,#f5f5f5 23%,#f5f5f5e8 35%,transparent 61%);pointer-events:none}
.home .editorial-smile .smile-copy{width:36%;max-width:390px}
.home .editorial-smile h2{margin-bottom:20px}
.home .editorial-smile p{font-size:13px;margin-bottom:24px}
.home .smile-project{display:grid;grid-template-columns:1fr 1.15fr .85fr;align-items:center;gap:30px}
.home .project-copy p{font-size:12px;color:var(--muted);max-width:310px}
.home .project-visual{overflow:hidden;border-radius:50%}
.home .project-visual img{width:100%;height:295px;object-fit:cover;object-position:center 35%;mask-image:radial-gradient(ellipse at center,black 44%,transparent 72%)}
.home .project-points{display:grid;gap:22px}
.home .project-points>div{display:flex;gap:13px;align-items:flex-start}
.home .project-points>div>span{display:grid;place-items:center;border-radius:50%;width:34px;height:34px;flex:none;background:#f2f2f2;color:var(--teal);font-size:19px}
.home .project-points h3{font-size:15px;margin:0 0 6px}
.home .project-points p{font-size:11px;color:var(--muted);margin:0}
.home #tous-les-soins{margin:0;border-radius:0;background:#fafafa}
.home .family-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.home .family{min-height:170px;padding:20px 16px 16px;gap:9px;border-radius:8px;border:1px solid #e9e9e9;background:#fff;position:relative}
.home .family svg{width:26px;height:26px}
.home .family h3{font-size:15px}
.home .family p{font-size:10px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.home .family-more{font-size:10px}
.home #cabinet .smile-grid{grid-template-columns:.85fr 1.35fr;gap:64px}
.home #cabinet .smile-copy p{font-size:12px}
.home #cabinet .smile-copy p+p{display:none}
.home .cabinet-visual{margin:0}
.home .cabinet-visual img{height:285px;width:100%;object-fit:cover;object-position:right center;border-radius:8px}
.home .cabinet-visual figcaption{font-size:9px;color:#6e6e6e;margin-top:10px}
.home #questions{display:grid;grid-template-columns:.7fr 1.3fr;gap:0 65px;padding-top:20px}
.home #questions>.eyebrow{grid-column:1}
.home #questions .section-head{grid-column:1;display:block}
.home #questions .section-head p{margin-top:18px}
.home #questions .faq{grid-column:2;grid-row:1 / span 2;max-width:none}
.home .faq summary{font-size:15px;padding:17px 0}
.home .faq details p{font-size:12px}
.home #blog{padding-top:20px}
.home .post-grid{gap:18px}
.home .post{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:white}
.home .post-art{width:100%;height:150px;object-fit:cover;object-position:center 37%}
.home .post-body{padding:17px}
.home .post h3{font-size:18px;margin:9px 0}
.home .post p{font-size:11px;line-height:1.6}
.home .post .meta{font-size:9px}
.home .ctaband{width:min(1260px,calc(100% - 48px));margin:0 auto 30px;border-radius:12px;padding:30px 0}
.home .ctaband .wrap{width:calc(100% - 64px);gap:30px}
.home .ctaband h2{font-size:34px;margin-bottom:8px}
.home .ctaband p{font-size:12px;margin:0}
.home .ctaband .eyebrow{margin-bottom:10px}
.home .ctaband .actions{gap:10px}
.home .ctaband .pill{font-size:11px;padding:14px 18px}
.home .sitefooter{padding-top:45px}
.home .sitefooter ul{font-size:12px;gap:9px}
.home .sitefooter h3{margin-bottom:15px}
@media(max-width:1100px) and (min-width:701px){
.home .family-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.home .smile-project{grid-template-columns:1fr 1fr}
.home .project-points{grid-column:1 / -1;grid-template-columns:repeat(3,1fr)}
.home .editorial-smile .smile-copy{width:45%}
}
@media(max-width:999px){
.home .herolight{height:auto;min-height:0}
.home .herolight-grid{width:calc(100% - 56px)}
}
@media(max-width:700px){
.home .wrap{width:calc(100% - 40px)}
.home main>.section{padding:44px 0}
.home main h2{font-size:34px}
.home main .section-head{display:block}
.home main .section-head>p{margin-top:16px;font-size:12px}
.home .herolight h1{font-size:40px}
.home .herolight-copy>p{font-size:14px}
.home #soins .services-layout{padding-top:42px}
.home #soins .service-controls{top:0;left:auto;right:0;gap:8px}
.home #cards{gap:12px;padding:0 0 8px;scroll-padding:0}
.home #cards .card{min-width:86%;max-width:86%}
.home #cards .service-image{height:175px}
.home #cards .card-bottom{padding:15px;min-height:94px}
.home #cards .card-bottom strong{font-size:17px}
.home .editorial-smile{min-height:530px;align-items:flex-start}
.home .editorial-smile .smile-copy{width:100%;max-width:390px}
.home .editorial-smile .smile-copy p{max-width:310px}
.home .smile-panorama{width:100%;height:280px;top:auto;bottom:0;object-position:right center}
.home .editorial-smile:after{background:linear-gradient(180deg,#f5f5f5 0%,#f5f5f5 40%,transparent 67%)}
.home .smile-project{grid-template-columns:1fr;gap:24px}
.home .project-copy h2 br{display:none}
.home .project-copy p{max-width:none}
.home .project-visual img{height:240px}
.home .project-points{gap:18px}
.home .project-points p{font-size:12px}
.home .family-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.home .family{padding:16px 12px;min-height:182px}
.home .family h3{font-size:15px}
.home .family p{font-size:11px}
.home #cabinet .smile-grid{grid-template-columns:1fr;gap:25px}
.home #cabinet .cabinet-visual img{height:220px}
.home #questions{display:block}
.home #questions .faq{margin-top:25px}
.home .faq summary{font-size:15px}
.home .post-grid{grid-template-columns:1fr}
.home .post-art{height:180px}
.home .post p{font-size:12px}
.home .ctaband{width:calc(100% - 24px);padding:28px 0;margin-bottom:20px}
.home .ctaband .wrap{width:calc(100% - 36px);display:block}
.home .ctaband h2{font-size:30px}
.home .ctaband .actions{margin-top:20px;display:flex;flex-wrap:wrap}
.home .ctaband .pill{white-space:normal}
}
.home #cards .card-caption{text-align:left}
@media(max-width:700px){
.home main>.editorial-smile{padding:36px 0 0;min-height:0;display:flex;flex-direction:column;align-items:stretch}
.home .editorial-smile>.wrap{order:1;position:relative;z-index:1}
.home .editorial-smile>.smile-panorama{order:2;position:relative;inset:auto;z-index:0;width:100%;height:250px;margin-top:24px;object-fit:cover;object-position:right center}
.home .editorial-smile:after{display:none}
}
/* Circular-disc CTA: Marvra's 220ms arrow rotation, dental brand colors. */
body .pill.arrow-button{
 display:inline-flex;align-items:center;justify-content:space-between;gap:18px;
 min-height:48px;padding:5px 5px 5px 20px;border:1px solid transparent;
 border-radius:999px;background:var(--teal);color:white;line-height:1.25;
 transition:background-color .22s,color .22s,border-color .22s;
}
.pill.arrow-button .button-label{min-width:0}
.pill.arrow-button .button-disc{
 display:flex;align-items:center;justify-content:center;flex:0 0 auto;
 width:36px;height:36px;border-radius:50%;background:white;color:var(--teal);
 transition:background-color .22s,color .22s;
}
.pill.arrow-button .button-disc svg{width:16px;height:16px;transition:transform .22s cubic-bezier(.16,1,.3,1)}
body .pill.arrow-button:is(:hover,:focus-visible){background:var(--ink);border-color:var(--ink);color:white}
.pill.arrow-button:is(:hover,:focus-visible) .button-disc{background:white;color:var(--ink)}
.pill.arrow-button:is(:hover,:focus-visible) .button-disc svg{transform:rotate(-45deg)}
body .pill.arrow-button:is(.white,.outline){background:white;color:var(--teal);border-color:var(--line)}
.pill.arrow-button:is(.white,.outline) .button-disc{background:var(--teal);color:white}
body .pill.arrow-button:is(.white,.outline):is(:hover,:focus-visible){background:var(--teal);color:white;border-color:var(--teal)}
.pill.arrow-button:is(.white,.outline):is(:hover,:focus-visible) .button-disc{background:white;color:var(--teal)}
body .pill.arrow-button.ghost{background:transparent;color:inherit;border-color:currentColor}
body .pill.arrow-button.ghost:is(:hover,:focus-visible){background:white;color:var(--teal);border-color:white}
.pill.arrow-button:disabled{opacity:.5;cursor:default}
@media(max-width:700px){
 body .pill.arrow-button{max-width:100%;gap:12px;padding-left:16px;font-size:12px}
 .pill.arrow-button .button-label{white-space:normal;text-align:left}
}
@media(prefers-reduced-motion:reduce){
 body .pill.arrow-button,.pill.arrow-button .button-disc,.pill.arrow-button .button-disc svg{transition:none}
 .pill.arrow-button:is(:hover,:focus-visible) .button-disc svg{transform:none}
}
.paused .pill.arrow-button,.paused .pill.arrow-button .button-disc,.paused .pill.arrow-button .button-disc svg{transition:none}
.paused .pill.arrow-button:is(:hover,:focus-visible) .button-disc svg{transform:none}
/* Shared interior page templates. */
.interior .wrap{max-width:1140px}
.interior .inner-hero{background:#f5f5f5;padding:28px 0 48px}
.interior .breadcrumb{color:#6e6e6e;display:flex;flex-wrap:wrap;gap:10px;font-size:11px;margin:0 0 28px}
.interior .breadcrumb a{color:var(--teal)}
.inner-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.inner-hero-visual{overflow:hidden;border-radius:12px;background:#f1f1f1}
.inner-hero-visual img{width:100%;height:380px;object-fit:cover;display:block}
.inner-hero-copy h1{font-size:clamp(34px,3.7vw,52px);line-height:1.08;letter-spacing:-.045em;margin:12px 0 20px;overflow-wrap:break-word}
.inner-hero-copy>p{font-size:14px;line-height:1.85;color:var(--muted);max-width:490px}
.inner-hero-copy .actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:26px}
.interior .section{padding:64px 0}
.interior h2{font-size:40px;line-height:1.12;letter-spacing:-.035em}
.interior .section-head{gap:48px;margin-bottom:30px}
.interior .section-head>p{font-size:13px;max-width:400px}
.interior .section-nav{display:flex;gap:28px;flex-wrap:wrap;padding-top:22px;padding-bottom:22px;border-bottom:1px solid var(--line);font-size:12px;color:var(--teal)}
.interior .section-nav a:hover{text-decoration:underline;text-underline-offset:5px}
.interior .prose{font-size:15px;line-height:1.95;max-width:760px;color:#4d4d4d}
.interior .facts{margin-top:28px;gap:24px;padding:24px 0}
.interior .family-grid{gap:22px}
.interior .family{padding:0 0 22px;gap:12px;overflow:hidden;border:1px solid #e7e7e7;border-radius:10px;background:white;min-height:0}
.interior .family-image{width:100%;height:210px;object-fit:cover;display:block}
.interior .family :is(h3,p,.family-more){margin-left:22px;margin-right:22px}
.interior .family h3{font-size:21px;margin-top:5px}
.interior .family p{font-size:12px;line-height:1.8}
.interior .family-more{margin-top:8px}
.interior .family:hover{background:#f8f8f8;transform:translateY(-3px)}
.interior .journey{gap:28px;margin-top:32px}
.interior .journey li{border-top:2px solid #c6c6c6;padding-top:22px}
.interior .journey h3{font-size:21px;line-height:1.25;margin-bottom:12px}
.interior .journey p{font-size:12px;line-height:1.85}
.interior .faq{max-width:860px}
.interior .faq summary{font-size:19px;padding:22px 0}
.interior .faq p{font-size:13px;line-height:1.9}
.interior .treatment{gap:42px;padding:26px 0}
.interior .treatment h3{font-size:24px}
.interior .treatment p{font-size:14px;line-height:1.85}
.interior .smile-grid{gap:64px;align-items:start}
.interior .smile-grid .facts{grid-template-columns:1fr}
.interior .smile-grid p{font-size:14px;line-height:1.85}
.interior .post-grid{gap:22px}
.interior .post-art{width:100%;height:205px;object-fit:cover;display:block}
.interior .post h3{font-size:23px;line-height:1.2}
.interior .post p{font-size:12px;line-height:1.8}
.article-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:75px;align-items:start}
.article-toc{position:sticky;top:110px;border-top:1px solid var(--line);padding-top:24px}
.article-toc nav{display:grid;gap:16px;margin:20px 0 28px;font-size:12px;line-height:1.65}
.article-toc nav a:hover{color:var(--teal)}
.interior .article-prose h2{font-size:30px;margin:40px 0 16px;scroll-margin-top:120px}
.interior .article-prose h2:first-child{margin-top:0}
.interior .article-prose p{font-size:15px;line-height:1.95}
.interior .notice{font-size:12px;line-height:1.8;margin-bottom:30px}
.interior .ctaband{width:calc(100% - 48px);max-width:1320px;margin:24px auto 40px;border-radius:10px;padding:38px 0}
.interior .ctaband h2{font-size:34px;max-width:650px}
.interior .ctaband p{font-size:12px;max-width:550px}
.interior .ctaband .wrap{gap:30px}
.interior .ctaband .actions{flex-shrink:0}
@media(max-width:1000px){
 .inner-hero-grid{gap:30px}.inner-hero-visual img{height:330px}
 .interior .family-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .article-layout{grid-template-columns:200px minmax(0,1fr);gap:36px}
 .interior .ctaband .wrap{flex-wrap:wrap}
}
@media(max-width:700px){
 .interior .wrap{width:calc(100% - 40px)}
 .interior .inner-hero{padding:22px 0 34px}.interior .breadcrumb{font-size:10px;margin-bottom:22px}
 .inner-hero-grid{grid-template-columns:1fr;gap:26px}.inner-hero-visual img{height:240px}
 .inner-hero-copy h1{font-size:36px}.inner-hero-copy>p{font-size:13px}
 .interior .section{padding:42px 0}.interior h2{font-size:32px}
 .interior .section-head{display:block}.interior .section-head>p{margin-top:18px}
 .interior .section-nav{gap:16px;font-size:11px}
 .interior .family-grid,.interior .post-grid,.interior .smile-grid{grid-template-columns:1fr;gap:24px}
 .interior .family-image{height:220px}.interior .facts{grid-template-columns:1fr;gap:16px}
 .interior .journey{grid-template-columns:1fr;gap:26px}
 .article-layout{grid-template-columns:1fr;gap:32px}.article-toc{position:static}
 .article-toc nav{gap:12px}.interior .article-prose h2{font-size:27px}
 .interior .ctaband{width:calc(100% - 24px);padding:28px 0}.interior .ctaband h2{font-size:28px}
 .interior .ctaband .wrap{display:block}.interior .ctaband .actions{margin-top:22px}
}
@media(prefers-reduced-motion:reduce){.interior .family{transition:none}.interior .family:hover{transform:none}}
@media(max-width:700px){.interior .topbar-cta{display:none!important}.interior .topbar-inner{height:74px}.interior .navleft{gap:18px}.interior .brand strong{white-space:nowrap}.interior .brand small{font-size:6px}}

.interior .inner-hero-compact{padding-bottom:38px}.inner-hero-compact .inner-hero-grid{grid-template-columns:1fr}.inner-hero-compact .inner-hero-copy{max-width:780px}.interior :is(#main,#prestations,#journey-title,#faq-title){scroll-margin-top:110px}.interior .field{min-width:0}.interior .field :is(input,select,textarea){width:100%;min-width:0}
/* Complete service directory, inspired by the approved reference. */
.services-page em{font-style:normal;color:var(--teal)}
.services-hero{position:relative;background:#f3f3f3;overflow:hidden;min-height:380px;display:flex;align-items:center}
.services-hero-image{position:absolute;right:0;top:0;width:67%;height:100%;object-fit:cover;object-position:center}
.services-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f4f4f4 0%,#f4f4f4 34%,rgba(241,247,248,.9) 44%,transparent 65%)}
.services-hero-content{position:relative;z-index:1;padding:50px 0}
.services-hero h1{font-size:48px;line-height:1.08;letter-spacing:-.045em;max-width:510px;margin:14px 0 20px}
.services-hero h1 em{display:block}
.services-hero p{font-size:14px;line-height:1.85;max-width:450px;color:var(--muted)}
.services-hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.services-reassurance{display:flex;gap:22px;margin-top:28px;color:#626262;font-size:10px}
.services-reassurance span:before{content:"";display:inline-block;width:5px;height:5px;border:1px solid var(--teal);border-radius:50%;margin-right:7px}
.services-heading{text-align:center;margin:0 auto 32px;max-width:760px}
.services-heading h2{font-size:32px;margin:10px 0 12px}.services-heading p{font-size:12px;color:var(--muted)}
.specialty-directory{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.specialty-tile{border:1px solid #e6e6e6;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;background:#fcfcfc;transition:border-color .2s,box-shadow .2s}
.specialty-tile:hover{border-color:#d2d2d2;box-shadow:0 8px 24px #33333310}
.specialty-tile h3{display:flex;gap:9px;align-items:center;font-size:16px;line-height:1.25;margin:20px 15px 14px}
.specialty-tile h3 svg{width:23px;height:23px;flex:none;color:var(--teal)}
.specialty-tile ul{list-style:none;padding:0 15px;margin:0 0 18px;font-size:11px;line-height:1.5}
.specialty-tile li+li{margin-top:7px}.specialty-tile li a{display:block;color:#6d6d6d}.specialty-tile a:hover{color:var(--teal)}
.specialty-tile a:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.specialty-art{position:relative;display:block;margin-top:auto}.specialty-art img{width:100%;height:145px;object-fit:cover;display:block}
.specialty-art>span{position:absolute;right:10px;top:-16px;display:grid;place-items:center;background:white;color:var(--teal);border:1px solid #e4e4e4;border-radius:50%;width:33px;height:33px;transition:transform .22s}
.specialty-art:hover>span{transform:rotate(45deg)}
.services-design{background:#f3f3f3;padding:42px 0}.services-design-grid{display:grid;grid-template-columns:1.1fr 1.2fr .55fr;gap:30px;align-items:center}
.services-design h2{font-size:33px;margin:12px 0}.services-design p{font-size:12px;line-height:1.9;color:var(--muted)}.services-design .design-intro{font-size:15px;color:var(--ink)}
.services-design figure{margin:0}.services-design img{display:block;width:100%;height:270px;object-fit:cover;border-radius:10px}.services-design figcaption{font-size:9px;color:#757575;margin-top:10px;text-align:center}
.design-principles{list-style:none;margin:0;padding:0;display:grid;gap:25px;font-size:11px;color:#626262}.design-principles li{border-top:1px solid #d3d3d3;padding-top:12px}
.services-page .services-approach .journey h3{font-size:18px}.services-page .services-approach .journey p{font-size:12px}
.services-page .services-questions{padding-top:12px}.services-questions h2{font-size:32px;margin:10px 0}.services-questions .section-head{align-items:center}
.services-faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;align-items:start}
.services-faq-grid details{border-bottom:1px solid #e2e2e2;padding:16px 0}.services-faq-grid summary{cursor:pointer;list-style:none;display:flex;gap:16px;justify-content:space-between;font-size:13px}.services-faq-grid summary:after{content:"+";color:var(--teal)}.services-faq-grid details[open] summary:after{content:"−"}.services-faq-grid p{font-size:12px;line-height:1.9;color:var(--muted)}.services-faq-grid .textlink{font-size:11px}
#specialites{scroll-margin-top:105px}
@media(max-width:1100px){.specialty-directory{grid-template-columns:repeat(3,minmax(0,1fr))}.services-design-grid{grid-template-columns:1fr 1fr}.design-principles{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}}
@media(max-width:700px){
 .services-hero{display:block}.services-hero-image{position:relative;display:block;width:100%;height:230px;object-position:right center}.services-hero:after{display:none}.services-hero-content{padding:28px 0 32px}.services-hero h1{font-size:36px}.services-hero p{font-size:13px}.services-reassurance{gap:12px;flex-wrap:wrap;font-size:9px}
 .specialty-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.specialty-tile h3{font-size:16px;margin:17px 12px 12px;display:block}.specialty-tile h3 svg{display:block;margin-bottom:9px}.specialty-tile ul{padding:0 12px;font-size:12px}.specialty-tile li+li{margin-top:10px}.specialty-art img{height:140px}
 .services-heading h2{font-size:29px}.services-design-grid{grid-template-columns:1fr;gap:25px}.services-design h2{font-size:31px}.services-design img{height:240px}.design-principles{grid-template-columns:1fr 1fr;gap:18px}.services-faq-grid{grid-template-columns:1fr}.services-questions .section-head>a{margin-top:18px}
}
@media(max-width:400px){.specialty-directory{grid-template-columns:1fr}.specialty-tile h3{display:flex}.specialty-tile h3 svg{margin:0}.specialty-art img{height:180px}}
@media(prefers-reduced-motion:reduce){.specialty-tile,.specialty-art>span{transition:none}.specialty-art:hover>span{transform:none}}/* Parent specialty landing pages. */
.category-page em{font-style:normal;color:var(--teal)}
.category-hero{position:relative;overflow:hidden;background:#f3f3f3;min-height:365px}
.category-hero-image{position:absolute;right:0;top:0;width:55%;height:100%;object-fit:cover}
.category-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f4f4f4 0%,#f4f4f4 35%,rgba(241,247,248,.94) 43%,transparent 66%)}
.category-hero-content{position:relative;z-index:1;padding:25px 0 36px}.category-hero-copy{max-width:540px}.category-hero h1{font-size:48px;line-height:1.08;letter-spacing:-.04em;margin:14px 0 16px;color:var(--teal)}.category-hero-copy>p{max-width:480px;font-size:14px;line-height:1.8;color:var(--muted)}.category-hero .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.category-promises{display:flex;gap:20px;flex-wrap:wrap;font-size:10px;color:#7a7a7a;margin-top:24px}.category-promises span:before{content:"◇";color:var(--teal);margin-right:7px}
.category-heading{max-width:790px;margin:0 auto 28px;text-align:center}.category-page .category-heading h2{font-size:32px;margin:10px 0 12px}.category-heading>p{font-size:12px;line-height:1.85;color:var(--muted)}
.category-page .section{padding:48px 0}.category-offering-grid{display:grid;grid-template-columns:repeat(var(--offering-count),minmax(0,1fr));gap:18px}.category-offering{min-width:0;display:flex;flex-direction:column}.offering-picture{display:block;overflow:hidden;border-radius:10px;background:#f3f3f3}.offering-picture img{display:block;width:100%;height:170px;object-fit:cover;transition:transform .35s}.offering-picture:hover img{transform:scale(1.035)}.offering-copy{padding:15px 4px 0;display:flex;flex-direction:column;flex:1}.offering-copy h3{font-size:17px;line-height:1.25;margin:0 0 10px}.offering-copy p{font-size:12px;line-height:1.8;color:var(--muted);margin:0 0 15px}.offering-arrow{align-self:flex-end;margin-top:auto;width:32px;height:32px;display:grid;place-items:center;border:1px solid #cecece;border-radius:50%;color:var(--teal)}.offering-arrow:hover{background:var(--teal);color:white}
.category-benefits{background:#f4f4f4;border-radius:14px;padding:34px 28px}.category-benefits ul{list-style:none;padding:0;margin:28px 0 0;display:flex;gap:28px}.category-benefits li{flex:1;border-right:1px solid #eaeaea;padding-right:24px}.category-benefits li:last-child{border:0;padding-right:0}.category-benefits svg{width:36px;height:36px;color:var(--teal);padding:6px;background:white;border-radius:50%}.category-benefits p{font-size:14px;line-height:1.65;margin-bottom:0}
.category-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.step-picture{position:relative}.step-picture img{display:block;width:100%;height:165px;object-fit:cover;border-radius:10px}.step-picture span{position:absolute;top:10px;left:10px;display:grid;place-items:center;background:var(--teal);color:white;width:30px;height:30px;border-radius:50%;font-size:11px}.category-steps h3{font-size:18px;margin:16px 0 8px}.category-steps p{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.category-page .category-questions{padding-top:15px}.category-questions h2{font-size:32px;max-width:740px;margin:10px 0}.category-questions .section-head{align-items:center}.category-questions .pill{flex-shrink:0}
@media(max-width:1000px){.category-offering-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.category-hero-copy{max-width:55%}.category-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.category-hero{display:flex;flex-direction:column}.category-hero-image{position:relative;order:2;width:100%;height:230px}.category-hero:after{display:none}.category-hero-content{padding:24px 0 28px}.category-hero-copy{max-width:none}.category-hero h1{font-size:36px}.category-hero-copy>p{font-size:13px}.category-promises{gap:12px;font-size:9px}.category-page .category-heading h2,.category-questions h2{font-size:29px}.category-offering-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.offering-picture img{height:150px}.category-benefits{padding:28px 20px}.category-benefits ul{display:grid;gap:18px}.category-benefits li{border:0;border-top:1px solid #eaeaea;padding:16px 0 0}.category-steps{gap:24px 16px}.step-picture img{height:140px}.category-questions .section-head>a{margin-top:18px}}
@media(max-width:400px){.category-offering-grid,.category-steps{grid-template-columns:1fr}.offering-picture img,.step-picture img{height:210px}}
@media(prefers-reduced-motion:reduce){.offering-picture img{transition:none}.offering-picture:hover img{transform:none}}
.category-hero-image{object-fit:contain;background:#f3f3f3}.category-page .offering-picture img{object-fit:contain;background:#f3f3f3}
/* Treatment detail pages follow the approved editorial reference. */
.treatment-page em{font-style:normal;color:var(--teal)}
.treatment-page .section{padding:44px 0}
.treatment-page .category-heading h2{font-size:32px;margin:10px 0 12px}
.treatment-page .category-benefits{margin-top:44px;background:white;padding:0}
.treatment-intro{max-width:780px;margin:0 auto;font-size:13px;line-height:1.9;text-align:center;color:var(--muted)}
.treatment-page .category-benefits ul{gap:16px}
.treatment-page .category-benefits li{background:#f4f4f4;border:0;border-radius:10px;padding:24px;line-height:1.8}
.treatment-page .category-benefits p{font-size:13px}
.treatment-page .offering-picture img{object-fit:contain;background:#f3f3f3}
.treatment-design{background:#f4f4f4;padding:34px 0}.treatment-design-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.treatment-design h2{font-size:34px;margin:12px 0}.treatment-design p{font-size:13px;color:var(--muted);line-height:1.9}.treatment-design figure{margin:0}.treatment-design img{width:100%;height:270px;object-fit:contain;border-radius:12px}.treatment-design figcaption{font-size:10px;color:var(--muted);text-align:center;margin-top:8px}
@media(max-width:700px){.treatment-page .category-heading h2{font-size:29px}.treatment-page .category-benefits{padding:0}.treatment-page .category-benefits li{padding:20px}.treatment-design-grid{grid-template-columns:1fr;gap:24px}.treatment-design h2{font-size:29px}.treatment-design img{height:220px}}/* Transparent art sits on reusable brand surfaces rather than baked-in image backgrounds. */
:root{--surface-glow:radial-gradient(ellipse at 82% 22%,#dbdbdb 0%,#f5f5f5 42%,#fff 82%);--surface-dots:radial-gradient(#90909012 .7px,transparent .8px)}
body .herolight,body .category-hero,body .services-hero,body.interior .inner-hero{background:var(--surface-glow)}
body .category-hero:after,body .services-hero:after{background:linear-gradient(90deg,#f8f8f8 0%,#f8f8f8f2 32%,#f8f8f800 64%)}
body .category-hero-image,body .services-hero-image,body .inner-hero-visual,body .inner-hero-visual img{background:transparent;object-fit:contain}
body .inner-hero-visual{border-radius:0;overflow:visible}
body .category-hero-image{padding:18px 25px}
body .home .hero-media img{object-fit:contain;mask-image:none;-webkit-mask-image:none}
body.home .herolight-media{background:transparent}
body .specialty-art,body .offering-picture,body .step-picture,body .post-art,body .family-image{background:radial-gradient(ellipse at center,#e7e7e7,#fafafa 75%)}
body .specialty-art img,body .offering-picture img,body .step-picture img,body.interior .post-art,body.interior .family-image,body.home #cards .service-image{object-fit:contain;background:transparent;padding:10px}
body .specialty-tile{background:linear-gradient(145deg,#fff,#f5f5f5)}
body .services-design,body .treatment-design,body.home .editorial-smile{background:radial-gradient(ellipse at 70% 45%,#e3e3e3,transparent 65%),#f7f7f7}
body .category-benefits,body .pale,body .treatment-page .category-benefits li{background-color:#f6f6f6;background-image:var(--surface-dots),linear-gradient(135deg,#fff0,#e6e6e64d);background-size:18px 18px,100% 100%}
body .category-journey,body .services-approach,body.home #cabinet{background-image:radial-gradient(ellipse at 50% 100%,#90909008,transparent 70%)}
body .ctaband{background-image:repeating-radial-gradient(ellipse at 90% 140%,transparent 0,transparent 48px,#ffffff0a 49px,#ffffff0a 50px),linear-gradient(110deg,#707070,#909090 55%,#4c4c4c)}
body .services-design img,body .treatment-design img,body.home .smile-panorama{object-fit:contain;background:transparent}
body.home .editorial-smile:after{display:none}
body.home .editorial-smile .smile-panorama{width:58%;right:0;left:auto}
@media(max-width:700px){body .category-hero:after,body .services-hero:after{display:none}body.home .editorial-smile .smile-panorama{width:100%}body .category-hero-image{padding:8px 20px}}
.nav-services-group{display:flex;align-items:center;gap:3px}.topbar .nav-services-group .navlinks-trigger{min-width:32px;min-height:36px;padding:6px}.nav-services-group>a{white-space:nowrap}

/* Complete services directory, following the approved overview reference. */
.services-directory-page .services-hero{min-height:360px}
.services-directory-page .services-hero-image{width:56%;right:0;padding:10px 28px;object-fit:contain}
.services-directory-page .services-hero-content{padding:42px 0}
.services-directory-page .services-hero h1{font-size:clamp(34px,3.6vw,48px);max-width:530px}
.services-directory-page .services-hero h1 em{display:inline}
.services-directory-page .services-hero p{max-width:450px}
.services-directory-page .services-reassurance{list-style:none;padding:0;gap:23px;display:flex;margin:26px 0 0}
.services-directory-page .services-reassurance li:before{content:'◇';color:var(--teal);margin-right:7px}
.services-directory-page .section{padding-top:44px;padding-bottom:44px}
.services-directory-page .services-heading{margin-bottom:28px}
.services-directory-page .services-heading h2{font-size:30px;letter-spacing:-.025em}
.services-directory-page .specialty-directory{gap:16px}
.services-directory-page .specialty-tile{border-color:#ebebeb;border-radius:12px;background:linear-gradient(155deg,#fff 32%,#f2f2f2)}
.services-directory-page .specialty-tile h3{font-size:15px;margin:18px 14px 12px;min-height:38px}
.services-directory-page .specialty-tile ul{font-size:12px;line-height:1.45;margin-bottom:15px;padding:0 14px}
.services-directory-page .specialty-tile li+li{margin-top:6px}
.services-directory-page .specialty-art{background:transparent;overflow:visible}
.services-directory-page .specialty-art img{height:154px;padding:4px 8px;object-fit:contain}
.services-directory-page .specialty-art>span{top:auto;bottom:12px;right:12px;box-shadow:0 3px 14px #90909012}
.services-directory-page .services-design{padding:35px 0;background:linear-gradient(100deg,#f5f5f5,#fff 52%,#f2f2f2)}
.services-directory-page .services-design img{height:260px;object-fit:contain}
.services-directory-page .design-principles li{position:relative;padding:0 0 0 22px;border:0;line-height:1.6}
.services-directory-page .design-principles li:before{content:'◇';position:absolute;left:0;color:var(--teal)}
.directory-approach{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;list-style:none;margin:0;padding:0}
.directory-approach li{display:flex;align-items:flex-start;gap:12px}
.approach-icon{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;background:#f5f5f5;color:var(--teal)}
.approach-icon svg{width:25px;height:25px}
.directory-approach h3{font-size:15px;line-height:1.35;margin:4px 0 8px}.directory-approach p{font-size:12px;line-height:1.8;margin:0;color:var(--muted)}
.services-directory-page .services-questions{padding-top:25px}.services-directory-page .services-questions .section-head p{font-size:12px}
.services-directory-page .ctaband{max-width:1140px;margin:0 auto 28px;border-radius:15px;overflow:hidden}
/* Shared explanatory steps use typography instead of repeating stock illustrations. */
.step-number{font:500 35px/1 'Outfit',sans-serif;color:var(--teal);padding:20px 0;border-top:1px solid #d7d7d7;letter-spacing:-.05em}
.category-steps li{position:relative}.category-steps h3{margin-top:8px}
.related-service-link{border-top:1px solid #d7d7d7;padding:10px 0 0}
.related-service-link .offering-copy{padding:12px 2px}.related-service-link h3{font-size:20px}
.design-note{display:flex;flex-direction:column;gap:18px;border-left:1px solid #c8c8c8;padding:15px 0 15px 38px;font-family:'Outfit',sans-serif;font-size:24px;color:var(--teal)}
@media(max-width:1100px){.directory-approach{grid-template-columns:repeat(2,1fr)}.services-directory-page .ctaband{margin-left:4%;margin-right:4%}}
@media(max-width:700px){.services-directory-page .services-hero-image{width:100%;height:210px;padding:12px 25px}.services-directory-page .services-hero-content{padding:24px 0 30px}.services-directory-page .services-hero h1{max-width:none}.services-directory-page .services-reassurance{gap:10px;flex-wrap:wrap}.services-directory-page .section{padding-top:34px;padding-bottom:34px}.services-directory-page .services-heading h2{font-size:27px}.services-directory-page .specialty-tile h3{display:flex;min-height:0}.services-directory-page .specialty-tile h3 svg{margin:0}.services-directory-page .specialty-art img{height:145px}.services-directory-page .services-design img{height:230px}.design-note{padding-left:20px;font-size:21px}.directory-approach{gap:22px 16px}}
@media(max-width:520px){.services-directory-page .specialty-directory{grid-template-columns:1fr}.services-directory-page .specialty-tile{display:grid;grid-template-columns:minmax(0,1fr) 125px}.services-directory-page .specialty-tile h3{grid-column:1/-1;font-size:17px}.services-directory-page .specialty-tile ul{font-size:13px;padding-right:0}.services-directory-page .specialty-art{align-self:end}.services-directory-page .specialty-art img{height:150px;padding:3px}.directory-approach{grid-template-columns:1fr}}

/* ===== 01/10/2026 : recadrages, hero rapproché, menu, contact et rendez-vous ===== */

/* Menu « Nos soins » : lien et chevron collés, chevron dessiné en SVG. */
.topbar .nav-services-group{display:inline-flex;align-items:center;gap:5px}
.topbar .nav-services-group .navlinks-trigger{margin:0;min-width:22px;min-height:30px;padding:4px;gap:0;border-bottom:0;justify-content:center}
.topbar .navlinks a{white-space:nowrap}
.navlinks-trigger .chevron{width:11px;height:11px;display:block;font-size:0;transition:transform .25s ease}
.topbar-phone{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--teal);white-space:nowrap}
.topbar-phone svg{width:15px;height:15px;fill:currentColor}
@media(max-width:1359px){.topbar-phone{display:none}}

/* Images entières : plus de recadrage par object-fit:cover. */
.home .cabinet-visual img{height:auto;aspect-ratio:16/9;object-fit:contain;object-position:center}
.home #cabinet .cabinet-visual img{height:auto}
.home .post-art{object-fit:contain;object-position:center}
.hero-media img{object-fit:contain;object-position:center}
.hero-media.is-cutout img{-webkit-mask-image:none;mask-image:none}

/* Heroes : l'image se rapproche du texte au lieu de coller au bord de l'écran. */
@media(min-width:1001px){
  .home .herolight-media{justify-self:end;width:min(52vw,700px);margin-right:max(48px,calc((100% - 1140px) / 2))}
}
/* La boîte image commence juste après la colonne de texte (marge du .wrap + largeur du
   texte) et l'image s'aligne à gauche dedans : l'écart reste le même à toutes les largeurs. */
@media(min-width:1001px){
  .services-hero-image{--copy-end:calc(max(48px,(100% - 1240px) / 2) + 560px);left:var(--copy-end);right:auto;width:min(620px,calc(100% - var(--copy-end) - 48px));padding:24px 0;object-fit:contain;object-position:left center}
  .category-hero-image{--copy-end:calc(max(48px,(100% - 1240px) / 2) + 590px);left:var(--copy-end);right:auto;width:min(560px,calc(100% - var(--copy-end) - 48px));padding:20px 0;object-fit:contain;object-position:left center;background:transparent}
  body.home .editorial-smile .smile-panorama{--copy-end:calc(max(48px,(100% - 1240px) / 2) + 440px);left:var(--copy-end);right:auto;width:min(760px,calc(100% - var(--copy-end) - 48px));object-position:left center}
}

/* Boutons avec icône. */
.pill-icon{width:17px;height:17px;fill:currentColor;flex:none}

/* Bloc rendez-vous intégré aux pages. */
.quickbook{background:var(--surface-glow,#f5f5f5);padding:clamp(48px,7vw,84px) 0}
.quickbook-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(28px,5vw,72px);align-items:start}
.quickbook h2{font-size:clamp(30px,3.4vw,42px);line-height:1.1;letter-spacing:-.035em;margin:12px 0 16px}
.quickbook h2 em{color:var(--teal);font-style:normal}
.quickbook-copy>p{color:var(--muted);font-size:14px;line-height:1.8;max-width:440px}
.quickbook-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.contact-chip{display:inline-flex;align-items:center;gap:12px;padding:12px 18px 12px 14px;border-radius:14px;background:#fff;border:1px solid #dedede;color:#393939;transition:border-color .2s,transform .2s}
.contact-chip:hover{border-color:var(--teal);transform:translateY(-1px)}
.contact-chip svg{width:22px;height:22px;fill:var(--teal);flex:none}
.contact-chip span{display:flex;flex-direction:column;font-size:14px;font-weight:600;line-height:1.3}
.contact-chip small{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#7a7a7a}
.contact-chip.whatsapp svg{fill:#1f9d57}
.quickbook-address{font-size:12px;color:#7a7a7a;margin-top:20px}
.quickbook-form{background:#fff;border:1px solid #e9e9e9;border-radius:18px;padding:clamp(20px,3vw,32px);margin:0}
.smallnote{display:block;font-size:11px;line-height:1.6;color:#7a7a7a;margin-top:12px}
@media(max-width:860px){.quickbook-grid{grid-template-columns:1fr}}

/* Carte Google sur la page contact. */
.map-embed{border-radius:18px;overflow:hidden;border:1px solid #e9e9e9;aspect-ratio:4/3;background:#f5f5f5}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
.smile-art .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}

/* WhatsApp flottant (écrans larges) et barre de contact (mobile). */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:60;width:56px;height:56px;border-radius:50%;background:#1f9d57;color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px rgba(16,70,45,.28);transition:transform .2s}
.wa-float:hover{transform:scale(1.06)}
.wa-float svg{width:28px;height:28px;fill:currentColor}
.mobilebar{display:none}
@media(max-width:700px){
  .wa-float{display:none}
  .mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid #e9e9e9}
  .mobilebar a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;border-radius:999px;font-size:13px;font-weight:600;color:var(--teal);border:1px solid #d9d9d9}
  .mobilebar svg{width:17px;height:17px;fill:currentColor}
  .mobilebar a[href^="https://wa.me"]{color:#1f9d57}
  .mobilebar .mobilebar-main{background:var(--teal);color:#fff;border-color:var(--teal)}
  body{padding-bottom:72px}
}
@media print{.wa-float,.mobilebar{display:none}}
.form .smallnote{text-transform:none;letter-spacing:0;text-align:left;font-size:12px}
@media(max-width:700px){.topbar-cta{display:none!important}}

/* Panneau latéral : spécialités seulement (01/10/2026). */
.menu-drawer{width:min(92vw,440px);gap:18px;overflow-y:auto}
.menu-specialities{display:flex;flex-direction:column;margin:0 -12px}
.menu-speciality{display:grid;grid-template-columns:40px minmax(0,1fr) 14px;align-items:center;gap:14px;padding:11px 12px;border-radius:14px;color:#f6f6f6;transition:background .2s ease}
.menu-speciality+.menu-speciality{border-top:1px solid #ffffff10}
.menu-speciality:hover,.menu-speciality:focus-visible,.menu-speciality[aria-current="page"]{background:#ffffff0d;border-top-color:transparent}
.menu-speciality:hover+.menu-speciality{border-top-color:transparent}
.menu-speciality-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#90909033;color:#c2c2c2}
.menu-speciality-icon svg{width:20px;height:20px}
.menu-speciality-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.menu-speciality-text strong{font-family:"Outfit",Arial,sans-serif;font-weight:500;font-size:17px;letter-spacing:-.02em;line-height:1.25}
.menu-speciality-text small{font-size:11.5px;line-height:1.4;color:#9c9c9c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-speciality-arrow{color:#c2c2c2;opacity:0;transform:translateX(-4px);transition:opacity .2s ease,transform .2s ease}
.menu-speciality:hover .menu-speciality-arrow,.menu-speciality:focus-visible .menu-speciality-arrow{opacity:1;transform:none}
.menu-all{display:inline-flex;gap:8px;align-self:flex-start;margin:14px 12px 0;font-size:13px;color:#c2c2c2;border-bottom:1px solid currentColor;padding-bottom:2px}
.menu-all:hover{color:#fff}
.menu-foot{gap:14px;padding-top:18px}
.menu-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.menu-round{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#ffffff14;color:#f6f6f6;transition:background .2s ease}
.menu-round:hover{background:#ffffff2e}
.menu-round svg{width:20px;height:20px;fill:currentColor}
.menu-round.whatsapp{color:#4fd18b}
.menu-pages{display:none;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:#b5b5b5}
.menu-pages a:hover{color:#fff}
@media(max-width:1000px){.menu-pages{display:flex}}
@media(max-width:700px){.menu-drawer{padding:20px 20px 24px}.menu-speciality{grid-template-columns:36px minmax(0,1fr);gap:12px}.menu-speciality-icon{width:36px;height:36px}.menu-speciality-arrow{display:none}}

/* Cartes de l'accueil : la description coupée à 3 lignes ne doit pas s'étirer (flex:1),
   sinon une 4e ligne apparaît à moitié sous les points de suspension. */
body.home:not(#_) .family p{flex:0 0 auto;max-height:calc(1.6em * 3)}
body.home:not(#_) .family .family-more{margin-top:auto}

/* Mobile (01/10/2026) : textes lisibles (11 px minimum), cibles tactiles de 44 px, image entière.
   Préfixe « body:not(#_) » : poids d'un id, passe devant les règles .home / .interior plus anciennes. */
@media(max-width:700px){
  body:not(#_) .brand small{font-size:9.5px;letter-spacing:.1em;line-height:1.35}
  body:not(#_) .eyebrow,body:not(#_) .eyebrow-rule,body.home:not(#_) main .eyebrow{font-size:11px}
  body:not(#_) .breadcrumb,body:not(#_) .breadcrumb a,body:not(#_) .breadcrumb span{font-size:12px}
  body:not(#_) .category-promises span,body:not(#_) .services-reassurance li{font-size:11.5px}
  body:not(#_) figcaption{font-size:11px}
  body:not(#_) .contact-chip small,body:not(#_) .family-more,body:not(#_) .family-more span,body:not(#_) .post .meta{font-size:11px}
  body:not(#_) .burger{min-height:44px;min-width:44px;justify-content:center}
  body:not(#_) .footer-end .motion-toggle{min-height:44px;padding:10px 16px;font-size:11px}
  body:not(#_) .heroslider-dots button{min-width:40px;min-height:44px;font-size:13px}
  body:not(#_) .heroslider-arrows .round,body:not(#_) .service-controls .round{width:44px;height:44px}
  body.home:not(#_) .project-visual img{object-fit:contain;object-position:center}
}

/* 01/10: photographic service previews mixed with explanatory dental diagrams. */
body:not(#_) #cards .service-image[src*="/media/photos/"],
body:not(#_) .specialty-art img[src*="/media/photos/"]{object-fit:cover;object-position:center;padding:0;background:#ededed}
body:not(#_) .specialty-art:has(img[src*="/media/photos/"]){overflow:hidden;border-radius:0 0 12px 12px}
body.home:not(#_) .cabinet-visual img[src*="/media/photos/"]{object-fit:cover;aspect-ratio:16/10;border-radius:14px}
body.home:not(#_) .editorial-smile .smile-panorama[src*="/media/photos/"]{object-fit:cover;object-position:70% top;border-radius:16px;mask-image:linear-gradient(to right,transparent,#000 15%);padding:0}
@media(max-width:700px){body.home:not(#_) .editorial-smile .smile-panorama[src*="/media/photos/"]{mask-image:none;border-radius:12px;object-position:70% top}body:not(#_) .specialty-art img[src*="/media/photos/"]{height:160px}body:not(#_) .specialty-art:has(img[src*="/media/photos/"]){border-radius:10px;margin:0 10px 12px}}


/* Reference composition: photographic clinic scene, real HTML copy and request form. */
:root{--care-title:clamp(2.7rem,5.6vw,5.6rem);--care-heading:clamp(1.25rem,1.5vw,1.6rem);--care-body:clamp(.875rem,1.15vw,1.06rem);--care-small:clamp(.7rem,.9vw,.875rem);--care-tiny:clamp(.66rem,.78vw,.78rem)}
.care-hero{position:relative;isolation:isolate;background:#f0f0f0 url('../media/clinic-hero-doctor-v4.webp') center center/cover no-repeat;min-height:660px;height:calc(100svh - var(--topbar-h,86px));max-height:900px;overflow:hidden;color:#1c1c1c}
.home .care-layout{position:relative;width:100%;max-width:none;height:100%;margin:0;display:block}
.care-copy{position:absolute;top:11%;left:7.5%;width:37%;z-index:2}
.care-eyebrow{font-size:var(--care-tiny);font-weight:500;letter-spacing:.27em;color:#969696;display:block;margin-bottom:12px}
.care-copy h1{font-size:var(--care-title);line-height:.94;letter-spacing:-.055em;margin:0 0 22px;font-weight:600;white-space:nowrap}
.care-copy h1 em{color:#909090;font-style:normal}
.care-copy>p{font-size:var(--care-body);line-height:1.35;color:#747474;max-width:100%;margin:0}
.care-benefits{display:grid;grid-template-columns:1fr 1fr 1fr;gap:clamp(10px,1.7vw,28px);margin-top:34px;width:95%}
.care-benefits a{display:grid;align-content:start;gap:7px;font-size:var(--care-tiny);line-height:1.4}
.care-benefit-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e6e6e6;margin-bottom:3px}
.care-benefit-icon svg{width:25px;height:25px;fill:none;stroke:#7f7f7f;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.care-benefits strong{font-weight:500;white-space:nowrap;color:#242424}.care-benefits a>span:last-child{color:#7f7f7f;line-height:1.4}
.care-booking{position:absolute;top:13%;right:4.8%;width:29.5%;z-index:3;background:#fbfbfbf5;border-radius:22px;padding:clamp(23px,2vw,36px);box-shadow:0 12px 35px #63636308}
.care-booking h2{font-size:var(--care-heading);letter-spacing:-.035em;line-height:1.2;margin:0 0 10px;font-weight:600}
.care-booking>p{font-size:var(--care-small);color:#888888;margin:0 0 17px;line-height:1.4}
.care-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px 10px}
.care-field{position:relative;min-width:0}.care-full{grid-column:1/-1}
.care-field label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.care-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:17px;height:17px;fill:none;stroke:#393939;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.care-field input,.care-field select{font:inherit;font-size:var(--care-small);width:100%;min-width:0;height:46px;border:1px solid #e8e8e8;border-radius:12px;background:#ffffff85;padding:0 12px 0 42px;color:#393939;color-scheme:light}
.care-field input::placeholder{color:#8c8c8c;opacity:1}
.care-submit{display:flex;justify-content:center;gap:16px;align-items:center;min-height:50px;background:#1c1c1c;color:#fff;border-radius:30px;font-size:var(--care-small);margin-top:4px}.care-submit:hover{background:#383838}
.care-note{font-size:var(--care-tiny);line-height:1.4;color:#828282;margin:0}
.care-reassurance{display:flex;justify-content:space-between;gap:10px;margin-top:22px;font-size:var(--care-tiny);color:#7d7d7d}
.care-reassurance>span{display:flex;align-items:center;gap:8px;line-height:1.35}
.care-reassurance svg{background:white;border-radius:50%;box-shadow:0 2px 7px #3e3e3e10;padding:9px;width:36px;height:36px;flex:none;fill:none;stroke:#393939;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media(min-width:1600px){.care-copy{top:15%}.care-booking{top:16%}}
@media(max-width:1100px) and (min-width:701px){.care-hero{height:720px}.care-copy{left:4%;width:40%;top:10%}.care-booking{width:33%;right:3%;top:14%;padding:23px}.care-benefits{gap:10px}.care-benefits strong{white-space:normal}.care-reassurance{gap:4px}.care-reassurance>span{gap:4px}.care-reassurance svg{width:28px;height:28px;padding:6px}}
@media(max-width:700px){.care-hero{height:auto;max-height:none;min-height:0;background-size:auto 650px;background-position:52% 0;background-color:#f2f2f2;padding:32px 20px 30px}.home .care-layout{height:auto;display:grid;gap:0}.care-copy{position:relative;top:auto;left:auto;width:100%;padding-bottom:290px}.care-copy h1{white-space:normal;max-width:95%;margin-bottom:15px}.care-copy>p{max-width:75%;background:#f2f2f290}.care-copy>p br{display:none}.care-benefits{margin-top:24px;width:100%;gap:10px}.care-benefit-icon{width:37px;height:37px}.care-benefits strong{white-space:normal}.care-benefits a>span:last-child{color:#5a5a5a}.care-eyebrow{letter-spacing:.16em}.care-booking{position:relative;top:auto;right:auto;width:100%;padding:24px;border-radius:20px}.care-reassurance{gap:6px}.care-reassurance>span{gap:5px}.care-reassurance svg{width:28px;height:28px;padding:6px}}
@media(max-width:700px){.care-hero{background-position:52% 360px;background-size:auto 580px}.care-copy{padding-bottom:560px}.care-copy>p{max-width:100%;background:transparent}.care-benefits{max-width:100%}}

/* Site-wide reference blue, including the shared navigation and contact actions. */
:root{--teal:#909090;--teal-dark:#707070;--ink:#1c1c1c;--muted:#767676;--pale:#f5f5f5;--line:#e7e7e7;--surface-glow:#f5f5f5}
.topbar{background:#fafafa}.topbar.scrolled{background:#fafafa}.brand,.topbar-phone{color:#707070}.topbar .navlinks a[aria-current="page"]{color:#707070}.topbar-cta{background:#1c1c1c}.topbar-cta:hover{background:#707070}
.care-actions{display:flex;align-items:center;gap:14px;margin-top:32px;flex-wrap:wrap}
.care-actions a{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:50px;padding:14px 24px;border-radius:28px;font-size:var(--care-small);font-weight:500;transition:background .2s,color .2s}
.care-action-primary{background:#1c1c1c;color:#fff}.care-action-primary:hover{background:#707070}.care-action-call{background:#fbfbfb;border:1px solid #d2d2d2;color:#393939}.care-action-call:hover{background:#eaeaea}.care-action-call svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}
.care-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.care-whatsapp{display:flex;align-items:center;justify-content:center;gap:9px;font-size:var(--care-small);font-weight:500;padding:4px 0;min-height:36px;color:#707070}.care-whatsapp>span:first-child{color:#828282;font-weight:400}.care-whatsapp svg{width:18px;height:18px;fill:currentColor}.care-whatsapp:hover{color:#1c1c1c}
.care-form-status{font-size:var(--care-tiny);line-height:1.5;margin:0;color:#393939}.care-form-status[hidden]{display:none}.care-form-status[data-state="error"]{color:#9b3030}.care-submit:disabled{opacity:.65;cursor:wait}
@media(max-width:700px){.care-actions{gap:10px;margin-top:24px}.care-actions a{padding:12px 20px;min-height:46px}.care-hero{background-position:52% 330px}.care-copy{padding-bottom:590px}}

/* Direct implant navigation: keep all header links readable. */
@media(min-width:1101px){.topbar .topbar-inner{width:min(1390px,calc(100% - 64px));max-width:none;gap:20px}.topbar .navlinks{gap:20px}}
@media(min-width:1101px) and (max-width:1499px){.topbar-phone{display:none}}
@media(min-width:1101px) and (max-width:1279px){.topbar .navlinks{gap:15px;font-size:12px}.topbar .burger-label{display:none}.topbar .navleft{gap:15px}}

/* Dr Taj-inspired contact strip above the shared clinic navigation. */
:root{--topbar-h:120px;--header-meta:clamp(.7rem,.68rem + .12vw,.81rem)}
.topbar,.topbar.is-scrolled{background:#fbfbfb}.header-contact{background:#f2f2f2;border-bottom:1px solid #e8e8e8;color:#565656}
.header-contact-inner{width:min(1390px,calc(100% - 64px));margin:auto;min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-size:var(--header-meta)}
.header-contact-details{display:flex;align-items:center;gap:30px;min-width:0}.header-contact-details a{display:inline-flex;align-items:center;gap:9px;min-height:38px;line-height:1.4}.header-contact-details svg{width:15px;height:15px;flex:none;fill:none;stroke:#777777;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.header-contact-details a:hover{color:#636363}.header-address-short{display:none}
.header-socials{display:flex;align-items:center;gap:8px;flex:none}.header-socials a{display:grid;place-items:center;width:30px;height:34px;color:#777777}.header-socials svg{width:15px;height:15px;fill:currentColor}.header-socials a:hover{color:#1c1c1c}
.topbar .topbar-inner{height:82px;gap:24px;width:min(1390px,calc(100% - 64px));max-width:none}.topbar .navleft{gap:24px}.topbar .navlinks{gap:clamp(16px,1.7vw,28px)}.topbar .brand strong{font-size:clamp(.95rem,.8rem + .3vw,1.14rem)}.topbar .brand small{letter-spacing:.12em}.topbar .burger{background:#f3f3f3}.topbar .burger:hover{background:#e9e9e9}
.header-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:14px 22px;min-height:48px;border-radius:28px;background:#909090;color:#fff;flex:none;font-size:clamp(.8rem,.75rem + .1vw,.9rem);font-weight:500;transition:background .2s}.header-whatsapp>svg{width:21px;height:21px;fill:currentColor}.header-whatsapp:hover{background:#707070}.header-wa-arrow{margin-left:9px}
@media(min-width:1101px) and (max-width:1279px){.topbar .navleft{gap:12px}.topbar .navlinks{gap:15px}.topbar .topbar-inner{gap:18px}.header-whatsapp{padding:13px 17px}.header-wa-arrow{display:none}}
@media(max-width:1100px){:root{--topbar-h:112px}.header-contact-inner,.topbar .topbar-inner{width:calc(100% - 40px)}.header-contact-inner{min-height:40px}.header-contact-details{gap:20px}.header-address-full{display:none}.header-address-short{display:inline}.topbar .topbar-inner{height:72px}.topbar .navlinks{display:none}.header-whatsapp{min-height:44px}}
@media(max-width:700px){:root{--topbar-h:110px}.header-contact-inner,.topbar .topbar-inner{width:calc(100% - 32px)}.header-contact-inner{min-height:44px;gap:8px}.header-contact-details{gap:12px}.header-contact-details a{min-height:44px;gap:6px}.header-contact-phone span{display:none}.header-contact-phone{width:30px;justify-content:center}.header-socials{gap:2px}.header-socials a{width:30px;height:44px}.topbar .topbar-inner{height:66px;gap:10px}.topbar .navleft{gap:10px}.topbar .burger{padding:10px;width:40px;min-width:40px}.topbar .burger-label{display:none}.topbar .brand{gap:8px}.topbar .brand svg{width:27px;height:34px}.topbar .brand strong{font-size:clamp(.8rem,.68rem + .5vw,.94rem);white-space:nowrap}.topbar .brand small{max-width:195px;letter-spacing:.06em;margin-top:4px}.header-whatsapp{width:44px;height:44px;padding:10px;min-height:44px}.header-whatsapp>span{display:none}.header-whatsapp>svg{width:23px;height:23px}}

/* WhatsApp keeps its native green in the booking form. */
.care-whatsapp{color:#128c4a}.care-whatsapp:hover{color:#333333}
.topbar{transition:transform 240ms ease,background .2s ease,box-shadow .2s ease;will-change:transform}.topbar.header-hidden{transform:translateY(-102%);pointer-events:none}.topbar:focus-within{transform:translateY(0);pointer-events:auto}
/* Two decorative name treatments, composited behind the seated practitioner. */
:root{--care-wordmark:clamp(7rem,12.3vw,14rem)}
.care-lettering{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;font-family:'Outfit',Arial,sans-serif;font-size:var(--care-wordmark);font-weight:600;line-height:1;letter-spacing:-.055em;user-select:none}
.care-lettering span{position:absolute;white-space:nowrap}.care-lettering-fill{top:48%;left:25%;color:rgba(48,130,193,.13)}.care-lettering-outline{top:69%;left:21%;color:transparent;-webkit-text-stroke:1.5px rgba(40,117,175,.27)}
.care-portrait-mask{position:absolute;inset:0;z-index:1;background:inherit;pointer-events:none;clip-path:polygon(48% 12%,52% 12%,56% 15%,58% 21%,59% 28%,60% 33%,60% 45%,58% 55%,58% 65%,61% 68%,61% 74%,59% 75%,59% 84%,60% 91%,59% 98%,55% 98%,53% 92%,51% 99%,45% 99%,44% 94%,46% 83%,46% 75%,41% 75%,39% 72%,40% 68%,43% 65%,43% 57%,42% 52%,42% 40%,43% 31%,43% 24%,45% 18%)}
.home .care-layout{z-index:2}
@media(max-width:700px){.care-lettering,.care-portrait-mask{display:none}}
@media(prefers-reduced-motion:reduce){.topbar{transition:none}}

/* Doctor-approved direction: white dominates, black typography, restrained blue. */
:root{--teal:#151515;--teal-dark:#343434;--ink:#141414;--muted:#676767;--pale:#f7f7f7;--line:#e6e6e6;--surface-glow:linear-gradient(115deg,#fff 10%,#f6f6f6 100%);--accent-blue:#4c98d5}
body{background:#fff;color:var(--ink)}
.topbar,.topbar.is-scrolled,.topbar.scrolled{background:#fff}.header-contact{background:linear-gradient(100deg,#fff,#f6f6f6);border-bottom-color:#e9e9e9;color:#565656}.header-contact-details svg{stroke:#303030}.header-contact-details a:hover{color:#111}.topbar .brand{color:#111}.topbar .brand svg{color:var(--accent-blue)}.topbar .brand small{color:#787878}.topbar .burger{background:#f5f5f5;color:#171717}.topbar .burger:hover{background:#ebebeb}.topbar .navlinks a{color:#242424}.topbar .navlinks a:hover,.topbar .navlinks a[aria-current="page"]{color:#141414;border-bottom-color:var(--accent-blue)}
.header-whatsapp{background:#fff;color:#151515;border:1px solid #dedede}.header-whatsapp>svg{fill:#25d366}.header-whatsapp:hover{background:#f7f7f7}.header-wa-arrow{color:#555}
body .pill{background:#151515;color:#fff}.pill:hover{background:#333}body .pill.white,body .pill.outline,body .pill.ghost{background:#fff;color:#171717;border:1px solid #dedede}body .pill .button-disc{background:#fff;color:#171717}body .pill.outline .button-disc{background:#171717;color:#fff}
body h1 em,body h2 em,body .category-page em,body .treatment-page em,body .services-directory-page em{color:#161616}
body .category-hero,body .services-hero,body.interior .inner-hero{background:linear-gradient(110deg,#fff 10%,#f5f5f5)}
body .category-hero:after,body .services-hero:after{background:linear-gradient(90deg,#fff 0%,#fffffff0 32%,#ffffff00 64%)}
body .specialty-tile,.services-directory-page .specialty-tile{background:linear-gradient(145deg,#fff 35%,#f8f8f8);border-color:#e7e7e7}
body .specialty-art,body .offering-picture,body .step-picture,body .family-image{background:radial-gradient(ellipse at center,#f1f1f1,#fff 75%)}
body .services-design,body .treatment-design,body.home .editorial-smile,.services-directory-page .services-design{background:linear-gradient(120deg,#f8f8f8,#fff 60%,#f5f5f5)}
body .category-benefits,body .pale,body .treatment-page .category-benefits li{background-color:#fafafa;background-image:linear-gradient(135deg,#fff,#f5f5f5);background-size:100% 100%}
body .category-journey,body .services-approach,body.home #cabinet{background-image:linear-gradient(180deg,#fff,#fafafa)}
body .ctaband{background:#171717;background-image:linear-gradient(115deg,#111,#292929);color:#fff}.sitefooter{background:linear-gradient(140deg,#fff,#f4f4f4)}.brandline::after{-webkit-text-stroke-color:#00000035}.quickbook{background:linear-gradient(125deg,#fff,#f7f7f7)}
.menu-drawer{background:#151515;color:#f1f1f1}.menu-speciality-icon{background:#ffffff0d;color:#ccc}.menu-speciality-text small,.menu-pages{color:#bcbcbc}.menu-speciality-text strong{color:#fff}
body .care-hero{color:#141414;background-color:#fff}.care-eyebrow{color:#717171}.care-copy h1 em{color:#141414}.care-copy>p{color:#626262}.care-action-primary,.care-submit{background:#151515;color:#fff}.care-action-primary:hover,.care-submit:hover{background:#333}.care-action-call{background:#ffffffd9;color:#171717;border-color:#d9d9d9}.care-action-call:hover{background:#f4f4f4}.care-booking{background:#ffffffed;box-shadow:0 12px 42px #00000008;border:1px solid #ebebeb}.care-booking>p,.care-reassurance{color:#727272}.care-field input,.care-field select{background:#fafafad9;color:#272727;border-color:#e5e5e5}.care-field input::placeholder{color:#818181}.care-input-icon,.care-reassurance svg{stroke:#333}.care-lettering-fill{color:rgba(0,0,0,.07)}.care-lettering-outline{-webkit-text-stroke-color:rgba(0,0,0,.17)}
.care-whatsapp,.care-whatsapp:hover{color:#128c4a}.care-whatsapp svg{fill:#25d366}.care-whatsapp>span:first-child{color:#777}
/* Brand marks keep their own colors, never the clinic accent. */
.header-socials a[aria-label="Facebook"],.socials a[aria-label="Facebook"]{color:#1877f2}.header-socials a[aria-label="Instagram"],.socials a[aria-label="Instagram"]{color:#e4405f}.header-socials a[aria-label="Google"],.socials a[aria-label="Google"]{color:#4285f4}
body .wa-float{background:#25d366;color:white;box-shadow:0 8px 25px #00000015}body .wa-float svg{fill:white}.menu-round.whatsapp{background:#fff;color:#128c4a}.menu-round.whatsapp svg,.contact-chip.whatsapp svg{fill:#25d366}
body a.pill[href*="wa.me"],body .mobilebar a[href*="wa.me"]{background:#fff;color:#128c4a;border-color:#dce8df}body a.pill[href*="wa.me"] .pill-icon,body .mobilebar a[href*="wa.me"] svg{fill:#25d366}.mobilebar .mobilebar-main{background:#151515;color:#fff;border-color:#151515}.mobilebar a{color:#222;border-color:#e2e2e2}
@media(max-width:700px){.care-hero{background-color:#fff}}
/* SVG symbols inherit currentColor from the host as well as fill. */ .header-whatsapp>svg,.care-whatsapp svg,.menu-round.whatsapp svg,.contact-chip.whatsapp svg,body a.pill[href*="wa.me"] .pill-icon,body .mobilebar a[href*="wa.me"] svg{color:#25d366;fill:#25d366}body .wa-float svg{color:#fff;fill:#fff}

/* Auketra-style vertical title changes: fixed line box, no layout shift. */
.care-copy h1 .care-word-slider{display:grid;overflow:hidden;vertical-align:bottom;line-height:1.1;padding:.04em 0;margin:-.04em 0;font-style:normal}
.care-word{grid-area:1/1;display:block;white-space:nowrap;opacity:0;transform:translateY(110%);transition:transform 600ms cubic-bezier(.22,.68,0,1),opacity 450ms ease;pointer-events:none}
.care-word.is-active{opacity:1;transform:translateY(0)}.care-word.is-leaving{opacity:0;transform:translateY(-110%)}
body.paused .care-word{transition:none}
@media(prefers-reduced-motion:reduce){.care-word{transition:none}}

/* Phone first; email and native-color social marks divided like Dr Taj. */
.header-contact-details{gap:26px}.header-contact-details>a+a{position:relative}.header-contact-details>a+a:before{content:'';position:absolute;left:-14px;top:50%;height:16px;width:1px;background:#d4d4d4;transform:translateY(-50%)}
.header-socials{gap:0}.header-socials a{position:relative;width:36px}.header-socials a+a:before{content:'';position:absolute;left:0;top:50%;height:16px;width:1px;background:#d4d4d4;transform:translateY(-50%)}.header-socials .header-email{color:#333}.header-socials .header-email svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.header-socials .header-email:hover{color:#111}
@media(max-width:700px){.header-contact-details{gap:18px}.header-contact-details>a+a:before{left:-10px}.header-contact-phone{width:auto}.header-contact-phone span{display:inline;white-space:nowrap}.header-socials a{width:29px}.header-address .header-address-short{display:none}.header-address{justify-content:center;min-width:24px}}

/* Soft depth on the homepage's second-section service cards. */
.home #soins #cards .card{transition:box-shadow .22s ease,transform .22s ease}
.home #soins #cards .card:is(:hover,:focus-visible){box-shadow:var(--card-shadow-hover)}
@media(prefers-reduced-motion:reduce){.home #soins #cards .card{transition:none}}

/* End the smile section's background at the existing photograph edge. */
@media(min-width:1001px){
  body.home .editorial-smile{background:transparent}
  body.home .editorial-smile:before{content:'';position:absolute;left:0;top:0;bottom:0;width:min(calc(max(48px,(100% - 1240px) / 2) + 1200px),calc(100% - 48px));z-index:-3;pointer-events:none;border-radius:0 16px 16px 0;background:linear-gradient(120deg,#f8f8f8,#fff 60%,#f5f5f5)}
}

/* Specialty editorials: different reading paths, one restrained clinic identity. */
:root{--se-title:clamp(2.1rem,1.3rem + 2.7vw,3.8rem);--se-heading:clamp(1.65rem,1.2rem + 1.4vw,2.6rem);--se-subheading:clamp(1.05rem,.9rem + .45vw,1.35rem);--se-copy:clamp(.875rem,.84rem + .12vw,.96rem);--se-small:clamp(.75rem,.71rem + .13vw,.85rem);--se-section-space:clamp(2.75rem,5vw,5rem)}
.service-editorial{color:#171717;font-size:var(--se-copy)}
.service-editorial h1{font-size:var(--se-title);line-height:1.06;font-weight:500;letter-spacing:-.055em;margin:0 0 22px}
.service-editorial h2{font-size:var(--se-heading);line-height:1.1;font-weight:500;margin:0 0 22px}
.service-editorial h3{font-size:var(--se-subheading);line-height:1.3;margin:0 0 10px}
.service-editorial p{font-size:var(--se-copy);line-height:1.85;color:#626262}
.service-editorial .eyebrow{font-size:var(--se-small);letter-spacing:.14em;margin-bottom:20px}
.service-editorial figure{margin:0;min-width:0}.service-editorial figcaption{font-size:var(--se-small);line-height:1.5;color:#747474;margin-top:13px}.service-editorial img{max-width:100%;height:auto}
.se-hero{padding-top:clamp(1.4rem,3vw,2.8rem);padding-bottom:clamp(2.5rem,4vw,4rem)}
.se-hero .breadcrumb{margin-bottom:30px}.se-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(30px,5vw,78px);align-items:center}.se-hero-copy>p{max-width:500px;margin:0 0 29px}.se-hero .pill{font-size:var(--se-small)}
.se-hero-figure img{width:100%;height:clamp(290px,29vw,440px);object-fit:cover;border-radius:16px}.se-implant .se-hero-figure{padding-top:25px}
.se-page-nav{display:flex;gap:clamp(16px,3vw,40px);padding:20px 0;border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5;flex-wrap:wrap;font-size:var(--se-small);font-weight:500}.se-page-nav a{display:flex;gap:20px;align-items:center}.se-page-nav a span{color:var(--accent-blue)}.se-page-nav a:hover{color:#277ab9}
.se-section{padding-top:var(--se-section-space);padding-bottom:var(--se-section-space);scroll-margin-top:145px}.se-section-intro{max-width:720px;margin-bottom:38px}.se-section-intro>p{max-width:640px;margin-bottom:0}
.se-anatomy-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(25px,5vw,75px);align-items:center}.se-anatomy figure{background:linear-gradient(120deg,#fff,#f7f7f7);padding:clamp(15px,2vw,30px);border-radius:12px}.se-anatomy img{width:100%;height:auto}.se-definition{margin:0}.se-definition>div{padding:23px 0;border-top:1px solid #ddd}.se-definition dt{font-family:'Outfit',Arial,sans-serif;font-size:var(--se-subheading);font-weight:500;margin-bottom:9px}.se-definition dd{font-size:var(--se-copy);line-height:1.85;color:#626262;margin:0}
.se-consultation-band{background:linear-gradient(115deg,#141414,#292929);color:white;padding:var(--se-section-space) 0;scroll-margin-top:145px}.se-consultation-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:clamp(35px,8vw,120px)}.se-consultation-band .eyebrow{color:#c2c2c2}.se-consultation-band h2{color:#fff}.se-consultation-band p{color:#d1d1d1}.se-consultation-band .pill{margin-top:16px}.se-consultation-notes article{padding:0 0 25px;margin-bottom:25px;border-bottom:1px solid #ffffff26}.se-consultation-notes article:last-child{margin-bottom:0;padding-bottom:0;border:0}.se-consultation-notes p{margin-bottom:0}
.se-note{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:start;padding-top:36px;padding-bottom:36px;border-bottom:1px solid #e6e6e6}.se-note h2{font-size:var(--se-subheading);margin:6px 0 0}.se-note p{margin:0}
.se-service-list{border-top:1px solid #e2e2e2}.se-service-row{display:grid;grid-template-columns:.9fr 1.4fr 36px;gap:28px;align-items:center;padding:25px 0;border-bottom:1px solid #e2e2e2}.se-service-row h3,.se-service-row p{margin:0}.se-service-row p{font-size:var(--se-small)}.se-row-arrow{width:34px;height:34px;display:grid;place-items:center;border:1px solid #dedede;border-radius:50%;color:#222}.se-service-row:hover .se-row-arrow{color:white;background:#171717;border-color:#171717}.se-service-row:hover h3{color:#277ab9}
.se-question-section{display:grid;grid-template-columns:.85fr 1.3fr;gap:clamp(30px,7vw,100px);border-top:1px solid #e5e5e5}.se-question-section>div>p{max-width:320px}.se-question-section .pill{margin-top:15px}.se-faq details{border-bottom:1px solid #dfdfdf;padding:22px 0}.se-faq details:first-child{padding-top:0}.se-faq summary{font-family:'Outfit',Arial,sans-serif;font-size:var(--se-subheading);line-height:1.45;cursor:pointer;padding-right:12px}.se-faq details p{margin:18px 0 0}.se-reading{display:flex;flex-wrap:wrap;gap:13px 25px;padding-bottom:40px;font-size:var(--se-small);line-height:1.6;color:#747474}.se-reading a{color:#505050;text-decoration:underline;text-underline-offset:4px}
/* Aesthetics: magazine opening and a large planning illustration. */
.se-smile .se-hero-grid{display:block}.se-smile .se-hero-copy{display:grid;grid-template-columns:1.3fr 1fr;gap:0 80px;align-items:start;margin-bottom:38px}.se-smile .se-hero-copy .eyebrow{grid-column:1/-1}.se-smile .se-hero-copy h1{grid-row:2/4}.se-smile .se-hero-copy>p{margin-bottom:20px}.se-smile .se-hero-copy>.pill{justify-self:start;align-self:end}.se-smile .se-hero-figure img{height:clamp(270px,28vw,410px);object-position:50% 48%}.se-smile .se-hero-figure figcaption{margin-top:12px}
.se-intentions{display:grid;grid-template-columns:1fr;gap:0}.se-intentions article{display:grid;grid-template-columns:.38fr 1.2fr 1.3fr;gap:12px 30px;padding:28px 0;border-top:1px solid #dedede;align-items:start}.se-intention-label{font-size:var(--se-small);color:#727272;padding-top:4px}.se-intentions h3{margin:0}.se-intentions p{margin:0}.se-intentions a{grid-column:3;font-size:var(--se-small);display:flex;justify-content:space-between;gap:25px;margin-top:5px}.se-intentions a:hover{color:#277ab9}
.se-planning{background:linear-gradient(130deg,#f8f8f8,#fff);padding:var(--se-section-space) 0;scroll-margin-top:145px}.se-planning-heading{display:grid;grid-template-columns:1fr .9fr;gap:0 70px;align-items:start}.se-planning-heading .eyebrow{grid-column:1/-1}.se-planning-heading p{margin:0;max-width:500px}.se-planning figure{margin:25px 0}.se-planning figure img{width:100%;max-height:450px;object-fit:contain;border-radius:12px}.se-planning figcaption{padding:0 0 10px}.se-preserve{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-bottom:1px solid #e6e6e6}.se-preserve p:last-child{margin-bottom:0}
/* Orthodontics: model-led opening and an actual practical comparison. */
.se-ortho .se-hero-grid{grid-template-columns:1.15fr 1fr;gap:clamp(35px,7vw,100px)}.se-ortho .se-hero-figure{order:-1}.se-ortho .se-hero-figure img{object-fit:contain;height:clamp(280px,29vw,420px);background:linear-gradient(145deg,#fff,#f8f8f8);border-radius:16px}.se-ortho .se-hero-figure figcaption{max-width:440px}.se-ortho-comparison{display:grid;grid-template-columns:.8fr 1.3fr;gap:40px;align-items:center}.se-ortho-comparison figure img{width:100%;height:auto}.se-table-wrap{min-width:0}.se-comparison-table{width:100%;border-collapse:collapse;font-size:var(--se-small);line-height:1.7;text-align:left;table-layout:fixed}.se-comparison-table caption{text-align:left;color:#727272;margin-bottom:20px}.se-comparison-table th,.se-comparison-table td{padding:18px 13px;vertical-align:top;border-bottom:1px solid #e1e1e1;overflow-wrap:break-word}.se-comparison-table thead{background:#f5f5f5}.se-comparison-table thead th:first-child{width:25%}.se-comparison-table tbody th{font-weight:500}.se-comparison-table td{color:#626262}
.se-daily{display:grid;grid-template-columns:1fr 1.12fr;gap:clamp(35px,8vw,110px);border-top:1px solid #e4e4e4}.se-daily-intro{align-self:start;position:sticky;top:150px}.se-daily-list article{padding:25px 0;border-bottom:1px solid #e3e3e3}.se-daily-list article:first-child{padding-top:0}.se-daily-list p{margin:0}.se-retention{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;padding:clamp(28px,4vw,55px);background:linear-gradient(120deg,#f6f6f6,#fff);border-radius:16px;margin-bottom:20px}.se-retention img{width:100%;height:auto}.se-retention .pill{margin-top:10px}
@media(max-width:1000px){.se-hero-grid,.se-ortho .se-hero-grid{gap:30px;grid-template-columns:1fr 1fr}.se-anatomy-grid{grid-template-columns:1.2fr 1fr;gap:25px}.se-ortho-comparison{grid-template-columns:1fr}.se-ortho-comparison figure{max-width:520px;margin:auto}.se-smile .se-hero-copy{gap:0 30px}.se-intentions article{grid-template-columns:.35fr 1fr 1.1fr;gap:15px}.se-retention{gap:25px}.se-preserve{gap:35px}}
@media(max-width:700px){.service-editorial .wrap{width:calc(100% - 40px)}.se-hero .breadcrumb{margin-bottom:25px}.se-hero-grid,.se-ortho .se-hero-grid{grid-template-columns:1fr;gap:30px}.se-hero-copy>p{max-width:100%}.se-hero-figure img{height:255px}.se-implant .se-hero-figure{padding-top:0}.se-ortho .se-hero-figure{order:0}.se-ortho .se-hero-figure img{height:260px}.se-page-nav{gap:0;display:grid;grid-template-columns:1fr 1fr;padding:8px 0}.se-page-nav a{padding:14px 8px 14px 0;justify-content:space-between;gap:10px}.se-section-intro{margin-bottom:25px}.se-anatomy-grid,.se-consultation-grid,.se-note,.se-question-section,.se-preserve,.se-daily,.se-retention{grid-template-columns:1fr;gap:28px}.se-definition>div{padding:20px 0}.se-note{padding-top:30px;padding-bottom:30px}.se-service-row{grid-template-columns:1fr 32px;gap:10px 16px;padding:22px 0}.se-service-row p{grid-column:1;grid-row:2}.se-row-arrow{grid-column:2;grid-row:1/3}.se-question-section .pill{margin-top:5px}.se-reading{padding-bottom:30px;gap:12px}.se-reading>span{flex-basis:100%}.se-smile .se-hero-copy{display:block;margin-bottom:30px}.se-smile .se-hero-copy h1{margin-bottom:20px}.se-smile .se-hero-copy>.pill{margin-top:5px}.se-smile .se-hero-figure img{height:270px}.se-intentions article{grid-template-columns:1fr;gap:10px;padding:25px 0}.se-intentions a{grid-column:1}.se-planning-heading{display:block}.se-planning figure{margin:24px 0}.se-planning figure img{height:auto}.se-preserve>div>p:first-child{margin-top:0}.se-comparison-table th,.se-comparison-table td{padding:14px 8px}.se-ortho-comparison{gap:25px}.se-daily-intro{position:static}.service-editorial .se-retention{padding:25px;width:calc(100% - 40px)}.se-retention figure{order:0}.se-retention .pill{max-width:100%}}

@media(max-width:700px){.se-comparison-table{font-size:var(--se-copy)}.se-table-wrap{scroll-margin-top:120px}}

/* Reflow the comparison on phones instead of breaking words into narrow columns. */
@media(max-width:700px){
 .se-comparison-table{display:block;table-layout:auto}.se-comparison-table caption{display:block;margin-bottom:18px}.se-comparison-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.se-comparison-table tbody{display:block;border-top:1px solid #ddd}.se-comparison-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;padding:18px 0;border-bottom:1px solid #ddd}.se-comparison-table tbody th{grid-column:1/-1;padding:0 0 14px;border:0;overflow-wrap:normal}.se-comparison-table tbody td{padding:0;border:0;overflow-wrap:normal}.se-comparison-table td:before{content:attr(data-label);display:block;color:#202020;font-weight:500;margin-bottom:7px;font-size:var(--se-small)}
}

/* Project rule: every card surface uses the shared soft, neutral elevation. */
:root{--card-shadow:0 4px 10px rgba(0,0,0,.035),0 14px 30px rgba(0,0,0,.075);--card-shadow-hover:0 6px 14px rgba(0,0,0,.05),0 20px 38px rgba(0,0,0,.11)}
body :is(.surface-card,.card,.post,.family,.specialty-tile,.category-offering,.care-booking,.quickbook-form,.se-retention),body .se-anatomy figure{box-shadow:var(--card-shadow)}
body :is(.surface-card,.card,.post,.family,.specialty-tile,.category-offering){transition:box-shadow .22s ease,background-color .22s ease,transform .22s ease}
body :is(.surface-card,.card,.post,.family,.specialty-tile,.category-offering):is(:hover,:focus-visible,:focus-within){box-shadow:var(--card-shadow-hover)}
body .category-offering{background:#fff;border-radius:12px;overflow:hidden}.category-offering.related-service-link{padding:20px}
@media(prefers-reduced-motion:reduce){body :is(.surface-card,.card,.post,.family,.specialty-tile,.category-offering){transition:none}}

/* Owner refinement: white stays dominant, with measured blue and natural image color. */
:root{--accent-blue:#4c98d5;--accent-ink:#277ab9;--accent-wash:#f0f7fd}
.header-contact{background:linear-gradient(100deg,#fff 25%,#eef6fc);border-bottom-color:#e2edf5}
body .eyebrow,.care-eyebrow{color:var(--accent-ink)}
body .care-copy h1 em,body .services-hero h1 em,body .category-hero h1 em,body .inner-hero h1 em{color:#397fb6}
.care-action-primary,body .services-hero .pill.arrow-button:not(.outline):not(.white),body .se-hero-copy>.pill.arrow-button{background:var(--accent-ink);color:#fff;border-color:var(--accent-ink)}
.care-action-primary:hover,body .services-hero .pill.arrow-button:not(.outline):hover,body .se-hero-copy>.pill.arrow-button:hover{background:#1d659e}
body.home #tous-les-soins,body .quickbook{background:linear-gradient(120deg,#fff 12%,#f0f7fd)}
body .services-design,.services-directory-page .services-design,.se-planning{background:linear-gradient(120deg,#fff 25%,#f0f7fd)}
.sitefooter{background:linear-gradient(135deg,#fff 20%,#f2f7fc)}
.se-comparison-table thead{background:#edf5fc}.se-page-nav a:hover,.se-service-row:hover h3{color:var(--accent-ink)}
.care-lettering-fill{color:rgba(76,152,213,.085)}.care-lettering-outline{-webkit-text-stroke-color:rgba(65,125,173,.2)}
/* Photographic replacements use real rectangular crops, never floating-object masks. */
body .services-hero-image.photo-replacement{object-fit:cover;object-position:58% center;border-radius:16px;padding:0;height:calc(100% - 54px);top:27px;mask-image:none}
body.home:not(#_) .project-visual img[src*="planning-photo"]{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:14px;max-height:none}
body .services-design img.photo-replacement{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:14px;max-height:none}
.se-planning figure img.photo-replacement{width:100%;max-height:480px;aspect-ratio:16/7;object-fit:cover;object-position:50% 50%}
body .inner-hero-visual img[src*="blog-editorial-photo"]{object-fit:cover;aspect-ratio:4/3;height:auto;border-radius:16px}
@media(max-width:700px){body .services-hero-image.photo-replacement{height:245px;top:auto;margin:0 auto 24px;width:calc(100% - 40px)}.se-planning figure img.photo-replacement{aspect-ratio:4/3;max-height:none}}

body.home .project-visual:has(img[src*="planning-photo"]){border-radius:14px}
body.home:not(#_) .project-visual img[src*="planning-photo"]{mask-image:none;-webkit-mask-image:none;object-position:62% center}
body:not(#_) .post-art[src*="/media/photos/"]{object-fit:cover;object-position:center;padding:0;background:#f7f7f7}
@media(min-width:1001px){body .services-hero-image.photo-replacement{--photo-start:calc(max(48px,(100% - 1240px) / 2) + 560px);left:var(--photo-start);right:auto;width:min(620px,calc(100% - var(--photo-start) - max(48px,(100% - 1240px) / 2)))}}

/* Homepage fields and custom service / date-time dialogs. */
.care-form{gap:14px 12px}.care-field>label{position:static;display:block;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;font-size:var(--care-tiny);font-weight:500;color:#515d67;line-height:1.4;margin-bottom:7px}.care-field .care-input-icon{top:auto;bottom:15px;transform:none;width:18px;height:18px;stroke:#52616e}
.care-field input,.care-field select,.care-field .booking-control{height:48px;border:1px solid #dde3e8;border-radius:10px;background:#fff;color:#222;padding:0 12px 0 42px;font-family:inherit;font-size:var(--care-small);transition:border-color .18s,box-shadow .18s,background .18s}
.care-field input:hover,.care-field .booking-control:hover{border-color:#a8bed0;background:#fcfdff}.care-field input:focus-visible,.care-field select:focus-visible,.care-field .booking-control:focus-visible{outline:none;border-color:#4c98d5;box-shadow:0 0 0 3px #4c98d51c}.care-field input:user-invalid{border-color:#ba4d4d}.care-field input::placeholder{color:#8a949d}.care-field input[hidden],.care-field select[hidden]{display:none}
.booking-control{display:block;width:100%;text-align:left;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;min-width:0;font-weight:400;cursor:pointer}.care-field .booking-control{color:#7d8994}.care-field .booking-control.has-value{color:#202c35}.booking-control-select{padding-right:35px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2355626e' stroke-width='1.6'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 13px center!important}
.booking-dialog{width:min(760px,calc(100% - 40px));max-width:760px;max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #e5e9ed;border-radius:20px;padding:28px;box-shadow:0 24px 90px #0c20332e;color:#182733;background:white;font-family:'Poppins',Arial,sans-serif}.booking-dialog::backdrop{background:#13202b65;backdrop-filter:blur(3px)}
.booking-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.booking-dialog-kicker{font-size:var(--care-tiny);text-transform:uppercase;letter-spacing:.15em;color:#277ab9;display:block;margin-bottom:9px}.booking-dialog h2{font-family:'Outfit',Arial,sans-serif;font-size:clamp(1.35rem,1.1rem + .7vw,1.8rem);letter-spacing:-.03em;line-height:1.2;margin:0}.booking-dialog-close{display:grid;place-items:center;flex:none;width:36px;height:36px;border-radius:50%;background:#f3f5f7;color:#334451;font-size:clamp(1.4rem,1.2rem + .3vw,1.7rem);line-height:1}.booking-dialog-close:hover{background:#e4edf5}
#booking-service-dialog{max-width:480px}.booking-search-label{display:block;font-size:var(--care-small);font-weight:500;color:#5e6b76;margin-bottom:8px}.booking-search{display:block;width:100%;font:inherit;font-size:var(--care-small);padding:13px 15px;border:1px solid #dce4ec;border-radius:10px;background:#f8fbfe;color:#222}.booking-search:focus{outline:none;border-color:#4c98d5;box-shadow:0 0 0 3px #4c98d51c}
.booking-service-options{max-height:min(360px,45dvh);overflow:auto;margin-top:15px;padding-right:5px;scrollbar-width:thin;scrollbar-color:#cbd9e4 #fff}.booking-service-option{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:14px 13px;border-radius:8px;color:#253541;text-align:left;font-size:var(--care-small);line-height:1.5;background:#fff}.booking-service-option+.booking-service-option{border-top:1px solid #f0f3f6}.booking-service-option:hover,.booking-service-option:focus-visible{background:#edf6fd;outline:none}.booking-service-option[aria-pressed="true"]{background:#e8f3fc;color:#176ea8}.booking-service-option[aria-pressed="true"]:after{content:'✓';color:#277ab9}.booking-service-options>p,.booking-picker-note{font-size:var(--care-tiny);line-height:1.6;color:#73808b;margin:14px 0 0}.booking-date-intro{margin:0 0 24px}
.booking-date-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:30px}.booking-month-nav{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:10px;margin-bottom:18px}.booking-month-title{text-align:center;font-size:var(--care-small);font-weight:500;text-transform:capitalize}.booking-month-nav button{height:36px;border:1px solid #e4e9ee;border-radius:9px;background:white;color:#253b4c;font-size:clamp(1.3rem,1.1rem + .5vw,1.6rem)}.booking-month-nav button:hover:not(:disabled){background:#edf6fd}.booking-month-nav button:disabled{opacity:.3;cursor:default}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.booking-weekdays{margin-bottom:8px;font-size:var(--care-tiny);text-align:center;color:#7f8991}.booking-days button{height:38px;min-width:0;display:grid;place-items:center;background:white;color:#273b4c;border-radius:9px;border:1px solid transparent;font-size:var(--care-small)}.booking-days button:hover:not(:disabled){background:#edf6fd;border-color:#bdd9ee}.booking-days button:disabled{color:#c7cdd2;cursor:default}.booking-days button.is-today{border-color:#bdd9ee}.booking-days button[aria-pressed="true"]{background:#277ab9;color:white;border-color:#277ab9}
.booking-time-panel{border-left:1px solid #e7ecf0;padding-left:26px}.booking-time-panel h3{font-family:'Outfit',Arial,sans-serif;font-size:var(--care-heading);margin:0 0 7px}.booking-time-panel>.booking-picker-note{margin:0 0 17px}.booking-time-panel>label,.booking-time-label,.booking-minutes-label{font-size:var(--care-tiny);font-weight:500;color:#62727e;display:block;margin:13px 0 8px}
.booking-hour-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}.booking-minute-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.booking-hour-grid button,.booking-minute-grid button{font-size:var(--care-small);height:34px;min-width:0;background:#f7f9fb;color:#394f60;border:1px solid #e6ecf1;border-radius:7px}.booking-hour-grid button:hover:not(:disabled),.booking-minute-grid button:hover:not(:disabled){background:#e9f4fc;border-color:#c6dff1}.booking-hour-grid button[aria-pressed="true"],.booking-minute-grid button[aria-pressed="true"]{background:#277ab9;border-color:#277ab9;color:white}.booking-hour-grid button:disabled,.booking-minute-grid button:disabled{opacity:.3;cursor:default}
.booking-clear-time{margin-top:15px;background:transparent;color:#667d8f;padding:8px 0;font-size:var(--care-tiny)}.booking-clear-time:hover{color:#277ab9}.booking-date-summary{padding:14px 16px;margin-top:24px;border-radius:9px;background:#f0f7fd;font-size:var(--care-small);color:#30627f}.booking-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px}.booking-clear-date{padding:11px 14px;background:#f4f6f8;color:#5c6d7a;border-radius:9px;font-size:var(--care-small)}.booking-date-confirm{background:#172a38;color:white;font-size:var(--care-small);padding:13px 19px;min-height:44px;border-radius:24px}.booking-date-confirm:hover:not(:disabled){background:#277ab9}.booking-date-confirm:disabled{opacity:.4;cursor:default}
.booking-dialog button:focus-visible{outline:2px solid #4c98d5;outline-offset:2px}
@media(max-width:600px){.booking-dialog{width:calc(100% - 24px);padding:22px;max-height:calc(100dvh - 24px);border-radius:18px}.booking-date-layout{grid-template-columns:1fr;gap:24px}.booking-time-panel{border-left:0;border-top:1px solid #e7ecf0;padding:20px 0 0}.booking-days button{height:36px}.booking-hour-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.booking-dialog-foot{position:sticky;bottom:-22px;background:white;padding:14px 0;margin-bottom:-8px}.booking-dialog-head{margin-bottom:18px}.booking-service-options{max-height:42dvh}.booking-control{font-size:var(--care-small)}}
@media(prefers-reduced-motion:reduce){.care-field input,.care-field select,.care-field .booking-control{transition:none}}

/* Conseils & sourire: a photographic journal with the clinic's shared card shadows. */
.journal-intro{padding-top:28px;padding-bottom:38px}.journal-breadcrumb{font-size:12px;color:#78828a;margin:0 0 38px}.journal-breadcrumb span{margin:0 12px;color:#aab4bc}.journal-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:end}.journal-heading h1{font-size:clamp(2.7rem,5.2vw,5rem);line-height:1.08;letter-spacing:-.055em;font-weight:500;margin:0}.journal-heading h1 span{color:#4c98d5}.journal-heading>p{max-width:440px;line-height:1.85;color:#687680;margin:0 0 5px;font-size:clamp(.9rem,1vw,1rem)}
.journal-feature{display:grid;grid-template-columns:1.15fr 1fr;border-radius:18px;overflow:hidden;background:linear-gradient(120deg,#f0f7fc,#fff);border:1px solid #e3ebf1}.journal-feature-image{position:relative;min-height:365px;overflow:hidden}.journal-feature-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .5s}.journal-feature-image>span{position:absolute;top:24px;left:24px;background:#fff;color:#21394b;border-radius:24px;padding:8px 17px;font-size:12px}.journal-feature-copy{padding:clamp(26px,3.5vw,54px);align-self:center}.journal-feature-copy h2{font-size:clamp(1.8rem,2.7vw,2.8rem);line-height:1.15;letter-spacing:-.035em;margin:0 0 20px}.journal-feature-copy>p{font-size:14px;line-height:1.85;color:#64727d;margin-bottom:26px}.journal-read{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;font-weight:500;color:#1f3545}.journal-read>span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e5f1fb;color:#277ab9;flex:none}.journal-feature-copy small{display:block;margin-top:17px;font-size:10px;color:#7b8790}.journal-feature:hover img{transform:scale(1.025)}
.journal-library-heading{display:flex;justify-content:space-between;align-items:end;gap:25px}.journal-library-heading h2{font-size:clamp(1.9rem,3vw,3rem);letter-spacing:-.04em;margin:0}.journal-count{font-size:12px;color:#77848e;padding-bottom:7px}.journal-topics{display:flex;flex-wrap:wrap;gap:10px;margin:27px 0 20px}.journal-topics a{font-size:12px;border:1px solid #dce6ee;border-radius:24px;padding:11px 18px;display:flex;gap:24px;align-items:center;background:#fff}.journal-topics a:hover{background:#edf6fd;border-color:#99c6e8}.journal-topics span{color:#4c98d5}.journal-review-note{font-size:11px;color:#7b8790;line-height:1.7;margin:0 0 30px;max-width:760px}.journal-page .journal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}.journal-page .journal-card{background:white;border:1px solid #e2e8ed;gap:0;scroll-margin-top:150px}.journal-card-image{position:relative;overflow:hidden}.journal-page .journal-card .post-art{width:100%;height:260px;object-fit:cover;border-radius:0;transition:transform .5s}.journal-card-image>span{position:absolute;bottom:18px;left:20px;background:#fff;padding:7px 14px;border-radius:20px;font-size:11px;color:#244b68}.journal-page .journal-card .post-body{padding:26px;gap:14px}.journal-card h3{font-size:clamp(1.35rem,1.6vw,1.75rem);line-height:1.25;margin:0;letter-spacing:-.025em}.journal-card p{font-size:13px;line-height:1.85;color:#6c7983;margin:0}.journal-card .journal-read{margin-top:auto;padding-top:8px}.journal-card:hover .post-art{transform:scale(1.025)}.journal-feature:focus-visible,.journal-card:focus-visible,.journal-topics a:focus-visible{outline:3px solid #4c98d5;outline-offset:5px}
@media(max-width:800px){.journal-heading{grid-template-columns:1fr;gap:20px}.journal-heading>p{max-width:550px}.journal-feature{grid-template-columns:1fr}.journal-feature-image{min-height:280px}.journal-feature-copy{padding:30px}.journal-library-heading{align-items:start;flex-direction:column;gap:12px}.journal-page .journal-card .post-art{height:210px}}
@media(max-width:540px){.journal-intro{padding-top:22px;padding-bottom:28px}.journal-breadcrumb{margin-bottom:27px}.journal-page .journal-grid{grid-template-columns:1fr;gap:25px}.journal-feature-image{min-height:235px}.journal-feature-copy{padding:25px}.journal-page .journal-card .post-art{height:235px}.journal-topics{gap:8px}.journal-topics a{padding:9px 13px;gap:16px}.journal-feature-wrap{min-width:0}}
@media(prefers-reduced-motion:reduce){.journal-feature-image img,.journal-page .journal-card .post-art{transition:none}.journal-feature:hover img,.journal-card:hover .post-art{transform:none}}
/* 28/10 : « Nos soins » + flèche = un seul élément de menu (survol commun, flèche collée au texte). */
body:not(#_) .topbar .nav-services-group{gap:0;cursor:pointer}
body:not(#_) .topbar .nav-services-group .navlinks-trigger{min-width:0;min-height:0;padding:0 0 0 5px;color:inherit;border:0}
body:not(#_) .topbar .nav-services-group .navlinks-trigger .chevron{width:10px;height:10px}
body:not(#_) .topbar .nav-services-group:is(:hover,:focus-within) :is(a,.navlinks-trigger),body:not(#_) .topbar .nav-services-group:has([aria-expanded="true"]) :is(a,.navlinks-trigger){color:#111}
body:not(#_) .topbar .nav-services-group:has([aria-expanded="true"]) .navlinks-trigger .chevron{transform:rotate(180deg)}
body:not(#_) .topbar .nav-services-group{border-bottom:1px solid transparent;padding-bottom:3px}
body:not(#_) .topbar .nav-services-group>a{border-bottom:0;padding-bottom:0}
body:not(#_) .topbar .nav-services-group:is(:hover,:focus-within),body:not(#_) .topbar .nav-services-group:has([aria-expanded="true"],[aria-current="page"]){border-bottom-color:#111}

/* 28/10 : heroes des pages soins, image pleine largeur (bord droit de l'écran, toute la hauteur)
   qui s'efface vers le texte. Sous 850 px, l'image reste sous le texte (règles existantes). */
@media(min-width:851px){
  body:not(#_) .clinical-photo-hero{background:#fff}
  body:not(#_) .clinical-photo-hero .category-hero-image{top:0;bottom:0;right:0;left:auto;transform:none;width:64%;height:100%;max-height:none;
    object-fit:cover;object-position:center;border-radius:0!important;z-index:0;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 16%,#000 42%);mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 16%,#000 42%)}
  body:not(#_) .clinical-photo-hero .category-hero-content{position:relative;z-index:1}
  body:not(#_) .clinical-photo-hero .category-hero-copy{position:relative}

  body:not(#_) .se-hero{position:relative;isolation:isolate}
  body:not(#_) .se-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  body:not(#_) .se-hero-figure{position:absolute;z-index:-1;top:0;bottom:0;right:calc(50% - 50vw);width:calc(50vw + 14%);margin:0;padding:0}
  body:not(#_) .se-hero-figure img{width:100%;height:100%;border-radius:0;object-fit:cover;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 18%,#000 45%);mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 18%,#000 45%)}
  body:not(#_) .se-hero-copy{position:relative;z-index:1}
}
@media(min-width:851px){
  /* /soins/ : même principe, image à droite pleine hauteur */
  body:not(#_) .services-hero{position:relative;overflow:hidden;isolation:isolate;background:#fff}
  body:not(#_) .services-hero .services-hero-image{position:absolute;z-index:0;right:0;top:0;bottom:0;width:62%;height:100%;padding:0;object-fit:cover;border-radius:0;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 16%,#000 42%);mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.35) 16%,#000 42%)}
  body:not(#_) .services-hero .services-hero-content{position:relative;z-index:1}

  /* Pages avec photo à gauche (Le cabinet, Contact, Rendez-vous) : la photo occupe le bord gauche et s'efface vers le texte */
  body:not(#_).interior .inner-hero:has(.inner-hero-visual img:is([src*="/clinic/"],[src*="/photos/"])){position:relative;overflow:hidden;isolation:isolate;background:#fff}
  body:not(#_) .inner-hero-visual:has(img:is([src*="/clinic/"],[src*="/photos/"])){position:absolute;z-index:-1;left:0;top:0;bottom:0;width:56%;margin:0;border-radius:0;overflow:hidden}
  body:not(#_) .inner-hero-visual img:is([src*="/clinic/"],[src*="/photos/"]){width:100%;height:100%;object-fit:cover;border-radius:0;
    -webkit-mask-image:linear-gradient(270deg,transparent 0,rgba(0,0,0,.35) 16%,#000 42%);mask-image:linear-gradient(270deg,transparent 0,rgba(0,0,0,.35) 16%,#000 42%)}
  body:not(#_) .inner-hero-grid:has(> .inner-hero-visual img:is([src*="/clinic/"],[src*="/photos/"])){min-height:420px;align-items:center}
  body:not(#_) .inner-hero-grid:has(> .inner-hero-visual img:is([src*="/clinic/"],[src*="/photos/"])) .inner-hero-copy{grid-column:2}
}
@media(min-width:851px){
  body:not(#_) .inner-hero:has(.inner-hero-visual img:is([src*="/clinic/"],[src*="/photos/"])) .breadcrumb{margin-left:50%;position:relative;z-index:1}
}

/* 28/10 real media : cas réels du cabinet (vidéos avant / après, paire photo, photos de tête) */
.real-case-videos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.real-case-videos figure{margin:0;overflow:hidden;border-radius:14px;background:#fff;border:1px solid #ececec}
.real-case-video{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#111}
.real-case-videos figcaption{padding:15px 20px;font-size:13px;color:#111}
.real-case-pair{margin-top:22px}
body:not(#_) .real-case-pair img{height:auto;aspect-ratio:2/1;object-fit:cover;background:#111}
body:not(#_) .clinical-photo-hero .category-hero-image.is-real-photo{object-fit:cover;object-position:50% 50%;padding:0;background:#111}
@media(max-width:850px){body:not(#_) .clinical-photo-hero .category-hero-image.is-real-photo{height:auto;aspect-ratio:2/1}.real-case-videos{grid-template-columns:1fr 1fr;gap:14px}.real-case-videos figure:last-child{grid-column:1/-1}.real-case-videos figcaption{padding:12px 14px}}

/* 28/10 : « Les possibilités » en cartes image (illustration + titre, texte au survol sur un voile sombre). */
.se-service-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:clamp(24px,3vw,40px)}
.se-service-card{position:relative;display:block;aspect-ratio:4/4.6;border-radius:18px;overflow:hidden;background:radial-gradient(120% 90% at 50% 25%,#fafafa 0,#ececec 70%);color:#111;text-decoration:none;isolation:isolate;border:1px solid #e6e6e6;box-shadow:0 20px 44px -34px rgba(0,0,0,.5)}
.se-service-card img{position:absolute;left:6%;right:6%;top:6%;width:88%;height:62%;object-fit:contain;transition:transform .5s ease}
.se-card-shade{position:absolute;inset:0;background:rgba(17,17,17,.9);opacity:0;transition:opacity .35s ease}
.se-card-body{position:absolute;left:20px;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px}
.se-service-card h3{margin:0;font:600 clamp(19px,1.6vw,22px)/1.2 'Outfit',Arial,sans-serif;letter-spacing:-.02em;color:inherit;transition:color .3s}
.se-service-card p{margin:0;font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.9);max-height:0;opacity:0;overflow:hidden;transition:max-height .45s ease,opacity .3s ease}
.se-service-card .se-row-arrow{position:absolute;top:16px;right:16px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-size:15px;transition:transform .3s ease,background .3s,color .3s}
.se-service-card:is(:hover,:focus-visible) img{transform:scale(1.06)}
.se-service-card:is(:hover,:focus-visible) .se-card-shade{opacity:1}
.se-service-card:is(:hover,:focus-visible) h3{color:#fff}
.se-service-card:is(:hover,:focus-visible) p{max-height:10em;opacity:1}
.se-service-card:is(:hover,:focus-visible) .se-row-arrow{transform:rotate(45deg);background:#fff;color:#111}
.se-service-card:focus-visible{outline:2px solid #111;outline-offset:3px}
@media(hover:none){.se-service-card p{max-height:none;opacity:1;color:#555}}
@media(max-width:700px){.se-service-cards{grid-template-columns:1fr 1fr;gap:12px}.se-card-body{left:14px;right:14px;bottom:14px}.se-service-card p{display:none}}
@media(max-width:420px){.se-service-cards{grid-template-columns:1fr}.se-service-card{aspect-ratio:4/3.4}.se-service-card p{display:block}}
@media(prefers-reduced-motion:reduce){.se-service-card img,.se-card-shade,.se-service-card h3,.se-service-card p,.se-service-card .se-row-arrow{transition:none}}

/* 29/10 : « Implants dentaires », soin phare, mis en avant dans le menu de bureau (pastille + icône). */
body:not(#_) .navlinks a.nav-feature{display:inline-flex;align-items:center;gap:7px;padding:8px 14px 8px 11px;border-radius:999px;background:#111;color:#fff;font-weight:500;border-bottom:0}
body:not(#_) .navlinks a.nav-feature svg{width:16px;height:16px;flex:none}
body:not(#_) .navlinks a.nav-feature:is(:hover,:focus-visible){background:#333;color:#fff}
body:not(#_) .navlinks a.nav-feature[aria-current="page"]{box-shadow:0 0 0 2px #fff,0 0 0 3px #111}
body:not(#_) .navlinks a.nav-feature::after{display:none}

/* 29/10 : au survol, les cartes « Les possibilités » ne noircissent plus (voile noir à 90 %).
   L'image reste visible, un fondu blanc monte du bas avec la description en texte foncé, la carte se soulève. */
body:not(#_) .se-service-card{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
body:not(#_) .se-card-shade{background:linear-gradient(to top,#fff 0,#fff 34%,rgba(255,255,255,.88) 52%,rgba(255,255,255,0) 74%)}
body:not(#_) .se-service-card:is(:hover,:focus-visible){transform:translateY(-4px);border-color:#d4d4d4;box-shadow:var(--card-shadow-hover)}
body:not(#_) .se-service-card:is(:hover,:focus-visible) img{transform:scale(1.04) translateY(-6%)}
body:not(#_) .se-service-card:is(:hover,:focus-visible) h3{color:#111}
body:not(#_) .se-service-card p{color:#555}
body:not(#_) .se-service-card:is(:hover,:focus-visible) .se-row-arrow{background:#111;color:#fff}
@media(prefers-reduced-motion:reduce){body:not(#_) .se-service-card{transition:none}body:not(#_) .se-service-card:is(:hover,:focus-visible){transform:none}}
/* 29/10 : « Implants dentaires » mis en avant aussi dans le panneau (fond sombre : pastille blanche) */
body:not(#_) .menu-pages a.menu-feature{display:inline-flex;align-items:center;gap:7px;padding:7px 13px 7px 10px;border-radius:999px;background:#fff;color:#111;font-weight:500}
body:not(#_) .menu-pages a.menu-feature svg{width:15px;height:15px;flex:none}
body:not(#_) .menu-pages a.menu-feature:hover{background:#e9e9e9;color:#111}

/* ---------- Rail de cartes partagé (.pi-rail), 29/10 : boutons ← → gérés par site.js. Cartes : flex:0 0 calc((100% - 3 * 16px) / 3.5) ---------- */
.pi-rail-controls{display:flex;gap:8px}
.pi-rail-controls .round{width:44px;height:44px}
.pi-rail{display:flex;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:12px 8px 30px;margin:-12px -8px -18px;scrollbar-width:none}
.pi-rail::-webkit-scrollbar{display:none}
.pi-rail:focus-visible{outline:2px solid #111;outline-offset:4px}
@media (max-width:760px){.pi-rail{scroll-padding-left:8px}}
/* ---------- Bouton lien partagé (.pi-link + <span> = pastille flèche), remplace les liens soulignés ↗, 29/10 ---------- */
.pi-link{color:#111;font-weight:500;border-bottom:1px solid currentColor}
.pi-link:hover{color:#5f5f5f}
.pi-link:has(> span){display:inline-flex;align-items:center;gap:12px;font-size:14px;line-height:1;border:1px solid #d6d6d6;border-radius:999px;padding:6px 6px 6px 18px;background:#fff;transition:border-color .2s,background .2s,color .2s}
.pi-link > span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#111;font-size:0;transition:transform .25s ease}
.pi-link > span::before{content:"";width:14px;height:14px;background:#fff;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat}
.pi-link:has(> span):is(:hover,:focus-visible){border-color:#111;background:#111;color:#fff}
.pi-link:has(> span):is(:hover,:focus-visible) > span{background:#fff;transform:translateX(2px)}
.pi-link:has(> span):is(:hover,:focus-visible) > span::before{background:#111}
@media(prefers-reduced-motion:reduce){.pi-link,.pi-link > span{transition:none}}

/* ---------- 29/10 : passe mobile des éléments communs (menu, méga menu, pied de page, boutons flottants, formulaires) ---------- */
/* Global : rien ne dépasse la largeur de l'écran, les mots longs (e-mails, URL) passent à la ligne. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-wrap:break-word}
img,video,iframe,embed,object{max-width:100%}
video{height:auto}
@supports(padding:max(0px)){body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}
.pi-link--down > span{transform:rotate(90deg)}
.pi-link--down:has(> span):is(:hover,:focus-visible) > span{transform:rotate(90deg) translateX(2px)}
@media(max-width:700px){:where(h1,h2,h3,h4,h5,h6){overflow-wrap:anywhere}}

/* Panneau du menu : le fond ne défile plus (iOS compris), le bouton fermer reste visible pendant le défilement. */
html:has(body.menu-open){overflow:hidden}
.menu-drawer{overscroll-behavior:contain;padding-bottom:max(24px,calc(16px + env(safe-area-inset-bottom)))}
body:not(#_) .menu-close{width:44px;height:44px;flex:none}
body:not(#_) .menu-drawer .menu-all.pi-link{align-self:flex-start;margin:16px 12px 0;padding:6px 6px 6px 18px;min-height:44px;color:#111;border:1px solid #fff;background:#fff;font-size:14px}
body:not(#_) .menu-drawer .menu-all.pi-link:is(:hover,:focus-visible){background:#e9e9e9;border-color:#e9e9e9;color:#111}
body:not(#_) .menu-drawer .menu-all.pi-link:is(:hover,:focus-visible) > span{background:#111}
body:not(#_) .menu-drawer .menu-all.pi-link:is(:hover,:focus-visible) > span::before{background:#fff}
@media(max-width:1000px){
  body:not(#_) .menu-top{position:sticky;top:-20px;z-index:2;margin:-20px -20px 0;padding:max(20px,env(safe-area-inset-top)) 20px 8px;background:#151515;justify-content:flex-end}
  body:not(#_) .menu-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  body:not(#_) .menu-pages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;font-size:15px}
  body:not(#_) .menu-pages a{display:flex;align-items:center;min-height:48px;padding:6px 14px;border-radius:12px;background:#ffffff0f;color:#f1f1f1;line-height:1.25}
  body:not(#_) .menu-pages a:is(:hover,:focus-visible),body:not(#_) .menu-pages a[aria-current="page"]{background:#ffffff1f;color:#fff}
  body:not(#_) .menu-pages a.menu-feature{order:-1;grid-column:1/-1;justify-content:center;gap:9px;min-height:50px;padding:8px 16px;border-radius:999px;background:#fff;color:#111;font-size:15px}
  body:not(#_) .menu-pages a.menu-feature svg{width:18px;height:18px}
  body:not(#_) .menu-pages a.menu-feature:is(:hover,:focus-visible){background:#e9e9e9;color:#111}
  body:not(#_) .menu-speciality{min-height:56px}
  body:not(#_) .menu-foot .pill{min-height:46px}
}
@media(min-width:701px) and (max-width:1000px){body:not(#_) .menu-top{top:-28px;margin:-28px -34px 0;padding:max(28px,env(safe-area-inset-top)) 34px 8px}}

/* Méga menu : jamais plus haut que l'écran (il défile), boutons flottants masqués tant qu'il est ouvert. */
.megamenu{max-height:calc(100dvh - 130px);overflow-y:auto;overscroll-behavior:contain}
body:not(#_) .megamenu-foot .pi-link{padding:6px 6px 6px 18px;font-size:13px;border-bottom:1px solid #d6d6d6}
body:has(.navlinks-trigger[aria-expanded="true"]) :is(.dv-ask,.wa-float),
body.menu-open :is(.dv-ask,.wa-float){opacity:0;visibility:hidden;pointer-events:none}

/* Boutons flottants : marge de sécurité (encoche, barre d'accueil iOS), et retrait quand un bouton d'envoi
   ou le pied de page est à l'écran (site.js pose body.floats-tucked), sauf si la bulle « Une question ? » est ouverte. */
.wa-float{right:calc(22px + env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom))}
.dv-ask,.wa-float{transition:opacity .25s ease,visibility .25s ease,transform .25s ease}
body.floats-tucked .wa-float,
body.floats-tucked .dv-ask:not(:has(.dv-ask-panel:not([hidden]))){opacity:0;visibility:hidden;transform:translateY(10px);pointer-events:none}
@media(max-width:700px){
  body:not(#_){padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  body:not(#_) .mobilebar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
}
@media(prefers-reduced-motion:reduce){.dv-ask,.wa-float{transition:none}}

/* Pied de page mobile : deux colonnes de liens, contact sur toute la largeur, liens de 44 px. */
@media(max-width:700px){
  body:not(#_) .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 16px}
  body:not(#_) .footer-grid>.footer-contact{grid-column:1/-1}
  body:not(#_) .sitefooter h3{margin-bottom:6px}
  body:not(#_) .sitefooter ul{gap:0;font-size:14px}
  body:not(#_) .sitefooter ul a{display:flex;align-items:center;min-height:44px;line-height:1.3}
  body:not(#_) .footer-mail{overflow-wrap:anywhere;font-size:clamp(14px,4.4vw,20px);margin-bottom:4px;padding:8px 0}
  body:not(#_) .footer-end .motion-toggle{padding-left:0;padding-right:0;border:0}
  body:not(#_) .footer-phone{display:flex;align-items:center;min-height:44px;font-size:16px}
  body:not(#_) .socials{gap:10px}
  body:not(#_) .socials a{width:44px;height:44px}
  body:not(#_) .sitefooter .follow{margin-top:26px;margin-bottom:12px}
  body:not(#_) .footer-end{flex-direction:column;align-items:flex-start;gap:6px}
  body:not(#_) .footer-end-links{flex-wrap:wrap;gap:0 20px}
  body:not(#_) .footer-end-links a{display:inline-flex;align-items:center;min-height:44px}
}

/* Formulaires sur écran tactile : 16 px minimum (pas de zoom iOS), pleine largeur, boutons empilés. */
@media(max-width:1000px),(hover:none){
  body:not(#_) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea,.booking-control){font-size:16px}
}
@media(max-width:540px){
  body:not(#_) .care-form{grid-template-columns:minmax(0,1fr)}
  body:not(#_) .care-form>*{grid-column:1/-1}
  body:not(#_) .bp-back{min-height:44px;display:inline-flex;align-items:center}
  body:not(#_) .bp-next{width:100%;justify-content:center}
  body:not(#_) :is(.bp-send,.bp-wa,.care-submit){width:100%}
}

/* 29/10 : retours des agents de pages. */
/* Bouton lien : cible tactile de 44 px partout. */
.pi-link:has(> span){min-height:44px}
/* Lien d'évitement : invisible tant qu'il n'a pas le focus, sous les fenêtres ouvertes. */
body:not(#_) .skip{top:8px;left:8px;z-index:9;transform:translateY(calc(-100% - 20px));clip-path:inset(50%);transition:none}
body:not(#_) .skip:focus,body:not(#_) .skip:focus-visible{transform:none;clip-path:none;z-index:200}
body:has(dialog[open]) .skip{visibility:hidden}
/* Fenêtre « Parlons de votre cas » : la colonne du formulaire défile dans l'écran (même valeurs que pages-services.css). */
.myths-book-main{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:720px){.myths-book-main{max-height:calc(100dvh - 16px - 120px)}}
/* Bloc rendez-vous : Appeler et WhatsApp empilés pleine largeur sur téléphone. */
@media(max-width:540px){
  body:not(#_) .quickbook-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
  body:not(#_) .quickbook-actions .contact-chip{display:flex;width:100%;min-height:56px}
}
/* Cartes « Les possibilités » : fond blanc uni, le survol clair reste. */
body:not(#_) .se-service-card{background:#fff}

/* ---------- Menu téléphone refait (29/10) : un seul écran. Implants en tête, 4 pages, spécialités en grille
   2 colonnes (icône + nom, sans sous-titre ni flèche), actions fixées en bas. Le bureau garde la liste détaillée. ---------- */
@media(max-width:1000px){
  body:not(#_) .menu-drawer{gap:14px}
  body:not(#_) .menu-specialities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
  body:not(#_) .menu-speciality{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 10px;border-radius:12px;background:#ffffff08;border:0}
  body:not(#_) .menu-speciality+.menu-speciality{border-top:0}
  body:not(#_) .menu-speciality:is(:hover,:focus-visible),body:not(#_) .menu-speciality[aria-current="page"]{background:#ffffff1a}
  body:not(#_) .menu-speciality.is-featured-dup{display:none}
  body:not(#_) .menu-speciality-icon{width:30px;height:30px;flex:none}
  body:not(#_) .menu-speciality-icon svg{width:17px;height:17px}
  body:not(#_) .menu-speciality-text strong{font-size:14px;line-height:1.2;letter-spacing:-.01em}
  body:not(#_) .menu-speciality-text small,body:not(#_) .menu-speciality-arrow{display:none}
  body:not(#_) .menu-drawer .menu-all.pi-link{grid-column:1/-1;margin:4px 0 0;justify-self:start}
  body:not(#_) .menu-foot{position:sticky;bottom:calc(-1 * max(24px,calc(16px + env(safe-area-inset-bottom))));margin:auto -20px calc(-1 * max(24px,calc(16px + env(safe-area-inset-bottom))));
    padding:12px 20px max(16px,calc(10px + env(safe-area-inset-bottom)));background:#151515;border-top:1px solid #ffffff14}
  body:not(#_) .menu-foot .menu-actions{display:flex;align-items:center;gap:8px}
  body:not(#_) .menu-foot .pill{flex:1;justify-content:space-between}
}
@media(max-width:360px){body:not(#_) .menu-speciality-text strong{font-size:13px}}
@media(max-width:560px){
  body:not(#_) .menu-drawer{width:100vw}
  body:not(#_) .menu-speciality{gap:8px;padding:8px 10px}
  body:not(#_) .menu-speciality-icon{width:26px;height:26px}
  body:not(#_) .menu-speciality-text strong{overflow-wrap:normal;word-break:normal;hyphens:manual}
}
@media(max-width:400px){body:not(#_) .menu-speciality-icon{display:none}body:not(#_) .menu-speciality{padding:8px 12px}}
@media(max-width:360px){body:not(#_) .menu-foot .pill{white-space:nowrap;font-size:12.5px;padding-left:14px}}

/* ---------- Pied de page refait (29/10) : bloc cabinet (logo, adresse, horaires), 2 colonnes de liens, contact
   (téléphones, e-mail en petit, bouton rendez-vous, réseaux). Mentions et confidentialité seulement en bas. ---------- */
body:not(#_) .footer-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr);gap:48px;align-items:start}
body:not(#_) .footer-logo{display:inline-flex;align-items:center;gap:12px;color:#111;margin-bottom:22px}
body:not(#_) .footer-logo svg{width:30px;height:34px;flex:none}
body:not(#_) .footer-logo strong{display:block;font-family:"Outfit",Arial,sans-serif;font-size:19px;font-weight:600;letter-spacing:-.02em;color:#111}
body:not(#_) .footer-logo small{display:block;font-size:10px;letter-spacing:.12em;color:#8a8a8a;margin-top:2px}
body:not(#_) .footer-address{margin:0 0 18px;font-size:14px;line-height:1.6;color:#555;max-width:300px}
body:not(#_) .footer-hours{margin:0;display:grid;gap:6px;font-size:13px}
body:not(#_) .footer-hours div{display:flex;justify-content:space-between;gap:16px;max-width:300px;padding:9px 12px;background:#fff;border:1px solid #ececec;border-radius:10px}
body:not(#_) .footer-hours dt{color:#6b6b6b}
body:not(#_) .footer-hours dd{margin:0;color:#111;font-weight:500}
body:not(#_) .sitefooter ul{font-size:14px;gap:11px}
body:not(#_) .sitefooter a:hover{color:#111;text-decoration:underline;text-underline-offset:3px}
body:not(#_) .footer-phone{font-family:"Outfit",Arial,sans-serif;font-size:20px;letter-spacing:-.02em;color:#111;margin:0 0 4px}
body:not(#_) .footer-phone-fixed{font-family:"Poppins",Arial,sans-serif;font-size:13px;letter-spacing:0;color:#6b6b6b;margin-bottom:10px}
body:not(#_) .footer-mail{font-family:"Poppins",Arial,sans-serif;font-size:13px;letter-spacing:0;line-height:1.5;color:#434343;margin:0 0 22px;padding:0;overflow-wrap:anywhere}
body:not(#_) .footer-cta{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
body:not(#_) .footer-cta .pi-link:hover{text-decoration:none;color:#fff}
body:not(#_) .footer-cta .socials{display:flex;gap:10px}
body:not(#_) .footer-end{align-items:center}
body:not(#_) .footer-end .motion-toggle{margin:0}
@media(max-width:1100px){
  body:not(#_) .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}
}
@media(max-width:700px){
  body:not(#_) .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}
  body:not(#_) .footer-grid>.footer-brand,body:not(#_) .footer-grid>.footer-contact{grid-column:1/-1}
  body:not(#_) .footer-hours div,body:not(#_) .footer-address{max-width:none}
  body:not(#_) .footer-contact{padding:20px;background:#fff;border:1px solid #ececec;border-radius:16px;box-shadow:var(--card-shadow)}
  body:not(#_) .footer-mail{font-size:13px;padding:6px 0;margin-bottom:16px}
  body:not(#_) .footer-phone{font-size:20px;min-height:40px}
  body:not(#_) .footer-phone-fixed{font-size:14px;min-height:40px;margin-bottom:0}
  body:not(#_) .footer-cta{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;width:100%}
}
@media(min-width:1101px){
  body:not(#_) .footer-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.5fr)}
  body:not(#_) .footer-mail{white-space:nowrap;overflow-wrap:normal}
}
@media(max-width:700px){body:not(#_) .sitefooter ul{gap:0}}

/* ---------- Bandeau rendez-vous sombre : boutons lisibles (29/10). Principal blanc, secondaires contour blanc. ---------- */
body:not(#_) .ctaband .actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
body:not(#_) .ctaband .pill.white{background:#fff;color:#111;border:1px solid #fff}
body:not(#_) .ctaband .pill.white .arrow{background:#111;color:#fff}
body:not(#_) .ctaband .pill.white:is(:hover,:focus-visible){background:#e9e9e9;border-color:#e9e9e9;color:#111}
body:not(#_) .ctaband .pill.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55)}
body:not(#_) .ctaband .pill.ghost .pill-icon{color:#fff;fill:currentColor}
body:not(#_) .ctaband .pill.ghost:is(:hover,:focus-visible){background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
@media(max-width:700px){body:not(#_) .ctaband .actions .pill{width:100%;justify-content:center;min-height:48px}}

/* ---------- Menu téléphone, 2e passe (29/10) : tuiles grises visibles (contour clair, Implants reste le seul bouton blanc),
   fermer sur la ligne d'Implants, tuiles plus basses : tient sur un écran de téléphone sans défiler. ---------- */
@media(max-width:1000px){
  body:not(#_) .menu-drawer{padding-top:max(16px,env(safe-area-inset-top));gap:10px}
  body:not(#_) .menu-top{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;margin:0;padding:0;background:none;z-index:3}
  body:not(#_) .menu-pages{gap:6px}
  body:not(#_) .menu-pages a.menu-feature{margin-right:56px;min-height:46px}
  body:not(#_) .menu-pages a:not(.menu-feature),body:not(#_) .menu-speciality{background:#2b2b2b;border:1px solid rgba(255,255,255,.22);color:#fff}
  body:not(#_) .menu-pages a:not(.menu-feature){min-height:44px;padding:6px 12px;font-size:14px}
  body:not(#_) .menu-pages a:not(.menu-feature):is(:hover,:focus-visible),body:not(#_) .menu-pages a:not(.menu-feature)[aria-current="page"],
  body:not(#_) .menu-speciality:is(:hover,:focus-visible),body:not(#_) .menu-speciality[aria-current="page"]{background:#3a3a3a;border-color:rgba(255,255,255,.5)}
  body:not(#_) .menu-specialities{gap:6px}
  body:not(#_) .menu-speciality{min-height:44px;padding:6px 12px}
  body:not(#_) .menu-speciality-text strong{font-size:13.5px;color:#fff}
  body:not(#_) .menu-drawer .menu-all.pi-link{min-height:44px;margin-top:2px;font-size:13px}
  body:not(#_) .menu-foot{padding-top:10px;padding-bottom:max(12px,calc(8px + env(safe-area-inset-bottom)))}
  body:not(#_) .menu-foot .pill{min-height:44px}
}
/* mono.css (chargé après) noircit tout .pill.arrow-button non blanc : sélecteur plus fort pour le bandeau sombre. */
body:not(#_) .ctaband .actions .pill.ghost.arrow-button,body:not(#_) .ctaband .actions .pill.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55)}
body:not(#_) .ctaband .actions .pill.ghost.arrow-button:is(:hover,:focus-visible){background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
@media(max-width:700px){body:not(#_) .ctaband .actions .pill{padding:6px 6px 6px 20px;justify-content:space-between;min-height:52px}}

/* ---------- Menu téléphone, 3e passe (29/10) : Implants n'est plus en tête (ça faisait titre) ; il reste à sa place dans la
   grille des spécialités, en tuile blanche avec son icône. ---------- */
@media(max-width:1000px){
  body:not(#_) .menu-pages a.menu-feature{display:none}
  body:not(#_) .menu-pages{margin-top:56px}
  body:not(#_) .menu-speciality.is-featured-dup{display:flex;background:#fff;border-color:#fff;color:#111}
  body:not(#_) .menu-speciality.is-featured-dup .menu-speciality-text strong{color:#111}
  body:not(#_) .menu-speciality.is-featured-dup .menu-speciality-icon{display:grid;place-items:center;width:24px;height:24px;background:none;color:#111}
  body:not(#_) .menu-speciality.is-featured-dup .menu-speciality-icon svg{width:18px;height:18px}
  body:not(#_) .menu-speciality.is-featured-dup:is(:hover,:focus-visible),body:not(#_) .menu-speciality.is-featured-dup[aria-current="page"]{background:#e9e9e9;border-color:#e9e9e9}
}

/* ---------- Légendes des photos : masquées à l'écran, gardées dans le HTML (SEO, lecteurs d'écran). Les avis (blockquote)
   et la visionneuse des réalisations gardent les leurs. 29/10 ---------- */
body:not(#_) figure:not(:has(blockquote)):has(img,video,picture) > figcaption:not(.pe-lightbox-cap){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}

/* ---------- Visionneuse photo [data-lightbox] (site.js), 29/10 ---------- */
[data-lightbox] img{cursor:zoom-in}
[data-lightbox] img:focus-visible{outline:2px solid #111;outline-offset:3px}
html.lb-open{overflow:hidden}
.lb{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(10,10,10,.94);color:#fff;overflow:hidden}
.lb::backdrop{background:rgba(10,10,10,.6)}
.lb[open]{display:grid;place-items:center}
.lb-stage{margin:0;width:100%;height:100%;display:grid;place-items:center;padding:clamp(56px,7vw,90px) clamp(12px,8vw,120px)}
.lb-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.45);user-select:none;-webkit-user-drag:none}
.lb-in-right{animation:lbInRight .32s ease both}
.lb-in-left{animation:lbInLeft .32s ease both}
@keyframes lbInRight{from{opacity:0;transform:translateX(48px)}to{opacity:1;transform:none}}
@keyframes lbInLeft{from{opacity:0;transform:translateX(-48px)}to{opacity:1;transform:none}}
.lb-btn,.lb-close{position:absolute;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.08);color:#fff;font-size:20px;line-height:1;cursor:pointer;transition:background .2s}
.lb-btn:is(:hover,:focus-visible),.lb-close:is(:hover,:focus-visible){background:#fff;color:#111}
.lb-prev{left:clamp(10px,2vw,32px);top:50%;transform:translateY(-50%)}
.lb-next{right:clamp(10px,2vw,32px);top:50%;transform:translateY(-50%)}
.lb-close{top:max(14px,env(safe-area-inset-top));right:clamp(10px,2vw,32px);font-size:26px}
.lb-count{position:absolute;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);margin:0;font-size:13px;letter-spacing:.08em;color:rgba(255,255,255,.75)}
.lb.is-single :is(.lb-btn,.lb-count){display:none}
@media(max-width:700px){.lb-stage{padding:64px 10px 70px}.lb-prev,.lb-next{top:auto;bottom:max(10px,env(safe-area-inset-bottom));transform:none}.lb-count{bottom:max(26px,calc(16px + env(safe-area-inset-bottom)))}}
@media(prefers-reduced-motion:reduce){.lb-in-right,.lb-in-left{animation:none}}

/* ---------- Icônes des réseaux plus grandes et plus visibles (demande de la doctoresse, 29/10) ---------- */
body:not(#_) .header-socials a{width:40px;height:40px}
body:not(#_) .header-socials svg{width:20px;height:20px}
body:not(#_) .socials{gap:12px}
body:not(#_) .socials a{width:50px;height:50px;background:#fff;border:1px solid #dcdcdc;box-shadow:0 2px 8px rgba(0,0,0,.06)}
body:not(#_) .socials a:is(:hover,:focus-visible){background:#fff;border-color:#111;transform:translateY(-2px)}
body:not(#_) .socials svg{width:24px;height:24px}
@media(max-width:700px){body:not(#_) .header-socials svg{width:19px;height:19px}}

/* Keep off-screen captions/accessibility text inside their local containers.
   An absolute caption in an unpositioned rail card otherwise expands the root page. */
.pi-rail{position:relative;min-width:0;max-width:100%}
figure:has(> figcaption){position:relative}
body:not(#_) figure:not(:has(blockquote)):has(img,video,picture)>figcaption:not(.pe-lightbox-cap){inset:0 auto auto 0!important}
.sr-only{left:0;top:0;clip-path:inset(50%)}

/* Expanded treatment lists remain reachable inside the desktop dropdown. */
.megamenu{max-height:calc(100dvh - 130px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}

/* Keep all ten specialty groups in two rows on desktop. */
@media (min-width:1001px) {
  .megamenu-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px clamp(12px,2vw,30px); }
  .megamenu-inner { padding-block:18px; }
  .megacol ul { gap:3px; }
  .megamenu-foot { margin-top:14px; padding-top:12px; }
}

/* Shared specialty disclosures, with a separate treatment panel on desktop. */
.specialty-toggle {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  padding: 8px 12px;
  cursor: pointer;
  list-style: none;
  border-radius: 8px;
}
.specialty-toggle::-webkit-details-marker { display: none; }
.specialty-toggle svg { width: 20px; height: 20px; flex: none; }
.specialty-toggle::after { content: '+'; margin-left: auto; }
.specialty-group[open] > .specialty-toggle::after { content: '−'; }
.specialty-panel { padding: 12px; }
.specialty-panel ul { list-style: none; margin: 6px 0 0; padding: 0; }
.specialty-panel a { display: block; padding: 7px 0; overflow-wrap: anywhere; }
.specialty-panel .specialty-overview { font-weight: 650; }
.specialty-panel a[aria-current="page"] { font-weight: 700; }
.megamenu .specialty-navigation {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding-right: 45%;
  min-height: 258px;
}
.megamenu .specialty-toggle { background: #f5f5f5; font-size: 14px; }
.megamenu .specialty-group[open] > .specialty-toggle { background: #151515; color: #fff; }
.megamenu .specialty-panel {
  position: absolute;
  inset: 0 0 0 57%;
  overflow: auto;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f5f5f5;
}
.megamenu .specialty-panel ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.megamenu .specialty-panel li { display: flex; min-width: 0; }
.megamenu .specialty-panel li a {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  color: #151515;
  font-size: 14px;
  line-height: 1.35;
}
.megamenu .specialty-panel li a:hover,
.megamenu .specialty-panel li a:focus-visible,
.megamenu .specialty-panel li a[aria-current="page"] { background: #151515; color: #fff; }
.megamenu .specialty-panel .specialty-overview { padding-inline: 10px; }
.menu-drawer .specialty-navigation { grid-column: 1 / -1; margin: 0 12px; }
.menu-drawer .specialty-group { margin-bottom: 5px; }
.menu-drawer .specialty-toggle { background: #292929; color: #fff; }
.menu-drawer .specialty-group[open] > .specialty-toggle { background: #fff; color: #111; }
.menu-drawer .specialty-panel { color: #eee; }
.menu-drawer .specialty-panel a { min-height: 44px; }
@media (max-width: 1000px) {
  .menu-drawer .specialty-navigation { margin: 0; }
}

@media(max-width:700px){body:not(#_) .header-socials a{width:28px;flex-shrink:0}}
