/* A continuous photographic story, using the Flor & Alves brand. */
.home-page h2{font-size:clamp(36px,3.9vw,61px);letter-spacing:-.035em;color:var(--wine);line-height:1.12}
.home-page{--page-gutter:7.5%;overflow-x:clip}
.home-page .header{position:relative;z-index:5;height:100px;margin:0;padding:0 4.5%;max-width:none;border:0;background:var(--cream)}
.home-page .header:after{content:"";position:absolute;left:0;right:0;bottom:-14px;height:24px;background:var(--cream);border-radius:0 0 48% 12% / 0 0 100% 65%;pointer-events:none}
.home-page .header .brand,.home-page .header nav,.home-page .menu-toggle{position:relative;z-index:1}
.home-hero{position:relative;isolation:isolate;min-height:min(880px,calc(100svh - 100px));overflow:hidden;color:var(--cream);background:var(--brown);display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:46px;padding:75px var(--page-gutter) 125px}
.hero-scenery{position:absolute;inset:-45px 0;z-index:-2;will-change:transform}
.hero-scenery img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.home-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(40,22,23,.86) 0%,rgba(40,22,23,.62) 40%,rgba(40,22,23,.15) 75%),linear-gradient(0deg,rgba(25,15,15,.34),transparent 48%)}
.hero-content{width:100%;max-width:960px}
.hero-content .eyebrow{color:var(--cream);font-size:13px;letter-spacing:.21em;margin-bottom:24px}
.hero-content h1{font-size:clamp(58px,6.4vw,100px);line-height:1.02;letter-spacing:-.045em;font-weight:400}
.hero-content h1 span{display:block}
.hero-content h1 em{font-weight:400}
.hero-content>p:not(.eyebrow){font-size:16px;line-height:1.85;margin:27px 0}
.home-page .button{border-radius:100px;padding:16px 28px;min-height:54px;font-size:14px}
.hero-footnote{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:14px}
.hero-footnote>span{font:italic 20px var(--serif)}
.hero-footnote a{border-bottom:1px solid rgba(247,238,230,.55);padding-bottom:5px}
.section-wave{position:absolute;bottom:-1px;left:0;width:100%;height:100px;display:block;pointer-events:none;fill:var(--cream)}
.hero-content .eyebrow,.hero-content h1 span,.hero-content>p:not(.eyebrow),.hero-content .button{animation:home-enter 1s both}
.hero-content h1 span:nth-child(1){animation-delay:.1s}.hero-content h1 span:nth-child(2){animation-delay:.2s}.hero-content h1 span:nth-child(3){animation-delay:.3s}.hero-content>p:not(.eyebrow){animation-delay:.4s}.hero-content .button{animation-delay:.5s}
@keyframes home-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1650px){.home-hero{padding-left:max(7.5%,calc((100vw - 1480px)/2))}}
@media(max-width:900px){.home-page{--page-gutter:6%}.home-page .header{height:90px;padding:0 6%}.home-page .header nav{position:absolute;top:100%;left:0;right:0;padding:22px 6%;z-index:3}.home-page .header .brand{width:185px}.home-hero{min-height:740px;padding-top:65px}.hero-content h1{font-size:clamp(56px,8.7vw,78px)}.hero-scenery img{object-position:50% 60%}}
@media(max-width:600px){.home-page .header{height:84px}.home-page .header .brand{width:164px}.home-hero{min-height:0;padding-top:65px;padding-bottom:100px;gap:36px}.hero-content .eyebrow{font-size:12px;letter-spacing:.13em;margin-bottom:30px}.hero-content h1{font-size:clamp(39px,10.7vw,64px);line-height:1.08;letter-spacing:-.04em}.hero-content>p:not(.eyebrow){font-size:16px;margin:27px 0}.hero-footnote{display:block}.hero-footnote>span{display:block;font-size:18px}.hero-footnote a{display:inline-block;font-size:13px;margin-top:16px}.section-wave{height:60px}.home-hero:before{background:linear-gradient(90deg,rgba(40,22,23,.83),rgba(40,22,23,.38)),linear-gradient(0deg,rgba(40,22,23,.45),transparent 55%)}.hero-scenery img{object-position:50% center}}
@media(prefers-reduced-motion:reduce){.hero-content .eyebrow,.hero-content h1 span,.hero-content>p:not(.eyebrow),.hero-content .button{animation:none}.hero-scenery{will-change:auto}}

