/*
Theme Name: Tenbosch
Description: Thème enfant de Twenty Twenty-Five pour le Cabinet Dentaire Tenbosch.
Author: Cabinet Dentaire Tenbosch
Template: twentytwentyfive
Version: 1.1.0
Requires at least: 6.7
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tenbosch
*/

html body{font-family:Figtree,Manrope,system-ui,sans-serif;color:var(--wp--preset--color--contrast)}
html body h1,html body h2,html body h3,.tb-brand,.tb-closing{font-family:"Source Serif 4",Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-0.01em;text-wrap:balance}
main a:not(.wp-element-button),footer a:not(.wp-element-button){color:var(--wp--preset--color--vert);text-underline-offset:0.2em}
.wp-element-button{font-family:inherit;font-weight:500;transition:background-color .2s ease-out,color .2s ease-out,border-color .2s ease-out}
.wp-block-button:not(.is-style-outline)>.wp-element-button:hover{background-color:var(--wp--preset--color--vert)!important}
.is-style-outline>.wp-element-button:hover{background-color:var(--wp--preset--color--vert)!important;border-color:var(--wp--preset--color--vert)!important;color:var(--wp--preset--color--base)!important}
:focus-visible{outline:2px solid var(--wp--preset--color--vert);outline-offset:3px}
::selection{background:var(--wp--preset--color--menthe);color:var(--wp--preset--color--contrast)}
.is-layout-constrained.alignfull>:not(.alignwide):not(.alignfull){margin-left:max(0px,calc((100% - 1200px)/2))!important;margin-right:auto!important}
header.wp-block-template-part{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:50;margin:0}
.tb-header{padding-left:max(24px,calc((100% - 1200px)/2))!important;padding-right:max(24px,calc((100% - 1200px)/2))!important;gap:16px}
.tb-logo{margin:0;flex-shrink:0}
.tb-logo img{display:block;height:46px;width:auto}
@media (max-width:600px){.tb-logo img{height:36px}}
.tb-brand{margin:0;font-size:clamp(18px,2.2vw,22px);line-height:1.15}
.tb-brand a{color:var(--wp--preset--color--contrast);text-decoration:none}
.tb-header .wp-block-navigation a{color:var(--wp--preset--color--contrast);text-decoration:none}
.tb-header .wp-block-navigation a:hover{color:var(--wp--preset--color--vert);text-decoration:underline;text-underline-offset:.3em}
.tb-header .wp-block-navigation__responsive-container-open{padding:10px;margin:-10px}
.tb-header-cta .wp-element-button{padding:10px 22px}
@media (max-width:960px){.tb-header .wp-block-navigation__responsive-container-open:not(.always-shown){display:flex!important}.tb-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){display:none!important}}
.tb-closing{font-size:clamp(20px,2.5vw,24px);line-height:1.3;margin:0 0 8px}
footer.wp-block-template-part{margin-top:0}
body:has(.wp-block-post-content>.alignfull:last-child[style*="background-color:#F4EFE6" i]) footer.wp-block-template-part{background:var(--wp--preset--color--accent-5)}
footer.wp-block-template-part>*{margin-block-start:0}
.tb-tap a{display:inline-block;padding:10px 0}
.tb-callbar{display:none}
@media (max-width:600px){
.tb-header .tb-header-cta{display:none!important}
.tb-callbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--wp--preset--color--base);border-top:1px solid var(--wp--preset--color--filet)}
.tb-callbar .wp-block-buttons{flex-wrap:nowrap;gap:12px}
.tb-callbar .wp-block-button{flex:1}
.tb-callbar .wp-element-button{display:block;width:100%;text-align:center;padding:12px 16px}
body{padding-bottom:80px}
}
html body{font-weight:400}
.tb-header .wp-block-navigation .current-menu-item>a{color:var(--wp--preset--color--vert);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.35em}
.wp-block-navigation__responsive-container.is-menu-open{padding:24px!important;background:var(--wp--preset--color--base)!important;color:var(--wp--preset--color--contrast)!important}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{gap:4px!important;align-items:flex-start!important}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-family:"Source Serif 4",Georgia,serif;font-size:30px;line-height:1.2;padding:10px 0!important}

