/* Three-column home and inner pages (left menu, main content, sponsors), bilingual menu labels and committee cards. */
body.is-portal .page-hero .container,body.is-portal .topbar>.container,body.is-portal .site-header .container,body.is-portal .join-band .container,body.is-portal .site-footer .container{max-width:1440px}
.portal{max-width:1440px;width:calc(100% - 96px);margin:0 auto;display:grid;grid-template-columns:250px minmax(0,1fr) 270px;grid-template-areas:"menu main sponsors";gap:28px;align-items:start;padding:28px 0 60px}

/* Main column: existing homepage sections become cards. */
.portal-main{grid-area:main;min-width:0;display:flex;flex-direction:column;gap:24px}
.portal-main>section{border:1px solid var(--line);border-radius:6px;overflow:hidden}
.portal-main .container{width:auto;max-width:none;margin:0}
.portal-main .section,.portal-main .community-feature{padding:36px 34px}
.portal-main h2{font-size:28px}
.portal-main .section-heading{gap:20px;margin-bottom:24px}
.portal-main .quick-access-grid{padding-inline:24px}
.portal-main .quick-access-grid>a{padding:22px 18px}
.portal-main .quick-access strong{font-size:17px}
.portal-main .quick-access-grid>a>svg:last-child{display:none}
.portal-main .quick-icon svg{width:24px;height:24px}
.portal-main .quick-access small{font-size:14px}
.portal-main .intro-grid,.portal-main .feature-grid,.portal-main .video-grid,.portal-main .contact-grid{gap:34px}
.portal-main .intro-photo>img{height:320px}
.portal-main .feature-photo img{height:280px}
.portal-main .content-card-grid{gap:18px}
.portal-main .card-photo{height:170px}
.portal-main .card-copy{padding:20px}
.portal-main .card-copy h3{font-size:19px}
.portal-main .card-copy p{font-size:15px}
.portal-main .single-card .content-card{grid-template-columns:240px 1fr}
.portal-main .single-card .card-photo{height:260px}
.portal-main .single-card .card-copy{padding:28px}
.portal-main .single-card .card-copy h3{font-size:24px}
.portal-main .home-gallery{gap:14px}
.portal-main .home-gallery img{height:190px}
.portal-main .video-preview{height:260px}
.portal-main .contact-grid{grid-template-columns:1fr 1.2fr}

