:root{
  --bg:#f8f1e6; --bg2:#fffdf9; --bg3:#f1e7d7; --bg-img:#e8dbc7;
  --text:#43362a; --muted:#756853; --soft:#4f4231;
  --gold:#c27a4f; --gold-2:#dc9b6a; --sage:#7f9068; --blush:#d99a8f;
  --line:rgba(67,54,42,.10); --line-2:rgba(67,54,42,.05);
  --ease:cubic-bezier(0.22,1,0.36,1);
  --serif:'Spectral',Georgia,'Times New Roman',serif;
  --sans:'Geist','Geist Fallback',system-ui,-apple-system,sans-serif;
}
[data-theme="light"]{
  --bg:#f8f1e6; --bg2:#fffdf9; --bg3:#f1e7d7; --bg-img:#e8dbc7;
  --text:#43362a; --muted:#756853; --soft:#4f4231;
  --gold:#c27a4f; --gold-2:#dc9b6a; --sage:#7f9068; --blush:#d99a8f;
  --line:rgba(67,54,42,.10); --line-2:rgba(67,54,42,.05);
}
[data-theme="dark"]{
  --bg:#191510; --bg2:#221c16; --bg3:#2c251c; --bg-img:#322a20;
  --text:#f3ede3; --muted:#c6bca6; --soft:#e2d9c6;
  --gold:#dabb80; --gold-2:#f1dcae; --sage:#9ba889; --blush:#d99a8f;
  --line:rgba(243,237,227,.13); --line-2:rgba(243,237,227,.06);
}
[data-dys="true"]{ --sans:'Lexend',system-ui,sans-serif; --serif:'Lexend',system-ui,sans-serif; }
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--text);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .5s var(--ease),color .5s var(--ease)}
img{max-width:100%;display:block}
button{font-family:inherit}
input,select,textarea{font-family:inherit;min-width:0;max-width:100%;width:100%}
a{color:var(--gold)}
a:hover{color:var(--gold-2)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}
::selection{background:var(--gold);color:#fff}
@keyframes kb{0%{transform:scale(1.02) translate(0,0)}100%{transform:scale(1.16) translate(-1.5%,-1.2%)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes focusIn{0%{filter:blur(12px);opacity:0;letter-spacing:.5em}60%{opacity:1}100%{filter:blur(0);opacity:1;letter-spacing:.18em}}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-4%)}60%{transform:translate(-3%,2%)}80%{transform:translate(4%,3%)}100%{transform:translate(0,0)}}
@keyframes glowPulse{0%{opacity:.5}50%{opacity:.85}100%{opacity:.5}}
main h1,main h2{text-decoration-line:underline;text-decoration-color:color-mix(in srgb,var(--gold) 50%,transparent);text-decoration-thickness:2px;text-underline-offset:.18em}
main h1[data-hero-h1]{text-decoration:none!important}
[data-hero-copy] h1,[data-hero-copy] h2,[data-hero-copy] p,[data-hero-copy] > span,[data-hero-copy] span[data-reveal]{text-shadow:0 1px 2px color-mix(in srgb,var(--bg) 78%,transparent),0 0 16px var(--bg),0 0 34px color-mix(in srgb,var(--bg) 72%,transparent)}
[data-card]{transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease)}
[data-card]:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(67,54,42,.16);border-color:var(--gold)}
[data-card]:hover [data-zoom]{transform:scale(1.06)}
[data-card]:hover [data-arrow]{transform:translateX(4px)}
[data-gtile]{transition:box-shadow .35s var(--ease)}
[data-gtile]:hover{transform:none!important;rotate:0deg!important;box-shadow:0 18px 44px rgba(67,54,42,.24)!important;z-index:2}
[data-gtile]:hover [data-zoom]{transform:scale(1.07)}
[data-gtile]:hover [data-gcap]{opacity:1!important;transform:none!important}
[data-gtile]:hover [data-gcat]{opacity:1!important;transform:none!important}
[data-arrow]{transition:transform .3s var(--ease)}
.uline{background-image:linear-gradient(var(--gold),var(--gold));background-repeat:no-repeat;background-position:0 100%;background-size:0% 1.5px;transition:background-size .35s var(--ease);padding-bottom:2px}
.uline:hover,.uline:focus-visible{background-size:100% 1.5px}
[data-reveal]{transition:opacity .75s var(--ease),transform .75s var(--ease),clip-path .9s var(--ease);will-change:opacity,transform}
[data-anim] [data-reveal]:not([data-reveal-clip]):not([data-in]){opacity:0;transform:translateY(26px)}
[data-anim] [data-reveal][data-reveal-clip]:not([data-in]){clip-path:inset(0 100% 0 0)}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes drift{0%,100%{transform:translate(0,0) rotate(0deg)}50%{transform:translate(8px,-10px) rotate(4deg)}}
@keyframes shimmer{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes sway{0%,100%{transform:rotate(-2.2deg)}50%{transform:rotate(2.2deg)}}
@keyframes breathe{0%,100%{box-shadow:0 0 0 0 rgba(205,163,93,0)}50%{box-shadow:0 0 30px 2px rgba(205,163,93,.4)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
[data-mm-float]{animation:floaty 6s ease-in-out infinite}
[data-mm-sway]{animation:sway 7s ease-in-out infinite;transform-origin:50% 0}
[data-mm-drift]{animation:drift 11s ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:.3;transform:scale(.7) rotate(0deg)}50%{opacity:1;transform:scale(1.1) rotate(20deg)}}
@keyframes bobble{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-9px) rotate(4deg)}}
@keyframes wiggle{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
@keyframes squiggleIn{from{stroke-dashoffset:240}to{stroke-dashoffset:0}}
[data-twinkle]{animation:twinkle 3.2s ease-in-out infinite}
[data-bobble]{animation:bobble 5.5s ease-in-out infinite}
header a:hover [data-logo-cam]{animation:wiggle .5s ease-in-out}
[data-squiggle] path{stroke-dasharray:240;stroke-dashoffset:240}
[data-in] [data-squiggle] path,[data-squiggle][data-in] path{animation:squiggleIn 1s var(--ease) .3s forwards}
[data-kb]:has(img[src*="home-beach"]){animation:none!important;transform:none!important}
[data-mm-glow]{animation:breathe 3.6s ease-in-out infinite}
[data-dot]::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:9px;vertical-align:middle;animation:blink 2.4s ease-in-out infinite}
[data-marquee-track]{display:flex;width:max-content;animation:marquee 64s linear infinite}
[data-marquee]:hover [data-marquee-track]{animation-play-state:paused}
/* mobile menu drawer */
[data-mobile-menu]{display:none}
[data-mobile-menu].open{display:flex}
[data-panel]{display:none}
[data-panel].open{display:block}
[data-backdrop]{display:none}
[data-backdrop].open{display:block}
/* gallery filter hide */
[data-gtile][hidden]{display:none!important}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  #grain{animation:none!important}
  [data-kb]{animation:none!important;transform:none!important}
  [data-reveal]{opacity:1!important;transform:none!important;clip-path:none!important}
  [data-mm-float],[data-mm-sway],[data-mm-glow],[data-marquee-track],[data-dot]::before{animation:none!important}
  *{transition-duration:.001ms!important}
}
@media(max-width:900px){
  [data-desk-nav]{display:none!important}
  [data-burger]{display:flex!important}
}
@media(max-width:820px){
  [data-grid12]{grid-template-columns:1fr!important;gap:32px!important}
  [data-grid12] > *{grid-column:1 / -1!important}
  [data-footgrid]{grid-template-columns:1fr 1fr!important;gap:32px!important}
}
@media(max-width:620px){
  [data-svc-detail]{flex-direction:column!important;gap:28px!important}
  [data-svc-detail] [data-card]{width:100%!important;max-width:100%!important}
}
@media(max-width:560px){
  [data-grid12mag]{grid-template-columns:1fr!important;justify-items:center;text-align:center}
  [data-pill-num]{display:none!important}
}
@media(max-width:460px){
  [data-cta]{display:none!important}
}
@media(max-width:480px){
  [data-footgrid]{grid-template-columns:1fr!important;gap:30px!important}
  [data-namegrid]{grid-template-columns:1fr!important}
}
@media(max-width:480px){
  /* Single gallery column on phones */
  [data-gal-col]:nth-child(2),[data-gal-col]:nth-child(3){display:none!important}
}
@media(max-width:768px){
  [data-mobile-hero]{min-height:100svh!important}
  [data-hero-copy]{padding-top:clamp(90px,18vw,130px)!important;padding-bottom:clamp(40px,7vh,80px)!important}
  [data-hero-h1]{line-height:1.08!important;font-size:clamp(28px,8vw,52px)!important}
  [data-svc-cards]{grid-template-columns:1fr!important}
  [data-marquee-track] span{font-size:15px!important}
  [data-gal-chips]{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;padding-bottom:6px!important;justify-content:flex-start!important;gap:8px!important;scrollbar-width:none!important}
  [data-gal-chips]::-webkit-scrollbar{display:none}
  [data-gal-chips] button{flex:none!important;font-size:13px!important;padding:9px 15px!important}
  [data-about-aside]{order:2}
  [data-about-text]{order:1}
  [data-contact-grid]{grid-template-columns:1fr!important}
  [data-contact-grid] > *{grid-column:1/-1!important}
  [data-section-pad]{padding-top:80px!important;padding-bottom:40px!important}
  [data-map]{height:260px!important}
  footer a{padding-top:7px!important;padding-bottom:7px!important}
  [data-footer-cta-h]{font-size:clamp(24px,6vw,36px)!important}
  [data-mmenu-link]{padding:14px 0!important;font-size:30px!important}
  /* Service details: stack vertically on mobile with full-width tall image */
  [data-svc-detail]{flex-direction:column!important;gap:20px!important}
  [data-svc-detail] [data-card]{width:100%!important;max-width:100%!important;height:0!important;padding-bottom:75%!important;border-radius:16px!important}
  /* Alternate rows: image always on top */
  [data-svc-detail][style*="row-reverse"]{flex-direction:column!important}
  /* Disable parallax offset on mobile — shows full image without cutoff */
  [data-parallax]{inset:0!important;transform:none!important}
  [data-parallax] img{transform:none!important}
  /* Overlap card: reduce pull-up on mobile to prevent hero text clash */
  [data-overlap-card]{margin-top:-60px!important;padding-top:80px!important}
  /* Gallery: 2 columns on tablet */
  [data-gal-col]:nth-child(3){display:none!important}
  /* Home hero: strong gradient overlay on mobile so text is legible */
  [data-screen-label="Home"] [data-mobile-hero] > div:first-child > div:last-child{background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 85%,transparent) 0%,color-mix(in srgb,var(--bg) 60%,transparent) 40%,color-mix(in srgb,var(--bg) 30%,transparent) 65%,var(--bg) 100%)!important}
  /* Home beach: use portrait crop on mobile showing full couple */
  [data-screen-label="Home"] [data-kb] img[src*="home-beach"]{content:url(assets/home-beach-portrait.jpg);object-position:center 20%!important}
  /* Hero text: stronger shadows over bright images */
  [data-mobile-hero] [data-hero-copy] h1{text-shadow:0 2px 10px var(--bg),0 0 40px var(--bg),0 0 70px color-mix(in srgb,var(--bg) 90%,transparent)!important}
  [data-mobile-hero] [data-hero-copy] p,[data-mobile-hero] [data-hero-copy] span[data-reveal]{text-shadow:0 1px 6px var(--bg),0 0 24px var(--bg),0 0 50px color-mix(in srgb,var(--bg) 80%,transparent)!important}
}
@media(max-width:480px){
  [data-hero-h1]{font-size:clamp(30px,9vw,48px)!important}
  [data-svc-overlap]{margin-top:-80px!important}
  [data-section-pad]{padding-top:60px!important}
}
/* gallery masonry columns */
[data-gal-masonry]{column-gap:18px}
[data-gal-masonry] [data-gtile]{break-inside:avoid;margin-bottom:18px;display:block}
@media(max-width:900px){[data-gal-masonry]{column-count:2!important}}
@media(max-width:560px){[data-gal-masonry]{column-count:1!important}}