.tb-promise{font-family:"Source Serif 4",Georgia,serif;font-size:clamp(34px,5.2vw,60px);line-height:1.08;letter-spacing:-0.02em;text-wrap:balance;margin:0}
.tb-promise u{text-decoration-color:var(--wp--preset--color--or);text-decoration-thickness:3px;text-underline-offset:.12em}
.tb-statement{border-top:1px solid var(--wp--preset--color--filet);padding-top:32px}

.tb-credit{margin-top:clamp(40px,6vw,64px)!important}
.tb-strip{display:grid!important;grid-template-columns:2fr 1fr 1fr;gap:16px;margin-top:clamp(40px,6vw,64px)!important}
.tb-strip.tb-rev{grid-template-columns:1fr 1fr 2fr}
.tb-strip.tb-duo{grid-template-columns:1fr 1fr}
.tb-strip.tb-duo img{height:clamp(280px,34vw,440px)!important}
@media (max-width:781px){.tb-strip.tb-duo{grid-template-columns:1fr}.tb-strip.tb-duo img{height:auto!important;aspect-ratio:4/3!important}}
.tb-strip>figure.wp-block-image{margin:0!important;max-width:none!important;width:100%}
.tb-strip img{display:block;width:100%!important;height:clamp(260px,30vw,380px)!important;aspect-ratio:auto!important;object-fit:cover}
.tb-strip figcaption.wp-element-caption{margin:12px 0 0!important;padding-top:10px;border-top:1px solid var(--wp--preset--color--filet);text-align:left;font-family:"Source Serif 4",Georgia,serif;font-size:18px;line-height:1.3;color:var(--wp--preset--color--contrast)}
.tb-pos-left img{object-position:28% 50%}
.tb-pos-right img{object-position:74% 50%}
@media (max-width:781px){.tb-strip,.tb-strip.tb-rev{grid-template-columns:1fr 1fr;gap:12px}.tb-strip>.tb-big{grid-column:1/-1}.tb-strip img{height:auto!important;aspect-ratio:1/1!important}.tb-strip>.tb-big img{aspect-ratio:4/3!important}.tb-strip figcaption.wp-element-caption{font-size:16px}}

