/* ===========================================================
   RAVENCRAFT — design tokens
   bg   : #0b0f0d  near-black, warm undertone (matches logo field)
   panel: #121712  raised panel / card
   line : #2a332b  hairline rule on dark
   cream: #ece4d1  primary text on dark
   dim  : #9fa89b  secondary text on dark
   pine : #23352a  deep pine green (brand secondary)
   brass: #ad9257  aged brass accent (brand primary accent)
   brass-dim: #7c6a40
   =========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400&family=Inter:wght@400;500;600&display=swap');

:root{
  --bg: #0b0f0d;
  --panel: #121712;
  --panel-2: #161d16;
  --line: #2a332b;
  --cream: #ece4d1;
  --dim: #9fa89b;
  --pine: #23352a;
  --brass: #ad9257;
  --brass-dim: #7c6a40;
  --brass-bright: #cdb27c;
  --max: 1120px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--cream);
  font-family:'Inter', -apple-system, sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background-image:
    radial-gradient(ellipse at 15% 0%, rgba(173,146,87,0.06), transparent 55%),
    radial-gradient(ellipse at 100% 40%, rgba(35,53,42,0.35), transparent 60%);
}

h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:500;
  line-height:1.12;
  margin:0 0 .5em;
  color:var(--cream);
  letter-spacing:.005em;
}
h1{font-weight:400;}
em{font-style:italic; color:var(--brass-bright);}

p{margin:0 0 1em; color:var(--dim); max-width:62ch;}
a{color:inherit; text-decoration:none;}

.eyebrow{
  font-family:'Inter',sans-serif;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brass);
  display:block;
  margin-bottom:.9em;
}

.wrap{max-width:var(--max); margin:0 auto; padding:0 28px; position:relative; z-index:1;}

/* ---- header / nav ---- */
header.site{
  position:sticky; top:0; z-index:50;
  background:rgba(11,15,13,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:var(--max); margin:0 auto; padding:14px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{display:flex; align-items:center; gap:12px;}
.brand img{height:44px; width:44px; object-fit:cover; border-radius:50%; border:1px solid var(--line);}
.brand-name{font-family:'Fraunces',serif; font-size:1.18rem; letter-spacing:.03em;}
nav.links{display:flex; gap:26px; align-items:center; flex-wrap:wrap;}
nav.links a{
  font-size:.82rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--dim); padding:6px 2px; border-bottom:1px solid transparent;
  transition:color .2s, border-color .2s;
}
nav.links a:hover, nav.links a:focus-visible{color:var(--brass-bright); border-color:var(--brass-dim);}
nav.links a.current{color:var(--brass-bright); border-color:var(--brass);}
.nav-cta{
  font-size:.78rem; letter-spacing:.05em; text-transform:uppercase;
  border:1px solid var(--brass-dim); padding:9px 16px; border-radius:2px;
  color:var(--brass-bright); white-space:nowrap;
  transition:background .2s, color .2s;
}
.nav-cta:hover{background:var(--brass); color:#0b0f0d;}

/* mobile nav toggle */
.nav-toggle{display:none; background:none; border:1px solid var(--line); color:var(--cream); padding:8px 12px; border-radius:2px; font-size:1rem; cursor:pointer;}
@media (max-width: 860px){
  nav.links{
    position:absolute; top:100%; left:0; right:0;
    background:var(--panel); border-bottom:1px solid var(--line);
    flex-direction:column; align-items:flex-start; gap:0;
    max-height:0; overflow:hidden; transition:max-height .25s ease;
  }
  nav.links.open{max-height:480px;}
  nav.links a, nav.links .nav-cta{width:100%; padding:14px 28px; border-bottom:1px solid var(--line); border-radius:0;}
  .nav-toggle{display:block;}
}

/* ---- section rhythm ---- */
section{padding:104px 0; position:relative;}
section.tight{padding:64px 0;}
section.alt{background:var(--panel); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
@media (max-width:700px){
  section{padding:64px 0;}
  section.tight{padding:44px 0;}
}
.divider{
  width:100%; max-width:220px; margin:0 auto; height:1px;
  background:linear-gradient(90deg, transparent, var(--brass-dim), transparent);
}
.divider.left{margin:0;}

/* ---- photography ---- */
.section-photo{
  margin:44px 0; border-radius:6px; overflow:hidden; aspect-ratio:16/8;
  border:1px solid var(--line); position:relative;
}
.section-photo img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.85) contrast(1.05);}
.section-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,15,13,0) 40%, rgba(11,15,13,.55) 100%);}
.photo-frame{border-radius:6px; overflow:hidden; border:1px solid var(--line); aspect-ratio:4/3;}
.photo-frame img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.85) contrast(1.05);}
@media (max-width:700px){
  .section-photo{aspect-ratio:4/3; margin:32px 0;}
}

