/*
Theme Name: Hotelesa
Theme URI: https://hotelesa.com/
Author: Hotelesa
Description: Custom travel platform theme for Hotelesa 2.0.
Version: 1.2.27
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: hotelesa
*/

:root {
    --hl-bg: #ffffff;
    --hl-surface: #f7f9fc;
    --hl-text: #17202a;
    --hl-muted: #66727f;
    --hl-border: #e4e8ec;
    --hl-accent: #1769D2;
    --hl-accent-dark: #1054AD;
    --hl-radius: 18px;
    --hl-container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--hl-bg);
    color: var(--hl-text);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6;
}
a { color: inherit; }
img { max-width: 100%; height: auto; }

.hl-container {
    width: min(calc(100% - 32px), var(--hl-container));
    margin-inline: auto;
}

.hl-header {
    border-bottom: 1px solid var(--hl-border);
    background: rgba(255,255,255,.96);
}
.hl-header__inner {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.hl-logo {
    text-decoration: none;
    font-size: 1.45rem;
    font-weight: 800;
    letter-spacing: -.03em;
}
.hl-nav ul {
    display: flex;
    align-items: center;
    gap: 22px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.hl-nav a { text-decoration: none; font-weight: 600; }

.hl-hero {
    padding: 96px 0 72px;
    background: linear-gradient(180deg, #f7faf9 0%, #ffffff 100%);
}
.hl-hero__content { max-width: 760px; }
.hl-eyebrow {
    margin: 0 0 12px;
    color: var(--hl-accent);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.hl-hero h1 {
    margin: 0 0 20px;
    font-size: clamp(2.5rem, 6vw, 4.8rem);
    line-height: 1.02;
    letter-spacing: -.055em;
}
.hl-hero p { max-width: 650px; color: var(--hl-muted); font-size: 1.15rem; }

.hl-search {
    display: flex;
    gap: 10px;
    margin-top: 32px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--hl-border);
    border-radius: 999px;
    box-shadow: 0 14px 40px rgba(23,32,42,.08);
}
.hl-search input {
    min-width: 0;
    flex: 1;
    border: 0;
    outline: 0;
    padding: 14px 18px;
    font-size: 1rem;
}
.hl-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 999px;
    padding: 13px 22px;
    background: var(--hl-accent);
    color: #fff;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.2;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    cursor: pointer;
    text-decoration: none;
}
.hl-button:hover { background: var(--hl-accent-dark); }

.hl-section { padding: 72px 0; }
.hl-section--muted { background: var(--hl-surface); }
.hl-section__heading { margin-bottom: 28px; }
.hl-section h2 { margin: 0; font-size: clamp(1.8rem, 4vw, 2.6rem); letter-spacing: -.04em; }
.hl-section__heading p { color: var(--hl-muted); }
.hl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.hl-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--hl-border);
    border-radius: var(--hl-radius);
}
.hl-card__body { padding: 22px; }
.hl-card h3 { margin: 0 0 8px; font-size: 1.2rem; }
.hl-card p { margin: 0; color: var(--hl-muted); }

