*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
}
section[id], .onepage-section[id], .section[id] {
  scroll-margin-top: 104px;
}
body {
  margin: 0;
  background: var(--color-ivory);
  color: var(--color-text);
  font-family: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}

img, svg { max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
a:hover { color: var(--color-secondary); }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid rgba(20, 93, 160, .28); outline-offset: 3px; }

.container-xl { width: min(100% - 2rem, var(--container)); max-width: var(--container); margin-inline: auto; }
.container { width: min(100% - 2rem, 1140px); }
.narrow { max-width: 880px; }
.serif, .section-title, .onepage-hero h1 { font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif; }
.muted { color: var(--color-muted) !important; }
.text-primary-blue { color: var(--color-primary) !important; }
.bg-white { background: var(--color-white) !important; }
.bg-ice { background: var(--color-ice) !important; }
.topbar { display: none !important; }

.section, .onepage-section { padding: clamp(4.4rem, 7.8vw, 7.4rem) 0; }
.hero { padding: clamp(4rem, 8vw, 6.5rem) 0; }
.eyebrow, .section-kicker {
  color: var(--color-secondary) !important;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.section-kicker { position: relative; display: inline-flex; align-items: center; gap: .75rem; padding-left: 0; margin-bottom: .8rem; }
.section-kicker::before { content: ""; width: 2rem; height: 2px; background: linear-gradient(90deg, var(--color-accent), var(--color-secondary)); border-radius: 99px; }
.section-heading { max-width: 760px; }
.section-title {
  margin: 0;
  color: var(--color-primary) !important;
  font-size: clamp(2.3rem, 4.8vw, 3.65rem);
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: .98;
}
.text-content { color: rgba(16, 32, 51, .82); font-size: 1.03rem; line-height: 1.85; }

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 2.75rem;
  border-radius: .72rem;
  font-size: .9rem;
  font-weight: 850;
  line-height: 1;
  padding: .86rem 1.2rem;
}
.btn-primary-soft {
  --bs-btn-bg: var(--color-primary);
  --bs-btn-border-color: var(--color-primary);
  --bs-btn-color: var(--color-white);
  --bs-btn-hover-bg: var(--color-secondary);
  --bs-btn-hover-border-color: var(--color-secondary);
  --bs-btn-hover-color: var(--color-white);
  background: linear-gradient(135deg, var(--color-ink), var(--color-primary) 58%, #1e5f72) !important;
  border-color: rgba(255,255,255,.08) !important;
  color: var(--color-white) !important;
  box-shadow: 0 14px 28px rgba(11, 45, 77, .18);
}
.btn-primary-soft:hover { transform: translateY(-1px); box-shadow: 0 18px 34px rgba(11, 45, 77, .22); }
.btn-primary-soft:disabled, .btn-primary-soft[disabled] { opacity: .52; pointer-events: none; transform: none; box-shadow: none; }
.btn-outline-soft {
  --bs-btn-color: var(--color-primary);
  --bs-btn-border-color: rgba(11, 45, 77, .24);
  --bs-btn-hover-bg: var(--color-blue-soft);
  --bs-btn-hover-border-color: var(--color-secondary);
  --bs-btn-hover-color: var(--color-primary);
  background: rgba(255,253,248,.78);
  color: var(--color-primary) !important;
  border-color: rgba(11, 45, 77, .24) !important;
}

.site-header, .landing-header {
  position: sticky;
  top: 0;
  z-index: 80;
  background: rgba(255, 253, 248, .92);
  border-bottom: 1px solid rgba(221, 230, 230, .86);
  box-shadow: 0 10px 28px rgba(7, 25, 35, .045);
  backdrop-filter: blur(18px);
}
.landing-header nav {
  min-height: 78px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1rem, 2.4vw, 2.5rem);
  padding-block: .8rem;
}
.professional-brand { display: inline-flex; align-items: center; gap: .75rem; min-width: 0; color: var(--color-primary); }
.brand-logo-mark {
  width: 3.15rem;
  height: 3.15rem;
  flex: 0 0 3.15rem;
  display: block;
  background: currentColor;
  -webkit-mask: url("../img/logo.png") center 10% / 178% no-repeat;
  mask: url("../img/logo.png") center 10% / 178% no-repeat;
}
.brand-logo-mark-blue { color: var(--color-primary); }
.brand-logo-mark-white { color: var(--color-white); }
.brand-copy { display: grid; gap: .12rem; min-width: 0; }
.brand-copy strong { color: var(--color-primary) !important; font-size: clamp(1.16rem, 2vw, 1.46rem); font-weight: 900; letter-spacing: -.035em; line-height: 1; }
.brand-copy small { color: var(--color-muted); font-size: .68rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.nav-links { display: flex; align-items: center; justify-content: center; gap: clamp(.9rem, 2vw, 1.7rem); }
.nav-links a { color: var(--color-text); font-size: .92rem; font-weight: 750; white-space: nowrap; }
.nav-links a:hover { color: var(--color-secondary); }
.header-actions { display: inline-flex; align-items: center; justify-content: end; gap: .65rem; min-width: max-content; }
.header-cta, .login-toggle { min-height: 2.45rem; padding: .72rem 1rem; font-size: .82rem; }
.login-entry { position: relative; }
.login-menu {
  position: absolute;
  top: calc(100% + .65rem);
  right: 0;
  min-width: 215px;
  display: none;
  gap: .12rem;
  padding: .55rem;
  border: 1px solid var(--color-border);
  border-radius: .85rem;
  background: var(--color-white);
  box-shadow: var(--shadow-card);
}
.login-menu.is-open { display: grid; }
.login-menu a { border-radius: .62rem; color: var(--color-primary); font-size: .86rem; font-weight: 800; padding: .75rem .82rem; }
.login-menu a:hover { background: var(--color-blue-soft); }
.mobile-menu-toggle { display: none; width: 2.6rem; height: 2.6rem; border: 1px solid var(--color-border); border-radius: .7rem; background: var(--color-white); padding: .55rem; }
.mobile-menu-toggle span { display: block; height: 2px; margin: .28rem 0; border-radius: 99px; background: var(--color-primary); }

.onepage-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 76% 16%, rgba(197, 139, 90, .22), transparent 29rem),
    radial-gradient(circle at 12% 80%, rgba(47, 124, 140, .14), transparent 30rem),
    linear-gradient(118deg, #fffdf8 0%, #f2f7f6 47%, #e7f0ef 100%);
  border-bottom: 1px solid rgba(16,47,70,.1);
}
.onepage-hero::before { content: ""; position: absolute; inset: 8% auto auto -12rem; width: 34rem; height: 34rem; border: 1px solid rgba(11,45,77,.08); border-radius: 50%; pointer-events: none; }
.onepage-hero::after { content: ""; position: absolute; inset: 0; z-index: -2; background-image: linear-gradient(rgba(11,45,77,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(11,45,77,.045) 1px, transparent 1px); background-size: 84px 84px; -webkit-mask-image: linear-gradient(90deg, #000, transparent 78%); mask-image: linear-gradient(90deg, #000, transparent 78%); pointer-events: none; }
.hero-atmosphere { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hero-atmosphere::before { content: ""; position: absolute; right: -10vw; top: 8vh; width: min(58vw, 720px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(20,93,160,.18), transparent 67%); filter: blur(6px); }
.hero-atmosphere::after { content: ""; position: absolute; right: 8vw; bottom: -12rem; width: 42rem; height: 16rem; background: rgba(255,255,255,.66); filter: blur(54px); transform: rotate(-8deg); }
.onepage-hero-grid { position: relative; z-index: 1; min-height: clamp(680px, calc(100vh - 80px), 860px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .78fr); gap: clamp(2rem, 5vw, 5.5rem); align-items: center; }
.onepage-hero-copy { max-width: 760px; min-width: 0; padding-block: clamp(4rem, 8vw, 6.4rem); }
.onepage-kicker { width: fit-content; border: 1px solid rgba(16,47,70,.12); border-radius: 999px; background: rgba(255,253,248,.7); color: var(--color-primary); box-shadow: 0 14px 34px rgba(7,25,35,.06); backdrop-filter: blur(14px); font-size: .72rem; font-weight: 950; letter-spacing: .11em; text-transform: uppercase; padding: .55rem .8rem; }
.onepage-hero h1 { max-width: 860px; margin: 1rem 0 1.15rem; color: var(--color-ink); font-size: clamp(3.4rem, 7.1vw, 6.55rem); font-weight: 700; letter-spacing: -.065em; line-height: .88; }
.onepage-hero p:not(.onepage-kicker) { max-width: 650px; color: rgba(7, 27, 47, .72); font-size: clamp(1.04rem, 1.45vw, 1.24rem); line-height: 1.72; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 1.7rem; }
.hero-actions .btn { min-width: 190px; }
.hero-trust-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-top: clamp(1.8rem, 3.5vw, 2.6rem); max-width: 720px; }
.hero-trust-grid span { min-height: 96px; display: grid; align-content: space-between; gap: .75rem; border: 1px solid rgba(11,45,77,.12); border-radius: 1.2rem; background: rgba(255,255,255,.54); color: rgba(7,27,47,.78); box-shadow: 0 18px 42px rgba(7,27,47,.07); backdrop-filter: blur(12px); padding: 1rem; font-size: .86rem; font-weight: 800; line-height: 1.35; }
.hero-trust-grid strong { color: var(--color-accent); font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.65rem; line-height: .9; }
.hero-visual-premium { align-self: stretch; display: grid; align-items: center; padding-block: clamp(2rem, 5vw, 4rem); }
.hero-portrait-shell {
  position: relative;
  overflow: hidden;
  width: min(100%, 510px);
  justify-self: end;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: clamp(1.7rem, 4vw, 3.5rem);
  background: linear-gradient(145deg, rgba(255,253,248,.94), rgba(232,242,244,.82));
  box-shadow: 0 38px 100px rgba(7,27,47,.22);
  aspect-ratio: .9 / 1.08;
}
.hero-portrait-shell::before { content: ""; position: absolute; inset: auto -18% -6% -18%; height: 42%; background: linear-gradient(0deg, rgba(7,27,47,.48), transparent); z-index: 1; pointer-events: none; }
.hero-portrait-shell::after { content: ""; position: absolute; inset: 1rem; border: 1px solid rgba(255,255,255,.68); border-radius: calc(clamp(1.7rem, 4vw, 3.5rem) - .7rem); z-index: 2; pointer-events: none; }
.hero-portrait-shell img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 38%; }
.hero-floating-card { position: absolute; z-index: 3; display: grid; gap: .1rem; border: 1px solid rgba(255,255,255,.5); border-radius: 1rem; background: rgba(7,27,47,.72); color: var(--color-white); box-shadow: 0 20px 48px rgba(7,27,47,.22); backdrop-filter: blur(18px); padding: .82rem 1rem; }
.hero-floating-card span { color: rgba(255,255,255,.66); font-size: .68rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.hero-floating-card strong { font-size: .9rem; font-weight: 900; white-space: nowrap; }
.hero-floating-card-top { top: 7%; left: -1.4rem; }
.hero-floating-card-bottom { right: -1.2rem; bottom: 10%; background: rgba(255,255,255,.82); color: var(--color-primary); }
.hero-floating-card-bottom span { color: rgba(11,45,77,.58); }
.hero-scroll-cue { position: absolute; left: 50%; bottom: 1.5rem; z-index: 3; display: inline-flex; align-items: center; gap: .55rem; color: rgba(7,27,47,.58); font-size: .72rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; transform: translateX(-50%); }
.hero-scroll-cue span { width: 1px; height: 2rem; background: linear-gradient(180deg, transparent, var(--color-accent)); }

.proof-strip { background: var(--color-ink); border-bottom: 1px solid rgba(255,255,255,.08); }
.proof-strip-grid { min-height: 86px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; }
.proof-strip-grid span { display: flex; align-items: center; justify-content: center; gap: .72rem; color: rgba(255,255,255,.86); font-size: .92rem; font-weight: 850; text-align: center; padding: 1rem; }
.proof-strip-grid span::before { content: ""; width: 2rem; height: 2rem; flex: 0 0 2rem; border: 1.5px solid rgba(185,138,66,.72); border-radius: 50%; background: radial-gradient(circle, var(--color-accent) 0 22%, transparent 24%); }
.proof-strip-grid span + span { border-left: 1px solid rgba(255,255,255,.11); }

#sobre { background: linear-gradient(180deg, var(--color-ivory), var(--color-warm)); }
.about-onepage { display: grid; grid-template-columns: minmax(250px, 360px) minmax(0, 1fr) minmax(260px, .58fr); gap: clamp(1.8rem, 4.8vw, 4rem); align-items: center; }
.about-photo-card { position: relative; margin: 0; border: 1px solid rgba(11,45,77,.12); border-radius: clamp(1.3rem, 3vw, 2.4rem); background: var(--color-white); box-shadow: var(--shadow-card); overflow: hidden; }
.about-photo-card::after { content: ""; position: absolute; inset: auto 1rem 1rem; height: 34%; border-radius: 0 0 1.4rem 1.4rem; background: linear-gradient(0deg, rgba(7,27,47,.2), transparent); pointer-events: none; }
.about-photo-card img { width: 100%; aspect-ratio: .92 / 1; display: block; object-fit: cover; object-position: 50% 38%; }
.check-grid { display: grid; gap: .75rem; }
.compact-checks span, .check-grid span { display: flex; align-items: flex-start; gap: .65rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-white); color: var(--color-text); box-shadow: 0 8px 22px rgba(11,45,77,.04); padding: .9rem 1rem; font-weight: 750; }
.compact-checks span::before, .check-grid span::before { content: ""; width: .55rem; height: .55rem; flex: 0 0 .55rem; margin-top: .47rem; border-radius: 50%; background: var(--color-accent); }

.method-section { position: relative; overflow: hidden; background: var(--color-ink); color: var(--color-white); }
.method-section::before { content: ""; position: absolute; inset: -35% -18% auto auto; width: 48rem; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(20,93,160,.34), transparent 68%); }
.method-section::after { content: ""; position: absolute; inset: auto auto -28% -12%; width: 36rem; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(185,138,66,.16), transparent 70%); }
.method-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.18fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.method-copy { position: sticky; top: 7rem; }
.method-section .section-kicker, .method-section .section-title { color: var(--color-white) !important; }
.method-section .text-content { color: rgba(255,255,255,.72); }
.method-steps { display: grid; gap: 1rem; }
.method-step { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr); gap: .35rem 1.2rem; border: 1px solid rgba(255,255,255,.12); border-radius: 1.35rem; background: linear-gradient(135deg, rgba(255,255,255,.11), rgba(255,255,255,.045)); box-shadow: 0 22px 55px rgba(0,0,0,.14); backdrop-filter: blur(16px); padding: clamp(1.1rem, 2.4vw, 1.45rem); }
.method-step span { grid-row: span 2; color: var(--color-accent); font-family: "Cormorant Garamond", Georgia, serif; font-size: 2.5rem; line-height: .9; }
.method-step h3 { margin: 0; color: var(--color-white); font-size: 1.04rem; font-weight: 900; }
.method-step p { margin: 0; color: rgba(255,255,255,.68); font-size: .95rem; line-height: 1.62; }

