/* Homepage: an architectural editorial system. Loaded only by page-home.php. */
.willus-home { --wh-paper:#f4f2ed; --wh-line:#dddcd5; --wh-dark:var(--willus-primary); overflow-x:clip; background:#fff; color:var(--willus-ink); }
.willus-home :is(h1,h2,h3,h4,p,figure,ul) { margin-top:0; }
.willus-home :is(h1,h2,h3,h4) { color:var(--willus-navy); letter-spacing:-.045em; }
.willus-home p { margin-bottom:16px; }
.willus-home .willus-section { padding-block:clamp(64px,8vw,120px); }
.wh-eyebrow { display:flex; align-items:center; gap:12px; color:var(--willus-secondary); font-size:11px; font-weight:650; letter-spacing:.16em; text-transform:uppercase; margin-bottom:22px; }
.wh-eyebrow::before { content:''; width:24px; height:1px; background:currentColor; flex-shrink:0; }
.wh-heading { font-size:clamp(32px,3.5vw,50px); font-weight:550; line-height:1.13; margin-bottom:24px; max-width:800px; text-wrap:balance; }
.wh-intro { font-size:16px; line-height:1.8; color:var(--willus-muted); }
.wh-intro p:last-child { margin-bottom:0; }
.wh-section-top { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:46px; }
.wh-section-top > div:first-child { max-width:740px; }
.wh-card-link,.wh-section-link,.wh-text-link { display:inline-flex; align-items:center; gap:16px; color:var(--willus-navy); font-size:13px; font-weight:600; text-decoration:none; }
.wh-card-link::after,.wh-section-link::after,.wh-text-link::after { content:'↗'; font-size:22px; transition:translate .25s; }
:is(.wh-card-link,.wh-section-link,.wh-text-link):hover::after { translate:3px -3px; }
.willus-home :is(.btn-prime,.btn-ghost-light) { min-height:54px; border-radius:3px; font-size:14px; gap:22px; padding:15px 24px; }
.willus-home .btn-prime { --willus-btn-base:var(--willus-accent); --willus-btn-fill:#fff; --willus-btn-text:var(--wh-dark); --willus-btn-hover-text:var(--wh-dark); }
.willus-home :is(.btn-prime,.btn-ghost-light)::after { content:'↗'; font-size:21px; }
/* Hero: oversize photography, structural linework, pointer responsive light. */
.wh-hero { position:relative; isolation:isolate; background:var(--wh-dark); color:#fff; overflow:hidden; }
.wh-hero::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#ffffff04 1px,transparent 1px),linear-gradient(#ffffff04 1px,transparent 1px); background-size:86px 86px; }
.wh-hero-glow { position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at var(--wh-pointer-x,70%) var(--wh-pointer-y,30%),rgb(var(--willus-secondary-rgb) / 0.098),transparent 52%),radial-gradient(ellipse at 15% 90%,rgb(var(--willus-primary-rgb) / 0.220),transparent 55%); }
.wh-blueprint { position:absolute; width:640px; height:auto; left:-170px; bottom:-160px; color:var(--willus-on-dark-muted); opacity:.14; pointer-events:none; }
.wh-hero-grid { display:grid; grid-template-columns:1fr 1.08fr; align-items:center; gap:56px; padding-block:58px 74px; position:relative; }
.wh-hero-copy { position:relative; z-index:2; padding-block:24px; }
.wh-hero .wh-eyebrow { color:var(--willus-secondary); }
.wh-hero h1 { color:#fff; font-size:clamp(44px,4.7vw,70px); font-weight:500; line-height:1.03; margin-bottom:30px; letter-spacing:-.055em; text-wrap:balance; }
.wh-hero-description { color:var(--willus-on-dark-muted); font-size:17px; line-height:1.75; max-width:460px; margin-bottom:32px; }
.wh-actions { display:flex; flex-wrap:wrap; gap:12px; }
.wh-explore { display:inline-flex; align-items:center; gap:14px; color:var(--willus-on-dark-muted); text-decoration:none; font-size:11px; letter-spacing:.1em; text-transform:uppercase; margin-top:44px; }
.wh-scroll-mouse { display:grid; place-items:center; width:28px; height:38px; border:1px solid #ffffff38; border-radius:20px; }
.wh-scroll-wheel { width:2px; height:8px; background:var(--willus-accent); animation:wh-scroll 2s ease infinite; }
@keyframes wh-scroll { 50% { translate:0 6px; opacity:.4; } }
.wh-hero-visual { min-width:0; position:relative; padding-top:28px; }
.wh-visual-label { display:flex; align-items:center; gap:8px; position:absolute; top:0; left:0; color:var(--willus-on-dark-muted); font-size:9px; letter-spacing:.17em; }
.wh-visual-label > span { width:5px; height:5px; background:var(--willus-accent); border-radius:50%; box-shadow:0 0 12px rgb(var(--willus-secondary-rgb) / 0.533); }
.wh-hero-slide { height:535px; margin:0; position:relative; overflow:hidden; background:#243242; border:1px solid #ffffff20; border-radius:3px 64px 3px 3px; }
.wh-hero-slide + .wh-hero-slide { margin-top:16px; }
.wh-hero-visual.is-enhanced .wh-hero-slide { display:none; margin-top:0; }
.wh-hero-visual.is-enhanced .wh-hero-slide.is-active { display:block; animation:wh-slide-in .6s ease both; }
@keyframes wh-slide-in { from { opacity:.35; } to { opacity:1; } }
.wh-hero-image { display:block; width:100%; height:100%; object-fit:cover; }
.wh-hero-slide::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgb(var(--willus-primary-rgb) / 0.000) 25%,rgb(var(--willus-primary-rgb) / 0.125) 50%,rgb(var(--willus-primary-rgb) / 0.961) 100%); pointer-events:none; }
.wh-hero-slide figcaption { position:absolute; z-index:1; bottom:0; inset-inline:0; display:flex; gap:22px; padding:30px 30px 68px; }
.wh-slide-number { font-size:44px; font-weight:300; color:var(--willus-accent); line-height:1; }
.wh-slide-text h2 { color:#fff; font-size:20px; line-height:1.25; margin-bottom:10px; letter-spacing:-.02em; }
.wh-slide-description { font-size:12px; color:var(--willus-on-dark-muted); line-height:1.65; }
.wh-slide-description p { margin:0; }
.wh-hero-controls { position:absolute; bottom:24px; inset-inline:30px; display:flex; align-items:center; gap:16px; z-index:3; }
.wh-hero-controls[hidden] { display:none; }
.wh-hero-controls button { border:0; padding:8px 0; background:none; color:var(--willus-on-dark-muted); display:flex; gap:8px; align-items:center; font-size:11px; cursor:pointer; min-height:36px; }
.wh-control-bar { height:2px; width:32px; background:#ffffff40; }
.wh-hero-controls button[aria-pressed='true'] { color:var(--willus-accent); }
.wh-hero-controls button[aria-pressed='true'] .wh-control-bar { background:var(--willus-accent); width:48px; }
.wh-hero-controls .wh-hero-pause { margin-left:auto; padding:8px; color:white; }
/* Credibility strip */
.wh-proof { background:var(--wh-paper); border-bottom:1px solid var(--wh-line); }
.wh-proof-grid { display:grid; grid-template-columns:1fr 1.1fr 1fr; gap:40px; padding-block:32px; align-items:center; }
.wh-stat { border-right:1px solid var(--wh-line); display:flex; align-items:center; gap:20px; padding-right:20px; }
.wh-stat strong { font-size:clamp(32px,3.2vw,46px); font-weight:500; color:var(--willus-navy); line-height:1; letter-spacing:-.055em; white-space:nowrap; font-variant-numeric:tabular-nums; }
.wh-stat > span { font-size:12px; color:var(--willus-muted); max-width:130px; }
.wh-precision { display:flex; align-items:center; gap:18px; }
.wh-precision-icon { display:grid; place-items:center; height:44px; width:44px; flex-shrink:0; color:var(--willus-secondary); border:1px solid var(--willus-secondary-soft); border-radius:50%; }
.wh-precision p { font-size:13px; color:var(--willus-navy); margin:0; }
/* Company and delivery */
.wh-about-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:72px; align-items:center; }
.wh-about-image { position:relative; height:620px; background:var(--wh-paper); margin-right:18px; }
.wh-about-image::before { content:''; position:absolute; inset:24px -20px -24px 24px; border:1px solid var(--willus-secondary-soft); z-index:0; }
.wh-about-image img { position:relative; display:block; width:100%; height:100%; object-fit:cover; }
.wh-image-note { position:absolute; left:0; bottom:30px; background:var(--wh-dark); border-left:3px solid var(--willus-accent); color:#fff; padding:16px 24px; font-size:10px; letter-spacing:.12em; }
.wh-checklist { padding:0; margin:26px 0; list-style:none; }
.wh-checklist li { display:flex; align-items:start; gap:12px; border-bottom:1px solid rgb(var(--willus-primary-rgb) / 0.063); font-size:14px; line-height:1.65; padding-block:12px; }
.wh-check-icon { flex-shrink:0; margin-top:4px; }
.wh-company-details { border-block:1px solid var(--wh-line); }
.wh-company-details summary { display:flex; justify-content:space-between; gap:16px; align-items:center; padding-block:20px; font-size:13px; font-weight:600; list-style:none; cursor:pointer; }
.wh-company-details summary::-webkit-details-marker { display:none; }
.wh-accordion-toggle { width:24px; height:24px; flex-shrink:0; display:grid; place-items:center; border:1px solid var(--wh-line); }
.wh-accordion-toggle::before { content:'+'; }
.wh-company-details[open] .wh-accordion-toggle::before { content:'−'; }
.wh-company-full-desc { font-size:14px; line-height:1.8; color:var(--willus-muted); padding-bottom:12px; }
/* Solutions, horizontal navigation with visible progress */
.wh-services { background:var(--wh-paper); }
.wh-rail-controls { display:flex; gap:10px; }
.wh-rail-controls[hidden] { display:none; }
.wh-rail-controls button { width:48px; height:48px; border:1px solid rgb(var(--willus-primary-rgb) / 0.251); color:var(--willus-navy); background:transparent; border-radius:50%; display:grid; place-items:center; cursor:pointer; transition:background .25s,color .25s; }
.wh-rail-controls button:hover:not(:disabled) { background:var(--willus-navy); color:#fff; }
.wh-rail-controls button:disabled { opacity:.25; cursor:default; }
.wh-card-rail { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:6px; overscroll-behavior-x:contain; }
.wh-card-rail::-webkit-scrollbar { display:none; }
.wh-service-card { flex:0 0 calc((100% - 48px)/3); min-width:0; scroll-snap-align:start; display:flex; flex-direction:column; border:1px solid var(--wh-line); background:#fff; color:inherit; text-decoration:none; transition:border-color .25s, transform .35s cubic-bezier(0.16,1,0.3,1), box-shadow .35s ease; }
.wh-service-card:hover,.wh-service-card:focus-within { border-color:var(--willus-secondary); transform:translateY(-6px); box-shadow:0 16px 36px rgb(var(--willus-primary-rgb) / 0.09); }
.wh-card-photo { height:220px; position:relative; overflow:hidden; background:var(--wh-dark); flex:0 0 auto; }
.wh-card-photo img { width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.wh-service-card:hover img { transform:scale(1.045); }
.wh-card-badge { position:absolute; top:18px; left:18px; width:34px; height:34px; display:grid; place-items:center; background:rgb(var(--willus-primary-rgb) / 0.800); color:#fff; font-size:11px; border:1px solid #ffffff50; }
.wh-service-body { padding:20px 22px; display:flex; flex-direction:column; gap:0; }
.wh-service-body h3 { font-size:21px; line-height:1.25; font-weight:550; margin:0 0 10px; }
.wh-service-desc { color:var(--willus-muted); font-size:14px; line-height:1.6; margin:0 0 12px; }
.wh-card-link { justify-content:space-between; padding-top:12px; border-top:1px solid var(--wh-line); }
.wh-service-link-label { background:transparent; border-top:1px solid var(--wh-line); padding-top:12px; display:flex; justify-content:space-between; align-items:center; color:var(--wh-dark); font-size:14px; font-weight:600; width:100%; transition:color .25s; }
.wh-service-card:hover .wh-service-link-label,.wh-service-card:focus-visible .wh-service-link-label { color:var(--willus-accent); }
.wh-about-popup-btn { display:inline-flex; align-items:center; gap:12px; padding:12px 22px; border:1px solid var(--wh-line); background:transparent; color:var(--wh-dark); font-size:14px; font-weight:600; cursor:pointer; border-radius:4px; transition:all .25s ease; margin-top:16px; }
.wh-about-popup-btn:hover { background:var(--wh-dark); color:#fff; border-color:var(--wh-dark); }
.wh-rail-progress { margin-top:28px; height:2px; background:rgb(var(--willus-primary-rgb) / 0.094); }
.wh-rail-progress span { display:block; height:100%; width:var(--wh-rail-width,40%); translate:var(--wh-rail-offset,0px) 0; background:var(--willus-secondary); }
.wh-process-top { display:grid; grid-template-columns:1fr .8fr; gap:80px; align-items:end; margin-bottom:48px; }
.wh-process-top .wh-heading { margin-bottom:0; }
.wh-process-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:48px; }
.wh-process-tabs { display:flex; flex-direction:column; border-top:1px solid var(--wh-line); }
.wh-process-tabs button { display:flex; align-items:center; width:100%; gap:20px; text-align:left; padding:24px 14px; background:none; border:0; border-bottom:1px solid var(--wh-line); color:var(--willus-muted); font-size:15px; cursor:pointer; transition:background .25s,color .25s; }
.wh-step-num { font-size:12px; letter-spacing:.06em; color:#8c9096; }
.wh-step-title { flex:1; }
.wh-process-tabs button::after { content:'↗'; font-size:20px; }
.wh-process-tabs button[aria-selected='true'] { background:var(--wh-dark); color:#fff; }
.wh-process-tabs button[aria-selected='true'] .wh-step-num { color:var(--willus-accent); }
.wh-process-panel { overflow:hidden; margin-bottom:20px; background:var(--wh-paper); }
.wh-process-photo { height:345px; }
.wh-process-photo img { width:100%; height:100%; object-fit:cover; }
.wh-process-caption { padding:28px 32px; }
.wh-process-caption h3 { font-size:25px; font-weight:550; margin-bottom:14px; }
.wh-process-caption > div { color:var(--willus-muted); font-size:14px; line-height:1.8; }
.wh-process-caption p:last-child { margin-bottom:0; }
.wh-process:not(.is-enhanced) .wh-process-tabs { display:none; }
.wh-process:not(.is-enhanced) .wh-process-panels { grid-column:1/-1; }
/* Partner, project images and applications */
.wh-partner { background:var(--wh-paper); }
.wh-partner-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
.wh-project-mosaic { display:grid; grid-template-columns:1.15fr .85fr; gap:14px; }
.wh-project-tile { display:block; position:relative; aspect-ratio:37/17; height:auto; overflow:hidden; background:var(--wh-dark); }
.wh-project-tile:first-child { grid-row:span 2; height:474px; }
.wh-project-tile:last-child:nth-child(4) { grid-column:1/-1; height:220px; }
.wh-project-tile img { width:100%; height:100%; object-fit:cover; transition:transform .65s; }
.wh-project-tile:is(:hover,:focus-visible) img { transform:scale(1.05); }
.wh-tile-badge { position:absolute; bottom:16px; right:16px; width:36px; height:36px; display:grid; place-items:center; color:#fff; background:rgb(var(--willus-primary-rgb) / 0.690); border:1px solid #ffffff60; }
.wh-industry-list { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); padding:0; list-style:none; border-top:1px solid var(--wh-line); border-left:1px solid var(--wh-line); margin:28px 0 48px; }
.wh-industry-list li { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:12px; padding:18px 18px; min-height:112px; border-right:1px solid var(--wh-line); border-bottom:1px solid var(--wh-line); color:var(--willus-navy); font-size:13px; line-height:1.4; transition:background .25s; }
.wh-industry-list li svg { width:22px; height:22px; color:var(--willus-secondary); }
.wh-industry-list li span { max-width:22ch; }
.wh-industry-list li:hover { background:var(--wh-paper); }
.wh-application-heading { font-size:25px; font-weight:550; margin-bottom:26px; }
.wh-application-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.wh-application-card { position:relative; height:300px; overflow:hidden; background:var(--wh-dark); }
.wh-application-card img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.wh-application-card:hover img { transform:scale(1.05); }
.wh-application-overlay { position:absolute; inset:0; display:flex; align-items:end; padding:26px; background:linear-gradient(transparent 25%,rgb(var(--willus-primary-rgb) / 0.898)); }
.wh-application-overlay h4 { color:#fff; font-size:21px; font-weight:500; line-height:1.3; margin:0; }
/* Logos: preserve brand colours and give users a pause control. */
.wh-clients { background:var(--wh-paper); }
.wh-clients .wh-section-top { margin-bottom:20px; }
.wh-clients-pause { display:block; margin:0 0 20px auto; background:transparent; border:0; border-bottom:1px solid #bcb8ae; padding:8px 0; color:var(--willus-muted); font-size:12px; cursor:pointer; }
.wh-clients-pause[hidden] { display:none; }
.wh-clients-slider { overflow:hidden; display:grid; gap:16px; mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.wh-clients-row { display:flex; overflow:hidden; }
.wh-clients-track { display:flex; flex:0 0 auto; align-items:center; animation:wh-clients-scroll var(--wh-clients-duration,35s) linear infinite; }
.wh-clients-row[data-direction='right'] .wh-clients-track { animation-direction:reverse; }
.wh-client-logo { display:grid; place-items:center; flex:0 0 170px; width:170px; height:100px; padding:20px; margin-right:16px; border:1px solid var(--wh-line); background:#fff; }
.wh-client-logo img { width:100%; height:60px; object-fit:contain; }
.wh-clients-row:hover .wh-clients-track,.wh-clients.is-paused .wh-clients-track { animation-play-state:paused; }
@keyframes wh-clients-scroll { to { transform:translateX(-100%); } }
/* Expertise: full width structural drawing atmosphere. */
.wh-expertise { position:relative; background:var(--wh-dark); overflow:hidden; color:#fff; }
.wh-expertise-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.14; }
.wh-expertise::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,var(--wh-dark),transparent),linear-gradient(#ffffff05 1px,transparent 1px); background-size:auto,48px 48px; pointer-events:none; }
.wh-expertise-grid { position:relative; z-index:1; display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:center; padding-block:100px; }
.wh-expertise .wh-heading { color:#fff; }
.wh-expertise .wh-eyebrow { color:var(--willus-accent); }
.wh-expertise ul { display:grid; grid-template-columns:1fr 1fr; margin:0; padding:0; list-style:none; }
.wh-expertise li { display:flex; align-items:start; gap:18px; padding:22px 16px; font-size:15px; border-bottom:1px solid #ffffff25; transition:background .25s; }
.wh-expertise li:hover { background:#ffffff08; }
.wh-expertise-num { font-size:11px; color:var(--willus-accent); }
/* Editorial and closing enquiry. */
.wh-blog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.wh-blog-card { min-width:0; display:flex; flex-direction:column; border-bottom:1px solid var(--wh-line); transition:transform .35s cubic-bezier(0.16,1,0.3,1), box-shadow .35s ease; }
.wh-blog-card:hover { transform:translateY(-5px); }
.wh-blog-image { display:block; aspect-ratio:37/17; height:auto; overflow:hidden; background:var(--wh-paper); }
.wh-blog-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.wh-blog-card:hover img { transform:scale(1.04); }
.wh-blog-body { display:flex; flex-direction:column; flex:1; padding:24px 0; }
.wh-blog-body time { font-size:10px; text-transform:uppercase; letter-spacing:.13em; color:var(--willus-muted); margin-bottom:14px; }
.wh-blog-body h3 { font-size:22px; font-weight:550; line-height:1.35; margin-bottom:16px; }
.wh-blog-body h3 a { color:inherit; text-decoration:none; }
.wh-blog-body p { font-size:14px; line-height:1.7; color:var(--willus-muted); flex:1; }
.wh-cta { background:var(--wh-paper); position:relative; overflow:hidden; }
.wh-cta::before { content:''; position:absolute; right:-120px; top:-220px; width:620px; height:620px; border:1px solid rgb(var(--willus-secondary-rgb) / 0.25); border-radius:50%; box-shadow:0 0 0 55px rgb(var(--willus-secondary-rgb) / 0.06),0 0 0 110px rgb(var(--willus-secondary-rgb) / 0.035); pointer-events:none; }
.wh-cta-inner { position:relative; display:flex; justify-content:space-between; align-items:center; gap:60px; padding-block:90px; }
.wh-cta h2 { font-size:clamp(38px,5vw,66px); font-weight:500; line-height:1.1; margin-bottom:20px; }
.wh-cta-desc { font-size:16px; color:var(--willus-muted); max-width:580px; }
.wh-cta-desc p { margin:0; }
.wh-cta-action { flex-shrink:0; }
.wh-lightbox { border:1px solid #ffffff30; padding:0; width:min(960px,92vw); max-height:90dvh; background:var(--wh-dark); color:white; }
.wh-lightbox::backdrop { background:rgb(var(--willus-primary-rgb) / 0.91); backdrop-filter:blur(8px); }
.wh-lightbox figure { margin:0; }
.wh-lightbox img { display:block; width:100%; max-height:73dvh; object-fit:contain; }
.wh-lightbox figcaption { padding:20px 24px; font-size:14px; }
.wh-lightbox-close { position:absolute; right:14px; top:14px; z-index:2; }
.wh-lightbox button { width:44px; height:44px; display:grid; place-items:center; border:1px solid #ffffff40; background:var(--wh-dark); color:white; cursor:pointer; }
.wh-lightbox-nav { display:flex; gap:12px; padding:0 24px 20px; }

/* Home Service & About Modals */
.wh-service-modal, .wh-about-modal { border:1px solid rgba(255,255,255,0.2); border-radius:12px; padding:0; width:min(780px,92vw); max-height:90dvh; background:#ffffff; color:var(--wh-dark); box-shadow:0 25px 60px rgba(10,20,40,0.35); overflow:hidden; position:fixed; inset:0; margin:auto; }
.wh-service-modal::backdrop, .wh-about-modal::backdrop { background:rgba(7,16,32,0.75); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.wh-modal-close { position:absolute; top:16px; right:16px; width:40px; height:40px; border-radius:50%; border:1px solid rgb(var(--willus-primary-rgb) / 0.15); background:#ffffff; color:var(--wh-dark); display:grid; place-items:center; cursor:pointer; z-index:10; transition:background .2s ease, color .2s ease; }
.wh-modal-close:hover { background:var(--wh-dark); color:#ffffff; }
.wh-service-modal-inner { display:grid; grid-template-columns:280px 1fr; max-height:90dvh; overflow-y:auto; }
.wh-service-modal-photo { position:relative; background:var(--wh-dark); min-height:260px; }
.wh-service-modal-img { width:100%; height:100%; object-fit:cover; display:block; }
.wh-service-modal-badge { position:absolute; top:18px; left:18px; width:34px; height:34px; display:grid; place-items:center; background:rgba(16,31,48,0.85); color:#fff; font-size:11px; border:1px solid rgba(255,255,255,0.3); }
.wh-service-modal-body { padding:36px 30px; display:flex; flex-direction:column; gap:14px; }
.wh-service-modal-title { font-size:24px; font-weight:600; line-height:1.25; color:var(--wh-dark); margin:0; }
.wh-service-modal-desc { font-size:14.5px; line-height:1.8; color:var(--willus-muted); }
.wh-service-modal-action { margin-top:8px; }
.wh-about-modal-inner { padding:40px 36px; max-height:90dvh; overflow-y:auto; display:flex; flex-direction:column; gap:16px; }
.wh-about-modal-title { font-size:28px; font-weight:600; line-height:1.2; margin:0; }
.wh-about-modal-body { font-size:15px; line-height:1.85; color:var(--willus-muted); }
@media (max-width:680px) {
 .wh-service-modal-inner { grid-template-columns:1fr; }
 .wh-service-modal-photo { height:200px; }
 .wh-service-modal-body { padding:24px 20px; }
 .wh-about-modal-inner { padding:28px 20px; }
}
@media (max-width:1100px) {
 .wh-hero-grid { gap:32px; } .wh-hero-slide { height:510px; }
 .wh-about-grid,.wh-partner-grid { gap:40px; } .wh-about-image { height:600px; }
 .wh-proof-grid { gap:24px; } .wh-stat { flex-direction:column; align-items:start; gap:12px; }
 .wh-industry-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .wh-service-card { flex-basis:calc((100% - 24px)/2); }
 .wh-expertise-grid { gap:40px; }
}
@media (max-width:800px) {
 .wh-hero-grid { grid-template-columns:1fr; padding-block:36px 48px; gap:30px; }
 .wh-hero-copy { max-width:620px; padding:0; } .wh-hero h1 { max-width:590px; font-size:clamp(44px,8vw,64px); }
 .wh-hero-description { max-width:560px; } .wh-explore { margin-top:26px; }
 .wh-hero-slide { height:450px; } .wh-hero-visual { max-width:100%; }
 .wh-proof-grid { grid-template-columns:1fr 1fr; gap:26px; } .wh-proof-grid .wh-stat:nth-child(2) { border:0; }
 .wh-precision { grid-column:1/-1; padding-top:22px; border-top:1px solid var(--wh-line); }
 .wh-about-grid,.wh-partner-grid,.wh-process-top,.wh-process-grid,.wh-expertise-grid { grid-template-columns:1fr; gap:36px; }
 .wh-about-image { height:460px; margin-bottom:16px; }
 .wh-process-tabs { flex-direction:row; overflow-x:auto; border:0; scroll-snap-type:x mandatory; }
 .wh-process-tabs button { flex:0 0 210px; scroll-snap-align:start; padding:18px 14px; font-size:13px; border:1px solid var(--wh-line); }
 .wh-process-grid { gap:24px; } .wh-process-tabs button::after { display:none; }
 .wh-process-photo { height:300px; }
 .wh-industry-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .wh-application-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .wh-blog-grid { grid-template-columns:1fr; gap:36px; } .wh-blog-card { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
 .wh-blog-image { height:auto; min-height:0; align-self:start; } .wh-blog-body { padding-top:0; }
 .wh-cta-inner { flex-direction:column; align-items:start; gap:30px; padding-block:64px; }
 .wh-expertise-grid { padding-block:72px; }
}
@media (max-width:480px) {
 .wh-hero-slide { height:380px; border-top-right-radius:42px; } .wh-hero h1 { font-size:46px; }
 .wh-hero-slide figcaption { padding:22px 20px 64px; gap:16px; } .wh-slide-number { font-size:34px; }
 .wh-slide-text h2 { font-size:18px; } .wh-hero-controls { inset-inline:20px; gap:12px; }
 .wh-control-bar { width:22px; } .wh-hero-controls button[aria-pressed='true'] .wh-control-bar { width:32px; }
 .wh-actions { flex-direction:column; align-items:stretch; } .wh-actions a { justify-content:space-between; }
 .wh-section-top { gap:20px; flex-wrap:wrap; } .wh-heading { font-size:34px; }
 .wh-about-image { height:390px; } .wh-stat strong { font-size:36px; }
 .wh-service-card { flex-basis:88%; } .wh-card-photo { height:230px; }
 .wh-process-caption { padding:24px; } .wh-process-photo { height:240px; }
 .wh-project-mosaic { gap:10px; } .wh-project-tile { height:175px; } .wh-project-tile:first-child { height:360px; }
 .wh-industry-list li { padding:16px 14px; font-size:12px; min-height:104px; gap:10px; }
 .wh-application-grid { grid-template-columns:1fr; } .wh-application-card { height:280px; }
 .wh-expertise ul { grid-template-columns:1fr; }
 .wh-blog-card { display:flex; gap:0; } .wh-blog-image { height:auto; min-height:0; } .wh-blog-body { padding-top:22px; }
}
@media (prefers-reduced-motion:reduce) {
 .willus-home *, .willus-home *::before,.willus-home *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
 .wh-clients-slider { mask-image:none; } .wh-clients-row { overflow:visible; }
 .wh-clients-track { flex-wrap:wrap; gap:12px; width:100%; justify-content:center; }
 .wh-clients-track[aria-hidden='true'],.wh-client-logo[aria-hidden='true'] { display:none; }
 .wh-client-logo { margin:0; }
}
