/* ==========================================================================
   Aliados Proveedores — Clínica Palermo
   Figma: 2212:15163
   ========================================================================== */

/* ─── Hero ─── */
.ap-hero {
  background: var(--cp-primary-100) url('../../images/aliados-proveedores/hero-bg.png') center/cover no-repeat;
  padding: 56px 0;
  min-height: 480px;
}

.ap-hero__container {
  width: min(calc(100% - 3rem), 1115px);
  margin-inline: auto;
}

.ap-hero__text {
  max-width: 452px;
}

.ap-hero__title {
  font-family: var(--cp-font-heading);
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.25;
  color: var(--cp-text-ink);
  margin-block-end: 0;
}

.ap-hero__title--accent {
  color: var(--cp-blue-700);
}

.ap-hero__desc {
  font-family: var(--cp-font-body);
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.22;
  color: var(--cp-text-ink);
  margin-block-start: 20px;
  text-align: left;
}

.ap-hero__desc strong {
  font-weight: 700;
}

/* ─── Shared section styles ─── */
.ap-section {
  padding: 56px 0;
}

.ap-container {
  width: min(calc(100% - 3rem), 1115px);
  margin-inline: auto;
}

.ap-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.ap-kicker {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #00b9ea;
  margin-block-end: 0;
}

.ap-title {
  font-family: var(--cp-font-heading);
  font-size: 2rem;
  font-weight: 800;
  line-height: 1.19;
  color: var(--cp-text-ink);
  margin-block-end: 0;
}

