:root{
  --paper:#F7F5F0;
  --paper-2:#F1EEE7;
  --ink:#10243C;
  --ink-soft:#33465C;
  --body-c:#44546A;
  --carolina:#4B9CD3;
  --carolina-deep:#3B82B8;
  --carolina-lt:#9CC4E4;
  --hair:rgba(16,36,60,.16);
  --hair-blue:rgba(75,156,211,.35);
  --mark:"Cinzel", "Trajan Pro", serif;
  --display:"Cormorant Garamond", Georgia, serif;
  --body:"EB Garamond", Georgia, serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--body);color:var(--body-c);background:var(--paper);
  font-size:18.5px;line-height:1.75;-webkit-font-smoothing:antialiased;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .025 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E");
}
img,svg{max-width:100%;display:block}
a{color:var(--carolina-deep);text-decoration:none}
.wrap{max-width:1140px;margin:0 auto;padding:0 32px}

.sc{font-family:var(--mark);font-size:11.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--carolina-deep)}

/* ---------- masthead: echoes the Bravo letterhead ---------- */
.mast{position:sticky;top:0;z-index:40;background:rgba(247,245,240,.94);backdrop-filter:blur(10px)}
.mast-inner{display:flex;align-items:stretch;justify-content:space-between;padding:20px 0 16px;border-bottom:2px solid var(--ink)}
.brand{display:flex;align-items:center;gap:16px}
.brand-block{
  background:var(--carolina);display:flex;flex-direction:column;align-items:center;
  padding:13px 20px 11px;
  box-shadow:0 1px 0 var(--carolina-deep) inset;
}
.brand-block img{height:24px;width:auto;display:block}
.brand-block .pw{
  display:block;margin-top:6px;color:#fff;
  font-family:"Open Sans", Helvetica, Arial, sans-serif;font-weight:600;
  font-size:8.5px;letter-spacing:.34em;text-indent:.34em;line-height:1;white-space:nowrap;
}
.mast nav{display:flex;align-items:center;gap:30px}
.mast nav a{font-family:var(--mark);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-soft);position:relative;padding:4px 0}
.mast nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--carolina);transition:width .35s ease}
.mast nav a:hover{color:var(--ink)}
.mast nav a:hover::after{width:100%}

/* ---------- hero ---------- */
.hero{position:relative;padding:96px 0 92px;overflow:hidden}
.hero-motif{
  position:absolute;right:7%;top:50%;transform:translateY(-52%);
  width:380px;height:auto;opacity:.5;pointer-events:none;
}
.hero-kicker{display:flex;align-items:center;gap:18px;margin-bottom:34px}
.hero-kicker .dash{width:56px;height:1px;background:var(--carolina)}
h1{
  font-family:var(--display);font-weight:600;color:var(--ink);
  font-size:clamp(34px,4.4vw,56px);line-height:1.18;letter-spacing:0;max-width:24ch;
}
.hero-foot{display:flex;flex-direction:column;align-items:flex-start;gap:38px;margin-top:30px}
.hero-lede{max-width:46ch;font-size:20px;color:var(--ink-soft)}
.btn{
  display:inline-block;white-space:nowrap;
  font-family:"Open Sans", Helvetica, Arial, sans-serif;font-weight:600;
  font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  color:#fff;background:var(--ink);padding:16px 34px;transition:background .25s ease;
}
.btn:hover{background:var(--carolina-deep);color:#fff}

/* ---------- reveal motion ---------- */
.rv{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s ease}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.12s}.d2{transition-delay:.24s}.d3{transition-delay:.36s}

/* ---------- section scaffolding ---------- */
.section{padding:100px 0;border-top:1px solid var(--hair)}
.sec-head{display:grid;grid-template-columns:200px 1fr;gap:40px;margin-bottom:64px}
.sec-head .no{padding-top:10px}
h2{font-family:var(--display);font-weight:500;color:var(--ink);font-size:clamp(32px,3.8vw,52px);line-height:1.12;max-width:22ch}

/* ---------- ledger (services) ---------- */
.ledger{border-top:1px solid var(--hair)}
.row{
  display:grid;grid-template-columns:110px 300px 1fr;gap:36px;align-items:baseline;
  padding:34px 0;border-bottom:1px solid var(--hair);transition:background .3s ease;
}
.row:hover{background:var(--paper-2)}
.row .rn{font-family:var(--display);font-size:19px;color:var(--carolina-deep)}
.row h3{font-family:var(--display);font-weight:600;font-size:25px;color:var(--ink);line-height:1.2}
.row p{font-size:17px;max-width:58ch}

/* ---------- principles ---------- */
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.pr{padding:8px 44px 8px 0;border-left:1px solid var(--hair);padding-left:36px}
.pr:first-child{border-left:none;padding-left:0}
.pr .psc{display:block;margin-bottom:20px}
.pr h3{font-family:var(--display);font-weight:600;font-size:23px;color:var(--ink);margin-bottom:14px}
.pr p{font-size:16.5px}

/* ---------- navy statement band ---------- */
.band{background:var(--ink);color:#C9D7E6;padding:120px 0;position:relative;overflow:hidden}
.band .motif{position:absolute;left:4%;top:50%;transform:translateY(-50%);width:300px;height:auto;opacity:.16}
.band-inner{max-width:780px;margin:0 auto;text-align:center;position:relative}
.band .q{
  font-family:var(--display);font-style:italic;font-weight:400;
  font-size:clamp(28px,3.6vw,44px);line-height:1.3;color:#EDF3F8;
}
.band .attr{margin-top:34px}
.band .attr .sc{color:var(--carolina-lt)}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.about-grid .big{font-family:var(--display);font-size:27px;line-height:1.45;color:var(--ink);font-weight:500}
.about-grid .big em{color:var(--carolina-deep)}
.about-rest p + p{margin-top:20px}
.sig-rule{width:72px;height:3px;background:var(--carolina);margin-top:36px}

/* ---------- contact ---------- */
.contact{padding:120px 0 110px;text-align:center;border-top:1px solid var(--hair)}
.contact h2{margin:26px auto 18px}
.contact .addr{font-size:19px;color:var(--ink-soft);line-height:1.8;margin-top:26px}
.contact .ref{margin-top:30px}
.contact .btn{margin-top:42px}

/* ---------- footer ---------- */
footer{border-top:2px solid var(--ink);background:var(--paper)}
.foot-inner{padding:40px 0 56px}
.foot-top{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;margin-bottom:28px}
.foot-mark{font-family:var(--mark);font-size:13px;letter-spacing:.38em;color:var(--ink)}
.foot-top .sc{color:var(--ink-soft)}
.fine{font-size:13.5px;line-height:1.75;color:#7B8798;max-width:100ch}

@media (max-width:1000px){
  .hero-motif{display:none}
}
@media (max-width:900px){
  .sec-head{grid-template-columns:1fr;gap:14px}
  .row{grid-template-columns:70px 1fr;gap:18px}
  .row p{grid-column:2}
  .principles{grid-template-columns:1fr}
  .pr{border-left:none;padding-left:0;padding-bottom:36px;border-bottom:1px solid var(--hair);margin-bottom:36px}
  .about-grid{grid-template-columns:1fr;gap:40px}
  .mast nav{display:none}
  .hero{padding:84px 0 72px}
}
