/*
Theme Name: Kings Castle Agency
Theme URI: https://www.kcagency.com/
Author: Kings Castle Agency
Description: Light & Editorial WordPress theme for Kings Castle Agency.
Version: 2.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: kings-castle-agency
*/

:root{--blue:#123d79;--ink:#153a70;--muted:#687c98;--line:#d9e2eb;--paper:#f6f5f1;--pale:#edf3f8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand{font-family:Manrope,Arial,sans-serif}h1{font-size:clamp(3.2rem,7.3vw,8.2rem);line-height:.99;letter-spacing:-.085em;font-weight:700}h2{font-size:clamp(2.4rem,5vw,5.6rem);letter-spacing:-.075em;line-height:1.05;font-weight:600}h3{font-size:1.5rem;letter-spacing:-.045em}.wrap{max-width:1500px;margin:auto;padding-left:5%;padding-right:5%}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;font-weight:700}.muted{color:var(--muted)}header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;background:rgba(246,245,241,.95);backdrop-filter:blur(14px)}.brand{font-size:1.2rem;font-weight:800;letter-spacing:-.08em;white-space:nowrap}.brand small{display:block;letter-spacing:.18em;font:600 .55rem 'DM Sans',sans-serif;margin-top:2px}nav{display:flex;gap:clamp(12px,2vw,30px)}nav a{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}nav a:hover,.textlink:hover{opacity:.58}.menu{display:none;background:none;border:0;color:var(--blue);font-size:1.5rem}.hero{min-height:690px;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;border-bottom:1px solid var(--line)}.hero-copy{padding:clamp(65px,9vw,145px) 5% 80px 10%;display:flex;flex-direction:column;justify-content:center}.hero-copy h1{margin:32px 0}.hero-copy p:not(.eyebrow){max-width:400px;line-height:1.7;color:var(--muted)}.hero-image{min-height:580px}.btn{display:inline-flex;align-items:center;gap:30px;background:var(--blue);color:white;padding:17px 24px;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;width:max-content;border:1px solid var(--blue);transition:.2s}.btn:hover{background:white;color:var(--blue)}.hero-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:25px}.textlink{font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.section{padding-top:110px;padding-bottom:115px;border-bottom:1px solid var(--line)}.section-intro{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:45px}.section-intro h2{max-width:850px;margin-bottom:0}.section-intro>p{max-width:340px;line-height:1.7;color:var(--muted)}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.service-image{aspect-ratio:1.23;background-size:cover;background-position:center;margin:20px 0 27px}.service p{line-height:1.75;font-size:.91rem;color:var(--muted);max-width:440px}.service .textlink{display:inline-block;margin-top:10px}.roster{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.talent{position:relative;min-height:255px;padding:26px;background:var(--pale);display:flex;flex-direction:column;justify-content:space-between;transition:background .2s}.talent:hover{background:#dce8f3}.talent .number{font-size:.72rem;letter-spacing:.1em}.talent h3{font-size:clamp(1.5rem,2.8vw,2.7rem);letter-spacing:-.06em;margin:0}.talent .arrow{align-self:flex-end;font-size:1.4rem}.talent small{color:var(--muted);font-size:.75rem}.brand-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.brand-cell{min-height:155px;display:flex;align-items:center;justify-content:center;text-align:center;padding:15px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-family:Manrope;font-size:clamp(1.1rem,2vw,1.8rem);font-weight:800;letter-spacing:-.06em}.festival{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center}.festival-image{height:500px;}.festival p{line-height:1.8;color:var(--muted);max-width:470px}.festival-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.festival-tags span{padding:12px 15px;border:1px solid var(--line);font-size:.75rem;font-weight:700}.about{display:grid;grid-template-columns:1fr 1fr;gap:90px}.about p{line-height:1.9;color:var(--muted)}.contact{background:var(--blue);color:white;padding-top:100px;padding-bottom:100px}.contact h2{max-width:1000px}.contact p{color:#d2dfed;line-height:1.7}.contact .btn{background:white;color:var(--blue);border-color:white}.contact .btn:hover{background:transparent;color:white}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end}footer{display:flex;justify-content:space-between;gap:25px;padding-top:40px!important;padding-bottom:40px!important;font-size:.75rem;color:var(--muted)}footer .brand{color:var(--blue)}.note{font-size:.7rem;color:var(--muted)}@media(max-width:900px){header{height:72px}nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);padding:24px 5%;flex-direction:column;border-bottom:1px solid var(--line)}nav.open{display:flex}.menu{display:block}.hero{grid-template-columns:1fr}.hero-copy{padding:85px 6% 65px}.hero-image{min-height:400px}.section{padding-top:75px;padding-bottom:80px}.three{grid-template-columns:1fr}.service-image{aspect-ratio:1.8}.roster{grid-template-columns:repeat(2,1fr)}.brand-grid{grid-template-columns:repeat(2,1fr)}.festival,.about,.contact-grid{grid-template-columns:1fr;gap:35px}.festival-image{height:360px}.section-intro{display:block}.section-intro>p{margin-top:25px}footer{flex-wrap:wrap}}@media(max-width:500px){.roster{grid-template-columns:1fr}.talent{min-height:190px}.hero-image{min-height:300px}.brand-cell{min-height:110px}.section{padding-top:65px;padding-bottom:70px}}

.admin-bar header{top:32px}@media(max-width:782px){.admin-bar header{top:46px}}.talent:not(a){cursor:default}.talent-photo{width:100%;height:200px;object-fit:cover;margin-bottom:18px}.talent:has(.talent-photo){min-height:350px}.talent h3{overflow-wrap:anywhere}.screen-reader-text{position:absolute;left:-9999px}.custom-logo{max-height:55px;width:auto}

.kc-editable-image{background-position:center;background-size:cover;background-color:#e9eef4}.talent-photo{width:100%;height:180px;object-fit:cover;display:block;margin:12px 0}.kc-editable-image:empty{background-color:#e9eef4}

/* Hero editorial layering: headline sits in front of the hero photograph. */
@media (min-width: 901px) {
  .hero { position: relative; isolation: isolate; grid-template-columns: 1fr 1fr; }
  .hero-copy { position: relative; z-index: 2; overflow: visible; }
  .hero-copy h1 { position: relative; z-index: 3; width: max-content; max-width: none; pointer-events: none; }
  .hero-image { position: relative; z-index: 1; }
}
@media (max-width: 900px) {
  .hero-copy h1 { overflow-wrap: anywhere; }
}

/* KC Agency original white logo, displayed in the brand blue via a CSS mask. */
.kc-brand-logo{display:inline-flex;align-items:center;flex-shrink:0;line-height:0;min-width:0}
.kc-brand-logo-mark{display:block;width:clamp(165px,18vw,250px);height:58px;background-color:var(--blue);-webkit-mask-image:url("https://kcagency.com/wp-content/uploads/2022/11/Logo-KCA-WHITE-LANG-1.png");mask-image:url("https://kcagency.com/wp-content/uploads/2022/11/Logo-KCA-WHITE-LANG-1.png");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:left center;mask-position:left center}
@media(max-width:500px){.kc-brand-logo-mark{width:165px;height:48px}}

/* v1.3 — larger editorial masthead and roster heading */
header.wrap { min-height: 110px; height: auto; padding-top: 14px; padding-bottom: 14px; }
header .kc-brand-logo { width: 340px; max-width: 38vw; height: 86px; overflow: hidden; }
header .kc-brand-logo-mark { width: 100%; height: 100%; background-color: var(--blue); -webkit-mask-size: 145% auto; mask-size: 145% auto; -webkit-mask-position: left center; mask-position: left center; }
#talent .section-intro { align-items: center; }
#talent .section-intro > div { flex: 1 1 64%; min-width: 0; }
#talent .section-intro h2 { font-family: Manrope, Arial, sans-serif; font-size: clamp(3rem, 5.1vw, 5.8rem); font-weight: 650; letter-spacing: -0.065em; line-height: 1.05; max-width: 950px; overflow-wrap: normal; word-break: normal; text-transform: uppercase; }
#talent .section-intro > p { flex: 0 1 340px; }
@media(max-width:900px) { header.wrap { min-height: 82px; } header .kc-brand-logo { width: 260px; height: 65px; max-width: 65vw; } #talent .section-intro h2 { font-size: clamp(2.5rem, 7vw, 4.5rem); } }
@media(max-width:500px) { header .kc-brand-logo { width: 205px; height: 55px; } #talent .section-intro h2 { font-size: clamp(2.2rem, 10vw, 3.2rem); letter-spacing: -.055em; } }

/* v1.4: restrained, fully visible header logo */
header.wrap { height: 88px; min-height: 88px; padding-top: 10px; padding-bottom: 10px; }
header .kc-brand-logo { width: 240px; max-width: 30vw; height: 56px; overflow: visible; flex-shrink: 0; }
header .kc-brand-logo-mark { display:block; width:100%; height:100%; -webkit-mask-size:contain; mask-size:contain; -webkit-mask-position:left center; mask-position:left center; }
@media(max-width:900px) { header.wrap { height:72px; min-height:72px; } header .kc-brand-logo { width:190px; max-width:60vw; height:46px; } }
@media(max-width:500px) { header .kc-brand-logo { width:160px; max-width:55vw; height:40px; } }

/* v1.5 — unified editorial typography and balanced brand mark */
header.wrap{height:96px;min-height:96px;gap:32px}
header .kc-brand-logo{width:310px;max-width:32vw;height:68px;flex:0 0 auto;overflow:visible}
header .kc-brand-logo-mark{width:100%;height:100%;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-position:center;mask-position:center}
/* Apply the same bold, compact roster treatment to every section heading. */
.section-intro h2,
#talent .section-intro h2,
.festival h2,
.about h2,
.contact h2{
  font-family:Manrope,Arial,sans-serif;
  font-size:clamp(2.65rem,5.1vw,5.8rem);
  font-weight:800;
  letter-spacing:-.065em;
  line-height:1.055;
  text-transform:uppercase;
  overflow-wrap:normal;
  word-break:normal;
}
.section-intro h2{max-width:980px}
.section-intro>div{flex:1 1 64%;min-width:0}
.section-intro>p{flex:0 1 340px}
.section-intro{align-items:center}
.section .eyebrow,.contact .eyebrow{font-size:clamp(.75rem,1vw,.92rem);letter-spacing:.14em;font-weight:800}
.festival h2,.about h2{max-width:920px}
.contact h2{max-width:1100px}
@media(max-width:1100px){header .kc-brand-logo{width:260px;max-width:30vw;height:58px}nav{gap:13px}nav a{font-size:.67rem}}
@media(max-width:900px){header.wrap{height:76px;min-height:76px}header .kc-brand-logo{width:240px;max-width:62vw;height:52px}.section-intro{display:block}.section-intro h2,.festival h2,.about h2,.contact h2,#talent .section-intro h2{font-size:clamp(2.5rem,7vw,4.7rem)}}
@media(max-width:500px){header .kc-brand-logo{width:195px;max-width:62vw;height:43px}.section-intro h2,.festival h2,.about h2,.contact h2,#talent .section-intro h2{font-size:clamp(2.15rem,9.5vw,3.25rem);letter-spacing:-.055em}}

/* v1.6: editable, responsive brand mark; overrides earlier fixed logo rules. */
header.wrap{display:flex;align-items:center;justify-content:space-between;gap:28px}
header .kc-brand-logo{width:auto!important;max-width:42%!important;height:auto!important;min-width:0;flex:0 1 auto;overflow:visible}
header .kc-brand-logo-mark{display:block;width:min(var(--kc-logo-width,275px),100%);height:66px;max-width:100%;background-color:var(--blue);-webkit-mask-image:var(--kc-logo-url);mask-image:var(--kc-logo-url);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:left center;mask-position:left center}
header nav{flex:0 1 auto;justify-content:flex-end;flex-wrap:wrap}
/* Editorial talent gallery: edge-to-edge portraits, no colored cards. */
.roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 18px}
.roster .talent{display:block;position:relative;min-height:0!important;padding:0;background:transparent!important;text-decoration:none;color:var(--blue);transition:none}
.roster .talent:hover{background:transparent!important}
.talent-media{width:100%;aspect-ratio:4/5;overflow:hidden;background:#e9eef4}
.roster .talent-photo{display:block;width:100%;height:100%;margin:0;object-fit:cover;transition:transform .35s ease}
.roster a.talent:hover .talent-photo{transform:scale(1.035)}
.talent-photo-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#e9eef4,#dce5ee)}
.talent-caption{position:relative;padding:13px 24px 4px 0}
.roster .talent h3{font-family:Manrope,Arial,sans-serif;font-size:clamp(.95rem,1.3vw,1.25rem);font-weight:800;line-height:1.25;letter-spacing:-.035em;text-transform:uppercase;overflow-wrap:normal;margin:0 0 5px}
.roster .talent small{display:block;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.055em}
.talent-arrow{position:absolute;right:0;top:12px;font-size:1.2rem}
@media(min-width:1250px){.roster{grid-template-columns:repeat(6,minmax(0,1fr));gap:13px}.talent-caption{padding-top:11px}.roster .talent h3{font-size:clamp(.85rem,1vw,1.08rem)}}
@media(max-width:900px){header .kc-brand-logo{max-width:65%!important}header .kc-brand-logo-mark{height:52px}.roster{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){header .kc-brand-logo{max-width:70%!important}header .kc-brand-logo-mark{height:42px}.roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.roster .talent h3{font-size:.86rem}.roster .talent small{font-size:.65rem}}

/* v1.7: Michael Amani homepage photo with editorial fade into white.
   A photo selected in Homepage afbeeldingen overrides the bundled default. */
.hero{overflow:hidden}
.hero-image{background-image:url("assets/michael-amani-hero.jpg");background-size:cover;background-position:center 24%;position:relative;isolation:isolate}
.hero-image::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--paper) 0%,rgba(246,245,241,.88) 9%,rgba(246,245,241,.32) 38%,rgba(246,245,241,0) 70%)}
@media(min-width:901px){.hero-copy{z-index:3}.hero-copy h1{z-index:4}.hero-image{z-index:1;margin-left:-16%;background-position:center 22%}}
@media(max-width:900px){.hero{overflow:visible}.hero-image{margin-left:0;min-height:440px;background-position:center 18%}.hero-image::after{background:linear-gradient(180deg,var(--paper) 0%,rgba(246,245,241,.25) 22%,transparent 48%)}}
@media(max-width:500px){.hero-image{min-height:370px}}

/* v1.8: Use actual uploaded image rather than CSS mask (which hid some uploads). */
header .kc-brand-logo{display:inline-flex!important;align-items:center;width:auto!important;max-width:42%!important;height:auto!important;overflow:visible!important;flex:0 1 auto}
header .kc-uploaded-logo{display:block!important;width:var(--kc-logo-width,275px)!important;max-width:100%!important;height:auto!important;max-height:66px!important;object-fit:contain!important;object-position:left center;opacity:1!important;visibility:visible!important;filter:none!important;mask:none!important;-webkit-mask:none!important}
header .kc-logo-fallback{font-size:1rem;font-weight:800;line-height:1.1;color:var(--blue)}
@media(max-width:900px){header .kc-brand-logo{max-width:65%!important}header .kc-uploaded-logo{max-height:52px!important}}
@media(max-width:500px){header .kc-brand-logo{max-width:70%!important}header .kc-uploaded-logo{max-height:42px!important}}

/* v1.9 — calmer editorial type scale, consistent alignment and branding */
body{font-size:.955rem}
h1{font-size:clamp(3rem,6.85vw,7.65rem);letter-spacing:-.075em}
.section-intro h2,#talent .section-intro h2,.festival h2,.about h2,.contact h2{font-size:clamp(2.45rem,4.65vw,5.2rem);line-height:1.08;letter-spacing:-.06em}
.service h3{font-size:clamp(1.55rem,2.3vw,2.45rem);line-height:1.2}
.service p,.about p,.festival p,.contact p,.section-intro>p{font-size:.92rem;line-height:1.72}
.section .eyebrow,.contact .eyebrow{font-size:clamp(.71rem,.9vw,.83rem);letter-spacing:.13em}
.section{padding-top:98px;padding-bottom:102px}
.about,.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(36px,5vw,80px);align-items:start}
.about>div,.contact-grid>div{min-width:0}
.about h2,.contact h2{max-width:100%;margin:0}
.about .eyebrow{margin-bottom:25px}
.about p:first-child,.contact-grid p:first-child{margin-top:0}
.contact{padding-top:95px;padding-bottom:95px}
.contact>.eyebrow{margin-bottom:25px}
.contact-grid{align-items:start}
.contact-grid h2{margin:0}
.footer-logo{display:inline-flex;align-items:center;max-width:235px;flex-shrink:0}
.footer-logo img{display:block;width:100%;height:auto;max-height:48px;object-fit:contain;object-position:left center}
@media(max-width:900px){.section-intro h2,#talent .section-intro h2,.festival h2,.about h2,.contact h2{font-size:clamp(2.25rem,6.5vw,4.25rem)}.about,.contact-grid{grid-template-columns:1fr;row-gap:26px}.section{padding-top:72px;padding-bottom:77px}}
@media(max-width:500px){h1{font-size:clamp(2.9rem,12vw,4.4rem)}.section-intro h2,#talent .section-intro h2,.festival h2,.about h2,.contact h2{font-size:clamp(2.05rem,8.7vw,3rem)}.footer-logo{max-width:190px}}

/* v2.0 — refined type scale and contact alignment */
body{font-size:.925rem}
h1{font-size:clamp(2.85rem,6.35vw,7.05rem);line-height:1.015;letter-spacing:-.073em}
.section-intro h2,#talent .section-intro h2,.festival h2,.about h2,.contact h2{font-size:clamp(2.3rem,4.3vw,4.85rem);line-height:1.095;letter-spacing:-.058em}
.service h3{font-size:clamp(1.45rem,2.12vw,2.25rem)}
.service p,.about p,.festival p,.contact p,.section-intro>p{font-size:.885rem;line-height:1.75}
.hero-copy p:not(.eyebrow){font-size:.91rem}
.section .eyebrow,.contact .eyebrow{font-size:clamp(.69rem,.86vw,.79rem)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(36px,5vw,80px);align-items:start}
.contact-heading,.contact-details{min-width:0}
.contact-heading .eyebrow{margin:0 0 26px}
.contact-heading h2{margin:0;max-width:100%;overflow-wrap:normal}
.contact-details{padding-top:43px}
.contact-details>p:first-child{margin-top:0}
@media(max-width:900px){.section-intro h2,#talent .section-intro h2,.festival h2,.about h2,.contact h2{font-size:clamp(2.15rem,6.1vw,3.95rem)}.contact-grid{grid-template-columns:1fr;row-gap:24px}.contact-details{padding-top:0}}
@media(max-width:500px){h1{font-size:clamp(2.6rem,11vw,4.05rem)}.section-intro h2,#talent .section-intro h2,.festival h2,.about h2,.contact h2{font-size:clamp(1.95rem,8.2vw,2.85rem)}}

/* v2.1 — warm off-white editorial canvas, keeping blue contrast and hero fade coherent. */
:root{--paper:#f6f5f1}
header{background:rgba(246,245,241,.95)}

/* v2.2 — editorial inverted brand-name panel */
#brands .brand-grid{
  background:var(--blue);
  border:1px solid rgba(246,245,241,.25);
  overflow:hidden;
}
#brands .brand-cell{
  background:transparent;
  color:var(--paper);
  border-right:1px solid rgba(246,245,241,.24);
  border-bottom:1px solid rgba(246,245,241,.24);
  font-family:Manrope,Arial,sans-serif;
  font-size:clamp(1.05rem,1.8vw,1.65rem);
  font-weight:750;
  letter-spacing:-.045em;
  line-height:1.2;
  min-height:158px;
  padding:24px 18px;
  transition:background-color .22s ease,color .22s ease;
}
#brands .brand-cell:hover{background:rgba(246,245,241,.10)}
@media(max-width:900px){#brands .brand-cell{min-height:132px}}
@media(max-width:500px){#brands .brand-cell{min-height:106px;font-size:clamp(.95rem,4.5vw,1.25rem);padding:18px 10px}}
@media(prefers-reduced-motion:reduce){#brands .brand-cell{transition:none}}

/* v2.3 — aligned About/footer and viewport-aware hero */
@media(min-width:901px){
.hero{min-height:0;height:clamp(560px,calc(100svh - 88px),720px)}
.hero-copy{padding-top:clamp(32px,4vh,60px);padding-bottom:clamp(32px,4vh,60px)}
.hero-copy h1{margin:clamp(15px,2.5vh,26px) 0}
.hero-actions{margin-top:18px}
.hero-image{min-height:0}
}
#about .about{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(38px,5vw,80px);align-items:start}
#about .about>div{min-width:0}
#about .about .eyebrow{margin:0 0 24px}
#about .about h2{margin:0;max-width:620px}
#about .about>div:last-child{padding-top:40px}
#about .about>div:last-child p{margin:0 0 20px;max-width:580px}
#about .about>div:last-child p:last-child{margin-bottom:0}
footer.wrap{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,1fr) minmax(0,1fr);align-items:center;column-gap:28px;min-height:124px}
footer .footer-logo{display:flex;align-items:center;width:min(100%,235px);max-width:235px}
footer .footer-logo img{width:100%;max-height:54px;object-fit:contain;object-position:left center}
footer>div:nth-child(2){text-align:center}
footer>div:last-child{text-align:right}
@media(max-width:900px){#about .about{grid-template-columns:1fr;gap:22px}#about .about>div:last-child{padding-top:0}footer.wrap{grid-template-columns:1fr 1fr;gap:20px}footer .footer-logo{grid-column:1/-1}footer>div:nth-child(2){text-align:left}}
@media(max-width:500px){footer.wrap{grid-template-columns:1fr;gap:14px}footer .footer-logo{grid-column:auto;max-width:200px}footer>div:last-child{text-align:left}}
/* v2.3 final refinements */
@media(min-width:901px){.hero{height:clamp(520px,calc(100svh - 100px),680px)}.hero-copy{padding-top:28px;padding-bottom:28px}.hero-copy h1{font-size:clamp(3rem,6.2vw,6.5rem);line-height:1.01;margin:18px 0}.hero-copy p:not(.eyebrow){line-height:1.55}.hero-actions{margin-top:14px}}
#about .about>div:last-child{padding-top:0}
#about .about>div:last-child p:first-child{margin-top:0}
footer.wrap{box-sizing:border-box}
@media(max-width:900px){.hero{height:auto;min-height:0}.hero-copy{padding-top:60px;padding-bottom:48px}}

/* v2.4 — organic editorial brand constellation, no rigid panel */
#brands .brand-grid {
  display:flex!important;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:clamp(13px,2.3vw,30px);
  padding:clamp(28px,5vw,76px) clamp(10px,3vw,40px);
  background:transparent!important;
  border:0!important;
  overflow:visible!important;
}
#brands .brand-cell {
  display:flex!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-height:0!important;
  padding:clamp(20px,2.7vw,35px) clamp(26px,4vw,58px)!important;
  background:var(--blue)!important;
  color:var(--paper)!important;
  border:1px solid var(--blue)!important;
  border-radius:999px!important;
  font-size:clamp(1.05rem,1.85vw,1.9rem)!important;
  line-height:1.15!important;
  font-weight:750!important;
  letter-spacing:-.045em!important;
  text-align:center;
  transform:rotate(var(--brand-tilt,0deg));
  box-shadow:0 7px 24px rgba(18,61,121,.065);
  transition:transform .3s ease,background-color .3s ease,color .3s ease,box-shadow .3s ease!important;
}
#brands .brand-cell:nth-child(1){--brand-tilt:-4deg}
#brands .brand-cell:nth-child(2){--brand-tilt:3deg;margin-top:30px}
#brands .brand-cell:nth-child(3){--brand-tilt:-2deg}
#brands .brand-cell:nth-child(4){--brand-tilt:4deg;margin-top:-16px}
#brands .brand-cell:nth-child(5){--brand-tilt:3deg}
#brands .brand-cell:nth-child(6){--brand-tilt:-3deg;margin-top:25px}
#brands .brand-cell:nth-child(7){--brand-tilt:2deg}
#brands .brand-cell:nth-child(8){--brand-tilt:-2deg}
#brands .brand-cell:hover {
  background:var(--paper)!important;
  color:var(--blue)!important;
  transform:translateY(-7px) rotate(0deg) scale(1.035);
  box-shadow:0 12px 30px rgba(18,61,121,.12);
}
@media(max-width:600px){
  #brands .brand-grid{gap:12px;padding:24px 0}
  #brands .brand-cell{padding:17px 22px!important;font-size:clamp(.95rem,4vw,1.2rem)!important;margin-top:0!important}
}
@media(prefers-reduced-motion:reduce){#brands .brand-cell{transition:none!important}}

/* v2.5 — brand constellation: oversized editorial typography, orbit lines, no tiles */
#brands .brand-grid{
 position:relative;isolation:isolate;display:grid!important;
 grid-template-columns:repeat(12,minmax(0,1fr))!important;
 grid-template-rows:repeat(4,minmax(105px,auto))!important;
 align-items:center!important;justify-items:center!important;
 gap:0!important;min-height:520px;
 padding:52px 3%!important;margin-top:35px;
 background:transparent!important;border:0!important;overflow:hidden!important;
}
#brands .brand-grid::before{
 content:"";position:absolute;z-index:-1;left:50%;top:50%;
 width:min(82%,780px);aspect-ratio:1;border:1px solid rgba(18,61,121,.16);
 border-radius:50%;transform:translate(-50%,-50%) scaleY(.61);
 box-shadow:0 0 0 65px rgba(246,245,241,1),0 0 0 66px rgba(18,61,121,.10),0 0 0 130px rgba(246,245,241,1),0 0 0 131px rgba(18,61,121,.07);
 pointer-events:none;
}
#brands .brand-grid::after{
 content:"✳";position:absolute;z-index:-1;left:49%;top:48%;
 transform:translate(-50%,-50%);color:rgba(18,61,121,.09);
 font-size:clamp(140px,22vw,320px);line-height:1;pointer-events:none;
}
#brands .brand-cell{
 position:relative;z-index:1;display:block!important;width:max-content!important;
 max-width:100%;min-height:0!important;margin:0!important;
 padding:6px 10px!important;background:transparent!important;
 color:var(--blue)!important;border:0!important;border-radius:0!important;
 box-shadow:none!important;line-height:1.02!important;
 font-family:Manrope,Arial,sans-serif!important;
 font-size:clamp(1.35rem,3.4vw,3.4rem)!important;
 font-weight:800!important;letter-spacing:-.075em!important;
 white-space:nowrap;text-align:center;
 transform:rotate(var(--angle,0deg))!important;
 transition:color .25s ease,transform .25s ease,opacity .25s ease!important;
}
#brands .brand-cell:nth-child(1){grid-column:2/6;grid-row:1;--angle:-8deg}
#brands .brand-cell:nth-child(2){grid-column:8/13;grid-row:1;--angle:5deg;font-size:clamp(1.3rem,2.9vw,2.9rem)!important}
#brands .brand-cell:nth-child(3){grid-column:1/5;grid-row:2;--angle:6deg}
#brands .brand-cell:nth-child(4){grid-column:9/13;grid-row:2;--angle:-9deg}
#brands .brand-cell:nth-child(5){grid-column:3/7;grid-row:3;--angle:-4deg}
#brands .brand-cell:nth-child(6){grid-column:8/13;grid-row:3;--angle:8deg;font-size:clamp(1.1rem,2.6vw,2.5rem)!important}
#brands .brand-cell:nth-child(7){grid-column:2/5;grid-row:4;--angle:7deg}
#brands .brand-cell:nth-child(8){grid-column:7/12;grid-row:4;--angle:-5deg;font-size:clamp(1.1rem,2.4vw,2.4rem)!important}
#brands .brand-cell:hover{color:#5b81ae!important;transform:rotate(0deg) scale(1.12)!important;box-shadow:none!important}
@media(max-width:700px){
 #brands .brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:none!important;
 gap:32px 8px!important;min-height:0;padding:58px 0!important;overflow:hidden!important}
 #brands .brand-grid::before{width:90%;box-shadow:0 0 0 35px var(--paper),0 0 0 36px rgba(18,61,121,.1)}
 #brands .brand-grid::after{font-size:140px}
 #brands .brand-cell:nth-child(n){grid-column:auto!important;grid-row:auto!important;
 font-size:clamp(1rem,4.5vw,1.7rem)!important;white-space:normal;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){#brands .brand-cell{transition:none!important}}
/* v2.6 — restrained editorial brand gallery */
#brands .brand-grid{position:relative!important;isolation:isolate!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:auto!important;align-items:stretch!important;justify-items:stretch!important;gap:0!important;min-height:0!important;overflow:hidden!important;margin:38px 0 0!important;padding:65px 5% 56px!important;background:var(--blue)!important;border:0!important;border-radius:100px 12px 12px 12px!important;box-shadow:none!important}
#brands .brand-grid::before,#brands .brand-grid::after{content:none!important;display:none!important}
#brands .brand-cell,#brands .brand-cell:nth-child(n){position:relative!important;display:flex!important;grid-column:auto!important;grid-row:auto!important;align-items:center!important;justify-content:center!important;width:auto!important;max-width:100%!important;min-height:118px!important;margin:0!important;padding:20px 12px!important;background:transparent!important;color:var(--paper)!important;border:0!important;border-right:1px solid rgba(246,245,241,.22)!important;border-bottom:1px solid rgba(246,245,241,.22)!important;border-radius:0!important;box-shadow:none!important;font-family:Manrope,Arial,sans-serif!important;font-size:clamp(1.05rem,2.1vw,2rem)!important;font-weight:700!important;letter-spacing:-.055em!important;line-height:1.15!important;white-space:normal!important;overflow-wrap:break-word!important;text-align:center!important;transform:none!important;transition:opacity .2s ease!important}
#brands .brand-cell:nth-child(4n){border-right:0!important}
#brands .brand-cell:nth-last-child(-n+4){border-bottom:0!important}
#brands .brand-cell:hover{background:transparent!important;color:var(--paper)!important;opacity:.65!important;transform:none!important;box-shadow:none!important}
@media(max-width:750px){#brands .brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;border-radius:65px 10px 10px 10px!important;padding:48px 22px 32px!important}#brands .brand-cell:nth-child(n){min-height:95px!important;font-size:clamp(1rem,4vw,1.5rem)!important;border-right:1px solid rgba(246,245,241,.22)!important;border-bottom:1px solid rgba(246,245,241,.22)!important}#brands .brand-cell:nth-child(2n){border-right:0!important}#brands .brand-cell:nth-last-child(-n+4){border-bottom:1px solid rgba(246,245,241,.22)!important}#brands .brand-cell:nth-last-child(-n+2){border-bottom:0!important}}

/* v2.7 — blue-on-blue brand showcase inspired by Let's Work Together */
#brands.kc-brands-section {padding-top:clamp(40px,6vw,90px);padding-bottom:clamp(40px,6vw,90px)}
#brands .kc-brand-showcase {position:relative;isolation:isolate;overflow:hidden;background:#123D79;color:#F6F5F1;border-radius:52px 52px 70px 52px;padding:clamp(35px,5.5vw,78px) clamp(26px,5vw,76px) clamp(28px,4vw,56px);}
#brands .kc-brand-showcase::before {content:"";position:absolute;z-index:-1;top:-340px;right:-240px;width:1000px;height:650px;border-radius:50%;background:#244B82;transform:rotate(15deg);pointer-events:none}
#brands .kc-brand-showcase::after {content:"";position:absolute;z-index:-1;bottom:-390px;left:-170px;width:980px;height:600px;border-radius:50%;background:#173F77;transform:rotate(-11deg);pointer-events:none}
#brands .kc-brand-showcase-head {display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.7fr);gap:clamp(30px,6vw,100px);align-items:end;margin-bottom:clamp(45px,7vw,95px)}
#brands .kc-brand-showcase-head .eyebrow {color:#D6E1F0;margin:0 0 25px}
#brands .kc-brand-showcase-head h2 {color:#F6F5F1!important;font-size:clamp(2.2rem,4.5vw,4.9rem);line-height:1.06;letter-spacing:-.055em;margin:0;max-width:730px}
#brands .kc-brand-showcase-head>p {color:#E0E9F4!important;line-height:1.65;font-size:clamp(.98rem,1.2vw,1.18rem);max-width:380px;margin:0 0 5px}
#brands .brand-grid {display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-rows:auto!important;gap:0!important;min-height:0!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;overflow:visible!important;box-shadow:none!important;position:relative!important;}
#brands .brand-grid::before,#brands .brand-grid::after {display:none!important;content:none!important}
#brands .brand-cell,#brands .brand-cell:nth-child(n) {display:flex!important;grid-column:auto!important;grid-row:auto!important;align-items:center!important;justify-content:center!important;min-width:0!important;width:auto!important;min-height:110px!important;max-width:none!important;margin:0!important;padding:22px 14px!important;background:transparent!important;color:#F6F5F1!important;border:0!important;border-right:1px solid rgba(246,245,241,.25)!important;border-bottom:1px solid rgba(246,245,241,.25)!important;border-radius:0!important;box-shadow:none!important;font-size:clamp(1.12rem,2vw,2rem)!important;font-weight:750!important;letter-spacing:-.055em!important;line-height:1.15!important;text-align:center!important;white-space:normal!important;overflow-wrap:anywhere!important;transform:none!important;transition:opacity .2s ease!important}
#brands .brand-cell:nth-child(4n){border-right:0!important}
#brands .brand-cell:nth-last-child(-n+4){border-bottom:0!important}
#brands .brand-cell:hover {opacity:.68!important;background:transparent!important;color:#F6F5F1!important;transform:none!important;box-shadow:none!important}
@media(max-width:750px){#brands .kc-brand-showcase{border-radius:30px;padding:35px 23px 28px}#brands .kc-brand-showcase-head{grid-template-columns:1fr;gap:20px;margin-bottom:34px}#brands .kc-brand-showcase-head h2{font-size:clamp(2rem,8vw,3.2rem)}#brands .brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}#brands .brand-cell:nth-child(n){min-height:88px!important;font-size:clamp(1rem,4.5vw,1.4rem)!important;border-right:1px solid rgba(246,245,241,.25)!important;border-bottom:1px solid rgba(246,245,241,.25)!important}#brands .brand-cell:nth-child(2n){border-right:0!important}#brands .brand-cell:nth-last-child(-n+4){border-bottom:1px solid rgba(246,245,241,.25)!important}#brands .brand-cell:nth-last-child(-n+2){border-bottom:0!important}}
