/* QARAR Mobile Final Micro Polish
   Final approved mobile structure micro-polish only.
   Scope: <= 780px only.
   Desktop/tablet rules remain in public.css. This file owns the mobile composition.
   No duplicated forms, IDs, routes, field names, or CMS data.
*/

@media (max-width: 780px) {
  /* 0. Mobile foundation */
  html,
  body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
  }

  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  body {
    font-size: 15px;
    line-height: 1.7;
    background: var(--white, #fff);
    color: var(--ink, #1a1c1b);
    padding-bottom: 76px;
  }

  main,
  #main,
  main > section,
  .hero,
  .section,
  .path-section,
  .developer-section,
  .contact-section,
  .final-cta,
  .site-footer {
    display: block;
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
    min-height: 0;
    max-height: none;
    visibility: visible;
    opacity: 1;
    transform: none;
    overflow: visible;
    content-visibility: visible;
  }

  .container,
  main .container,
  .hero .container,
  .section > .container,
  .form-shell,
  #register .form-shell,
  #developer-register .form-shell,
  .developer-section .form-shell,
  #faq .narrow,
  .narrow {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding-inline: 16px;
  }

  img,
  picture,
  video,
  svg {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
  }

  a,
  button,
  input,
  select,
  textarea {
    font: inherit;
  }

  a,
  button {
    -webkit-tap-highlight-color: transparent;
  }

  .desktop-nav,
  .header-actions > .btn {
    display: none;
  }

  .desktop-hidden.section,
  .desktop-hidden.hero,
  .desktop-hidden.final-cta {
    display: block;
  }

  /* 1. Header */
  .site-header {
    position: sticky;
    top: 0;
    inset-inline: 0;
    z-index: 1000;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid rgba(226,227,225,.9);
    box-shadow: 0 8px 26px rgba(16,18,17,.06);
    backdrop-filter: blur(18px);
  }

  .header-inner {
    min-height: 66px;
    padding-block: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
  }

  .brand,
  .site-header .brand {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    min-width: 0;
  }

  .brand img,
  .site-header .brand img {
    width: auto;
    height: 45px;
    max-width: 121px;
    max-height: 48px;
    object-fit: contain;
  }

  .header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-inline-start: auto;
    gap: 8px;
  }

  .menu-toggle {
    display: inline-flex;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    padding: 10px;
    border-radius: 14px;
    border: 1px solid var(--line, #e2e3e1);
    background: var(--warm, #f9f9f7);
  }

  .menu-toggle span {
    display: block;
    width: 20px;
    height: 2px;
    margin: 3px 0;
    border-radius: 999px;
    background: var(--ink, #1a1c1b);
  }

  /* 2. Mobile menu */
  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 1500;
  }

  .mobile-menu[hidden],
  .mobile-menu[aria-hidden="true"],
  .contact-hub[aria-hidden="true"],
  .assistant-modal[aria-hidden="true"] {
    display: none;
  }

  .mobile-menu.is-open,
  .contact-hub.is-open,
  .assistant-modal.is-open {
    display: block;
    opacity: 1;
    pointer-events: auto;
  }

  .mobile-menu-panel {
    position: absolute;
    inset-block: 0;
    inset-inline: 0;
    width: 100%;
    max-width: none;
    min-width: 0;
    overflow-y: auto;
    padding: 20px;
    background: #101211;
    color: #fff;
    transform: none;
    box-shadow: none;
  }

  .mobile-menu-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 26px;
  }

  .mobile-menu-head img {
    width: auto;
    height: 42px;
    max-width: 116px;
  }

  .mobile-menu-head .icon-button {
    background: rgba(255,255,255,.1);
    color: #fff;
  }

  .mobile-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .mobile-nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 52px;
    padding: 14px 16px;
    border-radius: 16px;
    background: rgba(255,255,255,.07);
    color: rgba(255,255,255,.88);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
  }

  .mobile-nav-strong {
    background: var(--red-2, #ba1b1d);
    color: #fff;
  }

  /* 3. Hero */
  .hero {
    height: auto;
    min-height: 0;
    padding-block: 34px 38px;
    overflow: visible;
    isolation: isolate;
  }

  .hero-media,
  .hero-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .hero-media img {
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
  }

  .hero-overlay {
    background:
      linear-gradient(180deg, rgba(16,18,17,.86) 0%, rgba(16,18,17,.72) 42%, rgba(16,18,17,.94) 100%),
      linear-gradient(270deg, rgba(16,18,17,.82), rgba(16,18,17,.52));
  }

  .hero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding-inline: 16px;
    align-items: start;
    transform: none;
  }

  .hero-copy,
  .hero-card,
  .hero-form {
    position: relative;
    width: 100%;
    max-width: none;
    min-width: 0;
    height: auto;
    visibility: visible;
    opacity: 1;
    transform: none;
  }

  .hero-copy {
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  .eyebrow,
  .campaign {
    margin: 0 0 8px;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.78);
  }

  .hero h1 {
    margin: 6px 0 0;
    max-width: 10ch;
    font-size: clamp(34px, 9vw, 38px);
    line-height: 1.18;
    font-weight: 700;
    letter-spacing: -.035em;
    color: #fff;
  }

  .hero-subtitle {
    margin: 12px 0 0;
    font-size: 16px;
    line-height: 1.55;
    font-weight: 600;
    color: rgba(255,255,255,.94);
  }

  .hero-description {
    margin: 10px 0 0;
    max-width: 100%;
    font-size: 15.5px;
    line-height: 1.7;
    color: rgba(255,255,255,.76);
  }

  .hero-card {
    border-radius: 24px;
    padding: 19px;
    background: rgba(255,255,255,.96);
    color: var(--ink, #1a1c1b);
    box-shadow: 0 18px 56px rgba(0,0,0,.24);
  }

  .hero-card h2 {
    margin: 0 0 8px;
    font-size: 25px;
    line-height: 1.32;
    font-weight: 700;
  }

  .hero-card > p {
    margin: 0 0 16px;
    color: var(--muted, #5f6662);
    font-size: 15px;
    line-height: 1.65;
  }

  .mini-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 15px;
  }

  /* 4. Section rhythm */
  .section {
    padding-block: 46px;
  }

  .section-soft {
    background: var(--soft, #eeeeec);
  }

  .section-dark {
    background: var(--onyx, #101211);
    color: #fff;
  }

  .section-title,
  .section-copy,
  .wide-copy {
    width: 100%;
    max-width: none;
  }

  .section-title {
    margin: 0 0 24px;
  }

  .center-title {
    text-align: right;
  }

  .section-kicker {
    display: block;
    margin: 0 0 10px;
    color: var(--red-2, #ba1b1d);
    font-size: 12.5px;
    line-height: 1.35;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
  }

  .section-title h2,
  .section-copy h2,
  .contact-grid .section-copy h2,
  .faq-section .section-title h2,
  .stats-section .section-title h2,
  #register .form-heading h2,
  #developer-register .form-heading h2 {
    margin: 0;
    font-size: clamp(24px, 6.8vw, 27px);
    line-height: 1.35;
    font-weight: 700;
    letter-spacing: -.018em;
  }

  .section-title p,
  .section-copy p,
  .wide-copy p,
  .final-cta p,
  blockquote,
  .lead {
    font-size: 15.5px;
    line-height: 1.7;
    font-weight: 400;
  }

  .section-title p,
  .section-copy p,
  .wide-copy p,
  .final-cta p {
    margin: 13px 0 0;
    color: var(--muted, #5f6662);
  }

  .section-dark .section-title p,
  .section-dark .section-copy p,
  .section-dark .final-cta p {
    color: rgba(255,255,255,.72);
  }

  .btn {
    width: 100%;
    min-height: 48px;
    padding: 13px 18px;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 600;
    white-space: normal;
    text-align: center;
  }

  /* 5. QARAR idea/about */
  .split-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    width: 100%;
    max-width: 100%;
  }

  .image-frame,
  .image-frame-tall {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 5;
    border-radius: 24px;
    overflow: hidden;
  }

  .image-frame img,
  .image-frame-tall img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .lead {
    margin: 12px 0 0;
    color: var(--muted, #5f6662);
  }

  blockquote {
    margin: 22px 0;
    color: var(--muted, #5f6662);
    font-style: normal;
  }

  .two-notes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding-top: 4px;
  }

  .two-notes article,
  .two-notes > div {
    border: 1px solid var(--line, #e2e3e1);
    border-radius: 18px;
    padding: 14px;
    background: #fff;
  }

  .two-notes h3 {
    margin: 0 0 6px;
    color: var(--red-2, #ba1b1d);
    font-size: 16px;
    line-height: 1.35;
    font-weight: 700;
  }

  .two-notes p {
    margin: 0;
    font-size: 15px;
    line-height: 1.66;
  }

  /* 6. Cards */
  .reason-grid,
  .station-grid,
  .path-grid,
  .contact-grid,
  .contact-cards,
  .footer-grid,
  .field-grid,
  #developer-register .field-grid,
  .gallery-grid,
  .two-notes {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .reason-grid,
  .station-grid,
  .path-grid,
  .contact-grid,
  .contact-cards,
  .field-grid,
  #developer-register .field-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .reason-card,
  .station-card,
  .path-card,
  .contact-card,
  .faq-item,
  .form-card,
  .dark-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    height: auto;
  }

  .reason-card {
    display: block;
    padding: 0 0 17px;
    border-radius: 22px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line, #e2e3e1);
    box-shadow: 0 12px 34px rgba(16,18,17,.07);
  }

  .reason-image,
  .station-image {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: transparent;
  }

  .reason-card-no-image .reason-image,
  .station-card-no-image .station-image,
  .reason-image:empty,
  .station-image:empty {
    display: none;
  }

  .reason-image img,
  .station-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .reason-image span {
    width: 50px;
    height: 50px;
    inset-block-start: 14px;
    inset-inline-end: 14px;
    font-size: 22px;
  }

  .reason-card h3,
  .station-card h3,
  .station-body h3,
  .path-card h2,
  .contact-card strong {
    margin: 16px 17px 8px;
    font-size: 18px;
    line-height: 1.45;
    font-weight: 700;
  }

  .reason-card p,
  .station-body p,
  .path-card p,
  .contact-card small,
  .contact-card p {
    margin: 0 17px;
    font-size: 15px;
    line-height: 1.68;
    font-weight: 400;
    color: var(--muted, #5f6662);
  }

  /* 7. Event stations */
  .station-card {
    display: flex;
    flex-direction: column;
    border-radius: 22px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--line, #e2e3e1);
    box-shadow: 0 12px 34px rgba(16,18,17,.07);
  }

  .station-body {
    display: grid;
    gap: 11px;
    padding: 17px;
  }

  .station-body h3,
  .station-body p {
    margin-inline: 0;
  }

  .station-en,
  .station-body time,
  .station-body small {
    font-size: 13.5px;
    line-height: 1.58;
  }

  .station-body .btn {
    margin-top: 4px;
  }

  /* 8. Statistics */
  .stats-section {
    padding-block: 46px;
  }

  .stats-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    text-align: center;
  }

  .stats-grid article {
    display: flex;
    min-width: 0;
    min-height: 128px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 18px 13px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 20px;
    background: rgba(255,255,255,.045);
  }

  .stats-grid strong,
  .stats-grid .white-number {
    display: block;
    font-size: clamp(29px, 8.2vw, 34px);
    line-height: 1.08;
    font-weight: 800;
    letter-spacing: -.035em;
  }

  .stats-grid span {
    display: block;
    margin-top: 8px;
    font-size: 13.5px;
    line-height: 1.5;
    font-weight: 600;
    text-wrap: balance;
  }

  .stats-grid small {
    display: block;
    margin-top: 5px;
    color: rgba(255,255,255,.76);
    font-size: 13px;
    line-height: 1.48;
  }

  .stats-grid article:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    justify-self: stretch;
  }

  .stats-grid article:last-child:nth-child(odd) strong,
  .stats-grid article:last-child:nth-child(odd) span,
  .stats-grid article:last-child:nth-child(odd) small {
    max-width: 260px;
    margin-inline: auto;
  }

  /* 9. Gallery */
  .gallery-grid,
  .gallery-grid.gallery-count-1,
  .gallery-grid.gallery-count-2,
  .gallery-grid.gallery-count-3,
  .gallery-grid.gallery-auto-reflow {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto;
    grid-auto-flow: row;
    gap: 12px;
    width: 100%;
    height: auto;
    min-height: 0;
    background: transparent;
  }

  .gallery-large,
  .gallery-side,
  .gallery-grid .gallery-item {
    grid-column: auto;
    grid-row: auto;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 1 / 1;
    border-radius: 20px;
    overflow: hidden;
    background: transparent;
  }

  .gallery-large,
  .gallery-grid .gallery-item:first-child {
    grid-column: 1 / -1;
    aspect-ratio: 16 / 9;
  }

  .gallery-grid .gallery-item:empty {
    display: none;
  }

  .gallery-grid .gallery-item img,
  .gallery-large img,
  .gallery-side img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
  }

  /* 10. Visitor and developer journeys */
  .path-section {
    padding-block: 46px;
  }

  .path-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .path-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 236px;
    border-radius: 26px;
    overflow: hidden;
  }

  .path-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .path-card::after {
    background: linear-gradient(0deg, rgba(16,18,17,.9), rgba(16,18,17,.22));
  }

  .path-card div {
    position: absolute;
    inset: auto 18px 20px 18px;
  }

  .path-card h2 {
    margin: 0 0 8px;
    font-size: 22px;
    line-height: 1.35;
    color: #fff;
  }

  .path-card p {
    margin: 0 0 14px;
    color: rgba(255,255,255,.78);
  }

  .path-card .btn {
    width: 100%;
  }

  /* 11. Forms */
  .form-shell,
  .developer-section .form-shell {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding-inline: 16px;
  }

  .form-card,
  .dark-card {
    width: 100%;
    max-width: none;
    min-width: 0;
    border-radius: 22px;
    padding: 19px;
  }

  .dark-card {
    background: rgba(255,255,255,.075);
    border-color: rgba(255,255,255,.16);
  }

  .form-heading {
    margin: 0 0 20px;
    text-align: right;
  }

  .form-heading h2 {
    margin: 0;
    font-size: clamp(24px, 6.8vw, 27px);
    line-height: 1.35;
    font-weight: 700;
  }

  .form-heading p {
    margin: 10px 0 0;
    font-size: 15px;
    line-height: 1.66;
  }

  .step-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 20px;
  }

  .step-tabs button {
    min-height: 54px;
    border-radius: 15px;
    padding: 10px;
    font-size: 16px;
    font-weight: 700;
  }

  .step-tabs span {
    display: block;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 600;
  }

  .field-grid .full,
  .field-grid .station-multi,
  .field-grid .consent,
  .field-grid textarea,
  .field-group,
  .station-multi,
  .upload-field,
  .consent {
    grid-column: 1 / -1;
  }

  .field-group,
  .form-card label,
  .dark-card label {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  label span,
  .field-group legend,
  .form-card label > span,
  .dark-card label > span {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 600;
  }

  input,
  select,
  textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 48px;
    border-radius: 14px;
    font-size: 15px;
    line-height: 1.45;
  }

  input::placeholder,
  textarea::placeholder {
    font-size: 14px;
  }

  textarea {
    min-height: 118px;
    resize: vertical;
  }

  input[type="file"] {
    min-height: 52px;
    padding-block: 13px;
  }

  .form-note,
  .form-message,
  .field-error,
  .form-help,
  .helper-text,
  .field-help,
  .consent,
  .form-card small,
  .dark-card small {
    font-size: 13.5px;
    line-height: 1.62;
    font-weight: 400;
  }

  .station-multi {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
    border-radius: 16px;
  }

  .station-check {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(16,18,17,.04);
  }

  .dark-card .station-check {
    background: rgba(255,255,255,.08);
  }

  .station-check input,
  .consent input,
  input[type="checkbox"],
  input[type="radio"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    min-height: 18px;
    flex: 0 0 18px;
  }

  .consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
  }

  .form-card .btn,
  .form-card button[type="submit"],
  .form-card button[type="button"],
  .dark-card .btn,
  .dark-card button[type="submit"],
  .dark-card button[type="button"] {
    width: 100%;
    min-height: 48px;
    margin-top: 16px;
  }

  /* 12. Contact */
  .contact-grid {
    gap: 20px;
  }

  .contact-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .contact-cards .contact-card:last-child {
    grid-column: 1 / -1;
  }

  .contact-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 122px;
    padding: 18px;
    border-radius: 20px;
  }

  .contact-card span {
    width: 48px;
    height: 48px;
    margin-bottom: 13px;
    font-size: 23px;
  }

  .contact-card strong {
    margin: 0;
    font-size: 16.5px;
    line-height: 1.45;
  }

  .contact-card small {
    margin: 4px 0 0;
    font-size: 14px;
    line-height: 1.65;
    color: rgba(26,28,27,.74);
  }

  /* 13. FAQ */
  .faq-list {
    display: grid;
    gap: 14px;
    width: 100%;
  }

  .faq-item {
    border-radius: 18px;
    overflow: hidden;
  }

  .faq-item summary {
    min-height: 54px;
    padding: 15px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    font-size: 15.5px;
    line-height: 1.6;
    font-weight: 600;
  }

  .faq-item p,
  .faq-item .faq-answer {
    padding: 0 16px 17px;
    margin: 0;
    font-size: 14.8px;
    line-height: 1.7;
  }

  /* 14. Final CTA and footer */
  .final-cta {
    padding-block: 44px;
    text-align: right;
  }

  .final-cta h2 {
    margin: 0 0 18px;
    font-size: clamp(25px, 7vw, 28px);
    line-height: 1.35;
    font-weight: 700;
  }

  .cta-row,
  .final-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .site-footer {
    padding-block: 30px 74px;
  }

  .footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .footer-brand img {
    width: auto;
    height: auto;
    max-width: 132px;
    margin-bottom: 12px;
  }

  .footer-grid h3 {
    margin: 0 0 10px;
    font-size: 16px;
    line-height: 1.45;
    font-weight: 700;
    color: #fff;
  }

  .footer-grid a,
  .footer-grid p,
  .footer-brand p {
    margin: 4px 0;
    color: rgba(255,255,255,.9);
    font-size: 14px;
    line-height: 1.72;
  }

  .footer-bottom {
    display: grid;
    gap: 7px;
    margin-top: 18px;
    padding-top: 13px;
    border-top: 1px solid rgba(255,255,255,.12);
    color: rgba(255,255,255,.88);
  }

  .footer-bottom p,
  .footer-bottom a {
    margin: 0;
    color: rgba(255,255,255,.88);
    font-size: 13px;
    line-height: 1.62;
  }

  .footer-bottom a {
    margin-inline-start: 14px;
  }

  /* 15. Sticky CTA */
  .mobile-sticky-cta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    position: fixed;
    inset-inline: 10px;
    bottom: 8px;
    z-index: 1100;
    max-width: calc(100% - 20px);
    min-height: 56px;
    padding: 5px;
    border-radius: 20px;
  }

  .mobile-sticky-cta a,
  .mobile-sticky-cta button {
    min-width: 0;
    min-height: 46px;
    gap: 2px;
    border-radius: 15px;
    font-size: 11px;
    line-height: 1.25;
    font-weight: 600;
  }

  .mobile-sticky-cta span {
    font-size: 17px;
  }

  /* 16. Contact hub / Assistant / Toast */
  .sheet-panel,
  .assistant-panel {
    position: fixed;
    inset-inline: 16px;
    right: 16px;
    left: 16px;
    bottom: 16px;
    width: auto;
    max-width: none;
    max-height: calc(100dvh - 40px);
    overflow-y: auto;
    padding: 22px;
    border-radius: 24px;
    transform: translateY(18px);
  }

  .contact-hub.is-open .sheet-panel,
  .assistant-modal.is-open .assistant-panel {
    transform: translateY(0);
  }

  .sheet-option {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 62px;
    padding: 12px;
    border-radius: 16px;
  }

  .assistant-panel {
    display: flex;
    flex-direction: column;
  }

  .assistant-panel header,
  .assistant-input {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .assistant-body {
    min-width: 0;
  }

  .quick-options {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .assistant-input input {
    min-width: 0;
  }

  .assistant-input button {
    flex: 0 0 auto;
    min-height: 46px;
  }

  .toast {
    position: fixed;
    inset-inline: 16px;
    right: 16px;
    left: 16px;
    bottom: 88px;
    width: auto;
    max-width: none;
    transform: translateY(18px);
  }

  .toast.is-visible {
    transform: translateY(0);
  }
}

@media (max-width: 380px) {
  body {
    font-size: 15px;
  }

  .container,
  main .container,
  .hero .container,
  .section > .container,
  .form-shell,
  #register .form-shell,
  #developer-register .form-shell,
  .developer-section .form-shell,
  #faq .narrow,
  .narrow {
    padding-inline: 14px;
  }

  .hero-grid {
    padding-inline: 14px;
  }

  .hero h1 {
    font-size: clamp(33px, 9.4vw, 36px);
  }

  .section {
    padding-block: 46px;
  }

  .two-notes,
  .stats-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .gallery-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .gallery-large,
  .gallery-side,
  .gallery-grid .gallery-item {
    grid-column: auto;
    aspect-ratio: 16 / 10;
  }

  .form-card,
  .dark-card,
  .hero-card {
    padding: 18px;
  }


  .contact-cards {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-cards .contact-card:last-child {
    grid-column: auto;
  }

  .contact-card {
    min-height: 112px;
  }

  .station-check,
  .consent {
    gap: 9px;
  }

  .mobile-sticky-cta {
    inset-inline: 8px;
    max-width: calc(100% - 16px);
  }
}

@media (max-width: 780px) and (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition: none;
    animation: none;
    scroll-behavior: auto;
  }
}
