/* Case studies: the index/about palette, typography tokens, pills and section rhythm. */
.csp{--csp-red:#ff0000;--csp-ink:#470000;--csp-line:rgba(71,0,0,.14);--csp-leaf:40px 6px 40px 6px;color:var(--csp-ink);overflow-x:clip}
.csp .container{max-width:1500px}
.csp-section{position:relative;padding:50px 0;overflow:clip}
.csp [id]{scroll-margin-top:100px}
.csp-tint{background:rgba(255,0,0,.07)}
.csp-dark{background:radial-gradient(ellipse at 100% 0,rgba(255,0,0,.2),transparent 65%),#470000;color:#fff}
.csp-head{display:flex;flex-direction:column;gap:12px;max-width:960px;margin:0 0 28px}
.csp .csp-head>*{margin:0}
.csp-head h2{color:var(--csp-red);text-wrap:balance}
.csp-head p{color:var(--csp-ink)}
.csp-head--center{align-items:center;text-align:center;margin-left:auto;margin-right:auto}
.csp-kicker{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;color:var(--csp-red)}
.csp-tint .csp-head .csp-kicker{padding:7px 16px;border-radius:999px;background:rgba(255,0,0,.06)}
.csp-head--center .csp-kicker{align-self:center}
.csp-dark .csp-head :is(h2,p,.csp-kicker){color:#fff}
.csp p{margin:0 0 12px;color:inherit}
.csp p:last-child{margin-bottom:0}
.csp-title-row{display:flex;align-items:center;gap:12px;min-width:0}
.csp-title-row h3{flex:1;min-width:0;margin:0;color:inherit}
.csp-icon{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;border-radius:18px 4px 18px 4px;background:rgba(255,0,0,.1);color:var(--csp-red);font-size:21px;transition:background .25s ease,color .25s ease}
.csp .csp-icon i,.csp .alive-btn .icon i,.csp .hp-more__ic i{color:inherit}
.csp-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:24px}
.csp-actions--center{justify-content:center;margin-top:28px}
/* Identical closing links to index.php and about.php. */
.csp a.hp-more{display:flex;align-items:center;justify-content:center;gap:12px;width:fit-content;max-width:100%;margin:28px auto 0;color:#ff0000;font-size:16px;font-weight:800;line-height:1.2;text-decoration:none}
.csp .hp-more__ic{display:flex;flex:0 0 40px;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#ff0000;color:#fff;font-size:14px;transition:transform .3s ease}
.csp a.hp-more:hover,.csp a.hp-more:focus-visible{color:#ff0000;text-decoration:none}
.csp a.hp-more:hover .hp-more__ic,.csp a.hp-more:focus-visible .hp-more__ic{transform:translateX(4px)}
.csp a.hp-more--start{justify-content:flex-start;margin:0}
.csp a.hp-more--light,.csp a.hp-more--light:hover,.csp a.hp-more--light:focus-visible{color:#fff}
.csp-actions .hp-more,.csp-project-caption .hp-more{margin:0}
.csp-hero{padding:44px 0 24px;background:linear-gradient(135deg,#fa0000,#ee0101 55%,#e60201);color:#fff;overflow:hidden}
.csp-hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:44px;align-items:center}
.csp-hero .csp-kicker{padding:9px 16px;border:1px solid rgba(255,255,255,.65);border-radius:999px;color:#fff}
.csp-hero h1{margin:20px 0 16px;color:#fff;text-wrap:balance}
.csp-hero p{color:#fff}
html body .csp p.csp-lead:not(#_){font-size:var(--fs-lead);line-height:var(--lh-lead);font-weight:700}
.csp-hero .csp-solid{background:#470000;border-color:#470000;color:#fff}
.csp-hero .csp-solid .icon{background:#fff;color:#470000}
.csp-hero .csp-solid:hover,.csp-hero .csp-solid:focus-visible{background:#fff;border-color:#fff;color:#470000}
.csp-hero .csp-solid:hover .icon,.csp-hero .csp-solid:focus-visible .icon{background:#470000;color:#fff}
.csp-hero-art{position:relative;min-width:0;padding:0 0 110px 26px}
.csp-browser{overflow:hidden;border:5px solid #fff;border-radius:14px;background:#fff;box-shadow:0 22px 50px rgba(71,0,0,.3)}
.csp-browser--main{transform:rotate(3deg)}
.csp-browser-bar{display:flex;align-items:center;gap:5px;height:30px;padding:0 8px;color:#470000;background:#fff}
.csp-browser-bar>span{width:6px;height:6px;border-radius:50%;background:#f2b5b5}
.csp-browser-bar b{margin-left:8px;font-size:var(--fs-meta)}
.csp-browser img{display:block;width:100%;height:auto;aspect-ratio:1.45;object-fit:cover;object-position:top}
.csp-browser--small{position:absolute;bottom:0;left:0;width:54%;transform:rotate(-5deg)}
.csp-browser--small img{aspect-ratio:1.5}
.csp-art-label{position:absolute;bottom:18px;right:-6px;display:flex;align-items:center;gap:10px;padding:12px 16px;background:#470000;border:1px solid rgba(255,255,255,.3);border-radius:16px;color:#fff;box-shadow:0 12px 30px rgba(71,0,0,.22)}
.csp-art-label .csp-icon{background:#ff0000;color:#fff;flex-basis:40px;width:40px;height:40px}
.csp-art-label span{font-size:var(--fs-small);line-height:1.45}
.csp-art-label strong{display:block}
.csp p.csp-hero-note{margin:30px 0 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.3);text-align:center}
.csp-hero-note>span{padding:0 12px;opacity:.65}
.csp-experience{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:center}
.csp-experience-story .csp-title-row{margin-bottom:16px}
.csp-experience-story .hp-more{margin-top:24px}
.csp-checks{display:grid;gap:8px;list-style:none;padding:0;margin:16px 0 24px}
.csp-checks li{position:relative;padding-left:24px}
.csp-checks li::before{content:'\2713';position:absolute;left:0;color:#ff0000;font-weight:700}
.csp-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.csp-stat{display:flex;align-items:center;gap:12px;padding:24px 20px;background:#fff2f2;border:1px solid rgba(255,0,0,.1);border-radius:24px 5px 24px 5px}
.csp-stat>div{min-width:0;display:flex;flex-direction:column;gap:4px}
.csp-stat strong{font-size:var(--fs-h3);font-weight:700;line-height:1.2;overflow-wrap:anywhere}
.csp-stat:last-child strong{font-size:var(--fs-h4)}
.csp-stat span:not(.csp-icon){font-size:var(--fs-small)}
.csp-featured-list{display:flex;flex-direction:column;gap:28px}
.csp-featured{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;padding:24px;background:#fff;border:1px solid var(--csp-line);border-radius:var(--csp-leaf);box-shadow:0 12px 32px rgba(71,0,0,.05);align-items:start}
.csp-featured:nth-child(even){grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
.csp-featured:nth-child(even) .csp-project-visual{order:2}
.csp-project-visual{min-width:0;padding:20px;background:#fff1f1;border-radius:26px 5px 26px 5px}
.csp-project-number{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;color:#ff0000}
.csp-project-visual>img{display:block;width:100%;height:auto;aspect-ratio:1.12;object-fit:cover;object-position:top;border-radius:10px;border:1px solid var(--csp-line);box-shadow:0 8px 24px rgba(71,0,0,.09)}
.csp-project-caption{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:18px}
.csp-project-caption>span{font-size:var(--fs-small);font-weight:700}
.csp-project-story{min-width:0}
.csp .csp-project-story .csp-title-row{margin-bottom:10px}
.csp-project-story h4{margin:14px 0;color:#470000}
html body .csp p.csp-project-service:not(#_){color:#ff0000;font-size:var(--fs-small);line-height:var(--lh-small)}
html body .csp p.csp-project-scope:not(#_){font-size:var(--fs-small);line-height:var(--lh-small)}
.csp-story-part{margin-top:16px}
.csp-story-part h5{margin:0 0 8px;color:#470000}
.csp-story-part p{margin-bottom:8px}
.csp-story-outcome{padding:16px 18px;border-left:3px solid #ff0000;background:#fff3f3;border-radius:0 10px 10px 0}
.csp-tags{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:18px 0 0;list-style:none}
html body .csp .csp-tags li:not(#_){padding:5px 10px;border:1px solid #f1d1d1;border-radius:999px;font-size:var(--fs-small);line-height:1.35;color:#470000}
.csp-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.csp-project-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--csp-line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 24px rgba(71,0,0,.05)}
.csp-project-card>img{display:block;flex-shrink:0;width:100%;height:auto;aspect-ratio:1.6;object-fit:cover;object-position:top;border-bottom:1px solid var(--csp-line)}
.csp-project-card-body{display:flex;flex-direction:column;flex:1;padding:22px}
.csp-project-card-body>.csp-project-details{margin-top:auto;padding-top:18px}
@supports(grid-template-rows:subgrid){
  .csp-project-card{display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:0}
  .csp-project-card-body{display:grid;grid-row:span 5;grid-template-rows:subgrid;row-gap:0}
  .csp-project-card-body>.csp-project-details{margin-top:18px;padding-top:0}
}
/* Keep shared tracks when a disclosure opens so every summary stays aligned. */
.csp-project-card-body>.csp-project-details{align-self:start}
.csp-meta{display:block;margin-bottom:12px;color:#ff0000;font-size:var(--fs-meta);font-weight:700}
.csp-project-card .csp-title-row{margin-bottom:12px}
.csp-project-card .csp-icon{width:40px;height:40px;flex-basis:40px;font-size:18px}
.csp-project-details{margin-top:18px;border-top:1px solid var(--csp-line)}
.csp-project-details summary{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;padding:16px 0 0;font-weight:700;cursor:pointer;color:#ff0000}
.csp-project-details summary::-webkit-details-marker{display:none}
.csp-project-details summary>span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:#ff0000;color:#fff;font-size:22px}
.csp-project-details[open] summary>span{transform:rotate(45deg)}
.csp-project-details>div{padding-top:16px}
.csp-project-details h5{margin:16px 0 8px;color:#470000}
.csp-project-details h5:first-child{margin-top:0}
.csp .csp-project-details .hp-more{margin-top:20px}
.csp-services{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.csp-service-card{display:flex;flex-direction:column;gap:14px;min-width:0;padding:24px 22px;border:1px solid rgba(255,0,0,.1);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(71,0,0,.06);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.csp-service-card:hover{transform:translateY(-3px);border-color:rgba(255,0,0,.3);box-shadow:0 16px 34px rgba(71,0,0,.12)}
.csp-service-card .csp-icon{border-radius:14px}
.csp-service-card:hover .csp-icon{background:#ff0000;color:#fff}
.csp-service-card h3 a{color:#470000;text-decoration:none}
.csp-service-card h3 a:hover{color:#ff0000}
.csp-service-card p{margin:0}
.csp .csp-service-card .hp-more{margin-top:auto;padding-top:14px;border-top:1px solid #f0e6e8;justify-content:space-between;width:100%}
.csp-industry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.csp-industry-card{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:26px;border:1px solid rgba(71,0,0,.12);border-radius:24px 5px 24px 5px;background:#fff;color:#470000;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.csp-industry-card .csp-title-row h3{color:#ff0000}
.csp-industry-card .csp-icon{background:#ff0000;color:#fff}
.csp-industry-card p{margin:0;color:#470000}
.csp .csp-industry-card .hp-more{margin-top:auto;color:#ff0000}
.csp-related>strong{display:block;margin-bottom:8px;font-size:var(--fs-small)}
.csp-related>div{display:flex;flex-wrap:wrap;gap:8px}
.csp-related a{padding:5px 10px;border-radius:999px;background:#fff1f1;border:1px solid rgba(255,0,0,.15);color:#470000;font-size:var(--fs-small);text-decoration:none;transition:background .2s ease,color .2s ease,border-color .2s ease}
.csp-related a:hover,.csp-related a:focus-visible{background:#ff0000;border-color:#ff0000;color:#fff}
.csp-industry-more{margin-top:24px;padding-top:24px;border-top:1px solid var(--csp-line)}
.csp-industry-more h3{margin:0 0 10px;color:var(--csp-ink)}
.csp-industry-more p{color:var(--csp-ink)}
#industries{background:#e31e2624}
.csp-process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none}
.csp-step{position:relative;min-width:0;padding:30px;border:1px solid var(--csp-line);border-radius:18px;background:#fff;box-shadow:0 4px 20px rgba(71,0,0,.035);overflow:hidden;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.csp-step::before{content:'';position:absolute;left:30px;right:30px;top:0;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,#ff0000,rgba(255,0,0,.08));transform:scaleX(.25);transform-origin:left;transition:transform .25s ease}
.csp-step-number{display:flex;align-items:center;justify-content:center;flex:0 0 52px;width:52px;height:52px;border:1px solid rgba(255,0,0,.14);border-radius:14px;background:#fff1f1;color:#ff0000;font-size:22px;font-weight:800;line-height:1;transition:background .25s ease,color .25s ease,box-shadow .25s ease}
.csp-step .csp-title-row{align-items:flex-start;gap:18px;margin-bottom:18px}
#project-approach .csp-step h3{align-self:center;font-size:20px;line-height:1.4;letter-spacing:-.3px}
.csp-step p{margin:0;line-height:1.7}
#project-approach{background:linear-gradient(180deg,#fff 0%,#fffafa 100%)}
#project-approach .csp-head{margin-bottom:36px}
#project-approach .csp-kicker{font-size:12px;font-weight:800;letter-spacing:2px}
#project-approach .csp-process{gap:24px;grid-auto-rows:1fr}
#project-approach>.container>.hp-more{margin-top:32px}
@media(hover:hover){.csp-step:hover{transform:translateY(-4px);border-color:rgba(255,0,0,.3);box-shadow:0 14px 32px rgba(71,0,0,.08)}.csp-step:hover::before{transform:scaleX(1)}.csp-step:hover .csp-step-number{background:#ff0000;color:#fff;box-shadow:0 6px 16px rgba(255,0,0,.18)}}
@media(max-width:639px){#project-approach .csp-process{gap:16px;grid-auto-rows:auto}#project-approach .csp-step{padding:24px}#project-approach .csp-step h3{font-size:18px}.csp-step-number{flex-basis:46px;width:46px;height:46px;font-size:20px}}
@media(prefers-reduced-motion:reduce){.csp-step,.csp-step::before,.csp-step-number{transition:none}.csp-step:hover{transform:none}}
.csp-purpose{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:36px;align-items:start}
.csp-purpose-image{display:block;width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;border-radius:var(--csp-leaf)}
.csp-feature-list{display:grid;gap:16px}
.csp-feature-item{display:flex;gap:16px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--csp-line)}
.csp-feature-item:last-child{padding-bottom:0;border-bottom:0}
.csp-feature-item h3{margin:8px 0 10px;color:#470000}
.csp-feature-item p{margin:0 0 10px}
.csp-why-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;grid-auto-rows:1fr}
.csp-why-card{position:relative;min-width:0;padding:28px;border:1px solid rgba(71,0,0,.1);border-radius:18px;background:linear-gradient(145deg,#fff 65%,#fff7f7);box-shadow:0 5px 22px rgba(71,0,0,.04);overflow:hidden;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.csp-why-card::after{content:'';position:absolute;left:28px;bottom:0;width:42px;height:3px;border-radius:3px 3px 0 0;background:#ff0000;opacity:.4;transition:width .25s ease,opacity .25s ease}
.csp-why-card .csp-title-row{align-items:flex-start;gap:16px;margin-bottom:18px}
.csp-why-card .csp-title-row h3{align-self:center;font-size:20px;line-height:1.4;letter-spacing:-.3px}
.csp-why-card .csp-icon{width:52px;height:52px;flex-basis:52px;border-radius:14px;border:1px solid rgba(255,0,0,.1);background:#fff0f0;font-size:22px;transition:background .25s ease,color .25s ease,box-shadow .25s ease}
.csp-why-card p{line-height:1.7}
@media(hover:hover){.csp-why-card:hover{transform:translateY(-4px);border-color:rgba(255,0,0,.3);box-shadow:0 14px 32px rgba(71,0,0,.08)}.csp-why-card:hover::after{width:82px;opacity:1}.csp-why-card:hover .csp-icon{background:#ff0000;color:#fff;box-shadow:0 6px 16px rgba(255,0,0,.18)}}
@media(max-width:639px){.csp-why-grid{gap:16px;grid-auto-rows:auto}.csp-why-card .csp-title-row h3{font-size:18px}.csp-why-card .csp-icon{width:46px;height:46px;flex-basis:46px;font-size:20px}}
@media(prefers-reduced-motion:reduce){.csp-why-card,.csp-why-card::after,.csp-why-card .csp-icon{transition:none}.csp-why-card:hover{transform:none}}
.csp-global{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:center}
.csp-map{position:relative;border:1px solid var(--csp-line);border-radius:var(--csp-leaf);background:#fff;overflow:hidden}
.csp-map>img{display:block;width:100%;height:auto;opacity:.4;filter:brightness(0) saturate(100%) invert(9%) sepia(86%) saturate(5800%) hue-rotate(352deg) brightness(88%) contrast(113%)}
.csp-map-orbit{position:absolute;left:-35%;top:-100%;width:140%;height:180%;border:1px solid rgba(255,0,0,.18);border-radius:50%;transform:rotate(-25deg);pointer-events:none}
.csp-map-country{position:absolute;width:10px;height:10px;transform:translate(-50%,-50%);z-index:1;color:#470000;text-decoration:none}
.csp-map-country::before{content:'';position:absolute;inset:-28px;border-radius:50%;background:radial-gradient(circle,rgba(255,0,0,.65),rgba(255,0,0,.22) 40%,transparent 72%);opacity:0;transform:scale(.6);transition:opacity .25s ease,transform .25s ease;pointer-events:none}
.csp-map-dot{position:absolute;inset:0;border-radius:50%;background:#ff0000;box-shadow:0 0 0 3px rgba(255,0,0,.12)}
.csp-map-label{position:absolute;left:18px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:5px;white-space:nowrap;padding:3px 10px 3px 4px;border:1px solid #ff0000;border-radius:999px;background:#fff;color:#470000;font-size:clamp(9px,.75vw,13px);line-height:1.2;font-weight:700;box-shadow:0 5px 14px rgba(71,0,0,.12);transition:box-shadow .25s ease,background .25s ease,color .25s ease}
.csp-map-label img{width:20px;height:20px;border-radius:50%;object-fit:cover;flex-shrink:0}
.csp-map-country--1 .csp-map-label{left:auto;right:-40px;top:-20px}
.csp-map-country--2 .csp-map-label{left:-20px;top:32px}
.csp-map-country:hover,.csp-map-country:focus-visible{z-index:3}
.csp-map-country:hover::before,.csp-map-country:focus-visible::before,
.csp-global:has(.csp-region-card[data-region="0"]:is(:hover,:focus-within)) .csp-map-country--0::before,
.csp-global:has(.csp-region-card[data-region="1"]:is(:hover,:focus-within)) .csp-map-country--1::before,
.csp-global:has(.csp-region-card[data-region="2"]:is(:hover,:focus-within)) .csp-map-country--2::before,
.csp-global:has(.csp-region-card[data-region="3"]:is(:hover,:focus-within)) .csp-map-country--3::before{opacity:1;transform:scale(1)}
.csp-map-country:hover .csp-map-label,.csp-map-country:focus-visible .csp-map-label,
.csp-global:has(.csp-region-card[data-region="0"]:is(:hover,:focus-within)) .csp-map-country--0 .csp-map-label,
.csp-global:has(.csp-region-card[data-region="1"]:is(:hover,:focus-within)) .csp-map-country--1 .csp-map-label,
.csp-global:has(.csp-region-card[data-region="2"]:is(:hover,:focus-within)) .csp-map-country--2 .csp-map-label,
.csp-global:has(.csp-region-card[data-region="3"]:is(:hover,:focus-within)) .csp-map-country--3 .csp-map-label{background:#ff0000;color:#fff;box-shadow:0 0 18px rgba(255,0,0,.5)}
@media(max-width:575px){.csp-map-label{gap:3px;padding-right:6px;font-size:8px}.csp-map-label img{width:14px;height:14px}.csp-map-country--1 .csp-map-label{right:-20px}.csp-map-country--2 .csp-map-label{top:27px}}
@media(prefers-reduced-motion:reduce){.csp-map-country::before,.csp-map-label{transition:none}}
.csp-regions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.csp-region-card{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--csp-line);border-radius:24px 4px 24px 4px;background:#fff;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.csp-region-card:hover,.csp-region-card:focus-within{transform:translateY(-4px);border-color:#ff0000;box-shadow:0 18px 40px rgba(255,0,0,.22)}
@media(prefers-reduced-motion:reduce){.csp-region-card{transition:none}.csp-region-card:hover,.csp-region-card:focus-within{transform:none}}
.csp-region-card h3{color:#ff0000}
.csp-region-card .csp-title-row>img{flex:0 0 44px;width:44px;height:44px;object-fit:cover;border-radius:50%;box-shadow:0 0 0 1px var(--csp-line)}
.csp-region-card p{margin:0}
.csp .csp-region-card .hp-more{margin-top:auto}
.csp p.csp-global-note{margin:24px 0 0;text-align:center}
.csp-cta{position:relative}
.csp-cta-content{position:relative;z-index:2;max-width:880px}
.csp-cta :is(h2,p,.csp-kicker){color:#fff}
.csp-cta h2{margin:18px 0;text-wrap:balance}
.csp p.csp-brand{margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.24);font-weight:700}
.csp-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(min-width:1100px){.csp-project-visual{position:sticky;top:100px}}
@media(max-width:1199px){.csp-services{grid-template-columns:repeat(2,minmax(0,1fr))}.csp-global{grid-template-columns:minmax(0,1fr)}.csp-map{max-width:760px;margin:auto}.csp-hero-grid{gap:28px}.csp-art-label{right:0;bottom:-10px;padding:10px}.csp-art-label .csp-icon{display:none}.csp-experience{gap:24px}.csp-stat{padding:20px 16px}.csp-stat .csp-icon{width:40px;height:40px;flex-basis:40px}}
@media(max-width:991px){.csp-hero-grid,.csp-experience,.csp-purpose,.csp-featured,.csp-featured:nth-child(even){grid-template-columns:minmax(0,1fr)}.csp-hero-art{width:min(100%,640px);margin:12px auto 0}.csp-featured:nth-child(even) .csp-project-visual{order:0}.csp-project-visual>img{aspect-ratio:1.65}.csp-project-grid,.csp-process,.csp-why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.csp-featured{gap:24px}.csp-head{max-width:100%}.csp-purpose-image{max-height:360px}.csp-stat:last-child strong{font-size:var(--fs-h3)}}
@media(max-width:639px){.csp-section{padding:36px 0}.csp-hero{padding-top:32px}.csp-hero-grid{gap:20px}.csp-head{gap:10px;margin-bottom:24px}.csp-head h2{text-wrap:wrap}.csp-hero-art{padding-left:12px;padding-bottom:90px}.csp-art-label{max-width:59%;bottom:0;padding:10px}.csp-art-label span{font-size:var(--fs-meta)}.csp-browser{border-width:3px}.csp-browser-bar b{font-size:11px}.csp-browser-bar{height:24px}.csp-stats{gap:12px}.csp-stat{gap:10px;padding:18px 12px;flex-direction:column;align-items:flex-start}.csp-stat strong,.csp-stat:last-child strong{font-size:var(--fs-h4)}.csp-project-grid,.csp-services,.csp-industry-grid,.csp-process,.csp-why-grid,.csp-regions{grid-template-columns:minmax(0,1fr)}.csp-featured{padding:18px;border-radius:28px 5px 28px 5px}.csp-project-visual{padding:14px}.csp-project-visual>img{aspect-ratio:1.3}.csp-service-card,.csp-why-card,.csp-step,.csp-industry-card{padding:20px}.csp-project-card-body{padding:20px}.csp-cta{padding:28px 20px;border-radius:28px 5px 28px 5px}.csp-hero-note>span{padding:0 5px}.csp-title-row{gap:10px}.csp-title-row h3{overflow-wrap:anywhere}.csp .csp-actions{gap:12px}.csp-feature-item{gap:12px}}
@media(prefers-reduced-motion:reduce){.csp *, .csp *::before, .csp *::after{scroll-behavior:auto;transition:none;animation:none}}

/* Shared homepage/about FAQ layout. */
#faq { position: relative; overflow: hidden; background: #470000; }
#faq::before { content: ""; position: absolute; left: 43%; top: -330px; width: 440px; height: 440px; border-radius: 50%; background: rgba(255, 0, 0, .14); pointer-events: none; }
#faq .container { position: relative; z-index: 1; }
#faq .faq-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: 36px; align-items: center; }
@media (min-width: 992px) { #faq .faq-split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; } }
#faq .faq-intro { position: relative; padding: 0; border-radius: 0; background: none; color: #fff; }
#faq .faq-intro::before { content: none; }
#faq .faq-kicker { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 22px; padding: 7px 16px; border-radius: 999px; background: #fff; color: #470000; font-size: 13px; font-weight: 800; letter-spacing: .08em; line-height: 1.3; text-transform: uppercase; }
#faq .faq-kicker i { color: #ff0000; font-size: 14px; }
#faq .faq-title { position: relative; margin: 0 0 20px; color: #fff; font-weight: 800; line-height: 1.2; letter-spacing: -.015em; }
#faq .faq-title span { display: block; color: #ff0000; }
#faq .faq-rule { display: block; width: 44px; height: 2px; margin: 0 0 30px; border-radius: 2px; background: #ff0000; }
#faq .faq-art { display: block; width: min(100%, 380px); height: auto; overflow: visible; }

#faq .faq-right { padding: 14px; border-radius: 22px; background: #fff; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); }
#faq .hp-faq-list { display: flex; flex-direction: column; gap: 0; margin: 0; }
#faq .hp-faq-item { border: 0; border-bottom: 1px solid #f6d6d6; border-radius: 10px; background: transparent; overflow: hidden; transition: background .2s ease; }
#faq .hp-faq-item:last-child { border-bottom-color: transparent; }
#faq .hp-faq-item:hover, #faq .hp-faq-item[open] { border-bottom-color: transparent; background: #fadcdc; }
#faq .hp-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding: 12px 18px; color: #470000; font-weight: 700; line-height: 1.4; cursor: pointer; list-style: none; }
#faq .hp-faq-item summary:focus-visible { outline: 2px solid #ff0000; outline-offset: -3px; }
#faq .hp-faq-item summary::-webkit-details-marker { display: none; }
#faq .hp-faq-q { flex: 1 1 auto; min-width: 0; }
#faq .hp-faq-item summary::after { content: "+"; flex: 0 0 24px; width: 24px; background: none; color: #ff0000; font-size: 24px; font-weight: 700; line-height: 1; text-align: center; }
#faq .hp-faq-item[open] summary { background: none; color: #470000; }
#faq .hp-faq-item[open] summary::after { content: "\2212"; background: none; color: #ff0000; }
#faq .hp-faq-item p { margin: 0; padding: 0 56px 18px 18px; color: #470000; font-size: 16px; line-height: 1.65; }
#faq .hp-faq-item[open] p { animation: faq-in .25s ease; }
@keyframes faq-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (max-width: 575px) { #faq .faq-right { padding: 8px; border-radius: 18px; } #faq .hp-faq-item summary { gap: 12px; padding: 12px 12px; } #faq .hp-faq-item p { padding: 0 14px 16px 12px; } #faq .faq-art { width: min(100%, 280px); } }


/* Case studies hero: actual homepage captures in responsive device frames. */
.csp-hero{position:relative;padding:48px 0 28px;background:radial-gradient(ellipse at 85% 15%,rgba(71,0,0,.72),transparent 48%),radial-gradient(ellipse at 65% 100%,#b60000,transparent 65%),#ff0000}
.csp-hero .container{position:relative;z-index:1;width:100%;max-width:1500px;box-sizing:border-box}
.csp-hero-grid{grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);gap:28px}
.csp-hero-copy{position:relative;z-index:2;min-width:0}
.csp-hero .csp-kicker{padding:10px 16px;letter-spacing:2px;font-size:clamp(10px,.9vw,14px);line-height:1.4}
.csp-hero h1{font-size:clamp(32px,3.1vw,58px);line-height:1.12;letter-spacing:-1.2px;margin:24px 0}
.csp-hero-copy>p{font-size:clamp(15px,1.03vw,19px);line-height:1.65;margin-bottom:16px}
html body .csp-hero p.csp-lead:not(#_){font-size:clamp(17px,1.12vw,21px);line-height:1.5;margin-bottom:18px}
.csp-hero .csp-actions{margin-top:26px;gap:16px}
.csp-devices{position:relative;min-width:0;aspect-ratio:1.12;isolation:isolate;align-self:center}
.csp-devices::before{content:'';position:absolute;inset:72% -3% 0 0;border-radius:50%;background:rgba(50,0,0,.5);filter:blur(24px);transform:rotate(-6deg);z-index:-1}
.csp-laptop{position:absolute;top:7%;left:6%;width:96%;transform:perspective(1200px) rotateY(-9deg) rotateZ(4deg)}
.csp-laptop-lid{position:relative;padding:20px 10px 14px;border:2px solid #aa8e88;border-radius:22px 22px 10px 10px;background:linear-gradient(130deg,#262323,#080808 45%,#302727);box-shadow:0 16px 24px rgba(40,0,0,.55)}
.csp-laptop-lid img{display:block;width:100%;height:auto;border-radius:3px;aspect-ratio:1.6;object-fit:cover;object-position:top}
.csp-camera{position:absolute;top:7px;left:50%;width:5px;height:5px;border-radius:50%;background:#25323c;box-shadow:0 0 0 2px #0b0b0b}
.csp-laptop-base{position:relative;width:112%;height:26px;margin-left:-6%;background:linear-gradient(#ccc0bd,#8c7e7c 45%,#302626 70%,#796662);border-radius:2px 2px 45% 45%;box-shadow:0 16px 20px rgba(40,0,0,.45)}
.csp-laptop-base::before{content:'';position:absolute;left:41%;top:0;width:18%;height:7px;border-radius:0 0 8px 8px;background:#675956}
.csp-phone{position:absolute;z-index:2;left:0;bottom:5%;width:28%;padding:8px 5px;border:2px solid #ab9992;border-radius:28px;background:linear-gradient(130deg,#3c3431,#090909 40%);box-shadow:8px 14px 18px rgba(40,0,0,.55);transform:rotate(-12deg)}
.csp-phone img{display:block;width:100%;height:auto;aspect-ratio: .48;object-fit:cover;object-position:top;border-radius:20px}
.csp-phone-notch{position:absolute;top:8px;left:29%;width:42%;height:12px;background:#101010;border-radius:0 0 10px 10px}
.csp p.csp-hero-note{margin-top:32px;padding-top:24px;font-size:clamp(13px,1.05vw,18px)}
@media(min-width:1600px){.csp-devices{margin-right:-25px}}
@media(max-width:1199px){.csp-hero .container{padding-left:24px;padding-right:24px}.csp-hero-grid{gap:24px}.csp-laptop-lid{padding-top:16px;border-radius:16px 16px 8px 8px}.csp-phone{border-radius:22px}.csp-phone img{border-radius:15px}.csp-hero .csp-kicker{letter-spacing:1px}}
@media(max-width:991px){.csp-hero-grid{grid-template-columns:minmax(0,1fr)}.csp-devices{width:min(100%,720px);margin:4px auto 0;aspect-ratio:1.35}.csp-laptop{width:88%;left:10%;top:0}.csp-phone{width:25%;left:3%;bottom:0}.csp-hero h1{font-size:clamp(32px,5.7vw,48px)}.csp-hero-copy>p{font-size:16px}.csp-hero .csp-kicker{font-size:11px}.csp p.csp-hero-note{margin-top:24px}}
@media(max-width:575px){.csp-hero{padding:30px 0 22px}.csp-hero .container{padding-left:20px;padding-right:20px}.csp-hero h1{letter-spacing:-.7px;font-size:32px}.csp-hero .csp-kicker{padding:9px 12px;font-size:9px;letter-spacing:.8px}.csp-hero .csp-actions{gap:12px}.csp-devices{margin-top:16px}.csp-laptop-lid{padding:13px 5px 8px;border-radius:12px 12px 5px 5px}.csp-laptop-base{height:15px}.csp-camera{top:4px;width:3px;height:3px}.csp-phone{padding:5px 3px;border-radius:16px}.csp-phone img{border-radius:10px}.csp-phone-notch{top:5px;height:7px}.csp p.csp-hero-note{line-height:1.8}.csp-hero-note>span{padding:0 5px}}
.csp-laptop{left:13%;width:80%}
.csp-laptop-keyboard{position:relative;width:112%;height:clamp(32px,4vw,70px);margin-left:-6%;background:linear-gradient(135deg,#625957,#b5a5a0 55%,#645451);clip-path:polygon(5.4% 0,94.6% 0,100% 100%,0 100%)}
.csp-laptop-keyboard::before{content:'';position:absolute;inset:4px 9% 35%;background:repeating-linear-gradient(0deg,transparent 0 7px,#a99b96 7px 9px),repeating-linear-gradient(90deg,#171515 0 20px,#9a8d88 20px 23px);transform:perspective(200px) rotateX(20deg);border-radius:3px}
.csp-laptop-keyboard::after{content:'';position:absolute;bottom:3px;left:37%;width:26%;height:27%;border:1px solid #776965;border-radius:3px;background:rgba(190,176,169,.3)}
@media(min-width:1600px){.csp-devices{margin-right:0}}
@media(max-width:991px){.csp-laptop{width:82%;left:12%}}

/* Services (2026-10-27): the section 4 layout of the industries page. Dark #470000 panel, eight numbered cards cut at an angle, alternating white and red
   (cards 2, 4, 5 and 7 are red). The wording, links and "Explore Service" labels are unchanged; only the presentation differs. */
#services{background:#470000}
#services .csp-head .csp-kicker{padding:7px 16px;border:1px solid rgba(255,255,255,.4);border-radius:999px}
#services .csp-services{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px 18px}
#services .csp-service-card{--service-surface:linear-gradient(145deg,#fff,#fff5f5);--service-text:#470000;--service-accent:#ff0000;position:relative;isolation:isolate;gap:18px;padding:48px 22px 30px;border:0;border-radius:0;background:none;box-shadow:none;color:var(--service-text)}
#services .csp-service-card::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--service-surface);clip-path:polygon(0 0,100% 5%,100% 100%,0 95%)}
#services .csp-service-card:nth-child(8n+2),#services .csp-service-card:nth-child(8n+4),#services .csp-service-card:nth-child(8n+5),#services .csp-service-card:nth-child(8n+7){--service-surface:linear-gradient(155deg,#c50000,#8a0000);--service-text:#fff;--service-accent:#fff}
#services .csp-service-card:nth-child(8n+2)::before,#services .csp-service-card:nth-child(8n+4)::before,#services .csp-service-card:nth-child(8n+5)::before,#services .csp-service-card:nth-child(8n+7)::before{clip-path:polygon(0 5%,100% 0,100% 95%,0 100%)}
#services .csp-service-card:hover,#services .csp-service-card:focus-within{border-color:transparent;box-shadow:none;background:none}
#services .csp-service-number{position:absolute;right:20px;top:23px;font-size:15px;line-height:1;font-weight:800;color:var(--service-accent)}
#services .csp-service-card .csp-title-row{gap:12px;min-height:58px}
#services .csp-service-card h3{font-size:19px;line-height:1.35;overflow-wrap:normal;word-break:normal;hyphens:none}
#services .csp-service-card h3 a,#services .csp-service-card h3 a:hover{color:var(--service-text)}
#services .csp-service-card p{color:var(--service-text);font-size:14px;line-height:1.6}
#services .csp-service-card .csp-icon,#services .csp-service-card:hover .csp-icon{flex-basis:44px;width:44px;height:44px;border-radius:50%;background:#ffe9e9;color:#ff0000;font-size:21px;box-shadow:0 6px 12px rgba(255,0,0,.12)}
#services .csp-service-card:nth-child(8n+2) .csp-icon,#services .csp-service-card:nth-child(8n+4) .csp-icon,#services .csp-service-card:nth-child(8n+5) .csp-icon,#services .csp-service-card:nth-child(8n+7) .csp-icon,
#services .csp-service-card:nth-child(8n+2):hover .csp-icon,#services .csp-service-card:nth-child(8n+4):hover .csp-icon,#services .csp-service-card:nth-child(8n+5):hover .csp-icon,#services .csp-service-card:nth-child(8n+7):hover .csp-icon{background:#ff0000;color:#fff;box-shadow:none}
#services .csp-service-card a.hp-more,#services .csp-service-card a.hp-more:hover,#services .csp-service-card a.hp-more:focus-visible{position:relative;justify-content:flex-start;gap:12px;width:fit-content;margin-top:auto;padding-top:12px;border-top:0;color:var(--service-accent);font-size:16px;line-height:1.2}
#services .csp-service-card .hp-more__ic{width:40px;height:40px;flex:0 0 40px;font-size:14px;background:#ff0000;color:#fff}
@media(max-width:1199px){#services .csp-services{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:640px) and (max-width:1199px){#services .csp-services{gap:22px}}
@media(max-width:639px){#services .csp-services{grid-template-columns:minmax(0,1fr);gap:18px}#services .csp-service-card{padding:42px 24px 30px}#services .csp-service-card .csp-title-row{min-height:48px}#services .csp-service-card h3{line-height:1.4}#services .csp-service-card a.hp-more{font-size:15px;gap:10px}}

/* Eyebrow pill (same as the home page .hp-kicker): zero-specificity defaults so every csp-kicker label is a pill with an icon;
   border and tint follow the label colour (red on light, white on the red and maroon bands). */
:where(.csp-kicker){padding:7px 16px;border:1px solid rgba(255,0,0,.28);border-radius:999px;background:rgba(255,0,0,.06)}
@supports (color:color-mix(in srgb,red 1%,transparent)){:where(.csp-kicker){border-color:color-mix(in srgb,currentColor 35%,transparent);background:color-mix(in srgb,currentColor 7%,transparent)}}
.csp-kicker i{flex:0 0 auto;font-size:13px;line-height:1}
:where(.csp-project-number){padding:7px 16px;border:1px solid rgba(255,0,0,.28);border-radius:999px;background:rgba(255,0,0,.06)}
@supports (color:color-mix(in srgb,red 1%,transparent)){:where(.csp-project-number){border-color:color-mix(in srgb,currentColor 35%,transparent);background:color-mix(in srgb,currentColor 7%,transparent)}}
.csp-project-number i{flex:0 0 auto;font-size:13px;line-height:1}

/* Closing CTA = home page #inquiry look (css/final-card.css): the section's .container is the maroon card, so the old band is flat */
html body section.final-card.final-card:not(#_) .csp-cta-content{max-width:880px}
html body section.final-card.final-card:not(#_) .csp-cta .csp-kicker{padding:7px 16px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:transparent;color:#fff}
