
:root{
  --charcoal:#1a1a1a;
  --charcoal-2:#222220;
  --ink:#0e0e0d;
  --bone:#f5f1ea;
  --paper:#faf7f1;
  --oak:#b88a4a;
  --oak-deep:#8b6131;
  --brass:#c9a24a;
  --brass-bright:#e0bf6f;
  --line:rgba(255,255,255,.12);
  --line-dark:rgba(0,0,0,.12);
  --muted:#7d756a;
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Inter', system-ui, sans-serif;
  --maxw:1240px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;font-weight:400}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
a:hover{color:var(--oak-deep)}
.container{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--charcoal);color:#fff;padding:.75rem 1rem;z-index:1000}
.skip-link:focus{left:0}

h1,h2,h3,h4{font-family:var(--serif);font-weight:500;letter-spacing:-.01em;line-height:1.1;color:var(--charcoal)}
h1{font-size:clamp(2.5rem,6vw,5rem)}
h2{font-size:clamp(2rem,4vw,3.25rem)}
h3{font-size:1.5rem}
h4{font-size:1.15rem}
p{margin-bottom:1rem}
.eyebrow{font-family:var(--sans);font-size:.75rem;letter-spacing:.25em;text-transform:uppercase;color:var(--oak-deep);font-weight:500;margin-bottom:1rem;display:inline-block}
.muted{color:var(--muted)}
.small{font-size:.85rem}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,247,241,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-dark)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;gap:2rem}
.brand{display:flex;align-items:center;gap:.6rem;font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--charcoal)}
.brand-mark{height:40px;width:40px;object-fit:contain;display:block}
.site-footer .brand-mark{background:#fff;padding:4px;border-radius:4px}
.brand-name em{font-style:italic;color:var(--oak-deep);font-weight:500}
.nav{display:flex;align-items:center;gap:2rem}
.nav ul{display:flex;gap:1.75rem;list-style:none}
.nav a{font-size:.92rem;letter-spacing:.02em;color:#444;position:relative;padding:.25rem 0}
.nav a:hover,.nav a.current{color:var(--charcoal)}
.nav a.current::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--brass)}
.nav-toggle{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--charcoal)}

.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.95rem 1.75rem;border-radius:2px;font-weight:500;font-size:.92rem;letter-spacing:.04em;border:1px solid var(--charcoal);background:var(--charcoal);color:var(--paper);transition:all .25s ease;cursor:pointer}
.btn:hover{background:var(--ink);color:var(--brass-bright)}
.btn-ghost{background:transparent;color:var(--charcoal);border:1px solid var(--charcoal)}
.btn-ghost:hover{background:var(--charcoal);color:var(--paper)}
.btn-brass{background:var(--brass);border-color:var(--brass);color:var(--charcoal)}
.btn-brass:hover{background:var(--brass-bright);color:var(--charcoal)}
.btn-sm{padding:.55rem 1rem;font-size:.8rem}

/* Hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--charcoal)}
.hero-bg{position:absolute;inset:0;background:url('/assets/hero.jpg') center/cover;filter:brightness(.55) saturate(1.05)}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2) 0%,rgba(0,0,0,.7) 100%)}
.hero-inner{position:relative;padding:6rem 0 5rem;width:100%}
.hero h1{color:#fff;max-width:18ch;font-weight:500}
.hero .eyebrow{color:var(--brass-bright)}
.hero p.lede{font-size:1.2rem;max-width:50ch;color:rgba(255,255,255,.85);margin-top:1.5rem}
.hero-actions{margin-top:2.5rem;display:flex;gap:1rem;flex-wrap:wrap}
.hero .btn-ghost{color:#fff;border-color:rgba(255,255,255,.5)}
.hero .btn-ghost:hover{background:#fff;color:var(--charcoal)}

/* Sections */
section{padding:6rem 0}
.section-tight{padding:4rem 0}
.section-dark{background:var(--charcoal);color:var(--bone)}
.section-dark h1,.section-dark h2,.section-dark h3{color:#fff}
.section-dark .muted{color:rgba(245,241,234,.65)}
.section-bone{background:var(--bone)}

.section-head{max-width:60ch;margin-bottom:3.5rem}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}

/* Grids */
.grid{display:grid;gap:2rem}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

/* Cards */
.card{background:#fff;border:1px solid var(--line-dark);padding:2.5rem;transition:all .3s}
.card:hover{border-color:var(--oak);transform:translateY(-4px)}
.section-dark .card{background:var(--charcoal-2);border-color:var(--line)}
.card .num{font-family:var(--serif);font-size:2.5rem;color:var(--brass);font-style:italic;display:block;margin-bottom:1rem;line-height:1}

/* Service item */
.svc{padding:2.5rem 0;border-bottom:1px solid var(--line-dark);display:grid;grid-template-columns:80px 1fr auto;gap:2rem;align-items:start}
.svc:last-child{border-bottom:none}
.svc-num{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--oak-deep)}
.svc h3{margin-bottom:.5rem}
@media(max-width:700px){.svc{grid-template-columns:1fr;gap:.5rem}}

