/*
Theme Name: CALNIK Turnkey
Theme URI: https://calnik.co.za/
Author: CALNIK cc
Description: Multi-page, SEO-ready WordPress theme for CALNIK Turnkey Building & Renovations.
Version: 2.0.2
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: calnik-turnkey
*/

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#171717;--muted:#444444;--paper:#fff;--light:#f3f3f3;--accent:#f78b23;--line:#dedede}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #171717;outline-offset:6px}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,p,figure{margin:0}h1,h2,h3,.brand{font-family:'Manrope',Arial,sans-serif}h1,h2,h3{line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(3.15rem,5.5vw,6rem);font-weight:500}h1 em{font-style:normal;color:#171717}h2{font-size:clamp(2.4rem,3.8vw,4rem);font-weight:500}h3{font-size:1.55rem;font-weight:600;letter-spacing:-.035em}.header{padding:27px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:24px}.brand{font-size:2rem;font-weight:800;line-height:1;letter-spacing:.04em;display:inline-flex;flex-direction:column;gap:9px}.brand span{font-family:'DM Sans',Arial,sans-serif;font-size:.64rem;letter-spacing:.22em;font-weight:600}nav{display:flex;gap:38px;align-items:center;font-size:.9rem}nav a:hover,footer a:hover{text-decoration:underline;text-underline-offset:5px}.nav-cta{border:1px solid var(--ink);padding:10px 19px}.nav-cta span{padding-left:26px}.hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:690px}.hero-copy{padding:65px 7% 48px 9.5%;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:.75rem;letter-spacing:.13em;font-weight:700;display:flex;align-items:center;gap:10px;margin-bottom:25px}.line{width:28px;height:2px;background:var(--ink)}.intro{max-width:465px;color:var(--muted);font-size:1.06rem;line-height:1.75;margin-top:28px}.button{display:inline-flex;background:var(--accent);padding:17px 24px;gap:42px;align-items:center;font-weight:600;margin-top:30px}.button:hover{background:#e97b12}.location{font-size:.75rem;letter-spacing:.13em;font-weight:500;margin-top:auto;padding-top:38px}.location b{padding:0 12px}.hero-image{position:relative;min-width:0;margin:22px 22px 22px 0;overflow:hidden;background:#e8e8e8}.hero-image img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:center}.hero-image:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.65))}.hero-image figcaption{position:absolute;bottom:27px;left:28px;right:20px;color:white;font-size:.76rem;letter-spacing:.12em;z-index:1}.hero-image figcaption span{display:block;letter-spacing:.02em;font-size:.75rem;opacity:.8;margin-top:8px}.image-badge{position:absolute;top:26px;right:26px;background:var(--accent);width:100px;height:100px;padding:15px;display:flex;flex-direction:column;justify-content:center;line-height:1.25}.image-badge span{font-size:.75rem;letter-spacing:.1em}.image-badge strong{font-family:'Manrope',Arial,sans-serif;font-size:1.75rem}.credentials{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);color:white;padding:33px 5%;gap:25px}.credentials>span{font-size:.86rem;border-right:1px solid #454545;display:flex;align-items:center;gap:12px}.credentials strong{font-size:1.6rem;font-family:'Manrope',Arial,sans-serif;font-weight:500;white-space:nowrap}.credentials .last{border:0;flex-direction:column;align-items:flex-start;gap:0}.credentials .last strong{font-size:1.1rem}.section{padding:90px 5%}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:48px}.section-heading>p{color:var(--muted);max-width:390px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-grid article{padding:30px 32px 28px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:300px}.number{color:var(--muted);font-size:.8rem;margin-bottom:27px}.service-grid p{color:var(--muted);margin:16px 0 28px;max-width:340px}.service-tag{font-size:.7rem;letter-spacing:.12em;margin-top:auto;font-weight:500}.service-grid .turnkey-card{background:var(--light);box-shadow:inset 0 3px 0 var(--accent)}.turnkey-card p,.turnkey-card .number{color:#444444}.turnkey-card a{font-weight:600;font-size:.9rem;margin-top:auto;display:flex;justify-content:space-between}.turnkey-card a:hover{text-decoration:underline}.about{background:var(--light);display:grid;grid-template-columns:1fr 1fr;gap:9%}.about-copy .large{font-size:1.4rem;line-height:1.55;margin-bottom:25px;letter-spacing:-.015em}.about-copy>p+p{color:var(--muted)}.signature{display:flex;align-items:center;gap:20px;margin-top:32px}.signature-line{height:42px;width:3px;background:var(--accent)}.signature strong,.signature div span{display:block}.signature div span{font-size:.85rem;color:var(--muted);margin-top:3px}.contact{background:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.contact h2{font-size:clamp(2.5rem,4.2vw,4.5rem)}.contact p:not(.eyebrow){max-width:435px;margin-top:25px}.email{font-size:clamp(1.35rem,2.5vw,2.3rem);border-bottom:1px solid var(--ink);padding-bottom:18px;display:flex;justify-content:space-between;align-items:center;gap:20px;letter-spacing:-.025em}.email:hover{opacity:.7}.contact-details>p{font-size:.85rem;margin-top:12px!important}.area{margin-top:65px}.area span,.area strong{display:block}.area span{font-size:.7rem;letter-spacing:.13em;margin-bottom:10px}.area strong{font-weight:500;font-size:1.05rem}footer{padding:40px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px}footer p,footer>a:last-child{font-size:.8rem;color:var(--muted)}footer .brand{font-size:1.5rem}footer .brand span{font-size:.5rem}.skip{position:absolute;top:-80px;left:20px;padding:10px;background:var(--accent);z-index:10}.skip:focus{top:10px}@media(min-width:1600px){body{max-width:1800px;margin:auto}.hero{min-height:790px}}@media(max-width:1050px){.hero-copy{padding-top:45px}.hero{min-height:650px}.credentials>span{flex-direction:column;align-items:flex-start;gap:0}.service-grid article{padding:25px}.about,.contact{gap:6%}nav{gap:22px}}@media(max-width:750px){.header{padding:22px 6%}.brand{font-size:1.6rem}.brand span{font-size:.53rem}nav>a:not(.nav-cta){display:none}.nav-cta{padding:8px 12px}.nav-cta span{padding-left:12px}.hero{grid-template-columns:1fr}.hero-copy{padding:42px 6% 35px}h1{font-size:clamp(3rem,10.8vw,4.7rem)}.intro{font-size:1rem}.hero-image{margin:0 6% 25px;height:420px}.hero-image img{object-position:center}.location{padding-top:32px}.credentials{grid-template-columns:1fr 1fr;padding:26px 6%;gap:24px}.credentials>span:nth-child(2){border:0}.credentials strong{font-size:1.45rem}.section{padding:60px 6%}.section-heading{display:block;margin-bottom:32px}.section-heading>p{margin-top:24px}.service-grid{grid-template-columns:1fr 1fr}.service-grid article{padding:23px;min-height:300px}h3{font-size:1.35rem}.service-grid p{font-size:.95rem}.about,.contact{grid-template-columns:1fr;gap:35px}.about-copy .large{font-size:1.2rem}.contact-details{padding-top:10px}.area{margin-top:35px}footer{padding:32px 6%;flex-wrap:wrap}footer p{width:100%;order:3}}@media(max-width:440px){.service-grid{grid-template-columns:1fr}.service-grid article{min-height:260px}.hero-image{height:330px}.hero-image figcaption{left:20px}.image-badge{width:83px;height:83px;right:18px;top:18px}.location{font-size:.66rem;letter-spacing:.07em}.location b{padding:0 8px}.email{font-size:1.45rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.solar-logo{width:150px;max-width:100%;height:auto;margin-top:auto}.contact-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.contact-actions a{border:1px solid var(--ink);padding:10px 15px;font-size:.9rem;font-weight:600}.contact-actions a:hover{background:var(--ink);color:white}.hero-copy .eyebrow{font-size:.7rem;letter-spacing:.09em}