.services-onepage { background: linear-gradient(180deg, #f8fbfa, var(--color-ivory)); }
.modal-service-grid, .service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.service-card, .service-modal-card, .card-soft, .legal-card, .checkout-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(255,253,248,.98), rgba(255,255,255,.94));
  box-shadow: 0 12px 30px rgba(7,25,35,.055);
  padding: 1.35rem;
}
.service-modal-card { position: relative; min-height: 280px; display: grid; align-content: start; gap: .75rem; overflow: hidden; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.service-modal-card::before { content: ""; position: absolute; inset: 0 0 auto; height: .24rem; background: linear-gradient(90deg, var(--color-accent), var(--color-secondary)); opacity: .9; }
.service-modal-card:hover { transform: translateY(-3px); border-color: rgba(20,93,160,.38); box-shadow: var(--shadow-card); }
.service-modal-card small { width: fit-content; border: 1px solid rgba(20,93,160,.16); border-radius: 999px; background: var(--color-blue-soft); color: var(--color-primary); font-size: .66rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; padding: .36rem .55rem; }
.service-card h3, .service-modal-card h3 { color: var(--color-primary) !important; font-family: "Inter", sans-serif; font-size: 1.05rem; font-weight: 900; line-height: 1.28; margin: 0; }
.service-card p, .service-modal-card p { color: var(--color-muted); font-size: .92rem; line-height: 1.58; margin: 0; }
.service-card a, .service-modal-card button { width: max-content; margin-top: auto; border: 0; background: transparent; color: var(--color-secondary); font-size: .9rem; font-weight: 900; padding: 0; }
.service-modal-card button::after { content: " ->"; }

.document-print-section { background: linear-gradient(180deg, var(--color-ice), var(--color-white)) !important; }
.psychological-document {
  position: relative;
  border-radius: 10px;
  padding: clamp(1.5rem, 4vw, 3.2rem);
  color: #102033;
}
.document-header { border-bottom: 1px solid var(--color-border); padding-bottom: 1.2rem; margin-bottom: 1.8rem; }
.document-type { color: var(--color-primary); font-size: .86rem; letter-spacing: .08em; margin-bottom: .55rem; }
.document-title { color: var(--color-primary); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(1.8rem, 4vw, 2.45rem); line-height: 1.05; }
.document-meta { border-color: var(--color-border); }
.document-meta th { width: 32%; color: var(--color-muted); font-size: .82rem; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.document-meta td { color: var(--color-text); }
.document-body { min-height: 280px; text-align: justify; white-space: normal; }
.document-signature { margin: clamp(3rem, 8vw, 5rem) auto 2rem; }
.document-signature-line { width: min(100%, 320px); border-top: 1px solid var(--color-text); margin: 0 auto .85rem; }
.document-footer { border-top: 1px solid var(--color-border); margin-top: 2rem; padding-top: 1rem; }
.document-validation-box {
  display: grid;
  gap: .25rem;
  border: 1px solid var(--color-border);
  border-radius: .85rem;
  background: var(--color-ice);
  color: var(--color-muted);
  font-size: .86rem;
  padding: .9rem 1rem;
  overflow-wrap: anywhere;
}
.document-validation-box strong { color: var(--color-primary); }

.line-icon { width: 2.25rem; height: 2.25rem; display: inline-block; flex: 0 0 2.25rem; border: 1.8px solid currentColor; border-radius: .75rem; color: var(--color-secondary); position: relative; background: var(--color-blue-soft); }
.line-icon::before, .line-icon::after { content: ""; position: absolute; border-color: currentColor; }
.icon-therapy, .icon-group { border-radius: 50%; }
.icon-therapy::before { left: .6rem; top: .48rem; width: .55rem; height: .55rem; border: 1.8px solid currentColor; border-radius: 50%; }
.icon-therapy::after { right: .48rem; bottom: .45rem; width: .95rem; height: .95rem; border: 1.8px solid currentColor; border-radius: 50%; }
.icon-clipboard::before { inset: .48rem .56rem .42rem; border: 1.8px solid currentColor; border-radius: .22rem; }
.icon-clipboard::after { left: .82rem; right: .82rem; top: .34rem; height: .38rem; border: 1.8px solid currentColor; border-radius: .18rem; background: var(--color-white); }
.icon-group::before { top: .55rem; left: .52rem; width: .5rem; height: .5rem; border: 1.8px solid currentColor; border-radius: 50%; box-shadow: .72rem 0 0 -.02rem var(--color-blue-soft), .72rem 0 0 0 currentColor; }
.icon-group::after { left: .42rem; right: .42rem; bottom: .52rem; height: .55rem; border: 1.8px solid currentColor; border-radius: 50% 50% 0 0; }
.icon-briefcase::before { left: .42rem; right: .42rem; bottom: .54rem; height: 1.08rem; border: 1.8px solid currentColor; border-radius: .2rem; }
.icon-briefcase::after { left: .92rem; right: .92rem; top: .47rem; height: .42rem; border: 1.8px solid currentColor; border-bottom: 0; border-radius: .35rem .35rem 0 0; }

.service-dialog, .payment-dialog { width: min(680px, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); border: 0; padding: 0; background: transparent; }
.service-dialog::backdrop, .payment-dialog::backdrop { background: rgba(11, 45, 77, .58); backdrop-filter: blur(5px); }
.service-dialog-card, .payment-dialog-card { position: relative; max-height: calc(100dvh - 2rem); overflow-y: auto; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); box-shadow: 0 28px 90px rgba(11,45,77,.24); padding: clamp(1.35rem, 4vw, 2.2rem); }
.service-dialog-card h2, .payment-dialog-card h2 { color: var(--color-primary); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(2rem, 4vw, 2.8rem); margin: 0 0 .6rem; }
.service-dialog-card p, .payment-dialog-card p { color: var(--color-muted); line-height: 1.72; }
.modal-close { position: absolute; right: 1rem; top: 1rem; width: 2.35rem; height: 2.35rem; border: 0; border-radius: 50%; background: var(--color-blue-soft); color: var(--color-primary); font-size: 1.35rem; line-height: 1; }

.schedule-onepage { position: relative; background: radial-gradient(circle at 18% 12%, rgba(197,139,90,.13), transparent 24rem), linear-gradient(180deg, var(--color-ice), var(--color-ivory)); }
.schedule-shell { position: relative; border: 1px solid rgba(221,230,230,.9); border-radius: var(--radius-xl); background: rgba(255,253,248,.9); box-shadow: var(--shadow-soft); padding: clamp(1rem, 2.6vw, 1.6rem); backdrop-filter: blur(12px); }
.schedule-head { max-width: 760px; margin: 0 auto 1.7rem; }
.schedule-steps-grid { display: grid; grid-template-columns: minmax(230px, .95fr) minmax(280px, 1fr) minmax(240px, .9fr) minmax(290px, 1fr); gap: 1rem; align-items: start; }
.schedule-step { min-width: 0; display: grid; gap: .78rem; }
.schedule-step > strong { display: flex; align-items: center; gap: .55rem; color: var(--color-primary); font-size: .9rem; font-weight: 900; }
.schedule-step > strong span { width: 1.75rem; height: 1.75rem; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg, var(--color-secondary), var(--color-primary)); color: var(--color-white); font-size: .78rem; }
.appointment-services { display: grid; gap: .62rem; }
.service-options-list { max-height: 430px; overflow-y: auto; padding-right: .15rem; }
.appointment-service { width: 100%; min-height: 64px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .72rem; align-items: center; border: 1px solid var(--color-border); border-radius: .95rem; background: rgba(255,255,255,.82); color: var(--color-text); box-shadow: 0 8px 20px rgba(7,25,35,.04); padding: .75rem; text-align: left; }
.appointment-service:hover, .appointment-service.active { border-color: rgba(47, 124, 140, .5); background: linear-gradient(135deg, rgba(232,242,244,.95), rgba(246,239,228,.7)); }
.appointment-service.active::after { content: ""; width: .42rem; height: .74rem; border-right: 2px solid var(--color-secondary); border-bottom: 2px solid var(--color-secondary); transform: rotate(42deg); }
.appointment-service .line-icon { width: 2rem; height: 2rem; flex-basis: 2rem; }
.service-info { min-width: 0; }
.service-info strong { display: block; color: var(--color-primary); font-size: .82rem; font-weight: 900; line-height: 1.22; overflow-wrap: anywhere; }
.service-info small { display: block; color: var(--color-muted); font-size: .7rem; line-height: 1.35; margin-top: .2rem; overflow-wrap: anywhere; }
.calendar-box { min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: rgba(255,255,255,.86); box-shadow: 0 8px 22px rgba(7,25,35,.05); padding: .9rem; }
.calendar-head { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-bottom: .75rem; color: var(--color-primary); }
.calendar-head strong { font-size: .9rem; font-weight: 900; text-transform: capitalize; }
.calendar-head button { width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: var(--color-blue-soft); color: var(--color-primary); font-size: 1.25rem; line-height: 1; }
.calendar-head button:hover { background: var(--color-primary); color: var(--color-white); }
.calendar-week, .calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .32rem; text-align: center; }
.calendar-week span { color: var(--color-muted); font-size: .65rem; font-weight: 900; }
.calendar-grid button { height: 2rem; border: 0; border-radius: .55rem; background: transparent; color: var(--color-primary); font-size: .76rem; font-weight: 800; }
.calendar-grid button:hover, .calendar-grid button.active { background: var(--color-secondary); color: var(--color-white); }
.calendar-grid button:disabled { cursor: not-allowed; opacity: .32; }
.calendar-grid button.muted-day { color: rgba(95,107,122,.35); }
.selected-date-label { color: var(--color-muted); font-size: .78rem; font-weight: 800; margin: -.25rem 0 0; text-align: center; text-transform: capitalize; }
.slot-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: .58rem; min-height: 176px; align-content: start; }
.compact-slots { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.slot-button { min-height: 2.75rem; border: 1px solid var(--color-border); border-radius: .72rem; background: rgba(255,255,255,.88); color: var(--color-primary); box-shadow: 0 8px 18px rgba(7,25,35,.04); font-size: .86rem; font-weight: 900; padding: .65rem .35rem; }
.slot-button:hover, .slot-button.active { border-color: var(--color-secondary); background: linear-gradient(135deg, var(--color-secondary), var(--color-primary)); color: var(--color-white); }
.slot-button:disabled, .slot-button.unavailable { cursor: not-allowed; opacity: .42; background: var(--color-ice); }
.slot-skeleton { height: 2.75rem; border-radius: .72rem; background: linear-gradient(90deg, var(--color-ice), var(--color-blue-soft), var(--color-ice)); background-size: 220% 100%; animation: slotPulse 1.2s ease-in-out infinite; }
@keyframes slotPulse { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }
.slot-grid.is-empty, .slot-grid.is-error, .slot-grid.is-loading { border: 1px dashed var(--color-border); border-radius: var(--radius-md); background: rgba(234,244,255,.48); color: var(--color-muted); padding: 1rem; text-align: center; }
.slot-grid.is-loading { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); border: 0; background: transparent; padding: 0; }
.compact-slots.is-loading { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.slot-grid.is-error { color: #B42318; border-color: rgba(180, 35, 24, .25); background: #FFF7F6; }
.calendar-note, .safe-note { color: var(--color-muted); font-size: .74rem; line-height: 1.4; }
.calendar-note { border-radius: .72rem; background: var(--color-blue-soft); padding: .72rem .85rem; text-align: center; }
.summary-step { border: 1px solid var(--color-border); border-radius: var(--radius-md); background: linear-gradient(180deg, rgba(255,253,248,.98), rgba(255,255,255,.94)); box-shadow: 0 12px 30px rgba(7,25,35,.08); padding: 1rem; }
.schedule-selection-summary, .payment-modal-summary { display: grid; gap: .62rem; }
.schedule-selection-summary p, .payment-modal-summary p { display: grid; grid-template-columns: auto 1fr; gap: .9rem; margin: 0; }
.schedule-selection-summary span, .payment-modal-summary span { color: var(--color-muted); font-size: .74rem; font-weight: 850; }
.schedule-selection-summary strong, .payment-modal-summary strong { color: var(--color-primary); font-size: .82rem; font-weight: 900; text-align: right; overflow-wrap: anywhere; }
.summary-price strong { color: var(--color-secondary) !important; }
.summary-description { display: block; color: var(--color-muted); font-size: .74rem; line-height: 1.4; }
.availability-message { min-height: 2.15rem; margin: 0; color: var(--color-muted); font-size: .78rem; line-height: 1.4; text-align: center; }
.availability-message.is-success { color: #067647; font-weight: 800; }
.availability-message.is-error { color: #B42318; font-weight: 800; }
.payment-fields { display: grid; gap: .78rem; }
.payment-fields label:not(.form-check) { display: grid; gap: .34rem; color: var(--color-primary); font-size: .84rem; font-weight: 850; }
.form-control, .form-select { border: 1px solid var(--color-border); border-radius: .8rem; background: rgba(255,255,255,.92); color: var(--color-text); padding: .82rem .92rem; }
.form-control:focus, .form-select:focus { border-color: var(--color-secondary); box-shadow: 0 0 0 .22rem rgba(47, 124, 140, .16); }
.form-label { color: var(--color-primary); font-weight: 800; }
.summary-check { color: var(--color-muted); font-size: .78rem; line-height: 1.35; }
.payment-status { color: var(--color-primary); font-size: .9rem; font-weight: 800; }
.payment-status.is-success { color: #1f7a4d; }
.payment-status.is-error { color: #b42318; }
.payment-status.is-info { color: var(--color-primary); }
.payment-status a { color: var(--color-accent); font-weight: 950; }
.payment-brick { min-height: 280px; }
.payment-methods { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin: 1rem 0; border: 1px solid var(--color-border); border-radius: 999px; padding: .3rem; background: var(--color-soft); }
.payment-method { border: 0; border-radius: 999px; background: transparent; color: var(--color-primary); padding: .72rem .9rem; font-weight: 950; }
.payment-method.active { background: var(--color-primary); color: var(--color-white); box-shadow: 0 12px 28px rgba(11,45,77,.16); }
.payment-method-panel[hidden] { display: none; }
.pix-panel { display: grid; gap: .85rem; }
.pix-document-field { display: grid; gap: .34rem; color: var(--color-primary); font-size: .84rem; font-weight: 850; }
.pix-payment-card { display: grid; gap: .9rem; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-soft); padding: 1rem; }
.pix-qrcode { width: min(260px, 100%); margin: 0 auto; border-radius: 1rem; background: var(--color-white); padding: .65rem; box-shadow: 0 12px 34px rgba(11,45,77,.12); }
.pix-copy-label { color: var(--color-primary); font-size: .84rem; font-weight: 900; }
.pix-copy-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; }
.pix-copy-row input { font-size: .78rem; }
.pix-note { margin: 0; color: var(--color-muted); font-size: .84rem; line-height: 1.55; }

.thank-you-section { min-height: 68vh; display: grid; align-items: center; background: linear-gradient(180deg, var(--color-ice), var(--color-white)); }
.thank-you-shell { display: grid; place-items: center; }
.thank-you-card { width: min(760px, 100%); display: grid; gap: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-xl); background: var(--color-white); box-shadow: var(--shadow-soft); padding: clamp(1.35rem, 4vw, 2.4rem); text-align: center; }
.thank-you-card h1 { color: var(--color-primary); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(2.2rem, 5vw, 3.5rem); line-height: 1.02; margin: 0; }
.thank-you-message { max-width: 620px; margin: 0 auto; color: var(--color-muted); font-size: 1.02rem; line-height: 1.7; }
.status-orb { position: relative; width: 4.4rem; height: 4.4rem; display: grid; place-items: center; justify-self: center; border-radius: 50%; background: var(--color-blue-soft); color: var(--color-primary); box-shadow: 0 18px 38px rgba(11,45,77,.12); }
.status-orb::before { content: ""; width: 1.15rem; height: 1.85rem; border-right: .28rem solid currentColor; border-bottom: .28rem solid currentColor; transform: rotate(42deg) translateY(-.1rem); }
.status-pending::before, .status-approved::before { width: 1.55rem; height: 1.55rem; border: .28rem solid currentColor; border-right-color: transparent; border-radius: 50%; transform: none; }
.status-rejected, .status-cancelled, .status-expired, .status-conflict, .status-not_found { color: #b42318; background: #fff7f6; }
.status-rejected::before, .status-cancelled::before, .status-expired::before, .status-conflict::before, .status-not_found::before { width: 1.75rem; height: .28rem; border: 0; border-radius: 999px; background: currentColor; transform: rotate(45deg); box-shadow: 0 0 0 currentColor; }
.status-rejected::after, .status-cancelled::after, .status-expired::after, .status-conflict::after, .status-not_found::after { content: ""; width: 1.75rem; height: .28rem; border-radius: 999px; background: currentColor; transform: rotate(-45deg); position: absolute; }
.order-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin-top: .4rem; text-align: left; }
.order-status-grid p { display: grid; gap: .2rem; margin: 0; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-soft); padding: .85rem 1rem; }
.order-status-grid span { color: var(--color-muted); font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .08em; }
.order-status-grid strong { color: var(--color-primary); font-size: .94rem; overflow-wrap: anywhere; }
.status-live-note { min-height: 1.4rem; margin: 0; color: var(--color-muted); font-size: .86rem; font-weight: 750; }
.thank-you-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-top: .25rem; }

.patient-portal {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 8%, rgba(185,138,66,.11), transparent 24rem),
    radial-gradient(circle at 92% 2%, rgba(20,93,160,.13), transparent 28rem),
    linear-gradient(180deg, #f7fafc, #fff 44%, #f4efe6);
}
.patient-portal::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(11,45,77,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(11,45,77,.035) 1px, transparent 1px); background-size: 78px 78px; pointer-events: none; }
.patient-portal > .container-xl { position: relative; z-index: 1; }
.patient-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.2rem;
  align-items: start;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: clamp(1.4rem, 3vw, 2.4rem);
  background: linear-gradient(135deg, rgba(7,27,47,.96), rgba(11,45,77,.92));
  color: var(--color-white);
  box-shadow: 0 30px 90px rgba(7,27,47,.18);
  padding: clamp(1.35rem, 4vw, 2.4rem);
}
.patient-hero .eyebrow { color: var(--color-accent) !important; margin-bottom: .55rem; }
.patient-hero h1 { margin: 0; color: var(--color-white); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(2.45rem, 5vw, 4.35rem); line-height: .92; letter-spacing: -.045em; }
.patient-hero p { max-width: 680px; margin: .9rem 0 0; color: rgba(255,255,255,.72); font-size: 1rem; line-height: 1.7; }
.patient-hero .btn-outline-soft { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.26) !important; color: var(--color-white) !important; }
.patient-hero .btn-outline-soft:hover { background: var(--color-white); color: var(--color-primary) !important; }
.patient-hero-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; margin-top: 1.35rem; max-width: 720px; }
.patient-hero-meta span { display: grid; gap: .15rem; border: 1px solid rgba(255,255,255,.12); border-radius: 1rem; background: rgba(255,255,255,.08); padding: .85rem .95rem; color: rgba(255,255,255,.72); font-size: .74rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.patient-hero-meta strong { color: var(--color-white); font-size: 1.42rem; line-height: 1; letter-spacing: -.03em; }
.patient-portal .alert { border: 1px solid rgba(11,45,77,.1); border-radius: 1rem; box-shadow: 0 12px 30px rgba(7,27,47,.055); }
.patient-portal .alert-info { background: rgba(234,244,255,.78); color: var(--color-primary); }
.patient-nav { display: flex; gap: .55rem; overflow-x: auto; border: 1px solid rgba(11,45,77,.09); border-radius: 999px; background: rgba(255,255,255,.72); box-shadow: 0 16px 38px rgba(7,27,47,.06); padding: .45rem; scrollbar-width: thin; }
.patient-nav .btn { flex: 0 0 auto; border-radius: 999px; box-shadow: none; }
.patient-portal .service-grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .85rem; }
.patient-portal .service-card, .patient-portal .card-soft {
  border-color: rgba(11,45,77,.1);
  background: rgba(255,255,255,.86);
  box-shadow: 0 16px 42px rgba(7,27,47,.075);
  backdrop-filter: blur(14px);
}
.patient-portal .service-card { position: relative; min-height: 176px; overflow: hidden; }
.patient-portal .service-card::before { content: ""; position: absolute; inset: 0 0 auto; height: .2rem; background: linear-gradient(90deg, var(--color-accent), var(--color-secondary)); opacity: .75; }
.patient-portal .service-card h3, .patient-portal .card-soft h2 { color: var(--color-primary) !important; font-weight: 950; }
.patient-portal .card-soft h2 { margin-bottom: .85rem; }
.patient-portal .service-card p { font-size: .95rem; }
.patient-portal .table-responsive { border: 1px solid rgba(11,45,77,.08); border-radius: 1rem; background: var(--color-white); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.patient-portal .table { margin: 0; }
.patient-portal .table thead th { border-bottom: 1px solid rgba(11,45,77,.1); background: rgba(234,244,255,.72); color: var(--color-primary); font-size: .72rem; font-weight: 950; letter-spacing: .06em; text-transform: uppercase; }
.patient-portal .table tbody td { color: var(--color-text); vertical-align: middle; }
.patient-portal .table tbody tr:last-child td { border-bottom: 0; }
.patient-portal .badge { border: 1px solid rgba(11,45,77,.08); border-radius: 999px; font-weight: 850; }
.patient-portal form .form-control, .patient-portal form .form-select { background: rgba(255,255,255,.92); }
.patient-portal textarea.form-control { min-height: 140px; }

.admin-console {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 5%, rgba(20,93,160,.12), transparent 25rem),
    radial-gradient(circle at 92% 12%, rgba(185,138,66,.1), transparent 27rem),
    linear-gradient(180deg, #f5f8fb, #fff 48%, #eef5fb);
}
.admin-console::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(11,45,77,.034) 1px, transparent 1px), linear-gradient(90deg, rgba(11,45,77,.034) 1px, transparent 1px); background-size: 64px 64px; pointer-events: none; }
.admin-console > .container-xl { position: relative; z-index: 1; }
.admin-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.2rem;
  align-items: start;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: clamp(1.4rem, 3vw, 2.4rem);
  background:
    radial-gradient(circle at 82% 20%, rgba(185,138,66,.2), transparent 18rem),
    linear-gradient(135deg, #061523, #0b2d4d 72%, #123f68);
  color: var(--color-white);
  box-shadow: 0 30px 90px rgba(7,27,47,.2);
  padding: clamp(1.35rem, 4vw, 2.4rem);
}
.admin-hero .eyebrow { color: var(--color-accent) !important; margin-bottom: .55rem; }
.admin-hero h1 { margin: 0; color: var(--color-white); font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(2.45rem, 5vw, 4.2rem); line-height: .92; letter-spacing: -.045em; }
.admin-hero p { max-width: 760px; margin: .9rem 0 0; color: rgba(255,255,255,.72); font-size: 1rem; line-height: 1.7; }
.admin-hero .btn-outline-soft { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.26) !important; color: var(--color-white) !important; }
.admin-hero .btn-outline-soft:hover { background: var(--color-white); color: var(--color-primary) !important; }
.admin-hero-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; margin-top: 1.35rem; max-width: 900px; }
.admin-hero-meta span { display: grid; gap: .15rem; border: 1px solid rgba(255,255,255,.12); border-radius: 1rem; background: rgba(255,255,255,.08); padding: .85rem .95rem; color: rgba(255,255,255,.72); font-size: .72rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.admin-hero-meta strong { color: var(--color-white); font-size: 1.42rem; line-height: 1; letter-spacing: -.03em; }
.admin-console .alert { border: 1px solid rgba(11,45,77,.1); border-radius: 1rem; box-shadow: 0 12px 30px rgba(7,27,47,.055); }
.admin-nav { display: flex; gap: .5rem; overflow-x: auto; border: 1px solid rgba(11,45,77,.09); border-radius: 1.2rem; background: rgba(255,255,255,.78); box-shadow: 0 16px 38px rgba(7,27,47,.06); padding: .5rem; scrollbar-width: thin; }
.admin-nav .btn { flex: 0 0 auto; border-radius: 999px; box-shadow: none; }
.admin-console .service-grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .85rem; }
.admin-console .service-card, .admin-console .card-soft {
  border-color: rgba(11,45,77,.1);
  background: rgba(255,255,255,.88);
  box-shadow: 0 16px 42px rgba(7,27,47,.075);
  backdrop-filter: blur(14px);
}
.admin-console .service-card {
  position: relative;
  min-height: 176px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: .45rem;
  padding: 1.05rem 1.1rem;
}
.admin-console .service-card::before { content: ""; position: absolute; inset: 0 0 auto; height: .2rem; background: linear-gradient(90deg, var(--color-secondary), var(--color-accent)); opacity: .8; }
.admin-console .service-card .service-card-label {
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-accent);
}
.admin-console .service-card h3, .admin-console .card-soft h2 { color: var(--color-primary) !important; font-weight: 950; }
.admin-console .service-card h3 { margin: 0; font-size: 1.08rem; }
.admin-console .service-card p { margin: 0; color: var(--color-muted); line-height: 1.6; }
.admin-console .service-card a { margin-top: auto; width: max-content; font-weight: 800; color: var(--color-secondary); }
.admin-console .card-soft h2 { margin-bottom: .85rem; }
.admin-dashboard-overview { display: flex; flex-direction: column; gap: 1rem; }
.admin-dashboard-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.admin-dashboard-section-header.compact { margin-bottom: .25rem; }
.admin-dashboard-section-header .eyebrow { margin-bottom: .3rem; }
.admin-dashboard-section-header h2 { margin: 0; }
.admin-dashboard-section-header .muted { margin: 0; }
.admin-dashboard-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .35rem .7rem;
  border-radius: 999px;
  background: rgba(11,45,77,.08);
  color: var(--color-primary);
  font-size: .76rem;
  font-weight: 800;
  white-space: nowrap;
}
.admin-dashboard-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, .9fr);
  gap: 1rem;
  align-items: start;
}
.dashboard-priority-list { display: grid; gap: .7rem; }
.dashboard-priority-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .8rem;
  padding: .9rem .95rem;
  border: 1px solid rgba(11,45,77,.08);
  border-radius: 1rem;
  background: linear-gradient(90deg, rgba(234,244,255,.75), rgba(255,255,255,.95));
  color: var(--color-primary);
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease;
}
.dashboard-priority-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(7,27,47,.08);
}
.dashboard-priority-item strong { display: block; font-size: .95rem; }
.dashboard-priority-item span { display: block; font-size: .82rem; color: var(--color-muted); }
.admin-console .table-responsive { border: 1px solid rgba(11,45,77,.08); border-radius: 1rem; background: var(--color-white); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.admin-console .table { margin: 0; }
.admin-console .table thead th { border-bottom: 1px solid rgba(11,45,77,.1); background: rgba(234,244,255,.72); color: var(--color-primary); font-size: .72rem; font-weight: 950; letter-spacing: .06em; text-transform: uppercase; }
.admin-console .table tbody td { color: var(--color-text); vertical-align: middle; }
.admin-console .table tbody tr:last-child td { border-bottom: 0; }
.admin-console .badge { border: 1px solid rgba(11,45,77,.08); border-radius: 999px; font-weight: 850; }
.admin-console form .form-control, .admin-console form .form-select { background: rgba(255,255,255,.94); }
.admin-console textarea.form-control { min-height: 140px; }
.admin-console pre, .admin-console code { border-radius: .85rem; }

.reviews-carousel { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 1rem; align-items: center; margin-top: 2rem; }
.reviews-pages { overflow: hidden; }
.review-page { display: none; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.review-page.active { display: grid; }
.testimonial-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.review-card, .testimonial-card { min-height: 190px; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-white); box-shadow: 0 12px 30px rgba(11,45,77,.06); padding: 1.25rem; }
.review-card p, .testimonial-card p { color: var(--color-text); line-height: 1.7; }
.review-card strong, .testimonial-card strong { display: block; color: var(--color-primary); }
.review-card small, .testimonial-card small { color: var(--color-muted); }
.stars { color: var(--color-secondary); letter-spacing: .14em; }
.carousel-nav { width: 44px; height: 44px; border: 1px solid var(--color-border); border-radius: 50%; background: var(--color-white); color: var(--color-primary); font-size: 1.8rem; box-shadow: 0 10px 24px rgba(11,45,77,.07); }
.carousel-dots { display: flex; justify-content: center; gap: .45rem; margin-top: 1rem; }
.carousel-dots button { width: .48rem; height: .48rem; border: 0; border-radius: 50%; background: rgba(20,93,160,.24); }
.carousel-dots button.active { background: var(--color-secondary); }

.contact-cta { background: var(--color-white); }
.contact-cta-card { display: flex; justify-content: space-between; align-items: center; gap: 2rem; border-radius: var(--radius-xl); background: var(--color-primary); color: var(--color-white); padding: clamp(1.5rem, 4vw, 2.5rem); }
.contact-cta-card .section-kicker, .contact-cta-card h2 { color: var(--color-white) !important; }
.contact-cta-card h2 { margin: 0 0 .6rem; font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(2rem, 4vw, 3.25rem); line-height: .98; letter-spacing: -.035em; }
.contact-cta-card .section-kicker::before { background: var(--color-white); }
.contact-cta-card p { color: rgba(255,255,255,.76); }
.contact-cta-card .btn-primary-soft { background: var(--color-white) !important; border-color: var(--color-white) !important; color: var(--color-primary) !important; box-shadow: none; }

.landing-footer { background: var(--color-primary); color: var(--color-white); overflow: hidden; }
.landing-footer-grid { display: grid; grid-template-columns: minmax(230px, 1.2fr) repeat(4, minmax(145px, .8fr)); gap: clamp(1.4rem, 3vw, 2.5rem); align-items: start; }
.footer-brand-mark { display: flex; align-items: center; gap: .78rem; }
.footer-brand-mark .brand-logo-mark { width: 3rem; height: 3rem; flex-basis: 3rem; }
.footer-brand-mark strong { display: block; color: var(--color-white); font-size: 1.06rem; font-weight: 900; line-height: 1; }
.footer-brand-mark small { display: block; color: rgba(255,255,255,.7); font-size: .72rem; margin-top: .28rem; }
.landing-footer h3 { color: var(--color-white); font-size: .92rem; font-weight: 900; margin-bottom: .85rem; }
.landing-footer p, .footer-links a, .footer-links span { color: rgba(255,255,255,.72); font-size: .88rem; line-height: 1.55; }
.footer-links { display: grid; gap: .5rem; }
.footer-links a:hover { color: var(--color-white); }
.footer-payment-seal { display: inline-grid; gap: .1rem; border: 1px solid rgba(255,255,255,.18); border-radius: .7rem; margin-top: 1rem; padding: .65rem .8rem; }
.footer-payment-seal span { color: var(--color-white); font-weight: 950; text-transform: lowercase; }
.footer-payment-seal small { color: rgba(255,255,255,.65); font-size: .72rem; }
.footer-bottom { width: min(1320px, calc(100% - 2rem)); margin: 0 auto; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.62); font-size: .78rem; padding: 1.1rem 0 1.3rem; text-align: center; }
.floating-whatsapp { position: fixed; right: clamp(1rem, 2.4vw, 1.6rem); bottom: clamp(1rem, 2.4vw, 1.6rem); z-index: 90; width: 3.35rem; height: 3.35rem; display: grid; place-items: center; border-radius: 999px; background: var(--color-secondary); color: var(--color-white); border: 1px solid rgba(255,255,255,.18); box-shadow: 0 18px 44px rgba(11,45,77,.24); }
.floating-whatsapp svg { width: 1.45rem; height: 1.45rem; fill: currentColor; }
.floating-whatsapp:hover { transform: translateY(-2px); background: var(--color-primary); color: var(--color-white); }

