:root {
  --zsr-glass-surface: linear-gradient(145deg, rgba(255, 255, 255, 0.64), rgba(255, 255, 255, 0.34));
  --zsr-glass-border: rgba(255, 255, 255, 0.72);
  --zsr-glass-shadow: 0 18px 44px rgba(8, 34, 24, 0.11), inset 0 1px 0 rgba(255, 255, 255, 0.48);
  --zsr-glass-hover-shadow: 0 24px 56px rgba(8, 34, 24, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.56);
}

/* Shared Apple-inspired glass surface for content cards. */
:is(
  .card,
  .card-std,
  .card-featured,
  .card-side,
  .acard,
  .acard2,
  .alumni-card,
  .address-card,
  .addr-card,
  .dest-card,
  .faq-card,
  .office-card,
  .person,
  .promise-card,
  .rcard,
  .resource-card,
  .scholarship-card,
  .svc-card,
  .team-card,
  .uni-card,
  .wcard,
  .why-card,
  .contact-method,
  .office-block,
  .conv-item,
  .article,
  .step,
  .dest-row,
  .acline
) {
  background: var(--zsr-glass-surface) !important;
  border: 1px solid var(--zsr-glass-border) !important;
  border-radius: 18px;
  box-shadow: var(--zsr-glass-shadow);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
  backdrop-filter: blur(18px) saturate(120%);
}

:is(
  .faq-item,
  .panel,
  .calc,
  .tool,
  .fact-item,
  .visa-step,
  .fitem,
  .outcome-item,
  .pillar,
  .vstep,
  .booking-trust,
  .doc-checklist,
  .cost-callout,
  .cal-mock,
  .calendly-mock
) {
  background: var(--zsr-glass-surface) !important;
  border: 1px solid var(--zsr-glass-border) !important;
  border-radius: 18px;
  box-shadow: var(--zsr-glass-shadow);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
  backdrop-filter: blur(18px) saturate(120%);
}

:is(
  .card,
  .card-std,
  .card-featured,
  .card-side,
  .acard,
  .acard2,
  .alumni-card,
  .address-card,
  .addr-card,
  .dest-card,
  .faq-card,
  .office-card,
  .person,
  .promise-card,
  .rcard,
  .resource-card,
  .scholarship-card,
  .svc-card,
  .team-card,
  .uni-card,
  .wcard,
  .why-card,
  .contact-method,
  .office-block,
  .conv-item,
  .article,
  .step,
  .dest-row,
  .acline
):hover {
  box-shadow: var(--zsr-glass-hover-shadow);
}

@media (prefers-reduced-motion: no-preference) {
  :is(
    .card,
    .card-std,
    .card-featured,
    .card-side,
    .acard,
    .acard2,
    .alumni-card,
    .address-card,
    .addr-card,
    .dest-card,
    .faq-card,
    .office-card,
    .person,
    .promise-card,
    .rcard,
    .resource-card,
    .scholarship-card,
    .svc-card,
    .team-card,
    .uni-card,
    .wcard,
    .why-card,
    .contact-method,
    .office-block,
    .conv-item,
    .article,
    .step,
    .dest-row,
    .acline
  ) {
    transition: box-shadow 220ms ease, transform 220ms ease;
  }

  :is(
    .card,
    .card-std,
    .card-featured,
    .card-side,
    .acard,
    .acard2,
    .alumni-card,
    .address-card,
    .addr-card,
    .dest-card,
    .faq-card,
    .office-card,
    .person,
    .promise-card,
    .rcard,
    .resource-card,
    .scholarship-card,
    .svc-card,
    .team-card,
    .uni-card,
    .wcard,
    .why-card,
    .contact-method,
    .office-block,
    .conv-item,
    .article,
    .step,
    .dest-row,
    .acline
  ):hover {
    transform: translateY(-2px);
  }
}

