/* Final shared type scale for both languages. Loaded after legacy page styles. */
:root{--type-title:36px;--type-section:24px;--type-subheading:20px;--type-body:15px;--type-small:12px}
body{font-size:var(--type-body);line-height:1.8}
h1,h2,h3{font-family:var(--sans);font-weight:400;letter-spacing:-.015em}
.home-intro h1,.page-intro h1,.project-intro h1,.portfolio-heading h1,.article-title h1{font-size:var(--type-title);line-height:1.4;font-weight:400;letter-spacing:-.02em;margin:16px 0 20px}
.home-intro h1{font-size:34px}
.article-title h1{font-size:32px;max-width:950px}
h2,.section-heading h2,.studio-strip h2,.service-detail h2,.studio-story h2,.project-copy h2,.original-story h2,.reading h2,.faq h2,.contact-band h2{font-size:var(--type-section);line-height:1.5;font-weight:400}
h3,.service-list h3,.process h3,.values h3,.journal-grid h3,.journal-card h2,.reading h3,.original-story h3,#contact-result h3{font-size:var(--type-subheading);line-height:1.5;font-weight:400}
.card-line h3,.portfolio-page .card-line h3,.portfolio-page .project-card:nth-child(6n+1) .card-line h3{font-size:20px;line-height:1.45}
.eyebrow,.home-intro .eyebrow,.page-intro .eyebrow,.project-intro .eyebrow,.card-line .eyebrow,.portfolio-page .card-line .eyebrow,.journal-grid span{font-size:11px;line-height:1.7;letter-spacing:.08em}
.header nav>a{font-size:12px;letter-spacing:.045em}
.language-switch{font-size:11px}
.page-intro>p,.project-intro>p,.intro-bottom p,.studio-strip p,.service-detail>div>p,.service-detail li,.studio-story p,.values p,.project-copy p,.process p,.section-heading>p,.service-list p{font-size:var(--type-body);line-height:1.85}
.reading{font-size:16px;line-height:1.9}
.project-copy .lead,.reading blockquote{font-size:18px;line-height:1.85}
.service-detail h3{font-size:14px;font-weight:500}
.text-link,.button,.text-button,.faq summary{font-size:14px;line-height:1.6}
.breadcrumb,.project-facts dt,.project-facts dd,.partner-credits dt,.partner-credits dd,.partner-credits details,.partner-credits p,.credit-context{font-size:13px;line-height:1.8}
.partner-credits h2{font-size:14px;letter-spacing:.04em}
.fine,.project-copy .fine{font-size:12px!important;line-height:1.85}
.review-note summary,.review-note p,.review-note li,.project-copy .review-note p,.original-story figcaption,.reading figcaption,.gallery-item span{font-size:12px;line-height:1.85}
.portfolio-page .filterbar button,.filterbar button,.search-label,.result-count,.portfolio-page .result-count,#light-toggle,.toggle-state{font-size:12px;line-height:1.6}
.search-label input{font-size:14px}
.portfolio-page .filterbar{gap:20px}
.photo-caption,.footer-bottom,.footer-top>a:last-child,.journal-grid b{font-size:12px;line-height:1.7}
.reading table{font-size:14px;line-height:1.7}
.page-intro{padding-top:38px;padding-bottom:36px}
.contact-layout{padding-top:48px;padding-bottom:56px;gap:8%}
.contact-phone{font-size:26px;font-weight:400;line-height:1.5;letter-spacing:0;margin:20px 0 22px}
.contact-layout>div>p{font-size:14px;line-height:1.85;margin-top:26px}
form label{font-size:13px;line-height:1.7;gap:8px;margin-bottom:24px}
form input,form select,form textarea{font-size:15px;line-height:1.7;padding:12px 0}
form input::placeholder,form textarea::placeholder{color:#a4a299;opacity:1}
form .button{font-size:14px}
@media(min-width:701px) and (max-width:1100px){.header nav>a{font-size:11px}.header nav{gap:13px}}
@media(min-width:701px) and (max-width:850px){.header nav>a{font-size:10px}.header nav{gap:9px}}
@media(max-width:700px){
 :root{--type-title:30px;--type-section:22px;--type-subheading:19px}
 .home-intro h1{font-size:28px}.article-title h1{font-size:28px}
 .header nav>a{font-size:13px;letter-spacing:.06em}.language-switch{font-size:12px}
 .page-intro{padding-top:30px;padding-bottom:30px}
 .project-intro>p,.page-intro>p,.intro-bottom p{font-size:14px}
 .reading{font-size:15px}
 .card-line h3,.portfolio-page .card-line h3,.portfolio-page .project-card:nth-child(6n+1) .card-line h3{font-size:18px}
 .portfolio-page .card-line .eyebrow{font-size:10px}
 .contact-layout{padding-top:34px;gap:34px}.contact-phone{font-size:24px;margin:16px 0 20px}
 form input,form select,form textarea{font-size:16px}
 .footer-bottom{font-size:12px}.footer-top>a:last-child{font-size:12px}
 .section-heading{gap:20px;flex-wrap:wrap}
}

/* Home headline stays on one line in both languages. */
.home-intro h1{white-space:nowrap;text-wrap:nowrap;font-size:clamp(17px,5vw,34px)}

/* Compact project index heading and controls. */
.portfolio-heading{padding-top:24px;padding-bottom:18px;align-items:center;gap:18px}
.portfolio-heading h1{font-size:30px;line-height:1.25;margin:0;letter-spacing:-.015em}
.portfolio-heading-right{align-self:center}
.portfolio-page .filterbar{padding-bottom:12px;gap:10px 20px}
.portfolio-page .filterbar button{line-height:1.5;padding:6px 0}
.portfolio-page .result-count{margin-top:10px;margin-bottom:16px;line-height:1.5}
@media(max-width:700px){
 .portfolio-heading{padding-top:20px;padding-bottom:14px;gap:14px}
 .portfolio-heading h1{font-size:28px;line-height:1.25;margin:0}
 .portfolio-page .filterbar{gap:6px 18px;padding-bottom:10px}
 .portfolio-page .search-label{margin-top:2px}
 .portfolio-page .result-count{margin-top:10px;margin-bottom:12px}
}

.studio-activities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px}
.activity-card{display:block;min-width:0;border-top:1px solid var(--line);padding-top:16px}
.activity-card img{width:100%;aspect-ratio:1.5;object-fit:cover;margin-bottom:14px}
.activity-card h3{font-size:19px;line-height:1.5;margin:10px 0 16px}
.activity-card .text-link{font-size:12px}
@media(max-width:900px){.studio-activities{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:550px){.studio-activities{grid-template-columns:1fr;gap:24px}.activity-card h3{font-size:18px}}

/* Research article thumbnails and compact archive cards. */
.research-grid{gap:30px 24px;align-items:start}
.research-grid>a.journal-card{display:flex;flex-direction:column;min-height:0;padding:16px 0 20px}
.research-grid .research-thumbnail{display:block;width:100%;aspect-ratio:3/2;height:auto;object-fit:cover;margin:0 0 16px}
.research-grid .journal-card h2{font-size:20px;line-height:1.5;margin:0 0 18px}
.research-grid .journal-card .text-link{align-self:flex-start;font-size:12px;letter-spacing:0}
@media(max-width:1000px){.research-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.research-grid{grid-template-columns:1fr;gap:24px}.research-grid .journal-card h2{font-size:19px}.research-grid>a.journal-card{padding-top:14px;padding-bottom:12px}}

/* Tighter reading rhythm and section spacing, shared by VI and EN. */
body{line-height:1.6}
p,.page-intro>p,.project-intro>p,.intro-bottom p,.studio-strip p,.service-detail>div>p,.service-detail li,.studio-story p,.values p,.project-copy p,.process p,.section-heading>p,.service-list p,.contact-layout>div>p{line-height:1.6;margin-bottom:12px}
.reading{line-height:1.7}.reading p,.reading li{line-height:1.7}
.fine,.project-copy .fine,.review-note summary,.review-note p,.review-note li,.project-copy .review-note p,.original-story figcaption,.reading figcaption,.gallery-item span{line-height:1.6}
.project-copy .lead,.reading blockquote{line-height:1.65}
h2,.section-heading h2,.studio-strip h2,.service-detail h2,.studio-story h2,.project-copy h2,.original-story h2,.reading h2,.faq h2,.contact-band h2{line-height:1.35;margin-top:0;margin-bottom:14px}
h3,.service-list h3,.process h3,.values h3,.journal-grid h3,.journal-card h2,.reading h3,.original-story h3,#contact-result h3{line-height:1.4}
.section{padding-top:40px;padding-bottom:40px}
.section-heading{margin-bottom:22px}
.section-heading h2{margin-bottom:0}
.studio-story p{margin:0 0 10px}.studio-story p:last-child{margin-bottom:0}
.studio-story h2{margin-bottom:16px}
.values{margin-top:22px;gap:36px}
.values h3{margin:0 0 10px}.values p{margin:0;line-height:1.6}
.studio-strip{padding-top:32px;padding-bottom:32px}
.project-copy section{margin-bottom:32px}
.process{margin-top:26px;margin-bottom:40px}
.process h3{margin-top:12px;margin-bottom:8px}
.reading h2{margin-top:32px;margin-bottom:14px}
.reading h3{margin-top:24px;margin-bottom:12px}
.partner-credits dt,.partner-credits dd,.project-facts dt,.project-facts dd,.credit-context{line-height:1.6}
@media(max-width:700px){
 .section{padding-top:28px;padding-bottom:28px}
 .studio-story>.eyebrow{margin-bottom:16px}
 .values{margin-top:18px;gap:20px}
 .section-heading{gap:14px;margin-bottom:18px}
 .project-copy section{margin-bottom:26px}
}

/* QD VILLAR image-led project page. */
.qd-intro{padding-top:24px;padding-bottom:24px}.qd-intro .breadcrumb{margin-bottom:18px}.qd-intro h1{margin-bottom:0;font-size:32px}
.qd-cover{margin:0 2%}.qd-cover img{width:100%;height:auto}.qd-cover figcaption{font-size:11px;color:var(--muted);padding:8px 0}
.qd-credits{margin-top:20px;padding:20px 0}.qd-credits dl{gap:60px;flex-wrap:wrap}.qd-credits dd{color:var(--ink);font-size:14px}
.qd-overview{margin:0 4.5%;padding:28px 0;display:grid;grid-template-columns:1.2fr 1fr;gap:8%}.qd-overview h2{font-size:19px;line-height:1.4;margin:0 0 12px}.qd-overview p{font-size:14px;line-height:1.6;margin:0 0 10px;max-width:660px}.qd-pending{font-size:12px;color:var(--muted)}.qd-pending summary{cursor:pointer}.qd-pending p{font-size:12px;margin-top:10px}
.qd-gallery-section{padding:0 2% 36px}.qd-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.qd-gallery-item{padding:0;margin:0;min-width:0;background:transparent;border:0;display:block;width:100%}.qd-gallery .qd-gallery-item img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}.qd-gallery .qd-wide{grid-column:1/-1}
@media(max-width:700px){.qd-intro h1{font-size:28px}.qd-credits dl{grid-template-columns:1fr 1fr;gap:18px}.qd-overview{grid-template-columns:1fr;gap:18px;padding:24px 0}.qd-gallery{gap:8px}.qd-gallery-section{padding-bottom:24px}}
@media(max-width:450px){.qd-gallery{grid-template-columns:1fr}.qd-gallery .qd-wide{grid-column:auto}}