@media (max-width: 1199px) {
  .landing-header nav { grid-template-columns: auto auto; }
  .nav-links { grid-column: 1 / -1; grid-row: 2; justify-content: center; padding-top: .55rem; }
  .header-actions { justify-self: end; }
  .onepage-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(320px, .78fr); }
  .hero-floating-card-top { left: .8rem; }
  .hero-floating-card-bottom { right: .8rem; }
  .modal-service-grid, .service-grid, .schedule-steps-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landing-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
  .onepage-hero-grid, .about-onepage { grid-template-columns: 1fr; min-height: auto; }
  .onepage-hero-copy { padding-bottom: 1rem; }
  .hero-portrait-shell { justify-self: start; width: min(100%, 520px); aspect-ratio: 16 / 11; }
  .hero-scroll-cue { display: none; }
  .proof-strip-grid { grid-template-columns: 1fr; }
  .proof-strip-grid span { justify-content: flex-start; border-left: 0 !important; border-bottom: 1px solid rgba(255,255,255,.11); }
  .proof-strip-grid span:last-child { border-bottom: 0; }
  .about-photo-card { max-width: 420px; }
  .method-grid { grid-template-columns: 1fr; }
  .method-copy { position: static; }
  .patient-hero { grid-template-columns: 1fr; }
  .admin-hero { grid-template-columns: 1fr; }
  .admin-hero-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-dashboard-content-grid { grid-template-columns: 1fr; }
  .review-page { grid-template-columns: 1fr; }
  .contact-cta-card { display: grid; }
}