@media (prefers-reduced-motion: reduce) {
  :is(
    .card,
    .card-std,
    .card-featured,
    .card-side,
    .acard,
    .acard2,
    .alumni-card,
    .address-card,
    .addr-card,
    .dest-card,
    .faq-card,
    .office-card,
    .person,
    .promise-card,
    .rcard,
    .resource-card,
    .scholarship-card,
    .svc-card,
    .team-card,
    .uni-card,
    .wcard,
    .why-card,
    .contact-method,
    .office-block,
    .conv-item,
    .article,
    .step,
    .dest-row,
    .acline
  ) {
    transition: none;
  }
}

/* Shared glass treatment for actions and lead-capture controls. */
:is(
  button,
  .button,
  .btn,
  .btn-dark,
  .btn-ghost,
  .btn-primary,
  .btn-submit,
  .bp,
  .bg,
  .bd,
  .nb,
  .fcta,
  .fbtn,
  .cta,
  .nav-book,
  .nav-cta,
  .book,
  .cal-confirm
) {
  color: var(--ink) !important;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.48), rgba(255, 255, 255, 0.18)) !important;
  border: 1px solid rgba(255, 255, 255, 0.76) !important;
  border-radius: 12px;
  box-shadow: 0 12px 28px rgba(8, 34, 24, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.52);
  -webkit-backdrop-filter: blur(16px) saturate(120%);
  backdrop-filter: blur(16px) saturate(120%);
}

:is(
  button,
  .button,
  .btn,
  .btn-dark,
  .btn-ghost,
  .btn-primary,
  .btn-submit,
  .bp,
  .bg,
  .bd,
  .nb,
  .fcta,
  .fbtn,
  .cta,
  .nav-book,
  .nav-cta,
  .book,
  .cal-confirm
):hover,
:is(
  button,
  .button,
  .btn,
  .btn-dark,
  .btn-ghost,
  .btn-primary,
  .btn-submit,
  .bp,
  .bg,
  .bd,
  .nb,
  .fcta,
  .fbtn,
  .cta,
  .nav-book,
  .nav-cta,
  .book,
  .cal-confirm
):focus-visible {
  color: var(--ink) !important;
  background: linear-gradient(145deg, rgba(201, 162, 58, 0.86), rgba(201, 162, 58, 0.58)) !important;
  border-color: rgba(255, 255, 255, 0.9) !important;
  box-shadow: 0 16px 34px rgba(8, 34, 24, 0.2), 0 0 0 3px rgba(201, 162, 58, 0.24);
}

:is(.filter-btn, .tab, .pg-btn, .nl-btn, .card-cta, .rcta, .ucta, .pnav-link) {
  color: var(--ink) !important;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.44), rgba(255, 255, 255, 0.16)) !important;
  border: 1px solid rgba(255, 255, 255, 0.7) !important;
  border-radius: 12px;
  box-shadow: 0 10px 24px rgba(8, 34, 24, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.44);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
  backdrop-filter: blur(14px) saturate(120%);
}

:is(.filter-btn, .tab, .pg-btn, .nl-btn, .card-cta, .rcta, .ucta, .pnav-link):hover,
:is(.filter-btn, .tab, .pg-btn, .nl-btn, .card-cta, .rcta, .ucta, .pnav-link):focus-visible {
  background: linear-gradient(145deg, rgba(201, 162, 58, 0.84), rgba(201, 162, 58, 0.56)) !important;
  border-color: rgba(255, 255, 255, 0.88) !important;
  box-shadow: 0 14px 30px rgba(8, 34, 24, 0.18), 0 0 0 3px rgba(201, 162, 58, 0.2);
}

.logo img,
.fl img,
.flo img,
.foot-logo img {
  object-fit: contain;
  object-position: center;
  border-radius: 10px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0.08));
  border: 1px solid rgba(255, 255, 255, 0.38);
  box-shadow: 0 10px 24px rgba(8, 34, 24, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.28);
  -webkit-backdrop-filter: blur(12px) saturate(120%);
  backdrop-filter: blur(12px) saturate(120%);
}

