:root {
    --gcpc-red: #ef2f38;
    --gcpc-dark-red: #c91520;
    --gcpc-black: #101113;
    --gcpc-charcoal: #25272a;
    --gcpc-silver: #d8dadd;
    --gcpc-light: #f5f6f7;
    --gcpc-border: #b9bdc1;
}

.core-page-body { background: #eef0f2; color: var(--gcpc-black); }
.core-page-body main { overflow: hidden; }
.nav-menu a[aria-current="page"] { color: var(--gcpc-red); }

.core-hero {
    position: relative;
    min-height: 460px;
    display: grid;
    align-items: center;
    padding: 130px 0 72px;
    background:
        radial-gradient(ellipse at 18% 12%, rgba(255,255,255,.78), transparent 48%),
        radial-gradient(ellipse at 84% 82%, rgba(88,93,98,.16), transparent 52%),
        linear-gradient(110deg, #f2f3f4, #c4c8cc 55%, #e9eaec);
    border-bottom: 16px solid var(--gcpc-black);
}
.core-hero::after { content: ""; position: absolute; left: 58%; bottom: -16px; width: 180px; height: 16px; background: var(--gcpc-red); }
.core-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 64px; align-items: center; }
.core-kicker { color: var(--gcpc-dark-red); font-weight: 800; letter-spacing: .14em; text-transform: uppercase; font-size: .82rem; margin-bottom: 14px; }
.core-hero h1 { max-width: 820px; font-size: clamp(2.55rem, 5vw, 4.9rem); line-height: .98; letter-spacing: -.045em; margin: 0 0 22px; }
.core-hero .hero-lede { max-width: 760px; font-size: clamp(1.05rem, 1.65vw, 1.3rem); line-height: 1.65; color: #33373b; margin: 0 0 30px; }
.core-hero-art { position: relative; min-height: 290px; border: 2px solid rgba(77,82,87,.42); border-radius: 5px; overflow: hidden; box-shadow: 0 18px 42px rgba(16,17,19,.18), inset 0 0 0 8px rgba(255,255,255,.18); }
.core-hero-art img { width: 100%; height: 100%; min-height: 290px; object-fit: cover; display: block; }
.core-hero-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, transparent 50%, rgba(239,47,56,.17)); pointer-events: none; }
.core-hero-art.icon-art { display: grid; place-items: center; background: linear-gradient(135deg, rgba(255,255,255,.6), rgba(130,135,140,.25)); }
.core-hero-art.icon-art i { color: var(--gcpc-red); font-size: 7rem; text-shadow: 0 4px 0 #fff, 0 10px 20px rgba(16,17,19,.18); }

.core-section { padding: 84px 0; background: #fff; }
.core-section.silver { background: linear-gradient(145deg, #eef0f2, #d4d7da); }
.core-section.dark { background: var(--gcpc-black); color: #fff; }
.core-section-header { max-width: 820px; margin: 0 auto 44px; text-align: center; }
.core-section-header.align-left { margin-left: 0; text-align: left; }
.core-section h2 { font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: 1.08; margin-bottom: 18px; }
.core-section-header p, .core-copy p { color: #555b60; line-height: 1.75; }
.dark .core-section-header p, .dark .core-copy p { color: #c9cdd1; }
.core-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; align-items: center; }
.core-copy h3 { font-size: 1.55rem; margin: 26px 0 12px; }
.core-copy p + p { margin-top: 16px; }
.core-photo { border-radius: 8px; overflow: hidden; box-shadow: 0 20px 46px rgba(16,17,19,.2); border: 1px solid #aeb3b7; }
.core-photo img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; display: block; }

.feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.feature-card { position: relative; background: rgba(255,255,255,.92); border: 1px solid var(--gcpc-border); border-top: 4px solid var(--gcpc-red); border-radius: 8px; padding: 30px; box-shadow: 0 12px 28px rgba(16,17,19,.08); }
.feature-card i { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: var(--gcpc-red); color: #fff; font-size: 1.25rem; margin-bottom: 20px; }
.feature-card h3 { font-size: 1.18rem; margin-bottom: 10px; }
.feature-card p { color: #565b60; line-height: 1.65; }
.feature-card a { display: inline-block; margin-top: 16px; color: var(--gcpc-dark-red); font-weight: 750; text-decoration: none; }
.feature-card a:hover { text-decoration: underline; }

.link-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.capability-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 21px 23px; border: 1px solid #b8bcc0; border-left: 5px solid var(--gcpc-red); border-radius: 5px; background: #fff; color: var(--gcpc-black); text-decoration: none; font-weight: 750; box-shadow: 0 8px 18px rgba(16,17,19,.06); }
.capability-link:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(16,17,19,.12); }
.capability-link i { color: var(--gcpc-red); }

.value-list { list-style: none; display: grid; gap: 13px; margin-top: 24px; }
.value-list li { position: relative; padding-left: 30px; line-height: 1.6; }
.value-list li::before { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 0; top: 2px; color: var(--gcpc-red); }

.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.gallery-item { position: relative; min-height: 280px; border-radius: 7px; overflow: hidden; cursor: pointer; background: #111; box-shadow: 0 12px 28px rgba(16,17,19,.16); }
.gallery-image { width: 100%; height: 100%; min-height: 280px; object-fit: cover; display: block; transition: transform .35s ease; }
.gallery-item:hover .gallery-image { transform: scale(1.035); }
.gallery-content { position: absolute; inset: auto 0 0; padding: 55px 22px 20px; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.86)); }
.gallery-content h3 { margin: 0 0 5px; font-size: 1.08rem; }
.gallery-content p { margin: 0; color: #d8dadd; font-size: .88rem; }

.project-grid { display: grid; gap: 30px; }
.project-card { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr); background: #fff; border-radius: 8px; overflow: hidden; border: 1px solid #b8bcc0; box-shadow: 0 16px 36px rgba(16,17,19,.1); }
.project-card:nth-child(even) .project-card-image { order: 2; }
.project-card-image img { width: 100%; height: 100%; min-height: 330px; object-fit: cover; display: block; }
.project-card-copy { padding: 42px; align-self: center; }
.project-card-copy h2 { font-size: 1.8rem; margin: 8px 0 14px; }
.project-card-copy p { color: #555b60; line-height: 1.7; }
.project-label { color: var(--gcpc-dark-red); font-weight: 800; letter-spacing: .11em; text-transform: uppercase; font-size: .78rem; }

.contact-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 38px; align-items: start; }
.contact-stack { display: grid; gap: 18px; }
.contact-card { display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid #b9bdc1; border-radius: 7px; padding: 24px; }
.contact-card i { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: var(--gcpc-red); }
.contact-card h2 { font-size: 1.05rem; margin: 0 0 6px; }
.contact-card p, .contact-card a { color: #555b60; line-height: 1.55; text-decoration: none; }
.contact-card a:hover { color: var(--gcpc-red); }

.inquiry-form { background: #fff; border: 1px solid #b8bcc0; border-top: 5px solid var(--gcpc-red); border-radius: 8px; padding: 34px; box-shadow: 0 16px 38px rgba(16,17,19,.1); }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.form-field { display: grid; gap: 8px; }
.form-field.full { grid-column: 1 / -1; }
.form-field label { font-weight: 700; font-size: .9rem; }
.form-field input, .form-field select, .form-field textarea { width: 100%; border: 1px solid #aeb3b7; border-radius: 5px; background: #f7f8f9; padding: 13px 14px; color: #17191b; font: inherit; }
.form-field textarea { min-height: 145px; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { outline: 3px solid rgba(239,47,56,.15); border-color: var(--gcpc-red); }
.form-note { color: #646a70; font-size: .85rem; line-height: 1.55; margin: 18px 0; }
.form-status { margin-top: 16px; font-weight: 700; color: var(--gcpc-dark-red); }

.core-cta { padding: 68px 0; background: linear-gradient(120deg, #111214, #2b2d30); color: #fff; }
.core-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 34px; }
.core-cta h2 { font-size: clamp(1.8rem,3vw,3rem); margin: 0 0 8px; }
.core-cta p { color: #cdd0d3; margin: 0; }
.core-cta .cta-button { flex: 0 0 auto; }

.core-footer { background: #090a0b; color: #fff; padding: 58px 0 24px; }
.core-footer-grid { display: grid; grid-template-columns: 1.4fr repeat(3,1fr); gap: 32px; }
.core-footer img { width: 150px; filter: brightness(0) invert(1); margin-bottom: 14px; }
.core-footer h3 { font-size: .95rem; margin-bottom: 13px; }
.core-footer p, .core-footer a { color: #bfc3c7; font-size: .92rem; line-height: 1.65; text-decoration: none; }
.core-footer a:hover { color: #fff; }
.core-footer ul { list-style: none; display: grid; gap: 8px; }
.core-footer-bottom { border-top: 1px solid #34373a; margin-top: 36px; padding-top: 20px; color: #979ca1; font-size: .82rem; }

@media (max-width: 980px) {
    .core-hero-grid, .core-split, .contact-layout { grid-template-columns: 1fr; }
    .feature-grid, .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .core-hero-art { max-height: 410px; }
    .core-footer-grid { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 640px) {
    .core-hero { min-height: auto; padding: 105px 0 48px; }
    .core-hero-grid { gap: 34px; }
    .core-hero h1 { font-size: 2.65rem; }
    .core-hero-art, .core-hero-art img { min-height: 240px; }
    .core-section { padding: 62px 0; }
    .feature-grid, .gallery-grid, .link-grid, .form-grid { grid-template-columns: 1fr; }
    .project-card { grid-template-columns: 1fr; }
    .project-card:nth-child(even) .project-card-image { order: 0; }
    .project-card-copy { padding: 28px 24px; }
    .project-card-image img { min-height: 245px; }
    .form-field.full { grid-column: auto; }
    .inquiry-form { padding: 24px 18px; }
    .core-cta-inner { align-items: flex-start; flex-direction: column; }
    .core-footer-grid { grid-template-columns: 1fr; }
}
