:root{
  --navy:#14213D;
  --navy-2:#1D2E52;
  --navy-line:rgba(250,247,240,0.18);
  --ivory:#FAF7F0;
  --ivory-2:#F1EBDD;
  --ink:#14213D;
  --ink-dim:#525B6E;
  --on-navy:#FAF7F0;
  --on-navy-dim:rgba(250,247,240,0.74);
  --gold:#C9A24A;
  --gold-light:#E2C27A;
  --gold-deep:#8A6A1F;
  --line:rgba(20,33,61,0.13);
  --line-strong:rgba(20,33,61,0.26);
  --font-display:'Cormorant Garamond', serif;
  --font-body:Georgia, 'Times New Roman', serif;
  --max:1080px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16.5px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
img{max-width:100%;display:block;}

:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

.wrap{max-width:var(--max); margin:0 auto; padding:0 24px;}
@media (max-width:640px){ .wrap{padding:0 16px;} }

/* ---------- nav ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(250,247,240,0.95);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
nav.wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:12px; padding-bottom:12px;
  flex-wrap:wrap; gap:10px 24px;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.brand img{height:48px; width:auto;}
.brand span{
  font-family:var(--font-display); font-weight:600; font-size:23px; color:var(--ink);
  letter-spacing:.01em;
}
.navlinks{
  display:flex; gap:24px; align-items:center; flex-wrap:wrap;
  font-size:14px;
  font-variant:small-caps;
  letter-spacing:.05em;
}
.navlinks a{text-decoration:none; color:var(--ink-dim); border-bottom:1px solid transparent; padding-bottom:2px; transition:color .15s, border-color .15s;}
.navlinks a:hover, .navlinks a.active{color:var(--ink); border-color:var(--gold);}
.navlinks a.nav-cta{
  color:var(--navy); border:1px solid var(--gold); padding:6px 14px; background:transparent;
}
.navlinks a.nav-cta:hover{background:var(--gold); border-color:var(--gold);}
@media (max-width:640px){
  .navlinks{gap:16px; font-size:13.5px;}
  .brand img{height:42px;}
  .brand span{font-size:19px;}
}

/* ---------- ornamental divider ---------- */
.rule-divider{
  display:flex; align-items:center; gap:16px;
  margin:0 0 36px 0;
}
.rule-divider .line{flex:1 1 auto; height:1px; background:var(--line-strong);}
.rule-divider .ornament{flex:0 0 auto; color:var(--gold); font-size:19px; line-height:1; transform:translateY(-1px);}
.rule-divider .label{
  font-variant:small-caps; letter-spacing:.1em; font-size:14px;
  color:var(--gold-deep); white-space:nowrap;
}

section{padding:90px 0;}
@media (max-width:640px){ section{padding:60px 0;} }

/* ---------- hero (navy band) ---------- */
.hero{
  background:
    radial-gradient(ellipse at 85% 20%, rgba(201,162,74,0.14), transparent 55%),
    linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
  color:var(--on-navy);
  padding-top:84px; padding-bottom:92px;
  border-bottom:3px solid var(--gold);
}
.hero-grid{display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,0.75fr); gap:48px; align-items:center;}
.hero-crest{width:100%; max-width:260px; justify-self:end;}
@media (max-width:820px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-crest{display:none;}
}
.eyebrow{
  font-size:14px; font-variant:small-caps; letter-spacing:.14em;
  color:var(--gold-light);
  margin-bottom:18px;
}
h1{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(38px, 6vw, 64px);
  line-height:1.06;
  letter-spacing:-0.005em;
  margin:0 0 24px 0;
  max-width:16ch;
  color:var(--on-navy);
}
h1 em{font-style:italic; font-weight:600; color:var(--gold-light);}
.lede{font-size:19px; color:var(--on-navy-dim); max-width:56ch; margin:0 0 38px 0;}

.hero-lower{display:flex; gap:40px; flex-wrap:wrap; align-items:center;}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; align-items:center;}