/* Project gallery */
.proj-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.5rem}
.proj{position:relative;overflow:hidden;background:var(--charcoal)}
.proj img{transition:transform .8s ease;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.proj:hover img{transform:scale(1.05)}
.proj-caption{position:absolute;left:0;right:0;bottom:0;padding:1.5rem;background:linear-gradient(180deg,transparent,rgba(0,0,0,.85));color:#fff}
.proj-caption h3{color:#fff;font-size:1.3rem;margin:0}
.proj-caption span{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-bright)}
.proj.span-6{grid-column:span 6}
.proj.span-4{grid-column:span 4}
.proj.span-8{grid-column:span 8}
.proj.span-12{grid-column:span 12}
@media(max-width:900px){.proj.span-6,.proj.span-4,.proj.span-8,.proj.span-12{grid-column:span 12}}

/* Pricing */
.price-card{background:#fff;border:1px solid var(--line-dark);padding:2.5rem;display:flex;flex-direction:column;height:100%}
.price-card .price{font-family:var(--serif);font-size:3.5rem;color:var(--charcoal);margin:1rem 0;line-height:1}
.price-card .price small{font-family:var(--sans);font-size:.85rem;color:var(--muted);font-weight:400;display:block;letter-spacing:.1em;text-transform:uppercase;margin-top:.25rem}
.price-card p{flex:1;color:#555}
.price-card.featured{background:var(--charcoal);color:var(--bone);border-color:var(--brass)}
.price-card.featured h3,.price-card.featured .price{color:#fff}
.price-card.featured p{color:rgba(245,241,234,.75)}

/* FAQ */
details{border-bottom:1px solid var(--line-dark);padding:1.5rem 0}
details summary{cursor:pointer;font-family:var(--serif);font-size:1.35rem;font-weight:500;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";color:var(--brass);font-size:1.5rem;transition:transform .3s}
details[open] summary::after{content:"−"}
details > p, details > div{margin-top:1rem;color:#555}

/* Form */
form{display:grid;gap:1.25rem;max-width:640px}
.field{display:flex;flex-direction:column;gap:.4rem}
label{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#444;font-weight:500}
input,textarea,select{font:inherit;padding:.9rem 1rem;border:1px solid #d4ccbe;background:#fff;border-radius:2px;color:var(--ink)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--oak);box-shadow:0 0 0 3px rgba(184,138,74,.15)}
textarea{min-height:140px;resize:vertical}

/* Footer */
.site-footer{background:var(--ink);color:rgba(245,241,234,.7);padding:5rem 0 2rem}
.site-footer .brand{color:#fff;margin-bottom:1rem}
.site-footer a{color:rgba(245,241,234,.75)}
.site-footer a:hover{color:var(--brass-bright)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:4rem;padding-bottom:3rem;border-bottom:1px solid var(--line)}
.foot-links h4{color:#fff;font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;font-family:var(--sans);font-weight:500;margin-bottom:1.5rem}
.foot-links ul{list-style:none;columns:2;column-gap:2rem}
.foot-links li{margin-bottom:.6rem;break-inside:avoid}
.foot-base{padding-top:2rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.85rem}
@media(max-width:700px){.foot-grid{grid-template-columns:1fr;gap:2rem}}

/* Cookie banner */
.cookie-banner{position:fixed;bottom:1rem;left:1rem;right:1rem;max-width:520px;margin:0 auto;background:var(--charcoal);color:var(--bone);padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1rem;z-index:100;border:1px solid var(--brass);box-shadow:0 10px 40px rgba(0,0,0,.3)}
.cookie-banner p{margin:0;font-size:.85rem;flex:1}
.cookie-banner a{color:var(--brass-bright);text-decoration:underline}

/* Legal pages */
.legal{max-width:780px;margin:0 auto;padding:5rem 1.5rem}
.legal h1{margin-bottom:.5rem}
.legal .updated{color:var(--muted);font-size:.9rem;margin-bottom:3rem;display:block}
.legal h2{font-size:1.75rem;margin-top:3rem;margin-bottom:1rem}
.legal h3{font-size:1.25rem;margin-top:2rem;margin-bottom:.75rem}
.legal p, .legal li{font-size:1.02rem;line-height:1.75;color:#2a2a28}
.legal ul,.legal ol{margin:1rem 0 1.5rem 1.5rem}
.legal li{margin-bottom:.5rem}

/* Misc */
.divider{height:1px;background:var(--line-dark);margin:5rem 0}
.image-feature{aspect-ratio:4/3;overflow:hidden}
.image-feature img{width:100%;height:100%;object-fit:cover}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}
@media(max-width:900px){.two-col{grid-template-columns:1fr;gap:2.5rem}}

.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:5rem}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:2.5rem}}

/* Mobile nav */
@media(max-width:880px){
  .nav-toggle{display:block}
  .nav{position:fixed;top:64px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:flex-start;padding:2rem 1.5rem;border-bottom:1px solid var(--line-dark);transform:translateY(-120%);transition:transform .3s ease;gap:1rem}
  .nav.open{transform:translateY(0)}
  .nav ul{flex-direction:column;gap:1rem;width:100%}
  .nav-cta{width:100%;justify-content:center}
}

.notice{background:var(--bone);border-left:3px solid var(--brass);padding:1.5rem 2rem;margin-top:3rem;font-size:.95rem}
