/* Shared small-screen guardrails, loaded after the legacy design layers. */
.contactPage .contactChannels { position: relative; z-index: 2; }
.contactPage .contactChannels img { object-fit: contain; }
.contactPage .contactMain { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.contactPage .contactMain > * { min-width: 0; }
.contactPage .contactForm { border-color: var(--navy-deep); box-shadow: 8px 9px 0 var(--yellow); }
.contactPage .contactMain > aside ul { padding-left: 1.2em; }
.contactPage .contactMain > aside li { display: list-item; list-style: disc; }
.contactPage .contactForm p { line-height: 1.9; }
.contactPage .contactForm .wpcf7 form > p { margin: 0 0 24px; }
.contactPage .contactForm .wpcf7 label, .contactPage .contactForm legend { font-size: 16px; font-weight: 700; }
.contactPage .contactForm .required { display: inline-block; margin-left: 8px; padding: 2px 7px; background: var(--yellow); color: var(--navy-deep); font-size: 12px; }
.contactPage .contactForm .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.contactPage .contactForm .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.contactPage .contactForm .wpcf7-list-item { margin: 0; }
.contactPage .contactForm .wpcf7-list-item label { display: flex; align-items: center; gap: 8px; margin: 0; min-height: 44px; cursor: pointer; }
.contactPage .contactForm input[type=radio] { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; accent-color: var(--navy-deep); }
.contactPage .contactForm input:not([type=radio]):not([type=submit]), .contactPage .contactForm textarea { background: #f4f7fa; color: var(--navy-deep); border-color: #9cacc0; border-radius: 4px; }
.contactPage .contactForm input[type=submit] { width: 100%; min-height: 56px; padding: 14px; color: var(--navy-deep); background: var(--yellow); border: 2px solid var(--navy-deep); font: inherit; font-weight: 800; cursor: pointer; }
.contactPage .contactForm input[type=submit]:hover { background: var(--navy-deep); color: #fff; }
.contactPage .contactForm a { text-decoration: underline; text-underline-offset: 4px; }
.contactPage .contactForm .wpcf7-not-valid-tip { margin-top: 6px; color: #b42318; font-size: 14px; }
.contactPage .contactForm :focus-visible { outline: 3px solid #2874ad; outline-offset: 3px; }
@media (max-width: 900px) {
  .contactPage .contactMain { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .contactPage .contactChannels img { grid-row: 1 / 4; align-self: center; }
  .contactPage .contactFormHeading h2 { font-size: 24px; line-height: 1.5; }
}
.memberCompletionHero { min-height: 360px; padding: 145px 24px 80px; }
.memberCompletionHero .kicker { color: var(--yellow); }
.memberCompletionHero h1 { font-size: clamp(30px, 5vw, 60px); line-height: 1.4; overflow-wrap: anywhere; }
.memberCompletionCard { position: relative; z-index: 2; width: min(820px, calc(100% - 48px)); margin: -32px auto 100px; padding: clamp(24px, 5vw, 52px); color: var(--navy-deep); background: #fff; border: 3px solid var(--navy-deep); box-shadow: 8px 9px 0 var(--yellow); }
.memberCompletionCard h2 { margin: 0 0 20px; font-size: clamp(24px, 4vw, 32px); line-height: 1.5; font-weight: 800; }
.memberCompletionCard p { font-size: 17px; line-height: 1.9; overflow-wrap: anywhere; }
.memberDeliveryHelp { margin-top: 28px; padding: 24px; background: #f0f5fa; border-left: 5px solid var(--yellow); }
.memberDeliveryHelp h3 { margin: 0 0 12px; font-size: 19px; font-weight: 800; }
.memberDeliveryHelp a { display: inline-block; margin: 12px 16px 0 0; font-size: 24px; font-weight: 900; color: var(--blue); text-decoration: underline; }
.memberDeliveryHelp span { display: inline-block; }
.memberCompletionActions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.memberCompletionActions a { flex: 1 1 220px; display: block; padding: 16px; text-align: center; font-weight: 800; background: var(--navy-deep); color: #fff; border: 2px solid var(--navy-deep); }
.memberCompletionActions a:hover, .memberCompletionActions a:focus-visible { background: var(--yellow); color: var(--navy-deep); }
.confirm-email-row td { overflow-wrap: anywhere; word-break: break-word; }
.confirmEmailHelp { display: block; margin-top: 6px; font-size: 13px; line-height: 1.6; color: #52627a; }
@media (max-width: 900px) {
  .productDetailMain { grid-template-columns: minmax(0, 1fr); }
  .productDetailMain > *, .productBuyBox, .productBuyBox form { min-width: 0; max-width: 100%; }
  .productQuantityRow { flex-wrap: wrap; }
  .productBuyBox .item_tags { flex-wrap: wrap; }
  .innerHeroCopy { min-width: 0; width: 100%; }
  .innerHero { min-height: 500px; padding-block: 100px 120px; }
  .innerHero h1 { font-size: clamp(32px, 8.5vw, 56px); line-height: 1.35; overflow-wrap: anywhere; }
  .experienceCopy h2 { font-size: clamp(30px, 8.2vw, 44px); line-height: 1.4; overflow-wrap: anywhere; }
  .newsHeading { grid-template-columns: minmax(0, 1fr); }
  .newsHeading > * { min-width: 0; }
  .newsHeading h2 { font-size: clamp(29px, 8.4vw, 42px); line-height: 1.35; overflow-wrap: anywhere; }
  .drinkPlanGrid { grid-template-columns: minmax(0, 1fr); }
  .drinkPlanCard, .drinkPlanTop, .drinkPlanTop h3, .drinkTermLinks a { min-width: 0; }
  .drinkPlanTop h3 { overflow-wrap: anywhere; word-break: normal; }
  .contentSectionHeading h2 { font-size: clamp(30px, 8vw, 52px); overflow-wrap: anywhere; }
}
@media (max-width: 640px) {
  .productBuyBox .plan-detail__item-name { font-size: clamp(28px, 8vw, 38px); line-height: 1.4; word-break: normal; overflow-wrap: anywhere; }
  .productReserveDate { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .productReserveDate > a, .productReserveDate > button { margin-left: 0; max-width: 100%; }
  .productReserveDate > strong { min-width: 0; overflow-wrap: anywhere; }
  .productQuickPoints { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .productBuyBox input, .productBuyBox select, .checkoutForm input, .checkoutForm select, .checkoutForm textarea, .memberForm input, .contactForm input, .contactForm textarea { max-width: 100%; font-size: 16px; }
  .faqContentList, .faqContentAnswer > div, .guideContentSection { min-width: 0; overflow-wrap: anywhere; }
  .innerHero h1 .noBreak, .contentSectionHeading .noBreak { white-space: normal; }
  .planReserveDate > a { margin-left: 0; }
  .drinkPlanTop h3 { font-size: clamp(19px, 5.6vw, 24px); }
  .drinkTermLinks { gap: 8px; }
  .drinkTermLinks a { padding: 15px 5px; }
  .drinkTermLinks strong { font-size: clamp(23px, 7vw, 29px); }
  .drinkTermLinks a > span { font-size: 16px; }
  .storyFilters { flex-wrap: wrap; gap: 8px; }
  .storyFilters a { min-width: 0; padding: 12px 14px; }
  .policyHero > div, .journalHero > div, .finalCtaContent { min-width: 0; max-width: 100%; }
  .policyHero h1, .memberHero h1, .journalHero h1, .finalCtaContent h2 { max-width: 100%; font-size: clamp(30px, 8.6vw, 40px); line-height: 1.4; word-break: normal; overflow-wrap: anywhere; }
  .finalCtaContent .noBreak { white-space: normal; }
}
@media (max-width: 380px) {
  .planCatalogue .diagnosisChoices button { flex-direction: column; gap: 10px; padding: 18px 14px 30px; }
  .planCatalogue .diagnosisHorse { width: 94px; height: 82px; flex: 0 0 82px; }
  .diagnosisChoiceText { width: 100%; text-align: center; }
}
