/* Hero is locked to the background photo's own proportions (1920x1340), so every position below
   is a % of the hero and the composition matches the design at any desktop width. */
.zhero{--zr-ink:var(--zip-ink,#14263d);--zr-blue:var(--zip-blue,#0a6cc4);--zr-p:0;--zr-pad:max(40px,5vw);
position:relative;z-index:5;width:100%;aspect-ratio:1920/1340;background:#eaf3fc var(--zhero-bg) center bottom/cover no-repeat;overflow-x:clip;color:var(--zr-ink)}
.zhero *,.zhero *::before,.zhero *::after{box-sizing:border-box}
:where(.zhero ul,.zhero li){margin:0;padding:0;list-style:none}
.zhero__mask{display:block;flex:none;background:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}

/* top container */
.zhero__top{position:absolute;inset:0;z-index:4;pointer-events:none}
.zhero__top>*{pointer-events:auto}
.zhero__copy{position:absolute;left:var(--zr-pad);top:11%;width:42vw}
.zhero .zhero__eyebrow{margin:0 0 1.6vw;font-size:clamp(10px,1vw,18px);font-weight:500;letter-spacing:.32em;line-height:1.4;text-transform:uppercase;color:var(--zr-ink)}
.zhero .zhero__title{margin:0 0 1.5vw;font-size:clamp(32px,4.5vw,88px);font-weight:700;line-height:1.05;letter-spacing:0;text-transform:uppercase;color:var(--zr-ink)}
.zhero__line{display:block;white-space:nowrap}
.zhero__line.is-accent{color:var(--zr-blue)}
.zhero .zhero__desc{margin:0 0 2vw;max-width:30em;font-size:clamp(13px,1.111vw,24px);font-weight:400;line-height:1.5;color:var(--zr-ink)}
.zhero__desc span{display:block}
.zhero__btns{display:flex;flex-wrap:wrap;align-items:center;gap:1vw}
.zhero .zh__btn{display:inline-flex;align-items:center;gap:.7em;padding:.85em 1.7em;border-radius:.5em;background:var(--zr-blue);color:#fff;font-size:clamp(14px,1.25vw,22px);font-weight:500;line-height:1.2;letter-spacing:0;text-transform:none;text-decoration:none;white-space:nowrap;transition:filter .2s}
.zhero .zh__btn:hover{filter:brightness(.9);color:#fff}
.zhero__mask--btn{width:1.1em;height:1.1em;transition:transform .2s}
.zhero__btn:hover .zhero__mask--btn{transform:translateX(3px)}
.zhero__video-btn{display:inline-flex;align-items:center;gap:.6em;padding:.45em 1.3em .45em .55em;border:0;border-radius:.6em;background:rgba(255,255,255,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.65);color:var(--zr-ink);font:inherit;font-size:clamp(14px,1.25vw,22px);font-weight:500;line-height:1.2;cursor:pointer;box-shadow:0 4px 14px rgba(20,38,61,.1);transition:background .2s,transform .2s}
.zhero__video-btn:hover{background:rgba(255,255,255,.62);transform:translateY(-1px)}
.zhero__mask--play{width:2.1em;height:2.1em;color:var(--zr-blue)}

/* right icon boxes */
.zhero__side{position:absolute;right:0;top:3.5%;height:53%;width:16vw;display:flex;flex-direction:column;justify-content:space-between;color:#fff;text-align:center}
.zhero__box{display:flex;flex-direction:column;align-items:center;gap:.5vw}
.zhero .zhero__box h4{margin:0;max-width:9em;font-size:clamp(10px,1vw,18px);font-weight:500;line-height:1.25;letter-spacing:0;text-transform:none;color:inherit}
.zhero__box--side .zhero__mask{width:clamp(28px,3.4vw,64px);height:clamp(28px,3.4vw,64px)}

/* bottom container */
.zhero__bottom{position:absolute;left:0;right:0;top:83%;z-index:4}
.zhero__row{display:grid;grid-template-columns:repeat(4,minmax(0,13.4vw));margin-left:5vw;margin-top:2vw;align-items:start}
.zhero__box--bot{color:var(--zr-ink);text-align:center}
.zhero__box--bot .zhero__mask{width:clamp(28px,3.4vw,64px);height:clamp(28px,3.4vw,64px)}
.zhero .zhero__box--bot h4{font-size:clamp(10px,1vw,18px);font-weight:500;white-space:nowrap;max-width:none}

/* plants */
.zhero__plants{position:absolute;inset:0;pointer-events:none;z-index:3}
.zhero__plant{position:absolute;will-change:transform}
.zhero__plant img{display:block;width:100%;height:auto}
.zhero__plant--1{--zr-k:-.05;left:-.6vw;top:59%;width:12.5vw;z-index:3}
.zhero__plant--2{display:none}
.zhero__plant--3{--zr-k:0;right:0;top:auto;bottom:0;height:30%;width:10.5vw;overflow:hidden;z-index:1}
.zhero__plant--3 .zhero__plant-in{position:absolute;right:-1vw;bottom:-3vw;width:calc(100% + 1vw)}
.zhero__plant-in{transform-origin:0 100%}
.zhero__plant--3 .zhero__plant-in{transform-origin:100% 100%}
.zhero__plant img{transform-origin:inherit}


/* video popup */
.zhero__modal{width:min(960px,92vw,145vh);padding:0;border:0;border-radius:12px;background:#000;overflow:visible}
.zhero__modal::backdrop{background:rgba(8,16,28,.82)}
.zhero__modal video{display:block;width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;border-radius:12px;background:#000}
.zhero__close{position:absolute;top:-18px;right:-18px;z-index:2;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#14263d;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.zhero__close:hover{background:var(--zr-blue);color:#fff}

@media (prefers-reduced-motion:reduce){
.zhero__plant{transform:none}
}

/* tablet + mobile: stacked (<=1024px) */
@media (max-width:1024px){
.zhero{--zr-pad:20px;aspect-ratio:auto;background-position:center bottom;display:flex;flex-direction:column;padding-bottom:max(40px,6vw)}
/* soft wash behind the copy only; fades out well before the top-right so the photo stays clear there */
.zhero::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(255,255,255,.9) 0,rgba(255,255,255,.7) 40%,rgba(255,255,255,0) 72%);z-index:1;pointer-events:none}
.zhero__top,.zhero__bottom,.zhero__copy,.zhero__side{position:relative;inset:auto;top:auto;right:auto;left:auto;height:auto;z-index:4}
.zhero__top{display:block}
.zhero__copy{width:auto;padding:48px var(--zr-pad) 0}
.zhero .zhero__eyebrow{font-size:12px;margin-bottom:14px}
.zhero .zhero__title{font-size:clamp(30px,5.4vw,46px);margin-bottom:16px}
.zhero .zhero__desc{font-size:16px;margin-bottom:22px}
.zhero__btns{gap:12px}
.zhero .zh__btn,.zhero__video-btn{font-size:16px}
/* tablet: 2 x 2, left aligned */
.zhero__side{display:flex;flex-direction:row;gap:16px;width:max-content;max-width:calc(100% - var(--zr-pad)*2);margin:28px 0 0 var(--zr-pad);padding:12px 18px;border-radius:12px;background:rgba(20,38,61,.78)}
.zhero__side .zhero__box{width:88px}
.zhero .zhero__box h4{font-size:10.5px}
.zhero__box--side .zhero__mask{width:24px;height:24px}
.zhero__bottom{margin-top:52px}
.zhero__row{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 20vw 0 15vw;padding:0;gap:6px}
.zhero__box--bot .zhero__mask{width:24px;height:24px}
.zhero .zhero__box--bot h4{font-size:10.5px}
.zhero__plants{z-index:2}
.zhero__plant--1{top:auto;bottom:12vw;left:-3vw;width:13vw}
.zhero__plant--2{display:none}
.zhero__plant--3{width:13vw;height:26vw}
}
/* mobile (<=767px) */
@media (max-width:767px){
.zhero{--zr-pad:15px;background-image:var(--zhero-bg-m);min-height:calc(100vw*2.3);padding-bottom:20px}
.zhero__top{margin-bottom:40px}
/* the background photo has its own white lettering at roughly 23-34% of the hero height: keep the description below it */
.zhero .zhero__desc{margin-left:-10px;margin-right:-10px;padding:10px;border-radius:12px;background:rgba(255,255,255,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.zhero__bottom{margin-top:auto}
.zhero__copy{padding-top:36px}
.zhero .zhero__eyebrow{font-size:12px;letter-spacing:.24em}
.zhero .zhero__title{font-size:clamp(34px,8.4vw,60px)}
.zhero__btns{gap:10px}
.zhero .zh__btn,.zhero__video-btn{font-size:14px}
.zhero .zh__btn{padding:12px 18px}
.zhero__video-btn{padding:8px 16px 8px 8px}
.zhero__mask--play{width:26px;height:26px}
/* mobile: top 4 stay in one strip */
.zhero__side{display:flex;flex-direction:row;width:auto;max-width:none;margin:28px var(--zr-pad) 0;gap:6px;padding:14px 6px;justify-content:space-between}
.zhero__side .zhero__box{flex:1;min-width:0}
.zhero .zhero__side .zhero__box h4{font-size:10.5px}
/* mobile: bottom 4 become 2 x 2 */
.zhero__row{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 36vw 0 14vw;padding:0;gap:18px 6px}
.zhero .zhero__box--bot h4{white-space:normal}
.zhero__box--bot .zhero__mask{width:24px;height:24px}
.zhero .zhero__box--bot h4{font-size:10.5px}
.zhero__plant--1{width:17vw;bottom:14vw}
.zhero__plant--2{display:none}
.zhero__plant--3{width:13vw;height:24vw}
.zhero__plant--3 .zhero__plant-in{bottom:0}
.zhero__close{top:-14px;right:-6px}
}
/* hidden only while GSAP is about to play the entrance (class set by an inline script, removed by JS or a failsafe) */
.zhero.zh-pre [data-zr],.zhero.zh-pre .zhero__plant-in{opacity:0}

/* mobile only: the four bottom boxes become a one-at-a-time, auto-playing carousel with larger icon and text */
@media (max-width:767px){
.zhero__row{display:block;position:relative;height:118px;grid-template-columns:none;gap:0;text-align:center}
.zhero__row .zhero__box--bot{position:absolute;left:0;right:0;top:0;display:flex;flex-direction:column;align-items:center;gap:10px;opacity:0!important;visibility:hidden;transition:opacity .6s ease,visibility .6s}
.zhero__row .zhero__box--bot.is-active{opacity:1!important;visibility:visible}
.zhero__row .zhero__box--bot .zhero__mask{width:56px;height:56px}
.zhero .zhero__row .zhero__box--bot h4{font-size:15px;font-weight:600;white-space:nowrap;line-height:1.25}
.zhero__dots{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;gap:7px}
.zhero__dots button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(20,38,61,.28);cursor:pointer;transition:background .3s,transform .3s}
.zhero__dots button.is-on{background:var(--zr-blue);transform:scale(1.25)}
}

/* tablet only (768-1024px): top and bottom icon boxes use 30px icons */
@media (min-width:768px) and (max-width:1024px){
.zhero__box--side .zhero__mask,.zhero__row .zhero__box--bot .zhero__mask{width:30px;height:30px}
}

/* price: frosted chip (same style as the Watch Video button) right under the headline; amount in the primary blue */
.zhero__price{display:inline-flex;align-items:baseline;gap:.5em;margin:0 0 1.3vw;padding:.55em 1.15em .6em;border-radius:.6em;background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.75);box-shadow:0 4px 14px rgba(20,38,61,.1);color:var(--zr-ink);line-height:1;white-space:nowrap}
.zhero__price-from,.zhero__price-unit{font-size:clamp(13px,1.15vw,21px);font-weight:500;letter-spacing:.02em}
.zhero__price-unit{font-weight:600}
.zhero__price-val{font-size:clamp(26px,2.7vw,52px);font-weight:700;letter-spacing:0;color:var(--zr-blue)}

.zhero__copy{display:flex;flex-direction:column;align-items:flex-start}
.zhero__eyebrow{order:1}.zhero__title{order:2}.zhero__price{order:3}.zhero__desc{order:4}.zhero__btns{order:5}
@media (max-width:1024px){.zhero__price{margin:0 0 14px;padding:9px 16px 10px;border-radius:10px}.zhero__price-from,.zhero__price-unit{font-size:15px}.zhero__price-val{font-size:30px}}
/* mobile: price sits above the description; it carries the offset that clears the photo lettering */
@media (max-width:767px){.zhero__price{margin:max(16px,calc(80vw - 208px)) 0 12px}.zhero__price-from,.zhero__price-unit{font-size:14px}.zhero__price-val{font-size:28px}}

/* mobile: price on two rows - "Lowest Price, NO hidden cost" on the first, "SGD 18/PSF" on the second */
@media (max-width:767px){
.zhero__price{display:inline-grid;grid-template-columns:auto auto;justify-content:start;gap:8px 9px;width:auto}
.zhero__price-from::after{content:","}
.zhero__price-unit{order:2}
.zhero__price-val{order:3;grid-column:1/-1}
}