/*
Theme Name: KB Consulting Group
Theme URI: https://kb-consultinggroup.com/
Author: KB Consulting Group
Description: Modern one-page offshore wind and infrastructure consulting website.
Version: 3.0
Requires at least: 5.9
Requires PHP: 7.4
Text Domain: kb-consulting-group
*/
@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{--navy:#0b233a;--navy2:#112f4b;--gold:#d6ac65;--cream:#f6f5f1;--ink:#14273a;--muted:#64707b;--line:#e4e6e7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:white;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}.container{width:min(1180px,calc(100% - 64px));margin:auto}.skip{position:absolute;left:-9999px;top:0;background:white;padding:10px;z-index:99}.skip:focus{left:10px}.site-header{height:84px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1180px)/2));position:sticky;top:0;z-index:30;box-shadow:0 4px 20px #0001}.brand{display:flex;align-items:center;gap:18px;white-space:nowrap}.brand-mark{font-family:Georgia,serif;font-size:42px;font-style:italic;line-height:1;letter-spacing:-5px;color:white;position:relative;padding-right:12px}.brand-mark:after{content:'';position:absolute;right:0;top:0;height:42px;width:1px;background:var(--gold)}.brand-name{font-size:17px;letter-spacing:3px;font-weight:600}.nav{display:flex;align-items:center;gap:29px;font-size:13px;font-weight:600}.nav>a:not(.nav-cta){transition:color .2s}.nav>a:hover{color:var(--gold)}.nav-cta{background:var(--gold);color:#132337;padding:13px 19px;border-radius:5px;margin-left:6px}.nav-cta span{margin-left:18px}.menu-toggle{display:none}.hero{min-height:590px;background:var(--navy);color:white;position:relative;display:flex;align-items:center;overflow:hidden}.hero-photo{position:absolute;inset:0 0 0 36%;background:url('assets/offshore-hero.webp') center center/cover no-repeat}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0b233a 0%,#0b233af2 29%,#0b233a9c 55%,#0b233a10 100%)}.hero-content{position:relative;z-index:1;padding:80px 0 95px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:3px;color:#a77b38;display:flex;align-items:center;gap:20px;margin-bottom:24px}.eyebrow.light{color:#e7c587}.eyebrow-line{width:65px;height:1px;background:var(--gold);display:inline-block}.hero h1,.section h2,.contact-section h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-1.4px;line-height:1.13}.hero h1{font-size:clamp(44px,5.1vw,73px);max-width:800px;margin:0 0 26px}.hero h1 em,.contact-section h2 em{color:#e1c38e;font-weight:400}.hero p{max-width:570px;font-size:18px;line-height:1.7;color:#e1e8ed;margin:0 0 30px}.hero-actions{display:flex;gap:14px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;border-radius:5px;padding:13px 23px;font-weight:700;font-size:14px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button.gold{background:var(--gold);color:var(--navy)}.button.gold:hover{background:#e8c68d}.button.outline{border:1px solid #e3e8ef;color:white}.button.outline:hover{background:#ffffff1c}.hero-side{position:absolute;right:20px;bottom:28px;writing-mode:vertical-rl;font-size:10px;letter-spacing:2px;color:#ffffffb0}.value-strip{background:#f8f8f6;border-bottom:1px solid var(--line)}.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:27px 0}.value{display:flex;align-items:center;gap:14px}.value-icon{font-size:32px;line-height:1;color:#bc8e49}.value strong{font-size:12px;display:block;line-height:1.4}.value small{font-size:11px;color:var(--muted);display:block;margin-top:3px}.section{padding:110px 0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.about-image{height:440px;position:relative;background:#c7d2dc;overflow:hidden}.about-image img{width:100%;height:100%;object-fit:cover}.image-label{position:absolute;bottom:0;left:0;background:var(--navy);color:white;font-size:10px;letter-spacing:2px;padding:17px 22px}.section h2{font-size:clamp(38px,4vw,55px);margin:0 0 24px}.section-copy p{color:var(--muted);font-size:16px;margin:0 0 18px}.text-link{display:inline-block;color:#a67c3e;border-bottom:1px solid var(--gold);font-weight:700;font-size:14px;margin-top:14px;padding-bottom:8px}.text-link span{margin-left:25px}.services{background:var(--cream)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:45px}.section-head h2{margin-bottom:0}.section-head>p{max-width:370px;color:var(--muted);margin:0 0 7px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.service-card{background:white;border:1px solid #e7e7e3;padding:29px 26px 34px;min-height:305px;transition:transform .2s,box-shadow .2s}.service-card:hover{transform:translateY(-5px);box-shadow:0 16px 30px #14273a12}.service-num{font-size:12px;color:#b68c50;font-weight:700}.service-symbol{font-size:38px;color:#b68c50;margin:15px 0 20px}.service-card h3{font-size:18px;line-height:1.3;margin:0 0 15px}.service-card p{color:var(--muted);font-size:13px;line-height:1.75;margin:0}.projects{background:white}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.project-card{min-height:255px;padding:30px;background:linear-gradient(140deg,#183b59,#0b233a);color:white;position:relative;overflow:hidden}.project-card:after{content:'';position:absolute;right:-60px;bottom:-100px;width:240px;height:240px;border:1px solid #ffffff1c;border-radius:50%;box-shadow:0 0 0 45px #ffffff06,0 0 0 90px #ffffff05}.project-tag{font-size:10px;letter-spacing:2px;color:#e2bd7b;font-weight:700}.project-card h3{font-family:Georgia,serif;font-size:32px;font-weight:400;margin:48px 0 5px;position:relative;z-index:1}.project-card p{font-size:13px;color:#cbd9e4;margin:0;position:relative;z-index:1}.project-arrow{position:absolute;right:27px;top:25px;font-size:24px;color:#e2bd7b}.project-note{color:#78828c;font-size:12px;margin-top:22px}.contact-section{background:var(--navy);color:white;padding:100px 0}.contact-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:100px;align-items:center}.contact-section h2{font-size:clamp(44px,5vw,70px);margin:0 0 22px}.contact-section p{color:#c9d6e1;max-width:520px}.contact-panel{padding:40px;background:#183650;border:1px solid #ffffff21}.contact-panel h3{font-family:Georgia,serif;font-weight:400;font-size:28px;margin:0 0 14px}.contact-panel p{margin-bottom:28px}.contact-panel small{display:block;margin-top:16px;color:#b8c5d0;font-size:11px}.footer{background:#071a2b;color:white;padding:52px 0 25px}.footer-inner{display:flex;align-items:start;justify-content:space-between;gap:25px}.footer-inner .brand-name{font-size:13px}.footer-inner .brand-mark{font-size:34px}.footer-inner .brand-mark:after{height:34px}.footer-inner p{font-size:12px;color:#b2c0cc;margin:0}.footer-links{display:flex;gap:20px;font-size:12px}.footer-bottom{border-top:1px solid #ffffff1d;margin-top:55px;padding-top:20px;display:flex;justify-content:space-between;font-size:11px;color:#91a5b6}
@media(max-width:1000px){.nav{gap:14px}.brand-name{font-size:13px;letter-spacing:2px}.service-grid{grid-template-columns:repeat(2,1fr)}.two-col{gap:40px}.contact-layout{gap:45px}.value-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.container{width:min(100% - 36px,1180px)}.site-header{height:70px;padding:0 18px}.brand-mark{font-size:34px}.brand-mark:after{height:34px}.brand-name{font-size:12px;letter-spacing:1.5px}.menu-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:0;padding:10px;cursor:pointer}.menu-toggle span{width:25px;height:2px;background:white;display:block}.nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--navy);padding:20px;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 15px 25px #0003}.nav.open{display:flex}.nav a{padding:12px 8px}.nav .nav-cta{margin:10px 0 0;padding:13px}.hero{min-height:630px}.hero-photo{inset:0;background-position:58% center;opacity:.72}.hero-shade{background:linear-gradient(90deg,#0b233ae8,#0b233a80),linear-gradient(0deg,#0b233a7a,transparent)}.hero-content{padding:85px 0}.hero h1{font-size:clamp(40px,10vw,58px)}.hero p{font-size:16px}.hero-side{display:none}.value-grid{grid-template-columns:repeat(2,1fr);gap:20px 12px}.value-icon{font-size:25px}.section{padding:75px 0}.two-col,.contact-layout{grid-template-columns:1fr;gap:35px}.about-image{height:310px}.section-head{display:block}.section-head>p{margin-top:20px}.project-grid{grid-template-columns:1fr}.project-card{min-height:210px}.project-card h3{margin-top:34px}.contact-section{padding:75px 0}.footer-inner{flex-direction:column}.footer-links{flex-wrap:wrap}.footer-bottom{gap:12px;flex-direction:column}}@media(max-width:460px){.brand-name{font-size:10px;letter-spacing:1px}.hero-actions{flex-wrap:wrap}.button{gap:20px}.value-grid{grid-template-columns:1fr 1fr}.value strong{font-size:11px}.service-grid{grid-template-columns:1fr}.section h2{font-size:38px}.contact-section h2{font-size:44px}.contact-panel{padding:28px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}


/* 1.2: Avoid hiding any site containers. Keep homepage typography legible. */

/* v1.6: legible hero, approved founder profile and international project cards */
.hero h1,.hero h1 *{color:#fff!important;text-shadow:0 2px 12px #06172950}.hero h1 em{color:#e1c38e!important}.hero .eyebrow{color:#e7c587!important}
.kb-profile{grid-template-columns:1.18fr .82fr;gap:64px}.kb-profile .section-copy h2{font-family:'Manrope',Arial,sans-serif;font-size:clamp(31px,3.1vw,46px);font-weight:800;line-height:1.2;letter-spacing:-1.2px}.kb-portrait{height:365px;border-radius:7px}.kb-portrait img{object-position:center 30%}.kb-statement{font-weight:700;font-style:italic;color:#0b233a!important;border-left:4px solid #d6ac65;padding-left:16px}
.projects h2{font-family:'Manrope',Arial,sans-serif;font-weight:800;font-size:clamp(30px,3.2vw,45px)}.kb-project-intro{max-width:780px;color:#64707b;margin:0 0 35px}.kb-project-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.kb-project-card{border:1px solid #e3e8ed;border-radius:7px;overflow:hidden;background:white;box-shadow:0 5px 20px #102c4310}.kb-project-card img{width:100%;height:150px;object-fit:cover;display:block}.kb-project-body{padding:17px 14px 20px}.kb-project-body small{color:#2b557a;font-weight:700;font-size:11px}.kb-project-body h3{font-size:19px;line-height:1.2;color:#0b233a;margin:8px 0 12px}.kb-project-body p{font-size:12px;line-height:1.5;color:#455465;margin:0}.kb-other-heading{margin:45px 0 14px}.kb-other-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kb-other-projects>div{padding:20px;background:#eaf1f6;border-left:3px solid #d6ac65;font-weight:700}.kb-other-projects small{display:block;font-weight:400;color:#51647a}.project-note{line-height:1.6}
@media(max-width:1050px){.kb-project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.kb-profile{grid-template-columns:1fr}.kb-portrait{height:340px}.kb-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kb-other-projects{grid-template-columns:1fr}}@media(max-width:470px){.kb-project-grid{grid-template-columns:1fr}.kb-project-card img{height:190px}}

/* Version 1.7: consistent presentation for all project references */
.kb-project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:stretch; }
.kb-project-card { display:flex; flex-direction:column; overflow:hidden; height:100%; }
.kb-project-card img { width:100%; height:190px; object-fit:cover; }
.kb-project-body { flex:1; }
.kb-project-body .kb-role { font-weight:700; color:#173a63; }
.kb-project-body .kb-description { font-weight:400; line-height:1.65; color:#40546a; margin-top:12px; }
@media(max-width:900px){.kb-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.kb-project-grid{grid-template-columns:1fr;}}

/* v2.1: accessible expandable service cards */
.kb-interactive-services .kb-service-details{display:block;min-width:0;overflow:hidden;}
.kb-service-details summary{display:flex;flex-direction:column;align-items:flex-start;cursor:pointer;list-style:none;min-height:100%;outline-offset:-4px;}
.kb-service-details summary::-webkit-details-marker{display:none;}
.kb-service-details summary::marker{content:"";}
.kb-service-details .kb-service-title{display:block;font-size:1.3rem;font-weight:700;line-height:1.25;margin:12px 0;color:inherit;}
.kb-service-details .kb-service-teaser{display:block;line-height:1.55;}
.kb-service-details .kb-service-more{display:block;margin-top:18px;color:#bd8c37;font-weight:700;font-size:.9rem;}
.kb-service-details[open] .kb-service-more span{font-size:0;}
.kb-service-details[open] .kb-service-more span::after{content:'−';font-size:1rem;}
.kb-service-expanded{border-top:1px solid rgba(180,145,80,.35);margin-top:20px;padding-top:16px;font-size:.94rem;line-height:1.65;}
.kb-service-expanded p{margin:0 0 12px;}
.kb-service-expanded h4{font-size:1rem;margin:18px 0 8px;}
.kb-service-expanded ul{margin:8px 0 14px;padding-left:20px;}
.kb-service-expanded li{margin-bottom:6px;}
.kb-service-details:focus-within{outline:2px solid #caa45a;outline-offset:3px;}
@media(min-width:901px){.kb-interactive-services{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* Version 2.2: expandable project reference cards */
.kb-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.kb-project-details{min-width:0;overflow:hidden;border-radius:12px;background:#fff;border:1px solid #dbe4ed;box-shadow:0 3px 12px rgba(6,27,82,.07)}
.kb-project-details summary{display:block;cursor:pointer;list-style:none}
.kb-project-details summary::-webkit-details-marker{display:none}
.kb-project-details summary>img{display:block;width:100%;height:190px;object-fit:cover}
.kb-project-details .kb-project-body{display:block;padding:20px}
.kb-project-details .kb-project-name{display:block;font-size:1.25rem;font-weight:750;color:#071d43;line-height:1.25;margin:8px 0}
.kb-project-details .kb-role{display:block;font-size:.91rem;font-weight:700;color:#173a63;margin:10px 0}
.kb-project-details .kb-description{display:block;font-size:.91rem;line-height:1.55;color:#40546a}
.kb-project-more{display:block;margin-top:16px;font-weight:700;color:#173a63}
.kb-project-details[open] .kb-project-more{color:#946b1b}
.kb-project-details[open] .kb-project-more span{display:none}
.kb-project-details[open] .kb-project-more:after{content:' −'}
.kb-project-expanded{padding:0 20px 22px;border-top:1px solid #e4eaf0;font-size:.92rem;line-height:1.65;color:#30465d}
.kb-project-expanded p{margin:16px 0 10px}
.kb-project-expanded ul{padding-left:20px;margin:14px 0}
.kb-project-expanded li{margin:5px 0}
.kb-project-details summary:focus-visible{outline:3px solid #d5a44b;outline-offset:-3px}
@media(max-width:960px){.kb-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.kb-project-grid{grid-template-columns:1fr}}

.kb-project-expanded h4 { color:#103257; font-size:1rem; margin:18px 0 7px; }
.kb-project-expanded h4:first-child {margin-top:0;}
.kb-project-expanded p {line-height:1.7; margin:0 0 13px;}

/* v2.5: compact responsive galleries within expanded project details */
.kb-project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.kb-project-gallery figure{margin:0;overflow:hidden;border-radius:8px;background:#e9eef2}
.kb-project-gallery img{display:block;width:100%;height:165px;object-fit:cover}
@media(max-width:600px){.kb-project-gallery{grid-template-columns:1fr}.kb-project-gallery img{height:auto;max-height:280px;object-fit:contain}}

/* v2.6: fix blank expanded services caused by full-height summary */
.kb-interactive-services{align-items:start;}
.kb-interactive-services .kb-service-details{height:auto;min-height:0;align-self:start;overflow:visible;}
.kb-interactive-services .kb-service-details summary{min-height:0;height:auto;}
.kb-interactive-services .kb-service-details .kb-service-expanded{display:block;position:static;visibility:visible;opacity:1;height:auto;max-height:none;overflow:visible;}
.kb-interactive-services .kb-service-details:not([open]) .kb-service-expanded{display:none;}

/* v2.7: independent accordion height, no stretched neighbours */
.kb-project-grid,.kb-interactive-services{align-items:start!important;align-content:start!important;}
.kb-project-grid>.kb-project-card,.kb-project-grid>.kb-project-details,.kb-interactive-services>.kb-service-details{height:auto!important;min-height:0!important;align-self:start!important;display:block!important;}
.kb-project-details>summary,.kb-service-details>summary{height:auto!important;min-height:0!important;}
.kb-project-details .kb-project-body{flex:none!important;}
.kb-image-placeholder{display:flex;flex-direction:column;justify-content:flex-end;gap:12px;box-sizing:border-box;height:190px;padding:24px;background:linear-gradient(145deg,#12334f,#234d6b);color:#fff;}
.kb-image-placeholder>span{font-size:10px;letter-spacing:2px;color:#dfb66c;font-weight:700;}
.kb-image-placeholder>strong{font-family:Georgia,serif;font-size:25px;line-height:1.15;font-weight:400;}

/* v2.8: independent masonry-style vertical flow. CSS columns avoid grid row height sharing. */
.kb-project-grid{display:block!important;columns:3;column-gap:24px;}
.kb-project-grid>.kb-project-details{display:inline-block!important;vertical-align:top;width:100%;height:auto!important;margin:0 0 24px;break-inside:avoid;page-break-inside:avoid;}
.kb-interactive-services{display:block!important;columns:2;column-gap:18px;}
.kb-interactive-services>.kb-service-details{display:inline-block!important;vertical-align:top;width:100%;height:auto!important;margin:0 0 18px;break-inside:avoid;page-break-inside:avoid;}
@media(max-width:960px){.kb-project-grid{columns:2;}}
@media(max-width:600px){.kb-project-grid,.kb-interactive-services{columns:1;}}

/* v2.9: fixed one-image card headers, independent details and stable columns */
.kb-project-details>summary{display:block!important;min-height:0!important;height:auto!important;}
.kb-project-details>summary>img{display:block!important;width:100%!important;height:190px!important;object-fit:cover!important;}
.kb-project-details>summary>.kb-project-body{display:block!important;padding:20px!important;}
.kb-project-details:not([open])>.kb-project-expanded{display:none!important;}
.kb-project-details[open]>.kb-project-expanded{display:block!important;}
.kb-project-details .kb-project-gallery img{height:150px;object-fit:cover;}
/* Each card remains in its own column; opening details does not stretch siblings. */
.kb-project-grid{columns:3!important;column-gap:24px!important;}
.kb-project-grid>.kb-project-details{break-inside:avoid!important;display:inline-block!important;width:100%!important;vertical-align:top!important;}
@media(max-width:960px){.kb-project-grid{columns:2!important;}}
@media(max-width:600px){.kb-project-grid{columns:1!important;}}

/* v3.0 fixed orderly project cards with modal details */
.kb-fixed-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.kb-fixed-card{display:flex;flex-direction:column;border:1px solid #e3e8ed;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 5px 20px #102c4310;min-width:0}
.kb-fixed-card>img{width:100%;height:200px;object-fit:cover;display:block;flex-shrink:0}
.kb-fixed-card-copy{padding:24px;display:flex;flex-direction:column;flex:1;gap:12px}
.kb-fixed-card-copy small{color:#2b557a;font-size:12px;font-weight:700}
.kb-fixed-card-copy h3{font-size:24px;line-height:1.2;margin:0;color:#0b233a}
.kb-fixed-card-copy strong{font-size:14px;line-height:1.5;color:#0b233a}
.kb-fixed-card-copy p{font-size:14px;line-height:1.65;color:#536575;margin:0 0 8px}
.kb-project-open{margin-top:auto;text-align:left;background:transparent;border:0;padding:8px 0;color:#a67c3e;font-size:15px;font-weight:700;cursor:pointer}
.kb-project-dialog{border:0;border-radius:14px;padding:34px;width:min(780px,calc(100vw - 32px));max-height:85vh;overflow:auto;box-shadow:0 24px 80px #0005;color:#0b233a}
.kb-project-dialog::backdrop{background:#071a2bd1}
.kb-dialog-close{position:sticky;top:0;float:right;border:0;background:#0b233a;color:white;border-radius:50%;font-size:26px;line-height:1;width:40px;height:40px;cursor:pointer;z-index:2}
.kb-dialog-content{clear:both}.kb-dialog-content h2{font-size:32px;margin:0 0 10px}.kb-dialog-role{font-weight:700;color:#a67c3e}
.kb-dialog-content h4{font-size:20px;margin:24px 0 8px}.kb-dialog-content p{line-height:1.75;color:#455465}.kb-dialog-content .kb-project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.kb-dialog-content img{width:100%;height:auto;border-radius:7px}
@media(max-width:950px){.kb-fixed-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.kb-fixed-project-grid{grid-template-columns:1fr}.kb-project-dialog{padding:20px}}

/* v3.1: enforce fixed project card grid independently of legacy project styles */
#projects .kb-fixed-project-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:24px!important;columns:auto!important;align-items:stretch!important}
#projects .kb-fixed-project-grid>.kb-fixed-card{display:flex!important;flex-direction:column!important;width:auto!important;height:auto!important;min-width:0!important}
#projects .kb-fixed-card>img{width:100%!important;height:200px!important;object-fit:cover!important;display:block!important}
#projects .kb-fixed-card-copy{display:flex!important;flex-direction:column!important;flex:1!important}
@media(max-width:950px){#projects .kb-fixed-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:600px){#projects .kb-fixed-project-grid{grid-template-columns:1fr!important}}
