/* TGS design system — inner pages. Replaces style.css / v2.css / tgs-redesign.css / tgs-energy.css. */
:root{--blue:var(--tg-blue-d);--muted:var(--tg-muted);--danger:var(--tg-red-d);--tg-sec:clamp(36px,4vw,64px)}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{margin:0;background:var(--tg-paper);color:var(--tg-text);font-family:var(--tg-font);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%}
*,*:before,*:after{box-sizing:border-box}
main a{color:var(--tg-blue-d);text-decoration:none}
main h1,main h2,main h3,main h4{color:var(--tg-ink);line-height:1.15;letter-spacing:-.025em;font-weight:800;margin:0}
main p{margin:0 0 1em}
.container{width:min(var(--tg-wrap),100% - 2*var(--tg-gut));margin-inline:auto}
main :focus-visible{outline:3px solid var(--tg-blue);outline-offset:3px;border-radius:6px}
.section{padding-block:0 var(--tg-sec)}
main>.section:first-of-type,main>section:first-of-type{padding-top:0}

/* reveal (progressive) */
.js main .reveal{opacity:0;transform:translateY(20px);transition:opacity .6s var(--tg-ease),transform .6s var(--tg-ease)}
.js main .reveal.show{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js main .reveal{opacity:1;transform:none}}

