/* Responsive refinements — loaded after main.css */
@media (max-width: 1120px) {
  .desktop-nav a {
    font-size: 0.75rem;
  }

  .header-right {
    gap: 14px;
  }

  .location-kicker {
    max-width: 15rem;
  }

  .activity-grid {
    gap: 20px;
  }

  .activity-card {
    grid-template-columns: minmax(125px, 0.72fr) minmax(0, 1.28fr);
  }

  .activity-copy {
    padding: 1.25rem;
  }
}

@media (max-width: 1000px) {
  .desktop-nav {
    display: none;
  }

  .mobile-nav {
    display: block;
    border-top: 1px solid var(--line);
  }

  .hero {
    min-height: 570px;
  }

  .section {
    padding-top: 68px;
    padding-bottom: 68px;
  }

  .split {
    gap: 3rem;
  }

  .wisdom-band .wrap {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 0.7fr);
    gap: 2.5rem;
  }

  .card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
  }

  .card-grid.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .activity-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .footer-main {
    grid-template-columns: 1.1fr 0.75fr 1fr;
    gap: 2rem;
  }
}

@media (max-width: 760px) {
  .wrap {
    max-width: none;
    padding-right: 24px;
    padding-left: 24px;
  }

  .header-main {
    min-height: 80px;
    gap: 12px;
  }

  .brand {
    gap: 10px;
  }

  .brand-mark {
    width: 45px;
    min-width: 45px;
    height: 45px;
  }

  .brand-words strong {
    font-size: 0.9rem;
    line-height: 1.12;
  }

  .brand-words small {
    max-width: 12rem;
    font-size: 0.6rem;
    line-height: 1.25;
  }

  .header-right {
    gap: 0;
  }

  .location-kicker {
    display: none;
  }

  .language-switch {
    min-height: 38px;
  }

  .language-switch a {
    min-width: 37px;
    min-height: 36px;
    padding-right: 0.4rem;
    padding-left: 0.4rem;
  }

  .hero {
    min-height: 548px;
    margin-right: 16px;
    margin-left: 16px;
  }

  .hero-shade {
    background: linear-gradient(90deg, rgba(20, 32, 27, 0.9) 0%, rgba(26, 39, 32, 0.72) 68%, rgba(24, 37, 31, 0.44) 100%);
  }

  .hero-inner {
    padding-top: 4rem;
    padding-bottom: 6.25rem;
  }

  .hero h1 {
    max-width: 35rem;
    font-size: clamp(2.65rem, 11vw, 4rem);
  }

  .hero h1:lang(en),
  .hero :lang(en) h1 {
    font-size: clamp(3.25rem, 13vw, 4.45rem);
  }

  .hero p {
    font-size: 1rem;
  }

  .hero-caption,
  .hero-bottom-line {
    right: 24px;
    left: 24px;
  }

  .hero-caption {
    bottom: 29px;
  }

  .hero-bottom-line {
    bottom: 17px;
  }

  .breadcrumb {
    padding-top: 1.15rem;
    font-size: 0.77rem;
  }

  .page-intro {
    padding-top: 3.75rem;
  }

  .section {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .section-heading {
    display: block;
    margin-bottom: 2rem;
  }

  .section-heading .text-link {
    margin-top: 1rem;
  }

  .split,
  .contact-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
  }

  .split.reverse > :first-child,
  .split.reverse > :last-child {
    order: initial;
  }

  .split.reverse > :first-child {
    order: 2;
  }

  .split.reverse > :last-child {
    order: 1;
  }

  .media.portrait {
    max-width: 27rem;
  }

  .principles {
    grid-template-columns: minmax(0, 1fr);
  }

  .principle {
    padding: 1.65rem 0;
  }

  .principle + .principle {
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .principle .number {
    margin-bottom: 0.75rem;
  }

  .wisdom-band .wrap {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    padding-top: 4.25rem;
    padding-bottom: 4.25rem;
  }

  .wisdom-image {
    max-width: 32rem;
  }

  .card-grid,
  .card-grid.two {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .card-body {
    padding: 1.25rem 1.25rem 1.4rem;
  }

  .activity-card {
    grid-template-columns: minmax(0, 1fr);
  }

  .activity-card figure img {
    min-height: 0;
    aspect-ratio: 3 / 2;
  }

  .facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .facts > div,
  .facts > div:nth-child(odd),
  .facts > div:nth-child(even) {
    padding-right: 0;
    padding-left: 0;
    border-left: 0;
  }

  .visit-band .wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.35rem;
  }

  .visit-band .button {
    justify-self: start;
  }

  .flow-links {
    grid-template-columns: minmax(0, 1fr);
  }

  .flow-link {
    min-height: 120px;
  }

  .event-row {
    grid-template-columns: 63px minmax(0, 1fr) 17px;
    gap: 0.8rem;
  }

  .event-date strong {
    font-size: 2.15rem;
  }

  .event-status {
    display: none;
  }

  .info-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.25rem;
  }

  .footer-main {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 2.5rem 2rem;
    padding-top: 3.5rem;
  }

  .footer-brand {
    grid-column: 1 / -1;
  }

  .footer-bottom {
    min-height: 0;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .editorial {
    padding-top: 3.6rem;
    padding-bottom: 4.6rem;
  }

  .article-cover {
    margin-bottom: 2.5rem;
  }

  .article-body blockquote {
    margin: 1.6rem 0;
    padding-left: 1rem;
    font-size: 1.27rem;
  }
}

@media (max-width: 480px) {
  body {
    font-size: 16px;
    line-height: 1.7;
  }

  .wrap {
    padding-right: 18px;
    padding-left: 18px;
  }

  .header-main {
    min-height: 72px;
  }

  .brand-mark {
    width: 39px;
    min-width: 39px;
    height: 39px;
  }

  .brand-words strong {
    font-size: 0.79rem;
  }

  .brand-words small {
    max-width: 10.5rem;
    font-size: 0.52rem;
    letter-spacing: 0.045em;
  }

  .language-switch a {
    min-width: 34px;
    padding-right: 0.32rem;
    padding-left: 0.32rem;
    font-size: 0.68rem;
  }

  .mobile-nav summary {
    min-height: 46px;
  }

  .hero {
    min-height: 520px;
    margin-right: 10px;
    margin-left: 10px;
  }

  .hero-inner {
    padding-top: 3.5rem;
    padding-bottom: 6rem;
  }

  .hero .eyebrow {
    margin-bottom: 0.75rem;
    font-size: 0.64rem;
    letter-spacing: 0.09em;
  }

  .hero h1 {
    font-size: clamp(2.35rem, 11.2vw, 3.05rem);
  }

  .hero h1:lang(en),
  .hero :lang(en) h1 {
    font-size: clamp(2.85rem, 13.5vw, 3.6rem);
  }

  .hero p {
    margin-top: 1.05rem;
    font-size: 0.94rem;
    line-height: 1.65;
  }

  .hero-actions {
    width: 100%;
    margin-top: 1.55rem;
  }

  .hero-actions .button {
    flex: 1 1 100%;
  }

  .hero-caption,
  .hero-bottom-line {
    right: 18px;
    left: 18px;
  }

  .hero-caption {
    max-width: calc(100% - 36px);
    font-size: 0.62rem;
  }

  .eyebrow {
    gap: 0.55rem;
    font-size: 0.65rem;
    letter-spacing: 0.1em;
  }

  .eyebrow::before {
    width: 22px;
  }

  .page-intro {
    padding-top: 3rem;
  }

  .page-intro .lead {
    font-size: 1.02rem;
  }

  .section {
    padding-top: 46px;
    padding-bottom: 46px;
  }

  .section-heading {
    margin-bottom: 1.65rem;
  }

  .button {
    width: 100%;
    min-height: 48px;
  }

  .card figure figcaption {
    padding-right: 1rem;
    padding-left: 1rem;
  }

  .activity-copy,
  .card-body {
    padding: 1.15rem;
  }

  .activity-number {
    margin-bottom: 0.8rem;
  }

  .notice {
    padding: 1rem;
    font-size: 0.92rem;
  }

  .calendar-tabs {
    gap: 6px;
    margin-bottom: 1.4rem;
  }

  .calendar-tabs a {
    min-height: 38px;
    padding-right: 0.7rem;
    padding-left: 0.7rem;
    font-size: 0.73rem;
  }

  .event-row {
    grid-template-columns: 49px minmax(0, 1fr) 14px;
    gap: 0.65rem;
    padding: 0.95rem 0;
  }

  .event-date strong {
    font-size: 1.9rem;
  }

  .event-date span {
    font-size: 0.57rem;
  }

  .event-info h3 {
    font-size: 1.18rem;
  }

  .event-info p {
    font-size: 0.77rem;
  }

  .event-row::after {
    font-size: 0.95rem;
  }

  .info-panel {
    padding: 1.15rem;
  }

  .step {
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: 0.75rem;
  }

  .step-number {
    width: 2rem;
    height: 2rem;
  }

  .faq summary {
    min-height: 54px;
    font-size: 1.1rem;
  }

  .faq details > *:not(summary) {
    padding-right: 0;
  }

  .document-link {
    gap: 0.75rem;
  }

  .document-icon {
    width: 35px;
    min-width: 35px;
    height: 41px;
  }

  .document-copy strong {
    font-size: 0.98rem;
  }

  .footer-main {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    padding-top: 3rem;
    padding-bottom: 2.4rem;
  }

  .footer-brand {
    grid-column: auto;
  }

  .footer-bottom {
    font-size: 0.68rem;
  }

  .article-header .lead {
    font-size: 1.04rem;
  }

  .article-cover {
    margin-bottom: 2rem;
  }

  .article-body section {
    margin-bottom: 2.25rem;
  }
}

@media (max-width: 360px) {
  .wrap {
    padding-right: 15px;
    padding-left: 15px;
  }

  .brand {
    gap: 7px;
  }

  .brand-mark {
    width: 35px;
    min-width: 35px;
    height: 35px;
  }

  .brand-words strong {
    font-size: 0.72rem;
  }

  .brand-words small {
    max-width: 8.25rem;
    font-size: 0.47rem;
  }

  .language-switch a {
    min-width: 31px;
    font-size: 0.64rem;
  }

  .hero h1 {
    font-size: 2.2rem;
  }

  .hero h1:lang(en),
  .hero :lang(en) h1 {
    font-size: 2.72rem;
  }

  .hero-caption,
  .hero-bottom-line {
    right: 15px;
    left: 15px;
  }
}

/* Final semantic markup alignment */
nav.desktop-nav { display: flex; min-height: 53px; align-items: stretch; justify-content: space-between; gap: 12px; }
.language-switch a[aria-current="true"] { background: var(--forest); color: white; }
.language-switch > span { padding: 0 3px; }
.hero .hero-caption { margin: 0; font-size: .67rem; line-height: 1.45; bottom: 16px; color: #f4efe4; max-width: none; }
.hero-bottom-line { display: flex; justify-content: space-between; gap: 20px; bottom: 51px; height: auto; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.32); background: transparent; font-size: .63rem; letter-spacing: .1em; color: #eee4ce; }
.wisdom-band > .wrap.wisdom-content { display: flex; align-items: flex-start; gap: 0; }
.wisdom-band .content-note { color: #e0e6dc; border-left-color: var(--temple-gold); margin-top: 22px; font-size: .83rem; }
.wisdom-band .quote-mark { margin-bottom: 12px; }
.wisdom-band blockquote { max-width: 880px; }
.wisdom-band blockquote p { margin: 12px 0; }
:lang(en) .wisdom-band blockquote p { font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(2rem, 3.8vw, 3.4rem); }
.text-link::after, .document-link::after { content: none; }
.split.reverse > :first-child, .split.reverse > :last-child { order: initial; }
.facts .info-row { display: block; }
.facts dd small { display: block; margin-top: 8px; font-family: var(--sans); font-size: .78rem; font-weight: 400; line-height: 1.6; }
.facts dd { font-family: var(--sans); font-size: 1rem; font-weight: 500; line-height: 1.65; }
.event-row { grid-template-columns: 79px minmax(0,1fr) auto; }
.event-row::after { content: none; }
.event-status { display: flex; align-items: center; gap: 25px; }
.event-status .arrow { font-size: 1.4rem; color: var(--wood); }
.event-month { margin: 0 auto; font-size: 1rem; }
.event-month > h2 { margin-bottom: 24px; }
.event-detail .event-row .status-pill { max-width: 180px; }
.activity-card { display: flex; flex-direction: column; }
.activity-card figure img { height: auto; min-height: 0; aspect-ratio: 3/2; }
.activity-card figure figcaption { padding: 0 22px; }
.activity-copy { flex: 1; }
.activity-detail[open] summary::after { content: "−"; }
.footer-links a { display: block; padding: 5px 0; }
.footer-brand > img { margin-bottom: 20px; }
.site-footer .footer-brand h2 { font-family: "Noto Serif Thai", serif; font-size: 1.25rem; letter-spacing: 0; }
.footer-contact address { font-style: normal; font-size: .9rem; margin-bottom: 16px; }
.footer-contact > a { display: inline-block; margin-bottom: 16px; }
.sources ol { margin-bottom: 30px; font-size: .88rem; }
.sources + .text-link { margin-top: 24px; }
:lang(th) h1, :lang(th) h2, :lang(th) h3 { line-height: 1.4; letter-spacing: 0; }
@media (max-width:1000px) { nav.desktop-nav { display:none; } }
@media (max-width:760px) {
 .hero-bottom-line > span:last-child { display: none; }
 .hero .hero-caption { font-size: .6rem; bottom: 14px; }
 .hero-bottom-line { bottom: 62px; }
 .hero-inner { padding-bottom: 8rem; }
 .event-row { grid-template-columns: 54px minmax(0,1fr); }
 .event-status { display: flex; grid-column: 2; justify-self: start; }
 .event-detail .event-row .status-pill { grid-column: 2; justify-self: start; }
 .split.reverse > :first-child { order: 2; }
 .split.reverse > :last-child { order: 1; }
 .language-switch { letter-spacing: 0; }
 .language-switch a { padding: 0 8px; }
 .facts > div { display: block; }
}
@media (max-width:480px) {
 .header-main { flex-wrap: wrap; padding-top: 14px; padding-bottom: 10px; gap: 12px; }
 .header-right { margin-left: auto; }
 .brand { flex: 1 1 190px; }
 .brand-words strong { font-size: .95rem; }
 .brand-words small { font-size: .58rem; max-width: none; }
 .hero-bottom-line { font-size: .52rem; letter-spacing: .06em; }
 .event-info h3 { line-height: 1.5; }
 .hero h1:lang(th) { line-height: 1.35; }
 .content-note { font-size: .92rem; }
}
