:root { --charcoal:#171b1e; --bronze:#ba8b4e; --bronze-light:#d3ac73; --paper:#f4f1eb; --ink:#202326; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
.page-shell { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.hero { min-height:920px; position:relative; display:flex; flex-direction:column; color:white; overflow:hidden; background:var(--charcoal) url('/assets/roca-home-hero.jpg') 62% center/cover no-repeat; }
.hero-image { object-fit:cover; object-position:62% center; z-index:0; }
.hero-shade { position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(8,12,15,.92) 0%,rgba(8,12,15,.7) 38%,rgba(8,12,15,.13) 70%),linear-gradient(0deg,rgba(8,12,15,.9) 0%,transparent 42%); }
.site-header { height:118px; z-index:3; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(255,255,255,.18); }
.brand-link { flex:0 0 255px; width:255px; line-height:0; }
.brand-logo { width:100%; max-width:100%; height:auto; display:block; object-fit:contain; }
.desktop-nav { display:flex; align-items:center; gap:34px; font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; }
.desktop-nav a { transition:color .2s ease; }
.desktop-nav a:hover { color:var(--bronze-light); }
.nav-contact { border:1px solid var(--bronze); padding:13px 19px; }
.mobile-nav { display:none; position:relative; }
.mobile-nav summary { list-style:none; width:42px; height:42px; display:grid; align-content:center; gap:5px; cursor:pointer; }
.mobile-nav summary::-webkit-details-marker { display:none; }
.mobile-nav summary span { width:25px; height:2px; background:var(--bronze-light); justify-self:end; }
.mobile-nav nav { position:absolute; right:0; top:50px; width:220px; padding:20px; background:rgba(18,22,25,.98); border:1px solid rgba(186,139,78,.4); display:grid; gap:18px; }
.hero-content { z-index:2; position:relative; padding-top:128px; }
.eyebrow { margin:0 0 20px; color:var(--bronze-light); font-size:.75rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; }
.bronze { color:#926631; }
.hero h1 { margin:0; max-width:790px; font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:clamp(3.5rem,6.2vw,6.5rem); line-height:.98; letter-spacing:-.045em; text-wrap:balance; }
.hero-copy { max-width:570px; margin:30px 0 36px; color:rgba(255,255,255,.8); font-size:1.12rem; line-height:1.75; }
.primary-button { display:inline-block; padding:16px 24px; border:1px solid var(--bronze-light); color:white; text-transform:uppercase; letter-spacing:.12em; font-size:.78rem; transition:background .2s,color .2s; }
.primary-button:hover { background:var(--bronze-light); color:#15191c; }
.values { z-index:2; position:relative; margin-top:auto; padding:36px 0 42px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.2); }
.values article { padding:0 36px; border-right:1px solid rgba(255,255,255,.18); }
.values article:first-child { padding-left:0; }
.values article:last-child { border:0; }
.values span { font-family:Georgia,serif; color:var(--bronze-light); }
.values h2 { margin:10px 0 8px; font-size:1rem; letter-spacing:.08em; text-transform:uppercase; }
.values p { margin:0; color:rgba(255,255,255,.65); font-size:.9rem; line-height:1.5; }
.section { padding:118px 0; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:start; }
.section-title { margin:0; max-width:620px; font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:clamp(2.8rem,5vw,5rem); line-height:1.04; letter-spacing:-.04em; }
.section-title.compact { max-width:760px; }
.prose { padding-top:34px; font-size:1.08rem; line-height:1.85; color:#575c60; }
.prose p { margin:0 0 24px; }
.approach { background:var(--paper); }
.buy-section { background:var(--charcoal); color:white; }
.criteria-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:74px; border-top:1px solid rgba(255,255,255,.18); }
.criteria-grid article { padding:36px 38px 10px 0; border-right:1px solid rgba(255,255,255,.18); }
.criteria-grid article+article { padding-left:38px; }
.criteria-grid article:last-child { border-right:0; }
.criteria-grid strong { color:var(--bronze-light); font-family:Georgia,serif; font-size:1rem; }
.criteria-grid h3 { margin:28px 0 14px; font-size:1.12rem; letter-spacing:.07em; text-transform:uppercase; }
.criteria-grid p { color:rgba(255,255,255,.63); line-height:1.7; }
.broker-note { margin:64px 0 0; padding-top:28px; border-top:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.72); }
.about { background:#e9e4db; }
.contact { padding:110px 0; background:#956b38; color:white; text-align:center; }
.contact-inner { max-width:800px; }
.contact .eyebrow { color:#f0d6b0; }
.contact h2 { margin:0; font-family:Georgia,serif; font-size:clamp(2.6rem,5vw,4.8rem); font-weight:400; line-height:1.05; letter-spacing:-.04em; }
.contact p { max-width:660px; margin:26px auto 34px; line-height:1.7; color:rgba(255,255,255,.82); }
.primary-button.light { border-color:white; }
.primary-button.light:hover { background:white; color:#7f572c; }
.email-link { display:block; width:fit-content; margin:25px auto 0; border-bottom:1px solid rgba(255,255,255,.5); }
.phone-actions { display:flex; justify-content:center; align-items:center; gap:12px; margin:26px auto 0; font-size:.93rem; letter-spacing:.04em; }
.phone-actions a { border-bottom:1px solid rgba(255,255,255,.5); }
.phone-link { font-weight:700; }
footer { background:#101416; color:rgba(255,255,255,.62); padding:36px 0; }
.footer-inner { display:grid; grid-template-columns:230px 1fr auto; gap:40px; align-items:center; font-size:.78rem; }
.footer-inner img { width:210px; height:auto; }
.footer-inner p { margin:5px 0; }
.footer-scripture { color:var(--bronze-light); font-family:Georgia,"Times New Roman",serif; font-size:1rem; }
.footer-scripture span { margin-left:6px; font-family:Arial,Helvetica,sans-serif; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.footer-inner a { border-bottom:1px solid #777; }
.legal-page { min-height:100vh; padding:80px 24px; background:var(--paper); }
.legal-shell { max-width:780px; margin:auto; }
.back-link { display:inline-block; margin-bottom:70px; color:#775126; }
.legal-page h1 { margin:0; font:400 clamp(3rem,7vw,5.2rem)/1 Georgia,serif; }
.legal-page h2 { margin:42px 0 12px; font:400 1.65rem Georgia,serif; }
.legal-page p { color:#555b5f; font-size:1rem; line-height:1.75; }
.legal-page a { color:#825c2e; text-decoration:underline; }
.legal-page .effective { color:#85817a; }
@media(max-width:800px){
  .page-shell{width:min(100% - 32px,680px)} .hero{min-height:850px}.hero-image{object-position:65% center}.hero-shade{background:linear-gradient(90deg,rgba(8,12,15,.92),rgba(8,12,15,.35)),linear-gradient(0deg,rgba(8,12,15,.96),transparent 55%)}
  .site-header{height:88px}.brand-link{flex-basis:188px;width:188px}.desktop-nav{display:none}.mobile-nav{display:block}.hero-content{padding-top:92px}.hero h1{font-size:clamp(3rem,13vw,4.5rem)}.hero-copy{max-width:90%;font-size:1rem}
  .values{grid-template-columns:1fr;padding:22px 0 25px}.values article,.values article:first-child{padding:13px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.15);display:grid;grid-template-columns:34px 1fr}.values article:last-child{border-bottom:0}.values h2,.values p{margin:0}.values p{grid-column:2;margin-top:4px}
  .section{padding:80px 0}.split{grid-template-columns:1fr;gap:20px}.prose{padding-top:12px}.criteria-grid{grid-template-columns:1fr;margin-top:48px}.criteria-grid article,.criteria-grid article+article{padding:28px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.criteria-grid article:last-child{border-bottom:0}.criteria-grid h3{margin-top:15px}
  .contact{padding:84px 0}.footer-inner{grid-template-columns:1fr;gap:16px;text-align:center}.footer-inner img{margin:auto}.footer-inner a{justify-self:center}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
