/* ============================================================
   TURISMO.CSS — Coordinación de Turismo y Fomento Artesanal
   Estética: natural · orgánica · cálida · editorial viaje
   Paleta: verde bosque + terracota + crema
   ============================================================ */

:root {
  --tur-verde:      #14532d;
  --tur-verde-mid:  #166534;
  --tur-verde-lt:   #16a34a;
  --tur-verde-pale: #f0fdf4;
  --tur-terra:      #9a3412;
  --tur-terra-lt:   #c2410c;
  --tur-terra-pale: #fff7ed;
  --tur-crema:      #fef9f0;
  --tur-arena:      #d6cfc4;
  --tur-ocre:       #ca8a04;
}

/* ── Hero Turismo ── */
.tur-hero {
  background: var(--tur-verde);
  min-height: 560px;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.tur-hero::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 70% 80% at 0% 50%, rgba(20,83,45,.9) 0%, transparent 65%),
    radial-gradient(ellipse 60% 50% at 100% 0%,  rgba(154,52,18,.3) 0%, transparent 55%);
  pointer-events: none;
  z-index: 1;
}
/* Patrón de hoja/naturaleza decorativo */
.tur-hero::after {
  content: '🌿🌲🏔️🌄🌿';
  position: absolute;
  right: -2rem; bottom: -2rem;
  font-size: 8rem;
  opacity: .06;
  pointer-events: none;
  letter-spacing: -1rem;
  z-index: 0;
}
.tur-hero__inner {
  position: relative; z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: center;
  padding: 5rem 0;
}
.tur-hero__eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--font-mono);
  font-size: .7rem; letter-spacing: .18em; text-transform: uppercase;
  color: #86efac;
  border: 1px solid rgba(134,239,172,.25);
  padding: .3em 1em; border-radius: var(--r-pill);
  margin-bottom: 1.2rem;
  background: rgba(134,239,172,.08);
}
.tur-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 4.5vw, 3.6rem);
  font-weight: 700; color: #fff; line-height: 1.12;
  margin-bottom: 1.1rem;
}
.tur-hero__title .accent { color: #fde68a; }
.tur-hero__sub {
  font-size: 1rem; color: rgba(255,255,255,.7);
  line-height: 1.75; margin-bottom: 2rem; max-width: 480px;
}
.tur-hero__btns { display: flex; gap: 1rem; flex-wrap: wrap; }

/* Panel derecho hero: atractivos */
.tur-hero__panel {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r-lg);
  backdrop-filter: blur(12px);
  padding: 1.6rem;
}
.tur-hero__panel-title {
  font-family: var(--font-mono);
  font-size: .68rem; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(255,255,255,.5); margin-bottom: 1rem;
}
.tur-atractivo-item {
  display: flex; align-items: center; gap: 1rem;
  padding: .8rem 1rem;
  border-radius: var(--r-sm);
  margin-bottom: .4rem;
  cursor: default;
  transition: background var(--t-fast);
  border: 1px solid transparent;
}
.tur-atractivo-item:hover {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.1);
}
.tur-atractivo-item__icon {
  font-size: 1.6rem; flex-shrink: 0;
  width: 40px; height: 40px;
  background: rgba(255,255,255,.1);
  border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center;
}
.tur-atractivo-item__nombre {
  font-weight: 600; font-size: .9rem; color: #fff; display: block;
}
.tur-atractivo-item__tipo {
  font-size: .72rem; color: rgba(255,255,255,.55);
  font-family: var(--font-mono);
}

