/* Motion and controls. Original identity artwork supplies both door leaves. */
.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}
.services-layout>.brand-motion{height:278px;padding:20px 16px 28px 8px;gap:12px;overflow:hidden}
.door-scene{position:relative;flex:none;width:150px;height:206px;overflow:hidden;transform:scale(.92);transform-origin:center;margin:0 -4px;isolation:isolate}
.door-scene img{position:absolute;max-width:none;width:562px;height:207px;left:0;top:0}
.door-base{z-index:0}
/* Cover only the original cream channels inside the animated gold frame. */
.door-surround{position:absolute;z-index:1;left:17px;top:16px;width:120.5px;height:176.5px;border-radius:60.25px 60.25px 0 0;background:var(--forest);pointer-events:none}
.door-chamber{position:absolute;z-index:2;left:23.6px;top:26.9px;width:106.6px;height:165.7px;border-radius:54px 54px 0 0;overflow:hidden;perspective:480px;background:radial-gradient(ellipse at 50% 45%,#496452,#173d2d 60%,#102c21);box-shadow:inset 0 0 16px #071b1390}
.double-leaf{position:absolute;top:0;width:53.3px;height:165.7px;transform-style:preserve-3d;backface-visibility:hidden;z-index:2}
.leaf-left{left:0;transform-origin:0 50%;clip-path:polygon(0 100%,0 30%,5% 20%,17% 12%,38% 5%,67% 1%,100% 0,100% 100%);animation:open-left 7.2s cubic-bezier(.22,1,.36,1) infinite}
.leaf-right{right:0;transform-origin:100% 50%;clip-path:polygon(0 0,33% 1%,62% 5%,83% 12%,95% 20%,100% 30%,100% 100%,0 100%);animation:open-right 7.2s cubic-bezier(.22,1,.36,1) infinite}
.door-skin{position:absolute;inset:0;overflow:hidden;background:var(--forest)}
.door-skin img{left:-23.6px;top:-26.9px}
.leaf-right .door-skin{transform:scaleX(-1)}
.door-centre-light{position:absolute;left:50%;top:8px;bottom:0;width:2px;z-index:3;pointer-events:none;background:var(--gold);box-shadow:0 0 14px 4px #e1be7666;animation:centre-light 7.2s ease-in-out infinite}
.arch-rim{position:absolute;inset:0;width:150px;height:206px;z-index:5;pointer-events:none;overflow:visible}
.arch-rim path{stroke:#f7d994;stroke-width:3.2;stroke-linecap:round;stroke-dasharray:9 91;filter:drop-shadow(0 0 3px #e1be76);animation:rim-travel 3.6s linear infinite}
.brand-motion .motion-story{min-width:0;flex:1;padding-bottom:12px}
.motion-caption,.motion-caption b{font-size:17px;line-height:1.4}
.brand-motion .motion-detail{font-size:14px;line-height:1.5;margin-top:10px;max-width:145px}
.inventory-window{position:relative;height:114px;margin-top:12px;max-width:152px;border:1px solid #cdd5c7;border-radius:10px;overflow:hidden;background:var(--paper);isolation:isolate}
.inventory-window:before,.inventory-window:after{content:'';position:absolute;left:0;right:0;height:28px;z-index:3;pointer-events:none}
.inventory-window:before{top:0;background:linear-gradient(var(--cream),#faf7ef40)}
.inventory-window:after{bottom:0;background:linear-gradient(#faf7ef40,var(--cream))}
.inventory-selection{position:absolute;top:29px;left:5px;right:5px;height:54px;border:1px solid #c4a15d;border-radius:7px;background:#e1be7629;z-index:0;animation:inventory-confirm 7.2s ease-in-out infinite}
.inventory-track{position:relative;z-index:1;transform:translateY(-24px);animation:inventory-roll 7.2s cubic-bezier(.25,.85,.25,1) infinite;will-change:transform}
.inventory-row{height:54px;display:flex;align-items:center;gap:9px;padding:0 11px;font-size:14px;font-weight:600;line-height:1.3;white-space:nowrap;color:var(--forest)}
.inventory-row img{position:static;width:27px;height:27px;max-width:none;flex:none;opacity:1}
.inventory-click{position:absolute;z-index:4;right:2px;top:24px;display:grid;place-items:center;width:19px;height:19px;font-size:14px;background:var(--forest);color:var(--paper);border-radius:50%;animation:inventory-click 7.2s ease-in-out infinite}
.brand-motion .motion-pause{width:44px;height:44px;bottom:5px;right:5px;background:transparent;border:1px solid transparent;border-radius:7px;font-size:16px}
.brand-motion .motion-pause:hover{background:var(--sage);border-color:#cad5c6}
.brand-motion.paused *,.brand-motion.paused *:before,.brand-motion.paused *:after{animation-play-state:paused!important}
@keyframes inventory-roll{0%,5%{transform:translateY(-24px)}11%{transform:translateY(-78px)}16%{transform:translateY(-132px)}21%{transform:translateY(-186px)}27%{transform:translateY(-240px)}34%,83%{transform:translateY(-294px)}94%,100%{transform:translateY(-348px)}}
@keyframes inventory-confirm{0%,31%,90%,100%{background:#e1be7629;box-shadow:none}37%,78%{background:#e1be7666;box-shadow:0 0 15px #b78a3233}}
@keyframes inventory-click{0%,33%,84%,100%{opacity:0;transform:scale(.6)}38%,78%{opacity:1;transform:scale(1)}}
@keyframes open-left{0%,39%,90%,100%{transform:rotateY(0);filter:brightness(1)}53%,73%{transform:rotateY(-74deg);filter:brightness(.85)}}
@keyframes open-right{0%,39%,90%,100%{transform:rotateY(0);filter:brightness(1)}53%,73%{transform:rotateY(74deg);filter:brightness(.85)}}
@keyframes centre-light{0%,32%,53%,100%{opacity:0}37%,44%{opacity:.85}}
@keyframes rim-travel{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}
/* Rotating names have a stable action beside them, plus a static list. */
.suburb-carousel{position:relative;display:flex;align-items:center;gap:8px;min-width:0;max-width:340px}
.suburb-window{height:44px;overflow:hidden;flex:1;min-width:0}
.suburb-track{animation:suburb-cycle var(--area-duration) steps(var(--area-count),end) infinite}
.suburb-row{height:44px;display:flex;align-items:center;font-size:18px;font-family:var(--display);font-weight:800;line-height:1.25;white-space:nowrap}
.area-pause{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid #bdc9b8;border-radius:7px;background:transparent;color:var(--forest);font-size:16px}
.area-pause:hover{background:#173d2d0a}
.suburb-carousel.paused .suburb-track,.suburb-carousel:hover .suburb-track,.suburb-carousel:focus-within .suburb-track{animation-play-state:paused}
@keyframes suburb-cycle{to{transform:translateY(calc(var(--area-count) * var(--area-row-height,44px) * -1))}}
.hero-coverage>div{flex:1;min-width:0}
.hero-coverage strong{font-size:15px;line-height:1.6}
.hero-coverage .suburb-carousel{max-width:345px;margin-top:3px}
.hero-coverage .suburb-row{color:var(--gold);font-size:18px}
.hero-coverage .area-pause{color:var(--cream);border-color:#91a59770}
.hero-coverage .area-pause:hover{background:#ffffff14}
.coverage-jump{display:inline-flex;align-items:center;min-height:44px;margin-top:2px;font-size:14px;font-weight:600;color:var(--paper);line-height:1.5;padding:8px 0}
.area-list a{font-size:16px;font-weight:600;line-height:1.5;min-height:46px;display:flex;align-items:center;border-bottom:1px solid #cdd6ca;text-decoration:none;padding:8px 0;color:var(--forest)}
.area-list a:hover{color:var(--dark-brass);text-decoration:underline}
.nearby-coverage{margin-top:27px;border-top:1px solid #c8d2c6;padding-top:24px}
.nearby-coverage h3{font-size:24px;line-height:1.3;margin-bottom:10px}
.nearby-coverage>p{font-size:14px;line-height:1.6;margin-bottom:8px}
.nearby-coverage .suburb-row{font-size:20px;color:var(--forest)}
.area-check-link{display:flex;align-items:center;gap:10px;min-height:48px;font-size:14px;font-weight:700;line-height:1.5;color:var(--forest);margin-top:8px;padding:8px 0}
.area-check-link .icon{width:19px;height:19px}
.nearby-list>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:10px 0;font-size:14px;list-style:none;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.nearby-list>summary::-webkit-details-marker{display:none}.nearby-list>summary>.icon{width:16px;height:16px}.nearby-list[open]>summary>.icon{transform:rotate(180deg)}
.nearby-list>div{display:grid;grid-template-columns:1fr 1fr;gap:0 15px;margin-top:8px}
.nearby-list a{display:flex;align-items:center;min-height:44px;font-size:14px;line-height:1.5;text-decoration:none;padding:8px 0;border-top:1px solid #c8d2c6}
.nearby-list a:hover{text-decoration:underline}
/* Make service choices and secondary routes comfortable to tap. */
.service-content h3 a{display:block;text-decoration:none;min-height:44px}
.service-content h3 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}
.additional-services{align-items:center;gap:24px}.service-shortcuts{display:flex;flex-wrap:wrap;gap:10px}
.service-shortcuts a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:1px solid #b5c3ae;border-radius:6px;padding:10px 15px;font-size:14px;font-weight:600;line-height:1.5;text-decoration:none;color:var(--forest);background:var(--paper)}
.service-shortcuts a:hover{background:var(--sage);border-color:var(--forest)}
.text-link{display:inline-flex;align-items:center;min-height:44px}
.related-links a{min-height:48px;padding:8px 0}
.footer-grid a{min-height:44px;display:flex;align-items:center;padding:8px 0;margin-bottom:3px}
.footer-bottom{flex-wrap:wrap;row-gap:6px}.footer-bottom>.icon-credit{flex-basis:100%;font-size:14px;line-height:1.5;min-height:44px;display:flex;align-items:center;padding:8px 0}
.top-bar a{min-height:44px;display:flex;align-items:center}.top-bar .wrap{padding-top:0;padding-bottom:0;align-items:center}
@media(max-width:1000px){.services-layout>.brand-motion{padding:18px 12px 28px 0;gap:8px;height:278px}.door-scene{transform:scale(.85);margin:0 -10px}.motion-caption,.motion-caption b{font-size:16px}.inventory-row{gap:7px;padding:0 9px}.inventory-row img{width:25px;height:25px}}
@media(max-width:700px){.services-layout>.brand-motion{width:100%;max-width:420px;height:278px;padding:18px 20px 28px 8px;gap:16px}.door-scene{transform:scale(.93);margin:0 -4px}.motion-caption,.motion-caption b{font-size:17px}.inventory-row{gap:9px;padding:0 11px}.inventory-row img{width:27px;height:27px}.inventory-window{max-width:166px}.brand-motion .motion-detail{font-size:14px}.service-shortcuts{gap:10px}.service-shortcuts a{font-size:14px;flex-grow:1;text-align:center}.additional-services>span{margin-bottom:14px}.hero-coverage .suburb-carousel{max-width:none}.area-list{gap:0 20px}.nearby-coverage .suburb-row{font-size:20px}.footer-bottom>.icon-credit{flex-basis:auto}.top-bar .wrap{padding-top:0;padding-bottom:0}.top-bar a{min-height:44px}}
@media(max-width:390px){.services-layout>.brand-motion{height:265px;padding:14px 12px 24px 0;gap:5px}.door-scene{transform:scale(.78);margin:0 -14px}.motion-caption,.motion-caption b{font-size:16px}.inventory-row{gap:7px;padding:0 8px;font-size:14px}.inventory-row img{width:24px;height:24px}.inventory-click{right:0}.brand-motion .motion-detail{max-width:125px}.hero-coverage strong{font-size:14px}.hero-coverage .suburb-row{font-size:17px}.nearby-coverage .suburb-row{font-size:16px}.area-panel{padding:24px}.nearby-list>div{column-gap:10px}}
@media(prefers-reduced-motion:reduce){.double-leaf{transform:none!important}.door-centre-light,.arch-rim,.inventory-click{display:none}.inventory-track{animation:none!important;transform:translateY(-294px)}.suburb-track{animation:none!important;transform:none!important}.inventory-selection{background:#e1be7638;box-shadow:none}.motion-pause,.area-pause{display:none}}