.tb-hero{padding-top:0!important}
.tb-hero-img{margin-top:0!important;margin-bottom:0!important}
.tb-hero-img img{display:block;width:100%;aspect-ratio:auto!important;object-fit:cover;border-radius:0 0 20px 20px!important}
.tb-hero.is-layout-constrained.alignfull>.wp-block-group.tb-panel{position:relative;z-index:1;margin-top:clamp(-140px,-10vw,-56px)!important;margin-left:calc(max(0px,(100% - 1200px)/2) + clamp(16px,4vw,48px))!important;margin-right:16px!important;max-width:min(720px,calc(100% - 32px));background:var(--wp--preset--color--base);padding:clamp(28px,4vw,44px)!important;border-radius:20px}
.tb-panel>*:first-child{margin-top:0}
.tb-langrow{gap:0!important;border-top:1px solid var(--wp--preset--color--filet);border-bottom:1px solid var(--wp--preset--color--filet);margin-top:32px!important}
.tb-langrow>.wp-block-column{padding:22px 24px;border-right:1px solid var(--wp--preset--color--filet)}
.tb-langrow>.wp-block-column:last-child{border-right:0}
.tb-langrow p{margin:0;font-size:15px;color:var(--wp--preset--color--accent-4)}
.tb-langrow p strong{display:block;font-family:"Source Serif 4",Georgia,serif;font-weight:400;font-size:clamp(26px,3vw,34px);line-height:1.15;color:var(--wp--preset--color--vert);margin-bottom:4px}
@media (max-width:781px){.tb-langrow{display:grid!important;grid-template-columns:1fr 1fr}.tb-langrow>.wp-block-column{border-right:0;border-bottom:1px solid var(--wp--preset--color--filet)}.tb-langrow>.wp-block-column:nth-child(odd){border-right:1px solid var(--wp--preset--color--filet)}.tb-langrow>.wp-block-column:nth-last-child(-n+2){border-bottom:0}}
.tb-band{border-radius:20px;padding:clamp(40px,6vw,72px) clamp(28px,5vw,64px)!important}
.tb-band .tb-promise{color:var(--wp--preset--color--base);font-size:clamp(34px,4.4vw,52px)}
.tb-band .tb-promise u,.tb-promise [style*="underline"]{text-decoration-line:underline;text-decoration-color:var(--wp--preset--color--or)!important;text-decoration-thickness:3px;text-underline-offset:.12em}
.tb-band p{color:var(--wp--preset--color--menthe)}
.tb-band h2,.tb-band h3{color:var(--wp--preset--color--base)}
.tb-band .wp-block-button:not(.is-style-outline)>.wp-element-button:hover{background-color:var(--wp--preset--color--menthe)!important;color:var(--wp--preset--color--contrast)!important}
.tb-band :focus-visible{outline-color:var(--wp--preset--color--base)}
.tb-faq details{border-top:1px solid var(--wp--preset--color--filet);padding:4px 0}
.tb-faq details:last-of-type{border-bottom:1px solid var(--wp--preset--color--filet)}
.tb-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:44px;padding:14px 0;font-family:"Source Serif 4",Georgia,serif;font-size:clamp(19px,2vw,22px);line-height:1.3}
.tb-faq summary::-webkit-details-marker{display:none}
.tb-faq summary::after{content:"+";font-family:Figtree,system-ui,sans-serif;font-size:26px;line-height:1;color:var(--wp--preset--color--vert);flex-shrink:0;transition:transform .2s ease-out}
.tb-faq details[open] summary::after{transform:rotate(45deg)}
.tb-faq details>p{margin:0 0 18px;max-width:65ch}
body .fluentform{font-family:inherit;color:var(--wp--preset--color--contrast)}
body .fluentform .ff-el-group{margin-bottom:24px}
body .fluentform .ff-el-input--label label{font-weight:500;font-size:17px;color:var(--wp--preset--color--contrast)}
body .fluentform .ff-el-form-control{font-family:inherit;font-size:17px;line-height:1.4;color:var(--wp--preset--color--contrast);background:var(--wp--preset--color--base);border:1px solid var(--wp--preset--color--bordure);border-radius:12px;padding:12px 16px;min-height:48px;box-shadow:none}
body .fluentform .ff-el-form-control::placeholder{font-family:inherit;font-size:16px;color:var(--wp--preset--color--accent-4);opacity:1}
body .fluentform textarea.ff-el-form-control{min-height:112px}
body .fluentform .ff-el-form-control:focus{border-color:var(--wp--preset--color--vert);outline:2px solid var(--wp--preset--color--vert);outline-offset:1px;box-shadow:none}
body .fluentform .ff-el-help-message{font-size:15px;font-style:normal;color:var(--wp--preset--color--accent-4)}
body .fluentform .ff-el-form-check{margin:0 20px 0 0}
body .fluentform .ff-el-form-check-label{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:17px;cursor:pointer}
body .fluentform input.ff-el-form-check-input{-webkit-appearance:none;appearance:none;flex-shrink:0;width:24px;height:24px;margin:0;top:0;border:1.5px solid var(--wp--preset--color--vert);background:var(--wp--preset--color--base);cursor:pointer;transition:background-color .2s ease-out,box-shadow .2s ease-out}
body .fluentform input[type=checkbox].ff-el-form-check-input{border-radius:6px}
body .fluentform input[type=radio].ff-el-form-check-input{border-radius:50%}
body .fluentform input[type=checkbox].ff-el-form-check-input:checked{border-color:var(--wp--preset--color--vert-bouton);background:var(--wp--preset--color--vert-bouton) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
body .fluentform input[type=radio].ff-el-form-check-input:checked{border-color:var(--wp--preset--color--vert-bouton);background:var(--wp--preset--color--vert-bouton);box-shadow:inset 0 0 0 5px var(--wp--preset--color--base)}
body .fluentform input.ff-el-form-check-input:focus-visible{outline:2px solid var(--wp--preset--color--vert);outline-offset:3px}
body .fluentform .ff_tc_label{display:flex!important;align-items:flex-start;gap:12px;padding:10px 0;font-size:16px;line-height:1.5}
body .fluentform .ff_tc_checkbox{display:flex!important;width:auto!important;padding-top:1px}
body .fluentform .ff_t_c{display:block!important;margin:0!important;padding:0!important}
body .fluentform .ff-btn-submit{font-family:inherit;font-weight:500;font-size:17px;line-height:1.2;min-height:48px;padding:14px 28px!important;border:0!important;border-radius:999px!important;background-color:var(--wp--preset--color--vert-bouton)!important;color:var(--wp--preset--color--base)!important;transition:background-color .2s ease-out}
body .fluentform .ff-btn-submit:hover{background-color:var(--wp--preset--color--vert)!important;opacity:1}
body .fluentform .ff-btn-submit:focus-visible{outline:2px solid var(--wp--preset--color--vert);outline-offset:3px}
body .fluentform .ff-el-is-error .ff-el-form-control{border-color:var(--wp--preset--color--erreur)}
body .fluentform .ff-el-is-error .text-danger{font-size:15px;color:var(--wp--preset--color--erreur)}
@media (max-width:600px){body .fluentform .ff-btn-submit{width:100%}}

/* adapt 2026-10-20: phones and short landscape screens */
@media (max-width:600px){
.tb-hero-img img{height:clamp(220px,64vw,260px)!important}
.tb-hero.is-layout-constrained.alignfull>.wp-block-group.tb-panel{margin-top:-28px!important;margin-left:0!important;margin-right:0!important;max-width:none;padding:24px 20px 28px!important}
.tb-hero h1{font-size:clamp(30px,8.6vw,36px)!important;line-height:1.12!important;text-wrap:balance}
.tb-panel .wp-block-buttons{flex-direction:column;align-items:stretch;gap:12px}
.tb-panel .wp-block-button{width:100%}
.tb-panel .wp-block-button__link{display:block;width:100%;white-space:nowrap;text-align:center;padding:14px 20px}
}
@media (orientation:landscape) and (max-height:500px){
.tb-hero-img img{height:min(220px,52vh)!important}
.tb-hero.is-layout-constrained.alignfull>.wp-block-group.tb-panel{margin-top:-40px!important}
}

/* edge-to-edge hero 2026-10-20 (rev. 2: taller, never upscaled, per-photo focus) */
.tb-hero.alignfull>.tb-hero-img{max-width:1600px!important;width:auto!important;margin-left:max(-24px,(100% - 1600px)/2)!important;margin-right:max(-24px,(100% - 1600px)/2)!important} /* full bleed up to the photos' native 1600px; -24px cancels the hero group's side padding */
.tb-hero-img img{border-radius:0!important}
@media (min-width:601px) and (min-height:501px){.tb-hero-img img{height:clamp(320px,max(min(50vw,100vh - 330px),45vw),760px)!important}} /* never thinner than ~2.2:1, so tablets keep the photo readable */
@media (min-width:1649px){.tb-hero-img img{border-radius:0 0 20px 20px!important}}
.tb-hero-img img[src*="banc-courbe"]{object-position:50% 70%}
.tb-hero-img img[src*="salle-de-soins-vue-porte"]{object-position:45% 60%}
.tb-hero-img img[src*="salle-attente-fenetres"]{object-position:55% 58%}
.tb-hero-img img[src*="tenbosch-accueil"]{object-position:35% 55%}
.tb-hero-img img[src*="couloir-salle-de-soins"]{object-position:75% 55%}
@media (min-width:601px){
.tb-hero.is-layout-constrained.alignfull>.wp-block-group.tb-panel{margin-left:max(0px,(100% - 1200px)/2)!important}
}

/* layout 2026-10-21: care summary as ruled rows (homepage) */
.tb-nowrap{white-space:nowrap}
.tb-care h2{margin:0}
.tb-care .tb-care-lead{margin:16px 0 0;max-width:60ch}
.tb-care-list{list-style:none;padding:0!important;margin:clamp(32px,4vw,48px) 0 0!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,5vw,64px)}
.tb-care-list li:nth-last-child(-n+2){border-bottom:1px solid var(--wp--preset--color--filet)}
.tb-care-list li{margin:0!important;padding:20px 0 28px;border-top:1px solid var(--wp--preset--color--filet);font-size:clamp(17px,1.5vw,18px);line-height:1.6;color:var(--wp--preset--color--accent-4)}
.tb-care-list li strong{display:block;margin-bottom:6px;font-family:"Source Serif 4",Georgia,serif;font-weight:400;font-size:clamp(20px,2vw,22px);line-height:1.3;color:var(--wp--preset--color--contrast)}
.tb-care .tb-care-more{margin:24px 0 0}
@media (max-width:781px){.tb-care-list{grid-template-columns:1fr}.tb-care-list li:nth-last-child(2){border-bottom:0}.tb-care-list li{padding:16px 0 20px}}