@media (max-width: 767px) {
  .container-xl, .container { width: min(100% - 1.5rem, var(--container)); }
  .landing-header nav { display: grid; grid-template-columns: minmax(0, 1fr) 2.6rem; align-items: center; gap: .65rem .5rem; min-height: 66px; }
  .professional-brand { grid-column: 1; min-width: 0; }
  .brand-logo-mark { width: 2.55rem; height: 2.55rem; flex-basis: 2.55rem; }
  .brand-copy strong { font-size: 1rem; }
  .brand-copy small { font-size: .58rem; }
  .mobile-menu-toggle { grid-column: 2; justify-self: end; display: inline-block; margin-left: 0; }
  .header-actions { grid-column: 1 / -1; width: 100%; max-width: 100%; display: grid; grid-template-columns: 1fr; gap: .55rem; min-width: 0; }
  .header-cta, .login-toggle { width: 100%; min-width: 0; padding-inline: .75rem; }
  .nav-links { grid-column: 1 / -1; position: absolute; left: .75rem; right: .75rem; top: calc(100% + .35rem); display: none; flex-direction: column; align-items: stretch; gap: .15rem; border: 1px solid var(--color-border); border-radius: .95rem; background: var(--color-white); box-shadow: var(--shadow-card); padding: .75rem; z-index: 95; }
  .nav-links.is-open { display: flex; }
  .nav-links a { padding: .85rem .9rem; border-radius: .68rem; }
  .nav-links a:hover { background: var(--color-blue-soft); }
  .login-menu { right: 0; width: 100%; }
  .login-entry { width: 100%; }
  .onepage-kicker { font-size: .7rem; letter-spacing: .06em; overflow-wrap: anywhere; line-height: 1.45; }
  .section, .onepage-section { padding: 3.2rem 0; }
  .onepage-hero-grid { gap: .75rem; padding-bottom: 2.4rem; }
  .onepage-hero h1 { font-size: clamp(2.35rem, 11.8vw, 3.35rem); letter-spacing: -.045em; line-height: 1; }
  .onepage-hero p:not(.onepage-kicker) { font-size: .98rem; }
  .hero-trust-grid { grid-template-columns: 1fr; }
  .hero-trust-grid span { min-height: auto; grid-template-columns: auto 1fr; align-items: center; }
  .hero-actions .btn { width: 100%; }
  .hero-portrait-shell { aspect-ratio: 1 / 1; }
  .hero-floating-card { max-width: calc(100% - 2rem); padding: .7rem .82rem; }
  .hero-floating-card-top { top: .8rem; left: .8rem; }
  .hero-floating-card-bottom { right: .8rem; bottom: .8rem; }
  .method-step { grid-template-columns: 1fr; }
  .method-step span { grid-row: auto; font-size: 2.1rem; }
  .patient-hero-meta { grid-template-columns: 1fr; }
  .patient-nav { border-radius: 1.1rem; }
  .patient-nav .btn { padding-inline: .9rem; }
  .admin-hero-meta { grid-template-columns: 1fr; }
  .admin-nav { border-radius: 1.1rem; }
  .admin-nav .btn { padding-inline: .9rem; }
  .modal-service-grid, .service-grid, .schedule-steps-grid, .landing-footer-grid { grid-template-columns: 1fr; }
  .service-modal-card { min-height: auto; }
  .service-options-list { max-height: none; overflow: visible; padding-right: 0; }
  .compact-slots, .compact-slots.is-loading { min-height: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reviews-carousel { grid-template-columns: 36px minmax(0, 1fr) 36px; gap: .55rem; }
  .payment-modal-summary p { grid-template-columns: 1fr; gap: .1rem; }
  .payment-modal-summary strong { text-align: left; }
  .order-status-grid { grid-template-columns: 1fr; }
  .floating-whatsapp { width: 3rem; height: 3rem; right: 1rem; bottom: 1rem; }
}

@media (max-width: 430px) {
  .compact-slots, .compact-slots.is-loading { grid-template-columns: 1fr; }
  .pix-copy-row { grid-template-columns: 1fr; }
}

@media print {
  @page { size: A4; margin: 18mm 16mm 20mm; }
  html, body { background: #fff !important; color: #102033 !important; font-size: 11.5pt; }
  body { overflow: visible !important; }
  .site-header, .landing-header, .site-footer, .floating-whatsapp, .print-toolbar { display: none !important; }
  .section, .onepage-section, .document-print-section { padding: 0 !important; background: #fff !important; }
  .container, .container-xl, .narrow { width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
  .psychological-document { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important; }
  .document-header { margin-bottom: 18pt; padding-bottom: 10pt; }
  .document-title { font-size: 18pt !important; }
  .document-meta-wrap { overflow: visible !important; }
  .document-meta th, .document-meta td { border-color: #DDE8F3 !important; padding: 5pt 6pt !important; }
  .document-body { min-height: 0; font-size: 11.5pt; line-height: 1.7; }
  .document-validation-box { background: #fff !important; break-inside: avoid; }
  .document-signature, .document-footer { break-inside: avoid; }
  a[href]::after { content: "" !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* ========================================================================== */
/* FASE 1 — REFINAMENTO VISUAL PREMIUM                                        */
/* Escopo: identidade visual, responsividade, cards, ícones e experiência      */
/* pública. Não altera backend, rotas, data-attributes, names ou ids.          */
/* ========================================================================== */
:root {
  --color-primary: #082B49;
  --color-secondary: #1261A6;
  --color-accent: #C59A4A;
  --color-blue-soft: #EAF4FF;
  --color-warm: #F3F7FB;
  --color-sage: #E4EEF6;
  --color-ivory: #F8FBFE;
  --color-ink: #061A2E;
  --color-white: #FFFFFF;
  --color-ice: #F4F8FC;
  --color-soft: #F6FAFD;
  --color-text: #102033;
  --color-muted: #617084;
  --color-border: #D9E7F2;
  --shadow-soft: 0 30px 90px rgba(6, 26, 46, .12);
  --shadow-card: 0 20px 52px rgba(6, 26, 46, .105);
  --radius-xl: 30px;
  --radius-lg: 22px;
  --radius-md: 16px;
}

body {
  background: var(--color-ivory);
  color: var(--color-text);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.section, .onepage-section { padding: clamp(4.2rem, 7.6vw, 7.2rem) 0; }
.section-title, .onepage-hero h1 { text-wrap: balance; }
.text-content { max-width: 760px; }

/* Botões mais premium e intuitivos */
.btn {
  border-radius: 999px;
  min-height: 2.9rem;
  padding: .92rem 1.25rem;
  letter-spacing: -.01em;
}
.btn-primary-soft {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #061A2E 0%, #082B49 54%, #1261A6 100%) !important;
  border-color: rgba(255,255,255,.1) !important;
  box-shadow: 0 16px 34px rgba(8, 43, 73, .22);
}
.btn-primary-soft::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  transform: translateX(-130%);
  transition: transform .48s ease;
}
.btn-primary-soft:hover::after { transform: translateX(130%); }
.btn-outline-soft {
  background: rgba(255,255,255,.72) !important;
  border-color: rgba(8,43,73,.18) !important;
  color: var(--color-primary) !important;
  box-shadow: 0 10px 28px rgba(8,43,73,.055);
}
.btn-outline-soft:hover { background: var(--color-blue-soft) !important; transform: translateY(-1px); }

/* Header com marca mais clara e CTA mais limpo */
.site-header, .landing-header {
  background: rgba(248, 251, 254, .88);
  border-bottom: 1px solid rgba(217, 231, 242, .9);
  box-shadow: 0 12px 32px rgba(6, 26, 46, .055);
}
.landing-header nav {
  min-height: 74px;
  grid-template-columns: minmax(260px, auto) minmax(0, 1fr) auto;
  gap: clamp(.9rem, 2vw, 2rem);
}
.professional-brand:hover { color: var(--color-primary); transform: translateY(-1px); }
.brand-logo-mark {
  width: 3rem;
  height: 3rem;
  flex: 0 0 3rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(8,43,73,.1);
  border-radius: 1rem;
  background: linear-gradient(180deg, #fff, #eff7ff);
  box-shadow: 0 12px 26px rgba(8,43,73,.08);
  -webkit-mask: none !important;
  mask: none !important;
  color: inherit;
  overflow: hidden;
}
.brand-logo-mark img { width: 82%; height: 82%; object-fit: contain; display: block; }
.brand-logo-mark-white {
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.09);
  box-shadow: none;
}
.brand-copy strong { color: var(--color-primary) !important; letter-spacing: -.045em; }
.brand-copy small { color: #62748A; }
.nav-links { gap: clamp(.7rem, 1.55vw, 1.25rem); }
.nav-links a {
  position: relative;
  color: #24354A;
  font-size: .89rem;
  font-weight: 800;
  padding: .52rem .18rem;
}
.nav-links a::after {
  content: "";
  position: absolute;
  left: .18rem;
  right: .18rem;
  bottom: .22rem;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--color-accent), var(--color-secondary));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s ease;
}
.nav-links a:hover::after { transform: scaleX(1); }
.header-actions { gap: .55rem; }
.header-cta, .login-toggle { min-height: 2.5rem; padding: .72rem 1.05rem; }
.login-menu { border-color: rgba(8,43,73,.12); border-radius: 1rem; padding: .6rem; }
.login-menu a { display: flex; align-items: center; justify-content: space-between; }
.login-menu a::after { content: "→"; color: var(--color-accent); }

/* Hero: mais limpo, azul/branco e menos carregado */
.phase1-hero, .onepage-hero {
  background:
    radial-gradient(circle at 78% 22%, rgba(18, 97, 166, .13), transparent 30rem),
    radial-gradient(circle at 15% 78%, rgba(197, 154, 74, .10), transparent 28rem),
    linear-gradient(118deg, #FFFFFF 0%, #F8FBFE 45%, #EAF4FF 100%);
  border-bottom: 1px solid rgba(8,43,73,.08);
}
.onepage-hero::before { opacity: .6; border-color: rgba(8,43,73,.065); }
.onepage-hero::after {
  background-size: 96px 96px;
  opacity: .42;
  -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,.95), transparent 72%);
  mask-image: linear-gradient(90deg, rgba(0,0,0,.95), transparent 72%);
}
.hero-atmosphere::before { background: radial-gradient(circle, rgba(18,97,166,.14), transparent 68%); }
.onepage-hero-grid {
  min-height: clamp(640px, calc(100vh - 78px), 790px);
  grid-template-columns: minmax(0, 1.02fr) minmax(340px, .72fr);
}
.onepage-hero-copy { padding-block: clamp(3.8rem, 7vw, 5.7rem); }
.onepage-kicker {
  color: var(--color-primary);
  background: rgba(255,255,255,.76);
  border-color: rgba(8,43,73,.11);
  box-shadow: 0 14px 34px rgba(8,43,73,.055);
}
.onepage-hero h1 {
  max-width: 820px;
  color: var(--color-ink);
  font-size: clamp(3.25rem, 6.6vw, 6.1rem);
  line-height: .91;
}
.onepage-hero p:not(.onepage-kicker) { color: rgba(16,32,51,.73); }
.hero-trust-grid { max-width: 760px; }
.hero-trust-grid span {
  min-height: 92px;
  border-color: rgba(8,43,73,.1);
  background: rgba(255,255,255,.68);
  color: rgba(16,32,51,.76);
  box-shadow: 0 18px 42px rgba(8,43,73,.06);
}
.hero-trust-grid strong { color: var(--color-accent); }
.hero-portrait-shell {
  width: min(100%, 500px);
  border-radius: clamp(1.6rem, 3.7vw, 3rem);
  border-color: rgba(255,255,255,.88);
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(234,244,255,.86));
  box-shadow: 0 38px 100px rgba(8,43,73,.20);
}
.hero-portrait-shell::after { border-color: rgba(255,255,255,.70); }
.hero-portrait-shell img { filter: saturate(.98) contrast(1.02); }
.hero-floating-card {
  border-color: rgba(255,255,255,.46);
  border-radius: 1.1rem;
  background: rgba(6,26,46,.78);
  box-shadow: 0 22px 54px rgba(6,26,46,.22);
}
.hero-floating-card-bottom { background: rgba(255,255,255,.88); color: var(--color-primary); }
.hero-scroll-cue { color: rgba(8,43,73,.56); }

/* Pilares com leitura mais intuitiva */
.proof-strip { background: linear-gradient(135deg, #061A2E, #082B49 70%, #0D4678); }
.proof-strip-grid { min-height: 88px; }
.proof-strip-grid span { justify-content: flex-start; text-align: left; }
.proof-strip-grid span::before { display: none; }
.proof-strip-grid strong {
  width: 2.55rem;
  height: 2.55rem;
  flex: 0 0 2.55rem;
  display: grid;
  place-items: center;
  border: 1px solid rgba(197,154,74,.55);
  border-radius: 50%;
  color: #FFE7AC;
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .08em;
}

/* Sobre em duas colunas, com selo profissional */
#sobre, .phase1-about { background: linear-gradient(180deg, #FFFFFF, #F8FBFE) !important; }
.about-onepage {
  grid-template-columns: minmax(260px, 420px) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
}
.about-photo-card { border-color: rgba(8,43,73,.1); background: #fff; box-shadow: var(--shadow-card); }
.about-photo-card img { aspect-ratio: .92 / 1.02; }
.about-photo-card figcaption {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: 3;
  display: flex;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 999px;
  background: rgba(6,26,46,.72);
  color: #fff;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .7rem .9rem;
  backdrop-filter: blur(16px);
}
.about-copy .compact-checks {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  margin-top: 1.55rem;
}
.compact-checks span, .check-grid span {
  border-color: rgba(8,43,73,.09);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(8,43,73,.045);
  padding: .78rem .95rem;
  font-size: .88rem;
}
.compact-checks span::before, .check-grid span::before {
  width: .48rem;
  height: .48rem;
  flex-basis: .48rem;
  margin-top: .5rem;
  background: linear-gradient(135deg, var(--color-accent), #E7C879);
}

/* Método: alto contraste, porém mais refinado */
.method-section { background: linear-gradient(135deg, #061A2E, #082B49 68%, #0E548E); }
.method-step {
  border-color: rgba(255,255,255,.14);
  background: linear-gradient(135deg, rgba(255,255,255,.13), rgba(255,255,255,.055));
}
.method-step span { color: #E7C879; }

/* Cards e ícones: mais intuitivos */
.services-onepage { background: linear-gradient(180deg, #F8FBFE, #FFFFFF); }
.modal-service-grid, .service-grid { gap: 1.05rem; }
.service-card, .service-modal-card, .card-soft, .legal-card, .checkout-card {
  border-color: rgba(8,43,73,.1);
  background: linear-gradient(180deg, #FFFFFF, #F7FBFF);
  box-shadow: 0 14px 36px rgba(6,26,46,.06);
}
.service-modal-card {
  min-height: 304px;
  border-radius: 1.35rem;
  padding: 1.45rem;
}
.service-modal-card::before {
  height: .28rem;
  background: linear-gradient(90deg, var(--color-secondary), var(--color-accent));
}
.service-modal-card:hover {
  transform: translateY(-5px);
  border-color: rgba(18,97,166,.32);
  box-shadow: 0 26px 58px rgba(6,26,46,.12);
}
.service-modal-card small {
  background: #EDF6FF;
  border-color: rgba(18,97,166,.16);
  color: var(--color-secondary);
}
.service-modal-card em {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: #6A5940;
  background: rgba(197,154,74,.12);
  border-radius: 999px;
  font-size: .76rem;
  font-style: normal;
  font-weight: 850;
  padding: .42rem .62rem;
}
.service-modal-card em::before { content: "✓"; color: var(--color-accent); font-weight: 950; }
.service-card h3, .service-modal-card h3 { color: var(--color-primary) !important; font-size: 1.08rem; }
.service-card p, .service-modal-card p { color: var(--color-muted); }
.service-card a, .service-modal-card button {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  color: var(--color-secondary);
  font-weight: 950;
}
.service-modal-card button::after { content: "→"; transition: transform .18s ease; }
.service-modal-card button:hover::after { transform: translateX(3px); }

.line-icon {
  width: 2.65rem;
  height: 2.65rem;
  flex: 0 0 2.65rem;
  display: inline-block;
  border: 1px solid rgba(18,97,166,.18);
  border-radius: 1rem;
  color: var(--color-secondary);
  background: linear-gradient(180deg, #F5FBFF, #EAF4FF);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 12px 24px rgba(8,43,73,.07);
  position: relative;
}
.line-icon::before, .line-icon::after { content: ""; position: absolute; border-color: currentColor; }
.icon-therapy { border-radius: 1rem; }
.icon-therapy::before { left: .72rem; top: .78rem; width: .48rem; height: .48rem; border: 2px solid currentColor; border-radius: 50%; box-shadow: .72rem .42rem 0 -.01rem #EAF4FF, .72rem .42rem 0 .11rem currentColor; }
.icon-therapy::after { left: .66rem; right: .66rem; bottom: .7rem; height: .72rem; border: 2px solid currentColor; border-radius: 50% 50% 0 0; border-bottom: 0; }
.icon-clipboard::before, .icon-document::before { inset: .62rem .72rem .54rem; border: 2px solid currentColor; border-radius: .32rem; }
.icon-clipboard::after, .icon-document::after { left: .96rem; right: .96rem; top: .48rem; height: .38rem; border: 2px solid currentColor; border-radius: .22rem; background: #fff; }
.icon-target::before { inset: .58rem; border: 2px solid currentColor; border-radius: 50%; }
.icon-target::after { left: 50%; top: 50%; width: .5rem; height: .5rem; border: 0; border-radius: 50%; background: currentColor; transform: translate(-50%, -50%); box-shadow: 0 0 0 .28rem #EAF4FF, 0 0 0 .42rem currentColor; }
.icon-briefcase::before { left: .56rem; right: .56rem; bottom: .62rem; height: 1.18rem; border: 2px solid currentColor; border-radius: .28rem; }
.icon-briefcase::after { left: 1.04rem; right: 1.04rem; top: .58rem; height: .42rem; border: 2px solid currentColor; border-bottom: 0; border-radius: .35rem .35rem 0 0; }
.icon-online::before { left: .55rem; right: .55rem; top: .66rem; height: 1.12rem; border: 2px solid currentColor; border-radius: .28rem; }
.icon-online::after { left: .92rem; right: .92rem; bottom: .55rem; height: 2px; background: currentColor; border: 0; box-shadow: 0 .28rem 0 currentColor; }
.icon-office::before { left: .62rem; right: .62rem; bottom: .58rem; height: 1.5rem; border: 2px solid currentColor; border-radius: .18rem .18rem .3rem .3rem; }
.icon-office::after { left: .94rem; top: .82rem; width: .18rem; height: .18rem; background: currentColor; border: 0; box-shadow: .42rem 0 0 currentColor, .84rem 0 0 currentColor, 0 .42rem 0 currentColor, .42rem .42rem 0 currentColor, .84rem .42rem 0 currentColor; }
.icon-couple::before { left: .62rem; top: .68rem; width: .52rem; height: .52rem; border: 2px solid currentColor; border-radius: 50%; box-shadow: .86rem 0 0 -.02rem #EAF4FF, .86rem 0 0 .1rem currentColor; }
.icon-couple::after { left: .52rem; right: .52rem; bottom: .64rem; height: .62rem; border: 2px solid currentColor; border-radius: 50% 50% 0 0; border-bottom: 0; }

/* Agendamento com leitura em duas áreas: seleção + resumo */
.schedule-onepage {
  background:
    radial-gradient(circle at 10% 8%, rgba(197,154,74,.10), transparent 24rem),
    radial-gradient(circle at 92% 12%, rgba(18,97,166,.10), transparent 30rem),
    linear-gradient(180deg, #F4F8FC, #FFFFFF);
}
.schedule-shell {
  border-color: rgba(8,43,73,.1);
  background: rgba(255,255,255,.88);
  box-shadow: 0 30px 90px rgba(6,26,46,.11);
}
.schedule-head { margin-bottom: 2rem; }
.schedule-head .section-title { max-width: 820px; margin-inline: auto; }
.schedule-steps-grid {
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, .82fr);
  grid-template-areas:
    "service summary"
    "date summary"
    "time summary";
  gap: 1rem 1.15rem;
}
.service-step { grid-area: service; }
.date-step { grid-area: date; }
.time-step { grid-area: time; }
.summary-step { grid-area: summary; position: sticky; top: 6.2rem; }
.schedule-step > strong { font-size: .92rem; }
.schedule-step > strong span {
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
  box-shadow: 0 10px 20px rgba(18,97,166,.16);
}
.service-options-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-height: none;
  overflow: visible;
  padding-right: 0;
}
.appointment-service {
  min-height: 74px;
  border-color: rgba(8,43,73,.1);
  border-radius: 1rem;
  background: rgba(255,255,255,.92);
}
.appointment-service:hover, .appointment-service.active {
  border-color: rgba(18,97,166,.42);
  background: linear-gradient(135deg, #FFFFFF, #EAF4FF);
  box-shadow: 0 14px 32px rgba(8,43,73,.07);
}
.appointment-service.active::after { border-color: var(--color-secondary); }
.appointment-service .line-icon { width: 2.15rem; height: 2.15rem; flex-basis: 2.15rem; border-radius: .78rem; }
.calendar-box, .summary-step {
  border-color: rgba(8,43,73,.1);
  background: rgba(255,255,255,.92);
}
.calendar-head button { background: #EDF6FF; }
.calendar-grid button { min-height: 2.12rem; }
.calendar-grid button:hover, .calendar-grid button.active,
.slot-button:hover, .slot-button.active {
  background: linear-gradient(135deg, var(--color-secondary), var(--color-primary));
  color: #fff;
}
.slot-button { border-color: rgba(8,43,73,.11); background: rgba(255,255,255,.96); }
.calendar-note { background: #EDF6FF; color: var(--color-primary); }
.summary-step {
  padding: 1.1rem;
  box-shadow: 0 18px 44px rgba(6,26,46,.095);
}
.summary-price strong { color: var(--color-secondary) !important; font-size: 1rem; }
.safe-note { display: block; border-radius: .9rem; background: #F3F8FD; padding: .72rem .82rem; }

/* Modais e formulários */
.service-dialog-card, .payment-dialog-card {
  border-color: rgba(8,43,73,.1);
  border-radius: 1.4rem;
}
.modal-close { background: #EDF6FF; }
.form-control, .form-select { border-color: rgba(8,43,73,.13); background: rgba(255,255,255,.96); }
.form-control:focus, .form-select:focus { border-color: var(--color-secondary); box-shadow: 0 0 0 .22rem rgba(18,97,166,.14); }

/* Página /agendamento */
.schedule-page-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(4.2rem, 7vw, 6.5rem) 0;
  background:
    radial-gradient(circle at 80% 18%, rgba(18,97,166,.12), transparent 30rem),
    linear-gradient(118deg, #fff, #F8FBFE 50%, #EAF4FF);
  border-bottom: 1px solid rgba(8,43,73,.08);
}
.schedule-page-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 390px);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
}
.schedule-page-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .75rem .85rem;
  border: 1px solid rgba(8,43,73,.1);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.78);
  box-shadow: var(--shadow-card);
  padding: 1.2rem;
  backdrop-filter: blur(12px);
}
.schedule-page-card span {
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-primary), var(--color-secondary));
  color: #fff;
  font-size: .78rem;
  font-weight: 900;
}
.schedule-page-card strong { align-self: center; color: var(--color-primary); font-size: .92rem; }
.schedule-page-section { background: #fff; }
.schedule-page-grid {
  display: grid;
  grid-template-columns: minmax(260px, .62fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.schedule-page-copy { position: sticky; top: 6.5rem; }
.schedule-page-notes { display: grid; gap: .7rem; margin-top: 1.3rem; }
.schedule-page-notes span {
  display: flex;
  gap: .6rem;
  align-items: center;
  border: 1px solid rgba(8,43,73,.1);
  border-radius: 999px;
  background: #F8FBFE;
  color: var(--color-primary);
  font-size: .86rem;
  font-weight: 800;
  padding: .72rem .9rem;
}
.schedule-page-notes span::before { content: "✓"; color: var(--color-accent); font-weight: 950; }
.schedule-page-form { padding: clamp(1.1rem, 3vw, 1.6rem); }

/* Avaliações, CTA e footer */
.review-card { border-color: rgba(8,43,73,.1); background: #fff; }
.stars { color: var(--color-accent); }
.carousel-nav { border-color: rgba(8,43,73,.1); }
.contact-cta { background: #fff; }
.contact-cta-card {
  background:
    radial-gradient(circle at 88% 20%, rgba(197,154,74,.18), transparent 18rem),
    linear-gradient(135deg, #061A2E, #082B49 70%, #0E548E);
  box-shadow: 0 26px 70px rgba(6,26,46,.18);
}
.landing-footer {
  background:
    radial-gradient(circle at 0% 0%, rgba(18,97,166,.22), transparent 25rem),
    linear-gradient(135deg, #061A2E, #082B49 72%, #06345B);
}
.landing-footer-grid { grid-template-columns: minmax(240px, 1.15fr) repeat(4, minmax(145px, .8fr)); }
.footer-payment-seal { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.06); }
.floating-whatsapp {
  background: linear-gradient(135deg, #128C7E, #25D366);
  box-shadow: 0 18px 44px rgba(18,140,126,.28);
}
.floating-whatsapp:hover { background: linear-gradient(135deg, #0E6F64, #128C7E); }

/* Responsividade refinada */
@media (max-width: 1199px) {
  .landing-header nav { grid-template-columns: minmax(240px, auto) auto; }
  .nav-links { grid-column: 1 / -1; justify-content: center; }
  .schedule-steps-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "service service"
      "date time"
      "summary summary";
  }
  .summary-step { position: static; }
  .service-options-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
  .onepage-hero-grid, .about-onepage, .method-grid, .schedule-page-hero-grid, .schedule-page-grid {
    grid-template-columns: 1fr;
  }
  .onepage-hero-copy { padding-bottom: .6rem; }
  .hero-portrait-shell { justify-self: center; width: min(100%, 520px); aspect-ratio: 16 / 11; }
  .about-photo-card { max-width: 430px; }
  .schedule-page-copy { position: static; }
}

@media (max-width: 767px) {
  html { scroll-padding-top: 82px; }
  .container-xl, .container { width: min(100% - 1.25rem, var(--container)); }
  .landing-header nav {
    grid-template-columns: minmax(0, 1fr) 2.6rem;
    min-height: 66px;
  }
  .brand-logo-mark { width: 2.55rem; height: 2.55rem; flex-basis: 2.55rem; border-radius: .82rem; }
  .header-actions {
    grid-column: 1 / -1;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }
  .login-entry { width: 100%; }
  .login-toggle, .header-cta { width: 100%; }
  .nav-links a::after { display: none; }
  .onepage-hero h1 { font-size: clamp(2.45rem, 12vw, 3.55rem); line-height: .98; }
  .onepage-kicker { max-width: 100%; }
  .hero-actions .btn { width: 100%; }
  .hero-trust-grid { grid-template-columns: 1fr; }
  .hero-trust-grid span { min-height: auto; }
  .hero-portrait-shell { aspect-ratio: 1 / 1; }
  .proof-strip-grid { grid-template-columns: 1fr; }
  .proof-strip-grid span { border-left: 0 !important; border-bottom: 1px solid rgba(255,255,255,.1); }
  .proof-strip-grid span:last-child { border-bottom: 0; }
  .modal-service-grid, .service-grid, .schedule-steps-grid, .landing-footer-grid { grid-template-columns: 1fr; }
  .schedule-steps-grid {
    grid-template-areas:
      "service"
      "date"
      "time"
      "summary";
  }
  .service-options-list { grid-template-columns: 1fr; }
  .compact-slots, .compact-slots.is-loading { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-page-card { grid-template-columns: auto 1fr; }
  .about-copy .compact-checks { grid-template-columns: 1fr; }
  .service-modal-card { min-height: auto; }
  .contact-cta-card { border-radius: 1.35rem; }
}

@media (max-width: 430px) {
  .header-actions { grid-template-columns: 1fr; }
  .compact-slots, .compact-slots.is-loading { grid-template-columns: 1fr; }
  .onepage-hero h1 { font-size: 2.38rem; }
  .section-title { font-size: 2.15rem; }
}

/* ========================================================================== */
/* FASE 1B — AJUSTES APÓS TESTE VISUAL                                        */
/* Corrige: excesso de espaço na primeira dobra, textos sobre a foto, agenda   */
/* próxima da versão anterior e ícones mais semânticos em SVG.                */
/* ========================================================================== */

/* Primeira dobra mais alta na intenção, mas sem vazio entre header e texto. */
html { scroll-padding-top: 82px; }
.phase1-hero, .onepage-hero {
  padding-top: 0;
  background:
    radial-gradient(circle at 78% 18%, rgba(18, 97, 166, .11), transparent 28rem),
    radial-gradient(circle at 12% 76%, rgba(197, 154, 74, .07), transparent 25rem),
    linear-gradient(118deg, #FFFFFF 0%, #F8FBFE 48%, #EAF4FF 100%);
}
.onepage-hero::before { opacity: .32; }
.onepage-hero::after { opacity: .24; }
.onepage-hero-grid {
  min-height: auto !important;
  padding-block: clamp(2.7rem, 4.8vw, 4.8rem) clamp(2.5rem, 4.6vw, 4.6rem);
  align-items: center;
}
.onepage-hero-copy { padding-block: 0 !important; }
.onepage-kicker {
  margin-top: 0;
  margin-bottom: .85rem;
  font-size: clamp(.64rem, .82vw, .72rem);
  letter-spacing: .105em;
}
.onepage-hero h1 {
  margin: .55rem 0 .95rem;
  font-size: clamp(3rem, 5.9vw, 5.55rem);
  line-height: .93;
}
.onepage-hero p:not(.onepage-kicker) { max-width: 690px; }
.hero-actions { margin-top: 1.35rem; }
.hero-trust-grid { margin-top: 1.45rem; }
.hero-trust-grid span { min-height: 84px; padding: .88rem .95rem; }
.hero-visual-premium { padding-block: 0; }
.hero-portrait-shell {
  width: min(100%, 470px);
  aspect-ratio: .92 / 1.02;
  overflow: hidden;
}
/* O degradê inferior e os cards flutuantes estavam poluindo e cortando texto. */
.hero-portrait-shell::before { display: none !important; }
.hero-floating-card { display: none !important; }
.hero-scroll-cue { display: none !important; }

/* Ícones SVG: mais claros e conectados ao significado de cada serviço. */
.line-icon {
  display: inline-grid !important;
  place-items: center;
  overflow: hidden;
}
.line-icon::before, .line-icon::after {
  content: none !important;
  display: none !important;
}
.line-icon svg {
  width: 1.58rem;
  height: 1.58rem;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.85;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.service-modal-card .line-icon {
  margin-top: .1rem;
  color: var(--color-primary);
  background:
    radial-gradient(circle at 72% 24%, rgba(197,154,74,.18), transparent 1.4rem),
    linear-gradient(180deg, #F7FBFF, #EAF4FF);
}
.service-modal-card:hover .line-icon { color: var(--color-secondary); transform: translateY(-1px); }
.appointment-service .line-icon svg { width: 1.25rem; height: 1.25rem; stroke-width: 1.9; }

/* Agenda: volta para leitura horizontal em 4 etapas, mais próxima da versão anterior. */
.schedule-onepage {
  background:
    radial-gradient(circle at 16% 10%, rgba(18,97,166,.08), transparent 25rem),
    linear-gradient(180deg, #F7FAFD, #FFFFFF);
}
.schedule-shell {
  padding: clamp(1rem, 2.2vw, 1.45rem);
  border-radius: 1.55rem;
  box-shadow: 0 20px 58px rgba(6,26,46,.09);
}
.schedule-head { margin-bottom: 1.55rem; }
.schedule-head .section-title { font-size: clamp(2.25rem, 4vw, 3.25rem); }
.schedule-steps-grid {
  display: grid;
  grid-template-columns: minmax(230px, .95fr) minmax(280px, 1fr) minmax(240px, .9fr) minmax(290px, 1fr) !important;
  grid-template-areas: "service date time summary" !important;
  gap: .95rem;
  align-items: start;
}
.service-step { grid-area: service; }
.date-step { grid-area: date; }
.time-step { grid-area: time; }
.summary-step {
  grid-area: summary;
  position: static !important;
  top: auto !important;
}
.service-options-list {
  display: grid;
  grid-template-columns: 1fr !important;
  gap: .62rem;
  max-height: none;
  overflow: visible;
}
.appointment-service {
  min-height: 64px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: .72rem;
}
.appointment-service .line-icon {
  width: 2rem;
  height: 2rem;
  flex-basis: 2rem;
  border-radius: .72rem;
}
.calendar-box { padding: .85rem; }
.calendar-grid button { min-height: 2rem; }
.compact-slots, .slot-grid { grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); min-height: 168px; }
.summary-step {
  padding: 1rem;
  border-radius: 1rem;
  background: linear-gradient(180deg, #FFFFFF, #F8FBFE);
}
.schedule-selection-summary p, .payment-modal-summary p { gap: .65rem; }
.safe-note { margin-top: .35rem; }

@media (max-width: 1199px) {
  .onepage-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr); gap: 2rem; }
  .schedule-steps-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-areas:
      "service service"
      "date time"
      "summary summary" !important;
  }
  .service-options-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 991px) {
  .onepage-hero-grid { padding-block: 2.4rem 3.1rem; }
  .onepage-hero h1 { font-size: clamp(2.85rem, 9vw, 4.4rem); }
  .hero-portrait-shell { width: min(100%, 520px); aspect-ratio: 16 / 11; }
}

@media (max-width: 767px) {
  .onepage-hero-grid { padding-block: 1.9rem 2.6rem; }
  .onepage-kicker { border-radius: .9rem; line-height: 1.35; }
  .hero-trust-grid { grid-template-columns: 1fr; }
  .schedule-steps-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "service"
      "date"
      "time"
      "summary" !important;
  }
  .service-options-list { grid-template-columns: 1fr !important; }
}

/* ========================================================= */
/* AJUSTES DE NAVEGAÇÃO INTERNA E ESPAÇAMENTO DAS SEÇÕES     */
/* ========================================================= */

/* Reduzi o espaço padrão de todas as seções principais */
.onepage-section,
.section {
  padding-top: clamp(2.4rem, 4vw, 3.6rem) !important;
  padding-bottom: clamp(2.8rem, 5vw, 4.6rem) !important;
}

/* Ajustes específicos de espaçamento para navegação interna */
#servicos,
#sobre,
#agendamento,
#avaliacoes,
#contato {
  padding-top: clamp(2rem, 3.4vw, 3rem) !important;
}

#inicio,
.onepage-hero {
  padding-top: 0 !important;
}

@media (max-width: 767px) {
  .onepage-section,
  .section {
    padding-top: 2.1rem !important;
    padding-bottom: 3rem !important;
  }

  #servicos,
  #sobre,
  #agendamento,
  #avaliacoes,
  #contato {
    padding-top: 1.8rem !important;
  }
}

/* ========================================================= */
/* AJUSTES MOBILE DOS CARDS                                  */
/* ========================================================= */

@media (max-width: 767px) {
  .section-heading,
  .text-content {
    max-width: 100%;
  }

  .services-onepage .modal-service-grid {
    gap: .85rem;
    margin-top: 1.15rem !important;
  }

  .services-onepage .service-modal-card {
    min-height: 0;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .45rem .8rem;
    align-items: start;
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 10px 28px rgba(6,26,46,.065);
  }

  .services-onepage .service-modal-card::before {
    inset: 0 auto 0 0;
    width: .25rem;
    height: auto;
    background: linear-gradient(180deg, var(--color-secondary), var(--color-accent));
  }

  .services-onepage .service-modal-card .line-icon {
    grid-row: 1 / span 3;
    width: 2.35rem;
    height: 2.35rem;
    flex-basis: 2.35rem;
    border-radius: .82rem;
  }

  .services-onepage .service-modal-card small,
  .services-onepage .service-modal-card h3 {
    grid-column: 2;
  }

  .services-onepage .service-modal-card small {
    max-width: 100%;
    white-space: normal;
    line-height: 1.2;
  }

  .services-onepage .service-modal-card h3 {
    font-size: 1rem;
    line-height: 1.25;
  }

  .services-onepage .service-modal-card p,
  .services-onepage .service-modal-card em,
  .services-onepage .service-modal-card button {
    grid-column: 1 / -1;
  }

  .services-onepage .service-modal-card p {
    font-size: .9rem;
    line-height: 1.52;
  }

  .services-onepage .service-modal-card button {
    width: 100%;
    min-height: 2.65rem;
    justify-content: center;
    border: 1px solid rgba(18,97,166,.16);
    border-radius: .78rem;
    background: #F5FBFF;
    margin-top: .2rem;
  }

  .schedule-onepage .schedule-shell {
    border-radius: 1.1rem;
    padding: .85rem;
  }

  .schedule-onepage .schedule-head {
    margin-bottom: 1.1rem;
  }

  .schedule-onepage .schedule-step {
    gap: .65rem;
  }

  .schedule-onepage .appointment-service,
  .schedule-onepage .calendar-box,
  .schedule-onepage .summary-step {
    border-radius: .95rem;
  }

  .schedule-onepage .appointment-service {
    min-height: 0;
    padding: .78rem;
  }

  .schedule-onepage .schedule-selection-summary p {
    grid-template-columns: 1fr;
    gap: .12rem;
    border-bottom: 1px solid rgba(8,43,73,.08);
    padding-bottom: .55rem;
  }

  .schedule-onepage .schedule-selection-summary p:last-child {
    border-bottom: 0;
    padding-bottom: 0;
  }

  .schedule-onepage .schedule-selection-summary strong {
    text-align: left;
  }

  .reviews-carousel {
    grid-template-columns: minmax(0, 1fr);
    gap: .8rem;
  }

  .reviews-pages {
    grid-column: 1;
    grid-row: 1;
  }

  .carousel-nav {
    grid-row: 2;
    width: 2.6rem;
    height: 2.6rem;
  }

  .carousel-nav[data-review-prev] {
    justify-self: start;
  }

  .carousel-nav[data-review-next] {
    justify-self: end;
  }

  .review-card,
  .testimonial-card {
    min-height: 0;
    border-radius: 1rem;
    padding: 1rem;
  }
}

@media (max-width: 430px) {
  .services-onepage .service-modal-card {
    grid-template-columns: 1fr;
  }

  .services-onepage .service-modal-card .line-icon,
  .services-onepage .service-modal-card small,
  .services-onepage .service-modal-card h3,
  .services-onepage .service-modal-card p,
  .services-onepage .service-modal-card em,
  .services-onepage .service-modal-card button {
    grid-column: 1;
    grid-row: auto;
  }

  .services-onepage .service-modal-card .line-icon {
    margin-bottom: .1rem;
  }

  .calendar-week,
  .calendar-grid {
    gap: .22rem;
  }

  .calendar-grid button {
    min-height: 2.2rem;
    height: auto;
    border-radius: .5rem;
  }
}

/* ========================================================================== */
/* HOTFIX MOBILE — 2026-06                                                    */
/* Corrige a primeira dobra no celular, evita texto vertical no selo do hero,  */
/* simplifica o header mobile e melhora a leitura dos cards/agenda.           */
/* Alterações somente visuais: não muda backend, rotas, data-* ou names.       */
/* ========================================================================== */

.mobile-nav-actions { display: none; }

@media (max-width: 767px) {
  html {
    scroll-padding-top: 76px !important;
  }

  section[id],
  .onepage-section[id],
  .section[id] {
    scroll-margin-top: 76px !important;
  }

  body {
    overflow-x: hidden !important;
    background: #F7FAFD;
  }

  .container-xl,
  .container {
    width: min(100% - 1.25rem, var(--container)) !important;
  }

  /* Header mobile: deixa somente marca + menu. Os CTAs entram dentro do menu. */
  .landing-header nav {
    min-height: 64px !important;
    grid-template-columns: minmax(0, 1fr) 3rem !important;
    align-items: center !important;
    gap: .7rem !important;
    padding-block: .65rem !important;
  }

  .professional-brand {
    gap: .68rem !important;
    max-width: 100% !important;
  }

  .brand-logo-mark {
    width: 2.7rem !important;
    height: 2.7rem !important;
    flex: 0 0 2.7rem !important;
  }

  .brand-copy strong {
    font-size: clamp(1.05rem, 5.5vw, 1.32rem) !important;
    line-height: .98 !important;
    white-space: nowrap !important;
  }

  .brand-copy small {
    font-size: clamp(.56rem, 2.7vw, .68rem) !important;
    letter-spacing: .045em !important;
    white-space: nowrap !important;
  }

  .mobile-menu-toggle {
    display: inline-grid !important;
    place-items: center !important;
    width: 3rem !important;
    height: 3rem !important;
    padding: .64rem !important;
    border-radius: .95rem !important;
    background: #FFFFFF !important;
    box-shadow: 0 10px 24px rgba(8, 43, 73, .08) !important;
  }

  .mobile-menu-toggle span {
    width: 1.45rem !important;
    margin: .18rem 0 !important;
  }

  .header-actions {
    display: none !important;
  }

  .nav-links {
    left: .75rem !important;
    right: .75rem !important;
    top: calc(100% + .45rem) !important;
    padding: .75rem !important;
    border-radius: 1.05rem !important;
    background: rgba(255, 255, 255, .98) !important;
    box-shadow: 0 22px 54px rgba(8, 43, 73, .16) !important;
  }

  .nav-links a {
    padding: .78rem .85rem !important;
    border-radius: .78rem !important;
    font-size: .95rem !important;
  }

  .mobile-nav-actions {
    display: grid !important;
    gap: .5rem !important;
    margin-top: .45rem !important;
    padding-top: .7rem !important;
    border-top: 1px solid rgba(8, 43, 73, .10) !important;
  }

  .mobile-menu-cta {
    width: 100% !important;
    min-height: 2.85rem !important;
    border-radius: .95rem !important;
  }

  .mobile-login-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 2.65rem !important;
    border: 1px solid rgba(8, 43, 73, .14) !important;
    background: #F7FAFD !important;
    color: var(--color-primary) !important;
    font-weight: 850 !important;
  }

  /* Hero mobile: corrige o selo vertical e remove a sensação de tela vazia. */
  .phase1-hero,
  .onepage-hero {
    min-height: 0 !important;
    padding-top: 0 !important;
  }

  .onepage-hero::before,
  .onepage-hero::after {
    opacity: .16 !important;
  }

  .hero-atmosphere::before {
    top: 0 !important;
    right: -42vw !important;
    width: 92vw !important;
    opacity: .75 !important;
  }

  .onepage-hero-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    gap: 1.05rem !important;
    padding-block: 1.25rem 1.85rem !important;
  }

  .onepage-hero-copy {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
  }

  .onepage-kicker {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: .58rem .72rem !important;
    border-radius: .82rem !important;
    font-size: clamp(.58rem, 2.65vw, .68rem) !important;
    letter-spacing: .045em !important;
    line-height: 1.35 !important;
    text-align: left !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    text-wrap: pretty !important;
  }

  .onepage-hero h1 {
    margin: .82rem 0 .72rem !important;
    font-size: clamp(2.18rem, 10.8vw, 2.92rem) !important;
    line-height: 1 !important;
    letter-spacing: -.045em !important;
  }

  .onepage-hero p:not(.onepage-kicker) {
    max-width: 100% !important;
    font-size: .98rem !important;
    line-height: 1.58 !important;
  }

  .hero-actions {
    margin-top: 1rem !important;
    gap: .58rem !important;
  }

  .hero-actions .btn {
    width: 100% !important;
    min-height: 2.9rem !important;
    border-radius: .95rem !important;
  }

  .hero-trust-grid {
    grid-template-columns: 1fr !important;
    gap: .55rem !important;
    margin-top: 1rem !important;
  }

  .hero-trust-grid span {
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: 2.3rem minmax(0, 1fr) !important;
    align-items: center !important;
    gap: .65rem !important;
    padding: .72rem .78rem !important;
    border-radius: .9rem !important;
    font-size: .82rem !important;
    line-height: 1.28 !important;
  }

  .hero-trust-grid strong {
    font-size: 1.25rem !important;
    text-align: center !important;
  }

  .hero-visual-premium {
    display: block !important;
    padding: 0 !important;
    margin-top: .35rem !important;
  }

  .hero-portrait-shell {
    width: 100% !important;
    max-width: none !important;
    aspect-ratio: 16 / 10 !important;
    border-radius: 1.15rem !important;
    justify-self: stretch !important;
  }

  .hero-portrait-shell img {
    object-position: 50% 36% !important;
  }

  .proof-strip-grid {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  .proof-strip-grid span {
    min-height: 0 !important;
    padding: .82rem 0 !important;
  }

  /* Seções e títulos: menos vazio e mais área útil. */
  .onepage-section,
  .section {
    padding-top: 2rem !important;
    padding-bottom: 2.75rem !important;
  }

  #servicos,
  #sobre,
  #agendamento,
  #avaliacoes,
  #contato {
    padding-top: 1.65rem !important;
  }

  .section-heading {
    max-width: 100% !important;
  }

  .section-kicker {
    margin-bottom: .55rem !important;
    gap: .55rem !important;
    font-size: .68rem !important;
    letter-spacing: .095em !important;
    line-height: 1.25 !important;
  }

  .section-kicker::before {
    width: 1.35rem !important;
  }

  .section-title {
    font-size: clamp(2rem, 9vw, 2.55rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.04em !important;
  }

  .text-content {
    font-size: .96rem !important;
    line-height: 1.66 !important;
  }

  .about-onepage,
  .method-grid,
  .schedule-page-grid,
  .schedule-page-hero-grid {
    gap: 1.25rem !important;
  }

  .about-photo-card {
    max-width: 100% !important;
    border-radius: 1.15rem !important;
  }

  .method-section {
    padding-top: 2.3rem !important;
    padding-bottom: 2.6rem !important;
  }

  .method-step {
    padding: 1rem !important;
    border-radius: 1rem !important;
  }

  /* Cards de serviços: leitura de app premium, com ícone e texto sem estourar. */
  .services-onepage .modal-service-grid,
  .service-grid {
    grid-template-columns: 1fr !important;
    gap: .82rem !important;
  }

  .services-onepage .service-modal-card {
    display: grid !important;
    grid-template-columns: 2.55rem minmax(0, 1fr) !important;
    gap: .45rem .78rem !important;
    align-items: start !important;
    min-height: 0 !important;
    padding: 1rem !important;
    border-radius: 1rem !important;
  }

  .services-onepage .service-modal-card .line-icon {
    grid-column: 1 !important;
    grid-row: 1 / span 3 !important;
    width: 2.55rem !important;
    height: 2.55rem !important;
    border-radius: .86rem !important;
  }

  .services-onepage .service-modal-card small,
  .services-onepage .service-modal-card h3 {
    grid-column: 2 !important;
  }

  .services-onepage .service-modal-card p,
  .services-onepage .service-modal-card em,
  .services-onepage .service-modal-card button {
    grid-column: 1 / -1 !important;
  }

  .services-onepage .service-modal-card small {
    width: fit-content !important;
    max-width: 100% !important;
    white-space: normal !important;
  }

  .services-onepage .service-modal-card h3 {
    margin: .05rem 0 0 !important;
    font-size: 1.04rem !important;
    line-height: 1.2 !important;
  }

  .services-onepage .service-modal-card p {
    margin-top: .25rem !important;
    font-size: .91rem !important;
    line-height: 1.5 !important;
  }

  .services-onepage .service-modal-card button {
    width: 100% !important;
    min-height: 2.62rem !important;
    margin-top: .15rem !important;
    border: 1px solid rgba(18, 97, 166, .16) !important;
    border-radius: .78rem !important;
    background: #F5FBFF !important;
    justify-content: center !important;
  }

  /* Agenda mobile: uma etapa por vez visualmente, sem parecer tabela apertada. */
  .schedule-onepage .schedule-shell,
  .schedule-page-form,
  .schedule-page-aside {
    border-radius: 1.05rem !important;
    padding: .85rem !important;
  }

  .schedule-steps-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "service"
      "date"
      "time"
      "summary" !important;
    gap: .85rem !important;
  }

  .schedule-step,
  .appointment-service,
  .calendar-box,
  .summary-step {
    min-height: 0 !important;
    border-radius: .95rem !important;
  }

  .service-options-list {
    grid-template-columns: 1fr !important;
    gap: .55rem !important;
  }

  .calendar-grid button {
    min-height: 2.25rem !important;
    border-radius: .58rem !important;
  }

  .compact-slots,
  .compact-slots.is-loading {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .45rem !important;
  }

  .slot-option {
    min-height: 2.45rem !important;
    border-radius: .72rem !important;
  }

  .floating-whatsapp {
    right: 1rem !important;
    bottom: 1rem !important;
    width: 3.35rem !important;
    height: 3.35rem !important;
  }
}

@media (max-width: 380px) {
  .brand-copy strong {
    font-size: 1.02rem !important;
  }

  .brand-copy small {
    font-size: .54rem !important;
  }

  .onepage-kicker {
    font-size: .55rem !important;
    letter-spacing: .035em !important;
  }

  .onepage-hero h1 {
    font-size: 2.06rem !important;
  }

  .compact-slots,
  .compact-slots.is-loading {
    grid-template-columns: 1fr !important;
  }
}

/* ========================================================= */
/* AJUSTE DESKTOP — LARGURA PREMIUM E RESPIRO LATERAL         */
/* Evita layout esticado em monitores grandes                 */
/* ========================================================= */

:root {
  --container: 1180px;
  --container-wide: 1240px;
  --container-admin: 1320px;
}

/* Largura padrão do site público */
.landing-header .container-xl,
.onepage-hero .container-xl,
.proof-strip .container-xl,
.onepage-section > .container-xl,
.contact-cta-card,
.site-footer .container-xl {
  width: min(100% - 3rem, var(--container)) !important;
  max-width: var(--container) !important;
  margin-inline: auto !important;
}

/* Agenda pode ser um pouco mais larga para não ficar apertada */
#agendamento > .container-xl,
.schedule-onepage > .container-xl {
  width: min(100% - 3rem, var(--container-wide)) !important;
  max-width: var(--container-wide) !important;
}

/* Não apertar demais painel interno/admin */
.admin-console > .container-xl,
.patient-portal > .container-xl {
  width: min(100% - 2rem, var(--container-admin)) !important;
  max-width: var(--container-admin) !important;
}

/* Monitores muito grandes: mantém elegância e não deixa o conteúdo espalhar */
@media (min-width: 1600px) {
  :root {
    --container: 1140px;
    --container-wide: 1220px;
  }

  .onepage-hero-grid {
    gap: 3.2rem !important;
  }
}


/* ========================================================= */
/* AJUSTE DESKTOP — HERO MAIS COMPACTO E EDITORIAL            */
/* Aproxima texto e foto em telas grandes                     */
/* ========================================================= */

@media (min-width: 992px) {
  .onepage-hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(340px, 430px) !important;
    gap: clamp(2rem, 3.5vw, 3.8rem) !important;
  }

  .onepage-hero-copy {
    max-width: 640px;
  }

  .onepage-hero h1 {
    max-width: 640px;
    font-size: clamp(3.2rem, 5.2vw, 5.1rem) !important;
  }

  .onepage-hero p:not(.onepage-kicker) {
    max-width: 590px;
  }

  .hero-portrait-shell {
    width: min(100%, 430px) !important;
    justify-self: end;
  }
}

/* ========================================================================== */
/* FASE 2B — SERVIÇOS LIMPOS, MENOS POLUÍDOS                                  */
/* Cole este bloco ao final de public_html/assets/css/styles.css.              */
/* Objetivo: manter o “Para quem é” sem transformar o card em bloco de texto.  */
/* Backend preservado: não altera rotas, forms, CSRF, data-* nem JS principal. */
/* ========================================================================== */

.phase2b-clean-services {
  background:
    radial-gradient(circle at 12% 14%, rgba(18, 97, 166, .055), transparent 24rem),
    linear-gradient(180deg, #FFFFFF 0%, #F7FAFD 100%) !important;
}

.phase2b-clean-services .section-heading {
  max-width: 760px;
}

.phase2b-clean-services .section-heading .text-content {
  max-width: 680px;
}

/* Grid mais arejado e com cards menos altos. */
.phase2b-clean-services .modal-service-grid {
  align-items: stretch;
  gap: clamp(1rem, 1.7vw, 1.35rem) !important;
}

/* Card limpo: menos texto, mais respiro, leitura em 5 segundos. */
.phase2b-clean-services .service-card-clean {
  position: relative;
  display: flex !important;
  flex-direction: column;
  min-height: 100%;
  gap: .78rem;
  padding: clamp(1.1rem, 1.6vw, 1.35rem) !important;
  border: 1px solid rgba(8, 43, 73, .105) !important;
  border-radius: 1.22rem !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94)),
    radial-gradient(circle at 94% 3%, rgba(18,97,166,.09), transparent 8rem) !important;
  box-shadow: 0 16px 44px rgba(6, 26, 46, .07) !important;
  overflow: hidden;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.phase2b-clean-services .service-card-clean::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: .22rem;
  background: linear-gradient(90deg, var(--color-secondary), var(--color-accent));
  opacity: .78;
}

.phase2b-clean-services .service-card-clean:hover {
  transform: translateY(-3px);
  border-color: rgba(18,97,166,.22) !important;
  box-shadow: 0 24px 58px rgba(6, 26, 46, .10) !important;
}

.phase2b-clean-services .service-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
}

.phase2b-clean-services .service-card-top small {
  display: inline-flex;
  align-items: center;
  min-height: 1.68rem;
  padding: .3rem .62rem;
  border: 1px solid rgba(18,97,166,.16);
  border-radius: 999px;
  background: #F2F8FD;
  color: var(--color-secondary);
  font-size: .64rem;
  font-weight: 950;
  letter-spacing: .085em;
  text-transform: uppercase;
  white-space: nowrap;
}

.phase2b-clean-services .service-card-clean .line-icon {
  width: 2.3rem;
  height: 2.3rem;
  flex: 0 0 2.3rem;
  border-radius: .82rem;
  color: var(--color-primary);
  background:
    radial-gradient(circle at 70% 25%, rgba(197,154,74,.16), transparent 1.35rem),
    linear-gradient(180deg, #F8FCFF, #EAF4FF);
}

.phase2b-clean-services .service-card-clean h3 {
  margin: .05rem 0 0 !important;
  color: var(--color-primary) !important;
  font-size: clamp(1.05rem, 1.15vw, 1.18rem) !important;
  line-height: 1.22 !important;
  letter-spacing: -.025em;
}

.phase2b-clean-services .service-summary {
  margin: 0 !important;
  color: var(--color-muted);
  font-size: .92rem;
  line-height: 1.5;
}

/* Versão enxuta do “Para quem”: uma frase, sem box pesado e sem bullets. */
.phase2b-clean-services .service-audience-line {
  margin: .1rem 0 0 !important;
  padding: .72rem .78rem;
  border-left: 3px solid rgba(197,154,74,.72);
  border-radius: .85rem;
  background: rgba(245, 251, 255, .86);
  color: #40566E;
  font-size: .86rem;
  line-height: 1.48;
}

.phase2b-clean-services .service-audience-line span {
  color: var(--color-primary);
  font-weight: 950;
}

/* Esconde elementos da versão anterior caso o CSS antigo ainda esteja no arquivo. */
.phase2b-clean-services .service-card-clean .service-audience-box,
.phase2b-clean-services .service-card-clean .service-points,
.phase2b-clean-services .service-card-clean .service-card-actions {
  display: none !important;
}

.phase2b-clean-services .service-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: .2rem;
}

.phase2b-clean-services .service-card-footer em {
  display: inline-flex;
  width: auto !important;
  max-width: 100%;
  margin: 0 !important;
  padding: .36rem .58rem;
  border-radius: 999px;
  background: rgba(8,43,73,.055);
  color: #40566E;
  font-size: .72rem;
  font-style: normal;
  font-weight: 850;
  white-space: nowrap;
}

.phase2b-clean-services .service-card-footer button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: .65rem .86rem !important;
  border: 1px solid rgba(18,97,166,.18) !important;
  border-radius: .82rem !important;
  background: #F5FBFF !important;
  color: var(--color-secondary) !important;
  font-size: .84rem !important;
  font-weight: 950 !important;
  text-decoration: none;
  box-shadow: none !important;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.phase2b-clean-services .service-card-footer button:hover {
  transform: translateY(-1px);
  border-color: rgba(18,97,166,.30) !important;
  background: #ECF7FF !important;
}

/* Modal mantém a informação completa, mas com leitura organizada. */
.service-dialog-card-enhanced {
  max-width: 720px;
}

.service-dialog-audience {
  margin: 1rem 0;
  padding: .95rem 1rem;
  border: 1px solid rgba(18,97,166,.13);
  border-radius: 1rem;
  background: #F7FBFF;
}

.service-dialog-audience strong {
  display: block;
  margin-bottom: .35rem;
  color: var(--color-primary);
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .085em;
  text-transform: uppercase;
}

.service-dialog-audience p {
  margin: 0;
  color: #35495F;
  font-size: .94rem;
  line-height: 1.58;
}

.service-dialog-points {
  display: grid;
  gap: .5rem;
  margin: 1rem 0 1.25rem;
  padding: 0;
  list-style: none;
}

.service-dialog-points li {
  position: relative;
  padding-left: 1.05rem;
  color: var(--color-muted);
  font-size: .94rem;
  line-height: 1.48;
}

.service-dialog-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: .42rem;
  height: .42rem;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--color-secondary), var(--color-accent));
  box-shadow: 0 0 0 .18rem rgba(18,97,166,.08);
}

.service-dialog-actions {
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
  margin-top: 1.1rem;
}

.service-dialog-actions .btn {
  min-height: 2.85rem;
}

@media (max-width: 1199px) {
  .phase2b-clean-services .modal-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .phase2b-clean-services .modal-service-grid {
    grid-template-columns: 1fr !important;
    gap: .9rem !important;
  }

  .phase2b-clean-services .service-card-clean {
    padding: 1rem !important;
    border-radius: 1.08rem !important;
  }

  .phase2b-clean-services .service-card-clean .line-icon {
    width: 2.25rem;
    height: 2.25rem;
    flex-basis: 2.25rem;
  }

  .phase2b-clean-services .service-summary,
  .phase2b-clean-services .service-audience-line {
    font-size: .9rem;
  }

  .phase2b-clean-services .service-card-footer {
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
  }

  .phase2b-clean-services .service-card-footer button {
    width: 100%;
    min-height: 2.65rem;
  }

  .service-dialog-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}
