/* Templestan V1.11.0 — Mobile UX & Responsive Experience
 * One cache-friendly HTML tree, centralized responsive tokens, no device-specific URLs.
 */
:root{
 --ts-edge:clamp(14px,3vw,28px);
 --ts-section-y:clamp(2.5rem,5.2vw,4.8rem);
 --ts-card-gap:clamp(.75rem,1.6vw,1.15rem);
 --ts-header-mobile:64px;
 --ts-touch:44px;
 --ts-sticky-offset:calc(var(--ts-header-mobile) + env(safe-area-inset-top,0px));
 --ts-safe-bottom:env(safe-area-inset-bottom,0px);
 --ts-z-sticky:45;
 --ts-z-drawer:110;
 --ts-z-dialog:130;
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-wrap:break-word}
.ts-container{width:min(calc(100% - (var(--ts-edge) * 2)),var(--ts-container))}
.ts-section{padding-block:var(--ts-section-y)}
.ts-section--tight{padding-block:clamp(1.8rem,3.8vw,2.7rem)}
button,a,input,select,textarea{touch-action:manipulation}
button,.ts-button,.ts-icon-button,.ts-mobile-toggle,.ts-mobile-close{min-height:var(--ts-touch)}
input,select,textarea{max-width:100%}
.ts-prose,.ts-article-content{overflow-wrap:anywhere}
.ts-prose pre,.ts-article-content pre,.ts-prose table,.ts-article-content table{max-width:100%}
.ts-responsive-table{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
.ts-responsive-table::after{content:"";display:block;height:1px}
.ts-breadcrumbs{max-width:100%;overflow:hidden}
.ts-breadcrumbs ol{display:flex;align-items:center;gap:.4rem;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;white-space:nowrap;padding-block:.25rem;padding-inline:0;margin:0}
.ts-breadcrumbs li{flex:0 0 auto;max-width:min(54vw,420px);overflow:hidden;text-overflow:ellipsis}
.ts-breadcrumbs li:last-child{font-weight:700}
.ts-breadcrumbs a,.ts-breadcrumbs span{overflow:hidden;text-overflow:ellipsis}
.ts-ad-slot{max-width:100%;overflow:clip}
.ts-ad-slot ins{max-width:100%!important}
img,video,iframe,svg{max-width:100%}

/* Header / drawers */
@media (max-width:900px){
 body.admin-bar{--ts-sticky-offset:calc(var(--ts-header-mobile) + 46px + env(safe-area-inset-top,0px))}
 .ts-mainbar{min-height:var(--ts-header-mobile)}
 .ts-mainbar-inner{min-height:var(--ts-header-mobile)!important;padding-top:env(safe-area-inset-top,0px)}
 .ts-primary-nav{width:min(420px,100vw)!important;max-width:100%;inset:0 0 0 auto!important;height:100vh;height:100dvh;padding-bottom:var(--ts-safe-bottom)!important;overscroll-behavior:contain}
 .ts-mobile-panel-head{padding-top:max(1rem,env(safe-area-inset-top,0px))!important}
 .ts-mobile-search{min-height:48px}
 .ts-primary-menu>li>a{min-height:52px}
 .ts-primary-menu .sub-menu a{min-height:44px;display:flex!important;align-items:center}
 .ts-submenu-toggle{min-width:44px;min-height:44px}
 .ts-site-header.is-sticky{top:0}
 .admin-bar .ts-site-header.is-sticky{top:46px}
 .ts-header-actions{gap:.25rem}
 .ts-header-actions .ts-search-toggle{display:grid!important;width:44px;height:44px}
 .ts-journey-tray{min-height:44px;display:flex;align-items:center;padding-inline:.65rem;font-size:.75rem}
 .ts-search-overlay{height:100vh;height:100dvh;padding-bottom:var(--ts-safe-bottom)}
 .ts-search-dialog{max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
}
@media (max-width:480px){
 .ts-logo-copy strong{font-size:1.15rem!important}
 .ts-journey-tray{font-size:0;width:44px;justify-content:center;padding-inline:0}
 .ts-journey-tray span{font-size:.72rem;min-width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--ts-cream);color:var(--ts-ink)}
 .ts-mainbar-inner{gap:.3rem!important}
 .ts-mobile-toggle{width:44px;height:44px}
 .ts-header-actions .ts-icon-button{display:grid!important}
}
@media (max-width:360px){
 .ts-logo-copy strong{font-size:1.05rem!important}
 .ts-mainbar-inner{grid-template-columns:minmax(0,1fr) auto auto!important}
}

/* Fluid type and restrained heroes */
@media (max-width:680px){
 h1{font-size:clamp(2rem,9vw,2.85rem)!important;line-height:1.05;overflow-wrap:anywhere}
 h2{font-size:clamp(1.5rem,6.5vw,2rem)}
 h3{font-size:clamp(1.05rem,4.8vw,1.25rem)}
 .ts-page-hero,.ts-compact-hero,.ts-hub-hero,.ts-festival-hero,.ts-pilgrimage-hero,.ts-article-hero{min-height:auto!important}
 .ts-page-hero .ts-container,.ts-compact-hero .ts-container,.ts-hub-hero__inner,.ts-festival-hero__content,.ts-pilgrimage-hero>.ts-container,.ts-pilgrimage-hero__inner{padding-block:clamp(1.8rem,8vw,3rem)!important}
 .ts-hero--home{min-height:min(560px,78svh)!important}
 .ts-home-hero-grid{padding-block:clamp(4.5rem,14vw,6rem) 1.5rem!important}
 .ts-home-hero-copy h1{font-size:clamp(2.15rem,10vw,3rem)!important}
 .ts-hero-intro,.ts-home-hero-copy .ts-hero-intro{font-size:.96rem!important;line-height:1.55}
 .ts-hero-cta,.ts-pilgrimage-hero__actions{gap:.55rem}
 .ts-hero-cta .ts-button,.ts-pilgrimage-hero__actions .ts-button{min-height:46px}
}

/* Homepage / discovery */
@media (max-width:680px){
 .ts-discovery-search{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
 .ts-discovery-search label{min-width:0}
 .ts-discovery-search input,.ts-discovery-search select{font-size:16px}
 .ts-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.65rem!important}
 .ts-icon-card{min-height:74px}
 .ts-card-grid--4,.ts-card-grid--3,.ts-temple-card-grid,.ts-sacred-place-grid{grid-template-columns:1fr!important;gap:.85rem}
 .ts-home-card{display:grid;grid-template-columns:minmax(108px,34%) minmax(0,1fr);min-height:116px}
 .ts-home-card .ts-card-media{height:100%;aspect-ratio:auto}
 .ts-home-card .ts-card-body{padding:.8rem!important}
 .ts-home-card .ts-card-title{font-size:1rem!important}
 .ts-home-card .ts-card-body p{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .ts-section-header{gap:.65rem;margin-bottom:1.1rem}
 .ts-section-header h2{margin-bottom:.2rem}
}
@media (max-width:360px){.ts-icon-grid{grid-template-columns:1fr!important}.ts-home-card{grid-template-columns:1fr}.ts-home-card .ts-card-media{aspect-ratio:16/9}}

/* Directory */
@media (max-width:900px){
 .ts-directory-mobile-bar{padding-bottom:var(--ts-safe-bottom);z-index:var(--ts-z-sticky)!important}
 .ts-directory-mobile-bar button{min-height:52px!important}
 .ts-js .ts-directory-filter-panel{height:100vh;height:100dvh;z-index:var(--ts-z-drawer)!important;padding:0!important;overflow:hidden!important;display:flex!important;flex-direction:column}
 .ts-js .ts-directory-filter-panel:not(.is-open){pointer-events:none}
 .ts-directory-filter-panel__head{position:relative!important;top:auto!important;margin:0!important;padding:calc(1rem + env(safe-area-inset-top,0px)) var(--ts-edge) .85rem!important;flex:0 0 auto}
 .ts-directory-filter-grid{overflow-y:auto;overscroll-behavior:contain;padding:1rem var(--ts-edge);flex:1 1 auto;align-content:start}
 .ts-directory-filter-actions{position:relative!important;bottom:auto!important;margin:0!important;padding:.8rem var(--ts-edge) calc(.8rem + var(--ts-safe-bottom))!important;flex:0 0 auto;box-shadow:0 -10px 30px rgba(32,37,38,.08)}
 .ts-directory-filter-actions .ts-button{min-height:48px}
}
@media (max-width:680px){
 .ts-directory-search{grid-template-columns:40px minmax(0,1fr) auto!important;padding:.4rem!important}
 .ts-directory-search .ts-button{grid-column:1/-1!important;min-height:48px}
 .ts-directory-results{grid-template-columns:1fr!important}
 .ts-directory-results-head{padding-top:.8rem!important}
 .ts-directory-result-controls{gap:.55rem!important}
 .ts-directory-sort-form select{font-size:16px}
 .ts-active-filters{flex-wrap:nowrap!important;overflow-x:auto;overscroll-behavior-inline:contain;padding-bottom:.25rem;scrollbar-width:thin}
 .ts-active-filters>*{flex:0 0 auto}
 .ts-temple-card:hover{transform:none}
 .ts-directory-pagination{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;gap:.5rem}
 .ts-directory-pagination .page-numbers:not(.prev):not(.next):not(.current){display:none}
 .ts-directory-pagination .current{width:auto;min-width:0;padding-inline:.8rem}
 .ts-directory-pagination .current::before{content:"Page ";font-weight:500}
 .ts-directory-pagination .prev,.ts-directory-pagination .next{min-height:44px;display:flex!important;align-items:center;justify-content:center;padding-inline:.75rem}
 .ts-directory-pagination .prev span,.ts-directory-pagination .next span{display:inline!important}
}

/* Temple Intelligence */
@media (max-width:900px){
 .ts-temple-layout,.ts-temple-content-grid,.ts-temple-hero__inner{grid-template-columns:1fr!important}
 .ts-temple-anchor-nav{top:var(--ts-sticky-offset)!important;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;z-index:var(--ts-z-sticky)!important}
 .ts-temple-anchor-nav a{min-height:44px;display:flex;align-items:center;white-space:nowrap}
 .ts-temple-intelligence__grid,.ts-temple-intel-grid,.ts-intelligence-strip,.ts-glance-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ts-temple-related-grid,.ts-temple-festival-grid,.ts-facility-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:680px){
 .ts-temple-hero{min-height:auto!important}
 .ts-temple-hero__content{padding-block:1.5rem!important}
 .ts-temple-hero__actions,.ts-cta-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem!important}
 .ts-temple-hero__actions .ts-button,.ts-cta-row .ts-button{min-height:46px;width:100%;justify-content:center}
 .ts-temple-intelligence__grid,.ts-temple-intel-grid,.ts-intelligence-strip,.ts-glance-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.55rem!important}
 .ts-intel-item,.ts-fact{padding:.8rem!important}
 .ts-temple-section{scroll-margin-top:calc(var(--ts-sticky-offset) + 54px)}
 .ts-temple-section-heading{grid-template-columns:auto minmax(0,1fr)!important;gap:.65rem!important}
 .ts-temple-related-grid,.ts-temple-festival-grid,.ts-facility-grid,.ts-temple-highlight-grid,.ts-best-time-grid{grid-template-columns:1fr!important}
 .ts-temple-gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.5rem!important}
 .ts-temple-info-grid,.ts-entry-fees,.ts-visitor-grid,.ts-reach-grid,.ts-transport-strip,.ts-temple-source-card{grid-template-columns:1fr!important}
 .ts-map-cta{width:100%;min-height:48px;justify-content:center}
}
@media (max-width:360px){.ts-temple-intelligence__grid,.ts-temple-intel-grid,.ts-intelligence-strip,.ts-glance-grid{grid-template-columns:1fr!important}.ts-temple-hero__actions,.ts-cta-row{grid-template-columns:1fr!important}}