/* page hero */
.pageHero{position:relative;margin-block:28px var(--tg-sec);padding:clamp(32px,4.4vw,64px) clamp(24px,4vw,64px);border-radius:22px;color:#fff;background:radial-gradient(70% 140% at 100% 0%,rgba(28,140,240,.38),transparent 62%),linear-gradient(135deg,#0a1b2e,#102a45);overflow:hidden;isolation:isolate}
.pageHero:after{content:"";position:absolute;right:-60px;bottom:-60px;width:320px;height:320px;border:2px solid rgba(92,180,255,.18);border-radius:50%;z-index:-1;box-shadow:0 0 0 40px rgba(92,180,255,.05),0 0 0 80px rgba(92,180,255,.03)}
.pageHero h1{color:#fff;font-size:clamp(34px,4.6vw,66px);letter-spacing:-.04em;margin:14px 0 14px;max-width:18em;text-wrap:balance}
.pageHero p{color:#c3d4e6;font-size:clamp(17px,1.4vw,20px);max-width:44em;margin:0}
.breadcrumbs{font-size:14px;color:#8fb2d4;font-weight:600}
.breadcrumbs a{color:#cfe0f1;text-decoration:none;border-bottom:1px solid rgba(207,224,241,.3)}.breadcrumbs a:hover{color:#fff;border-color:#fff}
.eyebrow,.detailPill{display:inline-block;margin-top:16px;padding:6px 14px;border-radius:30px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tg-blue-2);border:1px solid rgba(92,180,255,.4);background:rgba(28,140,240,.12)}
.badge{display:inline-block;padding:6px 14px;border-radius:30px;font-size:13px;font-weight:700;color:var(--tg-blue-d);background:#e6f1fd;margin-bottom:14px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:10px;font:700 15px/1 var(--tg-font);text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .2s,transform .2s,border-color .2s}
main a.btnBlue,main .btnBlue{background:var(--tg-blue);color:#fff}.btnBlue:hover{background:#3a9ff5;transform:translateY(-2px)}
main a.btnLight,main .btnLight{background:#fff;color:var(--tg-ink);border-color:var(--tg-rule)}.btnLight:hover{border-color:var(--tg-blue);transform:translateY(-2px)}
.fullBtn{width:100%}

/* services grid */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.service{display:flex;flex-direction:column;gap:12px;padding:32px;border-radius:18px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule);color:var(--tg-text);transition:transform .3s var(--tg-ease),box-shadow .3s}
main a.service{color:var(--tg-text)}
.service:hover{transform:translateY(-5px);box-shadow:0 24px 50px -26px rgba(7,19,31,.5),0 0 0 1px var(--tg-blue)}
.service .icon{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;font-size:26px;background:#e6f1fd;color:var(--tg-blue-d);transition:background .25s,color .25s}
.service:hover .icon{background:var(--tg-blue);color:#fff}
.service h3{font-size:24px;margin-top:8px}.service p{color:var(--tg-muted);margin:0;flex:1}.service b{color:var(--tg-blue-d);font-size:15.5px}

/* article layout */
.content{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(24px,3vw,48px);align-items:start}
.article{padding:clamp(26px,3.4vw,52px);border-radius:20px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule)}
.article>h2{font-size:clamp(28px,2.8vw,40px);margin-bottom:18px}
.article h3{font-size:24px;margin:34px 0 12px}
.article p,.article li{max-width:46em;color:#2b4157}
.article .lead{font-size:20px;color:var(--tg-text);font-weight:500}
.article ul{padding-left:0;list-style:none;margin:0 0 1em}.article li{position:relative;padding:6px 0 6px 30px}
.article li:before{content:"";position:absolute;left:4px;top:.95em;width:10px;height:10px;border-radius:3px;background:var(--tg-blue);transform:rotate(45deg)}
.article a{border-bottom:1px solid rgba(11,100,184,.35)}.article a:hover{border-color:var(--tg-blue-d)}
.aside{position:sticky;top:112px;display:grid;gap:16px}
.asideCard{padding:26px;border-radius:18px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule)}
.asideCard h4{font-size:19px;margin-bottom:8px}.asideCard p{color:var(--tg-muted);font-size:16px;margin-bottom:12px}
.asideCard a{font-weight:700;color:var(--tg-blue-d)}
.faq{margin-top:30px;display:grid;gap:10px}
.faq details{border-radius:14px;background:var(--tg-paper);box-shadow:0 0 0 1px var(--tg-rule);padding:0 22px}
.faq summary{cursor:pointer;list-style:none;padding:18px 28px 18px 0;font-weight:700;color:var(--tg-ink);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:26px;font-weight:400;color:var(--tg-blue-d);transition:transform .25s}
.faq details[open] summary:after{transform:translateY(-50%) rotate(45deg)}
.faq details p{padding-bottom:18px;margin:0}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:10px}
.stat{padding:22px;border-radius:14px;background:var(--tg-paper);box-shadow:0 0 0 1px var(--tg-rule)}
.stat strong{display:block;font-size:30px;letter-spacing:-.03em;color:var(--tg-blue-d)}.stat span{color:var(--tg-muted);font-size:15px}

/* tables */
.tableWrap{overflow-x:auto;border-radius:14px;box-shadow:0 0 0 1px var(--tg-rule);background:#fff}
table{width:100%;border-collapse:collapse;font-size:16px}
th,td{padding:15px 20px;text-align:left;border-bottom:1px solid var(--tg-rule);vertical-align:top}
tr:last-child>th,tr:last-child>td{border-bottom:0}
thead th{background:var(--tg-navy);color:#fff;font-size:13px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
tbody th{width:34%;color:var(--tg-muted);font-weight:600;background:#f7fafd}
.article .tableWrap{margin-top:8px}

/* contacts, districts */
.contactBox{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;padding:clamp(26px,3.4vw,48px);border-radius:20px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule)}
.contactBox h2{font-size:clamp(26px,2.6vw,36px);margin:0 0 12px!important}
.contactList{display:grid;gap:0}
.contactLine{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:18px 0;border-bottom:1px solid var(--tg-rule)}.contactLine:first-child{padding-top:0}.contactLine:last-child{border:0;padding-bottom:0}
.contactLine small{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tg-muted)}
.contactLine strong{font-size:clamp(20px,1.8vw,26px)}.contactLine a{color:var(--tg-blue-d)}
.sectionIntro{display:flex;gap:20px;align-items:flex-start;margin-bottom:24px}
.sectionIndex{font-size:15px;font-weight:800;color:#fff;background:var(--tg-blue);border-radius:10px;padding:8px 12px;margin-top:6px}
.sectionEyebrow{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--tg-blue-d);margin:0 0 8px!important}
.sectionIntro h2{font-size:clamp(28px,3vw,42px)}
.sectionLead{color:var(--tg-muted);max-width:52em}
.search{display:block;width:100%;min-height:56px;padding:0 20px 0 52px;border-radius:12px;border:1px solid #c8d6e5;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%235a6f84' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 18px center;font:500 17px var(--tg-font);color:var(--tg-text);transition:border-color .2s,box-shadow .2s}
.search:focus{outline:none;border-color:var(--tg-blue);box-shadow:0 0 0 4px rgba(28,140,240,.18)}
.districtSearch,#districtSearch{margin-bottom:22px}
.districts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.district{display:flex;flex-direction:column;gap:6px;padding:26px;border-radius:16px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule);transition:transform .25s var(--tg-ease),box-shadow .25s}
.district:hover{transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(7,19,31,.5),0 0 0 1px var(--tg-blue)}
.district h3{font-size:20px}.district p{color:var(--tg-muted);margin:0 0 6px;flex:1}
.district a{font-weight:800;font-size:19px;color:var(--tg-blue-d)}

/* panels, filters, publications */
.docsPanel{padding:clamp(18px,2.4vw,32px);border-radius:20px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule)}
.docTools{display:grid;gap:14px;margin-bottom:22px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:42px;padding:0 18px;border-radius:30px;border:1px solid var(--tg-rule);background:var(--tg-paper);color:var(--tg-text);font:600 15px var(--tg-font);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.chip:hover{border-color:var(--tg-blue)}
.chip.active{background:var(--tg-ink);border-color:var(--tg-ink);color:#fff}
.pubList{display:grid;gap:16px}
.publication{display:grid;grid-template-columns:1fr;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px var(--tg-rule);transition:box-shadow .25s}
.publication:hover{box-shadow:0 18px 40px -26px rgba(7,19,31,.45),0 0 0 1px #b8d2ee}
.publication.hasCover{grid-template-columns:minmax(220px,340px) 1fr}
.publicationMedia{background:var(--tg-navy)}.publicationMedia img{display:block;width:100%;height:100%;min-height:200px;object-fit:cover}
.publicationContent{padding:clamp(20px,2.4vw,32px)}
.pubHeading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.pubHeading h2{font-size:clamp(21px,1.9vw,28px)}
.pubDate{display:block;margin-top:6px;font-size:14px;font-weight:700;color:var(--tg-blue-d)}
.pubBody{color:#2b4157;margin-bottom:14px;max-width:52em}
.sourceBtn{flex:none;padding:9px 16px;border-radius:30px;border:1px solid var(--tg-rule);font-weight:700;font-size:14px;color:var(--tg-blue-d);white-space:nowrap}.sourceBtn:hover{border-color:var(--tg-blue)}
.attachments{display:grid;gap:10px}
.attachment{display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:12px;background:var(--tg-paper);box-shadow:0 0 0 1px var(--tg-rule);color:var(--tg-text);transition:background .2s,box-shadow .2s}
main a.attachment{color:var(--tg-text)}
.attachment:hover{background:#eaf3fd;box-shadow:0 0 0 1px var(--tg-blue)}
.attachment>span:nth-child(2){flex:1;min-width:0}
.attachment strong{display:block;font-weight:700;overflow-wrap:anywhere;line-height:1.35}.attachment small{color:var(--tg-muted);font-size:13.5px}
.attachment b{flex:none;color:var(--tg-blue-d);font-size:15px;white-space:nowrap}
.fileIcon{flex:none;width:50px;height:50px;border-radius:12px;display:grid;place-items:center;background:var(--tg-ink);color:#fff;font-size:12px;font-weight:800;letter-spacing:.04em}
.emptyState{padding:44px 28px;text-align:center;border-radius:16px;background:var(--tg-paper);box-shadow:0 0 0 1px var(--tg-rule);color:var(--tg-muted)}
.emptyState strong{display:block;font-size:20px;color:var(--tg-ink);margin-bottom:8px}.emptyState.compact{padding:24px}.emptyState .btn{margin-top:14px}

/* documents list */
.documentCollections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.documentCollection{display:flex;align-items:center;gap:20px;padding:22px 24px;border-radius:16px;background:var(--tg-paper);box-shadow:0 0 0 1px var(--tg-rule);color:var(--tg-text);transition:transform .25s var(--tg-ease),box-shadow .25s,background .25s}
main a.documentCollection{color:var(--tg-text)}
.documentCollection:hover{transform:translateY(-3px);background:#fff;box-shadow:0 18px 40px -26px rgba(7,19,31,.5),0 0 0 1px var(--tg-blue)}
.collectionIcon{flex:none;width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:24px;background:#e6f1fd;color:var(--tg-blue-d)}
.collectionText{flex:1;min-width:0}.collectionText h2{font-size:19px;line-height:1.3;letter-spacing:-.01em}.collectionText p{margin:6px 0 0;color:var(--tg-muted);font-size:15px}
.collectionMeta{display:flex;gap:10px;margin-bottom:6px;font-size:13px;font-weight:700;color:var(--tg-blue-d);text-transform:uppercase;letter-spacing:.06em}
.documentCollection>b{flex:none;color:var(--tg-blue-d);font-size:15px}
.documentPage,.documentDetail{padding:clamp(22px,3vw,40px);border-radius:20px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule)}
.documentPageHead,.documentDetailHead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}
.documentPageHead h2,.documentDetailHead h2{font-size:28px}.documentPageHead p{margin:4px 0 0;color:var(--tg-muted)}
.documentDetailHead span{font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--tg-blue-d)}
.documentDetailHead strong{display:grid;place-items:center;min-width:48px;height:48px;border-radius:50%;background:var(--tg-ink);color:#fff;font-size:18px}
.documentDetailGrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}

/* disclosure */
.disclosureStack{display:grid;gap:24px}
.disclosureGroup{padding:clamp(22px,3vw,44px);border-radius:20px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule)}
.disclosureGroup .eyebrow{margin:0 0 10px}
.disclosureGroupHead{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:14px}
.disclosureGroupHead h2{font-size:clamp(26px,2.6vw,38px)}
.groupCount{flex:none;padding:8px 16px;border-radius:30px;background:#e6f1fd;color:var(--tg-blue-d);font-weight:700;font-size:14px;white-space:nowrap}
.disclosureGroup .sectionLead{margin-bottom:22px}
.tgsMainOrders{display:grid;gap:10px}
.tgsMainOrder,.tgsMainOrderDetails{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 20px;border-radius:12px;background:var(--tg-paper);box-shadow:0 0 0 1px var(--tg-rule);color:var(--tg-text);transition:background .2s,box-shadow .2s}
main a.tgsMainOrder{color:var(--tg-text)}
.tgsMainOrder:hover{background:#eaf3fd;box-shadow:0 0 0 1px var(--tg-blue)}
.tgsOrderName{font-weight:600;line-height:1.4}.tgsOrderAction{flex:none;font-weight:800;color:var(--tg-blue-d);font-size:14px}
.tgsMainOrderDetails{display:block;padding:0}
.tgsMainOrderDetails>summary,.tgsArchiveToggle,.tgsArchiveYear>summary{cursor:pointer;list-style:none}
.tgsMainOrderDetails>summary::-webkit-details-marker,.tgsArchiveToggle::-webkit-details-marker,.tgsArchiveYear>summary::-webkit-details-marker{display:none}
.tgsMainOrderDetails>summary{padding:16px 20px;font-weight:600}
.tgsMainOrderDetails .tgsArchiveFiles{padding:0 20px 16px}
.tgsArchive{margin-top:18px;border-radius:14px;border:1px dashed #b4c7db}
.tgsArchiveToggle{display:flex;justify-content:space-between;gap:16px;padding:18px 22px;font-weight:700;color:var(--tg-ink)}.tgsArchiveToggle span:last-child{color:var(--tg-blue-d);font-size:15px}
.tgsArchiveContent{display:grid;gap:8px;padding:0 14px 14px}
.tgsArchiveYear{border-radius:12px;background:var(--tg-paper);box-shadow:0 0 0 1px var(--tg-rule)}
.tgsArchiveYear>summary{display:flex;justify-content:space-between;padding:14px 18px}.tgsArchiveYear>summary span{color:var(--tg-blue-d);font-size:14px;font-weight:700}
.tgsArchiveItems{display:grid;gap:0;padding:0 18px 8px}
.tgsArchiveItem{padding:14px 0;border-top:1px solid var(--tg-rule);display:grid;gap:8px}
.tgsArchiveFiles{display:flex;flex-wrap:wrap;gap:8px}
.tgsArchiveFiles a{padding:7px 14px;border-radius:30px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule);font-size:14.5px;font-weight:600;color:var(--tg-blue-d)}.tgsArchiveFiles a:hover{box-shadow:0 0 0 1px var(--tg-blue)}
.fasYears{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.fasYear{display:flex;flex-direction:column;gap:6px;padding:24px;border-radius:16px;background:var(--tg-paper);box-shadow:0 0 0 1px var(--tg-rule);transition:transform .25s var(--tg-ease),background .25s,box-shadow .25s}
.fasYear:hover{transform:translateY(-4px);background:#fff;box-shadow:0 18px 40px -26px rgba(7,19,31,.5),0 0 0 1px var(--tg-blue)}
.fasYear strong{font-size:38px;letter-spacing:-.04em;color:var(--tg-ink)}.fasYear span{color:var(--tg-muted);font-size:15px}.fasYear b{color:var(--tg-blue-d);font-size:15px;margin-top:6px}
.yearApplications{display:grid;gap:12px}
.applicationCard{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;border-radius:16px;background:#fff;box-shadow:0 0 0 1px var(--tg-rule);transition:transform .25s var(--tg-ease),box-shadow .25s}
main a.applicationCard{color:var(--tg-text)}
.applicationCard:hover{transform:translateX(5px);box-shadow:0 0 0 1px var(--tg-blue)}
.applicationCard h2{font-size:22px}.applicationCard p{margin:6px 0;color:var(--tg-muted)}.applicationCard small{color:var(--tg-muted);font-weight:600}.applicationCard b{color:var(--tg-blue-d);white-space:nowrap}

/* responsive */
@media(max-width:1100px){.content,.documentDetailGrid{grid-template-columns:1fr}.aside{position:static;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.services,.districts{grid-template-columns:repeat(2,1fr)}.documentCollections{grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){
  body{font-size:16px}
  .services,.districts,.stats,.contactBox{grid-template-columns:1fr}
  .publication.hasCover{grid-template-columns:1fr}.publicationMedia img{min-height:0;aspect-ratio:16/9}
  .pubHeading,.documentPageHead,.disclosureGroupHead,.tgsArchiveToggle{flex-direction:column;align-items:flex-start}
  .attachment{flex-wrap:wrap}.attachment b{width:100%}
  .applicationCard{flex-direction:column;align-items:flex-start}
  .contactLine{flex-direction:column;gap:4px}
  .sectionIntro{flex-direction:column;gap:10px}
  .pageHero:after{display:none}
  table{font-size:15px}th,td{padding:12px 14px}
}
@media(min-width:1800px){body{font-size:18px}.article p,.article li{max-width:48em}.article .lead{font-size:22px}.search{min-height:60px;font-size:18px}}

/* overflow safety: grids never size to min-content */
.disclosureStack,.yearApplications,.pubList,.attachments,.tgsMainOrders,.docTools,.tgsArchiveContent,.tgsArchiveItems,.aside{grid-template-columns:minmax(0,1fr)}
.collectionText h2,.pubHeading h2,.tgsOrderName,.applicationCard h2,.pageHero h1,.article h2{overflow-wrap:anywhere}
.disclosureGroup,.docsPanel,.publication,.article,.documentPage,.documentDetail{min-width:0}
@media(max-width:1100px){.aside{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}}
@media(max-width:720px){.documentCollection{flex-wrap:wrap;gap:14px}.documentCollection>b{width:100%}.tgsMainOrder{flex-direction:column;align-items:flex-start;gap:8px}}