/* ── Tabs turismo ── */
.tur-tabs {
  display: flex; border-bottom: 2px solid var(--gris-200);
  margin-bottom: var(--gap-lg); overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.tur-tab {
  padding: .9rem 1.5rem;
  font-weight: 600; font-size: .9rem;
  color: var(--gris-400);
  border-bottom: 3px solid transparent; margin-bottom: -2px;
  cursor: pointer; white-space: nowrap;
  transition: all var(--t-fast);
  background: none; border-top: none; border-left: none; border-right: none;
  font-family: var(--font-body);
}
.tur-tab:hover { color: var(--tur-verde-lt); }
.tur-tab.active { color: var(--tur-verde-lt); border-bottom-color: var(--tur-verde-lt); }
.tur-panel { display: none; }
.tur-panel.active { display: block; }

/* ── Tarjetas de prestadores turísticos ── */
.tur-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
}
.tur-card {
  background: #fff;
  border: 1.5px solid var(--gris-200);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: all var(--t-mid);
  display: flex; flex-direction: column;
  position: relative;
}
.tur-card:hover {
  border-color: var(--tur-verde-lt);
  box-shadow: 0 10px 36px rgba(22,101,52,.12);
  transform: translateY(-4px);
}
.tur-card__banner {
  height: 120px;
  display: flex; align-items: center; justify-content: center;
  font-size: 3.5rem;
  position: relative;
  overflow: hidden;
}
.tur-card__estrellas {
  position: absolute; bottom: .6rem; right: .75rem;
  color: var(--tur-ocre); font-size: .85rem; letter-spacing: .05em;
}
.tur-card__dest-badge {
  position: absolute; top: .6rem; left: .75rem;
  background: var(--oro); color: #fff;
  font-size: .65rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; padding: .2em .7em; border-radius: var(--r-pill);
}
.tur-card__body { padding: 1.2rem; flex: 1; }
.tur-card__tipo-tag {
  display: inline-block; font-size: .68rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  padding: .2em .7em; border-radius: var(--r-pill);
  margin-bottom: .6rem;
  background: var(--tur-verde-pale); color: var(--tur-verde-mid);
}
.tur-card__nombre {
  font-family: var(--font-display);
  font-size: 1.05rem; font-weight: 600; color: var(--azul);
  margin-bottom: .4rem; line-height: 1.3;
}
.tur-card__desc {
  font-size: .83rem; color: var(--gris-700);
  line-height: 1.55; margin-bottom: .8rem;
}
.tur-card__servicios {
  display: flex; gap: .35rem; flex-wrap: wrap; margin-bottom: .75rem;
}
.tur-serv-tag {
  font-size: .7rem; padding: .15em .65em;
  background: var(--gris-100); color: var(--gris-700);
  border-radius: var(--r-pill);
}
.tur-card__precio {
  font-family: var(--font-display);
  font-size: 1.05rem; font-weight: 700;
  color: var(--tur-verde-lt);
  margin-bottom: .75rem;
}
.tur-card__precio span { font-size: .75rem; font-weight: 400; color: var(--gris-400); font-family: var(--font-mono); }
.tur-card__footer {
  border-top: 1px solid var(--gris-200);
  padding: .8rem 1.2rem;
  display: flex; gap: .4rem; flex-wrap: wrap;
  background: var(--tur-crema);
}
.tur-card__footer .btn { font-size: .78rem; padding: .4rem .9rem; }

