/* Ferrer & Ponce: original identity, linen surfaces and real textiles. */
:root{--white:#FFFFFF;--stone:#B6ADA0;--clay:#9B6956;--graphite:#383838;--content-width:1280px;--page-gutter:clamp(20px,6vw,96px);--content-inset:max(var(--page-gutter),calc((100% - var(--content-width))/2));--serif:'Libre Caslon Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
body{font-size:17px;max-width:none;background:var(--paper)}
h1,h2,h3{font-weight:400;letter-spacing:-.025em}em{font-style:italic;color:var(--clay)}p{line-height:1.65}h2{font-size:clamp(2.2rem,4.1vw,3.75rem);line-height:1.14}h3{line-height:1.2}
::selection{background:var(--stone);color:var(--graphite)}html{scrollbar-color:var(--stone) var(--paper)}input,select,textarea{caret-color:var(--clay)}
.site-header{min-height:100px;padding-block:17px;background:var(--paper);gap:32px}
.site-header,.site-footer,.section-pad,.breadcrumbs,.related-services{padding-left:var(--content-inset);padding-right:var(--content-inset)}
.brand{display:block;flex-shrink:0;letter-spacing:normal;white-space:normal}.brand img{width:260px;height:auto}.site-header nav{font-size:.9rem;gap:26px}.site-header nav>a{min-height:44px;display:flex;align-items:center}.site-header nav>.nav-contact{background:var(--graphite);color:var(--white);border-color:var(--graphite);padding:12px 19px}.site-header nav>.nav-contact:hover{background:#53504C}.site-header.compact{box-shadow:0 4px 20px #38383812}.menu-toggle{min-width:44px;min-height:44px}
.button{gap:20px;min-height:54px;background:var(--graphite);color:var(--white);border-color:var(--graphite);font-size:1rem;font-weight:500}.button:hover{background:#53504C;border-color:#53504C}.text-link{display:inline-flex;align-items:center;gap:18px;min-height:44px;font-size:.95rem}.text-link:hover{color:var(--graphite);border-bottom-color:var(--clay)}.skip{background:var(--white)}
.home-page .hero{display:block;padding:52px var(--content-inset) 0;min-height:0}.home-page .hero-copy{display:block;max-width:850px;margin:0 auto;text-align:center;padding:0}.home-page .hero h1{font-size:clamp(2.65rem,5.1vw,4.5rem);line-height:1.1}.home-page .hero-lede{max-width:none;margin:24px auto 0;font-size:1.1rem}.home-page .hero-copy>p:not(.hero-lede){max-width:61ch;margin:10px auto 0;color:var(--muted)}.home-page .hero-actions{justify-content:center;gap:28px;margin-top:24px;margin-bottom:38px}.home-page .hero .button,.home-page .hero .text-link{margin:0}.home-page .hero-image{aspect-ratio:16/8;max-width:none;min-height:0;height:auto;max-height:none;position:relative;overflow:hidden;width:100%}.home-page .hero-image img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:50% 64%}.hero-footnote{display:flex;justify-content:space-between;gap:20px;margin-top:16px;padding-bottom:28px;border-bottom:1px solid var(--stone);font-size:.85rem;color:var(--muted)}
.home-page .section-heading{display:block;text-align:center;margin-bottom:46px}.home-page .section-heading>p{max-width:57ch;margin:22px auto 0}.home-page .services-overview{padding-top:85px;background:var(--paper)}.home-page .service-previews{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:stretch}.home-page .service-preview{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;padding:0}.home-page .service-preview:nth-child(2),.home-page .service-preview:nth-child(3){padding:0}.home-page .service-image{position:relative;aspect-ratio:4/3;overflow:hidden;width:100%;flex-shrink:0}.home-page .service-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;aspect-ratio:auto}.home-page .service-preview h3{font:400 clamp(1.8rem,2.5vw,2.35rem)/1.2 var(--serif);margin:25px 0 12px}.home-page .service-preview>p{max-width:29ch;min-height:3.3em;margin:0 auto;color:var(--muted)}.home-page .service-preview .text-link{margin-top:14px}
.materials{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,7vw,100px);align-items:center;background:var(--white)}.materials-photo{aspect-ratio:4/3;position:relative;overflow:hidden}.materials-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;transform:scale(1.6);transform-origin:75% 15%}.materials-copy{max-width:55ch}.materials-copy h2{margin-bottom:25px}.materials-copy p{color:var(--muted)}.materials-copy p+p{margin-top:17px}.materials-copy .text-link{margin-top:24px}
.home-page .about{display:grid;grid-template-columns:1fr;gap:25px;text-align:center;border:0}.home-page .about h2{max-width:28ch;margin:auto}.home-page .about-copy{max-width:65ch;margin-inline:auto}.home-page .process{margin-top:30px;gap:32px;text-align:center}.home-page .process li{min-width:0}.home-page .process h3{font:400 1.5rem/1.25 var(--serif);margin:16px 0 12px}.home-page .process p{max-width:35ch;margin:auto}.process span{color:var(--muted)}
.home-page .about-photo{width:min(100%,382px);margin:9px auto 0}.about-photo-frame{position:relative;overflow:hidden;aspect-ratio:382/283}.about-photo-frame img{width:100%;height:auto}.about-photo figcaption{margin-top:14px;font-size:.9rem;line-height:1.5;color:var(--muted)}
.home-page .home-contact{display:block;text-align:center}.home-page .home-contact h2{margin:auto;max-width:30ch}.home-page .home-contact p{margin:24px auto 0;max-width:57ch}.home-page .home-contact .cta-phone{margin:20px auto 0;font-size:1.25rem}.home-contact em,.project-cta em,.contact em{color:var(--stone)}.home-contact .button,.project-cta .button,.contact .button{background:var(--paper);border-color:var(--paper);color:var(--graphite)}.home-contact .button:hover,.project-cta .button:hover,.contact .button:hover{background:var(--white);border-color:var(--white)}.home-page .home-contact .contact-address{font-size:.9rem;color:var(--paper);max-width:65ch}
.service-hero{max-width:1280px;margin:0 var(--content-inset);gap:54px;align-items:center;border:0;grid-template-columns:1fr 1fr;padding:25px 0 64px}.service-hero-copy{padding:0}.service-hero h1{font-size:clamp(2.5rem,4.2vw,3.75rem);line-height:1.1}.service-hero h1 em{font-size:.64em;line-height:1.25;margin-top:24px}.service-hero figure{min-height:0;aspect-ratio:4/5;max-height:650px}.service-hero figure img{inset:0}.service-hero-copy>p{max-width:57ch}.section-heading>p{max-width:40ch}.options-list h3{font:400 1.65rem/1.25 var(--serif)}.chapter-copy h2{font-size:clamp(2.4rem,4.1vw,3.75rem)}.chapter-lede{font:400 1.65rem/1.3 var(--serif);color:var(--graphite)}.gallery-grid{gap:38px 26px}.gallery-item:nth-child(even){padding-top:0}.gallery-item figcaption{font-size:.9rem}.photo-open{width:44px;height:44px}.gallery-item>a{min-height:44px}.faq h2{font-size:clamp(2.2rem,4vw,3.6rem)}.faq summary{min-height:52px}.faq summary::marker{color:var(--clay)}
.contact-page h1{font-size:clamp(2.7rem,4.5vw,4.2rem);line-height:1.12}.contact-page form h2{font-size:2rem;line-height:1.2}.contact label{color:var(--paper)}.contact textarea::placeholder{color:var(--paper)}.contact select,.contact textarea{color:var(--white);border-color:var(--stone)}.contact-intro,.contact-form-intro,.form-note{color:var(--paper)}
.site-footer{background:var(--paper);padding-top:38px;padding-bottom:38px;gap:28px}.site-footer .brand img{width:220px}.site-footer a:not(.brand){display:inline-flex;align-items:center;min-height:44px}.site-footer>p{font-size:.85rem}.mobile-contact{background:var(--paper)}.mobile-contact a{border-color:var(--graphite)}.mobile-contact a:last-child{background:var(--graphite);color:var(--white)}.lightbox-top p{font-family:var(--serif)}
@media(min-width:1500px){.home-page .hero-image{aspect-ratio:16/8}}
@media(max-width:1080px){.brand img{width:230px}.site-header nav{gap:16px}.site-header nav>.nav-contact{padding-inline:14px}.service-hero{gap:34px}.service-hero figure{min-height:0}.home-page .service-previews{gap:24px}.home-page .hero h1{font-size:clamp(2.8rem,5.5vw,4rem)}}
@media(max-width:780px){body{font-size:16px}.site-header{min-height:86px;padding-block:16px;gap:14px}.brand img{width:214px}.site-header nav{background:var(--paper);padding-inline:var(--page-gutter)}.site-header nav>a{min-height:48px}.site-header nav>.nav-contact{justify-content:center}.home-page .hero{padding-top:37px}.home-page .hero h1{font-size:clamp(2.2rem,8.5vw,3.7rem)}.home-page .hero-lede{font-size:1rem;margin-top:20px;max-width:35ch}.home-page .hero-copy>p:not(.hero-lede){max-width:37ch}.home-page .hero-actions{gap:10px;flex-direction:column;margin:22px 0 28px}.home-page .hero .button{width:auto}.home-page .hero .text-link{font-size:.9rem}.home-page .hero-image{aspect-ratio:4/5;max-width:none}.home-page .hero-image img{object-position:50% 56%}.hero-footnote{display:block;text-align:center;padding-bottom:20px;font-size:.8rem}.hero-footnote p+p{margin-top:5px}.home-page .services-overview{padding-top:62px}.home-page .service-previews{grid-template-columns:1fr;gap:40px}.home-page .service-preview>p{min-height:0;max-width:35ch}.home-page .service-image{aspect-ratio:4/3}.home-page .service-preview h3{margin-top:21px}.home-page .service-preview .text-link{margin-top:10px}.materials{grid-template-columns:1fr;gap:33px}.materials-copy{max-width:65ch}.materials-copy h2{margin-bottom:21px}.home-page .about{text-align:center}.home-page .process{grid-template-columns:1fr;margin-top:16px;gap:25px}.home-page .process li{display:block}.home-page .process span{display:block;margin:0}.home-page .process h3{margin:12px 0 10px}.home-page .home-contact .contact-address{max-width:35ch}.service-hero{grid-template-columns:1fr;gap:32px;padding-top:10px;padding-bottom:40px}.service-hero-copy{padding:0}.service-hero figure{height:auto;max-height:none;aspect-ratio:4/5}.service-hero figure img{position:absolute}.service-hero h1{font-size:clamp(2.4rem,9vw,3.6rem)}.options-list{gap:30px}.chapter-copy{position:static}.chapter-copy h2{font-size:2.8rem}.gallery-grid{gap:30px 20px}.gallery-item:nth-child(even){padding-top:0}.contact-page h1{font-size:3rem}.site-footer{justify-content:center;text-align:center}.site-footer>div{margin:0;justify-content:center;flex-wrap:wrap;gap:20px}.home-page .site-footer{gap:22px}}
@media(max-width:360px){.brand img{width:180px}.site-header{gap:8px}.menu-toggle{padding-inline:5px}.home-page .hero h1{font-size:2.15rem}.home-page .hero .button{font-size:.9rem;padding-inline:16px;gap:12px}.contact-page h1{font-size:2.6rem}.email{font-size:.95rem}.lightbox-bottom button{font-size:.85rem}}
@media(prefers-reduced-motion:reduce){.button,.text-link{transition:none}}