/* compact page hero for interior pages */
.hero.page{padding-top:64px; padding-bottom:60px;}
.hero.page h1{max-width:20ch;}

.titleblock{
  border:1px solid var(--navy-line);
  background:rgba(250,247,240,0.05);
  padding:18px 22px;
  display:grid;
  grid-template-columns:auto 1fr;
  row-gap:8px; column-gap:22px;
  font-size:14px;
  margin:0;
}
.titleblock dt{color:var(--gold-light); font-variant:small-caps; letter-spacing:.06em; margin:0; font-weight:600;}
.titleblock dd{margin:0; color:var(--on-navy);}
.titleblock a{text-decoration:none; border-bottom:1px solid var(--navy-line);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-body); font-size:15px; letter-spacing:.03em; font-variant:small-caps;
  padding:14px 28px;
  background:var(--gold);
  color:var(--navy);
  text-decoration:none;
  border:1px solid var(--gold);
  font-weight:700;
  transition:background .15s, color .15s, border-color .15s, transform .1s;
  cursor:pointer;
}
.btn:hover{background:var(--gold-light); border-color:var(--gold-light);}
.btn:active{transform:translateY(1px);}
.btn.ghost{background:transparent; color:var(--on-navy); border-color:var(--navy-line);}
.btn.ghost:hover{border-color:var(--gold-light); color:var(--gold-light);}
.btn.dark{background:var(--navy); color:var(--on-navy); border-color:var(--navy);}
.btn.dark:hover{background:var(--navy-2); border-color:var(--navy-2);}

.textlink{
  color:var(--gold-deep); text-decoration:none; border-bottom:1px solid currentColor;
  font-variant:small-caps; letter-spacing:.03em;
}
.textlink:hover{color:var(--ink);}

/* ---------- proof strip ---------- */
.proof{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
  margin-top:-44px; position:relative; z-index:2;
  box-shadow:0 14px 40px rgba(20,33,61,0.10);
}
.proof div{
  background:var(--ivory); padding:24px 22px;
  font-size:13.5px; letter-spacing:.02em; color:var(--ink-dim);
  font-variant:small-caps;
}
.proof div span{display:block; color:var(--navy); font-family:var(--font-display); font-style:italic; font-size:24px; font-variant:normal; letter-spacing:0; margin-bottom:4px; font-weight:600;}
@media (max-width:760px){ .proof{grid-template-columns:repeat(2,1fr);} }

/* ---------- section headings ---------- */
.section-head{margin-bottom:44px;}
.section-head h2{max-width:24ch;}
h2{
  font-family:var(--font-display); font-weight:600; font-size:clamp(28px,4vw,42px);
  line-height:1.15; margin:0 0 14px 0; letter-spacing:-0.005em; color:var(--ink);
}
.section-head p{color:var(--ink-dim); font-size:17px; margin:0; max-width:58ch;}

/* ---------- service cards ---------- */
.services-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:680px){ .services-grid{grid-template-columns:1fr;} }
.service-card{background:var(--ivory); padding:34px clamp(22px,3vw,38px); border-top:2px solid var(--gold);}
.service-card .num{font-family:var(--font-display); font-style:italic; color:var(--gold); font-size:20px; line-height:1; margin-bottom:10px;}
.service-card h3{font-family:var(--font-display); font-size:24px; font-weight:600; margin:0 0 8px 0; color:var(--ink);}
.service-card .meta{font-size:13px; color:var(--gold-deep); font-variant:small-caps; letter-spacing:.06em; margin-bottom:12px;}
.service-card p{margin:0; color:var(--ink-dim);}
.service-card .textlink{display:inline-block; margin-top:14px; font-size:14.5px;}