/* ── Artesanos ── */
.art-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.4rem;
}
.art-card {
  background: var(--tur-crema);
  border: 1.5px solid var(--tur-arena);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: all var(--t-mid);
  display: grid;
  grid-template-columns: 100px 1fr;
}
.art-card:hover {
  box-shadow: 0 8px 32px rgba(154,52,18,.1);
  transform: translateY(-3px);
  border-color: var(--tur-terra-lt);
}
.art-card__foto {
  background: var(--tur-terra-pale);
  display: flex; align-items: center; justify-content: center;
  font-size: 3rem;
  border-right: 1px solid var(--tur-arena);
  flex-direction: column;
  gap: .4rem;
  padding: 1rem;
}
.art-card__nivel {
  font-size: .6rem; font-weight: 700; text-align: center;
  text-transform: uppercase; letter-spacing: .07em;
  color: var(--tur-terra); font-family: var(--font-mono);
}
.art-card__body { padding: 1.2rem; }
.art-card__taller {
  font-family: var(--font-display);
  font-size: 1rem; font-weight: 600; color: var(--azul);
  margin-bottom: .15rem;
}
.art-card__nombre { font-size: .82rem; color: var(--gris-400); margin-bottom: .4rem; }
.art-card__especialidad {
  font-size: .78rem; font-weight: 600;
  color: var(--tur-terra); margin-bottom: .4rem;
  display: flex; align-items: center; gap: .35rem;
}
.art-card__tecnica { font-size: .8rem; color: var(--gris-700); line-height: 1.5; margin-bottom: .6rem; }
.art-card__productos { display: flex; gap: .35rem; flex-wrap: wrap; margin-bottom: .75rem; }
.art-prod-tag {
  font-size: .68rem; padding: .15em .65em;
  background: rgba(154,52,18,.08); color: var(--tur-terra);
  border-radius: var(--r-pill); border: 1px solid rgba(154,52,18,.15);
}
.art-card__precio {
  font-family: var(--font-mono);
  font-size: .78rem; color: var(--tur-ocre); font-weight: 600;
}
.art-card__actions { display: flex; gap: .4rem; margin-top: .75rem; flex-wrap: wrap; }

