/* Reusable buttons, cards, gallery, call-to-action, modal. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:49px;padding:14px 21px;font-size:12px;font-weight:800;letter-spacing:.015em;border-radius:3px;border:1px solid transparent;transition:transform .22s,background .22s,color .22s,border-color .22s;line-height:1.3}
.btn svg{flex-shrink:0;transition:transform .22s}
.btn:hover{transform:translateY(-2px)}
.btn:hover svg{transform:translate(2px,-2px)}
.btn-gold{background:var(--gold);color:#151d2a}
.btn-gold:hover{background:var(--gold-light)}
.btn-primary{background:var(--purple-dark);color:#fff}
.btn-primary:hover{background:var(--purple)}
.btn-outline{background:transparent;border-color:#bfc2c9;color:var(--ink)}
.btn-outline:hover{border-color:var(--purple);color:var(--purple)}
.btn-ghost{border-color:#ffffff75;background:#ffffff08;color:#fff}
.btn-ghost:hover{background:#ffffff1e}
.btn-light{background:#fff;color:var(--purple-dark);white-space:nowrap}
.btn-text{padding-left:0;padding-right:0;background:none;color:var(--purple-dark)}
.role-cards,.roles-detailed{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.role-card{min-height:270px;padding:31px;position:relative;background:#fff;border:1px solid var(--border);overflow:hidden;box-shadow:0 15px 45px #18253b09;transition:transform .3s,box-shadow .3s}
.role-card:hover{transform:translateY(-5px);box-shadow:0 25px 55px #18253b16}
.role-card:after{content:'';position:absolute;width:180px;height:180px;border-radius:50%;border:1px solid #c9a86640;right:-80px;bottom:-100px}
.role-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}
.role-icon{display:grid;place-items:center;width:56px;height:56px;background:#46358612;color:var(--purple);border-radius:50%}
.role-index{font-size:11px;font-weight:800;letter-spacing:.18em;color:#9ca4b0}
.role-label{font-size:10px!important;font-weight:800;color:var(--green)!important;letter-spacing:.13em!important;line-height:1.5!important}
.role-card h3{font-family:Georgia,'Times New Roman',serif;font-size:clamp(26px,3vw,38px);margin:10px 0 10px;color:var(--ink)}
.lang-te .role-card h3{font-family:'Noto Sans Telugu',sans-serif}
.role-org{max-width:440px;font-size:15px!important;color:#596576!important;font-weight:600;line-height:1.6!important}
.role-decoration{position:absolute;bottom:0;left:0;width:65px;height:4px;background:var(--gold)}
.role-card-large{min-height:360px;padding:44px}
.role-card-large h3{font-size:clamp(35px,3vw,47px)}
.photo-mosaic{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:410px;gap:16px}
.photo-card{border:0;padding:0;background:#ddd;position:relative;overflow:hidden;display:block;text-align:left;width:100%;height:100%;border-radius:3px}
.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s;display:block}
.photo-card:hover img,.photo-card:focus-visible img{transform:scale(1.055)}
.photo-card:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,#0c1525d9 100%);z-index:1;pointer-events:none}
.photo-card-overlay{position:absolute;bottom:0;left:0;right:0;padding:25px 23px;z-index:2;display:flex;align-items:end;justify-content:space-between;gap:12px;color:#fff}
.photo-caption{display:flex;flex-direction:column;gap:8px;max-width:95%}
.photo-caption strong{font-size:17px;font-weight:800;line-height:1.25}
.photo-caption small{font-size:11px;color:#e1e4e6;line-height:1.55}
.photo-arrow{flex-shrink:0;display:grid;place-items:center;width:34px;height:34px;border:1px solid #ffffff7d;border-radius:50%}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.gallery-item{height:375px;min-width:0}
.gallery-item[hidden]{display:none}
.gallery-item:nth-child(3n){height:415px}
.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:31px}
.gallery-toolbar p{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px}
.filter-controls{display:flex;flex-wrap:wrap;gap:7px}
.filter-button{border:1px solid #d8d8dc;background:transparent;padding:10px 16px;font-size:11px;font-weight:800;color:var(--ink-soft);border-radius:3px}
.filter-button.active,.filter-button:hover{background:var(--purple-dark);border-color:var(--purple-dark);color:#fff}
.lightbox{position:fixed;z-index:200;width:min(1100px,96vw);max-height:94vh;border:0;padding:0;background:transparent;color:#fff;overflow:visible}
.lightbox::backdrop{background:#070a12ee;backdrop-filter:blur(8px)}
.lightbox figure{display:flex;flex-direction:column;align-items:center;gap:16px;max-height:90vh}
.lightbox figure img{max-height:80vh;width:auto;max-width:100%;object-fit:contain;background:#000}
.lightbox figcaption{font-size:15px;font-weight:600;color:#fff;text-align:center}
.lightbox-close{position:absolute;z-index:2;right:8px;top:8px;transform:translate(20%,-100%);border:0;width:38px;height:38px;display:grid;place-items:center;background:#fff;border-radius:50%;color:var(--ink)}
.contact-banner{padding-top:60px}
.contact-banner-panel{background:var(--purple-dark);min-height:330px;padding:65px 75px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:45px}
.contact-banner-copy{max-width:670px;position:relative;z-index:1}
.contact-banner-copy h2{font-family:Georgia,'Times New Roman',serif;color:#fff;font-size:clamp(36px,4.5vw,57px);margin:19px 0;max-width:660px;line-height:1.1}
.lang-te .contact-banner-copy h2{font-family:'Noto Sans Telugu',sans-serif}
.contact-banner-copy p{color:#e0dbef;font-size:15px;max-width:530px}
.contact-banner-panel>.btn{position:relative;z-index:1}
.contact-orbit{position:absolute;border:1px solid #ffffff20;border-radius:50%;right:-165px;top:-230px;width:500px;height:500px}
.contact-orbit-two{right:-75px;top:-140px;width:335px;height:335px;border-color:#ffffff30}
.information-panel,.disclosure-box{display:flex;gap:20px;padding:35px;background:#fff;border:1px solid var(--border);align-items:flex-start}
.information-panel-icon,.disclosure-icon{flex-shrink:0;display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:#e7efe9;color:var(--green)}
.information-panel h3,.disclosure-box h3{font-size:21px;margin-bottom:8px}
.information-panel p,.disclosure-box p{font-size:14px;color:var(--muted)}