/* Shared glass treatment for destination hero badges, visual metadata, and callouts. */
:is(
  .destination-badge,
  .hero-grid > div > div[style*="display:inline-flex"],
  .cnote,
  .cost-callout
) {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.08)) !important;
  border: 1px solid rgba(255, 255, 255, 0.42) !important;
  box-shadow: 0 16px 36px rgba(8, 34, 24, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.28);
  -webkit-backdrop-filter: blur(16px) saturate(120%);
  backdrop-filter: blur(16px) saturate(120%);
}

:is(.destination-badge, .hero-grid > div > div[style*="display:inline-flex"]) {
  border-radius: 14px;
}

.hmarks .ht {
  gap: 16px;
  flex-wrap: wrap;
  line-height: 1.4;
}

.hmarks .hbot {
  max-width: 92%;
  line-height: 1.5;
}

.cnote {
  border-left-width: 1px;
  border-radius: 14px;
  padding: 20px 22px;
}

.cnote strong {
  line-height: 1.35;
}

@media (max-width: 560px) {
  .hmarks .ht {
    font-size: 9px;
    gap: 10px;
  }

  .hmarks .hbot {
    max-width: 100%;
  }
}

/* Destination hero metadata stays transparent so the photography remains the focal point. */
.hvis .hmarks {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.hvis .hmarks .ht span,
.hvis .hmarks .hbot {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.42);
}

:is(
  form.inquiry-form,
  .inquiry-form,
  form[data-zsr-form],
  .resource-gate,
  .resource-gate-inner,
  .calendly-mock,
  .booking-calendar,
  .booking-grid
) {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.07)) !important;
  border: 1px solid rgba(255, 255, 255, 0.42) !important;
  border-radius: 24px;
  box-shadow: 0 22px 54px rgba(8, 34, 24, 0.17), inset 0 1px 0 rgba(255, 255, 255, 0.3);
  -webkit-backdrop-filter: blur(22px) saturate(125%);
  backdrop-filter: blur(22px) saturate(125%);
}

:is(
  .inquiry-form input,
  .inquiry-form select,
  .inquiry-form textarea,
  .resource-gate input,
  .resource-gate select,
  .resource-gate textarea,
  .form-row input,
  .form-row select,
  .form-row textarea
) {
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.34) !important;
  border-radius: 10px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
  -webkit-backdrop-filter: blur(12px) saturate(115%);
  backdrop-filter: blur(12px) saturate(115%);
}

:is(
  .inquiry-form input,
  .inquiry-form select,
  .inquiry-form textarea,
  .resource-gate input,
  .resource-gate select,
  .resource-gate textarea,
  .form-row input,
  .form-row select,
  .form-row textarea
):focus {
  border-color: rgba(201, 162, 58, 0.9) !important;
  box-shadow: 0 0 0 3px rgba(201, 162, 58, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.18);
  outline: none;
}

/* Shared geometry refinements for grids and expandable content. */
.wgrid {
  border-radius: 18px;
  overflow: hidden;
}

.wcard h3 {
  margin-bottom: 14px;
}

.wcard p {
  line-height: 1.7;
}

.flist {
  gap: 12px;
}

.fitem {
  padding: 18px 20px;
}

.fitem .fq {
  align-items: flex-start;
}

.fitem .fq .fp {
  margin-top: 2px;
}

.fitem.open .fa {
  padding: 14px 0 4px;
}

.rbox ul li {
  align-items: flex-start;
}

.acline {
  padding: 14px 18px;
}

.acline .albl {
  margin-bottom: 6px;
  line-height: 1.3;
}

.acline .aval {
  line-height: 1.5;
}