/* Hubs */
@media (max-width:900px){
 .ts-hub-grid,.ts-entity-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ts-hub-discovery-columns,.ts-hub-facts__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:600px){
 .ts-hub-grid,.ts-entity-grid,.ts-hub-discovery-columns{grid-template-columns:1fr!important}
 .ts-hub-facts__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ts-az-nav,.ts-link-chip-row{display:flex;overflow-x:auto;flex-wrap:nowrap!important;overscroll-behavior-inline:contain;padding-bottom:.3rem}
 .ts-az-nav>* ,.ts-link-chip-row>*{flex:0 0 auto}
}

/* Pilgrimage + planner */
@media (max-width:900px){
 .ts-pilgrimage-grid,.ts-pilgrimage-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ts-pilgrimage-facts__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ts-pilgrimage-info-grid,.ts-pilgrimage-discovery{grid-template-columns:1fr!important}
 .ts-planner-shell{grid-template-columns:1fr!important}
 .ts-planner-summary{position:static!important}
 .ts-planner-summary h2{font-size:1.3rem}
 .ts-planner-progress{grid-template-columns:repeat(4,minmax(0,1fr))!important;overflow-x:auto}
 .ts-planner-progress span{min-width:100px}
 .ts-planner-options{grid-template-columns:1fr!important}
 .ts-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:600px){
 .ts-pilgrimage-grid,.ts-pilgrimage-grid--4{grid-template-columns:1fr!important}
 .ts-pilgrimage-facts__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ts-route-stop{grid-template-columns:36px minmax(0,1fr)!important;gap:.7rem!important}
 .ts-route-stop__marker{width:36px!important;height:36px!important}
 .ts-route-stop:not(:last-child)::before{left:17px!important;top:36px!important}
 .ts-route-stop__title{display:block!important}
 .ts-planner-panel,.ts-planner-summary{padding:.9rem!important}
 .ts-planner-progress{display:flex!important;gap:.3rem;border:0!important;background:transparent!important;overflow-x:auto;scroll-snap-type:x proximity}
 .ts-planner-progress span{flex:0 0 auto;min-width:auto!important;border:1px solid var(--ts-line)!important;border-radius:999px;padding:.55rem .75rem!important;scroll-snap-align:start}
 .ts-planner-stop{align-items:flex-start!important;flex-direction:column!important;padding:.8rem!important}
 .ts-planner-stop>div{width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem!important}
 .ts-planner-stop button{min-height:44px;text-align:center;border:1px solid var(--ts-line);border-radius:6px;padding:.5rem!important}
 .ts-planner-days{position:sticky;bottom:0;z-index:var(--ts-z-sticky);background:#fff;padding:.75rem 0 calc(.75rem + var(--ts-safe-bottom));box-shadow:0 -8px 24px rgba(32,37,38,.08);display:grid!important;grid-template-columns:1fr!important}
 .ts-planner-days .ts-button{width:100%;min-height:50px}
 .ts-day-grid{grid-template-columns:1fr!important}
 .ts-planner-actions{display:grid!important;grid-template-columns:1fr!important}
}

/* Festival / calendar */
@media (max-width:780px){
 .ts-calendar-filters{grid-template-columns:1fr 1fr!important;gap:.65rem!important}
 .ts-calendar-filters label{min-width:0}
 .ts-calendar-filters input,.ts-calendar-filters select{width:100%;font-size:16px}
 .ts-calendar-filters .ts-button{grid-column:1/-1;min-height:48px;width:100%}
 .ts-calendar-grid-wrap{display:none!important}
 .ts-calendar-list--mobile{display:grid!important;gap:.75rem}
 .ts-calendar-toolbar{gap:.7rem!important}
 .ts-calendar-toolbar__actions{gap:.5rem!important}
 .ts-calendar-toolbar .ts-button{min-height:44px}
 .ts-event-card{grid-template-columns:auto minmax(0,1fr)!important}
 .ts-event-actions{position:static!important}
 .ts-festival-discovery-columns{grid-template-columns:1fr!important}
}
@media (max-width:430px){
 .ts-calendar-filters{grid-template-columns:1fr!important}
 .ts-calendar-filters .ts-button{grid-column:auto}
 .ts-calendar-toolbar__actions{display:grid!important;grid-template-columns:1fr 1fr}
 .ts-calendar-toolbar__actions>*{justify-content:center;text-align:center}
 .ts-event-card{grid-template-columns:1fr!important}
}

/* Editorial */
@media (max-width:900px){
 .ts-article-layout{grid-template-columns:1fr!important}
 .ts-article-side{display:none!important}
 .ts-article-mobile-tools{display:block!important}
 .ts-editorial-grid,.ts-editorial-grid--related{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .ts-article-content{max-width:760px;margin-inline:auto}
}
@media (max-width:600px){
 .ts-article-hero__inner{grid-template-columns:1fr!important;gap:1rem!important}
 .ts-article-hero__media{order:2}
 .ts-article-meta{gap:.45rem!important;font-size:.75rem}
 .ts-article-deck{font-size:1rem!important}
 .ts-editorial-grid,.ts-editorial-grid--related{grid-template-columns:1fr!important}
 .ts-article-content{font-size:1rem;line-height:1.72}
 .ts-article-content h2{font-size:clamp(1.45rem,6.8vw,1.9rem)}
 .ts-article-content h3{font-size:clamp(1.18rem,5.3vw,1.45rem)}
 .ts-article-content blockquote{margin-inline:0;padding-inline:1rem}
 .ts-article-toc__toggle{min-height:48px}
 .ts-editorial-entity-card{grid-template-columns:1fr!important}
 .ts-author-card{grid-template-columns:auto minmax(0,1fr)!important;gap:.75rem!important}
}

/* Footer / forms */
.ts-footer-disclosure{appearance:none;width:100%;border:0;background:transparent;color:inherit;text-align:left;padding:0;font-family:var(--ts-serif);font-size:1.2rem;font-weight:600;line-height:1.2;margin:0 0 .6em;cursor:default}
@media (max-width:680px){
 .ts-footer-grid{grid-template-columns:1fr!important;gap:0!important;padding-block:2rem!important}
 .ts-footer-brand{padding-bottom:1.2rem}
 .ts-footer-grid>div:not(.ts-footer-brand){border-top:1px solid rgba(255,255,255,.14);padding-block:.15rem}
 .ts-footer-grid>div:not(.ts-footer-brand)>h2{margin:0;font-size:1rem;padding-block:.9rem}
 .ts-footer-disclosure{width:100%;min-height:48px;background:transparent;border:0;color:inherit;display:flex;align-items:center;justify-content:space-between;text-align:left;font-family:var(--ts-serif);font-size:1rem;padding:0}
 .ts-footer-disclosure::after{content:"+";font-family:var(--ts-sans);font-size:1.2rem}
 .ts-footer-disclosure[aria-expanded="true"]::after{content:"−"}
 .ts-footer-collapsible[hidden]{display:none!important}
 .ts-footer-collapsible{padding-bottom:1rem}
 .ts-newsletter{display:grid!important;grid-template-columns:1fr!important;gap:.55rem}
 .ts-newsletter input{font-size:16px;min-height:48px}
 .ts-newsletter .ts-button{min-height:48px;width:100%}
 .ts-footer-bottom .ts-container{gap:.65rem}
}

/* Sticky governance, safe areas, zoom, landscape */
@media (max-width:900px){
 .ts-directory-mobile-bar,.ts-planner-days{padding-bottom:calc(.6rem + var(--ts-safe-bottom))}
 [id]{scroll-margin-top:calc(var(--ts-sticky-offset) + 12px)}
}
@media (orientation:landscape) and (max-height:520px) and (max-width:900px){
 .ts-primary-nav,.ts-search-overlay,.ts-js .ts-directory-filter-panel{height:100dvh}
 .ts-mobile-panel-head{padding-block:.45rem!important}
 .ts-mobile-search{margin-block:.45rem!important}
 .ts-primary-menu>li>a{min-height:44px}
 .ts-home-hero-grid{padding-top:4rem!important}
}
@media (min-width:901px) and (max-width:1279px){
 .ts-card-grid--4,.ts-pilgrimage-grid--4,.ts-directory-results{grid-template-columns:repeat(3,minmax(0,1fr))}
 .ts-container{--ts-edge:24px}
}
@media (min-width:1440px){
 .ts-prose,.ts-article-content{max-width:760px}
 .ts-card-grid--4,.ts-directory-results{gap:1.15rem}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .ts-primary-nav,.ts-js .ts-directory-filter-panel,*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@supports not (height:100dvh){.ts-primary-nav,.ts-search-overlay{height:100vh}}
@media (max-width:600px){
 .ts-planner-summary-toggle{width:100%;min-height:46px;border:0;border-bottom:1px solid var(--ts-line);background:transparent;text-align:left;font-weight:800;color:var(--ts-charcoal);padding:0 0 .65rem;margin-bottom:.7rem;display:flex;align-items:center;justify-content:space-between}
 .ts-planner-summary-toggle::after{content:"+";font-size:1.2rem}
 .ts-planner-summary-toggle[aria-expanded="true"]::after{content:"−"}
}
