/* EKS v1.3.0 — Phase 05: precise carousel controls, section spacing, and comprehensive responsive refinement.
   Design tokens remain inherited from the original site. Styles are scoped to EKS to protect Elementor UI. */

/* Keep all imported widgets within the viewport, even with Elementor wrapper containers. */
.eks-site, .eks-site .elementor, .eks-site .elementor-element,
.eks-site .e-con, .eks-site .e-con-inner { min-width: 0; }
.eks-site :where(p,h1,h2,h3,h4,li,a) { overflow-wrap: break-word; }
.eks-site :where(.split,.contact-grid,.footer-grid,.hero-grid,.mega-grid,.cards,.brochure-grid) > * { min-width:0; }
.eks-site img, .eks-site video, .eks-site svg { max-width:100%; }
.eks-site input, .eks-site textarea, .eks-site select, .eks-site button { max-width:100%; }

/* Give the heading/eyebrow a clear pause before any list, cards, or main body. */
.eks-site .section-head { margin-bottom: clamp(30px, 3.6vw, 48px); }
.eks-site .section-head :where(h2,p) { text-wrap: pretty; }
.eks-site .section-head h2 { margin-top: 14px; margin-bottom: 14px; }
.eks-site .section-head p { margin: 0; line-height:1.72; }
.eks-site .eks-team-section .team-carousel { margin-top: clamp(36px, 4vw, 52px); }
.eks-site .eks-team-section .section-head + .team-carousel { margin-top:0; }

/* Team navigation — SVG icons eliminate baseline drift imposed by WordPress/Elementor buttons. */
.eks-site .team-carousel { padding-bottom:0; }
.eks-site .team-carousel-controls {
  margin-top: 14px;
  padding: 24px 10px 0;
  border-top: 1px solid var(--line);
  min-height: 86px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
}
.eks-site .team-carousel-buttons { display:flex;align-items:center;justify-content:flex-end;gap:12px; }
.eks-site .team-carousel-buttons button {
  -webkit-appearance:none;appearance:none;
  flex:0 0 58px;width:58px;height:58px;aspect-ratio:1;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:999px;box-sizing:border-box;padding:0;margin:0;
  line-height:1;min-height:0;min-width:0;
  vertical-align:middle;text-indent:0;
  background:var(--ivory2);border:1px solid #c7a66a70;
  color:var(--navy);
}
.eks-site .team-carousel-buttons button svg { display:block;width:21px;height:21px;min-width:21px;min-height:21px;max-width:none;flex:0 0 auto;pointer-events:none;stroke:currentColor;overflow:visible; }
.eks-site .team-carousel-buttons button:focus-visible { outline:3px solid var(--gold);outline-offset:3px; }
.eks-site .team-carousel-buttons button:disabled { opacity:.42;cursor:not-allowed; }
.eks-site .team-carousel-count { white-space:nowrap; font-variant-numeric:tabular-nums; }
.eks-site .team-carousel-track { touch-action:pan-y; }

/* Footer — explicit separation between each column heading and its first item. */
.eks-site .footer-grid { align-items:start; }
.eks-site .footer-grid > div { min-width:0; }
.eks-site .footer h4 { display:block; margin:0 0 20px; line-height:1.5; }
.eks-site .footer-links { display:grid;grid-template-columns:minmax(0,1fr);gap:13px; }
.eks-site .footer-links a { display:block;width:fit-content;max-width:100%;line-height:1.6; }
.eks-site .footer-grid p { margin:0;max-width:385px;line-height:1.75; }
.eks-site .footer-bottom { margin-top:36px; }

