/* Turismo — Diseño v0.1.0. Capa visual unificada, sin alterar SEO ni routing. */
body.turismo-design-system{--turismo-dark:var(--ht-dark);--turismo-blue:var(--ht-blue);--turismo-yellow:var(--ht-accent);--turismo-blue-dark:var(--ht-dark);--turismo-soft:var(--ht-soft);--turismo-border:var(--ht-border);--turismo-font:'Raleway',Helvetica,Arial,Lucida,sans-serif}
body.turismo-design-system :where(.turismo-aloj-page,.turismo-gastro-page,.turismo-rutas-page,.turismo-exp-shell,.turismo-empresas-wrap,.turismo-lugares-page,.turismo-lugar-page,.turismo-search,.turismo-map-wrap,.turismo-public-form-wrap){font-family:'Raleway',Helvetica,Arial,Lucida,sans-serif;color:var(--ht-text);box-sizing:border-box}
body.turismo-design-system :where(.turismo-aloj-page,.turismo-gastro-page,.turismo-rutas-page,.turismo-exp-shell,.turismo-empresas-wrap,.turismo-lugares-page,.turismo-lugar-page,.turismo-search,.turismo-map-wrap,.turismo-public-form-wrap) *,body.turismo-design-system :where(.turismo-aloj-page,.turismo-gastro-page,.turismo-rutas-page,.turismo-exp-shell,.turismo-empresas-wrap,.turismo-lugares-page,.turismo-lugar-page,.turismo-search,.turismo-map-wrap,.turismo-public-form-wrap) *:before,body.turismo-design-system :where(.turismo-aloj-page,.turismo-gastro-page,.turismo-rutas-page,.turismo-exp-shell,.turismo-empresas-wrap,.turismo-lugares-page,.turismo-lugar-page,.turismo-search,.turismo-map-wrap,.turismo-public-form-wrap) *:after{box-sizing:border-box}

/* Contenedores */
body.turismo-design-system :where(.turismo-aloj-container,.turismo-gastro-shell,.turismo-rutas-shell,.turismo-exp-shell,.turismo-empresas-wrap,.turismo-lugares-container){width:min(calc(100% - 40px),var(--ht-max));max-width:var(--ht-max);margin-inline:auto}
body.turismo-design-system :where(.turismo-gastro-shell,.turismo-rutas-shell,.turismo-exp-shell,.turismo-empresas-wrap){padding-top:46px;padding-bottom:54px}