.ap-lead {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.22;
  color: var(--cp-text-ink);
  margin-block-end: 0;
  text-align: left;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.ap-text {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.22;
  color: var(--cp-text-ink);
  text-align: left;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.ap-subtitle {
  font-family: var(--cp-font-heading);
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.366;
  color: var(--cp-blue-700);
  margin-block-end: 0;
}

.ap-gap {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ap-gap--lg {
  gap: 40px;
}

/* ─── Filosofía ─── */
.ap-filosofia {
  background: var(--cp-gray-bg);
}

.ap-filosofia__grid {
  display: grid;
  grid-template-columns: minmax(0, 624px) 1fr;
  gap: 40px;
  align-items: start;
}

.ap-filosofia__text {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ap-filosofia__text p {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.22;
  color: var(--cp-text-ink);
  text-align: left;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Card: Carta del Director */
.ap-card {
  background: var(--cp-text-ink);
  border-radius: var(--cp-radius-xl);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ap-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 140, 69, 0.15);
  border: 1px solid var(--cp-orange-500);
  border-radius: 50px;
  padding: 8px 15px;
  width: fit-content;
  color: var(--cp-orange-500);
}

.ap-card__badge svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.ap-card__label {
  font-family: var(--cp-font-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--cp-orange-500);
}

.ap-card__title {
  font-family: var(--cp-font-heading);
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.17;
  color: var(--cp-white);
}

.ap-card__author {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--cp-white);
}

.ap-card__quote {
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid var(--cp-orange-500);
  border-radius: 12px;
  padding: 10px 15px;
}

.ap-card__quote p {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.22;
  color: var(--cp-white);
  margin: 0;
  text-align: left;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* ─── Buttons ─── */
.ap-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
  border-radius: 10px;
  transition: background 0.2s, color 0.2s;
  width: fit-content;
}

.ap-btn__icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.ap-btn--primary {
  background: var(--cp-blue-700);
  color: var(--cp-white);
}

.ap-btn--primary:hover {
  background: #0a3d8f;
}

.ap-btn--orange {
  background: var(--cp-orange-500);
  color: var(--cp-white);
  border: 1px solid var(--cp-orange-500);
}

.ap-btn--orange:hover {
  background: #e67a35;
}

/* ─── Quiénes somos ─── */
.ap-quienes {
  background: var(--cp-white);
}

.ap-quienes__grid {
  display: grid;
  grid-template-columns: minmax(0, 624px) 1fr;
  gap: 40px;
  align-items: start;
}

.ap-quienes__text {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ap-quienes__text p {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.22;
  color: var(--cp-text-ink);
  text-align: left;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.ap-quienes__image img {
  display: block;
  width: 100%;
  border-radius: 0.75rem;
}

/* ─── Gestión de compras ─── */
.ap-gestion {
  background: var(--cp-gray-bg);
}

/* Alert — Decisión colegiada callout */
.ap-alert {
  display: flex;
  gap: 16px;
  padding: 15px;
  background: #f3f6fb;
  border: 1px solid #0e4fbe;
  border-radius: 10px;
  align-items: center;
}

.ap-alert__icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: var(--cp-white, #fff);
  border-radius: 50%;
  color: #0e4fbe;
}

.ap-alert__icon svg {
  width: 26.25px;
  height: 26.25px;
}

.ap-alert__content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ap-alert__title {
  font-family: var(--cp-font-body);
  font-size: 16px;
  font-weight: 700;
  color: #0e4fbe;
  margin: 0;
}

.ap-alert__text {
  font-family: var(--cp-font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.22;
  color: #0e4fbe;
  margin: 0;
  text-align: left;
}

/* Team cards */
.ap-team {
  display: flex;
  gap: 20px;
}

.ap-team__card {
  flex: 1;
  border: 1px solid var(--cp-gray-blue);
  border-radius: 12px;
  overflow: hidden;
  background: var(--cp-white);
}

.ap-team__img {
  display: block;
  width: 100%;
  height: 198px;
  object-fit: cover;
}

.ap-team__info {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.ap-team__area {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--cp-blue-700);
  text-transform: uppercase;
  margin-block: 0;
}

.ap-team__name {
  font-family: var(--cp-font-heading);
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.366;
  color: var(--cp-text-ink);
  text-align: center;
  margin-block: 0;
}

.ap-team__role {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--cp-text-ink);
  text-align: center;
  margin-block: 0;
}

.ap-team__detail {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border-top: 1px solid var(--cp-gray-blue);
  padding-top: 15px;
}

.ap-team__detail-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--cp-blue-700);
}

.ap-team__detail span {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--cp-text-ink);
  text-align: center;
}

/* --- Service Info Cards (Figma 2212:15411) --- */
.ap-service-cards {
  display: flex;
  gap: 20px;
  width: 100%;
}

.ap-service-card {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-width: 0;
  max-width: 547.5px;
  background: var(--cp-white, #fff);
  border: 1px solid var(--cp-gray-blue, #d5dfeb);
  border-radius: 12px;
  overflow: hidden;
  box-sizing: border-box;
}

.ap-service-card__img {
  display: block;
  width: 100%;
  height: 200px;
  object-fit: cover;
}

.ap-service-card__info {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  gap: 15px;
}

.ap-service-card__area {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 600;
  color: var(--cp-blue-700);
  font-variant: small-caps;
  letter-spacing: 0.5px;
  margin: 0;
}

.ap-service-card__divider {
  width: 100%;
  border: none;
  border-top: 1px solid var(--cp-gray-blue, #d5dfeb);
  margin: 0;
}

.ap-service-card__row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.ap-service-card__icon {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  color: var(--cp-blue-700);
}

.ap-service-card__text {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--cp-text-ink);
  margin: 0;
}

.ap-service-card__text--bold {
  font-weight: 700;
}

.ap-service-card__text--semibold {
  font-weight: 600;
}

.ap-service-card__link {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--cp-blue-700);
  text-decoration: underline;
  word-break: break-all;
  overflow-wrap: anywhere;
}

/* Alert — bottom full-width variant (Aviso Importante Facturación) — Figma 2397:20442 */
.ap-alert--full {
  width: 100%;
  margin-top: 10px;
  display: block;
  background: #f3f6fb;
  border: 1px solid #0e4fbe;
  border-radius: 10px;
  padding: 15px;
  box-sizing: border-box;
}

.ap-alert--full .ap-alert__text--figma {
  font-family: var(--cp-font-body);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.56;
  color: #0e4fbe;
  margin: 0;
  text-align: left;
}

.ap-alert--full .ap-alert__text--figma .ap-alert__emoji {
  font-size: 18px;
  font-weight: 700;
}

.ap-alert--full .ap-alert__text--figma .ap-alert__important {
  color: #ba0a0d;
  font-weight: 700;
}

.ap-alert--full .ap-alert__text--figma a {
  color: #0e4fbe;
  font-weight: 700;
  text-decoration: underline;
}

.ap-alert--full .ap-alert__text--figma a:hover {
  text-decoration: none;
}

/* ─── Estructura interna ─── */
.ap-estructura {
  background: var(--cp-white);
}

.ap-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--cp-gray-blue);
  border-radius: 16px;
}

.ap-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
}

