/* Mock parity layer: the approved home mock's component CSS (design-system/kit.css), ported verbatim.
   Generated by site/tools/parity/port-kit.mjs - regenerate, don't hand-edit. Tokens resolve to the
   Elementor V4 global variables (tokens-bridge.css aliases the kit's names). Class names are the mock's,
   attached to V4 elements as global classes, so Jet sees the same names in the editor. */
/* V4 elements carry default padding (and e-flexbox a row layout); the mock's markup has neither. */
/* The mock's base element rules (kit.css reset), scoped to Elementor content so Hello's and Elementor's
   default margins and heading styles don't leak in. */
body .elementor :is(h1,h2,h3,h4,h5,p,ul,ol,li,figure){margin:0}
body .elementor :is(h1,h2,h3,h4){font-weight:900;color:var(--heading);text-wrap:balance}
body .elementor :is(p,li,label,figcaption){text-wrap:pretty}
body .elementor :is(img,video,svg){display:block;max-width:100%}
body .elementor img{height:auto}
body .elementor a{color:inherit}
body .elementor :focus-visible{outline:var(--mark-w) solid var(--ddc-purple);outline-offset:var(--focus-offset)}
body .elementor .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
body .elementor .slot{display:block;padding:0;min-width:0}
/* A V4 loop renders layout > item wrappers; the mock's grids are the layout, its cards the items. */
body .elementor .e-collection-loop-layout-base:is(.cards,.strip){grid-auto-rows:auto;padding:0;margin:0}
body .elementor :is(.e-collection-loop-base,.e-collection-loop-item-base):where(.slot,.project,.person,.strip__item){padding:0;margin:0}
body .elementor .e-collection-loop-base{padding:0}
/* Plain wrappers the mock has without a class (e.g. the intro heading column) carry no padding. */
body .elementor :is(.intro,.tile__row,.foot__top,.contact__text) > .e-div-block-base{padding:0}
body .elementor .e-atomic-element:where(.section,.shell,.hero,.hero__inner,.hero__foot,.hero__actions,.intro,.intro__body,.stats,.stat,.head,.head__text,.tiles,.tile,.tile__row,.panel,.panel__body,.cards,.project,.project__media,.project__meta,.person,.person__media,.strip,.strip__item,.place,.place__text,.contact,.contact__details,.contact__list,.contact__item,.contact__text,.contact__icon,.foot__top,.foot,.foot__list,.foot__head,.foot__strap,.tile__go,.person__name,.person__role,.stat__figure,.stat__label,.stat__note,.panel__img,.tile__img,.hero__play,.hero__controls,.place__map,.sr-only,.foot__base,.btn,.btn__icon,.btn-row,.link,.pill,.form__row,.project__media,.project__meta,.project__title,.person__media){padding:0;min-width:0;--width:auto;--content-width:auto;--container-widget-width:auto;--gap:normal;--row-gap:normal;--column-gap:normal;--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px}
body .elementor .on-ink .pill{background-color:var(--on-ink-fill);color:var(--on-ink)}
body .elementor .on-ink .link{color:var(--on-ink)}
body .elementor .on-ink .project__title{color:var(--ddc-green)}
body .elementor .on-ink .person__name{color:var(--ddc-green)}
body .elementor .on-ink .person__role{color:var(--on-ink-soft)}
body .elementor .on-ink .place{background-color:var(--ink-2)}
body .elementor .on-ink .btn--primary{background-color:var(--ddc-green-fill);color:var(--white)}
body .elementor .on-ink .btn--primary .btn__icon{background-color:var(--white);color:var(--ddc-green-fill)}
body .elementor .on-dark :focus-visible,body .elementor .hero :focus-visible,body .elementor .tile :focus-visible,body .elementor .foot :focus-visible{outline-color:var(--white);box-shadow:var(--focus-halo)}
body .elementor .shell{max-width:var(--shell);margin-inline:auto;padding-inline:var(--gut)}
body .elementor .shell--bleed{max-width:var(--bleed-max);margin-inline:auto;padding-inline:var(--bleed-inset)}
body .elementor .section{padding-block:var(--section-y);margin:var(--gap-10);background-color:var(--card);border-radius:var(--r-panel);overflow:hidden}
body .elementor .section--paper{background-color:var(--paper)}
body .elementor .section--band{background-color:var(--band)}
body .elementor .display{font-size:var(--fs-display);line-height:.95;letter-spacing:-.02em}
body .elementor .h1{font-size:var(--fs-h1);line-height:1.02;letter-spacing:-.015em}
body .elementor .h2{font-size:var(--fs-h2);line-height:1.05;letter-spacing:-.01em}
body .elementor .h3{font-size:var(--fs-h3);line-height:1.15}
body .elementor .h4{font-size:var(--fs-h4);line-height:1.25;font-weight:700}
body .elementor .lead{font-size:var(--fs-lead);line-height:1.55}
body .elementor .small{font-size:var(--fs-small);line-height:1.5}
body .elementor .hl{color:var(--ddc-green)}
body .elementor .label{font:500 var(--fs-label)/1.2 var(--font);letter-spacing:.14em;text-transform:uppercase}
body .elementor .pill{display:inline-flex;align-items:center;gap:var(--gap-8);padding:var(--gap-6) var(--gap-10);border-radius:var(--r-pill);background-color:var(--ddc-purple-tint);color:var(--heading);font:500 var(--fs-label)/1.2 var(--font);letter-spacing:.14em;text-transform:uppercase}
body .elementor .pill{width:fit-content}
body .elementor .pill + *{margin-top:var(--gap-20)}
body .elementor :is(.head__text,body .elementor .panel__body,body .elementor .intro__body) > .pill + *{margin-top:0}
body .elementor .pill--glass{background-color:var(--glass);color:var(--white);border:var(--hair) solid var(--glass-line);backdrop-filter:var(--blur)}
body .elementor .mark{position:relative}
body .elementor .mark::before,body .elementor .mark::after{content:"";position:absolute;width:var(--mark);height:var(--mark);border:var(--mark-w) solid var(--ddc-green);pointer-events:none;z-index:2}
body .elementor .mark::before{top:calc(var(--mark) / -2);left:calc(var(--mark) / -2);border-right:0;border-bottom:0}
body .elementor .mark::after{bottom:calc(var(--mark) / -2);right:calc(var(--mark) / -2);border-left:0;border-top:0}
body .elementor .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--gap-10);min-height:var(--btn-h);padding:var(--gap-6) var(--gap-6) var(--gap-6) var(--gap-20);border:var(--hair) solid transparent;border-radius:var(--r-btn);font:500 var(--fs-small)/1 var(--font);text-decoration:none;cursor:pointer;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
body .elementor .btn__icon{display:grid;place-items:center;width:var(--icon-circle);height:var(--icon-circle);border-radius:var(--r-btn);transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}
body .elementor .btn__icon svg{width:calc(var(--icon) - var(--gap-4));height:calc(var(--icon) - var(--gap-4));transition:transform var(--dur) var(--ease)}
body .elementor .btn:hover .btn__icon svg,body .elementor .btn:focus-visible .btn__icon svg{transform:var(--turn)}
body .elementor .btn--primary{background-color:var(--ddc-purple);color:var(--white)}
body .elementor .btn--primary .btn__icon{background-color:var(--white);color:var(--ddc-purple)}
body .elementor .btn--secondary{background-color:var(--white);color:var(--ddc-purple);border-color:var(--line)}
body .elementor .btn--secondary .btn__icon{background-color:var(--ddc-purple);color:var(--white)}
body .elementor .btn--light{background-color:var(--white);color:var(--ddc-purple)}
body .elementor .btn--light .btn__icon{background-color:var(--ddc-purple);color:var(--white)}
body .elementor .btn--glass{background-color:var(--glass);color:var(--white);border-color:var(--glass-line);backdrop-filter:var(--blur);padding-inline:var(--gap-20)}
body .elementor .btn--green{background-color:var(--ddc-green);color:var(--white)}
body .elementor .btn--green .btn__icon{background-color:var(--white);color:var(--ddc-green)}
body .elementor .btn--primary:hover,body .elementor .btn--primary:focus-visible,body .elementor .btn--secondary:hover,body .elementor .btn--secondary:focus-visible,body .elementor .btn--light:hover,body .elementor .btn--light:focus-visible,body .elementor .btn--glass:hover,body .elementor .btn--glass:focus-visible{background-color:var(--ddc-green);color:var(--on-green);border-color:var(--ddc-green)}
body .elementor .btn--primary:hover .btn__icon,body .elementor .btn--primary:focus-visible .btn__icon,body .elementor .btn--secondary:hover .btn__icon,body .elementor .btn--secondary:focus-visible .btn__icon,body .elementor .btn--light:hover .btn__icon,body .elementor .btn--light:focus-visible .btn__icon{background-color:var(--on-green);color:var(--ddc-green)}
body .elementor .btn--green:hover,body .elementor .btn--green:focus-visible,body .elementor .on-ink .btn--primary:hover,body .elementor .on-ink .btn--primary:focus-visible{background-color:var(--ddc-purple);color:var(--white);border-color:var(--ddc-purple)}
body .elementor .btn--green:hover .btn__icon,body .elementor .btn--green:focus-visible .btn__icon,body .elementor .on-ink .btn--primary:hover .btn__icon,body .elementor .on-ink .btn--primary:focus-visible .btn__icon{background-color:var(--white);color:var(--ddc-purple)}
body .elementor .btn--sm{min-height:var(--btn-h-sm);font-size:var(--fs-small)}
body .elementor .btn:not(:has(.btn__icon)){padding-inline:var(--gap-20)}
body .elementor .btn:disabled,body .elementor .btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
body .elementor .link{display:inline-flex;align-items:center;gap:var(--gap-8);color:var(--heading);font-weight:500;text-decoration:none;border-bottom:var(--hair) solid currentColor;padding-bottom:var(--gap-4)}
body .elementor .link svg{width:var(--icon);height:var(--icon);transition:transform var(--dur) var(--ease)}
body .elementor .link:hover svg,body .elementor .link:focus-visible svg{transform:var(--turn)}
body .elementor .btn-row{display:flex;flex-wrap:wrap;gap:var(--gap-10)}
@media(max-width:640px){
  body .elementor .btn-row{flex-direction:column;align-items:stretch}
  body .elementor .btn-row .btn{width:100%;justify-content:center}
}
body .elementor .tile--solid .pill--glass,body .elementor .panel .pill--glass{color:var(--white)}
body .elementor .tile--essence{grid-column:1 / -1;margin:0}
body .elementor .tile--essence .panel__body{max-width:var(--panel-max)}
body .elementor .tile--solid{background-color:var(--ddc-purple)}
body .elementor .hero{position:relative;min-height:clamp(var(--hero-min),calc(100svh - var(--gap-20)),var(--hero-max));display:flex;align-items:flex-end;color:var(--white);overflow:hidden;background-color:var(--ddc-grey);margin:var(--gap-10);border-radius:var(--r-panel)}
body .elementor .hero__media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
body .elementor .hero::after{content:"";position:absolute;inset:0;background:var(--scrim);pointer-events:none}
body .elementor .hero__inner{position:relative;z-index:1;width:100%;padding-block:var(--gap-120) var(--gap-60)}
body .elementor .hero__title{color:var(--white);max-width:11ch}
body .elementor .hero__foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--gap-40);margin-top:var(--gap-40)}
body .elementor .hero__lead{max-width:44ch;color:var(--white)}
body .elementor .hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap-10)}
body .elementor .hero__play{display:grid;place-items:center;width:var(--btn-h-sm);height:var(--btn-h-sm);border:var(--hair) solid var(--glass-line);border-radius:50%;background-color:var(--glass);color:var(--white);backdrop-filter:var(--blur);cursor:pointer}
body .elementor .hero__play:hover,body .elementor .hero__play:focus-visible{background-color:var(--ddc-green);color:var(--on-green);border-color:var(--ddc-green)}
body .elementor .hero__play svg{width:calc(var(--icon) - var(--gap-4));height:calc(var(--icon) - var(--gap-4))}
@media(max-width:640px){
  body .elementor .hero__actions{width:100%}
  body .elementor .hero__actions .btn{flex:1 1 100%}
}
body .elementor .intro{display:grid;gap:var(--gap-40);grid-template-columns:minmax(0,1fr)}
body .elementor .intro__body{display:grid;gap:var(--gap-20);max-width:var(--measure)}
@media(min-width:900px){
  body .elementor .intro{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}
}
body .elementor .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--card-min)),1fr));border-top:var(--hair) solid var(--line);margin-top:var(--gap-60)}
body .elementor .stat{display:grid;gap:var(--gap-8);align-content:start;padding:var(--gap-40) var(--gap-20) var(--gap-20) 0}
body .elementor .stat + .stat{padding-left:var(--gap-20);border-left:var(--hair) solid var(--line)}
body .elementor .stat__figure{font-size:var(--fs-stat);font-weight:900;line-height:1;letter-spacing:-.01em;color:var(--heading)}
body .elementor .stat__label{font-weight:500;color:var(--body)}
body .elementor .stat__note{font-size:var(--fs-small);color:var(--muted);max-width:28ch}
@media(max-width:640px){
  body .elementor .stat + .stat{padding-left:0;border-left:0;border-top:var(--hair) solid var(--line)}
}
body .elementor .head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--gap-20) var(--gap-40);margin-bottom:var(--gap-40)}
body .elementor .head__text{display:grid;gap:var(--gap-20);justify-items:start}
body .elementor .head__text .h2,body .elementor .head__text .h3{max-width:20ch}
body .elementor .tiles{display:grid;gap:var(--gap-10);grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--tile-min)),1fr))}
body .elementor .tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:var(--gap-20);min-height:calc(var(--tile-min) + var(--gap-100));padding:var(--gap-40) var(--gap-20) var(--gap-20);border-radius:var(--r-panel);overflow:hidden;color:var(--white);text-decoration:none;isolation:isolate}
body .elementor .tile__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease)}
body .elementor .tile::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--tile-scrim)}
body .elementor .tile__title{color:var(--white);font-size:var(--fs-h3);line-height:1.1}
body .elementor .tile__row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--gap-20)}
body .elementor .tile__go{flex:none;display:grid;place-items:center;width:var(--icon-circle);height:var(--icon-circle);border-radius:50%;background-color:var(--white);color:var(--ddc-purple)}
body .elementor .tile__go svg{width:calc(var(--icon) - var(--gap-4));height:calc(var(--icon) - var(--gap-4));transition:transform var(--dur) var(--ease)}
body .elementor .tile:hover .tile__img{transform:scale(1.04)}
body .elementor .tile:hover .tile__go svg,body .elementor .tile:focus-visible .tile__go svg{transform:var(--turn)}
body .elementor .tile--solid{background-color:var(--ddc-purple);justify-content:space-between}
body .elementor .tile--solid .pill{align-self:flex-start}
body .elementor .tile--solid::after{display:none}
body .elementor .tile--solid p{color:var(--ddc-purple-soft);max-width:34ch}
body .elementor .tile--solid .h2{color:var(--white)}
@media(min-width:900px){
  body .elementor .tiles--feature{grid-template-columns:repeat(2,minmax(0,1fr))}
}
body .elementor .panel{position:relative;display:flex;align-items:flex-end;min-height:clamp(calc(var(--hero-min) - var(--gap-100)),48vw,var(--panel-max));border-radius:var(--r-panel);overflow:hidden;color:var(--white);isolation:isolate}
body .elementor .panel__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
body .elementor .panel::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--tile-scrim)}
body .elementor .panel__body{display:grid;gap:var(--gap-20);max-width:52ch;padding:var(--gap-40)}
body .elementor .panel__body .h1{color:var(--white)}
body .elementor .cards{display:grid;gap:var(--gap-40) var(--gap-20);grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--tile-min)),1fr))}
body .elementor .cards + .head{margin-top:var(--gap-60)}
body .elementor .project{display:grid;gap:var(--gap-20);align-content:start;text-decoration:none;color:var(--body)}
body .elementor .project__media{border-radius:var(--r-card);overflow:hidden;aspect-ratio:4/3}
body .elementor .project__media img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease)}
body .elementor .project__meta{display:flex;flex-wrap:wrap;gap:var(--gap-10)}
body .elementor .project__title{font-size:var(--fs-h4);font-weight:700;line-height:1.3;color:var(--heading)}
body .elementor .project:hover .project__media img{transform:scale(1.04)}
body .elementor .person{display:grid;gap:var(--gap-10);align-content:start}
body .elementor .person__media{border-radius:var(--r-card);overflow:hidden;background-color:var(--paper);aspect-ratio:4/5}
body .elementor .person__media img{width:100%;height:100%;object-fit:cover;object-position:center 20%}
body .elementor .person__name{margin-top:var(--gap-10);font-size:var(--fs-h4);font-weight:700;line-height:1.3;color:var(--heading)}
body .elementor .person__role{font-size:var(--fs-small);color:var(--muted)}
body .elementor .person__bio{font-size:var(--fs-small)}
body .elementor .strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gap-10)}
@media(max-width:900px){
  body .elementor .strip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  body .elementor .strip{grid-template-columns:1fr}
}
body .elementor .strip__item{display:grid;place-items:center;min-height:calc(var(--gap-120) + var(--gap-60));padding:var(--gap-40);background-color:var(--white);border-radius:var(--r-panel);color:var(--muted);font-size:var(--fs-small);font-weight:500;text-align:center}
body .elementor .strip__item img{max-height:calc(var(--gap-120) + var(--gap-20));width:auto;max-width:100%}
body .elementor .place{display:grid;gap:var(--gap-40);padding:var(--gap-40);background-color:var(--paper);border-radius:var(--r-panel);overflow:hidden;align-items:center}
body .elementor .place__text{display:grid;gap:var(--gap-20);align-content:center}
@media(min-width:900px){
  body .elementor .place{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
}
body .elementor .foot{margin:var(--gap-10);padding:var(--gap-60) 0 var(--gap-40);background-color:var(--ddc-purple);color:var(--ddc-purple-soft);border-radius:var(--r-panel)}
body .elementor .foot__top{display:grid;gap:var(--gap-40);grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--card-min)),1fr));padding-bottom:var(--gap-40);border-bottom:var(--hair) solid var(--on-purple-line)}
body .elementor .foot__logo{width:var(--logo-foot)}
body .elementor .foot__strap{margin-top:var(--gap-20);color:var(--white);font-size:var(--fs-h4);font-weight:700;line-height:1.3;max-width:20ch}
body .elementor .foot__head{margin-bottom:var(--gap-10);color:var(--white)}
body .elementor .foot__list{list-style:none;padding:0;display:grid;gap:var(--gap-8)}
body .elementor .foot a{color:var(--white);text-decoration:none}
body .elementor .foot a:hover{color:var(--ddc-green)}
body .elementor .foot__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--gap-10) var(--gap-40);padding-top:var(--gap-20);font-size:var(--fs-small)}
body .elementor .stats--ink{border-top-color:var(--on-ink-line)}
body .elementor .stats--ink .stat + .stat{border-left-color:var(--on-ink-line)}
body .elementor .stats--ink .stat__figure{color:var(--ddc-green)}
body .elementor .stats--ink .stat__label{color:var(--white)}
body .elementor .stats--ink .stat__note{color:var(--on-ink-soft)}
@media(max-width:640px){
  body .elementor .stats--ink .stat + .stat{border-left:0;border-top-color:var(--on-ink-line)}
}
body .elementor .rules .h4{color:var(--heading)}
body .elementor .contact{display:grid;gap:var(--gap-40);align-items:start;margin-top:var(--gap-60)}
@media(min-width:900px){
  body .elementor .contact{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
}
body .elementor .contact__details{display:grid;gap:var(--gap-20);align-content:start}
body .elementor .contact__list{display:grid;gap:var(--gap-20);list-style:none;padding:0;margin-top:var(--gap-10)}
body .elementor .contact__item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--gap-20);align-items:start}
body .elementor .contact__icon{display:grid;place-items:center;width:var(--icon-circle);height:var(--icon-circle);border-radius:50%;background-color:var(--ddc-purple-tint);color:var(--heading)}
body .elementor .contact__icon svg{width:var(--icon);height:var(--icon)}
body .elementor .contact__text{display:grid;gap:var(--gap-4);font-size:var(--fs-small);line-height:1.5;color:var(--body)}
body .elementor .contact__label{font:500 var(--fs-label)/1.2 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--heading)}
body .elementor .contact__text a{color:var(--body);text-decoration:none;border-bottom:var(--hair) solid var(--line)}
body .elementor .contact__text a:hover{color:var(--heading);border-bottom-color:var(--heading)}
/* V4 adaptations. Elementor's background-video element owns the play/pause pair and positions it
   absolutely; place it exactly where the mock's inline .hero__play sits (end of .hero__actions,
   vertically centred on the 52px buttons), and reserve its space in the actions row. */