/* Main banner: photograph with the slide text over its lower edge. */
.portal-main .hero-grid{display:block;position:relative;min-height:0;max-width:none}
.portal-main .hero-visual{height:430px;min-height:0}
.portal-main .hero-copy{padding:40px 34px}
.portal-main .hero-grid:has(.hero-visual) .hero-copy{position:absolute;inset:auto 0 0 0;padding:120px 34px 28px;background:linear-gradient(180deg,transparent,rgba(8,32,38,.9) 58%)}
.portal-main .hero .eyebrow{margin-bottom:10px}
.portal-main .hero h1,.portal-main .hero .slide-title{font-size:34px;max-width:640px}
.portal-main .hero-copy>p{font-size:17px;margin-top:12px;max-width:620px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.portal-main .hero-actions{margin-top:18px}
.portal-main .slider-controls{padding-inline:34px}

/* Left menu */
.portal-menu{grid-area:menu;display:flex;flex-direction:column;gap:20px;min-width:0}
.portal-menu-group{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.portal-menu-group>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;background:var(--primary);color:#fff;pointer-events:none}
.portal-menu-group>summary::-webkit-details-marker{display:none}
.portal-menu-group>summary>svg{display:none}
.portal-menu-group h2{font-family:var(--sans);font-size:16px;color:#fff;letter-spacing:.3px;line-height:1.4}
.portal-menu nav>a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 18px;border-top:1px solid var(--line);font-size:15px;font-weight:700;color:var(--primary);line-height:1.4}
.portal-menu nav>a:first-child{border-top:0}
.portal-menu nav>a:hover,.portal-menu nav>a.active{background:var(--light);color:var(--accent)}
.portal-menu nav>a small{display:block;font-family:'Noto Sans Telugu',sans-serif;font-size:13px;font-weight:400;color:var(--muted);margin-top:2px}
.portal-menu nav>a>svg{color:var(--accent);opacity:.75}

/* Sponsors */
.portal-sponsors{grid-area:sponsors;min-width:0}
.sponsor-panel{background:#fff;border:1px solid var(--line);border-radius:6px;padding:20px;display:flex;flex-direction:column;gap:18px}
.sponsor-heading .eyebrow{margin-bottom:6px}
.sponsor-heading p{font-size:14px;line-height:1.6}
.sponsor-tier h3{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.sponsor-tier h3:after{content:'';flex:1;height:1px;background:var(--line)}
.sponsor-grid{display:grid;gap:10px}
.sponsor-tier-silver .sponsor-grid{grid-template-columns:1fr 1fr}
.sponsor-card{display:grid;place-items:center;min-height:84px;padding:12px;border:1px solid var(--line);border-radius:4px;background:#fff;text-align:center;transition:border-color .15s,box-shadow .15s}
.sponsor-tier-title .sponsor-card{min-height:150px;border-color:#e7c66d;background:linear-gradient(#fffcf0,#fff)}
.sponsor-tier-gold .sponsor-card{min-height:104px}
.sponsor-card img{width:100%;max-height:120px;object-fit:contain}
.sponsor-tier-silver .sponsor-card img{max-height:56px}
a.sponsor-card:hover{border-color:var(--primary);box-shadow:0 8px 22px -14px rgba(21,84,96,.55)}
.sponsor-name{font-weight:900;color:var(--primary);font-size:15px;line-height:1.35;overflow-wrap:break-word;hyphens:auto}
.sponsor-tier-silver .sponsor-name{font-size:14px}
.sponsor-tier-title .sponsor-name{font-size:20px}
.sponsor-empty{font-size:14px;line-height:1.6}
.sponsor-cta{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--light);border-radius:4px;font-size:15px;font-weight:700;color:var(--primary);line-height:1.4}
.sponsor-cta>svg:first-child{color:var(--coral,#fc8253)}
.sponsor-cta>svg:last-child{margin-left:auto}
.sponsor-cta:hover{color:var(--accent)}
.sponsor-panel-compact{margin-top:30px;padding:16px;gap:14px}
.sponsor-panel-compact .sponsor-grid{grid-template-columns:1fr 1fr}
.sponsor-panel-compact .sponsor-tier-title .sponsor-grid{grid-template-columns:1fr}
.sponsor-panel-compact .sponsor-card{min-height:70px;padding:8px}
.sponsor-panel-compact .sponsor-tier-title .sponsor-card{min-height:100px}
.sponsor-panel-compact .sponsor-name{font-size:13px}
.article-sidebar:has(.sponsor-panel){position:static}

/* Inner pages: Explore TKS on the left, page content in a card, sponsors on the right. */
.portal.portal-no-sponsors{grid-template-columns:250px minmax(0,1fr);grid-template-areas:"menu main"}
.page-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:36px 34px;min-width:0}
.portal-main .form-page-grid{grid-template-columns:1fr;gap:30px;padding:0;background:none;border:0}
.portal-main .gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;padding:20px}
.portal-main .gallery-item>img{height:200px}
.portal-inner .sidebar-box{margin-top:0;border-radius:6px}

/* Gallery photo viewer: previous/next, caption and counter. */
.lightbox{overflow:visible;background:transparent}
.lightbox>figure{margin:0;background:#fff;padding:0;border-radius:4px;overflow:hidden}
.lightbox figure>img{display:block;max-width:calc(100vw - 180px);max-height:80vh;object-fit:contain;margin:auto}
.lightbox figcaption{display:flex;justify-content:space-between;gap:20px;padding:10px 16px;font-size:15px;color:var(--primary)}
.lightbox figcaption>span:last-child{margin-left:auto;color:var(--muted);white-space:nowrap}
.lightbox .lightbox-close{position:absolute;right:10px;top:10px;display:grid;place-items:center;width:42px;height:42px;border-radius:100%;border:1px solid var(--line);background:#fff;color:var(--primary)}
.lightbox>.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:48px;height:48px;border-radius:100%;border:0;background:#fff;color:var(--primary);box-shadow:0 4px 18px rgba(8,32,38,.35)}
.lightbox>.lightbox-prev{left:-64px}
.lightbox>.lightbox-prev>svg{transform:rotate(180deg)}
.lightbox>.lightbox-next{right:-64px}
.lightbox>.lightbox-nav:hover,.lightbox .lightbox-close:hover{background:var(--light)}
.lightbox.lightbox-single>.lightbox-nav{display:none}

/* Committee cards */
.committee-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}
.committee-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px 14px;border:1px solid var(--line);border-radius:6px;background:#fff;text-align:center}
.committee-card>img,.committee-initials{width:84px;height:84px;border-radius:50%;object-fit:cover;margin-bottom:10px}
.committee-initials{display:grid;place-items:center;background:var(--light);border:2px solid var(--turquoise,#58d3e6);color:var(--primary);font-size:26px;font-weight:900;letter-spacing:1px}
.committee-card>strong{color:var(--primary);font-size:16px;line-height:1.4}
.committee-role{font-size:12px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--accent);line-height:1.5}
.committee-card>a{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:14px;color:var(--muted);white-space:nowrap}
.committee-card>a:hover{color:var(--primary)}

/* Bilingual main menu: Telugu above English. */
.menu-label{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.3}
.menu-te{font-family:'Noto Sans Telugu',sans-serif;font-weight:600}
body.menu-bilingual .menu-en{font-size:.8em;opacity:.85}
body.menu-bilingual .nav-link,body.menu-bilingual .nav-dropdown>summary{padding-block:12px}

@media(max-width:1280px){.portal{grid-template-columns:220px minmax(0,1fr) 240px;gap:22px;width:calc(100% - 64px)}.portal-main .hero-visual{height:380px}.portal-sponsors .sponsor-tier-silver .sponsor-grid{grid-template-columns:1fr}.portal-sponsors .sponsor-tier-silver .sponsor-card{min-height:64px}.portal.portal-no-sponsors{grid-template-columns:220px minmax(0,1fr)}}
@media(max-width:1100px){
 .portal{grid-template-columns:minmax(0,1fr) 250px;grid-template-areas:"main sponsors" "menu sponsors"}
 .portal-menu{display:grid;grid-template-columns:1fr 1fr;gap:18px}
 .portal.portal-no-sponsors{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "menu"}
 .lightbox figure>img{max-width:92vw}
 .lightbox>.lightbox-prev{left:12px}
 .lightbox>.lightbox-next{right:12px}
 .portal-main .intro-grid,.portal-main .feature-grid,.portal-main .video-grid,.portal-main .contact-grid{grid-template-columns:1fr}
 .portal-main .content-card-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:820px){
 .portal{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "sponsors" "menu";width:calc(100% - 32px);gap:20px;padding-top:16px}
 .portal-menu{grid-template-columns:1fr}
 .page-card{padding:24px 18px}
 .portal-main .gallery-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:12px}
 .portal-main .gallery-item>img{height:150px}
 .lightbox>.lightbox-nav{width:42px;height:42px;top:auto;bottom:6px;transform:none}
 .lightbox figcaption{padding-inline:60px;font-size:14px;min-height:54px;align-items:center}
 .portal-menu-group>summary{pointer-events:auto;cursor:pointer}
 .portal-menu-group>summary>svg{display:block;transition:transform .15s}
 .portal-menu-group[open]>summary>svg{transform:rotate(180deg)}
 .portal-sponsors .sponsor-grid,.portal-sponsors .sponsor-tier-silver .sponsor-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
 .portal-sponsors .sponsor-tier-title .sponsor-card{min-height:110px}
 .portal-main .section,.portal-main .community-feature{padding:26px 20px}
 .portal-main .hero-grid{display:flex;flex-direction:column}
 .portal-main .hero-visual{height:220px;order:-1}
 .portal-sponsors .sponsor-tier-title .sponsor-grid{grid-template-columns:1fr}
 .committee-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}
 .committee-card{padding:16px 8px}
 .committee-card>a{font-size:13px}
 .portal-main .hero-grid:has(.hero-visual) .hero-copy{position:static;padding:22px 20px;background:var(--primary)}
 .portal-main .hero h1,.portal-main .hero .slide-title{font-size:25px}
 .portal-main .hero-copy>p{font-size:15px}
 .portal-main .hero .btn{font-size:14px;padding:11px 15px}
 .portal-main .slider-controls{padding-inline:20px}
 .portal-main .content-card-grid{grid-template-columns:1fr}
 .portal-main .quick-access-grid{padding-inline:20px}
 .portal-main .quick-access-grid>a{padding-inline:0}
 body.menu-bilingual .nav-link,body.menu-bilingual .nav-dropdown>summary{padding-block:9px}
}
