/* Last-loaded mobile presentation layer.
   Goal: phone layouts should feel deliberate, calm, and easy to scan. */
@media (max-width: 760px) {
  :root {
    --mobile-pad: 18px;
    --mobile-radius: 24px;
    --mobile-header-height: 70px;
  }

  html {
    width: 100% !important;
    overflow-x: hidden !important;
    background: #110700 !important;
    background-color: #110700 !important;
  }

  body {
    width: 100% !important;
    overflow-x: hidden !important;
    background: #110700 !important;
    background-color: #110700 !important;
  }

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

  body {
    color: #180900 !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  main {
    background:
      radial-gradient(circle at 12% 0%, rgba(255, 189, 53, 0.12), transparent 28%),
      linear-gradient(180deg, #fff8ec 0%, #fff3df 48%, #fff8ec 100%) !important;
    padding-top: calc(var(--mobile-header-height) + env(safe-area-inset-top, 0px)) !important;
  }

  body:before,
  body:after,
  main > section:before,
  main > section:after,
  .story-panel:before,
  .booking-focus-card:before,
  .order-now-panel:before,
  .contact-cta:before,
  .catering-photo-placeholder:before {
    display: none !important;
    content: none !important;
  }

  .wrap,
  .nav,
  .hero-shell,
  .hero-fullscreen .wrap,
  main > section > .wrap {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--mobile-pad) !important;
    padding-right: var(--mobile-pad) !important;
    transform: none !important;
  }

  section,
  main > section:not(.hero-fullscreen):not(.liquid-hero) {
    padding-top: 46px !important;
    padding-bottom: 46px !important;
    overflow: hidden !important;
    background:
      radial-gradient(circle at 12% 0%, rgba(255, 189, 53, 0.14), transparent 28%),
      linear-gradient(180deg, #fffaf0 0%, #fff5e6 100%) !important;
  }

  .topbar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 180 !important;
    overflow: visible !important;
    background: rgba(17, 7, 0, 0.96) !important;
    border-bottom: 1px solid rgba(255, 189, 53, 0.24) !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
  }

  @supports (padding-top: env(safe-area-inset-top)) {
    .topbar {
      padding-top: env(safe-area-inset-top) !important;
    }

    .topbar:before {
      content: "" !important;
      position: absolute !important;
      left: 0 !important;
      right: 0 !important;
      bottom: 100% !important;
      height: max(env(safe-area-inset-top), 28px) !important;
      background: #110700 !important;
      pointer-events: none !important;
    }
  }

  .nav {
    height: var(--mobile-header-height) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .brand {
    gap: 9px !important;
  }

  .brand strong {
    font-size: 14px !important;
    line-height: 1.05 !important;
    letter-spacing: 0 !important;
  }

  .brand small {
    font-size: 10px !important;
    letter-spacing: 0.08em !important;
  }

  .brand img,
  .logo-mark,
  .mark.logo-mark {
    width: 48px !important;
    height: 48px !important;
    flex-basis: 48px !important;
    border-radius: 15px !important;
  }

  h1,
  h2,
  h3,
  .section-head h2,
  .solo h2,
  .board-copy h2,
  .panel h3,
  .booking-focus-card h2,
  .order-now-panel h3,
  .contact-hero h1,
  .hero h1 {
    max-width: 100% !important;
    letter-spacing: 0 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-wrap: balance;
  }

  h1,
  .contact-hero h1,
  .hero h1 {
    font-size: clamp(38px, 11vw, 52px) !important;
    line-height: 0.98 !important;
  }

  h2,
  .section-head h2,
  .solo h2,
  .board-copy h2,
  .booking-focus-card h2 {
    font-size: clamp(32px, 9vw, 44px) !important;
    line-height: 1 !important;
  }

  h3,
  .panel h3,
  .card h3,
  .blog-card h2 {
    font-size: clamp(24px, 7vw, 34px) !important;
    line-height: 1.05 !important;
  }

  p,
  li,
  .lead,
  .section-head p,
  .panel p,
  .panel li,
  .card p,
  .quote p,
  .note {
    max-width: 100% !important;
    font-size: 16px !important;
    line-height: 1.55 !important;
    letter-spacing: 0 !important;
  }

  .kicker,
  .combo-label,
  .menu-badge,
  .vi-chip {
    max-width: 100% !important;
    width: fit-content !important;
    min-height: 0 !important;
    padding: 8px 11px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    letter-spacing: 0.10em !important;
    white-space: normal !important;
  }

  .btn,
  .glass-btn,
  button,
  .mobile-call {
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 48px !important;
    padding: 13px 16px !important;
    border-radius: 999px !important;
    font-size: 13.5px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    text-align: center !important;
  }

  .actions,
  .social-cta-row,
  .gallery-cta,
  .catering-note,
  .builder-actions,
  .order-hero-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  .actions .btn,
  .social-cta-row .btn,
  .gallery-cta .btn,
  .catering-note .btn,
  .builder-actions .btn,
  .builder-actions button,
  .order-hero-actions .btn {
    width: 100% !important;
  }

  .card,
  .panel,
  .quote,
  .gallery-card,
  .blog-card,
  .faq-item,
  .booking-focus-card,
  .order-now-panel,
  .catering-menu-card,
  .seo-heading-ladder,
  .story-panel,
  .lead-form-card,
  .cart-panel,
  .builder,
  .menu-picker,
  .checkout-dialog {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    border-radius: var(--mobile-radius) !important;
    padding: 20px !important;
    box-shadow: 0 14px 36px rgba(24, 9, 0, 0.08) !important;
  }

  .grid,
  .cards,
  .split,
  .quote-row,
  .gallery,
  .gallery-grid,
  .menu-board,
  .hero-grid,
  .section-head,
  .catering-menu-grid,
  .about-owner-grid,
  .proof-grid,
  .order-layout,
  #catering .split,
  .booking-focus-card,
  .page-service-areas .grid,
  .page-blog .blog-list,
  .page-faq .faq-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    align-items: start !important;
  }

  .section-head {
    margin-bottom: 20px !important;
  }

  .section-head > *,
  .booking-focus-card > *,
  .menu-board > *,
  .split > *,
  #catering .split > * {
    min-width: 0 !important;
  }

  .story-section,
  .about-owner-section {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
  }

  .about-owner-copy,
  .story-panel {
    padding: 20px !important;
  }

  .about-owner-copy h3 {
    font-size: 34px !important;
  }

  .about-owner-copy p {
    font-size: 15.5px !important;
    line-height: 1.55 !important;
  }

  .about-proof-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .owner-headshot-placeholder,
  .headshot-frame {
    min-height: auto !important;
  }

  .headshot-frame {
    padding: 22px !important;
  }

  .menu-clean-section .cards,
  .menu-combo-cards,
  .compact-grid {
    grid-template-columns: 1fr !important;
  }

  .card .photo,
  .combo-card .photo,
  .blog-card img,
  .gallery-card img {
    width: 100% !important;
    height: auto !important;
    max-height: 250px !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
  }

  .card-body,
  .blog-card div,
  .gallery-card div {
    padding: 18px !important;
  }

  .menu-tabs,
  .category-tabs {
    display: flex !important;
    gap: 8px !important;
    padding: 6px !important;
    border-radius: 18px !important;
    overflow-x: auto !important;
    justify-content: flex-start !important;
    scroll-snap-type: x proximity;
    background: rgba(255, 253, 246, 0.88) !important;
  }

  #menu .section-head {
    text-align: center !important;
  }

  #menu .section-head .kicker {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  #menu .section-head p {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  #menu .menu-tabs {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    justify-content: center !important;
    align-items: center !important;
    width: min(100%, 440px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible !important;
  }

  .menu-tab,
  .category-tab {
    flex: 0 0 auto !important;
    min-height: 42px !important;
    padding: 10px 14px !important;
    scroll-snap-align: start;
  }

  .booking-focus-strip {
    padding: 40px 0 !important;
  }

  .booking-focus-card {
    padding: 22px !important;
    text-align: left !important;
  }

  .booking-focus-card p {
    font-size: 17px !important;
  }

  .booking-focus-card .btn {
    width: 100% !important;
    margin-top: 4px !important;
  }

  .why-section {
    color: #180900 !important;
    background: linear-gradient(180deg, #fff8ec 0%, #fff0d7 100%) !important;
  }

  .why-section .menu-board,
  .why-section .love-board {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding-left: var(--mobile-pad) !important;
    padding-right: var(--mobile-pad) !important;
  }

  .catering-photo-placeholder {
    min-height: 0 !important;
    padding: 20px !important;
    border-radius: var(--mobile-radius) !important;
    background:
      radial-gradient(circle at 10% 10%, rgba(255, 189, 53, 0.18), transparent 30%),
      linear-gradient(135deg, #fffdf8, #fff2d5) !important;
    border: 1px solid rgba(0, 90, 169, 0.13) !important;
  }

  .catering-photo-placeholder div {
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .catering-photo-placeholder strong {
    display: block !important;
    margin: 12px 0 10px !important;
    font-size: clamp(30px, 8vw, 40px) !important;
    line-height: 1.04 !important;
    letter-spacing: 0 !important;
  }

  .catering-photo-placeholder p {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  .why-section .board-copy {
    padding: 20px !important;
    background: #fffdf8 !important;
    color: #180900 !important;
  }

  .love-list,
  .menu-list {
    gap: 0 !important;
  }

  .menu-row,
  .hours div {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 5px !important;
    padding: 14px 0 !important;
    text-align: left !important;
  }

  .menu-row span,
  .menu-row small,
  .menu-row b,
  .hours span {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    text-align: left !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .menu-row span:first-child,
  .hours span:first-child {
    font-size: 17px !important;
    font-weight: 1000 !important;
  }

  .menu-row small,
  .hours span:last-child {
    font-size: 15px !important;
    line-height: 1.4 !important;
    color: #5d3a24 !important;
  }

  .menu-row b {
    width: fit-content !important;
    color: #c82618 !important;
    font-size: 12px !important;
    letter-spacing: 0.12em !important;
  }

  #catering .panel,
  #catering .panel.hot,
  #catering .location-panel {
    background: #fffdf8 !important;
    color: #180900 !important;
  }

  #catering .panel.hot h3,
  #catering .location-panel h3 {
    font-size: clamp(31px, 8.6vw, 42px) !important;
    line-height: 1.02 !important;
  }

  #catering .panel.hot ul {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    padding-left: 20px !important;
  }

  #catering .panel.hot li {
    font-size: 15.5px !important;
    line-height: 1.45 !important;
  }

  .hours {
    gap: 0 !important;
  }

  .map-frame,
  #catering .location-panel .map-frame {
    height: 210px !important;
    margin-top: 18px !important;
    border-radius: 20px !important;
  }

  .gallery {
    grid-auto-rows: auto !important;
  }

  .gallery img,
  .gallery img:first-child {
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    border-radius: 20px !important;
  }

  .city-cloud {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .city-cloud a {
    min-height: 44px !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .contact-hero,
  .hero:not(.hero-fullscreen),
  .page-service-areas .hero,
  .page-blog .contact-hero,
  .page-faq .contact-hero {
    min-height: auto !important;
    padding: 96px 0 46px !important;
  }

  main > section.hero:not(.hero-fullscreen):not(.liquid-hero) {
    background-color: #110700 !important;
    background-image:
      linear-gradient(135deg, rgba(17, 7, 0, 0.94), rgba(90, 23, 10, 0.86)),
      var(--mobile-hero-image, url("yelp-truck-vibes.jpg")) !important;
    background-size: cover !important;
    background-position: center !important;
    background-blend-mode: multiply, normal !important;
    color: #fff8ec !important;
  }

  main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1,
  main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p {
    color: #fff8ec !important;
    opacity: 1 !important;
    text-shadow: 0 3px 18px rgba(0, 0, 0, 0.58) !important;
  }

  main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .kicker,
  main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .hero-markers span,
  main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .hero-reference {
    background: rgba(255, 248, 236, 0.92) !important;
    color: #180900 !important;
    border-color: rgba(255, 189, 53, 0.45) !important;
    text-shadow: none !important;
  }

  body:has(.gallery-grid) main > section.hero:not(.hero-fullscreen):not(.liquid-hero) {
    --mobile-hero-image: url("vi-national-park-trunk-bay.jpg");
  }

  main > section.contact-hero:not(.hero-fullscreen):not(.liquid-hero),
  main > section.contact-hero,
  .contact-hero {
    background-color: #110700 !important;
    background-image:
      linear-gradient(135deg, rgba(17, 7, 0, 0.92), rgba(90, 23, 10, 0.84)),
      url("yelp-truck.jpg") !important;
    background-blend-mode: multiply, normal !important;
    color: #fff8ec !important;
  }

  .contact-hero h1,
  .contact-hero p {
    color: #fff8ec !important;
    text-shadow: 0 3px 18px rgba(0, 0, 0, 0.55) !important;
  }

  .contact-hero .glass-eyebrow {
    background: rgba(255, 248, 236, 0.92) !important;
    color: #1b0900 !important;
    border-color: rgba(255, 189, 53, 0.45) !important;
    text-shadow: none !important;
  }

  .page-service-areas .hero .wrap,
  .page-blog .contact-hero .wrap,
  .page-faq .contact-hero .wrap {
    margin: 0 auto !important;
    padding: 20px !important;
    border-radius: var(--mobile-radius) !important;
  }

  .page-service-areas main > section:nth-of-type(2) > .wrap,
  .page-blog .blog-list,
  .page-faq .faq-grid {
    padding: 18px !important;
    border-radius: var(--mobile-radius) !important;
  }

  body:has(.order-layout) .order-hero {
    min-height: auto !important;
    padding: 92px 0 36px !important;
  }

  body:has(.order-layout) .order-copy {
    padding: 20px !important;
  }

  body:has(.order-layout) .builder-grid,
  body:has(.order-layout) .compact-grid,
  body:has(.order-layout) .menu-groups {
    grid-template-columns: 1fr !important;
  }

  body:has(.order-layout) .choice {
    display: grid !important;
    grid-template-columns: auto 1fr auto !important;
    align-items: center !important;
    gap: 8px !important;
  }

  body:has(.order-layout) .cart-item strong {
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 8px !important;
  }

  .footer,
  footer {
    padding-bottom: max(86px, env(safe-area-inset-bottom)) !important;
  }

  .mobile-nav-toggle,
  .mobile-nav-panel a,
  .mobile-nav-panel a.pill,
  .mobile-nav-panel a[href="order.html"],
  .mobile-nav-panel a:last-child,
  .ib-chat-launcher,
  .ib-chip,
  .ib-action,
  .ib-chat-submit,
  .ib-chat-close {
    -webkit-tap-highlight-color: transparent !important;
    -webkit-appearance: none !important;
    appearance: none !important;
  }

  .mobile-nav-toggle:focus:not(:focus-visible),
  .mobile-nav-panel a:focus:not(:focus-visible),
  .ib-chat button:focus:not(:focus-visible),
  .ib-chat a:focus:not(:focus-visible) {
    outline: 0 !important;
    box-shadow: none !important;
  }

  .mobile-nav-panel a,
  .mobile-nav-panel a.pill,
  .mobile-nav-panel a[href="order.html"],
  .mobile-nav-panel a:last-child {
    grid-column: auto !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: #fff8ec !important;
    border: 1px solid rgba(255, 232, 184, 0.10) !important;
    box-shadow: none !important;
  }

  .mobile-nav-panel a[data-mobile-primary="true"] {
    background: linear-gradient(135deg, #ffbd35, #ff6b1a) !important;
    color: #180900 !important;
    border-color: rgba(255, 189, 53, 0.82) !important;
    box-shadow: 0 12px 28px rgba(255, 107, 26, 0.22) !important;
  }

  .mobile-nav-panel a:active {
    background: rgba(255, 189, 53, 0.18) !important;
    color: #fff8ec !important;
  }

  .mobile-nav-panel {
    top: calc(var(--mobile-header-height) + env(safe-area-inset-top, 0px) + 8px) !important;
    z-index: 170 !important;
  }

  .ib-chat {
    display: block !important;
    right: 12px !important;
    bottom: max(18px, env(safe-area-inset-bottom)) !important;
    z-index: 140 !important;
  }

  body:has(.order-layout) .ib-chat {
    display: block !important;
  }

  .booking-sidebar .panel.hot {
    background: linear-gradient(135deg, #180900, #4b1609 58%, #7d1c10) !important;
    color: #fff8ec !important;
    border-color: rgba(255, 189, 53, 0.28) !important;
  }

  .booking-sidebar .panel.hot .kicker {
    background: rgba(255, 189, 53, 0.14) !important;
    color: #ffbd35 !important;
  }

  .booking-sidebar .panel.hot h3,
  .booking-sidebar .panel.hot p {
    color: #fff8ec !important;
    opacity: 1 !important;
    text-shadow: none !important;
  }

  .booking-sidebar .panel.hot .booking-steps div {
    background: #fff8ec !important;
    border-color: rgba(255, 189, 53, 0.36) !important;
  }

  .booking-sidebar .panel.hot .booking-steps b {
    color: #c82618 !important;
  }

  .booking-sidebar .panel.hot .booking-steps span {
    color: #180900 !important;
  }

  .ib-chat-launcher {
    width: 54px !important;
    height: 54px !important;
    min-height: 54px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    justify-content: center !important;
    box-shadow: 0 16px 42px rgba(24, 9, 0, 0.34) !important;
  }

  .ib-chat-launcher > span:not(.ib-chat-launcher-icon) {
    display: none !important;
  }

  .ib-chat-panel {
    right: 0 !important;
    bottom: 66px !important;
    width: min(390px, calc(100vw - 24px)) !important;
    max-height: calc(100svh - 150px) !important;
    border-radius: 22px !important;
  }

  .ib-chat-body {
    min-height: 210px !important;
    max-height: calc(100svh - 340px) !important;
  }
}

@media (max-width: 420px) {
  :root {
    --mobile-pad: 16px;
  }

  .about-proof-grid {
    grid-template-columns: 1fr !important;
  }

  h1,
  .contact-hero h1,
  .hero h1 {
    font-size: clamp(35px, 10.4vw, 46px) !important;
  }

  h2,
  .section-head h2,
  .solo h2,
  .board-copy h2,
  .booking-focus-card h2 {
    font-size: clamp(30px, 8.8vw, 39px) !important;
  }
}

@media (max-width: 700px) {
  .page-about .hero,
  .page-gallery .hero,
  .page-service-areas .hero,
  .page-blog .contact-hero,
  .page-faq .contact-hero {
    min-height: 420px !important;
    height: 420px !important;
    box-sizing: border-box !important;
    padding: 88px 0 36px !important;
  }

  .page-about .hero .wrap,
  .page-gallery .hero .wrap,
  .page-service-areas .hero .wrap,
  .page-blog .contact-hero .wrap,
  .page-faq .contact-hero .wrap {
    min-height: 260px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .page-about .hero h1,
  .page-gallery .hero h1,
  .page-service-areas .hero h1,
  .page-blog .contact-hero h1,
  .page-faq .contact-hero h1 {
    font-size: 38px !important;
    line-height: 0.98 !important;
  }
}

@media (max-width: 760px) {
  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero),
  .page-about .hero {
    --mobile-hero-image: url("usvi-flag-official.svg") !important;
    background-image:
      linear-gradient(135deg, rgba(9, 3, 0, 0.78), rgba(0, 90, 169, 0.34) 46%, rgba(31, 123, 77, 0.28)),
      url("usvi-flag-official.svg") !important;
    background-size: cover !important;
    background-position: center 48% !important;
  }

  body.page-about .hero .wrap {
    width: calc(100% - 32px) !important;
    max-width: 560px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 20px !important;
  }

  main > section.story-section.about-owner-section:not(.hero):not(.contact-hero):not(.hero-fullscreen):not(.liquid-hero),
  .about-owner-section {
    background:
      linear-gradient(180deg, rgba(255, 248, 236, 0.96), rgba(255, 248, 236, 0.88)),
      url("usvi-flag-official.svg") center top / cover no-repeat !important;
  }

  .vi-raised-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 260px !important;
    margin: 12px auto 0 !important;
  }

  .vi-raised-pill img {
    width: 50px !important;
    height: 32px !important;
    object-fit: contain !important;
  }

  .why-section .catering-photo-placeholder {
    min-height: 560px !important;
    background:
      radial-gradient(circle at 18% 12%, rgba(255, 189, 53, 0.22), transparent 28%),
      linear-gradient(180deg, #eaf6f7 0%, #fff3d9 55%, #f9e4b3 100%) !important;
  }

  .why-section .catering-photo-placeholder:after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 6% !important;
    right: 6% !important;
    bottom: 18px !important;
    height: 32% !important;
    z-index: 1 !important;
    border-radius: 22px !important;
    background: #fff url("usvi-flag-official.svg") center center / contain no-repeat !important;
    filter: drop-shadow(0 14px 22px rgba(24, 9, 0, 0.12)) !important;
    pointer-events: none !important;
  }
}

@media (max-width: 700px) {
  .page-about .hero,
  .page-gallery .hero,
  .page-faq .contact-hero,
  .page-contact .contact-hero {
    height: auto !important;
    min-height: auto !important;
    padding: 86px 0 38px !important;
    overflow: visible !important;
  }

  .page-about .hero .wrap,
  .page-gallery .hero .wrap,
  .page-faq .contact-hero .wrap,
  .page-contact .contact-hero .wrap {
    min-height: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 var(--mobile-pad) !important;
    display: block !important;
  }

  .page-about .hero h1,
  .page-gallery .hero h1,
  .page-faq .contact-hero h1,
  .page-contact .contact-hero h1 {
    width: calc(100vw - 72px) !important;
    max-width: calc(100vw - 72px) !important;
    margin: 16px 0 12px !important;
    font-size: clamp(30px, 8.4vw, 36px) !important;
    line-height: 1.02 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-wrap: balance !important;
  }

  .page-about .hero p,
  .page-gallery .hero p,
  .page-faq .contact-hero p,
  .page-contact .contact-hero p {
    display: block !important;
    width: calc(100vw - 72px) !important;
    max-width: calc(100vw - 72px) !important;
    margin: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: initial !important;
    font-size: 16px !important;
    line-height: 1.48 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .page-about .hero .kicker,
  .page-gallery .hero .kicker,
  .page-faq .contact-hero .glass-eyebrow,
  .page-contact .contact-hero .glass-eyebrow {
    max-width: calc(100vw - 36px) !important;
    padding: 7px 10px !important;
    font-size: 10.5px !important;
    line-height: 1.16 !important;
    letter-spacing: 0.08em !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    text-align: left !important;
  }

  .page-about .hero .kicker {
    padding: 6px 9px !important;
    font-size: 10px !important;
    letter-spacing: 0.07em !important;
  }

  .page-gallery .hero-markers,
  .page-gallery .hero-reference {
    display: none !important;
  }

  .page-contact #lead-form {
    padding-top: 40px !important;
  }

  .page-contact .lead-form-card {
    width: calc(100vw - 72px) !important;
    max-width: calc(100vw - 72px) !important;
    padding: 24px !important;
    border-radius: var(--mobile-radius) !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1,
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1,
  body.page-faq main > section.contact-hero h1,
  body.page-contact main > section.contact-hero h1,
  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-faq main > section.contact-hero p,
  body.page-contact main > section.contact-hero p {
    width: calc(100vw - 92px) !important;
    max-width: calc(100vw - 92px) !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-faq main > section.contact-hero p,
  body.page-contact main > section.contact-hero p {
    width: calc(100vw - 164px) !important;
    max-width: calc(100vw - 164px) !important;
    font-size: 12.8px !important;
    line-height: 1.45 !important;
  }

  .page-about .story-card,
  .page-gallery .section-head,
  .page-gallery .gallery-grid,
  .page-faq .faq-grid,
  .page-contact .lead-layout,
  .page-contact .lead-form-card {
    width: calc(100vw - 72px) !important;
    max-width: calc(100vw - 72px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: hidden !important;
  }

  .page-faq .faq-item {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  .page-about .story-card p,
  .page-gallery .section-head h2,
  .page-gallery .section-head p,
  .page-faq .faq-item h2,
  .page-faq .faq-item p,
  .page-contact .lead-form-card h2,
  .page-contact .lead-form-card label {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .page-faq .faq-item h2 {
    width: calc(100vw - 164px) !important;
    max-width: calc(100vw - 164px) !important;
    font-size: 17px !important;
    line-height: 1.14 !important;
  }

  .page-faq .faq-item p {
    width: calc(100vw - 164px) !important;
    max-width: calc(100vw - 164px) !important;
    font-size: 12.8px !important;
    line-height: 1.5 !important;
  }

  .page-about .story-card p {
    width: calc(100vw - 164px) !important;
    max-width: calc(100vw - 164px) !important;
    font-size: 13.5px !important;
    line-height: 1.52 !important;
  }

  .page-contact .lead-form-card h2 {
    width: calc(100vw - 164px) !important;
    max-width: calc(100vw - 164px) !important;
    font-size: 28px !important;
    line-height: 1 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

@media (max-width: 380px) {
  .page-about .hero h1,
  .page-gallery .hero h1,
  .page-faq .contact-hero h1,
  .page-contact .contact-hero h1 {
    font-size: 32px !important;
  }

  .page-about .hero p,
  .page-gallery .hero p,
  .page-faq .contact-hero p,
  .page-contact .contact-hero p {
    font-size: 15px !important;
    line-height: 1.45 !important;
  }
}

@media (max-width: 700px) {
  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero),
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero),
  body.page-service-areas main > section.hero:not(.hero-fullscreen):not(.liquid-hero),
  body.page-blog main > section.contact-hero,
  body.page-faq main > section.contact-hero,
  body.page-contact main > section.contact-hero {
    display: grid !important;
    place-items: center !important;
    height: auto !important;
    min-height: auto !important;
    padding: 82px 0 40px !important;
    text-align: center !important;
    overflow: hidden !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .wrap,
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .wrap,
  body.page-service-areas main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .wrap,
  body.page-blog main > section.contact-hero .wrap,
  body.page-faq main > section.contact-hero .wrap,
  body.page-contact main > section.contact-hero .wrap {
    width: min(calc(100% - 42px), 430px) !important;
    max-width: min(calc(100% - 42px), 430px) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 22px 18px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 26px !important;
    text-align: center !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .wrap {
    width: min(calc(100% - 70px), 380px) !important;
    max-width: min(calc(100% - 70px), 380px) !important;
    padding: 18px 16px !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1,
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1,
  body.page-service-areas main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1,
  body.page-blog main > section.contact-hero h1,
  body.page-faq main > section.contact-hero h1,
  body.page-contact main > section.contact-hero h1 {
    width: 100% !important;
    max-width: 100% !important;
    margin: 14px auto 10px !important;
    font-size: clamp(25px, 7vw, 30px) !important;
    line-height: 1.04 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-wrap: balance !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1 {
    font-size: clamp(25px, 6.9vw, 30px) !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-service-areas main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-blog main > section.contact-hero p,
  body.page-faq main > section.contact-hero p,
  body.page-contact main > section.contact-hero p {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    font-size: 14.5px !important;
    line-height: 1.45 !important;
    text-align: center !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: initial !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p {
    font-size: 13.5px !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .kicker,
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .kicker,
  body.page-service-areas main > section.hero:not(.hero-fullscreen):not(.liquid-hero) .kicker,
  body.page-blog main > section.contact-hero .glass-eyebrow,
  body.page-faq main > section.contact-hero .glass-eyebrow,
  body.page-contact main > section.contact-hero .glass-eyebrow {
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 7px 11px !important;
    font-size: 10px !important;
    line-height: 1.16 !important;
    letter-spacing: 0.08em !important;
    text-align: center !important;
    justify-content: center !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
  }

  .page-gallery .section-head,
  .page-faq .faq-grid,
  .page-contact .lead-layout,
  .page-contact .lead-form-card {
    width: min(calc(100% - 36px), 430px) !important;
    max-width: min(calc(100% - 36px), 430px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .page-gallery .section-head h2,
  .page-gallery .section-head p,
  .page-faq .faq-item h2,
  .page-faq .faq-item p,
  .page-contact .lead-form-card h2 {
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .page-gallery .section-head h2,
  .page-contact .lead-form-card h2 {
    font-size: clamp(30px, 8vw, 38px) !important;
    line-height: 1.02 !important;
  }

  .page-faq .faq-item {
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
  }

  .page-faq .faq-item h2 {
    font-size: 19px !important;
    line-height: 1.16 !important;
  }

  .page-faq .faq-item p {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  .page-contact .lead-form-card {
    padding: 24px 22px !important;
    border-radius: 28px !important;
  }

  .page-contact .lead-form-card .kicker {
    display: flex !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 auto 14px !important;
    padding: 8px 13px !important;
    justify-content: center !important;
    text-align: center !important;
    border-radius: 999px !important;
  }

  .page-contact .lead-form label {
    text-align: left !important;
  }

  .page-service-areas main > section:nth-of-type(2) > .wrap,
  .page-blog .blog-list,
  .page-blog .blog-hub-cta {
    width: min(calc(100% - 36px), 430px) !important;
    max-width: min(calc(100% - 36px), 430px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .page-service-areas main > section:nth-of-type(2) h2,
  .page-service-areas main > section:nth-of-type(2) p,
  .page-blog .blog-card h2,
  .page-blog .blog-card p {
    text-align: center !important;
  }

  .page-blog .blog-card .btn,
  .article-body .btn {
    width: min(100%, 300px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-self: center !important;
    align-self: center !important;
  }

  .article-body p:has(.btn) {
    text-align: center !important;
  }

  .article-actions,
  .page-blog .blog-hub-cta .actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    justify-items: center !important;
    align-items: center !important;
  }

  .page-service-areas main > section:nth-of-type(2) h2 {
    font-size: clamp(29px, 7.5vw, 36px) !important;
    line-height: 1.03 !important;
  }

  .page-service-areas .city-cloud {
    justify-items: center !important;
  }
}

@media (max-width: 700px) {
  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1,
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1,
  body.page-service-areas main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1,
  body.page-blog main > section.contact-hero h1,
  body.page-faq main > section.contact-hero h1,
  body.page-contact main > section.contact-hero h1 {
    font-size: clamp(22px, 6.2vw, 27px) !important;
    line-height: 1.06 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    text-wrap: auto !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) h1 {
    font-size: clamp(22px, 5.8vw, 26px) !important;
  }

  body.page-about main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-gallery main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-service-areas main > section.hero:not(.hero-fullscreen):not(.liquid-hero) p,
  body.page-blog main > section.contact-hero p,
  body.page-faq main > section.contact-hero p,
  body.page-contact main > section.contact-hero p {
    font-size: 12.5px !important;
    line-height: 1.42 !important;
    overflow-wrap: anywhere !important;
  }

  .page-gallery .section-head h2,
  .page-service-areas main > section:nth-of-type(2) h2,
  .page-contact .lead-form-card h2 {
    font-size: clamp(27px, 7vw, 34px) !important;
    overflow-wrap: anywhere !important;
    text-wrap: auto !important;
  }
}

@media (max-width: 760px) {
  body.page-about main > section:has(.story-layout) {
    padding-top: 30px !important;
    padding-bottom: 34px !important;
  }

  body.page-about main > section:has(.story-layout) > .wrap {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  body.page-about .story-layout {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.page-about .story-card {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    margin: 0 !important;
    padding: 26px 20px !important;
    border-radius: 28px !important;
    overflow: visible !important;
  }

  body.page-about .story-card .kicker {
    margin-bottom: 6px !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.11em !important;
  }

  body.page-about .story-card p {
    width: calc(100vw - 66px) !important;
    max-width: calc(100vw - 66px) !important;
    font-size: clamp(18px, 4.8vw, 20px) !important;
    line-height: 1.62 !important;
    font-weight: 650 !important;
    color: #3f2819 !important;
    margin-bottom: 22px !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  body.page-about .story-card blockquote {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 28px !important;
    font-size: clamp(20px, 5.2vw, 23px) !important;
    line-height: 1.25 !important;
  }

  body.page-about .fact-stack {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 16px !important;
  }
}

/* Mobile checkout: keep the order flow roomy, keyboard-safe, and navigable. */
body:has(.checkout-modal:not([hidden])) {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

.checkout-modal {
  box-sizing: border-box !important;
}

.checkout-modal[hidden] {
  display: none !important;
}

@media (max-width: 760px) {
  body:has(.checkout-modal:not([hidden])) .topbar,
  body:has(.checkout-modal:not([hidden])) .mobile-call {
    display: none !important;
  }

  .checkout-modal {
    inset: 0 !important;
    z-index: 1000 !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important;
    background: rgba(17, 7, 0, 0.78) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
  }

  .checkout-dialog {
    width: 100% !important;
    max-width: 540px !important;
    height: min(760px, calc(var(--checkout-vh, 100dvh) - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)))) !important;
    max-height: calc(var(--checkout-vh, 100dvh) - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom))) !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    padding: 0 !important;
    border-radius: 26px !important;
    background: #fff8ec !important;
    box-shadow: 0 22px 74px rgba(0, 0, 0, 0.42) !important;
  }

  .checkout-head {
    flex: 0 0 auto !important;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 18px 18px 14px !important;
  }

  .checkout-head .kicker {
    display: inline-flex !important;
    padding: 6px 9px !important;
    font-size: 10px !important;
    line-height: 1 !important;
    letter-spacing: 0.1em !important;
  }

  .checkout-head h2 {
    font-size: clamp(31px, 9vw, 42px) !important;
    line-height: 0.98 !important;
    letter-spacing: 0 !important;
    margin: 9px 0 7px !important;
    max-width: 310px !important;
  }

  .checkout-head p {
    font-size: 14px !important;
    line-height: 1.35 !important;
    max-width: 330px !important;
  }

  .checkout-close {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    flex: 0 0 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: 0 !important;
    font-size: 24px !important;
  }

  .checkout-progress {
    flex: 0 0 auto !important;
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
    padding: 10px 14px !important;
    overflow: visible !important;
  }

  .checkout-progress span {
    min-height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 7px 4px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .checkout-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 16px 16px calc(14px + env(safe-area-inset-bottom)) !important;
    scroll-padding: 88px 0 110px !important;
  }

  .checkout-step.active {
    gap: 13px !important;
  }

  .checkout-grid,
  .checkout-choice,
  .payment-options {
    grid-template-columns: 1fr !important;
    gap: 11px !important;
  }

  .checkout-field {
    gap: 6px !important;
  }

  .checkout-field label {
    font-size: 12.5px !important;
    line-height: 1.15 !important;
  }

  .checkout-field input,
  .checkout-field textarea,
  .checkout-field select {
    min-height: 50px !important;
    border-radius: 16px !important;
    padding: 13px 14px !important;
    font-size: 16px !important;
    line-height: 1.25 !important;
  }

  .checkout-field textarea {
    min-height: 78px !important;
  }

  .checkout-choice label,
  .payment-card,
  .payment-option,
  .checkout-summary-item,
  .checkout-confirmation,
  .payment-intro,
  .payment-note {
    border-radius: 16px !important;
    padding: 13px !important;
  }

  .checkout-actions {
    position: sticky !important;
    bottom: calc(-1 * env(safe-area-inset-bottom)) !important;
    z-index: 3 !important;
    display: grid !important;
    grid-template-columns: 0.8fr 1.2fr !important;
    gap: 8px !important;
    margin: 14px -16px calc(-14px - env(safe-area-inset-bottom)) !important;
    padding: 10px 16px calc(12px + env(safe-area-inset-bottom)) !important;
    background: linear-gradient(180deg, rgba(255, 248, 236, 0.84), #fff8ec 22%) !important;
    border-top: 1px solid rgba(24, 9, 0, 0.08) !important;
  }

  .checkout-actions button,
  .checkout-actions a {
    width: 100% !important;
    min-height: 46px !important;
    padding: 12px 13px !important;
    font-size: 13px !important;
  }

  .checkout-actions.single-action {
    grid-template-columns: 1fr !important;
  }

  .checkout-actions.single-action .secondary[disabled] {
    display: none !important;
  }

  body.checkout-keyboard-open .checkout-dialog {
    height: calc(var(--checkout-vh, 100dvh) - 10px) !important;
    max-height: calc(var(--checkout-vh, 100dvh) - 10px) !important;
    border-radius: 18px !important;
  }

  body.checkout-keyboard-open .checkout-head {
    padding: 10px 14px 9px !important;
  }

  body.checkout-keyboard-open .checkout-head .kicker,
  body.checkout-keyboard-open .checkout-head p {
    display: none !important;
  }

  body.checkout-keyboard-open .checkout-head h2 {
    font-size: 24px !important;
    line-height: 1.05 !important;
    margin: 0 !important;
  }

  body.checkout-keyboard-open .checkout-close {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    flex-basis: 38px !important;
  }

  body.checkout-keyboard-open .checkout-progress {
    padding: 7px 10px !important;
    gap: 5px !important;
  }

  body.checkout-keyboard-open .checkout-progress span {
    min-height: 30px !important;
    font-size: 10px !important;
    padding: 5px 3px !important;
  }

  body.checkout-keyboard-open .checkout-body {
    padding: 12px 14px calc(12px + env(safe-area-inset-bottom)) !important;
    scroll-padding: 58px 0 96px !important;
  }
}

@media (max-width: 380px) {
  .checkout-head h2 {
    font-size: 29px !important;
    max-width: 250px !important;
  }

  .checkout-head p {
    font-size: 13px !important;
  }

  .checkout-progress span {
    font-size: 10px !important;
  }
}
