@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,600;1,600&display=swap');
:root{--black:#080808;--paper:#f5f3ef;--orange:#efa71a;--line:#cbc7bf;--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(--black);font-family:var(--sans);font-size:16px}img{display:block;width:100%}a{color:inherit;text-decoration:none}.nav{height:80px;padding:0 4vw;display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:2rem;background:var(--black);color:white;position:relative;z-index:10}.brand{width:150px;height:58px;overflow:hidden}.brand img{height:100%;object-fit:cover}.nav nav{display:flex;justify-content:center;gap:2rem}.nav nav a{font-size:.86rem;text-transform:uppercase;letter-spacing:.1em}.book{display:inline-flex;align-items:center;justify-content:center;background:var(--orange);color:var(--black);padding:.95rem 1.3rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:.8rem}.nav-book{background:white}.menu{display:none}.hero{min-height:calc(100vh - 80px);display:grid;grid-template-columns:55% 45%;background:var(--black);color:white;position:relative}.hero-image{grid-column:1;height:calc(100vh - 80px);overflow:hidden}.hero-image img{height:100%;object-fit:cover;object-position:center 25%}.hero-copy{align-self:center;padding:7vw}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:.75rem;font-weight:600}.hero h1{font:600 clamp(3.3rem,6.6vw,7.4rem)/.9 var(--serif);margin:1.2rem 0 1.6rem;letter-spacing:-.055em}.hero h1 em{color:var(--orange)}.lede{font-size:1.12rem;line-height:1.65;max-width:33rem;color:#ccc}.actions{display:flex;align-items:center;gap:1.5rem;margin-top:2rem}.text-link{font-weight:600;border-bottom:1px solid;padding-bottom:.35rem}.scroll{position:absolute;right:3vw;bottom:2rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#999;writing-mode:vertical-rl}.section-head{margin-bottom:3rem}.section-head h2{font:600 clamp(2.8rem,5vw,5.2rem)/.95 var(--serif);letter-spacing:-.045em;margin:.6rem 0}.section-head>p:last-child{max-width:45rem;line-height:1.7;color:#555}.work,.packages,.reviews,.policies{padding:8rem 5vw}.gallery{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:52vw 32vw;gap:1rem}.gallery figure{margin:0;position:relative;overflow:hidden;background:#ddd}.gallery .wide{grid-row:span 2}.gallery img{height:100%;object-fit:cover}.gallery .wide img{object-position:center top}.gallery figure:nth-child(2) img{object-position:center 50%}.gallery figcaption{position:absolute;bottom:0;left:0;background:var(--black);color:white;padding:.8rem 1rem;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.gallery-note{text-align:right;color:#777;font-style:italic}.packages{background:var(--black);color:white}.packages .section-head>p:last-child{color:#aaa}.package-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #444;border-left:1px solid #444}.package-grid article{padding:2rem;min-height:310px;border-right:1px solid #444;border-bottom:1px solid #444;position:relative}.package-grid article>span{color:#777}.package-grid h3{font:600 2rem var(--serif);margin:4rem 0 .8rem}.package-grid .price{font:600 2.8rem var(--serif);color:var(--orange);margin:.3rem 0}.package-grid article>p:last-child{color:#bbb;line-height:1.6}.package-grid .featured{background:#17130b}.tag{position:absolute;top:1.5rem;right:1.5rem;color:var(--orange)!important;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}.extras{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:2.5rem;color:#aaa}.extras strong{color:white}.reviews{background:#ebe7df}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.review-grid blockquote{margin:0;background:white;padding:2.5rem;min-height:300px;display:flex;flex-direction:column}.review-grid blockquote>p:nth-child(2){font:1.4rem/1.5 var(--serif);flex:1}.stars{color:#e9a514;letter-spacing:.13em}.review-grid footer{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:#666}.policy-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.policy-grid p{margin:0;padding:2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);line-height:1.65}.policy-grid strong{font:600 1.5rem var(--serif)}.contact{padding:8rem 7vw;background:var(--orange);color:var(--black)}.contact h2{font:600 clamp(3rem,7vw,7.5rem)/.94 var(--serif);max-width:1000px;margin:1rem 0 2rem;letter-spacing:-.05em}.contact .book{background:var(--black);color:white}.light{border-color:var(--black)}.footer{background:var(--black);color:#999;display:grid;grid-template-columns:160px 1fr auto;align-items:center;gap:2rem;padding:2.5rem 5vw;font-size:.8rem}.footer img{height:60px;object-fit:cover}.footer p:last-child{text-align:right}
@media(max-width:900px){.nav{grid-template-columns:1fr auto auto}.nav nav{display:none;position:absolute;top:80px;left:0;right:0;background:#111;padding:2rem;flex-direction:column}.nav nav.open{display:flex}.menu{display:block;background:none;border:0;color:white;text-transform:uppercase;letter-spacing:.1em}.hero{grid-template-columns:1fr}.hero-image{grid-column:1;height:62vh;opacity:.82}.hero-copy{position:absolute;bottom:3rem;padding:6vw;text-shadow:0 2px 15px #000}.hero h1{font-size:clamp(3.4rem,13vw,6rem)}.lede{color:white;max-width:28rem}.scroll{display:none}.package-grid{grid-template-columns:repeat(2,1fr)}.review-grid{grid-template-columns:1fr}.extras{grid-template-columns:1fr}.nav-book{display:none}}
@media(max-width:600px){.nav{height:68px;padding:0 1rem}.brand{height:48px;width:130px}.nav nav{top:68px}.hero{min-height:calc(100svh - 68px)}.hero-image{height:calc(100svh - 68px)}.hero-copy{bottom:2.5rem}.hero h1{margin:.8rem 0}.hero .lede{font-size:1rem}.hero .actions{align-items:flex-start;flex-direction:column;gap:1rem}.work,.packages,.reviews,.policies{padding:5rem 1rem}.gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.gallery figure{min-width:84vw;height:115vw;scroll-snap-align:start}.gallery .wide{height:115vw}.package-grid{grid-template-columns:1fr}.package-grid article{min-height:260px}.policy-grid{grid-template-columns:1fr}.contact{padding:5rem 1rem}.contact .actions{align-items:flex-start;flex-direction:column}.footer{grid-template-columns:1fr;text-align:left}.footer p:last-child{text-align:left}}
@media(min-width:601px){.gallery{grid-template-columns:1.15fr 1fr 1fr;grid-template-rows:none;grid-auto-rows:27vw}.gallery .wide{grid-row:span 2}}
.second-gallery-head{margin-top:8rem}.lifestyle-gallery{margin-bottom:0}.lifestyle-gallery .wide img{object-position:center}
.price-list{border-top:1px solid #444}.price-list article{display:grid;grid-template-columns:minmax(220px,.8fr) 1.2fr auto;align-items:center;gap:2rem;min-height:130px;padding:1.4rem .25rem;border-bottom:1px solid #444;transition:background .2s ease,padding .2s ease}.price-list article:hover{background:#121212;padding-left:1rem;padding-right:1rem}.package-name{display:flex;align-items:baseline;gap:1.4rem}.package-name span{color:#777;font-size:.75rem}.package-name h3{font:600 clamp(1.8rem,3vw,3rem) var(--serif);margin:0}.package-details{color:#aaa;line-height:1.55}.price-list .price{font:600 clamp(2rem,3.4vw,3.5rem) var(--serif);color:var(--orange);margin:0;text-align:right;white-space:nowrap}.price-list .price small{display:block;font:500 .75rem var(--sans);color:#aaa;letter-spacing:.08em;text-transform:uppercase;margin-top:.35rem}.studio-row{background:#0d0d0d}.footer>img{width:160px;height:auto;max-height:none;object-fit:contain;object-position:left center}
@media(max-width:700px){.price-list article{grid-template-columns:1fr auto;gap:.6rem 1rem;padding:1.4rem 0}.package-name{grid-column:1}.package-details{grid-column:1;grid-row:2;margin:0}.price-list .price{grid-column:2;grid-row:1/3;font-size:2.1rem}.package-name h3{font-size:1.7rem}.price-list article:hover{padding-left:.5rem;padding-right:.5rem}.footer>img{width:145px}}
.footer-logo{display:block;width:160px}.footer-logo img{width:100%;height:auto;object-fit:contain}.footer-info>p{margin:0 0 1rem}.social-links{display:flex;flex-wrap:wrap;gap:.65rem}.social-link{display:inline-flex;align-items:center;gap:.55rem;border:1px solid #383838;border-radius:999px;padding:.55rem .8rem;color:#bbb;transition:color .2s,border-color .2s,background .2s}.social-link:hover,.social-link:focus-visible{color:white;border-color:#777;background:#151515}.social-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}.social-link svg text{fill:currentColor;stroke:none;font:700 15px Arial,sans-serif}.social-link .icon-dot{fill:currentColor;stroke:none}.social-link span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:600px){.footer-logo{width:145px}.social-links{gap:.5rem}.social-link{padding:.55rem}.social-link span{font-size:.68rem}}

/* Launch-ready portfolio and booking refinements */
.portfolio-filters{display:flex;gap:.65rem;flex-wrap:wrap;margin:-1rem 0 2.2rem}
.filter{border:1px solid var(--black);border-radius:999px;background:transparent;color:var(--black);padding:.7rem 1.1rem;font:600 .75rem var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.filter.active,.filter:hover,.filter:focus-visible{background:var(--black);color:#fff}
.gallery figure.hidden{display:none}
.image-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in;text-align:left}
.gallery img{transition:transform .45s ease}
.gallery figure:hover img{transform:scale(1.025)}
.about{display:grid;grid-template-columns:1.05fr .95fr;gap:7vw;padding:8rem 7vw;background:var(--orange);align-items:end}
.about h2{font:600 clamp(3.1rem,6vw,6.5rem)/.92 var(--serif);letter-spacing:-.05em;margin:.7rem 0 0}
.about-copy{font-size:1.18rem;line-height:1.7;max-width:40rem}
.about-copy p:last-child{margin-bottom:0}
.process{padding:8rem 5vw;background:#ebe7df}
.process-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.process-list li{padding:2.2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.process-list span{font-size:.75rem;color:#777}
.process-list h3{font:600 1.7rem var(--serif);margin:2.5rem 0 .8rem}
.process-list p{color:#555;line-height:1.65}
.package-note{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #333;color:#aaa;font-size:.9rem}
.policy-grid{grid-template-columns:repeat(3,1fr)}
.mobile-book{display:none}
.lightbox{max-width:min(92vw,1100px);max-height:92vh;padding:0;border:0;background:#090909;color:#fff;box-shadow:0 25px 80px #0009}
.lightbox::backdrop{background:#000d}
.lightbox img{max-width:92vw;max-height:82vh;width:auto;height:auto;object-fit:contain}
.lightbox p{margin:0;padding:1rem 1.2rem;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
.lightbox-close{position:absolute;z-index:2;top:.7rem;right:.7rem;width:42px;height:42px;border:1px solid #ffffff55;border-radius:50%;background:#000b;color:#fff;font-size:1.7rem;cursor:pointer}
@media(max-width:900px){.about{grid-template-columns:1fr}.process-list{grid-template-columns:1fr}.policy-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){body{padding-bottom:58px}.process{padding:5rem 1rem}.about{padding:5rem 1rem}.policy-grid{grid-template-columns:1fr}.mobile-book{display:flex;position:fixed;z-index:20;left:0;right:0;bottom:0;height:58px;align-items:center;justify-content:center;background:var(--orange);color:var(--black);font-weight:700;text-transform:uppercase;letter-spacing:.1em;box-shadow:0 -6px 20px #0004}}

/* Natural-ratio portfolio and full-pose desktop hero */
.nav{position:sticky;top:0}
.portfolio-gallery{display:block;columns:3;column-gap:1rem}
.portfolio-gallery figure,.portfolio-gallery .wide{display:inline-block;width:100%;height:auto;min-height:0;margin:0 0 1rem;break-inside:avoid;background:#111;vertical-align:top}
.portfolio-gallery .image-open{height:auto}
.portfolio-gallery img,.portfolio-gallery .wide img{height:auto;object-fit:contain;object-position:center;filter:saturate(.88) contrast(1.035)}
.portfolio-gallery figure:hover img{filter:saturate(.98) contrast(1.02)}
@media(min-width:901px){.hero{grid-template-columns:44% 56%}.hero-image{background:#f2a719}.hero-image img{object-fit:contain;object-position:center}}
@media(min-width:601px) and (max-width:900px){.portfolio-gallery{columns:2}}
@media(max-width:600px){.portfolio-gallery{display:block;columns:1}.portfolio-gallery figure,.portfolio-gallery .wide{min-width:0;height:auto}.portfolio-gallery img,.portfolio-gallery .wide img{height:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery img{transition:none}}

/* Preserve the original hero photograph without cropping the full pose or adding side bars. */
@media(min-width:901px){
  .hero{grid-template-columns:min(48vw,680px,calc(66.667vh - 53.333px)) minmax(0,1fr)}
  .hero-image{background:none}
  .hero-image img{width:100%;height:100%;object-fit:cover;object-position:center center}
}

/* Keep each photography style visually distinct instead of mixing every shoot together. */
.portfolio-gallery{columns:2}
.faq{padding:8rem 5vw;background:#fff}
.faq-list{border-top:1px solid var(--line);max-width:1000px}
.faq-list details{border-bottom:1px solid var(--line);padding:0}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem 0;cursor:pointer;list-style:none;font:600 clamp(1.25rem,2vw,1.65rem) var(--serif)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:'+';font:400 1.8rem var(--sans)}
.faq-list details[open] summary::after{content:'−'}
.faq-list p{max-width:680px;margin:0;padding:0 0 1.5rem;color:#555;line-height:1.7}
@media(max-width:600px){.portfolio-gallery{columns:1}.faq{padding:5rem 1rem}}
.policy-grid p:first-child{grid-column:span 2}
@media(max-width:600px){.policy-grid p:first-child{grid-column:auto}}

/* Portfolio clarity and booking flow */
.skip-link{position:fixed;z-index:100;top:.75rem;left:.75rem;padding:.75rem 1rem;background:#fff;color:#000;transform:translateY(-150%);transition:transform .2s}
.skip-link:focus{transform:translateY(0)}
.portfolio-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:-1rem 0 2.2rem}
.portfolio-toolbar .portfolio-filters{margin:0}
.filter span{display:inline-flex;align-items:center;justify-content:center;min-width:1.45rem;height:1.45rem;margin-left:.35rem;border-radius:999px;background:#000;color:#fff;font-size:.65rem}
.filter.active span{background:#fff;color:#000}
.portfolio-status{margin:0;color:#666;font-size:.9rem}
.portfolio-gallery{max-width:1280px;margin-inline:auto;column-gap:1.25rem}
.portfolio-gallery figure,.portfolio-gallery .wide{margin-bottom:1.25rem;border-radius:2px}
.portfolio-gallery figcaption{opacity:0;transform:translateY(.4rem);transition:opacity .2s ease,transform .2s ease}
.portfolio-gallery figure:hover figcaption,.portfolio-gallery .image-open:focus-visible figcaption{opacity:1;transform:none}
.portfolio-cta{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;max-width:1280px;margin:2rem auto 0;padding:1.5rem 0;border-top:1px solid var(--line)}
.portfolio-cta p{margin:0;font:600 clamp(1.4rem,2.4vw,2rem) var(--serif)}
.portfolio-book{min-width:220px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
@media(max-width:700px){.portfolio-toolbar{align-items:flex-start;flex-direction:column}.portfolio-status{font-size:.82rem}.portfolio-gallery figcaption{opacity:1;transform:none}.portfolio-cta{align-items:flex-start;flex-direction:column}.portfolio-book{width:100%}}