.ap-table thead {
  background: var(--cp-blue-700);
  color: var(--cp-white);
}

.ap-table th {
  padding: 15px;
  text-align: left;
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 700;
  border: 1px solid var(--cp-gray-blue);
}

.ap-table td {
  padding: 15px;
  border: 1px solid var(--cp-gray-blue);
  vertical-align: top;
  line-height: 1.22;
}

.ap-table tbody tr:nth-child(even) {
  background: var(--cp-gray-bg);
}

.ap-table__rol {
  width: 24%;
}

.ap-table__def {
  width: 38%;
}

.ap-table__act {
  width: 38%;
}

.ap-tag {
  display: inline-block;
  padding: 8px 15px;
  margin: 2px;
  font-size: 0.75rem;
  font-weight: 600;
  background: #e0e9f4;
  color: var(--cp-blue-700);
  border-radius: 50px;
  white-space: nowrap;
}

/* ─── Instrumentos contractuales ─── */
.ap-instrumentos {
  background: var(--cp-gray-bg);
}

.ap-instr__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.ap-instr__card {
  border: 1px solid #d5dfeb;
  border-radius: 12px;
  overflow: hidden;
  background: var(--cp-white);
}

.ap-instr__header {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 25px;
  background: #f3f6fb;
}

.ap-instr__icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cp-blue-700);
  border-radius: 10px;
  flex-shrink: 0;
}

.ap-instr__icon svg {
  width: 28px;
  height: 28px;
  color: var(--cp-white);
}

.ap-instr__title {
  font-family: var(--cp-font-heading);
  font-size: 1.375rem;
  font-weight: 800;
  line-height: 1.364;
  color: var(--cp-blue-700);
}

.ap-instr__body {
  padding: 25px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ap-instr__desc {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.22;
  color: var(--cp-text-ink);
}

.ap-instr__note {
  display: flex;
  gap: 15px;
  padding: 15px;
  background: #f3f6fb;
  border-radius: 10px;
}

.ap-instr__note-icon {
  flex-shrink: 0;
  margin-top: 2px;
}

.ap-instr__note span {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.22;
  color: var(--cp-blue-700);
}

/* ─── Reglas (accordion) ─── */
.ap-reglas {
  background: var(--cp-gray-bg);
}

.ap-accordion {
  border: 1px solid #d5dfeb;
  border-radius: 12px;
  overflow: hidden;
  background: var(--cp-white);
}

.ap-accordion + .ap-accordion {
  margin-top: 20px;
}

.ap-accordion__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px;
  background: var(--cp-white);
  cursor: pointer;
  border: none;
  width: 100%;
  text-align: left;
}

.ap-accordion__header-info {
  display: flex;
  align-items: center;
  gap: 15px;
}

.ap-accordion__icon {
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cp-blue-700);
  border-radius: 10px;
  flex-shrink: 0;
}

.ap-accordion__icon svg {
  width: 30px;
  height: 30px;
  color: var(--cp-white);
}

.ap-accordion__label {
  font-family: var(--cp-font-heading);
  font-size: 1.125rem;
  font-weight: 700;
  color: #344054;
  line-height: 1.36;
}

.ap-accordion__chevron {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  transition: transform 0.2s;
  color: var(--cp-blue-700);
}

.ap-accordion[open] .ap-accordion__chevron {
  transform: rotate(180deg);
}

.ap-accordion__body {
  padding: 0 20px 20px;
}

