@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@400;500;600&family=Newsreader:ital,opsz,wght@1,6..72,400&display=swap');
:root { --paper:#f2f0ea; --ink:#16242b; --muted:#687177; --line:#d5d5ce; --blue:#153b4b; --accent:#c76142; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
body.admin-bar .site-header { top:32px; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
button,summary { font:inherit; }

.wp-content { min-height:65vh; padding-top:10rem; }
.wp-content article { max-width:820px; }
.wp-content h1 { font-family:"Newsreader",Georgia,serif; font-size:clamp(3rem,7vw,6rem); font-weight:400; line-height:.94; margin:0 0 2rem; }
.wp-content p,.wp-content li { color:var(--muted); font-size:1.05rem; line-height:1.75; }

@media (max-width:782px) {
  body.admin-bar .site-header { top:46px; }
}

.site-header { position:relative; z-index:20; height:94px; padding:0 clamp(24px,5vw,76px); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid var(--line); background:rgba(242,240,234,.94); }
.brand { display:inline-flex; align-items:center; gap:13px; justify-self:start; }
.brand-mark { width:42px; height:42px; border:1px solid var(--ink); display:grid; place-items:center; font-family:Georgia,serif; font-size:25px; line-height:1; }
.brand-copy { display:flex; flex-direction:column; }
.brand-copy strong { font-size:15px; letter-spacing:.03em; text-transform:uppercase; }
.brand-copy small { color:var(--muted); font-size:11px; margin-top:2px; }
.desktop-nav { display:flex; gap:clamp(22px,2.7vw,46px); font-size:13px; font-weight:500; }
.desktop-nav a { position:relative; }
.desktop-nav a::after { content:""; position:absolute; left:0; bottom:-7px; width:0; height:1px; background:var(--accent); transition:width .25s ease; }
.desktop-nav a:hover::after { width:100%; }
.header-cta { justify-self:end; color:var(--accent); text-transform:uppercase; letter-spacing:.08em; font-size:11px; font-weight:600; }
.header-cta span,.text-link span { margin-left:8px; }
.mobile-nav { display:none; }

.hero { min-height:calc(100vh - 94px); display:grid; grid-template-columns:54% 46%; border-bottom:1px solid var(--line); }
.hero-copy { padding:clamp(68px,8.5vw,130px) clamp(32px,6vw,96px) 46px clamp(24px,8vw,122px); display:flex; flex-direction:column; }
.eyebrow { margin:0 0 32px; color:var(--muted); text-transform:uppercase; letter-spacing:.16em; font-size:10px; font-weight:600; }
.eyebrow span { display:inline-block; width:27px; height:1px; background:var(--accent); margin:0 11px 3px 0; }
.eyebrow.light { color:#b9c5c9; }
.eyebrow.light span { background:#d6876f; }
h1,h2,h3,p { margin-top:0; }
h1 { font-family:"Manrope",sans-serif; font-weight:500; font-size:clamp(52px,5.25vw,86px); line-height:.99; letter-spacing:-.055em; margin-bottom:34px; }
h1 em,h2 em { font-family:"Newsreader",Georgia,serif; font-weight:400; color:var(--accent); letter-spacing:-.02em; }
.hero-intro { max-width:635px; font-size:clamp(16px,1.25vw,19px); line-height:1.72; color:#45545b; }
.hero-actions { display:flex; align-items:center; gap:36px; margin-top:26px; }
.button { min-height:52px; padding:0 22px; display:inline-flex; align-items:center; justify-content:space-between; gap:28px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.1em; transition:transform .2s ease,background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--blue); color:white; }
.button-light { border:1px solid #8ca0a7; color:white; }
.button-accent { background:var(--accent); color:white; }
.text-link { font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; border-bottom:1px solid var(--ink); padding-bottom:6px; }
.hero-proof { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; padding-top:34px; margin-top:auto; border-top:1px solid var(--line); }
.hero-proof div { display:flex; flex-direction:column; }
.hero-proof strong { font-family:"Manrope"; font-size:23px; font-weight:500; }
.hero-proof span { color:var(--muted); font-size:10px; margin-top:5px; }
.hero-image { margin:0; position:relative; min-height:680px; overflow:hidden; background:var(--blue); }
.hero-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 56%,rgba(10,28,35,.75)); pointer-events:none; }
.hero-image img { height:100%; object-fit:cover; filter:saturate(.72) contrast(1.04); transition:transform 1s ease; }
.hero-image:hover img { transform:scale(1.02); }
.hero-image figcaption { position:absolute; z-index:2; left:42px; bottom:40px; color:white; display:grid; gap:6px; }
.hero-image figcaption span { text-transform:uppercase; font-size:9px; letter-spacing:.16em; color:#d2dfe2; }
.hero-image figcaption strong { font-size:16px; font-weight:500; }
.hero-image figcaption small { font-size:9px; color:#bec8ca; }

.expertise-band { min-height:72px; background:white; display:flex; align-items:center; justify-content:center; gap:clamp(24px,5vw,74px); color:#657177; text-transform:uppercase; letter-spacing:.16em; font-size:9px; }
.expertise-band i { width:4px; height:4px; border-radius:50%; background:var(--accent); }
.section { padding:clamp(88px,9vw,142px) clamp(24px,8vw,122px); }
.section-heading { display:grid; grid-template-columns:1.6fr .7fr; gap:80px; align-items:end; margin-bottom:64px; }
.section h2 { font-family:"Manrope"; font-size:clamp(36px,4vw,62px); line-height:1.09; font-weight:500; letter-spacing:-.045em; margin-bottom:0; }
.section-heading>p { color:var(--muted); font-size:14px; line-height:1.8; max-width:430px; margin-bottom:2px; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card { min-height:315px; padding:30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; transition:background .25s ease,color .25s ease; }
.service-card:hover { background:var(--blue); color:white; }
.service-card:hover p,.service-card:hover .service-number { color:#bdcbd0; }
.service-number { color:var(--accent); font:11px "Manrope"; }
.service-card h3 { max-width:270px; margin:50px 0 15px; font:500 21px/1.25 "Manrope"; letter-spacing:-.02em; }
.service-card p { color:var(--muted); font-size:12px; line-height:1.75; max-width:315px; }
.service-card a { margin-top:auto; font-size:10px; text-transform:uppercase; letter-spacing:.1em; font-weight:600; }
.service-card a span { float:right; }

.projects { display:grid; grid-template-columns:58% 42%; min-height:720px; background:var(--blue); color:white; }
.projects-image { position:relative; overflow:hidden; }
.projects-image img { height:100%; object-fit:cover; filter:saturate(.66) contrast(1.02); }
.image-index { position:absolute; right:20px; bottom:20px; background:rgba(18,43,53,.85); padding:10px 13px; font-size:9px; letter-spacing:.15em; }
.projects-copy { padding:clamp(60px,7vw,108px) clamp(35px,5vw,82px); display:flex; flex-direction:column; }
.projects-copy h2 { font:500 clamp(36px,3.5vw,56px)/1.08 "Manrope"; letter-spacing:-.045em; }
.projects-copy>p:not(.eyebrow) { color:#bdcbd0; font-size:13px; line-height:1.85; margin:27px 0 34px; }
.projects-copy dl { margin:0 0 42px; border-top:1px solid #496570; }
.projects-copy dl div { display:grid; grid-template-columns:90px 1fr; padding:13px 0; border-bottom:1px solid #496570; font-size:10px; }
.projects-copy dt { color:#91a7af; text-transform:uppercase; letter-spacing:.1em; }
.projects-copy dd { margin:0; }
.projects-copy .button { align-self:flex-start; margin-top:auto; }

/* Casi studio in homepage */
.case-studies { background:var(--paper); }
.case-studies-heading { align-items:end; }
.case-studies-intro { max-width:430px; }
.case-studies-intro>p { margin-bottom:28px; color:var(--muted); font-size:14px; line-height:1.8; }
.case-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.case-card { min-width:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.case-card-visual { position:relative; aspect-ratio:16/8.2; padding:28px; display:flex; justify-content:space-between; align-items:flex-end; overflow:hidden; background:var(--blue); color:white; }
.case-card-visual::before { content:""; position:absolute; inset:0; opacity:.22; background-image:linear-gradient(rgba(255,255,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px); background-size:52px 52px; }
.case-card-visual img { position:absolute; inset:0; height:100%; object-fit:cover; filter:saturate(.82) contrast(1.03); transition:transform .5s ease; }
.case-card.has-image .case-card-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(13,36,45,.38)); }
.case-card:hover .case-card-visual img { transform:scale(1.025); }
.case-placeholder-number { position:relative; z-index:1; font:500 clamp(64px,8vw,118px)/.75 "Manrope"; letter-spacing:-.08em; color:#d0dbde; }
.case-placeholder-label { position:relative; z-index:1; color:#aabdc3; font-size:9px; text-transform:uppercase; letter-spacing:.15em; }
.case-card-body { min-height:315px; padding:31px; display:flex; flex-direction:column; }
.case-areas { margin-bottom:22px; color:var(--accent); font-size:9px; font-weight:600; text-transform:uppercase; letter-spacing:.13em; }
.case-card h3 { max-width:560px; margin-bottom:18px; font:500 clamp(22px,2.1vw,30px)/1.2 "Manrope"; letter-spacing:-.035em; }
.case-card h3 a:hover { color:var(--accent); }
.case-card-body>p:not(.case-areas) { max-width:590px; color:var(--muted); font-size:12px; line-height:1.75; }
.case-card-link { margin-top:auto; padding-top:22px; border-top:1px solid var(--line); font-size:9px; font-weight:600; text-transform:uppercase; letter-spacing:.11em; }
.case-card-link span { float:right; color:var(--accent); font-size:14px; }

.studio { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(70px,10vw,160px); }
.studio-story { padding-top:48px; }
.studio-story .lead { font:500 clamp(20px,2vw,30px)/1.45 "Manrope"; letter-spacing:-.025em; }
.studio-story>p:not(.lead) { color:var(--muted); line-height:1.85; font-size:13px; max-width:660px; }
.values { margin-top:48px; border-top:1px solid var(--line); }
.values div { display:grid; grid-template-columns:120px 1fr; gap:30px; padding:19px 0; border-bottom:1px solid var(--line); }
.values strong { font-size:12px; }
.values span { color:var(--muted); font-size:11px; line-height:1.6; }

.articles { background:#e7e6e0; }
.articles-header { display:flex; justify-content:space-between; align-items:end; margin-bottom:55px; }
.articles-header .text-link { margin-bottom:8px; }
.articles-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #c8c8c1; border-left:1px solid #c8c8c1; }
.article-card { min-height:380px; padding:27px 30px; border-right:1px solid #c8c8c1; border-bottom:1px solid #c8c8c1; display:flex; flex-direction:column; transition:background .2s ease,transform .2s ease; }
.article-card:hover { background:white; transform:translateY(-4px); }
.article-index { color:#8c9599; font-size:9px; }
.article-tag { margin:52px 0 13px; color:var(--accent); text-transform:uppercase; letter-spacing:.13em; font-size:9px; font-weight:600; }
.article-card h3 { font:500 23px/1.25 "Manrope"; letter-spacing:-.025em; max-width:390px; }
.article-card>p:not(.article-tag) { color:var(--muted); font-size:12px; line-height:1.7; }
.read-more { margin-top:auto; padding-top:20px; border-top:1px solid var(--line); font-size:9px; text-transform:uppercase; letter-spacing:.11em; font-weight:600; }
.read-more b { float:right; color:var(--accent); font-size:14px; }

.contact { background:#173744; color:white; padding:clamp(80px,8vw,126px) clamp(24px,8vw,122px); display:grid; grid-template-columns:1.4fr .6fr; gap:100px; align-items:end; }
.contact h2 { margin:0; font:500 clamp(42px,5vw,75px)/1.02 "Manrope"; letter-spacing:-.055em; }
.contact-action p { color:#bac8cc; font-size:13px; line-height:1.75; margin-bottom:30px; }
.contact-with-form { grid-template-columns:minmax(0,.82fr) minmax(440px,1.18fr); align-items:start; gap:clamp(55px,8vw,125px); }
.contact-intro { position:sticky; top:135px; }
.contact-intro>p:not(.eyebrow) { max-width:570px; margin:34px 0 0; color:#bac8cc; font-size:13px; line-height:1.78; }
.contact-direct { margin-top:38px; display:flex; flex-wrap:wrap; gap:14px 28px; }
.contact-direct a { padding-bottom:5px; border-bottom:1px solid #607a83; color:#d1dcdf; font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.contact-direct a:hover { color:white; border-color:white; }
.contact-form { display:grid; gap:25px; }
.contact-form-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.contact-form>label,.contact-form-row label { display:grid; gap:10px; color:#c9d4d7; font-size:9px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; }
.contact-form label>span { color:#db8d76; }
.contact-form label>small { color:#80969e; font-size:8px; font-weight:500; }
.contact-form input:not([type="checkbox"]),.contact-form textarea { width:100%; border:0; border-bottom:1px solid #56717b; border-radius:0; outline:0; padding:12px 0; background:transparent; color:white; font:400 15px/1.55 "DM Sans"; text-transform:none; letter-spacing:0; transition:border-color .2s ease; }
.contact-form textarea { min-height:135px; resize:vertical; }
.contact-form input:focus,.contact-form textarea:focus { border-color:#d6876f; }
.contact-form textarea::placeholder { color:#789099; opacity:1; }
.contact-form .contact-privacy { display:flex; grid-template:none; flex-direction:row; align-items:flex-start; gap:11px; color:#94a8af; font-size:9px; font-weight:400; line-height:1.65; letter-spacing:0; text-transform:none; }
.contact-privacy input { flex:0 0 auto; width:15px; height:15px; margin:1px 0 0; accent-color:var(--accent); }
.contact-privacy span { color:inherit!important; }
.contact-privacy a { color:#d7e0e2; border-bottom:1px solid #70878f; }
.contact-form .button { width:100%; border:0; cursor:pointer; }
.contact-required { margin:-12px 0 0!important; color:#738b94!important; font-size:8px!important; text-align:right; text-transform:uppercase; letter-spacing:.1em; }
.contact-notice { margin:0 0 25px!important; padding:13px 16px; border-left:2px solid #d6876f; background:rgba(255,255,255,.07); color:#e5edef!important; }
.contact-notice.success { border-color:#81b39b; }
.contact-honeypot { display:none!important; }

footer { padding:56px clamp(24px,8vw,122px) 25px; background:#102832; color:white; display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.footer-brand { display:flex; align-items:center; gap:15px; }
.brand-mark.inverse { border-color:#8da0a7; }
.footer-brand div { display:flex; flex-direction:column; }
.footer-brand strong { font-size:13px; text-transform:uppercase; letter-spacing:.05em; }
.footer-brand small { color:#91a4ab; font-size:10px; margin-top:5px; }
footer address { justify-self:end; font-style:normal; display:grid; gap:8px; text-align:right; color:#a7b7bc; font-size:11px; }
footer address a:hover { color:white; }
.footer-end { grid-column:1/-1; margin-top:25px; padding-top:22px; border-top:1px solid #38515a; display:flex; justify-content:space-between; color:#7f969e; font-size:9px; text-transform:uppercase; letter-spacing:.1em; }

/* Pagina servizio: progettazione strutturale */
.service-header { position:sticky; top:0; }
.service-hero { min-height:760px; display:grid; grid-template-columns:56% 44%; border-bottom:1px solid var(--line); }
.service-hero-copy { padding:56px clamp(32px,6vw,96px) 72px clamp(24px,8vw,122px); display:flex; flex-direction:column; justify-content:center; }
.back-link { align-self:flex-start; margin-bottom:64px; color:var(--muted); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.12em; border-bottom:1px solid var(--line); padding-bottom:6px; }
.service-hero h1 { max-width:850px; }
.service-hero-intro { max-width:700px; color:#45545b; font-size:clamp(16px,1.25vw,19px); line-height:1.72; }
.service-hero-visual { position:relative; overflow:hidden; min-height:650px; background:var(--blue); }
.service-hero-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(15,43,54,.04) 45%,rgba(15,43,54,.85)); pointer-events:none; }
.service-hero-visual img { height:100%; object-fit:cover; filter:saturate(.65) contrast(1.05); }
.visual-specs { position:absolute; z-index:2; left:38px; right:38px; bottom:34px; display:grid; grid-template-columns:1fr 1fr; gap:12px 26px; color:white; }
.visual-specs span { padding-top:11px; border-top:1px solid rgba(255,255,255,.43); font-size:9px; text-transform:uppercase; letter-spacing:.12em; }
.visual-specs span:last-child { grid-column:1/-1; }
.service-lead { padding:72px clamp(24px,8vw,122px); display:grid; grid-template-columns:.6fr 1.2fr .8fr; gap:clamp(40px,6vw,100px); align-items:start; background:white; }
.service-lead>p:not(.eyebrow) { font:500 clamp(22px,2.2vw,34px)/1.45 "Manrope"; letter-spacing:-.03em; margin:0; }
.service-lead aside { padding-left:25px; border-left:1px solid var(--accent); display:grid; gap:10px; }
.service-lead aside strong { color:var(--accent); font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.service-lead aside span { color:var(--muted); font-size:12px; line-height:1.75; }
.structural-services { background:var(--paper); }
.structural-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.structural-card { min-height:295px; padding:29px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; transition:background .25s ease,color .25s ease; }
.structural-card:hover { background:white; }
.structural-card>span { color:var(--accent); font-size:10px; }
.structural-card h3 { margin:62px 0 16px; font:500 22px/1.25 "Manrope"; letter-spacing:-.025em; }
.structural-card p { max-width:340px; margin:auto 0 0; color:var(--muted); font-size:12px; line-height:1.75; }
.materials-section { padding:clamp(85px,9vw,142px) clamp(24px,8vw,122px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(70px,10vw,160px); background:var(--blue); color:white; }
.materials-intro h2 { font:500 clamp(38px,4vw,62px)/1.09 "Manrope"; letter-spacing:-.045em; }
.materials-intro h2 em { color:#d6876f; }
.materials-intro>p:not(.eyebrow) { max-width:520px; margin-top:30px; color:#bac8cc; font-size:13px; line-height:1.85; }
.materials-list { border-top:1px solid #496570; }
.materials-list article { display:grid; grid-template-columns:58px 1fr; gap:25px; padding:23px 0; border-bottom:1px solid #496570; }
.materials-list article>span { width:42px; height:42px; border:1px solid #6d8790; display:grid; place-items:center; color:#d6876f; font:600 10px "Manrope"; }
.materials-list h3 { margin:0 0 7px; font:500 18px "Manrope"; }
.materials-list p { margin:0; color:#aebfc4; font-size:11px; line-height:1.65; }
.process-heading { display:grid; grid-template-columns:1.4fr .6fr; gap:90px; align-items:end; margin-bottom:68px; }
.process-heading>p { color:var(--muted); font-size:13px; line-height:1.8; }
.process-list { border-top:1px solid var(--line); }
.process-list article { display:grid; grid-template-columns:80px .65fr 1.35fr; gap:30px; padding:30px 0; border-bottom:1px solid var(--line); align-items:start; }
.process-list article>span { color:var(--accent); font-size:10px; }
.process-list h3 { margin:0; font:500 24px "Manrope"; }
.process-list p { margin:0; max-width:650px; color:var(--muted); font-size:12px; line-height:1.75; }
.faq-section { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(70px,10vw,150px); background:#e7e6e0; }
.service-related { background:white; }
.service-related-heading { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(45px,8vw,125px); align-items:end; margin-bottom:54px; }
.service-related-heading h2 { max-width:760px; margin:0; font:400 clamp(34px,4.2vw,58px)/1.03 Georgia,serif; letter-spacing:-.04em; }
.service-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-related-card { min-height:285px; padding:30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; transition:background .22s ease,color .22s ease; }
.service-related-card:hover { background:var(--blue); color:white; }
.service-related-card h3 { margin:22px 0 18px; font:500 21px/1.3 "Manrope"; letter-spacing:-.025em; }
.service-related-card p { color:var(--muted); font-size:12px; line-height:1.75; }
.service-related-card:hover p { color:#bdcbd0; }
.service-related-card span { margin-top:auto; padding-top:28px; color:var(--accent); font-size:10px; letter-spacing:.07em; text-transform:uppercase; }
.faq-title h2 { font:500 clamp(38px,4vw,62px)/1.09 "Manrope"; letter-spacing:-.045em; }
.faq-list { border-top:1px solid #c8c8c1; }
.faq-list details { border-bottom:1px solid #c8c8c1; }
.faq-list summary { padding:23px 0; display:flex; align-items:center; justify-content:space-between; gap:25px; cursor:pointer; list-style:none; font:500 16px/1.4 "Manrope"; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { color:var(--accent); font-size:21px; font-weight:400; transition:transform .2s ease; }
.faq-list details[open] summary span { transform:rotate(45deg); }
.faq-list details p { max-width:700px; padding:0 45px 23px 0; color:var(--muted); font-size:12px; line-height:1.8; }
.contact-phone { display:inline-block; margin-top:18px; color:#c4d0d3; font-size:10px; text-transform:uppercase; letter-spacing:.1em; border-bottom:1px solid #71888f; padding-bottom:5px; }

/* Archivio progetti */
.project-index-hero { padding-top:clamp(82px,9vw,135px); padding-bottom:clamp(72px,8vw,112px); display:grid; grid-template-columns:1.35fr .65fr; align-items:end; gap:clamp(60px,9vw,145px); border-bottom:1px solid var(--line); }
.project-index-hero .back-link { margin-bottom:clamp(55px,7vw,95px); }
.project-index-hero h1 { max-width:960px; margin:0; font-size:clamp(52px,6.5vw,92px); }
.project-index-hero>p { max-width:470px; margin:0 0 8px; color:var(--muted); font-size:14px; line-height:1.8; }
.project-index-list { padding-top:0; padding-bottom:0; }
.project-index-item { min-height:590px; display:grid; grid-template-columns:.86fr 1.14fr; border-bottom:1px solid var(--line); }
.project-index-visual { position:relative; min-height:500px; padding:35px; overflow:hidden; display:flex; align-items:flex-end; justify-content:space-between; background:var(--blue); color:white; }
.project-index-visual::before { content:""; position:absolute; inset:0; opacity:.2; background-image:linear-gradient(rgba(255,255,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px); background-size:65px 65px; }
.project-index-visual img { position:absolute; inset:0; height:100%; object-fit:cover; filter:saturate(.84) contrast(1.03); transition:transform .55s ease; }
.project-index-visual.has-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(11,32,40,.42)); }
.project-index-visual:hover img { transform:scale(1.025); }
.project-index-visual>span { position:relative; z-index:1; font:500 clamp(82px,11vw,165px)/.72 "Manrope"; letter-spacing:-.09em; color:#d0dbde; }
.project-index-visual>small { position:relative; z-index:1; color:#aabdc3; font-size:9px; letter-spacing:.15em; text-transform:uppercase; }
.project-index-copy { padding:clamp(55px,6vw,92px); display:flex; flex-direction:column; justify-content:center; }
.project-index-copy h2 { margin:0 0 25px; font:500 clamp(31px,3.1vw,48px)/1.12 "Manrope"; letter-spacing:-.04em; }
.project-index-copy h2 a:hover { color:var(--accent); }
.project-index-copy>p:not(.case-areas) { max-width:650px; color:var(--muted); font-size:13px; line-height:1.82; }
.project-index-copy dl { margin:24px 0 36px; border-top:1px solid var(--line); }
.project-index-copy dl div { display:grid; grid-template-columns:115px 1fr; gap:20px; padding:12px 0; border-bottom:1px solid var(--line); font-size:10px; }
.project-index-copy dt { color:#879196; text-transform:uppercase; letter-spacing:.1em; }
.project-index-copy dd { margin:0; }
.project-index-copy .text-link { align-self:flex-start; }
.project-cta { padding:clamp(85px,8vw,125px) clamp(24px,8vw,122px); display:grid; grid-template-columns:1fr auto; gap:35px 80px; align-items:end; background:var(--blue); color:white; }
.project-cta .eyebrow { grid-column:1/-1; margin-bottom:0; }
.project-cta h2 { max-width:920px; margin:0; font:500 clamp(40px,5vw,70px)/1.05 "Manrope"; letter-spacing:-.05em; }

/* Singolo caso studio */
.case-hero { min-height:735px; display:grid; grid-template-columns:58% 42%; border-bottom:1px solid var(--line); }
.case-hero-copy { padding:58px clamp(35px,5vw,78px) 72px clamp(24px,8vw,122px); display:flex; flex-direction:column; justify-content:center; }
.case-hero-copy .back-link { margin-bottom:64px; }
.case-hero h1 { max-width:980px; margin-bottom:30px; font-size:clamp(45px,5vw,76px); }
.case-hero-intro { max-width:760px; color:#45545b; font-size:clamp(16px,1.35vw,20px); line-height:1.7; }
.case-hero-visual { position:relative; min-height:620px; padding:40px; display:flex; align-items:flex-end; justify-content:space-between; overflow:hidden; background:var(--blue); color:white; }
.case-hero-visual::before { content:""; position:absolute; inset:0; opacity:.2; background-image:linear-gradient(rgba(255,255,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px); background-size:68px 68px; }
.case-hero-visual.has-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 54%,rgba(11,32,40,.58)); }
.case-hero-visual img { position:absolute; inset:0; height:100%; object-fit:cover; filter:saturate(.85) contrast(1.03); }
.case-hero-number { position:relative; z-index:1; font:500 clamp(100px,15vw,225px)/.72 "Manrope"; letter-spacing:-.1em; color:#d0dbde; }
.case-hero-label { position:relative; z-index:1; max-width:170px; color:#aabdc3; font-size:9px; line-height:1.6; letter-spacing:.12em; text-align:right; text-transform:uppercase; }
.case-facts { padding:0 clamp(24px,8vw,122px); display:grid; grid-template-columns:repeat(3,1fr); background:white; }
.case-facts div { min-height:110px; padding:26px 28px; display:flex; flex-direction:column; justify-content:center; border-right:1px solid var(--line); }
.case-facts div:first-child { border-left:1px solid var(--line); }
.case-facts span { margin-bottom:8px; color:#879196; font-size:9px; text-transform:uppercase; letter-spacing:.12em; }
.case-facts strong { font:500 15px/1.4 "Manrope"; }
.case-content,.case-work { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(65px,10vw,155px); }
.case-section-title h2 { max-width:600px; font-size:clamp(36px,4vw,58px); }
.case-lead-text { margin:48px 0 0; font:500 clamp(20px,2vw,29px)/1.55 "Manrope"; letter-spacing:-.025em; }
.case-work { background:#e7e6e0; }
.case-activity-list { margin:0; padding:0; border-top:1px solid #c8c8c1; list-style:none; }
.case-activity-list li { padding:22px 0; display:grid; grid-template-columns:55px 1fr; gap:20px; border-bottom:1px solid #c8c8c1; }
.case-activity-list span { color:var(--accent); font-size:9px; }
.case-activity-list p { margin:0; color:#46565d; font-size:13px; line-height:1.72; }
.case-role { padding:clamp(85px,9vw,140px) clamp(24px,8vw,122px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(70px,10vw,160px); background:var(--blue); color:white; }
.case-role h2 { max-width:720px; margin:0; font:500 clamp(38px,4vw,62px)/1.08 "Manrope"; letter-spacing:-.045em; }
.case-role>p { max-width:650px; margin:48px 0 0; color:#bdcbd0; font-size:14px; line-height:1.9; }
.case-result { text-align:center; }
.case-result .eyebrow { display:flex; align-items:center; justify-content:center; }
.case-result blockquote { max-width:1050px; margin:0 auto 46px; font:400 italic clamp(31px,4vw,56px)/1.3 "Newsreader",Georgia,serif; color:#33464e; }
.case-result .button { display:inline-flex; }

/* TranslatePress: selettore lingua compatto e meno invasivo. */
.trp-language-switcher.trp-floating-switcher { --switcher-width:46px!important; --switcher-padding:8px 0!important; --right:18px!important; --bottom:18px!important; width:46px!important; right:18px!important; bottom:18px!important; border-radius:23px!important; opacity:.7; box-shadow:0 7px 20px rgba(15,38,48,.14)!important; transition:opacity .2s ease,transform .2s ease!important; }
.trp-language-switcher.trp-floating-switcher:hover,.trp-language-switcher.trp-floating-switcher:focus-within { opacity:1; transform:translateY(-2px); }
.trp-language-switcher.trp-floating-switcher .trp-language-item-name { display:none!important; }
.trp-language-switcher.trp-floating-switcher .trp-language-item { justify-content:center!important; padding-left:0!important; padding-right:0!important; }

/* Blog: archivio a schede e pagina separata per ogni articolo */
.blog-layout { min-height:100vh; }
.blog-hero { padding-top:clamp(95px,10vw,155px); padding-bottom:clamp(70px,8vw,112px); display:grid; grid-template-columns:1.35fr .65fr; gap:clamp(55px,9vw,145px); align-items:end; border-bottom:1px solid var(--line); }
.blog-hero h1 { max-width:930px; margin:0; font-size:clamp(48px,6vw,84px); }
.blog-hero>p,.archive-description { max-width:470px; margin:0 0 7px; color:var(--muted); font-size:14px; line-height:1.8; }
.archive-description p { margin:0; }
.blog-listing { padding-top:clamp(65px,7vw,100px); }
.blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.blog-card { min-width:0; min-height:410px; display:flex; flex-direction:column; background:transparent; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .22s ease,transform .22s ease; }
.blog-card:hover { background:white; transform:translateY(-3px); }
.blog-card-image { display:block; aspect-ratio:16/9; overflow:hidden; border-bottom:1px solid var(--line); }
.blog-card-image img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.blog-card:hover .blog-card-image img { transform:scale(1.025); }
.blog-card-body { flex:1; padding:27px 29px 25px; display:flex; flex-direction:column; }
.blog-card-meta { display:flex; justify-content:space-between; gap:15px; color:#858f93; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.blog-card-meta span { color:var(--accent); font-weight:600; }
.blog-card h2 { margin:45px 0 16px; font:500 24px/1.23 "Manrope"; letter-spacing:-.03em; }
.blog-card h2 a:hover { color:var(--accent); }
.blog-card-body>p { margin-bottom:30px; color:var(--muted); font-size:12px; line-height:1.75; }
.blog-card .read-more { display:block; margin-top:auto; }
.articles-empty { padding:32px; color:var(--muted); }
.navigation.pagination { margin-top:55px; }
.nav-links { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:7px; }
.page-numbers { min-width:40px; min-height:40px; padding:0 12px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); color:var(--muted); font-size:11px; }
.page-numbers.current,.page-numbers:hover { background:var(--blue); border-color:var(--blue); color:white; }
.page-numbers.prev,.page-numbers.next { padding:0 17px; }

.single-article-header { padding-top:clamp(70px,8vw,118px); padding-bottom:clamp(70px,8vw,112px); border-bottom:1px solid var(--line); }
.single-article-header .back-link { margin-bottom:clamp(55px,7vw,100px); }
.single-article-meta { margin-bottom:27px; display:flex; flex-wrap:wrap; gap:10px 24px; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.single-article-meta span:first-child { color:var(--accent); font-weight:600; }
.single-article-header h1 { max-width:1100px; margin:0; font-size:clamp(43px,6vw,80px); line-height:1.03; }
.single-article-excerpt { max-width:780px; margin:33px 0 0; color:#45545b; font-size:clamp(17px,1.5vw,21px); line-height:1.65; }
.single-article-cover { max-width:1440px; margin:0 auto; padding:0 clamp(24px,5vw,76px); }
.single-article-cover img { max-height:760px; object-fit:cover; }
.single-article-layout { display:grid; grid-template-columns:220px minmax(0,760px); gap:clamp(55px,9vw,150px); justify-content:center; align-items:start; }
.single-article-aside { position:sticky; top:35px; padding-top:18px; border-top:1px solid var(--accent); }
.single-article-aside span { color:var(--accent); font-size:9px; font-weight:600; text-transform:uppercase; letter-spacing:.12em; }
.single-article-aside p { margin-top:14px; color:var(--muted); font-size:11px; line-height:1.7; }
.entry-content { min-width:0; color:#2f4148; font-size:17px; line-height:1.82; }
.entry-content>p:first-child { font-size:20px; color:var(--ink); }
.entry-content h2 { margin:2.2em 0 .75em; font:500 clamp(29px,3vw,42px)/1.16 "Manrope"; letter-spacing:-.035em; }
.entry-content h3 { margin:2em 0 .7em; font:500 24px/1.3 "Manrope"; letter-spacing:-.02em; }
.entry-content p,.entry-content ul,.entry-content ol { margin-bottom:1.45em; }
.entry-content li { margin-bottom:.5em; }
.entry-content a { color:var(--accent); border-bottom:1px solid currentColor; }
.entry-content img { height:auto; margin:2.4em 0; }
.entry-content blockquote { margin:2.2em 0; padding:8px 0 8px 28px; border-left:2px solid var(--accent); color:#45545b; font:400 italic 24px/1.5 "Newsreader",Georgia,serif; }
.entry-content table { width:100%; margin:2em 0; border-collapse:collapse; font-size:14px; }
.entry-content th,.entry-content td { padding:12px; border:1px solid var(--line); text-align:left; }
.article-navigation { padding-top:0; }
.post-navigation { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.post-navigation .nav-links { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.post-navigation a { min-height:130px; padding:27px; display:flex; flex-direction:column; justify-content:center; }
.post-navigation .nav-next { text-align:right; border-left:1px solid var(--line); }
.post-navigation small { margin-bottom:9px; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.1em; }
.post-navigation span { font:500 16px/1.4 "Manrope"; }
.not-found { min-height:70vh; padding-top:clamp(105px,12vw,180px); }
.not-found h1 { max-width:850px; font-size:clamp(48px,7vw,86px); }
.not-found>p:not(.eyebrow) { max-width:620px; color:var(--muted); font-size:16px; line-height:1.75; }
.not-found-actions { margin-top:35px; display:flex; align-items:center; gap:30px; }

@media (max-width:1100px) {
  .desktop-nav,.header-cta { display:none; }
  .site-header { grid-template-columns:1fr auto; }
  .mobile-nav { display:block; justify-self:end; position:relative; }
  .mobile-nav summary { list-style:none; width:42px; height:42px; cursor:pointer; display:grid; place-content:center; gap:6px; }
  .mobile-nav summary::-webkit-details-marker { display:none; }
  .mobile-nav summary span { display:block; width:23px; height:1px; background:var(--ink); }
  .mobile-nav>div { position:absolute; right:0; top:52px; width:230px; background:white; box-shadow:0 18px 40px rgba(20,35,41,.15); padding:22px; display:grid; gap:17px; font-size:13px; }
  .hero { grid-template-columns:1fr 44%; }
  .hero-copy { padding-left:50px; padding-right:45px; }
  .hero-proof { grid-template-columns:repeat(2,1fr); }
  .hero-proof div:last-child { display:none; }
  .section { padding-left:55px; padding-right:55px; }
	.project-index-list { padding-left:55px; padding-right:55px; }
	.project-index-item { grid-template-columns:.78fr 1.22fr; }
	.project-index-copy { padding:55px; }
	.case-hero { grid-template-columns:1fr 42%; }
	.case-hero-copy { padding-left:55px; }
	.contact-with-form { grid-template-columns:minmax(0,.75fr) minmax(400px,1.25fr); gap:60px; }
  .service-hero { grid-template-columns:1fr 42%; }
  .service-hero-copy { padding-left:55px; padding-right:45px; }
  .service-lead { grid-template-columns:.5fr 1.5fr; padding-left:55px; padding-right:55px; }
  .service-lead aside { grid-column:2; }
  .materials-section { padding-left:55px; padding-right:55px; gap:70px; }
	.blog-hero { grid-template-columns:1fr .7fr; }
	.blog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.single-article-layout { grid-template-columns:170px minmax(0,700px); gap:60px; }
}

@media (max-width:760px) {
  .site-header { height:76px; padding:0 20px; }
  .brand-copy small { display:none; }
  .hero { display:flex; flex-direction:column; min-height:0; }
  .hero-copy { padding:65px 22px 45px; }
  h1 { font-size:clamp(46px,13vw,64px); }
  .hero-intro { font-size:15px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:24px; }
  .hero-proof { margin-top:55px; padding-top:25px; }
  .hero-image { min-height:550px; }
  .hero-image figcaption { left:22px; bottom:25px; }
  .expertise-band { padding:25px 20px; flex-wrap:wrap; gap:16px 26px; }
  .section { padding:80px 22px; }
  .section-heading { grid-template-columns:1fr; gap:30px; margin-bottom:45px; }
  .section h2 { font-size:39px; }
  .services-grid { grid-template-columns:1fr; }
  .service-card { min-height:275px; }
  .projects { grid-template-columns:1fr; }
  .projects-image { min-height:420px; }
  .projects-copy { padding:65px 24px; }
	.case-grid { grid-template-columns:1fr; }
	.case-card-visual { aspect-ratio:16/9; }
	.case-studies-intro { max-width:none; }
  .studio { grid-template-columns:1fr; gap:30px; }
  .studio-story { padding-top:0; }
  .values div { grid-template-columns:90px 1fr; gap:20px; }
  .articles-header { align-items:flex-start; flex-direction:column; gap:30px; }
  .articles-grid { grid-template-columns:1fr; }
  .article-card { min-height:330px; }
	.contact { grid-template-columns:1fr; gap:45px; padding:80px 22px; }
	.contact-intro { position:static; }
	.contact-form-row { grid-template-columns:1fr; }
	.project-index-hero { grid-template-columns:1fr; gap:28px; padding-top:70px; }
	.project-index-list { padding:0 22px; }
	.project-index-item { min-height:0; grid-template-columns:1fr; }
	.project-index-visual { min-height:350px; }
	.project-index-copy { padding:50px 0 65px; }
	.project-index-copy dl div { grid-template-columns:95px 1fr; }
	.project-cta { grid-template-columns:1fr; }
	.project-cta .eyebrow { grid-column:auto; }
	.project-cta .button { justify-self:start; }
	.case-hero { display:flex; flex-direction:column; min-height:0; }
	.case-hero-copy { padding:48px 22px 65px; }
	.case-hero-copy .back-link { margin-bottom:50px; }
	.case-hero-visual { min-height:480px; }
	.case-facts { grid-template-columns:1fr; padding:0 22px; }
	.case-facts div,.case-facts div:first-child { min-height:90px; padding:20px 0; border-left:0; border-right:0; border-bottom:1px solid var(--line); }
	.case-content,.case-work { grid-template-columns:1fr; gap:45px; }
	.case-lead-text { margin-top:0; }
	.case-role { grid-template-columns:1fr; gap:35px; }
	.case-role>p { margin-top:0; }
  footer { grid-template-columns:1fr; padding:48px 22px 24px; }
  footer address { justify-self:start; text-align:left; }
  .service-header { position:relative; }
  .service-hero { display:flex; flex-direction:column; min-height:0; }
  .service-hero-copy { padding:45px 22px 65px; }
  .back-link { margin-bottom:50px; }
  .service-hero h1 { font-size:clamp(44px,13vw,62px); }
  .service-hero-visual { min-height:500px; }
  .visual-specs { left:22px; right:22px; bottom:24px; grid-template-columns:1fr; }
  .visual-specs span:last-child { grid-column:auto; }
  .service-lead { padding:65px 22px; grid-template-columns:1fr; gap:28px; }
  .service-lead aside { grid-column:auto; }
  .structural-grid { grid-template-columns:1fr; }
  .structural-card { min-height:255px; }
  .materials-section { padding:80px 22px; grid-template-columns:1fr; gap:55px; }
  .process-heading { grid-template-columns:1fr; gap:30px; margin-bottom:45px; }
  .process-list article { grid-template-columns:45px 1fr; gap:18px; }
  .process-list article p { grid-column:2; }
	.faq-section { grid-template-columns:1fr; gap:45px; }
	.service-related-heading { grid-template-columns:1fr; gap:22px; margin-bottom:38px; }
	.service-related-grid { grid-template-columns:1fr; }
	.service-related-card { min-height:235px; }
	.blog-hero { grid-template-columns:1fr; gap:28px; padding-top:75px; }
	.blog-grid { grid-template-columns:1fr; }
	.blog-card { min-height:340px; }
	.blog-card h2 { margin-top:35px; }
	.single-article-header { padding-top:55px; }
	.single-article-header .back-link { margin-bottom:50px; }
	.single-article-layout { grid-template-columns:1fr; gap:40px; }
	.single-article-aside { position:static; }
	.entry-content { font-size:16px; }
	.entry-content>p:first-child { font-size:18px; }
	.single-article-cover { padding:0; }
	.post-navigation .nav-links { grid-template-columns:1fr; }
	.post-navigation .nav-next { border-top:1px solid var(--line); border-left:0; text-align:left; }
	.not-found-actions { align-items:flex-start; flex-direction:column; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }
