.oj-service-cta-button,
.oj-service-form__submit{
  appearance:none;border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px;
  border-radius:999px;padding:14px 22px;font-weight:900;line-height:1.2;
  background:linear-gradient(135deg,#d4a64f,#f1d18d);color:#101b2a;box-shadow:0 13px 34px rgba(212,166,79,.24);
}
.oj-service-cta-button:hover,.oj-service-form__submit:hover{transform:translateY(-1px)}
.oj-service-hero-button{cursor:pointer}
.oj-service-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:22px}
.oj-service-modal.is-open{display:flex}
.oj-service-modal__backdrop{position:absolute;inset:0;background:rgba(3,9,16,.78);backdrop-filter:blur(8px)}
.oj-service-modal__dialog{position:relative;z-index:2;width:min(760px,100%);max-height:calc(100vh - 44px);overflow:auto;background:#fff;color:#152235;border-radius:26px;padding:34px;box-shadow:0 35px 100px rgba(0,0,0,.38)}
.oj-service-modal__close{position:absolute;right:16px;top:13px;width:42px;height:42px;border:0;border-radius:50%;background:#f1f3f5;color:#132033;font-size:26px;cursor:pointer}
.oj-service-modal__intro span{display:block;color:#9f7425;font-size:.72rem;font-weight:950;letter-spacing:.14em;margin-bottom:8px}
.oj-service-modal__intro h2{font-size:clamp(2rem,5vw,3.35rem);line-height:1;letter-spacing:-.04em;margin:0 42px 12px 0}
.oj-service-modal__intro p{color:#677486;margin:0 0 24px;max-width:650px}
.oj-service-form{display:grid;gap:15px}
.oj-service-form__row{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.oj-service-form label{display:grid;gap:7px;font-size:.83rem;font-weight:850;color:#344459}
.oj-service-form input,.oj-service-form select,.oj-service-form textarea{width:100%;border:1px solid #cfd7df;border-radius:12px;padding:12px 13px;background:#fbfcfd;color:#152235;outline:none}
.oj-service-form input:focus,.oj-service-form select:focus,.oj-service-form textarea:focus{border-color:#9f7425;box-shadow:0 0 0 3px rgba(212,166,79,.14)}
.oj-service-form__submit{width:100%;margin-top:4px}
.oj-service-form small{color:#7b8794;font-size:.73rem;line-height:1.45}
.oj-service-message{padding:13px 14px;border-radius:12px;margin-bottom:17px;font-weight:750}
.oj-service-message--success{background:#eaf6ef;color:#1e6c4e}.oj-service-message--error{background:#fff0f0;color:#983838}
body.oj-service-modal-open{overflow:hidden}
@media(max-width:640px){
  .oj-service-modal{padding:10px}.oj-service-modal__dialog{padding:27px 19px;border-radius:20px;max-height:calc(100vh - 20px)}
  .oj-service-form__row{grid-template-columns:1fr}
  .hero-actions .oj-service-hero-button{width:100%}
}


/* v1.4.0 — NATURAL INLINE HOMEPAGE PLACEMENT
   Existing CTA section: button sits beside the existing CTA.
   No existing CTA: button follows the section's final statement/text.
   No Elementor columns or section wrappers are added or altered. */
.oj-service-inline-button{
  margin:0;
  white-space:nowrap;
}
.elementor-button-wrapper > .oj-service-inline-adjacent,
.hero-actions > .oj-service-inline-adjacent,
.cta-actions > .oj-service-inline-adjacent,
.section-actions > .oj-service-inline-adjacent,
.button-group > .oj-service-inline-adjacent,
.buttons > .oj-service-inline-adjacent{
  margin-left:12px;
  vertical-align:middle;
}
/* Keep the service CTA aligned with Elementor buttons without inheriting
   Elementor's anchor-only rules. */
.elementor-button-wrapper .oj-service-inline-button{
  display:inline-flex;
  vertical-align:middle;
}
@media(max-width:640px){
  .elementor-button-wrapper > .oj-service-inline-adjacent,
  .hero-actions > .oj-service-inline-adjacent,
  .cta-actions > .oj-service-inline-adjacent,
  .section-actions > .oj-service-inline-adjacent,
  .button-group > .oj-service-inline-adjacent,
  .buttons > .oj-service-inline-adjacent{
    margin-left:0;
    margin-top:10px;
  }
  .oj-service-inline-button{max-width:100%}
}


/* v1.5.0 — OUTSIDE-CONTENT PLACEMENT
   Sections with an existing CTA still receive the service CTA beside it.
   Sections without a CTA get a transparent, section-level button row inserted
   AFTER the Elementor section, never inside a card, column, text widget or box. */
.oj-service-outside-wrap{
  position:relative;
  z-index:5;
  width:100%;
  background:transparent!important;
  pointer-events:none;
  margin-top:-10px;
  margin-bottom:22px;
}
.oj-service-outside-inner{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  pointer-events:none;
}
.oj-service-outside-button{
  pointer-events:auto;
}
@media(max-width:640px){
  .oj-service-outside-wrap{margin-top:-4px;margin-bottom:18px}
  .oj-service-outside-inner{width:calc(100% - 28px)}
  .oj-service-outside-button{width:auto;max-width:100%}
}


/* v1.6.0 — ALIGNMENT REFINEMENT
   No existing CTA: service CTA aligns to the right edge of the section content width.
   Existing CTA: service CTA remains parallel/beside the existing button. */
.oj-service-outside-inner{
  justify-content:flex-end!important;
}
.elementor-button-wrapper > .oj-service-inline-adjacent,
.hero-actions > .oj-service-inline-adjacent,
.cta-actions > .oj-service-inline-adjacent,
.section-actions > .oj-service-inline-adjacent,
.button-group > .oj-service-inline-adjacent,
.buttons > .oj-service-inline-adjacent{
  display:inline-flex!important;
  vertical-align:middle;
}
@media(max-width:640px){
  .oj-service-outside-inner{justify-content:flex-end!important;}
}


/* v1.7.0 — SECTION-SPECIFIC PLACEMENT
   User-requested homepage rules:
   - no injected CTA in sections 2, 4, 5, 6, 7
   - section 3 outside CTA sits slightly higher
   - sections with an existing CTA, especially 8 and 9, share one parallel action row */
.oj-service-section-3{
  margin-top:-38px!important;
}
.oj-service-parallel-host{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  flex-wrap:wrap!important;
}
.oj-service-parallel-host > .oj-service-inline-adjacent{
  margin-left:0!important;
  margin-top:0!important;
  flex:0 0 auto;
}
@media(max-width:640px){
  .oj-service-section-3{margin-top:-22px!important;}
  .oj-service-parallel-host{gap:10px!important;}
}


/* v1.10.0 — SECTION 4 ADDITION ONLY
   Keeps every v1.7 CTA placement rule unchanged and restores one service CTA
   specifically for homepage section 4. No other section rule is changed. */

/* v1.11.0 — SECTION 4 POSITION ONLY
   Move only the Section 4 service CTA slightly upward. No other CTA changes. */
.oj-service-section-4{
  margin-top:-22px!important;
}
@media(max-width:640px){
  .oj-service-section-4{margin-top:-12px!important;}
}


/* v1.12.0 — SECTION 3 POSITION ONLY
   Move only the Section 3 service CTA a little further upward.
   Section 4 and all other CTA placements remain unchanged. */


/* v1.13.0 — SECTION 3 POSITION ONLY
   Move only Section 3 CTA slightly further upward.
   No other CTA placement or styling is changed. */
.oj-service-section-3{
  margin-top:-46px!important;
}
@media(max-width:640px){
  .oj-service-section-3{margin-top:-28px!important;}
}
