/* White-first INGAA super-app layer. Colour belongs to brand chrome and ambient light. */
:root{--app-shadow:0 5px 24px #17233d07,0 16px 48px color-mix(in srgb,var(--wine) 7%,transparent);--app-radius:18px;--app-small-radius:12px}
body{background:#fff;font-size:15px;font-weight:400;line-height:1.75;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--sans);font-style:normal;color:var(--ink)}h1,h2{font-weight:800;letter-spacing:-1.5px}h3{font-weight:700;letter-spacing:-.4px}p{color:var(--muted)}.button{border-radius:12px;font-weight:700;font-size:13px;padding:14px 21px;line-height:1.5;background:linear-gradient(115deg,var(--wine),color-mix(in srgb,var(--wine) 75%,var(--copper)));box-shadow:0 7px 21px color-mix(in srgb,var(--wine) 19%,transparent);border-color:var(--wine)}.button:hover{background:var(--deep);transform:translateY(-1px);box-shadow:0 9px 25px color-mix(in srgb,var(--wine) 23%,transparent)}.button.outline{background:#fff;box-shadow:none;border-color:var(--line)}.button.outline:hover{background:var(--soft);border-color:var(--wine)}.button.light{background:#fff;color:var(--wine);box-shadow:0 8px 24px #0001;border-color:#fff}.button.small{font-size:12px;border-radius:10px}.text-link{font-size:13px;font-weight:700}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.65px}.eyebrow:before{border-radius:3px;height:3px;width:20px}
.blessing-ribbon{background:var(--deep);border-bottom:1px solid #ffffff1a;color:#fff;min-height:29px;font-size:8px;letter-spacing:1.6px;font-weight:600;padding-block:6px;gap:22px}.blessing-ribbon span{font-family:var(--tamil);font-size:10px;color:#fff}.blessing-ribbon i{color:#ffffff8c}.header{background:linear-gradient(110deg,var(--deep),var(--wine));border-bottom:1px solid #ffffff29;box-shadow:0 5px 26px color-mix(in srgb,var(--wine) 17%,transparent);backdrop-filter:none}.header-inner{min-height:88px;gap:20px}.brand{gap:10px}.brand-mark{width:37px;height:43px;color:#fff}.brand-mark circle{fill:var(--glow)}.brand b{font-family:var(--sans);font-size:29px;font-weight:800;letter-spacing:1.3px;line-height:1.1;color:#fff}.brand small{font-family:var(--sans);font-weight:600;font-size:7px;letter-spacing:2.1px;color:#ffffffc7;margin-top:6px}.primary-nav{gap:24px}.primary-nav a{color:#ffffffc9;font-size:12px;font-weight:500}.primary-nav a:hover,.primary-nav a.active{color:#fff}.primary-nav a.active{font-weight:700}.primary-nav a.active:after{background:var(--glow);bottom:-11px}.saved-link,.theme-header-link{color:#ffffffeb;font-size:11px;font-weight:600}.header-actions{gap:20px}.header-actions .button{background:#fff;color:var(--wine);border-color:#fff;box-shadow:0 6px 20px #0001;font-size:11px}.header-actions .button:hover{background:#fffffff0;box-shadow:0 6px 24px #0002}.header-palette i{border-color:#ffffff66}.header-palette i:first-child{background:#fff}.header-palette i:nth-child(2){background:var(--glow)}.header-palette i:nth-child(3){background:var(--copper)}.header .save-count{background:#fff;color:var(--wine)}.header .menu-button{color:#fff;border-color:#ffffff38;background:#ffffff0d}.header #mobile-nav{background:var(--deep);border-top-color:#ffffff26}.header #mobile-nav a{color:#fff;font-size:13px;border-radius:8px}.header #mobile-nav a:hover{background:#ffffff0c}
.hero{padding-top:55px;min-height:620px;gap:70px;padding-bottom:43px;overflow:visible}.hero:before{inset:0 -25px -10px;background:radial-gradient(ellipse at 79% 43%,color-mix(in srgb,var(--glow) 22%,transparent),transparent 47%),radial-gradient(ellipse at 66% 58%,color-mix(in srgb,var(--wine) 8%,transparent),transparent 40%)}.hero h1{font-family:var(--sans);font-size:64px;font-weight:800;line-height:1.1;letter-spacing:-3px;color:var(--ink);margin-bottom:23px}.hero h1 em{font-family:var(--sans);font-weight:800;font-style:normal;white-space:nowrap;color:var(--wine);background:linear-gradient(105deg,var(--wine),var(--copper));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero .eyebrow{font-size:9px;letter-spacing:1.8px;margin-bottom:22px}.hero-copy>.tamil-blessing{font-family:var(--tamil);font-size:14px;font-weight:600;line-height:1.8;color:var(--copper);margin-bottom:17px}.hero-copy>p:not(.tamil-blessing){font-size:14px;line-height:1.9;font-weight:400;max-width:420px;margin-bottom:26px}.hero-actions .text-link{font-size:12px}.hero-footnote{font-size:10px;font-weight:500;gap:9px;line-height:1.8}.hero-footnote .icon{width:15px;height:15px}.hero-sanctum{padding:9px 10px 0;margin:0 7px}.hero-image{height:480px;border-radius:28px;border:1px solid #ffffffc7;outline:1px solid var(--line);outline-offset:7px;box-shadow:0 18px 60px color-mix(in srgb,var(--wine) 11%,transparent),0 4px 35px color-mix(in srgb,var(--glow) 26%,transparent)}.hero-image>img{object-position:47% 58%;filter:saturate(.88)}.hero-image:after{background:linear-gradient(transparent,rgba(23,18,15,.8))}.hero-caption h3{font-family:var(--sans);font-size:22px;font-weight:700;letter-spacing:-.6px;line-height:1.35;color:#fff}.hero-caption small{font-family:var(--sans);font-size:8px;letter-spacing:1.4px;color:#ffecd2}.hero-caption p{font-size:10px;color:#ffffffe0}.hero-caption .icon-button{background:#ffffff12;border-color:#ffffff4a;color:#fff;border-radius:12px}.photo-top{font-size:7px;letter-spacing:1px;top:21px;left:22px;transform:none;background:#ffffffdc;color:#493222;padding:7px 10px;border-radius:7px;backdrop-filter:blur(12px)}.hero-note{font-size:8px;margin-top:17px;color:var(--muted)}.aura-rings{inset:-25px -42px 12px;background:radial-gradient(ellipse at 55% 46%,color-mix(in srgb,var(--glow) 34%,transparent),transparent 64%);opacity:.7;filter:blur(18px)}.aura-rings:after{inset:-5px;border:1px solid color-mix(in srgb,var(--gold) 12%,transparent);border-radius:50%;filter:blur(2px)}.temple-bell,.lamp,.ornament-divider{display:none}
.theme-strip{margin-top:5px;margin-bottom:40px;padding-block:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.theme-label{font-size:9px;font-weight:800;letter-spacing:1.45px}.theme-strip small{font-size:9px;margin-top:4px}.theme-swatches button{font-size:10px;font-weight:600;gap:7px}.theme-swatches{gap:18px}.theme-strip>.text-link{font-size:10px}.theme-dot{width:18px;height:18px;border-color:#fff}.services-portal>.section-head{text-align:left;justify-content:space-between;margin-bottom:25px}.services-portal .eyebrow{justify-content:flex-start}.services-portal .eyebrow:before{display:block}.services-portal h2{font-family:var(--sans);font-size:35px;font-weight:800;letter-spacing:-1.2px;line-height:1.25}.services-portal p{font-size:13px;line-height:1.8}.services-bar{border:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;background:transparent;box-shadow:none;margin-bottom:65px;border-radius:0}.service-item{background:#fff;border:1px solid var(--line)!important;border-radius:16px;min-height:104px;padding:21px 22px;gap:15px;box-shadow:0 4px 21px color-mix(in srgb,var(--wine) 4%,transparent);transition:transform .2s,box-shadow .2s,border-color .2s}.service-item:hover{background:#fff;transform:translateY(-3px);border-color:color-mix(in srgb,var(--wine) 28%,var(--line))!important;box-shadow:0 10px 30px color-mix(in srgb,var(--wine) 10%,transparent)}.service-item>.icon:first-child{color:var(--wine);background:var(--soft);border-radius:12px;box-sizing:content-box;padding:11px;width:25px;height:25px;stroke-width:1.6}.service-item>.icon:last-child{color:var(--copper);width:13px;height:13px}.service-item b{font-size:13px;font-weight:700;line-height:1.5;letter-spacing:-.2px;color:var(--ink)}.service-item small{font-size:10px;line-height:1.7;font-weight:400;margin-top:4px;color:var(--muted)}
.section-head h2{font-family:var(--sans);font-size:35px;font-weight:800;line-height:1.25;letter-spacing:-1.2px;color:var(--ink)}.section-head p{font-size:13px;line-height:1.9}.section-head>.text-link{font-size:12px}.chip{font-size:11px;font-weight:600;background:#fff;padding:8px 17px;line-height:1.5;border-radius:30px}.chip.active,.chip:hover{background:var(--wine);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--wine) 14%,transparent)}.temple-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--app-shadow)}.temple-card:hover{box-shadow:0 16px 45px color-mix(in srgb,var(--wine) 11%,transparent)}.temple-photo{height:235px}.temple-photo img{filter:saturate(.9)}.temple-photo .save{border-radius:11px;box-shadow:0 3px 14px #0001}.photo-tag{font-size:9px;font-weight:700;border-radius:6px;background:#ffffffeb;padding:5px 9px;line-height:1.5}.card-body{padding:21px 22px}.card-body h3{font-family:var(--sans);font-size:20px;font-weight:700;letter-spacing:-.5px;line-height:1.5;color:var(--ink);margin-bottom:10px}.card-body p{font-size:11px;line-height:1.9;margin-bottom:18px}.location{font-size:10px;font-weight:600;line-height:1.6;color:var(--copper)}.card-bottom{font-size:8px;line-height:1.7}.card-bottom .text-link{font-size:10px;gap:7px}.placeholder-photo{background:linear-gradient(140deg,#fff,var(--soft));color:color-mix(in srgb,var(--wine) 60%,#fff)}.placeholder-photo:before{border-color:color-mix(in srgb,var(--wine) 15%,#fff)}.placeholder-photo span{font-size:8px;font-weight:600;letter-spacing:1.5px}.journeys-section{background:linear-gradient(130deg,var(--soft),#fff 68%,var(--soft));border:0;padding-block:60px;position:relative;box-shadow:inset 0 1px var(--line),inset 0 -1px var(--line)}.journey-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--app-shadow)}.journey-body{padding:23px}.journey-body small{font-size:9px;letter-spacing:1px;line-height:1.8;font-weight:700}.journey-body h3{font-family:var(--sans);font-size:21px;line-height:1.45;font-weight:700;letter-spacing:-.5px;color:var(--ink);margin-top:10px}.journey-body p{font-size:12px;line-height:1.8}.journey-body .text-link{font-size:12px}.journey-art{background:radial-gradient(ellipse at 50% 65%,color-mix(in srgb,var(--glow) 22%,#fff),var(--soft));color:var(--wine)}.journey-art:before,.journey-art:after{border-color:color-mix(in srgb,var(--gold) 20%,#fff)}.ritual-photo{border-radius:22px;height:370px;box-shadow:0 10px 45px color-mix(in srgb,var(--glow) 19%,transparent)}.ritual-copy h2{font-family:var(--sans);font-size:36px;font-weight:800;line-height:1.25;letter-spacing:-1.1px;color:var(--ink)}.ritual-copy p{font-size:13px;line-height:1.95}.mini-service h3{font-size:13px;font-weight:700;line-height:1.7}.mini-service p{font-size:10px;line-height:1.8}.mini-service>.icon{width:25px;height:25px}.trust-band{background:radial-gradient(ellipse at 90% 100%,color-mix(in srgb,var(--copper) 70%,transparent),transparent 55%),linear-gradient(110deg,var(--deep),var(--wine));border:1px solid #ffffff22;border-radius:22px;box-shadow:0 14px 45px color-mix(in srgb,var(--wine) 16%,transparent);padding:38px 42px;gap:30px;overflow:hidden}.trust-band h2{font-family:var(--sans);font-size:28px;font-weight:700;letter-spacing:-.75px;line-height:1.35;color:#fff;margin-bottom:9px}.trust-band p{font-size:12px;color:#ffffffdb;line-height:1.8;opacity:1}.trust-band>.icon{color:#ffe3ab;stroke-width:1.3;width:34px;height:34px}
.footer{background:radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--wine) 80%,transparent),transparent 65%),var(--deep);border-top:1px solid #ffffff12;box-shadow:0 -8px 40px color-mix(in srgb,var(--wine) 10%,transparent);color:#fff}.footer-main h3{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.1px;color:#fff;line-height:1.6}.footer-main>div>a:not(.brand){font-size:11px;color:#ffffffb8;line-height:1.9;margin-bottom:9px}.footer-main>div>a:not(.brand):hover{color:#fff}.footer-brand p,.footer-note p{font-size:11px;line-height:1.95;color:#ffffffb8}.footer-note>a{color:#fff!important}.footer-bottom{border-top-color:#ffffff22;font-size:9px;color:#ffffffa8;line-height:1.8}.footer .brand b,.footer .brand small{color:#fff}.footer .brand-mark{color:#fff}
.page-intro{padding-top:42px;padding-bottom:29px}.page-intro h1{font-family:var(--sans);font-size:45px;font-weight:800;letter-spacing:-1.8px;color:var(--ink);line-height:1.2;margin-bottom:18px}.page-intro>p{font-size:14px;line-height:1.9;max-width:720px}.breadcrumb{font-size:10px;line-height:1.8;margin-bottom:25px}.service-tabs{border-top:0;border-bottom:1px solid var(--line);gap:6px;padding-block:10px 21px;margin-bottom:32px}.service-tab{font-size:11px;font-weight:600;line-height:1.5;border:1px solid transparent;border-radius:10px;padding:11px 13px}.service-tab.active{background:var(--wine);color:#fff;box-shadow:0 5px 18px color-mix(in srgb,var(--wine) 15%,transparent)}.service-tab:not(.active):hover{background:var(--soft);border-color:var(--line)}.service-hero{background:radial-gradient(ellipse at 10% 100%,color-mix(in srgb,var(--glow) 14%,transparent),transparent 60%),var(--soft);border:1px solid var(--line);border-radius:22px;box-shadow:var(--app-shadow)}.service-hero h2{font-family:var(--sans);font-size:34px;font-weight:700;letter-spacing:-1px;line-height:1.3;color:var(--ink)}.service-hero p{font-size:13px;line-height:1.9}.status-pill{font-size:9px;font-weight:600;line-height:1.8;background:#fff;color:var(--copper);border:1px solid var(--line);border-radius:30px;padding:4px 10px}.guide-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--app-shadow)}.guide-card h3{font-family:var(--sans);font-size:22px;line-height:1.4;font-weight:700;letter-spacing:-.6px;color:var(--ink)}.guide-card p{font-size:12px;line-height:1.9}.guide-card .text-link{font-size:12px}.guide-card>.icon{width:31px;height:31px;color:var(--wine);background:var(--soft);padding:11px;box-sizing:content-box;border-radius:13px}.readiness h3{font-size:15px;font-weight:700;color:var(--ink)}.readiness p{font-size:12px;line-height:1.95}.source-note{font-size:10px;line-height:1.9;border-radius:11px;background:var(--soft);border:1px solid var(--line);color:var(--muted)}.content-page h2{font-family:var(--sans);font-size:27px;font-weight:700;letter-spacing:-.7px;line-height:1.4;color:var(--ink)}.content-page h3{font-size:16px;line-height:1.7}.content-page p,.content-page li{font-size:13px;line-height:2}.facts-table{font-size:11px}.filter-title h3{font-size:13px}.filter-title button{font-size:10px}.filter-field label{font-size:11px;font-weight:700}.filter-field select,.field-input{font-size:12px;border-radius:10px;background:#fff;border-color:var(--line);padding:11px}.filter-field small{font-size:9px;line-height:1.9}.filter-stats{font-size:10px;line-height:1.9}.filter-stats strong{font-family:var(--sans);font-size:34px;font-weight:800;line-height:1.5}.search-box{border-radius:13px;background:#fff;border:1px solid var(--line);box-shadow:0 5px 24px #17233d05}.search-box input{font-size:13px;padding:10px 0}.search-box .button{border-radius:9px;font-size:12px}.results-top{font-size:11px}.results-top select{font-size:10px;border-radius:7px;background:#fff}.catalogue-grid .temple-photo{height:155px}.catalogue-grid .card-body{padding:17px}.catalogue-grid .card-body h3{font-family:var(--sans);font-size:17px;font-weight:700;line-height:1.5;letter-spacing:-.3px;color:var(--ink)}.catalogue-grid .card-body p{font-size:10px;line-height:1.9}.catalogue-grid .location{font-size:9px}.catalogue-grid .card-bottom{font-size:8px}.catalogue-grid .card-bottom .text-link{font-size:10px}.catalogue-grid .photo-tag{font-size:9px}.empty{background:radial-gradient(ellipse at 50% 0%,var(--soft),#fff 70%);border-color:var(--line);border-radius:18px}.empty h2{font-family:var(--sans);font-size:28px;font-weight:700;letter-spacing:-.8px;color:var(--ink);line-height:1.4}.empty p{font-size:12px;line-height:1.9}.plan-card{background:#fff;border-color:var(--line);border-radius:14px;box-shadow:0 3px 18px #17233d04}.plan-card h3{font-family:var(--sans);font-size:18px;font-weight:700;line-height:1.5;letter-spacing:-.35px;color:var(--ink)}.plan-card p{font-size:10px;line-height:1.8}.plan-index{border-color:var(--line);color:var(--wine);background:var(--soft);font-size:10px}.planner-aside{border-radius:18px;background:var(--soft);border:1px solid var(--line);box-shadow:var(--app-shadow)}.planner-aside h3{font-family:var(--sans);font-size:23px;font-weight:700;letter-spacing:-.6px;color:var(--ink);line-height:1.5}.planner-aside p{font-size:11px;line-height:1.95}.planner-save-note{font-size:10px;line-height:1.9}.checklist li{background:#fff;border-color:var(--line);font-size:12px;border-radius:11px;box-shadow:0 3px 14px #17233d03}.breathing{border-radius:22px;background:radial-gradient(ellipse at 80% 50%,color-mix(in srgb,var(--sage) 80%,#fff),#fff);border:1px solid var(--line)}.breathing h2{font-family:var(--sans);font-size:33px;font-weight:700;line-height:1.3;letter-spacing:-1px;color:var(--ink)}.breathing p{font-size:12px;line-height:1.9}.breath-orb{box-shadow:0 0 0 18px #dce3d173,0 0 0 35px #e1e8d74d,0 0 65px #a6c99450}.devotional-feature{border-radius:22px;border:0;background:radial-gradient(ellipse at 15% 45%,color-mix(in srgb,var(--glow) 24%,transparent),transparent 50%),linear-gradient(115deg,var(--deep),var(--wine));box-shadow:0 15px 45px color-mix(in srgb,var(--wine) 15%,transparent)}.devotional-feature:before{opacity:.1}.devotional-feature h2{font-family:var(--sans);font-size:35px;font-weight:700;letter-spacing:-1px;line-height:1.3;color:#fff}.devotional-feature p{font-size:13px;line-height:1.9;color:#ffffffe0}.devotional-feature .eyebrow{color:#fff}.daily-blessing{border-radius:22px;border:1px solid var(--line);background:radial-gradient(ellipse at 95% 50%,color-mix(in srgb,var(--glow) 14%,transparent),transparent 55%),var(--soft);box-shadow:var(--app-shadow)}.daily-blessing h2{font-family:var(--sans);font-size:35px;font-weight:700;line-height:1.3;letter-spacing:-1px;color:var(--ink)}.daily-blessing .tamil-blessing{font-family:var(--tamil);font-weight:600;font-size:14px}.daily-date strong{font-size:16px;font-weight:700;line-height:1.7;color:var(--ink)}.daily-date small{font-size:10px}.daily-date [data-practice-progress]{font-size:12px}.practice-card{border-radius:14px;border:1px solid var(--line);background:#fff;box-shadow:0 4px 20px #17233d04}.practice-card b{font-family:var(--sans);font-size:18px;font-weight:700;line-height:1.55;letter-spacing:-.4px;color:var(--ink)}.practice-card small{font-size:12px;line-height:1.9}.practice-card:has(input:checked){background:var(--soft);border-color:color-mix(in srgb,var(--wine) 25%,var(--line))}.panchangam-note h3{font-size:17px;line-height:1.7;color:var(--ink)}.panchangam-note p{font-size:12px;line-height:1.95}.panchangam-note .text-link{font-size:12px}.type-specimen{background:var(--soft);border-radius:20px;border-color:var(--line)}.type-specimen h2{font-family:var(--sans);font-size:31px;font-weight:700;letter-spacing:-.9px;line-height:1.3;color:var(--ink)}.type-specimen p{font-size:13px;line-height:1.9}.type-samples b{color:var(--ink)}.font-yatra{font-family:var(--sans);font-weight:800;font-size:35px;letter-spacing:1px}.font-karma{font-family:var(--sans);font-weight:700;font-size:27px;letter-spacing:-.6px}.font-mukta{font-family:var(--sans);font-weight:600;font-size:22px;letter-spacing:-.4px}.font-tamil{font-family:var(--tamil);font-size:17px;font-weight:600;line-height:1.9!important}.type-samples span{font-size:10px;line-height:1.9}.theme-option{border-radius:18px;background:#fff;box-shadow:var(--app-shadow);border-color:var(--line)}.theme-mini-site{background:#fff;border-top:7px solid var(--sample-primary)}.mini-name{font-family:var(--sans);font-size:25px;font-weight:800;letter-spacing:1px;line-height:1.4}.mini-title{font-family:var(--sans);font-size:22px;font-weight:800;letter-spacing:-.7px;background:#fff}.mini-cta{font-size:9px;border-radius:7px;box-shadow:0 4px 16px #0001}.theme-mini-site:before{border-color:color-mix(in srgb,var(--sample-gold) 20%,#fff);background:radial-gradient(ellipse at 50% 60%,color-mix(in srgb,var(--sample-gold) 12%,#fff),transparent 70%);border-radius:24px}.theme-option-title{font-family:var(--sans);font-size:20px;font-weight:700;letter-spacing:-.5px;color:var(--ink);line-height:1.5}.theme-option-note{font-size:11px;line-height:1.9}.theme-selection{font-size:11px}.recommended{font:700 8px var(--sans);padding:4px 7px;border-radius:5px}.palette-codes{font-size:9px}.theme-option[aria-pressed=true]{outline-width:2px;outline-offset:3px}.dialog-top{background:var(--soft)}dialog{border-radius:20px;background:#fff;box-shadow:0 25px 100px #18212d40}.dialog-body h2{font-family:var(--sans);font-size:30px;font-weight:700;letter-spacing:-1px;color:var(--ink);line-height:1.35}.dialog-body p,.dialog-body ul{font-size:12px;line-height:2}.detail-fact{border-radius:10px}.detail-fact small{font-size:9px}.detail-fact strong{font-size:12px}.detail-fact em{font-size:10px;line-height:1.8}.dialog-body .dialog-actions .button{font-size:12px}.route-stops{font-size:13px;line-height:2}.toast{background:var(--deep);color:#fff;border-radius:12px;box-shadow:0 10px 35px #18212d2b;font-size:12px;line-height:1.8}.storage-warning{font-size:11px}
@media(min-width:1440px){.hero h1{font-size:70px}.hero{min-height:650px;gap:85px}.hero-image{height:510px}}
@media(max-width:1180px){.primary-nav{gap:19px}.primary-nav a{font-size:11px}.header-actions{gap:16px}.header-inner{gap:18px}.hero{gap:49px;min-height:590px}.hero h1{font-size:58px;letter-spacing:-2.7px}.hero-image{height:450px}.service-item{padding:18px 17px;gap:12px}.service-item b{font-size:12px}.service-item small{font-size:9px}.service-item>.icon:first-child{width:23px;height:23px;padding:10px}.theme-swatches{gap:12px}.theme-strip>.text-link{font-size:9px}.theme-option-title{font-size:18px}}
@media(max-width:950px){.hero{gap:32px;min-height:540px;padding-top:45px}.hero h1{font-size:clamp(38px,5.4vw,52px);letter-spacing:-2px;line-height:1.13}.hero-copy>p:not(.tamil-blessing){font-size:12px}.hero-copy>.tamil-blessing{font-size:12px}.hero-image{height:420px}.hero-actions{gap:17px}.hero-actions .button{font-size:12px}.hero-footnote{font-size:9px}.hero-caption h3{font-size:19px}.service-item{padding:17px 14px;gap:11px;min-height:112px;align-items:start;flex-direction:column}.service-item>.icon:first-child{padding:9px;width:22px;height:22px}.service-item>.icon:last-child{display:none}.service-item b{font-size:12px}.services-bar{gap:13px}.section-head h2,.services-portal h2{font-size:31px}.card-body h3{font-size:18px}.card-body{padding:18px}.temple-photo{height:200px}.card-body p{font-size:10px}.card-bottom{font-size:8px}.journey-body h3{font-size:20px}.ritual-copy h2{font-size:32px}.theme-strip>.text-link{font-size:11px}.theme-swatches button{font-size:11px}.devotional-feature h2{font-size:30px}.daily-blessing h2{font-size:29px}.practice-card b{font-size:17px}.page-intro h1{font-size:39px}.trust-band h2{font-size:25px}.trust-band{padding:31px}.primary-nav{display:none}}
@media(max-width:650px){body{font-size:15px}.blessing-ribbon{min-height:26px;font-size:6px;letter-spacing:1.05px;gap:10px;padding:5px 10px}.blessing-ribbon span{font-size:8px}.blessing-ribbon i{font-size:10px}.header-inner{min-height:76px;padding:13px 21px;gap:14px}.brand-mark{width:31px;height:36px}.brand{gap:8px}.brand b{font-size:25px;letter-spacing:1px}.brand small{font-size:6px;letter-spacing:1.65px;margin-top:5px}.header-actions{gap:16px}.header .menu-button{width:34px;height:34px;border-radius:9px}.header-palette{width:25px}.header .saved-link .icon{width:18px;height:18px}.hero{padding-top:33px;padding-bottom:28px;gap:31px;min-height:0}.hero h1{font-size:clamp(36px,10.5vw,48px);line-height:1.12;font-weight:800;letter-spacing:-2px;margin-bottom:20px}.hero h1 br:first-of-type{display:initial}.hero h1 em{white-space:normal}.hero .eyebrow{font-size:8px;letter-spacing:1.55px;margin-bottom:19px}.hero-copy>.tamil-blessing{font-size:12px;font-weight:600;margin-bottom:17px}.hero-copy>p:not(.tamil-blessing){font-size:13px;line-height:1.9;max-width:350px;margin-bottom:23px}.hero-actions{gap:19px;align-items:center}.hero-actions .button{font-size:12px;padding:13px 18px;gap:12px}.hero-actions .text-link{font-size:11px}.hero-footnote{font-size:9px;gap:7px;line-height:1.8;margin-top:22px;max-width:335px}.hero-sanctum{margin:0 2px;padding:8px 7px 0}.hero-image{height:360px;border-radius:23px;outline-offset:6px}.hero-image>img{object-position:50% 56%}.hero:before{inset:30% -15px 0;background:radial-gradient(ellipse at 65% 75%,color-mix(in srgb,var(--glow) 22%,transparent),transparent 53%),radial-gradient(ellipse at 10% 84%,color-mix(in srgb,var(--wine) 7%,transparent),transparent 40%)}.hero-caption{left:20px;right:18px;bottom:22px}.hero-caption h3{font-size:21px;line-height:1.4;letter-spacing:-.5px;margin:7px 0 5px}.hero-caption p{font-size:10px}.hero-caption small{font-size:8px;letter-spacing:1.2px}.hero-caption .icon-button{width:35px;height:35px;border-radius:11px}.photo-top{font-size:6.5px;top:19px;left:18px;padding:7px 9px;letter-spacing:.8px}.hero-note{font-size:8px;margin-top:16px}.aura-rings{inset:-28px -15px 10px;opacity:.65;filter:blur(14px)}.theme-strip{margin-top:0;margin-bottom:32px;padding-block:16px;gap:13px}.theme-label{font-size:8px;letter-spacing:1.3px}.theme-strip small{font-size:8px;margin-top:4px}.theme-strip>.text-link{font-size:10px}.theme-swatches{column-gap:15px;row-gap:3px}.theme-swatches button{font-size:10px;padding-block:7px;gap:7px}.theme-dot{width:17px;height:17px}.services-portal>.section-head{text-align:left;align-items:start;gap:10px;margin-bottom:24px}.section-head h2,.services-portal h2{font-family:var(--sans);font-size:29px;font-weight:800;line-height:1.3;letter-spacing:-1.1px}.section-head p,.services-portal p{font-size:12px;line-height:1.9}.section-head .eyebrow,.eyebrow{font-size:8px;letter-spacing:1.5px}.section-head>.text-link{font-size:11px}.services-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:45px}.service-item{padding:17px 8px 15px;min-height:145px;border:1px solid var(--line)!important;border-radius:14px;gap:12px;flex-direction:column;align-items:center;text-align:center;justify-content:flex-start;box-shadow:0 4px 17px color-mix(in srgb,var(--wine) 5%,transparent)}.service-item:last-child{border:1px solid var(--line)!important}.service-item>.icon:first-child{width:23px;height:23px;padding:10px;margin:0;border-radius:13px;stroke-width:1.7}.service-item>.icon:last-child{display:none}.service-item b{font-size:10px;font-weight:700;line-height:1.65;letter-spacing:-.15px;color:var(--ink)}.service-item small{display:none}.service-description{width:100%;display:block}.temple-grid:not(.catalogue-grid){gap:20px}.temple-photo{height:235px}.temple-card{border-radius:17px}.card-body{padding:21px}.card-body h3{font-size:21px;line-height:1.5;font-weight:700;letter-spacing:-.5px}.card-body p{font-size:12px;line-height:1.95}.location{font-size:10px;line-height:1.7}.photo-tag{font-size:9px}.card-bottom{font-size:9px;line-height:1.8}.card-bottom .text-link{font-size:11px}.chip{font-size:10px;line-height:1.6;padding:8px 15px}.journeys-section{padding-block:39px 42px}.journey-body{padding:22px}.journey-body h3{font-size:22px;line-height:1.45}.journey-body small{font-size:8px;line-height:1.9;letter-spacing:1px}.journey-body p{font-size:12px;line-height:1.9}.journey-body .text-link{font-size:11px}.journey-card{border-radius:17px}.ritual-photo{height:300px;border-radius:20px}.ritual-copy h2{font-size:30px;line-height:1.3;letter-spacing:-1px}.ritual-copy p{font-size:12px;line-height:1.95}.ritual-copy>.text-link{font-size:12px}.mini-services{gap:20px}.mini-service{gap:10px}.mini-service h3{font-size:11px;line-height:1.75}.mini-service p{font-size:9px;line-height:1.9}.mini-service>.icon{width:23px;height:23px}.trust-band{padding:29px 25px;border-radius:20px;gap:20px}.trust-band h2{font-size:25px;line-height:1.4;letter-spacing:-.7px}.trust-band p{font-size:11px;line-height:1.9}.trust-band .button{font-size:11px;padding:12px 17px}.footer-main{gap:29px 23px;padding-top:35px}.footer-brand{align-items:center;gap:20px}.footer-brand p{font-size:9px;line-height:2}.footer-main h3{font-size:11px;line-height:1.7;margin-bottom:14px}.footer-main>div>a:not(.brand){font-size:10px;line-height:1.95;margin-bottom:9px}.footer-bottom{font-size:8px;line-height:1.9;gap:10px}.page-intro{padding-top:28px;padding-bottom:23px}.page-intro h1{font-size:34px;font-weight:800;line-height:1.25;letter-spacing:-1.2px}.page-intro>p{font-size:12px;line-height:1.95}.breadcrumb{font-size:9px;margin-bottom:22px}.service-tab{font-size:10px;line-height:1.6;border-radius:9px;min-height:39px;padding:10px 12px}.service-tabs{padding-block:10px 17px;margin-bottom:25px}.service-hero{border-radius:19px}.service-hero-copy{padding:27px}.service-hero h2{font-size:28px;line-height:1.35;letter-spacing:-.9px}.service-hero p{font-size:12px;line-height:1.95}.status-pill{font-size:8px;line-height:1.8;padding:4px 9px}.guide-card{padding:25px;border-radius:17px}.guide-card h3{font-size:23px;line-height:1.45;letter-spacing:-.5px}.guide-card p{font-size:12px;line-height:1.95}.guide-card>.icon{width:26px;height:26px;padding:10px;margin-bottom:22px}.guide-card .text-link{font-size:11px}.readiness h3{font-size:14px;line-height:1.8}.readiness p{font-size:12px;line-height:1.95}.source-note{font-size:10px;line-height:1.9;border-radius:10px}.content-page h2{font-size:24px;line-height:1.45;letter-spacing:-.6px}.content-page p,.content-page li{font-size:12px;line-height:2}.facts-table{font-size:11px}.filter-title h3{font-size:13px}.filter-title button{font-size:11px}.filter-field label{font-size:11px}.filter-field select{font-size:13px;padding:10px;border-radius:9px}.filter-field small{font-size:9px;line-height:1.9}.search-box input{font-size:16px;line-height:1.5}.search-box .button{font-size:11px;padding:10px 13px}.results-top{font-size:10px;line-height:1.8}.results-top select{font-size:10px}.catalogue-grid{gap:11px}.catalogue-grid .temple-photo{height:135px}.catalogue-grid .card-body{padding:14px 12px}.catalogue-grid .card-body h3{font-size:16px;line-height:1.6;letter-spacing:-.35px}.catalogue-grid .card-body p{font-size:10px;line-height:1.9}.catalogue-grid .location{font-size:9px}.catalogue-grid .card-bottom{font-size:8px;line-height:1.8}.catalogue-grid .card-bottom .text-link{font-size:10px}.catalogue-grid .photo-tag{font-size:8px}.empty h2{font-size:26px;line-height:1.4;letter-spacing:-.75px}.empty p{font-size:12px;line-height:1.95}.plan-card h3{font-size:18px;line-height:1.55;letter-spacing:-.4px}.plan-card p{font-size:10px;line-height:1.8}.plan-card{border-radius:13px;padding:17px 13px}.planner-aside{border-radius:17px}.planner-aside h3{font-size:23px;line-height:1.5}.planner-aside p{font-size:12px;line-height:1.95}.planner-save-note{font-size:10px;line-height:1.9}.plan-controls button{width:27px;height:27px}.checklist li{font-size:12px;border-radius:11px}.breathing h2{font-size:28px;line-height:1.35;letter-spacing:-.8px}.breathing p{font-size:12px;line-height:1.95}.breathing{border-radius:19px}.devotional-feature{border-radius:19px;padding:29px 25px}.devotional-feature h2{font-size:29px;line-height:1.4;letter-spacing:-.9px}.devotional-feature p{font-size:12px;line-height:1.95}.daily-blessing{border-radius:19px;padding:27px}.daily-blessing h2{font-size:29px;line-height:1.35;letter-spacing:-.9px}.daily-blessing .tamil-blessing{font-size:12px;font-weight:600}.daily-date strong{font-size:15px;line-height:1.8}.daily-date small{font-size:9px}.daily-date [data-practice-progress]{font-size:11px}.practice-card{border-radius:13px;padding:21px}.practice-card b{font-family:var(--sans);font-size:18px;line-height:1.6;letter-spacing:-.3px}.practice-card small{font-size:11px;line-height:1.95}.panchangam-note h3{font-size:15px;line-height:1.7}.panchangam-note p{font-size:12px;line-height:1.95}.panchangam-note .text-link{font-size:11px}.theme-option{border-radius:17px}.theme-option-title{font-size:21px;line-height:1.5;letter-spacing:-.5px}.theme-option-note{font-size:12px;line-height:1.95}.theme-option-content{padding:23px}.palette-codes{font-size:10px}.theme-selection{font-size:12px}.type-specimen{border-radius:18px;padding:27px}.type-specimen h2{font-size:28px;line-height:1.35;letter-spacing:-.9px}.type-specimen p{font-size:12px;line-height:1.95}.type-samples span{font-size:9px;line-height:1.9}.font-yatra{font-size:33px;font-weight:800;letter-spacing:1px}.font-karma{font-size:25px;font-weight:700;letter-spacing:-.5px}.font-mukta{font-size:20px;font-weight:600;line-height:1.7}.font-tamil{font-size:15px;font-weight:600}.dialog-body h2{font-size:27px;line-height:1.4;font-weight:700;letter-spacing:-.8px}.dialog-body p,.dialog-body ul{font-size:12px;line-height:2}.dialog-body .dialog-actions .button{font-size:11px;padding:12px 15px}.detail-fact small{font-size:9px}.detail-fact strong{font-size:12px;line-height:1.8}.detail-fact em{font-size:9px;line-height:1.9}.toast{font-size:11px;line-height:1.9;border-radius:11px}.route-stops{font-size:12px;line-height:2}}
@media(max-width:370px){.hero h1{font-size:36px;line-height:1.12;letter-spacing:-1.8px}.hero-actions{gap:12px}.hero-actions .button{font-size:11px;padding-inline:15px}.hero-actions .text-link{font-size:10px}.hero-image{height:330px}.hero-caption h3{font-size:19px}.service-item{padding-inline:6px;min-height:139px}.service-item b{font-size:9px;letter-spacing:-.1px;line-height:1.7}.services-bar{gap:8px}.header-actions{gap:13px}.brand b{font-size:23px}.blessing-ribbon{font-size:5.5px;gap:8px;letter-spacing:.8px}}

/* Presentation release: search first, clear service access, comfortable reading. */
:root { --app-radius:20px; --app-shadow:0 6px 24px #17233d05,0 14px 40px color-mix(in srgb,var(--wine) 4%,transparent); }
html { scroll-padding-top:96px; }
body { font-size:16px; line-height:1.75; }
.wrap { max-width:1320px; padding-inline:48px; }
.blessing-ribbon { display:none; }
.header-inner { min-height:80px; padding-block:12px; }
.brand-mark { width:38px; height:42px; }
.brand b { font-size:29px; letter-spacing:1px; }
.brand small { font-size:8px; letter-spacing:1.8px; }
.primary-nav { gap:28px; }
.primary-nav a { font-size:14px; font-weight:600; }
.header-actions { gap:24px; }
.saved-link { font-size:13px; }
.header-actions .button { min-height:44px; font-size:13px; }
.button { min-height:48px; padding:13px 21px; font-size:14px; font-weight:700; border-radius:12px; }
.button.small { min-height:44px; font-size:13px; }
.text-link { min-height:40px; font-size:14px; }
.eyebrow { font-size:11px; letter-spacing:1.7px; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.mobile-bottom-nav { display:none; }
.icon-button { min-width:44px; min-height:44px; border-radius:12px; }
:focus-visible { outline:3px solid var(--copper); outline-offset:4px; }

/* First screen */
.hero.app-hero { grid-template-columns:1.06fr 1fr; gap:64px; min-height:0; padding-top:44px; padding-bottom:36px; align-items:center; }
.app-hero::before { inset:-20px -40px 0; background:radial-gradient(ellipse at 80% 40%,color-mix(in srgb,var(--glow) 13%,transparent),transparent 43%); }
.app-hero .hero-copy { padding:0; }
.app-hero .eyebrow { margin-bottom:16px; font-size:11px; }
.app-hero h1 { font-size:clamp(42px,4.4vw,59px); line-height:1.12; letter-spacing:-2.5px; margin-bottom:18px; }
.app-hero h1 em { white-space:normal; }
.app-hero .hero-copy>.home-intro { font-size:16px; line-height:1.75; max-width:480px; margin-bottom:23px; }
.app-hero .hero-copy>.tamil-blessing { font-size:12px; color:var(--copper); line-height:1.8; margin:18px 0 0; }
.home-search { display:flex; align-items:center; gap:12px; padding:6px 6px 6px 17px; background:#fff; border:1px solid color-mix(in srgb,var(--wine) 19%,var(--line)); border-radius:15px; box-shadow:0 8px 30px color-mix(in srgb,var(--wine) 7%,transparent); }
.home-search:focus-within { border-color:var(--wine); outline:3px solid color-mix(in srgb,var(--wine) 12%,transparent); outline-offset:2px; }
.home-search>.icon { color:var(--wine); }
.home-search input { width:100%; flex:1; min-width:0; border:0; outline:none; background:transparent; color:var(--ink); padding:12px 0; font-size:14px; }
.home-search input::placeholder { color:var(--muted); opacity:1; }
.home-search .button { flex-shrink:0; box-shadow:none; min-height:46px; gap:10px; padding-inline:17px; }
.home-search-hints { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:13px; font-size:12px; }
.home-search-hints>span { color:var(--muted); margin-right:3px; }
.home-search-hints a { padding:4px 11px; border:1px solid var(--line); border-radius:24px; color:var(--wine); font-weight:600; background:#fff; }
.home-search-hints a:hover { background:var(--soft); border-color:var(--wine); }
.app-hero .hero-sanctum { padding:0; margin:0 0 0 8px; min-width:0; }
.app-hero .hero-image { height:345px; border-radius:26px; outline:0; border:1px solid #fff; box-shadow:0 20px 60px color-mix(in srgb,var(--wine) 10%,transparent),0 0 45px color-mix(in srgb,var(--glow) 18%,transparent); }
.app-hero .hero-image>img { object-position:center 43%; filter:saturate(.95); }
.app-hero .photo-top { top:20px; left:20px; right:auto; font-size:9px; padding:8px 11px; color:#4b3526; }
.app-hero .hero-caption { left:24px; right:24px; bottom:23px; }
.app-hero .hero-caption h3 { font-size:23px; line-height:1.4; margin:7px 0 0; }
.app-hero .hero-caption small { font-size:10px; }
.app-hero .hero-note { font-size:10px; margin-top:12px; }
.app-hero .aura-rings { inset:-24px; opacity:.6; }

/* Nine services */
.home-main .services-portal { padding-top:20px; }
.home-main .services-portal .section-head { align-items:end; margin-bottom:21px; }
.home-main .services-portal .eyebrow { font-size:10px; margin-bottom:10px; }
.home-main .services-portal h2 { font-size:27px; letter-spacing:-.9px; line-height:1.35; margin:0; }
.section-aside { font-size:13px; color:var(--muted); margin-bottom:4px; }
.home-main .services-bar { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:0; margin-bottom:0; }
.home-main .service-item { display:flex; align-items:center; justify-content:flex-start; flex-direction:row; text-align:left; gap:15px; padding:18px 20px; min-height:97px; border-radius:16px; box-shadow:0 3px 15px #17233d03; }
.home-main .service-item>.icon:first-child { margin:0; width:25px; height:25px; padding:12px; border-radius:14px; stroke-width:1.8; background:linear-gradient(140deg,var(--soft),#fff); color:var(--wine); }
.home-main .service-description { flex:1; min-width:0; }
.home-main .service-item b { font-size:14px; font-weight:750; letter-spacing:-.2px; line-height:1.5; }
.home-main .service-item small { display:block; font-size:12px; line-height:1.6; margin-top:4px; }
.home-main .service-item>.icon:last-child { width:15px; height:15px; margin:0; color:var(--copper); }
.home-main .service-item:hover { transform:translateY(-2px); box-shadow:var(--app-shadow); }

/* Content rhythm and card system */
.section { padding-top:64px; padding-bottom:64px; }
.section-head { margin-bottom:27px; }
.section-head .eyebrow { margin-bottom:12px; }
.section-head h2 { font-size:34px; letter-spacing:-1px; line-height:1.3; margin-bottom:10px; }
.section-head p { font-size:15px; line-height:1.8; }
.section-head>.text-link { font-size:14px; }
.deity-row { gap:9px; margin-bottom:26px; }
.chip { font-size:13px; padding:9px 18px; min-height:40px; }
.temple-grid { gap:22px; }
.temple-card { border-radius:20px; box-shadow:var(--app-shadow); }
.temple-photo { height:230px; }
.temple-photo img { filter:saturate(.95); }
.temple-photo .save { width:44px; height:44px; }
.photo-tag { font-size:11px; padding:6px 10px; letter-spacing:.2px; }
.card-body { padding:23px; }
.location { font-size:12px; letter-spacing:0; line-height:1.6; }
.location .icon { width:14px; height:14px; }
.card-body h3 { font-size:22px; font-weight:750; line-height:1.4; margin-bottom:10px; }
.card-body p { font-size:14px; line-height:1.8; margin-bottom:19px; }
.card-bottom { font-size:11px; gap:10px; align-items:center; line-height:1.65; }
.card-bottom .text-link { font-size:13px; }
.home-daily-section { padding-block:16px 26px; }
.home-daily { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:30px; padding:34px; border:1px solid color-mix(in srgb,var(--gold) 23%,var(--line)); border-radius:24px; background:radial-gradient(ellipse at 0 70%,color-mix(in srgb,var(--glow) 13%,#fff),transparent 55%),var(--soft); }
.daily-orbit { width:80px; height:80px; display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--gold) 25%,#fff); background:#ffffffba; border-radius:50%; box-shadow:0 0 35px color-mix(in srgb,var(--glow) 22%,transparent); color:var(--copper); }
.daily-orbit .icon { width:39px; height:39px; stroke-width:1.1; }
.home-daily .eyebrow { font-size:10px; margin-bottom:10px; }
.home-daily h2 { font-size:28px; letter-spacing:-.8px; line-height:1.35; margin:0 0 10px; }
.home-daily p { font-size:14px; line-height:1.8; margin-bottom:16px; max-width:520px; }
.daily-intentions { display:flex; gap:20px; flex-wrap:wrap; color:var(--wine); font-size:12px; font-weight:600; }
.daily-intentions span { display:flex; align-items:center; gap:6px; }
.daily-intentions .icon { width:15px; height:15px; }
.home-daily-action { display:flex; flex-direction:column; align-items:flex-start; gap:12px; max-width:265px; }
.home-local-date { font-size:13px; font-weight:650; color:var(--wine); }
.home-daily-action small { font-size:11px; color:var(--muted); line-height:1.7; }
.journeys-section { background:#fff; box-shadow:none; padding-block:44px 64px; }
.journey-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.journey-card { border-radius:20px; background:#fff; }
.journey-img,.journey-art { height:190px; }
.journey-img img { filter:saturate(.95); }
.journey-body { padding:24px; }
.journey-body small { font-size:10px; }
.journey-body h3 { font-size:22px; margin:12px 0 10px; line-height:1.4; }
.journey-body p { font-size:14px; line-height:1.8; margin-bottom:16px; }
.journey-body .text-link { font-size:14px; }
.ritual-section { padding-block:56px 64px; gap:64px; border-top:1px solid var(--line); }
.ritual-photo { height:360px; border-radius:24px; }
.ritual-photo img { filter:saturate(.9); }
.ritual-copy h2 { font-size:36px; line-height:1.3; }
.ritual-copy p { font-size:16px; line-height:1.8; }
.mini-service { gap:12px; }
.mini-service h3 { font-size:14px; }
.mini-service p { font-size:12px; }
.trust-band { border-radius:24px; margin-bottom:64px; padding:36px; gap:28px; }
.trust-band h2 { font-size:28px; color:#fff; line-height:1.4; }
.trust-band p { font-size:14px; line-height:1.8; color:#ffffffdf; }
.trust-band .button { white-space:nowrap; }
.footer-main { padding-block:48px; gap:38px; }
.footer-brand p,.footer-note p { font-size:13px; line-height:1.9; }
.footer-main h3 { font-size:14px; margin-bottom:17px; color:#fff; }
.footer-main>div>a:not(.brand) { font-size:13px; padding-block:3px; margin-bottom:6px; line-height:1.8; }
.footer-bottom { font-size:12px; line-height:1.8; padding-block:20px; }

/* Apply the same readable type scale to the nine service routes. */
.page-intro h1 { font-size:44px; line-height:1.25; }
.page-intro>p { font-size:16px; line-height:1.8; }
.breadcrumb { font-size:12px; }
.service-tab { min-height:44px; font-size:13px; padding:11px 14px; }
.service-hero h2 { font-size:34px; line-height:1.3; }
.service-hero p,.readiness p { font-size:16px; line-height:1.8; }
.status-pill { font-size:12px; line-height:1.7; }
.guide-card { padding:28px; }
.guide-card h3 { font-size:24px; line-height:1.4; }
.guide-card p { font-size:15px; line-height:1.85; }
.guide-card .text-link { font-size:14px; }
.source-note,.planner-save-note { font-size:13px; line-height:1.85; }
.readiness h3 { font-size:19px; }
.content-page p,.content-page li { font-size:16px; line-height:1.9; }
.facts-table { font-size:14px; }
.filter-title h3,.filter-title button,.filter-field label { font-size:14px; }
.filter-field select,.field-input { font-size:14px; min-height:44px; }
.filter-field small { font-size:12px; line-height:1.8; }
.filter-stats { font-size:12px; }
.search-box input { font-size:16px; }
.results-top,.results-top select { font-size:13px; }
.catalogue-grid .card-body h3 { font-size:19px; line-height:1.5; }
.catalogue-grid .card-body p { font-size:13px; }
.catalogue-grid .location { font-size:12px; }
.catalogue-grid .card-bottom { font-size:11px; flex-wrap:wrap; gap:3px; }
.catalogue-grid .card-bottom .text-link { font-size:13px; }
.placeholder-photo span { font-size:10px; }
.plan-card h3 { font-size:20px; line-height:1.45; }
.plan-card p { font-size:13px; }
.plan-controls button { width:44px; height:44px; }
.planner-aside p,.checklist li { font-size:15px; line-height:1.8; }
.breathing p,.devotional-feature p,.panchangam-note p { font-size:16px; line-height:1.8; }
.daily-date strong { font-size:18px; }
.daily-date small,.daily-date [data-practice-progress] { font-size:13px; }
.practice-card b { font-size:20px; line-height:1.5; }
.practice-card small { font-size:15px; line-height:1.8; }
.panchangam-note h3 { font-size:21px; }
.theme-option-note,.theme-selection,.type-specimen p { font-size:15px; line-height:1.8; }
.palette-codes,.type-samples span { font-size:12px; }
.dialog-body p,.dialog-body li { font-size:15px; line-height:1.85; }
.dialog-body h2 { font-size:30px; line-height:1.35; }
.dialog-body .dialog-actions .button { font-size:14px; }
.detail-fact small,.detail-fact em { font-size:12px; }
.detail-fact strong { font-size:15px; }
.toast { font-size:14px; line-height:1.7; }

@media (max-width:1100px) {
 .wrap { padding-inline:32px; }
 .header-inner { padding-inline:32px; }
 .primary-nav { gap:20px; }
 .primary-nav a { font-size:13px; }
 .header-actions { gap:16px; }
 .hero.app-hero { gap:32px; }
 .app-hero h1 { font-size:48px; }
 .app-hero .hero-image { height:335px; }
 .home-main .service-item { padding:16px; gap:12px; }
 .home-main .service-item b { font-size:13px; }
 .home-main .service-item small { font-size:11px; }
 .home-main .service-item>.icon:last-child { display:none; }
 .home-daily { grid-template-columns:1fr auto; gap:24px; padding:30px; }
 .daily-orbit { display:none; }
 .footer-main { gap:25px; }
}
@media (max-width:800px) {
 .header-inner { min-height:72px; }
 .primary-nav { display:none; }
 .header .menu-button { display:inline-flex; width:44px; height:44px; }
 .header-actions .button { display:none; }
 .hero.app-hero { gap:24px; padding-top:32px; }
 .app-hero h1 { font-size:41px; letter-spacing:-1.7px; }
 .app-hero .hero-copy>.home-intro { font-size:16px; }
 .app-hero .hero-sanctum { margin-left:0; }
 .app-hero .hero-image { height:330px; }
 .app-hero .hero-caption { left:18px; right:18px; bottom:20px; }
 .app-hero .hero-caption h3 { font-size:19px; }
 .app-hero .photo-top { font-size:7px; left:16px; }
 .home-search { gap:8px; padding-left:12px; }
 .home-search input { font-size:16px; }
 .home-search .button { padding:12px; }
 .home-search .button span { display:none; }
 .home-main .services-portal h2 { font-size:24px; }
 .section-aside { display:none; }
 .home-main .service-item { min-height:126px; flex-direction:column; text-align:center; align-items:center; justify-content:flex-start; gap:10px; padding:16px 10px; }
 .home-main .service-description { flex:none; }
 .home-main .service-item>.icon:first-child { padding:10px; }
 .home-main .service-item small { display:none; }
 .home-main .service-item b { font-size:13px; }
 .section-head h2 { font-size:29px; }
 .home-daily { grid-template-columns:1fr; gap:24px; }
 .home-daily-action { max-width:none; }
 .journey-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
 .journey-body { padding:18px; }
 .journey-body h3 { font-size:19px; }
 .journey-body p { font-size:13px; }
 .journey-body small { font-size:9px; }
 .ritual-section { gap:32px; }
 .trust-band { flex-wrap:wrap; }
 .trust-band>div { flex:1; min-width:240px; }
 .trust-band>.icon { display:none; }
 .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
 html { scroll-padding-top:84px; }
 body { padding-bottom:calc(74px + env(safe-area-inset-bottom)); }
 .wrap { padding-inline:20px; }
 .header-inner { min-height:70px; padding:10px 20px; }
 .brand-mark { width:33px; height:37px; }
 .brand b { font-size:26px; }
 .brand small { font-size:7px; letter-spacing:1.6px; margin-top:5px; }
 .header-actions { gap:10px; }
 .header-actions .saved-link { display:none; }
 .header .menu-button { width:44px; height:44px; background:#ffffff0b; }
 .header #mobile-nav { max-height:calc(100dvh - 160px); overflow:auto; padding:12px 20px 20px; }
 .header #mobile-nav a { font-size:15px; min-height:44px; padding:10px 12px; }
 .hero.app-hero { display:block; padding-top:26px; padding-bottom:22px; }
 .app-hero::before { inset:0 -20px -30px; background:radial-gradient(ellipse at 100% 10%,color-mix(in srgb,var(--glow) 11%,transparent),transparent 55%); }
 .app-hero .eyebrow { margin-bottom:12px; font-size:10px; letter-spacing:1.6px; }
 .app-hero h1 { font-size:39px; line-height:1.12; letter-spacing:-1.7px; margin-bottom:14px; }
 .app-hero .hero-copy>.home-intro { font-size:16px; line-height:1.75; margin-bottom:18px; max-width:390px; }
 .app-hero .hero-sanctum { display:none; }
 .app-hero .hero-copy>.tamil-blessing { font-size:11px; margin-top:13px; }
 .home-search { border-radius:14px; padding:5px 5px 5px 13px; gap:9px; }
 .home-search input { font-size:16px; padding:9px 0; letter-spacing:-.35px; }
 .home-search>.icon { width:18px; }
 .home-search .button { border-radius:10px; min-height:44px; min-width:44px; padding:11px; }
 .home-search-hints { margin-top:12px; gap:7px; font-size:11px; }
 .home-search-hints a { padding:4px 10px; }
 .home-main .services-portal { padding-top:11px; }
 .home-main .services-portal .section-head { margin-bottom:16px; }
 .home-main .services-portal .eyebrow { font-size:9px; letter-spacing:1.1px; margin-bottom:9px; }
 .home-main .services-portal h2 { font-size:23px; letter-spacing:-.7px; line-height:1.35; }
 .home-main .services-bar { gap:10px; margin-bottom:0; }
 .home-main .service-item { min-height:118px; padding:14px 7px 13px; gap:10px; border-radius:16px; }
 .home-main .service-item>.icon:first-child { width:24px; height:24px; padding:9px; border-radius:12px; }
 .home-main .service-item b { font-size:13px; line-height:1.45; letter-spacing:-.25px; }
 .home-main .service-item>.icon:last-child { display:none; }
 .home-main .service-description { width:100%; }
 .section { padding-top:43px; padding-bottom:40px; }
 .section-head { flex-direction:column; align-items:flex-start; gap:10px; margin-bottom:22px; }
 .section-head h2 { font-size:28px; letter-spacing:-.8px; line-height:1.3; }
 .section-head p { font-size:14px; line-height:1.8; }
 .section-head .eyebrow { font-size:10px; letter-spacing:1.1px; margin-bottom:10px; }
 .section-head>.text-link { font-size:14px; margin:0; }
 .deity-row { gap:8px; flex-wrap:nowrap; overflow:auto; padding-bottom:8px; margin-bottom:18px; scrollbar-width:none; }
 .deity-row::-webkit-scrollbar { display:none; }
 .deity-row .chip { flex-shrink:0; }
 .chip { font-size:13px; padding:9px 16px; }
 .temple-grid:not(.catalogue-grid) { grid-template-columns:1fr; gap:20px; }
 .temple-photo { height:230px; }
 .card-body { padding:21px; }
 .card-body h3 { font-size:22px; line-height:1.4; }
 .card-body p { font-size:14px; line-height:1.8; }
 .location { font-size:12px; }
 .card-bottom { font-size:11px; }
 .card-bottom .text-link { font-size:13px; }
 .home-daily-section { padding-block:0 12px; }
 .home-daily { padding:25px; border-radius:22px; gap:23px; }
 .home-daily h2 { font-size:27px; line-height:1.35; }
 .home-daily p { font-size:15px; }
 .daily-intentions { gap:11px 16px; font-size:12px; }
 .home-daily-action { gap:11px; }
 .home-daily-action small { font-size:12px; }
 .home-daily-action .button { font-size:13px; }
 .journeys-section { padding-block:36px 42px; }
 .journey-grid { grid-template-columns:1fr; gap:20px; }
 .journey-img,.journey-art { height:190px; }
 .journey-body { padding:23px; }
 .journey-body h3 { font-size:23px; }
 .journey-body p { font-size:15px; }
 .journey-body small { font-size:10px; }
 .journey-body .text-link { font-size:14px; }
 .ritual-section { grid-template-columns:1fr; gap:28px; padding-block:40px; }
 .ritual-photo { height:260px; }
 .ritual-copy h2 { font-size:30px; line-height:1.3; }
 .ritual-copy p { font-size:15px; line-height:1.85; }
 .mini-service h3 { font-size:14px; }
 .mini-service p { font-size:12px; }
 .trust-band { padding:27px; margin-bottom:40px; gap:22px; }
 .trust-band h2 { font-size:27px; line-height:1.35; }
 .trust-band p { font-size:14px; line-height:1.8; }
 .trust-band>div { min-width:0; flex:auto; }
 .trust-band .button { font-size:13px; }
 .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); padding-top:35px; padding-bottom:32px; gap:30px 23px; }
 .footer-brand { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:22px; }
 .footer-brand p { font-size:12px; margin:0; }
 .footer-main h3 { font-size:14px; }
 .footer-main>div>a:not(.brand) { font-size:13px; line-height:1.85; }
 .footer-note { grid-column:1/-1; padding-top:22px; border-top:1px solid #ffffff21; }
 .footer-note p { font-size:13px; }
 .footer-bottom { font-size:11px; gap:12px; flex-direction:column; padding-block:20px 24px; }
 .mobile-bottom-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:fixed; z-index:25; bottom:0; inset-inline:0; padding:8px 10px calc(9px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:#fffffff5; backdrop-filter:blur(18px); box-shadow:0 -5px 28px #17233d08; }
 .mobile-bottom-nav a { display:flex; align-items:center; justify-content:center; flex-direction:column; min-height:48px; padding:4px 2px; gap:4px; border-radius:12px; color:var(--muted); font-size:11px; font-weight:600; line-height:1.5; }
 .mobile-bottom-nav .icon { width:22px; height:22px; stroke-width:1.7; }
 .mobile-bottom-nav a.active { color:var(--wine); background:var(--soft); font-weight:800; }
 .mobile-bottom-nav a.active::after { display:none; }
 .toast { bottom:calc(86px + env(safe-area-inset-bottom)); font-size:14px; padding:13px 17px; }
 .page-intro { padding-top:28px; padding-bottom:23px; }
 .page-intro h1 { font-size:34px; line-height:1.25; }
 .page-intro>p { font-size:16px; line-height:1.8; }
 .breadcrumb { font-size:12px; margin-bottom:20px; }
 .service-tab { font-size:13px; min-height:44px; }
 .service-hero h2 { font-size:29px; line-height:1.35; }
 .service-hero p,.readiness p { font-size:16px; line-height:1.8; }
 .service-hero-copy { padding:26px; }
 .status-pill { font-size:12px; }
 .guide-card { padding:26px; }
 .guide-card h3 { font-size:24px; }
 .guide-card p { font-size:15px; }
 .guide-card .text-link { font-size:14px; }
 .readiness h3 { font-size:19px; }
 .source-note,.planner-save-note { font-size:13px; }
 .content-page p,.content-page li { font-size:16px; }
 .facts-table { font-size:13px; }
 .filter-title h3,.filter-title button,.filter-field label { font-size:14px; }
 .filter-field select { font-size:16px; min-height:44px; }
 .filter-field small { font-size:12px; }
 .results-top,.results-top select { font-size:13px; }
 .catalogue-grid { gap:14px; }
 .catalogue-grid .temple-photo { height:150px; }
 .catalogue-grid .card-body { padding:15px; }
 .catalogue-grid .card-body h3 { font-size:18px; line-height:1.5; }
 .catalogue-grid .card-body p { font-size:13px; }
 .catalogue-grid .location { font-size:11px; }
 .catalogue-grid .card-bottom { font-size:11px; }
 .catalogue-grid .card-bottom .text-link { font-size:13px; }
 .catalogue-grid .photo-tag { font-size:10px; }
 .empty h2 { font-size:29px; }
 .empty p { font-size:16px; line-height:1.8; }
 .plan-card h3 { font-size:20px; }
 .plan-card p { font-size:13px; }
 .plan-controls button { width:44px; height:44px; }
 .planner-aside p,.checklist li { font-size:15px; }
 .breathing p,.devotional-feature p,.panchangam-note p { font-size:16px; }
 .daily-date strong { font-size:18px; }
 .daily-date small,.daily-date [data-practice-progress] { font-size:13px; }
 .practice-card b { font-size:20px; }
 .practice-card small { font-size:15px; }
 .panchangam-note h3 { font-size:21px; }
 .theme-option-note,.theme-selection,.type-specimen p { font-size:15px; }
 .palette-codes,.type-samples span { font-size:12px; }
 .dialog-body h2 { font-size:28px; }
 .dialog-body p,.dialog-body li { font-size:15px; }
 .dialog-body .dialog-actions .button { font-size:14px; }
 .detail-fact small,.detail-fact em { font-size:12px; }
 .detail-fact strong { font-size:15px; }
}
@media (max-width:370px) {
 .wrap { padding-inline:16px; }
 .header-inner { padding-inline:16px; }
 .app-hero h1 { font-size:37px; }
 .home-search input { font-size:16px; letter-spacing:-.55px; }
 .home-search-hints { gap:6px; }
 .home-search-hints a { padding-inline:8px; }
 .home-main .services-bar { gap:8px; }
 .home-main .service-item { padding-inline:5px; }
 .home-main .service-item b { font-size:13px; letter-spacing:-.4px; }
 .catalogue-grid { grid-template-columns:1fr; }
 .catalogue-grid .temple-photo { height:205px; }
 .footer-brand { flex-direction:column; align-items:flex-start; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

/* Keep catalogue search in reach before filtering. */
body { overflow-x:clip; }
.directory-page>.directory-search { margin-bottom:22px; max-width:820px; }
@media (max-width:600px) {
 .directory-page .page-intro { padding-bottom:14px; }
 .directory-page .page-intro .eyebrow { margin-bottom:12px; }
 .directory-page .page-intro h1 { font-size:30px; margin-bottom:14px; }
 .directory-page .page-intro>p { font-size:15px; margin-bottom:5px; }
 .directory-page>.directory-search { margin-bottom:22px; }
 .directory-page>.service-tabs { display:none; }
 .directory-page .search-box { padding-left:12px; gap:8px; }
 .directory-page .search-box .button { min-height:44px; font-size:13px; padding:10px 15px; }
 .directory-page .filter-field { min-width:0; }
 .directory-page .catalogue-layout { gap:12px; }
 .directory-page .results-top { flex-wrap:wrap; gap:10px; margin-block:12px 20px; }
 .directory-page .source-note { font-size:12px; }
}
@media (max-width:600px) {
 .service-tabs { margin-inline:0; padding-inline:0; scrollbar-width:none; }
 .service-tabs::-webkit-scrollbar { display:none; }
}
@media (max-width:370px) {
 .app-hero::before { left:-16px; right:-16px; }
}
@media (min-width:601px) and (max-width:1100px) {
 .app-hero::before { left:-32px; right:-32px; }
}
.card-body h3,.plan-card h3 { overflow-wrap:anywhere; }
@media (max-width:600px) {
 .catalogue-grid { grid-template-columns:1fr; }
 .catalogue-grid .temple-photo { height:205px; }
 .catalogue-grid .card-body { padding:21px; }
 .catalogue-grid .card-body h3 { font-size:21px; }
 .catalogue-grid .card-body p { font-size:14px; }
 .catalogue-grid .location { font-size:12px; }
}

/* Outlined identity: the website uses the exact supplied vector signature. */
.brand-signature { display:block; width:168px; height:50px; flex-shrink:0; }
/* Four themes: one row on wide screens, two by two on tablets, one column on phones. */
.theme-collection { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
@media (max-width:1180px) { .theme-collection { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:650px) { .theme-collection { grid-template-columns:1fr; } }
@media(max-width:600px) {
 .brand-signature { width:145px; height:44px; }
 .footer .brand-signature { width:158px; height:48px; }
}

/* Opening: the Universal Aura gathers band by band, its light appears, and the aura breathes behind it. */
.app-loader { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; align-content:center; gap:22px; background:#fff; transition:opacity .45s ease, visibility .45s ease; }
.app-loader.is-done { opacity:0; visibility:hidden; }
.loader-aura { position:relative; width:min(300px,72vw); aspect-ratio:1; display:grid; place-items:center; }
.loader-aura::before { content:''; position:absolute; inset:2%; border-radius:50%; background:radial-gradient(circle,color-mix(in srgb,var(--glow) 38%,transparent) 0,color-mix(in srgb,var(--glow) 14%,var(--soft)) 40%,transparent 72%); animation:aura-breathe 3.2s ease-in-out infinite; }
.aura-ring { position:absolute; inset:0; border-radius:50%; border:1px solid color-mix(in srgb,var(--gold) 40%,transparent); opacity:0; animation:aura-ripple 3.6s cubic-bezier(.2,.6,.3,1) infinite; }
.aura-ring:nth-child(2) { animation-delay:1.2s; }
.aura-ring:nth-child(3) { animation-delay:2.4s; }
.loader-mark { position:relative; width:46%; overflow:visible; }
.loader-mark .band { fill:var(--wine); opacity:0; transform-box:fill-box; transform-origin:50% 100%; animation:band-rise .7s cubic-bezier(.2,.7,.2,1) forwards; }
.loader-mark .band:nth-of-type(2) { animation-delay:.15s; }
.loader-mark .band:nth-of-type(3) { animation-delay:.3s; }
.loader-mark .base { transform-origin:50% 50%; animation-name:base-draw; animation-delay:.45s; }
.loader-mark .light { fill:var(--gold); opacity:0; transform-box:fill-box; transform-origin:center; animation:light-on .5s ease-out .8s forwards, light-glow 2.4s ease-in-out 1.3s infinite; }
.loader-caption { margin:0; font-size:15px; font-weight:700; letter-spacing:.4px; color:var(--wine); opacity:0; animation:caption-in .6s ease-out .9s forwards; }
@keyframes aura-breathe { 0%,100% { transform:scale(.92); opacity:.75; } 50% { transform:scale(1.04); opacity:1; } }
@keyframes aura-ripple { 0% { transform:scale(.42); opacity:0; } 25% { opacity:.85; } 100% { transform:scale(1.12); opacity:0; } }
@keyframes band-rise { from { opacity:0; transform:translateY(14px) scale(.96); } to { opacity:1; transform:none; } }
@keyframes base-draw { from { opacity:0; transform:scaleX(0); } to { opacity:1; transform:scaleX(1); } }
@keyframes light-on { from { opacity:0; transform:scale(0); } to { opacity:1; transform:scale(1); } }
@keyframes light-glow { 0%,100% { filter:drop-shadow(0 0 0 transparent); } 50% { filter:drop-shadow(0 0 5px var(--glow)); } }
@keyframes caption-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) {
 .app-loader *, .app-loader *::before { animation:none !important; }
 .loader-mark .band, .loader-mark .light, .loader-caption { opacity:1; }
 .aura-ring { opacity:.45; transform:scale(.78); }
 .aura-ring:nth-child(2) { transform:scale(.96); }
 .aura-ring:nth-child(3) { display:none; }
}

/* Motion: one page entrance, cards rising in once, photos fading in over a warm placeholder.
   .motion-ok is set only when the visitor has not asked for reduced motion; .reveal only when IntersectionObserver exists. */
.motion-ok .page-enter { animation:page-enter .38s cubic-bezier(.2,.7,.2,1) both; }
@keyframes page-enter { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.reveal { opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s cubic-bezier(.2,.7,.2,1); transition-delay:calc(var(--reveal-i,0) * 60ms); }
.reveal.is-in { opacity:1; transform:none; }
.motion-ok :is(#main,dialog) img { transition:opacity .5s ease; }
.motion-ok :is(#main,dialog) img:not(.is-loaded) { opacity:0; }
.motion-ok :is(.temple-photo,.journey-img,.ritual-photo,.service-hero-photo,.hero-image,.st-arch,.st-still,.st-journey-photo,.dialog-top):has(img:not(.is-loaded)) { background:linear-gradient(100deg,var(--soft) 30%,#fff 50%,var(--soft) 70%) 0 0/220% 100%; animation:shimmer 1.4s linear infinite; }
@keyframes shimmer { to { background-position:-220% 0; } }
dialog[open] { animation:dialog-in .3s cubic-bezier(.2,.7,.2,1); }
dialog[open]::backdrop { animation:fade-in .3s ease; }
@keyframes dialog-in { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:none; } }
@keyframes fade-in { from { opacity:0; } }
.enquiry-success { animation:page-enter .4s cubic-bezier(.2,.7,.2,1) both; }
.success-mark { animation:pop .45s cubic-bezier(.3,1.6,.5,1) .1s both; }
.save.pop .icon { animation:pop .4s cubic-bezier(.3,1.6,.5,1); }
@keyframes pop { from { transform:scale(.4); opacity:0; } to { transform:none; opacity:1; } }
.spinner { width:16px; height:16px; flex:none; border-radius:50%; border:2px solid #ffffff59; border-top-color:#fff; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.suggest-status { padding:12px 14px; font-size:14px; color:var(--muted); }
.suggest-status::before { content:''; display:inline-block; width:12px; height:12px; margin-right:10px; vertical-align:-1px; border-radius:50%; border:2px solid var(--line); border-top-color:var(--wine); animation:spin .8s linear infinite; }
@media (prefers-reduced-motion:reduce) {
 dialog[open], dialog[open]::backdrop, .enquiry-success, .success-mark, .save.pop .icon, .spinner, .suggest-status::before { animation:none; }
 .reveal { opacity:1; transform:none; transition:none; }
}

/* Home hero slider: temples and other ways to connect, crossfading. Each slide carries its own shade for caption contrast. */
.hero-slides::after { display:none; }
.hero-slide { position:absolute; inset:0; isolation:isolate; opacity:0; visibility:hidden; transition:opacity .8s ease, visibility 0s linear .8s; }
.hero-slide.is-active { opacity:1; visibility:visible; transition:opacity .8s ease, visibility 0s; }
.hero-slide > img { width:100%; height:100%; object-fit:cover; object-position:center 45%; filter:saturate(.95); }
.hero-slide::after { content:''; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,rgba(23,18,15,.8)); pointer-events:none; }
.hero-slide .hero-caption { z-index:2; }
.hero-slides .photo-top { z-index:3; }
.motion-ok .hero-slide.is-active > img { animation:hero-drift 7s ease-out both; }
@keyframes hero-drift { from { transform:scale(1.06); } to { transform:none; } }
.hero-slide.is-illustrated { display:grid; place-items:center; background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--glow) 55%,transparent),transparent 58%),linear-gradient(160deg,var(--wine),var(--deep)); }
.hero-illustration img { width:min(140px,36%); height:auto; margin-top:-40px; }
.hero-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.slider-controls { display:flex; align-items:center; gap:6px; margin-left:auto; }
.slider-btn { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--line); background:#fff; color:var(--wine); cursor:pointer; }
.slider-btn:hover { border-color:var(--wine); background:var(--soft); }
.slider-btn .icon { width:16px; height:16px; }
.slider-btn .icon-resume { fill:currentColor; stroke:none; }
.slider-btn[data-playing="false"] .icon-pause, .slider-btn[data-playing="true"] .icon-resume { display:none; }
.slider-dots { display:flex; align-items:center; }
.slider-dots button { width:24px; height:24px; display:grid; place-items:center; padding:0; border:0; background:none; cursor:pointer; }
.slider-dots button::before { content:''; width:8px; height:8px; border-radius:999px; background:color-mix(in srgb,var(--wine) 28%,#fff); transition:width .3s ease, background-color .3s ease; }
.slider-dots button[aria-current="true"]::before { width:20px; background:var(--wine); }
@media (prefers-reduced-motion:reduce) { .hero-slide, .slider-dots button::before { transition:none; } .motion-ok .hero-slide.is-active > img { animation:none; } }
/* Phones: the slider follows the search, compact and full width. */
@media (max-width:650px) {
 .app-hero .hero-sanctum { display:block; margin:24px 0 0; }
 .app-hero .hero-sanctum .aura-rings { display:none; }
 .app-hero .hero-slides.hero-image { height:260px; border-radius:22px; }
 .app-hero .hero-slides .photo-top { top:14px; left:14px; padding:6px 10px; }
 .app-hero .hero-slide .hero-caption { left:18px; right:16px; bottom:16px; }
 .hero-controls { margin-top:10px; gap:8px; }
}

/* Search: a theme-tinted glow, with a point of light travelling around the border.
   The light is the theme's glow colour with a tail of its primary colour; a blurred copy behind the box
   lets it shine outward. Faster and brighter while typing; still with reduced motion. */
@property --search-angle { syntax:'<angle>'; inherits:true; initial-value:0deg; }
.home-search, .page-intro .directory-search {
 --search-light:conic-gradient(from var(--search-angle),transparent 0 60%,color-mix(in srgb,var(--wine) 75%,transparent) 76%,var(--glow) 88%,#fff 91%,transparent 96%);
 border-radius:28px; border:1px solid color-mix(in srgb,var(--wine) 14%,var(--line)); padding:6px 6px 6px 22px;
 /* A white halo sits closest to the box; the theme glow shows beyond it at 20%. */
 --search-white:0 0 0 4px #ffffffd9, 0 0 24px 8px #ffffffcc;
 box-shadow:var(--search-white), 0 1px 6px color-mix(in srgb,var(--deep) 12%,transparent), 0 10px 32px color-mix(in srgb,var(--glow) 20%,transparent);
 animation:search-orbit 6s linear infinite; transition:box-shadow .2s ease, border-color .2s ease;
}
/* The glow sits behind the box inside its parent's layer; that layer stays above later content so suggestions overlap it. */
.page-intro, .hero-copy { position:relative; z-index:5; }
.home-search::before, .page-intro .directory-search::before { content:''; position:absolute; inset:-1px; border-radius:inherit; padding:2px; background:var(--search-light); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0); pointer-events:none; }
.home-search::after, .page-intro .directory-search::after { content:''; position:absolute; inset:-6px; z-index:-1; border-radius:inherit; background:var(--search-light); filter:blur(14px); opacity:.2; pointer-events:none; transition:opacity .2s ease; }
.home-search:hover, .page-intro .directory-search:hover { box-shadow:var(--search-white), 0 1px 8px color-mix(in srgb,var(--deep) 14%,transparent), 0 12px 36px color-mix(in srgb,var(--glow) 20%,transparent); }
.home-search:hover::after, .page-intro .directory-search:hover::after { opacity:.26; }
.home-search:focus-within, .page-intro .directory-search:focus-within { outline:none; animation-duration:3s; border-color:color-mix(in srgb,var(--wine) 45%,var(--line)); box-shadow:0 0 0 4px #fff, 0 0 0 7px color-mix(in srgb,var(--glow) 20%,transparent), 0 0 30px 10px #ffffffcc, 0 14px 40px color-mix(in srgb,var(--glow) 20%,transparent); }
.home-search:focus-within::after, .page-intro .directory-search:focus-within::after { opacity:.32; }
@keyframes search-orbit { to { --search-angle:360deg; } }
.home-search .button, .page-intro .directory-search .button { border-radius:22px; }
@media (max-width:650px) { .home-search, .page-intro .directory-search { padding:5px 5px 5px 16px; } .home-search::after, .page-intro .directory-search::after { filter:blur(10px); } }
@media (prefers-reduced-motion:reduce) { .home-search, .page-intro .directory-search { animation:none; transition:none; --search-angle:300deg; } }

/* Temple page template (21 October 2026). One bold element, the photo in an aura arch; everything else quiet:
   white cards, theme tokens only, the visit essentials first and the map beside them. */
.temple-page { --tp-header:80px; padding-bottom:24px; }
.back-link { display:inline-flex; align-items:center; gap:6px; min-height:40px; margin-top:20px; font-size:14px; font-weight:600; color:var(--wine); }
.back-link .icon { width:16px; height:16px; }

/* Hero: the photograph framed as an arch (the Universal Aura's own shape), on a pale aura glow. */
.tp-hero { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(28px,5vw,72px); align-items:center; margin:10px 0 0; padding:clamp(22px,3.4vw,44px); border:1px solid var(--line); border-radius:30px; overflow:hidden; background:radial-gradient(ellipse 60% 70% at 24% 46%,color-mix(in srgb,var(--glow) 24%,transparent),transparent 70%),radial-gradient(ellipse 50% 60% at 100% 0%,color-mix(in srgb,var(--wine) 7%,transparent),transparent 70%),linear-gradient(180deg,color-mix(in srgb,var(--soft) 65%,#fff),#fff); }
.tp-hero::after { content:""; position:absolute; z-index:-1; right:-120px; bottom:-220px; width:520px; height:520px; border-radius:50%; background:repeating-radial-gradient(circle,transparent 0 46px,color-mix(in srgb,var(--gold) 16%,transparent) 46px 47px); opacity:.7; pointer-events:none; }
.tp-figure { margin:0; min-width:0; display:grid; gap:12px; justify-items:center; }
.tp-arch { width:min(100%,430px); padding:10px; border-radius:999px 999px 28px 28px; background:#fff; border:1px solid color-mix(in srgb,var(--gold) 42%,var(--line)); box-shadow:0 0 0 9px color-mix(in srgb,var(--glow) 9%,transparent),0 26px 60px color-mix(in srgb,var(--wine) 13%,transparent); }
.tp-photo { aspect-ratio:4/5; border-radius:999px 999px 20px 20px; overflow:hidden; background:var(--soft); }
.tp-photo > img, .tp-photo .placeholder-photo { display:block; width:100%; height:100%; object-fit:cover; }
.tp-figure figcaption { max-width:430px; font-size:12px; line-height:1.6; color:var(--muted); text-align:center; }
.tp-figure figcaption a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
.tp-intro { min-width:0; }
.tp-intro h1 { font-size:clamp(34px,4.4vw,58px); line-height:1.06; letter-spacing:-.035em; margin:16px 0 14px; text-wrap:balance; }
.tp-intro .location { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:0; font-size:16px; font-weight:600; color:var(--copper); }
.tp-intro .location .icon { width:18px; height:18px; }
.tp-deity { padding:3px 12px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink); font-size:13px; font-weight:600; }
.tp-lead { max-width:54ch; margin:14px 0 0; font-size:17px; line-height:1.7; }
.tp-intro .status-pill.is-checked { color:#fff; background:var(--wine); border-color:var(--wine); }
.tp-intro .status-pill.is-checked::before { background:#fff; }
.tp-actions { display:grid; grid-template-columns:repeat(2,minmax(0,230px)); gap:10px; margin-top:28px; }
.tp-actions .button { gap:8px; width:100%; justify-content:center; padding-inline:16px; }
.tp-actions .button .icon { width:18px; height:18px; }
.tp-actions [hidden] { display:none !important; }
.tp-more-actions { display:flex; flex-wrap:wrap; gap:4px 24px; margin-top:14px; }
.tp-text-button { display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:0; border:0; background:none; color:var(--wine); font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.tp-text-button .icon { width:17px; height:17px; }
.tp-text-button:hover { text-decoration:underline; text-underline-offset:3px; }

/* Section links: stay in reach while reading; they scroll within the page. */
.tp-nav { position:sticky; top:var(--tp-header); z-index:6; display:flex; gap:8px; overflow-x:auto; margin:20px 0 32px; padding:10px 2px; background:color-mix(in srgb,#fff 93%,transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); scrollbar-width:none; }
.tp-nav::-webkit-scrollbar { display:none; }
.tp-nav button { flex:none; min-height:40px; padding:8px 16px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink); font:inherit; font-size:14px; font-weight:600; cursor:pointer; transition:border-color .2s, color .2s; }
.tp-nav button:hover { border-color:var(--wine); color:var(--wine); }

/* Two columns: the reading column and, beside it, location and contact. */
.tp-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,390px); column-gap:48px; align-items:start; }
.tp-layout > * { grid-column:1; min-width:0; }
.tp-layout > .tp-aside { grid-column:2; grid-row:1 / span 8; align-self:stretch; }
@media (min-width:1101px) and (min-height:860px) { .tp-map-card { position:sticky; top:calc(var(--tp-header) + 78px); } }
.tp-section { margin:0 0 52px; scroll-margin-top:calc(var(--tp-header) + 80px); }
.tp-section:focus { outline:none; }
.tp-section-head { margin-bottom:18px; }
.tp-section-head h2 { margin:0; font-size:28px; letter-spacing:-.02em; }
.tp-section-head p { max-width:62ch; margin:6px 0 0; font-size:15px; line-height:1.7; }

/* Detail cards: checked ones show their source and date; unchecked ones say so plainly. */
.tp-essentials { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.tp-card { display:grid; align-content:start; gap:10px; padding:20px 20px 18px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.tp-card-head { display:flex; align-items:center; gap:12px; }
.tp-card-head .icon { width:42px; height:42px; padding:10px; border-radius:13px; background:var(--soft); color:var(--wine); }
.tp-card h3 { margin:0; font-size:16px; }
.tp-card-value { color:var(--ink); font-size:15px; line-height:1.65; }
.tp-card-value p { margin:0; color:inherit; }
.tp-card-value a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
.tp-card[data-state="checked"] .tp-card-value p { display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; overflow:hidden; }
.tp-card.is-open .tp-card-value p { display:block; -webkit-line-clamp:unset; }
.tp-expand { justify-self:start; min-height:32px; padding:0; border:0; background:none; color:var(--wine); font:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.tp-card-src { display:flex; align-items:flex-start; gap:6px; margin:2px 0 0; font-size:12.5px; line-height:1.55; color:var(--muted); }
.tp-card-src .icon { width:15px; height:15px; margin-top:2px; color:var(--wine); }
.tp-card-src a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
.tp-card[data-state="unchecked"] { border-style:dashed; background:color-mix(in srgb,var(--soft) 42%,#fff); }
.tp-card[data-state="unchecked"] .tp-card-head .icon { background:#fff; color:var(--muted); }
.tp-card[data-state="checked"] { box-shadow:0 8px 26px color-mix(in srgb,var(--wine) 6%,transparent); }
.tp-na { color:var(--muted); font-style:italic; }
.tp-know { display:grid; gap:12px; margin:0; padding:0; list-style:none; }
.tp-before-help { display:flex; align-items:flex-start; gap:10px; margin:14px 0 0; font-size:14px; line-height:1.7; }
.tp-before-help .icon { width:18px; height:18px; margin-top:3px; flex:none; color:var(--wine); }
.tp-before-help a { color:var(--wine); font-weight:600; text-decoration:underline; text-underline-offset:3px; }

/* Location and contact. The map ignores touches until it is switched on, so page scrolling never gets caught. */
.tp-map-card { border:1px solid var(--line); border-radius:22px; background:#fff; overflow:hidden; scroll-margin-top:calc(var(--tp-header) + 80px); box-shadow:0 12px 36px color-mix(in srgb,var(--wine) 6%,transparent); }
.tp-map-card:focus { outline:none; }
.tp-map-card h2 { margin:0; padding:18px 20px 14px; font-size:18px; letter-spacing:-.01em; }
.tp-map { position:relative; aspect-ratio:4/3; background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--glow) 18%,transparent),transparent 60%),var(--soft); border-block:1px solid var(--line); }
.tp-map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.tp-map-placeholder { position:absolute; inset:0; display:grid; place-content:center; justify-items:center; gap:10px; padding:24px; text-align:center; color:var(--muted); font-size:14px; }
.tp-map-placeholder .icon { width:34px; height:34px; color:var(--wine); }
.tp-map-body { display:grid; gap:14px; padding:16px 20px 20px; }
.tp-map-note { margin:0; font-size:13.5px; line-height:1.6; }
.tp-map-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; }
.tp-map-actions .button { gap:8px; }
.tp-map-actions .button .icon { width:17px; height:17px; }
.tp-glance { margin:0; padding:0 20px 8px; }
.tp-glance > div { display:grid; grid-template-columns:96px minmax(0,1fr); gap:12px; padding:12px 0; border-top:1px solid var(--line); }
.tp-glance dt { font-size:13px; font-weight:700; color:var(--muted); }
.tp-glance dd { margin:0; font-size:14.5px; line-height:1.55; color:var(--ink); overflow-wrap:anywhere; }
.tp-glance dd small { display:block; margin-top:2px; font-size:12px; color:var(--muted); }
.tp-glance a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }

/* Official ways to plan: a quiet list of links to the temple authority's own services. */
.tp-links { margin:0; padding:0; list-style:none; border:1px solid var(--line); border-radius:18px; background:#fff; overflow:hidden; }
.tp-links li { padding:16px 20px; border-top:1px solid var(--line); }
.tp-links li:first-child { border-top:0; }
.tp-links a { display:inline-flex; align-items:center; gap:8px; color:var(--wine); font-weight:700; text-decoration:none; }
.tp-links a:hover .tp-link-title { text-decoration:underline; text-underline-offset:3px; }
.tp-links a .icon { width:16px; height:16px; }
.tp-links p { margin:4px 0 0; font-size:14px; line-height:1.65; }
.tp-guide .tp-section-head a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
.tp-guide-note { display:flex; align-items:flex-start; gap:10px; margin:14px 0 0; font-size:14px; line-height:1.7; }
.tp-guide-note .icon { width:18px; height:18px; margin-top:3px; flex:none; color:var(--wine); }
.tp-gaps { margin-top:10px; }
.tp-gaps summary { min-height:40px; display:flex; align-items:center; font-weight:600; color:var(--ink); cursor:pointer; }
.tp-gaps p { margin:4px 0 0; font-size:14px; line-height:1.7; }

/* Services */
.tp-services { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:0; padding:0; list-style:none; }
.tp-services li { display:grid; grid-template-columns:auto 1fr; gap:4px 14px; align-items:start; padding:18px 20px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.tp-services li > .icon { grid-row:span 2; width:42px; height:42px; padding:10px; border-radius:50%; background:var(--soft); color:var(--wine); }
.tp-services h3 { margin:0 0 4px; font-size:16px; }
.tp-services p { margin:0; font-size:14px; }
.tp-services strong { color:var(--ink); }
.tp-services .text-link { grid-column:2; margin-top:6px; font-size:14px; }
.tp-services .tp-src { margin-top:6px; font-size:12.5px; color:var(--muted); }
.tp-services .tp-src a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
.tp-services li.is-offered { border-color:color-mix(in srgb,var(--wine) 32%,var(--line)); box-shadow:0 8px 24px color-mix(in srgb,var(--wine) 7%,transparent); }
.tp-services li.is-offered > .icon { background:var(--wine); color:#fff; }
.tp-enroll { display:grid; grid-template-columns:auto 1fr auto; gap:6px 18px; align-items:center; margin-top:18px; padding:20px 22px; border-radius:18px; background:radial-gradient(ellipse at 0% 50%,color-mix(in srgb,var(--glow) 16%,transparent),transparent 70%),var(--soft); }
.tp-enroll > .icon { width:44px; height:44px; padding:10px; border:1px solid var(--line); border-radius:50%; background:#fff; color:var(--wine); }
.tp-enroll h3 { margin:0 0 2px; font-size:17px; }
.tp-enroll p { margin:0; font-size:14px; line-height:1.7; }
.tp-enroll .button { gap:10px; white-space:nowrap; }

/* The full record: opens on request, so the page leads with what matters. */
.tp-record { border:1px solid var(--line); border-radius:16px; background:#fff; }
.tp-record > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:56px; padding:14px 20px; font-weight:700; color:var(--wine); cursor:pointer; list-style:none; }
.tp-record > summary::-webkit-details-marker { display:none; }
.tp-record > summary::after { content:""; width:9px; height:9px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-3px); transition:transform .2s; }
.tp-record[open] > summary::after { transform:rotate(-135deg) translateY(-3px); }
.tp-record[open] > summary { border-bottom:1px solid var(--line); }
.tp-record .table-wrap { padding:0; }
.tp-record .tp-table { border:0; border-radius:0 0 16px 16px; }
/* The full record */
.tp-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:14px; overflow:hidden; font-size:14.5px; }
.tp-table th, .tp-table td { padding:13px 18px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); line-height:1.6; }
.tp-table thead th { background:var(--soft); font-size:13px; font-weight:700; color:var(--ink); }
.tp-table tbody th { width:24%; font-weight:700; color:var(--ink); }
.tp-table td:last-child { width:30%; font-size:13px; color:var(--muted); }
.tp-table tbody tr:last-child > * { border-bottom:0; }
.tp-table a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
.tp-value { white-space:pre-line; }
.tp[data-details="loading"] [data-fact] td, .tp[data-details="loading"] .tp-services li > div, .tp[data-details="loading"] .tp-card-value { opacity:.6; transition:opacity .35s cubic-bezier(.22,1,.36,1); }
.tp-note { display:flex; align-items:flex-start; gap:10px; margin:14px 0 0; font-size:14px; line-height:1.75; }
.tp-note .icon { width:18px; height:18px; margin-top:3px; flex:none; color:var(--wine); }

/* Temples nearby */
.tp-nearby-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 14px; padding:0; list-style:none; }
.tp-nearby-list li { display:grid; grid-template-rows:1fr auto; border:1px solid var(--line); border-radius:16px; background:#fff; transition:border-color .2s, box-shadow .2s; }
.tp-nearby-list li:hover { border-color:color-mix(in srgb,var(--wine) 40%,var(--line)); box-shadow:0 10px 26px color-mix(in srgb,var(--wine) 8%,transparent); }
.tp-nearby-list a { display:grid; align-content:start; gap:6px; padding:16px 18px 10px; color:var(--ink); text-decoration:none; border-radius:16px 16px 0 0; }
.tp-nearby-list a:hover .tp-nearby-name { text-decoration:underline; text-underline-offset:3px; }
/* Every temple around this one, on the published Google My Maps map. */
.tp-nearby-map { position:relative; aspect-ratio:16/9; margin:0 0 16px; border:1px solid var(--line); border-radius:18px; overflow:hidden; background:var(--soft); }
.tp-nearby-map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
@media (max-width:700px) { .tp-nearby-map { aspect-ratio:1/1; } }
/* "Show on map" pins a nearby temple on this page's Google map. */
.tp-pin { justify-self:start; display:inline-flex; align-items:center; gap:6px; min-height:36px; margin:0 14px 14px; padding:6px 12px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--wine); font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.tp-pin .icon { width:15px; height:15px; }
.tp-pin:hover { border-color:var(--wine); }
.tp-pin[aria-pressed="true"] { background:var(--wine); border-color:var(--wine); color:#fff; }
.tp-pinned { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:2px 10px; margin:0; padding:10px 20px; border-top:1px solid var(--line); background:color-mix(in srgb,var(--soft) 70%,#fff); font-size:13.5px; line-height:1.5; color:var(--ink); }
.tp-pinned[hidden] { display:none; }
.tp-pinned .icon { width:16px; height:16px; margin-top:2px; color:var(--wine); }
.tp-pinned .tp-text-button { grid-column:2; justify-self:start; min-height:32px; font-size:13.5px; }
.tp-nearby-name { font-weight:700; line-height:1.35; }
.tp-nearby-meta { font-size:13px; font-weight:600; color:var(--copper); }

@media (max-width:1100px) {
 .tp-layout { grid-template-columns:1fr; }
 .tp-layout > .tp-aside { grid-column:1; grid-row:auto; margin-bottom:52px; }
 .tp-map-card { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); }
 .tp-map-card h2 { grid-column:1 / -1; }
 .tp-map { grid-row:2 / span 2; border-bottom:0; }
 .tp-glance { padding-top:6px; }
 .tp-nearby-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
 .tp-hero { grid-template-columns:1fr; gap:22px; border-radius:24px; }
 .tp-arch { width:min(100%,520px); }
 .tp-photo { aspect-ratio:5/4; }
 .tp-services { grid-template-columns:1fr; }
 .tp-enroll { grid-template-columns:auto 1fr; align-items:start; }
 .tp-enroll .button { grid-column:1 / -1; justify-self:start; }
}
@media (max-width:700px) {
 .temple-page { --tp-header:76px; }
 .tp-hero { margin-inline:-6px; padding:14px 14px 22px; }
 .tp-arch { padding:7px; }
 .tp-intro h1 { margin-top:12px; }
 .tp-actions { grid-template-columns:1fr 1fr; }
 .tp-actions [data-add] { grid-column:1 / -1; }
 .tp-actions .button { padding-inline:10px; }
 .tp-photo:has(.placeholder-photo) { aspect-ratio:16/10; }
 .tp-essentials, .tp-nearby-list { grid-template-columns:1fr; }
 .tp-map-card { display:block; }
 .tp-map { border-bottom:1px solid var(--line); }
 .tp-section-head h2 { font-size:24px; }
 .tp-glance > div { grid-template-columns:84px minmax(0,1fr); }
 .tp-enroll { grid-template-columns:1fr; gap:10px; }
}
@media (prefers-reduced-motion:reduce) { .tp-nav button, .tp-nearby-list li { transition:none; } }
/* Enrollment form: service choices and the details the temple states. */
.enroll-group { margin-top:24px !important; }
.enroll-group legend { font-size:14px; font-weight:700; color:var(--ink); margin-bottom:10px; padding:0; }
.enroll-group legend .optional { font-weight:500; color:var(--muted); }
.enroll-checks { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.enroll-check { position:relative; display:flex; align-items:center; gap:10px; min-height:52px; padding:10px 14px; border:1px solid color-mix(in srgb,var(--ink) 16%,var(--line)); border-radius:12px; background:#fff; font-size:15px; font-weight:600; color:var(--ink); cursor:pointer; transition:border-color .18s cubic-bezier(.22,1,.36,1),background-color .18s cubic-bezier(.22,1,.36,1); }
.enroll-check input { width:20px; height:20px; margin:0; flex:none; accent-color:var(--wine); }
.enroll-check .icon { width:20px; height:20px; flex:none; color:var(--wine); }
.enroll-check:hover { border-color:color-mix(in srgb,var(--wine) 40%,var(--line)); }
.enroll-check:has(input:checked) { border-color:var(--wine); background:var(--soft); }
.enroll-check:has(input:focus-visible) { outline:2px solid var(--wine); outline-offset:2px; }
.enroll-group .field-grid { grid-template-columns:1fr; gap:14px; }
.enroll-group .field textarea { min-height:72px; }
@media (max-width:650px) { .enroll-checks { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .enroll-check { transition:none; } }
@media (max-width:650px) {
 .tp-table thead { display:none; }
 .tp-table, .tp-table tbody, .tp-table tr, .tp-table th, .tp-table td { display:block; width:auto; }
 .tp-table tr { padding:12px 16px; border-bottom:1px solid var(--line); }
 .tp-table tbody th, .tp-table td { padding:0; border:0; width:auto; }
 .tp-table td.tp-nosrc { display:none; }
 .tp-table td { margin-top:4px; }
 .tp-table td:last-child { width:auto; margin-top:2px; }
}

/* Places without a photograph: the Universal Aura in a deity tone, inside soft aura rings. */
.placeholder-photo::before, .journey-art::before, .journey-art::after { content:none; }
.placeholder-photo, .journey-art { display:block; padding:0; background:none; }
.aura-art { --glow:var(--tone-glow); position:relative; width:100%; height:100%; display:grid; place-items:center; overflow:hidden; color:var(--tone); background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--tone-glow) 32%,transparent) 0,transparent 46%),linear-gradient(170deg,var(--tone-soft),#fff 80%); }
.aura-art::before, .aura-art::after { content:''; position:absolute; left:50%; top:50%; height:52%; aspect-ratio:1; border-radius:50%; border:1px solid color-mix(in srgb,var(--tone) 18%,transparent); transform:translate(-50%,-50%); }
.aura-art::after { height:78%; border-color:color-mix(in srgb,var(--tone) 10%,transparent); }
.aura-art-mark { position:relative; height:30%; min-height:40px; max-height:110px; width:auto; aspect-ratio:1; }

/* Footer: an Explore row, site links with icons, sources and credits, and an honest status line.
   Motion is feedback only: transform and opacity, 0.18s fast / 0.35s smooth, off with reduced motion. */
.site-footer { --fx-ease:cubic-bezier(.22,1,.36,1); --fx-accent:color-mix(in srgb,var(--glow) 78%,#fff); color:#fff; }
.fx-explore { padding-block:40px 34px; border-bottom:1px solid #ffffff1f; }
.fx-explore h2 { margin:0 0 20px; font-size:20px; line-height:1.3; letter-spacing:-.3px; color:#fff; }
.fx-services { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:8px; }
.fx-services a { display:flex; flex-direction:column; align-items:center; gap:12px; padding:14px 6px 12px; border-radius:16px; text-align:center; font-size:14px; font-weight:600; line-height:1.35; color:#fff; }
.fx-icon { position:relative; width:56px; height:56px; display:grid; place-items:center; flex:none; border-radius:50%; background:#ffffff14; border:1px solid #ffffff2e; color:var(--fx-accent); transition:transform .35s var(--fx-ease), background-color .18s ease; }
.fx-icon .icon { width:28px; height:28px; }
.fx-icon::after { content:''; position:absolute; inset:-7px; border-radius:50%; border:1px solid color-mix(in srgb,var(--glow) 65%,transparent); opacity:0; transform:scale(.82); transition:opacity .18s ease, transform .35s var(--fx-ease); }
.fx-services a:hover .fx-icon, .fx-services a:focus-visible .fx-icon { transform:translateY(-4px); background:#ffffff26; }
.fx-services a:hover .fx-icon::after, .fx-services a:focus-visible .fx-icon::after { opacity:1; transform:scale(1); }
.fx-services a:active .fx-icon { transform:translateY(-1px) scale(.95); transition-duration:.12s; }
.fx-grid { display:grid; grid-template-columns:1.25fr 1fr 1fr 1.35fr; gap:40px; padding-block:40px 30px; }
.fx-brand p { margin:18px 0 0; max-width:300px; font-size:15px; line-height:1.8; color:#ffffffcc; }
.fx-col h3 { margin:0 0 14px; font-size:15px; font-weight:700; color:#fff; }
.fx-links { list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.fx-links a { display:inline-flex; align-items:center; gap:10px; min-height:36px; font-size:14px; line-height:1.5; color:#ffffffd9; }
.fx-links a:hover { color:#fff; }
.fx-links .icon { width:18px; height:18px; flex:none; color:var(--fx-accent); transition:transform .18s var(--fx-ease); }
.fx-links a:hover .icon { transform:translateX(3px); }
.fx-links a[target="_blank"]:hover .icon { transform:translate(2px,-2px); }
.fx-status { display:flex; gap:10px; align-items:flex-start; margin:0 auto; padding-block:0 24px; font-size:13px; line-height:1.75; color:#ffffffbf; }
.fx-status .icon { width:18px; height:18px; flex:none; margin-top:3px; color:var(--fx-accent); }
.fx-bottom { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-block:16px 22px; border-top:1px solid #ffffff22; font-size:13px; color:#ffffffb3; }
.fx-top { display:inline-flex; align-items:center; gap:8px; min-height:40px; padding:8px 16px; border-radius:999px; border:1px solid #ffffff40; background:none; color:#fff; font:inherit; font-size:13px; font-weight:600; cursor:pointer; transition:background-color .18s ease; }
.fx-top .icon { width:16px; height:16px; transition:transform .18s var(--fx-ease); }
.fx-top:hover { background:#ffffff17; }
.fx-top:hover .icon { transform:translateY(-2px); }
.site-footer :is(.fx-services a, .fx-links a, .fx-top):focus-visible { outline:3px solid var(--glow); outline-offset:3px; }
@media (max-width:1100px) { .fx-grid { grid-template-columns:1fr 1fr; } .fx-brand { grid-column:1/-1; } }
@media (max-width:900px) { .fx-services { grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; } }
@media (max-width:650px) {
 .fx-explore { padding-block:30px 22px; }
 .fx-icon { width:50px; height:50px; } .fx-icon .icon { width:25px; height:25px; }
 .fx-services a { font-size:13px; padding:10px 4px; gap:10px; }
 .fx-grid { gap:28px 18px; padding-block:30px 22px; }
 .fx-refs { grid-column:1/-1; }
 .fx-bottom { flex-wrap:wrap; padding-bottom:calc(96px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion:reduce) {
 .fx-icon, .fx-icon::after, .fx-links .icon, .fx-top .icon { transition:none; }
 .fx-services a:hover .fx-icon, .fx-services a:focus-visible .fx-icon, .fx-services a:active .fx-icon, .fx-links a:hover .icon, .fx-top:hover .icon { transform:none; }
}

/* Focused page head: the title, then (on Temples) the search, then the nine services. */
.page-intro { padding-top:40px; padding-bottom:26px; }
.page-intro h1 { margin-bottom:0; text-wrap:balance; }
.dialog-meta { margin:-4px 0 14px; font-size:13px; font-weight:700; letter-spacing:.4px; color:var(--copper); }
@media (max-width:650px) { .page-intro { padding-top:26px; padding-bottom:18px; } }
.page-intro .directory-search { margin-top:24px; max-width:780px; padding:6px 6px 6px 18px; border-color:color-mix(in srgb,var(--wine) 19%,var(--line)); border-radius:15px; box-shadow:0 8px 30px color-mix(in srgb,var(--wine) 7%,transparent); }
.page-intro .directory-search .button { min-height:46px; padding-inline:22px; box-shadow:none; }
.directory-page .page-intro { padding-bottom:26px; }
.service-tabs, .directory-page>.service-tabs { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:4px; overflow:visible; margin:0 0 34px; padding:6px; border:1px solid var(--line); border-radius:18px; background:color-mix(in srgb,var(--soft) 70%,#fff); }
.service-tab { flex-direction:column; justify-content:center; text-align:center; white-space:normal; gap:8px; min-height:88px; padding:12px 6px; border:1px solid transparent; border-radius:13px; font-size:12.5px; font-weight:700; line-height:1.35; color:var(--ink); }
.service-tab .icon { width:22px; height:22px; flex:none; }
.service-tab:not(.active):hover { background:#fff; border-color:var(--line); }
.service-tab.active { background:var(--wine); color:#fff; box-shadow:0 6px 18px color-mix(in srgb,var(--wine) 22%,transparent); }
@media (max-width:1100px) {
 .service-tabs, .directory-page>.service-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .service-tab { flex-direction:row; justify-content:flex-start; text-align:left; min-height:54px; padding:10px 14px; gap:10px; font-size:13px; }
}
@media (max-width:650px) {
 .service-tabs, .directory-page>.service-tabs { display:grid; margin:0 0 24px; padding:5px; gap:3px; border-radius:16px; }
 .service-tab { flex-direction:column; justify-content:center; text-align:center; min-height:74px; padding:9px 3px; gap:6px; font-size:12px; line-height:1.3; }
 .service-tab .icon { width:20px; height:20px; }
 .page-intro .directory-search { margin-top:18px; padding:5px 5px 5px 13px; }
 .page-intro .directory-search .button { min-height:44px; padding-inline:14px; }
 .directory-page .page-intro { padding-bottom:20px; }
}

/* Active filters beside the result count. */
.active-filters { display:inline-flex; flex-wrap:wrap; gap:6px; margin-left:10px; vertical-align:middle; }
.filter-chip { display:inline-flex; align-items:center; gap:4px; padding:3px 4px 3px 12px; border-radius:999px; background:var(--soft); border:1px solid color-mix(in srgb,var(--wine) 22%,var(--line)); color:var(--wine); font-size:12px; font-weight:700; line-height:1.6; }
.filter-chip button { display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%; color:var(--wine); }
.filter-chip button:hover { background:#fff; }
.filter-chip .icon { width:12px; height:12px; }

/* Search suggestions. The home hero is an isolated stacking context, so it sits above the sections after it. */
.home-search, .directory-search, .suggest { position:relative; }
.app-hero { z-index:3; }
.suggest-list { position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:60; margin:0; padding:6px; list-style:none; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 18px 48px #17233d1c, 0 4px 14px color-mix(in srgb,var(--wine) 8%,transparent); max-height:min(430px,62vh); overflow:auto; text-align:left; }
.suggest-option { display:flex; align-items:center; gap:12px; padding:9px 12px; border-radius:11px; cursor:pointer; line-height:1.45; }
.suggest-option[aria-selected="true"], .suggest-option:hover { background:var(--soft); }
.suggest-option>.icon { width:18px; height:18px; flex:none; color:var(--wine); }
.suggest-text { display:flex; flex-direction:column; min-width:0; flex:1; }
.suggest-text b { font-size:14px; font-weight:600; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.suggest-text mark { background:none; color:var(--wine); font-weight:800; }
.suggest-text small { font-size:12px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.suggest-tag { flex:none; font-size:11px; font-weight:700; color:var(--copper); background:color-mix(in srgb,var(--soft) 60%,#fff); border:1px solid var(--line); border-radius:999px; padding:2px 10px; }
.suggest-option[data-kind="search"] { margin-top:4px; border-top:1px solid var(--line); border-radius:0 0 11px 11px; }
.suggest-option[data-kind="search"] b { font-weight:700; color:var(--wine); }

/* Request forms: a pale section with the form on a white surface. */
.hero-buttons { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.enquiry { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:44px; margin:56px 0 36px; padding:40px; border-radius:var(--app-radius); background:radial-gradient(ellipse at 0% 0%,color-mix(in srgb,var(--glow) 16%,transparent),transparent 58%),color-mix(in srgb,var(--soft) 75%,#fff); border:1px solid color-mix(in srgb,var(--wine) 10%,var(--line)); scroll-margin-top:110px; }
.enquiry-intro h2 { font-size:30px; line-height:1.3; letter-spacing:-1px; margin:12px 0 14px; }
.enquiry-intro>p { font-size:15px; line-height:1.85; }
.enquiry-promise { list-style:none; margin:24px 0 0; padding:0; display:grid; gap:12px; }
.enquiry-promise li { display:flex; gap:12px; align-items:center; font-size:14px; font-weight:600; color:var(--ink); }
.enquiry-promise .icon { width:30px; height:30px; padding:7px; flex:none; border-radius:50%; background:#fff; color:var(--wine); border:1px solid var(--line); }
.enquiry-body { background:#fff; border:1px solid var(--line); border-radius:calc(var(--app-radius) - 4px); padding:28px; box-shadow:var(--app-shadow); min-width:0; }
.enquiry-form fieldset { border:0; margin:0; padding:0; min-width:0; }
.enquiry-form fieldset:disabled { opacity:.55; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px 18px; }
.field { display:flex; flex-direction:column; gap:6px; min-width:0; }
.field.wide { grid-column:1/-1; }
.field>label { font-size:13px; font-weight:700; color:var(--ink); line-height:1.5; }
.field .optional { font-weight:500; color:var(--muted); }
.field .required { color:var(--wine); }
.field input, .field select, .field textarea { width:100%; min-height:48px; padding:11px 14px; font:inherit; font-size:16px; line-height:1.5; color:var(--ink); background:#fff; border:1px solid color-mix(in srgb,var(--ink) 16%,var(--line)); border-radius:12px; }
.field textarea { min-height:112px; resize:vertical; }
.field :is(input,select,textarea):focus { outline:none; border-color:var(--wine); box-shadow:0 0 0 3px color-mix(in srgb,var(--wine) 15%,transparent); }
.field small { font-size:12px; line-height:1.6; color:var(--muted); }
.enquiry-form [aria-invalid="true"] { border-color:#B3261E; box-shadow:0 0 0 3px #b3261e1a; }
.field-error { margin:0; font-size:12.5px; font-weight:600; line-height:1.5; color:#B3261E; }
.field-error:empty, .enquiry-status:empty { display:none; }
.enquiry-status { margin:0 0 16px; padding:10px 14px; border-radius:12px; background:#fdecea; color:#8C1D18; font-size:14px; font-weight:600; }
.enquiry-offline { display:flex; gap:10px; align-items:flex-start; margin:0 0 18px; padding:12px 14px; border-radius:12px; background:var(--soft); color:var(--ink); font-size:14px; line-height:1.7; }
.enquiry-offline .icon { width:18px; height:18px; flex:none; margin-top:3px; color:var(--wine); }
.consent { display:flex; gap:12px; align-items:flex-start; margin:22px 0 6px; }
.consent input { width:20px; height:20px; margin:3px 0 0; flex:none; accent-color:var(--wine); }
.consent label { font-size:13.5px; line-height:1.75; color:var(--muted); }
.consent a { color:var(--wine); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.enquiry-form .button[type="submit"] { margin-top:16px; }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.enquiry-success { display:grid; gap:6px; justify-items:start; outline:none; }
.enquiry-success h3 { font-size:22px; line-height:1.4; margin:8px 0 2px; }
.enquiry-success p { font-size:15px; line-height:1.8; margin:0; }
.enquiry-success strong { color:var(--ink); }
.success-mark { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:var(--wine); color:#fff; }
.success-mark .icon { width:24px; height:24px; }
.success-note { display:flex; gap:10px; align-items:flex-start; margin:10px 0 14px!important; padding:12px 14px; border-radius:12px; background:var(--soft); font-size:14px!important; }
.success-note .icon { width:18px; height:18px; flex:none; margin-top:4px; color:var(--wine); }
.profile-ask { margin:18px 0 10px; padding:12px 14px; border-radius:12px; background:var(--soft); font-size:14px!important; color:var(--ink); }
.profile-ask .text-link { display:inline-flex; margin-left:4px; }
@media (max-width:1100px) {
 .enquiry { grid-template-columns:1fr; gap:26px; padding:32px; }
}
@media (max-width:650px) {
 .enquiry { margin:36px 0 28px; padding:22px 16px; border-radius:18px; }
 .enquiry-intro h2 { font-size:25px; }
 .enquiry-body { padding:20px 16px; }
 .field-grid { grid-template-columns:1fr; }
 .hero-buttons .button { flex:1 1 auto; }
}

/* Readability floor: no functional text under 12px (captions, tags, credits and notes). */
.photo-top, .app-hero .photo-top { font-size:12px; letter-spacing:1px; }
.hero-caption small, .app-hero .hero-caption small, .journey-body small { font-size:12px; letter-spacing:.8px; }
.hero-note, .app-hero .hero-note, .hero-note a { font-size:12px; }
.photo-tag, .catalogue-grid .photo-tag { font-size:12px; }
.dialog-body .profile-source { font-size:13px; }
.catalogue-grid .location, .catalogue-grid .card-bottom { font-size:12px; }
.home-search-hints, .home-search-hints a { font-size:12px; }
.app-hero .hero-copy>.tamil-blessing { font-size:13px; }
.footer-bottom, .footer-bottom a { font-size:12px; }
.mobile-bottom-nav a { font-size:12px; }
.panchangam-note .text-link { font-size:13px; }

/* Buttons inside article pages keep button colours; the article link style is for text links only. */
.content-page a.button { color:#fff; text-decoration:none; }
.content-page a.button.outline { color:var(--wine); }

/* Heading order: the filter panel title is the page's first section heading. */
.filter-title h2 { margin:0; font-size:14px; font-weight:700; letter-spacing:-.2px; line-height:1.5; }

/* Target size (WCAG 2.2, 2.5.8): every control at least 24 by 24 pixels. */
.footer-bottom a { display:inline-flex; align-items:center; min-height:24px; padding-block:4px; }
.consent input, .practice-card input { width:24px; height:24px; }
.facts-table a { display:inline-block; padding-block:4px; }
.header .saved-link { min-height:40px; }
.hero-note a { display:inline-block; padding-block:2px; }
.card-bottom span { font-size:12px; }
.home-daily-action small { font-size:12px; }
.placeholder-photo span, .catalogue-grid .placeholder-photo span { font-size:12px; letter-spacing:1.4px; }
.recommended { font-size:12px; }
.source-note span { font-size:13px; }
.breath-orb span { font-size:13px; }
.profile-source, .breathing-note { font-size:12px; }

/* Original INGAA illustrations (dist/art.mjs). Lines, fills and lights follow the theme; a tone can override them. */
.art { display:block; width:100%; height:auto; overflow:visible; --art-line:var(--wine); --art-fill:var(--soft); --art-glow:var(--glow); }
.art .ln { fill:none; stroke:var(--art-line); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.art .ln.thin { stroke-width:1.1; opacity:.6; }
.art .ln.dash { stroke-dasharray:3 5; opacity:.7; }
.art .fl { fill:var(--art-fill); }
.art .fg { fill:#fff; }
.art .gl { fill:var(--art-glow); }
.art .gl.leaf { opacity:.55; }
.art .dot { fill:var(--art-line); }
.art .au { fill:none; stroke:var(--art-glow); stroke-width:7; }
.art .flame { transform-box:fill-box; transform-origin:50% 100%; }
.motion-ok .art .flame { animation:art-flicker 2.8s ease-in-out infinite; }
.motion-ok .art .flame:nth-of-type(4n) { animation-delay:-1.1s; }
@keyframes art-flicker { 0%,100% { transform:scale(1,1); } 45% { transform:scale(.93,1.07); } 70% { transform:scale(1.03,.97); } }
@media (prefers-reduced-motion:reduce) { .art .flame { animation:none !important; } }

/* Where the art sits. */
.enquiry-intro .art { width:min(100%,260px); margin:30px 0 0; }
.empty .art { width:min(100%,220px); margin:0 auto 14px; }
.service-hero-art, .journey-art-drawing { height:100%; min-height:220px; display:grid; place-items:center; padding:24px; background:radial-gradient(ellipse at 50% 70%,color-mix(in srgb,var(--glow) 16%,transparent),transparent 65%),var(--soft); }
.service-hero-art .art { width:min(100%,420px); }
.journey-art-drawing .art { width:min(100%,300px); }

/* Disclaimers: a short note on the page, linked to the full disclaimer. */
.disclaimer-note { display:flex; gap:10px; align-items:flex-start; margin:24px 0; padding:14px 16px; border-radius:var(--app-small-radius); background:var(--soft); border:1px solid var(--line); color:var(--ink); font-size:14px; line-height:1.75; }
.disclaimer-note > .icon { width:18px; height:18px; flex:none; margin-top:4px; color:var(--wine); }
.disclaimer-note a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }

/* Temples filter panel: a card with temple art, grouped regions and deity chips, then the catalogue summary. */
.directory-page .catalogue-layout { grid-template-columns:288px minmax(0,1fr); gap:36px; align-items:start; }
.directory-page .filter-panel { border:0; padding:0; display:grid; gap:14px; }
@media (min-width:901px) and (min-height:860px) { .directory-page .filter-panel { position:sticky; top:116px; } }
.filter-card { background:#fff; border:1px solid var(--line); border-radius:var(--app-radius); box-shadow:var(--app-shadow); overflow:hidden; }
.filter-art { padding:16px 24px 0; background:linear-gradient(180deg,var(--soft),#fff 92%); border-bottom:1px solid var(--line); }
.filter-art .art { max-width:210px; margin:0 auto; }
.filter-card .filter-title { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 20px 0; margin:0; }
.filter-card .filter-title h2 { font-size:16px; font-weight:800; letter-spacing:-.3px; line-height:1.3; color:var(--ink); }
.filter-card .filter-title [data-reset] { min-height:32px; padding:4px 12px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--wine); font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.filter-card .filter-title [data-reset]:disabled { color:var(--muted); opacity:.55; cursor:default; }
.filter-card .filter-fields { display:grid; grid-template-columns:1fr; gap:20px; padding:16px 20px 20px; }
.filter-card .filter-field { margin:0; min-width:0; }
.filter-card .filter-field > label, .deity-field legend { display:block; font-size:14px; font-weight:700; color:var(--ink); margin:0 0 8px; padding:0; }
.filter-card .filter-field > small { display:block; margin-top:8px; font-size:12px; line-height:1.6; color:var(--muted); }
.deity-field { border:0; padding:0; }
.deity-chips { display:flex; flex-wrap:wrap; gap:7px; }
.deity-chips .deity-chip { position:relative; margin:0; line-height:1.3; display:inline-flex; align-items:center; gap:6px; min-height:34px; padding:5px 11px 5px 9px; border:1px solid var(--line); border-radius:999px; background:#fff; font-size:13px; font-weight:600; color:var(--ink); cursor:pointer; transition:border-color .18s cubic-bezier(.22,1,.36,1),background-color .18s cubic-bezier(.22,1,.36,1),color .18s; }
.deity-chips .deity-chip::before { content:''; width:8px; height:8px; flex:none; border-radius:50%; background:var(--chip-tone,var(--glow)); }
.deity-chips .deity-chip input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.deity-chips .deity-chip small { display:inline; margin:0; font-size:12px; line-height:1.2; font-weight:600; color:var(--muted); }
.deity-chips .deity-chip:hover { border-color:color-mix(in srgb,var(--wine) 40%,var(--line)); }
.deity-chips .deity-chip:has(input:checked) { background:var(--wine); border-color:var(--wine); color:#fff; }
.deity-chips .deity-chip:has(input:checked)::before { background:#fff; }
.deity-chips .deity-chip:has(input:checked) small { color:#ffffffd9; }
.deity-chips .deity-chip:has(input:focus-visible) { outline:2px solid var(--wine); outline-offset:2px; }
.directory-page .filter-stats { padding:18px 20px; border:1px solid var(--line); border-radius:var(--app-radius); background:radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--glow) 16%,transparent),transparent 60%),var(--soft); font-size:14px; line-height:1.7; color:var(--muted); }
.directory-page .filter-stats strong { display:block; font-size:36px; font-weight:800; letter-spacing:-1px; line-height:1.15; color:var(--wine); }
.directory-page .filter-stats .text-link { display:flex; margin-top:10px; font-size:14px; }
@media (max-width:900px) {
 .directory-page .catalogue-layout { display:block; }
 .directory-page .filter-panel { position:static; margin-bottom:22px; }
 .filter-art, .directory-page .filter-stats { display:none; }
 .filter-card .filter-title { padding-top:16px; }
}
@media (max-width:650px) {
 .deity-chips { flex-wrap:nowrap; overflow-x:auto; padding:2px 2px 6px; margin:0 -2px; scrollbar-width:thin; }
 .deity-chips .deity-chip { flex:none; }
}
@media (prefers-reduced-motion:reduce) { .deity-chips .deity-chip { transition:none; } }

/* Sources & credits page. */
.credits-hero { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:32px; align-items:center; margin:4px 0 40px; padding:28px; border:1px solid var(--line); border-radius:var(--app-radius); background:radial-gradient(ellipse at 90% 40%,color-mix(in srgb,var(--glow) 14%,transparent),transparent 55%),var(--soft); }
.credits-lead { font-size:17px; line-height:1.8; color:var(--ink); margin:0 0 20px; max-width:680px; }
.credit-summary { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.credit-summary li { display:flex; gap:14px; align-items:flex-start; padding:16px 18px; background:#fff; border:1px solid var(--line); border-radius:var(--app-small-radius); }
.credit-summary li > .icon { width:36px; height:36px; padding:8px; flex:none; border-radius:50%; background:var(--soft); color:var(--wine); }
.credit-summary h3 { font-size:13px; font-weight:700; color:var(--muted); margin:0; }
.credit-summary .credit-link { font-size:16px; font-weight:700; margin:2px 0 4px; }
.credit-summary .credit-link a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
.credit-summary p { font-size:13px; line-height:1.65; margin:0; color:var(--muted); }
.credits-art .art { max-width:300px; margin:0 auto; }
.credits-table { width:100%; border-collapse:collapse; font-size:14px; margin:6px 0 10px; }
.credits-table th, .credits-table td { text-align:left; vertical-align:middle; padding:10px 12px; border-bottom:1px solid var(--line); }
.credits-table thead th { font-size:12px; color:var(--muted); background:var(--soft); }
.credits-table tbody th { font-weight:700; color:var(--ink); }
.credits-table img { display:block; width:72px; height:48px; object-fit:cover; border-radius:8px; }
@media (max-width:900px) { .credits-hero { grid-template-columns:1fr; padding:22px; } .credits-art { order:-1; } .credits-art .art { max-width:220px; } }
@media (max-width:650px) { .credit-summary { grid-template-columns:1fr; } .credits-table td:first-child, .credits-table th:first-child { display:none; } }

/* Reading pages (About, Privacy, Sources, Disclaimer): the text, with an illustration alongside. */
.content-with-art { display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:40px; align-items:start; }
.content-art { position:sticky; top:130px; padding:20px; border-radius:var(--app-radius); background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--glow) 18%,transparent),transparent 65%),var(--soft); }
@media (max-width:900px) { .content-with-art { grid-template-columns:1fr; gap:8px; } .content-art { position:static; order:-1; display:flex; justify-content:center; padding:10px 16px; } .content-art .art { width:130px; } }
.directory-page .filter-stats { position:relative; overflow:hidden; }
.directory-page .filter-stats > .art { position:absolute; right:-34px; bottom:-34px; width:140px; opacity:.45; pointer-events:none; }
.directory-page .filter-stats > :not(.art) { position:relative; }

/* Home daily band: the lamp in its circle. */
.home-daily .daily-orbit { width:96px; height:96px; }
.daily-orbit .art { width:74px; }
.daily-orbit .art .ln { stroke-width:4.2; }
/* Faint kolam watermarks behind the home trust band and the daily blessing. */
.trust-band, .daily-blessing { overflow:hidden; }
.trust-band > .art { position:absolute; right:-46px; top:50%; width:250px; transform:translateY(-50%); opacity:.16; pointer-events:none; --art-line:#fff; --art-fill:transparent; }
.daily-blessing > .art { position:absolute; left:-56px; bottom:-70px; width:230px; opacity:.45; pointer-events:none; }
.trust-band > :not(.art), .daily-blessing > :not(.art) { position:relative; }
/* Darshan feature: the lamp drawn in gold on the deep surface. */
.bhakti-emblem .art { width:170px; --art-line:var(--gold); --art-fill:color-mix(in srgb,var(--gold) 16%,transparent); }
@media (max-width:650px) { .bhakti-emblem .art { width:130px; } }
/* Journey planner: hills above the planning notes. */
.planner-aside > .art { width:min(100%,220px); margin:0 0 14px; }

/* Service pages: temples that offer the service, then an invitation to enroll. */
.service-temples { margin:44px 0 8px; padding:26px 28px; border:1px solid var(--line); border-radius:var(--app-radius); background:#fff; box-shadow:var(--app-shadow); }
.service-temples .st-head h2 { font-size:24px; font-weight:800; letter-spacing:-.6px; margin:0 0 4px; color:var(--ink); }
.service-temples .st-head p { font-size:14px; margin:0 0 16px; color:var(--muted); }
.st-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; }
.st-list li { display:flex; flex-direction:column; gap:4px; padding:16px 18px; border:1px solid var(--line); border-radius:var(--app-small-radius); background:linear-gradient(180deg,var(--soft),#fff 70%); }
.st-list a { font-size:17px; font-weight:700; color:var(--ink); text-decoration:none; }
.st-list a:hover { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
.st-list .st-place { font-size:13px; font-weight:600; color:var(--copper); }
.st-list p { font-size:14px; line-height:1.65; margin:4px 0 0; }
.st-list small { font-size:12px; line-height:1.6; color:var(--muted); margin-top:4px; }
.st-list small a { font-size:12px; font-weight:600; color:var(--wine); text-decoration:underline; }
.st-status { font-size:14px; color:var(--muted); margin:0; }
.st-invite { display:flex; gap:10px; align-items:flex-start; margin:18px 0 0; padding-top:16px; border-top:1px solid var(--line); font-size:14px; line-height:1.7; color:var(--ink); }
.st-invite .icon { width:20px; height:20px; flex:none; margin-top:2px; color:var(--wine); }
.st-invite a { color:var(--wine); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:650px) { .service-temples { padding:20px 18px; } .service-temples .st-head h2 { font-size:21px; } }

.research-facts>div{padding:1rem 0;border-bottom:1px solid #ddd}.research-facts dt{font-weight:700}.research-facts dd{margin:.5rem 0;overflow-wrap:anywhere}.research-facts small{line-height:1.7}

/* Temple guide: a real place, its sacred identity, and clearly sourced visit guidance. */
.tp-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:clamp(28px,4vw,60px);padding:32px;background:radial-gradient(ellipse at 8% 45%,color-mix(in srgb,var(--glow) 16%,transparent),transparent 65%),#fff}
.tp-arch{width:100%;max-width:540px;border-radius:48% 48% 20px 20px;padding:8px;box-shadow:0 0 0 7px color-mix(in srgb,var(--glow) 8%,transparent),0 18px 40px color-mix(in srgb,var(--wine) 8%,transparent)}
.tp-hero .tp-photo{aspect-ratio:1.2;border-radius:48% 48% 14px 14px}
.tp-hero .tp-photo>img{object-position:center 48%}
.tp-figure figcaption{font-size:11px;line-height:1.6;max-width:48ch}
.tp-intro h1{font-size:clamp(32px,3.4vw,50px);line-height:1.12;margin:15px 0}
.tp-eyebrow{display:block;margin:0 0 9px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--wine)}
.tp-intro .status-pill{font-size:11px;line-height:1.5;max-width:100%;white-space:normal}
.tp-hero-facts{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin:20px 0 0;padding:16px 0;border-block:1px solid var(--line)}
.tp-hero-facts dt{font-size:11px;color:var(--muted);margin-bottom:3px}.tp-hero-facts dd{margin:0;font-size:14px;font-weight:700;color:var(--ink)}
.tp-trust-brief{display:flex;gap:8px;align-items:flex-start;font-size:11px;line-height:1.6;color:var(--muted);margin:14px 0 0}.tp-trust-brief .icon{width:16px;height:16px;flex:none;color:var(--wine);margin-top:2px}
.tp-actions{margin-top:20px;grid-template-columns:1fr 1fr}.tp-photo-count{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 13px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--wine);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.tp-photo-count .icon{width:16px;height:16px}
.tp-divinity>.tp-section-head,.tp-gallery>.tp-section-head{margin-bottom:24px}.tp-deity-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tp-deity-card{min-width:0;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}.tp-deity-card figure{position:relative;margin:0;background:#3e0e22}.tp-deity-card img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain}.tp-ai-label{position:absolute;inset:auto 10px 10px;padding:8px 10px;border:1px solid #ffffff55;border-radius:8px;background:#250d1deb;color:#fff;font-size:10px;font-weight:700;text-align:center;line-height:1.5}.tp-deity-copy{padding:20px}.tp-deity-copy h3{font-size:20px;letter-spacing:-.025em;line-height:1.25;margin:5px 0 8px}.tp-deity-copy p{font-size:13px;line-height:1.8;margin:10px 0}.tp-deity-copy .tp-native{color:var(--wine);font-size:14px;margin:0}.tp-deity-copy .tp-src{font-size:11px;color:var(--muted)}.tp-deity-copy .tp-src a{color:var(--wine);text-underline-offset:3px}.tp-deity-copy details{border-top:1px solid var(--line);padding-top:10px}.tp-deity-copy summary{font-size:12px;font-weight:700;cursor:pointer;color:var(--wine)}
.tp-gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tp-gallery-grid figure{min-width:0;margin:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.tp-gallery-grid figure:first-child{grid-column:1/-1}.tp-gallery-open{position:relative;display:block;background:var(--soft);overflow:hidden}.tp-gallery-open img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.tp-gallery-grid figure:first-child img{aspect-ratio:16/9;object-position:center 48%}.tp-gallery-open>span{position:absolute;bottom:12px;right:12px;padding:5px 9px;border-radius:7px;background:#fff;color:var(--wine);font-size:11px;font-weight:700}.tp-gallery-grid figcaption{padding:14px 16px;line-height:1.7}.tp-gallery-grid figcaption strong{display:block;font-size:13px;color:var(--ink);margin-bottom:4px}.tp-gallery-grid figcaption span{display:block;font-size:11px;color:var(--muted)}.tp-gallery-grid figcaption small{display:block;margin-top:5px;font-size:10px;color:var(--muted)}.tp-gallery-grid figcaption a{color:var(--wine);text-underline-offset:3px}
.tp-layout>.tp-aside{grid-row:1/span 12}.tp-essentials .tp-card-head h3{font-size:15px}.tp-section-head p{color:var(--muted)}
@media(max-width:1100px){.tp-hero{gap:28px;padding:24px}.tp-hero-facts{grid-template-columns:1fr;gap:12px}.tp-actions .button{font-size:12px;padding-inline:10px}}
@media(max-width:850px){.tp-hero{grid-template-columns:1fr}.tp-arch{max-width:520px}.tp-intro h1{font-size:38px}.tp-hero-facts{grid-template-columns:1.3fr 1fr}.tp-layout>.tp-aside{grid-row:auto}.tp-hero .tp-photo{aspect-ratio:4/3}}
@media(max-width:700px){.tp-hero{padding:18px;gap:24px;border-radius:24px}.tp-hero .tp-photo{aspect-ratio:1.25}.tp-intro h1{font-size:32px}.tp-hero-facts{gap:12px}.tp-hero-facts dd{font-size:13px}.tp-actions [data-add]{grid-column:auto}.tp-actions .button{font-size:12px}.tp-deity-grid,.tp-gallery-grid{grid-template-columns:1fr}.tp-gallery-grid figure:first-child{grid-column:auto}.tp-deity-card{display:grid;grid-template-columns:minmax(0,1fr)}.tp-deity-copy{padding:20px}.tp-deity-card img{max-height:430px;object-fit:contain}.tp-ai-label{font-size:11px}.tp-nav{margin-bottom:26px}.tp-section{margin-bottom:40px}}

.tp-essential-title{display:block;font-size:16px;line-height:1.4;margin-bottom:9px;color:var(--ink)}.tp-essentials .tp-card-value p{font-size:13px;line-height:1.8}.tp-essentials .tp-card[data-state="checked"] .tp-card-value p{-webkit-line-clamp:3}
.tp-deity-card figure{display:flex;flex-direction:column}.tp-ai-label{position:static;order:-1;border:0;border-radius:0;padding:9px 10px;background:#391322;font-size:11px}
@media(max-width:700px){.tp-hero{display:flex;flex-direction:column;align-items:stretch;gap:14px}.tp-intro{display:contents}.tp-intro>.tp-eyebrow{order:0;margin:0}.tp-intro>h1{order:1;margin:0}.tp-intro>.location{order:2;font-size:14px}.tp-intro>.status-pill{order:3;align-self:flex-start}.tp-hero>.tp-figure{order:4;margin:8px 0}.tp-intro>.tp-lead{order:5;margin:0;font-size:15px}.tp-intro>.tp-hero-facts{order:6;margin:0}.tp-intro>.tp-trust-brief{order:7;margin:0}.tp-intro>.tp-actions{order:8;margin:0}.tp-intro>.tp-more-actions{order:9;margin:0}}
/* Responsive image sources retain the original photograph as a fallback. */
.temple-photo picture,.tp-photo picture{display:block;width:100%;height:100%}.temple-photo picture img,.tp-photo picture img{display:block;width:100%;height:100%;object-fit:cover}.tp-hero .tp-photo picture img{object-position:center 48%}.tp-gallery-open picture,.tp-deity-card picture{display:block;width:100%}.tp-deity-card:not(:has(figure)){align-self:start}.tp-figure figcaption{overflow-wrap:anywhere}