/* =========================================================
   KUANTUM SERVIS V0.5 — INTEGRATED SITE SYSTEM
   Content only. Header/footer intentionally untouched.
   Goal: one coherent website, not a stack of rounded boxes.
========================================================= */
:root{
    --ks-max:1380px;
    --ks-gutter:clamp(22px,3.1vw,52px);
    --ks-navy:#073665;
    --ks-navy-deep:#052a50;
    --ks-blue:#0d74d8;
    --ks-cyan:#63bde8;
    --ks-dark:#142b40;
    --ks-text:#526a7d;
    --ks-muted:#7d90a0;
    --ks-line:#dce7ef;
    --ks-ice:#f4f8fb;
    --ks-ice-2:#eaf3fa;
    --ks-shadow-sm:0 10px 28px rgba(7,54,101,.055);
    --ks-shadow:0 22px 58px rgba(7,54,101,.095);
    --ks-radius:20px;
}

/* ---------------------------------------------------------
   ONE GRID, EVERYWHERE
--------------------------------------------------------- */
.ks-container{
    width:min(var(--ks-max),calc(100% - (var(--ks-gutter) * 2)))!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
}
.ks-page-hero__narrow,.ks-narrow-form{max-width:none!important}
.ks-section{padding:68px 0!important;background:#fff!important}
.ks-section + .ks-section{padding-top:58px!important}
.ks-section-head{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(280px,.62fr);
    gap:56px;
    align-items:end;
    margin-bottom:34px;
}
.ks-section-head>p{max-width:510px;justify-self:end;margin:0;font-size:14px;line-height:1.72}
.ks-section h2{font-size:clamp(32px,3.1vw,47px);line-height:1.06;letter-spacing:-.8px}
.ks-eyebrow{margin-bottom:12px;color:var(--ks-blue);font-size:10px;letter-spacing:2.35px}

/* ---------------------------------------------------------
   PAGE HEADING = A REAL SITE HEADING, NOT A CARD
   It begins directly below the theme header. Only the lower edge
   is softly rounded to transition into the page body.
--------------------------------------------------------- */
.ks-page-hero{
    position:relative;
    overflow:hidden;
    margin:0 0 22px!important;
    padding:0!important;
    background:
        radial-gradient(circle at 86% 24%,rgba(84,184,232,.16),transparent 22%),
        linear-gradient(110deg,#f7fbfe 0%,#edf6fb 100%)!important;
    border:0!important;
    border-bottom:1px solid #dce8f0!important;
    border-radius:0 0 30px 30px;
    box-shadow:0 14px 38px rgba(7,54,101,.045);
}
.ks-page-hero::after{
    content:"";
    position:absolute;
    right:max(var(--ks-gutter),calc((100vw - var(--ks-max))/2 + 12px));
    bottom:24px;
    width:126px;
    height:66px;
    opacity:.16;
    background-image:radial-gradient(circle,var(--ks-blue) 1.25px,transparent 1.7px);
    background-size:14px 14px;
    pointer-events:none;
}
.ks-page-hero>.ks-container{
    position:relative;
    z-index:1;
    overflow:visible!important;
    padding:58px 0 54px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
}
.ks-page-hero h1{
    max-width:1020px;
    margin:0!important;
    color:var(--ks-navy)!important;
    font-size:clamp(40px,4.25vw,62px)!important;
    line-height:1.01!important;
    letter-spacing:-1.65px!important;
}
.ks-page-hero p{max-width:835px;margin:18px 0 0!important;color:var(--ks-text);font-size:15px;line-height:1.72}
.ks-page-hero--compact,.ks-page-hero--split{padding:0!important}
.ks-page-hero--compact>.ks-container{padding-top:50px!important;padding-bottom:46px!important}
.ks-page-hero__grid{display:grid;grid-template-columns:minmax(0,.94fr) minmax(380px,.72fr);gap:54px;align-items:center}
.ks-page-hero__image{overflow:hidden;border:1px solid #d7e4ed;border-radius:18px;background:#fff;box-shadow:var(--ks-shadow-sm)}

/* ---------------------------------------------------------
   HOME: COMBINE HERO + QUICK ACTIONS INTO ONE COMPOSITION
--------------------------------------------------------- */
.ks-banner{
    width:min(var(--ks-max),calc(100% - (var(--ks-gutter) * 2)));
    min-height:505px;
    margin:24px auto 0;
    overflow:hidden;
    border-radius:22px;
    box-shadow:var(--ks-shadow);
}
.ks-banner__inner{width:100%!important;min-height:505px;padding:0 clamp(34px,4vw,62px)!important}
.ks-banner__content{max-width:700px;padding:56px 0}
.ks-banner h1{font-size:clamp(41px,4.35vw,64px)!important;line-height:1!important}
.ks-banner__overlay{background:linear-gradient(90deg,rgba(3,28,54,.94) 0%,rgba(5,45,82,.84) 43%,rgba(5,45,82,.28) 76%,rgba(5,45,82,.04) 100%)}
.ks-btn{min-height:49px;border-radius:10px;padding:0 20px}
.ks-quick{
    position:relative;
    z-index:3;
    margin-top:-28px;
    padding:0 0 22px!important;
    background:transparent!important;
    border:0!important;
}
.ks-quick__grid{
    overflow:hidden;
    border:1px solid var(--ks-line)!important;
    border-radius:18px;
    background:#fff;
    box-shadow:0 16px 38px rgba(7,54,101,.09);
}
.ks-quick__item{min-height:102px;border-color:var(--ks-line);background:#fff}
.ks-quick__item:nth-child(2){background:#f7fbfe}
.ks-quick__item:nth-child(4){background:#f5f9fc}
.ks-quick__item:hover{background:#edf6fc}

/* ---------------------------------------------------------
   SECTION RHYTHM — FULL-WIDTH SURFACES, NOT CONTAINER CARDS
--------------------------------------------------------- */
.ks-services>.ks-container,
.ks-brands>.ks-container,
.ks-documents>.ks-container,
.ks-academy>.ks-container,
.ks-references>.ks-container,
.ks-faq>.ks-container,
.ks-finder>.ks-container,
.ks-quick-finder>.ks-container,
.ks-soft>.ks-container{
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
}
.ks-services{background:#fff!important}
.ks-brands{background:linear-gradient(180deg,#f7fafc 0%,#f2f7fa 100%)!important;border-top:1px solid #e8eff4;border-bottom:1px solid #e8eff4}
.ks-documents{background:#fff!important}
.ks-academy{background:#f6f9fc!important;border-top:1px solid #e9eff4;border-bottom:1px solid #e9eff4}
.ks-references{background:#fff!important}
.ks-faq{background:linear-gradient(180deg,#f5f9fc 0%,#eef5fa 100%)!important;border-top:1px solid #e6eef4;border-bottom:1px solid #e6eef4}
.ks-soft{background:linear-gradient(105deg,#eff6fb 0%,#f8fbfd 100%)!important;border-top:1px solid #e3edf4;border-bottom:1px solid #e3edf4}
.ks-quick-finder{background:#f5f9fc!important;border-top:1px solid #e6eef4;border-bottom:1px solid #e6eef4}
.ks-finder{background:#fff!important}

/* ---------------------------------------------------------
   CARDS ONLY WHERE THEY ADD MEANING
--------------------------------------------------------- */
.ks-card-grid{gap:16px}
.ks-service-card{
    min-height:235px;
    padding:26px;
    border:1px solid #dce7ef;
    border-radius:17px;
    background:#fff;
    box-shadow:0 8px 22px rgba(7,54,101,.045);
}
.ks-service-card:nth-child(2),.ks-service-card:nth-child(4){background:#f5f9fc}
.ks-service-card:hover{transform:translateY(-2px)!important;border-color:#bed3e2;box-shadow:0 15px 32px rgba(7,54,101,.075)}
.ks-service-card span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e9f4fc;color:var(--ks-blue)}
.ks-service-card h3{margin-top:28px}

.ks-values-grid article{
    min-height:215px;
    padding:26px;
    border:1px solid #dce7ef;
    border-radius:17px;
    background:#fff;
    box-shadow:0 7px 20px rgba(7,54,101,.04);
}
.ks-values-grid article:nth-child(2),.ks-values-grid article:nth-child(4){background:#f4f9fc}

/* Feature rows should not become a wall of cards */
.ks-feature-list{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.ks-feature-list>div{
    min-height:84px;
    padding:18px 0;
    display:flex;
    gap:14px;
    align-items:flex-start;
    border:0!important;
    border-bottom:1px solid #dfe8ef!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
}
.ks-feature-list span{width:32px;height:32px;display:grid;place-items:center;flex:0 0 32px;border-radius:10px;background:#e7f3fc;color:var(--ks-blue);font-weight:900}

.ks-academy-card,.ks-reference-card,.ks-logo-card{
    border:1px solid #dce7ef;
    border-radius:17px;
    background:#fff;
    box-shadow:0 8px 22px rgba(7,54,101,.045);
}

/* ---------------------------------------------------------
   SERVICE REQUEST = TWO COORDINATED PANELS
--------------------------------------------------------- */
.ks-service-form-section{background:linear-gradient(180deg,#fff 0%,#f7fafc 100%)!important}
.ks-service-form-section>.ks-container{padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
.ks-form-shell{display:grid;grid-template-columns:minmax(280px,.62fr) minmax(0,1.38fr);gap:22px;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.ks-form-copy{
    padding:36px;
    border:0;
    border-radius:19px;
    background:linear-gradient(145deg,#073665 0%,#0b4f85 100%);
    color:#fff;
    box-shadow:var(--ks-shadow-sm);
}
.ks-form-copy .ks-eyebrow{color:#8fd3ff}
.ks-form-copy h2{color:#fff!important}
.ks-form-copy p{color:rgba(255,255,255,.76)!important}
.ks-form-copy .ks-check-list li{border-color:rgba(255,255,255,.16);color:#fff}
.ks-form-copy .ks-contact-mini a{border-color:rgba(255,255,255,.16)!important;color:#fff!important}
.ks-form-copy .ks-contact-mini span{color:rgba(255,255,255,.6)!important}
.ks-form-copy .ks-contact-mini strong{color:#fff!important}
.ks-service-form{padding:36px;border:1px solid #dce7ef;border-radius:19px;background:#fff;box-shadow:var(--ks-shadow-sm)}
.ks-form-grid input,.ks-form-grid select,.ks-form-grid textarea{border-radius:10px!important;background:#fbfdff!important}
.ks-submit{border-radius:10px!important}

/* ---------------------------------------------------------
   SERVICE FINDER = ONE APPLICATION MODULE (MAP + RESULTS)
--------------------------------------------------------- */
.ks-finder .ks-section-head{grid-template-columns:minmax(0,1fr) minmax(260px,.5fr);margin-bottom:28px}
.ks-finder .ks-section-head>p{display:block}
.ks-finder__panel{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(430px,.95fr);
    overflow:hidden;
    border:1px solid #d8e5ed;
    border-radius:20px;
    background:#fff;
    box-shadow:0 16px 42px rgba(7,54,101,.075);
}
.ks-finder__map-wrap,.ks-finder__map{min-height:520px}
.ks-finder__control{padding:34px;background:linear-gradient(180deg,#fff 0%,#f9fbfd 100%)}
.ks-finder-city{height:52px;border-radius:10px!important;background:#fff!important}
.ks-map-caption,.ks-empty-state{display:none!important}
.ks-finder-results[hidden]{display:none!important}
.ks-finder-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.ks-finder-result-head{grid-column:1/-1;margin:0;padding:0 2px 12px;border-bottom:1px solid var(--ks-line)}
.ks-service-result{
    min-height:96px;
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    align-items:center;
    gap:12px;
    padding:16px;
    border:1px solid #dce7ef!important;
    border-radius:14px;
    background:#fff;
}
.ks-service-result:nth-of-type(even){background:#f6fafd}
.ks-service-result__icon{width:36px;height:36px;border-radius:11px;background:#e8f4fd;color:var(--ks-blue)}
.ks-service-result strong{margin:0!important;font-size:13px;line-height:1.35}
.ks-service-result small{margin-top:5px;color:var(--ks-muted);font-size:8px;letter-spacing:1.1px;text-transform:uppercase}
.ks-result-action{grid-column:1/-1;margin-top:4px}
.ks-result-action .ks-btn{width:100%;justify-content:space-between}

/* ---------------------------------------------------------
   DOCUMENTS / FAQ — TOOL UI, NOT OUTER CARDS
--------------------------------------------------------- */
.ks-doc-toolbar{
    margin-bottom:24px;
    padding:18px;
    border:1px solid #dce7ef;
    border-radius:16px;
    background:#f7fafc;
}
.ks-doc-row{border-radius:12px}
.ks-faq__grid{grid-template-columns:minmax(270px,.62fr) minmax(0,1.38fr);gap:58px}
.ks-accordion{padding:0;border:0;background:transparent}
.ks-accordion details{
    margin-bottom:10px;
    padding:0 20px;
    border:1px solid #dce7ef!important;
    border-radius:13px;
    background:#fff;
}
.ks-accordion details:last-child{margin-bottom:0}
.ks-accordion summary{padding:18px 0}
.ks-accordion details>div{padding:0 30px 18px 0}

/* Reference/project layout avoids lonely little cards */
.ks-references .ks-card-grid--3{grid-template-columns:repeat(12,1fr)}
.ks-references .ks-reference-card{grid-column:span 4}
.ks-references .ks-reference-card:first-child:nth-last-child(1){grid-column:1/-1;display:grid;grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr)}
.ks-references .ks-reference-card:first-child:nth-last-child(1) .ks-reference-card__image{aspect-ratio:auto;min-height:330px}
.ks-references .ks-reference-card:first-child:nth-last-child(1) .ks-reference-card__body{display:flex;flex-direction:column;justify-content:center;padding:40px}
.ks-references .ks-reference-card:first-child:nth-last-child(1) .ks-reference-card__body strong{font-size:26px;line-height:1.2}
.ks-references .ks-reference-card:first-child:nth-last-child(2),
.ks-references .ks-reference-card:first-child:nth-last-child(2)~.ks-reference-card{grid-column:span 6}

/* ---------------------------------------------------------
   CONTACT / FORMS — VARIED COMPOSITION, NOT ONE GIANT CARD
--------------------------------------------------------- */
.ks-contact-page-grid{display:grid;grid-template-columns:minmax(300px,.68fr) minmax(0,1.32fr);gap:22px;align-items:stretch}
.ks-contact-info-card{
    padding:34px;
    border:0!important;
    border-radius:18px;
    background:linear-gradient(145deg,#eef7fd 0%,#f8fbfd 100%);
    box-shadow:none!important;
}
.ks-form-card{padding:34px;border:1px solid #dce7ef;border-radius:18px;background:#fff;box-shadow:var(--ks-shadow-sm)}
.ks-narrow-form{
    width:min(1100px,100%);
    margin:0 auto!important;
    padding:34px 36px;
    border:1px solid #dce7ef;
    border-radius:18px;
    background:#fff;
    box-shadow:var(--ks-shadow-sm);
}

/* ---------------------------------------------------------
   CONTACT CTA = SINGLE PURPOSE CARD (THIS ONE CAN BE A CARD)
--------------------------------------------------------- */
.ks-contact-cta{padding:52px 0!important;background:#fff!important;color:#fff}
.ks-contact-cta__inner{
    padding:34px 38px!important;
    display:grid;
    grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
    align-items:center;
    gap:30px;
    border-radius:20px;
    background:linear-gradient(125deg,#062f5d 0%,#0d4f88 100%);
    box-shadow:var(--ks-shadow);
}
.ks-contact-cta .ks-eyebrow{color:#8fd1ff!important}
.ks-contact-cta h2{font-size:clamp(28px,2.6vw,40px)!important;line-height:1.05;color:#fff!important}
.ks-contact-cta p{margin-top:10px!important;color:rgba(255,255,255,.76)!important}
.ks-contact-cta__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ks-contact-cta__links a{min-height:70px;padding:14px 16px;border:1px solid rgba(255,255,255,.18)!important;border-radius:13px!important;background:rgba(255,255,255,.08)}
.ks-contact-cta__links small{color:rgba(255,255,255,.65)!important}
.ks-contact-cta__links strong{color:#fff!important}

/* ---------------------------------------------------------
   QUICK FINDER = HORIZONTAL BAND, NOT A CARD
--------------------------------------------------------- */
.ks-quick-finder__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.78fr);gap:64px;align-items:end}
.ks-quick-finder__form{padding:18px;border:1px solid #dce7ef;border-radius:15px;background:#fff;box-shadow:0 8px 22px rgba(7,54,101,.04)}

/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */
@media(max-width:1100px){
    .ks-container,.ks-banner{width:min(100% - 44px,1120px)!important}
    .ks-card-grid--5{grid-template-columns:repeat(3,1fr)}
    .ks-finder__panel{grid-template-columns:1fr 1fr}
    .ks-page-hero__grid{grid-template-columns:1fr 1fr;gap:34px}
}
@media(max-width:850px){
    .ks-section{padding:52px 0!important}
    .ks-section + .ks-section{padding-top:44px!important}
    .ks-section-head,.ks-form-shell,.ks-finder__panel,.ks-faq__grid,.ks-contact-cta__inner,.ks-quick-finder__inner,.ks-page-hero__grid,.ks-content-grid,.ks-contact-page-grid{grid-template-columns:1fr}
    .ks-section-head{gap:16px}.ks-section-head>p{justify-self:start}
    .ks-page-hero>.ks-container{padding:46px 0 42px!important}
    .ks-page-hero__image{order:-1}
    .ks-finder__map-wrap,.ks-finder__map{min-height:340px}
    .ks-finder__map-wrap{border-right:0;border-bottom:1px solid var(--ks-line)}
    .ks-finder-results{grid-template-columns:1fr 1fr}
    .ks-contact-cta__links{grid-template-columns:1fr 1fr}
    .ks-references .ks-reference-card,.ks-references .ks-reference-card:first-child:nth-last-child(2),.ks-references .ks-reference-card:first-child:nth-last-child(2)~.ks-reference-card{grid-column:span 6}
    .ks-references .ks-reference-card:first-child:nth-last-child(1){grid-template-columns:1fr}
    .ks-references .ks-reference-card:first-child:nth-last-child(1) .ks-reference-card__image{min-height:250px}
    .ks-feature-list{grid-template-columns:1fr}
}
@media(max-width:600px){
    .ks-container,.ks-banner{width:calc(100% - 32px)!important;padding-left:0!important;padding-right:0!important}
    .ks-page-hero{border-radius:0 0 22px 22px}
    .ks-page-hero>.ks-container{padding:38px 0 36px!important}
    .ks-page-hero::after{display:none}
    .ks-page-hero h1{font-size:36px!important;letter-spacing:-1px!important}
    .ks-page-hero p{font-size:13px}
    .ks-banner{margin-top:14px;border-radius:18px;min-height:0;background:#fff;box-shadow:var(--ks-shadow-sm)}
    .ks-banner__media{position:relative;height:220px}
    .ks-banner__overlay{display:none}
    .ks-banner__inner{min-height:0;display:block;padding:0!important}
    .ks-banner__content{max-width:none;padding:28px 22px 30px;margin:0;background:#fff}
    .ks-banner h1{font-size:35px!important;color:var(--ks-navy)!important;letter-spacing:-1px!important}
    .ks-banner__content>p{color:var(--ks-text)!important;font-size:13px}
    .ks-banner .ks-eyebrow--light{color:var(--ks-blue)}
    .ks-banner .ks-btn--light{background:var(--ks-navy)!important;border-color:var(--ks-navy)!important;color:#fff!important}
    .ks-banner .ks-btn--outline-light{background:#fff!important;border-color:#cbd8e2!important;color:var(--ks-navy)!important}
    .ks-banner__trust span{color:var(--ks-muted)}
    .ks-quick{margin-top:12px;padding-bottom:10px!important}
    .ks-quick__grid,.ks-card-grid--5,.ks-card-grid--4,.ks-card-grid--3,.ks-doc-list,.ks-logo-grid,.ks-values-grid{grid-template-columns:1fr}
    .ks-quick__item{min-height:82px;border-right:1px solid var(--ks-line);border-bottom:1px solid var(--ks-line)}
    .ks-form-copy,.ks-service-form,.ks-contact-info-card,.ks-form-card,.ks-narrow-form{padding:24px 20px;border-radius:16px}
    .ks-finder__control{padding:22px 18px}
    .ks-finder-results{grid-template-columns:1fr}
    .ks-finder-result-head,.ks-result-action{grid-column:auto}
    .ks-contact-cta{padding:38px 0!important}
    .ks-contact-cta__inner{padding:26px 20px!important;border-radius:18px}
    .ks-contact-cta__links{grid-template-columns:1fr}
    .ks-references .ks-card-grid--3{grid-template-columns:1fr}
    .ks-references .ks-reference-card,.ks-references .ks-reference-card:first-child:nth-last-child(1),.ks-references .ks-reference-card:first-child:nth-last-child(2),.ks-references .ks-reference-card:first-child:nth-last-child(2)~.ks-reference-card{grid-column:auto}
    .ks-references .ks-reference-card:first-child:nth-last-child(1){display:block}
    .ks-quick-finder__form{padding:14px}
}
