:root {
  --radius:16px;
  --heading:'Avenir Next',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --body:'Avenir Next',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:var(--text-body)/1.65 var(--body);
}
button,input,textarea,select {
  font:inherit;
}
button,a {
  -webkit-tap-highlight-color:transparent;
}
button {
  cursor:pointer;
}
button,input,select {
  min-height:44px;
}
button:disabled {
  opacity:.55;
  cursor:default;
}
a {
  color:inherit;
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid var(--focus,#b27342);
  outline-offset:4px;
}
img {
  max-width:100%;
  display:block;
}
svg {
  display:block;
}
button {
  color:inherit;
}
h1,h2,h3,p {
  margin-top:0;
}
h1,h2,h3 {
  font-family:var(--heading);
}
h1,h2 {
  font-weight:500;
  line-height:var(--leading-heading);
  letter-spacing:-1.8px;
}
h1 {
  font-size:clamp(2.5rem,(.5rem + 5.7vw),4.625rem);
}
h2 {
  font-size:clamp(1.875rem,(.5rem + 4vw),2.9375rem);
}
h3 {
  font-size:var(--text-reading);
  line-height:1.35;
  font-weight:500;
  letter-spacing:-.3px;
}
.container {
  width:min(1160px,calc(100% - 88px));
  margin:auto;
}
.eyebrow {
  font-size:var(--text-small);
  text-transform:uppercase;
  letter-spacing:1.8px;
  font-weight:600;
  color:var(--primary);
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:22px;
}
.eyebrow::before {
  content:'';
  width:22px;
  height:1px;
  background:currentColor;
}
.pill {
  font-size:var(--text-small);
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:30px;
  color:var(--muted);
  display:inline-block;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  padding:12px 22px;
  border-radius:6px;
  min-height:46px;
  background:var(--primary);
  color:var(--button-ink,#fff);
  border:1px solid var(--primary);
  text-decoration:none;
  font-size:var(--text-small);
  font-weight:500;
}
.button.secondary {
  background:transparent;
  color:var(--ink);
  border-color:var(--line);
}
.text-link {
  border:0;
  background:transparent;
  color:var(--primary);
  font-size:var(--text-small);
  text-decoration:underline;
  text-underline-offset:5px;
  display:inline-flex;
  align-items:center;
  gap:20px;
  padding:10px 0;
  min-height:44px;
}
.actions {
  display:flex;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
}
.site-header {
  border-bottom:1px solid var(--line);
  background:var(--paper);
}
.header-inner {
  height:89px;
  display:flex;
  align-items:center;
  gap:25px;
  justify-content:space-between;
}
.doctor-brand {
  display:flex;
  align-items:center;
  gap:12px;
  text-decoration:none;
}
.doctor-monogram {
  font:1.375rem Georgia,serif;
  width:39px;
  height:39px;
  border:1px solid var(--line);
  display:grid;
  place-items:center;
  border-radius:50%;
  color:var(--primary);
}
.doctor-brand strong {
  display:block;
  font-weight:500;
  font-size:var(--type-15);
}
.doctor-brand small {
  display:block;
  font-size:var(--text-small);
  color:var(--muted);
  letter-spacing:.5px;
}
.public-nav {
  display:flex;
  align-items:center;
  gap:25px;
}
.public-nav a {
  font-size:var(--text-small);
  text-decoration:none;
  min-height:44px;
  display:inline-flex;
  align-items:center;
}
.public-nav a[aria-current=page] {
  text-decoration:underline;
  text-underline-offset:7px;
}
.public-nav .button {
  font-size:var(--text-small);
  padding:8px 15px;
}
.mobile-menu {
  display:none;
}
.hero {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:6%;
  align-items:center;
  padding:57px 0 60px;
}
.hero-copy h1 {
  margin-bottom:25px;
}
.hero-copy>p {
  font-size:var(--text-body);
  line-height:1.9;
  max-width:435px;
  color:var(--muted);
  margin-bottom:30px;
}
.hero .eyebrow {
  margin-bottom:24px;
}
.hero-photo {
  position:relative;
}
.portrait {
  width:100%;
  height:510px;
  object-fit:cover;
  object-position:50% 25%;
  border-radius:160px 160px 14px 14px;
  background:#e5eae1;
}
.portrait-caption {
  position:absolute;
  bottom:25px;
  left:-20px;
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:10px;
  padding:14px 22px;
  box-shadow:0 8px 30px #2739300a;
}
.portrait-caption strong {
  display:block;
  font-size:var(--text-small);
  font-weight:500;
}
.portrait-caption span {
  font-size:var(--text-small);
  color:var(--muted);
}
.hero-footnote {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:var(--text-small);
  color:var(--muted);
  margin-top:26px;
}
.hero-footnote i {
  width:5px;
  height:5px;
  background:var(--primary);
  border-radius:50%;
}
.photo-fallback {
  height:510px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:var(--soft);
  border:1px solid var(--line);
  border-radius:160px 160px 14px 14px;
}
.photo-fallback>span {
  font:7.5rem Georgia,serif;
  color:var(--primary);
}
.photo-fallback small {
  font-size:var(--text-small);
  color:var(--muted);
}
.intro-strip {
  background:var(--soft);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.intro-strip .container {
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:21px 0;
}
.intro-strip span {
  font-size:var(--text-small);
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:10px;
}
.intro-strip i {
  font-style:normal;
  color:var(--primary);
  font-size:var(--type-17);
}
.section {
  padding:68px 0;
}
.section-header {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:30px;
  margin-bottom:28px;
}
.section-header h2 {
  max-width:580px;
  margin:0;
}
.section-header p {
  max-width:270px;
  margin:0;
  font-size:var(--text-small);
  color:var(--muted);
}
.section-kicker {
  font-size:var(--text-small);
  text-transform:uppercase;
  letter-spacing:1.5px;
  color:var(--primary);
  display:block;
  margin-bottom:18px;
}
.services {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.service {
  padding:25px 23px;
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.service .number {
  font:italic 1.375rem Georgia,serif;
  color:var(--primary);
  display:block;
  margin-bottom:29px;
}
.service h3 {
  margin-bottom:14px;
}
.service p {
  font-size:var(--text-small);
  line-height:1.9;
  color:var(--muted);
  margin:0 0 17px;
}
.service small {
  font-size:var(--text-small);
  color:var(--muted);
}
.about-section {
  background:var(--soft);
}
.about-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:65px;
}
.about-grid p {
  font-size:var(--text-body);
  color:var(--muted);
  line-height:1.9;
}
.about-grid small {
  display:block;
  border-top:1px solid var(--line);
  padding-top:18px;
  font-size:var(--text-small);
  color:var(--muted);
}
.post-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.post-card {
  text-decoration:none;
  display:block;
}
.post-card h3 {
  font-size:var(--text-reading);
  margin:15px 0 10px;
}
.post-card p {
  font-size:var(--text-small);
  color:var(--muted);
  line-height:var(--leading-body);
  margin-bottom:12px;
}
.post-card .meta {
  font-size:var(--text-small);
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:.8px;
}
.post-card .read {
  font-size:var(--text-small);
  color:var(--primary);
  border-top:1px solid var(--line);
  padding-top:12px;
  display:flex;
  justify-content:space-between;
}
.cover {
  height:190px;
  border-radius:var(--radius);
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e3e7d7;
}
.cover>svg {
  height:80%;
  width:80%;
  color:#73835e;
}
.cover.agenda {
  background:#e7eadb;
}
.cover.hojas {
  background:#eeded0;
}
.cover.hojas svg {
  color:#a97458;
}
.cover.ventana {
  background:#dee6e2;
}
.cover.ventana svg {
  color:#678278;
}
.cover.empty-cover {
  background:var(--soft);
  border:1px dashed var(--line);
  color:var(--muted);
  font-size:var(--text-small);
}
.contact-section {
  background:var(--primary);
  color:var(--button-ink,#fff);
  padding:49px 0;
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:45px;
  align-items:center;
}
.contact-grid h2 {
  font-size:var(--type-39);
  max-width:420px;
  margin-bottom:17px;
}
.contact-grid p {
  font-size:var(--text-small);
  color:#e1e9df;
  margin-bottom:25px;
}
.contact-grid .button {
  background:#fff;
  color:var(--primary);
  border-color:#fff;
}
.contact-details {
  padding-left:35px;
  border-left:1px solid #ffffff40;
}
.contact-details strong {
  font-size:var(--text-small);
  font-weight:500;
}
.contact-details p {
  margin:5px 0 18px;
  font-size:var(--text-small);
}
.site-footer {
  padding:27px 0;
}
.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
}
.site-footer p {
  font-size:var(--text-small);
  color:var(--muted);
  margin:0;
}
.footer-note {
  max-width:270px;
  text-align:right;
}
.blog-heading {
  padding:54px 0 35px;
  border-bottom:1px solid var(--line);
  margin-bottom:35px;
}
.blog-heading h1 {
  font-size:clamp(2.6875rem,(.5rem + 6vw),4.5rem);
  margin-bottom:20px;
  max-width:670px;
}
.blog-heading p {
  max-width:560px;
  color:var(--muted);
  font-size:var(--text-body);
  line-height:var(--leading-body);
}
.blog-feature {
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:35px;
  align-items:center;
  margin-bottom:50px;
}
.blog-feature .cover {
  height:290px;
}
.blog-feature h2 {
  font-size:var(--type-36);
  margin:13px 0 20px;
}
.blog-feature p {
  font-size:var(--type-15);
  line-height:var(--leading-body);
  color:var(--muted);
}
.blog-feature .meta {
  font-size:var(--text-small);
  color:var(--muted);
}
.pagination {
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:35px;
}
.pagination button {
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:5px;
  min-width:44px;
  font-size:var(--text-small);
}
.pagination button[aria-current=page] {
  background:var(--primary);
  color:var(--button-ink,#fff);
}
.breadcrumb {
  padding-top:30px;
  font-size:var(--text-small);
  color:var(--muted);
}
.breadcrumb a {
  text-decoration:none;
}
.article-heading {
  max-width:770px;
  margin:36px auto 28px;
  text-align:center;
}
.article-heading h1 {
  font-size:clamp(2.3125rem,(.5rem + 5vw),3.75rem);
  margin:22px 0;
}
.article-heading>p {
  font-size:var(--text-body);
  color:var(--muted);
  max-width:640px;
  margin:0 auto 25px;
}
.author-line {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  font-size:var(--text-small);
  color:var(--muted);
}
.avatar {
  width:33px;
  height:33px;
  border-radius:50%;
  background:var(--soft);
  display:grid;
  place-items:center;
  color:var(--primary);
  font-size:var(--text-small);
  border:1px solid var(--line);
}
.article-hero {
  max-width:920px;
  margin:0 auto 40px;
}
.article-hero .cover {
  height:320px;
}
.article-body {
  max-width:min(650px,68ch);
  margin:auto;
  padding-bottom:48px;
  font-size:var(--text-body);
  line-height:1.9;
}
.article-body h2 {
  font-size:var(--type-29);
  letter-spacing:-.8px;
  margin:36px 0 15px;
}
.article-body p {
  color:var(--muted);
  margin:0 0 24px;
}
.article-body ul {
  color:var(--muted);
}
.article-signature {
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:35px;
  padding:23px;
  border:1px solid var(--line);
  border-radius:var(--radius);
}
.article-signature strong {
  font-size:var(--type-15);
  font-weight:500;
}
.article-signature p {
  font-size:var(--text-small);
  margin:0;
}
.article-signature .avatar {
  width:48px;
  height:48px;
  font-size:var(--type-15);
}
.related-heading {
  font-size:var(--type-29);
}
.site-demo-note {
  font-size:var(--text-small);
  text-align:center;
  background:var(--soft);
  color:var(--muted);
  padding:7px 15px;
  letter-spacing:.3px;
}
.screen-skip {
  position:absolute;
  top:-80px;
  z-index:20;
  padding:10px;
  background:var(--ink);
  color:var(--paper);
}
.screen-skip:focus {
  top:0;
}
.personal {
  --paper:#fffcf6;
  --soft:#f4eee4;
  --primary:#864830;
  --ink:#372b23;
  --muted:#736252;
  --line:#e3d9ca;
  --radius:3px;
  --heading:Georgia,'Times New Roman',serif;
}
.personal .doctor-monogram {
  border:0;
  font-style:italic;
  width:auto;
  font-size:var(--type-31);
  margin-right:4px;
}
.personal .hero {
  grid-template-columns:1fr 1.03fr;
  gap:8%;
  padding-top:45px;
}
.personal .hero-copy {
  grid-column:2;
  grid-row:1;
}
.personal .hero-photo {
  grid-column:1;
  grid-row:1;
}
.personal .portrait,.personal .photo-fallback {
  height:550px;
  border-radius:220px 220px 3px 3px;
}
.personal .hero-copy h1 {
  font-size:clamp(2.6875rem,(.5rem + 6.1vw),4.75rem);
  font-weight:400;
  line-height:var(--leading-heading);
}
.personal .portrait-caption {
  left:auto;
  right:-25px;
  bottom:30px;
  border-radius:0;
  padding:18px 24px;
  border-color:var(--line);
}
.personal .button {
  border-radius:2px;
}
.personal .hero .eyebrow {
  letter-spacing:1.7px;
}
.personal .service {
  border:0;
  border-top:1px solid var(--line);
  padding:22px 0;
}
.personal .services {
  gap:35px;
}
.personal .service h3 {
  font-size:var(--type-23);
}
.personal .post-card h3 {
  font-size:var(--type-23);
}
.personal .about-grid h2 {
  font-size:var(--type-48);
  font-style:italic;
  font-weight:400;
}
.personal .cover {
  border-radius:2px;
}
.personal .site-header {
  border-bottom:0;
}
.personal .header-inner {
  border-bottom:1px solid var(--line);
}
.personal .blog-heading {
  text-align:center;
  padding-top:50px;
}
.personal .blog-heading h1,.personal .blog-heading p {
  margin-left:auto;
  margin-right:auto;
}
.personal .section-kicker {
  font-family:var(--body);
}
.personal .article-heading h1 {
  font-size:clamp(2.625rem,(.5rem + 6vw),4.375rem);
}
/* Bocetos del panel: interfaz compartida, independiente de la plantilla. */
.panel-mode {
  --paper:#fbfcf9;
  --soft:#eff3ec;
  --primary:#245d4d;
  --ink:#253a30;
  --muted:#607365;
  --line:#dbe3d6;
  --heading:var(--body);
}
.panel-demo-banner {
  font-size:var(--text-small);
  text-align:center;
  background:#eef2e7;
  border-bottom:1px solid var(--line);
  padding:7px 10px;
  color:#59704e;
}
.panel-layout {
  display:grid;
  grid-template-columns:185px 1fr;
  min-height:750px;
}
.panel-sidebar {
  padding:26px 16px;
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
  background:#f3f6f0;
}
.panel-logo {
  font-size:var(--text-body);
  font-weight:600;
  margin-bottom:30px;
  letter-spacing:-.5px;
}
.panel-logo span {
  font:italic 1.5rem Georgia;
  color:#6a8255;
  margin-right:8px;
}
.panel-sidebar nav {
  display:grid;
  gap:4px;
}
.panel-sidebar nav button {
  border:0;
  background:none;
  text-align:left;
  padding:10px 12px;
  font-size:var(--text-small);
  border-radius:5px;
}
.panel-sidebar nav button.active {
  background:#e0e9d9;
  color:#2f503b;
  font-weight:500;
}
.panel-user {
  margin-top:auto;
  border-top:1px solid var(--line);
  padding:20px 0 0;
  display:flex;
  align-items:center;
  gap:9px;
}
.panel-user strong {
  font-size:var(--text-small);
  font-weight:500;
  display:block;
}
.panel-user small {
  font-size:var(--text-small);
  color:var(--muted);
  display:block;
}
.panel-content {
  padding:31px 32px;
  min-width:0;
}
.panel-topbar {
  font-size:var(--text-small);
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  margin-bottom:27px;
}
.panel-topbar .text-link {
  font-size:var(--text-small);
  min-height:44px;
  padding:0;
}
.panel-title {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:27px;
}
.panel-title h1 {
  font-size:var(--type-29);
  letter-spacing:-1px;
  margin:0 0 7px;
}
.panel-title p {
  font-size:var(--text-small);
  color:var(--muted);
  margin:0;
}
.panel-title .button {
  font-size:var(--text-small);
  padding:8px 16px;
  white-space:nowrap;
}
.article-filters {
  display:flex;
  gap:20px;
  border-bottom:1px solid var(--line);
  margin-bottom:22px;
}
.article-filters button {
  border:0;
  background:none;
  padding:12px 0;
  font-size:var(--text-small);
  color:var(--muted);
}
.article-filters button.active {
  color:var(--primary);
  border-bottom:2px solid var(--primary);
}
.article-list {
  display:grid;
  gap:0;
}
.article-list-item {
  padding:20px 0;
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:72px 1fr auto;
  gap:17px;
  align-items:center;
}
.article-list-item .cover {
  width:72px;
  height:66px;
  border-radius:6px;
}
.article-list-item h2 {
  font-size:var(--text-body);
  line-height:1.45;
  letter-spacing:-.1px;
  margin:6px 0;
}
.article-list-item .date {
  font-size:var(--text-small);
  color:var(--muted);
}
.article-list-item .text-link {
  font-size:var(--text-small);
  padding:4px 0;
  min-height:44px;
}
.status {
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:var(--text-small);
  letter-spacing:.2px;
  color:#4c6647;
  background:#e9f0e2;
  padding:3px 7px;
  border-radius:4px;
}
.status::before {
  content:'';
  width:4px;
  height:4px;
  border-radius:50%;
  background:currentColor;
}
.status.draft {
  color:#826336;
  background:#f4eddc;
}
.status.pending {
  color:#736a35;
  background:#f3efd9;
}
.editor-top {
  display:flex;
  align-items:center;
  gap:15px;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding-bottom:18px;
  margin-bottom:27px;
}
.editor-top .text-link {
  font-size:var(--text-small);
  min-height:44px;
}
.editor-actions {
  display:flex;
  align-items:center;
  gap:8px;
}
.editor-actions .button {
  font-size:var(--text-small);
  padding:8px 13px;
  min-height:44px;
}
.save-label {
  font-size:var(--text-small);
  color:var(--muted);
  margin-bottom:15px;
  display:flex;
  align-items:center;
  gap:6px;
}
.save-label i {
  height:5px;
  width:5px;
  border-radius:50%;
  background:#879c74;
}
.editor-form {
  max-width:820px;
  margin:auto;
}
.field {
  margin-bottom:21px;
}
.field label {
  display:block;
  font-size:var(--text-small);
  font-weight:500;
  margin-bottom:8px;
}
.field input,.field textarea {
  width:100%;
  border:1px solid #cdd8c8;
  background:#fff;
  border-radius:5px;
  padding:11px 13px;
  color:var(--ink);
  font-size:var(--text-small);
  line-height:var(--leading-body);
  resize:vertical;
}
.field textarea {
  min-height:75px;
}
.field .title-input {
  font-size:var(--type-22);
  letter-spacing:-.5px;
  padding:12px 14px;
}
.field .hint {
  font-size:var(--text-small);
  color:var(--muted);
  margin:5px 0 0;
}
.field .error {
  color:#a03120;
  font-size:var(--text-small);
  margin-top:7px;
}
.field input[aria-invalid=true] {
  border-color:#a03120;
}
.cover-field {
  border:1px dashed #becbb7;
  padding:13px;
  border-radius:7px;
  display:flex;
  align-items:center;
  gap:18px;
  background:#f7f9f3;
}
.cover-field .cover {
  width:105px;
  height:72px;
  border-radius:5px;
  flex-shrink:0;
}
.cover-field p {
  font-size:var(--text-small);
  margin:0 0 3px;
}
.cover-field .text-link {
  font-size:var(--text-small);
  min-height:44px;
  padding:2px 0;
}
.editor-toolbar {
  display:flex;
  gap:4px;
  padding:6px;
  border:1px solid #cdd8c8;
  border-bottom:0;
  background:#f4f6ef;
  border-radius:5px 5px 0 0;
}
.editor-toolbar button {
  font-size:var(--text-small);
  background:none;
  border:0;
  min-width:34px;
  min-height:44px;
  border-radius:4px;
}
.editor-toolbar button:hover {
  background:#e1e8d8;
}
.field .body-input {
  border-radius:0 0 5px 5px;
  min-height:330px;
  font-size:var(--type-15);
  line-height:var(--leading-body);
}
.seo-settings {
  border-top:1px solid var(--line);
  padding:18px 0;
}
.seo-settings summary {
  cursor:pointer;
  font-size:var(--text-small);
  padding:5px 0;
  min-height:44px;
}
.seo-settings .seo-intro {
  font-size:var(--text-small);
  color:var(--muted);
  margin:10px 0 20px;
}
.search-preview {
  background:#fff;
  border:1px solid var(--line);
  padding:18px;
  border-radius:6px;
  margin:10px 0;
}
.search-preview small {
  font-size:var(--text-small);
  color:#697064;
}
.search-preview h3 {
  font-size:var(--type-17);
  color:#274d94;
  margin:5px 0;
}
.search-preview p {
  font-size:var(--text-small);
  color:#667064;
  margin:0;
}
.preview-bar {
  background:#f0f4e8;
  padding:14px 30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border-bottom:1px solid #d8e1cd;
}
.preview-bar p {
  font-size:var(--text-small);
  margin:0;
  color:#45633d;
}
.preview-bar .button {
  font-size:var(--text-small);
  padding:8px 14px;
  min-height:44px;
}
.preview-bar .text-link {
  font-size:var(--text-small);
  min-height:44px;
}
.empty-state {
  text-align:center;
  padding:70px 20px;
}
.empty-state .empty-symbol {
  font:3.375rem Georgia;
  color:#90a67c;
  margin-bottom:18px;
}
.empty-state h2 {
  font-size:var(--type-24);
  letter-spacing:-.8px;
}
.empty-state p {
  font-size:var(--text-small);
  color:var(--muted);
  max-width:340px;
  margin:0 auto 22px;
}
.inline-error {
  border:1px solid #d7b8a7;
  background:#fff7f1;
  padding:21px;
  border-radius:7px;
  margin-bottom:20px;
}
.inline-error h2 {
  font-size:var(--text-body);
  letter-spacing:0;
  margin-bottom:8px;
}
.inline-error p {
  font-size:var(--text-small);
  color:#76533d;
  margin-bottom:13px;
}
.skeleton-row {
  display:flex;
  gap:20px;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.skeleton-row>i {
  width:70px;
  height:64px;
  background:#e8eddf;
  border-radius:5px;
}
.skeleton-row>div {
  flex:1;
  padding:5px 0;
}
.skeleton-row span {
  display:block;
  height:10px;
  background:#e8eddf;
  margin-bottom:10px;
  border-radius:3px;
  width:80%;
}
.skeleton-row span:last-child {
  width:45%;
}
.scenario-description {
  font-size:var(--text-small);
  color:var(--muted);
  border-top:1px solid var(--line);
  padding-top:20px;
  margin-top:25px;
}
#toast {
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  z-index:80;
  background:#254d3c;
  color:#fff;
  border-radius:8px;
  font-size:var(--text-small);
  padding:14px 20px;
  box-shadow:0 10px 30px #0002;
  max-width:90%;
  width:max-content;
  display:none;
}
#toast.visible {
  display:block;
}
dialog {
  border:1px solid #d5dece;
  border-radius:13px;
  padding:30px;
  max-width:460px;
  width:calc(100% - 36px);
  color:#253a30;
  background:#fffdf8;
  box-shadow:0 24px 80px #163c2629;
  font:var(--text-small)/1.6 var(--body);
}
dialog::backdrop {
  background:#182c2660;
  backdrop-filter:blur(3px);
}
dialog h2 {
  font:500 var(--type-26)/1.15 var(--body);
  letter-spacing:-.7px;
  margin:0 0 17px;
}
dialog p {
  color:#68705c;
  font-size:var(--text-small);
  margin-bottom:18px;
}
dialog .dialog-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:26px;
}
dialog .button {
  font-size:var(--text-small);
  padding:10px 15px;
}
dialog .dialog-label {
  font-size:var(--text-small);
  letter-spacing:1.5px;
  color:#778467;
  margin-bottom:17px;
}
.cover-choices {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
.cover-choices button {
  background:none;
  border:1px solid #d5dece;
  border-radius:7px;
  padding:7px;
  min-width:0;
}
.cover-choices .cover {
  height:85px;
  border-radius:4px;
}
.cover-choices span {
  font-size:var(--text-small);
}
.demo-article-label {
  font-size:var(--text-small);
  letter-spacing:.4px;
  color:var(--muted);
}
@media(max-width:850px) {
  .container {
    width:calc(100% - 48px);
  }
  .public-nav {
    gap:17px;
  }
  .public-nav a {
    font-size:var(--text-small);
  }
  .hero {
    gap:6%;
    padding:38px 0 44px;
  }
  .hero-copy h1 {
    font-size:var(--type-48);
  }
  .hero-copy>p {
    font-size:var(--text-small);
  }
  .portrait,.photo-fallback {
    height:420px;
  }
  .personal .portrait,.personal .photo-fallback {
    height:440px;
  }
  .personal .hero-copy h1 {
    font-size:var(--type-51);
  }
  .hero .actions {
    gap:12px;
  }
  .button {
    padding:11px 17px;
    font-size:var(--text-small);
  }
  .portrait-caption {
    padding:12px 15px;
    left:-10px;
  }
  .personal .portrait-caption {
    right:-13px;
    padding:14px;
  }
  .section {
    padding:47px 0;
  }
  .services {
    gap:12px;
  }
  .service {
    padding:20px 15px;
  }
  .service h3 {
    font-size:var(--text-body);
  }
  .cover {
    height:160px;
  }
  .post-card h3 {
    font-size:var(--text-body);
  }
  .about-grid {
    gap:35px;
  }
  .panel-layout {
    grid-template-columns:155px 1fr;
  }
  .panel-content {
    padding:25px 22px;
  }
  .panel-sidebar {
    padding:24px 12px;
  }
  .panel-logo {
    font-size:var(--type-15);
  }
  .panel-sidebar nav button {
    font-size:var(--text-small);
  }
  .editor-top {
    gap:8px;
    flex-wrap:wrap;
  }
  .blog-feature {
    gap:25px;
  }
  .blog-feature h2 {
    font-size:var(--type-31);
  }
  .article-heading h1 {
    font-size:var(--type-47);
  }
}
@media(max-width:600px) {
  .container {
    width:calc(100% - 40px);
  }
  .header-inner {
    height:76px;
    gap:12px;
  }
  .doctor-brand strong {
    font-size:var(--text-small);
  }
  .doctor-brand small {
    font-size:var(--text-small);
  }
  .doctor-monogram {
    width:34px;
    height:34px;
    font-size:var(--type-19);
  }
  .public-nav {
    display:none;
  }
  .mobile-menu {
    display:block;
    position:relative;
  }
  .mobile-menu summary {
    list-style:none;
    font-size:var(--text-small);
    padding:10px;
    cursor:pointer;
    min-height:44px;
    display:flex;
    align-items:center;
  }
  .mobile-menu summary::-webkit-details-marker {
    display:none;
  }
  .mobile-menu nav {
    position:absolute;
    right:0;
    top:45px;
    z-index:10;
    width:180px;
    background:var(--paper);
    border:1px solid var(--line);
    padding:14px;
    border-radius:7px;
    box-shadow:0 10px 25px #0001;
    display:grid;
    gap:5px;
  }
  .mobile-menu nav a {
    padding:8px;
    min-height:44px;
    font-size:var(--text-small);
    text-decoration:none;
  }
  .hero,.personal .hero {
    display:flex;
    flex-direction:column;
    gap:30px;
    padding:35px 0 32px;
  }
  .hero-copy h1,.personal .hero-copy h1 {
    font-size:var(--type-45);
    letter-spacing:-1.6px;
    margin-bottom:21px;
  }
  .hero .eyebrow {
    font-size:var(--text-small);
    margin-bottom:20px;
  }
  .hero-copy>p {
    font-size:var(--type-15);
    line-height:var(--leading-body);
    margin-bottom:22px;
  }
  .hero-footnote {
    margin-top:20px;
    font-size:var(--text-small);
  }
  .hero-photo {
    width:100%;
    padding:0 13px;
  }
  .portrait,.photo-fallback,.personal .portrait,.personal .photo-fallback {
    height:355px;
    border-radius:170px 170px 8px 8px;
  }
  .portrait-caption,.personal .portrait-caption {
    left:0;
    right:auto;
    bottom:21px;
    padding:12px 17px;
  }
  .personal .hero-photo {
    order:2;
  }
  .personal .hero-copy {
    order:1;
  }
  .personal .hero-copy h1 {
    font-size:var(--type-51);
  }
  .intro-strip .container {
    flex-wrap:wrap;
    gap:13px 20px;
    padding:18px 0;
  }
  .intro-strip span {
    font-size:var(--text-small);
  }
  .intro-strip span:last-child {
    display:none;
  }
  .section {
    padding:42px 0;
  }
  .section-header {
    display:block;
    margin-bottom:24px;
  }
  .section-header h2 {
    font-size:var(--type-34);
    max-width:310px;
  }
  .section-header p {
    margin-top:17px;
    font-size:var(--text-small);
  }
  .services {
    grid-template-columns:1fr;
    gap:13px;
  }
  .service {
    padding:24px;
  }
  .service .number {
    margin-bottom:15px;
  }
  .service h3 {
    font-size:var(--type-19);
  }
  .service p {
    font-size:var(--text-small);
  }
  .personal .services {
    gap:9px;
  }
  .personal .service {
    padding:20px 0;
  }
  .about-grid {
    grid-template-columns:1fr;
    gap:12px;
  }
  .about-grid h2,.personal .about-grid h2 {
    font-size:var(--type-37);
    margin-bottom:14px;
  }
  .post-grid {
    grid-template-columns:1fr;
    gap:30px;
  }
  .post-card h3 {
    font-size:var(--type-23);
  }
  .post-card p {
    font-size:var(--type-15);
  }
  .cover {
    height:205px;
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:32px;
  }
  .contact-grid h2 {
    font-size:var(--type-35);
  }
  .contact-details {
    padding:25px 0 0;
    border-left:0;
    border-top:1px solid #ffffff40;
  }
  .contact-details p {
    font-size:var(--text-small);
  }
  .footer-inner {
    display:block;
  }
  .footer-note {
    text-align:left;
    margin-top:16px!important;
    max-width:none;
  }
  .blog-heading {
    padding-top:36px;
    margin-bottom:25px;
  }
  .blog-heading h1 {
    font-size:var(--type-45);
  }
  .blog-heading p {
    font-size:var(--type-15);
  }
  .blog-feature {
    grid-template-columns:1fr;
    gap:23px;
    margin-bottom:32px;
  }
  .blog-feature .cover {
    height:225px;
  }
  .blog-feature h2 {
    font-size:var(--type-32);
  }
  .blog-feature .text-link {
    margin-top:-8px;
  }
  .article-heading {
    margin:28px auto 24px;
    text-align:left;
  }
  .article-heading h1,.personal .article-heading h1 {
    font-size:var(--type-40);
    letter-spacing:-1.2px;
  }
  .article-heading>p {
    font-size:var(--type-15);
  }
  .author-line {
    justify-content:flex-start;
    flex-wrap:wrap;
    font-size:var(--text-small);
  }
  .article-hero .cover {
    height:210px;
  }
  .article-body {
    font-size:var(--text-body);
    line-height:var(--leading-body);
    padding-bottom:25px;
  }
  .article-body h2 {
    font-size:var(--type-27);
  }
  .article-signature {
    padding:17px;
    gap:13px;
  }
  .article-signature strong {
    font-size:var(--text-small);
  }
  .article-signature p {
    font-size:var(--text-small);
  }
  .breadcrumb {
    font-size:var(--text-small);
  }
  .site-demo-note {
    font-size:var(--text-small);
  }
  .panel-layout {
    display:block;
    min-height:850px;
  }
  .panel-sidebar {
    padding:15px 18px;
    border-right:0;
    border-bottom:1px solid var(--line);
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:20px;
    justify-content:space-between;
  }
  .panel-logo {
    margin:0;
    font-size:var(--type-15);
  }
  .panel-logo span {
    font-size:var(--type-22);
  }
  .panel-sidebar nav {
    display:flex;
    gap:8px;
  }
  .panel-sidebar nav button {
    font-size:var(--text-small);
    min-height:44px;
    padding:6px 9px;
  }
  .panel-sidebar nav button:last-child {
    display:none;
  }
  .panel-user {
    display:none;
  }
  .panel-content {
    padding:23px 19px;
  }
  .panel-topbar {
    font-size:var(--text-small);
    margin-bottom:24px;
  }
  .panel-title {
    align-items:start;
    gap:13px;
  }
  .panel-title h1 {
    font-size:var(--type-25);
  }
  .panel-title p {
    font-size:var(--text-small);
    max-width:200px;
  }
  .panel-title .button {
    padding:9px 12px;
    font-size:var(--text-small);
    min-height:44px;
  }
  .article-list-item {
    grid-template-columns:55px 1fr;
    gap:12px;
    position:relative;
    padding:17px 0 37px;
  }
  .article-list-item .cover {
    width:55px;
    height:61px;
  }
  .article-list-item h2 {
    font-size:var(--type-15);
  }
  .article-list-item>.text-link {
    position:absolute;
    right:0;
    bottom:4px;
    min-height:44px;
  }
  .article-filters {
    gap:24px;
  }
  .editor-top {
    display:block;
  }
  .editor-actions {
    margin-top:15px;
    display:flex;
    justify-content:flex-end;
  }
  .editor-actions .button {
    flex:1;
    font-size:var(--text-small);
    min-height:44px;
  }
  .editor-form .title-input {
    font-size:var(--type-19);
  }
  .cover-field {
    gap:12px;
  }
  .cover-field .cover {
    width:78px;
    height:70px;
  }
  .field label {
    font-size:var(--text-small);
  }
  .field input,.field textarea {
    font-size:var(--type-15);
  }
  .preview-bar {
    flex-wrap:wrap;
    padding:12px 18px;
  }
  .preview-bar p {
    font-size:var(--text-small);
    width:100%;
    order:3;
  }
  .preview-bar .button {
    font-size:var(--text-small);
  }
  .panel-demo-banner {
    font-size:var(--text-small);
  }
  .empty-state {
    padding:50px 12px;
  }
  .inline-error {
    padding:17px;
  }
  .article-body .cover {
    height:200px;
  }
  dialog {
    padding:24px;
  }
  dialog h2 {
    font-size:var(--type-24);
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important;
  }
}
/* Permitir la lectura de valores largos sin desbordar tarjetas. */
.hero-copy,.service,.post-card,.article-list-item>div {
  min-width:0;
  overflow-wrap:anywhere;
}
.editor-heading {
  font-size:var(--type-27);
  letter-spacing:-.7px;
  max-width:820px;
  margin:0 auto 23px;
}
h1[tabindex="-1"]:focus {
  outline:none;
}

/* Controles compartidos de la revisión y las páginas públicas, separados del panel. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.owner-bar { padding:8px 4%; display:flex; align-items:center; justify-content:space-between; gap:15px; background:#eff2e8; color:#49603d; font-size:var(--text-small); border-bottom:1px solid #dce3d1; }
.owner-bar a { min-height:44px; display:inline-flex; align-items:center; text-decoration:none; }
.owner-bar>span { display:flex; align-items:center; gap:15px; }
.template-switcher { display:flex; gap:3px; padding:3px; border:1px solid var(--line); border-radius:9px; background:var(--paper); }
.template-switcher a { justify-content:center; padding:0 17px; border-radius:6px; color:var(--ink); font-size:var(--text-small); font-weight:500; white-space:nowrap; }
.template-switcher a:hover { text-decoration:underline; text-underline-offset:4px; }
.template-switcher a[aria-current] { background:var(--g-button,var(--primary)); color:var(--g-button-ink,#fff); font-weight:650; }
@media(max-width:760px) {
  .owner-bar { flex-wrap:wrap; gap:5px 12px; }
  .owner-bar .template-switcher { order:3; flex-basis:100%; margin-bottom:5px; }
  .template-switcher a { flex:1; padding-inline:6px; font-size:var(--text-small); }
}
.photo-cover img { width:100%; height:100%; object-fit:cover; }
.public-app .site-footer { padding-bottom:35px; }
.public-app .article-body a { color:var(--primary); text-decoration:underline; text-underline-offset:4px; }
@media(max-width:640px) {
  .owner-bar { padding:6px 20px; font-size:var(--text-small); }
  .owner-bar>span { gap:8px; }
  .owner-bar .trial-badge { padding:5px 8px; font-size:var(--text-small); }
}
/* Superficies públicas compartidas; no contienen una segunda paleta por modo. */
.public-app .owner-bar { background:var(--bar-surface); color:var(--bar-ink); border-color:var(--bar-border); }
.public-app .trial-badge { background:var(--badge-surface); color:var(--badge-ink); border-color:var(--line); }
.public-app .preview-bar { background:var(--preview-surface); color:var(--preview-ink); border-color:var(--line); }
.public-app .preview-bar p { color:var(--muted); }
.public-app dialog { background:var(--paper); color:var(--ink); border-color:var(--line); }
.public-app dialog :is(p,.hint,.dialog-label,label) { color:var(--muted); }
.public-app dialog :is(input,textarea) { color:var(--ink); background:var(--paper); border-color:var(--line); }

/* Identidad pediátrica: tipografía legible, color suave y fotografía a su tamaño real. */
.public-app {
  --radius:18px;
}
.public-app.personal {
  --radius:5px;
}
.public-app .container { width:min(1160px,calc(100% - 88px)); }
.public-app .header-inner { min-height:98px; height:auto; padding:20px 0; }
.doctor-brand { min-width:0; }
.doctor-brand strong { font-size:var(--text-small); }
.doctor-brand small { margin-top:3px; font-size:var(--text-small); letter-spacing:.25px; }
.doctor-monogram,.personal .doctor-monogram { width:44px; height:44px; flex-shrink:0; border:0; background:var(--soft); border-radius:14px; margin:0; }
.doctor-monogram svg { width:29px; height:29px; }
.public-app .public-nav { gap:22px; }
.public-app .public-nav a { font-size:var(--text-small); }
.public-app .button { border-radius:9px; padding:13px 20px; }
.public-app .hero { padding:62px 0 68px; gap:9%; grid-template-columns:1.12fr 1fr; }
.public-app .hero-copy h1 { font-size:clamp(2.75rem,(.5rem + 4.9vw),4.0625rem); line-height:var(--leading-heading); letter-spacing:-2.5px; max-width:540px; }
.public-app .hero-copy>p { max-width:470px; font-size:var(--text-body); line-height:1.9; }
.public-app .hero .eyebrow { font-size:var(--text-small); letter-spacing:1.65px; }
.public-app .hero .actions { gap:15px 23px; }
.public-app .hero .text-link { font-size:var(--text-small); gap:12px; }
.public-app .hero-footnote { margin-top:26px; font-size:var(--text-small); }
.hero-photo { padding:0 10px 16px 0; }
.doctor-intro-card { position:relative; text-align:center; padding:30px 24px 40px; background:var(--surface-intro); border-radius:140px 140px 28px 28px; }
.card-eyebrow { font-size:var(--text-small); letter-spacing:1.7px; color:var(--text-accent); display:block; padding-top:15px; }
.portrait-orbit { position:relative; width:270px; max-width:100%; margin:23px auto 18px; padding:0 25px; }
.public-app .portrait { width:220px; height:220px; border-radius:50%; border:7px solid #fffdfa; object-position:center; aspect-ratio:1; }
.portrait-orbit>svg { position:absolute; }
.orbit-sun { width:52px; height:52px; left:-1px; top:16px; color:#8a6440; background:#f8dfb2; border-radius:50%; padding:9px; transform:rotate(-10deg); }
.orbit-spark { width:39px; height:39px; right:0; bottom:24px; color:#8074a2; }
.public-app .portrait-caption { position:static; padding:0; background:none; border:0; border-radius:0; box-shadow:none; }
.portrait-caption strong { font-size:var(--text-body); max-width:310px; margin:auto; }
.portrait-caption span { display:block; margin-top:5px; font-size:var(--text-small); }
.doctor-intro-card>p { font-size:var(--text-small); color:var(--text-on-intro); margin:18px 0 8px; }
.card-signature { font:italic var(--type-24)/1.4 Georgia,serif; color:var(--text-signature); }
.hero-floating-note { display:flex; align-items:center; gap:11px; position:absolute; left:-28px; bottom:-9px; padding:13px 18px; background:var(--paper); box-shadow:0 8px 28px #292d4912; border:1px solid var(--line); border-radius:13px; color:var(--muted); font-size:var(--text-small); line-height:var(--leading-body); }
.hero-floating-note svg { width:24px; height:24px; color:#a77b74; }
.public-app .intro-strip { background:var(--strip-surface); border-color:var(--strip-border); }
.intro-strip .container { justify-content:space-around; }
.intro-strip svg { width:23px; height:23px; color:var(--strip-icon); }
.public-app .intro-strip span { font-size:var(--text-small); gap:13px; }
.public-app .section { padding:82px 0; }
.public-app .section-header h2,.public-app .about-grid h2,.questions-grid h2 { font-size:clamp(1.9375rem,(.5rem + 3.3vw),2.6875rem); line-height:var(--leading-heading); letter-spacing:-1.4px; }
.public-app .section-kicker { font-size:var(--text-small); letter-spacing:1.65px; margin-bottom:18px; }
.public-app .section-header { margin-bottom:36px; }
.public-app .services { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.public-app .service { border:0; padding:25px 23px; border-radius:16px; background:var(--surface-lavender); }
.public-app .service:nth-child(2) { background:var(--surface-mint); }
.public-app .service:nth-child(3) { background:var(--surface-peach); }
.public-app .service:nth-child(4) { background:var(--surface-blue); }
.service-symbol { display:block; margin:0 0 24px; width:35px; height:35px; color:var(--primary); }
.public-app .service h3 { font-size:var(--type-17); line-height:1.45; }
.public-app .service p { font-size:var(--text-small); line-height:var(--leading-body); margin-bottom:0; }
.public-app .about-section { background:var(--surface-warm); }
.public-app .about-grid { grid-template-columns:1fr 1.15fr; gap:70px; }
.public-app .about-grid .about-motto { font:italic var(--type-26)/1.5 Georgia,serif; color:var(--text-warm); margin:28px 0 0; }
.public-app .about-grid p { font-size:var(--type-15); }
.specialty-tag { display:flex; align-items:center; gap:15px; font-size:var(--text-small); color:var(--muted); }
.specialty-tag svg { width:30px; height:30px; color:#9b8dac; }
.specialty-tag strong { font-weight:500; color:var(--ink); }
.credential-grid { border-top:1px solid var(--border-warm); display:grid; grid-template-columns:1fr 1fr 1.15fr; gap:40px; margin-top:43px; padding-top:28px; }
.credential-grid h3 { font:600 0.875rem var(--body); text-transform:uppercase; letter-spacing:1.1px; margin-bottom:15px; }
.credential-grid ul { margin:0; padding:0; list-style:none; }
.credential-grid li,.credential-grid p { font-size:var(--text-small); line-height:var(--leading-body); color:var(--muted); margin:0 0 6px; }
.credential-grid small { font-size:var(--text-small); color:var(--muted); display:block; margin-top:10px; line-height:var(--leading-body); }
.review-count { display:flex; align-items:center; gap:13px; }
.review-count>strong { font:400 var(--type-54)/1 var(--heading); color:var(--primary); letter-spacing:-2px; }
.review-count>span { font-size:var(--text-small); color:var(--muted); }
.reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start; }
.review-card { padding:25px; border:1px solid var(--line); border-radius:15px; min-width:0; }
.review-author { display:flex; align-items:center; gap:9px; }
.review-initial { background:var(--soft); width:31px; height:31px; border-radius:50%; display:grid; place-items:center; font-size:var(--text-small); flex-shrink:0; }
.review-author h3 { font:500 0.875rem var(--body); margin:0 0 3px; }
.review-author time,.review-reply time { font-size:var(--text-small); color:var(--muted); }
.review-source { font-size:var(--text-small); color:var(--muted); margin-left:auto; }
.review-card blockquote { margin:22px 0 18px; font-size:var(--text-small); line-height:var(--leading-body); color:var(--ink); }
.review-card blockquote p { margin:0; }
.review-visit { font-size:var(--text-small); line-height:var(--leading-body); color:var(--muted); margin:0; padding-top:15px; border-top:1px solid var(--line); }
.review-reply { margin-top:12px; font-size:var(--text-small); }
.review-reply :is(summary,.info-trigger) { min-height:44px; cursor:pointer; display:flex; align-items:center; text-decoration:underline; text-underline-offset:4px; color:var(--primary); }
.review-reply p { margin:8px 0; color:var(--muted); overflow-wrap:anywhere; }
.all-reviews { margin:25px 0 0; }
.all-reviews>:is(summary,.info-trigger) { width:fit-content; margin:0 auto 25px; min-height:44px; border:1px solid var(--line); border-radius:8px; font-size:var(--text-small); padding:10px 17px; display:flex; gap:20px; align-items:center; cursor:pointer; color:var(--primary); }
.all-reviews[open]>:is(summary,.info-trigger)>span { transform:rotate(45deg); }
.source-note { color:var(--muted); font-size:var(--text-small); line-height:var(--leading-body); margin:20px 0 0; }
.questions-section { background:var(--soft); }
.questions-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:80px; }
.questions-grid>div>p { font-size:var(--text-small); color:var(--muted); line-height:1.9; }
.questions-grid>div>.source-note { font-size:var(--text-small); }
.questions-grid .text-link { font-size:var(--text-small); gap:10px; }
.question { border-bottom:1px solid var(--line); }
.question:first-child { border-top:1px solid var(--line); }
.question>:is(summary,.info-trigger) { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:23px 0; font-size:var(--text-small); cursor:pointer; line-height:var(--leading-body); min-height:66px; }
.question>:is(summary,.info-trigger)>span { font-size:var(--type-20); color:var(--primary); }
.question[open]>:is(summary,.info-trigger)>span { transform:rotate(45deg); }
.question-content { font-size:var(--text-small); line-height:var(--leading-body); padding:0 0 15px; color:var(--muted); }
.question-content .question-label { font-size:var(--text-small); text-transform:uppercase; letter-spacing:.7px; margin:0 0 7px; color:var(--primary); }
.question-content blockquote { margin:0 0 15px; border-left:2px solid #aaa3c6; padding-left:17px; }
.post-category { display:block; font-size:var(--text-small); letter-spacing:1px; color:var(--primary); text-transform:uppercase; margin-top:21px; }
.public-app .post-card h3 { line-height:1.45; margin-top:8px; }
.public-app .post-card p { font-size:var(--text-small); }
.cover.agenda { background:var(--cover-lavender); }
.cover.agenda svg { color:var(--cover-lavender-ink); }
.cover.hojas { background:var(--cover-peach); }
.cover.hojas svg { color:var(--cover-peach-ink); }
.cover.ventana { background:var(--cover-mint); }
.cover.ventana svg { color:var(--cover-mint-ink); }
.social-section { display:flex; gap:25px; align-items:center; border:1px solid var(--line); border-radius:18px; padding:32px 40px; margin-bottom:82px!important; }
.social-section .section-kicker { margin-bottom:7px; }
.social-section h2 { font-size:var(--type-32); margin-bottom:9px; }
.social-section p { font-size:var(--text-small); color:var(--muted); margin-bottom:0; }
.social-section .text-link { font-size:var(--text-small); padding-bottom:0; overflow-wrap:anywhere; display:block; }
.social-section>.button { margin-left:auto; flex-shrink:0; font-size:var(--text-small); }
.social-mark { width:80px; height:80px; border-radius:50%; background:#f8eedb; padding:19px; color:#9d7b4e; flex-shrink:0; }
.public-app .site-footer { padding:30px 0; }
.site-footer strong { font-size:var(--text-small); font-weight:500; }
.site-footer p { font-size:var(--text-small); }
.footer-links { display:flex; gap:20px; font-size:var(--text-small); margin-top:8px; }
.footer-links a { min-height:44px; display:flex; align-items:center; }
.article-signature img { border-radius:50%; object-fit:cover; }
.public-app .author-line { flex-wrap:wrap; }
.article-body .editorial-note { font-size:var(--text-small); padding:16px 20px; background:var(--soft); border-radius:8px; }
.public-app.personal .hero { grid-template-columns:1fr 1.12fr; }
.personal .doctor-intro-card { background:var(--surface-intro); border-radius:160px 160px 8px 8px; }
.personal .card-eyebrow,.personal .card-signature,.personal .doctor-intro-card>p { color:var(--text-accent); }
.personal .hero-floating-note { left:auto; right:-15px; }
.personal .hero-copy h1 { letter-spacing:-2px; }
.public-app.personal .service { border-radius:3px; }
.personal .review-card,.personal .social-section { border-radius:4px; }
/* El panel conserva sus tareas y adopta los acentos de la cuenta. */
.doctor-app { --primary:#4d527f; --ink:#292d49; --muted:#626579; --app-line:#e3e1ec; --app-paper:#f8f8fb; color:var(--ink); }
.app-sidebar { background:#efedf6; border-color:#e0ddec; }
.app-brand>span,.app-sidebar nav a,.help-button,.app-brand strong { color:#535478; }
.app-sidebar nav a.selected { background:#dfdbef; color:#46436c; }
.app-sidebar nav a:hover { background:#e7e3f3; }
.app-brand small,.nav-heading,.sidebar-note,.account small { color:#6b667c; }
.account { border-color:#d9d4e5; }
.account img { flex-shrink:0; object-position:center; }
.account strong { font-size:var(--text-small); line-height:var(--leading-body); }
.app-topbar,.app-footer { color:#66667b; }
.small-avatar,.stat-icon,.site-shortcut { background:#efedf7; color:#6b648b; }
.site-shortcut a { border-color:#d9d4e5; }
.site-shortcut strong { color:#5b527d; }
.doctor-app .owner-bar { background:#f0eef7; color:#575172; border-color:#e1ddea; }
.doctor-app .trial-badge { background:#f1eff7; color:#615a79; border-color:#dcd7e8; }
@media(max-width:1100px) {
  .public-app .public-nav { display:none; }
  .public-app .mobile-menu { display:block; position:relative; }
  .mobile-menu summary { display:flex; gap:10px; align-items:center; min-height:44px; cursor:pointer; font-size:var(--text-small); }
  .mobile-menu nav { position:absolute; right:0; top:100%; background:var(--paper); border:1px solid var(--line); padding:15px; border-radius:10px; width:220px; z-index:10; box-shadow:0 10px 30px #292d4910; }
  .mobile-menu nav a { display:flex; align-items:center; padding:10px; min-height:44px; text-decoration:none; font-size:var(--text-small); }
  .public-app .hero { gap:6%; }
  .public-app .services { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reviews-grid { gap:12px; }
  .review-card { padding:18px; }
  .review-source { display:none; }
  .questions-grid { gap:45px; }
}
@media(max-width:800px) {
  .public-app .hero,.public-app.personal .hero { grid-template-columns:1fr 1fr; gap:6%; }
  .public-app .hero-copy h1 { font-size:var(--type-43); letter-spacing:-1.8px; }
  .public-app .hero-copy>p { font-size:var(--text-small); }
  .doctor-intro-card { padding:30px 12px; border-radius:100px 100px 20px 20px; }
  .portrait-orbit { width:226px; padding:0 13px; }
  .public-app .portrait { width:200px; height:200px; }
  .orbit-sun { width:43px; height:43px; left:-7px; }
  .orbit-spark { right:-6px; }
  .portrait-caption strong { font-size:var(--text-small); }
  .hero-floating-note { left:-10px; }
  .public-app .about-grid { gap:32px; }
  .credential-grid { gap:24px; }
  .reviews-grid { grid-template-columns:1fr; }
  .review-source { display:inline; }
  .review-card { padding:25px; }
  .questions-grid { grid-template-columns:1fr; gap:27px; }
  .social-section { padding:27px; flex-wrap:wrap; }
  .social-section>.button { margin-left:105px; }
}
@media(max-width:640px) {
  .public-app .container { width:calc(100% - 40px); }
  .public-app .header-inner { gap:12px; padding:15px 0; min-height:88px; }
  .doctor-brand { gap:8px; }
  .doctor-brand strong { font-size:var(--text-small); max-width:215px; line-height:1.4; }
  .doctor-brand small { font-size:var(--text-small); letter-spacing:0; }
  .doctor-monogram,.personal .doctor-monogram { width:30px; height:36px; }
  .doctor-monogram svg { width:25px; }
  .mobile-menu summary { font-size:var(--text-small); gap:5px; white-space:nowrap; }
  .public-app .hero,.public-app.personal .hero { display:flex; flex-direction:column; padding:34px 0 42px; gap:34px; align-items:stretch; }
  .public-app .hero-copy h1 { font-size:var(--type-43); max-width:440px; line-height:var(--leading-heading); }
  .public-app .hero-copy>p { font-size:var(--text-small); margin-bottom:23px; }
  .public-app .hero .eyebrow { font-size:var(--text-small); margin-bottom:18px; }
  .public-app .hero .actions { gap:9px 15px; }
  .public-app .hero .text-link { font-size:var(--text-small); }
  .public-app .hero-footnote { margin-top:14px; }
  .hero-photo { width:100%; max-width:370px; margin:0 auto; padding:0 9px 12px; }
  .doctor-intro-card { padding:20px 18px 26px; border-radius:110px 110px 22px 22px; }
  .portrait-orbit { width:250px; padding:0 15px; margin:21px auto 17px; }
  .public-app .portrait { width:220px; height:220px; }
  .portrait-caption strong { font-size:var(--type-15); }
  .card-eyebrow { padding-top:13px; }
  .hero-floating-note,.personal .hero-floating-note { left:0; right:auto; padding:10px 13px; font-size:var(--text-small); }
  .public-app .intro-strip .container { flex-direction:column; gap:15px; padding:23px 0; align-items:flex-start; }
  .public-app .intro-strip span { font-size:var(--text-small); }
  .public-app .section { padding:52px 0; }
  .public-app .section-header { display:block; margin-bottom:26px; }
  .public-app .section-header h2,.public-app .about-grid h2,.questions-grid h2 { font-size:var(--type-33); letter-spacing:-1.1px; }
  .public-app .section-header p { margin-top:20px; max-width:100%; font-size:var(--text-small); }
  .public-app .section-header>.text-link { margin-top:16px; }
  .public-app .services { grid-template-columns:1fr; gap:12px; }
  .public-app .service { padding:23px; }
  .service-symbol { margin-bottom:17px; }
  .public-app .service h3 { margin-bottom:11px; font-size:var(--text-reading); }
  .public-app .service p { font-size:var(--text-small); }
  .public-app .about-grid { display:block; }
  .public-app .about-grid .about-motto { font-size:var(--type-24); margin:22px 0 26px; }
  .credential-grid { grid-template-columns:1fr; gap:22px; margin-top:29px; }
  .credential-grid h3 { margin-bottom:10px; }
  .review-count { margin-top:23px; }
  .review-count>strong { font-size:var(--type-40); }
  .review-card { padding:23px; }
  .all-reviews>:is(summary,.info-trigger) { font-size:var(--text-small); gap:10px; }
  .public-app .post-grid { grid-template-columns:1fr; gap:34px; }
  .public-app .post-card h3 { font-size:var(--type-20); }
  .public-app .cover { height:205px; }
  .public-app .blog-feature { display:block; }
  .public-app .blog-feature>div { padding-top:23px; }
  .social-section { padding:25px; display:block; margin-bottom:52px!important; }
  .social-mark { width:57px; height:57px; padding:13px; margin-bottom:20px; }
  .social-section>.button { margin:18px 0 0; }
  .social-section .text-link { font-size:var(--text-small); }
  .public-app .footer-inner { display:block; }
  .site-footer .footer-note { text-align:left; margin-top:14px; max-width:100%; }
  .public-app .article-heading h1 { font-size:var(--type-37); }
  .public-app .article-signature { padding:18px; gap:12px; }
  .article-signature img { flex-shrink:0; }
  .article-signature strong { font-size:var(--text-small); }
  .article-signature p { font-size:var(--text-small); }
}

/* Plantilla 4 · Conecta. La paleta nativa se define en theme-tokens.css. */
.conecta.public-app { --heading:Arial,Helvetica,sans-serif; --body:Arial,Helvetica,sans-serif; font-family:var(--body); }
.c-shell { width:min(1160px,calc(100% - 96px)); margin-inline:auto; }
.c-main { overflow:clip; }
.conecta.public-app :is(h1,h2,h3,p,figure,blockquote) { margin-top:0; }
.conecta.public-app :is(h1,h2,h3) { font-family:var(--heading); font-weight:500; letter-spacing:-.045em; overflow-wrap:anywhere; }
.conecta.public-app h1 { font-size:clamp(2.75rem,(.5rem + 6.2vw),5rem); line-height:var(--leading-heading); }
.conecta.public-app h2 { font-size:clamp(2rem,(.5rem + 4.3vw),3.5rem); line-height:var(--leading-heading); margin-bottom:24px; }
.conecta p { line-height:var(--leading-body); }
.conecta.public-app [id] { scroll-margin-top:100px; }
.conecta.public-app :focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
.c-header { position:sticky; top:0; z-index:30; background:var(--paper); border-bottom:1px solid var(--line); }
.c-nav { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:86px; }
.c-brand { display:flex; gap:12px; align-items:center; min-width:0; text-decoration:none; color:var(--ink); font-size:var(--type-17); font-weight:600; letter-spacing:-.4px; }
.c-brand>span:last-child { min-width:0; }
.c-brand small { display:block; font-size:var(--text-small); font-weight:400; letter-spacing:.02em; margin-top:4px; color:var(--muted); }
.c-monogram { display:grid; place-items:center; flex-shrink:0; width:42px; height:42px; background:var(--primary); color:var(--button-ink); border-radius:10px; font-size:var(--text-body); }
.c-desktop-nav { display:flex; align-items:center; gap:22px; }
.c-desktop-nav a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; font-size:var(--text-small); }
.c-desktop-nav a:hover { text-decoration:underline; text-underline-offset:5px; }
.c-menu { display:none; }
.c-kicker { display:block; font:500 var(--text-small)/1.5 var(--body); letter-spacing:.09em; text-transform:uppercase; margin-bottom:20px; }
.c-hero { background:var(--c-vivid); color:var(--c-vivid-ink); }
.c-hero-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:60px; align-items:center; padding-block:64px; }
.c-hero-copy { max-width:680px; }
.c-hero h1 { margin-bottom:28px; }
.c-hero-copy>p { max-width:480px; font-size:var(--text-reading); color:var(--c-vivid-muted); }
.c-actions { display:flex; align-items:center; gap:12px 24px; flex-wrap:wrap; margin-top:32px; }
.c-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:52px; padding:15px 22px; border-radius:6px; font-size:var(--text-small); font-weight:600; line-height:1.4; text-decoration:none; background:var(--primary); color:var(--button-ink); }
.c-button-light { background:var(--c-vivid-ink); color:var(--c-vivid); }
.c-text-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:var(--text-small); color:var(--primary); text-underline-offset:5px; }
.c-hero .c-text-link { color:inherit; }
.c-hero :focus-visible { outline-color:var(--c-vivid-ink); }
.c-hero-footnote { display:block; margin-top:26px; font-size:var(--text-small); color:var(--c-vivid-muted); }
.c-hero-photo { width:100%; max-width:340px; margin:0 0 0 auto; background:var(--c-photo-surface); color:var(--c-vivid-ink); border-radius:10px; overflow:hidden; }
.c-hero-photo img { display:block; width:100%; height:380px; object-fit:cover; object-position:center 35%; }
.c-hero-photo figcaption { padding:22px 24px; }
.c-hero-photo figcaption strong { display:block; font-size:var(--type-17); font-weight:500; line-height:1.4; }
.c-hero-photo figcaption span { display:block; margin-top:6px; font-size:var(--text-small); line-height:var(--leading-body); color:var(--c-vivid-muted); }
.c-hero-photo figcaption a { display:inline-flex; align-items:center; gap:6px; min-height:44px; color:inherit; font-size:var(--text-small); text-underline-offset:4px; }
.c-hero-portrait { text-align:center; }
.c-hero-portrait img { height:220px; width:220px; object-fit:cover; margin:30px auto 0; border-radius:50%; }
.c-hero-portrait>.portrait-placeholder { margin-top:30px; }
.c-section { padding-block:96px; }
.c-section-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:40px; }
.c-section-heading h2 { margin-bottom:0; max-width:740px; }
.c-section-heading>p { max-width:300px; margin:0; font-size:var(--type-15); color:var(--muted); }
.c-section-heading>.c-text-link { flex-shrink:0; }
.c-service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.c-service { display:flex; flex-direction:column; min-width:0; padding:28px 24px; border:1px solid var(--line); border-radius:10px; background:var(--soft); }
.c-number { display:block; margin-bottom:52px; color:var(--primary); font-size:var(--text-small); font-variant-numeric:tabular-nums; }
.c-service h3 { font-size:var(--type-25); line-height:var(--leading-heading); margin-bottom:18px; }
.c-service p { margin-bottom:0; color:var(--muted); font-size:var(--text-small); }
.c-about { background:var(--c-ink-surface); color:var(--c-inverse-ink); padding-block:90px; }
.c-about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.c-about h2 { max-width:520px; font-size:clamp(2.25rem,(.5rem + 4.5vw),3.75rem); }
.c-about .c-kicker,.c-about .c-text-link { color:var(--c-inverse-accent); }
.c-about :focus-visible { outline-color:var(--c-inverse-accent); }
.c-about-copy { padding-top:34px; }
.c-about-copy>p { font-size:var(--text-reading); color:var(--c-inverse-muted); }
.c-specialty { margin-top:36px; padding-top:24px; border-top:1px solid var(--c-inverse-line); }
.c-specialty span { display:block; font-size:var(--text-small); margin-bottom:8px; color:var(--c-inverse-muted); }
.c-specialty strong { font-size:var(--type-22); font-weight:500; }
.c-credentials { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:32px; margin-top:44px; }
.c-credentials>div { border-top:2px solid var(--primary); padding-top:22px; }
.c-credentials h3 { font-size:var(--type-22); }
.c-credentials :is(p,ul,small) { font-size:var(--text-small); line-height:var(--leading-body); color:var(--muted); }
.c-credentials ul { padding-left:18px; }
.c-credentials li+li { margin-top:10px; }
.c-warm { background:var(--c-warm); }
.c-review-grid,.c-post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.c-review { padding:28px; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
.c-review blockquote { margin:0 0 30px; font-size:var(--type-20); line-height:1.45; letter-spacing:-.025em; }
.c-review-credit { display:flex; flex-direction:column; gap:8px; }
.c-review-credit strong { font-size:var(--text-small); }
.c-review time { font-size:var(--text-small); color:var(--muted); }
.c-review-visit { font-size:var(--text-small); color:var(--muted); margin-block:14px 0; }
.c-reply { margin-top:16px; font-size:var(--text-small); }
.c-reply p { margin-top:16px; }
.c-reply :is(summary,.info-trigger) { color:var(--primary); }
.c-all-reviews { margin-top:28px; }
.c-all-reviews :is(summary,.info-trigger) { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; padding:14px 0; border-block:1px solid var(--line); font-size:var(--text-small); cursor:pointer; }
.c-all-reviews[open] .c-review-grid { margin-top:24px; }
.c-note { font-size:var(--text-small); color:var(--muted); margin-top:22px; max-width:880px; }
.c-post { display:flex; flex-direction:column; min-width:0; text-decoration:none; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:var(--paper); color:var(--ink); }
.c-post .c-cover { height:210px; border-radius:0; margin:0; }
.c-post-copy { display:flex; flex-direction:column; flex:1; padding:28px; }
.c-post .c-kicker { font-size:var(--text-small); color:var(--muted); margin-bottom:14px; }
.c-post :is(h2,h3) { font-size:var(--type-26); line-height:var(--leading-heading); margin-bottom:16px; }
.c-post p { font-size:var(--text-small); color:var(--muted); margin-bottom:28px; }
.c-post-end { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:auto; font-size:var(--text-small); color:var(--muted); }
.c-post-end>span { display:flex; align-items:center; gap:6px; color:var(--primary); font-size:var(--text-small); }
.c-questions { display:grid; grid-template-columns:1fr 1.15fr; gap:80px; border-top:1px solid var(--line); }
.c-questions>div>p { color:var(--muted); }
.c-question { border-bottom:1px solid var(--line); }
.c-question:first-child { border-top:1px solid var(--line); }
.c-question :is(summary,.info-trigger) { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 0; font-size:var(--type-17); line-height:1.4; cursor:pointer; }
.c-question .ui-icon { flex-shrink:0; }
.c-question>div { padding-block:16px; }
.c-social { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; margin-bottom:96px; border-radius:12px; padding:48px; background:var(--soft); }
.c-social:not(:has(.c-social-posts)) { grid-template-columns:1fr; }
.c-social-copy>p { font-size:var(--text-body); color:var(--muted); }
.c-social-copy a { overflow-wrap:anywhere; }
.c-social-posts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.c-social-posts>a { text-decoration:none; min-width:0; }
.c-social-posts img { display:block; width:100%; height:auto; border-radius:8px; }
.c-social-posts span { display:flex; align-items:center; gap:6px; font-size:var(--text-small); padding-top:14px; color:var(--primary); }
.c-footer { padding-block:48px 28px; border-top:1px solid var(--line); }
.c-footer-top { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.c-footer-links { display:flex; align-items:center; flex-wrap:wrap; gap:8px 24px; }
.c-footer-links a { display:inline-flex; align-items:center; gap:6px; min-height:44px; font-size:var(--text-small); }
.c-footer-bottom { display:flex; justify-content:space-between; gap:24px; padding-top:32px; margin-top:24px; border-top:1px solid var(--line); font-size:var(--text-small); color:var(--muted); }
.c-blog-heading { padding-block:70px; background:var(--c-vivid); color:var(--c-vivid-ink); }
.c-blog-heading h1 { max-width:950px; margin-bottom:26px; }
.c-blog-heading p { max-width:520px; color:var(--c-vivid-muted); margin:0; font-size:var(--text-reading); }
.c-pagination { display:flex; justify-content:center; gap:12px; margin-top:40px; }
.c-pagination :is(button,a) { display:grid; place-items:center; min-width:44px; min-height:44px; border:1px solid var(--line); border-radius:6px; background:var(--paper); color:var(--primary); text-decoration:none; }
.c-pagination [aria-current] { background:var(--primary); color:var(--button-ink); }
.c-article { padding-block:32px 80px; }
.c-article-heading { max-width:880px; margin:50px auto 36px; }
.c-article-heading h1 { font-size:clamp(2.25rem,(.5rem + 5.2vw),4.25rem); }
.c-article-heading>p { max-width:700px; color:var(--muted); font-size:var(--type-20); }
.c-byline,.c-article-author { display:flex; align-items:center; gap:14px; }
.c-byline :is(img,.portrait-placeholder) { width:40px; height:40px; min-height:40px; font-size:var(--text-body); border-radius:50%; }
.c-byline strong { display:block; font-size:var(--text-small); }
.c-byline span { display:block; font-size:var(--text-small); color:var(--muted); margin-top:6px; }
.c-article .c-article-cover { max-width:880px; margin:0 auto 48px; height:380px; border-radius:10px; }
.c-article-body { max-width:720px; margin-inline:auto; font-size:var(--text-reading); }
.c-article-body h2 { font-size:var(--type-30); letter-spacing:-.025em; }
.c-article-author { padding-block:32px; margin-top:32px; border-top:1px solid var(--line); }
.c-article-author :is(img,.portrait-placeholder) { width:64px; height:64px; min-height:64px; flex-shrink:0; border-radius:50%; font-size:var(--type-24); }
.c-article-author strong { font-size:var(--text-body); }
.c-article-author p { margin:4px 0 0; font-size:var(--text-small); color:var(--muted); }
@media(max-width:1100px) {
  .c-shell { width:calc(100% - 64px); }
  .c-desktop-nav { display:none; }
  .c-menu { display:block; }
  .c-hero-grid { gap:36px; }
  .c-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .c-about-grid,.c-questions { gap:44px; }
  .c-review,.c-post-copy { padding:22px; }
  .c-social { gap:36px; padding:32px; }
}
@media(max-width:650px) {
  .c-shell { width:calc(100% - 40px); }
  .c-nav { width:calc(100% - 24px); min-height:64px; gap:10px; flex-wrap:nowrap; }
  .c-nav>.c-brand { flex:1 1 0; min-width:0; font-size:var(--text-small); gap:8px; }
  .c-nav .c-brand>span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .c-nav .c-brand small { font-size:var(--text-small); }
  .c-nav .c-monogram { width:28px; height:28px; font-size:var(--text-small); border-radius:6px; }
  .c-nav .theme-header-tools { gap:6px; margin:0; }
  .c-nav .theme-control select { width:88px; max-width:88px; padding-inline:8px; }
  .c-menu summary { width:44px; min-width:44px; min-height:44px; justify-content:center; padding:0; border:1px solid var(--line); border-radius:8px; }
  .c-menu summary>.menu-label { display:none; }
  .c-menu nav { right:0; min-width:210px; }
  .conecta.public-app h1 { font-size:clamp(2.375rem,(.5rem + 10vw),3.5rem); }
  .conecta.public-app h2 { font-size:var(--type-34); }
  .c-kicker { font-size:var(--text-small); margin-bottom:18px; }
  .c-hero-grid { grid-template-columns:1fr; padding-block:36px; gap:36px; }
  .c-hero-copy>p { font-size:var(--text-body); }
  .c-actions { gap:8px 20px; margin-top:24px; }
  .c-button { padding-inline:16px; font-size:var(--text-small); }
  .c-hero-footnote { margin-top:16px; }
  .c-hero-photo { max-width:260px; margin-inline:auto; }
  .c-hero-photo img { height:270px; }
  .c-hero-photo figcaption { padding:18px 20px; }
  .c-hero-portrait img { height:180px; width:180px; }
  .c-section { padding-block:60px; }
  .c-section-heading { align-items:start; flex-direction:column; gap:18px; margin-bottom:28px; }
  .c-section-heading>p { max-width:none; }
  .c-service-grid,.c-review-grid,.c-post-grid { grid-template-columns:1fr; }
  .c-number { margin-bottom:36px; }
  .c-about { padding-block:56px; }
  .c-about-grid,.c-questions { grid-template-columns:1fr; gap:28px; }
  .c-about-copy { padding-top:0; }
  .c-about-copy>p { font-size:var(--text-body); }
  .c-credentials { gap:20px; margin-top:30px; }
  .c-social { grid-template-columns:1fr; padding:28px 20px; margin-bottom:60px; }
  .c-social-posts { gap:12px; }
  .c-social-copy a { font-size:var(--text-small); }
  .c-footer-top,.c-footer-bottom { align-items:start; flex-direction:column; gap:16px; }
  .c-blog-heading { padding-block:44px; }
  .c-blog-heading p { font-size:var(--text-body); }
  .c-article-heading { margin-top:28px; }
  .c-article-heading h1 { font-size:var(--type-38); }
  .c-article-heading>p { font-size:var(--type-17); }
  .c-article .c-article-cover { height:230px; margin-bottom:32px; }
  .c-article-body { font-size:var(--type-17); }
  .c-article-body h2 { font-size:var(--type-28); }
}
@media(max-width:359px) { .c-nav .c-monogram { display:none; } }

/* Tareas primero: preparación y llegada mantienen lectura vertical. */
.c-hero-grid { grid-template-columns:minmax(0,1fr) 240px; padding-block:40px; gap:48px; }
.conecta.public-app .c-hero h1 { font-size:clamp(2.375rem,(.5rem + 4.8vw),3.875rem); max-width:720px; margin-bottom:20px; }
.c-hero-copy .c-hero-name { color:var(--c-vivid-ink); font-size:var(--text-body); margin-bottom:14px; }
.c-hero .c-kicker { margin-bottom:12px; }
.c-hero-photo { max-width:240px; }
.c-hero-photo img { height:220px; }
.c-hero-photo figcaption { padding:14px 18px; }
.c-visit { padding-block:64px 24px; }
.c-visit-grid { display:grid; grid-template-columns:1.1fr 1fr; border-block:1px solid var(--line); }
.c-visit-main { padding:36px; background:var(--soft); }
.c-visit-support { padding-left:36px; }
.c-visit-support>div { padding-block:28px; }
.c-visit-support>div+div { border-top:1px solid var(--line); }
.c-visit h3 { font-size:var(--type-28); margin-bottom:16px; }
.c-visit p { color:var(--muted); font-size:var(--type-15); }
.c-visit .c-kicker { color:var(--primary); margin-bottom:14px; }
.c-visit-steps { padding-left:22px; margin:28px 0 0; font-size:var(--text-small); line-height:var(--leading-body); }
.c-visit-steps li { padding:8px 0 8px 6px; }
.c-visit-steps li::marker { color:var(--primary); font-weight:600; }
.c-service { background:var(--paper); border-width:1px 0 0; border-radius:0; padding-inline:12px; }
.c-number { margin-bottom:28px; }
.c-reading-list { display:grid; gap:0; }
.c-reading-list .c-post { display:grid; grid-template-columns:240px minmax(0,1fr); gap:32px; padding-block:28px; border:0; border-bottom:1px solid var(--line); border-radius:0; }
.c-reading-list .c-cover { height:190px; border-radius:6px; }
.c-reading-list .c-post-copy { padding:0; }
.c-reading-list .c-post p { max-width:680px; margin-bottom:20px; }
.conecta.public-app .c-blog-heading h1 { font-size:clamp(2.25rem,(.5rem + 4.5vw),3.5rem); max-width:800px; }
.c-blog-heading { padding-block:40px; }
.c-article-heading { max-width:760px; margin:28px auto; }
.conecta.public-app .c-article-heading h1 { font-size:clamp(2rem,(.5rem + 4vw),3rem); }
.c-article .c-article-cover { max-width:760px; height:280px; margin-bottom:32px; }
@media(max-width:650px) {
  .c-hero-grid { grid-template-columns:1fr; gap:24px; padding-block:28px; }
  .c-hero-photo { display:flex; align-items:center; width:100%; max-width:none; text-align:left; }
  .c-hero-photo>picture { flex:0 0 88px; }
  .c-hero-photo img,.c-hero-portrait img { width:88px; height:132px; margin:0; border-radius:0; }
  .c-hero-photo figcaption { padding:12px 16px; }
  .c-hero-portrait>.portrait-placeholder { margin:12px; flex-shrink:0; }
  .c-hero-photo figcaption strong { font-size:var(--text-small); }
  .c-hero .c-actions { gap:8px 18px; }
  .c-hero .c-button { width:100%; }
  .c-visit { padding-block:40px 0; }
  .c-visit-grid { grid-template-columns:1fr; }
  .c-visit-main { padding:24px 20px; }
  .c-visit-support { padding-left:0; }
  .c-visit h3 { font-size:var(--type-25); }
  .c-reading-list .c-post { grid-template-columns:1fr; gap:20px; }
  .c-reading-list .c-cover { height:180px; }
  .c-article .c-article-cover { height:210px; }
}
.conecta.public-app .c-reading-list .c-post h2 { font-size:clamp(1.5625rem,(.5rem + 2.6vw),2.125rem); line-height:var(--leading-heading); margin-bottom:16px; }
.c-blog-heading+.c-section { padding-top:32px; }

/* Primera pantalla inmersiva: fotografía integrada y contenido sin alturas rígidas. */
.conecta { --c-preview-height:0px; --c-header-height:86px; }
.conecta:has(.owner-bar) { --c-preview-height:68px; }
.c-header-immersive { background:var(--c-hero-surface); color:var(--c-vivid-ink); border-bottom-color:var(--c-inverse-line); }
.c-header-immersive .c-brand,.c-header-immersive .c-brand small,.c-header-immersive .c-desktop-nav a { color:inherit; }
.c-header-immersive .c-monogram { background:var(--c-vivid-ink); color:var(--c-hero-surface); }
.c-header-immersive .theme-control { color:var(--c-vivid-ink); }
.c-header-immersive .theme-control select,.c-header-immersive .c-menu summary { background:var(--c-hero-surface); color:var(--c-vivid-ink); border-color:var(--c-inverse-line); }
.c-header-immersive .c-menu nav { background:var(--paper); color:var(--ink); }
.c-header-immersive :focus-visible { outline-color:var(--c-hero-accent); }
.c-hero-immersive { position:relative; isolation:isolate; background:var(--c-hero-surface); }
.c-hero-backdrop { position:absolute; z-index:-2; inset:0 0 0 48%; overflow:hidden; }
.c-hero-backdrop picture { display:block; width:100%; height:100%; }
.c-hero-backdrop img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.c-hero-backdrop .portrait-placeholder { width:100%; height:100%; display:grid; place-items:center; font-size:clamp(6.25rem,(.5rem + 20vw),18.75rem); background:var(--c-photo-surface); color:var(--c-vivid-muted); }
.c-hero-immersive::before { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,var(--c-hero-surface) 0%,var(--c-hero-surface) 42%,var(--c-hero-shade) 53%,transparent 83%); }
.c-hero-stage { display:flex; flex-direction:column; justify-content:center; min-height:calc(100svh - var(--c-header-height) - var(--c-preview-height)); padding-block:56px 88px; position:relative; }
.c-hero-immersive .c-hero-copy { width:58%; max-width:720px; }
.conecta.public-app .c-hero-immersive h1 { font-size:clamp(3rem,(.5rem + 5.5vw),5rem); line-height:var(--leading-heading); font-weight:600; letter-spacing:-.045em; margin-bottom:28px; }
.c-hero-immersive .c-kicker { color:var(--c-hero-accent); }
.c-hero-immersive .c-hero-copy>p { max-width:510px; }
.c-hero-immersive .c-button { border-radius:999px; background:var(--c-vivid-ink); color:var(--c-hero-surface); }
.c-hero-immersive .c-actions { align-items:flex-start; flex-direction:column; gap:12px; }
.c-hero-shortcuts { display:flex; gap:12px 24px; flex-wrap:wrap; }
.c-hero-immersive .c-hero-footnote { max-width:420px; margin-top:14px; }
.c-hero-bottom { position:absolute; bottom:22px; left:0; right:0; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.c-hero-explore,.c-hero-source { display:inline-flex; align-items:center; gap:10px; min-height:44px; color:var(--c-vivid-ink); font-size:var(--text-small); text-underline-offset:4px; }
.c-hero-explore>.ui-icon { transform:rotate(90deg); }
.c-hero-source { padding:8px 14px; border-radius:999px; background:var(--c-hero-surface); }
@media(max-width:900px) {
  .c-hero-immersive .c-hero-copy { width:68%; }
  .conecta.public-app .c-hero-immersive h1 { font-size:clamp(2.625rem,(.5rem + 6.5vw),3.75rem); }
}
@media(max-width:650px) {
  .conecta { --c-header-height:64px; }
  .conecta:has(.owner-bar) { --c-preview-height:119px; }
  .c-hero-stage { padding-block:40px 104px; }
  .c-hero-immersive .c-hero-copy { width:100%; }
  .c-hero-backdrop { inset:0; }
  .c-hero-backdrop img { object-position:65% 25%; }
  .c-hero-immersive::before { background:linear-gradient(90deg,var(--c-hero-shade),var(--c-hero-shade)); }
  .conecta.public-app .c-hero-immersive h1 { font-size:clamp(2.5rem,(.5rem + 10vw),3.625rem); }
  .c-hero-immersive .c-hero-copy>p { max-width:100%; }
  .c-hero-immersive .c-button { width:auto; max-width:100%; }
  .c-hero-bottom { bottom:18px; flex-wrap:wrap; gap:0 12px; }
  .c-hero-explore,.c-hero-source { font-size:var(--text-small); }
}
@media(min-width:651px) {
  .c-hero-backdrop img { object-fit:contain; object-position:right bottom; }
  .c-hero-immersive::before { background:linear-gradient(90deg,var(--c-hero-surface) 0%,var(--c-hero-surface) 45%,var(--c-hero-shade) 57%,transparent 85%); }
}
@media(min-width:901px) and (max-height:800px) {
  .c-hero-stage { padding-block:30px 68px; }
  .conecta.public-app .c-hero-immersive h1 { font-size:clamp(2.75rem,(.5rem + 4.8vw),4rem); margin-bottom:18px; }
  .c-hero-immersive .c-actions { margin-top:22px; gap:4px; }
  .c-hero-immersive .c-hero-footnote { margin-top:6px; }
}
.conecta { --c-header-height:87px; }
.conecta:has(.owner-bar) { --c-preview-height:69px; }
.c-hero-bottom { justify-content:flex-start; gap:12px 32px; padding-right:140px; }
@media(min-width:651px) {
  .c-hero-backdrop img { width:auto; max-width:100%; margin-left:auto; mask-image:linear-gradient(90deg,transparent,#000 32%); }
}
@media(max-width:650px) {
  .conecta { --c-header-height:65px; }
  .conecta:has(.owner-bar) { --c-preview-height:119px; }
  .c-hero-bottom { padding-right:90px; gap:0 12px; }
}
/* La información de visita conserva la portada inmersiva. */
.c-hero-immersive .visit-hours { color:var(--c-vivid-ink); }
.c-hero-immersive .visit-confirmation { color:var(--c-vivid-muted); max-width:48ch; }
.c-post-end { flex-wrap:wrap; gap:.5rem 1rem; }
.conecta.public-app .c-blog-heading .breadcrumb { color:inherit; }
.c-service>.c-text-link { margin-top:1rem; }

/* Personalización de Conecta: retrato y tarjetas, sin alterar otras propuestas. */
.c-hero-personal { background:var(--c-hero-surface); overflow:hidden; }
.c-portrait-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:3rem; align-items:center; }
.c-hero-personal .c-hero-copy { padding-block:3.5rem; }
.c-hero-personal .c-kicker { color:var(--c-hero-accent); }
.conecta.public-app .c-hero-personal h1 { font-size:clamp(2.375rem,(1rem + 3.5vw),4rem); max-width:14ch; }
.c-hero-personal .c-hero-name { font-weight:600; color:var(--c-vivid-ink); }
.c-hero-personal .c-actions { align-items:start; flex-direction:column; gap:.75rem; }
.c-hero-personal .visit-hours { color:var(--c-vivid-ink); }
.c-hero-personal .visit-confirmation { color:var(--c-vivid-muted); }
.c-portrait-frame { align-self:end; width:100%; max-width:26.25rem; margin:0 0 0 auto; overflow:hidden; }
.c-portrait-frame picture { display:block; }
.c-portrait-frame img { display:block; width:100%; height:auto; margin-top:-30%; }
.c-task-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.c-info-card { display:flex; flex-direction:column; align-items:start; min-width:0; padding:1.75rem; border:1px solid var(--line); border-radius:1.25rem; background:var(--paper); }
.c-info-card h3 { font-size:var(--type-25); margin-bottom:1rem; }
.c-info-card p,.c-info-card li { color:var(--muted); font-size:var(--text-body); overflow-wrap:anywhere; }
.c-info-card .c-button { margin-top:auto; max-width:100%; text-align:center; }
.c-card-symbol { display:inline-flex; align-items:center; justify-content:center; padding:.8rem; border-radius:.875rem; background:var(--soft); color:var(--primary); margin-bottom:1.5rem; }
.c-info-card .c-kicker { font-size:var(--text-small); margin-bottom:.5rem; }
.c-card-detail { display:grid; gap:.5rem; width:100%; padding-top:1rem; margin-top:auto; border-top:1px solid var(--line); font-size:var(--text-small); line-height:var(--leading-body); }
.c-card-detail span { color:var(--muted); }
.c-about-personal .c-about-grid { gap:3rem; }
.c-about-personal .c-about-copy { padding-top:0; }
.c-specialty-label { color:var(--c-inverse-muted); font-size:var(--text-body); }
.c-preparation-shortcuts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-top:2.5rem; }
.c-preparation-shortcut { display:flex; flex-direction:column; align-items:start; gap:.75rem; padding:1.25rem; border:1px solid var(--c-inverse-line); border-radius:1rem; color:var(--c-inverse-ink); text-decoration:none; }
.c-preparation-shortcut>svg { color:var(--c-inverse-accent); }
.c-preparation-shortcut strong { font-size:var(--type-17); line-height:var(--leading-heading); }
.c-preparation-shortcut>span { color:var(--c-inverse-muted); font-size:var(--text-small); line-height:var(--leading-body); }
.c-preparation-shortcut .c-shortcut-action { display:inline-flex; align-items:center; gap:.5rem; color:var(--c-inverse-accent); margin-top:auto; padding-top:.75rem; }
.c-preparation-shortcut:hover { border-color:var(--c-inverse-accent); }
.c-preparation-shortcut:hover strong { text-decoration:underline; text-underline-offset:.25rem; }
.c-preparation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.c-preparation-grid ul { margin:0; padding-left:1.25rem; }
.c-preparation-grid li+li { margin-top:.75rem; }
@media(max-width:900px) {
  .c-task-grid { grid-template-columns:1fr; }
  .c-preparation-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .c-portrait-layout { gap:1.5rem; }
}
@media(max-width:650px) {
  .c-portrait-layout { grid-template-columns:1fr; gap:0; }
  .c-hero-personal .c-hero-copy { padding-block:2.5rem 2rem; }
  .c-portrait-frame { width:min(100%,17.5rem); margin-inline:auto; }
  .c-hero-personal .c-button { width:100%; }
  .c-preparation-grid { grid-template-columns:1fr; }
  .c-about-personal .c-about-grid { gap:1rem; }
  .c-info-card { padding:1.5rem; }
  .c-preparation-shortcut { padding:1rem; }
}
@media(max-width:359px) {
  .c-preparation-shortcuts { grid-template-columns:1fr; }
}

/* Ubicación compartida: los datos y las vistas se mantienen en las tres plantillas. */
.public-app .location-section {
  --location-radius:12px;
  padding-block:40px 24px;
  background:var(--location-background);
  color:var(--location-ink);
}
.public-app .location-section[id] { scroll-margin-top:110px; }
.personal.public-app .location-section {
  --location-radius:18px;
}
.jardin.public-app .location-section {
  --location-radius:4px;
}
.location-heading { display:flex; align-items:center; justify-content:space-between; gap:16px 28px; margin-bottom:20px; }
.location-heading>div { min-width:0; }
.public-app .location-heading h2 { font:600 var(--type-30)/1.2 var(--heading); letter-spacing:-.8px; margin:0 0 8px; }
.location-heading h3 { font-size:var(--text-body); margin:0 0 6px; }
.location-heading address { font:400 var(--text-small)/1.6 var(--body); color:var(--location-muted); max-width:600px; overflow-wrap:anywhere; }
.location-directions { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:44px; padding:9px 16px; border:1px solid var(--location-line); border-radius:var(--location-radius); color:var(--location-link); font-size:var(--text-small); text-decoration:none; flex-shrink:0; }
.location-directions:hover { text-decoration:underline; text-underline-offset:4px; }
.location-section [hidden] { display:none!important; }
.location-tools { display:flex; flex-wrap:wrap; gap:8px; }
.location-section button.location-directions { background:transparent; font-family:var(--body); cursor:pointer; }
.location-section button:disabled { cursor:wait; }
.location-copy-status { font-size:var(--text-small); margin:0 0 12px; color:var(--location-ink); }
.location-copy-status:empty { margin:0; }
.location-copy-fallback { display:block; font-size:var(--text-small); margin-bottom:20px; }
.location-copy-fallback textarea { display:block; width:100%; margin-top:8px; padding:12px; color:var(--ink); background:var(--paper); border:1px solid var(--line); font:inherit; }
.location-hours { font-size:var(--text-small); color:var(--location-muted); }
.location-map-stage { position:relative; height:320px; }
.location-placeholder { display:flex; align-items:flex-start; justify-content:center; flex-direction:column; gap:14px; height:100%; padding:28px; background:var(--soft); }
.location-placeholder .ui-icon { color:var(--primary); }
.location-placeholder strong { font:600 var(--type-23)/1.2 var(--heading); }
.location-placeholder p { margin:0; max-width:32ch; font-size:var(--text-small); color:var(--muted); }
.location-map-stage:has(.location-map-activate:not([hidden])) .location-placeholder { padding-bottom:84px; }
.location-map-activate { position:absolute; inset:0; z-index:1; display:flex; align-items:flex-end; width:100%; padding:20px 28px; border:0; background:transparent; color:var(--primary); font:600 var(--text-small)/1.5 var(--body); text-align:left; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.location-map-activate:hover:not(:disabled) { box-shadow:inset 0 0 0 2px var(--primary); }
.public-app .location-view .location-map-activate:focus-visible { outline:3px solid var(--focus); outline-offset:-4px; }
.location-map-stage iframe { position:absolute; inset:0; }
.location-load-controls { padding:16px 20px 0; }
.location-load-controls:has(p:empty) { display:none; }
.location-load-controls p { font-size:var(--text-small); color:var(--muted); line-height:var(--leading-body); margin:10px 0; }
.location-load-controls p:empty { margin:0; }
.location-view button:focus-visible,.location-copy-fallback textarea:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
.location-clinic+.location-clinic { margin-top:28px; }
.location-views { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.location-view { margin:0; min-width:0; overflow:hidden; border:1px solid var(--location-line); border-radius:var(--location-radius); background:var(--paper); color:var(--ink); }
.location-view:only-child { grid-column:1 / -1; }
.location-view iframe { display:block; width:100%; height:320px; border:0; background:var(--soft); }
.location-view figcaption a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; padding:10px 16px; font-size:var(--text-small); color:var(--primary); text-decoration:none; }
.location-view figcaption a:hover { text-decoration:underline; text-underline-offset:4px; }
.location-view :is(a,iframe):focus-visible { outline:3px solid var(--primary); outline-offset:-4px; }
.location-appointment { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:0 16px; margin:10px 0 0; color:var(--location-muted); font-size:var(--text-small); }
.location-appointment a { display:inline-flex; align-items:center; gap:10px; min-height:44px; color:var(--location-link); text-underline-offset:4px; }
.public-app .location-section :is(.location-directions,.location-appointment a):focus-visible { outline:3px solid var(--location-link); outline-offset:4px; }
@media(max-width:700px) {
  .public-app .location-section { padding-block:28px 18px; }
  .public-app .location-section[id] { scroll-margin-top:145px; }
  .location-heading { flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:16px; }
  .public-app .location-heading h2 { font-size:var(--type-27); }
  .location-heading address { font-size:var(--text-small); }
  .location-views { grid-template-columns:1fr; gap:16px; }
  .location-view iframe,.location-map-stage { height:280px; }
}

/* Invitación editorial compartida; colores del contrato de cada plantilla. */
.article-contact { margin:32px 0; padding:clamp(22px,4vw,36px); border:1px solid var(--line); border-radius:12px; background:var(--soft); color:var(--ink); }
.personal .article-contact { border-radius:24px; }
.jardin .article-contact { border-radius:4px; }
.article-body .article-contact h2 { margin:0 0 12px; font:600 clamp(1.4375rem,4vw,1.875rem)/1.2 var(--heading); color:var(--ink); }
.article-body .article-contact p { margin:0 0 20px; color:var(--muted); font-size:var(--text-body); }
.article-contact-action { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:12px 20px; background:var(--primary); color:var(--button-ink); border-radius:8px; font:600 var(--text-small)/1.5 var(--body); text-decoration:none; }
.public-app .article-body .article-contact .article-contact-action { color:var(--button-ink); text-decoration:none; }
.personal .article-contact-action { border-radius:100px; }
.jardin .article-contact-action { border-radius:4px; }
.article-contact-action:hover { text-decoration:underline; text-underline-offset:4px; }
.article-contact-action:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }

/* Navegación y lectura de la salida pública sin dependencia del editor. */
.seo-contents,.seo-related { margin-block:30px; padding:22px; border:1px solid var(--line); border-radius:8px; background:var(--soft); }
.seo-contents strong { display:block; font-size:var(--text-body); color:var(--ink); }
.seo-contents ul,.seo-related ul { margin:12px 0 0; padding-left:22px; }
.seo-contents a,.seo-related a { display:inline-block; padding-block:8px; color:var(--primary); }
.seo-related h2 { font-size:var(--type-22); margin:0; }
.seo-breadcrumb { max-width:1160px; margin:22px auto; padding:0 24px; font-size:var(--text-small); line-height:var(--leading-body); color:var(--muted); }
.seo-breadcrumb ol { display:flex; flex-wrap:wrap; gap:8px; padding:0; list-style:none; }
.seo-breadcrumb li+li::before { content:'/'; margin-right:8px; }
.seo-breadcrumb a { display:inline-block; padding-block:8px; color:var(--primary); }
.seo-pagination a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px; border:1px solid var(--line); color:var(--ink); text-decoration:none; border-radius:5px; font:inherit; }
.seo-pagination a[aria-current] { background:var(--g-button,var(--primary)); color:var(--g-button-ink,#fff); border-color:var(--primary); }
.seo-error { max-width:700px; margin:70px auto; padding:30px; }
.seo-error h1 { font-size:clamp(1.875rem,(.5rem + 6vw),3rem); }
.seo-contents h2,[id^="seccion-"] { scroll-margin-top:110px; }

/* Contrato visual compartido. Solo aquí se definen las parejas claro/oscuro.
   Los componentes consumen roles; el navegador elige mediante color-scheme.
   Los colores de fotografías, mapas e ilustraciones decorativas se conservan. */
:root { --boot-paper:light-dark(#fffefa,#191925); }
.public-app.conecta {
  --paper:light-dark(#fffefb,#171719);
  --soft:light-dark(#f1f0f8,#242329);
  --primary:light-dark(#4941da,#bdb7ff);
  --ink:light-dark(#202024,#f4f2f9);
  --muted:light-dark(#606067,#b9b7c3);
  --line:light-dark(#dcd9e6,#44414f);
  --button-ink:light-dark(#fff,#21164d);
  --c-vivid:light-dark(#4941da,#302b8e);
  --c-vivid-ink:#fff;
  --c-vivid-muted:#e6e3ff;
  --c-hero-surface:light-dark(#302b83,#201c57);
  --c-hero-shade:light-dark(#302b83e8,#201c57ed);
  --c-hero-accent:light-dark(#d5f5bf,#d5f5bf);
  --c-photo-surface:light-dark(#332dad,#242065);
  --c-warm:light-dark(#f4f0e9,#23211f);
  --c-ink-surface:#24232a;
  --c-inverse-ink:#fff;
  --c-inverse-muted:#d0cdd9;
  --c-inverse-accent:#c6bfff;
  --c-inverse-line:#575362;
  --bar-surface:var(--soft);
  --bar-ink:var(--muted);
  --bar-border:var(--line);
  --badge-surface:var(--paper);
  --badge-ink:var(--muted);
  --location-background:var(--soft);
  --location-ink:var(--ink);
  --location-muted:var(--muted);
  --location-line:var(--line);
  --location-link:var(--primary);
}
:root, .public-app {
  --paper:light-dark(#fffefa,#191925);
  --soft:light-dark(#f0eff8,#242435);
  --primary:light-dark(#4d527f,#c0bff4);
  --ink:light-dark(#292d49,#f1f0fa);
  --muted:light-dark(#626579,#b8b8ce);
  --line:light-dark(#e3e1ec,#414158);
  --button-ink:light-dark(#fff,#1d1d30);
  --focus:var(--primary);
  --g-button:var(--primary);
  --g-button-ink:var(--button-ink);
  --whatsapp-surface:light-dark(#116b46,#9be9bf);
  --whatsapp-ink:light-dark(#fff,#103223);
  --whatsapp-border:light-dark(#d0f5df,#386c50);
  --whatsapp-shadow:light-dark(#10322326,#00000050);

  --modal-backdrop:light-dark(#181b306b,#070812a3);
  --modal-shadow:light-dark(#11152633,#00000066);

  --surface-raised:var(--paper);
  --surface-lavender:light-dark(#f1f0f8,#292638);
  --surface-mint:light-dark(#edf2ed,#23312c);
  --surface-peach:light-dark(#f8eee7,#332a29);
  --surface-blue:light-dark(#edf2f7,#242e3e);
  --surface-warm:light-dark(#f6f4ee,#25252e);
  --surface-intro:light-dark(#eae8f5,#2d2944);
  --text-accent:light-dark(#595478,#c3bddd);
  --text-signature:light-dark(#665b86,#cfc0ed);
  --text-on-intro:light-dark(#69647f,#bbb2d1);
  --text-warm:light-dark(#79655e,#d3bdb2);
  --border-warm:light-dark(#e1ddd3,#48464e);
  --strip-surface:light-dark(#f7f5ee,#25262c);
  --strip-border:light-dark(#eee9df,#434450);
  --strip-icon:light-dark(#858078,#c5c0b8);

  --bar-surface:light-dark(#f0eef7,var(--soft));
  --bar-ink:light-dark(#575172,var(--muted));
  --bar-border:light-dark(#e1ddea,var(--line));
  --badge-surface:light-dark(#f1eff7,var(--paper));
  --badge-ink:light-dark(#615a79,var(--muted));
  --preview-surface:var(--soft);
  --preview-ink:var(--ink);
  --cover-lavender:light-dark(#e8e5f2,#302a45);
  --cover-lavender-ink:light-dark(#8b83a9,#c3b6e8);
  --cover-peach:light-dark(#f3e4d5,#392d26);
  --cover-peach-ink:light-dark(#a67e63,#dcba9e);
  --cover-mint:light-dark(#e5eee9,#23382e);
  --cover-mint-ink:light-dark(#7e9c90,#b1d5c5);

  /* Sección de ubicación de Clínica: contraste inverso en ambos modos. */
  --location-background:light-dark(#414769,#252b43);
  --location-ink:#fff;
  --location-muted:#e2e4f0;
  --location-line:#ffffff66;
  --location-link:#fff;
}
.public-app.clinica {
  --k-hero-surface:light-dark(#f7f8f3,#182832);
  --paper:light-dark(#ffffff,#14212b);
  --soft:light-dark(#f3f6f7,#1c2d39);
  --primary:light-dark(#214f66,#a8d4e8);
  --ink:light-dark(#173b50,#edf4f8);
  --muted:light-dark(#536775,#b6c9d4);
  --line:light-dark(#d6e0e4,#405563);
  --button-ink:light-dark(#ffffff,#102c3a);
  --k-accent:light-dark(#267466,#8ccabd);
  --k-summary:light-dark(#173b50,#233f50);
  --k-summary-ink:#ffffff;
  --k-summary-muted:#c2d8e3;
  --k-summary-line:#6b8a9b;
  --bar-surface:var(--soft);
  --bar-ink:var(--muted);
  --bar-border:var(--line);
  --badge-surface:var(--paper);
  --badge-ink:var(--muted);
  --cover-lavender:light-dark(#e5edf1,#2b404d);
  --cover-lavender-ink:light-dark(#537787,#b1cfdd);
  --cover-peach:light-dark(#eaece6,#303c34);
  --cover-peach-ink:light-dark(#637966,#b6cdb7);
  --cover-mint:light-dark(#dfede7,#253f39);
  --cover-mint-ink:light-dark(#537c6f,#acd0c0);
  --location-background:var(--soft);
  --location-ink:var(--ink);
  --location-muted:var(--muted);
  --location-line:var(--line);
  --location-link:var(--primary);
}
.public-app.personal {
  --paper:light-dark(#faf8f3,#17191e);
  --soft:light-dark(#f0ede5,#22262d);
  --primary:light-dark(#234e73,#a6c9e8);
  --ink:light-dark(#17181c,#f4f5f8);
  --muted:light-dark(#62646b,#b4bac7);
  --line:light-dark(#dddfe5,#3b424f);
  --button-ink:light-dark(#fff,#102544);
  --header-surface:light-dark(#faf8f3ed,#17191eed);
  --surface-raised:light-dark(#fff,#252933);
  --surface-mint:light-dark(#e9f0e8,#233329);
  --surface-lavender:light-dark(#eeeafa,#302b43);
  --border-soft:light-dark(#00000014,var(--line));
  --text-reading:light-dark(#4b4e57,var(--muted));
  --arrow-surface:light-dark(#fff,#354456);
  --bar-surface:var(--soft);
  --bar-ink:light-dark(#51535a,var(--muted));
  --bar-border:var(--line);
  --badge-surface:var(--paper);
  --badge-ink:light-dark(#555861,var(--muted));
  --preview-surface:light-dark(#edf4fe,var(--soft));
  --preview-ink:light-dark(#174a8b,var(--muted));
  --cover-blue:light-dark(#ddeafb,#22334b);
  --cover-blue-ink:light-dark(#2765b9,#98c0f6);
  --cover-mint:light-dark(#e4ecdc,#293629);
  --cover-mint-ink:light-dark(#658345,#bed7a1);
  --cover-lavender:light-dark(#eee6f8,#342c45);
  --cover-lavender-ink:light-dark(#9580b3,#c7afe8);
  --location-background:var(--soft);
  --location-ink:var(--ink);
  --location-muted:var(--muted);
  --location-line:var(--line);
  --location-link:var(--primary);

  /* Bloques de fotografía y trayectoria intencionalmente inversos. */
  --inverse-blue:#0d2856;
  --inverse-paper:#17181c;
  --inverse-ink:#fff;
  --inverse-muted:#c2c4ce;
  --inverse-blue-muted:#d0def2;
  --inverse-link:#c0d9ff;
  --inverse-accent:#9ebfff;
  --inverse-line:#414248;
  --inverse-label:#a8bddb;
  --inverse-title:#91abe0;
  --inverse-caption:#a4a6b1;
  --inverse-body:#e0e1e7;
  --inverse-note:#b6b8c3;
}
.public-app.jardin {
  --paper:light-dark(#fff,#1d1a24);
  --soft:light-dark(#f5f2fb,#26212f);
  --primary:light-dark(#6740bd,#cbb1ff);
  --ink:light-dark(#252331,#f2edf8);
  --muted:light-dark(#62606d,#bdb5cb);
  --line:light-dark(#d3cddb,#4a4158);
  --button-ink:light-dark(#fff,#241338);
  --g-border:light-dark(#aaa1b6,#786887);
  --surface-lavender:light-dark(#f0eafa,#292137);
  --surface-peach:light-dark(#faf1ec,#30252c);
  --surface-mint:light-dark(#eef6f2,#1d302c);
  --g-lavender:var(--surface-lavender);
  --g-peach:var(--surface-peach);
  --g-mint:var(--surface-mint);
  --g-shadow:light-dark(#e0d6ef,#0d0914);
  --bar-surface:var(--soft);
  --bar-ink:var(--muted);
  --bar-border:var(--line);
  --badge-surface:var(--paper);
  --badge-ink:var(--muted);
  --cover-lavender:light-dark(#ede7f9,#302a45);
  --cover-lavender-ink:light-dark(#8274a8,#c3b6e8);
  --cover-peach:light-dark(#f4e7de,#392d26);
  --cover-peach-ink:light-dark(#a27b67,#dcba9e);
  --cover-mint:light-dark(#e1ede8,#23382e);
  --cover-mint-ink:light-dark(#6d8b84,#b1d5c5);
  --location-background:var(--g-lavender);
  --location-ink:var(--ink);
  --location-muted:var(--muted);
  --location-line:var(--g-border);
  --location-link:var(--primary);
  --inverse-paper:#302441;
  --inverse-ink:#f2eafa;
}

/* Revisión privada: estados compartidos del sistema de componentes. */
:root { --review-field-line:light-dark(#85849a,#77788e); --review-info:var(--primary); --review-success:light-dark(#246344,#a5e1bd); --review-error:light-dark(#a12c31,#ffb2b5); --review-warn:light-dark(#704600,#ffda8a); --review-warn-surface:light-dark(#fff5da,#382c16); --review-notification-surface:light-dark(#b4232c,#c62f38); --review-notification-ink:light-dark(#ffffff,#ffffff); }

/* Identidad comercial: alcance exclusivo, con igual especificidad que Conecta. */
.public-app[data-site-profile="codigomixcoac"] {
  --paper:light-dark(#faf9f6,#111d2a);
  --soft:light-dark(#eef1f3,#18293b);
  --ink:light-dark(#172b42,#eef3f7);
  --muted:light-dark(#526274,#b7c5d3);
  --line:light-dark(#c8d0d8,#40556a);
  --primary:light-dark(#214f76,#add3ef);
  --button-ink:light-dark(#ffffff,#10263b);
  --focus:light-dark(#226eaa,#add3ef);
  --cm-primary-hover:light-dark(#173b5c,#cbe5f8);
  --cm-hero:light-dark(#102940,#0b1c30);
  --cm-hero-ink:#f8fafc;
  --cm-hero-muted:#c6d4e1;
  --cm-hero-line:#49677f;
  --cm-accent:#adcbe2;
  --cm-action:#f8fafc;
  --cm-action-ink:#102940;
  --cm-action-hover:#dce7ef;
  --cm-node:#19364e;
  --cm-diagram:#112b43;
  --cm-diagram-line:#7897af;
  --cm-platform:#24445f;
  --cm-shadow:light-dark(#172b4210,#00000030);
  --cm-services:var(--soft);
}

.public-app[data-site-profile="codigomixcoac"] :is(.cm-hero,.cm-contact) { --focus:var(--cm-accent); }

/* Panel central: identidad neutra de Código Mixcoac, sin alterar la revisión médica. */
.review-page:has(.central-shell) {
  --paper:light-dark(#ffffff,#171e2b);
  --soft:light-dark(#f5f7fa,#101620);
  --ink:light-dark(#18283d,#edf2fa);
  --muted:light-dark(#59697c,#acb9cd);
  --line:light-dark(#dce3ec,#354155);
  --primary:light-dark(#233e63,#b7d4ff);
  --button-ink:light-dark(#ffffff,#13243e);
  --focus:light-dark(#265ba5,#9ac4ff);
  --review-field-line:light-dark(#8592a5,#75859e);
  --central-accent:light-dark(#edf3fb,#24344b);
}

/* Política nativa y controles compartidos. Las paletas viven en theme-tokens.css. */
:root { color-scheme:light dark; }
html[data-theme="light"] { color-scheme:light; }
html[data-theme="dark"] { color-scheme:dark; }
body:not([class]) { background:var(--boot-paper); }
.doctor-app { color-scheme:light; }
.public-app { background:var(--paper); color:var(--ink); accent-color:var(--primary); }
html:not([data-theme-preference]) .theme-control { display:none; }
.theme-header-tools { display:flex; align-items:center; gap:18px; flex-shrink:0; }
.theme-control { display:inline-flex; align-items:center; gap:8px; margin:0; flex-shrink:0; color:var(--muted); font:500 var(--text-small)/1.3 var(--body); }
.theme-control select { min-height:44px; max-width:110px; border:1px solid var(--line); border-radius:8px; padding:8px 10px; background:var(--paper); color:var(--ink); cursor:pointer; font:500 var(--text-small)/1.3 var(--body); }
.theme-control select:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
/* Un único acceso de cabecera; las opciones se muestran bajo demanda. */
html:not([data-theme-preference]) .theme-menu { display:none; }
.theme-menu { position:relative; margin:0; color:var(--ink); font:500 var(--text-small)/1.4 var(--body); }
.theme-menu>summary { display:flex; align-items:center; justify-content:center; gap:8px; min-width:44px; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:.4rem; background:var(--paper); cursor:pointer; list-style:none; }
.theme-menu>summary::-webkit-details-marker { display:none; }
.theme-menu>summary:hover,.theme-menu[open]>summary { background:var(--soft); }
.theme-menu>summary:focus-visible,.theme-menu-panel button:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.theme-menu-panel { position:absolute; z-index:60; inset-inline-end:0; top:calc(100% + 8px); width:min(14rem,calc(100vw - 32px)); padding:8px; background:var(--paper); border:1px solid var(--line); border-radius:.6rem; box-shadow:0 8px 24px var(--modal-shadow); }
.theme-menu .theme-menu-heading { margin:0; padding:8px 10px; font:600 var(--text-small)/1.4 var(--body); color:var(--muted); }
.theme-menu-panel button { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:44px; padding:10px; border:0; border-radius:.3rem; background:transparent; color:var(--ink); font:500 var(--text-small)/1.4 var(--body); text-align:start; cursor:pointer; }
.theme-menu-panel button:hover,.theme-menu-panel button[aria-pressed="true"] { background:var(--soft); }
.theme-menu-panel button[aria-pressed="true"] { font-weight:700; }
.theme-menu-panel small { display:block; margin-top:3px; font:400 var(--text-small)/1.4 var(--body); color:var(--muted); }
.theme-menu-check { width:8px; height:8px; border-radius:50%; background:var(--primary); flex-shrink:0; visibility:hidden; }
.theme-menu-panel button[aria-pressed="true"] .theme-menu-check { visibility:visible; }
@media(max-width:650px) {
  .theme-menu-label { display:none; }
  .theme-menu>summary { padding:10px; }
  .theme-menu-panel { width:min(14rem,calc(100vw - 72px)); }
}
/* Espacio reservado al control para que el nombre y el menú no se compriman. */
@media(max-width:1200px) {
  .public-app .theme-control>span { display:none; }
}
@media(max-width:650px) {
  .public-app .header-inner { flex-wrap:wrap; gap:8px 16px; padding-block:13px; }
  .public-app .header-inner>.doctor-brand { flex:1 1 180px; }
  .theme-header-tools,.g-header-tools { gap:12px; margin-left:auto; }
  .theme-control select { max-width:96px; font-size:var(--text-small); }
  /* Órbita y Jardín: identidad, tema y menú siempre en una sola fila. */
  .personal.public-app .o-nav,.jardin.public-app .g-header-inner { width:calc(100% - 24px); min-height:64px; flex-wrap:nowrap; gap:10px; padding-block:10px; }
  .o-nav>.o-brand,.g-header-inner>.g-brand { flex:1 1 0; min-width:0; gap:8px; font-size:var(--text-small); letter-spacing:-.2px; }
  .o-nav>.o-brand>span,.g-header-inner>.g-brand>span:last-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .o-nav .o-brand small,.g-header-inner .g-brand small { font-size:var(--text-small); letter-spacing:.1px; max-width:none; margin-top:4px; overflow:hidden; text-overflow:ellipsis; }
  .o-nav .o-brand>svg,.g-header-inner .g-brand-mark,.g-header-inner .g-brand-mark .g-icon { width:24px; height:24px; flex-shrink:0; }
  .personal.public-app .theme-header-tools,.jardin.public-app .g-header-tools { flex-shrink:0; gap:6px; margin-left:0; }
  .personal.public-app .theme-control select,.jardin.public-app .theme-control select { width:88px; max-width:88px; padding-inline:8px; }
  .personal.public-app .o-mobile-menu summary,.jardin.public-app .g-menu summary { width:44px; min-width:44px; justify-content:center; padding:0; border:1px solid var(--line); border-radius:8px; font-size:var(--text-small); }
  .o-mobile-menu summary>span,.g-menu summary>span { display:none; }
  .public-app:is(.personal,.jardin) .location-section[id] { scroll-margin-top:80px; }
}
@media(max-width:359px) {
  .o-nav .o-brand>svg,.g-header-inner .g-brand-mark { display:none; }
}
/* PrimeVue's light preset injects :root {color-scheme:light}. Keep the
   central workspace's System preference native without detecting media in JS. */
html:not([data-theme]):has(.central-shell) { color-scheme:light dark; }

/* Solo los grupos elegidos en portada se desplazan en móvil. */
.mobile-carousel { min-width:0; }
.carousel-footer { display:none; }
@media(max-width:650px) {
  .public-app .carousel-track {
    display:flex;
    gap:14px;
    align-items:stretch;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    scroll-padding-inline:4px;
    overscroll-behavior-x:contain;
    padding:6px 4px 10px;
    margin-inline:-4px;
    scrollbar-width:thin;
    scrollbar-color:var(--line) transparent;
  }
  .public-app .carousel-track>* {
    flex:0 0 85%;
    min-width:0;
    scroll-snap-align:start;
    overflow-wrap:anywhere;
  }
  .public-app [data-carousel-paging="single"] .carousel-track { scroll-snap-type:x mandatory; }
  .public-app [data-carousel-paging="single"] .carousel-track>* { flex:0 0 100%; scroll-snap-stop:always; }
  .carousel-track:focus-visible { outline:3px solid var(--focus); outline-offset:2px; border-radius:6px; }
  .carousel-track>a:focus-visible { outline-offset:-4px; }
  .carousel-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; min-height:44px; }
  .public-app .carousel-hint { font:400 var(--text-small)/1.5 var(--body); color:var(--muted); margin:0; }
  .carousel-hint>span { margin-left:4px; }
  .carousel-controls { display:flex; align-items:center; gap:6px; flex-shrink:0; }
  .carousel-controls[hidden] { display:none; }
  .carousel-controls button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--primary); font:var(--type-20)/1 var(--body); }
  .carousel-controls button[aria-disabled="true"] { color:var(--muted); cursor:default; }
  .carousel-controls button:not([aria-disabled="true"]):hover { background:var(--soft); border-color:var(--primary); }
  .carousel-position { min-width:38px; text-align:center; color:var(--muted); font:500 var(--text-small)/1.5 var(--body); font-variant-numeric:tabular-nums; }
  /* Ajustes de composición; el comportamiento y los colores siguen compartidos. */
  .personal .carousel-track>.o-stage { padding:26px 20px; min-height:0; }
  .personal .carousel-track .o-stage h3 { font-size:var(--type-26); }
  .personal .carousel-track .o-stage-bottom { gap:10px; }
  .personal .carousel-track .o-stage-number { flex-shrink:0; }
  .personal .carousel-track .o-stage-bottom>div { min-width:0; }
  .personal .carousel-track>.o-review { padding:22px; }
  .personal .carousel-track .o-review blockquote { font-size:var(--text-reading); }
  .personal .carousel-track .o-post-copy { padding:22px; }
  .personal .carousel-track .o-post-title { font-size:var(--type-22); }
  .jardin .carousel-track .g-service-copy,.jardin .carousel-track>.g-review,.jardin .carousel-track .g-post-copy { padding:22px; }
  .jardin .carousel-track .g-service-illustration { min-height:125px; border-right:0; border-bottom:1px solid var(--g-border); }
  .jardin .carousel-track .g-service h3 { font-size:var(--type-22); }
  .public-app .carousel-track .cover { height:180px; min-height:0; }
}

/* El enlace permanece en HTML; no necesita un widget ni JavaScript público. */
.public-app .whatsapp-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:12px 18px;
  border:1px solid var(--whatsapp-border);
  border-radius:14px;
  background:var(--whatsapp-surface);
  color:var(--whatsapp-ink);
  font:600 var(--text-small)/1.4 var(--body);
  text-decoration:none;
}
.public-app.personal .whatsapp-link { border-radius:999px; }
.public-app.jardin .whatsapp-link { border-radius:6px; }
.public-app .whatsapp-link:hover { text-decoration:underline; text-underline-offset:4px; }
.public-app .whatsapp-link:focus-visible { outline:3px solid var(--focus); outline-offset:5px; box-shadow:0 0 0 5px var(--paper); }
.location-contact-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; padding-block:8px; }
.whatsapp-dock { min-height:calc(96px + env(safe-area-inset-bottom, 0px)); padding:24px; text-align:right; }
.public-app .whatsapp-dock .whatsapp-floating {
  position:fixed;
  z-index:15;
  right:calc(24px + env(safe-area-inset-right, 0px));
  bottom:calc(24px + env(safe-area-inset-bottom, 0px));
  box-shadow:0 4px 18px var(--whatsapp-shadow);
}
html:has(.whatsapp-dock) { scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom, 0px)); }
@media(max-width:650px) {
  .public-app .whatsapp-dock .whatsapp-floating { right:calc(16px + env(safe-area-inset-right, 0px)); bottom:calc(16px + env(safe-area-inset-bottom, 0px)); }
  .location-contact-actions { width:100%; }
}
@media print { .whatsapp-dock { display:none; } }

/* Tamaño y alineación exclusivos de iconos funcionales; color heredado del tema. */
.ui-icon {
  display:inline-block;
  width:var(--icon-size,20px);
  height:var(--icon-size,20px);
  flex:0 0 auto;
  vertical-align:-.15em;
}
.disclosure-icons { display:inline-flex; flex:0 0 auto; align-items:center; }
details>summary>.disclosure-icons { transform:none; transition:none; }
.disclosure-icons>.ui-icon:last-child { display:none; }
details[open]>summary>.disclosure-icons>.ui-icon:first-child { display:none; }
details[open]>summary>.disclosure-icons>.ui-icon:last-child { display:inline-block; }
.review-reply :is(summary,.info-trigger),.o-reply :is(summary,.info-trigger),.g-reply :is(summary,.info-trigger) { display:flex; align-items:center; gap:12px; }
:is(.review-reply,.o-reply,.g-reply) :is(summary,.info-trigger)>.disclosure-icons { margin-left:auto; }
.o-question[open]>:is(summary,.info-trigger)>.disclosure-icons,.o-all-reviews[open]>:is(summary,.info-trigger)>.disclosure-icons,
.g-question[open]>:is(summary,.info-trigger)>.disclosure-icons,.g-all-reviews[open]>:is(summary,.info-trigger)>.disclosure-icons,
.question[open]>:is(summary,.info-trigger)>.disclosure-icons,.all-reviews[open]>:is(summary,.info-trigger)>.disclosure-icons { transform:none; }
.block-top button { display:inline-grid; place-items:center; width:44px; min-height:44px; }
.add-blocks button { display:inline-flex; align-items:center; gap:6px; min-height:44px; }
.location-heading h2 { display:flex; align-items:center; gap:8px; }
.g-review-source>.ui-icon { width:20px; height:20px; }
@media(max-width:650px) {
  /* Mantener el nombre accesible y el botón de 44 px en las cabeceras de una fila. */
  .o-mobile-menu summary>.menu-label,.g-menu summary>.menu-label {
    display:block; position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
  }
  .o-mobile-menu summary>.disclosure-icons,.g-menu summary>.disclosure-icons { display:inline-flex; }
}

/* Ajustes de contenido opcional y de la primera pantalla, compartidos por perfil. */
.portrait-placeholder { display:inline-flex; align-items:center; justify-content:center; width:100%; min-height:64px; aspect-ratio:1; max-width:220px; background:var(--soft); color:var(--primary); border:1px solid var(--line); border-radius:50%; font:600 clamp(1.5rem,5vw,4rem)/1 var(--heading); }
.o-hero-signature>.portrait-placeholder,.o-byline>.portrait-placeholder,.g-byline>.portrait-placeholder,.article-signature>.portrait-placeholder,.o-article-author>.portrait-placeholder,.g-article-author>.portrait-placeholder { width:48px; min-height:48px; flex-shrink:0; font-size:var(--type-20); }
.visit-summary { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px 28px; padding-block:20px; border-block:1px solid var(--line); color:var(--muted); font-size:var(--text-small); }
.visit-summary>div { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.visit-summary .ui-icon { flex-shrink:0; color:var(--primary); }
.visit-summary a { display:inline-flex; align-items:center; min-height:44px; color:var(--primary); text-underline-offset:4px; }
.visit-summary a:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
.public-app .credential-grid,.public-app .o-credentials,.public-app .g-credentials { grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); }
.public-app .g-quicklinks { grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); }
.public-app .g-quicklinks a { gap:14px; }
.public-app :is(.o-social,.g-social):not(:has([class$="social-posts"])) { grid-template-columns:1fr; }
.public-app :is(.o-social-posts,.g-social-posts):has(>a:only-child) { grid-template-columns:1fr; }
.public-app :is(.g-brand,.o-brand) small { text-transform:uppercase; }
.public-app :is(.hero h1,.o-hero h1,.g-hero h1,.o-article-heading h1,.g-article-heading h1) { overflow-wrap:anywhere; }
.public-app .location-section>div>p { color:var(--location-muted); font-size:var(--text-small); }
.public-app .o-intro-photo>.portrait-placeholder { margin:32px auto; display:flex; }
@media(max-width:650px) {
  .public-app .g-hero { display:flex; flex-direction:column; }
  .public-app .g-hero-copy { order:-1; padding-block:28px 24px; }
  .public-app .g-hero-copy h1 { font-size:clamp(2rem,(.5rem + 9vw),2.625rem); }
  .public-app .g-hero-copy p { font-size:var(--type-15); line-height:var(--leading-body); }
  .public-app .g-panorama img { height:150px; object-fit:cover; }
  .public-app .o-hero { padding-top:32px; padding-bottom:32px; }
  .public-app .o-hero h1 { font-size:clamp(2.125rem,(.5rem + 10vw),2.875rem); }
  .public-app .hero { padding-top:28px; }
  .public-app .hero-copy h1 { font-size:clamp(2.125rem,(.5rem + 10vw),2.75rem); }
  .public-app :is(.actions,.o-actions,.g-actions) { gap:10px; }
  .public-app [data-whatsapp-inline] { max-width:100%; }
  .visit-summary { justify-content:flex-start; gap:8px; }
  .public-app .g-quicklinks { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.responsive-picture { display:contents; }

/* Información práctica y lectura, con colores resueltos por la plantilla. */
.visit-availability { margin-block:1.25rem 0; }
.visit-hours { display:flex; flex-wrap:wrap; gap:.3rem .65rem; margin:0; font-size:var(--text-small); }
.visit-confirmation { color:var(--muted); font-size:var(--text-small); margin:.4rem 0 0; }
.visit-guide { margin-block:1.5rem; padding:1rem 1.25rem; border:1px solid var(--line); border-radius:8px; background:var(--soft); }
.visit-guide summary,.site-privacy summary { display:flex; align-items:center; gap:1rem; min-height:44px; cursor:pointer; width:fit-content; max-width:100%; color:var(--primary); font-size:var(--text-small); }
.visit-guide ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; padding:1rem 0 0 1.25rem; margin:0; font-size:var(--text-small); }
.visit-guide li { padding-right:.75rem; }
.visit-guide a { display:inline-flex; min-height:44px; align-items:center; color:var(--primary); }
.site-privacy { border-top:1px solid var(--line); padding-block:1rem; }
.site-privacy p { font-size:var(--text-small); color:var(--muted); }
.site-privacy a { display:inline-flex; align-items:center; gap:.5rem; min-height:44px; color:var(--primary); }
.public-app:is(.personal,.jardin,.conecta) .breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; padding-block:1rem; margin-bottom:1rem; color:var(--muted); font-size:var(--text-small); }
.public-app:is(.personal,.jardin,.conecta) .breadcrumb a { display:inline-flex; min-height:44px; align-items:center; color:inherit; }
.reading-time { color:var(--muted); font-size:var(--text-small); }
.public-app:is(.personal,.jardin,.conecta) .seo-contents { padding:1.25rem; margin-block:1.5rem; background:var(--soft); border:1px solid var(--line); border-radius:8px; font-size:var(--text-small); }
.public-app:is(.personal,.jardin,.conecta) .seo-contents ul { margin:1rem 0 0; padding-left:1.25rem; }
.public-app:is(.personal,.jardin,.conecta) .seo-contents a { display:inline-flex; align-items:center; min-height:44px; color:var(--primary); }

/* El acceso flotante sigue siempre visible. El foco conserva espacio alrededor. */
.public-app:is(.personal,.jardin,.conecta) .whatsapp-floating { width:52px; height:52px; padding:12px; border-radius:50%; }
.public-app:is(.personal,.jardin,.conecta) .whatsapp-floating>span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
html:has([data-site-navigation]) { scroll-padding-top:calc(var(--site-header-height,128px) + 16px); }
html.site-static-header [data-site-navigation] { position:relative; }
.public-app:is(.personal,.jardin,.conecta) :is(main,footer) [id] { scroll-margin-top:16px; }
.public-app:is(.personal,.jardin,.conecta) :is(a,button,summary,select,[tabindex]) { scroll-margin-bottom:96px; }
.public-app [data-site-navigation] .mobile-menu nav { max-height:65dvh; overflow-y:auto; }
.public-app [data-site-navigation] summary { min-width:44px; min-height:44px; }
.public-app [data-site-navigation] .theme-control select { width:auto; min-width:88px; max-width:100%; }
.public-app:is(.personal,.jardin) :is(.o-desktop-nav,.g-desktop-nav) { gap:20px; }
@media(max-width:650px) {
  .public-app.public-app:is(.personal,.jardin,.conecta) :is(.o-nav,.g-header-inner,.c-nav) { flex-wrap:wrap; gap:.5rem; padding-block:.625rem; }
  .public-app.public-app:is(.personal,.jardin,.conecta) :is(.o-nav>.o-brand,.g-header-inner>.g-brand,.c-nav>.c-brand) { flex:1 1 8rem; }
  .public-app:is(.personal,.jardin,.conecta) :is(.theme-header-tools,.g-header-tools) { margin-left:auto; flex:0 0 auto; gap:6px; }
  .visit-guide ol { grid-template-columns:1fr; gap:1rem; }
}
@media(max-width:380px) {
  .public-app:is(.personal,.jardin,.conecta):has(.whatsapp-floating) :is(.o-actions,.g-actions,.c-actions)>a:first-child { max-width:calc(100% - 64px); }
}

/* Contenido visible por defecto. Los tokens se comparten con motion.js. */
.public-app {
  --motion-duration: 480ms;
  --motion-distance: 12px;
  --motion-step: 60ms;
  --motion-delay-max: 180ms;
  --motion-response: 180ms;
  --motion-ease: cubic-bezier(.22, 1, .36, 1);
}
.personal.public-app { --motion-duration: 560ms; --motion-distance: 16px; }
.jardin.public-app { --motion-duration: 600ms; --motion-distance: 14px; }
.conecta.public-app { --motion-duration: 500ms; --motion-distance: 12px; }

.public-app[data-site-profile="codigomixcoac"] {
  --motion-duration:420ms; --motion-distance:10px;
  --motion-step:50ms; --motion-delay-max:150ms;
}

/* Solo tarjetas accionables; botones y elementos independientes permanecen estables. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .public-app :is(.post-card, .o-post, .g-post, .c-post) {
    transition: transform var(--motion-response) var(--motion-ease);
  }
  .public-app :is(.post-card, .o-post, .g-post, .c-post):hover { transform: translateY(-3px); }
  .public-app :is(.post-card, .o-post, .g-post, .c-post):focus-visible {
    transform: none;
    transition: none;
  }
}

@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .public-app[data-site-profile="codigomixcoac"] .cm-service {
    transition:transform var(--motion-response) var(--motion-ease);
  }
  .public-app[data-site-profile="codigomixcoac"] .cm-service:hover { transform:translateY(-2px); }
  .public-app[data-site-profile="codigomixcoac"] .cm-service:focus-within { transform:none; transition:none; }
}

/* El contenido sigue siendo un desplegable nativo sin la mejora JavaScript. */
.info-trigger { appearance:none; width:100%; border:0; background:transparent; color:inherit; font:inherit; text-align:left; padding:0; overflow-wrap:anywhere; }
.info-trigger .disclosure-icons { transform:none; transition:none; flex-shrink:0; }
.info-modal-open { overflow:hidden; scroll-behavior:auto; }
.public-app dialog.info-modal {
  width:calc(100% - 40px); max-width:760px; max-height:calc(100dvh - 48px);
  padding:0; margin:auto; overflow:hidden; border:1px solid var(--line);
  border-radius:var(--radius); color:var(--ink); background:var(--paper);
  box-shadow:0 24px 80px var(--modal-shadow); font:var(--text-body)/1.75 var(--body);
}
.public-app dialog.info-modal[open] { display:flex; flex-direction:column; }
.public-app dialog.info-modal::backdrop { background:var(--modal-backdrop); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.info-modal-header { flex:none; display:grid; grid-template-columns:minmax(0,1fr) 44px; align-items:start; gap:14px; padding:24px 28px 20px; border-bottom:1px solid var(--line); }
.info-modal-header button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--primary); font-size:var(--text-small); padding:8px; }
.info-modal-header .info-modal-close { grid-column:2; grid-row:1; width:44px; }
.info-modal-header .info-modal-back { grid-column:1; grid-row:1; justify-self:start; }
.info-modal-header [hidden],.info-modal [hidden] { display:none !important; }
.public-app .info-modal-header h2 { grid-column:1; grid-row:1; align-self:center; margin:0; font:600 clamp(1.25rem,3vw,1.75rem)/1.35 var(--heading); letter-spacing:-.5px; overflow-wrap:anywhere; }
.info-modal-back:not([hidden]) ~ h2 { grid-column:1 / -1; grid-row:2; }
.info-modal h2:focus-visible { outline:2px solid var(--focus); outline-offset:5px; }
.info-modal-body { min-height:0; overflow:auto; overscroll-behavior:contain; padding:24px 28px 30px; scrollbar-gutter:stable; }
.info-modal-content { overflow-wrap:anywhere; }
.public-app .info-modal-content p { font-size:var(--text-body); line-height:var(--leading-body); color:var(--ink); margin:0 0 18px; }
.info-modal-content time { color:var(--muted); font-size:var(--text-small); }
.info-modal-content :is(.reviews-grid,.o-review-grid,.g-reviews-grid,.c-review-grid) { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; padding:0; }
.info-modal-content :is(.review-card,.o-review,.g-review,.c-review) { min-width:0; margin:0; }
.info-modal-content blockquote { margin:0 0 18px; font-size:var(--text-body); line-height:var(--leading-body); color:var(--ink); }
.info-modal-content .question-content { padding:0; }
.public-app .info-modal-content :is(.question-label,.o-eyebrow,.g-kicker,.c-kicker) { display:block; font-size:var(--text-small); letter-spacing:.5px; color:var(--primary); margin:0 0 8px; }
.public-app .info-modal-content :is(.review-visit,.o-review-visit,.g-review-visit,.c-review-visit,.info-modal-note) { color:var(--muted); font-size:var(--text-small); line-height:var(--leading-body); }
.public-app .info-modal-content .info-modal-note { margin:24px 0 0; padding-top:18px; border-top:1px solid var(--line); }
.info-modal-content :is(.text-link,.o-link,.g-text-link,.c-text-link) { min-height:44px; display:inline-flex; align-items:center; gap:8px; }
@media (max-width:650px) {
  .public-app dialog.info-modal { width:calc(100% - 24px); max-height:calc(100dvh - 24px); }
  .info-modal-header { padding:18px 18px 16px; gap:12px; }
  .info-modal-body { padding:18px 18px 24px; }
  .info-modal-content :is(.review-card,.o-review,.g-review,.c-review) { padding:18px; }
  .info-modal-header .info-modal-back { font-size:var(--text-small); }
}

/* Native families: no downloads, preloads or font swapping required. */
:root {
  --text-body: 1rem;
  --text-small: .875rem;
  --text-reading: 1.125rem;
  --leading-body: 1.65;
  --leading-heading: 1.2;
  --measure-reading: 65ch;
  --type-14: 0.875rem;
  --type-15: 0.9375rem;
  --type-16: 1rem;
  --type-17: 1.0625rem;
  --type-18: 1.125rem;
  --type-19: 1.1875rem;
  --type-20: 1.25rem;
  --type-21: 1.3125rem;
  --type-22: 1.375rem;
  --type-23: 1.4375rem;
  --type-24: 1.5rem;
  --type-25: 1.5625rem;
  --type-26: 1.625rem;
  --type-27: 1.6875rem;
  --type-28: 1.75rem;
  --type-29: 1.8125rem;
  --type-30: 1.875rem;
  --type-31: 1.9375rem;
  --type-32: 2rem;
  --type-33: 2.0625rem;
  --type-34: 2.125rem;
  --type-35: 2.1875rem;
  --type-36: 2.25rem;
  --type-37: 2.3125rem;
  --type-38: 2.375rem;
  --type-39: 2.4375rem;
  --type-40: 2.5rem;
  --type-43: 2.6875rem;
  --type-44: 2.75rem;
  --type-45: 2.8125rem;
  --type-47: 2.9375rem;
  --type-48: 3rem;
  --type-51: 3.1875rem;
  --type-54: 3.375rem;
  --type-70: 4.375rem;
}
body { font-size:var(--text-body); }
.public-app { font-size:var(--text-body); }
.public-app :is(h1,h2,h3,h4) { line-height:var(--leading-heading); overflow-wrap:anywhere; }
.public-app :is(p,li,blockquote) { line-height:var(--leading-body); letter-spacing:normal; }
.public-app p { max-width:var(--measure-reading); }
.public-app :is(p,li,blockquote) a { text-decoration:underline; text-underline-offset:.2em; }
.public-app :is(button,input,textarea,select) { font-family:var(--body); }
.public-app :is(button,summary,[class$="-button"]) { white-space:normal; overflow-wrap:anywhere; }
.public-app :is(.article-body,.o-article-body,.g-article-body,.c-article-body) { max-width:var(--measure-reading); font-size:var(--text-reading); text-align:left; }
.public-app :is(.article-body,.o-article-body,.g-article-body,.c-article-body) p { font-size:inherit; }
.public-app :is(.k-lead,.o-hero-lead,.c-service p,.c-post p,.k-service p,.g-service p) { font-size:var(--text-body); }
.public-app :is(.o-nav,.g-header-inner,.c-nav,.k-nav) { height:auto; flex-wrap:wrap; }
.public-app :is(.o-brand,.g-brand,.c-brand,.k-brand) { max-width:100%; }
.public-app :is(.o-brand,.g-brand,.c-brand,.k-brand) :is(span,small,strong) { white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
.public-app .theme-control select { max-width:none; }
.public-app :is(.o-mobile-menu,.g-menu,.c-menu,.k-menu) summary { width:auto; padding:.5rem; }
.public-app :is(.o-main,.g-main) { overflow:visible; }
@media (max-width: 650px) {
  .public-app :is(.o-nav,.g-header-inner,.c-nav,.k-nav) { gap:.75rem; }
  .public-app :is(.o-nav>.o-brand,.g-header-inner>.g-brand,.c-nav>.c-brand,.k-nav>.k-brand) { flex:1 1 100%; }
  .public-app :is(.o-brand,.g-brand,.c-brand,.k-brand) small { font-size:var(--text-small); }
  .public-app .theme-header-tools { margin-left:auto; }
}
.public-app .template-switcher { display:flex; flex-wrap:wrap; max-width:100%; }
.public-app .template-switcher a { flex:1 1 auto; white-space:normal; text-align:center; }
.public-app :is(.owner-bar,.theme-header-tools) { flex-wrap:wrap; }
/* Decorative geometry may be clipped; reading containers must remain open. */
.public-app .o-photo-frame { overflow:clip; }
.public-app :is(.o-footer-top>div,.g-footer-links,.c-footer-links) { flex-wrap:wrap; }
.public-app :is(.location-placeholder,.location-placeholder strong) { min-width:0; max-width:100%; overflow-wrap:anywhere; }
.public-app :is(.g-brand,.o-brand,.c-brand) { overflow-wrap:anywhere; }
.public-app.public-app :is(h1,h2,h3,h4) { line-height:var(--leading-heading); }
.public-app :is(.k-article-body,.o-article-body,.g-article-body,.c-article-body,.article-body) { width:min(100%,var(--measure-reading)); }
.public-app :is(.g-footer-grid,.o-footer-top,.c-footer-top)>* { min-width:0; }
.public-app :is(.g-footer-grid,.o-footer-top,.c-footer-top) a { overflow-wrap:anywhere; }
.public-app { overflow-wrap:anywhere; }
.public-app :is(section,article,header,footer,nav,div,ol,ul)>* { min-width:0; }
.public-app :is(.carousel-footer,.carousel-controls) { flex-wrap:wrap; }
.public-app .carousel-position { white-space:normal; }
.public-app :is(.k-menu,.o-mobile-menu,.g-menu,.c-menu) nav { width:min(260px,calc(100vw - 2rem)); }

.public-app .location-directions { max-width:100%; flex-shrink:1; }
@media (max-width:650px) {
  .public-app.public-app :is(.o-nav,.g-header-inner) { flex-wrap:wrap; }
  .public-app.public-app :is(.o-nav>.o-brand,.g-header-inner>.g-brand) { flex:1 1 100%; }
  .public-app.public-app :is(.o-brand,.g-brand) small { text-transform:none; letter-spacing:normal; }
}

/* Escala institucional de Código Mixcoac; sigue el tamaño elegido por el visitante. */
.public-app[data-site-profile="codigomixcoac"] {
  --cm-title:clamp(var(--type-40),1.5rem + 3vw,var(--type-70));
  --cm-title-mobile:clamp(var(--type-39),1.5rem + 4vw,4rem);
  --cm-heading:clamp(var(--type-32),1.3rem + 2.4vw,var(--type-54));
  --cm-contact-text:clamp(var(--type-16),.75rem + .8vw,var(--type-22));
}

/* Código Mixcoac: identidad institucional. Colores en theme-tokens.css. */
.cm-site { font-family:Arial,Helvetica,sans-serif; color:var(--ink); background:var(--paper); line-height:1.65; }
.cm-site * { box-sizing:border-box; }
.cm-site a { color:inherit; }
.cm-site p { margin:0 0 1.3rem; }
.cm-site h1,.cm-site h2,.cm-site h3 { font-family:Arial,Helvetica,sans-serif; color:inherit; letter-spacing:-.035em; line-height:1.12; margin:0; text-wrap:balance; }
.cm-site h1 { font-size:var(--cm-title); font-weight:600; max-width:16ch; }
.cm-site h2 { font-size:var(--cm-heading); font-weight:600; }
.cm-site h3 { font-size:var(--type-22); line-height:1.25; letter-spacing:-.02em; }
.cm-site em { font:inherit; color:var(--cm-accent); }
.cm-site a:focus-visible,.cm-site summary:focus-visible { outline:3px solid var(--focus); outline-offset:5px; }
.cm-shell { width:min(1240px,calc(100% - 5rem)); margin-inline:auto; }
.cm-eyebrow { font-size:var(--type-14); letter-spacing:.11em; font-weight:700; line-height:1.7; color:var(--muted); margin-bottom:1.4rem!important; }
.cm-header { background:var(--paper); border-bottom:1px solid var(--line); }
.cm-nav { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; min-height:96px; }
.cm-brand { display:inline-flex; align-items:center; gap:.75rem; text-decoration:none; flex-shrink:0; font-size:var(--type-15); font-weight:700; line-height:1.15; letter-spacing:-.03em; }
.cm-brand-mark { background:var(--ink); color:var(--paper); width:2.75rem; height:2.75rem; display:grid; place-content:center; font-size:var(--type-21); border-radius:.5rem; }
.cm-desktop-nav { display:flex; gap:1.5rem; align-items:center; }
.cm-desktop-nav a { text-decoration:none; font-size:var(--type-14); font-weight:600; border:0; }
.cm-desktop-nav a:hover { text-decoration:underline; text-underline-offset:.35rem; }
.cm-site .cm-button { display:inline-flex; align-items:center; justify-content:center; gap:.8rem; text-align:center; background:var(--cm-action); color:var(--cm-action-ink); border:1px solid transparent; border-radius:.4rem; text-decoration:none; font-size:var(--type-15); font-weight:700; padding:1rem 1.35rem; line-height:1.35; min-height:48px; max-width:100%; }
.cm-button:hover { background:var(--cm-action-hover); }
.cm-site .cm-button-primary { background:var(--primary); color:var(--button-ink); }
.cm-button-primary:hover { background:var(--cm-primary-hover); }
.cm-site .cm-nav-action { background:var(--ink); color:var(--paper); padding:.8rem 1rem; }
.cm-site .cm-nav-action:hover { background:var(--primary); color:var(--button-ink); }
.cm-text-link { display:inline-flex; align-items:center; gap:.6rem; text-decoration:none; border-bottom:1px solid currentColor; padding-block:.3rem; font-size:var(--type-15); font-weight:600; }
.cm-text-link:hover { text-decoration:underline; text-underline-offset:.2rem; }
.cm-hero { background:var(--cm-hero); color:var(--cm-hero-ink); padding-top:4.5rem; }
.cm-hero .cm-eyebrow { color:var(--cm-hero-muted); }
.cm-hero-grid { display:grid; grid-template-columns:1.16fr 1fr; align-items:center; gap:5rem; }
.cm-lead { font-size:var(--type-16); line-height:1.75; max-width:53ch; color:var(--cm-hero-muted); margin-top:1.8rem!important; }
.cm-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.2rem 1.5rem; margin-top:2rem; }
.cm-hero-proof { font-size:var(--type-14); color:var(--cm-hero-muted); margin-top:2rem!important; }
.cm-hero-proof a { font-weight:700; text-underline-offset:.25rem; }
.cm-hero-foot { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; border-top:1px solid var(--cm-hero-line); padding-block:1.5rem; margin-top:3.5rem; color:var(--cm-hero-muted); font-size:var(--type-14); }
/* Capabilities with progressive enhancement to the shared PrimeVue explorer. */
.cm-architecture { margin:0; padding:1.4rem; border:1px solid var(--cm-hero-line); border-radius:.75rem; background:var(--cm-diagram); min-width:0; }
.cm-architecture figcaption { display:flex; justify-content:space-between; gap:1rem; font-size:var(--type-14); letter-spacing:.1em; font-weight:700; color:var(--cm-hero-muted); margin-bottom:1.4rem; }
.cm-diagram-index { color:var(--cm-accent); }
.cm-architecture-layer { border:1px solid var(--cm-hero-line); padding:1rem 1.1rem; border-radius:.35rem; background:var(--cm-node); }
.cm-layer-label { display:block; margin-bottom:.6rem; color:var(--cm-hero-muted); font-size:var(--type-14); letter-spacing:.12em; font-weight:600; }
.cm-architecture-layer strong { font-size:var(--type-15); line-height:1.4; font-weight:600; }
.cm-layer-sources>div { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.cm-layer-sources>div>span { display:flex; gap:.5rem; align-items:center; font-size:var(--type-14); line-height:1.4; }
.cm-layer-sources svg { color:var(--cm-accent); flex-shrink:0; }
.cm-architecture-connection { height:1rem; width:1px; margin-inline:auto; background:var(--cm-diagram-line); }
.cm-layer-platform { border-color:var(--cm-diagram-line); background:var(--cm-platform); }
.cm-module-list { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.9rem; }
.cm-module-list>span { font-size:var(--type-14); padding:.3rem .6rem; border:1px solid var(--cm-hero-line); border-radius:.2rem; }
.cm-layer-outcomes p { font-size:var(--type-14); line-height:1.45; margin:0; }
.cm-diagram-note { margin:1.1rem 0 0!important; font-size:var(--type-14); line-height:1.6; color:var(--cm-hero-muted); }
.cm-architecture .cm-layer-copy { font-size:var(--type-14); color:var(--cm-hero-muted); margin:.4rem 0; }
.cm-architecture .cm-text-link { color:var(--cm-accent); font-size:var(--type-14); }
.cm-explanation-intro { border-top:1px solid var(--line); margin-top:3rem; padding-top:2.5rem; }
.cm-explanation-intro>p { max-width:78ch; color:var(--muted); }
.cm-explanation-intro>h3 { font-size:var(--type-27); margin-bottom:1rem; }
.cm-explanation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1.5rem; }
.cm-explanation-grid article { padding:1.5rem; border:1px solid var(--line); border-radius:.5rem; background:var(--paper); scroll-margin-top:2rem; }
.cm-explanation-grid h4 { margin:0 0 .75rem; font-size:var(--type-18); }
.cm-explanation-grid p { color:var(--muted); }
@media(max-width:700px) { .cm-explanation-grid { grid-template-columns:1fr; } }
.cm-section { padding-block:5.5rem; scroll-margin-top:2rem; }
.cm-section-heading { display:grid; grid-template-columns:1.45fr 1fr; align-items:end; gap:5rem; margin-bottom:3rem; }
.cm-section-heading>p { color:var(--muted); max-width:42ch; font-size:var(--type-16); margin:0; }
.cm-case { overflow:clip; }
.cm-case-grid { position:relative; isolation:isolate; display:grid; grid-template-columns:1.4fr 1fr; gap:3.5rem; align-items:center; }
.cm-case-copy { position:relative; z-index:1; }
.cm-product-preview { display:block; text-decoration:none; border:1px solid var(--line); border-radius:.5rem; overflow:hidden; background:var(--soft); box-shadow:0 12px 28px var(--cm-shadow); }
.cm-product-preview img { width:100%; height:auto; display:block; }
.cm-browser-bar { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.85rem 1rem; font-size:var(--type-14); letter-spacing:.05em; color:var(--muted); border-bottom:1px solid var(--line); }
.cm-browser-bar>span:last-child { display:flex; align-items:center; gap:.5rem; letter-spacing:0; }
.cm-tag { display:inline-block; font-size:var(--type-14); letter-spacing:.06em; font-weight:600; border-bottom:1px solid var(--line); padding-bottom:.5rem; margin-bottom:1.3rem; color:var(--muted); }
.cm-case-copy h3 { font-size:var(--type-27); margin-bottom:1.25rem; }
.cm-case-copy p { color:var(--muted); }
.cm-case-features { list-style:none; padding:0; margin:1.5rem 0 2rem; display:grid; gap:.8rem; font-size:var(--type-14); }
.cm-case-features li { display:flex; gap:.7rem; align-items:center; }
.cm-case-features svg { flex-shrink:0; color:var(--primary); }
.cm-services { background:var(--cm-services); border-block:1px solid var(--line); }
.cm-service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.cm-service { padding:1.5rem; background:var(--paper); border:1px solid var(--line); border-radius:.5rem; display:flex; flex-direction:column; min-width:0; }
.cm-service-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.8rem; }
.cm-service-symbol { display:grid; place-items:center; background:var(--soft); width:2.8rem; height:2.8rem; border-radius:.35rem; color:var(--primary); }
.cm-number { font-size:var(--type-14); color:var(--muted); font-variant-numeric:tabular-nums; }
.cm-service h3 { min-height:3.75em; margin-bottom:1rem; font-size:var(--type-22); }
.cm-service>p { font-size:var(--text-body); color:var(--muted); }
.cm-service ul { padding-left:1.1rem; margin:0 0 1.6rem; font-size:var(--type-14); line-height:1.8; }
.cm-service .cm-text-link { margin-top:auto; align-self:start; font-size:var(--type-14); }
.cm-editorial { display:grid; grid-template-columns:1fr 1fr; gap:6rem; }
.cm-about-copy>p { color:var(--muted); }
.cm-about-copy .cm-large-copy { font-size:var(--type-21); color:var(--ink); line-height:1.65; }
 .cm-principles { margin:2rem 0 0; padding:0; list-style:none; counter-reset:principle; }
.cm-principles li { display:grid; grid-template-columns:2.75rem minmax(0,1fr); align-items:start; gap:1rem; border-top:1px solid var(--line); padding-block:1.25rem; }
.cm-principle-number { display:grid; place-items:center; width:2.75rem; height:2.75rem; border:1px solid var(--line); border-radius:50%; color:var(--primary); background:var(--soft); font-size:1rem; font-weight:600; font-variant-numeric:tabular-nums; }
.cm-principles li p { margin:.3rem 0 0; color:var(--muted); font-size:var(--type-14); }
.cm-code-delivery { margin-top:2rem; padding:clamp(1.25rem,3vw,2rem); border:1px solid var(--line); border-radius:.75rem; background:var(--paper); }
.cm-code-delivery h3 { margin-bottom:1rem; }
.cm-code-delivery>p:not(.cm-eyebrow) { max-width:85ch; color:var(--muted); }
.cm-code-delivery ul { display:flex; flex-wrap:wrap; gap:.6rem 2rem; padding-left:1.2rem; margin:1rem 0; }
.cm-code-delivery .cm-code-note { font-size:var(--type-14); margin:1rem 0 0; }

.cm-process { border-block:1px solid var(--line); background:var(--soft); }
.cm-steps { list-style:none; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem; margin:0; }
.cm-steps li { border-top:1px solid var(--line); padding-top:1rem; }
.cm-step-number { display:block; font-size:var(--type-14); color:var(--primary); font-weight:700; margin-bottom:1.3rem; }
.cm-steps h3 { font-size:var(--type-18); min-height:2.5em; }
.cm-steps p { color:var(--muted); font-size:var(--type-14); margin-top:.8rem; }
.cm-sites-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:5rem; align-items:start; }
.cm-sites-grid>div>p:not(.cm-eyebrow) { max-width:46ch; color:var(--muted); margin-top:1.6rem; }
.cm-solution-list article { display:flex; gap:1.4rem; padding:1.3rem 0; border-top:1px solid var(--line); }
.cm-solution-list .cm-number { padding-top:.2rem; flex-shrink:0; }
.cm-solution-list h3 { font-size:var(--type-18); margin:0 0 .6rem; }
.cm-solution-list article p { color:var(--muted); font-size:var(--type-14); margin:0; }
.cm-review-flow { margin-top:3rem; padding:1.5rem; border:1px solid var(--line); background:var(--soft); display:flex; justify-content:space-between; align-items:center; gap:2rem; }
.cm-review-flow p { font-size:var(--type-14); color:var(--muted); margin:.4rem 0 0; max-width:70ch; }
.cm-review-flow>a { white-space:normal; }
.cm-faq { padding-top:1rem; }
.cm-faq details { border-top:1px solid var(--line); padding:1.3rem 0; }
.cm-faq details:last-child { border-bottom:1px solid var(--line); }
.cm-faq summary { display:flex; justify-content:space-between; align-items:center; gap:1rem; list-style:none; font-weight:600; cursor:pointer; }
.cm-faq summary::-webkit-details-marker { display:none; }
.cm-faq details p { margin:1rem 0 0; color:var(--muted); font-size:var(--type-15); }
.cm-contact { background:var(--cm-hero); color:var(--cm-hero-ink); padding:4.5rem 0; scroll-margin-top:2rem; }
.cm-contact .cm-eyebrow { color:var(--cm-accent); }
.cm-contact-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); align-items:center; gap:clamp(2rem,4vw,4rem); }
.cm-contact-copy h2 { max-width:18ch; }
.cm-contact-copy .cm-contact-intro { color:var(--cm-hero-muted); max-width:47ch; margin:1.5rem 0 0; }
.cm-contact-brief { margin-top:2rem; }
.cm-contact-brief h3 { font-size:var(--type-16); letter-spacing:0; line-height:1.5; }
.cm-contact-brief p { color:var(--cm-hero-muted); max-width:42ch; margin:.4rem 0 0; font-size:var(--type-15); }
.cm-contact-channels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; min-width:0; padding:clamp(1.25rem,2vw,1.5rem); border:1px solid var(--cm-hero-line); border-radius:.75rem; background:var(--cm-diagram); }
.cm-contact-channel { display:grid; align-content:start; justify-items:start; gap:.75rem; min-width:0; }
.cm-contact-channel+.cm-contact-channel { padding-left:1.5rem; border-left:1px solid var(--cm-hero-line); }
.cm-contact-channel h3 { font-size:var(--type-18); line-height:1.4; letter-spacing:0; }
.cm-contact-channel .cm-contact-detail { margin:0; font-size:var(--type-18); color:var(--cm-hero-muted); overflow-wrap:anywhere; min-width:0; max-width:100%; }
.cm-contact-channel .cm-contact-help { color:var(--cm-hero-muted); font-size:var(--type-14); line-height:1.6; margin:0; max-width:34ch; }
@media(max-width:1100px) { .cm-contact-grid { grid-template-columns:1fr; } }
@media(max-width:650px) {
 .cm-contact-channels { grid-template-columns:1fr; }
 .cm-contact-channel+.cm-contact-channel { padding:1.5rem 0 0; border-left:0; border-top:1px solid var(--cm-hero-line); }
}
.cm-footer { padding:3rem 0 1.5rem; }
.cm-footer-row { display:flex; justify-content:space-between; gap:2rem; align-items:center; }
.cm-footer-row>p { margin:0; color:var(--muted); font-size:var(--type-14); }
.cm-footer-row>a:last-child { font-size:var(--type-14); }
.cm-footer-bottom { display:flex; justify-content:space-between; gap:1rem; border-top:1px solid var(--line); padding-top:1.5rem; margin-top:2.5rem; font-size:var(--type-14); color:var(--muted); }
.cm-menu { display:none; }
@media(max-width:1200px) { .cm-site .cm-nav-action { display:none; } .cm-hero-grid { gap:3rem; } .cm-desktop-nav { gap:1rem; } .cm-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .cm-service h3 { min-height:0; } }
@media(max-width:900px) {
 .cm-shell { width:calc(100% - 2.5rem); }
 .cm-desktop-nav { display:none; }
 .cm-menu { display:block; }
 .cm-menu summary { width:44px; min-height:44px; justify-content:center; padding:.5rem; }
 .cm-menu[open] nav { right:0; left:auto; min-width:min(20rem,90vw); background:var(--paper); color:var(--ink); }
 .cm-menu nav a { display:block; border:0; padding:.8rem; }
 .cm-nav { min-height:80px; gap:1rem; }
 .cm-hero { padding-top:3rem; }
 .cm-hero-grid { grid-template-columns:1fr; }
 .cm-site h1 { font-size:var(--cm-title-mobile); max-width:21ch; }
 .cm-lead { max-width:62ch; }
 .cm-architecture { width:min(520px,100%); margin-inline:auto; }
 .cm-hero-foot { margin-top:2.5rem; align-items:flex-start; flex-direction:column; gap:.4rem; }
 .cm-section { padding-block:3.5rem; }
 .cm-section-heading,.cm-case-grid,.cm-editorial,.cm-sites-grid,.cm-contact-grid { grid-template-columns:1fr; gap:2rem; }
 .cm-section-heading { margin-bottom:2rem; }
 .cm-section-heading>p { max-width:60ch; }
 .cm-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .cm-review-flow { align-items:flex-start; flex-direction:column; gap:1rem; }
 .cm-faq { padding-top:0; }
 .cm-contact { padding-block:3.5rem; }
 .cm-footer-row { flex-wrap:wrap; }
 .cm-footer-bottom { flex-direction:column; }
}
@media(max-width:650px) {
 .cm-shell { width:calc(100% - 32px); }
 .cm-nav { flex-wrap:wrap; gap:.5rem; padding-block:.75rem; }
 .cm-brand { font-size:var(--type-14); gap:.5rem; }
 .cm-brand-mark { width:2.5rem; height:2.5rem; font-size:var(--type-18); }
 .cm-site .theme-header-tools { gap:.4rem; flex-wrap:wrap; justify-content:flex-end; max-width:100%; }
 .cm-service-grid { display:flex; }
 .cm-site .carousel-track { gap:1rem; }
 .cm-architecture { padding:12px; }
 .cm-architecture figcaption { flex-wrap:wrap; }
 .cm-architecture-layer { padding:12px; }
 .cm-service { padding:20px; }
 .cm-layer-sources>div { grid-template-columns:1fr; gap:.6rem; }
 .cm-steps { gap:1.2rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr)); }
 .cm-steps h3 { font-size:var(--type-16); }
 .cm-steps p { font-size:var(--type-14); }
 .cm-actions { gap:1rem; }
 .cm-actions>.cm-site .cm-button { width:100%; }
 .cm-footer-row { align-items:flex-start; flex-direction:column; }
}
