/* FastIDPhoto.com site-wide responsive hardening — additive only. */
*,*::before,*::after{box-sizing:border-box}
html{width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%}
body{width:100%;min-width:0;overflow-x:hidden}
img,svg,video,canvas,iframe{max-width:100%;height:auto}
input,select,textarea,button{max-width:100%;font:inherit}
input,select,textarea{min-width:0}
textarea{resize:vertical}
pre,code{max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
button,a{touch-action:manipulation}
/* Prevent long labels/IDs/emails from widening cards. */
h1,h2,h3,h4,h5,h6,p,li,td,th,label,a,span{overflow-wrap:anywhere}
/* Existing Tailwind grids/flex rows become safely shrinkable. */
.grid>*{min-width:0}.flex>*{min-width:0}
/* Mobile navigation is a compact disclosure instead of a wrapped desktop bar. */
.mobile-site-menu{display:none}
.mobile-site-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;min-height:42px;padding:.65rem .9rem;border:1px solid #dbe3ef;border-radius:.8rem;background:#fff;font-weight:800;color:#102044}
.mobile-site-menu summary::-webkit-details-marker{display:none}
.mobile-site-menu summary::after{content:'☰';margin-left:.5rem;font-size:1rem}
.mobile-site-menu[open] summary::after{content:'×'}
.mobile-site-menu nav{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;padding:.65rem 1rem 1rem;border-top:1px solid #e2e8f0;background:#f8fafc}
.mobile-site-menu nav a{display:block;padding:.7rem .75rem;border:1px solid #e2e8f0;border-radius:.7rem;background:#fff;font-size:.9rem;font-weight:700;color:#24324d}
.mobile-site-menu nav a:hover{background:#eff6ff;color:#1d4ed8}
/* Grouped navigation dropdowns prevent horizontal page scrolling. */
.admin-nav{display:flex;align-items:center;flex-wrap:wrap!important;gap:.25rem .45rem;white-space:nowrap}
.admin-nav>a,.admin-nav>.nav-dropdown{flex:0 0 auto}
.nav-dropdown{position:relative}
.nav-dropdown>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.35rem;padding:.55rem .7rem;border-radius:.65rem;color:#24324d}
.nav-dropdown>summary::-webkit-details-marker{display:none}
.nav-dropdown>summary::after{content:'⌄';font-size:.8em;transition:transform .15s ease}
.nav-dropdown[open]>summary::after{transform:rotate(180deg)}
.nav-dropdown>summary:hover{background:#eff6ff;color:#1d4ed8}
.nav-dropdown-menu{position:absolute;top:calc(100% + .35rem);left:0;z-index:100;min-width:190px;padding:.4rem;background:#fff;border:1px solid #dbe3ef;border-radius:.85rem;box-shadow:0 15px 35px rgba(15,23,42,.15);display:grid;gap:.15rem}
.nav-dropdown-menu-right{left:auto;right:0}
.nav-dropdown-menu a{display:block;padding:.65rem .75rem;border-radius:.6rem;white-space:nowrap;color:#24324d}
.nav-dropdown-menu a:hover{background:#eff6ff;color:#1d4ed8}
.nav-top-link{padding:.55rem .7rem;border-radius:.65rem;white-space:nowrap;color:#24324d}
.nav-top-link:hover{background:#f1f5f9;color:#1d4ed8}
.admin-nav-wrap{position:relative}
@media(max-width:767px){.desktop-site-nav,.desktop-account-nav{display:none!important}.admin-nav{overflow:visible;white-space:normal}.admin-nav>.nav-dropdown{position:static}.admin-nav>.nav-dropdown .nav-dropdown-menu{position:absolute;left:.75rem;right:.75rem;top:calc(100% + .2rem);min-width:0;grid-template-columns:1fr 1fr;max-height:70vh;overflow:auto}.admin-nav-wrap{z-index:60}}
/* Buttons and form rows can stack on narrow screens without changing form actions. */
@media (max-width: 767px){
  .brand-logo{width:clamp(155px,52vw,220px)}
  .footer-logo{max-width:190px;height:auto}
  .payment-methods{width:min(260px,100%)}
  .paypal-logo{width:170px;height:auto}
  header .nav-wrap{gap:.7rem;padding-top:.7rem;padding-bottom:.7rem}
  header:not(.admin-nav) nav.flex-1{display:none}
  header .nav-wrap>div:last-child{margin-left:auto}
  header .nav-wrap>div:last-child>a:not(.bg-blue-600):not(.bg-slate-900){display:none}
  .mobile-site-menu{display:block;margin:0;padding:0 .75rem .75rem}
  .mobile-site-menu nav a{min-height:42px;display:flex;align-items:center}
  main{max-width:100%;overflow-x:hidden}
  .max-w-7xl,.max-w-6xl,.max-w-5xl,.max-w-4xl,.max-w-3xl,.max-w-2xl,.max-w-xl,.max-w-lg,.max-w-md{max-width:100%}
  [class*="rounded-3xl"],[class*="rounded-[2rem]"]{border-radius:1.15rem}
  table{font-size:.82rem}
  th,td{padding:.55rem .5rem}
  .overflow-x-auto{-webkit-overflow-scrolling:touch}
  .sticky{max-width:100%}
}
@media (max-width: 480px){
  .mobile-site-menu nav{grid-template-columns:1fr}
  .brand-logo{width:175px}
  .footer-grid,.grid.sm\:grid-cols-2{grid-template-columns:1fr!important}
  h1.text-5xl,h1.text-4xl{font-size:clamp(2rem,9vw,2.5rem);line-height:1.08}
  h2.text-4xl,h2.text-3xl{font-size:clamp(1.55rem,7vw,2rem);line-height:1.15}
  .px-5{padding-left:1rem!important;padding-right:1rem!important}
  .py-12,.py-14,.py-16{padding-top:2.5rem!important;padding-bottom:2.5rem!important}
  .p-8{padding:1.25rem!important}.p-7{padding:1.15rem!important}.p-6{padding:1rem!important}
  .flex-wrap a,.flex-wrap button{max-width:100%}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* V40 local printing responsive hardening */
@media(max-width:640px){.print-service-grid{grid-template-columns:1fr!important}.print-action{width:100%!important}}

@media(max-width:767px){
.mobile-site-menu .nav-dropdown-menu{position:static;box-shadow:none;border:0;background:transparent;padding:0;margin-top:.25rem;grid-template-columns:1fr;min-width:0}
.mobile-site-menu details>summary{display:flex;align-items:center;justify-content:space-between;padding:.7rem .75rem;border:1px solid #e2e8f0;border-radius:.7rem;background:#fff;font-weight:800;color:#24324d}
.mobile-site-menu details>summary::-webkit-details-marker{display:none}
.mobile-site-menu details>summary::after{content:'+'}
.mobile-site-menu details[open]>summary::after{content:'−'}
.mobile-site-menu details{display:grid;gap:.25rem}
}