/* ---------- tinted band ---------- */
.band{background:var(--ivory-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

/* ---------- financing teaser ---------- */
.feature{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:48px; align-items:center;}
@media (max-width:760px){ .feature{grid-template-columns:1fr; gap:28px;} }
.feature p{color:var(--ink-dim); margin:0 0 26px 0; max-width:54ch;}
.checklist{list-style:none; margin:0; padding:0; display:grid; gap:1px; background:var(--line); border:1px solid var(--line);}
.checklist li{background:var(--ivory); padding:14px 20px 14px 46px; position:relative; color:var(--ink);}
.checklist li::before{
  content:""; position:absolute; left:20px; top:50%; width:10px; height:10px; margin-top:-5px;
  background:var(--gold); transform:rotate(45deg);
}
.checklist li small{display:block; color:var(--ink-dim); font-size:14px;}

/* ---------- who / list ---------- */
.who ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line);}
.who li{
  background:var(--ivory); padding:20px 26px 20px 24px;
  border-left:3px solid var(--gold);
  font-size:16.5px; color:var(--ink-dim);
}
.who li strong{color:var(--ink); font-weight:700;}

/* ---------- values quote ---------- */
.values{background:var(--navy); color:var(--on-navy); text-align:center;}
.values blockquote{margin:0 auto; max-width:30ch; font-family:var(--font-display); font-size:clamp(26px,3.6vw,38px); line-height:1.25; font-weight:500;}
.values blockquote em{color:var(--gold-light);}
.values .attrib{margin-top:22px; font-variant:small-caps; letter-spacing:.12em; font-size:13.5px; color:var(--on-navy-dim);}
.values .ornament{color:var(--gold); font-size:22px; display:block; margin-bottom:18px;}

/* ---------- closing (logo anchor) ---------- */
.closing{display:flex; align-items:center; gap:48px; flex-wrap:wrap;}
.closing img{width:110px; flex:0 0 auto;}
.closing-copy{flex:1 1 320px;}
.closing-copy h2{margin-bottom:14px;}
.closing-copy p{color:var(--ink-dim); max-width:52ch; margin:0;}

/* ---------- panels / forms ---------- */
.panel{
  border:1px solid var(--line-strong); background:var(--ivory-2); padding:clamp(20px,4vw,44px);
  margin-top:48px;
}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
@media (max-width:640px){ .form-grid{grid-template-columns:1fr;} }
.field{display:flex; flex-direction:column; gap:8px;}
.field.full{grid-column:1 / -1;}
label{font-size:13.5px; font-variant:small-caps; letter-spacing:.04em; color:var(--ink-dim);}
input, textarea, select{
  background:var(--ivory); border:1px solid var(--line-strong); color:var(--ink);
  font-family:var(--font-body); font-size:16px; padding:12px 14px;
  resize:vertical; border-radius:0;
}
input:focus, textarea:focus, select:focus{border-color:var(--gold); outline:none; box-shadow:0 0 0 3px rgba(201,162,74,0.25);}
.panel .btn{margin-top:22px;}
.hp-field{position:absolute; left:-9999px;}
.note{font-size:13.5px; color:var(--ink-dim); margin-top:14px;}

