/* FeriasHoy 2.0.3 — ajustes de alineación de filtros rápidos; sin cambios en datos ni automatización */
:root { --fh-ink:#152238; --fh-ink-2:#263951; --fh-muted:#6b7889; --fh-border:#e9edf3; --fh-orange:#f86a35; --fh-orange-dark:#d55022; --fh-surface:#f7f9fc; --fh-cream:#fff6ef; --fh-radius:18px; --fh-container:1280px; --fh-v2-teal:#009e98; }
body { background:#fff; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #18a7a3; outline-offset:3px; }
.fh-container { width:min(calc(100% - 48px),var(--fh-container)); }
/* Cabecera 2.0.1: dos niveles ligeros, logo original y menú adaptable */
.fh-site-header { background:rgba(255,255,255,.97); backdrop-filter:blur(16px); border-bottom:1px solid #e8eef1; box-shadow:0 6px 30px rgba(16,43,58,.035); transition:box-shadow .2s ease; }
.fh-site-header.is-scrolled { box-shadow:0 14px 40px rgba(14,34,52,.10); }
.fh-topbar { background:#152e41; color:#ecf6f7; }
.fh-topbar-inner { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.fh-topbar-message { display:inline-flex; align-items:center; gap:10px; font-size:.73rem; font-weight:650; letter-spacing:.015em; }
.fh-topbar-spark { width:7px; height:7px; background:#53d7ae; border-radius:50%; box-shadow:0 0 0 3px rgba(83,215,174,.12); }
.fh-topbar a { color:#b9e9e7; font-weight:750; font-size:.72rem; text-decoration:none; }
.fh-topbar a:hover { color:#fff; }
.fh-header-inner { min-height:84px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:clamp(14px,2vw,34px); align-items:center; }
.fh-brand-wrap { margin:0; display:flex; align-items:center; }
.fh-brand-image-link,.fh-brand-wrap .custom-logo-link { display:inline-flex; align-items:center; border-radius:14px; padding:4px 8px 4px 0; }
.fh-brand-image,.custom-logo { height:62px; width:auto; max-width:185px; max-height:64px; object-fit:contain; }
.fh-primary-nav { justify-self:end; min-width:0; }
.fh-menu { gap:6px; align-items:center; }
.fh-menu li { position:relative; }
.fh-menu a { display:inline-flex; align-items:center; min-height:43px; padding:9px 14px; border-radius:11px; color:#283c52; font-weight:760; font-size:.89rem; text-decoration:none; transition:background .2s,color .2s; }
.fh-menu a:hover,.fh-menu .current-menu-item>a,.fh-menu .current_page_item>a { background:#edf9f7; color:#007d7a; }
.fh-header-cta { border-radius:13px; background:#009a94; padding:13px 19px; min-height:46px; font-size:.87rem; display:inline-flex; align-items:center; justify-content:center; gap:9px; white-space:nowrap; color:#fff; box-shadow:0 8px 18px rgba(0,154,148,.17); transition:transform .2s,background .2s,box-shadow .2s; }
.fh-header-cta:hover { color:#fff; background:#007f7c; transform:translateY(-1px); box-shadow:0 12px 24px rgba(0,154,148,.25); }
.fh-menu-toggle { border:1px solid #e0e9ec; border-radius:11px; background:#f6fafb; height:44px; width:44px; padding:10px; cursor:pointer; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.fh-menu-toggle>span:not(.screen-reader-text) { width:20px; height:2px; margin:0; background:#1c3547; transition:transform .2s,opacity .2s; }
.fh-menu-toggle[aria-expanded="true"]>span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.fh-menu-toggle[aria-expanded="true"]>span:nth-child(2) { opacity:0; }
.fh-menu-toggle[aria-expanded="true"]>span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.fh-v2-home h1,.fh-v2-home h2,.fh-v2-detail h1,.fh-v2-detail h2 { letter-spacing:-.045em; }
.fh-v2-hero { position:relative; isolation:isolate; min-height:425px; color:#fff; background:#1d2f49; }
.fh-v2-hero:before { content:""; position:absolute; inset:0; z-index:-2; background-image:var(--fh-v2-hero-image); background-position:center 44%; background-size:cover; }
.fh-v2-hero:after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(8,24,44,.87) 0%,rgba(9,28,44,.56) 53%,rgba(10,31,49,.15) 100%),linear-gradient(0deg,rgba(7,23,42,.22),transparent 68%); }
.fh-v2-hero-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; min-height:425px; padding-top:50px; padding-bottom:50px; }
.fh-v2-hero-copy { width:min(100%,810px); }
.fh-v2-hero-eyebrow { display:inline-flex; align-items:center; padding:7px 13px; border-radius:100px; color:#d6ecee; font-size:.82rem; font-weight:750; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(8px); }
.fh-v2-hero h1 { font-size:clamp(2.6rem,5vw,4.65rem); line-height:1.04; max-width:750px; margin:18px 0; font-weight:850; text-wrap:balance; }
.fh-v2-hero p { max-width:610px; font-size:clamp(1.03rem,1.6vw,1.19rem); line-height:1.6; color:#f2f5f8; margin:0 0 25px; }
.fh-v2-search { display:flex; align-items:center; width:min(100%,800px); min-height:60px; padding:6px; border-radius:16px; background:#fff; color:var(--fh-ink); box-shadow:0 16px 45px rgba(4,17,30,.25); }
.fh-v2-search input { border:none!important; box-shadow:none!important; outline:none!important; min-width:0; padding:0 14px; height:45px; color:var(--fh-ink); background:transparent; }
.fh-v2-search input[name="q"] { flex:1 1 55%; }
.fh-v2-search input[name="municipio"] { flex:0 1 30%; border-left:1px solid #e7ebf0!important; }
.fh-v2-search-icon { color:#8b96a4; padding-left:15px; font-size:1.7rem; line-height:1; }
.fh-v2-search button { flex:0 0 auto; min-width:112px; padding:0 17px; border:0; border-radius:11px; background:var(--fh-v2-teal); color:#fff; font-size:.99rem; font-weight:800; height:49px; cursor:pointer; }
.fh-v2-search button:hover { background:#008b85; }
/* 2.0.3: los tres accesos rápidos comparten altura, tipografía y alineación vertical.
   La anchura sigue ajustándose al texto para no forzar cortes en móviles. */
.fh-v2-hero-pills { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:19px; }
.fh-v2-hero-pills > a {
    box-sizing:border-box;
    display:inline-flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    align-self:center;
    min-width:78px;
    height:40px;
    min-height:40px;
    margin:0;
    padding:0 16px;
    border:1px solid rgba(255,255,255,.32);
    border-radius:100px;
    background:rgba(255,255,255,.13);
    color:#fff;
    font-size:.83rem;
    font-weight:700;
    line-height:1;
    text-align:center;
    text-decoration:none;
    white-space:nowrap;
    vertical-align:middle;
    transition:background .2s ease,border-color .2s ease;
}
.fh-v2-hero-pills > a:hover { background:rgba(255,255,255,.27); color:#fff; }
.fh-v2-hero-pills > a:focus-visible { outline:3px solid #8ce2dc; outline-offset:3px; }
@media (max-width:640px) {
    .fh-v2-hero-pills { gap:8px; }
    .fh-v2-hero-pills > a { min-width:70px; height:38px; min-height:38px; padding:0 12px; font-size:.79rem; }
}
.fh-v2-hero-counter { display:flex; align-items:center; gap:10px; white-space:nowrap; align-self:flex-end; margin-bottom:5px; background:rgba(10,25,37,.46); border:1px solid rgba(255,255,255,.23); backdrop-filter:blur(8px); border-radius:100px; padding:9px 15px; font-size:.84rem; font-weight:750; }
.fh-v2-status-dot { width:9px; height:9px; background:#5fdb9b; border-radius:50%; box-shadow:0 0 0 4px rgba(95,219,155,.18); }
.fh-v2-categories-section { padding:20px 0 12px; background:#fff; }
.fh-v2-category-grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:10px; }
.fh-v2-category { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:9px; min-height:102px; border:1px solid #edf0f5; border-radius:16px; background:#fff; text-decoration:none; text-align:center; font-size:.78rem; font-weight:750; line-height:1.24; color:#263448; padding:12px 7px; box-shadow:0 3px 16px rgba(12,30,54,.025); transition:transform .2s,border-color .2s,box-shadow .2s; }
.fh-v2-category:hover { transform:translateY(-3px); border-color:#a0ded9; box-shadow:0 12px 22px rgba(16,63,77,.08); color:var(--fh-v2-teal); }
.fh-v2-category-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:#f3f8fb; font-size:1.7rem; line-height:1; }
.fh-v2-category:nth-child(4n+2) .fh-v2-category-icon { background:#fff2e6; }
.fh-v2-category:nth-child(4n+3) .fh-v2-category-icon { background:#f3efff; }
.fh-v2-category:nth-child(4n+4) .fh-v2-category-icon { background:#e8f7ee; }
.fh-v2-home-section { padding:47px 0 53px; }
.fh-v2-home-section--subtle { background:#f7f9fb; }
.fh-v2-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:22px; }
.fh-v2-section-heading h2 { font-size:clamp(1.6rem,2.6vw,2.28rem); margin:5px 0 4px; line-height:1.14; }
.fh-v2-section-heading p { font-size:.94rem; color:var(--fh-muted); margin:5px 0 0; }
.fh-v2-section-heading>a { text-decoration:none; color:var(--fh-v2-teal); font-weight:800; font-size:.89rem; white-space:nowrap; }
.fh-v2-kicker { font-size:.69rem; font-weight:900; letter-spacing:.13em; color:var(--fh-orange-dark); }
.fh-v2-grid { display:grid; gap:18px; }
.fh-v2-grid--four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.fh-v2-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
/* Tarjetas 2.0.1: ninguna imagen estira la tarjeta; carteles completos con fondo suave */
.fh-v2-grid .fh-event-card,.fh-event-grid .fh-event-card { position:relative; min-width:0; height:100%; display:flex; flex-direction:column; border:1px solid #e9edf3; border-radius:19px; overflow:hidden; background:#fff; box-shadow:0 8px 25px rgba(12,35,62,.06); }
.fh-v2-grid .fh-event-card:hover,.fh-event-grid .fh-event-card:hover { transform:translateY(-4px); box-shadow:0 18px 36px rgba(12,35,62,.12); }
.fh-v2-grid .fh-event-card__media,.fh-event-grid .fh-event-card__media { position:relative; display:block; width:100%; flex:none; min-height:0; aspect-ratio:16/10; isolation:isolate; overflow:hidden; background:linear-gradient(135deg,#e5eef1,#f9ece8); }
.fh-v2-grid .fh-event-card__media--poster::before,.fh-event-grid .fh-event-card__media--poster::before { content:""; position:absolute; inset:-15px; z-index:0; background-image:var(--fh-card-poster); background-size:cover; background-position:center; filter:blur(22px) saturate(.9); transform:scale(1.08); opacity:.68; }
.fh-v2-grid .fh-event-card__media--poster::after,.fh-event-grid .fh-event-card__media--poster::after { content:""; position:absolute; inset:0; z-index:0; background:rgba(245,249,251,.17); }
.fh-v2-grid .fh-event-card__media img,.fh-event-grid .fh-event-card__media img { position:absolute; z-index:1; top:10px; left:10px; display:block; width:calc(100% - 20px); height:calc(100% - 20px); max-width:none; max-height:none; min-width:0; min-height:0; object-fit:contain; object-position:center; filter:drop-shadow(0 4px 13px rgba(13,30,43,.16)); transform:none; }
.fh-v2-grid .fh-event-card:hover .fh-event-card__media img,.fh-event-grid .fh-event-card:hover .fh-event-card__media img { transform:none; }
.fh-v2-grid .fh-event-card__placeholder,.fh-event-grid .fh-event-card__placeholder { display:grid; place-items:center; height:100%; width:100%; font-size:3.15rem; }
.fh-v2-grid .fh-event-card__body,.fh-event-grid .fh-event-card__body { display:flex; flex-direction:column; flex:1 1 auto; padding:17px 18px 18px; }
.fh-v2-grid .fh-event-card__title,.fh-event-grid .fh-event-card__title { font-size:1.08rem; line-height:1.35; margin:11px 0 12px; letter-spacing:-.027em; min-height:2.7em; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.fh-v2-grid .fh-event-card__meta,.fh-event-grid .fh-event-card__meta { font-size:.82rem; line-height:1.42; gap:8px; }
.fh-v2-grid .fh-event-card__topline .fh-badge,.fh-event-grid .fh-event-card__topline .fh-badge { font-size:.68rem; background:#eaf6f5; color:#1f7479; text-transform:none; letter-spacing:0; }
.fh-v2-grid .fh-card-link,.fh-event-grid .fh-card-link { display:inline-flex; margin-top:auto; padding-top:16px; font-size:.82rem; font-weight:850; color:var(--fh-v2-teal); }
.fh-v2-card-date { z-index:3; top:12px; left:12px; }
.fh-v2-related { padding-top:52px; }
.fh-v2-related .fh-v2-grid { align-items:stretch; }
.fh-v2-card-date { position:absolute; z-index:2; top:12px; left:12px; background:#f03455; color:#fff; border-radius:9px; padding:5px 8px; width:46px; min-height:47px; text-align:center; line-height:1; box-shadow:0 5px 12px rgba(0,0,0,.13); pointer-events:none; }
.fh-v2-card-date strong { display:block; font-size:1.06rem; }
.fh-v2-card-date small { display:block; font-size:.59rem; font-weight:800; margin-top:4px; }
.fh-v2-province-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.fh-v2-province { display:flex; flex-direction:column; justify-content:space-between; min-height:180px; padding:19px 20px; border-radius:18px; color:#fff; text-decoration:none; overflow:hidden; position:relative; isolation:isolate; background:linear-gradient(145deg,#264767,#0d8b91); box-shadow:0 8px 16px rgba(20,47,76,.08); }
.fh-v2-province:before { content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(circle at 90% 10%,rgba(255,255,255,.28),transparent 38%),linear-gradient(142deg,transparent 43%,rgba(255,255,255,.1) 44%,transparent 45%),linear-gradient(38deg,rgba(0,0,0,.23),transparent); }
.fh-v2-province--2 { background:linear-gradient(150deg,#5d547f,#d68b62); }
.fh-v2-province--3 { background:linear-gradient(150deg,#0d6978,#71a5b4); }
.fh-v2-province--4 { background:linear-gradient(150deg,#a85c4e,#e5a05b); }
.fh-v2-province:hover { color:#fff; transform:translateY(-2px); }
.fh-v2-province-art { font-size:3rem; opacity:.4; align-self:flex-end; line-height:1; }
.fh-v2-province strong { display:block; font-size:1.35rem; line-height:1.2; }
.fh-v2-province small { font-size:.8rem; opacity:.9; }
.fh-site-footer { background:#142338; }
.fh-site-footer .fh-brand-image { height:60px; width:auto; }
.fh-event-single .fh-event-hero__image img { object-fit:contain; }
/* Ficha individual */
.fh-v2-event-article { background:#fff; }
.fh-v2-breadcrumb-space { padding-top:27px; padding-bottom:2px; }
.fh-v2-breadcrumb-space .fh-breadcrumbs { margin:0 0 20px; }
.fh-v2-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:35px; align-items:start; }
.fh-v2-detail-main { min-width:0; }
.fh-v2-detail-poster { margin:0; position:relative; min-height:300px; display:flex; align-items:center; justify-content:center; border-radius:20px; overflow:hidden; background:#152238; box-shadow:0 12px 31px rgba(19,35,55,.10); }
.fh-v2-detail-poster img { display:block; width:100%; max-height:510px; aspect-ratio:16/9; object-fit:contain; background:linear-gradient(150deg,#0d1b2b,#2a3d50); }
.fh-v2-detail-poster--empty { background:linear-gradient(115deg,#1f3e55,#193041 55%,#116b71); min-height:325px; }
.fh-v2-poster-placeholder { display:grid; gap:18px; padding:35px; text-align:center; color:#fff; }
.fh-v2-poster-placeholder small { color:#83dad6; text-transform:uppercase; font-weight:800; letter-spacing:.15em; }
.fh-v2-poster-placeholder strong { font-size:clamp(1.5rem,3vw,2.65rem); line-height:1.12; }
.fh-v2-poster-placeholder span { opacity:.72; }
.fh-v2-date-tile { position:absolute; top:18px; left:18px; z-index:3; width:60px; min-height:68px; background:#f13659; color:#fff; border-radius:12px; display:grid; place-content:center; gap:4px; text-align:center; line-height:1; box-shadow:0 8px 20px rgba(0,0,0,.23); }
.fh-v2-date-tile strong { font-size:1.65rem; }
.fh-v2-date-tile small { font-weight:900; font-size:.77rem; }
.fh-v2-detail-header { padding:26px 0 27px; border-bottom:1px solid #edf0f4; }
.fh-v2-detail-tags { display:flex; flex-wrap:wrap; gap:7px; }
.fh-v2-detail-tags>span { padding:5px 12px; border-radius:100px; background:#eef7f9; color:#31717a; font-size:.78rem; font-weight:750; }
.fh-v2-detail-tags>span:nth-child(2) { background:#eff9f0; color:#247552; }
.fh-v2-detail-tags>.fh-v2-tag-ended { background:#ffeff0; color:#bb3447; }
.fh-v2-detail-header h1 { font-size:clamp(1.85rem,3.2vw,2.75rem); line-height:1.12; margin:13px 0 14px; overflow-wrap:break-word; }
.fh-v2-detail-subline { display:flex; flex-wrap:wrap; gap:9px 17px; color:#617086; font-size:.84rem; }
.fh-v2-notice { padding:15px 18px; border-radius:12px; margin-top:20px; background:#fff2ec; color:#8b3b23; border:1px solid #f7dbc9; font-weight:750; }
.fh-v2-prose { padding:22px 0 16px; color:#334359; font-size:1.01rem; line-height:1.85; overflow-wrap:anywhere; }
.fh-v2-prose h2,.fh-v2-map-section h2,.fh-v2-series h2 { margin:0 0 17px; font-size:1.38rem; color:var(--fh-ink); line-height:1.2; }
.fh-v2-prose p { margin:0 0 1.2em; }
.fh-v2-prose img { max-width:100%; height:auto; border-radius:12px; }
.fh-v2-detail-aside { position:sticky; top:136px; }
.fh-v2-aside-card { background:#fff; border:1px solid #e9edf2; border-radius:20px; padding:23px 24px; box-shadow:0 15px 38px rgba(13,35,60,.065); }
.fh-v2-aside-head { display:flex; align-items:center; gap:10px; border-bottom:1px solid #e7edf2; padding-bottom:16px; }
.fh-v2-aside-head span { background:#eaf7f8; border-radius:10px; display:grid; place-items:center; width:31px; height:31px; color:#15948f; font-weight:900; }
.fh-v2-aside-head h2 { margin:0; font-size:1.22rem; letter-spacing:-.02em; }
.fh-v2-aside-card dl { padding:0; margin:0; }
.fh-v2-aside-card .fh-info-row { padding:14px 0; border-bottom:1px solid #edf0f4; }
.fh-v2-aside-card .fh-info-row dt { color:#7d8a9b; font-size:.70rem; letter-spacing:.05em; text-transform:uppercase; font-weight:850; margin:0 0 5px; }
.fh-v2-aside-card .fh-info-row dd { margin:0; font-size:.92rem; color:#172941; font-weight:750; line-height:1.5; white-space:pre-line; overflow-wrap:anywhere; }
.fh-v2-aside-actions { display:grid; gap:9px; margin-top:18px; }
.fh-v2-button { display:flex; align-items:center; justify-content:center; min-height:44px; padding:10px 12px; text-decoration:none; text-align:center; font-size:.83rem; font-weight:850; border-radius:12px; }
.fh-v2-button--dark { background:#173349; color:#fff; }
.fh-v2-button--dark:hover { background:#0e6071; color:#fff; }
.fh-v2-button--light { color:#d95024; background:#fff3ed; }
.fh-v2-button--light:hover { color:#a84323; background:#ffe8db; }
.fh-v2-button--outline { color:#1c5668; border:1px solid #c6e0e4; background:#f6fafb; }
.fh-v2-verified { color:#8994a1; font-size:.72rem; margin:13px 0 0; line-height:1.5; }
.fh-v2-verified a { color:#586a77; }
.fh-v2-series,.fh-v2-map-section { border-top:1px solid #edf0f4; padding:30px 0 32px; }
.fh-v2-series p,.fh-v2-map-section p { color:#637286; font-size:.92rem; }
.fh-v2-map-frame { width:100%; border-radius:15px; overflow:hidden; background:#ecf2f2; }
.fh-v2-map-frame iframe { width:100%; height:315px; border:0; display:block; }
.fh-v2-map-more { display:inline-block; margin-top:12px; font-size:.88rem; color:var(--fh-v2-teal); font-weight:800; }
.fh-v2-related { padding:48px 0 85px; }
/* Adaptación del buscador existente, archivos y taxonomías */
.fh-results-hero,.fh-archive-hero,.fh-page-header { background:linear-gradient(130deg,#f6f9fa,#fff); }
.fh-inline-filter { box-shadow:0 12px 26px rgba(19,34,56,.055); border-radius:16px; }
.fh-event-grid { gap:18px; }
.fh-results-section { padding-top:46px; }
.fh-pagination .current { background:var(--fh-v2-teal); border-color:var(--fh-v2-teal); }
@media (max-width:1100px) { .fh-v2-grid--four { grid-template-columns:repeat(3,minmax(0,1fr)); }.fh-v2-category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.fh-v2-detail-grid { grid-template-columns:minmax(0,1fr) 300px; gap:22px; }.fh-v2-hero-counter { display:none; } }
@media (max-width:850px) { .fh-v2-grid--four { grid-template-columns:repeat(2,minmax(0,1fr)); }.fh-v2-province-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.fh-v2-detail-grid { display:block; }.fh-v2-detail-aside { position:static; margin-top:20px; }.fh-v2-detail-main { width:100%; }.fh-v2-detail-poster img { max-height:560px; }.fh-v2-related { padding-top:35px; }.fh-v2-hero-inner { min-height:405px; } }
@media (max-width:640px) { .fh-container { width:min(calc(100% - 28px),var(--fh-container)); }.fh-header-inner { min-height:70px; }.fh-brand-image,.custom-logo { height:46px; max-height:46px; }.fh-v2-hero { min-height:0; }.fh-v2-hero-inner { min-height:0; padding-top:46px; padding-bottom:45px; }.fh-v2-hero h1 { font-size:clamp(2.25rem,8.7vw,3.2rem); }.fh-v2-search { flex-wrap:wrap; padding:9px; border-radius:13px; gap:2px; }.fh-v2-search-icon { display:none; }.fh-v2-search input[name="q"] { flex:1 1 100%; border:0!important; border-bottom:1px solid #e7ebf0!important; }.fh-v2-search input[name="municipio"] { flex:1 1 45%; border:0!important; padding-left:10px; }.fh-v2-search button { min-width:94px; }.fh-v2-category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }.fh-v2-category { min-height:88px; padding:10px 4px; font-size:.64rem; border-radius:12px; }.fh-v2-category-icon { font-size:1.43rem; width:36px; height:36px; }.fh-v2-home-section { padding:36px 0; }.fh-v2-grid--four,.fh-v2-grid--three { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.fh-v2-grid .fh-event-card__body { padding:10px; }.fh-v2-grid .fh-event-card__title { font-size:.86rem; min-height:0; }.fh-v2-grid .fh-event-card__meta { font-size:.73rem; }.fh-v2-grid .fh-card-link { font-size:.75rem; }.fh-v2-section-heading { align-items:start; }.fh-v2-section-heading h2 { font-size:1.65rem; }.fh-v2-section-heading>a { font-size:.78rem; }.fh-v2-province { min-height:150px; padding:13px; }.fh-v2-province strong { font-size:1.1rem; }.fh-v2-detail-poster { min-height:190px; border-radius:14px; }.fh-v2-detail-poster img { max-height:390px; }.fh-v2-detail-header h1 { font-size:clamp(1.75rem,6.5vw,2.2rem); }.fh-v2-aside-card { padding:20px; }.fh-v2-related { padding-bottom:46px; }.fh-v2-map-frame iframe { height:235px; } }
@media (max-width:420px) { .fh-v2-category-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.fh-v2-search button span { display:none; }.fh-v2-search button { min-width:56px; }.fh-v2-home-section .fh-event-card__meta span:nth-child(n+3) { display:none; } }
@media (prefers-reduced-motion:reduce) { .fh-v2-province,.fh-v2-category,.fh-event-card { transition:none!important; } }

/* Cabecera y fichas responsivas del rediseño 2.0.1 */
@media (max-width:1120px) {
 .fh-header-inner { gap:12px; }
 .fh-menu { gap:2px; }
 .fh-menu a { padding:8px 10px; font-size:.85rem; }
 .fh-header-cta { padding:12px 13px; }
}
@media (max-width:930px) {
 .fh-header-inner { display:flex; align-items:center; justify-content:space-between; min-height:74px; position:relative; }
 .fh-brand-wrap { margin-right:auto; }
 .fh-menu-toggle { display:flex; order:3; }
 .fh-header-cta { display:inline-flex; order:2; padding:11px 15px; }
 .fh-primary-nav { position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:120; display:none; background:#fff; border:1px solid #e6edef; border-radius:17px; box-shadow:0 20px 50px rgba(12,33,48,.17); padding:13px; }
 .fh-primary-nav.is-open { display:block; }
 .fh-menu { display:flex; flex-direction:column; align-items:stretch; gap:4px; }
 .fh-menu a { display:flex; width:100%; font-size:.95rem; min-height:45px; padding:11px 13px; }
}
@media (max-width:640px) {
 .fh-topbar-inner { min-height:30px; }
 .fh-topbar-message { font-size:.65rem; }
 .fh-topbar a { display:none; }
 .fh-header-inner { min-height:68px; }
 .fh-brand-image,.fh-brand-wrap .custom-logo { max-height:51px; height:49px; max-width:145px; }
 .fh-header-cta { padding:10px; height:43px; width:43px; min-height:43px; border-radius:12px; }
 .fh-header-cta span { position:absolute; clip:rect(0,0,0,0); width:1px; height:1px; overflow:hidden; white-space:nowrap; }
 .fh-header-cta svg { width:19px; height:19px; }
 .fh-v2-grid .fh-event-card__media,.fh-event-grid .fh-event-card__media { aspect-ratio:16/11; }
 .fh-v2-grid .fh-event-card__body,.fh-event-grid .fh-event-card__body { padding:12px 13px 14px; }
 .fh-v2-grid .fh-event-card__title,.fh-event-grid .fh-event-card__title { font-size:.91rem; min-height:auto; line-height:1.34; }
 .fh-v2-grid .fh-event-card__meta,.fh-event-grid .fh-event-card__meta { font-size:.75rem; }
}
@media (max-width:540px) {
 .fh-v2-related .fh-v2-grid--three { grid-template-columns:1fr; gap:17px; }
 .fh-v2-related .fh-event-card__media { aspect-ratio:16/9; }
 .fh-v2-related .fh-event-card__body { padding:16px 17px; }
 .fh-v2-related .fh-event-card__title { font-size:1.05rem; }
}
@media (prefers-reduced-motion:reduce) {
 .fh-header-cta,.fh-site-header,.fh-menu-toggle>span { transition:none!important; }
}


/* =====================================================================
   FERIASHOY 2.0.2 - AJUSTES DEFINITIVOS DE TARJETAS / CABECERA / FOOTER
   La presentación se corrige en el tema, sin modificar datos de eventos.
   ===================================================================== */

/* Cabecera: sin barra promocional, navegación con más presencia. */
.fh-site-header .fh-topbar { display:none !important; }
.fh-site-header .fh-header-inner { min-height:83px; }
.fh-site-header .fh-menu a { font-size:1.025rem; font-weight:760; letter-spacing:-.01em; }
.fh-site-header .fh-header-cta { font-size:.96rem; }

/* Evitar que carteles de muy distinta proporción deformen las tarjetas.
   El fondo es neutro y la imagen se centra COMPLETA dentro de un marco fijo.
   No hay capas borrosas ni imagen duplicada en la parte inferior. */
.fh-v2-grid .fh-event-card,
.fh-event-grid .fh-event-card { min-width:0; min-height:0; overflow:hidden; }
.fh-v2-grid .fh-event-card__media,
.fh-event-grid .fh-event-card__media {
    position:relative !important;
    display:block !important;
    height:230px !important;
    min-height:230px !important;
    max-height:230px !important;
    width:100% !important;
    aspect-ratio:auto !important;
    flex:none !important;
    overflow:hidden !important;
    background:linear-gradient(145deg,#f2f6f6 0%,#e8eeef 100%) !important;
    isolation:isolate;
}
.fh-v2-grid .fh-event-card__media::before,
.fh-v2-grid .fh-event-card__media::after,
.fh-event-grid .fh-event-card__media::before,
.fh-event-grid .fh-event-card__media::after { content:none !important; display:none !important; }
.fh-v2-grid .fh-event-card__art,
.fh-event-grid .fh-event-card__art {
    position:absolute !important;
    inset:0 !important;
    display:grid !important;
    place-items:center !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    overflow:hidden !important;
    padding:11px !important;
    box-sizing:border-box !important;
}
.fh-v2-grid .fh-event-card__art img,
.fh-event-grid .fh-event-card__art img {
    position:static !important;
    display:block !important;
    margin:auto !important;
    inset:auto !important;
    width:100% !important;
    height:100% !important;
    max-width:100% !important;
    max-height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    object-fit:contain !important;
    object-position:center center !important;
    border-radius:6px;
    box-shadow:0 5px 16px rgba(22,37,47,.10);
    transform:none !important;
    filter:none !important;
}
.fh-v2-grid .fh-event-card__art picture,
.fh-event-grid .fh-event-card__art picture { display:block; width:100%; height:100%; min-height:0; }
.fh-v2-grid .fh-event-card__placeholder,
.fh-event-grid .fh-event-card__placeholder { margin:auto; font-size:3rem; }
.fh-v2-grid .fh-event-card__body,
.fh-event-grid .fh-event-card__body { min-height:165px; }
.fh-v2-grid .fh-event-card__title,
.fh-event-grid .fh-event-card__title { min-height:0; }
.fh-v2-related .fh-event-card { min-height:0; }
.fh-v2-related .fh-v2-card-date { top:12px; left:12px; }

/* Footer blanco y logo original en color (se anula la inversión del CSS base). */
.fh-site-footer {
    background:#fff !important;
    color:#22364c !important;
    border-top:1px solid #e4ebf0;
}
.fh-site-footer .fh-brand-image,
.fh-site-footer .custom-logo {
    display:block;
    width:auto;
    max-width:190px;
    height:68px;
    max-height:68px;
    object-fit:contain;
    filter:none !important;
    opacity:1 !important;
}
.fh-site-footer p { color:#5f6f82; line-height:1.65; }
.fh-site-footer h2 { color:#17283d !important; font-size:1rem; letter-spacing:.035em; }
.fh-site-footer li { margin:10px 0; }
.fh-site-footer a { color:#42566d !important; }
.fh-site-footer a:hover { color:#008f89 !important; }

@media (max-width:1120px) {
    .fh-site-header .fh-menu a { font-size:.97rem; }
}
@media (max-width:930px) {
    .fh-site-header .fh-header-inner { min-height:73px; }
    .fh-site-header .fh-menu a { font-size:1.02rem; }
}
@media (max-width:640px) {
    .fh-site-header .fh-header-inner { min-height:69px; }
    .fh-v2-grid .fh-event-card__media,
    .fh-event-grid .fh-event-card__media {
        height:180px !important;
        min-height:180px !important;
        max-height:180px !important;
    }
    .fh-v2-grid .fh-event-card__art,
    .fh-event-grid .fh-event-card__art { padding:8px !important; }
    .fh-v2-related .fh-v2-grid--three { grid-template-columns:1fr; }
    .fh-v2-related .fh-event-card__media {
        height:235px !important;
        min-height:235px !important;
        max-height:235px !important;
    }
    .fh-site-footer .fh-brand-image,
    .fh-site-footer .custom-logo { height:62px; max-height:62px; }
}


/* ========================================================================
   FeriasHoy 2.0.4 — TARJETAS RELACIONADAS AISLADAS Y PROVINCIAS CON FOTO
   Clases nuevas para evitar reglas antiguas que desplazaban los carteles.
   ======================================================================== */
.fh-v2-related .fh-related-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
    gap:20px;
}
.fh-related-card {
    display:flex; flex-direction:column; min-width:0; overflow:hidden;
    background:#fff; border:1px solid #e5ebef; border-radius:18px;
    box-shadow:0 8px 25px rgba(19,37,53,.055);
    transition:transform .18s ease, box-shadow .18s ease;
}
.fh-related-card:hover { transform:translateY(-4px); box-shadow:0 16px 34px rgba(17,36,54,.13); }
.fh-related-card__media {
    display:flex; justify-content:center; align-items:center;
    position:relative; overflow:hidden; isolation:isolate;
    flex:none; width:100%; height:235px; min-height:0;
    background:#f2f5f6;
}
/* No border/margin collapse, pseudo backgrounds or bottom-aligned thumbnails. */
.fh-related-card__media::before,.fh-related-card__media::after { content:none; }
.fh-related-card__media > img.fh-related-card__image {
    position:static !important; display:block !important;
    margin:0 auto !important; padding:0 !important;
    flex:0 1 auto; width:100% !important; height:100% !important;
    max-width:100% !important; max-height:100% !important;
    min-width:0; min-height:0;
    object-fit:contain !important; object-position:center center !important;
    border:0; border-radius:0; transform:none !important; filter:none !important;
}
.fh-related-card__empty { font-size:3rem; }
.fh-related-card__date { position:absolute; top:12px; left:12px; z-index:2;
    display:grid; place-items:center; padding:5px 8px; min-width:48px; min-height:51px;
    background:#f12d54; color:#fff; border-radius:9px; box-shadow:0 6px 18px rgba(0,0,0,.14); line-height:1; }
.fh-related-card__date strong { font-size:1.09rem; font-weight:900; }
.fh-related-card__date small { display:block; font-size:.63rem; font-weight:850; margin-top:4px; }
.fh-related-card__body { display:flex; flex:1 1 auto; flex-direction:column; padding:17px 20px 19px; }
.fh-related-card__category { align-self:flex-start; font-size:.73rem; font-weight:800; color:#006f70;
    padding:5px 9px; background:#e8f5f3; border-radius:99px; }
.fh-related-card__title { margin:12px 0 11px; font-size:1.09rem; line-height:1.28; font-weight:850; letter-spacing:-.027em; }
.fh-related-card__title a { color:#16283c; text-decoration:none; }
.fh-related-card__title a:hover { color:#007d7a; }
.fh-related-card__meta { color:#647387; font-size:.82rem; line-height:1.5; margin:3px 0; overflow-wrap:anywhere; }
.fh-related-card__link { display:inline-flex; margin-top:auto; padding-top:18px;
    color:#008f89; text-decoration:none; font-size:.84rem; font-weight:850; }
.fh-related-card__link:hover { color:#006d68; }
/* Province image cards: real photographs, smooth overlay and legible titles. */
.fh-v2-province-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.fh-v2-province { display:block; min-height:205px; padding:0; position:relative; isolation:isolate;
    background:#22495a; border-radius:19px; overflow:hidden; box-shadow:0 10px 24px rgba(22,42,62,.11); }
.fh-v2-province--2 { background:#4a5367; }
.fh-v2-province .fh-v2-province-photo { display:block; position:absolute;
    z-index:0; inset:0; width:100%; height:100%; max-width:none;
    object-fit:cover; object-position:center 44%;
    filter:none; transform:scale(1); transition:transform .35s ease; }
.fh-v2-province:hover .fh-v2-province-photo { transform:scale(1.045); }
.fh-v2-province::before { content:'' !important; display:block !important; position:absolute !important; z-index:1 !important;
    inset:0 !important; background:linear-gradient(90deg,rgba(9,24,39,.83),rgba(9,24,39,.38) 65%,rgba(9,24,39,.16)) !important; }
.fh-v2-province-info { position:absolute; z-index:2; left:24px; right:15px; bottom:23px; }
.fh-v2-province-info strong { color:#fff; font-size:1.45rem; font-weight:850; text-shadow:0 2px 10px rgba(0,0,0,.3); }
.fh-v2-province-info small { display:block; margin-top:7px; color:#edf8fb; font-size:.9rem; font-weight:700; opacity:1; }
.fh-v2-province-art { display:none; }
@media (max-width:930px) { .fh-v2-related .fh-related-grid { gap:12px; }
    .fh-related-card__media { height:210px; }
    .fh-related-card__body { padding:14px; }
}
@media (max-width:680px) {
    .fh-v2-related .fh-related-grid { grid-template-columns:1fr; gap:18px; }
    .fh-related-card__media { height:250px; }
    .fh-related-card__title { font-size:1.08rem; }
    .fh-v2-province-grid { grid-template-columns:1fr; gap:14px; }
    .fh-v2-province { min-height:190px; }
}
@media (prefers-reduced-motion:reduce) {
    .fh-related-card,.fh-v2-province-photo { transition:none!important; }
}

/* FeriasHoy 2.0.5 — mapa integrado también con dirección sin coordenadas. */
.fh-v2-map-section .fh-v2-map-address { margin:0 0 16px; line-height:1.6; }
.fh-v2-map-section .fh-v2-map-frame { min-height:315px; border:1px solid #e3eaf0; box-shadow:0 12px 30px rgba(21,44,63,.06); }
.fh-v2-map-section .fh-v2-map-frame iframe { display:block; width:100%; min-height:315px; }
.fh-v2-map-note { font-size:.76rem!important; line-height:1.5; margin:10px 0 0; }
.fh-v2-map-section .fh-v2-map-more { margin-top:14px; }
@media (max-width:640px) {
    .fh-v2-map-section .fh-v2-map-frame { min-height:250px; }
    .fh-v2-map-section .fh-v2-map-frame iframe { min-height:250px; height:250px; }
}

/* FeriasHoy 2.0.7 — mapa debajo del texto editorial, en columna principal. */
.fh-v2-detail-main .fh-v2-map-section--below-description {
    max-width:100%;
    margin:14px 0 30px;
    padding:22px 24px 24px;
    border:1px solid #e5edf1;
    border-radius:18px;
    background:#f8fafb;
    box-shadow:0 8px 26px rgba(17,43,63,.035);
}
.fh-v2-map-section--below-description h2 { margin-bottom:11px; }
.fh-v2-map-section--below-description .fh-v2-map-address { margin-bottom:16px; }
.fh-v2-map-section--below-description .fh-v2-map-frame { border-radius:13px; }
.fh-v2-map-section--below-description .fh-v2-map-frame iframe { height:300px; }
.fh-v2-map-section--below-description .fh-v2-map-more { display:inline-flex; margin-top:14px; }
@media (max-width:640px) {
    .fh-v2-detail-main .fh-v2-map-section--below-description {
        padding:16px;
        margin:10px 0 22px;
        border-radius:14px;
    }
    .fh-v2-map-section--below-description .fh-v2-map-frame iframe { height:245px; }
}

/* FeriasHoy 2.0.8 — navegación SEO después del mapa y buscador sin icono en el botón. */
.fh-v2-detail-main > .fh-core-event-links {
    margin: 0 0 28px;
    padding-top: 22px;
    border-top: 1px solid #e5edf1;
}
.fh-v2-detail-main > .fh-core-event-links h2 {
    margin: 0 0 14px;
    font-size: 1.06rem;
    color: var(--fh-ink);
}
/* El texto Buscar debe permanecer visible también en móviles estrechos. */
@media (max-width: 420px) {
    .fh-v2-search button {
        min-width: 90px;
        padding: 0 12px;
        font-size: .91rem;
    }
}
