/* FisioWebs: WhatsApp button, cookie banner and the legal pages */
.wa-float { position: fixed; right: 20px; bottom: calc(var(--bar, 0px) + 20px); z-index: 30; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #25d366; color: #fff; box-shadow: 0 10px 24px -8px rgb(23 25 28 / .45); transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), bottom 260ms cubic-bezier(0.23, 1, 0.32, 1), opacity 200ms ease; animation: wa-in 320ms cubic-bezier(0.23, 1, 0.32, 1); }
.wa-float svg { width: 30px; height: 30px; }
.wa-float:active { transform: scale(.94); }
.wa-float:focus-visible { outline: 2px solid var(--action, #2c5877); outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) { .wa-float:hover { transform: scale(1.06); } }
@keyframes wa-in { from { opacity: 0; transform: scale(.85); } }
.has-cookie-banner .wa-float { opacity: 0; pointer-events: none; }

.ck { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 40; max-width: 560px; margin-left: auto; background: var(--p-bg, #f6f6f4); color: var(--p-ink, #17191c); border: 1px solid color-mix(in oklab, #17191c 14%, transparent); border-radius: 16px; padding: 24px; box-shadow: 0 24px 48px -20px rgb(23 25 28 / .35); font: 400 15px/1.55 var(--font-text, system-ui, sans-serif); transition: transform 320ms cubic-bezier(0.23, 1, 0.32, 1), opacity 320ms ease; }
.ck[data-hidden] { transform: translateY(calc(100% + 24px)); opacity: 0; pointer-events: none; }
.ck h2 { font: 400 22px/1.2 var(--font-display, Georgia, serif); letter-spacing: -0.01em; margin: 0 0 8px; }
.ck p { margin: 0 0 16px; }
.ck a { color: inherit; text-underline-offset: 3px; }
.ck__row { display: flex; flex-wrap: wrap; gap: 8px; }
.ck__btn { all: unset; box-sizing: border-box; cursor: pointer; min-height: 44px; padding: 0 20px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; font: 500 15px/1 var(--font-text, system-ui, sans-serif); border: 1px solid #17191c; transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background-color 200ms ease, color 200ms ease; flex: 1 1 auto; }
.ck__btn--main { background: #17191c; color: #f6f6f4; }
.ck__btn--link { border-color: transparent; text-decoration: underline; text-underline-offset: 3px; flex: 0 0 auto; padding: 0 8px; }
.ck__btn:active { transform: scale(.97); }
.ck__btn:focus-visible { outline: 2px solid #2c5877; outline-offset: 2px; }
.ck__prefs { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 260ms cubic-bezier(0.23, 1, 0.32, 1); }
.ck[data-prefs] .ck__prefs { grid-template-rows: 1fr; }
.ck__prefs > div { overflow: hidden; }
.ck:not([data-prefs]) .ck__prefs > div { visibility: hidden; }
.ck__opt { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; align-items: center; padding: 12px 0; border-top: 1px solid color-mix(in oklab, #17191c 12%, transparent); }
.ck__opt:last-child { margin-bottom: 16px; border-bottom: 1px solid color-mix(in oklab, #17191c 12%, transparent); }
.ck__opt b { font-weight: 500; }
.ck__opt small { grid-column: 1; color: #5d5f61; font-size: 14px; line-height: 1.45; }
.ck__opt input { grid-row: 1 / span 2; grid-column: 2; width: 22px; height: 22px; accent-color: #2c5877; }
@media (max-width: 639px) { .ck { left: 12px; right: 12px; bottom: 12px; padding: 20px; } .ck__btn { flex: 1 1 40%; } }
@media (prefers-reduced-motion: reduce) { .wa-float { animation: none; } .ck, .ck__prefs { transition: opacity 200ms ease; } }

/* legal pages */
.lg { background: #f6f6f4; color: #17191c; font: 400 17px/1.7 var(--font-text, system-ui, sans-serif); margin: 0; }
.lg header { border-bottom: 1px solid color-mix(in oklab, #17191c 12%, transparent); }
.lg header .in, .lg main, .lg footer .in { max-width: 720px; margin: 0 auto; padding: 0 24px; }
.lg header .in { height: 72px; display: flex; align-items: center; justify-content: space-between; }
.lg header img { height: 40px; width: auto; display: block; }
.lg main { padding-top: 56px; padding-bottom: 96px; }
.lg h1 { font: 400 clamp(34px, 4vw, 48px)/1.1 var(--font-display, Georgia, serif); letter-spacing: -0.02em; margin: 0 0 12px; }
.lg h2 { font: 400 26px/1.25 var(--font-display, Georgia, serif); letter-spacing: -0.01em; margin: 48px 0 12px; }
.lg p, .lg li { max-width: 66ch; }
.lg a { color: #2c5877; text-underline-offset: 3px; }
.lg .meta { color: #5d5f61; font-size: 15px; margin-bottom: 32px; }
.lg dl { display: grid; grid-template-columns: max-content 1fr; gap: 8px 24px; margin: 0; }
.lg dt { font-weight: 500; }
.lg dd { margin: 0; }
.lg table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 8px 0 16px; }
.lg th, .lg td { text-align: left; vertical-align: top; padding: 10px 12px 10px 0; border-bottom: 1px solid color-mix(in oklab, #17191c 12%, transparent); }
.lg th { font-weight: 500; }
.lg .pend { background: #fff3c4; padding: 0 4px; border-radius: 4px; }
.lg footer { border-top: 1px solid color-mix(in oklab, #17191c 12%, transparent); padding: 24px 0 40px; font-size: 15px; color: #5d5f61; }
.lg footer a { color: inherit; margin-right: 16px; }
@media (max-width: 639px) { .lg dl { grid-template-columns: 1fr; gap: 2px; } .lg dd { margin-bottom: 10px; } .lg table { font-size: 14px; } }
