/* ==========================================================================
   RRAP Landing Page – Child Theme Styles
   Enqueue this file only on the RRAP landing page template or via body class.
   ========================================================================== */

:root{
  --ink:#0E2233;
  --hull:#163B54;
  --hull-2:#1E4C6B;
  --paper:#F6F7F5;
  --paper-2:#ECEEEA;
  --brass:#C08A2E;
  --brass-lt:#E0B063;
  --signal:#B03A2E;
  --body:#3A4A56;
  --slate:#6C7C88;
  --rule:#D7DBD6;
  --display:'Spectral',Georgia,serif;
  --sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --wrap:1080px;
}

/* Force fonts (Divi sometimes overrides) */
body.rrap-landing,
body.rrap-landing .et_pb_section,
body.rrap-landing .et_pb_row,
body.rrap-landing .et_pb_column,
body.rrap-landing .et_pb_module,
body.rrap-landing .et_pb_text,
body.rrap-landing .et_pb_text_inner{
  font-family:var(--sans)!important;
  color:var(--body);
  -webkit-font-smoothing:antialiased;
}

body.rrap-landing{
  background:var(--paper);
  font-size:17px;
  line-height:1.6;
  padding-bottom:76px;
}
@media(min-width:860px){
  body.rrap-landing{padding-bottom:0}
}

/* Typography helpers used inside Code modules */
.rrap-landing h1,
.rrap-landing h2,
.rrap-landing h3{
  font-family:var(--display)!important;
  color:var(--ink);
  line-height:1.14;
  font-weight:600;
  letter-spacing:-.012em;
}
.rrap-landing h1{font-size:clamp(2.05rem,5.6vw,3.5rem)}
.rrap-landing h2{font-size:clamp(1.6rem,3.6vw,2.4rem)}
.rrap-landing h3{font-size:1.16rem;line-height:1.35}

.rrap-landing .eyebrow{
  font-family:var(--mono);
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--brass);
  display:flex;
  align-items:center;
  gap:11px;
}
.rrap-landing .eyebrow::after{
  content:"";
  height:1px;
  flex:1;
  background:currentColor;
  opacity:.32;
  max-width:110px;
}
.rrap-landing .eyebrow.on-dark{color:var(--brass-lt)}

/* ---------- Masthead ---------- */
.rrap-landing .masthead{
  background:var(--ink);
  color:#fff;
  padding:13px 0;
  position:relative;
  z-index:5;
}
.rrap-landing .masthead .wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.rrap-landing .brand{
  font-family:var(--display);
  font-size:1.24rem;
  font-weight:700;
  color:#fff;
  letter-spacing:-.01em;
  text-decoration:none;
}
.rrap-landing .brand span{color:var(--brass-lt);font-weight:400}
.rrap-landing .mast-tel{
  font-family:var(--mono);
  font-size:.86rem;
  font-weight:500;
  color:#fff;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:3px;
  padding:7px 13px;
}
.rrap-landing .mast-tel:hover{border-color:var(--brass);color:var(--brass-lt)}
.rrap-landing .mast-tel small{
  display:none;
  font-family:var(--sans);
  font-size:.72rem;
  color:#8FA6B4;
  letter-spacing:.04em;
}
@media(min-width:620px){
  .rrap-landing .mast-tel small{display:inline}
}

