.home .home-category-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-bottom:72px; }
.home .home-category-card { display:flex; min-height:420px; padding:40px; border:1px solid var(--color-border,#dde3e8); border-radius:32px; color:inherit; text-decoration:none; flex-direction:column; }
.home .home-category-card__icon { display:grid; width:64px; height:64px; border-radius:18px; place-items:center; color:var(--color-text); background:#fff2e9; }
.home .home-category-card__pictogram { width:32px; height:32px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.home .home-category-card__number { margin-top:24px; color:#758196; font-weight:800; letter-spacing:.15em; }
.home .home-category-card h3 { margin:22px 0 14px; font-size:clamp(1.7rem,2.4vw,2.4rem); }
.home .home-category-card p { color:#566477; line-height:1.7; }
.home .home-category-card strong { margin-top:28px; color:var(--color-primary); }
.home .home-category-card--orange { background:linear-gradient(145deg,#fff 60%,#fff1e8); }
.home .home-category-card--navy { background:linear-gradient(145deg,#fff 60%,#eef1f5); }
.home .home-category-card--green { background:linear-gradient(145deg,#fff 60%,#eaf6f1); }
.home .home-category-grid--count-1 { grid-template-columns:minmax(0,min(100%,760px)); justify-content:center; }
.home .home-category-grid--count-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.home .activities-section__header { grid-template-columns:minmax(0,760px); align-items:start; }
.home .activities-section__intro .activities-section__description { max-width:720px; margin-top:clamp(24px,3vw,36px); }
.home .activities-section__actions { display:flex; align-items:center; gap:24px; margin-top:32px; }
.home .activities-section__actions .activities-section__link,
.home .activities-section__actions .activities-section__schedule-button { margin-top:0; }
.home .featured-activities-section { margin-top:clamp(64px,8vw,112px); }
.home .featured-activities-section__header { max-width:760px; margin-bottom:clamp(32px,4vw,52px); }
.home .featured-activities-section__header .page-section-title { margin-top:16px; }
.home .featured-activities-grid { --featured-columns:4; display:grid; grid-template-columns:repeat(var(--featured-columns),minmax(0,1fr)); gap:24px; }
.home .featured-activities-grid--count-1 { --featured-columns:1; max-width:520px; margin-inline:auto; }
.home .featured-activities-grid--count-2 { --featured-columns:2; }
.home .featured-activities-grid--count-3 { --featured-columns:3; }
.home .featured-activities-grid--count-4 { --featured-columns:4; }
.home .featured-activity-card { display:flex; min-width:0; min-height:100%; overflow:hidden; border:1px solid rgba(21,31,48,.1); border-radius:28px; flex-direction:column; background:linear-gradient(145deg,#fff 58%,#f6f8fa); box-shadow:0 20px 48px rgba(21,31,48,.08); }
.home .featured-activity-card__media { position:relative; display:block; aspect-ratio:4/3; overflow:hidden; background:var(--color-primary-soft); }
.home .featured-activity-card__media img { width:100%; height:100%; object-fit:cover; transition:transform 220ms ease; }
.home .featured-activity-card:hover .featured-activity-card__media img { transform:scale(1.025); }
.home .featured-activity-card__status { position:absolute; top:18px; left:18px; padding:9px 14px; border:1px solid rgba(21,31,48,.06); border-radius:999px; background:#fff; color:var(--color-text); font-size:.82rem; font-weight:800; text-decoration:none; box-shadow:0 10px 30px rgba(21,31,48,.12); }
.home .featured-activity-card__status--available { color:#23785f; }
.home .featured-activity-card__status--limited { color:#9a6816; background:#fff8df; }
.home .featured-activity-card__status--soon { color:#315e87; background:#edf5fc; }
.home .featured-activity-card__status--full,.home .featured-activity-card__status--ended { color:#697384; background:#f3f5f7; }
.home .featured-activity-card__content { display:flex; padding:28px; flex:1; flex-direction:column; }
.home .featured-activity-card__category { margin:0 0 12px; color:var(--color-primary); font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.home .featured-activity-card__title { margin:0; font-size:clamp(1.45rem,2vw,2rem); line-height:1.15; }
.home .featured-activity-card__title a { color:var(--color-text); text-decoration:none; }
.home .featured-activity-card__title a:focus-visible,.home .featured-activity-card__link:focus-visible,.home .featured-activities-carousel__button:focus-visible { outline:3px solid rgba(235,125,47,.35); outline-offset:4px; }
.home .featured-activity-card__description { display:-webkit-box; overflow:hidden; margin:18px 0 0; color:var(--color-text-secondary); line-height:1.65; -webkit-box-orient:vertical; -webkit-line-clamp:4; }
.home .featured-activity-card__meta { display:flex; padding:0; margin:22px 0 0; gap:8px; list-style:none; flex-wrap:wrap; }
.home .featured-activity-card__meta li { display:flex; padding:8px 10px; border-radius:12px; gap:4px; flex-direction:column; background:#f5f7f9; }
.home .featured-activity-card__meta span { color:var(--color-text-secondary); font-size:.68rem; font-weight:700; text-transform:uppercase; }
.home .featured-activity-card__meta strong { color:var(--color-text); font-size:.86rem; }
.home .featured-activity-card__footer { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-top:auto; padding-top:28px; flex-wrap:wrap; }
.home .featured-activity-card__price { display:flex; padding:12px 14px; margin:0; border:1px solid rgba(235,125,47,.22); border-radius:16px; color:var(--color-text); flex-direction:column; background:var(--color-primary-soft,#fff1e8); box-shadow:0 10px 28px rgba(235,125,47,.12); }
.home .featured-activity-card__price strong { color:var(--color-primary); font-size:1.08rem; }
.home .featured-activity-card__price span { color:var(--color-text-secondary); font-size:.76rem; }
.home .featured-activity-card__link { display:inline-flex; align-items:center; gap:8px; width:fit-content; color:var(--color-primary); font-weight:800; text-decoration:none; }
.home .featured-activity-card__link span { transition:transform 180ms ease; }
.home .featured-activity-card__link:hover,.home .featured-activity-card__link:focus-visible { color:var(--color-primary-dark,#c85f1f); }
.home .featured-activity-card__link:hover span { transform:translateX(4px); }
.home .activities-section__link,.home .programs-section__link,.home .home-category-card strong { color:var(--color-primary); }
.home .activities-section__link:hover,.home .activities-section__link:focus-visible,.home .programs-section__link:hover,.home .programs-section__link:focus-visible,.home .home-category-card:hover strong,.home .home-category-card:focus-visible strong { color:var(--color-primary-dark,#c85f1f); }
.home .featured-activities-carousel__controls { display:none; }
.home .activities-grid--count-1,.home .vacation-programs__grid--count-1,.home .why-grid--count-1,.home .testimonials-grid--count-1 { grid-template-columns:minmax(0,min(100%,620px)); justify-content:center; }
.home .activities-grid--count-2,.home .vacation-programs__grid--count-2,.home .why-grid--count-2,.home .testimonials-grid--count-2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.home .booking-section__actions--count-1 { justify-content:center; }
.home .news-card__title-link { color:inherit; text-decoration: none; }
.home .news-card__title-link:hover { color:var(--color-primary); }
.home .news-card__title-link:focus-visible { outline:3px solid rgba(235,125,47,.35); outline-offset:4px; border-radius:4px; }
@media (min-width:768px) and (max-width:1024px) { .home .home-category-grid,.home .featured-activities-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .home .home-category-grid--count-1,.home .featured-activities-grid--count-1 { grid-template-columns:minmax(0,min(100%,680px)); } .home .home-category-grid--count-3>:last-child,.home .featured-activities-grid--count-3>:last-child { grid-column:1/-1; width:calc(50% - 12px); justify-self:center; } }
@media (max-width:767px) {
  .home .home-category-grid,.home .vacation-programs__grid,.home .why-grid,.home .testimonials-grid { grid-template-columns:minmax(0,1fr)!important; }
  .home .home-category-grid--count-3>:last-child { width:auto; grid-column:auto; }
  .home .activities-section__actions { align-items:stretch; flex-direction:column; }
  .home .activities-section__actions .activities-section__link { align-self:flex-start; }
  .home .featured-activities-section { width:100%; overflow:hidden; }
  .home .featured-activities-grid { display:flex; width:auto; max-width:none; margin-inline:0; padding:4px 0 24px; gap:16px; overflow-x:auto; overscroll-behavior-inline:auto; scroll-snap-type:x proximity; touch-action:pan-y pinch-zoom; scrollbar-width:none; }
  .home .featured-activities-grid::-webkit-scrollbar { display:none; }
  .home .featured-activity-card { flex:0 0 100%; scroll-snap-align:start; }
  .home .featured-activities-grid--count-1 { display:grid; width:100%; max-width:520px; margin-inline:auto; padding:4px 0 24px; overflow:visible; scroll-snap-type:none; touch-action:auto; }
  .home .featured-activities-grid--count-1 .featured-activity-card { width:100%; min-width:0; flex:none; scroll-snap-align:none; }
  .home .featured-activity-card__content { padding:24px; }
  .home .featured-activity-card__description { -webkit-line-clamp:3; }
  .home .featured-activities-carousel__controls { display:flex; align-items:center; justify-content:flex-end; gap:14px; margin-top:16px; }
  .home .featured-activities-carousel__button { display:grid; width:46px; height:46px; padding:0; border:1px solid var(--color-border,#dde3e8); border-radius:50%; place-items:center; color:var(--color-text); font-size:1.2rem; background:#fff; cursor:pointer; }
  .home .featured-activities-carousel__button:disabled { opacity:.35; cursor:default; }
  .home .featured-activities-carousel__indicator { min-width:48px; margin:0; color:var(--color-text-secondary); font-size:.9rem; font-weight:800; text-align:center; }
  .home .weekly-schedule-dialog { max-width:calc(100vw - 24px); }
}

/* PA mobile native featured carousel */
@media (max-width: 1100px) {
  .home .featured-activities-grid {
    overflow-x: auto !important;
    overflow-y: visible !important;
    transform: none !important;
    scroll-snap-type: x mandatory !important;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .home .featured-activities-grid::-webkit-scrollbar {
    display: none;
  }

  .home .featured-activities-grid .featured-activity-card {
    scroll-snap-align: start !important;
    scroll-snap-stop: always;
  }
}

/* PA homepage clickable cards and status pills */
.home .program-card,
.home .vacation-program-card,
.home .news-card {
  position: relative;
}
.home .program-card__title-link,
.home .vacation-program-card__title-link,
.home .news-card__title-link {
  color: inherit;
  text-decoration: none;
}
.home .program-card__title-link::after,
.home .vacation-program-card__title-link::after,
.home .news-card__title-link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}
.home .program-card__link,
.home .vacation-program-card .button,
.home .news-card__media {
  position: relative;
  z-index: 2;
}
.home .program-card:has(.program-card__title-link:focus-visible),
.home .vacation-program-card:has(.vacation-program-card__title-link:focus-visible),
.home .news-card:has(.news-card__title-link:focus-visible) {
  outline: 3px solid rgba(227, 124, 50, 0.42);
  outline-offset: 4px;
}
.home .activity-availability {
  display: inline-flex !important;
  width: max-content;
  align-items: center;
  gap: 8px;
  padding: 8px 12px !important;
  border: 1px solid currentColor !important;
  border-radius: 999px !important;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
}
.home .activity-availability.is-available {
  color: #357a61 !important;
  background: #edf8f3 !important;
}
.home .activity-availability.is-limited {
  color: #93651f !important;
  background: #fff7df !important;
}
.home .activity-availability.is-coming-soon {
  color: #7b5a31 !important;
  background: #fff3e8 !important;
}
.home .activity-availability.is-full {
  color: #8a4850 !important;
  background: #fbecef !important;
}
.home .activity-availability__light {
  width: 8px !important;
  height: 8px !important;
  flex: 0 0 8px;
  border-radius: 50%;
  background: currentColor !important;
}
.home .news-card h3 {
  font-size: clamp(22px, 1.7vw, 26px) !important;
  line-height: 1.2 !important;
}
.home .news-card:hover .news-card__title-link,
.home .news-card__title-link:focus-visible {
  color: #e37c32;
}
.home .program-card:hover,
.home .vacation-program-card:hover,
.home .news-card:hover {
  border-color: rgba(227, 124, 50, 0.34);
}



/* PA homepage program card refinement */
.vacation-program-card {
	height: 100%;
}
.vacation-program-card__type,
.vacation-program-card__status {
	border: 1px solid currentColor !important;
}
.vacation-program-card__type {
	border-color: rgba(216, 116, 53, .28) !important;
}
.vacation-program-card__status {
	border-color: color-mix(in srgb, currentColor 28%, transparent) !important;
}
.vacation-program-card__body {
	display: flex !important;
	flex-direction: column;
	height: 100%;
}
.vacation-program-card__eyebrow {
	color: #d87435;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.vacation-program-card__description {
	display: -webkit-box;
	min-height: 4.8em;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
.vacation-program-card__facts {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 24px 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.vacation-program-card__facts li {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start !important;
	gap: 4px;
	min-width: 0;
	padding: 14px 16px !important;
	border: 1px solid #e1e5e8;
	border-radius: 16px;
	background: #f7f8f9;
}
.vacation-program-card__facts li::before {
	display: none !important;
}
.vacation-program-card__facts span {
	color: #566274;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .055em;
	text-transform: uppercase;
}
.vacation-program-card__facts strong {
	color: #172033;
	font-size: .96rem;
	line-height: 1.35;
}
.vacation-program-card__body > .button {
	position: relative;
	z-index: 2;
	margin-top: auto;
	align-self: flex-start;
}
@media (max-width: 720px) {
	.vacation-program-card__description {
		min-height: 0;
	}
	.vacation-program-card__facts {
		gap: 8px;
	}
	.vacation-program-card__facts li {
		padding: 12px !important;
	}
}


.vacation-programs__grid { grid-auto-rows: 1fr; align-items: stretch; }


/* PA mobile Hero system — text, action, image */
@media (max-width: 640px) {
  .home .hero { padding-block: 32px 48px; }
  .home .hero__container { grid-template-areas: "content" "visual" "benefits"; row-gap: 24px; }
  .home .hero__eyebrow { margin-bottom: 14px; padding: 7px 10px; }
  .home .hero__title { font-size: clamp(2rem, 9.5vw, 2.375rem); line-height: 1.03; }
  .home .hero__description { display: -webkit-box; overflow: hidden; margin-top: 16px; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
  .home .hero__actions { display: grid; gap: 10px; margin-top: 20px; }
  .home .hero__primary-button { min-height: 50px; }
  .home .hero__secondary-button { width: fit-content; min-height: 44px; padding-inline: 4px; border-color: transparent; color: var(--color-secondary); background: transparent; box-shadow: none; }
  .home .hero__visual { min-height: 0; }
  .home .hero__image-frame { height: 300px; padding: 6px; overflow: hidden; border-radius: 26px; }
  .home .hero__image { height: 100%; border-radius: 20px; object-fit: cover; }
  .home .hero__image-decoration, .home .hero__floating-card, .home .hero__trust-card { display: none; }
  .home .hero__benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .home .hero__benefit { min-width: 0; padding: 9px 8px; border: 1px solid rgba(23, 32, 51, 0.08); border-radius: 14px; font-size: 0.74rem; line-height: 1.3; text-align: center; justify-content: center; }
  .home .hero__benefit-icon { display: none; }
}
@media (max-width: 350px) { .home .hero__benefits { grid-template-columns: 1fr; } }




/* Homepage responsive polish — 2026-09 */
.home .hero__visual {
  margin-bottom: clamp(2.5rem, 5vw, 5rem);
}
.home .programs-section .program-card__media {
  padding: 0;
}
.home .programs-section .program-card__image {
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  border-radius: inherit;
  object-fit: cover;
}
.home .programs-section .program-card--featured .program-card__media {
  aspect-ratio: 3 / 2;
  min-height: 0;
}
.home .programs-section .program-card--featured .program-card__image {
  object-position: 50% 50%;
}
.home .programs-section .program-card--position-2 .program-card__image {
  object-position: 52% 50%;
}
.home .programs-section .program-card--position-3 .program-card__image {
  object-position: 50% 50%;
}
@media (min-width: 1101px) {
  .home .hero {
    padding-bottom: clamp(7rem, 9vw, 10rem);
  }
}
@media (min-width: 821px) and (max-width: 1100px) {
  .home .hero__visual {
    margin-bottom: 2.5rem;
  }
  .home .programs-section .program-card:not(.program-card--featured) .program-card__media {
    aspect-ratio: 4 / 3;
    min-height: 0;
  }
}
@media (max-width: 820px) {
  .home .hero__visual {
    margin-bottom: 2rem;
  }
  .home .programs-section .program-card__media,
  .home .programs-section .program-card--featured .program-card__media {
    aspect-ratio: 4 / 3;
    min-height: 0;
  }
}
@media (max-width: 420px) {
  .home .hero__visual {
    margin-bottom: 1.75rem;
  }
}


@media (min-width: 1101px) {
  .home .programs-section .programs-grid--count-3 > .program-card--position-1 {
    align-self: stretch;
  }
}

/* TABLET POLISH — APPROVED CARD AND CTA ALIGNMENT */
@media (min-width: 768px) and (max-width: 1100px) {
  .programs-grid.programs-grid--count-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 1fr;
  }
  .programs-grid--count-3 > .program-card {
    height: 100%;
    min-width: 0;
  }
  .programs-grid--count-3 > .program-card--featured {
    display: flex;
    flex-direction: column;
  }
  .programs-grid--count-3 > .program-card--featured .program-card__media {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
  }
  .programs-grid--count-3 > .program-card--featured .program-card__body {
    width: 100%;
    flex: 1 1 auto;
  }
  .programs-grid--count-3 > :last-child:nth-child(odd) {
    grid-column: 1 / -1;
    width: calc((100% - 1.5rem) / 2);
    justify-self: center;
  }
  .booking-section__container {
    grid-template-columns: minmax(0, 1fr);
  }
  .booking-section__content,
  .booking-section__actions {
    width: 100%;
    max-width: none;
  }
  .booking-section__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }
  .booking-section__actions .button {
    width: 100%;
  }
}


/* TABLET POLISH RUNTIME OVERRIDES — HOME ONLY */
@media (min-width: 768px) and (max-width: 1100px) {
  body.home .programs-grid.programs-grid--count-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-rows: 1fr !important;
  }
  body.home .programs-grid--count-3 > .program-card {
    height: 100% !important;
    min-width: 0 !important;
  }
  body.home .programs-grid--count-3 > .program-card--featured {
    display: flex !important;
    flex-direction: column !important;
  }
  body.home .programs-grid--count-3 > .program-card--featured .program-card__media {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
  }
  body.home .programs-grid--count-3 > .program-card--featured .program-card__body {
    width: 100% !important;
    flex: 1 1 auto;
  }
  body.home .programs-grid--count-3 > :last-child:nth-child(odd) {
    grid-column: 1 / -1 !important;
    width: calc((100% - 1.5rem) / 2) !important;
    justify-self: center !important;
  }
  body.home .booking-section .booking-section__container {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  body.home .booking-section .booking-section__content,
  body.home .booking-section .booking-section__actions {
    width: 100% !important;
    max-width: none !important;
  }
  body.home .booking-section .booking-section__actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }
  body.home .booking-section .booking-section__actions .button {
    width: 100% !important;
  }
}
