:root{
    --corp-blue:#285789;
    --corp-navy:#102b4d;
    --corp-dark:#0b213a;
    --corp-soft:#f4f6f8;
    --corp-border:#dde3e8;
    --corp-text:#334454;
    --corp-muted:#71808d;
}

/* COMMON */
.corporate-page-hero,
.service-detail-hero,
.firm-hero,
.corporate-generic-hero{
    background:
        radial-gradient(circle at 85% 20%,rgba(40,87,137,.16),transparent 27%),
        linear-gradient(180deg,#f9fbfd,#ffffff);
    border-bottom:1px solid var(--corp-border);
}

.corporate-page-hero,
.firm-hero{
    padding:95px 0 80px;
}

.corporate-page-hero-grid,
.firm-hero-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:90px;
    align-items:end;
}

.corporate-page-hero h1,
.service-detail-hero h1,
.firm-hero h1,
.corporate-generic-hero h1{
    font-family:Georgia,'Times New Roman',serif;
    font-weight:400;
    color:var(--corp-navy);
    letter-spacing:-.035em;
    line-height:1.05;
}

.corporate-page-hero h1,
.firm-hero h1{
    font-size:clamp(44px,6vw,70px);
    margin:14px 0 0;
}

.corporate-page-hero-copy p,
.firm-hero-copy p{
    color:var(--corp-muted);
    font-size:17px;
    line-height:1.8;
    margin:0 0 24px;
}

.corporate-text-link{
    color:var(--corp-blue);
    font-size:12px;
    font-weight:800;
    text-decoration:none;
}

.corporate-primary-button,
.corporate-light-button{
    display:inline-block;
    padding:14px 18px;
    text-decoration:none;
    font-size:12px;
    font-weight:800;
}

.corporate-primary-button{
    background:var(--corp-blue);
    color:#fff;
}

.corporate-light-button{
    background:#fff;
    color:var(--corp-navy);
}

.corporate-section-heading{
    display:grid;
    grid-template-columns:1fr .8fr;
    gap:60px;
    align-items:end;
}

.corporate-section-heading h2{
    font-family:Georgia,serif;
    font-size:clamp(32px,4vw,46px);
    font-weight:400;
    color:var(--corp-navy);
    margin:12px 0 0;
}

.corporate-section-heading>p{
    color:var(--corp-muted);
    font-size:15px;
    line-height:1.75;
    margin:0;
}

/* SERVICES INDEX */
.corporate-services-intro{
    padding:75px 0 35px;
}

.corporate-services-list{
    padding:20px 0 90px;
}

.corporate-service-grid{
    border-top:1px solid var(--corp-border);
}

.corporate-service-card{
    position:relative;
    display:grid;
    grid-template-columns:80px minmax(0,1fr) 50px;
    gap:20px;
    padding:31px 12px;
    border-bottom:1px solid var(--corp-border);
    transition:.2s ease;
}

.corporate-service-card:hover{
    background:#f8fafc;
    padding-left:20px;
    padding-right:20px;
}

.corporate-service-number{
    color:var(--corp-blue);
    font-size:11px;
    font-weight:800;
    padding-top:7px;
}

.corporate-service-content h2{
    font-family:Georgia,serif;
    font-weight:400;
    color:var(--corp-navy);
    font-size:28px;
    margin:0 0 8px;
}

.corporate-service-content p{
    max-width:720px;
    color:var(--corp-muted);
    font-size:14px;
    line-height:1.65;
    margin:0 0 12px;
}

.corporate-service-content a{
    color:var(--corp-blue);
    text-decoration:none;
    font-size:11px;
    font-weight:800;
}

.corporate-service-arrow{
    align-self:center;
    color:#aab3bd;
    font-size:20px;
}

.corporate-service-cta,
.firm-services-callout,
.service-next-step{
    background:var(--corp-blue);
    color:#fff;
    padding:70px 0;
}

.corporate-service-cta-grid,
.firm-services-callout-grid,
.service-next-step-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:80px;
    align-items:center;
}

.corporate-service-cta .eyebrow,
.firm-services-callout .eyebrow,
.service-next-step .eyebrow{
    color:#d5e5f2;
}

.corporate-service-cta h2,
.firm-services-callout h2,
.service-next-step h2{
    font-family:Georgia,serif;
    font-size:clamp(32px,4vw,48px);
    font-weight:400;
    color:#fff;
    line-height:1.12;
    margin:12px 0 0;
}

.corporate-service-cta p{
    color:#dce8f2;
    line-height:1.7;
}