.projects{background:var(--ink);color:white}.projects .section-heading>p{color:#cfcfcf}.projects .eyebrow{color:var(--accent)}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.project-card{grid-column:span 4;min-height:520px;position:relative;overflow:hidden;background:#292929}.project-card-wide{grid-column:span 8}.project-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.project-card:hover img{transform:scale(1.025)}.project-card:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.88))}.project-card figcaption{position:absolute;z-index:1;left:25px;right:25px;bottom:24px}.project-card strong,.project-card span{display:block}.project-card strong{font-family:'Manrope',Arial,sans-serif;font-size:1.25rem}.project-card span{font-size:.84rem;color:#e1e1e1;margin-top:5px}.project-card:nth-child(2) img,.project-card:nth-child(3) img{object-position:center}.project-card:nth-child(4) img{object-position:center 65%}

/* Original CALNIK logo with the wider business description. */
.brand-logo{flex-shrink:0;gap:8px;align-items:center}
.brand-logo img{display:block;width:260px;max-width:100%;height:auto}
.brand-logo span,footer .brand-logo span{font-size:12px;line-height:1.4;letter-spacing:.055em;font-weight:600;text-transform:uppercase}
footer .brand-logo img{width:220px}
@media(max-width:750px){.header{gap:14px}.header .brand-logo img{width:200px}.brand-logo span{max-width:200px;text-align:center;letter-spacing:.015em}}
@media(max-width:380px){.header .brand-logo img{width:165px}.header .brand-logo span{max-width:165px}.header .nav-cta{white-space:nowrap;padding:8px 10px}.header .nav-cta span{padding-left:4px}}

.brand-logo img{width:320px}footer .brand-logo img{width:280px}.solar-logo{width:220px}
@media(max-width:750px){.header .brand-logo img{width:235px}}
@media(max-width:440px){.header{padding-left:5%;padding-right:5%;gap:12px}.header .brand-logo img{width:200px}.header .nav-cta{white-space:nowrap;padding:8px 10px}.header .nav-cta span{padding-left:4px}}
@media(max-width:350px){.header .brand-logo img{width:175px}}

/* Black and orange brand palette, with quiet neutral surfaces. */
h1,h2{font-weight:600;letter-spacing:-.04em}
h1 em{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:3px;text-underline-offset:.12em}
.header{padding-top:20px;padding-bottom:20px}
.nav-cta{background:var(--accent);border-color:var(--accent);font-weight:600}
.nav-cta:hover{background:#e97b12;text-decoration:none}
.button,.contact-actions a,.nav-cta{transition:background-color .18s ease,color .18s ease}
.line{background:var(--accent)}
.eyebrow,.hero-copy .eyebrow{font-size:.8125rem;letter-spacing:.08em}
.hero-copy .eyebrow{flex-wrap:wrap}
.credentials{background:var(--light);color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.credentials>span{border-color:var(--line)}
.credentials strong{font-weight:600}
.service-tag{font-size:.75rem;letter-spacing:.08em}
.number{font-size:.875rem}
.service-grid article{min-width:0}
.turnkey-card a{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:5px}
.contact{border-top:1px solid var(--line)}
.contact p:not(.eyebrow){color:var(--muted)}
.email{border-bottom-color:var(--accent);padding-bottom:20px}
.contact-actions a{background:var(--accent);border-color:var(--accent);color:var(--ink)}
.contact-actions a:hover{background:var(--ink);border-color:var(--ink);color:white}
footer{background:var(--ink);color:white}
footer .brand-logo{background:white;padding:10px 14px}
footer p,footer>a:last-child{color:#d6d6d6;font-size:.875rem}
.area span{font-size:.75rem}
@media(max-width:750px){.header{padding-top:18px;padding-bottom:18px}.hero-copy .eyebrow{font-size:.75rem}.service-grid p{font-size:1rem}.credentials>span{font-size:.875rem}footer .brand-logo img{width:230px}}
@media(max-width:900px){.project-card,.project-card-wide{grid-column:span 6;min-height:460px}.project-card:first-child,.project-card:last-child{grid-column:span 12;min-height:430px}}
@media(max-width:620px){.project-grid{display:block}.project-card,.project-card-wide{min-height:390px;margin-bottom:14px}.project-card:first-child{min-height:300px}.project-card:last-child{min-height:300px}.project-card figcaption{left:20px;bottom:20px}.project-card:hover img{transform:none}}
@media(max-width:440px){.location{font-size:.75rem;letter-spacing:.035em}.location b{padding:0 6px}.email{font-size:clamp(1.1rem,5.5vw,1.45rem);gap:10px}footer{gap:22px}footer .brand-logo img{width:205px}}
@media(prefers-reduced-motion:reduce){.button,.contact-actions a,.nav-cta{transition:none}}

.solar-showcase{display:grid;grid-template-columns:.8fr 1.2fr;gap:6%;align-items:center;background:var(--light)}
.solar-copy>p:not(.eyebrow){color:var(--muted);max-width:520px;margin-top:25px}
.solar-gallery{display:grid;grid-template-columns:1.35fr 1fr;gap:14px}
.solar-photo{position:relative;min-height:470px;overflow:hidden;background:#ddd}
.solar-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.solar-photo figcaption{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(23,23,23,.88);color:white;padding:10px 13px;font-size:.78rem;letter-spacing:.04em}
.solar-photo-wide img{object-position:center}
@media(max-width:1050px){.solar-showcase{grid-template-columns:1fr}.solar-gallery{margin-top:8px}.solar-photo{min-height:420px}}
@media(max-width:620px){.solar-gallery{grid-template-columns:1fr}.solar-photo{min-height:320px}.solar-photo:last-child{min-height:360px}}

/* Multi-page production templates */
.inner-hero{display:grid;grid-template-columns:1fr 1fr;min-height:650px;background:var(--light)}
.inner-hero>div{padding:90px 9%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.inner-hero figure{min-height:520px;overflow:hidden}.inner-hero figure img{width:100%;height:100%;object-fit:cover}
.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:9%}.service-detail .large,.copy-columns .large{font-size:1.35rem;line-height:1.6}
.service-detail ul{list-style:none;margin:32px 0 0;padding:0;border-top:1px solid var(--line)}.service-detail li{padding:16px 0;border-bottom:1px solid var(--line);font-weight:600}
.page-cta{padding:75px 8%;background:var(--ink);color:#fff;text-align:center}.page-cta p{max-width:650px;margin:20px auto 0;color:#d5d5d5}.page-cta .button{color:var(--ink)}
.page-projects{min-height:75vh}.page-projects h1{font-size:clamp(3rem,5vw,5.5rem)}.page-projects .project-card{grid-column:span 4}
.inner-copy{min-height:650px}.inner-copy>h1,.legal-page>h1{margin-bottom:55px}.copy-columns{display:grid;grid-template-columns:1fr 1fr;gap:9%}.copy-columns>div p{margin-bottom:24px;color:var(--muted)}
.contact-page{display:grid;grid-template-columns:.82fr 1.18fr;gap:8%;align-items:start}.contact-panel{margin-top:45px}.contact-panel>a{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:14px 0}.contact-panel .email{display:block;font-size:1.35rem;border-bottom-color:var(--accent)}.contact-panel p{margin-top:22px;color:var(--muted)}
.enquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:20px;background:var(--light);padding:35px}.enquiry-form label{font-size:.8rem;font-weight:700;letter-spacing:.03em}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #cfcfcf;background:#fff;font:inherit;border-radius:0}.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}.enquiry-form .full,.enquiry-form .button{grid-column:1/-1}.enquiry-form .consent{display:flex;gap:10px;align-items:flex-start;font-weight:400;letter-spacing:0}.enquiry-form .consent input{width:auto;margin-top:4px}.enquiry-form .button{border:0;justify-content:center;cursor:pointer;margin-top:0}.website-field{position:absolute!important;left:-9999px!important}.form-status{padding:14px 18px;margin-bottom:18px;font-weight:600}.form-status.success{background:#e5f5e8;color:#155d24}.form-status.error{background:#fde9e7;color:#8b241b}
.legal-page{max-width:900px;margin:auto}.legal-page h2{font-size:1.65rem;margin:40px 0 10px}.legal-page p{margin-bottom:18px;color:var(--muted)}.legal-page a{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}
.service-grid h3 a:hover,.service-tag:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}
@media(max-width:1250px){nav{gap:18px;font-size:.8rem}nav a:nth-child(2),nav a:nth-child(3){display:none}}
@media(max-width:800px){.inner-hero,.service-detail,.copy-columns,.contact-page{grid-template-columns:1fr}.inner-hero>div{padding:60px 6%}.inner-hero figure{min-height:380px}.service-detail,.copy-columns,.contact-page{gap:40px}.page-projects .project-card{grid-column:span 6}.inner-copy{min-height:auto}.enquiry-form{padding:25px}}
@media(max-width:520px){.enquiry-form{grid-template-columns:1fr}.enquiry-form label,.enquiry-form .full,.enquiry-form .button{grid-column:1}.inner-hero figure{min-height:300px}.page-projects .project-card{grid-column:span 12}}

/* Conventional desktop dropdown and accessible mobile navigation. */
.menu-toggle{display:none;background:transparent;border:0;color:var(--ink);padding:8px;cursor:pointer}.menu-toggle span{display:block;width:24px;height:2px;background:currentColor;margin:5px}.menu-toggle b{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
.nav-dropdown{position:relative}.services-toggle{border:0;background:transparent;font:inherit;color:inherit;padding:9px 0;cursor:pointer}.services-toggle span{margin-left:5px}.submenu{display:none;position:absolute;top:100%;left:-20px;z-index:20;background:#fff;border:1px solid var(--line);min-width:245px;padding:10px;box-shadow:0 18px 38px rgba(0,0,0,.12)}.submenu a{display:block;padding:10px 12px;white-space:nowrap}.submenu a:hover,.submenu a:focus{background:var(--light);text-decoration:none}.nav-dropdown:hover .submenu,.nav-dropdown:focus-within .submenu,.nav-dropdown.is-open .submenu{display:block}
@media(max-width:1250px){nav{gap:22px;font-size:.85rem}nav a:nth-child(2),nav a:nth-child(3){display:inline-flex}}
@media(max-width:820px){.header{position:relative;flex-wrap:wrap}.menu-toggle{display:block;margin-left:auto}.header nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:30;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 6% 22px;flex-direction:column;align-items:stretch;gap:0}.header nav.is-open{display:flex}.header nav>a,.header nav>a:not(.nav-cta),.services-toggle{display:flex!important;width:100%;justify-content:space-between;text-align:left;padding:13px 0;border-bottom:1px solid var(--line)}.nav-dropdown{width:100%}.submenu{position:static;box-shadow:none;border:0;border-bottom:1px solid var(--line);padding:4px 0 8px;background:var(--light)}.submenu a{padding:10px 14px;white-space:normal}.nav-cta{margin-top:14px;justify-content:center!important;border:0!important;padding:12px 16px!important}.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.menu-toggle span{transition:transform .18s ease,opacity .18s ease}}
