/* A clear first screen, readable copy and shorter, expandable itineraries. */
.hero .hero-copy {
  width: 50%;
  padding-right: 35px;
}
.hero .hero-visual { left: 46%; width: 54%; }
.hero .hero-image { object-position: 50% 50%; }
.hero:before {
  background: linear-gradient(90deg, #073d51 0%, #073d51 40%, #073d51a8 50%, #073d5100 63%),
    linear-gradient(0deg, #052c4866, transparent 45%);
}
.hero h1 { font-size: clamp(60px, 5.8vw, 88px); }
.hero-mobile-shot { display: none; }
.hero .hero-description { font-size: 17px; line-height: 1.8; }
.hero .hero-footnote, .hero .hero-fishing-link, .hero .text-link { font-size: 14px; }
.hero .photo-label { display: none; }
.route-card p, .included-grid p, .section-intro,
.feature-panel p, .fishing-description { font-size: 15px; line-height: 1.75; }
.reviews-section { padding-block: 70px; }
.reviews-heading { margin-bottom: 28px; }
.reviews-heading h2 { font-size: clamp(32px, 3.3vw, 46px); }
.reviews-heading p { font-size: 15px; }
.included-value { max-width: 810px; margin-bottom: 30px; font-size: 17px; line-height: 1.8; color: #d9ece8; }
.trip-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin: 0 0 36px; }
.trip-facts>div { padding-left: 18px; border-left: 3px solid var(--yellow); }
.trip-facts strong { display: block; font: 500 32px/1.3 Oswald, sans-serif; color: #ffe449; }
.trip-facts span { display: block; margin-top: 7px; font-size: 14px; color: #d9ece8; }
.schedule-section .timeline p, .fishing-section .timeline p { font-size: 15px; line-height: 1.7; }
.schedule-section .timeline h3, .fishing-section .timeline h3 { font-size: 17px; line-height: 1.45; }
.schedule-section .journey-time time, .fishing-section .journey-time time { font-size: 12px; }
.schedule-section .schedule-aside>p:not(.eyebrow):not(.selected-period),
.schedule-note p, .schedule-section .schedule-bottom, .fishing-note { font-size: 14px; line-height: 1.75; }
.itinerary-details { margin-bottom: 20px; }
.itinerary-details>summary {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  cursor: pointer; padding: 15px 18px; border: 1px solid #41697770;
  border-radius: 9px; color: #103d50; background: #fbfcf3e8;
  font-size: 15px; font-weight: 800; list-style: none;
}
.itinerary-details>summary::-webkit-details-marker { display: none; }
.itinerary-toggle { font-size: 22px; font-weight: 500; line-height: 1; }
.itinerary-hide { display: none; }
.itinerary-details[open] .itinerary-hide { display: inline; }
.itinerary-details[open] .itinerary-show { display: none; }
.itinerary-details[open] .itinerary-toggle { transform: rotate(45deg); }
.itinerary-details[open]>summary { margin-bottom: 18px; }
.itinerary-details[open]+.itinerary-summary { display: none; }
.itinerary-summary .journey-stop { min-height: 104px; }
.mobile-period-bar { display: none; }
.booking-note h4 { color: var(--ink); font-size: 16px; margin: 0 0 10px; }
.booking-note p { font-size: 14px; line-height: 1.8; margin: 0; }
@media (max-width: 1120px) and (min-width: 761px) {
  .hero .hero-copy { width: 53%; padding-left: 36px; padding-right: 24px; }
  .hero h1 { font-size: 64px; }
}
@media (max-width: 760px) {
  .hero .hero-visual { display: none; }
  .hero:before { display: none; }
  .hero .hero-copy {
    width: 100%; min-height: 0; padding: 30px 24px 28px;
    background: #073d51;
  }
  .hero { min-height: 0; }
  .hero h1 { font-size: clamp(45px, 11.6vw, 72px); line-height: 1.08; }
  .hero .eyebrow { margin-bottom: 16px; }
  .hero .hero-description { font-size: 15px; margin-top: 18px; line-height: 1.7; }
  .hero .hero-mobile-shot {
    display: block; width: calc(100% + 48px); max-width: none; height: 270px;
    margin: 24px -24px 0; object-fit: cover; object-position: 50% 53%;
  }
  .hero .hero-actions { margin-top: 24px; gap: 19px; }
  .hero .hero-footnote { margin-top: 20px; }
  .hero .hero-fishing-link { margin-top: 20px; }
  .hero .button-navy { font-size: 14px; min-height: 52px; }
  .feature-toggle small { font-size: 11px; }
  .feature-panel p, .route-card p, .included-grid p, .fishing-description { font-size: 14px; line-height: 1.75; }
  .route-card h3 { font-size: 23px; }
  .route-card-copy { padding: 18px 14px; }
  .route-card { grid-template-columns: 39% 1fr; }
  .reviews-section { padding-block: 45px; }
  .reviews-heading h2 { font-size: 33px; }
  .reviews-heading p { font-size: 14px; }
  .included-heading h2 { white-space: normal; font-size: 33px; }
  .included-value { font-size: 15px; margin-bottom: 25px; }
  .trip-facts { gap: 18px; grid-template-columns: 1fr; margin-bottom: 28px; }
  .trip-facts>div { padding-left: 14px; }
  .trip-facts strong { font-size: 26px; }
  .trip-facts span { font-size: 14px; margin-top: 3px; }
  .schedule-section .period-picker { position: relative; top: auto; z-index: 1; }
  .mobile-period-bar {
    display: grid; grid-template-columns: 1fr 1fr; gap: 5px;
    position: sticky; top: var(--header-height, 72px); z-index: 8;
    height: 54px; padding: 5px; margin: -54px 0 18px;
    background: #f7fcf4f5; border: 1px solid #adc9c4; border-radius: 9px;
    opacity: 0; pointer-events: none; box-shadow: 0 5px 12px #06334524;
  }
  .mobile-period-bar.is-visible { opacity: 1; pointer-events: auto; }
  .mobile-period-bar button {
    display: flex; align-items: center; justify-content: center; gap: 12px;
    padding: 7px 10px; border: 0; border-radius: 5px; cursor: pointer;
    color: #103d50; background: transparent; font-size: 14px; font-weight: 800;
  }
  .mobile-period-bar button span { visibility: hidden; }
  .mobile-period-bar button[aria-pressed="true"] { background: #123f52; color: #fff; }
  .mobile-period-bar button[aria-pressed="true"] span { visibility: visible; color: var(--yellow); }
  .mobile-selection-summary { font-size: 14px; line-height: 1.65; }
  .schedule-section .timeline .journey-stop, .fishing-section .timeline .journey-stop {
    grid-template-columns: 86px minmax(0, 1fr); gap: 12px; padding: 17px 12px;
    min-height: 96px; border-radius: 11px;
  }
  .schedule-section .timeline h3, .fishing-section .timeline h3 { font-size: 16px; }
  .schedule-section .timeline p, .fishing-section .timeline p { font-size: 14px; }
  .schedule-section .journey-time time, .fishing-section .journey-time time { font-size: 11px; }
  .schedule-section .schedule-mobile-note, .schedule-section .schedule-bottom, .fishing-note { font-size: 13px; }
  .fishing-aside, .fishing-schedule { padding: 21px 17px; }
  .schedule-section .itinerary-details, .fishing-section .itinerary-details { scroll-margin-top: 135px; }
}
@media (max-width: 365px) {
  .schedule-section .timeline .journey-stop, .fishing-section .timeline .journey-stop {
    grid-template-columns: 1fr; gap: 9px; padding: 16px 13px;
  }
  .schedule-section .journey-time time, .fishing-section .journey-time time { display: inline-block; min-width: 95px; }
}
@media (prefers-reduced-motion: reduce) {
  .timeline .journey-stop { transition: none; }
}