/* e-svg wraps each icon in a sized div; hand sizing back to the mock's own svg rules. */
body .elementor .e-svg-base{display:contents}
/* e-svg prints width/height 100% INLINE on the <svg>; only !important outranks it. Sizes = the mock's. */
body .elementor .e-svg-base > svg{width:var(--svg-size,var(--icon)) !important;height:var(--svg-size,var(--icon)) !important}
body .elementor :is(.btn__icon,.tile__go,.hero__play,.carousel__btn){--svg-size:calc(var(--icon) - var(--gap-4))}
body .elementor :is(.link,.contact__icon,.need__a){--svg-size:var(--icon)}
/* The V4 background-video element sizes itself width:100%, which with the card margin pushed the
   hero 10px past the right edge (29 Sept, Richard). Auto width keeps the 10px gap on both sides. */
body .elementor .hero{flex-direction:row}
body .elementor .hero.e-background-video{width:auto;max-width:calc(100% - var(--gap-20))}
body .elementor .hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
body .elementor .hero__controls{position:absolute;inset-inline-end:max(var(--gut),calc(50% - var(--shell) / 2 + var(--gut)));inset-block-end:calc(var(--gap-60) + (var(--btn-h) - var(--btn-h-sm)) / 2);z-index:2;display:flex;gap:0;padding:0}
body .elementor .hero .hero__actions{margin-inline-end:calc(var(--btn-h-sm) + var(--gap-10))}
body .elementor .hero__play{padding:0}
@media(max-width:640px){
  body .elementor .hero .hero__actions{margin-inline-end:0;margin-block-end:calc(var(--btn-h-sm) + var(--gap-10))}
  body .elementor .hero__controls{inset-inline-end:auto;inset-inline-start:var(--gut);inset-block-end:var(--gap-60)}
}
/* The mock's form layout on the V4 e-form (field and control styling lives in forms.css). */
body .elementor .e-form-base.form{display:grid;gap:var(--gap-20);background:var(--paper);padding:var(--gap-60) var(--gap-40);border-radius:var(--r-panel)}
body .elementor .form__row{display:grid;gap:var(--gap-20);grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--card-min)),1fr));padding:0}
body .elementor .form__note{font-size:var(--fs-small);color:var(--muted)}
/* Each V4 field wrapper kept Elementor's default 10px padding, so fields sat 10px inside the submit button
   and the select's caret and floating label (positioned on the wrapper) landed 10px off (30 Sept, Richard). */