/* ---------- financing page ---------- */
.two-col{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px;}
@media (max-width:760px){ .two-col{grid-template-columns:1fr;} }
.two-col h3{font-family:var(--font-display); font-size:25px; font-weight:600; margin:0 0 14px 0;}
.quote-frame{background:#fff; border:1px solid var(--line-strong); padding:clamp(8px,2vw,20px); min-height:400px;}
.quote-fallback{margin-top:16px; font-size:14.5px; color:var(--ink-dim);}

/* ---------- article list (Articles page) ---------- */
.article-row{
  display:grid; grid-template-columns:140px 1fr; gap:28px;
  padding:32px 0;
  border-bottom:1px solid var(--line);
}
@media (max-width:640px){ .article-row{grid-template-columns:1fr; gap:10px;} }
.article-row .tag{font-size:12.5px; font-variant:small-caps; letter-spacing:.06em; color:var(--gold-deep); padding-top:6px;}
.article-row h3{font-family:var(--font-display); font-size:25px; font-weight:600; margin:0 0 8px 0; color:var(--ink);}
.article-row p{margin:0 0 10px 0; color:var(--ink-dim); max-width:60ch;}
.article-row a.readmore{font-size:14px; font-variant:small-caps; color:var(--gold-deep); text-decoration:none; border-bottom:1px solid currentColor;}

/* ---------- deal cards (Featured Deals page) ---------- */
.deals-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:680px){ .deals-grid{grid-template-columns:1fr;} }
.deal-card{background:var(--ivory); padding:28px 26px;}
.deal-card.retail{border-top:3px solid var(--gold);}
.deal-card.wholesale{border-top:3px solid var(--navy);}
.deal-card .badge{
  display:inline-block; font-size:12px; font-variant:small-caps; letter-spacing:.08em;
  padding:4px 10px; margin-bottom:14px; border:1px solid currentColor;
}
.deal-card.retail .badge{color:var(--gold-deep);}
.deal-card.wholesale .badge{color:var(--navy);}
.deal-card h3{font-family:var(--font-display); font-size:22px; font-weight:600; margin:0 0 6px 0; color:var(--ink);}
.deal-card .price{font-family:var(--font-display); font-style:italic; font-size:21px; color:var(--navy); margin-bottom:10px; font-weight:600;}
.deal-card .specs{font-size:13px; color:var(--ink-dim); font-variant:small-caps; letter-spacing:.03em; margin-bottom:12px;}
.deal-card p{color:var(--ink-dim); margin:0 0 16px 0; font-size:15px;}
.deal-card a.inquire{font-size:14px; font-variant:small-caps; color:var(--gold-deep); text-decoration:none; border-bottom:1px solid currentColor;}

/* ---------- footer ---------- */
footer{background:var(--navy); color:var(--on-navy-dim); padding:56px 0 36px; border-top:3px solid var(--gold);}
.foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:36px; font-size:14.5px;}
@media (max-width:760px){ .foot-grid{grid-template-columns:1fr; gap:26px;} }
.foot-brand{display:flex; gap:14px; align-items:center; margin-bottom:12px;}
.foot-brand img{height:90px; width:auto;}
.foot-brand span{font-family:var(--font-display); font-size:22px; font-weight:600; color:var(--on-navy);}
.foot-grid h4{margin:0 0 10px 0; font-weight:400; font-variant:small-caps; letter-spacing:.1em; font-size:13.5px; color:var(--gold-light);}
.foot-grid p{margin:0 0 6px 0;}
.foot-grid ul{list-style:none; margin:0; padding:0; display:grid; gap:6px;}
footer a{text-decoration:none; color:var(--on-navy); border-bottom:1px solid transparent;}
footer a:hover{border-color:var(--gold-light); color:var(--gold-light);}
.foot-bottom{
  margin-top:40px; padding-top:20px; border-top:1px solid var(--navy-line); font-size:13px;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px 24px;
}
footer a.verse-link{font-family:var(--font-display); font-style:italic; font-size:16px; color:var(--gold-light);}
footer a.verse-link:hover{color:var(--on-navy); border-color:var(--on-navy);}

/* ---------- scripture page ---------- */
.scripture{background:var(--navy); color:var(--on-navy); text-align:center; padding:110px 0 120px; min-height:62vh;}
.scripture .ornament{color:var(--gold); font-size:26px; display:block; margin-bottom:26px;}
.scripture .ref{font-variant:small-caps; letter-spacing:.16em; font-size:15px; color:var(--gold-light); margin-bottom:34px;}
.scripture blockquote{margin:0 auto; max-width:34ch; font-family:var(--font-display); font-size:clamp(26px,3.8vw,40px); line-height:1.35; font-weight:500;}
.scripture blockquote p{margin:0 0 .7em 0;}
.scripture sup{font-family:var(--font-body); font-size:.42em; color:var(--gold-light); vertical-align:super; margin-right:.3em; letter-spacing:0;}
.scripture .translation{margin-top:30px; font-size:13px; letter-spacing:.1em; font-variant:small-caps; color:var(--on-navy-dim);}
.scripture .btn{margin-top:44px;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}