/* Hero corporativo */
body.turismo-design-system .turismo-aloj-hero,
body.turismo-design-system .turismo-empresas-hero,
body.turismo-design-system .turismo-lugares-hero,
body.turismo-design-system .turismo-exp-hero{background:linear-gradient(115deg,var(--ht-dark) 0%,var(--ht-blue) 100%);color:#fff;border-radius:0;box-shadow:none}
body.turismo-design-system .turismo-aloj-hero{padding:64px max(24px,calc((100vw - var(--ht-max))/2));min-height:var(--ht-hero-min);display:flex;align-items:center}
body.turismo-design-system .turismo-aloj-hero .inner{width:min(100%,var(--ht-max));margin:0 auto}
body.turismo-design-system .turismo-empresas-hero,
body.turismo-design-system .turismo-exp-hero{width:100vw;margin-left:calc(50% - 50vw);padding:58px max(24px,calc((100vw - var(--ht-max))/2));min-height:var(--ht-hero-min);display:flex;flex-direction:column;justify-content:center}
body.turismo-design-system .turismo-lugares-hero{padding:58px 0;min-height:var(--ht-hero-min);display:flex;align-items:center}
body.turismo-design-system :where(.turismo-aloj-hero,.turismo-empresas-hero,.turismo-lugares-hero,.turismo-exp-hero) h1{color:#fff!important;font-size:clamp(38px,5vw,66px)!important;line-height:1.02!important;letter-spacing:-.025em;margin:.18em 0 0!important;font-weight:700!important}
body.turismo-design-system :where(.turismo-aloj-hero,.turismo-empresas-hero,.turismo-lugares-hero,.turismo-exp-hero) p:first-child,
body.turismo-design-system .turismo-lugares-kicker{color:var(--ht-accent)!important;text-transform:uppercase;letter-spacing:.20em;font-size:13px;font-weight:800;margin:0 0 10px}
body.turismo-design-system .turismo-exp-hero p:not(:first-child){color:rgba(255,255,255,.88);font-size:17px;max-width:760px;margin:15px 0 0}

/* Hero sintético para módulos antiguos sin wrapper de hero */
body.turismo-design-system .turismo-gastro-shell,
body.turismo-design-system .turismo-rutas-shell{position:relative;isolation:isolate;padding-top:58px}
body.turismo-design-system .turismo-gastro-shell:before,
body.turismo-design-system .turismo-rutas-shell:before{content:"";position:absolute;z-index:-1;top:0;left:50%;transform:translateX(-50%);width:100vw;height:var(--ht-hero-min);background:linear-gradient(115deg,var(--ht-dark),var(--ht-blue))}
body.turismo-design-system .turismo-gastro-shell>.eyebrow,
body.turismo-design-system .turismo-rutas-shell>.eyebrow{color:var(--ht-accent)!important;font-size:13px;letter-spacing:.20em;font-weight:800;margin:0 0 8px;position:relative}
body.turismo-design-system .turismo-gastro-shell>h1,
body.turismo-design-system .turismo-rutas-shell>h1{color:#fff!important;font-size:clamp(38px,5vw,64px)!important;line-height:1.03!important;margin:0!important;letter-spacing:-.025em;position:relative}
body.turismo-design-system .turismo-gastro-shell>.turismo-gastro-list{margin-top:130px}
body.turismo-design-system .turismo-rutas-shell>.turismo-rutas-filters{margin-top:94px}

/* Filtros */
body.turismo-design-system :where(.turismo-rutas-filters,.turismo-empresas-filters,.turismo-search__filters){background:#fff;border:1px solid var(--ht-border);border-radius:calc(var(--ht-radius) - 2px);padding:14px;box-shadow:0 10px 34px rgba(13,44,65,.08)}
body.turismo-design-system .turismo-rutas-filters{display:grid;grid-template-columns:minmax(180px,1.25fr) repeat(4,minmax(150px,1fr)) auto;gap:10px;position:relative}
body.turismo-design-system :where(.turismo-rutas-filters,.turismo-empresas-filters,.turismo-search__filters) input,
body.turismo-design-system :where(.turismo-rutas-filters,.turismo-empresas-filters,.turismo-search__filters) select,
body.turismo-design-system .turismo-search__main input{min-height:46px;border:1px solid var(--ht-border)!important;border-radius:10px!important;background:#fff;color:var(--ht-text);padding:0 13px;font:inherit;box-shadow:none!important}
body.turismo-design-system :where(.turismo-rutas-filters,.turismo-empresas-filters) button,
body.turismo-design-system .turismo-submit,
body.turismo-design-system .turismo-search__main button{min-height:46px;border:0!important;border-radius:10px!important;background:var(--ht-accent)!important;color:var(--ht-dark)!important;font-weight:800!important;padding:0 20px!important;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
body.turismo-design-system :where(.turismo-rutas-filters,.turismo-empresas-filters) button:hover,
body.turismo-design-system .turismo-submit:hover,
body.turismo-design-system .turismo-search__main button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(13,44,65,.12)}

/* Tarjetas */
body.turismo-design-system :where(.turismo-aloj-list,.turismo-gastro-list,.turismo-rutas-list,.turismo-exp-list,.turismo-empresas-grid,.turismo-lugares-grid-cards){gap:24px}
body.turismo-design-system :where(.turismo-aloj-card,.turismo-gastro-card,.turismo-ruta-card,.turismo-exp-card,.turismo-empresa-card,.turismo-lugar-card,.turismo-search-card){background:var(--ht-surface);border:1px solid var(--ht-border)!important;border-radius:var(--ht-radius)!important;overflow:hidden;box-shadow:var(--ht-shadow)!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
body.turismo-design-system :where(.turismo-aloj-card,.turismo-gastro-card,.turismo-ruta-card,.turismo-exp-card,.turismo-empresa-card,.turismo-lugar-card,.turismo-search-card):hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(13,44,65,.13)!important}
body.turismo-design-system :where(.turismo-aloj-card.is-premium,.turismo-gastro-card.is-premium,.turismo-exp-card.is-premium){border:2px solid var(--ht-accent)!important}
body.turismo-design-system :where(.turismo-aloj-card .media,.turismo-gastro-card .media,.turismo-ruta-card .media,.turismo-exp-card .thumb,.turismo-empresa-card-media,.turismo-lugar-card__image,.turismo-search-card__image){display:block;background:#edf2f5;overflow:hidden}
body.turismo-design-system :where(.turismo-aloj-card .media img,.turismo-gastro-card .media img,.turismo-ruta-card .media img,.turismo-exp-card .thumb img,.turismo-empresa-card-media img,.turismo-lugar-card__image img,.turismo-search-card__image img){width:100%;height:220px;object-fit:cover;display:block;transition:transform .35s ease}
body.turismo-design-system :where(.turismo-aloj-card,.turismo-gastro-card,.turismo-ruta-card,.turismo-exp-card,.turismo-empresa-card,.turismo-lugar-card,.turismo-search-card):hover img{transform:scale(1.025)}
body.turismo-design-system :where(.turismo-aloj-card .content,.turismo-gastro-card .content,.turismo-ruta-card .content,.turismo-exp-card .body,.turismo-empresa-card-body,.turismo-lugar-card__body,.turismo-search-card__body){padding:20px!important}
body.turismo-design-system :where(.turismo-aloj-card,.turismo-gastro-card,.turismo-ruta-card,.turismo-exp-card,.turismo-empresa-card,.turismo-lugar-card,.turismo-search-card) h2,
body.turismo-design-system :where(.turismo-aloj-card,.turismo-gastro-card,.turismo-ruta-card,.turismo-exp-card,.turismo-empresa-card,.turismo-lugar-card,.turismo-search-card) h3{font-size:21px!important;line-height:1.25!important;margin:6px 0 9px!important;color:var(--ht-dark)!important}
body.turismo-design-system :where(.turismo-aloj-card,.turismo-gastro-card,.turismo-ruta-card,.turismo-exp-card,.turismo-empresa-card,.turismo-lugar-card,.turismo-search-card) h2 a,
body.turismo-design-system :where(.turismo-aloj-card,.turismo-gastro-card,.turismo-ruta-card,.turismo-exp-card,.turismo-empresa-card,.turismo-lugar-card,.turismo-search-card) h3 a{color:var(--ht-dark)!important;text-decoration:none!important}
body.turismo-design-system :where(.turismo-exp-card .meta,.turismo-empresa-meta,.turismo-lugar-card__meta,.turismo-search-card__context,.turismo-search-card__eyebrow){color:var(--ht-muted);font-size:13px}
body.turismo-design-system :where(.turismo-exp-card .badge,.turismo-pill.featured,.turismo-search-card__eyebrow b){display:inline-flex;background:var(--ht-accent)!important;color:var(--ht-dark)!important;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;letter-spacing:.04em}

/* Vacíos */
body.turismo-design-system :where(.turismo-empty,.turismo-lugares-empty,.turismo-search__empty){background:var(--ht-soft)!important;border:1px dashed #cbd6dd!important;border-radius:var(--ht-radius)!important;padding:34px!important;color:var(--ht-muted)!important;text-align:center}

/* Fichas */
body.turismo-design-system :where(.turismo-aloj-single,.turismo-gastro-single,.turismo-ruta-single,.turismo-empresa-single-head,.turismo-lugar-main){font-size:17px;line-height:1.75}
body.turismo-design-system :where(.turismo-gastro-single,.turismo-ruta-single,.turismo-empresa-content,.turismo-lugar-article) h2{color:var(--ht-dark)!important;font-size:28px!important;line-height:1.2;margin-top:34px}
body.turismo-design-system :where(.turismo-empresa-contact-card,.turismo-ruta-single .panel,.turismo-lugar-info-card,.turismo-exp-fact){background:var(--ht-soft)!important;border:1px solid var(--ht-border)!important;border-radius:var(--ht-radius)!important;padding:20px!important}
body.turismo-design-system :where(.turismo-aloj-actions a,.turismo-gastro-single .actions a,.turismo-ruta-single .actions a,.turismo-exp-cta,.turismo-lugar-back){border-radius:10px!important;text-decoration:none!important;font-weight:800!important}

/* Formularios públicos */
body.turismo-design-system .turismo-public-form-wrap{width:min(calc(100% - 40px),920px);max-width:920px;margin:36px auto;padding:0!important}
body.turismo-design-system .turismo-public-form{background:#fff;border:1px solid var(--ht-border)!important;border-radius:var(--ht-radius)!important;padding:26px!important;box-shadow:var(--ht-shadow)}
body.turismo-design-system .turismo-public-form label{color:var(--ht-dark)!important;font-weight:700}
body.turismo-design-system .turismo-public-form :where(input,select,textarea){border:1px solid var(--ht-border)!important;border-radius:9px!important;padding:11px 12px!important;font:inherit;box-shadow:none!important}
body.turismo-design-system .turismo-public-form :where(input,select,textarea):focus{border-color:var(--ht-blue)!important;outline:3px solid rgba(29,71,110,.12)!important}

/* Buscador */
body.turismo-design-system .turismo-search{width:min(calc(100% - 40px),var(--ht-max));max-width:var(--ht-max);margin:0 auto;padding:46px 0}
body.turismo-design-system .turismo-search__title{font-size:clamp(34px,4vw,56px)!important;color:var(--ht-dark)!important;text-align:center;margin:0 0 32px!important}
body.turismo-design-system .turismo-search__main{display:grid;grid-template-columns:1fr auto;margin-bottom:14px}
body.turismo-design-system .turismo-search__main input{border-radius:14px 0 0 14px!important;min-height:58px;font-size:18px;padding-inline:18px}
body.turismo-design-system .turismo-search__main button{border-radius:0 14px 14px 0!important;min-height:58px;background:var(--ht-dark)!important;color:#fff!important;padding-inline:30px!important}
body.turismo-design-system .turismo-search__filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;background:transparent;border:0;box-shadow:none;padding:0}
body.turismo-design-system .turismo-search__meta{text-align:center;color:var(--ht-muted);padding:16px 0}
body.turismo-design-system .turismo-search__results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}

/* Mapas */
body.turismo-design-system .turismo-map-wrap{width:min(calc(100% - 40px),var(--ht-max));max-width:var(--ht-max);margin:40px auto}
body.turismo-design-system .turismo-map-title{color:var(--ht-dark)!important;font-size:34px!important;margin-bottom:18px!important}
body.turismo-design-system .turismo-map-canvas{border:1px solid var(--ht-border);border-radius:var(--ht-radius);overflow:hidden;box-shadow:var(--ht-shadow)}

/* Tabs y paginación */
body.turismo-design-system .turismo-lugares-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
body.turismo-design-system .turismo-lugares-tabs a{border:1px solid var(--ht-border);background:#fff;color:var(--ht-dark);padding:9px 13px;border-radius:999px;text-decoration:none;font-weight:700}
body.turismo-design-system .turismo-lugares-tabs a.is-active{background:var(--ht-dark);color:#fff;border-color:var(--ht-dark)}
body.turismo-design-system :where(.turismo-pagination,.turismo-lugares-pagination,.turismo-search__pagination) a,
body.turismo-design-system :where(.turismo-pagination,.turismo-lugares-pagination,.turismo-search__pagination) span{border-radius:8px!important;border:1px solid var(--ht-border)!important;color:var(--ht-dark)!important;text-decoration:none!important}
body.turismo-design-system :where(.turismo-pagination,.turismo-lugares-pagination,.turismo-search__pagination) .current{background:var(--ht-dark)!important;color:#fff!important;border-color:var(--ht-dark)!important}

/* Accesibilidad */
body.turismo-design-system :where(a,button,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--ht-accent) 70%,#fff)!important;outline-offset:2px}

@media(max-width:1050px){
 body.turismo-design-system .turismo-rutas-filters{grid-template-columns:1fr 1fr 1fr}
 body.turismo-design-system .turismo-search__filters{grid-template-columns:repeat(2,1fr)}
 body.turismo-design-system .turismo-search__results{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
 body.turismo-design-system :where(.turismo-aloj-container,.turismo-gastro-shell,.turismo-rutas-shell,.turismo-exp-shell,.turismo-empresas-wrap,.turismo-lugares-container,.turismo-search,.turismo-map-wrap){width:min(calc(100% - 28px),var(--ht-max))}
 body.turismo-design-system .turismo-aloj-hero,
 body.turismo-design-system .turismo-empresas-hero,
 body.turismo-design-system .turismo-lugares-hero,
 body.turismo-design-system .turismo-exp-hero{padding-top:42px;padding-bottom:42px;min-height:190px}
 body.turismo-design-system :where(.turismo-aloj-hero,.turismo-empresas-hero,.turismo-lugares-hero,.turismo-exp-hero) h1,
 body.turismo-design-system .turismo-gastro-shell>h1,
 body.turismo-design-system .turismo-rutas-shell>h1{font-size:36px!important}
 body.turismo-design-system .turismo-gastro-shell:before,
 body.turismo-design-system .turismo-rutas-shell:before{height:200px}
 body.turismo-design-system .turismo-gastro-shell>.turismo-gastro-list{margin-top:100px}
 body.turismo-design-system .turismo-rutas-shell>.turismo-rutas-filters{margin-top:70px}
 body.turismo-design-system .turismo-rutas-filters{grid-template-columns:1fr}
 body.turismo-design-system .turismo-search__main{grid-template-columns:1fr}
 body.turismo-design-system .turismo-search__main input{border-radius:12px!important}
 body.turismo-design-system .turismo-search__main button{border-radius:12px!important;margin-top:8px}
 body.turismo-design-system .turismo-search__filters{grid-template-columns:1fr}
 body.turismo-design-system .turismo-search__results{grid-template-columns:1fr}
 body.turismo-design-system :where(.turismo-aloj-list,.turismo-gastro-list,.turismo-rutas-list,.turismo-exp-list,.turismo-empresas-grid,.turismo-lugares-grid-cards){grid-template-columns:1fr!important}
}