body .elementor .e-form-base .field{padding:0}
/* Elementor 4.3 prints fill="currentColor" on every e-svg root; stroke-drawn icons then render as solid
   shapes (the clock was a white disc). Line icons keep an empty fill. */
body .elementor .e-svg-base > svg[stroke]{fill:none}
/* Contact details: larger and more air (30 Sept, Richard). */
body .elementor .contact__list{gap:calc(var(--gap-20) + var(--gap-10))}
body .elementor .contact__item{align-items:center}
body .elementor .contact__icon{width:calc(var(--icon-circle) + var(--gap-10));height:calc(var(--icon-circle) + var(--gap-10));--svg-size:calc(var(--icon) + var(--gap-4))}
body .elementor .contact__text{font-size:var(--fs-body)}
/* TEMPORARY compat for pages not yet rebuilt to mock classes (About, Services, Our Work, Contact,
   Careers, Privacy, Cookies): their old .section-card > .shell relied on the retired shell CSS.
   Delete once every page is on .section > .shell. */
body .elementor .section-card > .shell{width:100%;display:flex;flex-direction:column;gap:var(--gap-20);padding-block:var(--section-y)}
body .elementor .section-card.hero > .shell{padding-block:var(--gap-120) var(--gap-60)}
/* Footer (interim part 82): Privacy + Cookies sit on the right of the copyright line, one row not two
   (30 Sept, Richard). The links group was full width, so it always wrapped under the copyright. */