/* polish 2026-10-21 */
main ul.wp-block-list:not(.tb-care-list){list-style:none;padding-left:0;margin-top:12px}
main ul.wp-block-list:not(.tb-care-list) li{margin:0;padding:10px 0;border-top:1px solid var(--wp--preset--color--filet)}
.tb-header .wp-block-navigation-item__content{padding-block:10px}

/* meeting 2026-10-28: slideshows, hero address, footer extras */
.tb-slides{position:relative}
.tb-slides-track{display:grid;touch-action:pan-y}
.tb-slides-track>.tb-slide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .9s cubic-bezier(.22,1,.36,1),visibility 0s linear .9s}
.tb-slides-track>.tb-slide.is-active{opacity:1;visibility:visible;transition:opacity .9s cubic-bezier(.22,1,.36,1)}
@media (prefers-reduced-motion:reduce){.tb-slides-track>.tb-slide{transition:none!important}}
.tb-slides-ui{display:flex;align-items:center;gap:2px}
.tb-slides-ui[hidden]{display:none}
.tb-slides-ui button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--wp--preset--color--contrast);cursor:pointer;transition:background-color .2s ease-out}
.tb-slides-ui button:hover{background:var(--wp--preset--color--menthe)}
.tb-slides-ui svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.tb-hero-img .tb-slides-ui{position:absolute;z-index:2;top:16px;right:16px;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.94)}
@media (min-width:601px){.tb-hero-img .tb-slides-ui{top:auto;bottom:24px;right:max(24px,(100% - 1200px)/2)}}
.tb-hero-address{margin:20px 0 0!important;font-size:15px;line-height:1.5;color:var(--wp--preset--color--accent-4)}

