.mobile-menu-toggle, .mobile-navigation { display: none; }
.mobile-menu-toggle { -webkit-tap-highlight-color: transparent; }
.back-to-top { position: fixed; z-index: 40; right: max(20px, env(safe-area-inset-right)); bottom: calc(22px + env(safe-area-inset-bottom)); display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid #f4f0cd66; border-radius: 50%; background: #28758b; color: var(--color-pale); box-shadow: 0 5px 20px #173e4d40; font: 26px/1 Arial, sans-serif; cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .3s, transform .3s, visibility .3s; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.mobile-nav-collapse-area { flex: 1 0 56px; width: 100%; min-height: 56px; border: 0; background: transparent; color: #36606a; font: 13px var(--font-serif); cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .back-to-top { transition: none; } }
@media (max-width: 760px) {
  html.mobile-nav-enabled .site-header .main-nav { display: none; }
  .mobile-menu-toggle:not([hidden]) { display: flex; align-items: center; justify-content: center; gap: 9px; position: fixed; z-index: 40; right: max(20px, env(safe-area-inset-right)); bottom: calc(22px + env(safe-area-inset-bottom)); min-height: 52px; padding: 12px 18px; border: 1px solid #f4f0cd66; border-radius: 28px; background: #28758b; color: var(--color-pale); box-shadow: 0 5px 20px #173e4d40; font: 16px var(--font-serif); cursor: pointer; }
  .mobile-menu-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
  .mobile-navigation[open] { display: flex; justify-content: flex-end; position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: var(--color-pale); overflow: hidden; }
  .mobile-navigation::backdrop { background: #102f3b80; }
  .mobile-nav-panel { display: flex; flex-direction: column; width: min(86vw, 380px); height: 100%; padding: max(24px, env(safe-area-inset-top)) 24px max(28px, env(safe-area-inset-bottom)); background: #28758b; overflow-y: auto; overscroll-behavior: contain; box-shadow: -12px 0 40px #143c4633; transform: translate3d(100%,0,0); }
  .mobile-nav-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .mobile-nav-brand .logo { display: block; width: 140px; }
  .mobile-nav-close { flex: 0 0 44px; height: 44px; padding: 0; border: 1px solid #f4f0cd40; border-radius: 50%; background: transparent; font: 30px/1 Arial, sans-serif; cursor: pointer; }
  .mobile-nav-tools { display: flex; gap: 12px; margin-top: 28px; padding-bottom: 24px; border-bottom: 1px solid #f4f0cd40; }
  .mobile-nav-tools button { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #f4f0cd40; border-radius: 50%; background: transparent; }
  .mobile-nav-tools img { width: auto; height: 20px; }
  .mobile-nav-links { display: flex; flex-direction: column; padding: 16px 0; }
  .mobile-nav-links > * { padding: 15px 4px; border-bottom: 1px solid #f4f0cd25; font: 23px/1.3 var(--font-serif); }
  .mobile-nav-links [aria-disabled="true"] { opacity: .55; }
  .mobile-nav-links a[aria-current="page"] { color: #fff9e9; }
  .mobile-nav-caption { margin-top: auto; padding-top: 28px; font: 13px var(--font-serif); opacity: .65; }
  html.mobile-nav-open { overflow: hidden; }
  @media (prefers-reduced-motion: reduce) { .mobile-nav-panel { animation: none; } }
}

/* Profile-led drawer, using the site's paper, cream and blue palette. */
@media (max-width: 760px) {
  .mobile-nav-panel { padding: max(26px, env(safe-area-inset-top)) 22px max(24px, env(safe-area-inset-bottom)); background: var(--color-paper); color: #36606a; }
  .mobile-nav-top { gap: 8px; }
  .mobile-nav-profile { display: flex; align-items: center; gap: 13px; }
  .mobile-nav-avatar { display: grid; place-items: center; flex: 0 0 52px; height: 52px; border: 3px solid var(--color-cream); border-radius: 50%; background: #83a8aa; overflow: hidden; }
  .mobile-nav-avatar svg { width: 40px; height: 40px; fill: var(--color-cream); }
  .mobile-nav-greeting { font: 11px/1.6 var(--font-sans); color: #727e73; }
  .mobile-nav-profile h2 { font: 400 23px/1.3 var(--font-display); color: #2a505b; }
  .mobile-nav-close { flex-basis: 36px; height: 36px; border-color: #66868a40; font-size: 25px; }
  .mobile-nav-signature { padding: 17px 0 24px; border-bottom: 1px solid #78939040; color: #7d8575; font: 12px/1.6 var(--font-serif); }
  .mobile-nav-section-label { display: flex; justify-content: space-between; margin-top: 23px; color: #8b917e; font: 11px/1.4 var(--font-sans); letter-spacing: 1px; }
  .mobile-nav-links { gap: 5px; padding: 12px 0 22px; border-bottom: 1px solid #78939040; }
  .mobile-nav-links > * { display: flex; align-items: center; gap: 13px; min-height: 46px; padding: 10px 13px; border: 0; border-radius: 10px; font: 16px/1.4 var(--font-serif); }
  .mobile-nav-links svg { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
  .mobile-nav-links a[aria-current="page"] { background: var(--color-blue); color: var(--color-cream); box-shadow: 0 4px 10px #35829a22; }
  .mobile-nav-links a:hover { background: #35829a18; }
  .mobile-nav-links a[aria-current="page"]:hover { background: #28758b; }
  .mobile-nav-tools { display: flex; flex-direction: column; gap: 4px; margin-top: 12px; padding: 10px; border: 1px solid #ffffff80; border-radius: 13px; background: var(--color-cream); box-shadow: 0 4px 14px #5265510a; }
  .mobile-nav-tools button { display: flex; align-items: center; gap: 12px; width: 100%; height: 48px; padding: 8px 10px; border: 0; border-radius: 8px; text-align: left; font: 15px var(--font-serif); }
  .mobile-nav-tools img { width: 30px; height: 30px; padding: 7px; object-fit: contain; border-radius: 9px; background: var(--color-blue); }
  .mobile-nav-tools small { margin-left: auto; font: 10px var(--font-sans); color: #9d9e89; }
  .mobile-nav-footer { margin-top: auto; padding-top: 28px; }
  .mobile-nav-brand { display: inline-block; padding: 11px 14px; border-radius: 8px; background: var(--color-blue); }
  .mobile-nav-brand .logo { width: 112px; }
  .mobile-nav-caption { padding-top: 10px; margin: 0; font-size: 11px; }
}