.hl-footer {
    margin-top: 40px;
    padding: 48px 0;
    background: #17202a;
    color: #fff;
}
.hl-footer p { color: #c5cdd5; }

@media (max-width: 760px) {
    .hl-header__inner { min-height: 64px; }
    .hl-nav { display: none; }
    .hl-hero { padding: 68px 0 52px; }
    .hl-search { border-radius: 20px; flex-direction: column; }
    .hl-search .hl-button { width: 100%; }
    .hl-grid { grid-template-columns: 1fr; }
}


/* Image rights / attribution */
.hl-image-credits { margin-top: 36px; padding-top: 18px; border-top: 1px solid var(--hl-border); color: var(--hl-muted); font-size: .84rem; }
.hl-image-credits details { margin: 0; }
.hl-image-credits summary { cursor: pointer; font-weight: 650; color: var(--hl-muted); }
.hl-image-credits ul { margin: 12px 0 0; padding-left: 20px; }
.hl-image-credits li + li { margin-top: 7px; }
.hl-image-credits a { text-decoration: underline; text-underline-offset: 2px; }


/* Hotelesa 1.2 — contextual map + smarter sidebars */
.hl-context-map{margin:0 0 18px;border:1px solid var(--hl-border);border-radius:14px;overflow:hidden;background:#fff}.hl-context-map__preview{position:relative;display:block;width:100%;height:185px;padding:0;border:0;background:#eef3f7;cursor:pointer;overflow:hidden}.hl-context-map__mini{display:block;width:100%;height:100%}.hl-context-map__preview .leaflet-container{cursor:pointer}.hl-context-map__overlay{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:500;background:rgba(255,255,255,.94);border:1px solid rgba(23,105,210,.22);border-radius:999px;padding:7px 12px;color:var(--hl-accent);font-size:13px;font-weight:800;white-space:nowrap;box-shadow:0 3px 12px rgba(0,0,0,.1)}.hl-context-map__preview:hover .hl-context-map__overlay{background:#fff}.hl-context-map__meta{padding:12px 14px 13px;display:flex;flex-direction:column;gap:5px}.hl-context-map__meta strong{font-size:15px;line-height:1.25}.hl-context-map__meta a{font-size:13px;font-weight:750;color:var(--hl-accent);text-decoration:none}.hl-context-map__meta a:hover{text-decoration:underline}.hl-map-modal[hidden]{display:none}.hl-map-modal{position:fixed;inset:0;z-index:99999;background:rgba(13,25,39,.66);padding:5vh 4vw;display:flex;align-items:center;justify-content:center}.hl-map-modal__dialog{width:min(1050px,100%);height:min(760px,90vh);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.3);display:grid;grid-template-rows:auto 1fr}.hl-map-modal__head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--hl-border)}.hl-map-modal__head strong{font-size:18px}.hl-map-modal__close{width:38px;height:38px;border:1px solid var(--hl-border);border-radius:50%;background:#fff;cursor:pointer;font-size:22px}.hl-map-canvas{width:100%;height:100%;min-height:480px}.hl-map-fallback{padding:18px}.hl-map-marker-label{font-size:12px}.hl-map-number-wrap{background:transparent;border:0}.hl-map-number{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--hl-accent);color:#fff;border:2px solid #fff;font-size:13px;font-weight:850;box-shadow:0 2px 8px rgba(0,0,0,.28)}.hl-travel-box--free .hl-travel-box__title{margin-bottom:8px}@media(max-width:780px){.hl-context-map{margin:18px 0}.hl-context-map__preview{height:170px}.hl-map-modal{padding:0}.hl-map-modal__dialog{height:100vh;width:100%;border-radius:0}.hl-map-canvas{min-height:0}.hl-map-modal__head{padding-top:max(15px,env(safe-area-inset-top))}}

/* v1.2.11 — Multi-day itinerary maps */
.hl-context-map__routes{display:flex;flex-direction:column;gap:5px}.hl-context-map__routes a{line-height:1.35}.hl-map-day-tabs{display:flex;gap:8px;padding:10px 18px;border-bottom:1px solid var(--hl-border);background:#fff}.hl-map-day-tab{appearance:none;border:1px solid var(--hl-border);border-radius:999px;background:#fff;color:var(--hl-text);padding:8px 14px;font:inherit;font-size:13px;font-weight:750;cursor:pointer}.hl-map-day-tab:hover,.hl-map-day-tab.is-active{border-color:var(--hl-accent);color:var(--hl-accent);background:#f4f8ff}.hl-map-modal__dialog:has(.hl-map-day-tabs){grid-template-rows:auto auto 1fr}@media(max-width:780px){.hl-map-day-tabs{padding:10px 14px;overflow-x:auto}.hl-map-day-tab{flex:0 0 auto}}


/* v1.2.12 — Mobile itinerary route hub */
.hl-mobile-itinerary-map{display:none}
@media(max-width:900px){
  .hl-mobile-itinerary-map{display:block;margin:18px 0 30px;border:1px solid var(--hl-border);border-radius:16px;background:#fff;overflow:hidden}
  .hl-mobile-itinerary-map__head{padding:16px 16px 12px;background:#f7f9fc;border-bottom:1px solid var(--hl-border)}
  .hl-mobile-itinerary-map__head>span{display:block;margin-bottom:5px;font-size:11px;font-weight:850;letter-spacing:.08em;color:var(--hl-accent)}
  .hl-mobile-itinerary-map__head>strong{display:block;font-size:18px;line-height:1.25}
  .hl-mobile-itinerary-map__head p{margin:7px 0 0;color:var(--hl-muted);font-size:13px;line-height:1.45}
  .hl-mobile-itinerary-map__days{display:grid}
  .hl-mobile-itinerary-map__day{padding:14px 16px;border-bottom:1px solid var(--hl-border);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;align-items:center}
  .hl-mobile-itinerary-map__day:last-child{border-bottom:0}
  .hl-mobile-itinerary-map__day>div:first-child span{display:block;color:var(--hl-accent);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
  .hl-mobile-itinerary-map__day>div:first-child strong{display:block;margin-top:2px;font-size:14px;line-height:1.35}
  .hl-mobile-itinerary-map__map-button{appearance:none;border:1px solid var(--hl-accent);border-radius:999px;background:#fff;color:var(--hl-accent);padding:9px 12px;font:inherit;font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap}
  .hl-mobile-itinerary-map__google{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
  .hl-mobile-itinerary-map__google a{font-size:13px;font-weight:750;color:var(--hl-accent);text-decoration:none;line-height:1.4}
  .hl-mobile-itinerary-map__google a:hover{text-decoration:underline}
  .hl-travel-aside .hl-context-map{display:none}
}


/* v1.2.13 — Contextual mobile itinerary maps */
@media(max-width:780px){
  .hl-mobile-itinerary-map{display:contents;margin:0;border:0;background:transparent;overflow:visible}
  .hl-mobile-itinerary-map__days{display:contents}
  .hl-mobile-itinerary-map__day{display:none;margin:18px 0 28px;padding:12px 14px;border:1px solid var(--hl-border);border-radius:14px;background:#f7f9fc;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center}
  .hl-mobile-itinerary-map__day.is-contextual{display:grid}
  .hl-mobile-itinerary-map__day>div:first-child span{font-size:11px}
  .hl-mobile-itinerary-map__day>div:first-child strong{font-size:13px}
  .hl-mobile-itinerary-map__map-button{padding:8px 12px}
  .hl-mobile-itinerary-map__google{margin-top:1px}
}


/* v1.2.16 — Mobile itinerary links open Google Maps directly */
@media(max-width:780px){
  .hl-mobile-itinerary-map__map-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
  .hl-mobile-itinerary-map__google--choices{grid-column:1/-1;gap:8px;margin-top:4px}
  .hl-mobile-itinerary-map__google--choices a{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--hl-border)}
  .hl-mobile-itinerary-map__google--choices a:first-child{border-top:0}
  .hl-mobile-itinerary-map__google--choices a span{color:var(--hl-text);font-size:12px;font-weight:650;line-height:1.35}
  .hl-mobile-itinerary-map__google--choices a strong{flex:0 0 auto;color:var(--hl-accent);font-size:13px}
}


/* v1.2.17 — Contextual planning actions */
.hl-travel-box__actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:14px}
.hl-travel-box__actions .hl-button{width:100%;padding-left:14px;padding-right:14px;text-align:center}
.hl-travel-box__secondary{display:inline-flex;align-items:center;color:var(--hl-accent);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:13px;font-weight:650;line-height:1.3;text-decoration:none}
.hl-travel-box__secondary:hover{text-decoration:underline}
