
.rcc-wrap{--rcc-fs-eyebrow:14px;--rcc-fs-heading:72px;--rcc-fs-description:21px;--rcc-fs-feature:15px;--rcc-fs-form-title:16px;--rcc-fs-label:16px;--rcc-fs-input:15px;--rcc-fs-button:17px;--rcc-fs-disclaimer:12px;--rcc-fs-result:34px;font-family:var(--rcc-font);background:var(--rcc-bg);color:var(--rcc-text);padding:56px 24px;overflow:hidden;box-sizing:border-box}
.rcc-wrap *{box-sizing:border-box}.rcc-shell{max-width:var(--rcc-max);margin:auto;min-height:760px;display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center;position:relative}
.rcc-shell:after{content:"";position:absolute;right:-1%;top:-7%;width:43%;height:114%;background-image:var(--rcc-image);background-size:cover;background-position:center;border-radius:28px 0 0 28px;z-index:0;opacity:.92}
.rcc-copy,.rcc-card-form{position:relative;z-index:2}.rcc-copy{padding:35px 0 35px 30px;max-width:610px}
.rcc-eyebrow{font-size:var(--rcc-fs-eyebrow);font-weight:700;letter-spacing:3.4px;color:var(--rcc-eyebrow);display:flex;align-items:center;gap:28px;margin-bottom:47px}.rcc-eyebrow i{display:block;width:112px;height:1px;background:#aeb4a8}
.rcc-copy h2{font-size:var(--rcc-fs-heading);line-height:1.02;letter-spacing:-3.6px;margin:0 0 28px;font-weight:700;color:var(--rcc-text)}.rcc-copy p{font-size:var(--rcc-fs-description);line-height:1.65;color:var(--rcc-muted);max-width:530px;margin:0}
.rcc-features{display:flex;margin-top:62px;gap:0}.rcc-feature{display:flex;align-items:center;gap:16px;padding:0 26px;border-right:1px solid #d3d4cd;min-height:50px}.rcc-feature:first-child{padding-left:0}.rcc-feature:last-child{border-right:0}.rcc-icon{width:38px;height:38px;border:2px solid #454937;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:22px;flex:none}.rcc-feature:first-child .rcc-icon{border-radius:8px 8px 14px 14px}.rcc-feature b,.rcc-feature small{display:block}.rcc-feature b{font-size:var(--rcc-fs-feature);font-weight:500;color:#465053}.rcc-feature small{font-size:var(--rcc-fs-feature);color:#465053;margin-top:4px}
.rcc-brandline{display:flex;align-items:center;gap:18px;margin-top:145px;color:#69705d;letter-spacing:3.2px;font-size:12px}.rcc-brandline i{height:1px;background:#bdc0b6;width:100%;max-width:420px}.rcc-brandmark{font-size:38px;line-height:1}
.rcc-card-form{background:rgba(255,255,255,.96);border-radius:var(--rcc-radius);padding:var(--rcc-padding);box-shadow:0 20px 60px rgba(20,25,15,.08);max-width:680px;justify-self:end;width:100%}
.rcc-form-title{font-size:var(--rcc-fs-form-title);font-weight:700;letter-spacing:3px;color:var(--rcc-eyebrow);margin-bottom:36px}.rcc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 30px}.rcc-control{display:block}.rcc-control span{display:block;font-size:var(--rcc-fs-label);font-weight:500;margin-bottom:8px;color:var(--rcc-text)}.rcc-control input,.rcc-control select,.rcc-control textarea{width:100%;border:1px solid var(--rcc-border);background:#fff;color:var(--rcc-text);border-radius:5px;min-height:var(--rcc-input-height);padding:0 18px;font-family:inherit;font-size:var(--rcc-fs-input);outline:none;transition:.2s}.rcc-control input:focus,.rcc-control select:focus,.rcc-control textarea:focus{border-color:var(--rcc-accent);box-shadow:0 0 0 2px rgba(52,55,34,.08)}.rcc-control input::placeholder,.rcc-control textarea::placeholder{color:#8b9498}.rcc-control textarea{height:94px;padding:14px 18px;resize:vertical}.rcc-control.full{margin-top:30px} .rcc-submit-row{display:flex;align-items:center;gap:42px;margin-top:28px}.rcc-button{border:0;background:var(--rcc-accent);color:var(--rcc-accent-text);height:46px;min-width:245px;padding:0 30px;border-radius:5px;font:600 var(--rcc-fs-button) var(--rcc-font);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:filter .2s,transform .2s}.rcc-button:hover{filter:brightness(.94);transform:translateY(-1px)}.rcc-submit-row small{font-size:var(--rcc-fs-disclaimer);line-height:1.45;color:#899194;max-width:190px}.rcc-result{display:none;margin-top:26px;padding:24px;border-radius:10px;background:#f0f1ea;border:1px solid #d4d7c9}.rcc-result.show{display:block}.rcc-result strong{display:block;font-size:14px;letter-spacing:1.2px}.rcc-result-value{display:block;font-size:var(--rcc-fs-result);font-weight:700;margin:6px 0}.rcc-result p{margin:0;color:var(--rcc-muted);font-size:13px}
@media(max-width:1100px){.rcc-shell{grid-template-columns:1fr 1fr;gap:25px}.rcc-copy{padding-left:0}.rcc-copy h2{font-size:clamp(42px,var(--rcc-fs-heading),56px)}.rcc-features{flex-wrap:wrap;gap:18px}.rcc-feature{padding:0 18px}.rcc-brandline{margin-top:80px}.rcc-card-form{padding:32px}.rcc-submit-row{gap:20px}}
@media(max-width:780px){.rcc-wrap{padding:32px 16px}.rcc-shell{display:block;min-height:auto}.rcc-shell:after{display:none}.rcc-copy{padding:20px 0 35px}.rcc-eyebrow{margin-bottom:30px;font-size:clamp(10px,var(--rcc-fs-eyebrow),14px);letter-spacing:2.5px}.rcc-eyebrow i{width:60px}.rcc-copy h2{font-size:min(var(--rcc-fs-heading),44px);letter-spacing:-2px}.rcc-copy p{font-size:var(--rcc-fs-description)}.rcc-features{margin-top:38px}.rcc-feature{padding:0 12px}.rcc-feature:first-child{padding-left:0}.rcc-feature b,.rcc-feature small{font-size:var(--rcc-fs-feature)}.rcc-card-form{padding:25px 20px}.rcc-form-grid{grid-template-columns:1fr;gap:20px}.rcc-control.full{margin-top:20px}.rcc-submit-row{align-items:flex-start;flex-direction:column;gap:14px}.rcc-button{width:100%;min-width:0;justify-content:center}.rcc-brandline{margin-top:55px}}

/* -------------------------------------------------------------------------
   Mobile-first hardening / responsive overrides
   These rules intentionally scope everything to .rcc-wrap so the plugin
   cannot interfere with the active theme, Elementor, or other forms.
   ------------------------------------------------------------------------- */

/* Prevent long text, form controls, and theme defaults from creating overflow. */
.rcc-wrap,
.rcc-wrap * {
  min-width: 0;
}

.rcc-wrap img,
.rcc-wrap svg {
  max-width: 100%;
  height: auto;
}

.rcc-wrap input,
.rcc-wrap select,
.rcc-wrap textarea,
.rcc-wrap button {
  max-width: 100%;
  -webkit-appearance: none;
  appearance: none;
}

.rcc-wrap input,
.rcc-wrap select,
.rcc-wrap textarea {
  font-size: max(16px, var(--rcc-fs-input));
}

.rcc-wrap select {
  min-height: var(--rcc-input-height);
  padding-right: 42px;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
                    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 19px) 50%, calc(100% - 14px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

.rcc-wrap .rcc-card-form {
  overflow: hidden;
}

.rcc-wrap .rcc-button:disabled {
  cursor: wait;
  transform: none;
}

.rcc-wrap .rcc-result {
  overflow-wrap: anywhere;
}

/* Tablet: keep the two-column composition, but make it breathe. */
@media (max-width: 1100px) {
  .rcc-wrap {
    padding: 42px 20px;
  }

  .rcc-shell {
    width: min(100%, var(--rcc-max));
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: 28px;
  }

  .rcc-copy {
    padding-left: 0;
  }

  .rcc-copy h2 {
    font-size: clamp(42px, 5.4vw, 58px);
    letter-spacing: -2.8px;
  }

  .rcc-features {
    gap: 0;
    flex-wrap: wrap;
  }

  .rcc-feature {
    padding: 10px 16px;
  }

  .rcc-card-form {
    padding: clamp(24px, 4vw, 34px);
  }

  .rcc-form-grid {
    gap: 20px;
  }

  .rcc-submit-row {
    gap: 18px;
  }

  .rcc-button {
    min-width: 210px;
  }
}

/* Mobile: one clean vertical flow. */
@media (max-width: 780px) {
  .rcc-wrap {
    width: 100%;
    padding: 28px 14px;
    overflow: clip;
  }

  .rcc-shell {
    width: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    gap: 0;
  }

  .rcc-shell::after {
    display: none;
  }

  .rcc-copy {
    width: 100%;
    max-width: none;
    padding: 8px 0 30px;
  }

  .rcc-eyebrow {
    width: 100%;
    margin-bottom: 25px;
    gap: 12px;
    font-size: clamp(10px, 2.8vw, 13px);
    letter-spacing: 2px;
    line-height: 1.35;
  }

  .rcc-eyebrow i {
    width: clamp(30px, 12vw, 60px);
    flex: 0 1 auto;
  }

  .rcc-copy h2 {
    max-width: 100%;
    margin-bottom: 18px;
    font-size: clamp(34px, 10vw, 46px);
    line-height: 1.04;
    letter-spacing: -1.8px;
    overflow-wrap: anywhere;
  }

  .rcc-copy p {
    max-width: 100%;
    font-size: clamp(16px, 4.2vw, 19px);
    line-height: 1.55;
  }

  .rcc-features {
    width: 100%;
    margin-top: 30px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
  }

  .rcc-feature,
  .rcc-feature:first-child,
  .rcc-feature:last-child {
    width: 100%;
    min-height: 0;
    padding: 13px 0;
    border-right: 0;
    border-bottom: 1px solid #d3d4cd;
  }

  .rcc-feature:last-child {
    border-bottom: 0;
  }

  .rcc-icon {
    width: 36px;
    height: 36px;
    font-size: 20px;
  }

  .rcc-feature b,
  .rcc-feature small {
    font-size: clamp(14px, 3.8vw, 15px);
  }

  .rcc-brandline {
    width: 100%;
    margin-top: 30px;
    gap: 10px;
    font-size: 9px;
    letter-spacing: 1.8px;
  }

  .rcc-brandline i {
    min-width: 20px;
    flex: 1 1 auto;
  }

  .rcc-brandmark {
    font-size: 28px;
  }

  .rcc-card-form {
    width: 100%;
    max-width: none;
    padding: 24px 18px;
    border-radius: max(10px, min(var(--rcc-radius), 14px));
  }

  .rcc-form-title {
    margin-bottom: 24px;
    font-size: clamp(13px, 3.5vw, 16px);
    line-height: 1.35;
    letter-spacing: 2px;
  }

  .rcc-form-grid {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .rcc-control,
  .rcc-control.full {
    width: 100%;
    margin-top: 0;
  }

  .rcc-control span {
    margin-bottom: 7px;
    font-size: clamp(14px, 3.8vw, 16px);
  }

  .rcc-control input,
  .rcc-control select {
    width: 100%;
    min-height: max(48px, var(--rcc-input-height));
    height: auto;
    padding: 12px 15px;
    line-height: 1.25;
  }

  .rcc-control textarea {
    width: 100%;
    min-height: 105px;
    height: auto;
    padding: 13px 15px;
    line-height: 1.45;
  }

  .rcc-submit-row {
    width: 100%;
    margin-top: 22px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .rcc-button {
    width: 100%;
    min-width: 0;
    min-height: 50px;
    height: auto;
    padding: 13px 18px;
    white-space: normal;
    text-align: center;
    line-height: 1.25;
  }

  .rcc-submit-row small {
    width: 100%;
    max-width: none;
    font-size: max(12px, var(--rcc-fs-disclaimer));
    line-height: 1.5;
  }

  .rcc-result {
    width: 100%;
    margin-top: 20px;
    padding: 18px;
  }

  .rcc-result-value {
    font-size: clamp(26px, 8vw, 34px);
    line-height: 1.15;
    overflow-wrap: anywhere;
  }
}

/* Small phones: reduce chrome and keep every control inside the viewport. */
@media (max-width: 480px) {
  .rcc-wrap {
    padding: 20px 10px;
  }

  .rcc-copy {
    padding-bottom: 24px;
  }

  .rcc-eyebrow {
    gap: 8px;
    letter-spacing: 1.5px;
  }

  .rcc-copy h2 {
    font-size: clamp(31px, 10vw, 40px);
    letter-spacing: -1.4px;
  }

  .rcc-copy p {
    font-size: 16px;
  }

  .rcc-card-form {
    padding: 20px 14px;
    border-radius: 10px;
  }

  .rcc-form-title {
    margin-bottom: 20px;
    letter-spacing: 1.6px;
  }

  .rcc-form-grid {
    gap: 16px;
  }

  .rcc-control input,
  .rcc-control select,
  .rcc-control textarea {
    font-size: 16px;
  }

  .rcc-button {
    min-height: 52px;
  }

  .rcc-brandline {
    font-size: 8px;
  }
}

/* Very narrow screens / embedded Elementor columns. */
@media (max-width: 360px) {
  .rcc-wrap {
    padding-left: 8px;
    padding-right: 8px;
  }

  .rcc-card-form {
    padding-left: 12px;
    padding-right: 12px;
  }

  .rcc-copy h2 {
    font-size: 30px;
  }

  .rcc-eyebrow i {
    display: none;
  }

  .rcc-brandline {
    flex-wrap: wrap;
  }

  .rcc-brandline i {
    order: 3;
    flex-basis: 100%;
  }
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
  .rcc-wrap * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
