@import url("fonts.css");
:root{--ivory:#f5f1eb;--ink:#24221f;--muted:#756f67;--nude:#ae8068;--line:#d7cec3;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.7}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--nude);outline-offset:5px}img{max-width:100%;display:block}header{height:94px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--ivory);position:relative;z-index:20}.brand{font-family:var(--serif);font-size:26px;letter-spacing:2px;line-height:1.15;white-space:nowrap}.brand span{display:block;font:9px var(--sans);letter-spacing:5px;margin-top:7px;text-align:center}nav{display:flex;align-items:center;gap:32px;font-size:12px}nav a:hover{color:var(--nude)}.nav-book{border-bottom:1px solid var(--ink);padding:9px 0}#menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:690px}.hero-copy{padding:100px 8% 48px 10%;align-self:center;position:relative}.eyebrow{font-size:9px;letter-spacing:2.3px;display:block;color:var(--muted);font-weight:500}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.02}h1{font-size:clamp(65px,7.2vw,112px);letter-spacing:-3px;margin:29px 0}h1 em,h2 em{font-weight:400}h2{font-size:clamp(44px,4.8vw,70px);letter-spacing:-1.6px;margin:20px 0 26px}.hero-copy p{color:var(--muted);font-size:13px;margin-bottom:30px}.button{display:inline-flex;background:var(--ink);color:white;gap:32px;justify-content:space-between;align-items:center;min-height:52px;padding:14px 24px;font-size:12px}.button:hover{background:#554437}.button span{font-size:20px}.hero-discover{display:block;margin-top:64px;font-size:8px;letter-spacing:2px}.hero-photo{position:relative;min-height:690px;overflow:hidden}.hero-photo img{height:100%;width:100%;object-fit:cover;object-position:center 60%;position:absolute}.photo-caption{position:absolute;bottom:20px;left:24px;color:white;font-size:8px;letter-spacing:2px}.section{padding:95px 7%}.section-intro{max-width:1100px;margin:auto}.section-intro p{color:var(--muted);font-size:13px}.service{max-width:1100px;margin:55px auto 0;border-top:1px solid var(--line);padding-top:40px;display:grid;grid-template-columns:1.4fr 1fr;align-items:center;gap:8%}.service:nth-child(even){grid-template-columns:1fr 1.4fr}.service:nth-child(even) .service-gallery{order:2}.service-gallery{display:grid;grid-template-columns:1.1fr 1fr;gap:9px;align-items:start}.service-gallery button{padding:0;border:0;background:transparent;overflow:hidden}.service-gallery button:first-child{grid-row:span 2}.service-gallery img{width:100%;aspect-ratio:1;object-fit:cover;object-position:center 35%;transition:transform .4s}.service-gallery button:first-child img{aspect-ratio:0.62}.service-gallery button:hover img{transform:scale(1.035)}.service-number{font-size:10px;letter-spacing:2px;color:var(--nude)}h3{font-size:57px;margin:12px 0 16px}.service-copy p{font-size:12px;color:var(--muted);max-width:280px}.price{font-family:var(--serif);font-size:29px;margin:22px 0 16px}.price small{font:10px var(--sans);margin-right:5px}.text-link{font-size:11px;border-bottom:1px solid var(--ink);padding-bottom:8px;display:inline-flex;gap:24px;min-height:44px;align-items:center}.gallery-hint{font-size:8px;letter-spacing:1px;color:var(--muted);margin-top:8px}.portfolio{background:#eae3da}.portfolio-heading{display:flex;justify-content:space-between;align-items:end}.portfolio-heading p{color:var(--muted);font-size:12px;margin-bottom:30px}.filters{display:flex;gap:9px;overflow:auto;padding:0 0 22px;margin-top:16px}.filters button{border:1px solid #c9beb0;background:transparent;white-space:nowrap;padding:10px 19px;font-size:11px;min-height:44px}.filters button.active{background:var(--ink);border-color:var(--ink);color:white}.feed{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.feed button{padding:0;border:0;position:relative;background:#ddd;overflow:hidden}.feed img{aspect-ratio:1;width:100%;object-fit:cover;object-position:center 33%;transition:transform .4s}.feed button:hover img{transform:scale(1.04)}.feed-label{position:absolute;bottom:0;left:0;right:0;color:white;background:linear-gradient(transparent,#0008);padding:30px 14px 10px;text-align:left;font-size:10px;opacity:0;transition:opacity .2s}.feed button:hover .feed-label,.feed button:focus-visible .feed-label{opacity:1}.feed-note{text-align:center;font-size:8px;letter-spacing:2px;margin:25px 0 0}.about{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:9%}.about-photo img{width:100%;aspect-ratio:.78;object-fit:cover;object-position:center 48%}.about-copy p{font-size:12px;color:var(--muted)}blockquote{margin:25px 0;font:italic 25px/1.25 var(--serif);border-left:1px solid var(--nude);padding-left:20px}.signature{font:italic 35px var(--serif);margin-top:25px}.signature span{display:block;font:8px var(--sans);letter-spacing:2px;margin-top:9px}.contact{text-align:center;border-top:1px solid var(--line);background:radial-gradient(ellipse at 80% 90%,#e0c8b84d,transparent 50%)}.contact p{font-size:12px;color:var(--muted)}.contact .button{margin-top:13px}.phone{display:block;font-size:11px;margin-top:17px}footer{border-top:1px solid var(--line);margin:0 5%;padding:35px 0;display:flex;justify-content:space-between;align-items:center}footer .brand{font-size:20px}footer .brand span{font-size:7px;letter-spacing:3px}footer p{font:italic 22px var(--serif);margin:0}footer>span{font-size:8px;letter-spacing:1px}.mobile-book{display:none}dialog{border:0;padding:0;background:#151412fa;color:white;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;overflow:hidden}dialog::backdrop{background:#151412}dialog[open]{display:flex;align-items:center;justify-content:center}dialog figure{margin:0;width:80%;height:85%;display:flex;flex-direction:column;align-items:center;justify-content:center}#lightbox-photo{max-height:92%;max-width:100%;object-fit:contain}figcaption{font-size:11px;padding:15px;text-align:center}dialog button{border:0;background:transparent;color:white;position:absolute;z-index:1;min-width:48px;min-height:48px}#close-gallery{top:12px;right:14px;font-size:22px}#prev-photo{left:8px;font-size:48px}#next-photo{right:8px;font-size:48px}.swipe-hint{position:absolute;bottom:12px;font-size:9px;letter-spacing:1px;color:#bbb}
@media(min-width:1500px){main{max-width:1600px;margin:auto}}
@media(max-width:700px){html{scroll-padding-top:75px}header{height:76px;padding:0 6%;position:sticky;top:0}.brand{font-size:22px;letter-spacing:1.5px}.brand span{font-size:7px;letter-spacing:3.8px;margin-top:5px}#menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;border:0;background:transparent;width:44px;height:44px;padding:10px}#menu-toggle span{width:23px;height:1px;background:var(--ink)}nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--ivory);padding:20px 7% 28px;border-bottom:1px solid var(--line);gap:0}nav.open{display:flex;flex-direction:column;align-items:stretch}nav a{padding:12px 0;font-size:14px;min-height:48px}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:42px 7% 32px;width:100%}.eyebrow{font-size:8px;letter-spacing:1.8px}h1{font-size:clamp(61px,16vw,82px);line-height:.96;letter-spacing:-2px;margin:23px 0}.hero-copy p{font-size:12px;line-height:1.7;margin-bottom:22px}.button{font-size:11px;min-height:50px;padding:13px 20px}.hero-discover{display:none}.hero-photo{min-height:0;height:auto;aspect-ratio:.98;margin:0 5%}.hero-photo img{object-position:center 63%}.photo-caption{font-size:6px;left:14px;bottom:12px}.section{padding:57px 6%}h2{font-size:46px;letter-spacing:-1.3px;margin:17px 0 20px}.section-intro p{font-size:12px}.service,.service:nth-child(even){display:flex;flex-direction:column;align-items:stretch;gap:0;padding-top:27px;margin-top:33px}.service:nth-child(even) .service-gallery{order:0}.service-gallery{gap:6px;grid-template-columns:1.05fr 1fr}.service-gallery button:first-child img{aspect-ratio:.64}.service-copy{padding:20px 2px 0}.service-number{font-size:9px}h3{font-size:47px;margin:7px 0 9px}.service-copy p{max-width:none;font-size:12px;margin-bottom:12px}.service-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px}.price{font-size:28px;margin:0}.price small{font-size:9px}.text-link{font-size:10px;gap:14px}.gallery-hint{font-size:7px}.portfolio-heading{display:block}.portfolio-heading p{font-size:11px;margin-bottom:20px}.filters{gap:6px;padding-bottom:17px;margin:0}.filters button{padding:9px 13px;font-size:10px}.feed{gap:4px}.feed-label{display:none}.feed-note{font-size:6px;letter-spacing:1.4px;margin-top:19px}.about{display:flex;flex-direction:column;gap:30px}.about-photo{width:88%;align-self:start}.about-photo img{aspect-ratio:.85}.about-copy p{font-size:12px;line-height:1.9}blockquote{font-size:25px}.contact h2{font-size:43px}.contact{padding-bottom:62px}footer{padding:25px 0 95px;flex-wrap:wrap;gap:22px}footer .brand{font-size:18px}footer p{font-size:19px}footer>span{width:100%;font-size:7px}.mobile-book{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:25;background:var(--ink);color:white;min-height:60px;padding:13px 7% calc(13px + env(safe-area-inset-bottom));align-items:center;justify-content:space-between;font-size:12px}.wa-icon{font-size:22px}dialog figure{width:100%;height:80%;padding:0 12px}#lightbox-photo{max-height:88%}#prev-photo,#next-photo{top:auto;bottom:55px;font-size:38px}#prev-photo{left:26%}#next-photo{right:26%}figcaption{font-size:10px}.swipe-hint{bottom:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(min-width:701px){.service:nth-child(even)>div:first-child{order:2}}

@media(max-width:380px){h2{font-size:40px}.contact h2{font-size:38px}.service-bottom{gap:8px}.text-link{font-size:9px;gap:8px}}
/* Full-bleed photographic opening, with editorial text layered above. */
.hero{display:block;position:relative;isolation:isolate;min-height:740px;height:calc(100svh - 94px);max-height:1000px;background:#eeede9;overflow:hidden}
.hero-photo{position:absolute;inset:0;min-height:0;z-index:-2;margin:0;width:100%;height:100%;overflow:hidden}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:right bottom;transform:scale(1.22);transform-origin:right bottom}
.hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#eeede9 0%,#eeede9f5 20%,#eeede9ad 40%,transparent 62%)}
.hero-copy{position:relative;padding:0;margin-left:7%;width:48%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.hero-copy h1{font-size:clamp(72px,7.8vw,118px)}
.hero-copy p{color:#48443e;max-width:310px}.hero-discover{margin-top:42px}.photo-caption{right:25px;left:auto;bottom:20px}
@media(max-width:700px){.hero{height:calc(100svh - 76px);min-height:730px;max-height:900px;background:#eeede9}.hero-photo{height:100%;aspect-ratio:auto}.hero-photo img{object-fit:contain;object-position:center bottom;transform:none}.hero:after{background:linear-gradient(180deg,#eeede9 0%,#eeede9 13%,#eeede9d9 25%,#eeede92e 43%,transparent 56%)}.hero-copy{height:auto;width:auto;margin:0;padding:38px 7% 0;justify-content:flex-start}.hero-copy h1{font-size:clamp(58px,15vw,75px);margin:19px 0 15px;line-height:.96}.hero-copy p{font-size:11px;margin-bottom:18px;line-height:1.65;max-width:280px}.hero-copy .button{min-height:47px;padding:11px 17px;font-size:10px}.hero-copy .eyebrow{font-size:7px}.photo-caption{display:none}}
@media(max-width:380px){.hero{min-height:700px}.hero-copy{padding-top:29px}.hero-copy h1{font-size:58px}}
/* Centered opening and a quiet, typographic booking link. */
.hero-copy{margin:0 auto;width:86%;text-align:center;align-items:center;justify-content:flex-start;padding-top:55px}
.hero-copy h1{font-size:clamp(62px,6vw,88px);line-height:.98;margin:20px 0 19px;letter-spacing:-2px}
.hero-copy h1 br{display:none}.hero-copy h1 em{margin-left:.12em}
.hero-copy p{max-width:420px;margin-bottom:18px}.hero-copy .eyebrow{color:#504b43}
.hero:after{background:linear-gradient(180deg,#eeede9ee 0%,#eeede9cf 18%,#eeede955 35%,transparent 59%)}
.hero-copy .button{font:italic 500 28px/1.25 var(--serif);background:transparent;color:var(--ink);padding:11px 3px 10px;min-height:48px;border-bottom:1px solid #766455;letter-spacing:.1px;display:inline-block;transition:color .2s,border-color .2s}
.hero-copy .button:hover{background:transparent;color:#8c6249;border-color:#8c6249}.hero-copy .hero-discover{display:none}
#prev-photo,#next-photo{font:11px var(--sans);letter-spacing:.5px;padding:10px 14px;background:#ffffff0d;border:1px solid #ffffff40;min-height:44px}
#prev-photo{left:20px}#next-photo{right:20px}
.mobile-book{justify-content:center;gap:14px}
@media(max-width:700px){.hero-copy{width:100%;padding:35px 7% 0;margin:0;align-items:center;text-align:center}.hero-copy h1{font-size:clamp(56px,15vw,72px);margin:20px 0 17px;line-height:.98}.hero-copy h1 br{display:block}.hero-copy h1 em{margin-left:0}.hero-copy p{max-width:290px;font-size:11px;margin-bottom:10px}.hero-copy .button{font:italic 500 27px/1.25 var(--serif);padding:11px 2px 9px;min-height:48px}.hero:after{background:linear-gradient(180deg,#eeede9 0%,#eeede9ee 20%,#eeede970 39%,transparent 58%)}#prev-photo{left:20%;bottom:55px}#next-photo{right:20%;bottom:55px}}
@media(max-width:380px){.hero-copy{padding-top:30px}.hero-copy h1{font-size:56px}.hero-copy .button{font-size:25px}}
/* Tighter opening typography; rounded booking control in the existing palette. */
.hero-copy h1{line-height:.88;letter-spacing:-2.6px;margin-top:16px;margin-bottom:15px}
.hero-copy p{line-height:1.45;margin-bottom:16px}
.hero-copy .button{border:1px solid #766455;border-radius:999px;padding:12px 27px;min-height:50px;background:transparent;color:var(--ink);text-decoration:none;letter-spacing:-.3px}
.hero-copy .button:hover{background:transparent;color:#8c6249;border-color:#8c6249}
@media(max-width:700px){.hero-copy h1{line-height:.88;letter-spacing:-2.4px;margin-top:16px;margin-bottom:14px}.hero-copy p{line-height:1.45;margin-bottom:16px}.hero-copy .button{padding:12px 25px;border:1px solid #766455;border-radius:999px;min-height:50px}}
/* Restore the original dark booking button palette. */
.hero-copy .button{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.hero-copy .button:hover{background:#554437;color:var(--ivory);border-color:#554437}
/* Requested light brown for the existing rounded booking button. */
.hero-copy .button,.hero-copy .button:hover{background:var(--nude);border-color:var(--nude);color:var(--ivory)}
.hero-copy .button,.hero-copy .button:hover{background:transparent;color:var(--nude);border-color:var(--nude)}
/* Match the introductory description to the hero eyebrow typography. */
.hero-copy p{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:2.3px;text-transform:uppercase;line-height:1.7}
@media(max-width:700px){.hero-copy p{font-size:7px;letter-spacing:1.8px;line-height:1.7;max-width:100%}}
/* Matching DM Sans treatment for the requested descriptive copy only. */
.section-intro p,.service-copy p,.portfolio-heading p,.contact p{font-family:var(--sans);font-weight:500;text-transform:uppercase;letter-spacing:1.8px;font-size:10px;line-height:1.9}
@media(max-width:700px){.section-intro p,.service-copy p,.portfolio-heading p,.contact p{font-size:9px;letter-spacing:1.4px;line-height:1.9}}
/* Service booking controls match the hero booking control. */
.service-copy .text-link{font:italic 500 28px/1.25 var(--serif);letter-spacing:-.3px;background:transparent;color:var(--nude);border:1px solid var(--nude);border-radius:999px;padding:12px 27px;min-height:50px;display:inline-flex;justify-content:center;text-align:center;text-decoration:none;white-space:nowrap}
.service-copy .text-link:hover{background:transparent;color:var(--nude);border-color:var(--nude)}
@media(max-width:700px){.service-copy .text-link{font-size:27px;padding:12px 25px}.service-bottom{flex-wrap:wrap;row-gap:16px}}
@media(max-width:380px){.service-copy .text-link{font-size:25px}}
/* Compact service booking size, retaining the approved pill styling. */
.service-copy .text-link{font-size:11px;min-height:44px;padding:9px 17px;letter-spacing:0}
@media(max-width:700px){.service-copy .text-link{font-size:10px;min-height:44px;padding:9px 16px}}
@media(max-width:380px){.service-copy .text-link{font-size:9px;padding:9px 14px}}
/* Floating WhatsApp replaces the bottom booking bar on every screen. */
.whatsapp-float{position:fixed;right:24px;bottom:24px;z-index:25;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#25d366;color:#fff;border-radius:50%;box-shadow:0 5px 20px #0002;transition:transform .2s}
.whatsapp-float:hover{transform:translateY(-2px)}
@media(max-width:700px){.whatsapp-float{width:56px;height:56px;right:18px;bottom:calc(18px + env(safe-area-inset-bottom))}footer{padding-bottom:35px}}
/* Identify each gallery before visitors see its photographs. */
.service-heading{margin-bottom:22px}.service-heading h3{margin:7px 0 0}
@media(max-width:700px){.service-heading{margin-bottom:20px}.service-copy{padding-top:18px}}