/* The featured resource keeps its dark editorial surface so ivory copy remains readable. */
.featured {
  background: linear-gradient(145deg, rgba(10, 34, 24, 0.98), rgba(27, 77, 50, 0.94)) !important;
  color: var(--ivory) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  border-radius: 18px;
  box-shadow: 0 18px 44px rgba(8, 34, 24, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.featured .fcontent,
.featured .fcontent h2 {
  color: var(--ivory) !important;
}

.featured .fdesc {
  color: rgba(250, 250, 250, 0.82) !important;
}

.featured .fmeta-item {
  color: rgba(250, 250, 250, 0.9) !important;
}

/* Keep selected filters and tabs visibly distinct from their inactive siblings. */
:is(.filter-btn, .tab, .pg-btn, .fbtn).active,
:is(.filter-btn, .tab, .pg-btn, .fbtn)[aria-pressed="true"] {
  background: var(--ink) !important;
  color: var(--ivory) !important;
  border-color: var(--ink) !important;
}

/* Calendar controls carry their own state treatment; do not inherit generic buttons. */
.booking-date {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.booking-date:not([aria-pressed="true"]):not(.is-unavailable) {
  color: var(--ink) !important;
}

.booking-date[aria-pressed="true"] {
  color: var(--ivory) !important;
}

.booking-date.is-unavailable {
  color: var(--line) !important;
}

.cal-slot.active {
  background: var(--amber) !important;
  color: var(--ivory) !important;
  border-color: var(--amber) !important;
}

/* The contact form is a task surface: keep fields distinct from its glass shell. */
#form form[data-zsr-form="enquiry"] {
  padding: clamp(24px, 3vw, 36px);
  background: linear-gradient(145deg, rgba(244, 250, 247, 0.96), rgba(225, 240, 232, 0.92)) !important;
  border-color: rgba(27, 77, 50, 0.24) !important;
}

#form form[data-zsr-form="enquiry"] .form-row input,
#form form[data-zsr-form="enquiry"] .form-row select,
#form form[data-zsr-form="enquiry"] .form-row textarea {
  min-height: 50px;
  background: rgba(222, 239, 229, 0.92) !important;
  border: 1px solid rgba(27, 77, 50, 0.42) !important;
  color: var(--ink) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.56);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

#form form[data-zsr-form="enquiry"] .form-row textarea {
  min-height: 124px;
  padding-top: 14px;
}

#form form[data-zsr-form="enquiry"] .form-row input::placeholder,
#form form[data-zsr-form="enquiry"] .form-row textarea::placeholder {
  color: rgba(27, 77, 50, 0.72);
}

#form form[data-zsr-form="enquiry"] .form-row input:focus,
#form form[data-zsr-form="enquiry"] .form-row select:focus,
#form form[data-zsr-form="enquiry"] .form-row textarea:focus {
  border-color: var(--forest) !important;
  box-shadow: 0 0 0 3px rgba(27, 77, 50, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

@media (max-width: 560px) {
  #form form[data-zsr-form="enquiry"] {
    padding: 24px 20px;
  }

  #form form[data-zsr-form="enquiry"] .form-row label {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }
}

/* Keep team portraits and role labels on a consistent baseline at every breakpoint. */
.team-grid .person {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.team-grid .person .portrait {
  height: 410px !important;
}

.team-grid .person h3 {
  margin: 18px 0 8px;
  line-height: 1.15;
}

.team-grid .person p {
  min-height: 1.4em;
  margin: 0;
  line-height: 1.4;
  color: var(--ink) !important;
  font-weight: 700;
}

@media (max-width: 960px) {
  /* Destination cost tables use an inline two-column layout on desktop. */
  .sec.dk .c > .reveal[style*="grid-template-columns"] {
    grid-template-columns: 1fr !important;
  }

  /* Keep the Services pillar navigation inside the viewport at narrow widths. */
  .pillar-nav .c {
    flex-wrap: wrap;
  }

  .pillar-nav .pnav-link {
    flex: 1 1 50%;
    min-width: 0;
    justify-content: center;
    text-align: center;
  }

  .team-grid .person:first-child {
    grid-column: auto;
  }
}

@media (max-width: 560px) {
  .pillar-nav .pnav-link {
    padding: 12px 8px;
    gap: 6px;
    line-height: 1.25;
  }

  .team-grid .person .portrait {
    height: 430px !important;
  }
}