.tb-foot-extra p{margin:0;font-size:15px;line-height:1.6;color:var(--wp--preset--color--accent-4)}

/* round 2 2026-10-28: arrow-only slideshows, three languages, portraits */
.tb-hero-img .tb-slides-ui{gap:4px;padding:4px}
.tb-portrait{margin:0!important}
.tb-portrait img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:20px}
@media (max-width:781px){.tb-langrow{grid-template-columns:1fr!important}.tb-langrow>.wp-block-column{border-right:0!important;border-bottom:1px solid var(--wp--preset--color--filet)!important}.tb-langrow>.wp-block-column:last-child{border-bottom:0!important}}

/* clarify 2026-10-28 */
.tb-hero-note{margin:20px 0 0!important;font-size:15px;line-height:1.5;color:var(--wp--preset--color--accent-4)}
.tb-hero-note+.tb-hero-address{margin-top:4px!important}
.tb-callbar .wp-element-button{white-space:nowrap;padding-left:8px!important;padding-right:8px!important;font-size:min(16px,4.2vw);min-height:44px;display:flex!important;align-items:center;justify-content:center}

/* distill 2026-10-28: FAQ + closing call to action */
.tb-faq-cols{gap:clamp(32px,6vw,96px)!important;align-items:flex-start!important}
.tb-faq-cols>.wp-block-column>details:first-child{margin-top:0}
.tb-cta-end{position:sticky;top:120px;padding-top:20px;border-top:1px solid var(--wp--preset--color--filet)}
.tb-cta-end h3{margin:0;font-size:clamp(22px,2.4vw,26px);line-height:1.2}
.tb-cta-end p{margin:10px 0 0;max-width:36ch}
.tb-cta-end .wp-block-buttons{margin-top:24px;flex-direction:column;align-items:flex-start;gap:12px}
@media (max-width:781px){.tb-cta-end{position:static;border-top:0;padding-top:8px}.tb-cta-end .wp-block-buttons{align-items:stretch}.tb-cta-end .wp-block-button__link{display:block;text-align:center}}

