:root { --ink:#242424; --paper:#f7f6f2; --gold:#bd9b59; --muted:#6f6d68; --line:#ddd9d1; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; line-height:1.65; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:"Playfair Display",Georgia,serif; font-weight:600; line-height:1.14; }

/* Global navigation and hero */
.nav { height:78px; padding:0 max(5vw,28px); display:flex; align-items:center; justify-content:space-between; background:#20211f; color:#fff; position:relative; z-index:4; }
.logo { font-family:"Playfair Display",serif; font-size:23px; letter-spacing:.2px; }
.logo strong { font-weight:600; }
.nav-links { display:flex; align-items:center; gap:30px; font-size:13px; text-transform:uppercase; letter-spacing:1px; }
.nav-links a { opacity:.82; transition:.2s; }
.nav-links a:hover { color:var(--gold); opacity:1; }
.menu-toggle { display:none; border:0; background:none; color:#fff; font:inherit; letter-spacing:1px; text-transform:uppercase; }
.hero { min-height:650px; color:#fff; display:flex; align-items:center; position:relative; background:linear-gradient(90deg,rgba(18,19,17,.88) 0%,rgba(18,19,17,.64) 44%,rgba(18,19,17,.18) 100%),url('https://duyn491kcolsw.cloudfront.net/files/2j/2jf/2jfd14.jpg?ph=95c2c9b6d1') center/cover; }
.hero-content { width:min(1160px,90vw); margin:auto; padding:80px 0 110px; }
.eyebrow { color:#d6b775; text-transform:uppercase; font-size:12px; letter-spacing:2.1px; font-weight:700; margin:0 0 18px; }
h1 { max-width:680px; font-size:clamp(46px,6vw,78px); margin-bottom:28px; }
.hero p { font-size:19px; max-width:510px; margin-bottom:37px; }
.phone { color:#fff; font-weight:700; white-space:nowrap; }
.button { display:inline-block; padding:14px 27px; background:var(--gold); color:#fff; font-size:13px; font-weight:700; letter-spacing:.8px; text-transform:uppercase; transition:background .2s,transform .2s; }
.button:hover { background:#a88443; transform:translateY(-2px); }

/* Content sections */
.section { padding:104px max(5vw,28px); }
.container { width:min(1160px,100%); margin:auto; }
.about { display:grid; grid-template-columns:.8fr 1.1fr 1.1fr; gap:55px; }
h2 { font-size:clamp(36px,4vw,52px); margin:0; }
.about p { margin:8px 0 0; color:#4d4b47; font-size:16px; }
.services { background:#242523; color:#fff; }
.section-label { color:var(--gold); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:2px; margin-bottom:10px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:53px; }
.section-heading p { max-width:420px; color:#c9c8c4; margin:0; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #51524e; border-left:1px solid #51524e; }
.service { min-height:250px; padding:37px 31px; border-right:1px solid #51524e; border-bottom:1px solid #51524e; }
.service-icon { width:43px; height:43px; margin-bottom:31px; color:var(--gold); }
.service-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
h3 { font-family:"Playfair Display",Georgia,serif; font-size:24px; line-height:1.2; margin-bottom:13px; }
.service p { color:#d0d0cd; font-size:14px; line-height:1.6; margin:0; }
.work { background:#eeeae2; }
.work .section-heading p { color:var(--muted); }
.gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.gallery img { display:block; width:100%; height:305px; object-fit:cover; filter:saturate(.86); transition:transform .35s,filter .35s; }
.gallery a { overflow:hidden; background:#222; }
.gallery a:hover img { transform:scale(1.04); filter:saturate(1); }
.prices { background:#fff; }
.price-layout { display:grid; grid-template-columns:1fr 1.6fr; gap:100px; }
.price-intro { color:var(--muted); margin-top:20px; max-width:300px; }
.price-list { border-top:1px solid var(--line); }
.price-row { display:flex; justify-content:space-between; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); font-size:17px; }
.price-row strong { font-weight:600; text-align:right; }
.note { font-size:13px; color:var(--muted); margin:25px 0 0; }
.contact { background:#b39353; color:#fff; text-align:center; padding:97px 28px; }
.contact .eyebrow { color:#f3e5c7; }
.contact h2 { font-size:clamp(38px,5vw,62px); max-width:660px; margin:0 auto 19px; }
.contact p { margin:0 auto 6px; font-size:17px; }
.contact-links { margin-top:27px; display:flex; gap:22px; justify-content:center; flex-wrap:wrap; font-weight:700; }
.contact-links a { border-bottom:1px solid rgba(255,255,255,.55); }
footer { background:#20211f; color:#bdbcb7; text-align:center; padding:27px; font-size:13px; }

/* Mobile phone: up to 599px */
@media (max-width:599px) {
  .nav { height:68px; padding:0 22px; }
  .logo { font-size:20px; }
  .nav-links { display:none; position:absolute; left:0; right:0; top:68px; background:#20211f; padding:18px 28px 25px; flex-direction:column; align-items:flex-start; gap:15px; }
  .nav-links.open { display:flex; }
  .menu-toggle { display:block; }
  .hero { min-height:590px; background-position:60% center; }
  .hero-content { width:100%; padding:80px 32px; }
  h1 { font-size:45px; }
  .hero p { font-size:17px; }
  .section { padding:73px 22px; }
  .about,.price-layout { grid-template-columns:1fr; gap:22px; }
  .section-heading { display:block; margin-bottom:37px; }
  .section-heading p { margin-top:15px; }
  .service-grid { grid-template-columns:1fr; }
  .service { min-height:auto; padding:28px; }
  .service-icon { margin-bottom:20px; }
  .gallery { grid-template-columns:repeat(2,1fr); gap:9px; }
  .gallery img { height:180px; }
  .price-row { font-size:15px; }
  .contact { padding:73px 22px; }
}

/* iPad / tablet: 600px to 1023px */
@media (min-width:600px) and (max-width:1023px) {
  .nav { padding:0 5vw; }
  .nav-links { gap:18px; font-size:11px; }
  .hero { min-height:610px; background-position:center; }
  .hero-content { width:90vw; }
  .about { grid-template-columns:1fr 1fr; gap:32px; }
  .about h2 { grid-column:1 / -1; }
  .section { padding:86px 5vw; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .gallery { grid-template-columns:repeat(2,1fr); }
  .gallery img { height:290px; }
  .price-layout { gap:52px; }
}

/* Notebook: 1024px to 1439px */
@media (min-width:1024px) and (max-width:1439px) {
  .nav { padding:0 5vw; }
  .hero { min-height:650px; }
  .hero-content,.container { width:min(90vw,1100px); }
  .section { padding:96px 5vw; }
  .about { gap:40px; }
  .price-layout { gap:72px; }
  .gallery img { height:270px; }
}

/* Monitor: 1440px and wider */
@media (min-width:1440px) {
  .nav { padding:0 calc((100vw - 1280px) / 2); }
  .hero { min-height:730px; }
  .hero-content,.container { width:1280px; }
  .section { padding:124px 0; }
  .gallery img { height:345px; }
}
