/* FitMyCase — interaction polish, accessibility and high-density refinements */
@media (hover: hover) and (pointer: fine) and (min-width: 900px) {
  body.has-custom-cursor, body.has-custom-cursor a, body.has-custom-cursor button { cursor: none; }
  .cursor-dot { position: fixed; z-index: 10050; top: 0; left: 0; display: block; width: 10px; height: 10px; border-radius: 50%; background: var(--blue); pointer-events: none; opacity: 0; transform: translate3d(-50%, -50%, 0) scale(.75); transition: width .2s var(--ease-out), height .2s var(--ease-out), background .2s ease, opacity .2s ease, transform .12s ease; mix-blend-mode: multiply; }
  .cursor-dot.is-visible { opacity: .72; }
  .cursor-dot.is-hover { width: 32px; height: 32px; background: rgba(10,132,255,.20); transform: translate3d(-50%, -50%, 0) scale(1); }
}

@media (min-width: 1280px) {
  .hero h1 { max-width: 920px; }
  .hero-description { max-width: 610px; }
  .section-shell { width: min(calc(100% - 80px), var(--page-width)); }
  .site-footer { width: min(calc(100% - 80px), var(--page-width)); }
  .guide-card { min-height: 375px; }
}

@media (min-width: 1640px) {
  :root { --page-width: 1320px; }
  .hero h1 { font-size: 84px; }
  .brand-network { padding-top: 130px; }
}

.site-header.is-scrolled .brand-mark { transform: scale(.92); }
.brand-mark { transition: transform .35s var(--ease-out); }
.page.page-enter { animation: page-in .42s var(--ease-out) both; }

.hero.is-searching .hero-search { border-color: rgba(10,132,255,.58); }
.hero.is-searching .hero-kicker { color: var(--blue); }
.hero-search-input.placeholder-transition::placeholder { opacity: 0; }

.process-step.is-revealed:not(:last-child)::before { animation: process-draw .8s var(--ease-out) both; }
.process-step.is-revealed .process-number { box-shadow: 0 8px 20px rgba(10,132,255,.09); }
.model-card:nth-child(2) { transition-delay: 45ms; }
.model-card:nth-child(3) { transition-delay: 90ms; }
.model-card:nth-child(4) { transition-delay: 135ms; }
.guide-card:nth-child(2) { transition-delay: 80ms; }
.guide-card:nth-child(3) { transition-delay: 140ms; }

.fullscreen-menu.is-open .menu-item { animation: menu-item-in .45s var(--ease-out) both; }
.fullscreen-menu.is-open .menu-group:nth-child(1) .menu-item:nth-child(1) { animation-delay: .08s; }
.fullscreen-menu.is-open .menu-group:nth-child(1) .menu-item:nth-child(2) { animation-delay: .12s; }
.fullscreen-menu.is-open .menu-group:nth-child(1) .menu-item:nth-child(3) { animation-delay: .16s; }
.fullscreen-menu.is-open .menu-group:nth-child(1) .menu-item:nth-child(4) { animation-delay: .20s; }
.fullscreen-menu.is-open .menu-group:nth-child(2) .menu-item:nth-child(1) { animation-delay: .16s; }
.fullscreen-menu.is-open .menu-group:nth-child(2) .menu-item:nth-child(2) { animation-delay: .20s; }
.fullscreen-menu.is-open .menu-group:nth-child(2) .menu-item:nth-child(3) { animation-delay: .24s; }
.fullscreen-menu.is-open .menu-group:nth-child(2) .menu-item:nth-child(4) { animation-delay: .28s; }
.fullscreen-menu.is-open .menu-group:nth-child(2) .menu-item:nth-child(5) { animation-delay: .32s; }
.fullscreen-menu.is-open .menu-group:nth-child(3) .menu-item:nth-child(1) { animation-delay: .24s; }
.fullscreen-menu.is-open .menu-group:nth-child(3) .menu-item:nth-child(2) { animation-delay: .28s; }
.fullscreen-menu.is-open .menu-group:nth-child(3) .menu-item:nth-child(3) { animation-delay: .32s; }
.fullscreen-menu.is-open .menu-group:nth-child(3) .menu-item:nth-child(4) { animation-delay: .36s; }
.fullscreen-menu.is-open .menu-group:nth-child(3) .menu-item:nth-child(5) { animation-delay: .40s; }

.latest-carousel { -ms-overflow-style: none; }
.latest-carousel:focus-visible { outline: 3px solid rgba(10,132,255,.25); outline-offset: 4px; }
.tab-scroll { scrollbar-color: rgba(10,132,255,.22) transparent; }
.tab-scroll::-webkit-scrollbar { height: 3px; }
.tab-scroll::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(10,132,255,.22); }

.site-popup-overlay.topbar { align-items: start; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; pointer-events: none; }
.site-popup-overlay.topbar .site-popup-card { width: min(600px, calc(100% - 30px)); margin-top: 20px; padding: 18px 57px 18px 20px; border-radius: 18px; text-align: left; pointer-events: auto; }
.site-popup-overlay.topbar .site-popup-icon { position: absolute; width: 5px; height: 58%; margin: 0; top: 21%; left: 0; border: 0; border-radius: 0 6px 6px 0; background: var(--blue); }
.site-popup-overlay.topbar .site-popup-card h2 { font-size: 17px; }
.site-popup-overlay.topbar .site-popup-card p { font-size: 11px; }
.site-popup-overlay.topbar .site-popup-btn { width: auto; min-height: 34px; margin-top: 13px; padding: 7px 11px; }
.site-popup-overlay.bottomsheet { align-items: end; }
.site-popup-overlay.bottomsheet .site-popup-card { width: min(600px, 100%); border-radius: 22px 22px 0 0; }
.site-popup-overlay.floating { align-items: start; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; pointer-events: none; }
.site-popup-overlay.floating .site-popup-card { width: min(380px, calc(100% - 28px)); margin-top: 98px; margin-left: auto; text-align: left; pointer-events: auto; }

@keyframes page-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes process-draw { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes menu-item-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

@media (max-width: 640px) {
  .site-popup-overlay.topbar .site-popup-card { margin-top: 9px; }
  .site-popup-overlay.floating .site-popup-card { margin-top: 76px; }
}

@media (prefers-contrast: more) {
  :root { --line: #BAC1CB; --line-strong: #8F98A8; --muted: #4B5563; }
  .hero-search, .search-workspace, .guide-card, .model-card { border-color: var(--line-strong); }
}

@media print {
  .site-header, .fullscreen-menu, .scroll-cue, .carousel-controls, .cta-search-button, #heroCanvas, .hero-fallback-art, .hero-grain, #toast { display: none !important; }
  body { color: #000; background: #fff; }
  .hero { min-height: auto; padding: 80px 0 30px; }
  .hero-content { padding: 0; }
  .page:not(.active) { display: none !important; }
}
