/* Panama Unscripted V50 — Heather review edition.
   Mobile typography refinement only; desktop layout and public copy remain unchanged. */

@media (max-width: 1320px) {
  .menu-btn {
    width: 48px;
    height: 48px;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 50%;
    font-size: 1.45rem;
    line-height: 1;
    backdrop-filter: blur(8px);
    background: rgba(255,255,255,.06);
  }

  .menu-btn:focus-visible,
  .mobile-close:focus-visible,
  .mobile-menu a:focus-visible {
    outline: 2px solid var(--gold, #dda719);
    outline-offset: 4px;
  }

  .mobile-menu {
    display: block;
    visibility: hidden;
    opacity: 0;
    transform: translateX(100%);
    transition: transform .28s ease, opacity .22s ease, visibility 0s linear .28s;
    width: min(88vw, 390px);
    left: auto;
    padding: calc(92px + env(safe-area-inset-top)) 28px calc(34px + env(safe-area-inset-bottom));
    overflow-y: auto;
    background:
      radial-gradient(circle at 82% 8%, rgba(221,167,25,.18), transparent 30%),
      #12372f;
    box-shadow: -24px 0 60px rgba(0,0,0,.28);
  }

  .mobile-menu::before {
    content: "Panama Unscripted";
    position: absolute;
    top: calc(28px + env(safe-area-inset-top));
    left: 28px;
    max-width: 210px;
    color: #fff;
    font-family: "Cormorant Garamond", serif;
    font-size: 1.65rem;
    font-style: italic;
    font-weight: 600;
    line-height: 1;
  }

  .mobile-menu.open {
    display: block;
    visibility: visible;
    opacity: 1;
    transform: translateX(0);
    transition: transform .28s ease, opacity .22s ease;
  }

  .mobile-menu a {
    margin: 0;
    padding: 16px 0;
    border-bottom: 1px solid rgba(255,255,255,.12);
    color: rgba(255,255,255,.94);
    font-family: "Montserrat", sans-serif;
    font-size: .96rem;
    font-weight: 700;
    letter-spacing: .11em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  .mobile-menu a:last-of-type {
    margin-top: 22px;
    padding: 16px 18px;
    border: 0;
    border-radius: 3px;
    background: var(--gold, #dda719);
    color: #10271f;
    text-align: center;
  }

  .mobile-close {
    top: calc(18px + env(safe-area-inset-top));
    right: 20px;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 50%;
    font-size: 1.7rem;
    line-height: 1;
  }

  body.menu-open {
    overflow: hidden;
    touch-action: none;
  }
}

@media (max-width: 760px) {
  html {
    scroll-padding-top: 86px;
  }

  body {
    font-size: 17px;
  }

  .container,
  .site-nav .container {
    width: calc(100% - 32px) !important;
  }

  .site-nav,
  .site-nav.scrolled {
    padding: 11px 0 !important;
    background: rgba(10, 35, 29, .96);
    box-shadow: 0 7px 24px rgba(0,0,0,.18);
    backdrop-filter: blur(14px);
  }

  .site-nav .nav-inner {
    min-height: 60px;
    gap: 14px !important;
  }

  .site-nav .brand {
    max-width: calc(100% - 64px) !important;
    transform: none !important;
  }

  .site-nav .brand-main {
    font-size: 1.92rem !important;
    line-height: .78 !important;
  }

  .site-nav .brand-sub {
    margin-top: 7px !important;
    font-size: .5rem !important;
    letter-spacing: .145em !important;
  }

  .menu-btn {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    font-size: 1.3rem;
  }

  .eyebrow {
    font-size: .69rem;
    line-height: 1.45;
    letter-spacing: .15em;
  }

  .btn {
    min-height: 48px;
    max-width: 100%;
    padding: .88rem 1rem;
    font-size: .76rem;
    line-height: 1.35;
    letter-spacing: .075em;
    text-align: center;
    white-space: normal;
  }

  /* Homepage hero */
  .hero {
    min-height: max(700px, 100svh) !important;
    align-items: end !important;
  }

  .hero-bg {
    object-position: 59% center !important;
  }

  .hero-overlay {
    background:
      linear-gradient(0deg, rgba(4,20,16,.94) 0%, rgba(4,20,16,.72) 36%, rgba(4,20,16,.20) 72%, rgba(4,20,16,.05) 100%),
      linear-gradient(90deg, rgba(5,24,19,.32), rgba(5,24,19,.05)) !important;
  }

  .hero .container {
    width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .hero-content {
    max-width: 430px !important;
    padding: 120px 0 32px !important;
  }

  .hero h1 {
    max-width: 350px !important;
    margin: 10px 0 13px !important;
    font-size: clamp(3.15rem, 14.3vw, 4.6rem) !important;
    line-height: .91 !important;
  }

  .hero h1 span {
    margin-top: 11px;
    font-size: .42em;
    letter-spacing: .045em;
  }

  .hero-copy {
    max-width: 355px !important;
    margin-bottom: 18px !important;
    font-size: 1.02rem !important;
    line-height: 1.62 !important;
  }

  .hero-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 9px !important;
    margin-top: 0 !important;
  }

  .hero-actions .btn {
    width: 100% !important;
    min-width: 0;
  }

  .hero-actions .btn:first-child {
    grid-column: 1 / -1;
  }

  /* Inner-page heroes */
  .page-hero {
    min-height: 590px;
    display: flex;
    align-items: flex-end;
    padding: 132px 0 58px !important;
    background-position: center !important;
  }

  .page-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(0deg, rgba(8,34,28,.84), rgba(8,34,28,.17) 70%);
  }

  .page-hero .container {
    position: relative;
    z-index: 1;
  }

  .page-hero h1 {
    margin: 11px 0 16px;
    font-size: clamp(3rem, 14vw, 4.35rem) !important;
    line-height: .92;
  }

  .page-hero p:not(.eyebrow) {
    font-size: 1.02rem;
    line-height: 1.67;
  }

  /* Consistent mobile rhythm */
  .section,
  .signature,
  .panama-map,
  .heather,
  .quick-inquiry,
  .experiences,
  .coffee-country,
  .outreach,
  .merch-teaser,
  .final,
  .postcard-feature {
    padding-top: 62px !important;
    padding-bottom: 62px !important;
  }

  .section-title,
  .signature-copy h2,
  .map-intro h2,
  .section-head h2,
  .heather-copy h2,
  .quick-inquiry-copy h2,
  .coffee-copy h2,
  .outreach-heading h2,
  .merch-copy h2,
  .colon-copy h2,
  .final h2,
  .postcard-feature-copy h2 {
    font-size: clamp(2.65rem, 11.7vw, 3.55rem) !important;
    line-height: .96 !important;
    margin-top: 9px !important;
    margin-bottom: 18px !important;
  }

  .lead,
  .signature-copy p,
  .map-intro p,
  .heather-copy p,
  .quick-inquiry-copy p,
  .section-head p,
  .coffee-copy p,
  .outreach-heading p,
  .outreach-copy p,
  .merch-copy p,
  .colon-copy p,
  .final p,
  .postcard-feature-copy p {
    font-size: 1.02rem;
    line-height: 1.72 !important;
  }

  /* Signature story and photographs */
  .signature-grid {
    display: block !important;
  }

  .promise-line {
    margin: 24px 0 !important;
    padding: 2px 0 2px 16px !important;
    font-size: 1.48rem !important;
    line-height: 1.32 !important;
  }

  .watercolor-frame {
    margin: 32px 0 28px !important;
    padding: 9px !important;
    transform: none !important;
    border-radius: 4px;
  }

  .watercolor-frame::after {
    left: 15px;
    right: 15px;
    bottom: 15px;
    padding: 10px;
    font-size: .6rem;
    letter-spacing: .09em;
  }

  .postcards {
    position: relative !important;
    display: grid !important;
    grid-auto-flow: column;
    grid-auto-columns: min(82vw, 315px);
    gap: 18px;
    min-height: 0 !important;
    margin: 34px -16px 0;
    padding: 12px 16px 28px;
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
  }

  .postcards::-webkit-scrollbar,
  .principles-grid::-webkit-scrollbar,
  .outreach-gallery::-webkit-scrollbar,
  .outreach-route::-webkit-scrollbar,
  .map-places::-webkit-scrollbar {
    display: none;
  }

  .postcard,
  .postcard.one,
  .postcard.two,
  .postcard.three,
  .postcard.four {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    padding: 9px 9px 22px !important;
    transform: none !important;
    scroll-snap-align: center;
    border-radius: 3px;
  }

  .postcard small {
    min-height: 42px;
    margin-top: 9px;
    font-size: 1.02rem;
  }

  /* Approach cards become a clean, swipeable row instead of cramped tiles */
  .principles {
    padding: 48px 0 !important;
  }

  .principles-grid {
    display: grid !important;
    grid-auto-flow: column;
    grid-auto-columns: min(78vw, 300px);
    grid-template-columns: none !important;
    gap: 14px !important;
    margin: 0 -16px;
    padding: 8px 16px 24px;
    overflow-x: auto;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
  }

  .principle,
  .principle:last-child {
    display: block !important;
    grid-column: auto !important;
    scroll-snap-align: center;
    border-radius: 5px;
  }

  .principle:last-child img,
  .principle img {
    width: 100%;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover;
  }

  .principle-body {
    min-height: 128px;
    padding: 19px 17px 20px !important;
  }

  .principle h3 {
    font-size: .77rem !important;
    line-height: 1.35;
  }

  .principle p {
    font-size: .96rem !important;
    line-height: 1.58 !important;
  }

  /* Map */
  .map-intro {
    display: block !important;
    margin-bottom: 25px;
  }

  .map-intro p:last-child {
    margin-top: 17px;
  }

  .map-shell {
    border-radius: 12px;
    box-shadow: 0 16px 38px rgba(31,54,45,.13);
  }

  .map-shell iframe,
  #panamaInteractiveMap {
    height: 335px !important;
    min-height: 335px !important;
    border-radius: 0 !important;
  }

  .map-footer {
    display: block !important;
    padding: 16px !important;
  }

  .map-places {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    margin: 0 -16px;
    padding: 2px 16px 14px !important;
    overflow-x: auto !important;
    scrollbar-width: none;
  }

  .map-place,
  [data-map-query] {
    flex: 0 0 auto !important;
    min-height: 40px !important;
    padding: 9px 13px !important;
    border-radius: 999px !important;
  }

  .map-story-card {
    max-width: none;
    margin: 2px 0 16px !important;
    padding: 15px 16px !important;
    border-radius: 6px;
  }

  .map-actions {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 9px !important;
  }

  .map-actions .btn {
    width: 100%;
  }

  /* Heather */
  .heather-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  .heather-photo {
    margin: 0 !important;
  }

  .heather .heather-photo img,
  .heather .heather-card img,
  .heather .heather-image img {
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 4 / 5;
    border-radius: 5px;
    box-shadow: 0 17px 38px rgba(31,54,45,.16);
  }

  .quote {
    margin: 23px 0;
    padding-left: 16px;
    font-size: 1.4rem;
    line-height: 1.35;
  }

  .heather-moment {
    width: 100% !important;
    max-width: 100% !important;
    margin: 25px 0 0 !important;
    padding: 12px !important;
    border-radius: 6px;
  }

  .heather-moment > video {
    aspect-ratio: 16 / 9;
    border-radius: 3px;
  }

  /* Forms */
  .quick-inquiry-grid,
  .two-col,
  .form-grid,
  .postcard-feature-grid {
    grid-template-columns: 1fr !important;
  }

  .quick-inquiry-grid,
  .two-col {
    gap: 32px !important;
  }

  .quick-form,
  .form-wrap {
    padding: 19px !important;
    border-radius: 7px;
    box-shadow: 0 14px 34px rgba(31,54,45,.10);
  }

  .quick-form {
    grid-template-columns: 1fr !important;
    gap: 13px !important;
  }

  .quick-form .full,
  .form-field.full {
    grid-column: auto !important;
  }

  input,
  select,
  textarea,
  .quick-form input,
  .quick-form textarea {
    min-height: 48px;
    padding: 13px 14px !important;
    border-radius: 2px;
    font-size: 16px !important;
  }

  textarea,
  .quick-form textarea {
    min-height: 170px !important;
  }

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

  .check {
    min-height: 48px;
    align-items: center;
  }

  .quick-form .btn,
  .form-wrap .btn {
    width: 100%;
  }

  /* Mobile readability refinements */
  .experience-info p,
  .card p,
  .list div,
  .contact-box span,
  .check {
    font-size: .96rem !important;
    line-height: 1.65 !important;
  }

  label,
  .form-field label {
    font-size: .7rem !important;
    line-height: 1.35;
  }

  .product-status,
  .outreach-route span,
  .map-place,
  [data-map-query] {
    font-size: .68rem !important;
  }

  /* Experience cards */
  .section-head {
    display: block !important;
    margin-bottom: 28px !important;
  }

  .section-head p {
    margin-top: 16px !important;
  }

  .experience-grid {
    grid-template-columns: 1fr !important;
    grid-auto-rows: 255px !important;
    gap: 13px !important;
  }

  .experience-card,
  .experience-card:first-child {
    min-height: 255px !important;
    grid-row: auto !important;
    border-radius: 7px;
  }

  .experience-info {
    left: 19px;
    right: 19px;
    bottom: 18px;
  }

  .experience-info h3 {
    font-size: 1.75rem;
  }

  /* Coffee and Colón */
  .coffee-grid,
  .merch-grid,
  .colon {
    grid-template-columns: 1fr !important;
  }

  .coffee-grid,
  .merch-grid {
    gap: 32px !important;
  }

  .coffee-art {
    min-height: 330px !important;
    border-radius: 7px;
  }

  .coffee-art::after {
    left: 16px;
    bottom: 16px;
    padding: 10px 12px;
    font-size: .66rem;
  }

  .availability-note,
  .note,
  .outreach-note,
  .form-preferred {
    padding: 15px 16px;
    font-size: .96rem;
    line-height: 1.65;
  }

  .colon {
    min-height: 0 !important;
  }

  .colon-image {
    min-height: 300px !important;
  }

  .colon-image::after {
    background: linear-gradient(0deg, rgba(18,55,47,.38), transparent 60%);
  }

  .colon-copy {
    padding: 58px 18px 62px !important;
  }

  /* Outreach */
  .outreach-heading {
    margin-bottom: 30px !important;
    text-align: left !important;
  }

  .outreach-grid {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }

  .outreach-gallery {
    display: grid !important;
    grid-auto-flow: column;
    grid-auto-columns: min(84vw, 330px);
    grid-template-columns: none !important;
    grid-auto-rows: auto !important;
    gap: 14px !important;
    min-height: 0 !important;
    margin: 0 -16px;
    padding: 8px 16px 24px;
    overflow-x: auto;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
  }

  .outreach-gallery figure {
    min-height: 255px;
    aspect-ratio: 4 / 3;
    scroll-snap-align: center;
    border-radius: 7px;
  }

  .outreach-gallery figcaption {
    left: 13px;
    right: 13px;
    bottom: 11px;
    font-size: .66rem !important;
  }

  .outreach-route {
    flex-wrap: nowrap !important;
    margin: 22px -16px !important;
    padding: 0 16px 10px;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .outreach-route span {
    flex: 0 0 auto;
  }

  .outreach-video {
    grid-template-columns: 1fr !important;
    gap: 21px !important;
    margin-top: 38px !important;
    padding: 17px !important;
    border-radius: 7px;
  }

  .outreach-video h3 {
    font-size: 2.25rem !important;
  }

  /* Merch and final */
  .merch-art {
    max-width: 440px;
    margin: 0 auto;
    padding: 10px;
    transform: none !important;
    border-radius: 5px;
  }

  .final {
    text-align: left !important;
    background-position: 60% center;
  }

  .final h2,
  .final p {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .final .btn {
    width: 100%;
  }

  /* Shared inner pages */
  .three-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .card {
    border-radius: 7px;
  }

  .card img {
    height: auto;
    aspect-ratio: 4 / 3;
  }

  .promise-art img {
    aspect-ratio: auto;
  }

  .card-body {
    padding: 21px !important;
  }

  .contact-box {
    align-items: flex-start;
    padding: 17px;
    border-radius: 6px;
  }

  .postcard-feature-art img {
    max-height: none !important;
  }

  .coffee-concept {
    min-height: 330px;
  }

  .coffee-bag {
    width: 195px;
    height: 255px;
  }

  footer {
    padding: 31px 0 !important;
  }

  .footer-inner {
    display: block !important;
    text-align: center;
  }

  .footer-inner p {
    font-size: .92rem;
    line-height: 1.55;
  }

  .footer-inner p + p {
    margin-top: 10px;
  }
}

@media (max-width: 390px) {
  .site-nav .brand-main {
    font-size: 1.76rem !important;
  }

  .site-nav .brand-sub {
    font-size: .46rem !important;
    letter-spacing: .12em !important;
  }

  .hero h1 {
    font-size: 3rem !important;
  }

  .hero-actions {
    grid-template-columns: 1fr !important;
  }

  .hero-actions .btn:first-child {
    grid-column: auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-menu,
  .btn,
  .experience-card img {
    transition: none !important;
  }
}

/* V51 — mobile-only navigation and postcard finishing fixes.
   Desktop remains unchanged. */
.mobile-nav-cta {
  display: none;
}

@media (max-width: 760px) {
  /* Keep a visible planning action in the mobile header while the full
     desktop navigation remains inside the menu. */
  .site-nav .nav-inner {
    gap: 8px !important;
  }

  .site-nav .brand {
    max-width: calc(100% - 128px) !important;
    margin-right: auto;
  }

  .mobile-nav-cta {
    display: inline-flex;
    flex: 0 0 auto;
    min-width: 66px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0 13px;
    border-radius: 3px;
    background: var(--gold, #dda719);
    color: #10271f;
    font-family: "Montserrat", sans-serif;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .10em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    box-shadow: 0 8px 18px rgba(0,0,0,.16);
  }

  .mobile-nav-cta:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
  }

  /* Make the final postcard scroll completely into view and keep every
     caption fully readable on touch screens. */
  .postcards {
    align-items: start;
    padding-right: 30px !important;
    padding-bottom: 46px !important;
    scroll-padding-inline: 16px 30px;
    -webkit-overflow-scrolling: touch;
  }

  .postcard,
  .postcard.one,
  .postcard.two,
  .postcard.three,
  .postcard.four {
    align-self: start;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding-bottom: 28px !important;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    touch-action: pan-x pan-y;
  }

  .postcard:hover,
  .postcard:active,
  .postcard:focus-within {
    transform: none !important;
  }

  .postcard small {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
    padding: 0 2px 2px;
    white-space: normal !important;
    text-overflow: clip !important;
  }

  .postcard.four {
    margin-right: 2px;
    padding-bottom: 32px !important;
  }
}

@media (max-width: 390px) {
  .mobile-nav-cta {
    min-width: 61px;
    padding-inline: 10px;
    font-size: .64rem;
  }

  .site-nav .brand {
    max-width: calc(100% - 120px) !important;
  }
}


/* V52 — mobile width and readability correction.
   Removes the artificial final carousel track, prevents document-wide horizontal
   drift, and raises true mobile type sizes. Desktop remains unchanged. */
@media (max-width: 760px) {
  html {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-x: clip;
    font-size: 18px;
  }

  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
    overflow-x: clip !important;
    position: relative;
    font-size: 18px;
  }

  .site-nav,
  main,
  section,
  footer {
    width: 100%;
    max-width: 100%;
  }

  .container,
  .site-nav .container {
    width: calc(100% - 28px) !important;
    max-width: calc(100% - 28px) !important;
  }

  /* Full-bleed swipe rows stay exactly viewport-wide without widening the page. */
  .postcards,
  .principles-grid,
  .outreach-gallery,
  .outreach-route,
  .map-places {
    width: calc(100% + 28px) !important;
    max-width: none !important;
    margin-left: -14px !important;
    margin-right: -14px !important;
    box-sizing: border-box;
  }

  .postcards {
    padding-left: 14px !important;
    padding-right: 14px !important;
    scroll-padding-inline: 14px;
  }

  .postcard.four,
  .postcard:last-child {
    margin-right: 14px !important;
  }

  .hero .container {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Readability: increase the elements that remained small because they use rem. */
  .hero-copy,
  .lead,
  .signature-copy p,
  .map-intro p,
  .heather-copy p,
  .quick-inquiry-copy p,
  .section-head p,
  .coffee-copy p,
  .outreach-heading p,
  .outreach-copy p,
  .merch-copy p,
  .colon-copy p,
  .final p,
  .postcard-feature-copy p {
    font-size: 1.06rem !important;
    line-height: 1.7 !important;
  }

  .experience-info p,
  .card p,
  .list div,
  .contact-box span,
  .check,
  .principle p,
  .availability-note,
  .note,
  .outreach-note,
  .form-preferred {
    font-size: 1rem !important;
    line-height: 1.64 !important;
  }

  .btn {
    min-height: 50px;
    padding: .9rem 1.05rem;
    font-size: .82rem;
    letter-spacing: .07em;
  }

  .mobile-nav-cta {
    min-height: 46px;
    padding-inline: 13px;
    font-size: .74rem;
    letter-spacing: .075em;
  }

  .mobile-menu a {
    font-size: 1rem;
    letter-spacing: .09em;
  }

  .eyebrow {
    font-size: .74rem;
    letter-spacing: .13em;
  }

  label,
  .form-field label,
  .quick-form label {
    font-size: .75rem !important;
    letter-spacing: .075em !important;
  }

  .postcard small {
    font-size: 1.06rem !important;
    line-height: 1.45;
  }

  .principle h3 {
    font-size: .84rem !important;
  }

  .product-status,
  .outreach-route span,
  .map-place,
  [data-map-query],
  .outreach-gallery figcaption,
  .coffee-art::after,
  .watercolor-frame::after {
    font-size: .74rem !important;
  }

  .footer-inner p {
    font-size: .98rem;
  }
}

@media (max-width: 390px) {
  .mobile-nav-cta {
    min-width: 62px;
    padding-inline: 9px;
    font-size: .7rem;
  }

  .site-nav .brand-main {
    font-size: 1.7rem !important;
  }

  .site-nav .brand-sub {
    font-size: .48rem !important;
  }
}

/* V53 — mobile outreach width correction.
   Keeps the "Heather and Scott" outreach copy inside the phone viewport while
   leaving the desktop layout unchanged. */
@media (max-width: 760px) {
  .outreach .container,
  .outreach-grid,
  .outreach-copy {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

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

  .outreach-copy > * {
    max-width: 100%;
  }

  .outreach-copy p,
  .outreach-copy strong,
  .outreach-details,
  .outreach-note {
    overflow-wrap: break-word;
    word-break: normal;
  }

  /* The route remains horizontally swipeable, but no longer enlarges the
     surrounding text column or pushes copy beyond the right edge. */
  .outreach-route {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* V55 — mobile-only breathing room for the Christmas outreach story copy. */
@media (max-width: 760px) {
  .outreach-copy {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}

/* V56 — mobile-only margin correction for the outreach introduction.
   Restores breathing room from “Something close to our hearts” through the
   opening paragraph ending in “boat delivery,” without changing desktop. */
@media (max-width: 760px) {
  .outreach-heading {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}

/* Postcard Test Version — mobile-only interactive postcard stack.
   Desktop and every other website section remain unchanged. */
@media (max-width: 760px) {
  .signature .postcards.postcard-stack-test {
    --active-card-width: min(82vw, 320px);
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 370px !important;
    height: 535px !important;
    min-height: 535px !important;
    margin: 38px auto 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
    touch-action: pan-y;
    isolation: isolate;
  }

  .signature .postcards.postcard-stack-test::after {
    content: "Tap a postcard to bring it forward";
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 0;
    z-index: 30;
    color: #52625b;
    font-family: "Montserrat", sans-serif;
    font-size: .69rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .08em;
    text-align: center;
    text-transform: uppercase;
  }

  .signature .postcards.postcard-stack-test .postcard,
  .signature .postcards.postcard-stack-test .postcard.one,
  .signature .postcards.postcard-stack-test .postcard.two,
  .signature .postcards.postcard-stack-test .postcard.three,
  .signature .postcards.postcard-stack-test .postcard.four {
    position: absolute !important;
    inset: auto !important;
    display: block !important;
    width: calc(var(--active-card-width) * .90) !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 9px 9px 28px !important;
    overflow: visible !important;
    border-radius: 3px;
    cursor: pointer;
    opacity: .94;
    scroll-snap-align: none !important;
    touch-action: manipulation;
    transform-origin: 50% 50%;
    transition: left .34s ease, top .34s ease, width .34s ease,
      transform .34s ease, opacity .25s ease, box-shadow .34s ease;
    -webkit-tap-highlight-color: transparent;
  }

  .signature .postcards.postcard-stack-test .postcard:focus-visible {
    outline: 3px solid var(--gold, #dda719);
    outline-offset: 5px;
  }

  .signature .postcards.postcard-stack-test .postcard.is-active {
    left: 50% !important;
    top: 48px !important;
    z-index: 20 !important;
    width: var(--active-card-width) !important;
    opacity: 1;
    transform: translateX(-50%) rotate(0deg) scale(1) !important;
    box-shadow: 0 22px 48px rgba(37,48,43,.28) !important;
  }

  /* Three exposed cards form a loose fan behind the active postcard. */
  .signature .postcards.postcard-stack-test .postcard[data-stack-position="1"] {
    left: 58% !important;
    top: 2px !important;
    z-index: 6 !important;
    transform: translateX(-50%) rotate(4.2deg) scale(.96) !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="2"] {
    left: 38% !important;
    top: 88px !important;
    z-index: 5 !important;
    transform: translateX(-50%) rotate(-4.4deg) scale(.94) !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="3"] {
    left: 57% !important;
    top: 292px !important;
    z-index: 4 !important;
    transform: translateX(-50%) rotate(3.2deg) scale(.92) !important;
  }

  .signature .postcards.postcard-stack-test .postcard small {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 9px 6px 0 !important;
    padding: 0 2px 2px !important;
    overflow: visible !important;
    font-size: 1.02rem !important;
    line-height: 1.38 !important;
    white-space: normal !important;
    text-overflow: clip !important;
  }

  .signature .postcards.postcard-stack-test .postcard:hover,
  .signature .postcards.postcard-stack-test .postcard:active,
  .signature .postcards.postcard-stack-test .postcard:focus-within {
    /* Position is controlled by the stack classes, not desktop hover rules. */
    box-shadow: 0 18px 38px rgba(37,48,43,.25);
  }
}

@media (max-width: 390px) {
  .signature .postcards.postcard-stack-test {
    --active-card-width: min(84vw, 310px);
    height: 515px !important;
    min-height: 515px !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="3"] {
    top: 278px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .signature .postcards.postcard-stack-test .postcard {
    transition: none !important;
  }
}

/* V58 — Postcard Test, slightly more open mobile fan.
   Mobile postcard positions only; no desktop or other section changes. */
@media (max-width: 760px) {
  .signature .postcards.postcard-stack-test {
    height: 565px !important;
    min-height: 565px !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="1"] {
    left: 61% !important;
    top: 0 !important;
    width: calc(var(--active-card-width) * .88) !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="2"] {
    left: 35% !important;
    top: 104px !important;
    width: calc(var(--active-card-width) * .88) !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="3"] {
    left: 61% !important;
    top: 318px !important;
    width: calc(var(--active-card-width) * .88) !important;
  }
}

@media (max-width: 390px) {
  .signature .postcards.postcard-stack-test {
    height: 545px !important;
    min-height: 545px !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="3"] {
    top: 302px !important;
  }
}

/* V59 — Postcard Test, slightly wider fan and instruction below the cards.
   Mobile postcard section only; desktop and all other sections are unchanged. */
@media (max-width: 760px) {
  .signature .postcards.postcard-stack-test {
    height: 610px !important;
    min-height: 610px !important;
    margin-bottom: 46px !important;
  }

  .signature .postcards.postcard-stack-test::after {
    top: calc(100% + 10px) !important;
    bottom: auto !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="1"] {
    left: 64% !important;
    top: 0 !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="2"] {
    left: 32% !important;
    top: 120px !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="3"] {
    left: 64% !important;
    top: 342px !important;
  }
}

@media (max-width: 390px) {
  .signature .postcards.postcard-stack-test {
    height: 590px !important;
    min-height: 590px !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="1"] {
    left: 63% !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="2"] {
    left: 33% !important;
    top: 114px !important;
  }

  .signature .postcards.postcard-stack-test .postcard[data-stack-position="3"] {
    left: 63% !important;
    top: 326px !important;
  }
}
