/*
Theme Name: CasaProject
Description: Free Twenty Twenty-Five child theme for the migrated CasaProject site.
Template: twentytwentyfive
Version: 1.0.0
Text Domain: casaproject
*/

:root { --cp-yellow:#ffb400; --cp-ink:#171717; --cp-soft:#f7f7f7; }
html { scroll-behavior:smooth; }
body { color:var(--cp-ink); }
a { text-underline-offset:.18em; }
.cp-header { position:relative; z-index:10; background:#fff; box-shadow:0 2px 12px rgba(0,0,0,.08); }
.cp-topbar { display:flex; justify-content:flex-end; gap:14px; padding:6px max(24px,calc((100vw - 1100px)/2)); background:#e5a000; font-size:.78rem; font-weight:700; }
.cp-topbar a { color:#1c1c1c; text-decoration:none; }
.cp-header__inner,.cp-footer__inner { max-width:1140px; margin:auto; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.cp-brand { display:inline-flex; align-items:center; text-decoration:none; }
.cp-brand img { display:block; width:175px; height:auto; }
.cp-nav { display:flex; flex-wrap:wrap; gap:22px; align-items:center; }
.cp-nav a { color:#222; text-decoration:none; font-size:.94rem; font-weight:700; }
.cp-nav a:hover,.cp-nav a:focus-visible { color:#bd8200; }
.cp-footer { background:#181818; color:#ddd; }
.cp-footer a { color:#fff; }
.cp-footer__inner { align-items:flex-start; }
.cp-footer p { margin:.25em 0; }
.cp-section { padding:80px 24px; }
.cp-container { max-width:1100px; margin:0 auto; }
.cp-section h1,.cp-section h2,.cp-section h3 { line-height:1.18; }
.cp-section h2 { font-size:clamp(2rem,4vw,2.8rem); margin:0 0 28px; }
.cp-section p { line-height:1.75; }
.cp-section--soft { background:var(--cp-soft); }
.cp-section--yellow { background:var(--cp-yellow); }
.cp-section--center { text-align:center; }
.cp-hero { min-height:600px; display:flex; align-items:center; color:#fff; background-position:center; background-size:cover; background-color:#333; position:relative; }
.cp-hero::before { content:""; position:absolute; inset:0; background:rgba(0,0,0,.52); }
.cp-hero > .cp-container { position:relative; width:100%; }
.cp-hero--home { text-align:center; }
.cp-hero--home p { margin-left:auto; margin-right:auto; }
.cp-hero h1 { font-size:clamp(2.5rem,6vw,4.25rem); margin:0 0 16px; }
.cp-hero p { font-size:clamp(1.2rem,2.4vw,1.55rem); max-width:750px; margin:0 0 28px; }
.cp-hero--compact { min-height:380px; }
.cp-hero--home { background-image:url('/wp-content/uploads/2019/10/ristrutturazioni-milano.jpg'); }
.cp-hero--work { min-height:450px; background-image:url('/wp-content/uploads/2019/11/construction-16.jpg'); }
.cp-hero--case { min-height:410px; background-image:url('/wp-content/uploads/2019/11/construction-33.jpg'); }
.wp-block-post-content > .cp-section { max-width:none; }
.cp-button { display:inline-block; padding:13px 22px; background:var(--cp-yellow); color:#151515!important; font-size:.83rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; text-decoration:none; }
.cp-button:hover,.cp-button:focus-visible { background:#e5a000; }
.cp-button--outline { background:transparent; border:3px solid var(--cp-yellow); color:var(--cp-yellow)!important; }
.cp-section--yellow .cp-button--outline { border-color:#171717; color:#171717!important; }
.cp-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.cp-card { padding:28px; background:#fff; box-shadow:0 2px 16px rgba(0,0,0,.07); }
.cp-card h3 { margin:0 0 8px; font-size:1.14rem; }
.cp-card p { margin:0; }
.cp-service { border-left:4px solid var(--cp-yellow); }
.cp-values .cp-card { background:rgba(255,255,255,.88); }
.cp-about { display:grid; grid-template-columns:1.5fr 1fr; align-items:center; gap:44px; }
.cp-about img { width:100%; height:auto; }
.cp-gallery .gallery { display:grid!important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.cp-gallery .gallery-item { float:none!important; width:auto!important; margin:0!important; }
.cp-gallery .gallery img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border:0!important; }
.cp-gallery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.cp-gallery-grid a { display:block; overflow:hidden; }
.cp-gallery-grid img { display:block; width:100%; height:210px; object-fit:cover; transition:transform .2s ease; }
.cp-gallery-grid a:hover img,.cp-gallery-grid a:focus-visible img { transform:scale(1.04); }
.cp-quote { font-size:1.04rem; line-height:1.7; }
.cp-quote cite { display:block; margin-top:18px; font-weight:700; font-style:normal; }
.cp-contact-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:56px; }
.cp-contact { background:linear-gradient(90deg,var(--cp-yellow) 50%,#fff 50%); }
.cp-contact h2 { max-width:45%; margin-left:0!important; margin-right:auto!important; text-align:left; }
.cp-contact-grid > .wp-block-column:last-child { padding:24px 32px; background:#fff; }
.cp-contact .cp-button { background:#171717; color:#fff!important; }
.cp-contact-list { list-style:none; padding:0; margin:0; }
.cp-contact-list li { margin:0 0 14px; }
.cp-contact-list a { color:inherit; }
.cp-callout { text-align:center; }
.cp-callout h2 { margin-bottom:0; }
.cp-form { display:grid; gap:14px; }
.cp-form label { display:grid; gap:5px; font-weight:600; }
.cp-form input,.cp-form textarea { box-sizing:border-box; width:100%; padding:12px 13px; background:#fff; border:1px solid #b7b7b7; border-radius:0; font:inherit; }
.cp-form input:focus,.cp-form textarea:focus { outline:3px solid var(--cp-yellow); outline-offset:1px; }
.cp-form textarea { min-height:145px; resize:vertical; }
.cp-form button { justify-self:start; border:0; cursor:pointer; }
.cp-form__trap { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.cp-form__notice { padding:12px; border-left:4px solid #267d36; background:#eff9f0; }
.cp-form__notice--error { border-color:#ad2424; background:#fff2f2; }
.casaproject-showcase { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.casaproject-showcase .column { min-width:0; background:#fff; }
.casaproject-showcase > .column:only-child { grid-column:1/-1; width:min(100%,900px); margin-inline:auto; }
.casaproject-showcase .entry-content { line-height:1.6; }
@media(max-width:800px) { .cp-grid,.casaproject-showcase,.cp-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .cp-about,.cp-contact-grid { grid-template-columns:1fr; } .cp-contact { background:var(--cp-yellow); } .cp-contact h2 { max-width:none; } .cp-contact-grid > .wp-block-column:last-child { padding:24px; } .cp-header__inner { align-items:flex-start; flex-direction:column; } .cp-hero { min-height:500px; } }
@media(max-width:550px) { .cp-grid,.casaproject-showcase { grid-template-columns:1fr!important; } .cp-gallery .gallery,.cp-gallery-grid { grid-template-columns:1fr 1fr!important; } .cp-hero { min-height:440px; } .cp-section { padding:58px 20px; } .cp-footer__inner { display:block; } }