/* disclaimer artesanos (igual que emprendedor pero color terracota) */
.art-disclaimer {
  background: var(--tur-terra-pale);
  border: 2px solid rgba(154,52,18,.3);
  border-radius: var(--r-md);
  padding: 1.2rem 1.4rem;
  margin-bottom: 1.5rem;
  display: flex; gap: 1rem; align-items: flex-start;
}
.art-disclaimer__icon { font-size: 1.6rem; flex-shrink: 0; }
.art-disclaimer__title { font-weight: 700; font-size: .92rem; color: var(--tur-terra); margin-bottom: .3rem; }
.art-disclaimer__text  { font-size: .82rem; color: #7c2d12; line-height: 1.6; }

/* ── Filtro turismo ── */
.tur-filtro-bar {
  background: #fff;
  border: 1.5px solid var(--gris-200);
  border-radius: var(--r-md);
  padding: 1rem 1.4rem;
  margin-bottom: 1.5rem;
  display: flex; gap: .75rem; align-items: center; flex-wrap: wrap;
}
.tur-search {
  flex: 1; min-width: 180px;
  padding: .6rem 1rem;
  border: 1.5px solid var(--gris-200);
  border-radius: var(--r-pill);
  font-size: .9rem;
  transition: all var(--t-fast);
}
.tur-search:focus {
  outline: none;
  border-color: var(--tur-verde-lt);
  box-shadow: 0 0 0 3px rgba(22,163,74,.1);
}

/* ============================================================
   LICENCIAS.CSS — Departamento de Licencias + SARE
   Estética: institucional moderno · limpio · confiable
   Paleta: azul marino institucional + ámbar proceso + verde éxito
   ============================================================ */

:root {
  --lic-azul:      #1e3a5f;
  --lic-azul-mid:  #2563eb;
  --lic-azul-lt:   #3b82f6;
  --lic-azul-pale: #eff6ff;
  --lic-amber:     #d97706;
  --lic-amber-pale:#fffbeb;
  --lic-verde:     #15803d;
  --lic-verde-pale:#f0fdf4;
  --lic-rojo:      #dc2626;
  --lic-rojo-pale: #fef2f2;
}

/* ── Hero Licencias ── */
.lic-hero {
  background: linear-gradient(160deg, var(--lic-azul) 0%, #1e3a5f 50%, #162d4a 100%);
  padding: 5rem 0 4rem;
  position: relative;
  overflow: hidden;
}
.lic-hero::before {
  content: '';
  position: absolute; inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}
.lic-hero::after {
  content: '📋';
  position: absolute; right: 5%; bottom: -1rem;
  font-size: 10rem; opacity: .05; pointer-events: none;
}
.lic-hero__inner {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem; align-items: center;
}
.lic-hero__eyebrow {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--font-mono);
  font-size: .7rem; letter-spacing: .18em; text-transform: uppercase;
  color: #93c5fd; border: 1px solid rgba(147,197,253,.25);
  padding: .3em 1em; border-radius: var(--r-pill);
  margin-bottom: 1.2rem; background: rgba(147,197,253,.08);
}
.lic-hero__title {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 700; color: #fff; line-height: 1.15; margin-bottom: 1rem;
}
.lic-hero__title span { color: #fbbf24; }
.lic-hero__sub {
  font-size: 1rem; color: rgba(255,255,255,.7);
  line-height: 1.7; margin-bottom: 2rem;
}
.lic-hero__btns { display: flex; gap: 1rem; flex-wrap: wrap; }

/* Panel proceso hero */
.lic-proceso-panel {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r-lg);
  backdrop-filter: blur(12px);
  padding: 1.8rem;
}
.lic-proceso-panel__title {
  font-family: var(--font-mono); font-size: .68rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: rgba(255,255,255,.5); margin-bottom: 1.2rem;
}
.lic-step {
  display: flex; gap: 1rem; align-items: flex-start;
  margin-bottom: .85rem; position: relative;
}
.lic-step:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 17px; top: 36px;
  width: 2px; height: calc(100% + .85rem - 36px);
  background: rgba(255,255,255,.15);
}
.lic-step__num {
  width: 34px; height: 34px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: .85rem; flex-shrink: 0;
  position: relative; z-index: 1;
}
.lic-step__num--done   { background: #16a34a; color: #fff; }
.lic-step__num--active { background: #f59e0b; color: #fff; }
.lic-step__num--todo   { background: rgba(255,255,255,.15); color: rgba(255,255,255,.5); }
.lic-step__label { font-size: .88rem; color: #fff; font-weight: 500; margin-bottom: .15rem; }
.lic-step__sub   { font-size: .75rem; color: rgba(255,255,255,.5); font-family: var(--font-mono); }

/* ── Buscador de giros (el más importante de esta sección) ── */
.giros-buscador {
  background: #fff;
  border-radius: var(--r-lg);
  box-shadow: var(--sombra-lg);
  padding: 2rem;
  margin: -3rem auto 3rem;
  position: relative; z-index: 20;
  max-width: 900px;
}
.giros-buscador__title {
  font-family: var(--font-display);
  font-size: 1.3rem; color: var(--azul);
  margin-bottom: .3rem;
}
.giros-buscador__sub {
  font-size: .88rem; color: var(--gris-400); margin-bottom: 1.2rem;
}
.giros-search-wrap {
  display: flex; gap: 0;
  border: 2px solid var(--gris-200);
  border-radius: var(--r-pill);
  overflow: hidden;
  transition: border-color var(--t-fast);
  margin-bottom: 1rem;
}
.giros-search-wrap:focus-within { border-color: var(--lic-azul-mid); }
.giros-search-wrap__icon {
  padding: 0 1rem;
  display: flex; align-items: center;
  color: var(--gris-400); font-size: 1.1rem;
  background: var(--gris-100);
}
.giros-input {
  flex: 1; padding: .9rem 1rem;
  border: none; outline: none;
  font-size: 1rem; font-family: var(--font-body);
}
.giros-search-btn {
  padding: 0 1.8rem;
  background: var(--lic-azul);
  color: #fff; border: none; cursor: pointer;
  font-weight: 600; font-size: .95rem;
  transition: background var(--t-fast);
  font-family: var(--font-body);
}
.giros-search-btn:hover { background: var(--lic-azul-mid); }

/* Sugerencias dropdown */
.giros-suggestions {
  position: absolute;
  left: 0; right: 0; top: calc(100% + 4px);
  background: #fff;
  border: 1.5px solid var(--gris-200);
  border-radius: var(--r-md);
  box-shadow: var(--sombra-lg);
  z-index: 50;
  max-height: 260px;
  overflow-y: auto;
  display: none;
}
.giros-suggestions.show { display: block; }
.giros-suggestion-item {
  display: flex; align-items: center;
  gap: .75rem; padding: .75rem 1rem;
  cursor: pointer; transition: background var(--t-fast);
  border-bottom: 1px solid var(--gris-200);
}
.giros-suggestion-item:last-child { border-bottom: none; }
.giros-suggestion-item:hover { background: var(--lic-azul-pale); }
.giros-suggestion-item__nombre {
  font-weight: 500; font-size: .9rem; color: var(--azul);
}
.giros-suggestion-item__cat {
  font-size: .75rem; color: var(--gris-400); font-family: var(--font-mono);
}
.giros-suggestion-item__badge {
  margin-left: auto; flex-shrink: 0;
  font-size: .68rem; font-weight: 700; text-transform: uppercase;
  padding: .2em .65em; border-radius: var(--r-pill);
}

/* Panel resultado del giro */
.giro-resultado {
  display: none;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1.5px solid var(--gris-200);
  animation: fadeUp .4s ease both;
}
.giro-resultado.show { display: block; }

.giro-resultado__header {
  padding: 1.6rem 2rem;
  display: flex; gap: 1.5rem; align-items: center;
}
.giro-resultado__impacto-badge {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .78rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .1em; padding: .3em 1em; border-radius: var(--r-pill);
  margin-bottom: .5rem;
}
.impacto--Bajo   { background: var(--lic-verde-pale); color: var(--lic-verde); border: 1px solid rgba(21,128,61,.2); }
.impacto--Mediano{ background: var(--lic-amber-pale); color: var(--lic-amber); border: 1px solid rgba(217,119,6,.2); }
.impacto--Alto   { background: var(--lic-rojo-pale);  color: var(--lic-rojo);  border: 1px solid rgba(220,38,38,.2); }

.giro-resultado__nombre {
  font-family: var(--font-display);
  font-size: 1.4rem; font-weight: 700; color: var(--azul);
  margin-bottom: .4rem;
}
.giro-resultado__desc { font-size: .9rem; color: var(--gris-700); line-height: 1.6; }

.giro-resultado__body {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 0;
}
.giro-col {
  padding: 1.6rem 2rem;
  border-top: 1px solid var(--gris-200);
}
.giro-col:first-child { border-right: 1px solid var(--gris-200); }
.giro-col__title {
  font-family: var(--font-mono);
  font-size: .7rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--gris-400); margin-bottom: .75rem;
  padding-bottom: .4rem; border-bottom: 1px solid var(--gris-200);
}
.giro-requisito {
  display: flex; align-items: flex-start; gap: .6rem;
  margin-bottom: .6rem; font-size: .88rem; color: var(--gris-700);
  line-height: 1.4;
}
.giro-requisito__check {
  font-size: .9rem; flex-shrink: 0; margin-top: .05rem;
}
.giro-meta-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: .75rem;
}
.giro-meta-item {
  background: var(--gris-100);
  border-radius: var(--r-sm); padding: .75rem;
}
.giro-meta-item__label {
  font-family: var(--font-mono); font-size: .65rem;
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--gris-400); margin-bottom: .2rem;
}
.giro-meta-item__value {
  font-weight: 700; font-size: .9rem; color: var(--azul);
}

