/*
 * Royalpep layouts for Elementor pages.
 * Loaded only on pages built with Elementor. Every rule hangs off an rpe-* class
 * that the starter pages put on Elementor containers and widgets, so editing
 * text, images, buttons and links in Elementor never breaks the design.
 * Uses the same tokens as main.css.
 */
body.rp .rp-main--builder,body.rp .rp-main--home{display:block}
/* Elementor gives every container 10px padding; the layouts below set their own. */
body.rp .rp-main--home .e-con,body.rp .rp-main--builder .e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;padding:0}
body.rp .e-con.rpe-band,body.rp .e-con.rpe-band>.e-con{--gap:0px;--row-gap:0px;--column-gap:0px}
body.rp .rp-main--home .elementor-widget:not(:last-child),body.rp .rp-main--builder .elementor-widget:not(:last-child){margin-block-end:0}
body.rp .e-con.rpe-band{padding:var(--s10) 0;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px}
body.rp .e-con.rpe-band--tint{background:linear-gradient(180deg,var(--rp-ice),var(--rp-frost))}
body.rp .e-con.rpe-band--tight{padding:0 0 var(--s6)}
body.rp .e-con.rpe-band--page{padding:var(--s8) 0 var(--s10)}
body.rp .e-con.rp-container{padding:0 var(--s3);--padding-left:var(--s3);--padding-right:var(--s3);gap:var(--s4)}
body.rp .e-con.rpe-grid,body.rp .e-con.rpe-split,body.rp .e-con.rpe-panel,body.rp .e-con.rpe-hero__grid{display:grid;gap:var(--s3);--gap:var(--s3);--row-gap:var(--s3);--column-gap:var(--s3)}
body.rp .e-con.rpe-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
body.rp .e-con.rpe-grid--5{grid-template-columns:repeat(5,minmax(0,1fr))}
body.rp .e-con.rpe-split{grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center}
body.rp .e-con.rpe-split--faq{grid-template-columns:.8fr 1.2fr;align-items:start}
body.rp .e-con.rpe-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--s2);--gap:var(--s2)}
body.rp .e-con.rpe-head{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:var(--s3);margin-bottom:var(--s5)}
body.rp .e-con.rpe-head__text{gap:var(--s1);width:auto;flex:1 1 320px}
body.rp .rpe-head>.elementor-widget{flex:none}
/* Type */
body.rp .rpe-band .elementor-heading-title,body.rp .rpe-page .elementor-heading-title{color:var(--rp-navy);margin:0;font-family:var(--rp-font-heading);line-height:1.1;letter-spacing:-.025em}
body.rp .rp-h2 .elementor-heading-title{font-size:clamp(28px,3.2vw,40px)}
body.rp .rpe-display .elementor-heading-title{font-size:clamp(40px,5.2vw,68px);line-height:1.02;letter-spacing:-.035em}
body.rp .rpe-page__title .elementor-heading-title{font-size:clamp(32px,4.2vw,52px)}
body.rp .rpe-lead,body.rp .rpe-lead p{font-size:18px;color:var(--rp-muted);max-width:60ch;margin:0}
body.rp .rpe-lead--lg,body.rp .rpe-lead--lg p{font-size:clamp(17px,1.5vw,20px)}
body.rp .rpe-prose{max-width:72ch}
body.rp .rpe-prose h2{font-size:28px;margin:var(--s5) 0 var(--s1);color:var(--rp-navy)}
body.rp .rpe-prose p,body.rp .rpe-prose li{color:var(--rp-text);line-height:1.7}
body.rp .e-con.rpe-page{max-width:848px;margin:0 auto;gap:var(--s3)}
body.rp .rpe-pill p{display:inline-flex;padding:6px 16px;margin:0;border-radius:var(--r-pill);background:rgba(255,255,255,.8);border:1px solid var(--rp-line);font-size:13px;font-weight:600;color:var(--rp-navy);box-shadow:var(--sh-1)}
/* Buttons */
body.rp .rpe-btn .elementor-button{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px var(--s3);border-radius:var(--r-pill);font:600 15px/1.2 var(--rp-font-body);border:1px solid transparent;transition:transform .25s var(--ease),background .25s,border-color .25s}
body.rp .rpe-btn--primary .elementor-button{background:var(--rp-navy);color:#fff;box-shadow:0 1px 2px rgba(var(--rp-navy-rgb),.2)}
body.rp .rpe-btn--primary .elementor-button:hover{background:var(--rp-ocean);color:#fff;transform:translateY(-1px)}
body.rp .rpe-btn--ghost .elementor-button{background:rgba(255,255,255,.7);color:var(--rp-navy);border-color:rgba(var(--rp-navy-rgb),.16)}
body.rp .rpe-btn--ghost .elementor-button:hover{background:#fff;border-color:var(--rp-teal);color:var(--rp-navy)}
body.rp .rpe-btn--link .elementor-button{background:none;padding:0;min-height:0;color:var(--rp-ocean);border:0}
/* Hero */
body.rp .e-con.rpe-hero{position:relative;overflow:hidden;padding:var(--s8) 0 var(--s10);--padding-top:0px;--padding-bottom:0px;background:radial-gradient(60% 55% at 85% 10%,rgba(var(--rp-teal-rgb),.16),transparent 70%),radial-gradient(50% 50% at 5% 90%,rgba(var(--rp-ocean-rgb),.12),transparent 70%),radial-gradient(30% 30% at 55% 0%,rgba(197,242,119,.35),transparent 70%)}
body.rp .e-con.rpe-hero__grid{grid-template-columns:1.1fr .9fr;gap:var(--s6);align-items:center}
body.rp .e-con.rpe-hero__copy{gap:var(--s3);align-items:flex-start}
body.rp .e-con.rpe-hero__visual{position:relative}
body.rp .rpe-hero__img img{width:100%;border-radius:var(--r-xl);box-shadow:var(--sh-3);border:1px solid rgba(var(--rp-teal-rgb),.3);aspect-ratio:14/11;object-fit:cover}
body.rp .rpe-search{display:flex;align-items:center;gap:12px;max-width:520px;padding:6px 6px 6px var(--s3);background:rgba(255,255,255,.92);border:1px solid var(--rp-line);border-radius:var(--r-pill);box-shadow:var(--sh-1)}
body.rp .rpe-search input[type=search]{flex:1;min-width:0;border:0;background:transparent;box-shadow:none;min-height:44px;padding:0;font:inherit}
body.rp .rpe-search button{min-height:40px;padding:8px 20px;border:0;border-radius:var(--r-pill);background:var(--rp-navy);color:#fff;font-weight:600;cursor:pointer}
body.rp .rpe-proof .elementor-icon-list-items{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);list-style:none;margin:0;padding:0}
body.rp .rpe-proof .elementor-icon-list-icon i{color:var(--rp-teal)}
body.rp .rpe-proof .elementor-icon-list-text{color:var(--rp-navy);font-size:14px;font-weight:500}
body.rp .rpe-float{position:absolute;max-width:260px;padding:12px 20px 12px 12px;border-radius:var(--r-lg);background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.95);box-shadow:var(--sh-2)}
body.rp .rpe-float--a{left:-24px;bottom:56px}
body.rp .rpe-float--b{right:-16px;top:40px}
/* Icon boxes: used for the trust strip, features and floating cards */
body.rp .rpe-band .elementor-icon-box-wrapper,body.rp .rpe-float .elementor-icon-box-wrapper{display:flex;gap:12px;align-items:center;text-align:left}
body.rp .rpe-band .elementor-icon-box-icon,body.rp .rpe-float .elementor-icon-box-icon{margin:0;flex:none}
body.rp .rpe-band .elementor-icon-box-icon .elementor-icon,body.rp .rpe-float .elementor-icon-box-icon .elementor-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:var(--rp-mint);color:var(--rp-teal);font-size:18px}
body.rp .rpe-band .elementor-icon-box-title,body.rp .rpe-float .elementor-icon-box-title{margin:0;font-size:15px;line-height:1.3;color:var(--rp-navy);letter-spacing:0}
body.rp .rpe-band .elementor-icon-box-description,body.rp .rpe-float .elementor-icon-box-description{margin:0;font-size:13px;line-height:1.4;color:var(--rp-muted)}
body.rp .e-con.rpe-trust{padding:var(--s2) var(--s3);background:#fff;border-radius:var(--r-xl);box-shadow:var(--sh-1);border:1px solid var(--rp-line)}
body.rp .rpe-feature{margin-bottom:var(--s2)}
body.rp .rpe-feature .elementor-icon-box-description{font-size:15px}
/* Cards: categories and why */
body.rp .rpe-cat,body.rp .rpe-why{background:#fff;border:1px solid var(--rp-line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-1)}
body.rp .rpe-cat .elementor-image-box-wrapper,body.rp .rpe-why .elementor-image-box-wrapper{text-align:left}
body.rp .rpe-cat .elementor-image-box-img,body.rp .rpe-why .elementor-image-box-img{margin:0!important;width:100%!important}
body.rp .rpe-cat img,body.rp .rpe-why img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;border-radius:0}
body.rp .rpe-cat .elementor-image-box-content,body.rp .rpe-why .elementor-image-box-content{padding:var(--s2) var(--s3) var(--s3)}
body.rp .rpe-cat .elementor-image-box-title,body.rp .rpe-why .elementor-image-box-title{margin:0 0 4px;font-size:18px;color:var(--rp-navy)}
body.rp .rpe-cat .elementor-image-box-description,body.rp .rpe-why .elementor-image-box-description{margin:0;font-size:14px;color:var(--rp-muted)}
/* Panels (kits, wholesale, newsletter) */
body.rp .e-con.rpe-panel{grid-template-columns:1fr 1fr;gap:var(--s6);padding:var(--s6);border-radius:calc(var(--r-xl) + 8px);background:radial-gradient(70% 70% at 0% 0%,var(--rp-mint),transparent 70%),linear-gradient(160deg,#fff,var(--rp-ice));border:1px solid var(--rp-line);box-shadow:var(--sh-2);align-items:center}
body.rp .rpe-panel__img img{width:100%;border-radius:var(--r-xl)}
body.rp .e-con.rpe-panel__copy{gap:var(--s2);align-items:flex-start}
body.rp .rpe-checks .elementor-icon-list-items{list-style:none;margin:0;padding:0;display:grid;gap:var(--s1)}
body.rp .rpe-checks .elementor-icon-list-icon i{color:var(--rp-teal)}
body.rp .rpe-checks .elementor-icon-list-text{color:var(--rp-text)}
/* Steps */
body.rp .e-con.rpe-step{padding:var(--s3);background:#fff;border:1px solid var(--rp-line);border-radius:var(--r-lg);box-shadow:var(--sh-1);gap:var(--s1)}
body.rp .rpe-step__n p{display:grid;place-items:center;width:40px;height:40px;margin:0;border-radius:50%;background:var(--rp-navy);color:#fff;font-weight:700}
body.rp .rpe-step__title .elementor-heading-title{font-size:18px}
body.rp .rpe-step__text p{margin:0;font-size:14.5px;color:var(--rp-muted)}
/* Accordion (home FAQ and FAQ page) */
body.rp .rpe-accordion .elementor-accordion{display:grid;gap:var(--s1)}
body.rp .rpe-accordion .elementor-accordion-item{background:#fff;border:1px solid var(--rp-line);border-radius:var(--r-lg);overflow:hidden}
body.rp .rpe-accordion .elementor-tab-title{padding:var(--s2) var(--s3);font-weight:650;color:var(--rp-navy);border:0;margin:0}
body.rp .rpe-accordion .elementor-tab-title a{color:var(--rp-navy)}
body.rp .rpe-accordion .elementor-tab-content{padding:0 var(--s3) var(--s3);color:var(--rp-muted);border:0}
body.rp .rpe-accordion .elementor-tab-content p{margin:0}
/* Shortcodes: product grids and forms keep the theme's own styles */
body.rp .rpe-page__sc{width:100%}
/* Responsive */
@media (max-width:1024px){
  body.rp .e-con.rpe-grid--5{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  body.rp .e-con.rpe-hero__grid,body.rp .e-con.rpe-split,body.rp .e-con.rpe-split--faq,body.rp .e-con.rpe-panel{grid-template-columns:1fr}
  body.rp .e-con.rpe-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.rp .e-con.rpe-grid--5{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.rp .e-con.rpe-band{padding:var(--s8) 0}
  body.rp .e-con.rpe-panel{padding:var(--s4)}
  body.rp .rpe-float{position:static;margin-top:var(--s2)}
}
@media (max-width:520px){
  body.rp .e-con.rpe-grid--3,body.rp .e-con.rpe-grid--5{grid-template-columns:1fr}
  body.rp .rpe-btn,body.rp .rpe-btn .elementor-button{width:100%}
}