[data-elementor-type="footer"] .shell > .e-con:has(a[href*="privacy"]){align-items:center;column-gap:var(--gap-20)}
[data-elementor-type="footer"] .shell > .e-con:has(a[href*="privacy"]) > *{width:auto;flex:0 0 auto}
/* Old accreditation loops (lib.mjs accreditationCard: bare .accred-logo images) stretched every item to
   full width, so About showed one small logo per row (30 Sept, Richard). Same look as the mock strip until
   About is rebuilt with mock-ui's u.accreditations(). */
body .elementor .e-collection-loop-layout-base:has(.accred-logo){display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch;gap:var(--gap-10);padding:0;margin:0}
@media(max-width:900px){body .elementor .e-collection-loop-layout-base:has(.accred-logo){grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){body .elementor .e-collection-loop-layout-base:has(.accred-logo){grid-template-columns:1fr}}
body .elementor .e-collection-loop-layout-base:has(.accred-logo) > *{display:grid;place-items:center;min-height:calc(var(--gap-120) + var(--gap-60));padding:var(--gap-40);margin:0;background:var(--white);border-radius:var(--r-panel)}
body .elementor .e-collection-loop-layout-base:has(.accred-logo) .accred-logo{width:auto;height:auto;max-width:100%;max-height:calc(var(--gap-120) + var(--gap-20));padding:0;border-radius:0;background:none}
/* Stacked section heads (tablet/phone): keep the heading on the shell edge, not pushed right. */
@media(max-width:1024px){body .elementor .head{align-items:flex-start}}
