/*! RP Theme — components — chip, button, link, section head, image frame, carousel nav, back-to-top, closing band
    Generated from the approved R&P homepage. Do not hand-edit:
    change the homepage source and re-run the extractor. */
.chip{display:inline-block;background:linear-gradient(90deg,var(--red) 0%,var(--red) 30%,rgba(183,29,41,.42) 100%);
  color:var(--white);font-family:"Instrument Sans",sans-serif;font-size:var(--f-chip);font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;padding:9px 20px;line-height:1.2}
.chip--sm{font-size:11.5px;padding:6px 13px;letter-spacing:.09em}

.btn{display:inline-flex;align-items:center;gap:13px;font-family:"Instrument Sans",sans-serif;font-size:16px;
  font-weight:600;padding:16px 28px;border:none;cursor:pointer;white-space:nowrap;
  transition:background-color .18s ease;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
.btn svg{transition:transform .28s cubic-bezier(.22,.61,.36,1)}
.btn:focus-visible svg,.btn:active svg{transform:translateX(5px)}
@media(hover:hover){.btn:hover svg{transform:translateX(5px)}}
.btn--primary{background:var(--red);color:var(--white)}
.btn--primary:active{background:var(--red-dark)}
@media(hover:hover){.btn--primary:hover{background:var(--red-dark)}}
.btn--ghost{background:transparent;color:var(--white);border:1px solid rgba(255,255,255,.75);padding:10px 20px;font-size:14px;font-weight:500}
.btn--ghost:active{background:rgba(255,255,255,.12)}
@media(hover:hover){.btn--ghost:hover{background:rgba(255,255,255,.12)}}
.link-r{position:relative;display:inline-flex;align-items:center;gap:10px;font-family:"Instrument Sans",sans-serif;font-size:15px;
  font-weight:600;color:var(--ink);border-bottom:2px solid var(--red);padding-bottom:4px;
  padding-right:8px;transition:border-bottom-color .2s ease}
/* a finger-sized target around a slim text link, without moving its underline */
.link-r::after{content:"";position:absolute;top:-12px;right:-8px;bottom:-12px;left:-8px}
.link-r svg{transition:transform .28s cubic-bezier(.22,.61,.36,1)}
.link-r:focus-visible,.link-r:active{border-bottom-color:var(--red-deep)}
@media(hover:hover){.link-r:hover{border-bottom-color:var(--red-deep)}}
.link-r:focus-visible svg,.link-r:active svg{transform:translateX(6px)}
@media(hover:hover){.link-r:hover svg{transform:translateX(6px)}}

.sec-head{margin-bottom:54px}
.sec-head h2{font-size:var(--f-h2);margin-top:14px}
.sec-head p{font-size:var(--f-lead);line-height:1.7;max-width:60ch}
.sec-head--split{display:flex;justify-content:space-between;align-items:flex-end;gap:60px}
.sec-head--center{text-align:center;max-width:840px;margin:0 auto 54px}
.sec-head--center p{margin-left:auto;margin-right:auto}

.shot{position:relative;overflow:hidden;background:var(--gray)}
.shot img{width:100%;height:100%;object-fit:cover}
.shot--gray img{filter:grayscale(1) contrast(1.06)}

/* carousel nav (shared) */
.cnav{display:flex;gap:11px;flex:none}
.cbtn{width:50px;height:50px;border:1px solid var(--line);background:transparent;color:var(--ink);
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s;
  -webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
.cbtn svg{transition:transform .22s cubic-bezier(.22,.61,.36,1)}
.cbtn:active{background:var(--red);border-color:var(--red);color:var(--white)}
.cbtn[data-next]:active svg{transform:translateX(3px)}
.cbtn[data-prev]:active svg{transform:translateX(-3px)}
@media(hover:hover){.cbtn:hover{background:var(--red);border-color:var(--red);color:var(--white)}
.cbtn[data-next]:hover svg{transform:translateX(3px)}
.cbtn[data-prev]:hover svg{transform:translateX(-3px)}}
.cdots{display:flex;gap:8px;justify-content:center;margin-top:38px}
.cdot{position:relative;width:32px;height:3px;background:var(--line);border:none;cursor:pointer;padding:0;transition:background-color .2s;
  -webkit-tap-highlight-color:transparent}
/* the bar stays 3px; the target around it is a full fingertip, meeting its neighbours */
.cdot::after{content:"";position:absolute;top:-20px;right:-4px;bottom:-20px;left:-4px}
.cdot.is-on{background:var(--red)}

/* --- back to top --- */
.to-top{position:fixed;right:28px;bottom:28px;width:52px;height:52px;background:var(--red);color:var(--white);
  border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;
  transform:translateY(10px);z-index:60;transition:opacity .25s,transform .25s,background-color .15s;
  right:max(28px,env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom));
  -webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
.to-top.is-on{opacity:1;pointer-events:auto;transform:translateY(0)}
.to-top:active{background:var(--red-dark)}
@media(hover:hover){.to-top:hover{background:var(--red-dark)}}

/* --- closing CTA band (shared by every template) --- */
.cta-band{position:relative;background:var(--charcoal-deep);overflow:hidden}
.cta-bg{position:absolute;inset:0}
.cta-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.45) brightness(.58) contrast(1.05)}
.cta-band::after{content:"";position:absolute;inset:0;background:linear-gradient(92deg,rgba(15,18,21,.9),rgba(15,18,21,.6))}
.cta-inner{position:relative;z-index:2;padding:104px 0}
.cta-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:center}
.cta-band h2{color:var(--white);font-size:46px;margin-top:14px}
.cta-side{display:flex;flex-direction:column;gap:22px;align-items:flex-start}
.cta-side p{color:#C4C7CA;font-size:16px}
@media(max-width:1200px){
  .cta-grid{grid-template-columns:1fr;gap:40px}
}
@media(max-width:900px){
  .cta-band h2{font-size:34px}
}

@media(max-width:900px){
  .sec-head--split{flex-direction:column;align-items:flex-start;gap:26px}
  .sec-head--split .cnav{align-self:flex-end}
}
@media(max-width:640px){
  .btn{white-space:normal}
}
@media(max-width:640px){
  .to-top{right:14px;bottom:14px;width:46px;height:46px}
  .to-top{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom))}
}
