/*
 * Regalis Clin – blocos e páginas públicas do plugin.
 * Cores e fontes vêm das variáveis globais do Elementor (--rc-*), com valores de reserva.
 * Carregado só onde há blocos do plugin.
 */
.rc-page,
.rc-grid,
.rc-chooser {
	--_green: var(--rc-green, #5a7152);
	--_green-deep: var(--rc-green-deep, #4a5e43);
	--_forest: var(--rc-forest, #2f3b2c);
	--_sage: var(--rc-sage, #a9bba0);
	--_mist: var(--rc-mist, #eef1eb);
	--_surface: var(--rc-surface, #faf9f6);
	--_white: var(--rc-white, #fff);
	--_ink: var(--rc-ink, #1e2420);
	--_ink-soft: var(--rc-ink-soft, #4b524c);
	--_line: var(--rc-line, #dde3d8);
	--_serif: var(--rc-font-heading, "Playfair Display"), Georgia, serif;
	--_sans: var(--rc-font-body, "Poppins"), system-ui, sans-serif;
	font-family: var(--_sans);
	color: var(--_ink-soft);
}

.rc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Tipografia --------------------------------------------------------------- */
.rc-overline { margin: 0 0 .5rem; font: 500 .75rem/1.4 var(--_sans); letter-spacing: .18em; text-transform: uppercase; color: var(--_green); }
.rc-h2 { margin: 0 0 1.5rem; font: 500 clamp(2rem, 4vw, 3rem)/1.1 var(--_serif); color: var(--_ink); }
.rc-h3 { margin: 0 0 .75rem; font: 600 1.375rem/1.2 var(--_serif); color: var(--_ink); }
.rc-prose { font-weight: 300; font-size: 1.0625rem; line-height: 1.7; }
.rc-prose p { margin: 0 0 1rem; }
.rc-list { margin: 0; padding-left: 1.1rem; line-height: 1.9; font-weight: 300; }
.rc-link { color: var(--_green); font-weight: 500; text-decoration: none; }
.rc-link:hover, .rc-link:focus-visible { text-decoration: underline; }
/*
 * Cor fixa no :hover/:focus. Sem isso, o "a:hover" do tema Hello Elementor (roxo) vence,
 * porque tem a mesma especificidade e carrega depois. Duas classes aqui ganham dele.
 */
.rc-link.rc-link:hover, .rc-link.rc-link:focus-visible,
.rc-contacts.rc-contacts a:hover, .rc-contacts.rc-contacts a:focus-visible { color: var(--_green-deep); }
.rc-card__title.rc-card__title a:hover, .rc-card__title.rc-card__title a:focus-visible { color: var(--_green); }
.rc-list.rc-list a { color: var(--_green); text-decoration: none; }
.rc-list.rc-list a:hover, .rc-list.rc-list a:focus-visible { color: var(--_green-deep); text-decoration: underline; }
.rc-chooser__option.rc-chooser__option:hover, .rc-chooser__option.rc-chooser__option:focus-visible { color: var(--_ink-soft); }
.rc-theme-dark .rc-link.rc-link:hover, .rc-theme-dark .rc-link.rc-link:focus-visible,
.rc-theme-dark .rc-contacts.rc-contacts a:hover, .rc-theme-dark .rc-contacts.rc-contacts a:focus-visible { color: var(--_white); }
.rc-theme-dark .rc-card__title.rc-card__title a:hover, .rc-theme-dark .rc-card__title.rc-card__title a:focus-visible { color: var(--_sage); }

/* Botões ------------------------------------------------------------------- */
/*
 * Seletores com duas classes (".rc-btn.rc-btn--x"): temas como o Hello Elementor estilizam
 * <button> e [type=button] (inclusive :hover) e ganhariam de uma classe só.
 */
.rc-btn { display: inline-block; padding: 1rem 2.5rem; border: 1px solid transparent; border-radius: 2px; font: 500 .875rem/1.2 var(--_sans); letter-spacing: .06em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background-color .3s, color .3s, border-color .3s; }
.rc-btn.rc-btn--primario { background: var(--_green); color: var(--_white); border-color: var(--_green); }
.rc-btn.rc-btn--primario:hover, .rc-btn.rc-btn--primario:focus-visible { background: var(--_green-deep); color: var(--_white); border-color: var(--_green-deep); }
.rc-btn.rc-btn--contorno { background: transparent; color: var(--_ink); border-color: var(--_ink); }
.rc-btn.rc-btn--contorno:hover, .rc-btn.rc-btn--contorno:focus-visible { background: var(--_ink); color: var(--_white); border-color: var(--_ink); }
.rc-btn.rc-btn--claro { background: transparent; color: var(--_white); border-color: var(--_sage); }
.rc-btn.rc-btn--claro:hover, .rc-btn.rc-btn--claro:focus-visible { background: var(--_sage); color: var(--_forest); border-color: var(--_sage); }
.rc-btn:focus-visible, .rc-link:focus-visible, .rc-chooser__option:focus-visible { outline: 2px solid var(--_green); outline-offset: 3px; }

/* Grade e cards ------------------------------------------------------------ */
.rc-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(var(--_cols, 4), minmax(0, 1fr)); }
.rc-cols-1 { --_cols: 1; } .rc-cols-2 { --_cols: 2; } .rc-cols-3 { --_cols: 3; } .rc-cols-4 { --_cols: 4; }
@media (max-width: 1024px) { .rc-cols-3, .rc-cols-4 { --_cols: 2; } }
@media (max-width: 767px) { .rc-grid { --_cols: 1; } }

.rc-card { display: flex; flex-direction: column; overflow: hidden; background: var(--_white); border: 1px solid var(--_line); border-radius: 4px; transition: box-shadow .3s, transform .3s; }
.rc-card:hover { box-shadow: 0 18px 48px rgba(47, 59, 44, .12); transform: translateY(-4px); }
.rc-card__media { display: block; aspect-ratio: 1 / 1; background: var(--_mist); overflow: hidden; }
.rc-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rc-card__media--icon { background: var(--_green); }
/* Ícones de tratamento: nunca cortar (no celular o card fica 16:9). */
.rc-card__media--icon img { object-fit: contain; }
.rc-card__media--portrait { aspect-ratio: 4 / 5; }
.rc-card__body { display: flex; flex-direction: column; gap: .4rem; padding: 1.5rem; flex: 1; }
.rc-card__title { margin: 0; font: 600 1.375rem/1.2 var(--_serif); color: var(--_ink); }
.rc-card__title a { color: inherit; text-decoration: none; }
.rc-card__title--lg { font-size: 2rem; }
.rc-card__text { margin: .25rem 0 0; font-weight: 300; font-size: .9375rem; line-height: 1.65; }
.rc-card__meta { margin: 0; font-size: .875rem; }
.rc-card__meta--accent { color: var(--_green); }
.rc-card__actions { margin: auto 0 0; padding-top: 1rem; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; }
@media (max-width: 767px) { .rc-card__media:not(.rc-card__media--portrait) { aspect-ratio: 16 / 9; } }

.rc-initials { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; font: 500 3rem var(--_serif); color: var(--_green); }

/* Unidades ----------------------------------------------------------------- */
.rc-address { margin: .25rem 0 .5rem; font-style: normal; font-weight: 300; line-height: 1.7; }
.rc-address em { color: var(--_ink-soft); }
.rc-contacts { margin: 0; padding: 0; list-style: none; line-height: 1.9; font-size: .9375rem; }
.rc-contacts a { color: var(--_green); text-decoration: none; }
.rc-contacts a:hover { text-decoration: underline; }
.rc-hours { margin: .75rem 0 0; font-weight: 300; font-size: .9375rem; line-height: 1.8; }
.rc-technical-lead { margin: .75rem 0 0; font-size: .8125rem; }

.rc-theme-dark .rc-card { background: transparent; border-color: rgba(169, 187, 160, .35); }
.rc-theme-dark .rc-card:hover { box-shadow: none; transform: none; border-color: var(--_sage); }
.rc-theme-dark .rc-card__body { padding: 2.5rem; }
.rc-theme-dark .rc-overline, .rc-theme-dark .rc-address em { color: var(--_sage); }
.rc-theme-dark .rc-card__title, .rc-theme-dark .rc-address, .rc-theme-dark .rc-hours, .rc-theme-dark .rc-technical-lead { color: var(--_mist); }
.rc-theme-dark .rc-contacts a, .rc-theme-dark .rc-link { color: var(--_white); }
@media (max-width: 767px) { .rc-theme-dark .rc-card__body { padding: 1.75rem; } }

/* Páginas do plugin -------------------------------------------------------- */
.rc-page { background: var(--_surface); }
.rc-wrap { width: 100%; max-width: 72rem; margin: 0 auto; padding: 0 1.25rem; box-sizing: border-box; }
.rc-section { padding: 6rem 0; }
.rc-section--alt { background: var(--_mist); }
.rc-section--white { background: var(--_white); }
.rc-section--forest { background: var(--_forest); }
.rc-hero__intro { margin: 0; max-width: 40rem; color: var(--_mist); font-weight: 300; font-size: 1.125rem; line-height: 1.7; }
@media (max-width: 767px) { .rc-section { padding: 3.5rem 0; } }

.rc-hero { background: var(--_forest); padding: 5rem 0; }
.rc-hero__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 4rem; align-items: center; }
.rc-hero__title { margin: 0 0 1rem; font: 500 clamp(2.5rem, 6vw, 4.5rem)/1.05 var(--_serif); color: var(--_white); }
.rc-hero .rc-overline { color: var(--_sage); }
.rc-hero .rc-address { color: var(--_mist); font-size: 1.0625rem; }
.rc-hero .rc-address em { color: var(--_sage); }
.rc-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.5rem 0 0; }
.rc-hero__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; display: block; }
.rc-hero__grid--single { grid-template-columns: 1fr; }
.rc-hero__grid--single .rc-hero__text { max-width: 48rem; }
@media (max-width: 1024px) { .rc-hero__grid { grid-template-columns: 1fr; gap: 2.5rem; } }
@media (max-width: 767px) { .rc-hero { padding: 3.5rem 0; } }

.rc-info { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 3rem; align-items: start; }
.rc-info .rc-h2 { font-size: 1.75rem; }
@media (max-width: 1024px) { .rc-info { grid-template-columns: 1fr; gap: 2rem; } }
.rc-map { min-height: 16rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .75rem; padding: 2rem; background: var(--_mist); border-radius: 4px; }
.rc-map iframe { width: 100%; height: 22rem; border: 0; border-radius: 4px; }
.rc-map__note { margin: 0; font-size: .8125rem; }

.rc-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.rc-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px; display: block; }
@media (max-width: 767px) { .rc-gallery { grid-template-columns: 1fr; } }

.rc-cta__inner { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; text-align: center; }
.rc-cta .rc-h2 { margin: 0; }

.rc-profile { display: grid; grid-template-columns: .8fr 1.2fr; gap: 4rem; align-items: start; }
.rc-profile__photo { aspect-ratio: 4 / 5; background: var(--_mist); border-radius: 2px; overflow: hidden; }
.rc-profile__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rc-profile__name { margin: 0 0 .5rem; font: 500 clamp(2.25rem, 5vw, 3.5rem)/1.1 var(--_serif); color: var(--_ink); }
@media (max-width: 1024px) { .rc-profile { grid-template-columns: 1fr; gap: 2rem; } .rc-profile__photo { max-width: 28rem; } }

.rc-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3rem; }
@media (max-width: 1024px) { .rc-details { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .rc-details { grid-template-columns: 1fr; gap: 2rem; } }

/* Seletor de unidade ------------------------------------------------------- */
.rc-chooser { width: min(40rem, 92vw); padding: 2.5rem; border: 0; border-radius: 4px; background: var(--_surface); box-shadow: 0 30px 80px rgba(30, 36, 32, .35); }
.rc-chooser::backdrop { background: rgba(30, 36, 32, .72); }
.rc-chooser__close { position: absolute; top: .75rem; right: .75rem; margin: 0; }
.rc-chooser .rc-chooser__close button,
.rc-chooser .rc-chooser__close button:hover,
.rc-chooser .rc-chooser__close button:focus { width: 2.5rem; height: 2.5rem; padding: 0; border: 0; background: transparent; font-size: 1.75rem; line-height: 1; color: var(--_ink); cursor: pointer; }
.rc-chooser__title { margin: 0 0 .5rem; font: 500 2rem/1.15 var(--_serif); color: var(--_ink); }
.rc-chooser__text { margin: 0 0 1.5rem; font-weight: 300; }
.rc-chooser__options { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.rc-chooser__option { display: flex; flex-direction: column; gap: .35rem; padding: 1.5rem; background: var(--_white); border: 1px solid var(--_line); border-radius: 4px; text-decoration: none; color: var(--_ink-soft); transition: border-color .3s, box-shadow .3s; }
.rc-chooser__option:hover { border-color: var(--_green); box-shadow: 0 12px 32px rgba(47, 59, 44, .12); }
.rc-chooser__option strong { font: 500 1.375rem var(--_serif); color: var(--_ink); }
.rc-chooser__option span { font-size: .8125rem; font-weight: 300; }
.rc-chooser__option em { margin-top: .75rem; font-style: normal; font-weight: 500; font-size: .8125rem; color: var(--_green); }
.rc-chooser__option[hidden] { display: none; }
@media (max-width: 767px) { .rc-chooser { padding: 1.75rem 1.25rem; } .rc-chooser__options { grid-template-columns: 1fr; } .rc-chooser__title { font-size: 1.625rem; } }

/* Agendamento online (/agendar/) --------------------------------------------- */
/* Botões com classe dupla: o tema Hello Elementor estiliza <button> (inclusive :hover) e ganharia de uma só. */
.rc-hero--compact { padding: 3.5rem 0 3rem; }
.rc-hero--compact .rc-hero__title { font-size: clamp(2.25rem, 5vw, 3.5rem); }
.rc-page--booking .rc-section { padding: 3rem 0 5rem; }
.rc-booking { max-width: 44rem; }
.rc-booking__test { margin: 0 0 1.5rem; padding: .875rem 1rem; background: #fff7e0; border: 1px solid #e8d48a; border-radius: 4px; font-size: .875rem; color: var(--_ink); }
.rc-booking__status { min-height: 1.5rem; margin: 0 0 1rem; font-size: .9375rem; color: var(--_ink-soft); }
.rc-booking__status.is-error { color: #9b2c2c; font-weight: 500; }
.rc-booking__fallback { margin: 0 0 1rem; padding-left: 1.1rem; line-height: 2; }

.rc-steps { display: flex; gap: .5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; counter-reset: rc-step; }
.rc-steps li { flex: 1; padding-top: .625rem; border-top: 3px solid var(--_line); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: var(--_ink-soft); counter-increment: rc-step; }
.rc-steps li::before { content: counter(rc-step) ". "; }
.rc-steps li.is-done { border-top-color: var(--_sage); }
.rc-steps li[aria-current] { border-top-color: var(--_green); color: var(--_ink); font-weight: 600; }
@media (max-width: 479px) { .rc-steps li { font-size: .6875rem; letter-spacing: .02em; } }

.rc-booking__summary { display: flex; flex-direction: column; gap: .375rem; margin: 0 0 1.25rem; padding: 1rem 1.25rem; background: var(--_mist); border-radius: 4px; font-size: .9375rem; }
.rc-booking__summary-item { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .5rem; }
.rc-booking__summary-item strong { color: var(--_ink); font-weight: 500; }
.rc-booking__change.rc-booking__change { margin-left: auto; padding: 0; background: none; border: 0; color: var(--_green); font: 500 .875rem var(--_sans); text-decoration: underline; cursor: pointer; }
.rc-booking__change.rc-booking__change:hover, .rc-booking__change.rc-booking__change:focus-visible { background: none; color: var(--_green-deep); }

.rc-step .rc-h3 { margin-bottom: 1.25rem; outline: none; }
.rc-choice-list { display: grid; gap: 1rem; }
.rc-choice.rc-choice { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; width: 100%; padding: 1.25rem 1.5rem; background: var(--_white); border: 1px solid var(--_line); border-radius: 4px; color: var(--_ink-soft); font: 300 .9375rem/1.5 var(--_sans); text-align: left; cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.rc-choice.rc-choice strong { font: 500 1.375rem/1.2 var(--_serif); color: var(--_ink); }
.rc-choice.rc-choice:hover, .rc-choice.rc-choice:focus-visible { background: var(--_white); color: var(--_ink-soft); border-color: var(--_green); box-shadow: 0 10px 28px rgba(47, 59, 44, .12); }
.rc-choice__note { font-size: .8125rem; font-style: italic; }

.rc-cal { background: var(--_white); border: 1px solid var(--_line); border-radius: 4px; padding: 1rem; }
@media (max-width: 479px) { .rc-cal { padding: .75rem .5rem; } }
.rc-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.rc-cal__title { margin: 0; font: 500 1.125rem var(--_serif); color: var(--_ink); }
.rc-cal__nav.rc-cal__nav { width: 2.75rem; height: 2.75rem; padding: 0; background: transparent; border: 1px solid var(--_line); border-radius: 50%; color: var(--_ink); font-size: 1.5rem; line-height: 1; cursor: pointer; }
.rc-cal__nav.rc-cal__nav:hover:not(:disabled), .rc-cal__nav.rc-cal__nav:focus-visible { background: var(--_mist); color: var(--_ink); border-color: var(--_green); }
.rc-cal__nav.rc-cal__nav:disabled { opacity: .3; cursor: default; }
/* minmax(0, 1fr): as colunas encolhem com a tela; o dia não força a largura do calendário. */
.rc-cal__weekdays, .rc-cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .25rem; text-align: center; }
.rc-cal__weekdays span { font-size: .75rem; font-weight: 600; color: var(--_ink-soft); padding: .25rem 0; }
.rc-cal__day.rc-cal__day { width: 100%; min-width: 0; height: 2.75rem; padding: 0; background: var(--_mist); border: 1px solid transparent; border-radius: 4px; color: var(--_ink); font: 500 .9375rem var(--_sans); cursor: pointer; }
.rc-cal__day.rc-cal__day:hover:not(:disabled), .rc-cal__day.rc-cal__day:focus-visible { background: var(--_white); color: var(--_ink); border-color: var(--_green); }
.rc-cal__day.rc-cal__day[aria-pressed="true"] { background: var(--_green); color: var(--_white); }
.rc-cal__day.rc-cal__day:disabled { background: transparent; color: #b7bdb5; cursor: default; text-decoration: line-through; }

.rc-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr)); gap: .625rem; }
.rc-time.rc-time { min-height: 3rem; padding: 0; background: var(--_white); border: 1px solid var(--_line); border-radius: 4px; color: var(--_ink); font: 500 1rem var(--_sans); cursor: pointer; }
.rc-time.rc-time:hover, .rc-time.rc-time:focus-visible { background: var(--_green); color: var(--_white); border-color: var(--_green); }

.rc-form { display: grid; gap: 1.25rem; }
.rc-field { display: grid; gap: .375rem; }
.rc-field label { font-weight: 500; font-size: .9375rem; color: var(--_ink); }
.rc-field__optional { font-weight: 300; color: var(--_ink-soft); }
.rc-field input[type="text"], .rc-field input[type="tel"], .rc-field input[type="email"] { width: 100%; box-sizing: border-box; min-height: 3rem; padding: .75rem 1rem; background: var(--_white); border: 1px solid #b9c2b5; border-radius: 4px; font: 400 1rem var(--_sans); color: var(--_ink); }
.rc-field input:focus { outline: 2px solid var(--_green); outline-offset: 1px; border-color: var(--_green); }
.rc-field input[aria-invalid="true"] { border-color: #9b2c2c; }
.rc-field__error { margin: 0; min-height: 0; font-size: .8125rem; color: #9b2c2c; }
.rc-field__error:empty { display: none; }
.rc-field--check { grid-template-columns: auto 1fr; align-items: start; column-gap: .75rem; }
.rc-field--check input { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--_green); }
.rc-field--check label { font-weight: 300; line-height: 1.5; }
.rc-field--check .rc-field__error { grid-column: 2; }
.rc-field--hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rc-form__submit.rc-form__submit { width: 100%; }
.rc-form__submit.rc-form__submit:disabled { opacity: .7; cursor: wait; }
.rc-form__note { margin: 0; font-size: .8125rem; color: var(--_ink-soft); }

.rc-done .rc-h2 { outline: none; }
.rc-done__details { display: grid; grid-template-columns: auto 1fr; gap: .5rem 1.25rem; margin: 1.5rem 0; padding: 1.25rem 1.5rem; background: var(--_white); border: 1px solid var(--_line); border-radius: 4px; }
.rc-done__details dt { font-size: .8125rem; text-transform: uppercase; letter-spacing: .06em; color: var(--_ink-soft); padding-top: .15rem; }
.rc-done__details dd { margin: 0; color: var(--_ink); font-weight: 500; }
.rc-done__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
@media (max-width: 479px) { .rc-done__details { grid-template-columns: 1fr; gap: .125rem; } .rc-done__details dd { margin-bottom: .5rem; } }