.program-selector-section {
  --journey-paper: #fffdf2; --journey-hover: #fff2b8; --journey-line: #d3d9bc;
  background: #e8f2e9; color: #103d50; padding-block: 64px;
  transition: background-color .4s;
}
.program-selector-section[data-trip-period="morning"] { background: #efdec1; }
.program-selector-section[data-trip-period="day"] { background: #c8e9ec; }
.program-selector-section[data-trip-period="fishing"] { background: #d7e8df; }
.program-selector-heading { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin-bottom: 30px; }
.program-selector-heading .eyebrow { color: #28656b; margin-bottom: 16px; }
.program-selector-heading h2 { color: #103d50; font: 600 clamp(31px,3.3vw,48px)/1.12 Oswald,sans-serif; }
.program-selector-heading>p { max-width: 305px; font-size: 15px; line-height: 1.8; color: #365c69; }
.program-choices { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.program-choice {
  display: flex; flex-direction: column; justify-content: space-between; position: relative; isolation: isolate;
  overflow: hidden; min-height: 320px; padding: 23px; text-align: left; border: 2px solid transparent;
  border-radius: 15px; background: #12485a; color: #fff; cursor: pointer;
  box-shadow: 0 9px 25px #063a4a26; transition: border-color .25s, transform .25s, box-shadow .25s;
}
.program-choice-photo { position: absolute; inset: 0; z-index: -2; background-size: cover; background-position: center; filter: saturate(.6) brightness(.72); transition: filter .5s,transform .6s; }
.program-choice:after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg,#002c43ed,#02314655 72%,#05364726); pointer-events: none; }
.program-choice:hover { transform: translateY(-3px); box-shadow: 0 14px 32px #063a4a40; }
.program-choice:hover .program-choice-photo { filter: saturate(1) brightness(.98); }
.program-choice[aria-expanded="true"] { border-color: #ffe140; box-shadow: 0 0 0 2px #e1bc1c,0 14px 32px #063a4a36; }
.program-choice[aria-expanded="true"] .program-choice-photo { filter: saturate(1.12) brightness(1.08); transform: scale(1.035); }
.program-choice-tag { align-self: flex-start; color: #fff; background: #073c51a8; padding: 5px 9px; border-radius: 5px; font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.program-choice-copy { display: grid; gap: 12px; margin-top: 50px; }
.program-choice-title { font: 600 39px/1.08 Oswald,sans-serif; }
.program-choice-teaser { display: block; font-size: 14px; line-height: 1.6; min-height: 45px; }
.program-choice-action { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid #f2faff55; color: #ffe667; font-size: 13px; font-weight: 800; }
.program-choice-arrow { font-size: 22px; line-height: 1; }
.program-action-open { display: none; }
.program-choice[aria-expanded="true"] .program-action-closed { display: none; }
.program-choice[aria-expanded="true"] .program-action-open { display: inline; }
.program-choice[aria-expanded="true"] .program-choice-arrow { transform: rotate(180deg); }
.program-choice-check { position: absolute; top: 16px; right: 16px; display: grid; place-items: center; width: 29px; height: 29px; border-radius: 50%; background: #ffe140; color: #103d50; opacity: 0; }
.program-choice[aria-expanded="true"] .program-choice-check { opacity: 1; }
.program-details { margin-top: 26px; scroll-margin-top: 106px; }
.program-details[hidden],.program-panel[hidden] { display: none; }
.program-details-toolbar {
  display: flex; justify-content: space-between; align-items: center; gap: 14px;
  position: sticky; top: var(--program-header-height,88px); z-index: 9;
  padding: 9px; border: 1px solid #b5cfc8; border-radius: 10px;
  background: #f3f9f1f5; backdrop-filter: blur(12px); box-shadow: 0 5px 18px #174e5a20;
}
.program-switches { display: flex; gap: 5px; }
.program-switches button,.program-close { border: 0; min-height: 44px; padding: 10px 20px; border-radius: 6px; color: #103d50; background: transparent; font: 800 14px/1.4 Manrope,sans-serif; cursor: pointer; }
.program-switches button[aria-pressed="true"] { color: #fff; background: #103d50; box-shadow: inset 0 -3px 0 #ffe140; }
.program-close { display: flex; align-items: center; gap: 12px; background: #e5eee6; }
.program-close>span:last-child { font-size: 24px; line-height: 1; }
.program-choice:focus-visible,.program-switches button:focus-visible,.program-close:focus-visible { outline: 3px solid #cca21d; outline-offset: 4px; }
.program-panel { max-width: 940px; margin: 0 auto; padding: 28px 0 4px; animation: program-reveal .3s ease-out; }
.program-panel-heading { margin-bottom: 24px; }
.program-panel-heading h3 { color: #103d50; font: 500 clamp(27px,3vw,36px)/1.2 Oswald,sans-serif; margin: 0 0 13px; }
.program-panel-heading>p { font-size: 15px; line-height: 1.8; max-width: 790px; }
.program-panel-heading .program-included { margin-top: 12px; font-weight: 700; color: #1d6671; }
.program-panel .fishing-facts { color: #1d6671; font-size: 14px; margin-top: 16px; }
.program-timing-note { color: #365c69; font-size: 14px; line-height: 1.75; margin-top: 22px; }
.program-contact { background: #ffe140; color: #103d50; margin-top: 20px; border: 1px solid #c8aa16; border-radius: 7px; font-size: 14px; }
.program-selector-section .timeline .journey-stop { min-height: 90px; }
@keyframes program-reveal { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@media(max-width:1000px) {
  .program-choice { padding: 19px; min-height: 325px; }
  .program-choice-title { font-size: 33px; }
  .program-choice-teaser { font-size: 13px; min-height: 60px; }
  .program-choice-action { font-size: 12px; }
}
@media(max-width:760px) {
  .program-selector-section { padding-block: 40px; }
  .program-selector-heading { display: block; margin-bottom: 23px; }
  .program-selector-heading h2 { font-size: 33px; }
  .program-selector-heading>p { max-width: 420px; margin-top: 16px; font-size: 14px; }
  .program-selector-heading .eyebrow { font-size: 10px; }
  .program-choices { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .program-choice { min-height: 265px; padding: 15px 13px; border-radius: 11px; }
  .program-choice[data-program="fishing"] { grid-column: 1 / -1; min-height: 200px; }
  .program-choice[data-program="fishing"] .program-choice-photo { background-position: center 49%; }
  .program-choice-copy { gap: 9px; margin-top: 35px; }
  .program-choice-title { font-size: 31px; }
  .program-choice-tag { font-size: 8px; padding: 4px 6px; letter-spacing: .025em; }
  .program-choice-teaser { font-size: 12px; min-height: 58px; line-height: 1.6; }
  .program-choice[data-program="fishing"] .program-choice-teaser { min-height: 0; }
  .program-choice-action { font-size: 11px; line-height: 1.45; gap: 5px; }
  .program-choice-check { top: 11px; right: 10px; width: 22px; height: 22px; font-size: 12px; }
  .program-details { scroll-margin-top: 90px; margin-top: 18px; }
  .program-details-toolbar { padding: 5px; gap: 5px; top: var(--program-header-height,72px); }
  .program-switches { gap: 2px; flex: 1; }
  .program-switches button { flex: 1; padding: 9px 8px; font-size: 12px; }
  .program-close { padding: 7px 10px; min-width: 42px; justify-content: center; }
  .program-close>span:first-child { display: none; }
  .program-panel { padding-top: 24px; }
  .program-panel-heading h3 { font-size: 28px; }
  .program-panel-heading>p,.program-panel .fishing-facts { font-size: 14px; }
  .program-timing-note { font-size: 13px; }
}
@media(prefers-reduced-motion:reduce) {
  .program-choice,.program-choice-photo,.program-selector-section { transition: none; }
  .program-panel { animation: none; }
}
@media print {
  .program-details[hidden],.program-panel[hidden] { display: block!important; }
  .program-choices,.program-details-toolbar { display: none; }
}
