/* Directorio: composición editorial, material del proveedor y lectura clara. */
:root {
  --dir-bg: #faf9f6; --dir-ink: #242b28; --dir-ink-soft: #565e59;
  --dir-ink-faint: #626a65; --dir-line: #d8ddd7; --dir-gold: #3c5b49;
  --dir-gold-soft: #a2b3a3; --dir-gold-wash: #edf1eb;
  --dir-radius: 4px; --dir-shadow: none; --dir-max: 1320px;
}
.dir-main { padding: 24px 40px 76px; }
.dir-header { background: var(--dir-bg); }
.dir-header__inner { padding: 14px 40px; }
.dir-brand__name { font-size: 24px; }
.dir-btn { border-radius: 3px; min-height: 44px; font-size: 13px; letter-spacing: 0; padding: 0 16px; }
.dir-btn--primary { background: #2d4437; border-color: #2d4437; }
.dir-btn--primary:hover { background: #1e3227; border-color: #1e3227; }
.dir-btn--sm { min-height: 44px; }
.dir-workspace { background: none; border: 0; border-bottom: 1px solid var(--dir-line); border-radius: 0; box-shadow: none; padding: 0 0 10px; margin-bottom: 18px; gap: 8px; }
.dir-workspace__titulo { font-family: var(--dir-sans); font-size: 12px; color: var(--dir-ink-soft); font-weight: 500; }
.dir-workspace .dir-btn { border-color: transparent; background: transparent; }
.dir-workspace .dir-btn:hover { background: #edf1eb; }
.dir-discovery-hero { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(0,.65fr); align-items: center; gap: 70px; margin: 28px 0; }
.dir-discovery-hero h1 { font-size: clamp(48px,4.6vw,66px); line-height: .99; letter-spacing: -.035em; margin: 14px 0 18px; font-weight: 500; }
.dir-discovery-hero h1 em { color: #3b5947; font-weight: 400; }
.dir-discovery-hero > div > p:last-child { max-width: 48ch; font-size: 15px; line-height: 1.8; }
.dir-editorial-kicker, .dir-hero .dir-editorial-kicker { font-family: var(--dir-sans); font-size: 11px; letter-spacing: .15em; text-transform: uppercase; color: #46624f; font-weight: 500; }
.dir-discovery-note { border-left: 1px solid var(--dir-line); padding-left: 32px; color: var(--dir-ink-soft); }
.dir-discovery-note ol { list-style: decimal-leading-zero; padding-left: 25px; font-size: 13px; line-height: 1.7; margin: 22px 0; }
.dir-discovery-note li { padding: 5px 0 5px 8px; }
.dir-discovery-note > p:last-child { font-size: 12px; line-height: 1.8; max-width: 33ch; }
.dir-filters { border: 0; border-top: 1px solid #a8b5a9; border-bottom: 1px solid #a8b5a9; border-radius: 0; padding: 22px 0 15px; gap: 18px; background: transparent; box-shadow: none; margin-bottom: 0; }
.dir-field label, .dir-field > span { font-size: 12px; letter-spacing: 0; text-transform: none; color: var(--dir-ink-soft); }
.dir-input, .dir-select, .dir-textarea { border-radius: 3px; border-color: #c7d0c6; background: #fff; font-size: 14px; min-height: 46px; }
.dir-advanced-disclosure { grid-column: 1/-1; grid-row: 2; font-size: 12px; color: var(--dir-ink-soft); }
.dir-advanced-disclosure summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 12px; list-style: none; width: fit-content; }
.dir-advanced-disclosure summary::after { content: '+'; font-size: 18px; }
.dir-advanced-disclosure[open] summary::after { content: '−'; }
.dir-advanced-filters { padding: 12px 0 8px; gap: 24px; }
.dir-discovery-categories { display: flex; gap: 24px; overflow-x: auto; scrollbar-width: thin; padding: 14px 0 6px; margin-bottom: 20px; }
.dir-category-link { flex: none; border: 0; border-bottom: 2px solid transparent; padding: 10px 0; min-height: 44px; background: transparent; color: #566159; font: inherit; font-size: 12px; cursor: pointer; }
.dir-category-link[aria-pressed=true] { color: #263d30; border-bottom-color: #3b5947; font-weight: 600; }
.dir-category-link:hover { color: #1f392a; }
.dir-resultsbar { border-bottom: 1px solid var(--dir-line); padding-bottom: 12px; margin-bottom: 28px; }
.dir-count { font-size: 12px; color: var(--dir-ink-soft); }
.dir-grid { gap: 38px 28px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.dir-grid > .dir-card { border: 0; border-radius: 0; box-shadow: none; background: none; overflow: visible; display: flex; flex-direction: column; }
.dir-grid > .dir-card:hover { box-shadow: none; transform: none; }
.dir-card__media { aspect-ratio: 4/3; height: auto; border-radius: 2px; overflow: hidden; position: relative; }
.dir-card__media img { height: 100%; width: 100%; object-fit: cover; transition: transform .35s ease; }
.dir-card:has(.dir-card__title-link:hover) .dir-card__media img { transform: scale(1.025); }
.dir-card__body { padding: 18px 0 0; display: flex; flex-direction: column; flex: 1; }
.dir-card__categoria { margin: 0 0 9px; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; color: #536955; }
.dir-card__title { font-size: 31px; line-height: 1.08; margin: 0 0 12px; font-weight: 500; }
.dir-card__title-link { color: inherit; text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.dir-card__title-link:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.dir-card__desc { font-size: 13px; line-height: 1.7; margin: 0 0 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.dir-card__foot { border-top: 1px solid var(--dir-line); padding: 12px 0 0; margin-top: auto; gap: 8px; display: flex; flex-wrap: wrap; align-items: center; }
.dir-card__foot > .dir-stars { width: 100%; }
.dir-card__foot > .dir-btn { background: transparent; padding-left: 0; border: 0; text-decoration: underline; text-underline-offset: 4px; margin-right: auto; }
.dir-card__foot > .dir-card__acciones { width: 100%; padding-top: 0; gap: 14px; }
.dir-card__acciones .dir-btn { border: 0; padding: 0 3px; background: none; font-size: 12px; color: #526255; }
.dir-card__acciones .dir-btn:hover { text-decoration: underline; }
.dir-badge { border-radius: 0; background: #faf9f6ed; font-size: 10px; letter-spacing: .03em; padding: 6px 9px; color: #354d3d; }
.dir-vacio { grid-column: 1/-1; text-align: left; padding: 56px 0 70px; border: 0; border-bottom: 1px solid var(--dir-line); background: none; }
.dir-vacio h2 { font-family: var(--dir-serif); font-weight: 500; font-size: 42px; margin: 14px 0; }
.dir-vacio > p:not(.dir-editorial-kicker) { max-width: 55ch; }
.dir-vacio .dir-btn { margin-top: 12px; }
.dir-stars__texto { color: #5b645e; font-size: 12px; }
.dir-tag { border-radius: 2px; background: #edf1eb; color: #415747; }
.dir-profile-hero { grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 40px; border: 0; border-radius: 0; background: none; box-shadow: none; overflow: visible; margin-bottom: 36px; align-items: center; }
.dir-profile-hero__texto { padding: 24px 10px 24px 0; min-width: 0; }
.dir-profile__ceja { color: #45634f; font-size: 11px; letter-spacing: .12em; line-height: 1.8; margin: 0 0 18px; }
.dir-profile__titulo { font-weight: 500; letter-spacing: -.035em; font-size: clamp(48px,5vw,76px); line-height: 1.03; margin: 0 0 18px; overflow-wrap: anywhere; }
.dir-profile__descripcion { font-size: 14px; line-height: 1.9; color: #515c54; margin: 22px 0; white-space: pre-wrap; overflow-wrap: anywhere; max-width: 48ch; }
.dir-profile__zonas { border-top: 1px solid var(--dir-line); padding-top: 18px; font-size: 12px; color: #59655b; }
.dir-profile__precio { color: #354f3d; font-weight: 500; font-size: 13px; }
.dir-profile-hero__media { width: 100%; min-width: 0; min-height: 480px; border-radius: 2px; aspect-ratio: 1.04; position: relative; overflow: hidden; align-self: start; }
.dir-profile-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.dir-profile__pie { border-radius: 0; left: 0; bottom: 0; right: 0; background: #24372ce8; color: white; font-size: 11px; padding: 14px 20px; max-width: none; overflow-wrap: anywhere; }
.dir-profile-hero__media--vacia { background: #edf1eb; color: #546f59; min-height: 350px; }
.dir-profile-hero__media--vacia > span { font-size: 140px; font-family: var(--dir-serif); font-weight: 400; }
.dir-profile-nav { background: #faf9f6f5; border-bottom: 1px solid #adb9ac; padding: 10px 0; margin-bottom: 28px; gap: 24px; overflow-x: auto; flex-wrap: nowrap; box-shadow: none; }
.dir-profile-nav .dir-btn { border: 0; border-radius: 0; padding: 0; background: none; font-size: 12px; flex: none; min-height: 44px; min-width: 44px; }
.dir-profile-nav .dir-btn:hover { color: #2e513c; text-decoration: underline; text-underline-offset: 8px; }
.dir-profile__columnas { grid-template-columns: minmax(0,1.7fr) minmax(0,1fr); gap: 48px; }
.dir-profile__columnas > div { min-width: 0; }
.dir-panel { box-shadow: none; border-radius: 0; border: 0; border-top: 1px solid var(--dir-line); background: transparent; padding: 28px 0; margin-bottom: 32px; }
.dir-panel h2 { font-size: 32px; line-height: 1.15; font-weight: 500; margin: 0 0 18px; }
.dir-panel h3 { font-family: var(--dir-serif); font-size: 25px; line-height: 1.2; font-weight: 500; text-transform: none; letter-spacing: 0; }
.dir-profile__columnas > div:last-child > .dir-panel:first-child { background: #edf1eb; border: 0; padding: 28px; }
.dir-profile__columnas > div:last-child > .dir-panel .dir-panel { padding-top: 16px; margin: 0; }
.dir-form { gap: 16px; }
.dir-form .dir-field { font-size: 12px; }
.dir-consulta-contexto { border-radius: 0; background: #f7f9f5; border-left: 2px solid #7b977d; font-size: 12px; padding: 12px 16px; }
.dir-profile__columnas .dir-selection { padding: 18px 0 26px; }
.dir-selection h3 { margin-top: 0; }
.dir-selection > p { font-size: 13px; line-height: 1.8; }
.dir-portfolio__grid { gap: 22px; }
.dir-portfolio__foto { border-radius: 2px; aspect-ratio: 4/3; }
.dir-portfolio figcaption { font-size: 11px; color: #5c665f; }
.dir-faq summary { min-height: 44px; font-size: 13px; line-height: 1.6; }
.dir-faq > p { font-size: 13px; line-height: 1.8; }
.dir-profile-action { background: #faf9f6f7; border-radius: 0; border-top: 1px solid #bbc7b9; }
.dir-nota { border-radius: 2px; }
.dir-dialog { border-radius: 4px; background: #faf9f6; box-shadow: 0 20px 80px #18251c40; border: 1px solid #bac7ba; }
.dir-dialog::backdrop { background: #1c2b24a8; backdrop-filter: blur(3px); }
.dir-dialog__cerrar { background: #faf9f6; }
.dir-dialog__contenido h2 { font-family: var(--dir-serif); }
.dir-metric, .dir-message, .dir-message--own { border-radius: 3px; }
.dir-brief { border-left-color: #627d64; background: #edf1eb; }
.dir-provider-tools > .dir-btn { margin: 0 12px 12px 0; }
.dir-section-heading { margin-bottom: 24px; }
.dir-section-heading h2 { margin-bottom: 10px; }
.dir-catalog-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.dir-product { min-width: 0; display: flex; flex-direction: column; border-bottom: 1px solid var(--dir-line); padding-bottom: 24px; }
.dir-product__foto { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 2px; }
.dir-product__sin-foto { aspect-ratio: 1; background: #edf1eb; display: grid; place-items: center; font-size: 12px; color: #5d6c5d; }
.dir-product__body { padding-top: 16px; display: flex; flex-direction: column; flex: 1; align-items: start; }
.dir-product__body h3 { font-size: 28px; margin: 0 0 12px; overflow-wrap: anywhere; }
.dir-product__body > p { font-size: 13px; line-height: 1.8; margin: 0 0 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
.dir-product__body .dir-product__modalidad { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: #46624c; margin-bottom: 9px; }
.dir-product__precio { font-size: 13px; font-weight: 500; color: #385941; margin: auto 0 14px; padding-top: 8px; }
.dir-product-context { padding: 16px; border: 1px solid #9bad9a; background: #edf1eb; font-size: 14px; font-weight: 500; }
.dir-catalog > .dir-count { margin-top: 24px; }
.dir-catalog-editor__intro { font-size: 14px; max-width: 60ch; }
.dir-catalog-plan-note { border-left: 2px solid #627d64; padding: 12px 16px; background: #edf1eb; font-size: 13px; }
.dir-table-scroll { overflow-x: auto; }
.dir-catalog-metrics { border-collapse: collapse; width: 100%; text-align: left; font-size: 12px; }
.dir-catalog-metrics caption { text-align: left; padding: 0 0 14px; color: var(--dir-ink-soft); }
.dir-catalog-metrics th, .dir-catalog-metrics td { padding: 12px; border-bottom: 1px solid var(--dir-line); }
.dir-catalog-metrics thead th { background: #edf1eb; font-weight: 500; }
.dir-catalog-metrics td { text-align: center; }
.dir-catalog-metrics tbody th { min-width: 150px; max-width: 280px; overflow-wrap: anywhere; }
.dir-product-editor { border-top: 1px solid #c6d1c3; margin: 16px 0; }
.dir-product-editor > summary { padding: 16px 8px; min-height: 52px; cursor: pointer; font-size: 16px; font-weight: 500; overflow-wrap: anywhere; }
.dir-product-editor__campos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 16px 0; }
.dir-product-editor__campos > .dir-field:has(textarea), .dir-product-editor__campos > .dir-line { grid-column: 1/-1; }
.dir-product-editor__preview { grid-column: 1/-1; background: #edf1eb; display: grid; grid-template-columns: 90px 1fr; column-gap: 18px; padding: 16px; font-size: 12px; }
.dir-product-editor__preview > img { width: 90px; height: 90px; object-fit: cover; grid-row: span 3; border-radius: 2px; }
.dir-product-editor__preview:not(:has(img)) { grid-template-columns: 1fr; }
.dir-product-editor__preview > strong { font-size: 18px; align-self: end; overflow-wrap: anywhere; }
.dir-catalog-editor > button { margin: 12px 12px 12px 0; }
.dir-product-editor .dir-line .dir-btn { font-size: 12px; }
.dir-field input:focus-visible, .dir-field select:focus-visible, .dir-field textarea:focus-visible, button:focus-visible, summary:focus-visible, .dir-card__title-link:focus-visible { outline: 2px solid #496e51; outline-offset: 4px; }
summary { touch-action: manipulation; }
.dir-profile [data-perfil-seccion] { scroll-margin-top: calc(var(--dir-header-height,90px) + 80px); }
@media(min-width:1600px) { .dir-main, .dir-header__inner { padding-left: 0; padding-right: 0; } }
@media(max-width:1000px) {
  .dir-main, .dir-header__inner { padding-left: 24px; padding-right: 24px; }
  .dir-discovery-hero { gap: 32px; grid-template-columns: 1.2fr .8fr; }
  .dir-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dir-profile-hero { gap: 28px; } .dir-profile-hero__media { min-height: 400px; }
  .dir-profile__columnas { gap: 28px; grid-template-columns: 1.2fr 1fr; }
  .dir-catalog-grid { gap: 18px; } .dir-card__title { font-size: 28px; }
}
@media(max-width:720px) {
  .dir-main { padding: 18px 20px 80px; } .dir-header__inner { padding: 12px 20px; gap: 12px; }
  .dir-brand__name { font-size: 21px; } .dir-header__actions { gap: 6px; }
  .dir-header__actions .dir-btn { padding: 0 10px; font-size: 11px; }
  .dir-workspace { margin-bottom: 20px; gap: 4px; } .dir-workspace__titulo { width: auto; margin-right: auto; }
  .dir-workspace .dir-btn { padding: 0 8px; font-size: 11px; }
  .dir-discovery-hero { display: block; margin: 28px 0; } .dir-discovery-hero h1 { font-size: 54px; }
  .dir-discovery-note { display: none; } .dir-discovery-hero > div > p:last-child { font-size: 13px; line-height: 1.8; }
  .dir-filters { grid-template-columns: 1fr 1fr; gap: 14px; padding: 18px 0 6px; }
  .dir-filters .dir-field--ancho, .dir-filters > button[type=submit] { grid-column: 1/-1; }
  .dir-advanced-disclosure { grid-row: auto; } .dir-advanced-disclosure summary { font-size: 11px; line-height: 1.5; }
  .dir-input, .dir-select, .dir-textarea { font-size: 16px; } .dir-advanced-filters { gap: 16px; }
  .dir-discovery-categories { gap: 20px; margin-bottom: 16px; } .dir-resultsbar { margin-bottom: 22px; }
  .dir-grid { gap: 32px; grid-template-columns: 1fr; } .dir-card__title { font-size: 33px; }
  .dir-card__foot > .dir-card__acciones { width: auto; margin-left: auto; } .dir-card__foot > .dir-stars { width: 100%; }
  .dir-card__acciones { gap: 12px; } .dir-card__acciones .dir-btn { font-size: 11px; }
  .dir-profile-hero { display: flex; flex-direction: column-reverse; gap: 0; margin-bottom: 12px; }
  .dir-profile-hero__media { width: 100%; aspect-ratio: 4/3; min-height: 0; max-height: none; }
  .dir-profile-hero__texto { width: 100%; padding: 26px 0 12px; }
  .dir-profile__titulo { font-size: 48px; line-height: 1.06; } .dir-profile__ceja { font-size: 10px; margin-bottom: 14px; }
  .dir-profile__descripcion { font-size: 13px; line-height: 1.9; } .dir-profile__pie { padding: 10px 14px; font-size: 10px; }
  .dir-profile-nav { gap: 22px; margin-bottom: 20px; } .dir-profile__columnas { display: block; }
  .dir-panel { padding: 24px 0; margin-bottom: 26px; } .dir-panel h2 { font-size: 30px; }
  .dir-profile__columnas > div:last-child > .dir-panel:first-child { padding: 22px 18px; }
  .dir-catalog-grid { gap: 18px; } .dir-product__body h3 { font-size: 24px; }
  .dir-product__body > p { font-size: 12px; line-height: 1.7; } .dir-product__body > .dir-btn { font-size: 11px; width: 100%; padding: 0 8px; }
  .dir-product__precio { font-size: 12px; } .dir-product__sin-foto { font-size: 10px; } .dir-portfolio__grid { gap: 16px; }
  .dir-dialog { padding: 18px; max-height: 92dvh; width: calc(100% - 24px); }
  .dir-product-editor__campos { grid-template-columns: 1fr; } .dir-product-editor__campos > .dir-field { grid-column: 1/-1; }
  .dir-product-editor__preview { padding: 12px; column-gap: 12px; } .dir-vacio { padding: 36px 0; } .dir-vacio h2 { font-size: 34px; }
  .dir-profile-action { padding: 10px 20px; } .dir-profile-action span { font-size: 11px; }
}
@media(max-width:360px) {
  .dir-main, .dir-header__inner { padding-left: 16px; padding-right: 16px; }
  .dir-header__actions { width: 100%; } .dir-discovery-hero h1 { font-size: 46px; }
  .dir-profile__titulo { font-size: 42px; } .dir-catalog-grid { grid-template-columns: 1fr; }
  .dir-workspace__titulo { width: 100%; } .dir-product__foto, .dir-product__sin-foto { aspect-ratio: 4/3; }
}
@media(prefers-reduced-motion:reduce) { .dir-card__media img { transition: none; } .dir-profile * { scroll-behavior: auto !important; } }
[hidden] { display: none !important; }
