/* Shared phone and standalone-app layer; loaded after page styles. */
@font-face { font-family: 'Wispdock Sans'; src: url('/fonts/plex-sans.woff2') format('woff2'); font-display: optional; font-weight: 100 900; }
@font-face { font-family: 'Wispdock Sans'; src: url('/fonts/plex-sans-ext.woff2') format('woff2'); font-display: optional; font-weight: 100 900; unicode-range: U+0100-024F; }
:root { --font-b: 'Wispdock Sans', system-ui, sans-serif; --font-h: 'Wispdock Sans', system-ui, sans-serif; --wd-font-body: 'Wispdock Sans', system-ui, sans-serif; --wd-font-heading: 'Wispdock Sans', system-ui, sans-serif; }
html { scroll-padding-top: 88px; -webkit-text-size-adjust: 100%; }
body { font-size: 16px; overscroll-behavior-x: none; }
*, *::before, *::after { box-sizing: border-box; }
img, video, svg, iframe { max-width: 100%; }
img { height: auto; }
main, section, article, .wrap, form, fieldset { min-width: 0; }
p, li, dd, h1, h2, h3, a { overflow-wrap: anywhere; }
pre { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
code { overflow-wrap: anywhere; }
pre code { overflow-wrap: normal; }
.table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
input, select, textarea { font-size: 16px !important; max-width: 100%; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]), select, button, summary, .btn { min-height: 44px; }
a, button, input, select, textarea, summary { -webkit-tap-highlight-color: rgba(169,155,255,.2); touch-action: manipulation; }
a:focus-visible, button:focus-visible, summary:focus-visible, .table-scroll:focus-visible { outline: 3px solid #A99BFF; outline-offset: 3px; }
.mobile-dock { display: none; }
@media (max-width: 767px) {
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
  .wrap { max-width: 100%; padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
  .site-header { position: sticky; top: 0; z-index: 90; }
  .navbar { min-height: 60px; }
  .brand { min-height: 44px; display: inline-flex; align-items: center; }
  .mobile-dock { position: fixed; z-index: 100; inset: auto 0 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 4px; padding: 8px max(8px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); background: #17153A; border-top: 1px solid #463F8A; }
  .mobile-dock a { display: flex; justify-content: center; align-items: center; min-height: 48px; font-size: 14px; color: #F6F5FF; text-decoration: none; border-radius: 10px; transition: transform .15s ease, opacity .15s ease; }
  .mobile-dock a[aria-current] { background: #6C5CE7; }
  .mobile-dock a:active { transform: scale(.96); opacity: .8; }
  .nav a, .nav button, .site-footer a, .footer-socials button, .footer-socials a, .lang-switch a, .lang-switch button { min-height: 44px; display: inline-flex; align-items: center; }
  main p { font-size: max(1em, 16px); max-width: 70ch; }
  main > *, .wrap > *, fieldset { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
/* Only compositor-friendly properties animate, including older page rules. */
*, *::before, *::after { transition-property: transform, opacity !important; }
@media (max-width: 767px) {
  .site-header .navbar { min-height: 60px; padding-top: 4px; padding-bottom: 4px; }
  .seg label, label[for], [role=tab], .pagination a { min-height: 44px; }
}
@media (max-width: 767px) {
  main a, .notice-strip a, .lang-switcher a, .lang-switcher button { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; max-width: 100%; }
  .nav.is-open, .nav[aria-expanded=true] { max-height: calc(100dvh - 148px - env(safe-area-inset-bottom)); overflow-y: auto; }
}

@media (max-width:760px) {
  .site-footer.footer-expanded .footer-intro { text-align:left; }
  .site-footer.footer-expanded .footer-intro .footer-socials { justify-content:flex-start; }
  .site-footer.footer-expanded .footer-intro .footer-socials a { width:44px; height:44px; min-height:44px; flex-basis:44px; }
  .site-footer.footer-expanded .footer-contact dl { grid-template-columns:72px minmax(0,1fr); row-gap:0; align-items:baseline; }
  .site-footer.footer-expanded .footer-contact dd a { min-height:44px; display:inline-flex; align-items:center; max-width:100%; overflow-wrap:anywhere; }
  .site-footer.footer-expanded .footer-contact dt { align-self:start; padding-top:11px; }
  .site-footer.footer-expanded .footer-contact dd { min-width:0; }
  .site-footer.footer-expanded .footer-contact dd a { display:flex; width:fit-content; }
  .site-footer.footer-expanded .footer-intro .contact-phone__whatsapp { min-height:44px; }
  .site-footer.footer-expanded .footer-intro .footer-small { gap:0 14px; }
}

/* Preserve contact-grid alignment while keeping comfortable touch targets. */
.site-footer.footer-expanded .footer-intro :is(.footer-socials a,.contact-phone__whatsapp) { transition-property:color,background,border-color,box-shadow,transform !important; }
@media (max-width:760px) {
  .site-footer.footer-expanded .footer-intro { text-align:left; }
  .site-footer.footer-expanded .footer-intro .footer-socials { justify-content:flex-start; }
  .site-footer.footer-expanded .footer-intro .footer-socials a { width:44px; height:44px; min-height:44px; }
  .site-footer.footer-expanded .footer-intro .footer-contact dl { grid-template-columns:72px minmax(0,1fr); align-items:center; gap:0 10px; }
  .site-footer.footer-expanded .footer-intro .footer-contact dd a { display:inline-flex; align-items:center; min-height:44px; max-width:100%; }
  .site-footer.footer-expanded .footer-intro .footer-contact dd { min-width:0; }
  .site-footer.footer-expanded .footer-intro .contact-phone__location { margin:0 0 10px; }
  .site-footer.footer-expanded .footer-intro .contact-phone__whatsapp { min-height:44px; height:44px; }
}
@media (max-width:760px) {
  .site-footer.footer-expanded .footer-intro .footer-socials a { flex-basis:44px; }
}
