/* ==========================================================================
   WordPress-specific additions: things the React prototype handled with
   conditional rendering, WP core classes, Gravity Forms markup, and a11y.
   ========================================================================== */

/* Accessibility */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.rm-skip{position:absolute;left:12px;top:-100px;z-index:100;background:var(--ink-900);color:#fff!important;padding:14px 18px;border-radius:var(--radius-sm);font:600 15px/1 var(--font-body)}
.rm-skip:focus{top:12px}

/* Anchors land below the sticky header (/contact/#estimate) */
html{scroll-padding-top:100px}
#estimate{scroll-margin-top:100px}

/* WP admin bar pushes the sticky header down */
.admin-bar .rm-header{top:32px}
@media (max-width:782px){.admin-bar .rm-header{top:46px}}
@media (max-width:600px){.admin-bar .rm-header{top:0}}

/* Dropdown + mobile menu are toggled with [hidden] by site.js */
.rm-dropdown[hidden],.rm-mmenu[hidden]{display:none}
.rm-mmenu{top:var(--rm-mmenu-top,64px)}
@media (min-width:1221px){.rm-mmenu{display:none!important}}
.rm-nav ul{list-style:none;margin:0;padding:0;display:contents}
.rm-mmenu__row i{font-size:14px;color:var(--ink-600)}
.rm-mmenu__sub[hidden]{display:none}
.rm-mmenu__hours{margin:var(--space-6) 0 0;font-size:15px;color:var(--ink-600)}
.rm-mmenu .rm-btn + .rm-btn{margin-top:var(--space-3)}
body.rm-menu-open{overflow:hidden}

/* Hero video layer */
.rm-hero__media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Placeholder tokens only highlight when the "Highlight placeholders" option is on */
.rm-tok{white-space:normal}

/* Long-form content (single posts, generic prose sections) */
.rm-prose h2:not(.rm-h2){font-size:40px;line-height:1.12;margin:var(--space-12) 0 var(--space-5)}
.rm-prose h3:not(.rm-h3){font-size:24px;line-height:1.2;margin:var(--space-10) 0 var(--space-4)}
.rm-prose h2:not(.rm-h2):first-child,.rm-prose h3:not(.rm-h3):first-child{margin-top:0}
@media (max-width:640px){.rm-prose h2:not(.rm-h2){font-size:30px}}
.rm-prose ul,.rm-prose ol{margin:0 0 var(--space-5);padding-left:1.25em}
.rm-prose li{margin-bottom:var(--space-2)}
.rm-prose img,.rm-prose figure{margin:var(--space-8) 0;border-radius:var(--radius-lg);height:auto}
.rm-prose figcaption{font-size:15px;color:var(--ink-600);margin-top:var(--space-2)}
.rm-prose blockquote{margin:var(--space-8) 0;padding-left:var(--space-6);border-left:3px solid var(--brand-primary);font:800 24px/1.35 var(--font-display);color:var(--ink-900)}
.rm-prose a{text-decoration:underline;text-underline-offset:3px}
.rm-2col .rm-prose + .rm-check,.rm-2col .rm-prose + .rm-note{margin-top:var(--space-8)}
.rm-section--flush-top{padding-top:0!important}
.aligncenter{margin-left:auto;margin-right:auto}
.alignleft{float:left;margin:0 var(--space-6) var(--space-4) 0}
.alignright{float:right;margin:0 0 var(--space-4) var(--space-6)}
.wp-caption{max-width:100%}

/* Post navigation on single posts */
.rm-postnav{display:flex;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;margin-top:var(--space-16);padding-top:var(--space-8);border-top:1px solid var(--ink-200);max-width:40em}
.rm-pagination{margin-top:var(--space-12);display:flex;gap:8px;flex-wrap:wrap}
.rm-pagination .page-numbers{min-width:48px;min-height:48px;display:grid;place-items:center;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--ink-200);color:var(--ink-900);font-weight:600;text-decoration:none!important}
.rm-pagination .page-numbers.current{background:var(--ink-900);border-color:var(--ink-900);color:#fff}

/* 404 */
.rm-404 .rm-btn-row{margin-top:var(--space-8)}

/* ==========================================================================
   Estimate form — Gravity Forms (orbital/gravity-theme CSS is disabled in
   inc/gravity-forms.php, so these rules restyle GF's markup to match .rm-form)
   ========================================================================== */
.rm-form .gform_wrapper{margin:0;padding:0}
.rm-form .gform_heading,.rm-form .gform_required_legend{display:none}
.rm-form .gform_fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);margin:0;padding:0;list-style:none}
.rm-form .gfield{grid-column:1/-1;display:flex;flex-direction:column;gap:8px;margin:0;padding:0;border:0;min-width:0}
.rm-form .gfield--width-half{grid-column:auto}
.rm-form .gfield_label,.rm-form .gform-field-label{font:600 15px/1.2 var(--font-body);color:var(--ink-900);padding:0;margin:0}
.rm-form .gfield_required{color:var(--brand-primary);font-style:normal;margin-left:4px}
.rm-form .gfield_required .gfield_required{margin:0}
.rm-form .ginput_container input,.rm-form .ginput_container textarea,.rm-form .ginput_container select{font:400 17px/1.4 var(--font-body);color:var(--ink-900);min-height:54px;padding:14px 16px;border:1px solid var(--ink-300);border-radius:var(--radius-sm);background:#fff;width:100%;box-shadow:none}
.rm-form .ginput_container textarea{min-height:140px;height:auto;resize:vertical}
.rm-form .ginput_container input:focus,.rm-form .ginput_container textarea:focus{outline:none;border-color:var(--ink-900);box-shadow:0 0 0 3px var(--focus-ring)}
.rm-form .gfield_error input,.rm-form .gfield_error textarea{border-color:var(--brand-primary)}
.rm-form .gfield_description{font-size:15px;color:var(--ink-600)}
.rm-form .gfield_validation_message,.rm-form .validation_message{font-size:14px;color:var(--red-700);background:none;border:0;padding:0;margin:0}
.rm-form .gform_validation_errors{margin:0 0 var(--space-6);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:var(--red-50);border:0;box-shadow:none}
.rm-form .gform_validation_errors h2,.rm-form .gform_submission_error{font:600 15px/1.4 var(--font-body);color:var(--red-700);margin:0}
.rm-form .gform_validation_container,.rm-form .gfield--type-honeypot,.rm-form .gform_hidden,.rm-form .gfield_visibility_hidden{display:none!important}
.rm-form .gform_footer{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:center;justify-content:space-between;margin:var(--space-8) 0 0;padding:0}
.rm-form .gform_footer small{font-size:15px;color:var(--ink-600)}
.rm-form .gform_footer small em{font-style:normal;color:var(--brand-primary)}
.rm-form .gform_ajax_spinner{margin-left:8px}
.rm-form .gform_confirmation_message{margin:0}

@media (max-width:640px){
.rm-form .gform_fields{grid-template-columns:minmax(0,1fr)}
.rm-form .gfield--width-half{grid-column:1/-1}
.rm-form .gform_footer .rm-btn{width:100%}
}

/* Reduced motion — drop transforms */
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}
.rm-scard:hover,.rm-post:hover{transform:none}
.rm-scard:hover .rm-link i{transform:none}
}
