@font-face{font-family:'Playfair Local';src:url('../fonts/playfair/PlayfairDisplay-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Playfair Local';src:url('../fonts/playfair/PlayfairDisplay-Bold.woff') format('woff');font-weight:700;font-style:normal;font-display:swap}
:root{--bg:#111116;--text:#fff;--muted:rgba(255,255,255,.78);--accent:#eb6165;--ease:cubic-bezier(.3,0,.3,1);--header-pad:clamp(24px,3vw,50px);--title:clamp(82px,6.65vw,108px)}
*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;background:var(--bg);color:#fff}
html{scroll-behavior:smooth}
body{font-family:'Roboto',Arial,Helvetica,sans-serif;overflow-x:hidden}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}button{font:inherit}

/* Header: always transparent over the hero. */
.site-header{position:fixed;z-index:1200;left:0;top:0;width:100%;height:92px;padding:0 var(--header-pad);display:flex;align-items:center;justify-content:space-between;background:transparent;box-shadow:none;pointer-events:none}
.brand-main{position:relative;z-index:2;pointer-events:auto;display:inline-flex;align-items:center;font-size:34px;font-weight:800;letter-spacing:-1.7px;line-height:1;color:#fff;text-transform:none}
.brand-main::first-letter{color:inherit}
.brand-main.brand-image{font-size:0;letter-spacing:0}
.brand-main.brand-image img{display:block;width:auto;max-width:min(180px,28vw);max-height:54px;height:auto;object-fit:contain}
.header-font-sans .brand-main:not(.brand-image){font-family:'Roboto',Arial,sans-serif;font-weight:900}
.header-font-serif .brand-main:not(.brand-image){font-family:'Playfair Display','Playfair Local',Georgia,serif;font-weight:500;letter-spacing:-1px}
.header-font-mono .brand-main:not(.brand-image){font-family:'Mr De Haviland','Playfair Display',Georgia,serif;font-weight:400;letter-spacing:0;font-size:44px}
.menu-toggle{pointer-events:auto;position:relative;border:0;background:none;color:#fff;width:46px;height:42px;padding:5px 0;cursor:pointer}
.menu-toggle span{display:block;width:32px;height:2px;background:#fff;margin:8px auto;transition:transform .35s var(--ease),opacity .25s ease}
.menu-toggle.active span:nth-child(1){transform:translateY(10px) rotate(45deg)}
.menu-toggle.active span:nth-child(2){opacity:0}
.menu-toggle.active span:nth-child(3){transform:translateY(-10px) rotate(-45deg)}

/* Full-screen menu: black Aster/Studio-style wipe and one horizontal navigation row. */
.fullscreen-menu{position:fixed;inset:0;z-index:2500;display:flex;align-items:center;justify-content:center;visibility:hidden;opacity:0;pointer-events:none}
.fullscreen-menu.open{visibility:visible;opacity:1;pointer-events:auto}
.fullscreen-menu-panel{position:absolute;inset:-18vh -8vw;background:#01010b;transform:translate3d(0,-130vh,0) skew(-10deg,-10deg);transition:transform 1s var(--ease)}
.fullscreen-menu.open .fullscreen-menu-panel{transform:translate3d(0,0,0) skew(-10deg,-10deg)}
.menu-close{position:absolute;right:var(--header-pad);top:20px;z-index:3;border:0;background:none;color:#fff;font-size:42px;line-height:1;font-weight:200;cursor:pointer;padding:2px 8px;opacity:0;transform:translateY(-15px);transition:opacity .4s ease .45s,transform .5s var(--ease) .45s}
.fullscreen-menu.open .menu-close{opacity:1;transform:translateY(0)}
.fullscreen-nav{position:relative;z-index:3;width:min(1540px,calc(100% - 80px));display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:clamp(18px,2.2vw,42px);overflow:visible}
.menu-link{position:relative;display:inline-block;color:#c0c0c7;font-family:'Playfair Local',Georgia,'Times New Roman',serif;font-size:clamp(28px,3.1vw,50px);font-weight:400;letter-spacing:-1.2px;line-height:1;padding:4px 0;white-space:nowrap;opacity:0;transform:translateY(28px);transition:color .3s ease,opacity .55s var(--ease),transform .6s var(--ease)}
.fullscreen-menu.open .menu-link{opacity:1;transform:translateY(0)}
.fullscreen-menu.open .menu-link:nth-child(1){transition-delay:.08s}.fullscreen-menu.open .menu-link:nth-child(2){transition-delay:.14s}.fullscreen-menu.open .menu-link:nth-child(3){transition-delay:.20s}.fullscreen-menu.open .menu-link:nth-child(4){transition-delay:.26s}.fullscreen-menu.open .menu-link:nth-child(5){transition-delay:.32s}.fullscreen-menu.open .menu-link:nth-child(6){transition-delay:.38s}.fullscreen-menu.open .menu-link:nth-child(7){transition-delay:.44s}.fullscreen-menu.open .menu-link:nth-child(8){transition-delay:.50s}.fullscreen-menu.open .menu-link:nth-child(9){transition-delay:.56s}
.menu-link:hover,.menu-link.active{color:#fff}
.menu-link::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.menu-link:hover::after,.menu-link.active::after{transform:scaleX(1)}

main{width:100%}
.home-slider{position:relative;width:100%;height:100dvh;min-height:520px;overflow:hidden;background:#14141a;touch-action:pan-y}
.slides,.hero-slide,.slide-image,.slide-shade,.slide-grain,.slide-image-link{position:absolute;inset:0}
.hero-slide{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .75s var(--ease),visibility .75s var(--ease)}
.hero-slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.slide-image{background-size:cover;background-repeat:no-repeat;transform:scale(1.015);filter:saturate(.92) contrast(1.02);transition:transform 6.2s ease}
.hero-slide.is-active .slide-image{transform:scale(1.045)}
.slide-image-link{z-index:2}
.slide-shade{z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.56) 0%,rgba(0,0,0,.20) 37%,rgba(0,0,0,.03) 72%,rgba(0,0,0,.08) 100%),linear-gradient(0deg,rgba(0,0,0,.28),transparent 42%)}
.slide-grain{z-index:2;opacity:.10;mix-blend-mode:soft-light;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E")}

/* Aster hero typography and composition. */
.slide-copy{position:absolute;z-index:5;left:var(--header-pad);top:50%;width:100%;max-width:520px;transform:translateY(-50%);color:#fff;pointer-events:none;text-align:left}
.slide-kicker{position:relative;margin:0 0 10px;font-size:14px;text-transform:uppercase;font-weight:400;line-height:1.5;opacity:1;letter-spacing:0}
.hero-title{position:relative;display:block;width:max-content;max-width:min(760px,calc(100vw - (2 * var(--header-pad))));margin:0 0 70px;font-family:'Playfair Display','Playfair Local',Georgia,'Times New Roman',serif;font-size:var(--title);line-height:1;font-weight:500;letter-spacing:-3px;color:inherit;white-space:normal}
.hero-title:after{content:'';position:absolute;left:-160px;bottom:-30px;width:0;height:1px;background:var(--accent);transition:left .6s var(--ease) .4s,width .6s var(--ease) .4s}
.hero-slide.is-active .hero-title:after{left:-90px;width:160px}
.hero-char{display:inline-block;opacity:0;transform:translateX(34px);transition:opacity .3s linear,transform .7s var(--ease);transition-delay:var(--char-delay,0ms)}
.hero-space{width:.28em}
.hero-slide.is-active .hero-char{opacity:1;transform:translateX(0)}
.hero-text-reveal{opacity:0;transform:translate(0,20px);transition:opacity .3s var(--ease),transform .7s var(--ease)}
.hero-slide.is-active .hero-text-reveal{opacity:1;transform:translate(0,0)}
.hero-slide.is-active .slide-kicker{transition-delay:0ms}
.hero-slide.is-active .slide-copy p{transition-delay:180ms}
.hero-slide.is-active .details-btn{transition-delay:320ms}
.slide-copy p{display:block;margin:0 0 35px;max-width:480px;color:#fff;font-size:18px;line-height:1.7;font-weight:400;opacity:.8}

/* Original Aster “see details” button interaction. */
.details-btn{position:relative;display:inline-block;border:none;color:#fff;background:transparent;font-family:'Roboto',Arial,sans-serif;font-size:16px;line-height:1;font-weight:700;padding:10px;overflow:hidden;pointer-events:auto;transform:none;transition:color .3s var(--ease)}
.details-btn:before{content:'';position:absolute;z-index:-1;top:0;left:0;width:24px;height:100%;background:var(--accent);transform:skew(0deg,0deg);transition:left .3s var(--ease),width .3s var(--ease),height .3s var(--ease),transform .3s var(--ease)}
.details-btn:hover{color:#fff;transform:none}
.details-btn:hover:before{left:-10%;width:120%;height:110%;transform:skew(-10deg,0deg)}

/* Socials: no cards, no circles, just dark silhouettes. Desktop bottom-right; mobile centered at the footer edge. */
.site-footer{background:transparent;color:#000}
.site-footer-home{position:fixed;z-index:20;left:0;right:0;bottom:0;pointer-events:none}
.footer-inner{padding:0 var(--header-pad) 30px;display:flex;align-items:center;justify-content:flex-end}
.footer-social{display:flex;align-items:center;gap:18px;pointer-events:auto}
.footer-social a{width:22px;height:22px;display:grid;place-items:center;color:#050505;opacity:.92;transition:transform .25s var(--ease),opacity .2s ease}
.footer-social a:hover{transform:translateY(-3px);opacity:1}
.footer-social svg{width:100%;height:100%;fill:currentColor;display:block}

/* Inner pages */
.inner-hero{position:relative;height:min(76vh,820px);min-height:520px;background-size:cover;background-repeat:no-repeat;display:flex;align-items:flex-end;overflow:hidden}
.inner-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,10,.72),transparent 68%),linear-gradient(0deg,rgba(7,7,10,.72),transparent 45%)}
.inner-hero-copy{position:relative;z-index:2;margin:0 var(--header-pad) clamp(46px,7vh,90px)}
.inner-hero-copy h1{font-family:'Playfair Display','Playfair Local',Georgia,'Times New Roman',serif;font-size:clamp(54px,8vw,120px);line-height:.95;font-weight:400;letter-spacing:-4px;margin:0;max-width:none}
.intro-section{background:#fff;color:#111;padding:90px var(--header-pad)}
.intro-inner{width:min(880px,100%);margin:0 auto;text-align:center}.intro-kicker{font-size:11px;font-weight:800;letter-spacing:3px;color:#777;margin-bottom:18px}.intro-inner p{margin:0;font-size:18px;line-height:1.85;font-weight:500;color:#2a2a2f}
.gallery-section{padding:0 0 80px;background:#fff;color:#111}.gallery-item{margin:0;overflow:hidden;background:#eee}.gallery-item img{display:block;width:100%;height:auto;cursor:zoom-in;transition:transform 900ms var(--ease);object-fit:cover}.gallery-item:hover img{transform:scale(1.025)}.gallery-full{margin:0 0 2px}.gallery-full img{width:100%;aspect-ratio:16/8.9;object-fit:cover}.gallery-row{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-bottom:2px}.gallery-half img{aspect-ratio:1.12/1;object-fit:cover}

.lightbox{position:fixed;inset:0;z-index:3000;background:rgba(8,8,10,.97);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;padding:30px}.lightbox.open{opacity:1;visibility:visible}.lightbox-image{max-width:92vw;max-height:86vh;object-fit:contain}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:0;background:none;color:#fff;cursor:pointer}.lightbox-close{top:15px;right:22px;font-size:40px}.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);font-size:64px;font-weight:200;padding:20px}.lightbox-prev{left:8px}.lightbox-next{right:8px}

@media (max-width:1100px){
  .slide-copy{width:min(600px,56vw)}
  .hero-title{font-size:clamp(62px,8.5vw,102px)}
  .fullscreen-nav{gap:18px}
  .menu-link{font-size:clamp(25px,2.7vw,42px)}
}
@media (max-width:760px){
  :root{--header-pad:18px;--title:clamp(56px,14vw,78px)}
  .site-header{height:76px;padding:0 var(--header-pad)}
  .brand-main{font-size:27px;letter-spacing:-1.3px}
  .brand-main.brand-image img{max-width:132px;max-height:42px}
  .menu-toggle{width:42px;height:38px}
  .menu-toggle span{width:28px;height:1.7px;margin:7px auto}
  .fullscreen-menu{padding:80px 20px}
  .fullscreen-nav{width:100%;flex-wrap:wrap;gap:20px 28px}
  .menu-link{font-size:clamp(24px,7vw,36px);letter-spacing:-.8px}
  .menu-close{right:18px;top:15px;font-size:38px}
  .slide-copy{left:18px;right:18px;width:auto;max-width:none;transform:translateY(-50%)}
  .slide-kicker{font-size:11px;margin-bottom:10px}
  .hero-title{font-size:var(--title);letter-spacing:-2px;margin-bottom:55px;max-width:calc(100vw - 36px)}
  .hero-title:after{bottom:-24px}
  .hero-slide.is-active .hero-title:after{left:-55px;width:110px}
  .slide-copy p{max-width:calc(100vw - 36px);font-size:15px;line-height:1.65;margin-bottom:35px}
  .footer-inner{padding:0 18px 13px;justify-content:center}
  .footer-social{gap:20px}
  .footer-social a{width:20px;height:20px}
  .site-footer:not(.site-footer-home) .footer-inner{padding:22px 18px;justify-content:center}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.hero-slide,.slide-image{transform:none!important}.hero-char,.hero-text-reveal{opacity:1!important;transform:none!important}}


/* ===== Aster fidelity patch: full-screen menu ===== */
.fullscreen-menu-panel{background:#01010b;transform:translate3d(0,-100%,0) skew(-10deg,-10deg);transition:transform 1s cubic-bezier(.3,0,.3,1)}
.fullscreen-menu.open .fullscreen-menu-panel{transform:translate3d(0,0,0) skew(0deg,0deg)}
.fullscreen-nav{width:min(820px,calc(100% - 80px));display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:center;align-items:center;gap:0;padding:100px 0}
.menu-link{display:inline-block;position:relative;color:#c0c0c7;font-family:'Playfair Display','Playfair Local',Georgia,'Times New Roman',serif;font-size:49px;font-weight:700;letter-spacing:-1.4px;line-height:1;margin:0 0 15px;padding:0;white-space:nowrap;opacity:1;transform:none;transition:color .35s ease}
.menu-link:last-child{margin-bottom:0}
.menu-link:hover,.menu-link.active{color:#fff}
.menu-link::after{display:none}
.menu-char{display:inline-block;opacity:0;transform:translate3d(0,70px,0);transition:opacity .55s cubic-bezier(.3,0,.3,1),transform .75s cubic-bezier(.3,0,.3,1);transition-delay:var(--menu-delay,0s)}
.menu-space{width:.28em}
.fullscreen-menu.open .menu-char{opacity:1;transform:translate3d(0,0,0)}
.fullscreen-menu.open .menu-link:nth-child(1) .menu-char{transition-delay:calc(var(--menu-delay) + .08s)}
.fullscreen-menu.open .menu-link:nth-child(2) .menu-char{transition-delay:calc(var(--menu-delay) + .16s)}
.fullscreen-menu.open .menu-link:nth-child(3) .menu-char{transition-delay:calc(var(--menu-delay) + .24s)}
.fullscreen-menu.open .menu-link:nth-child(4) .menu-char{transition-delay:calc(var(--menu-delay) + .32s)}
.fullscreen-menu.open .menu-link:nth-child(5) .menu-char{transition-delay:calc(var(--menu-delay) + .40s)}
.fullscreen-menu.open .menu-link:nth-child(6) .menu-char{transition-delay:calc(var(--menu-delay) + .48s)}
.fullscreen-menu.open .menu-link:nth-child(7) .menu-char{transition-delay:calc(var(--menu-delay) + .56s)}
.fullscreen-menu.open .menu-link:nth-child(8) .menu-char{transition-delay:calc(var(--menu-delay) + .64s)}
.fullscreen-menu.open .menu-link:nth-child(9) .menu-char{transition-delay:calc(var(--menu-delay) + .72s)}

/* ===== Aster fidelity patch: contact page ===== */
.contact-heading{background:#18181b;padding:250px var(--header-pad) 100px;margin:0}
.contact-heading-inner{width:min(100%,1440px);margin:0 auto}
.contact-heading-title{font-family:'Playfair Display','Playfair Local',Georgia,serif;font-size:clamp(74px,6.6vw,100px);line-height:1;font-weight:400;color:#fff;letter-spacing:-3px}
.contact-image-section{width:100%;margin:0 0 0}
.contact-image{width:100%;height:min(100vh,920px);background-repeat:no-repeat;background-position:center center;background-size:cover}
.contact-main{background:#18181b;color:#fff;padding:110px var(--header-pad) 120px}
.contact-main-grid{width:min(1440px,100%);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:90px}
.contact-section-title{font-family:'Playfair Display','Playfair Local',Georgia,serif;font-size:40px;line-height:1.1;font-weight:400;color:#fff;margin:0 0 45px}
.aster-contact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.aster-contact-form .form-field{margin:0 0 28px}
.aster-contact-form input,.aster-contact-form textarea{width:100%;height:56px;padding:0 18px;border:1px solid #494949;background:transparent;color:#fff;font:400 18px/1 'Roboto',Arial,sans-serif;border-radius:0;outline:0;transition:border-color .35s ease}
.aster-contact-form input::placeholder,.aster-contact-form textarea::placeholder{color:#8f8f95;opacity:1}
.aster-contact-form input:focus,.aster-contact-form textarea:focus{border-color:#fff}
.aster-contact-form textarea{height:158px;padding:18px;resize:vertical;line-height:1.5}
.contact-send{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 30px;border:0;background:transparent;color:#fff;font:700 16px/1 'Roboto',Arial,sans-serif;overflow:hidden;cursor:pointer}
.contact-send:before{content:'';position:absolute;z-index:-1;left:-10%;top:-50%;width:120%;height:120%;background:#eb6165;transform:translate3d(0,-100%,0) skew(-10deg,-10deg);transition:all .7s cubic-bezier(.3,0,.3,1)}
.contact-send:hover:before{top:-20%;transform:translate3d(0,0,0) skew(0deg)}
.contact-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.contact-info-item{padding-top:5px}
.contact-info-icon{font:400 44px/1 'Roboto',Arial,sans-serif;color:#eb6165;margin-bottom:24px}
.contact-info-label{margin:0 0 10px;font-size:18px;color:#fff;font-weight:700}
.contact-info-value{font-size:18px;line-height:1.6;color:#c0c0c7}
.contact-info-value a{color:inherit}
.contact-info-value a:hover{color:#fff}

@media (max-width:760px){
  .fullscreen-nav{width:100%;padding:90px 20px}
  .menu-link{font-size:clamp(36px,11vw,49px);margin-bottom:13px;letter-spacing:-1px}
  .menu-char{transform:translate3d(0,46px,0)}
  .contact-heading{padding:160px 18px 55px}
  .contact-heading-title{font-size:clamp(58px,15vw,82px);letter-spacing:-2.2px}
  .contact-image{height:60vh;min-height:360px}
  .contact-main{padding:70px 18px 85px}
  .contact-main-grid{grid-template-columns:1fr;gap:70px}
  .contact-section-title{font-size:34px;margin-bottom:34px}
  .aster-contact-form .form-row{grid-template-columns:1fr;gap:0}
  .aster-contact-form .form-field{margin-bottom:18px}
  .aster-contact-form textarea{height:150px}
  .contact-info-grid{grid-template-columns:1fr;gap:38px}
  .contact-info-icon{font-size:38px;margin-bottom:14px}
}


/* Exact Aster-style menu button: two lines that become an X. */
.menu-toggle{width:36px;height:30px;padding:0}
.menu-toggle span{position:absolute;left:0;top:50%;width:100%;height:14px;margin:0;background:transparent}
.menu-toggle span:before,.menu-toggle span:after{content:'';position:absolute;left:0;width:100%;height:2px;background:#fff;border-radius:1px;transition:all .3s cubic-bezier(.3,0,.3,1)}
.menu-toggle span:before{top:0}
.menu-toggle span:after{bottom:0}
.menu-toggle.active span:before{top:6px;transform:rotate(-45deg)}
.menu-toggle.active span:after{bottom:6px;transform:rotate(45deg)}
@media (max-width:760px){.menu-toggle{width:30px;height:28px}.menu-toggle span:before,.menu-toggle span:after{height:1.7px}}

.contact-info-icon{width:59px;height:69px;display:flex;align-items:flex-start;justify-content:flex-start;font-size:0}
.contact-info-icon svg{width:42px;height:42px;display:block;fill:currentColor}

/* Dark inner-page footer: keep social silhouettes visible on the dark Aster footer. */
.site-footer:not(.site-footer-home){background:#18181b;color:#fff}
.site-footer:not(.site-footer-home) .footer-inner{padding-top:0}
.site-footer:not(.site-footer-home) .footer-social a{color:#fff}

/* ===== Contact page: same hero language as the photography categories ===== */
.contact-page-hero{height:min(76vh,820px);min-height:560px}
.contact-page-hero .inner-hero-copy{margin-bottom:clamp(54px,7vh,92px)}
.contact-page-hero .inner-hero-copy h1{font-family:'Playfair Display','Playfair Local',Georgia,serif;font-size:clamp(62px,7vw,112px);font-weight:400;letter-spacing:-4px;line-height:.92}
.contact-main{background:#18181b;color:#fff;padding:110px var(--header-pad) 120px}
.contact-main-grid{width:min(1440px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(50px,7vw,120px);align-items:start}
.contact-section-title{font-family:'Playfair Display','Playfair Local',Georgia,serif;font-size:clamp(34px,3vw,46px);line-height:1.12;font-weight:400;color:#fff;margin:0 0 34px;max-width:620px}
.aster-contact-form{display:grid;gap:0}
.aster-contact-form .form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.aster-contact-form .form-field{margin:0 0 18px;min-width:0}
.aster-contact-form input,.aster-contact-form textarea,.aster-contact-form select{width:100%;height:58px;padding:0 17px;border:1px solid #4a4a50;background:transparent;color:#fff;font:400 17px/1 'Roboto',Arial,sans-serif;border-radius:0;outline:0;transition:border-color .3s ease,background .3s ease}
.aster-contact-form select{appearance:auto}
.aster-contact-form select option{color:#111;background:#fff}
.aster-contact-form input::placeholder,.aster-contact-form textarea::placeholder{color:#92929a;opacity:1}
.aster-contact-form input:focus,.aster-contact-form textarea:focus,.aster-contact-form select:focus{border-color:#fff;background:rgba(255,255,255,.025)}
.aster-contact-form textarea{height:160px;padding:17px;resize:vertical;line-height:1.55}
.contact-send{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;justify-self:start;height:54px;padding:0 28px;border:0;background:transparent;color:#fff;font:700 15px/1 'Roboto',Arial,sans-serif;overflow:hidden;cursor:pointer}
.contact-send:before{content:'';position:absolute;z-index:-1;left:0;bottom:0;width:30px;height:100%;background:#eb6165;transform:skewX(0deg);transition:width .45s cubic-bezier(.3,0,.3,1),transform .45s cubic-bezier(.3,0,.3,1)}
.contact-send:hover:before{width:115%;transform:skewX(-10deg)}
.contact-feedback{padding:13px 15px;margin:-8px 0 24px;border:1px solid #45454b;font-size:14px;line-height:1.5}
.contact-feedback.success{border-color:#56745f;color:#d6f0da}
.contact-feedback.error{border-color:#7d4a4d;color:#ffd2d4}
.honeypot{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.contact-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.contact-info-item{min-width:0;padding-top:4px}
.contact-info-icon{width:auto;height:auto;margin:0 0 22px;color:#eb6165;font:400 42px/1 'Roboto',Arial,sans-serif}
.contact-info-label{margin:0 0 9px;font-size:17px;line-height:1.25;color:#fff;font-weight:700}
.contact-info-value{font-size:16px;line-height:1.6;color:#c3c3c9;overflow-wrap:anywhere;word-break:break-word}
.contact-info-value a{color:inherit}
.contact-info-value a:hover{color:#fff}
@media(max-width:1100px){.contact-info-grid{grid-template-columns:1fr}.contact-main-grid{grid-template-columns:1fr;gap:70px}.contact-info-item{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:16px;align-items:start}.contact-info-icon{grid-row:1 / span 2;margin:0}.contact-info-label{grid-column:2}.contact-info-value{grid-column:2}}
@media(max-width:760px){.contact-page-hero{height:68vh;min-height:500px}.contact-page-hero .inner-hero-copy{margin:0 18px 46px}.contact-page-hero .inner-hero-copy h1{font-size:clamp(56px,14vw,78px);letter-spacing:-2px}.contact-main{padding:70px 18px 88px}.contact-main-grid{gap:65px}.contact-section-title{font-size:34px;margin-bottom:28px}.aster-contact-form .form-row{grid-template-columns:1fr;gap:0}.aster-contact-form input,.aster-contact-form textarea,.aster-contact-form select{font-size:16px}.contact-info-grid{gap:34px}}

/* ===== Responsive final pass ===== */
@media (max-width: 760px){
  .fullscreen-menu{
    padding:0 14px;
    overflow:hidden;
  }
  .fullscreen-menu-panel{
    inset:-12vh -14vw;
  }
  .fullscreen-nav{
    width:100%;
    max-width:100%;
    height:100%;
    padding:74px 0 58px;
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    justify-content:center;
    align-items:center;
    gap:2px;
    overflow:hidden;
  }
  .menu-link{
    display:block;
    width:auto;
    max-width:100%;
    margin:0!important;
    padding:2px 0;
    font-size:clamp(23px,7.5vw,42px);
    line-height:1.12;
    letter-spacing:-.7px;
    white-space:nowrap;
    text-align:center;
    flex:0 0 auto;
  }
  .menu-char{transform:translate3d(0,38px,0)}
  .menu-close{
    right:14px;
    top:14px;
    padding:0;
    font-size:36px;
    line-height:1;
  }

  .slide-copy{
    left:18px;
    right:18px;
    width:auto;
    max-width:none;
  }
  .hero-title{
    width:100%;
    max-width:100%;
    font-size:clamp(52px,13.4vw,78px);
    line-height:.98;
    letter-spacing:-2.1px;
    overflow-wrap:normal;
    word-break:normal;
  }
  .hero-char{transform:translateX(24px)}
  .slide-copy p{
    width:100%;
    max-width:100%;
  }

  .inner-hero-copy{
    margin-left:18px;
    margin-right:18px;
    max-width:calc(100% - 36px);
  }
  .inner-hero-copy h1{
    max-width:100%;
    font-size:clamp(52px,14vw,78px);
    line-height:.96;
    letter-spacing:-2.4px;
    overflow-wrap:anywhere;
  }

  .gallery-section{padding-bottom:40px}
  .lightbox{padding:16px}
  .lightbox-image{max-width:100%;max-height:82vh}
  .lightbox-prev,.lightbox-next{font-size:46px;padding:14px}
  .lightbox-prev{left:0}
  .lightbox-next{right:0}

  .contact-page-hero{min-height:480px}
  .contact-page-hero .inner-hero-copy{margin-bottom:44px}
  .contact-main{padding-left:18px;padding-right:18px}
  .contact-main-grid{width:100%}
  .aster-contact-form .form-row{width:100%}
  .aster-contact-form input,.aster-contact-form textarea,.aster-contact-form select{max-width:100%}
  .contact-info-value{overflow-wrap:anywhere;word-break:break-word}

  .site-footer-home .footer-inner{
    padding-left:18px;
    padding-right:18px;
    padding-bottom:max(13px,env(safe-area-inset-bottom));
  }
}

@media (max-width: 380px){
  .fullscreen-nav{padding-top:70px;padding-bottom:52px}
  .menu-link{font-size:clamp(22px,7.3vw,30px);letter-spacing:-.55px;padding:1px 0}
  .menu-close{font-size:34px;top:12px;right:12px}
  .brand-main{font-size:25px}
  .menu-toggle{width:30px;height:28px}
  .slide-kicker{font-size:10px}
  .hero-title{font-size:clamp(48px,13.2vw,62px);letter-spacing:-1.8px}
  .slide-copy p{font-size:14px;line-height:1.55}
  .details-btn{font-size:15px}
}

@media (max-height: 620px) and (max-width: 760px){
  .fullscreen-nav{padding-top:60px;padding-bottom:44px;gap:0}
  .menu-link{font-size:clamp(21px,6.9vw,30px);line-height:1.05;padding:1px 0}
}

@media (min-width: 761px) and (max-width: 1100px){
  .fullscreen-nav{width:calc(100% - 80px)}
  .menu-link{font-size:clamp(38px,4.5vw,49px)}
}