/* Gallery navigation */
#lightbox{position:fixed;overflow:hidden;padding:50px 60px 20px;background:#0a0a0a;color:#d8d4cb;width:96vw;max-width:1500px;max-height:96dvh;border:1px solid #333}
#lightbox img{max-height:calc(96dvh - 130px);width:auto;max-width:100%;object-fit:contain;margin:auto;touch-action:pan-y pinch-zoom;user-select:none}
#lightbox p{padding-right:65px;font-size:12px;margin:12px 0 0;line-height:1.5}
.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:52px;border:1px solid #555;background:#0a0a0abf;color:#d8d4cb;font:32px/1 Arial;z-index:2}
.lightbox-prev{left:7px}.lightbox-next{right:7px}.lightbox-counter{position:absolute;right:20px;bottom:22px;font-size:11px;font-variant-numeric:tabular-nums}
@media(max-width:650px){#lightbox{width:100vw;max-height:100dvh;padding:56px 8px 54px}#lightbox img{max-height:calc(100dvh - 180px)}.lightbox-prev,.lightbox-next{top:auto;bottom:8px;transform:none;width:44px;height:38px;font-size:26px}.lightbox-prev{left:10px}.lightbox-next{right:10px}.lightbox-counter{right:50%;transform:translateX(50%);bottom:17px}#lightbox p{padding-right:0;font-size:11px}}

.office-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;margin-top:20px}.office-grid article{border-top:1px solid var(--line);padding-top:16px}.office-grid h2{font-size:18px;margin:0 0 10px}.office-grid address{font-style:normal;font-size:13px;line-height:1.7;color:var(--muted)}@media(max-width:850px){.office-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.office-grid{grid-template-columns:1fr;gap:20px}}
