/* CalabriaVera — final cross-device usability layer. Bundled last at build time. */
:root{--cv-tap-target:44px}

/* Preserve the current visual identity while making controls comfortably usable. */
@media(pointer:coarse){
  .cv-header .cv-icon-action,.cv-header .menu-button,.cv-header .header-language select,.cv-map-toolbar .button,.cv-map-aside-head button,.activity-item>.button,.text-link[role="button"]{min-width:var(--cv-tap-target)!important;min-height:var(--cv-tap-target)!important}
  .cv-header .cv-icon-action,.cv-header .menu-button,.cv-map-toolbar .button,.cv-map-aside-head button{display:inline-grid!important;place-items:center!important}
  .cv-heart{display:grid!important;place-items:center!important}
}

/* Tablet: keep cards balanced and avoid controls becoming cramped. */
@media(min-width:901px) and (max-width:1180px){
  body[data-page="catalog"] .catalog-layout>.filter-panel{display:block!important;grid-template-columns:1fr!important;width:100%!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel #filters{grid-template-columns:repeat(3,minmax(0,1fr))!important;width:100%!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel .filter-actions{grid-column:1/-1!important;grid-template-columns:repeat(2,minmax(0,220px))!important}
  body[data-page="map"] .cv-map-toolbar .button{min-height:40px!important}
}

@media(min-width:761px) and (max-width:900px){
  body[data-page="catalog"] .catalog-layout>.filter-panel{display:block!important;grid-template-columns:1fr!important;width:100%!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel #filters{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel .filter-actions{grid-column:1/-1!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel input:not([type="checkbox"]),body[data-page="catalog"] .catalog-layout>.filter-panel select{min-height:44px!important;font-size:16px!important}
  body[data-page="map"] .cv-map-toolbar .button{min-height:44px!important}
}

/* Phones: one readable column, full-width fields and consistent touch targets. */
@media(max-width:760px){
  body[data-page="catalog"] .catalog-layout>.filter-panel{display:block!important;grid-template-columns:1fr!important;width:100%!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel #filters{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel label,body[data-page="catalog"] .catalog-layout>.filter-panel input,body[data-page="catalog"] .catalog-layout>.filter-panel select{width:100%!important;min-width:0!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel label{font-size:13px!important;line-height:1.35!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel input:not([type="checkbox"]),body[data-page="catalog"] .catalog-layout>.filter-panel select{min-height:46px!important;font-size:16px!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel label:has(input[type="checkbox"]){display:flex!important;align-items:center!important;min-height:44px!important}
  body[data-page="catalog"] .catalog-layout>.filter-panel input[type="checkbox"]{width:22px!important;height:22px!important;min-height:22px!important;flex:0 0 22px!important}
  body[data-page="catalog"] .filter-actions{display:grid!important;grid-template-columns:1fr!important;width:100%!important}
  body[data-page="catalog"] .filter-actions .button{min-height:46px!important}

  body[data-page="map"] .cv-map-toolbar{gap:8px!important}
  body[data-page="map"] .cv-map-toolbar .button,body[data-page="map"] .cv-map-aside-head button{min-height:44px!important;font-size:12px!important;padding:8px 12px!important}
  body[data-page="map"] .map-layout .filter-panel label{font-size:13px!important;line-height:1.35!important}
  body[data-page="map"] .map-layout .filter-panel input:not([type="checkbox"]),body[data-page="map"] .map-layout .filter-panel select,body[data-page="map"] .map-layout .filter-panel .button{min-height:46px!important;font-size:16px!important}
  body[data-page="map"] .map-layout .filter-panel label:has(input[type="checkbox"]){display:flex!important;align-items:center!important;min-height:44px!important}
  body[data-page="map"] .map-layout .filter-panel input[type="checkbox"]{width:22px!important;height:22px!important;min-height:22px!important;flex:0 0 22px!important}
  body[data-page="map"] .cv-map-result__meta,body[data-page="map"] .cv-map-result__foot{font-size:12px!important}

  .cv-header .primary-mobile:not([hidden]){box-shadow:0 18px 36px rgba(0,25,44,.24)!important}
  .footer a{display:inline-flex;align-items:center;min-height:36px}
}

@media(max-width:390px){
  .cv-header .cv-icon-action,.cv-header .menu-button{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
  .cv-header .header-language select{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important}
}

@media(max-width:560px){
  body[data-page="map"] .cv-map-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;height:auto!important;min-height:0!important;align-items:stretch!important;padding:8px!important}
  body[data-page="map"] .cv-map-toolbar #map-count{grid-column:1/-1!important;max-width:none!important}
  body[data-page="map"] .cv-map-toolbar .button{width:100%!important;min-width:0!important}
}

@media(max-width:340px){
  .cv-header .brand{max-width:74px!important}
  .cv-header .brand-logo{width:72px!important}
  .cv-header .cv-icon-action,.cv-header .menu-button{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important}
  .cv-header .header-language select{width:38px!important;min-width:38px!important;height:42px!important;min-height:42px!important}
}

/* Low-height landscape phones must keep the main actions reachable. */
@media(max-height:520px) and (orientation:landscape){
  body[data-page="home"] .cv-home-hero{min-height:390px!important}
  body[data-page="home"] .cv-home-hero__content{padding-block:24px 52px!important}
  body[data-page="home"] .cv-home-hero__mark{max-height:88px!important;width:250px!important}
}

/* Mobile navigation guard. */
@media(max-width:1180px){
  .cv-header .primary-mobile:not([hidden]){
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:6px!important;
    position:relative!important;
    z-index:1001!important;
    background:linear-gradient(180deg,var(--cv-navy,#002f55),var(--cv-navy-dark,#002642))!important;
    color:#fff!important;
    border-top:1px solid rgba(255,255,255,.14)!important;
  }
  .cv-header .primary-mobile>a{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:46px!important;
    padding:10px 12px!important;
    font-size:16px!important;
    line-height:1.2!important;
    font-weight:700!important;
    color:#fff!important;
    border-radius:10px!important;
    text-decoration:none!important;
  }
  .cv-header .primary-mobile>a:hover,.cv-header .primary-mobile>a:focus-visible{
    background:rgba(255,255,255,.10)!important;
    color:#fff!important;
  }
  .cv-header .primary-mobile>a[aria-current="page"]{
    color:#fff!important;
    background:rgba(255,255,255,.10)!important;
    box-shadow:inset 4px 0 var(--cv-gold,#ffb000)!important;
  }
  .cv-header .primary-mobile .guest-actions,.cv-header .primary-mobile .account-menu{
    width:100%!important;
    min-width:0!important;
    border-top:1px solid rgba(255,255,255,.14)!important;
  }
  .cv-header .primary-mobile .account-menu summary{
    color:#fff!important;
    background:transparent!important;
    border-color:rgba(255,255,255,.22)!important;
  }
  .cv-header .primary-mobile .account-links{
    width:100%!important;
    min-width:0!important;
    background:rgba(0,25,44,.34)!important;
    border-color:rgba(255,255,255,.14)!important;
    box-shadow:none!important;
  }
  .cv-header .primary-mobile .account-links a,.cv-header .primary-mobile .account-links button{
    width:100%!important;
    max-width:100%!important;
    color:#fff!important;
    white-space:normal!important;
  }
  .cv-header .primary-mobile .account-links a:hover,.cv-header .primary-mobile .account-links button:hover{
    background:rgba(255,255,255,.10)!important;
  }
}

/* Extra-small viewport hardening: keep the header and every main section inside the viewport. */
@media(max-width:560px){
  html,body{max-width:100%!important;overflow-x:clip!important}
  main,section,.container,.cv-header .header-inner,.cv-header .primary-mobile{min-width:0!important;max-width:100%!important}
  .cv-header .header-inner{width:calc(100% - 16px)!important;margin-inline:auto!important}
  .cv-header .header-actions{min-width:0!important;flex:0 0 auto!important;gap:2px!important}
  .cv-header .cv-header-shortcuts{min-width:0!important;flex:0 0 auto!important;gap:0!important}
  .cv-header .primary-mobile:not([hidden]){
    width:calc(100% - 16px)!important;
    margin-inline:auto!important;
    padding:8px 8px max(14px,env(safe-area-inset-bottom))!important;
    max-height:calc(100dvh - 68px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    border-radius:0 0 12px 12px!important;
  }
  .cv-header .primary-mobile>*{min-width:0!important;max-width:100%!important}
}

@media(max-width:360px){
  .cv-header .header-actions{gap:1px!important}
  .cv-header .cv-header-shortcuts{gap:0!important}
  .cv-header .primary-mobile>a{font-size:15px!important;padding:9px 10px!important}
}

/* Stable hamburger: use two pseudo-elements only, never text glyphs. */
@media(max-width:1180px){
  .cv-header .menu-button{
    position:relative!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    padding:0!important;
    border-radius:12px!important;
    font-size:0!important;
    line-height:1!important;
    overflow:hidden!important;
  }
  .cv-header .menu-button::before,.cv-header .menu-button::after{
    content:""!important;
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    display:block!important;
    width:22px!important;
    height:3px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:999px!important;
    background:currentColor!important;
    transform:translate(-50%,-50%)!important;
    transform-origin:center!important;
    transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease!important;
  }
  .cv-header .menu-button::before{box-shadow:0 -7px 0 currentColor,0 7px 0 currentColor!important}
  .cv-header .menu-button::after{opacity:0!important;box-shadow:none!important}
  .cv-header .menu-button[aria-expanded="true"]::before{
    box-shadow:none!important;
    transform:translate(-50%,-50%) rotate(45deg)!important;
  }
  .cv-header .menu-button[aria-expanded="true"]::after{
    opacity:1!important;
    transform:translate(-50%,-50%) rotate(-45deg)!important;
  }
}
