:root{
  --cream:#f4efe7;
  --paper:#f8f4ed;
  --ink:#171512;
  --muted:#6f685f;
  --line:rgba(23,21,18,.16);
  --white:#fffdf8;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button{font:inherit}

.site-header{position:absolute;z-index:30;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:22px 20px}
.brand{display:block;width:122px}
.brand img{width:100%;filter:invert(1) brightness(2);opacity:.98}
.desktop-nav{display:none;align-items:center;gap:30px}
.nav-link{border:0;background:none;color:var(--white);padding:8px 0;font-size:11px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.menu-toggle{width:46px;height:46px;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:rgba(15,14,13,.50);display:grid;place-content:center;gap:6px;cursor:pointer}
.menu-toggle span{display:block;width:17px;height:1px;background:#fff}

.mobile-menu{position:fixed;inset:0;z-index:50;background:#151311;color:var(--white);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:30px;gap:22px;transform:translateY(-105%);transition:transform .35s ease}
.mobile-menu.open{transform:translateY(0)}
.mobile-menu a,.mobile-booking-btn{font-family:"Cormorant Garamond",serif;font-size:48px;line-height:1;background:none;border:0;color:inherit;padding:0;cursor:pointer;text-align:left}
.menu-close{position:absolute;top:20px;right:20px;border:0;background:none;color:white;font-size:42px;cursor:pointer}

.hero{position:relative;min-height:88svh;background:#101010;overflow:hidden}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 52%;image-rendering:auto}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.08) 42%,rgba(0,0,0,.62) 100%)}
.hero-content{position:relative;z-index:2;min-height:88svh;display:flex;flex-direction:column;justify-content:flex-end;padding:110px 22px 34px;color:var(--white);max-width:760px}
.hero-kicker{margin:0 0 12px;font-size:10px;letter-spacing:.26em;text-transform:uppercase}
.hero h1{margin:0;font-family:"Cormorant Garamond",serif;font-weight:400;font-size:clamp(48px,13vw,92px);line-height:.88;letter-spacing:-.035em}
.hero-sub{max-width:460px;margin:18px 0 0;font-size:14px;line-height:1.65;color:rgba(255,255,255,.88)}
.hero-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:26px;width:min(100%,310px)}

.site-button{height:52px;display:inline-flex;align-items:center;justify-content:center;padding:0 22px;border-radius:999px;border:1px solid rgba(255,255,255,.72);background:var(--white);color:var(--ink);font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;white-space:nowrap}
.site-button.ghost{background:transparent;color:var(--white)}
.site-button.dark{background:var(--ink);border-color:var(--ink);color:var(--white)}
.site-button.dark-outline{background:transparent;border-color:var(--ink);color:var(--ink)}

.intro{padding:54px 22px 28px}
.intro p{margin:0;max-width:770px;font-family:"Cormorant Garamond",serif;font-size:clamp(34px,8vw,60px);line-height:.98}
.portfolio-section{padding:24px 16px 70px}
.section-head{padding:0 6px 18px}
.section-head span,.about-copy span,.final-cta span{font-size:10px;letter-spacing:.24em;color:var(--muted);text-transform:uppercase}
.section-head h2,.about-copy h2,.final-cta h2{margin:7px 0 0;font-family:"Cormorant Garamond",serif;font-weight:400;font-size:clamp(38px,9vw,66px);line-height:.95}
.portfolio-grid{display:grid;grid-template-columns:1fr;gap:10px}
.portfolio-card{margin:0;overflow:hidden;background:#d8d3cb}
.portfolio-card img{width:100%;height:100%;object-fit:cover}
.portfolio-card.tall{height:72svh}
.portfolio-card:not(.tall):not(.wide){height:58svh}
.portfolio-card.wide{height:46svh}

.about-section{padding:74px 22px 82px;border-top:1px solid var(--line);display:grid;gap:36px}
.about-logo{display:flex;align-items:center;justify-content:center;min-height:210px;border:1px solid var(--line);background:var(--paper);padding:34px}
.about-logo img{width:min(100%,430px)}
.about-copy p{margin:18px 0 0;max-width:680px;color:var(--muted);font-size:14px;line-height:1.85}
.about-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:28px;max-width:330px}

.final-cta{padding:72px 22px 96px;border-top:1px solid var(--line)}
.final-cta .site-button{margin-top:28px;width:min(100%,260px)}

.booking-modal{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:18px;opacity:0;pointer-events:none;transition:opacity .2s ease}
.booking-modal.open{opacity:1;pointer-events:auto}
.booking-panel{position:relative;width:min(100%,520px);background:var(--paper);border-radius:22px;padding:30px 22px 24px}
.booking-close{position:absolute;top:14px;right:16px;border:0;background:none;font-size:32px;color:var(--ink);cursor:pointer}
.booking-label{margin:0 0 10px;font-size:10px;letter-spacing:.24em;color:var(--muted);text-transform:uppercase}
.booking-panel h3{margin:0;font-family:"Cormorant Garamond",serif;font-size:42px;font-weight:400;line-height:1}
.phone-number{display:block;margin:18px 0 12px;font-size:clamp(28px,8vw,42px);font-weight:500;letter-spacing:-.03em}
.booking-note{margin:0;color:var(--muted);font-size:14px;line-height:1.7}
.booking-links{display:grid;grid-template-columns:1fr;gap:10px;margin-top:24px}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:none}

@media(min-width:760px){
  .site-header{padding:28px 34px}.brand{width:148px}.menu-toggle{display:none}.desktop-nav{display:flex}
  .hero{min-height:92vh}.hero-content{min-height:92vh;padding:140px 42px 52px}.hero-actions{grid-template-columns:1fr 1fr;width:430px}
  .intro{padding:72px 42px 34px}.portfolio-section{padding:34px 34px 92px}
  .portfolio-grid{grid-template-columns:1.08fr .92fr;grid-auto-rows:34vw;gap:12px}.portfolio-card{height:auto!important}.portfolio-card.tall{grid-row:span 2}.portfolio-card.wide{grid-column:span 2}
  .about-section{grid-template-columns:.8fr 1.2fr;align-items:center;padding:92px 42px;gap:64px}.about-actions{grid-template-columns:1fr 1fr;max-width:440px}
  .final-cta{padding:86px 42px 110px}.booking-links{grid-template-columns:repeat(3,1fr)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.mobile-menu,.booking-modal{transition:none}}
