/*
Theme Name: CK Construction 2026
Theme URI: https://www.ckconstruction.co.uk
Author: CK Construction
Description: Custom corporate theme for CK Construction — West Midlands builders. Extensions, new builds, civil engineering.
Version: 1.0.5
License: GPL v2 or later
Text Domain: ckconstruction2026
*/

:root {
  --navy:#0a2540;
  --navy-2:#123a63;
  --blue:#0e60c1;
  --sky:#eaf3ff;
  --ink:#0a1626;
  --paper:#ffffff;
  --muted:#5a6b82;
  --line:#e5ecf5;
  --accent:#5ce09a;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Inter","Roboto",sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; display:block; }
button { font-family:inherit; cursor:pointer; }

.container { max-width:1280px; margin:0 auto; padding:0 40px; }
.wrap { max-width:900px; margin:0 auto; padding:0 40px; }

/* Skip link (a11y) */
.skip-link { position:absolute; top:-40px; left:0; background:var(--navy); color:#fff; padding:8px 16px; z-index:1000; }
.skip-link:focus { top:0; }

/* Topbar */
.topbar { background:var(--navy); color:#c2d3ea; font-size:12.5px; padding:8px 0; }
.topbar .container { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px 24px; }
.topbar-areas { font-weight:500; letter-spacing:0.02em; }
.topbar-contact a { margin-left:20px; }
.topbar a:hover { color:#fff; }
@media (max-width:900px) {
  .topbar { font-size:12px; text-align:center; }
  .topbar .container { justify-content:center; }
  .topbar-areas { display:block; width:100%; }
  .topbar-contact a:first-child { margin-left:0; }
}

/* Nav */
.site-nav { padding:20px 0; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--paper); z-index:50; }
.site-nav .container { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.logo { display:flex; align-items:center; gap:12px; }
.logo .mark { width:38px; height:38px; background:var(--blue); color:var(--paper); display:flex; align-items:center; justify-content:center; font-weight:800; border-radius:8px; letter-spacing:-0.02em; font-size:16px; }
.logo .name { font-weight:800; letter-spacing:-0.01em; font-size:20px; color:var(--ink); }
/* WP custom-logo output */
.custom-logo-link, a.custom-logo-link { display:inline-block; line-height:0; }
.custom-logo { display:block; max-height:56px; width:auto; height:auto; }
.site-nav .custom-logo { max-height:56px; }
.site-footer .footer-logo-card { display:inline-block; background:#fff; padding:14px 18px; border-radius:12px; margin-bottom:20px; }
.site-footer .logo-img-footer { max-height:56px; width:auto; display:block; }
.menu { display:flex; gap:32px; list-style:none; margin:0; padding:0; }
.menu a { font-size:15px; font-weight:500; color:var(--ink); padding:8px 0; }
.menu a:hover, .menu .current-menu-item > a { color:var(--blue); }
.call { background:var(--blue); color:#fff; padding:12px 22px; border-radius:8px; font-weight:600; font-size:14px; white-space:nowrap; }
.call:hover { background:var(--navy); color:#fff; }

/* Mobile menu toggle */
.menu-toggle { display:none; background:none; border:0; padding:8px; }
.menu-toggle span { display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; transition:.2s; }

/* Hero */
.hero {
    color:#fff;
    padding:120px 0 140px;
    position:relative;
    overflow:hidden;
    background-color:var(--navy);
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
}
.hero::before { content:""; position:absolute; inset:0; background:linear-gradient(115deg, rgba(10,37,64,0.94) 0%, rgba(10,37,64,0.88) 55%, rgba(10,37,64,0.72) 100%); pointer-events:none; }
.hero::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 85% 15%, rgba(255,196,0,0.12), transparent 45%); pointer-events:none; }
.hero h1 { text-shadow:0 2px 20px rgba(0,0,0,0.35); }
.hero .sub { color:#e5eef8; text-shadow:0 1px 8px rgba(0,0,0,0.5); }
.hero .container { position:relative; z-index:1; display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:center; }
.badge { display:inline-flex; align-items:center; gap:8px; background:rgba(255,196,0,0.15); border:1px solid rgba(255,196,0,0.5); padding:6px 14px; border-radius:999px; font-size:13px; margin-bottom:24px; color:#ffd54a; font-weight:600; }
.badge .dot { width:8px; height:8px; background:#ffc400; border-radius:50%; box-shadow:0 0 8px #ffc400; }
.hero h1 { font-size:clamp(44px,6vw,76px); font-weight:800; letter-spacing:-0.03em; line-height:1.02; margin:0; }
.hero .sub { margin-top:24px; font-size:19px; color:#c2d3ea; max-width:600px; }
.hero .ctas { margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; gap:10px; padding:14px 24px; border-radius:8px; font-weight:600; font-size:15px; transition:transform .2s, background .2s; border:0; cursor:pointer; }
.btn-p { background:#fff; color:var(--navy); }
.btn-p:hover { background:var(--sky); transform:translateY(-1px); }
.btn-s { color:#fff; border:1px solid rgba(255,255,255,0.4); background:transparent; }
.btn-s:hover { background:rgba(255,255,255,0.1); }

.heropanel { background:rgba(10,25,44,0.75); border:1px solid rgba(255,255,255,0.18); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-radius:20px; padding:32px; }
.heropanel h4 { font-size:14px; color:#ffc400; margin:0 0 20px; letter-spacing:0.1em; text-transform:uppercase; font-weight:800; }
.quick { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.qi { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.1); border-radius:12px; padding:20px; }
.qi .n { font-size:34px; font-weight:800; letter-spacing:-0.02em; color:#ffc400; line-height:1; }
.qi .l { font-size:13px; color:#fff; margin-top:6px; font-weight:500; }

/* Marquee band */
.marquee-band { background:#ffc400; padding:18px 0; border-bottom:3px solid #0a2540; position:relative; }
.marquee-band .container { display:flex; align-items:center; gap:30px; justify-content:center; flex-wrap:wrap; color:#0a2540; font-size:14px; font-weight:800; text-transform:uppercase; letter-spacing:0.05em; }
.marquee-band span.dot { color:#0a2540; font-weight:800; }
.marquee-band .icon { display:inline-flex; align-items:center; gap:8px; }
.marquee-band .icon svg { width:20px; height:20px; }

/* Trust bar (credentials) */
.trustbar { background:#fff; padding:32px 0; border-bottom:1px solid var(--line); }
.trustbar .container { display:flex; align-items:center; justify-content:center; gap:40px; flex-wrap:wrap; }
.trustbar .label { font-size:12px; font-weight:800; letter-spacing:0.15em; text-transform:uppercase; color:var(--muted); margin-right:8px; }
.trustbar img,
.trustbar .container img { max-height:56px !important; height:56px !important; width:auto !important; max-width:180px !important; object-fit:contain; filter:grayscale(0.15); opacity:0.85; transition:.2s; }
.trustbar img:hover { filter:none; opacity:1; }

/* Photo strip band */
.photostrip { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.photostrip .cell { aspect-ratio:1/1; background-size:cover; background-position:center; position:relative; }
.photostrip .cell::after { content:attr(data-label); position:absolute; bottom:0; left:0; right:0; padding:14px 18px; color:#fff; font-weight:700; font-size:14px; letter-spacing:0.05em; text-transform:uppercase; background:linear-gradient(to top, rgba(10,37,64,0.85), transparent); }

/* Sections */
section { padding:100px 0; }
section.tight { padding:60px 0; }
.kicker { display:inline-block; background:var(--sky); color:var(--blue); font-size:13px; font-weight:600; padding:6px 14px; border-radius:999px; margin-bottom:20px; }
h2.h2, .h2 { font-size:clamp(36px,5vw,56px); font-weight:800; letter-spacing:-0.02em; line-height:1.1; max-width:800px; margin:0; }
.lede { color:var(--muted); font-size:18px; max-width:640px; margin:16px 0 0; }

/* Pillars (Why Us) */
.pillars { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:56px; }
.pillar { padding:32px; border:1px solid var(--line); border-radius:16px; transition:border-color .2s, transform .2s; background:#fff; }
.pillar:hover { border-color:#ffc400; transform:translateY(-4px); box-shadow:0 20px 40px rgba(10,37,64,0.06); }
.pillar .icon { width:56px; height:56px; background:linear-gradient(135deg, var(--navy), var(--blue)); color:#ffc400; border-radius:14px; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.pillar .icon svg { width:28px; height:28px; }
.pillar h4 { font-size:20px; font-weight:700; letter-spacing:-0.01em; margin:0 0 8px; }
.pillar p { color:var(--muted); font-size:15px; margin:0; }

/* Services grid */
.services { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:56px; }
.svc { position:relative; border:1px solid var(--line); border-radius:16px; background:var(--paper); overflow:hidden; transition:transform .2s, box-shadow .2s; display:flex; flex-direction:column; }
.svc:hover { transform:translateY(-4px); box-shadow:0 20px 40px rgba(10,37,64,0.08); }
.svc .svc-img { aspect-ratio:16/10; background-size:cover; background-position:center; background-color:var(--sky); position:relative; }
.svc .svc-img::after { content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(10,37,64,0.4), transparent 50%); }
.svc .svc-body { padding:28px 32px 32px; flex:1; display:flex; flex-direction:column; }
.svc .num { font-size:12px; font-weight:800; color:#ffc400; letter-spacing:0.1em; margin-bottom:8px; text-transform:uppercase; background:var(--navy); color:#ffc400; padding:4px 10px; border-radius:999px; display:inline-block; align-self:flex-start; }
.svc h3 { font-size:22px; font-weight:700; letter-spacing:-0.01em; margin:14px 0 10px; }
.svc p { color:var(--muted); font-size:15px; margin:0 0 20px; flex:1; }
.svc .learn { color:var(--blue); font-weight:700; font-size:14px; display:inline-flex; align-items:center; gap:6px; }
.svc .learn:hover { color:var(--navy); }

/* About */
.about { background:var(--sky); }
.about .container { display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:center; }
.about .img { aspect-ratio:4/3; border-radius:20px; background:linear-gradient(135deg,var(--navy),var(--blue)); position:relative; overflow:hidden; background-size:cover; background-position:center; }
.about .img::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 30% 30%, rgba(255,255,255,0.15), transparent 50%); }
.about .img .cap { position:absolute; bottom:20px; left:20px; background:#fff; padding:12px 18px; border-radius:12px; font-size:13px; font-weight:600; color:var(--navy); z-index:1; }
.about p { font-size:17px; color:var(--muted); margin:16px 0 0; }
.stats { margin-top:32px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; }
.stat { background:#fff; border-radius:12px; padding:20px; text-align:center; }
.stat .n { font-size:32px; font-weight:800; color:var(--blue); letter-spacing:-0.02em; }
.stat .l { font-size:13px; color:var(--muted); margin-top:4px; }

/* Recent work / gallery */
.work { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:56px; }
.card { background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:transform .2s, box-shadow .2s; }
.card:hover { transform:translateY(-4px); box-shadow:0 20px 40px rgba(10,37,64,0.08); }
.card .img { aspect-ratio:4/3; background-size:cover; background-position:center; }
.card .b { padding:24px; }
.card .tag { font-size:12px; color:var(--blue); font-weight:700; letter-spacing:0.1em; text-transform:uppercase; }
.card h3 { font-size:20px; font-weight:700; letter-spacing:-0.01em; margin:8px 0 6px; }
.card p { color:var(--muted); font-size:14px; margin:0; }

/* Testimonial */
.testimonial { background:var(--navy); color:#fff; }
.testimonial .container { padding:100px 40px; display:grid; grid-template-columns:1fr 2fr; gap:64px; align-items:center; }
.testimonial .avatar { width:120px; height:120px; border-radius:50%; background:linear-gradient(135deg,var(--accent),var(--blue)); }
.testimonial q { font-size:clamp(24px,3vw,40px); font-weight:600; letter-spacing:-0.01em; line-height:1.3; display:block; quotes:none; }
.testimonial q::before, .testimonial q::after { content:""; }
.testimonial cite { display:block; margin-top:24px; font-style:normal; font-size:14px; color:#c2d3ea; letter-spacing:0.1em; text-transform:uppercase; }
.testimonial cite b { color:#fff; font-weight:700; }

/* CTA band */
.cta-band { padding:80px 0; }
.cta-band .container { background:linear-gradient(135deg, var(--navy), var(--blue)); border-radius:24px; padding:60px 48px; color:#fff; display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center; }
.cta-band h3 { font-size:36px; font-weight:800; letter-spacing:-0.02em; margin:0; }
.cta-band p { color:#c2d3ea; margin:12px 0 0; font-size:17px; }
.cta-band .btn-p { background:#fff; color:var(--navy); }

/* Interior page hero */
.page-hero { background:linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); color:#fff; padding:80px 0 60px; }
.page-hero .kicker { background:rgba(255,255,255,0.1); color:#fff; }
.page-hero h1 { font-size:clamp(36px,5vw,60px); font-weight:800; letter-spacing:-0.02em; margin:16px 0 0; line-height:1.05; }
.page-hero .sub { color:#c2d3ea; font-size:18px; margin-top:16px; max-width:700px; }
.breadcrumbs { color:#c2d3ea; font-size:14px; }
.breadcrumbs a { color:#fff; }
.breadcrumbs a:hover { color:var(--accent); }

/* Article body */
.article { padding:80px 0; }
.article .wrap { max-width:800px; }
.article h2 { font-size:32px; font-weight:800; letter-spacing:-0.02em; margin:48px 0 16px; line-height:1.2; }
.article h3 { font-size:24px; font-weight:700; letter-spacing:-0.01em; margin:32px 0 12px; }
.article p, .article li { font-size:17px; color:var(--ink); }
.article p { margin:0 0 20px; }
.article ul, .article ol { margin:0 0 24px; padding-left:24px; }
.article ul li, .article ol li { margin-bottom:8px; }
.article a { color:var(--blue); border-bottom:1px solid var(--sky); }
.article a:hover { border-color:var(--blue); }
.article blockquote { margin:32px 0; padding:24px 32px; background:var(--sky); border-left:4px solid var(--blue); border-radius:8px; font-size:19px; font-style:italic; color:var(--navy); }
.article img { border-radius:12px; margin:24px 0; }
.article .featured-img { width:100%; aspect-ratio:16/9; object-fit:cover; margin:0 0 40px; }

/* Blog listing — 3 column grid on laptop, 1 column on mobile */
.blog-list { padding:80px 0; }
.blog-list .wrap { max-width:1280px; padding:0 40px; }
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.blog-card { background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:transform .2s, box-shadow .2s; display:flex; flex-direction:column; margin:0; }
.blog-card:hover { transform:translateY(-4px); box-shadow:0 20px 40px rgba(10,37,64,0.08); }
.blog-card .img { width:100%; aspect-ratio:16/10; background-size:cover; background-position:center; background-color:var(--sky); }
.blog-card .body { padding:24px 24px 28px; flex:1; display:flex; flex-direction:column; }
.blog-card .cat { display:inline-block; align-self:flex-start; background:var(--sky); color:var(--blue); font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px; text-transform:uppercase; letter-spacing:0.05em; }
.blog-card h2 { font-size:20px; font-weight:800; letter-spacing:-0.01em; line-height:1.25; margin:14px 0 8px; }
.blog-card h2 a { color:var(--ink); }
.blog-card h2 a:hover { color:var(--blue); }
.blog-card .meta { color:var(--muted); font-size:13px; margin-bottom:12px; }
.blog-card .excerpt { color:var(--muted); font-size:14px; margin:0 0 16px; flex:1; }
.blog-card .read-more { color:var(--blue); font-weight:700; font-size:14px; }
.blog-card .read-more:hover { text-decoration:underline; }

@media (max-width:1024px) {
  .blog-grid { grid-template-columns:repeat(2,1fr); gap:24px; }
}
@media (max-width:640px) {
  .blog-grid { grid-template-columns:1fr; gap:20px; }
  .blog-list .wrap { padding:0 24px; }
  .blog-card h2 { font-size:22px; }
}

/* Pagination */
.pagination { display:flex; justify-content:center; gap:8px; margin-top:48px; flex-wrap:wrap; }
.pagination .page-numbers { padding:10px 16px; border:1px solid var(--line); border-radius:8px; color:var(--ink); font-weight:600; }
.pagination .current, .pagination .page-numbers:hover { background:var(--blue); color:#fff; border-color:var(--blue); }

/* Contact page */
.contact-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:64px; align-items:start; }
.contact-info { background:var(--sky); padding:32px; border-radius:16px; }
.contact-info h3 { font-size:20px; font-weight:700; margin:0 0 16px; }
.contact-info dt { font-weight:700; color:var(--navy); margin-top:16px; font-size:14px; text-transform:uppercase; letter-spacing:0.05em; }
.contact-info dd { margin:4px 0 0; font-size:16px; }
.contact-info a { color:var(--blue); }

/* Contact form basics */
.wpcf7-form label { display:block; font-weight:600; font-size:14px; color:var(--navy); margin-bottom:6px; }
.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form input[type=tel], .wpcf7-form textarea, .wpcf7-form select {
  width:100%; padding:12px 16px; border:1px solid var(--line); border-radius:8px; font-size:16px; font-family:inherit; margin-bottom:20px;
}
.wpcf7-form input:focus, .wpcf7-form textarea:focus { outline:0; border-color:var(--blue); }
.wpcf7-form textarea { min-height:140px; resize:vertical; }
.wpcf7-form input[type=submit] { background:var(--blue); color:#fff; border:0; padding:14px 32px; border-radius:8px; font-weight:600; font-size:15px; cursor:pointer; }
.wpcf7-form input[type=submit]:hover { background:var(--navy); }

/* Gallery grid */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:56px; }
.gallery-grid .item { position:relative; aspect-ratio:1/1; border-radius:12px; overflow:hidden; background-size:cover; background-position:center; background-color:var(--sky); transition:transform .2s; display:block; }
.gallery-grid .item:hover { transform:scale(1.02); }

/* Footer */
.site-footer { background:var(--ink); color:#c2d3ea; padding:80px 0 40px; }
.fgrid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; }
.site-footer h5 { color:#fff; font-size:14px; font-weight:700; margin:0 0 16px; letter-spacing:0.05em; text-transform:uppercase; }
.site-footer a, .site-footer p { color:#c2d3ea; font-size:15px; line-height:1.9; display:block; margin:0; }
.site-footer a:hover { color:#fff; }
.site-footer .logo .name { color:#fff; }
.fbottom { border-top:1px solid rgba(255,255,255,0.1); margin-top:56px; padding-top:24px; display:flex; justify-content:space-between; font-size:13px; flex-wrap:wrap; gap:8px; }

/* WordPress core alignment classes */
.aligncenter { display:block; margin-left:auto; margin-right:auto; }
.alignleft { float:left; margin-right:24px; }
.alignright { float:right; margin-left:24px; }
.wp-block-image img { border-radius:12px; }

/* Responsive */
@media (max-width:900px) {
  .container { padding:0 24px; }
  .hero { padding:60px 0 80px; }
  .hero .container, .about .container, .cta-band .container, .fgrid, .testimonial .container, .contact-grid { grid-template-columns:1fr; gap:32px; }
  .pillars, .services, .work, .gallery-grid { grid-template-columns:1fr 1fr; }
  .menu { display:none; }
  .menu.open { display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:#fff; padding:24px; border-bottom:1px solid var(--line); box-shadow:0 20px 40px rgba(10,37,64,0.08); }
  .menu-toggle { display:block; }
  .cta-band .container { padding:40px 24px; text-align:center; }
  section { padding:60px 0; }
}
@media (max-width:600px) {
  .pillars, .services, .work, .gallery-grid, .stats { grid-template-columns:1fr; }
  .topbar { display:none; }
  .heropanel { padding:24px; }
  .quick { grid-template-columns:1fr; }
}