.home-services{padding-top:32px}
.services-intro{text-align:center;padding:30px 6% 57px}
.services-intro .eyebrow{margin-bottom:20px}
.service-panels{display:flex;gap:7px;margin:0 24px;align-items:stretch}
.service-panel{display:block;flex:1 1 0;min-width:0;transition:flex-grow .7s cubic-bezier(.2,.7,.2,1)}
.service-panel:focus-visible{outline-offset:4px;outline-color:var(--wine)}
.panel-scene{height:clamp(480px,43vw,660px);position:relative;overflow:hidden;isolation:isolate;background:var(--brown);color:var(--cream)}
.panel-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .7s;filter:saturate(.82)}
.panel-scene:after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,rgba(28,14,14,.72),rgba(28,14,14,.64) 28%,rgba(28,14,14,.64) 78%,rgba(28,14,14,.2))}
.panel-events .panel-scene>img{object-position:51% center}
.panel-catering .panel-scene>img{object-position:50% 45%}
.panel-people .panel-scene>img{object-position:56% center}
.panel-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px 18px 60px}
.panel-kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;line-height:1.7;margin-bottom:18px}
.panel-content h3{font-size:clamp(49px,5.7vw,88px);letter-spacing:-.04em;line-height:1.05;transition:transform .7s}
.panel-description{font-size:15px;line-height:1.85;max-width:290px;margin:22px 0 0;transition:transform .7s}
.panel-link{position:absolute;bottom:42px;font-size:14px;padding-bottom:7px;border-bottom:1px solid rgba(247,238,230,.7)}
.service-panel:nth-child(2){transition-delay:.07s}.service-panel:nth-child(3){transition-delay:.14s}
@media(hover:hover) and (min-width:901px){.service-panels:has(.service-panel:hover) .service-panel:hover{flex-grow:1.15}.service-panel:hover .panel-scene>img{transform:scale(1.055);filter:saturate(1)}.service-panel:hover h3,.service-panel:hover .panel-description{transform:translateY(-8px)}}
.service-panel:focus-visible .panel-scene>img{transform:scale(1.035)}
.home-essence{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:9%;padding:120px var(--page-gutter) 135px;max-width:1680px;margin:auto}
.essence-portrait{position:relative;padding:0 12px 0 0}
.essence-portrait:before{content:"";position:absolute;inset:-15px 25px 40px -18px;border:1px solid var(--sand);border-radius:47% 44% 34% 42% / 41% 39% 40% 32%;transform:rotate(-8deg)}
.portrait-shape{position:relative;overflow:hidden;border-radius:47% 44% 34% 42% / 41% 39% 40% 32%}
.portrait-shape img{width:100%;aspect-ratio:1.08;object-fit:cover;object-position:50% 40%;transition:transform 1.2s}
.essence-portrait:hover img{transform:scale(1.025)}
.essence-portrait figcaption{font:italic 21px var(--serif);color:var(--wine);text-align:center;margin:26px 0 0}
.essence-story .eyebrow{margin-bottom:22px}
.essence-story h2{font-size:clamp(35px,3.4vw,52px);margin-bottom:28px}
.essence-story>p:not(.eyebrow):not(.essence-signoff){font-size:16px;line-height:1.9;margin-top:18px}
.essence-story .essence-signoff{font:23px/1.5 var(--serif);color:var(--wine);padding-top:24px;margin-top:25px;border-top:1px solid var(--line)}
.home-approach{position:relative;padding:50px var(--page-gutter) 75px;background:var(--sand)}
.approach-wave{position:absolute;bottom:calc(100% - 1px);left:0;width:100%;height:80px;fill:var(--sand);pointer-events:none}
.approach-intro{text-align:center;max-width:1100px;margin:auto}
.approach-intro .eyebrow{margin-bottom:20px}
.approach-intro h2{font-size:clamp(36px,3.7vw,57px)}
.process-flow{position:relative;margin:52px auto 0;max-width:1350px}
.process-line{position:absolute;top:-10px;left:16.65%;width:66.7%;height:90px;fill:none;stroke:var(--wine);stroke-opacity:.28;stroke-width:1}
.home-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:55px;text-align:center}
.step-number{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:62px;height:62px;margin:0 auto 25px;border:1px solid rgba(128,35,49,.45);border-radius:50%;background:var(--sand);color:var(--wine);font:20px var(--serif)}
.home-steps h3{font-size:25px;color:var(--wine);line-height:1.3;margin-bottom:17px}
.home-steps p{font-size:16px;line-height:1.85;max-width:340px;margin:0 auto}
.home-contact{padding:135px var(--page-gutter) 35px;overflow:hidden}
.contact-wave{position:absolute;left:0;top:-1px;width:100%;height:85px;fill:var(--sand);pointer-events:none}
.home-contact h2{color:var(--cream);font-size:clamp(43px,4.7vw,73px);margin-bottom:0}
.contact-opening{display:grid;grid-template-columns:1.35fr 1fr;gap:10%;align-items:end}
.contact-invitation{max-width:380px;padding-bottom:6px}
.home-contact .contact-intro{font-size:16px;line-height:1.85;margin-bottom:24px}
.home-contact .contact-info{margin-top:60px}
.home-page .footer{padding:38px 4.5%}
@media(max-width:1100px){.service-panels{margin:0 15px}.panel-description{font-size:14px}.panel-kicker{font-size:12px;letter-spacing:.07em}.home-essence{gap:6%;padding-top:100px}.home-steps{gap:30px}.home-steps h3{font-size:23px}.contact-opening{gap:5%}}
@media(max-width:900px){.services-intro{padding-top:28px;padding-bottom:42px}.service-panels{gap:6px}.panel-scene{height:500px}.panel-content{padding-left:10px;padding-right:10px}.panel-content h3{font-size:48px}.panel-kicker{max-width:180px}.panel-description{font-size:14px}.home-essence{padding-top:85px;padding-bottom:115px;gap:6%}.essence-story h2{font-size:35px}.essence-story h2 br{display:none}.portrait-shape img{aspect-ratio:.88}.essence-portrait figcaption{font-size:19px}.home-steps{gap:22px}.home-steps h3{font-size:23px}.home-steps p{font-size:15px}.home-contact h2{font-size:48px}.contact-opening{grid-template-columns:1.2fr 1fr}.home-contact .contact-info{grid-template-columns:1fr 1fr;gap:30px}.home-contact .contact-info .phones{font-size:18px;gap:12px}.home-contact .email-link{font-size:16px}}
@media(max-width:700px){.home-services{padding-top:12px}.services-intro{padding:34px 6% 40px}.service-panels{display:grid;grid-template-columns:1fr;margin:0 12px;gap:12px}.panel-scene{height:490px}.panel-content{padding:35px 25px 70px}.panel-content h3{font-size:72px}.panel-kicker{max-width:none;font-size:12px;letter-spacing:.11em}.panel-description{font-size:16px}.panel-events .panel-scene>img{object-position:center 45%}.panel-catering .panel-scene>img{object-position:50% 47%}.panel-people .panel-scene>img{object-position:center 32%}.home-essence{grid-template-columns:1fr;padding:85px 8% 105px;gap:50px}.essence-portrait{max-width:500px;width:100%;margin:auto;padding:0}.essence-portrait:before{inset:-10px 15px 42px -10px}.portrait-shape img{aspect-ratio:1.12}.essence-story h2{font-size:39px}.essence-story h2 br{display:block}.essence-story .essence-signoff{font-size:23px}.home-approach{padding-top:35px;padding-bottom:55px}.approach-wave{height:55px}.home-steps{grid-template-columns:1fr;gap:32px;text-align:left}.home-steps li{position:relative;padding:0 0 0 78px}.step-number{position:absolute;left:0;top:0;width:48px;height:48px;font-size:17px;margin:0}.home-steps h3{font-size:25px;margin:6px 0 12px}.home-steps p{max-width:none;margin:0;font-size:16px}.home-steps li:not(:last-child):after{content:"";position:absolute;top:56px;bottom:-23px;left:24px;border-left:1px solid rgba(128,35,49,.25)}.process-line{display:none}.process-flow{margin-top:38px}.contact-opening{grid-template-columns:1fr;gap:28px}.home-contact{padding-top:100px;padding-bottom:30px}.contact-wave{height:60px}.home-contact h2{font-size:clamp(37px,9.7vw,58px)}.contact-invitation{max-width:none}.home-contact .contact-info{grid-template-columns:1fr;margin-top:40px}.home-contact .contact-signature{font-size:24px}.home-page .footer{padding:30px 6%}.home-page h2{font-size:clamp(34px,8.9vw,50px)}.home-page .home-contact h2{font-size:clamp(37px,9.7vw,58px)}}
@media(prefers-reduced-motion:reduce){.service-panel,.panel-scene>img,.panel-scene:after,.panel-content h3,.panel-description,.portrait-shape img{transition:none}.service-panel:hover{flex-grow:1!important}.service-panel:hover .panel-scene>img,.service-panel:hover h3,.service-panel:hover .panel-description,.essence-portrait:hover img,.service-panel:focus-visible .panel-scene>img{transform:none}}

/* Three subtle marks from the supplied Flor & Alves identity. */
.panel-kicker{position:relative}
.service-brand-symbol{position:absolute;bottom:calc(100% + 18px);left:50%;transform:translateX(-50%);width:52px;height:52px;object-fit:contain;overflow:hidden;pointer-events:none}
.panel-catering .service-brand-symbol{width:48px}
.panel-people .service-brand-symbol{width:64px}