.giro-restriccion {
  display: flex; align-items: flex-start; gap: .5rem;
  font-size: .83rem; color: var(--lic-rojo);
  margin-bottom: .4rem; line-height: 1.4;
}
.giro-obs {
  background: var(--lic-amber-pale);
  border-left: 4px solid var(--lic-amber);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  padding: .75rem 1rem;
  font-size: .85rem; color: #78350f; line-height: 1.6;
  margin-top: .75rem;
}
.giro-resultado__footer {
  padding: 1.2rem 2rem;
  background: var(--lic-azul-pale);
  border-top: 1px solid var(--gris-200);
  display: flex; gap: .75rem; flex-wrap: wrap; align-items: center;
}

/* ── Pre-gestión de licencia ── */
.pregestion-section {
  background: linear-gradient(135deg, var(--lic-azul-pale), #e0ecff);
  border-radius: var(--r-lg);
  padding: 2.4rem;
  margin-bottom: 2rem;
}
.folio-display {
  background: var(--lic-azul);
  color: #fff;
  border-radius: var(--r-md);
  padding: 1.5rem 2rem;
  text-align: center;
  margin: 1.5rem 0;
  animation: fadeUp .4s ease;
}
.folio-display__label {
  font-family: var(--font-mono); font-size: .72rem;
  text-transform: uppercase; letter-spacing: .14em;
  color: rgba(255,255,255,.6); margin-bottom: .4rem;
}
.folio-display__numero {
  font-family: var(--font-display);
  font-size: 2rem; font-weight: 700; color: var(--oro-light);
  letter-spacing: .08em;
}
.folio-display__sub { font-size: .82rem; color: rgba(255,255,255,.6); margin-top: .4rem; }

/* ── SARE ── */
.sare-steps {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem;
  margin: 2rem 0;
}
.sare-step {
  background: #fff;
  border-radius: var(--r-md);
  padding: 1.4rem;
  text-align: center;
  border: 1.5px solid var(--gris-200);
  position: relative;
  transition: all var(--t-mid);
}
.sare-step:hover { border-color: var(--lic-azul-mid); box-shadow: var(--sombra-md); }
.sare-step:not(:last-child)::after {
  content: '→';
  position: absolute; right: -1.1rem; top: 50%;
  transform: translateY(-50%);
  color: var(--gris-400); font-size: 1.1rem;
  z-index: 1;
}
.sare-step__num {
  width: 40px; height: 40px; border-radius: 50%;
  background: linear-gradient(135deg, var(--lic-azul), var(--lic-azul-mid));
  color: #fff; font-weight: 700; font-size: 1.1rem;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto .75rem;
}
.sare-step__icon { font-size: 1.6rem; margin-bottom: .5rem; }
.sare-step__titulo {
  font-weight: 700; font-size: .92rem; color: var(--azul); margin-bottom: .3rem;
}
.sare-step__desc { font-size: .8rem; color: var(--gris-700); line-height: 1.5; }

.sare-banner {
  background: linear-gradient(135deg, #0f2a5c, var(--lic-azul));
  border-radius: var(--r-lg);
  padding: 2.4rem;
  display: flex; gap: 2rem; align-items: center;
  color: #fff; margin: 2rem 0;
}
.sare-banner__icon { font-size: 4rem; flex-shrink: 0; animation: iconFloat 3s ease-in-out infinite; }
.sare-banner__title {
  font-family: var(--font-display);
  font-size: 1.6rem; font-weight: 700; color: #fff; margin-bottom: .4rem;
}
.sare-banner__sub { color: rgba(255,255,255,.7); font-size: .95rem; margin-bottom: 1.2rem; }

/* Tablas de requisitos */
.req-table {
  width: 100%; border-collapse: collapse;
  border-radius: var(--r-md); overflow: hidden;
  box-shadow: var(--sombra-sm);
}
.req-table th {
  background: var(--lic-azul); color: #fff;
  padding: .85rem 1.2rem;
  text-align: left; font-size: .82rem;
  font-family: var(--font-mono); letter-spacing: .05em;
}
.req-table td {
  padding: .85rem 1.2rem;
  border-bottom: 1px solid var(--gris-200);
  font-size: .88rem; color: var(--gris-700);
}
.req-table tr:last-child td { border-bottom: none; }
.req-table tr:nth-child(even) td { background: var(--gris-100); }
.req-table tr:hover td { background: var(--lic-azul-pale); }

/* ── Missing keyframes needed by this sheet ── */
@keyframes iconFloat {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}

/* ── Responsive Turismo + Licencias ── */
@media (max-width: 1024px) {
  .tur-hero__inner { grid-template-columns: 1fr; }
  .tur-hero__panel { display: none; }
  .tur-grid { grid-template-columns: repeat(2, 1fr); }
  .art-grid  { grid-template-columns: 1fr; }
  .lic-hero__inner { grid-template-columns: 1fr; }
  .lic-proceso-panel { display: none; }
  .sare-steps { grid-template-columns: repeat(2, 1fr); }
  .sare-step:nth-child(2)::after { display: none; }
  .giro-resultado__body { grid-template-columns: 1fr; }
  .giro-col:first-child { border-right: none; border-bottom: 1px solid var(--gris-200); }
}
@media (max-width: 768px) {
  .tur-grid { grid-template-columns: 1fr; }
  .sare-steps { grid-template-columns: 1fr; }
  .sare-step::after { display: none !important; }
  .sare-banner { flex-direction: column; text-align: center; }
  .giro-meta-grid { grid-template-columns: 1fr; }
  .giros-buscador { margin: -1.5rem 1rem 2rem; padding: 1.4rem; }
}

/* ── Formatos y Plantillas de Oficios ── */
.formato-card {
  background: #fff;
  border: 1.5px solid var(--gris-200);
  border-radius: var(--r-md);
  overflow: hidden;
  transition: box-shadow var(--t-mid);
}
.formato-card:hover { box-shadow: 0 4px 20px rgba(0,0,0,.08); }

.formato-card__header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.1rem 1.4rem; cursor: pointer; gap: 1rem;
  border-bottom: 1.5px solid transparent;
  transition: background var(--t-fast);
}
.formato-card__header:hover { background: var(--gris-100); }
.formato-card.open > .formato-card__header {
  border-bottom-color: var(--gris-200);
  background: var(--gris-100);
}

.formato-card__icon {
  width: 40px; height: 40px; border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem; flex-shrink: 0;
}
.formato-card__title {
  font-family: var(--font-display);
  font-size: 1rem; font-weight: 700;
  color: var(--azul); margin-bottom: .15rem;
}
.formato-card__sub {
  font-size: .8rem; color: var(--gris-400); line-height: 1.4;
}
.formato-card__arrow {
  color: var(--gris-400); font-size: .85rem; flex-shrink: 0;
  transition: transform var(--t-fast);
}
.formato-card.open .formato-card__arrow { transform: rotate(180deg); }

.formato-card__body {
  display: none; padding: 1.4rem;
}
.formato-card.open .formato-card__body { display: block; }

/* Requisitos */
.fmt-req {
  background: #f0f7ff;
  border: 1px solid var(--azul-light);
  border-radius: var(--r-sm);
  padding: .9rem 1.1rem;
  margin-bottom: 1.2rem;
}
.fmt-req__title {
  font-weight: 700; font-size: .85rem;
  color: var(--azul); margin-bottom: .4rem;
}
.fmt-req__list {
  padding-left: 1.2rem;
  font-size: .83rem; color: var(--gris-700);
  line-height: 1.7;
}

/* Form grid */
.fmt-form { }
.fmt-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: .85rem; margin-bottom: 1rem;
}
.fmt-group { margin: 0; }
.fmt-full  { grid-column: 1 / -1; }
.fmt-label {
  display: block; font-size: .75rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--gris-400); margin-bottom: .28rem;
}
.fmt-input, .fmt-select {
  width: 100%; padding: .5rem .8rem;
  border: 1.5px solid var(--gris-200);
  border-radius: var(--r-sm); color: var(--negro);
  font-size: .88rem; font-family: var(--font-body);
  background: #fff; transition: border-color var(--t-fast);
  -webkit-appearance: none;
}
.fmt-input:focus, .fmt-select:focus {
  outline: none; border-color: var(--azul-light);
  box-shadow: 0 0 0 3px rgba(59,130,246,.1);
}
.fmt-input::placeholder { color: var(--gris-400); font-size: .82rem; }
textarea.fmt-input { resize: vertical; min-height: 56px; }

.fmt-btn {
  width: 100%; justify-content: center;
  margin-top: .25rem;
}

/* Responsive formatos */
@media (max-width: 640px) {
  .fmt-grid { grid-template-columns: 1fr; }
  .fmt-full  { grid-column: 1; }
}
