/* R23 — layout, mobile, clarity, translation controls */
*,*::before,*::after{box-sizing:border-box}
html{max-width:100%;overflow-x:hidden;scroll-behavior:smooth}
body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas,iframe{max-width:100%}
.container{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.site-header-inner{display:grid!important;grid-template-columns:1fr auto 1fr!important;align-items:center!important;gap:14px!important;min-width:0!important}
.brand-logo-link{grid-column:2!important;min-width:0!important}
.header-actions{grid-column:3!important;justify-self:end!important;display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:nowrap!important;min-width:0!important}
.sf-language-toggle{appearance:none;border:1px solid rgba(34,44,31,.18);background:#fff;color:#263420;border-radius:999px;height:44px;min-width:58px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;font:700 13px/1 Poppins,Arial,sans-serif;letter-spacing:.08em;cursor:pointer;box-shadow:0 8px 24px rgba(25,35,23,.08);white-space:nowrap}
.sf-language-toggle:hover{transform:translateY(-1px)}
.menu-toggle{width:48px!important;height:48px!important;min-width:48px!important;border-radius:999px!important}
.menu-toggle::before,.menu-toggle::after{content:""!important;position:absolute!important;left:50%!important;top:50%!important;width:18px!important;height:2px!important;background:currentColor!important;border-radius:999px!important;transform:translate(-50%,-50%)!important;transition:.2s ease!important}
.menu-toggle::before{box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor!important}
.menu-toggle::after{opacity:0!important}
.menu-toggle[aria-expanded="true"]::before{box-shadow:none!important;transform:translate(-50%,-50%) rotate(45deg)!important}
.menu-toggle[aria-expanded="true"]::after{opacity:1!important;transform:translate(-50%,-50%) rotate(-45deg)!important}
.hero-content,.teacher-card-body,.article-main,.sf-article,.feature-card,.info-card,.class-card{min-width:0}
h1,h2,h3,p,a,button,li,span,strong{overflow-wrap:break-word}
.hero h1{font-size:clamp(46px,6vw,86px)!important;line-height:.94!important;text-wrap:balance}
.hero-description{font-size:clamp(17px,1.7vw,25px)!important;line-height:1.55!important;max-width:850px!important}
.hero-nav,.button-row,.pill-row,.hero-proof-row-v87,.teacher-filters,.footer-links{display:flex;flex-wrap:wrap!important;gap:10px!important}
.hero-nav a,.button-flowena,.teacher-profile-cta,.btn{white-space:normal!important;text-align:center}
.teacher-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))!important;gap:28px!important;align-items:stretch!important}
.teacher-card{height:100%!important;min-width:0!important}
.teacher-card-media{aspect-ratio:4/5!important;min-height:0!important;overflow:hidden!important;background:#dce5d7!important}
.teacher-card-media img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important}
.teacher-card-body{display:flex!important;flex-direction:column!important;gap:8px!important;height:auto!important}
.teacher-card-actions{margin-top:auto!important;padding-top:10px!important}
.teacher-card-avatar-placeholder{display:none!important}
/* Klaudia: keep face visible, crop more from the right side */
img[src*="deregi-klaudia"]{object-position:30% 44%!important}
/* menus live off canvas intentionally; don't let them create page width */
.menu-drawer{max-width:min(390px,92vw)!important;width:min(390px,92vw)!important}
.menu-drawer:not(.is-open):not([aria-hidden="false"]){visibility:hidden!important;pointer-events:none!important}
.menu-links a,.menu-knowledge summary{min-width:0!important}
/* remove favorite/wishlist feature completely */
[data-favorite-teacher],[data-favorites-hub],.favorites-hub-v90,.favorite-toast,.teacher-card-favorite,.favorite-button,.favorite-btn,.wishlist-button,.favorite-teacher-profile{display:none!important}
/* less overwhelming: animated decoration remains mainly on home pages */
body:not(.page-index) .image-marquee,body:not(.page-index) .workshop-marquee{display:none!important}
body:not(.page-index) .wheel-widget{display:none!important}
.workshop-marquee{display:none!important}
.image-marquee{opacity:.9}
.program-strip{padding-block:10px!important;overflow:hidden!important}
.program-strip .marquee-track{will-change:transform}
/* Flowena: no huge empty white panel when external widget fails */
.profile-booking-shell,.booking-shell,.flowena-shell{position:relative;min-width:0}
booking-platform{display:block;width:100%;min-height:420px}
.booking-fallback-note{display:none;margin:18px 0 0;padding:18px;border:1px solid rgba(39,52,34,.16);border-radius:18px;background:rgba(255,255,255,.94);line-height:1.6}
.booking-fallback-note.is-visible{display:block}
.booking-fallback-note a{display:inline-flex;margin-top:10px;padding:11px 16px;border-radius:999px;background:#304429;color:white;text-decoration:none;font-weight:700}
.booking-shell.booking-failed booking-platform,.profile-booking-shell.booking-failed booking-platform,.flowena-shell.booking-failed booking-platform{display:none!important;min-height:0!important}
/* google translation UI stays hidden; our button controls it */
#google_translate_element,.goog-te-banner-frame,.goog-te-gadget,.goog-te-menu-value{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
body{top:0!important}
.skiptranslate iframe{display:none!important}
/* cleaner desktop rhythm */
.section,.sf-section{scroll-margin-top:110px}
.section-heading{max-width:780px}
.section-heading.center{margin-inline:auto}
.feature-grid,.card-grid,.sf-location-grid{gap:24px!important}
/* tables/schedules never push the viewport */
.table-wrap,.schedule-table-wrap,.availability-table{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
table{max-width:100%}
/* fixed launchers cannot overlap primary controls */
.chat-widget,.wheel-widget{z-index:50!important}
@media(max-width:900px){
 .container{width:min(100% - 28px,1180px)}
 .hero-content{padding-inline:20px!important}
 .hero h1{font-size:clamp(42px,13vw,64px)!important}
 .hero-description{font-size:17px!important}
 .hero-nav{justify-content:center!important}
 .site-header-inner{padding-inline:16px!important}
}
@media(max-width:680px){
 .announcement-bar{font-size:11px!important;line-height:1.35!important;padding:8px 12px!important;text-align:center!important}
 .site-header{min-height:74px!important}
 .logo{max-width:95px!important;height:auto!important}
 .brand-wordmark{font-size:26px!important}
 .header-actions{gap:7px!important}
 .sf-language-toggle{height:40px!important;min-width:52px!important;padding:0 11px!important;font-size:12px!important}
 .menu-toggle{width:42px!important;height:42px!important;min-width:42px!important}
 .hero{min-height:auto!important}
 .hero-content{padding:70px 18px 48px!important}
 .hero h1{font-size:clamp(40px,12vw,54px)!important}
 .hero-nav{position:static!important;padding:0 18px 24px!important;justify-content:center!important}
 .hero-nav a{flex:1 1 calc(50% - 8px)!important;min-width:0!important}
 .hero-proof-row-v87{justify-content:center!important}
 .teacher-grid{grid-template-columns:1fr!important;gap:20px!important}
 .teacher-card-media{aspect-ratio:4/4.8!important}
 .feature-grid,.card-grid,.sf-location-grid{grid-template-columns:1fr!important}
 .button-row>.btn,.button-row>.button-flowena{width:100%!important;justify-content:center!important}
 .chat-widget{right:12px!important;bottom:14px!important}
 .chat-launcher{width:54px!important;height:54px!important}
 .wheel-widget{display:none!important}
 .image-marquee{display:none!important}
 booking-platform{min-height:380px}
 .cookie-banner,.cookie-panel{max-width:calc(100vw - 24px)!important}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

@media(max-width:680px){
  .hero.hero-unified .hero-nav,.hero.hero-stack-v91 .hero-nav{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:calc(100% - 28px)!important;max-width:none!important;margin:0 auto 24px!important;padding:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
  .hero.hero-unified .hero-nav a,.hero.hero-stack-v91 .hero-nav a{width:100%!important;min-width:0!important;min-height:42px!important;padding:8px 10px!important;justify-content:center!important;}
}

@media(max-width:680px){
  .hero .hero-nav{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:calc(100% - 28px)!important;max-width:none!important;margin:0 auto 24px!important;padding:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
  .hero .hero-nav a{width:100%!important;min-width:0!important;min-height:42px!important;padding:8px 10px!important;justify-content:center!important;}
}
