@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--ink:#183b35;--cream:#f5f0e8;--paper:#fcfaf6;--wine:#642b31;--gold:#c3a36d;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.skip-link{position:fixed;left:12px;top:-50px;background:#fff;padding:8px 12px;z-index:100}
.skip-link:focus{top:12px}
.header{position:absolute;top:0;left:0;width:100%;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:27px clamp(24px,5vw,82px);color:#fff}
.brand{font-family:var(--serif);font-size:19px;line-height:1;letter-spacing:.01em}
.brand span{font-style:italic}
.brand-logo{display:flex;align-items:center;width:145px;height:58px}
.brand-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain;object-position:left center}
.menu{display:flex;align-items:center;gap:31px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.menu a:not(.menu-cta){opacity:.86}
.menu a:hover{opacity:1}
.menu-cta{border:1px solid rgba(255,255,255,.7);padding:9px 14px}
.menu-toggle{display:none}
.hero{height:min(880px,100svh);min-height:670px;position:relative;color:white;overflow:hidden}
.hero-image,.final-cta>img{width:100%;height:100%;object-fit:cover;display:block}
.hero-image{position:absolute;inset:0}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,23,20,.78) 0%,rgba(12,23,20,.38) 44%,rgba(12,23,20,.04) 73%),linear-gradient(0deg,rgba(12,20,17,.35),transparent 40%)}
.hero-copy{position:absolute;z-index:1;top:50%;transform:translateY(-41%);left:clamp(24px,9vw,150px);max-width:720px}
.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.18em;font-weight:600;margin:0 0 21px;color:var(--wine)}
.eyebrow.light{color:#e6c998}
.hero-label{margin:0 0 21px;color:#e6c998;font-family:var(--serif);font-size:clamp(17px,1.6vw,23px);font-style:italic;letter-spacing:.03em;line-height:1.2}
.hero-label-mobile{display:none}
.hero h1,h2{font-family:var(--serif);font-weight:500;letter-spacing:-.035em;line-height:1.06;margin:0}
.hero h1{font-size:clamp(45px,4.5vw,68px)}
.hero-copy>p:not(.eyebrow):not(.hero-label):not(.hero-availability){font-size:17px;line-height:1.7;max-width:500px;margin:27px 0 34px;color:rgba(255,255,255,.9)}
.hero-copy>p.hero-availability{display:flex;align-items:center;gap:8px;margin:-11px 0 22px;color:#e6c998;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.hero-availability span{font-size:14px}
.button{display:inline-flex;align-items:center;gap:24px;padding:15px 18px 15px 21px;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:transform .25s,background .25s}
.button span{font-size:20px;font-weight:400;line-height:.5}
.button-light{color:var(--ink);background:#f7f1e7}
.button:hover{transform:translateY(-2px);background:#fff}
.hero-location{position:absolute;z-index:1;bottom:30px;left:clamp(24px,5vw,82px);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.hero-location span{margin:0 8px;color:#e6c998}
.scroll-cue{position:absolute;bottom:25px;right:clamp(24px,5vw,82px);font-size:25px;animation:float 2s infinite}
.section{padding:clamp(80px,11vw,170px) clamp(24px,8vw,130px)}
.section-narrow{max-width:1290px;margin:auto;padding-left:24px;padding-right:24px}
.experience{padding-top:145px;padding-bottom:150px;background:var(--ink);color:#f7f2e9;box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax)}
.experience .eyebrow{color:#e6c998}
.experience h2{max-width:700px}
.experience .body-copy{color:#d5ddd6;border-left:1px solid rgba(230,201,152,.55);padding:7px 0 0 28px}
.two-columns{display:grid;grid-template-columns:1.1fr .72fr;gap:clamp(55px,13vw,200px)}
h2{font-size:clamp(37px,4.3vw,63px)}
.body-copy{padding-top:7px;color:#4e5e58;font-size:16px}
.body-copy p{margin:0 0 19px}
.gallery-section{background:var(--cream);padding-top:127px}
.packages-section{padding-bottom:128px;background:#f4eee4}
.packages-heading{text-align:center;margin-bottom:63px}
.packages-heading h2{margin:auto}
.packages-heading>p:not(.eyebrow){max-width:460px;margin:19px auto 0;color:#59665f}
.packages-grid{display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch;gap:0;max-width:1150px;margin:auto;border-top:1px solid #cbbd9f;border-bottom:1px solid #cbbd9f}
.package-card{position:relative;display:flex;flex-direction:column;min-height:486px;padding:42px 39px 30px;border:0;border-left:1px solid #cbbd9f;background:transparent;text-align:center;color:#25352f}
.package-card:first-child{border-left:0}
.package-card.package-featured{background:rgba(226,211,188,.45)}
.package-badge{align-self:center;margin:-57px 0 25px;padding:4px 13px;background:#a77c3e;color:#fff;white-space:nowrap;text-transform:uppercase;letter-spacing:.12em;font-size:9px}
.package-number{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#a77c3e;margin:0 0 24px}
.package-card h3{font-family:var(--serif);font-weight:500;font-size:45px;letter-spacing:-.045em;line-height:1;margin:0}
.package-flourish{color:#b18b48;font-size:19px;margin:19px 0 15px}
.package-price{font-family:var(--serif);font-size:28px;margin:0;color:var(--wine)}
.package-line{width:48px;height:1px;background:#b8965e;margin:28px auto}
.package-card ul{list-style:none;margin:0 auto 30px;padding:0;line-height:1.65;color:#566059;font-size:14px;text-align:left}
.package-card li{display:flex;align-items:center;gap:10px;padding:7px 0}
.package-card li svg{flex:0 0 auto;width:19px;height:19px;color:#a77c3e;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.package-card a{margin-top:auto;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #d6cab2;padding-top:17px;text-transform:uppercase;font-size:10px;font-weight:600;letter-spacing:.1em;color:var(--wine)}
.package-card a span{font-size:18px;font-weight:400}
.package-card a:hover{color:#a77c3e}
.packages-note{max-width:730px;margin:39px auto 0;padding:16px 23px;border-top:1px solid #d2c2a8;border-bottom:1px solid #d2c2a8;text-align:center;font-size:14px;color:#566059}
.packages-note span{color:#917956}
.section-heading{margin-bottom:58px}
.section-heading h2{max-width:650px}
.section-heading>p:not(.eyebrow){margin:19px 0 0;color:#59665f}
.packages-heading>p:not(.eyebrow){margin:19px auto 0;text-align:center}
.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;max-width:1600px;margin:auto}
.gallery-item{border:0;padding:0;overflow:hidden;cursor:zoom-in;background:#d7cfc2;height:390px;grid-column:span 4}
.gallery-item.tall{height:590px;grid-row:span 2}
.gallery-item.wide{grid-column:span 8}
.gallery-item.square{height:290px}
.gallery-item img{height:100%;width:100%;object-fit:cover;transition:transform .7s}
.gallery-item:hover img{transform:scale(1.035)}
.position-right img{object-position:80% center}
.position-left img{object-position:25% center}
.position-center img{object-position:50% 30%}
.steps{padding-top:145px;padding-bottom:146px;background:#e9dfd0;box-shadow:0 0 0 100vmax #e9dfd0;clip-path:inset(0 -100vmax)}
.steps .section-heading{max-width:650px}
.steps-list{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(35px,7vw,105px);list-style:none;padding:0;margin:65px 0 0;border-top:1px solid #bea988}
.steps-list li{display:grid;grid-template-columns:70px 1fr;gap:18px;padding:30px 0 34px;border-bottom:1px solid #cdbda4}
.steps-list li>span{font-size:12px;color:var(--gold);letter-spacing:.12em}
.steps-list h3{margin:0 0 8px;text-transform:uppercase;letter-spacing:.1em;font-size:13px}
.steps-list p{margin:0;color:#59665f;max-width:500px}
.photographer{display:grid;grid-template-columns:.91fr 1.09fr;align-items:center;padding:0;background:#e7ddd0}
.portrait{height:680px;position:relative;overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:76% center;filter:saturate(.7)}
.portrait span{position:absolute;bottom:15px;left:18px;color:#fff;font-size:9px;letter-spacing:.11em;text-transform:uppercase;opacity:.7}
.photographer-copy{padding:clamp(55px,8vw,128px);max-width:720px}
.photographer-copy h2{font-size:clamp(35px,3.5vw,55px);margin-bottom:29px}
.photographer-copy>p:not(.eyebrow){color:#526059;margin:0 0 14px}
.signature{font-family:var(--serif);font-style:italic;font-size:23px;margin-top:38px;color:var(--wine)}
.signature small{font-family:var(--sans);font-size:10px;font-style:normal;letter-spacing:.12em;text-transform:uppercase;display:block;color:var(--ink);margin-top:4px}
.how-it-works{background:#f7f2e9;padding-top:142px;padding-bottom:145px;box-shadow:0 0 0 100vmax #f7f2e9;clip-path:inset(0 -100vmax)}
.how-inner{max-width:1120px;margin:auto}
.how-heading{text-align:center;max-width:620px;margin:0 auto 64px}
.how-heading h2{max-width:none}
.how-heading>p:not(.eyebrow){max-width:480px;margin:21px auto 0;color:#59665f}
.how-list{display:grid;grid-template-columns:1fr 1fr;column-gap:88px;border-top:1px solid #cdbd9f}
.how-item{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:20px;min-height:143px;padding:25px 2px;border-bottom:1px solid #d8cbb4}
.how-icon{display:grid;place-items:center;width:58px;height:58px;border:1px solid #b99a62;border-radius:50%;color:#8b6834}
.how-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.how-item h3{margin:0 0 6px;font-size:12px;line-height:1.3;text-transform:uppercase;letter-spacing:.12em;color:#3d493f}
.how-item p{margin:0;color:#626b64;font-size:15px;line-height:1.55}
.how-item strong{font-weight:600;color:var(--wine)}
.for-you{background:var(--ink);color:#fff;padding-top:136px;padding-bottom:136px}
.for-you-inner{max-width:880px;margin:auto}
.for-you h2{font-size:clamp(40px,4.2vw,62px);max-width:830px}
.for-you ul{margin:40px 0 0;padding:0;list-style:none;color:#e2e1d8;max-width:680px}
.for-you li{border-top:1px solid rgba(255,255,255,.18);padding:17px 0 17px 25px;position:relative}
.for-you li:before{content:'•';position:absolute;left:1px;color:#d5b573}
.final-cta{height:750px;position:relative;color:#fff}
.final-cta>img{position:absolute;inset:0;object-position:center}
.final-overlay{position:absolute;inset:0;background:rgba(16,37,32,.7)}
.final-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;max-width:850px;margin:auto}
.final-copy h2{font-size:clamp(43px,5vw,70px)}
.final-kicker{font-family:var(--serif);font-size:clamp(23px,2.5vw,35px);font-weight:500;letter-spacing:-.02em;line-height:1.06;margin:0;color:#e6c998}
.final-copy>p:not(.eyebrow):not(.final-kicker){max-width:660px;margin:25px 0 33px;color:rgba(255,255,255,.9)}
footer{display:flex;flex-direction:column;align-items:center;gap:23px;padding:54px 24px 50px;text-align:center;font-size:12px;color:#506058}
footer .footer-logo{width:174px;height:75px}
footer .footer-logo{justify-content:center}
footer .footer-logo img{object-position:center}
.footer-details{display:flex;flex-direction:column;align-items:center;gap:5px}
footer p{margin:7px 0 0;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#7c817b}
footer a:hover{color:var(--wine)}
.instagram-link{display:grid;place-items:center;width:42px;height:42px;color:var(--wine);transition:transform .25s}
.instagram-link svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.5}
.instagram-link:hover{color:#a77c3e;transform:translateY(-2px)}
.whatsapp-float{position:fixed;z-index:9;right:22px;bottom:28%;width:55px;height:55px;border-radius:50%;color:#fff;background:#275c4c;display:grid;place-items:center;box-shadow:0 8px 22px rgba(20,48,41,.27);transition:transform .25s}
.whatsapp-float:hover{transform:scale(1.07)}
.whatsapp-float svg{width:27px}
.whatsapp-float:after{content:attr(data-tooltip);position:absolute;right:67px;white-space:nowrap;background:#173c35;color:white;padding:7px 9px;font-size:10px;opacity:0;pointer-events:none;transform:translateX(4px);transition:.2s}
.whatsapp-float:hover:after{opacity:1;transform:none}
.lightbox{width:min(1100px,92vw);border:0;padding:0;background:#141b18;color:#fff;overflow:visible}
.lightbox::backdrop{background:rgba(12,19,17,.91)}
.lightbox img{display:block;max-width:100%;max-height:80vh;margin:auto}
.lightbox button{position:absolute;border:0;color:#fff;background:rgba(0,0,0,.35);width:42px;height:42px;font-size:25px;cursor:pointer}
.lightbox-close{right:0;top:-49px}
.lightbox-prev{left:-50px;top:50%}
.lightbox-next{right:-50px;top:50%}
.lightbox p{margin:0;padding:8px;text-align:center;font-size:11px;letter-spacing:.12em}
.reveal{opacity:0;transform:translateY(19px);transition:opacity .75s ease,transform .75s ease}
.reveal.is-visible{opacity:1;transform:none}
@keyframes float{50%{transform:translateY(5px)}
}
@media(max-width:760px){.header{padding:22px 24px}
.menu-toggle{display:flex;border:0;background:transparent;color:#fff;width:33px;height:24px;flex-direction:column;justify-content:center;gap:7px;padding:0}
.menu-toggle i{display:block;background:currentColor;height:1px;width:27px}
.menu{display:none;position:absolute;top:73px;left:24px;right:24px;background:#173c35;padding:21px;align-items:flex-start;flex-direction:column;gap:17px;box-shadow:0 12px 30px rgba(0,0,0,.18)}
.menu.is-open{display:flex}
.menu-cta{padding:8px 10px}
.hero{height:100svh;min-height:630px}
.hero-image{object-position:67% center}
.hero-shade{background:linear-gradient(180deg,rgba(10,21,18,.08) 0%,rgba(10,21,18,.03) 46%,rgba(10,21,18,.42) 100%)}
.hero-copy{left:24px;right:22px;top:47%;bottom:58px;transform:none;display:flex;flex-direction:column;align-items:flex-start}
.hero h1{font-size:42px}
.hero-label{display:inline-block;align-self:flex-start;width:fit-content;padding:7px 9px;margin-bottom:6px;background:rgba(12,35,29,.7);border-left:2px solid #e6c998;box-shadow:0 5px 16px rgba(0,0,0,.16);font-size:15px}
.hero-copy>p:not(.eyebrow):not(.hero-label):not(.hero-availability){font-size:15px;line-height:1.55;margin:20px 0 27px}
.hero-copy>.hero-description{margin-top:auto}
.hero-location{bottom:26px}
.scroll-cue{display:none}
.experience{padding-top:89px;padding-bottom:90px}
.experience .body-copy{padding-left:19px}
.two-columns{grid-template-columns:1fr;gap:32px}
.gallery-section{padding:87px 12px}
.packages-section{padding:87px 24px}
.packages-heading{margin-bottom:46px}
.packages-grid{grid-template-columns:1fr;gap:0;max-width:440px;border-bottom:0}
.package-card{min-height:0;padding:37px 28px 29px;border-left:0;border-top:1px solid #cbbd9f}
.package-card.package-featured{background:rgba(226,211,188,.45)}
.package-badge{margin:-52px auto 25px}
.package-card h3{font-size:39px}
.packages-note{margin-top:28px}
.gallery-section .section-heading{padding:0 12px}
.gallery{grid-template-columns:repeat(2,1fr);gap:7px}
.gallery-item,.gallery-item.square{height:250px;grid-column:span 1}
.gallery-item.tall{height:395px;grid-row:span 1}
.gallery-item.wide{height:250px;grid-column:span 2}
.section{padding-top:88px;padding-bottom:88px}
.section-narrow{padding-left:24px;padding-right:24px}
.steps-list{grid-template-columns:1fr;margin-top:40px}
.steps-list li{grid-template-columns:46px 1fr;gap:13px}
.portrait{height:480px}
.photographer{grid-template-columns:1fr}
.photographer-copy{padding:65px 24px}
.how-it-works{padding-top:88px;padding-bottom:88px}
.how-heading{margin-bottom:43px}
.how-list{grid-template-columns:1fr;column-gap:0}
.how-item{grid-template-columns:55px 1fr;gap:16px;min-height:120px;padding:22px 0}
.how-icon{width:49px;height:49px}
.how-icon svg{width:23px;height:23px}
.for-you{padding:88px 24px}
.final-cta{height:680px}
.final-copy{align-items:flex-start;text-align:left}
.final-copy h2{font-size:46px}
.final-kicker{font-size:23px}
.final-cta>img{object-position:67% center}
.whatsapp-float{bottom:20px;right:18px;width:58px;height:58px}
.whatsapp-float:after{display:none}
footer{gap:21px;padding:43px 24px}
.lightbox-prev{left:0}
.lightbox-next{right:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}
.reveal{opacity:1;transform:none}
}
.hero-copy.reveal,.hero-copy.reveal.is-visible{top:30%;transform:none}
@media(max-width:760px){.hero-copy.reveal,.hero-copy.reveal.is-visible{top:47%;bottom:58px;transform:none}}
