:root{--paper:#fff9f5;--ink:#301e1a;--muted:#654f48;--rose:#f3dcd5;--line:#e2c7ba;--accent:#6b3d32;--display:"Playfair Display",Georgia,serif;--body:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--body)}a{color:inherit;text-decoration:none}img{display:block;width:100%}h1,h2,p{margin:0}p{color:var(--muted)}:focus-visible{outline:3px solid #9e553d;outline-offset:4px}[hidden]{display:none!important}.wrap{width:min(1220px,calc(100% - 96px));margin-inline:auto}
.header{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:block;width:148px;flex:0 0 auto}.brand img{aspect-ratio:3/1;object-fit:contain}.header nav{display:flex;gap:36px;font-size:14px;font-weight:600}.button{background:var(--ink);color:#fff9f5;border:1px solid var(--ink);display:inline-flex;gap:13px;align-items:center;justify-content:center;padding:13px 20px;min-height:46px;font:700 13px/1.25 var(--body);border-radius:5px;cursor:pointer}.button:hover{background:var(--accent);border-color:var(--accent)}.small{min-height:39px;padding:9px 14px}.text-link{font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:5px}.text-link:hover,nav a:hover{color:var(--accent)}
.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:56px;padding:45px 0 55px}.hero-copy{padding-block:22px}.eyebrow{font-weight:700;font-size:11px;letter-spacing:.22em;color:var(--accent)}.eyebrow span{margin-right:8px}.hero h1{font:500 clamp(53px,7vw,101px)/.99 var(--display);letter-spacing:-.065em;margin:22px 0 24px}.hero h1 em,h2 em{font-weight:500;color:var(--accent)}.hero-copy>p:not(.eyebrow){max-width:350px}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:25px}.hero-art{position:relative;padding:0 0 25px 25px}.hero-photo{height:clamp(390px,43vw,575px);object-fit:cover;object-position:center 53%;border-radius:48% 48% 7px 7px;background:var(--rose)}.logo-card{position:absolute;bottom:0;left:0;width:41%;filter:drop-shadow(0 2px 2px #3a220849)}
.availability{background:var(--rose);border-block:1px solid var(--line)}.availability>.wrap{display:flex;gap:12px 18px;align-items:center;justify-content:center;flex-wrap:wrap;padding-block:15px;font-size:12px;letter-spacing:.1em}.availability b{font:600 16px var(--display);letter-spacing:0}.section{padding-block:76px;scroll-margin-top:12px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:22px;margin-bottom:26px}h2{font:500 clamp(38px,5vw,65px)/1.05 var(--display);letter-spacing:-.045em;margin-top:12px}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.gallery a{display:block;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fffdf9}.gallery img{aspect-ratio:4/5;object-fit:cover;background:var(--rose);transition:filter .2s}.gallery a:hover img{filter:brightness(.92)}.gallery span{display:flex;justify-content:space-between;gap:6px;padding:12px;font-weight:700;font-size:13px}.gallery b{color:var(--accent)}
.services{background:#f9eae3;border-block:1px solid var(--line)}.service-grid,.booking{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px;align-items:start}.service-grid p:not(.eyebrow),.booking p:not(.eyebrow){margin-top:19px;max-width:365px}.services ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.services li{border-bottom:1px solid var(--line);padding:13px 0;font:500 21px var(--display)}.services li::before{content:"✦";margin-right:10px;font:12px var(--body);color:var(--accent)}.place{font-weight:700}
form{background:#fffdfb;border:1px solid var(--line);border-radius:10px;padding:26px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}label{display:block;font-size:13px;font-weight:700}small{font-weight:400}input,select,textarea{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #bda098;border-radius:4px;color:var(--ink);background:#fff;font:inherit;font-size:16px;font-weight:400}textarea{resize:vertical}form>.button{margin-top:16px}#draft{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}#draft .actions{margin-top:12px}#feedback{font-size:13px}
footer{border-top:1px solid var(--line);background:var(--rose)}footer>.wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:27px}footer a:last-child{font-size:14px;font-weight:700}
@media(max-width:960px){.wrap{width:calc(100% - 56px)}.hero{gap:26px}.gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.wrap{width:calc(100% - 34px)}.header{height:70px}.header nav{display:none}.hero,.service-grid,.booking{grid-template-columns:1fr;gap:24px}.hero{padding:23px 0 31px}.hero-copy{padding:8px 0 0}.hero h1{font-size:clamp(52px,12vw,72px)}.hero-photo{height:410px;max-height:105vw}.section{padding-block:50px}.section-head{align-items:start;flex-direction:column;gap:10px}.gallery{gap:10px}.gallery span{font-size:12px}.availability>.wrap{column-gap:8px;font-size:10px}.availability b{font-size:13px}footer>.wrap{flex-wrap:wrap}form{padding:17px}}
@media(max-width:385px){.fields{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

@media (prefers-reduced-motion: no-preference) {
  .hero-copy > * {
    animation: hero-rise 650ms cubic-bezier(.2,.7,.25,1) both;
  }

  .hero-copy h1 { animation-delay: 80ms; }
  .hero-copy > p:not(.eyebrow) { animation-delay: 155ms; }
  .hero-copy > .actions { animation-delay: 230ms; }

  .hero-photo {
    animation: photo-arrive 900ms cubic-bezier(.2,.7,.25,1) both;
  }

  .logo-card {
    animation: hero-rise 650ms 260ms both, gold-glint 1050ms 900ms;
  }

  .button { transition: background-color 180ms, border-color 180ms, transform 180ms; }
  .button:hover { transform: translateY(-2px); }

  .is-revealing {
    animation: scroll-rise 700ms cubic-bezier(.22,.7,.26,1) var(--reveal-delay, 0ms) both;
  }

  .is-revealing:focus-within { animation: none; }
}

@keyframes hero-rise {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes photo-arrive {
  from { opacity: .2; transform: translateY(12px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes gold-glint {
  0%, 100% { filter: drop-shadow(0 2px 2px #3a220849); }
  45% { filter: brightness(1.25) drop-shadow(0 2px 5px #a46d3e65); }
}

@keyframes scroll-rise {
  from { opacity: .62; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Studio palette and finishing details */
:root {
  --paper: #fffaf6;
  --ink: #2d1b19;
  --accent: #744637;
  --line: #e5cec3;
  --gold: #9b6b3c;
}

body { background: radial-gradient(ellipse at 70% 0, #f8e7de 0, transparent 45rem), var(--paper); }
.hero { padding-block: clamp(32px, 5vw, 66px); }
.hero h1 { letter-spacing: -.06em; }
.hero-photo { box-shadow: 0 22px 48px #48261c1f; }
.eyebrow { color: #795336; }
.button { background: #38221f; border-color: #38221f; border-radius: 3px; }
.availability { background: linear-gradient(90deg, #f7e6df, #f0d8ce, #f7e6df); }
.availability .wrap > span:first-child { color: var(--gold); }
.section { padding-block: clamp(54px, 8vw, 105px); }
.gallery { gap: clamp(10px, 2vw, 23px); }
#work .section-head { align-items: baseline; }
#work h2 { margin-top: 0; }
.gallery a { border: 0; border-radius: 4px; background: transparent; }
.gallery img { border-radius: 4px; }
.gallery span { padding: 10px 2px 0; }
.gallery b { color: #895d34; }

.services {
  background: radial-gradient(ellipse at 90% 0, #52312b, transparent 65%), #34211f;
  color: #fff6ec;
  border-color: #684a3c;
}
.services h2 em, .services .eyebrow { color: #ecc59c; }
.services .service-grid p:not(.eyebrow) { color: #efdbd2; }
.services li { border-color: #a87a635e; padding-block: 16px; }
.services li::before { color: #ecc59c; }
.services .service-grid .service-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
  margin-top: 23px;
}
.service-price strong { color: #ecc59c; font: 500 25px var(--display); }
.service-price span { font-size: 13px; }


.booking > div { padding-top: 12px; }
.booking form {
  border-radius: 4px;
  border-top: 2px solid #b88c58;
  padding: clamp(17px, 3.2vw, 38px);
  box-shadow: 0 18px 54px #4b291416;
}

footer { background: #f5e0d6; }
footer > .wrap { padding-block: 35px; }

@media (prefers-reduced-motion: no-preference) and (hover: hover) {
  .gallery img { transition: filter 260ms, transform 500ms cubic-bezier(.22,.7,.26,1); }
  .gallery a:hover img { transform: scale(1.035); }
}