/* ---- signature: raven watermark ---- */
.raven-mark{
  position:absolute; opacity:.05; pointer-events:none; z-index:0;
  width:520px; height:520px; background:url('assets/ravencraft-logo.jpg') center/cover;
  border-radius:50%; filter:grayscale(1) contrast(1.3);
  mix-blend-mode:screen;
}

/* ---- hero ---- */
.hero{
  position:relative; overflow:hidden; min-height:88vh;
  display:flex; align-items:flex-end;
  padding:0 0 80px;
}
.hero-bg{
  position:absolute; inset:0; z-index:0;
}
.hero-bg img{
  width:100%; height:100%; object-fit:cover; display:block;
  filter:saturate(.75) brightness(.55);
}
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,15,13,.35) 0%, rgba(11,15,13,.35) 40%, rgba(11,15,13,.96) 100%);
}
.hero .wrap{position:relative; z-index:1; max-width:760px;}
.hero .eyebrow-row{display:flex; align-items:center; gap:12px; margin-bottom:18px;}
.hero .eyebrow-row img{height:38px; width:38px; border-radius:50%; border:1px solid rgba(236,228,209,.3);}
.hero h1{font-size:clamp(2.3rem, 4.6vw, 3.4rem);}
.hero .tagline{
  font-family:'Fraunces',serif; font-style:italic; font-size:1rem;
  color:var(--brass-bright); opacity:.85; margin:10px 0 0;
}
.hero .lede{font-size:1.08rem; max-width:52ch; margin-top:18px;}
@media (max-width:700px){
  .hero{min-height:72vh; padding-bottom:56px;}
}

