/* Shared layout for the concise homepage and dedicated content pages. */
.inner-page .site-header { position:relative; background:var(--ink); }
.site-nav a[aria-current="page"] { color:#f2ad80; }
.site-nav a { white-space:nowrap; }
.home-page .hero { min-height:650px; }
.home-page .hero__inner { padding:156px 0 76px; grid-template-columns:minmax(0,740px); gap:0; }
.home-page .hero h1 { font-size:clamp(60px,6.8vw,98px); max-width:740px; }
.home-page .hero__lead { max-width:570px; font-size:20px; margin-top:24px; }
.home-page .hero__actions { margin-top:28px; }
.home-page .hero-caption { font-size:11px; }
.home-offer { padding:72px 0 56px; }
.compact-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.compact-heading h2 { font-size:clamp(36px,3.6vw,52px); }
.compact-heading .eyebrow { margin-bottom:14px; }
.text-link { display:inline-flex; gap:12px; align-items:center; font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:5px; line-height:1.6; }
.offer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.offer-card { display:block; background:var(--white); border:1px solid var(--line); transition:border-color .2s; }
.offer-card:hover { border-color:var(--accent-dark); }
.offer-card img { width:100%; height:180px; object-fit:cover; }
.offer-card__body { padding:24px; }
.offer-card h3 { font-family:var(--display); text-transform:uppercase; font-size:28px; font-weight:500; line-height:1.2; margin:0; }
.offer-card p { color:#55584f; font-size:15px; line-height:1.65; margin:14px 0 20px; }
.image-caption a { text-decoration:underline; text-underline-offset:3px; }
.home-approach { padding:58px 0; background:var(--paper-2); border-top:1px solid var(--line); }
.approach-inner { display:grid; grid-template-columns:1fr 1.35fr; gap:70px; align-items:start; }
.approach-inner h2 { font-size:clamp(34px,3.5vw,50px); }
.approach-inner p { margin:0 0 22px; font-size:17px; line-height:1.7; max-width:620px; }
.page-cta { background:var(--ink); color:var(--white); padding:64px 0; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:36px; }
.cta-inner h2 { font-size:clamp(36px,3.7vw,54px); }
.cta-inner p { color:#c4c4be; max-width:620px; margin:16px 0 0; font-size:16px; }
.cta-inner .btn { flex-shrink:0; gap:15px; }
.site-footer { padding:42px 0; }
.footer-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:50px; }
.footer-meta { font-size:12px; }
.footer-meta .brand { margin-bottom:13px; }
.footer-meta p { margin:6px 0; }
.footer-right { display:flex; flex-direction:column; align-items:start; gap:22px; }
.footer-nav { display:grid; grid-template-columns:repeat(3,auto); gap:14px 26px; font-size:14px; color:var(--white); }
.footer-nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:5px; }
.footer-contact { display:flex; gap:12px 24px; flex-wrap:wrap; font-size:14px; color:var(--white); }
.privacy-link { font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.page-intro { padding:36px 0 46px; border-bottom:1px solid var(--line); }
.breadcrumb { display:flex; gap:12px; margin-bottom:26px; font-size:12px; color:#63665e; }
.breadcrumb a { text-decoration:underline; text-underline-offset:3px; }
.page-intro h1 { font-size:clamp(42px,5.4vw,76px); line-height:1.12; max-width:1000px; }
.page-intro p { font-size:18px; line-height:1.65; margin:22px 0 0; max-width:740px; color:#55584f; }
.inner-page [id] { scroll-margin-top:32px; }
.service-detail-section { padding:16px 0 48px; }
.service-detail { display:grid; grid-template-columns:1fr 1.3fr; gap:64px; padding:38px 0; border-bottom:1px solid var(--line); }
.service-detail__title { display:grid; grid-template-columns:36px 1fr; gap:18px; align-content:start; }
.service-detail h2 { font-family:var(--display); font-weight:500; font-size:clamp(26px,3vw,38px); line-height:1.2; text-transform:uppercase; margin:0; }
.service-detail p { font-size:15px; line-height:1.7; color:#5b5e55; margin:0 0 16px; }
.service-detail .service-detail__lead { color:var(--ink); font-size:17px; }
.service-detail .service__number { color:var(--accent-dark); padding-top:4px; }
.inner-page .projects { padding:50px 0 54px; }
.inner-page .project-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.inner-page .project-stack { display:contents; }
.inner-page .project-card { min-height:430px; }
.inner-page .project-card__content { padding:28px; flex-direction:column; align-items:start; justify-content:end; gap:24px; }
.inner-page .project-card h2 { margin:0; font-family:var(--display); font-weight:500; line-height:1.14; text-transform:uppercase; font-size:clamp(24px,2.6vw,34px); }
.project-more { display:inline-block; font-size:13px; font-weight:700; text-decoration:underline; text-underline-offset:4px; margin-top:20px; }
.project-card__content > .project-more { margin:0; }
.inner-page .process { padding:54px 0; }
.inner-page .step { min-height:0; }
.inner-page .collaboration-standards { padding:60px 0; }
.inner-page .testimonials__head h2 { font-size:clamp(34px,4vw,52px); }
.inner-page .testimonial { padding:24px; }
.inner-page .testimonial h3 { margin-top:0; }
.inner-page .testimonial p { margin-bottom:0; }
.handover { padding:60px 0; }
.handover-inner { display:grid; grid-template-columns:1fr 1.4fr; gap:60px; }
.handover h2 { font-size:clamp(34px,4vw,54px); }
.deliverables { padding:0; margin:0 0 26px; list-style:none; }
.deliverables li { padding:15px 0 15px 24px; border-bottom:1px solid var(--line); position:relative; }
.deliverables li::before { content:'—'; color:var(--accent-dark); position:absolute; left:0; }
.faq-page { padding:26px 0 64px; }
.faq-content { max-width:920px; }
.faq-page details { border-bottom:1px solid var(--line); padding:24px 0; }
.faq-page summary { cursor:pointer; font-size:19px; line-height:1.55; font-weight:600; padding-right:10px; }
.faq-page details p { color:#55584f; font-size:17px; line-height:1.75; margin:18px 0 0; max-width:800px; }
.contact-page { padding:50px 0 64px; }
.contact-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr); align-items:start; gap:60px; }
.contact-aside h2 { font-family:var(--display); font-size:32px; font-weight:500; text-transform:uppercase; margin:0 0 12px; }
.contact-aside .contact-link { font-size:clamp(20px,2.1vw,28px); min-height:60px; overflow-wrap:anywhere; }
.contact-aside p { color:#c4c4be; font-size:16px; line-height:1.7; margin:24px 0; }
.contact-aside .text-link { color:var(--white); }
.contact-page .contact-card { grid-template-columns:1fr; padding:36px; gap:26px; }
.contact-page .contact-card h2 { font-family:var(--display); font-size:32px; font-weight:500; margin:0; text-transform:uppercase; }
.contact-page .contact-card__copy p { max-width:none; margin:14px 0 0; }
.contact-page .form-actions { flex-direction:column; align-items:stretch; gap:18px; }
.contact-page .form-note { max-width:none; }
.legal-page { margin:0 auto; padding-top:16px; }
@media(max-width:1050px) {
 .footer-grid { grid-template-columns:1fr 1fr; gap:30px; }
 .footer-nav { grid-template-columns:repeat(2,auto); }
 .contact-layout { gap:30px; grid-template-columns:minmax(0,.75fr) minmax(0,1.3fr); }
 .contact-page .contact-card { padding:28px; }
 .contact-page .contact-form { grid-template-columns:1fr; }
 .inner-page .project-card { min-height:390px; }
 .inner-page .project-card__content { padding:20px; }
}
@media(max-width:800px) {
 .home-page .hero__inner { padding-top:148px; }
 .home-page .hero h1 { font-size:72px; }
 .offer-grid { gap:14px; }
 .offer-card__body { padding:18px; }
 .offer-card h3 { font-size:24px; }
 .offer-card img { height:140px; }
 .approach-inner { gap:35px; grid-template-columns:1fr 1.2fr; }
 .cta-inner { align-items:start; flex-direction:column; gap:26px; }
 .service-detail { gap:30px; grid-template-columns:.85fr 1.3fr; }
 .contact-layout { grid-template-columns:1fr; gap:36px; }
 .contact-aside { display:grid; grid-template-columns:1fr 1fr; gap:12px 26px; }
 .contact-aside h2 { grid-column:1 / -1; }
 .contact-aside p { margin:6px 0; }
 .contact-aside .contact-link { font-size:25px; }
 .contact-page .contact-form { grid-template-columns:1fr 1fr; }
 .handover-inner { grid-template-columns:1fr; gap:28px; }
 .inner-page .project-grid { grid-template-columns:1fr; }
 .inner-page .project-card { min-height:350px; }
 .inner-page .project-card h2 { font-size:32px; max-width:560px; }
 .inner-page .project-card__content { padding:28px; }
}
@media(max-width:600px) {
 .home-page .hero { min-height:650px; }
 .home-page .hero__inner { padding:126px 0 54px; }
 .home-page .hero h1 { font-size:clamp(50px,16vw,72px); }
 .home-page .hero__lead { font-size:17px; margin-top:22px; }
 .home-page .hero__actions { display:grid; margin-top:26px; }
 .home-offer { padding:44px 0 34px; }
 .compact-heading { display:block; margin-bottom:24px; }
 .compact-heading > .text-link { margin-top:20px; }
 .offer-grid { grid-template-columns:1fr; gap:20px; }
 .offer-card img { height:145px; }
 .offer-card__body { padding:21px; }
 .offer-card h3 { font-size:28px; }
 .offer-card p { margin:12px 0 16px; }
 .home-approach,.page-cta { padding:42px 0; }
 .approach-inner { grid-template-columns:1fr; gap:22px; }
 .cta-inner .btn { width:100%; white-space:normal; }
 .footer-grid { grid-template-columns:1fr; gap:28px; }
 .footer-nav { grid-template-columns:repeat(2,1fr); column-gap:35px; }
 .footer-meta { font-size:12px; }
 .site-footer { padding:32px 0; }
 .page-intro { padding:24px 0 32px; }
 .breadcrumb { margin-bottom:20px; }
 .page-intro h1 { font-size:clamp(38px,10vw,54px); }
 .page-intro p { font-size:16px; margin-top:20px; }
 .service-detail { grid-template-columns:1fr; gap:18px; padding:30px 0; }
 .service-detail__title { grid-template-columns:28px 1fr; gap:10px; }
 .service-detail h2 { font-size:30px; }
 .inner-page .projects { padding:30px 0 36px; }
 .inner-page .project-card { min-height:350px; }
 .inner-page .project-card h2 { font-size:28px; }
 .inner-page .project-card__content { padding:24px; }
 .inner-page .process { padding:34px 0; }
 .inner-page .collaboration-standards,.handover { padding:40px 0; }
 .inner-page .testimonials__head { margin-bottom:26px; }
 .faq-page { padding:12px 0 40px; }
 .faq-page summary { font-size:17px; }
 .faq-page details p { font-size:16px; }
 .contact-page { padding:30px 0 36px; }
 .contact-aside { grid-template-columns:1fr; gap:8px; }
 .contact-aside p { margin:12px 0; }
 .contact-page .contact-card { padding:24px 20px; }
 .contact-page .contact-form { grid-template-columns:1fr; }
}
@media print {
 .page-intro { padding-top:0; } .page-cta,.footer-right { display:none; }
 .offer-card,.service-detail,.step,details { break-inside:avoid; }
}
