/* Catálogo público del CMS · Manrope y Newsreader se heredan del sistema actual. */
.services-page { --catalog-ink: #123d2f; --catalog-muted: #526158; --catalog-gold: #886027; --catalog-line: #d8dbd0; --catalog-paper: #faf9f5; background: var(--catalog-paper); }
.services-page *, .services-page *::before, .services-page *::after { box-sizing: border-box; }
.catalog-surface [hidden] { display: none !important; }
.catalog-container { width: 100%; max-width: 1360px; padding-left: 24px; padding-right: 24px; margin: 0 auto; }
.catalog-surface { overflow-wrap: anywhere; }
.catalog-surface :is(.catalog-heading,.catalog-contact-inner,.catalog-empty,.catalog-service-header) > * { min-width: 0; max-width: 100%; }
.catalog-button, .catalog-text-link, .catalog-back-link { max-width: 100%; white-space: normal; }
.catalog-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: var(--catalog-muted); font-size: 16px; line-height: 1.6; }
.catalog-breadcrumb a { color: var(--catalog-muted); min-height: 44px; display: inline-flex; align-items: center; text-decoration: underline; text-underline-offset: 4px; }
.catalog-breadcrumb .icon { width: 16px; height: 16px; }
.catalog-hero { padding-top: 19px; }
.catalog-hero-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.85fr); gap: 70px; align-items: center; padding: 39px 0 51px; border-bottom: 1px solid var(--catalog-line); }
.catalog-eyebrow { color: var(--catalog-gold); font-size: 16px; font-weight: 600; letter-spacing: .06em; line-height: 1.6; }
.catalog-hero .hero-title { font-size: clamp(40px,4.5vw,64px); font-weight: 700; line-height: 1.12; letter-spacing: -.025em; margin: 20px 0; text-wrap: balance; color: var(--catalog-ink); }
.catalog-hero .hero-title em { font-style: italic; color: var(--catalog-gold); font-weight: 400; }
.catalog-hero-grid > div > p { max-width: 58ch; font-size: 18px; line-height: 1.65; color: var(--catalog-muted); margin: 0 0 27px; }
.catalog-button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; padding: 14px 22px; border: 1px solid transparent; min-height: 52px; border-radius: 5px; background: var(--ta-green); color: #fff; font: inherit; font-size: 16px; font-weight: 600; line-height: 1.6; text-decoration: none; cursor: pointer; transition: background 180ms ease, transform 180ms ease; }
.catalog-button .icon { flex: 0 0 21px; width: 21px; height: 21px; }
.catalog-button:hover { background: #075139; color: #fff; transform: translateY(-1px); }
.catalog-hero-photo { margin: 0; min-width: 0; }
.catalog-hero-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border-radius: 4px; }
.catalog-hero-photo figcaption { font-size: 14px; line-height: 1.6; color: var(--catalog-muted); padding-top: 10px; }
.catalog-main { padding-top: 53px; padding-bottom: 67px; position: relative; scroll-margin-top: 115px; }
.catalog-legacy-anchor { display: block; height: 0; scroll-margin-top: 120px; }
.catalog-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 33px; }
.catalog-heading .section-title { font-size: clamp(32px,3.5vw,44px); line-height: 1.2; font-weight: 700; margin: 12px 0 0; color: var(--catalog-ink); }
#catalog-heading { scroll-margin-top: 150px; }
#catalog-heading:focus { outline: none; }
#catalog-heading:focus-visible { outline: 2px solid var(--catalog-gold); outline-offset: 6px; }
.catalog-count { font-size: 16px; line-height: 1.6; color: var(--catalog-muted); flex: 0 0 auto; margin: 0 0 4px; }
.catalog-empty { display: flex; align-items: start; gap: 28px; background: #f0f0e6; border: 1px solid var(--catalog-line); border-radius: 5px; padding: 40px; }
.catalog-empty-icon { display: grid; place-items: center; width: 62px; height: 62px; border: 1px solid #c6ccbd; border-radius: 50%; flex: 0 0 62px; color: var(--catalog-ink); }
.catalog-empty-icon .icon { width: 30px; height: 30px; }
.catalog-empty h3 { color: var(--catalog-ink); font-size: 28px; line-height: 1.3; font-weight: 600; margin: 0 0 17px; }
.catalog-empty p { color: var(--catalog-muted); font-size: 18px; line-height: 1.65; max-width: 68ch; margin: 0 0 17px; }
.catalog-text-link { color: var(--catalog-ink); display: inline-flex; align-items: center; gap: 12px; min-height: 48px; font-size: 16px; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; line-height: 1.6; }
.catalog-text-link .icon { flex: 0 0 20px; width: 20px; height: 20px; transition: transform 180ms ease; }
.catalog-text-link:hover { color: var(--catalog-gold); }
.catalog-text-link:hover .icon { transform: translateX(3px); }
.catalog-search { max-width: 800px; margin: 0 0 38px; }
.catalog-search label { display: block; font-size: 16px; line-height: 1.6; font-weight: 600; color: var(--catalog-ink); margin-bottom: 10px; }
.catalog-search-field { display: flex; align-items: center; gap: 15px; padding: 4px 16px; min-height: 60px; border: 1px solid #a7b1a0; border-radius: 5px; background: #fffefa; }
.catalog-search-field > .icon { flex: 0 0 24px; width: 24px; height: 24px; color: var(--catalog-muted); }
.catalog-search input { min-width: 0; flex: 1; width: 100%; padding: 10px 0; border: 0; background: transparent; color: var(--catalog-ink); font: inherit; font-size: 18px; line-height: 1.6; outline: none; }
.catalog-search input::placeholder { color: #61715f; opacity: 1; }
.catalog-search-field:focus-within { outline: 2px solid var(--catalog-gold); outline-offset: 4px; }
.catalog-search button { border: 0; background: transparent; color: var(--catalog-ink); font: inherit; font-size: 16px; font-weight: 600; padding: 9px 3px; min-height: 44px; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.catalog-layout { display: grid; grid-template-columns: 288px minmax(0,1fr); gap: 60px; align-items: start; }
.catalog-layout.has-no-results { grid-template-columns: minmax(0,1fr); }
.catalog-sidebar { position: sticky; top: 118px; min-width: 0; }
.catalog-index { border: 1px solid var(--catalog-line); border-radius: 5px; background: #fffefa; }
.catalog-index summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 19px; font-size: 17px; line-height: 1.5; font-weight: 600; color: var(--catalog-ink); cursor: pointer; list-style: none; }
.catalog-index summary::-webkit-details-marker { display: none; }
.catalog-index summary .icon { flex: 0 0 22px; width: 22px; height: 22px; transform: rotate(90deg); transition: transform 180ms ease; }
.catalog-index[open] summary .icon { transform: rotate(-90deg); }
.catalog-index ol { padding: 0 9px 12px; margin: 0; list-style: none; max-height: calc(100dvh - 220px); overflow-y: auto; scrollbar-width: thin; }
.catalog-index li { margin: 0; }
.catalog-index a { display: flex; align-items: baseline; gap: 11px; padding: 13px 10px; min-height: 48px; border-radius: 3px; color: var(--catalog-muted); font-size: 16px; line-height: 1.6; text-decoration: none; overflow-wrap: anywhere; transition: background 180ms ease; }
.catalog-index a > span { color: var(--catalog-gold); font-size: 16px; font-variant-numeric: tabular-nums; flex: 0 0 24px; }
.catalog-index a:hover, .catalog-index a[aria-current="location"] { background: #e9eee7; color: var(--catalog-ink); }
.catalog-items { min-width: 0; }
.catalog-service { border-top: 1px solid var(--catalog-line); padding: 37px 0 43px; scroll-margin-top: 117px; }
.catalog-service:first-child { padding-top: 0; border-top: 0; }
.catalog-service-header { display: flex; align-items: baseline; gap: 17px; margin-bottom: 26px; }
.catalog-service-number { color: var(--catalog-gold); font-size: 17px; font-variant-numeric: tabular-nums; flex: 0 0 auto; }
.catalog-service-header .section-title { font-size: clamp(30px,3vw,38px); line-height: 1.25; font-weight: 700; margin: 0; overflow-wrap: anywhere; color: var(--catalog-ink); }
.catalog-service-body { display: block; }
.catalog-service-with-photo { display: grid; grid-template-columns: minmax(0,1fr) 240px; align-items: start; gap: 29px; }
.catalog-service-description { color: #34473c; font-size: 18px; line-height: 1.65; overflow-wrap: anywhere; max-width: 72ch; }
.catalog-service-description :is(p,ul,ol,li,blockquote,a) { font-size: 18px; line-height: 1.65; }
.catalog-service-description p { margin: 0 0 20px; }
.catalog-service-description :is(ul,ol) { padding-left: 27px; margin: 20px 0; }
.catalog-service-description li { padding-left: 4px; margin: 9px 0; }
.catalog-service-description :is(h2,h3,h4) { color: var(--catalog-ink); font-weight: 600; line-height: 1.3; margin: 25px 0 15px; }
.catalog-service-description h2 { font-size: 29px; }
.catalog-service-description h3 { font-size: 26px; }
.catalog-service-description h4 { font-size: 23px; }
.catalog-service-description > :first-child { margin-top: 0; }
.catalog-service-description a { color: #07513a; text-decoration: underline; text-underline-offset: 4px; }
.catalog-service-description blockquote { border-left: 3px solid var(--catalog-gold); padding-left: 22px; margin: 25px 0; }
.catalog-service-photo { margin: 0; min-width: 0; }
.catalog-service-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: contain; border-radius: 3px; background: #eeeee4; }
.catalog-service-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 22px; margin-top: 22px; }
.catalog-back-link { display: inline-flex; align-items: center; gap: 9px; min-height: 48px; font-size: 16px; line-height: 1.6; color: var(--catalog-muted); text-decoration: underline; text-underline-offset: 4px; }
.catalog-back-link .icon { width: 18px; height: 18px; transform: rotate(90deg); }
.catalog-no-results { padding: 35px; border: 1px solid var(--catalog-line); border-radius: 5px; background: #f0f0e6; }
.catalog-no-results h3 { font-size: 28px; color: var(--catalog-ink); line-height: 1.3; }
.catalog-no-results p { font-size: 18px; line-height: 1.65; color: var(--catalog-muted); margin-bottom: 23px; }
.catalog-contact { border-top: 1px solid var(--catalog-line); background: #eeeee4; }
.catalog-contact-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding-top: 47px; padding-bottom: 47px; }
.catalog-contact .section-title { font-size: clamp(32px,3.8vw,45px); line-height: 1.2; font-weight: 700; margin-top: 14px; margin-bottom: 17px; color: var(--catalog-ink); }
.catalog-contact p { max-width: 60ch; font-size: 18px; line-height: 1.65; color: var(--catalog-muted); margin: 0; }
.catalog-contact .catalog-button { flex: 0 0 auto; }
.services-page .public-footer { margin-top: 0; }
.catalog-surface :is(a,button,summary):focus-visible { outline: 2px solid var(--catalog-gold); outline-offset: 5px; }
.catalog-service-header h2:focus { outline: none; }
.catalog-service-header h2:focus-visible { outline: 2px solid var(--catalog-gold); outline-offset: 6px; }
@media(max-width:1100px) { .catalog-hero-grid { gap: 40px; } .catalog-layout { grid-template-columns: 245px minmax(0,1fr); gap: 36px; } .catalog-service-with-photo { grid-template-columns: minmax(0,1fr); gap: 25px; } .catalog-service-photo { max-width: 450px; } .catalog-service-photo img { max-height: 310px; } }
@media(max-width:900px) { .catalog-hero-grid { grid-template-columns: minmax(0,1fr) minmax(0,.8fr); gap: 28px; } .catalog-hero .hero-title { font-size: 44px; } .catalog-layout { display: block; } .catalog-sidebar { position: static; margin-bottom: 35px; } .catalog-index ol { max-height: 50dvh; } .catalog-heading { align-items: start; flex-direction: column; gap: 15px; } .catalog-service { scroll-margin-top: 115px; } .catalog-contact-inner { align-items: start; flex-direction: column; gap: 25px; } }
@media(max-width:700px) { .catalog-container { padding-left: 20px; padding-right: 20px; } .catalog-hero { padding-top: 14px; } .catalog-breadcrumb { font-size: 16px; } .catalog-hero-grid { display: block; padding-top: 24px; padding-bottom: 30px; } .catalog-hero .hero-title { font-size: clamp(38px,10vw,48px); margin-top: 16px; } .catalog-hero-grid > div > p { font-size: 18px; } .catalog-hero-photo { margin-top: 29px; } .catalog-main { padding-top: 35px; padding-bottom: 43px; } .catalog-heading { margin-bottom: 26px; } .catalog-heading .section-title { font-size: 34px; } .catalog-empty { flex-direction: column; padding: 26px 23px; gap: 22px; } .catalog-empty h3 { font-size: 27px; } .catalog-empty p { font-size: 18px; } .catalog-button { width: auto; font-size: 16px; padding-left: 17px; padding-right: 17px; gap: 12px; } .catalog-text-link { align-items: start; padding-top: 8px; padding-bottom: 8px; } .catalog-text-link .icon { margin-top: 4px; } .catalog-search-field { gap: 10px; padding-left: 12px; padding-right: 12px; } .catalog-search input { font-size: 17px; } .catalog-search button { font-size: 16px; } .catalog-service-header { gap: 12px; } .catalog-service-header .section-title { font-size: 32px; } .catalog-service-description { font-size: 18px; } .catalog-service-actions { flex-direction: column; align-items: flex-start; gap: 5px; } .catalog-contact-inner { padding-top: 34px; padding-bottom: 35px; } .catalog-contact .section-title { font-size: 36px; } }
@media(max-width:359px) { .catalog-container { padding-left: 18px; padding-right: 18px; } .catalog-hero .hero-title { font-size: 37px; } .catalog-search-field { flex-wrap: wrap; } .catalog-search input { flex-basis: calc(100% - 38px); } .catalog-search button { margin-left: 34px; } .catalog-button { gap: 9px; } }
@media(prefers-reduced-motion:reduce) { .catalog-surface *, .catalog-surface *::before, .catalog-surface *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
@media print { .services-page .public-header, .services-page .public-footer, .catalog-breadcrumb, .catalog-search, .catalog-sidebar, .catalog-contact, .catalog-service-actions, .catalog-hero .catalog-button, .public-skip-link { display: none !important; } .catalog-layout { display: block; } .catalog-service { break-inside: avoid; } .catalog-hero-photo { max-width: 320px; } }