/* adapt 2026-10-28: phone first screen */
.tb-slides-ui button{width:44px;height:44px}
@media (max-width:600px){
.tb-callbar{transition:transform .25s cubic-bezier(.22,1,.36,1),visibility 0s linear 0s}
.tb-callbar.is-held{transform:translateY(110%);visibility:hidden;transition:transform .25s cubic-bezier(.22,1,.36,1),visibility 0s linear .25s}
.tb-hero.is-layout-constrained.alignfull>.wp-block-group.tb-panel{display:flex;flex-direction:column}
.tb-panel>.tb-hero-address{order:1;margin:16px 0 0!important}
.tb-panel>.wp-block-buttons{order:2;margin-top:20px!important}
.tb-panel>.tb-hero-note{order:3}
}
@media (prefers-reduced-motion:reduce){.tb-callbar,.tb-callbar.is-held{transition:none}}

/* harden 2026-10-28 */
.tb-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* polish 2026-10-28: tap targets */
.tb-tap a{min-height:44px;box-sizing:border-box}
.tb-header-cta .wp-element-button{min-height:44px;display:inline-flex;align-items:center}
@media (max-width:600px){.tb-logo a{display:inline-block;padding:4px 0}}

/* WordPress port 2026-10-28: photo focus points (block images take no inline object-position) */
.tb-team-photo img{object-position:50% 20%}
.tb-hero-img img[src*="equipe-accueil"]{object-position:50% 12%}
.tb-portrait img{object-position:50% 25%}

/* languages 2026-11-02: FR · EN · LT switcher in the header (Polylang) */
.tb-langs{display:flex;align-items:center;gap:2px;font-size:15px;line-height:1}
.tb-langs a{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px;padding:0 4px;color:var(--wp--preset--color--accent-4);text-decoration:none;letter-spacing:.04em}
.tb-langs a:hover{color:var(--wp--preset--color--vert);text-decoration:underline;text-underline-offset:.3em}
.tb-langs a[aria-current]{color:var(--wp--preset--color--contrast);font-weight:500;text-decoration:underline;text-decoration-color:var(--wp--preset--color--vert);text-underline-offset:.35em}
@media (max-width:600px){.tb-langs a{min-width:32px;font-size:14px}}