/* SERVICE DETAIL */
.service-detail-hero{
    padding:65px 0 80px;
}

.corporate-back-link{
    display:inline-block;
    color:var(--corp-muted);
    font-size:12px;
    text-decoration:none;
    margin-bottom:50px;
}

.service-detail-hero-grid{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:80px;
    align-items:end;
}

.service-detail-hero h1{
    font-size:clamp(44px,6vw,68px);
    margin:14px 0 0;
}

.service-detail-summary p{
    color:var(--corp-muted);
    line-height:1.8;
    font-size:16px;
    margin:0 0 25px;
}

.service-detail-body{
    padding:85px 0;
}

.service-detail-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:80px;
    align-items:start;
}

.service-rich-text,
.firm-rich-text{
    color:var(--corp-text);
    font-size:16px;
    line-height:1.95;
}

.service-detail-aside{
    display:grid;
    gap:16px;
}

.corporate-aside-card{
    background:var(--corp-soft);
    border:1px solid var(--corp-border);
    padding:25px;
}

.corporate-aside-card>span{
    color:var(--corp-blue);
    font-size:10px;
    font-weight:800;
    letter-spacing:.12em;
}

.corporate-aside-card h3{
    font-family:Georgia,serif;
    color:var(--corp-navy);
    font-size:22px;
    font-weight:400;
    line-height:1.3;
    margin:15px 0 10px;
}

.corporate-aside-card p{
    color:var(--corp-muted);
    font-size:13px;
    line-height:1.65;
}

.corporate-aside-card a{
    color:var(--corp-blue);
    text-decoration:none;
    font-size:12px;
    font-weight:800;
}

.corporate-aside-card.contact{
    background:var(--corp-navy);
    border-color:var(--corp-navy);
}

.corporate-aside-card.contact>span,
.corporate-aside-card.contact a{
    color:#b9d3e8;
}

.corporate-aside-card.contact h3{
    color:#fff;
}

/* FIRM */
.firm-story{
    padding:90px 0;
}

.firm-story-grid{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:100px;
}

.firm-story-title h2{
    font-family:Georgia,serif;
    font-size:clamp(34px,4vw,48px);
    font-weight:400;
    line-height:1.16;
    color:var(--corp-navy);
    margin:14px 0 0;
}

.firm-principles{
    padding:80px 0;
    background:var(--corp-soft);
}

.firm-principles-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    margin-top:38px;
    border-top:1px solid var(--corp-border);
    border-left:1px solid var(--corp-border);
}

.firm-principles-grid article{
    min-height:235px;
    padding:25px;
    background:#fff;
    border-right:1px solid var(--corp-border);
    border-bottom:1px solid var(--corp-border);
}

.firm-principles-grid article>span{
    color:var(--corp-blue);
    font-size:10px;
    font-weight:800;
}

.firm-principles-grid h3{
    font-family:Georgia,serif;
    color:var(--corp-navy);
    font-size:22px;
    font-weight:400;
    margin:30px 0 12px;
}

.firm-principles-grid p{
    color:var(--corp-muted);
    font-size:13px;
    line-height:1.65;
}

/* GENERIC PAGE FALLBACK */
.corporate-generic-hero{
    padding:85px 0 65px;
}

.corporate-generic-hero h1{
    font-size:clamp(42px,6vw,66px);
    margin:14px 0 18px;
}

.corporate-generic-hero p{
    max-width:800px;
    color:var(--corp-muted);
    font-size:17px;
    line-height:1.75;
}

.corporate-generic-content{
    padding:80px 0;
}

.corporate-generic-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 330px;
    gap:80px;
    align-items:start;
}

/* RESPONSIVE */
@media(max-width:950px){
    .corporate-page-hero-grid,
    .firm-hero-grid,
    .corporate-section-heading,
    .corporate-service-cta-grid,
    .firm-services-callout-grid,
    .service-next-step-grid,
    .service-detail-hero-grid,
    .firm-story-grid,
    .corporate-generic-layout{
        grid-template-columns:1fr;
        gap:35px;
    }

    .service-detail-layout{
        grid-template-columns:1fr;
        gap:45px;
    }

    .firm-principles-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:620px){
    .corporate-page-hero,
    .firm-hero{
        padding:65px 0 55px;
    }

    .corporate-service-card{
        grid-template-columns:45px 1fr;
    }

    .corporate-service-arrow{
        display:none;
    }

    .firm-principles-grid{
        grid-template-columns:1fr;
    }

    .service-detail-body,
    .firm-story{
        padding:60px 0;
    }
}