.ap-accordion__body p,
.ap-accordion__body li {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.22;
  color: var(--cp-text-ink);
  text-align: left;
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.ap-accordion__body ul {
  list-style: disc;
  padding-left: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* ─── Portafolio — carrusel (Figma 2208-15019) ─── */
.ap-portafolio {
  background: var(--cp-white);
}

.ap-portafolio .ap-lead,
.ap-paso .ap-lead {
  font-weight: 600;
}

.ap-carousel {
  display: flex;
  align-items: center;
  gap: 20px;
}

.ap-carousel__viewport {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
}

.ap-carousel__track {
  display: flex;
  gap: 20px;
  transition: transform 0.35s ease;
}

.ap-carousel__nav {
  display: flex;
  gap: 20px;
  flex: 0 0 auto;
}

.ap-carousel__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  color: var(--cp-blue-700);
  cursor: pointer;
  transition: opacity 0.2s, transform 0.2s;
}

.ap-carousel__arrow:hover {
  background: transparent;
  transform: scale(1.15);
}

.ap-carousel__arrow:disabled {
  opacity: 0.4;
  cursor: default;
}

.ap-carousel__arrow svg {
  width: 21px;
  height: 21px;
}

.ap-carousel__arrow--next svg {
  transform: rotate(180deg);
}

.ap-portafolio__card {
  border: 1px solid #d5dfeb;
  border-radius: 12px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  background: #f3f6fb;
  flex: 0 0 300px;
  box-sizing: border-box;
}

.ap-portafolio__icon {
  width: 49px;
  height: 49px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f3f6fb;
  border-radius: 12px;
  flex-shrink: 0;
}

.ap-portafolio__icon svg {
  width: 31px;
  height: 31px;
  color: var(--cp-blue-700);
}

.ap-portafolio__name {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.22;
  color: var(--cp-text-ink);
  text-align: center;
  margin-block: 0;
}

/* ─── Paso a paso (Timeline) ─── */
.ap-paso {
  background: var(--cp-gray-bg);
}

.ap-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  padding-left: 60px;
}

.ap-timeline::before {
  content: "";
  position: absolute;
  left: 25px;
  top: 25px;
  bottom: 25px;
  width: 2px;
  background: var(--cp-blue-700);
}

.ap-timeline__step {
  display: flex;
  gap: 20px;
  position: relative;
  padding-bottom: 32px;
  background: #f3f6fb;
  border-radius: 12px;
  padding: 20px;
}

.ap-timeline__step:last-child {
  padding-bottom: 0;
}

.ap-timeline__marker {
  position: absolute;
  left: -60px;
  top: 0;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--cp-blue-700);
  color: var(--cp-white);
  font-family: var(--cp-font-heading);
  font-size: 1.125rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
}

.ap-timeline__content {
  flex: 1;
  padding-top: 8px;
}

.ap-timeline__title {
  font-family: var(--cp-font-heading);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--cp-text-ink);
  margin-block-end: 8px;
}

.ap-timeline__desc {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.22;
  color: var(--cp-text-ink);
  text-align: left;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Document grid in step 6 — Figma: 2 columnas, tarjeta horizontal
   (check + texto), borde verde #1F9E5F. */
.ap-timeline__docs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 15px;
}

.ap-timeline__doc {
  border: 1px solid #1f9e5f;
  border-radius: 10px;
  padding: 20px;
  background: var(--cp-white);
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 10px;
  align-items: start;
}

.ap-timeline__doc p {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  line-height: 1.22;
  color: var(--cp-text-ink);
  margin: 0;
  text-align: left;
  hyphens: auto;
  -webkit-hyphens: auto;
}

.ap-timeline__doc strong {
  font-weight: 600;
}

.ap-timeline__doc .ap-btn {
  margin-top: 5px;
  justify-self: start;
}

.ap-timeline__check {
  flex-shrink: 0;
  display: flex;
  align-items: flex-start;
  grid-row: span 2;
}

.ap-timeline__check svg {
  width: 24px;
  height: 24px;
}

.ap-btn--sm {
  padding: 6px 12px;
  font-size: 0.875rem;
  width: fit-content;
}

.ap-btn--sm svg {
  width: 14px;
  height: 14px;
}

/* ─── CTA — Iniciemos una conversación (Figma 2208-15019) ─── */
.ap-cta {
  background: var(--cp-blue-700);
}

.ap-cta .ap-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ap-cta__info {
  display: flex;
  flex-direction: column;
  gap: 20px;
  text-align: center;
}