/* ---------- Hero ---------- */
.rrap-landing .hero{
  background:var(--ink);
  color:#C3D2DC;
  padding:46px 0 60px;
}
@media(min-width:900px){
  .rrap-landing .hero{padding:66px 0 86px}
}
.rrap-landing .hero-grid{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 22px;
  display:grid;
  gap:42px;
}
@media(min-width:900px){
  .rrap-landing .hero-grid{
    grid-template-columns:1.06fr .94fr;
    gap:56px;
    align-items:start;
  }
}
.rrap-landing .hero h1{color:#fff;margin:20px 0 0}
.rrap-landing .hero h1 em{font-style:italic;color:var(--brass-lt)}
.rrap-landing .hero-sub{
  font-size:1.1rem;
  margin-top:20px;
  max-width:34em;
  color:#B9CBD7;
}
.rrap-landing .hero-sub strong{color:#fff;font-weight:600}

/* License card */
.rrap-landing .card{
  background:linear-gradient(168deg,#FAFBF9,#E9ECE8);
  border-radius:8px;
  padding:24px 24px 20px;
  color:var(--ink);
  box-shadow:0 26px 54px -20px rgba(0,0,0,.62),0 0 0 1px rgba(255,255,255,.09);
  position:relative;
  overflow:hidden;
  margin-top:34px;
}
@media(min-width:900px){
  .rrap-landing .card{margin-top:8px}
}
.rrap-landing .card::before{
  content:"";
  position:absolute;
  inset:0;
  background:repeating-linear-gradient(112deg,transparent 0 13px,rgba(14,34,51,.028) 13px 14px);
  pointer-events:none;
}
.rrap-landing .card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  border-bottom:1px solid var(--rule);
  padding-bottom:13px;
  margin-bottom:16px;
}
.rrap-landing .card-issuer{
  font-family:var(--display);
  font-weight:700;
  font-size:1.02rem;
  color:var(--ink);
  line-height:1.2;
}
.rrap-landing .card-issuer small{
  display:block;
  font-family:var(--mono);
  font-size:.6rem;
  font-weight:500;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--slate);
  margin-top:5px;
}
.rrap-landing .seal{
  width:40px;
  height:40px;
  flex:0 0 40px;
  border-radius:50%;
  border:1.5px solid var(--brass);
  display:grid;
  place-items:center;
  font-family:var(--mono);
  font-size:.56rem;
  font-weight:600;
  color:var(--brass);
  letter-spacing:.06em;
}
.rrap-landing .card-row{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:7px 0;
  font-size:.9rem;
}
.rrap-landing .card-row dt{
  font-family:var(--mono);
  font-size:.63rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--slate);
  padding-top:3px;
}
.rrap-landing .card-row dd{
  font-family:var(--mono);
  font-weight:600;
  color:var(--ink);
  text-align:right;
  font-size:.94rem;
}
.rrap-landing .led-cap{
  font-family:var(--mono);
  font-size:.6rem;
  font-weight:600;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:var(--slate);
  margin:16px 0 8px;
  display:flex;
  align-items:center;
  gap:9px;
}
.rrap-landing .led-cap::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--rule);
}
.rrap-landing .led-cap.pay{color:var(--brass)}
.rrap-landing .led-cap.pay::after{background:var(--brass);opacity:.35}
.rrap-landing .lrow{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:12px;
  padding:5px 0;
}
.rrap-landing .lrow span{font-size:.86rem;color:var(--body)}
.rrap-landing .lrow b{
  font-family:var(--mono);
  font-size:.86rem;
  font-weight:600;
  color:var(--ink);
  text-align:right;
  white-space:nowrap;
}
.rrap-landing .lrow.big{
  padding:7px 0 3px;
  border-top:1px solid var(--rule);
  margin-top:7px;
}
.rrap-landing .lrow.big span{font-size:.92rem;color:var(--ink);font-weight:500}
.rrap-landing .lrow.big b{
  font-family:var(--display);
  font-size:1.9rem;
  font-weight:700;
  line-height:1;
}
.rrap-landing .lrow.keep b{
  color:var(--brass);
  font-family:var(--display);
  font-size:1.9rem;
  font-weight:700;
  line-height:1;
}
.rrap-landing .status-band{
  margin-top:17px;
  border-radius:5px;
  overflow:hidden;
  position:relative;
  height:74px;
  perspective:900px;
}
.rrap-landing .face{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 18px;
  backface-visibility:hidden;
  transition:transform .78s cubic-bezier(.66,.02,.24,1);
  transform-style:preserve-3d;
}
.rrap-landing .face-a{
  background:#F3E3E0;
  border:1px solid #E0BDB7;
  transform:rotateX(0deg);
}
.rrap-landing .face-b{
  background:var(--ink);
  border:1px solid var(--hull-2);
  transform:rotateX(180deg);
}
.rrap-landing .card.flipped .face-a{transform:rotateX(-180deg)}
.rrap-landing .card.flipped .face-b{transform:rotateX(0deg)}
.rrap-landing .face-lab{
  font-family:var(--mono);
  font-size:.6rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  opacity:.72;
}
.rrap-landing .face-a .face-lab{color:#8A5147}
.rrap-landing .face-b .face-lab{color:var(--brass-lt)}
.rrap-landing .face-val{
  font-family:var(--display);
  font-size:1.32rem;
  font-weight:700;
  line-height:1.1;
  margin-top:3px;
}
.rrap-landing .face-a .face-val{color:var(--signal)}
.rrap-landing .face-b .face-val{color:#fff}
.rrap-landing .face-note{
  font-family:var(--mono);
  font-size:.66rem;
  text-align:right;
  line-height:1.45;
}
.rrap-landing .face-a .face-note{color:#8A5147}
.rrap-landing .face-b .face-note{color:var(--brass-lt)}
.rrap-landing .card-foot{
  font-size:.76rem;
  color:var(--slate);
  margin-top:13px;
  line-height:1.5;
}

@media(prefers-reduced-motion:reduce){
  .rrap-landing .face{transition:none}
}

/* ---------- Form Card ---------- */
.rrap-landing .form-card{
  background:#fff;
  border-radius:8px;
  padding:26px 22px;
  border:1px solid var(--rule);
  box-shadow:0 18px 40px -22px rgba(14,34,51,.4);
}
@media(min-width:520px){
  .rrap-landing .form-card{padding:30px 28px}
}
.rrap-landing .dark .form-card{border-color:rgba(255,255,255,.13)}
.rrap-landing .form-card h2{font-size:1.42rem;margin-bottom:5px}
.rrap-landing .form-lede{
  font-size:.94rem;
  color:var(--slate);
  margin-bottom:20px;
}
.rrap-landing .field{margin-bottom:15px}
.rrap-landing .field label{
  display:block;
  font-family:var(--mono);
  font-size:.66rem;
  font-weight:600;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--slate);
  margin-bottom:6px;
}
.rrap-landing .field input{
  width:100%;
  padding:13px 14px;
  font-family:var(--sans);
  font-size:16px;
  color:var(--ink);
  background:var(--paper);
  border:1px solid var(--rule);
  border-radius:4px;
  transition:border-color .16s,background .16s;
}
.rrap-landing .field input:focus{
  background:#fff;
  border-color:var(--hull-2);
  outline:none;
  box-shadow:0 0 0 3px rgba(30,76,107,.14);
}
.rrap-landing .field input::placeholder{color:#A6B2BB}
.rrap-landing .field.two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.rrap-landing .hint{
  font-size:.76rem;
  color:var(--slate);
  margin-top:5px;
  line-height:1.45;
}
.rrap-landing .err{
  color:var(--signal);
  font-size:.78rem;
  margin-top:5px;
  display:none;
  font-weight:500;
}
.rrap-landing .field.invalid input{
  border-color:var(--signal);
  background:#FDF6F5;
}
.rrap-landing .field.invalid .err{display:block}

.rrap-landing .btn{
  display:block;
  width:100%;
  text-align:center;
  cursor:pointer;
  background:var(--brass);
  color:var(--ink);
  border:none;
  border-radius:4px;
  font-family:var(--sans);
  font-size:1.02rem;
  font-weight:600;
  letter-spacing:.005em;
  padding:16px 18px;
  transition:background .16s,transform .1s;
  text-decoration:none;
}
.rrap-landing .btn:hover{background:var(--brass-lt)}
.rrap-landing .btn:active{transform:translateY(1px)}
.rrap-landing .btn-ghost{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.32);
  border-radius:4px;
  padding:14px 22px;
  font-weight:500;
  text-decoration:none;
  font-size:.96rem;
}
.rrap-landing .btn-ghost:hover{border-color:var(--brass);color:var(--brass-lt)}
.rrap-landing .form-fine{
  font-size:.76rem;
  color:var(--slate);
  margin-top:14px;
  line-height:1.55;
  text-align:center;
}
.rrap-landing .success{display:none;text-align:center;padding:22px 6px}
.rrap-landing .success.on{display:block}
.rrap-landing .form-body.off{display:none}
.rrap-landing .success .tick{
  width:52px;
  height:52px;
  margin:0 auto 16px;
  border-radius:50%;
  background:var(--ink);
  display:grid;
  place-items:center;
}
.rrap-landing .success h2{margin-bottom:9px}
.rrap-landing .success p{color:var(--body);font-size:.98rem}

/* ---------- Credibility strip ---------- */
.rrap-landing .creds{
  background:var(--hull);
  color:#CFE0EA;
  padding:26px 0;
}
.rrap-landing .creds-grid{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 22px;
  display:grid;
  gap:20px;
  grid-template-columns:1fr;
}
@media(min-width:720px){
  .rrap-landing .creds-grid{
    grid-template-columns:repeat(3,1fr);
    gap:34px;
  }
}
.rrap-landing .cred{
  display:flex;
  gap:13px;
  align-items:flex-start;
}
.rrap-landing .cred-yr{
  font-family:var(--mono);
  font-size:.76rem;
  font-weight:600;
  color:var(--brass-lt);
  padding-top:3px;
  flex:0 0 auto;
  letter-spacing:.04em;
}
.rrap-landing .cred p{font-size:.9rem;line-height:1.45;color:#CFE0EA}
.rrap-landing .cred p b{color:#fff;font-weight:600}

/* ---------- The Math ---------- */
.rrap-landing .math{
  display:grid;
  gap:0;
  margin-top:34px;
  border:1px solid var(--rule);
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}
@media(min-width:760px){
  .rrap-landing .math{grid-template-columns:repeat(4,1fr)}
}
.rrap-landing .math-step{
  padding:22px 20px;
  border-bottom:1px solid var(--rule);
  position:relative;
}
@media(min-width:760px){
  .rrap-landing .math-step{
    border-bottom:none;
    border-right:1px solid var(--rule);
  }
}
.rrap-landing .math-step:last-child{
  border:none;
  background:var(--ink);
}
.rrap-landing .math-lab{
  font-family:var(--mono);
  font-size:.63rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--slate);
  margin-bottom:9px;
}
.rrap-landing .math-val{
  font-family:var(--display);
  font-size:1.85rem;
  font-weight:700;
  color:var(--ink);
  line-height:1;
}
.rrap-landing .math-note{
  font-size:.8rem;
  color:var(--slate);
  margin-top:7px;
  line-height:1.45;
}
.rrap-landing .math-step:last-child .math-lab{color:var(--brass-lt)}
.rrap-landing .math-step:last-child .math-val{color:#fff}
.rrap-landing .math-step:last-child .math-note{color:#A8BCC9}

/* ---------- Can / Can't columns ---------- */
.rrap-landing .cols{
  display:grid;
  gap:26px;
  margin-top:36px;
}
@media(min-width:800px){
  .rrap-landing .cols{
    grid-template-columns:1fr 1fr;
    gap:34px;
  }
}
.rrap-landing .col{
  background:#fff;
  border:1px solid var(--rule);
  border-radius:8px;
  padding:26px 24px;
}
.rrap-landing .col.no{
  background:var(--paper-2);
  border-style:dashed;
}
.rrap-landing .col h3{
  margin-bottom:16px;
  padding-bottom:12px;
  border-bottom:1px solid var(--rule);
}
.rrap-landing .col ul{list-style:none;margin:0;padding:0}
.rrap-landing .col li{
  display:flex;
  gap:11px;
  padding:8px 0;
  font-size:.96rem;
  line-height:1.5;
}
.rrap-landing .mk{
  flex:0 0 17px;
  height:17px;
  margin-top:4px;
}

/* ---------- Steps ---------- */
.rrap-landing .steps{
  counter-reset:s;
  margin-top:34px;
  display:grid;
  gap:2px;
}
.rrap-landing .step{
  background:rgba(255,255,255,.045);
  padding:22px 22px 22px 66px;
  position:relative;
  counter-increment:s;
}
.rrap-landing .step:first-child{border-radius:8px 8px 0 0}
.rrap-landing .step:last-child{border-radius:0 0 8px 8px}
.rrap-landing .step::before{
  content:counter(s);
  position:absolute;
  left:22px;
  top:22px;
  font-family:var(--mono);
  font-size:.78rem;
  font-weight:600;
  color:var(--ink);
  background:var(--brass);
  width:26px;
  height:26px;
  border-radius:50%;
  display:grid;
  place-items:center;
}
.rrap-landing .step h3{font-size:1.04rem;margin-bottom:6px}
.rrap-landing .step p{font-size:.94rem;color:#B0C3CF;line-height:1.55}

/* ---------- Quotes ---------- */
.rrap-landing .quotes{
  display:grid;
  gap:22px;
  margin-top:34px;
}
@media(min-width:820px){
  .rrap-landing .quotes{
    grid-template-columns:1fr 1fr;
    gap:28px;
  }
}
.rrap-landing .quote{
  background:#fff;
  border:1px solid var(--rule);
  border-left:3px solid var(--brass);
  border-radius:0 8px 8px 0;
  padding:26px 24px;
}
.rrap-landing .quote blockquote{
  font-family:var(--display);
  font-size:1.24rem;
  line-height:1.36;
  color:var(--ink);
  font-weight:600;
  margin:0;
}
.rrap-landing .quote p{
  font-size:.92rem;
  margin-top:13px;
  color:var(--body);
}
.rrap-landing .quote cite{
  display:block;
  margin-top:16px;
  font-style:normal;
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--slate);
}

/* ---------- FAQ ---------- */
.rrap-landing .faq{
  margin-top:34px;
  border-top:1px solid var(--rule);
}
.rrap-landing .faq details{border-bottom:1px solid var(--rule)}
.rrap-landing .faq summary{
  cursor:pointer;
  list-style:none;
  padding:19px 40px 19px 0;
  position:relative;
  font-family:var(--display);
  font-size:1.08rem;
  font-weight:600;
  color:var(--ink);
  line-height:1.35;
}
.rrap-landing .faq summary::-webkit-details-marker{display:none}
.rrap-landing .faq summary::after{
  content:"";
  position:absolute;
  right:8px;
  top:26px;
  width:11px;
  height:11px;
  border-right:1.8px solid var(--brass);
  border-bottom:1.8px solid var(--brass);
  transform:rotate(45deg);
  transition:transform .2s;
}
.rrap-landing .faq details[open] summary::after{
  transform:rotate(-135deg);
  top:29px;
}
.rrap-landing .faq .ans{
  padding:0 8px 22px 0;
  font-size:.96rem;
  line-height:1.62;
}
.rrap-landing .faq .ans p+p{margin-top:11px}
.rrap-landing .faq .ans strong{color:var(--ink)}

/* ---------- Signature ---------- */
.rrap-landing .sig{
  margin-top:32px;
  padding-top:26px;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex;
  gap:18px;
  align-items:flex-start;
}
.rrap-landing .sig-name{
  font-family:var(--display);
  font-size:1.16rem;
  font-weight:700;
  color:#fff;
}
.rrap-landing .sig-meta{
  font-family:var(--mono);
  font-size:.72rem;
  color:#8FA6B4;
  margin-top:5px;
  line-height:1.6;
}

/* ---------- Sticky mobile bar ---------- */
.rrap-landing .sticky{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:40;
  background:var(--ink);
  border-top:1px solid rgba(255,255,255,.14);
  padding:11px 14px;
  display:flex;
  gap:10px;
  box-shadow:0 -8px 24px rgba(14,34,51,.26);
}
.rrap-landing .sticky .btn{padding:13px;font-size:.95rem}
.rrap-landing .sticky .btn-ghost{padding:13px 16px;flex:0 0 auto;font-size:.9rem}
.rrap-landing .sticky > .btn{flex:1}
@media(min-width:860px){
  .rrap-landing .sticky{display:none}
}

/* ---------- Footer ---------- */
.rrap-landing .foot{
  background:#081A28;
  color:#7B92A1;
  padding:40px 0 34px;
  font-size:.82rem;
  line-height:1.65;
}
.rrap-landing .foot-grid{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 22px;
  display:grid;
  gap:22px;
}
@media(min-width:760px){
  .rrap-landing .foot-grid{grid-template-columns:1.5fr 1fr}
}
.rrap-landing .foot b{color:#C3D2DC;font-weight:600}
.rrap-landing .foot a{
  color:#93AAB8;
  text-decoration:underline;
  text-underline-offset:2px;
}
.rrap-landing .foot a:hover{color:var(--brass-lt)}
.rrap-landing .foot-legal{
  margin-top:26px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:.75rem;
  color:#63798A;
}
.rrap-landing .foot-legal p+p{margin-top:9px}

/* Utility wrappers used inside Code modules */
.rrap-landing .wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 22px;
}
.rrap-landing .narrow{
  max-width:760px;
  margin:0 auto;
}

/* Dark / tint section helpers */
.rrap-landing .dark{background:var(--ink);color:#C3D2DC}
.rrap-landing .dark h2,
.rrap-landing .dark h3{color:#fff}
.rrap-landing .tint{background:var(--paper-2)}

/* Override Divi section padding when we want exact control */
.rrap-landing .et_pb_section.rrap-no-pad{
  padding-top:0!important;
  padding-bottom:0!important;
}
.rrap-landing .et_pb_section.rrap-hero-pad{
  padding-top:0!important;
  padding-bottom:0!important;
}
.rrap-landing .et_pb_section.rrap-creds-pad{
  padding-top:0!important;
  padding-bottom:0!important;
}