/* Detailed corporate pages and shared gallery components. */
.page-intro{position:relative;background:var(--ice);border-bottom:1px solid var(--line);padding:35px 0 64px;overflow:hidden}
.page-intro::after{content:"";position:absolute;right:-70px;top:-160px;width:630px;height:630px;border:1px solid #bfd5e2;border-radius:50%;box-shadow:0 0 0 60px #d5e5ef33,0 0 0 120px #d5e5ef22;pointer-events:none}
.breadcrumbs{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:9px;align-items:center;font-size:12px;color:var(--muted);margin:0 0 44px}
.breadcrumbs a:hover{color:var(--blue)}.breadcrumbs span[aria-current]{color:var(--ink)}
.page-intro .eyebrow{position:relative;z-index:1;margin-bottom:20px}.page-intro h1{position:relative;z-index:1;font-size:clamp(36px,4.4vw,65px);font-weight:500;line-height:1.12;letter-spacing:-.045em;max-width:1000px;margin:0 0 22px}
.page-intro p.intro-text{position:relative;z-index:1;font-size:17px;line-height:1.85;max-width:810px;color:var(--muted);margin:0}
.page-content{padding:76px 0 90px}.section-lead{font-size:17px;line-height:1.85;color:var(--muted);max-width:800px;margin:25px 0 40px}
.page-cta{background:var(--navy);color:#fff;padding:48px 0}.page-cta .container{display:flex;align-items:center;justify-content:space-between;gap:35px}.page-cta h2{font-size:32px;max-width:700px}.page-cta p{font-size:15px;color:#c8dbe8;line-height:1.7;margin:15px 0 0}.page-cta .button{flex:none}
.category-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 35px}.category-tabs a{font-size:13px;padding:12px 17px;border:1px solid var(--line);background:#fff}.category-tabs a:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.service-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.directory-card{display:flex;flex-direction:column;gap:18px;padding:35px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}
.directory-card:hover{background:var(--ice)}.directory-card h2{font-size:29px;line-height:1.2;letter-spacing:-.035em}.directory-card p{font-size:15px;line-height:1.85;color:var(--muted);margin:0}.directory-number{font-size:12px;color:var(--blue);letter-spacing:.12em;font-weight:bold}.directory-card ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.directory-card li{font-size:12px;color:var(--muted);border:1px solid var(--line);padding:7px 9px}.directory-card .text-link{align-self:flex-start;margin-top:auto;font-size:14px}
.detail-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:65px;align-items:start}.service-sidebar{position:sticky;top:155px}.sidebar-title{font-size:11px;letter-spacing:.16em;color:var(--muted);margin:0 0 15px}.service-sidebar nav{border-top:1px solid var(--line)}.service-sidebar nav a{display:block;padding:15px 12px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5}.service-sidebar nav a:hover,.service-sidebar a[aria-current=page]{background:var(--ice);color:var(--blue)}.service-sidebar a[aria-current=page]{border-left:3px solid var(--cyan);font-weight:bold}.sidebar-contact{background:var(--navy);color:#fff;padding:25px 22px;margin-top:25px}.sidebar-contact h3{font-size:20px;line-height:1.4;margin:0 0 15px;font-weight:500}.sidebar-contact p{font-size:13px;line-height:1.75;color:#c4d9e7;margin:0 0 15px}.sidebar-contact a{font-size:13px;border-bottom:1px solid #82a8c0;padding-bottom:4px;overflow-wrap:anywhere}
.detail-section{margin:0 0 55px;scroll-margin-top:160px}.detail-section>h2{font-size:34px;margin-bottom:26px}.detail-section>p{font-size:16px;color:var(--muted);line-height:1.9}.section-index{font-size:12px;letter-spacing:.12em;color:var(--blue);margin-bottom:15px;display:block}
.scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.scope-item{border-top:2px solid var(--cyan);padding:22px 0}.scope-item h3{font-size:20px;line-height:1.4;margin:0 0 12px;font-weight:500}.scope-item p{font-size:15px;line-height:1.85;color:var(--muted);margin:0}
.deliverables{border-top:1px solid var(--line)}.deliverables details{border-bottom:1px solid var(--line)}.deliverables summary{padding:20px 40px 20px 0;cursor:pointer;position:relative;font-size:17px;line-height:1.55;font-weight:500;list-style:none}.deliverables summary::-webkit-details-marker{display:none}.deliverables summary::after{content:"+";position:absolute;right:5px;top:18px;color:var(--blue);font-size:24px;font-weight:400}.deliverables details[open] summary::after{content:"−"}.deliverables details p{margin:0;padding:0 28px 24px 0;font-size:15px;line-height:1.9;color:var(--muted)}.details-actions{display:flex;justify-content:flex-end;margin-bottom:14px}.quiet-button{background:none;border:0;border-bottom:1px solid var(--line);padding:8px 0;color:var(--blue);font-size:13px;cursor:pointer}
.workflow-list{list-style:none;padding:0;margin:0;counter-reset:steps}.workflow-list li{counter-increment:steps;display:grid;grid-template-columns:42px 1fr;gap:18px;border-top:1px solid var(--line);padding:24px 0}.workflow-list li::before{content:counter(steps,decimal-leading-zero);font-size:12px;color:var(--blue);padding-top:5px}.workflow-list h3{font-size:20px;margin:0 0 10px;font-weight:500}.workflow-list p{font-size:15px;color:var(--muted);line-height:1.85;margin:0}
.related-services{background:var(--ice);padding:40px;margin-top:45px}.related-services h2{font-size:25px;margin-bottom:20px}.related-services ul{list-style:none;padding:0;margin:0;display:flex;gap:12px;flex-wrap:wrap}.related-services a{display:block;border-bottom:1px solid #b2c9d9;padding-bottom:8px;font-size:14px}
.about-story{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start}.about-story h2{font-size:42px;margin-bottom:25px}.about-story p{font-size:16px;line-height:1.95;color:var(--muted)}.story-visual{background:var(--navy);margin:0}.story-visual img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}.story-visual figcaption{font-size:12px;color:#c2d8e8;padding:18px 25px;line-height:1.8}
.history-panel{background:var(--ice);padding:45px;margin:60px 0}.history-panel .eyebrow{margin-bottom:18px}.history-panel h2{font-size:32px;margin-bottom:22px}.history-panel>p{font-size:16px;line-height:1.9;color:var(--muted);max-width:950px}.history-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;margin-top:28px}.history-facts div{border-top:1px solid #b8d0df;padding-top:20px}.history-facts strong{font-size:34px;font-weight:500;display:block;margin-bottom:8px}.history-facts span{font-size:13px;color:var(--muted);line-height:1.7;display:block}
.principles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.principle{border-top:2px solid var(--cyan);padding:25px 0}.principle h3{font-size:24px;font-weight:500;margin:0 0 15px}.principle p{font-size:15px;color:var(--muted);line-height:1.85;margin:0}
.technology-lead{display:grid;grid-template-columns:1.05fr 1fr;gap:65px;align-items:center}.technology-lead h2{font-size:43px;line-height:1.2;margin-bottom:25px}.technology-lead p{font-size:16px;line-height:1.95;color:var(--muted)}.technology-lead img{width:100%;height:auto}.technical-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:55px 0}.technical-flow article{padding:25px 22px;background:var(--ice);border-top:2px solid var(--cyan)}.technical-flow .step{font-size:12px;color:var(--blue)}.technical-flow h3{font-weight:500;font-size:21px;margin:22px 0 15px}.technical-flow p{font-size:14px;line-height:1.85;color:var(--muted);margin:0}
.capability-table{width:100%;border-collapse:collapse;margin:30px 0 55px}.capability-table th,.capability-table td{font-size:15px;padding:20px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.8}.capability-table th{font-weight:500;color:var(--ink);width:32%;background:var(--ice)}.capability-table td{color:var(--muted)}
.project-table-scroll{overflow-x:auto;border:1px solid var(--line)}.project-table{width:100%;border-collapse:collapse;text-align:left;min-width:660px}.project-table th{background:var(--ice);font-size:12px;text-transform:uppercase;letter-spacing:.07em;padding:18px 22px;border-bottom:1px solid var(--line)}.project-table td{padding:22px;vertical-align:top;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}.project-table tr:last-child td{border-bottom:0}.project-table h3{font-size:16px;font-weight:500;margin:0 0 8px;line-height:1.6}.project-table .row-category{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--blue)}.project-table .client-cell{width:28%;color:var(--muted)}.project-table .measure-cell{width:15%;white-space:nowrap}.project-table #project-grid{display:table-row-group}.project-table .empty-state{border:0;margin:0}.archive-summary{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 30px}.archive-summary span{font-size:13px;line-height:1.6;border-left:2px solid var(--cyan);padding:5px 15px}.project-archive-page .archive-toolbar{margin-top:30px}.project-archive-page .archive-status{font-size:13px}
.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 30px;flex-wrap:wrap}.gallery-filters{display:flex;gap:8px;flex-wrap:wrap}.gallery-filters button{font-size:13px;padding:11px 17px;border:1px solid var(--line);background:#fff}.gallery-filters button[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy)}.gallery-count{font-size:13px;color:var(--muted);margin:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.gallery-card{margin:0}.gallery-open{display:block;border:0;padding:0;background:var(--ice);width:100%;position:relative;overflow:hidden}.gallery-open img{width:100%;height:290px;object-fit:cover;transition:transform .35s}.gallery-open:hover img{transform:scale(1.035)}.gallery-open::after{content:"↗";position:absolute;bottom:15px;right:15px;background:white;color:var(--navy);width:37px;height:37px;display:grid;place-items:center;font-size:19px}.gallery-card figcaption{font-size:15px;line-height:1.65;padding:16px 0;color:var(--ink)}.home-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.home-gallery-grid .gallery-open img{height:260px}.home-gallery-grid figcaption{font-size:13px}
.gallery-dialog{padding:0;border:0;background:#041e39;color:#fff;width:min(1200px,calc(100% - 40px));max-width:1200px;max-height:94svh;overflow:auto}.gallery-dialog::backdrop{background:#020e1be8}.gallery-dialog .lightbox-image{display:block;width:100%;height:min(75svh,800px);object-fit:contain;background:#04172b}.lightbox-bar{padding:20px 25px;display:flex;justify-content:space-between;align-items:center;gap:25px}.lightbox-caption{margin:0;line-height:1.6;font-size:14px}.lightbox-controls{display:flex;gap:10px;flex:none}.lightbox-controls button,.lightbox-close{border:1px solid #7391a8;background:var(--navy);color:white;min-width:40px;height:40px;font-size:20px}.lightbox-close{position:absolute;right:15px;top:15px;background:#041e39d9;z-index:1}.lightbox-counter{font-size:12px;color:#bfd7e7;margin-top:8px}
.contact-page-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px}.contact-channel{border-top:1px solid var(--line);padding:26px 0}.contact-channel small{display:block;font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:13px}.contact-channel a,.contact-channel>span{font-size:clamp(20px,2.3vw,29px);line-height:1.5;overflow-wrap:anywhere}.contact-channel p{font-size:14px;line-height:1.8;color:var(--muted);margin:12px 0 0}.brief-panel{padding:40px;background:var(--ice);border-top:3px solid var(--cyan)}.brief-panel h2{font-size:32px;margin-bottom:18px}.brief-panel>p{font-size:15px;line-height:1.85;color:var(--muted);margin:0 0 30px}.brief-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px}.brief-field{display:flex;flex-direction:column;gap:10px}.brief-field.wide{grid-column:1/-1}.brief-field label{font-size:14px;line-height:1.6}.brief-field input,.brief-field select,.brief-field textarea{font-family:inherit;font-size:15px;padding:13px;border:1px solid #bbcedb;background:#fff;color:var(--ink);border-radius:0;max-width:100%;width:100%;min-height:48px}.brief-field textarea{min-height:160px;resize:vertical}.brief-field .optional{color:var(--muted);font-size:12px}.brief-panel form>.button{margin-top:25px}.brief-preview{margin-top:30px;padding-top:25px;border-top:1px solid #b9d0df}.brief-preview h3{font-size:20px;font-weight:500;margin:0 0 20px}.brief-preview textarea{width:100%;min-height:260px;resize:vertical;padding:16px;font-family:inherit;font-size:14px;line-height:1.8;color:var(--ink);border:1px solid #b9d0df;background:#fff}.brief-actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:20px}.brief-status{font-size:14px;line-height:1.8;color:var(--muted);margin-top:15px}
.desktop-nav a[aria-current=page]{color:var(--blue)}.desktop-nav a[aria-current=page]::after{right:0}
@media(max-width:1100px){.detail-layout{grid-template-columns:220px minmax(0,1fr);gap:35px}.gallery-open img{height:240px}.home-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.technology-lead{gap:35px}.contact-page-layout{gap:40px}.brief-panel{padding:30px}.technical-flow{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.page-content{padding:50px 0 65px}.page-intro{padding:25px 0 45px}.breadcrumbs{font-size:11px;margin-bottom:30px}.page-intro p.intro-text{font-size:15px}.page-intro::after{right:-400px}.detail-layout{display:block}.service-sidebar{position:static;margin-bottom:40px}.service-sidebar nav{display:flex;gap:8px;overflow-x:auto;padding:10px 0}.service-sidebar nav a{flex:0 0 175px;border:1px solid var(--line);font-size:12px;padding:12px}.sidebar-contact{display:none}.scope-grid{gap:20px}.about-story{gap:35px}.about-story h2{font-size:35px}.history-facts{grid-template-columns:repeat(2,1fr)}.principles-grid{grid-template-columns:1fr;gap:15px}.technology-lead{grid-template-columns:1fr}.technology-lead img{max-width:500px;justify-self:center}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-page-layout{grid-template-columns:1fr;gap:35px}.page-cta .container{flex-direction:column;align-items:flex-start}.page-cta h2{font-size:29px}.service-directory .directory-card{padding:26px}.directory-card h2{font-size:25px}.directory-card p{font-size:14px}}
@media(max-width:550px){.page-intro h1{font-size:36px}.page-intro p.intro-text{font-size:15px;line-height:1.8}.service-directory{grid-template-columns:1fr}.scope-grid{grid-template-columns:1fr;gap:6px}.detail-section>h2{font-size:28px}.detail-section{margin-bottom:40px}.deliverables summary{font-size:16px}.deliverables details p{font-size:14px}.related-services{padding:25px}.about-story{display:flex;flex-direction:column}.about-story h2{font-size:33px}.about-story p{font-size:15px}.history-panel{padding:28px;margin:40px 0}.history-panel h2{font-size:28px}.history-panel>p{font-size:14px}.history-facts{gap:22px}.history-facts strong{font-size:28px}.history-facts span{font-size:12px}.technology-lead h2{font-size:33px}.technical-flow{grid-template-columns:1fr 1fr;gap:12px}.technical-flow article{padding:22px 16px}.technical-flow h3{font-size:18px}.technical-flow p{font-size:13px}.capability-table th,.capability-table td{font-size:13px;padding:15px 10px}.gallery-grid{gap:18px}.gallery-open img,.home-gallery-grid .gallery-open img{height:190px}.gallery-card figcaption,.home-gallery-grid figcaption{font-size:12px;padding-top:12px}.gallery-filters button{font-size:12px;padding:10px 12px}.gallery-dialog{width:calc(100% - 18px);max-height:96svh}.lightbox-bar{padding:15px;gap:12px;align-items:flex-start}.lightbox-caption{font-size:12px}.lightbox-controls{gap:5px}.lightbox-controls button{min-width:34px;height:34px}.brief-panel{padding:26px 20px}.brief-panel h2{font-size:27px}.brief-fields{grid-template-columns:1fr;gap:20px}.brief-field.wide{grid-column:auto}.brief-actions{gap:12px}.brief-actions .button{font-size:12px;min-height:48px;padding:13px 16px}.section-lead{font-size:15px}.project-table td{padding:18px}.archive-summary{gap:12px}.archive-summary span{font-size:12px;padding:3px 10px}.page-cta{padding:35px 0}}
@media(prefers-reduced-motion:reduce){.gallery-open img{transition:none}}
@media print{.site-header,.mobile-nav,.site-footer,.page-cta,.service-sidebar,.breadcrumbs,.details-actions,.quiet-button{display:none!important}.page-intro{padding:0 0 25px;background:white}.page-intro::after{display:none}.page-intro h1{font-size:29px}.page-content{padding:25px 0}.detail-layout{display:block}.container{padding:0!important}.detail-section{break-inside:avoid}.deliverables details{break-inside:avoid}.deliverables details p{display:block!important}.scope-grid{grid-template-columns:1fr 1fr}body{font-size:11pt;color:#000}.detail-section>h2{font-size:21px}a{color:inherit}}

.project-table tr:target{background:#eaf6fb;outline:2px solid var(--cyan);outline-offset:-2px}

/* Let controls and scrollable archives shrink inside narrow layout tracks. */
.contact-page-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.contact-page-layout>*,.brief-field,.brief-fields,.project-table-scroll{min-width:0}
.brief-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.brief-field :is(input,select,textarea){min-width:0}
.project-table-scroll{max-width:100%;overscroll-behavior-x:contain}
@media(max-width:1100px){.brief-fields{grid-template-columns:1fr}}
@media(max-width:800px){.contact-page-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){
 .search-field input{font-size:16px;min-height:48px}
 .gallery-filters button,.filter-button,.quiet-button{min-height:44px}
 .lightbox-controls button,.lightbox-close{min-width:44px;height:44px}
 .lightbox-bar{flex-wrap:wrap}
 .lightbox-controls{margin-left:auto}
}
@media(max-width:550px){
 .capability-table,.capability-table tbody,.capability-table tr,.capability-table th,.capability-table td{display:block;width:100%}
 .capability-table th{padding-bottom:10px;border-bottom:0}
 .capability-table td{padding-top:10px}
}
@media(max-width:390px){
 .gallery-grid{grid-template-columns:minmax(0,1fr)}
 .gallery-open img,.home-gallery-grid .gallery-open img{height:240px}
}
