.ktb-panel,
.ktb-conversion {
  box-sizing: border-box;
  width: min(1160px, calc(100% - 32px));
  margin: 36px auto;
  padding: clamp(20px, 4vw, 42px);
  border: 1px solid #e6dae5;
  border-top: 5px solid #a36d9c;
  border-radius: 18px;
  background:
    radial-gradient(ellipse at 100% 0, #f0e2ef 0%, transparent 54%),
    #faf7fa;
  color: #173e5c;
  font-family: inherit;
  line-height: 1.55;
  text-align: left;
  overflow-wrap: anywhere;
}

.ktb-panel h2,
.ktb-conversion h2 {
  margin: 0 0 14px;
  color: #003366;
  font-size: clamp(23px, 3vw, 34px);
  line-height: 1.2;
}

.ktb-panel h3 { color: #003366; font-size: 20px; }
.ktb-panel h4 { color: #003366; font-size: 17px; margin: 16px 0 4px; }
.ktb-panel p { font-size: 16px; margin: 8px 0 14px; }
.ktb-panel a:not(.ktb-button):not(.ktb-quick-links a) { color: #003366; text-underline-offset: 3px; }
.ktb-panel ul:not(.ktb-rates) { padding-inline-start: 1.25em; margin-block: 8px 18px; }

.ktb-quick-links { display: flex; flex-wrap: wrap; gap: 12px; }
.ktb-quick-links a,
.ktb-button {
  display: inline-block;
  background: #003366;
  color: #fff !important;
  border-radius: 24px;
  padding: 11px 18px;
  text-decoration: none;
  font: inherit;
  font-weight: 700;
  text-align: center;
  box-sizing: border-box;
}
.ktb-button:hover,
.ktb-quick-links a:hover { background: #244f75; }
.ktb-button:focus-visible,
.ktb-panel a:focus-visible,
.ktb-panel summary:focus-visible { outline: 3px solid #a36d9c; outline-offset: 4px; }

.ktb-conversion {
  text-align: center;
  background:
    radial-gradient(ellipse at 0 100%, #e9dcea 0%, transparent 48%),
    radial-gradient(ellipse at 100% 0, #dcecf6 0%, transparent 54%),
    #f5f8fb;
}
.ktb-locations-grid,
.ktb-rates {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
  gap: 14px;
  align-items: start;
}
.ktb-rates { list-style: none; padding: 0; margin: 18px 0; align-items: stretch; }
.ktb-locations-grid > div,
.ktb-rates > li {
  padding: 16px;
  border: 1px solid #e6dae5;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 4px 14px #173e5c0c;
}
.ktb-rates > li::before,
.ktb-service-locations .ktb-locations-grid h3::before {
  content: "";
  display: inline-block;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: #f2e7f1;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 20px;
}
.ktb-rates > li::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2374436e%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2013l-7%207a2%202%200%200%201-3%200l-6-6V5h9l7%206a1.5%201.5%200%200%201%200%202z%22%2F%3E%3Ccircle%20cx%3D%228.5%22%20cy%3D%229%22%20r%3D%221%22%2F%3E%3C%2Fsvg%3E"); }
.ktb-service-locations .ktb-locations-grid h3 {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ktb-service-locations .ktb-locations-grid h3::before {
  flex: 0 0 36px;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%2374436e%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M19%2010c0%205-7%2010-7%2010s-7-5-7-10a7%207%200%201%201%2014%200z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%222%22%2F%3E%3C%2Fsvg%3E");
}
.ktb-rates h4 { margin: 4px 0; }
.ktb-rates p { margin: 6px 0 0; }
.ktb-rates .ktb-price {
  display: block;
  color: #003366;
  font-size: clamp(23px, 2.6vw, 30px);
  line-height: 1.2;
}
.ktb-rates del { color: #556575; }
.ktb-panel .ktb-validity {
  display: inline-block;
  padding: 5px 12px;
  border-radius: 20px;
  background: #eee1ed;
  font-size: 14px;
  font-weight: 700;
}
.ktb-locations-grid summary {
  cursor: pointer;
  color: #003366;
  font-weight: 700;
  padding-block: 8px;
}
.ktb-locations-grid details[open] summary { border-bottom: 1px solid #e6dae5; }
[id] { scroll-margin-top: 110px; }

@media (max-width: 560px) {
  .ktb-panel, .ktb-conversion { margin-block: 24px; }
  .ktb-quick-links { flex-direction: column; }
  .ktb-quick-links a { width: 100%; }
}

/* Encabezado fotográfico y tarifas de los servicios */
.ktb-pricing {
  padding: 0;
  overflow: hidden;
}
.ktb-pricing-head {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  background: #003366;
}
.ktb-pricing-copy {
  padding: clamp(24px, 4vw, 48px);
  color: #fff;
  background: linear-gradient(135deg, #003366 40%, #255176);
}
.ktb-pricing-head h2 {
  color: #fff;
  max-width: 20ch;
  font-size: clamp(27px, 3.4vw, 42px);
  text-align: left;
}
.ktb-pricing-head .ktb-pricing-label {
  margin: 0 0 12px;
  color: #efd9ec;
  font-size: 14px;
  font-weight: 700;
}
.ktb-pricing-head .ktb-validity {
  margin: 2px 0 0;
  color: #003366;
}
.ktb-pricing-photo { position: relative; }
.ktb-pricing-photo img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
}
.ktb-pricing-body { padding: clamp(16px, 3vw, 32px); }
.ktb-pricing .ktb-rates {
  margin: 0 0 20px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ktb-pricing .ktb-rates > li {
  padding: 16px;
  border-top: 4px solid #a36d9c;
  background: linear-gradient(155deg, #f2e6f0, #fff 80%);
}
.ktb-pricing .ktb-rates > li::before { display: none; }
.ktb-pricing .ktb-rates h3 {
  margin: 0 0 8px;
  font-size: 16px;
  text-align: left;
}
.ktb-pricing .ktb-price { font-size: clamp(25px, 3vw, 36px); }
.ktb-pricing-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px;
  border-radius: 12px;
  background: #eaf2f8;
}
.ktb-pricing-note p { flex: 1 1 280px; margin: 0; }

@media (max-width: 900px) {
  .ktb-pricing .ktb-rates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .ktb-pricing-head { grid-template-columns: 1fr; }
  .ktb-pricing-photo { height: clamp(150px, 42vw, 230px); }
}
@media (max-width: 360px) {
  .ktb-pricing .ktb-rates { grid-template-columns: 1fr; }
}

/* El panel de ILE tiene tres modalidades y una lista de inclusiones. */
.ktb-pricing-ile .ktb-pricing-photo img { object-position: right center; }
.ktb-pricing-ile .ktb-ile-inclusions { flex: 1 0 100%; }
.ktb-pricing-ile .ktb-ile-inclusions h3 { text-align: left; }
.ktb-pricing-ile .ktb-ile-inclusions ul { margin-bottom: 0; }

@media (min-width: 901px) {
  .ktb-pricing-ile .ktb-rates { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

#otros-servicios .top-section{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:768px){#otros-servicios .top-section{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){#otros-servicios .top-section{grid-template-columns:1fr}}

/* Carrusel de paquetes centrado con tarjetas laterales y giro suave. */
.slider-container[data-package-carousel]{--card-width:310px;--card-height:520px;position:relative;width:100%;max-width:1500px;overflow:hidden;margin:0 auto;padding:12px 0 0;box-sizing:border-box}
[data-package-carousel] .slider{position:relative;display:block;width:100%;height:calc(var(--card-height) + 22px);margin:0;perspective:1600px;touch-action:pan-y;transition:none;transform:none!important}
[data-package-carousel] .paquete{position:absolute;left:calc(50% + var(--offset, 0) * (100% - var(--card-width)) / 4);top:50%;width:var(--card-width);height:var(--card-height);padding:0 18px 16px;box-sizing:border-box;display:grid;grid-template-rows:auto 100px auto 1fr auto;gap:10px;align-items:stretch;min-width:0;color:#fff;border-radius:28px;transform:translate(-50%,-50%) scale(var(--scale, 1));transition:left 900ms cubic-bezier(.22,.68,.15,1),transform 900ms cubic-bezier(.22,.68,.15,1),opacity 700ms ease;z-index:var(--layer);opacity:var(--opacity);overflow:hidden;box-shadow:0 8px 26px #183d5914}
[data-package-carousel] .paquete-cabecera{margin:0 -18px;text-align:center}
[data-package-carousel] .paquete h3{width:auto;margin:0;padding:18px 10px 12px;font-size:21px;line-height:1.15;color:white}
[data-package-carousel] .underline_h3{width:100%;height:5px;margin:0;background:#accef1}
[data-package-carousel] .paquete-estrella{font-size:11px!important;letter-spacing:.03em;font-weight:bold;margin:7px 0 0!important;line-height:1.1!important}
[data-package-carousel] .paquete-imagen{display:flex;justify-content:center;align-items:center;min-height:0}
[data-package-carousel] .paquete img{width:auto;height:100%;max-width:100%;object-fit:contain;margin:0}
[data-package-carousel] .paquete-orientacion{font-size:14px!important;line-height:1.3!important;margin:0!important;color:#fff}
[data-package-carousel] .paquete-detalles{display:grid;grid-template-columns:43% 57%;align-items:start;border-top:3px solid #fff;padding-top:12px;min-height:0}
[data-package-carousel] .paquete-precios{padding-right:10px;min-width:0;text-align:center}
[data-package-carousel] .paquete-precios p{margin:4px 0 12px;font-size:19px}
[data-package-carousel] .paquete del{font-size:23px}
[data-package-carousel] .paquete del::after{height:3px}
[data-package-carousel] .precio{font-size:37px;line-height:1.1;white-space:nowrap}
[data-package-carousel] .paquete-inclusiones{border-left:2px solid #fff;padding-left:10px;min-width:0;text-align:left}
[data-package-carousel] .paquete-inclusiones p{font-size:13px;line-height:1.22;margin:0 0 6px;color:#fff}
[data-package-carousel] .paquete-inclusiones p:first-child{font-size:15px;font-weight:bold;margin-bottom:10px}
[data-package-carousel] .paquete-contacto{font-size:14px;line-height:1.2;margin:0;padding:10px 14px;color:#fff;text-align:center;justify-self:center}
[data-package-carousel] .nav-button{top:calc(var(--card-height)/2);transform:translateY(-50%);padding:10px 8px;font-size:24px;background:transparent;color:white;border:0}
[data-package-carousel] .prev{left:0}[data-package-carousel] .next{right:0}
[data-package-carousel] .paquete-status{color:#003366;font-size:12px;margin:6px 0 10px}
[data-package-carousel] .paquete-indicadores{display:flex;gap:10px;justify-content:center;padding:0 12px 14px}
[data-package-carousel] .paquete-indicadores button{width:40px;height:6px;background:#a49cbe;border:0;padding:0;cursor:pointer;transition:width 500ms,background 500ms}
[data-package-carousel] .paquete-indicadores button[aria-current="true"]{width:90px;background:#d95370}
[data-package-carousel] .paquete.is-entering .paquete-superficie{animation:paquete-giro-360 1000ms cubic-bezier(.22,.68,.15,1) both;transform-style:preserve-3d}
@keyframes paquete-giro-360{from{transform:rotateY(-360deg)}to{transform:rotateY(0deg)}}
[data-package-carousel]:focus-visible,[data-package-carousel] button:focus-visible,[data-package-carousel] a:focus-visible{outline:3px solid #003366;outline-offset:3px}
@media(min-width:1400px){[data-package-carousel]{--card-width:340px;--card-height:540px}[data-package-carousel] .paquete{grid-template-rows:auto 118px auto 1fr auto}[data-package-carousel] .paquete h3{font-size:23px}}
@media(max-width:900px){[data-package-carousel]{--card-width:290px}[data-package-carousel] .paquete{left:calc(50% + var(--offset, 0) * 31%)}}
@media(max-width:560px){[data-package-carousel]{--card-width:min(300px,calc(100% - 58px));--card-height:510px}[data-package-carousel] .paquete{left:calc(50% + var(--offset, 0) * 80%);grid-template-rows:auto 90px auto 1fr auto}[data-package-carousel] .paquete h3{font-size:20px}[data-package-carousel] .precio{font-size:33px}[data-package-carousel] .paquete-indicadores button{width:25px}[data-package-carousel] .paquete-indicadores button[aria-current="true"]{width:55px}}
@media(max-height:740px) and (min-width:561px){[data-package-carousel]{--card-height:480px}[data-package-carousel] .paquete{grid-template-rows:auto 72px auto 1fr auto;gap:7px}[data-package-carousel] .paquete h3{padding-top:12px;font-size:20px}[data-package-carousel] .paquete-inclusiones p{font-size:12px;margin-bottom:4px}}
@media(prefers-reduced-motion:reduce){[data-package-carousel] .paquete,[data-package-carousel] .paquete-indicadores button{transition:none}[data-package-carousel] .paquete.is-entering .paquete-superficie{animation:none}}

[data-package-carousel] .paquete{display:block;padding:0;background:transparent;box-shadow:none;overflow:visible}
[data-package-carousel] .paquete-superficie{height:100%;box-sizing:border-box;padding:0 18px 12px;display:grid;grid-template-rows:auto minmax(96px,1fr) auto auto auto;gap:6px;border-radius:28px;overflow:hidden;box-shadow:0 8px 26px #183d5914;transform-style:preserve-3d}
@media(min-width:1400px){[data-package-carousel] .paquete-superficie{grid-template-rows:auto minmax(96px,1fr) auto auto auto}}
@media(max-width:560px){[data-package-carousel] .paquete-superficie{grid-template-rows:auto minmax(96px,1fr) auto auto auto}}
@media(max-height:740px) and (min-width:561px){[data-package-carousel] .paquete-superficie{grid-template-rows:auto minmax(96px,1fr) auto auto auto;gap:6px}}

[data-package-carousel] .paquete h3{font-size:20px;padding:14px 10px 10px}
[data-package-carousel] .paquete-detalles{padding-top:10px}
[data-package-carousel] .paquete-inclusiones p{font-size:12px;line-height:1.15;margin-bottom:4px}
[data-package-carousel] .paquete-inclusiones p:first-child{font-size:14px;margin-bottom:8px}
[data-package-carousel] .paquete-orientacion{font-size:13px!important}
[data-package-carousel] .precio{font-size:clamp(24px,8vw,37px)}

/* El espacio flexible se reserva al icono, no debajo de las inclusiones. */
[data-package-carousel] .paquete-superficie{row-gap:10px}
[data-package-carousel] .paquete-imagen{height:100%;width:100%;overflow:hidden}
[data-package-carousel] .paquete-imagen img{display:block;width:100%;height:100%;max-height:100%;object-fit:contain}
[data-package-carousel] .paquete-detalles{align-items:center}
[data-package-carousel] .paquete-inclusiones p{line-height:1.25}
@media(max-height:740px) and (min-width:561px){[data-package-carousel] .paquete-superficie{grid-template-rows:auto minmax(80px,1fr) auto auto auto;row-gap:7px}}
@media(max-width:560px){[data-package-carousel] .paquete-superficie{grid-template-rows:auto minmax(90px,1fr) auto auto auto;row-gap:8px}}
