/* Supplied artwork, with editable copy and independently animated layers. */
.hospitality-features{position:relative;isolation:isolate;overflow:hidden;padding:28px 0 47px;background:radial-gradient(ellipse at 50% 50%,#ffffffb0,transparent 70%),#f2faf9;color:#084f55}
.hf-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(1720px,84%);margin:0 auto}
.hf-item{position:relative;min-width:0;text-align:center;padding:0 20px}
.hf-item+.hf-item:before{content:'';position:absolute;left:0;top:56px;bottom:45px;width:1px;background:#b5dddd}
.hf-item+.hf-item:after{content:'';position:absolute;left:-3px;top:132px;width:7px;height:24px;border-radius:4px;background:#99cfcc}
.hf-visual{position:relative;width:clamp(132px,10vw,202px);aspect-ratio:202/171;margin:0 auto 8px;mix-blend-mode:multiply}
.hf-crop{position:absolute;inset:0;overflow:hidden;display:block}
.hf-crop img{position:absolute;max-width:none!important;width:var(--image-width);height:auto;left:var(--image-left);top:var(--image-top);pointer-events:none;user-select:none}
.hospitality-features .hf-item h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(22px,1.72vw,35px);font-weight:700;letter-spacing:-.6px;line-height:1.14;color:#084f55;margin:0 0 12px}
.hospitality-features .hf-item p{font-size:clamp(15px,1.08vw,22px);font-weight:400;line-height:1.4;margin:0;color:#46666b}
.hf-landscape{position:absolute;inset:-5px -18px;background:url('assets/hospitality-features.png') center/100% 100% no-repeat;mask-image:linear-gradient(90deg,#000 0%,#000 8%,transparent 11.5%,transparent 89%,#000 92%,#000 100%);opacity:.86;z-index:0;animation:hf-landscape-drift 23.5s ease-in-out infinite alternate}
.hf-mist{position:absolute;z-index:1;pointer-events:none;left:-15%;width:130%;height:125px;bottom:0;opacity:.3;filter:blur(16px);background:radial-gradient(ellipse at 30% 80%,#fff 0%,#fff0 48%),radial-gradient(ellipse at 70% 30%,#d6edeb 0%,#fff0 42%);animation:hf-mist-drift 23s ease-in-out infinite alternate}
.hf-mist-front{height:55px;opacity:.5;bottom:-6px;animation-duration:31s;animation-direction:alternate-reverse}
.hf-sun{position:absolute;width:25%;height:25%;left:37%;top:23%;border-radius:50%;background:#ffcc5540;filter:blur(9px);mix-blend-mode:screen;animation:hf-sun-glow 3.5s ease-in-out infinite alternate}
.hf-icon-mist{position:absolute;width:68%;height:13%;left:14%;top:72%;background:linear-gradient(90deg,transparent,#ffffffa0 30%,#e9f9f7a0 65%,transparent);filter:blur(4px);animation:hf-icon-mist-drift 9s ease-in-out infinite alternate}
.hf-leaf-halo{position:absolute;inset:5% 5% 0;border-radius:49% 44% 45% 47%;background:radial-gradient(ellipse at 55% 45%,#dcefeb99,#e6f4f166 70%,transparent 73%)}
.hf-leaf-small{clip-path:polygon(14% 42%,34% 48%,51% 85%,43% 91%,19% 76%,11% 60%);transform-origin:46% 88%;animation:hf-leaf-small-sway 7s ease-in-out infinite alternate}
.hf-leaf-large{clip-path:polygon(38% 44%,50% 29%,79% 18%,80% 49%,71% 73%,47% 90%,40% 80%);transform-origin:47% 89%;animation:hf-leaf-large-sway 8.5s ease-in-out infinite alternate}
.hf-window{position:absolute;border-radius:1px;background:#ffd785;box-shadow:0 0 6px 2px #ffbd6059;opacity:.4;mix-blend-mode:screen;animation:hf-window-glow 5.5s ease-in-out infinite alternate}
.hf-window-top{left:44.5%;top:42%;width:5.1%;height:6.6%}
.hf-window-left{left:36.6%;top:58.8%;width:5.3%;height:9%}
.hf-window-right{left:61.6%;top:58.8%;width:5.3%;height:9%;animation-delay:-1.4s}
.hf-cup-base{clip-path:polygon(0 46%,100% 46%,100% 100%,0 100%)}
.hf-steam{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none;stroke:#117b74;stroke-width:3.2;stroke-linecap:round;filter:drop-shadow(0 1px 1px #1a8a7133)}
.hf-steam path{opacity:.6;animation:hf-steam-rise 4.2s ease-out infinite;transform-origin:center;transform-box:fill-box}
.hf-steam path:nth-child(2){animation-delay:-1.4s;animation-duration:4.8s}
.hf-steam path:nth-child(3){animation-delay:-2.8s}
.hf-flow{position:absolute;inset:auto -18px -5px;height:75px;z-index:1;pointer-events:none;opacity:.55}
.hf-flow svg{width:100%;height:100%;overflow:visible;fill:none;stroke:#8ac6c2;stroke-width:2}
.hf-flow-highlight{stroke:#2eaca1;stroke-width:2.2;stroke-dasharray:100 1900;animation:hf-flowing-line 22s linear infinite}
.hf-motion-toggle{position:absolute;right:14px;bottom:10px;z-index:3;display:flex;align-items:center;justify-content:center;gap:6px;min-width:36px;min-height:36px;border:1px solid #b5d9d4;border-radius:20px;padding:6px 10px;background:#f4faf7e6;color:#176660;font-size:13px}
.hf-motion-toggle[hidden]{display:none}.hf-motion-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.hf-motion-toggle:focus-visible{outline:3px solid #c38a21;outline-offset:3px}
.hospitality-features.hf-is-paused *{animation-play-state:paused!important}
@keyframes hf-landscape-drift{from{transform:translateX(-8px)}to{transform:translateX(8px)}}
@keyframes hf-mist-drift{from{transform:translateX(-25px)}to{transform:translateX(25px)}}
@keyframes hf-icon-mist-drift{from{transform:translateX(-9px);opacity:.3}to{transform:translateX(9px);opacity:.65}}
@keyframes hf-sun-glow{from{opacity:.35;transform:scale(.93)}to{opacity:.7;transform:scale(1.08)}}
@keyframes hf-leaf-small-sway{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}
@keyframes hf-leaf-large-sway{from{transform:rotate(1.5deg)}to{transform:rotate(-2.5deg)}}
@keyframes hf-window-glow{from{opacity:.25;filter:brightness(.95)}to{opacity:.75;filter:brightness(1.2)}}
@keyframes hf-steam-rise{0%{opacity:0;transform:translateY(7px) scaleX(.92)}25%{opacity:.65}65%{opacity:.38}100%{opacity:0;transform:translateY(-15px) scaleX(1.12)}}
@keyframes hf-flowing-line{from{stroke-dashoffset:0}to{stroke-dashoffset:-2000}}
@media(max-width:1100px){.hf-grid{width:92%}.hf-item{padding:0 10px}.hf-item+.hf-item:before{top:38px;bottom:35px}.hf-item+.hf-item:after{top:95px;height:18px}.hospitality-features{padding:24px 0 40px}.hf-landscape{opacity:.55}.hf-flow{height:48px}}
@media(max-width:680px){.hf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 0;width:94%}.hf-visual{width:132px;margin-bottom:8px}.hospitality-features .hf-item h2{font-size:21px;letter-spacing:-.35px;margin-bottom:8px}.hospitality-features .hf-item p{font-size:14px;max-width:20ch;margin:auto}.hf-item{padding:0 10px}.hf-item:nth-child(3):before,.hf-item:nth-child(3):after{display:none}.hf-item+.hf-item:before{top:30px;bottom:18px}.hf-item+.hf-item:after{top:87px}.hf-landscape{display:none}.hospitality-features{padding:25px 0 45px}.hf-flow{opacity:.35;height:38px}}
@media(prefers-reduced-motion:reduce){.hospitality-features *{animation:none!important}.hf-item{opacity:1!important;transform:none!important}.hf-motion-toggle{display:none}}

/* Compact feature strip. */
.hospitality-features{padding:16px 0 25px}
.hf-visual{width:clamp(110px,7.5vw,148px);margin-bottom:5px}
.hospitality-features .hf-item h2{font-size:clamp(21px,1.5vw,29px);margin-bottom:8px;line-height:1.12}
.hospitality-features .hf-item p{font-size:clamp(14px,.94vw,18px);line-height:1.35}
.hf-item+.hf-item:before{top:28px;bottom:24px}
.hf-item+.hf-item:after{top:91px;height:18px}
.hf-flow{height:46px}
.hf-motion-toggle{bottom:5px;min-height:30px;min-width:30px;padding:4px 8px}
@media(max-width:1100px){.hospitality-features{padding:14px 0 24px}.hf-item+.hf-item:after{top:72px}}
@media(max-width:680px){.hospitality-features{padding:18px 0 30px}.hf-grid{gap:20px 0}.hf-visual{width:108px;margin-bottom:4px}.hospitality-features .hf-item h2{font-size:19px;margin-bottom:6px}.hospitality-features .hf-item p{font-size:14px}.hf-item+.hf-item:before{top:20px;bottom:15px}.hf-item+.hf-item:after{top:68px;height:16px}.hf-flow{height:30px}}

/* Locked composition. Each environmental loop returns to its start at 3.5 s. */
.hf-landscape{animation:none!important;transform:none!important}
.hf-item,.hf-item h2,.hf-item p{animation:none!important;transform:none!important;opacity:1!important}
.hf-environment-layer{pointer-events:none;user-select:none;will-change:transform}
.hf-bird{transform-origin:50% 43%;animation:hf-bird-breeze 3.5s ease-in-out infinite}
.hf-bird:nth-of-type(3){animation-name:hf-bird-breeze-secondary}
.hf-bird:nth-of-type(4){animation-name:hf-bird-breeze-secondary}
.hf-bird:nth-of-type(5){animation-name:hf-bird-breeze-secondary}
.hf-bird-wing-left{animation:hf-bird-left-wing 3.5s ease-in-out infinite}
.hf-bird-wing-right{animation:hf-bird-right-wing 3.5s ease-in-out infinite}
.hf-leaf-small{animation:hf-gentle-leaf-small 3.5s ease-in-out infinite}
.hf-leaf-large{animation:hf-gentle-leaf-large 3.5s ease-in-out infinite}
.hf-cottage-pine{transform-origin:78% 83%;animation:hf-cottage-pine-breeze 3.5s ease-in-out infinite}
.hf-cottage-bush{transform-origin:22% 82%;animation:hf-cottage-bush-breeze 3.5s ease-in-out infinite}
.hf-tea-leaf{transform-origin:71% 88%;animation:hf-tea-leaf-breeze 3.5s ease-in-out infinite}
.hf-edge-leaf,.hf-background-pines{position:absolute;inset:-5px -18px;z-index:0;background:url('assets/hospitality-features.png') center/100% 100% no-repeat;opacity:.86}
.hf-edge-leaf-left{transform-origin:4.5% 79%;animation:hf-edge-left-breeze 3.5s ease-in-out infinite}
.hf-edge-leaf-right{transform-origin:94.5% 38%;animation:hf-edge-right-breeze 3.5s ease-in-out infinite}
.hf-background-pines{transform-origin:97% 73%;animation:hf-background-pine-breeze 3.5s ease-in-out infinite}
.hf-mist{animation:hf-background-mist-loop 3.5s ease-in-out infinite;opacity:.24;filter:blur(16px)}
.hf-mist-front{animation:hf-foreground-mist-loop 3.5s ease-in-out infinite;opacity:.35}
.hf-icon-mist{animation:hf-mountain-mist-loop 3.5s ease-in-out infinite;filter:blur(5px)}
.hf-sun{animation:hf-sunlight-loop 3.5s ease-in-out infinite;filter:blur(9px)}
.hf-window{animation:hf-window-light-loop 3.5s ease-in-out infinite;animation-delay:0s!important}
.hf-steam path{stroke-width:3.2;animation:hf-elegant-steam 3.5s linear infinite;transform-origin:center;transform-box:fill-box}
.hf-steam path:nth-child(2){animation-duration:3.5s;animation-delay:-1.166667s}
.hf-steam path:nth-child(3){animation-duration:3.5s;animation-delay:-2.333333s}
.hf-flow-highlight{animation:hf-flowing-line 3.5s linear infinite;opacity:.35}
.hf-flow-base{animation:hf-wave-breathe 3.5s ease-in-out infinite}
@keyframes hf-bird-breeze{0%,100%{transform:translate(0,0) rotate(0)}30%{transform:translate(1.5px,-.3px) rotate(-.3deg)}65%{transform:translate(3px,-.6px) rotate(.3deg)}}
@keyframes hf-bird-breeze-secondary{0%,100%{transform:translate(0,0) rotate(0)}40%{transform:translate(2px,.4px) rotate(.25deg)}75%{transform:translate(.6px,-.3px) rotate(-.2deg)}}
@keyframes hf-bird-left-wing{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(.8px,-.2px) rotate(.8deg)}50%{transform:translate(1.7px,-.5px) rotate(-.6deg)}75%{transform:translate(.8px,-.2px) rotate(.6deg)}}
@keyframes hf-bird-right-wing{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(.8px,-.2px) rotate(-.8deg)}50%{transform:translate(1.7px,-.5px) rotate(.6deg)}75%{transform:translate(.8px,-.2px) rotate(-.6deg)}}
@keyframes hf-gentle-leaf-small{0%,100%{transform:rotate(0)}35%{transform:rotate(-.8deg)}65%{transform:rotate(1deg)}}
@keyframes hf-gentle-leaf-large{0%,100%{transform:rotate(0)}35%{transform:rotate(.8deg)}70%{transform:rotate(-1.1deg)}}
@keyframes hf-cottage-pine-breeze{0%,100%{transform:rotate(0)}45%{transform:rotate(.5deg)}75%{transform:rotate(-.2deg)}}
@keyframes hf-cottage-bush-breeze{0%,100%{transform:rotate(0)}40%{transform:rotate(-.35deg)}70%{transform:rotate(.3deg)}}
@keyframes hf-tea-leaf-breeze{0%,100%{transform:rotate(0)}45%{transform:rotate(-.9deg)}75%{transform:rotate(.4deg)}}
@keyframes hf-edge-left-breeze{0%,100%{transform:rotate(0)}45%{transform:rotate(.12deg)}75%{transform:rotate(-.06deg)}}
@keyframes hf-edge-right-breeze{0%,100%{transform:rotate(0)}40%{transform:rotate(-.1deg)}70%{transform:rotate(.06deg)}}
@keyframes hf-background-pine-breeze{0%,100%{transform:rotate(0)}50%{transform:rotate(.04deg)}}
@keyframes hf-background-mist-loop{0%,100%{transform:translateX(-7px);opacity:.2}50%{transform:translateX(7px);opacity:.28}}
@keyframes hf-foreground-mist-loop{0%,100%{transform:translateX(6px);opacity:.28}50%{transform:translateX(-6px);opacity:.35}}
@keyframes hf-mountain-mist-loop{0%,100%{transform:translateX(-3px);opacity:.2}50%{transform:translateX(4px);opacity:.35}}
@keyframes hf-sunlight-loop{0%,100%{opacity:.32;transform:none}50%{opacity:.48;transform:none}}
@keyframes hf-window-light-loop{0%,100%{opacity:.28;filter:brightness(1)}50%{opacity:.48;filter:brightness(1.06)}}
@keyframes hf-elegant-steam{0%,100%{opacity:0;transform:translate(0,6px);stroke-width:3.2}18%{opacity:.45;transform:translate(.4px,1px);stroke-width:2.9}48%{opacity:.38;transform:translate(-.6px,-5px);stroke-width:2.3}78%{opacity:.14;transform:translate(.6px,-11px);stroke-width:1.6}93%{opacity:0;transform:translate(0,-14px);stroke-width:1.2}}
@keyframes hf-wave-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(.6px)}}
@media(max-width:1100px){.hf-edge-leaf,.hf-background-pines{opacity:.55}}
@media(max-width:680px){.hf-edge-leaf,.hf-background-pines{display:none}}
@media(prefers-reduced-motion:reduce){.hospitality-features *{animation:none!important;will-change:auto}.hf-steam path{opacity:.45}.hf-item,.hf-item h2,.hf-item p{opacity:1!important;transform:none!important}}

/* Clearly perceptible, still slow, sun / bird / foliage movement. */
.hf-mountain>.hf-crop:not(.hf-environment-layer):not(.hf-sun-sky){z-index:2}
.hf-sun-sky{z-index:0}
.hf-rising-sun{z-index:1;animation:hf-visible-sunrise 3.5s ease-in-out infinite}
.hf-bird-wing{z-index:3}
.hf-sun{z-index:4;animation:hf-visible-sunglow 3.5s ease-in-out infinite}
.hf-icon-mist{z-index:4}
.hf-leaf-small{animation:hf-visible-small-leaf 3.5s ease-in-out infinite}
.hf-leaf-large{animation:hf-visible-large-leaf 3.5s ease-in-out infinite}
.hf-bird-wing-left{animation:hf-visible-left-wing 3.5s ease-in-out infinite}
.hf-bird-wing-right{animation:hf-visible-right-wing 3.5s ease-in-out infinite}
@keyframes hf-visible-sunrise{0%,100%{transform:translateY(2px)}50%{transform:translateY(-5px)}}
@keyframes hf-visible-sunglow{0%,100%{opacity:.3;transform:translateY(2px)}50%{opacity:.58;transform:translateY(-5px)}}
@keyframes hf-visible-small-leaf{0%,100%{transform:rotate(-1.8deg)}50%{transform:rotate(2.8deg)}}
@keyframes hf-visible-large-leaf{0%,100%{transform:rotate(2deg)}50%{transform:rotate(-3deg)}}
@keyframes hf-visible-left-wing{0%,100%{transform:translate(-3px,0) rotate(-3deg)}25%{transform:translate(1px,-1px) rotate(5deg)}50%{transform:translate(5px,-2px) rotate(-4deg)}75%{transform:translate(1px,-1px) rotate(5deg)}}
@keyframes hf-visible-right-wing{0%,100%{transform:translate(-3px,0) rotate(3deg)}25%{transform:translate(1px,-1px) rotate(-5deg)}50%{transform:translate(5px,-2px) rotate(4deg)}75%{transform:translate(1px,-1px) rotate(-5deg)}}
@media(prefers-reduced-motion:reduce){.hospitality-features *{animation:none!important}.hf-rising-sun,.hf-leaf,.hf-bird-wing{transform:none}}

/* One sunrise per page load, with no added sky tile or glow background. */
.hf-sun,.hf-sun-sky{display:none!important}
.hf-rising-sun{animation:hf-sunrise-once 2.5s ease-out 1 both}
@keyframes hf-sunrise-once{from{transform:translateY(3px)}to{transform:translateY(-6px)}}
.hf-cottage-pine{animation:hf-cottage-tree-visible 3.5s ease-in-out infinite}
.hf-cottage-bush{animation:hf-cottage-bush-visible 3.5s ease-in-out infinite}
@keyframes hf-cottage-tree-visible{0%,100%{transform:rotate(-1.3deg)}50%{transform:rotate(2.5deg)}}
@keyframes hf-cottage-bush-visible{0%,100%{transform:rotate(1deg)}50%{transform:rotate(-2deg)}}
@media(prefers-reduced-motion:reduce){.hf-rising-sun,.hf-cottage-pine,.hf-cottage-bush{animation:none!important;transform:none}}


/* Smaller feature headings and subtitles. */
.hospitality-features .hf-item h2{font-size:clamp(19px,1.25vw,24px)}
.hospitality-features .hf-item p{font-size:clamp(14px,.82vw,16px)}
@media(max-width:680px){.hospitality-features .hf-item h2{font-size:17px}.hospitality-features .hf-item p{font-size:13px}}

/* Feather the supplied image edges into the continuous feature background. */
.hf-visual{
  mask-image:linear-gradient(90deg,transparent 0%,#000 10%,#000 90%,transparent 100%),linear-gradient(0deg,transparent 0%,#000 9%,#000 89%,transparent 100%);
  mask-composite:intersect;
}
.hf-cup-base{clip-path:inset(46% 4% 0 round 28% 28% 18% 18%)}
