/* --- LPM Mobile Fixes (idempotent) --- */
html { -webkit-text-size-adjust: 100%; }
body { line-height: 1.5; word-break: break-word; overflow-wrap: anywhere; }

.container, .wrap, .section-content {
  max-width: 1100px;
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 40px);
}

:root{
  --fs-base: clamp(14px, 1.6vw, 18px);
  --fs-h1: clamp(26px, 6vw, 42px);
  --fs-h2: clamp(22px, 4.8vw, 32px);
  --fs-h3: clamp(18px, 3.6vw, 24px);
}
body{ font-size: var(--fs-base); }
h1{ font-size: var(--fs-h1); line-height: 1.1; }
h2{ font-size: var(--fs-h2); line-height: 1.2; }
h3{ font-size: var(--fs-h3); line-height: 1.25; }

img, video { max-width: 100%; height: auto; display: block; }
.hero img { inline-size: 100%; object-fit: cover; }

.grid-2, .cols-2 { display: grid; gap: clamp(16px, 3vw, 28px); grid-template-columns: 1fr; }
.grid-3, .cols-3 { display: grid; gap: clamp(16px, 3vw, 28px); grid-template-columns: 1fr; }
@media (min-width:768px){
  .grid-2, .cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .grid-3, .cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
}

.table-wrapper, .scroll-x { overflow-x:auto; -webkit-overflow-scrolling:touch; }

button, .btn, a.btn {
  min-height:44px; padding:10px 16px; line-height:1.2; touch-action:manipulation;
}

header, .header { position: sticky; top: 0; z-index: 50; }
.nav { display:flex; gap:16px; align-items:center; }
.nav-items { display:none; }
.nav-toggle { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; }
@media (min-width:1024px){
  .nav-items { display:flex !important; }
  .nav-toggle { display:none; }
}
header.open .nav-items, .header.open .nav-items {
  display:grid; gap:12px; padding:12px 0;
}

.full-hero, .hero-full, .hero {
  min-height: min(90svh, 700px);
  padding-block: clamp(32px, 10vw, 96px);
}

input, select, textarea { width:100%; max-width:100%; }
.hide-overflow { overflow:hidden; }
.px { padding-inline: clamp(16px, 4vw, 40px); }
.pb-safe { padding-bottom: env(safe-area-inset-bottom); }
/* --- End LPM Mobile Fixes --- */
/* === LPM Header Logo Fix v1 (mobile only) === */
@media (max-width: 1023px){
  header .inner, .header .inner, header .container, .header .container, header .wrap, .header .wrap {
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .brand, .logo, .site-logo, .site-brand {
    flex:0 0 auto;
    text-align:left !important;
    margin:0 !important;
  }
  .brand a, .logo a, .site-logo a, .site-brand a {
    display:inline-flex;
    align-items:center;
    margin:0 !important;
  }
  header img, .header img { margin:0 !important; }
  .nav-toggle { margin-left:auto; }
  .nav-items { flex:0 0 auto; }
  header, .header { text-align:initial; }
  /* Optional size constraint to avoid tall logo overflow */
  header .brand img, .header .brand img, header .logo img, .header .logo img {
    max-height:40px;
    height:auto;
    width:auto;
  }
}
/* === /LPM Header Logo Fix v1 === */