.ap-cta__kicker {
  margin: 0;
  font-family: var(--cp-font-heading);
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.366;
  color: var(--cp-white);
}

.ap-cta__title {
  margin: 0;
  font-family: var(--cp-font-heading);
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.36;
  color: var(--cp-white);
}

.ap-cta__desc {
  margin: 0;
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.22;
  color: var(--cp-white);
}

.ap-cta__card {
  display: flex;
  align-items: center;
  gap: 15px;
  max-width: 560px;
  margin-inline: auto;
  padding: 25px;
  background: var(--cp-white);
  border: 1px solid var(--cp-gray-blue);
  border-radius: var(--cp-radius-xl);
  text-decoration: none;
  box-sizing: border-box;
}

.ap-cta__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 45px;
  height: 45px;
  flex: 0 0 45px;
  background: #dee5f0;
  border-radius: 10px;
  color: var(--cp-blue-700);
}

.ap-cta__icon svg {
  width: 25px;
  height: 25px;
}

.ap-cta__texts {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.ap-cta__label {
  font-family: var(--cp-font-body);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.22;
  color: var(--cp-blue-700);
  text-transform: uppercase;
}

.ap-cta__mail {
  font-family: var(--cp-font-body);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.22;
  color: var(--cp-text-ink);
  overflow-wrap: anywhere;
}

/* ─── Responsive ─── */
@media (max-width: 1024px) {
  .ap-filosofia__grid,
  .ap-quienes__grid {
    grid-template-columns: 1fr;
  }

  .ap-instr__grid {
    grid-template-columns: 1fr;
  }

  .ap-carousel {
    gap: 12px;
  }

  .ap-carousel__nav {
    gap: 12px;
  }

  .ap-timeline__docs {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .ap-hero {
    padding: 40px 0;
    min-height: auto;
  }

  .ap-hero__title {
    font-size: 1.5rem;
  }

  .ap-hero__desc {
    font-size: 1rem;
  }

  .ap-section {
    padding: 40px 0;
    overflow-x: hidden;
  }

  .ap-title {
    font-size: 1.5rem;
  }

  .ap-team {
    flex-direction: column;
  }

  .ap-service-cards {
    flex-direction: column;
  }

  .ap-service-card {
    max-width: 100%;
  }

  .ap-service-card__link {
    font-size: 0.75rem;
  }

  .ap-alert--full .ap-alert__text--figma {
    font-size: 14px;
  }

  .ap-cta__mail {
    font-size: 0.875rem;
  }

  .ap-table {
    font-size: 0.75rem;
  }

  .ap-table th,
  .ap-table td {
    padding: 10px;
  }

  .ap-timeline {
    padding-left: 50px;
  }

  .ap-timeline__marker {
    left: -50px;
    width: 36px;
    height: 36px;
    font-size: 0.9375rem;
  }

  .ap-timeline::before {
    left: 18px;
  }

  .ap-cta__title {
    font-size: 1.75rem;
  }

  .ap-accordion__header {
    gap: 12px;
  }

  .ap-accordion__icon {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
  }

  .ap-accordion__icon svg {
    width: 24px;
    height: 24px;
  }

  .ap-accordion__label {
    font-size: 1rem;
  }

  .ap-accordion__chevron {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
  }

  .ap-alert {
    flex-direction: column;
    align-items: flex-start;
  }

  .ap-alert__icon {
    align-self: center;
  }

  .ap-instr__header {
    flex-direction: column;
    text-align: center;
  }

  .ap-instr__note {
    flex-direction: column;
    gap: 10px;
  }

  .ap-timeline__step {
    flex-direction: column;
    gap: 12px;
  }

  .ap-timeline__docs {
    grid-template-columns: 1fr;
  }

  .ap-portafolio__card {
    flex: 0 0 260px;
  }
}

@media (max-width: 480px) {
  .ap-portafolio__card {
    flex: 0 0 240px;
  }

  .ap-carousel__arrow {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }

  .ap-timeline__docs {
    grid-template-columns: 1fr;
  }

  .ap-cta__title {
    font-size: 1.5rem;
  }

  .ap-card__title {
    font-size: 1.25rem;
  }
}