/* ---- buttons ---- */
.btn-row{display:flex; gap:16px; flex-wrap:wrap; margin-top:28px;}
.btn{
  display:inline-block; padding:14px 26px; font-size:.82rem;
  letter-spacing:.08em; text-transform:uppercase; border-radius:2px;
  transition:all .2s;
}
.btn-primary{background:var(--brass); color:#0b0f0d; font-weight:600;}
.btn-primary:hover{background:var(--brass-bright);}
.btn-ghost{border:1px solid var(--line); color:var(--cream);}
.btn-ghost:hover{border-color:var(--brass-dim); color:var(--brass-bright);}

/* ---- stat / trust strip ---- */
.stats{
  border-bottom:1px solid var(--line);
  display:grid; grid-template-columns:repeat(4,1fr);
}
.stats div{padding:30px 24px; text-align:center; border-right:1px solid var(--line);}
.stats div:last-child{border-right:none;}
.stats strong{display:block; font-family:'Fraunces',serif; font-size:1.9rem; color:var(--brass-bright); font-weight:500;}
.stats span{font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color:var(--dim);}
@media (max-width:700px){.stats{grid-template-columns:repeat(2,1fr);} .stats div{border-bottom:1px solid var(--line);}}

/* ---- cards / grid ---- */
.grid{display:grid; gap:28px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
@media (max-width:860px){.grid-3, .grid-2{grid-template-columns:1fr;}}

.card{
  background:var(--panel); border:1px solid var(--line); border-radius:4px;
  padding:32px 28px; position:relative;
}
.card h3{font-size:1.22rem; margin-bottom:.4em;}
.card p{margin-bottom:0; font-size:.95rem;}
.card .num{
  font-family:'Fraunces',serif; font-size:.78rem; color:var(--brass);
  letter-spacing:.1em; display:block; margin-bottom:14px;
}

/* ---- section headers ---- */
.section-head{max-width:640px; margin-bottom:52px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}

/* ---- two-col split ---- */
.split{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
@media (max-width:860px){.split{grid-template-columns:1fr;}}

/* ---- list-check ---- */
ul.check{list-style:none; padding:0; margin:0;}
ul.check li{
  padding-left:26px; position:relative; margin-bottom:12px; color:var(--dim);
  font-size:.96rem;
}
ul.check li::before{
  content:"—"; position:absolute; left:0; color:var(--brass);
}

/* ---- table ---- */
table.spec{width:100%; border-collapse:collapse; margin:24px 0;}
table.spec th, table.spec td{
  text-align:left; padding:12px 14px; border-bottom:1px solid var(--line); font-size:.92rem;
}
table.spec th{color:var(--brass); font-weight:500; letter-spacing:.04em; text-transform:uppercase; font-size:.72rem;}
table.spec td{color:var(--dim);}

/* ---- quote / callout ---- */
.callout{
  border-left:2px solid var(--brass-dim); padding:6px 0 6px 26px; margin:32px 0;
}
.callout p{font-family:'Fraunces',serif; font-style:italic; font-size:1.15rem; color:var(--cream);}

/* ---- CTA band ---- */
.cta-band{
  background:var(--pine); border-radius:6px; padding:56px 48px;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.cta-band h2{margin-bottom:6px;}
.cta-band p{color:#c9d2c3; margin-bottom:0;}
@media (max-width:700px){.cta-band{padding:40px 28px; flex-direction:column; align-items:flex-start;}}

/* ---- footer ---- */
footer.site{border-top:1px solid var(--line); padding:56px 0 32px; margin-top:40px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px;}
.foot-grid h4{font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--brass); margin-bottom:16px; font-family:'Inter',sans-serif; font-weight:600;}
.foot-grid a{display:block; color:var(--dim); font-size:.9rem; margin-bottom:10px;}
.foot-grid a:hover{color:var(--brass-bright);}
.foot-bottom{
  border-top:1px solid var(--line); margin-top:40px; padding-top:24px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:.78rem; color:var(--dim);
}
@media (max-width:800px){.foot-grid{grid-template-columns:1fr 1fr;}}

/* ---- page hero (interior pages) ---- */
.page-hero{padding:70px 0 50px; border-bottom:1px solid var(--line);}
.page-hero h1{font-size:clamp(2rem,4vw,2.9rem);}
.breadcrumb{font-size:.78rem; color:var(--dim); letter-spacing:.04em; margin-bottom:18px;}
.breadcrumb a{color:var(--dim);}
.breadcrumb a:hover{color:var(--brass-bright);}

/* ---- form ---- */
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:700px){.form-row{grid-template-columns:1fr;}}
label{display:block; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--brass); margin-bottom:8px;}
input, textarea, select{
  width:100%; background:var(--panel); border:1px solid var(--line); color:var(--cream);
  padding:13px 14px; font-family:'Inter',sans-serif; font-size:.95rem; border-radius:2px; margin-bottom:18px;
}
input:focus, textarea:focus, select:focus{outline:1px solid var(--brass-dim); border-color:var(--brass-dim);}
textarea{resize:vertical; min-height:130px;}

:focus-visible{outline:2px solid var(--brass-bright); outline-offset:2px;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