/* Interaction affordances: leave typography/branding intact. */
.eks-site .navlinks > a, .eks-site .navdrop > button, .eks-site .mega-links a { touch-action:manipulation; }
.eks-site .mobile-toggle { display:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;white-space:nowrap; }
.eks-site .navdrop > button[aria-expanded="true"] { color:#94723d; }
.eks-site .eks-enquiry-form .field input,
.eks-site .eks-enquiry-form .field textarea,
.eks-site .eks-enquiry-form .field select { font-size:16px; line-height:1.5; box-sizing:border-box; }
.eks-site .eks-enquiry-form :where(input,select,textarea):focus-visible { outline:2px solid var(--gold);outline-offset:1px; }
.eks-site .eks-enquiry-form .form-actions { display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px; }
.eks-site .eks-enquiry-form .form-status { flex:0 0 100%; }
.eks-site .eks-enquiry-form .form-status[aria-busy="true"] { opacity:.8; }
.eks-site .brochure img { max-width:100%; }
.eks-site .brochure a { min-width:0;overflow-wrap:anywhere; }

@media (max-width: 1100px) {
  .eks-site .container { width:min(100% - 40px,1200px); }
  .eks-site .nav { gap:16px; }
  .eks-site .navlinks { gap:14px; }
  .eks-site .brand { min-width:0;flex:0 1 250px; }
  .eks-site .brand-name { font-size:11px; }
  .eks-site .section { padding:clamp(52px,7vw,76px) 0; }
  .eks-site .split { gap:clamp(24px,4vw,44px); }
  .eks-site .service-card { padding:clamp(19px,2.3vw,27px); }
  .eks-site .brochure { gap:16px; }
}

/* Tablet portrait: navigation becomes a real touch-friendly accordion; all original
   asymmetric service-page grids become readable single columns. */
@media (max-width: 900px) {
  .eks-site .nav { min-height:72px;gap:16px; }
  .eks-site .mobile-toggle { display:inline-flex;flex:0 0 48px;align-self:center; }
  .eks-site .navlinks {
    display:none;position:absolute;left:0;right:0;top:100%;z-index:90;
    padding:12px max(20px,calc((100vw - 1200px)/2)) 20px;
    background:var(--ivory2);border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);box-shadow:0 22px 34px #101d352b;
    max-height:calc(100dvh - 72px);overflow:auto;overscroll-behavior:contain;
    flex-direction:column;align-items:stretch;gap:0;
  }
  .eks-site .navlinks.mobile-open { display:flex; }
  .eks-site .navlinks > a, .eks-site .navdrop > button {
    display:flex;align-items:center;justify-content:space-between;
    width:100%;min-height:48px;padding:12px 4px;
    border-bottom:1px solid #dfd4bd75;text-align:left;
    font-size:14px;line-height:1.5;white-space:normal;
  }
  .eks-site .navdrop { position:relative; }
  .eks-site .navdrop > button { border-radius:0; }
  .eks-site .mega { position:static;box-shadow:none;border:0;padding:15px 0 18px;background:transparent; }
  .eks-site .mega-grid { grid-template-columns:minmax(0,1fr);gap:20px; }
  .eks-site .mega-intro {padding:0;border:0;}
  .eks-site .mega-intro h3 {font-size:clamp(20px,3vw,26px);}
  .eks-site .mega-links {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .eks-site .mega-links a {background:#f7f2e8;border:1px solid #dfd4bd80;border-radius:12px;padding:13px 12px;}
  .eks-site .nav-cta {display:none;}
  .eks-site .hero-grid,.eks-site .split,.eks-site .contact-grid {grid-template-columns:minmax(0,1fr);}
  .eks-site .hero-grid {gap:35px;}
  .eks-site .hero-grid > * {min-width:0;}
  .eks-site .hero-art {max-width:560px;margin-inline:auto;}
  .eks-site.service-consultancy main .split,
  .eks-site.service-academy main .split,
  .eks-site.service-audit main .split,
  .eks-site.service-documentation main .split,
  .eks-site.service-transformation main .split,
  .eks-site.service-vsa main .split,
  .eks-site.service-measurements main .split { grid-template-columns:minmax(0,1fr); }
  .eks-site .visual-panel {min-height:300px;}
  .eks-site .contact-grid {gap:22px;}
  .eks-site .footer-grid {gap:30px;}
  .eks-site .team-slide {gap:22px;}
  .eks-site .section-head {max-width:100%;}
}

@media (max-width: 767px) {
  .eks-site .container {width:calc(100% - 36px);}
  .eks-site .topline {padding:7px 0;font-size:10px;letter-spacing:.04em;}
  .eks-site .topline .container {justify-content:center;text-align:center;row-gap:2px;}
  .eks-site .topline .container > * {max-width:100%;}
  .eks-site .nav {min-height:68px;}
  .eks-site .brand {gap:8px;}
  .eks-site .brand-logo {width:58px;height:46px;}
  .eks-site .brand-name {font-size:10px;line-height:1.35;letter-spacing:.02em;}
  .eks-site .brand-name small {font-size:8px;letter-spacing:.09em;margin-top:3px;}
  .eks-site .navlinks {max-height:calc(100dvh - 68px);padding:10px 18px 22px;}
  .eks-site .page-hero,.eks-site .service-page-hero {padding:clamp(55px,8vw,75px) 0;min-height:0;}
  .eks-site .page-hero:after, .eks-site .service-page-hero:before {opacity:.34;pointer-events:none;}
  .eks-site .page-hero h1, .eks-site .service-page-hero h1 {font-size:clamp(31px,7.5vw,48px);line-height:1.14;letter-spacing:-.025em;}
  .eks-site .page-hero p {font-size:clamp(14px,3vw,16px);line-height:1.7;}
  .eks-site .section {padding:clamp(44px,7vw,60px) 0;}
  .eks-site .section-head {margin-bottom:32px;}
  .eks-site .section-head h2 {font-size:clamp(28px,6vw,38px);line-height:1.18;}
  .eks-site .section-head p {font-size:14px;line-height:1.7;}
  .eks-site .cards, .eks-site .eks-service-directory .cards {grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
  .eks-site .service-card {min-height:0;padding:21px 18px;border-radius:18px;}
  .eks-site .service-card h3 {font-size:20px;margin:13px 0 9px;}
  .eks-site .service-card p {font-size:13px;line-height:1.6;}
  .eks-site .split {gap:25px;}
  .eks-site .visual-panel {min-height:0;padding:clamp(24px,5vw,32px);border-radius:22px;box-shadow:6px 9px 0 #c7a66a24,0 20px 44px #101d3522;}
  .eks-site .visual-panel h3 {font-size:clamp(26px,5.8vw,33px);}
  .eks-site .check-list {margin:18px 0;}
  .eks-site .check-list li {padding:11px 0 11px 24px;font-size:14px;}
  .eks-site .cta {padding:clamp(24px,5vw,34px);gap:18px;border-radius:20px;}
  .eks-site .cta h2 {font-size:clamp(26px,5.8vw,34px);}
  .eks-site .cta .btn {max-width:100%;white-space:normal;text-align:center;}
  .eks-site .brochure-grid,.eks-site.page-weekly-training .brochure-grid {grid-template-columns:minmax(0,1fr);gap:19px;}
  .eks-site .brochure {grid-template-columns:120px minmax(0,1fr);}
  .eks-site .contact-box,.eks-site .form-box {padding:clamp(22px,5vw,30px);}
  .eks-site .form-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
  .eks-site .footer {padding:40px 0 24px;}
  .eks-site .footer-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 26px;}
  .eks-site .footer-grid > div:first-child {grid-column:1/-1;}
  .eks-site .footer h4 {margin-bottom:16px;}
  .eks-site .footer-links {gap:12px;}
  .eks-site .team-carousel-track {min-height:0;}
  .eks-site .team-slide {grid-template-columns:minmax(0,1fr);min-height:0;padding:14px 0 20px;gap:20px;}
  .eks-site .team-slide-heading {grid-column:1;grid-row:1;padding:0;}
  .eks-site .team-slide-heading h3 {font-size:clamp(27px,5.5vw,34px);}
  .eks-site .team-slide-photo {grid-column:1;grid-row:2;height:clamp(260px,60vw,430px);max-height:none;width:100%;}
  .eks-site .team-slide-qualifications {grid-column:1;grid-row:3;padding:8px 0 12px;min-height:0;}
  .eks-site .team-slide-qualifications p {max-width:none;line-height:1.7;}
  .eks-site .team-carousel-controls {margin-top:10px;padding:20px 0 0;min-height:70px;}
  .eks-site .team-carousel-buttons button {flex-basis:50px;width:50px;height:50px;}
}

@media (max-width: 560px) {
  .eks-site .container {width:calc(100% - 32px);}
  .eks-site .topline {font-size:9px;}
  .eks-site .brand-logo {width:50px;height:42px;}
  .eks-site .brand-name {font-size:9px;}
  .eks-site .brand-name small {font-size:7px;}
  .eks-site .mega-links {grid-template-columns:minmax(0,1fr);}
  .eks-site .mega-intro p {font-size:12px;line-height:1.6;}
  .eks-site .hero {padding:38px 0 48px;}
  .eks-site .hero-grid {gap:25px;}
  .eks-site .hero h1 {font-size:clamp(31px,8vw,42px);line-height:1.13;}
  .eks-site .hero .hero-copy {font-size:14px;line-height:1.7;}
  .eks-site .hero .actions {display:flex;flex-direction:column;gap:12px;align-items:stretch;}
  .eks-site .hero .actions .btn {width:100%;min-height:44px;white-space:normal;text-align:center;}
  .eks-site .hero-art {padding-top:0;gap:14px;}
  .eks-site .hero-art .float-card.one {margin:0 auto;max-width:min(100%,320px);}
  .eks-site .hero-art .process-visual {width:min(330px,calc(100vw - 36px));}
  .eks-site .hero .process-node {max-width:43%;}
  .eks-site .hero .process-node strong {font-size:10px;line-height:1.25;}
  .eks-site .hero .process-node small {font-size:8px;line-height:1.25;}
  .eks-site .hero .process-core strong {font-size:clamp(12px,3vw,15px);}
  .eks-site .cards,.eks-site .eks-service-directory .cards,.eks-site .team-grid {grid-template-columns:minmax(0,1fr);gap:16px;}
  .eks-site .service-card {padding:23px 21px;min-height:0;}
  .eks-site .service-card h3 {font-size:21px;}
  .eks-site .visual-panel {padding:25px 21px;min-height:0;}
  .eks-site .visual-panel:after {opacity:.5;}
  .eks-site .brochure {grid-template-columns:92px minmax(0,1fr);gap:15px;padding:14px;}
  .eks-site .brochure img {width:92px;height:126px;}
  .eks-site .brochure h3 {font-size:18px;line-height:1.3;}
  .eks-site .brochure p {line-height:1.65;}
  .eks-site.page-weekly-training .brochure {padding:15px;gap:13px;}
  .eks-site.page-weekly-training .brochure img {width:100%;height:auto;max-height:none;}
  .eks-site .contact-box,.eks-site .form-box {padding:21px 18px;border-radius:18px;}
  .eks-site .contact-box h3,.eks-site .form-box h3 {font-size:23px;}
  .eks-site .form-grid {grid-template-columns:minmax(0,1fr);gap:16px;}
  .eks-site .form-grid > * {min-width:0;}
  .eks-site .eks-enquiry-form .form-actions .btn {width:100%;min-height:46px;justify-content:center;}
  .eks-site .footer-grid {grid-template-columns:minmax(0,1fr);gap:31px;}
  .eks-site .footer-grid > div:first-child {grid-column:auto;}
  .eks-site .footer h4 {margin-bottom:15px;}
  .eks-site .footer-links {gap:12px;}
  .eks-site .footer-bottom {margin-top:30px;}
  .eks-site .team-slide-photo {height:clamp(250px,75vw,355px);}
  .eks-site .team-slide-qualifications {padding-bottom:10px;}
  .eks-site .team-carousel-controls {padding-top:18px;}
}
@media (max-width: 360px) {
  .eks-site .container {width:calc(100% - 28px);}
  .eks-site .brand-name {font-size:8px;}
  .eks-site .brand-name small {font-size:7px;}
  .eks-site .nav {gap:8px;}
  .eks-site .mobile-toggle {min-width:44px;min-height:44px;padding:7px 10px;}
  .eks-site .page-hero h1,.eks-site .service-page-hero h1 {font-size:29px;}
  .eks-site .hero-art .process-visual {width:min(275px,calc(100vw - 28px));}
  .eks-site .team-carousel-buttons {gap:8px;}
  .eks-site .team-carousel-buttons button {flex-basis:46px;width:46px;height:46px;}
  .eks-site .team-carousel-count {font-size:11px;}
  .eks-site .brochure {grid-template-columns:80px minmax(0,1fr);}
  .eks-site .brochure img {width:80px;height:110px;}
}

/* Touch-first & accessibility behavior. */
@media (hover:none) {
  .eks-site .service-card:hover,.eks-site .brochure:hover,.eks-site .person:hover {transform:none;}
  .eks-site .footer a:hover,.eks-site .navlinks > a:hover {transform:none;}
}
@media (prefers-reduced-motion:reduce) {
  .eks-site :where(.reveal,.team-slide,.team-slide-photo img,.service-card,.brochure,.team-carousel-buttons button) {animation:none!important;transition:none!important;}
  .eks-site .reveal {opacity:1!important;transform:none!important;}
}

/* Hamburger bars make the small-screen menu recognisable without altering branding. */
.eks-site .eks-mobile-menu-cta { display:none; }
.eks-site .eks-menu-icon {display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:19px;height:19px;}
.eks-site .eks-menu-icon span {display:block;width:19px;height:1.6px;background:currentColor;border-radius:99px;transition:transform .2s,opacity .2s;}
.eks-site .mobile-toggle[aria-expanded="true"] .eks-menu-icon span:nth-child(1) {transform:translateY(6.6px) rotate(45deg);}
.eks-site .mobile-toggle[aria-expanded="true"] .eks-menu-icon span:nth-child(2) {opacity:0;}
.eks-site .mobile-toggle[aria-expanded="true"] .eks-menu-icon span:nth-child(3) {transform:translateY(-6.6px) rotate(-45deg);}
@media(max-width:900px) {
 .eks-site .eks-mobile-menu-cta {display:flex;align-items:center;justify-content:center;margin-top:15px;padding:13px 17px;min-height:46px;border-radius:999px;border:1px solid var(--gold);background:var(--navy);color:var(--ivory);font-size:13px;text-align:center;}
 .eks-site .eks-mobile-menu-cta:hover,.eks-site .eks-mobile-menu-cta:focus-visible {color:var(--gold2);}
}
/* Page-specific desktop silhouettes shouldn't create awkward tiny mobile content areas. */
@media(max-width:767px) {
  .eks-site.service-consultancy .visual-panel,
  .eks-site.service-academy .visual-panel,
  .eks-site.service-audit .visual-panel,
  .eks-site.service-documentation .visual-panel,
  .eks-site.service-transformation .visual-panel,
  .eks-site.service-vsa .visual-panel,
  .eks-site.service-measurements .visual-panel {
    border-radius:20px;
    min-height:0;
    box-shadow:6px 9px 0 #c7a66a24,0 20px 44px #101d3522;
  }
  .eks-site .team-slide-heading,
  .eks-site .team-slide-qualifications {width:100%;}
  .eks-site .form-box .form-actions {display:flex;flex-direction:column;align-items:stretch;}
}

/* Phase 06: progressive enhancement — content is readable when scripts are off.
   The early document marker re-enables source scroll-reveal styling in JS browsers. */
html:not(.eks-js-enabled) .eks-site .reveal,
html:not(.eks-js-enabled) .eks-site .motion-item {
  opacity:1!important;transform:none!important;animation:none!important;
}
/* Elementor wrapper safety without changing the source page geometry. */
.eks-site .elementor-widget-eks-team-carousel,
.eks-site .elementor-widget-eks-frameworks-grid,
.eks-site .elementor-widget-eks-training-brochures,
.eks-site .elementor-widget-eks-contact {min-width:0;width:100%;}
/* Readable focus affordances for form, mega-menu and carousel controls. */
.eks-site :where(.mega-links a,.footer-links a,.btn,.team-carousel-buttons button):focus-visible {
  outline:2px solid var(--gold);outline-offset:3px;
}
@media(max-width:560px){
  .eks-site .footer-grid{row-gap:32px;}
  .eks-site .footer-bottom{line-height:1.7;}
  .eks-site .team-carousel-controls{gap:12px;}
}
