/*
Theme Name: Ralph Law Astra
Template: astra
Version: 1.0.0
Author: Trait Media
Description: Ralph Law branding and layouts on the maintained Astra parent theme.
*/
:root{--ralph-blue:#0403a6;--ralph-ink:#232b35;--ralph-line:#e3e7ec;--ralph-width:1160px}
body{color:var(--ralph-ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.7;background:#fff}
a{color:var(--ralph-blue)}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible{outline:3px solid #e3ac45;outline-offset:4px}
h1,h2,h3,h4,h5,h6{color:var(--ralph-blue);line-height:1.3;font-family:Arial,Helvetica,sans-serif}
h1{font-size:clamp(27px,3vw,38px)}h2{font-size:27px}h3{font-size:22px}h4{font-size:19px}
.ralph-header{background:#fff;border-bottom:1px solid var(--ralph-line)}
.ralph-header-inner{max-width:var(--ralph-width);margin:auto;padding:22px 24px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px}
.ralph-brand img{display:block;width:370px;height:auto;max-width:100%}.ralph-contact-email,.ralph-office-links{font-size:13px;line-height:1.7}.ralph-office-links{text-align:right}.ralph-office-links span{display:block}.ralph-office-links strong{font-weight:400;color:#59616b}.ralph-header a{text-decoration:none}
.ralph-nav{border-top:1px solid #f0f1f4}.ralph-nav-inner{max-width:var(--ralph-width);margin:auto;display:flex;align-items:center;justify-content:center;gap:24px;padding:0 24px}
.ralph-menu{display:flex;justify-content:center;gap:6px;list-style:none;margin:0;padding:0}.ralph-menu li{position:relative;margin:0}.ralph-menu>li>a{display:block;padding:17px 19px;font-size:13px;letter-spacing:.055em;text-transform:uppercase;color:var(--ralph-blue);border-bottom:3px solid transparent}.ralph-menu .current-menu-item>a,.ralph-menu .current-menu-ancestor>a{border-bottom-color:var(--ralph-blue)}
.ralph-menu .sub-menu{display:none;position:absolute;top:100%;left:0;width:280px;margin:0;padding:10px 0;list-style:none;background:#fff;border:1px solid var(--ralph-line);box-shadow:0 10px 25px #15213a14;z-index:1000}.ralph-menu .sub-menu a{display:block;padding:8px 18px;font-size:14px;line-height:1.4}.ralph-menu li:hover>.sub-menu,.ralph-menu li:focus-within>.sub-menu,.ralph-menu li.ralph-sub-open>.sub-menu{display:block}.ralph-menu .sub-menu .sub-menu{left:100%;top:0}.ralph-menu a:hover{background:#f4f5fc}
.ralph-menu-toggle{display:none}.ralph-sub-toggle{padding:3px 7px;background:transparent!important;color:var(--ralph-blue)!important;border:0;font-size:12px;position:absolute;right:0;top:17px}.ralph-menu .menu-item-has-children>a{padding-right:26px}
.ralph-search summary{cursor:pointer;color:var(--ralph-blue);font-size:13px;list-style:none;padding:14px 0}.ralph-search{position:relative}.ralph-search form{position:absolute;right:0;top:100%;width:300px;background:#fff;padding:15px;box-shadow:0 8px 20px #15213a22;z-index:1001}.ralph-search input[type=search]{width:100%}
#content>.ast-container{max-width:var(--ralph-width);padding:0 24px;display:block}#primary{width:100%;margin:0;padding:0}.ralph-page{padding:42px 0 60px}.ralph-page h1{margin:0 0 28px}.ralph-page .entry-content{font-size:16px}.ralph-page .entry-content p{margin-bottom:1.15em}
body.home #content>.ast-container,body.ralph-has-slider #content>.ast-container{max-width:none;padding:0}.home .ralph-page,.ralph-has-slider .ralph-page{padding-top:0}.ralph-page .entry-content>.vc_row{max-width:var(--ralph-width);margin-left:auto;margin-right:auto}.ralph-page .entry-content>.vc_row:first-child:has(rs-module-wrap){max-width:none}.ralph-page .entry-content>.vc_row>.wpb_column{padding-left:0;padding-right:0}.ralph-page .wpb_content_element{margin-bottom:26px}.ralph-page .vc_row{padding-top:0;padding-bottom:0}.ralph-page .vc_column_container>.vc_column-inner{padding-left:18px;padding-right:18px}
.ralph-service-card{display:block;height:100%;border:1px solid var(--ralph-line);background:#fff;text-align:center;padding:24px 16px;margin:0 0 24px;border-radius:3px;transition:box-shadow .18s,transform .18s;text-decoration:none!important}.ralph-service-card:hover{box-shadow:0 7px 22px #18255812;transform:translateY(-3px)}.ralph-service-card img{width:110px;height:110px;object-fit:contain;margin:0 auto 20px}.ralph-service-card h3{font-size:16px;letter-spacing:.025em;text-transform:uppercase;margin:0;line-height:1.45;min-height:2.9em}
.ralph-service-sidebar{background:#f6f7fb;border:1px solid var(--ralph-line);padding:24px;border-radius:3px}.ralph-service-sidebar ul{list-style:none;margin:0}.ralph-service-sidebar li{border-bottom:1px solid var(--ralph-line);padding:9px 0}.ralph-service-sidebar .widget{margin-bottom:28px}.ralph-service-sidebar .widget:last-child{margin-bottom:0}.ralph-service-sidebar h3{font-size:19px}
.ralph-footer{background:#f6f7fa;border-top:3px solid var(--ralph-blue);padding:38px 24px 85px}.ralph-footer-inner{max-width:var(--ralph-width);margin:auto;display:grid;grid-template-columns:240px 1fr;gap:45px}.ralph-footer-legal{font-size:12px;line-height:1.9;color:#505966}.ralph-footer-legal strong{font-weight:600}.ralph-footer-links{margin:0 0 16px;font-size:13px}.ralph-badge{max-width:240px;aspect-ratio:275/163}.ralph-badge iframe{border:0;width:100%;height:100%}.ralph-footer a{color:var(--ralph-blue)}
.gform_wrapper input:not([type=checkbox]):not([type=radio]):not([type=submit]),.gform_wrapper select,.gform_wrapper textarea{border:1px solid #bac3ce;border-radius:3px;background:#fff;padding:11px 13px}.gform_wrapper .gform_button{background:var(--ralph-blue);color:#fff;padding:13px 25px;border:0;border-radius:3px}.gform_wrapper .gfield_required{color:#a32020}.gform_wrapper .gfield{margin-bottom:15px}.gform_wrapper legend{font-size:inherit}.theme_7 .member-name,.theme_8 .member-name,.theme_9 .member-name{font-size:19px!important;line-height:1.4}.imt_team-list-wrapper a{color:var(--ralph-blue)}
.ralph-page table{border-collapse:collapse;width:100%}.ralph-page th,.ralph-page td{padding:12px;border:1px solid var(--ralph-line)}.ralph-page th{background:#f5f6fb}.ralph-page img{height:auto}.ralph-page .wpb_single_image img{max-width:100%}
@media(min-width:769px){.home .entry-content>.vc_row:has(.ralph-service-card){display:flex;align-items:stretch}.home .entry-content>.vc_row:has(.ralph-service-card) .vc_column-inner,.home .entry-content>.vc_row:has(.ralph-service-card) .wpb_wrapper{height:100%}}
@media(max-width:960px){.ralph-header-inner{grid-template-columns:1fr 1fr}.ralph-brand{grid-column:1/-1;grid-row:1;justify-self:center}.ralph-contact-email{grid-row:2}.ralph-office-links{grid-row:2}.ralph-menu>li>a{padding:15px 13px}.ralph-menu .menu-item-has-children>a{padding-right:24px}}
@media(max-width:767px){body{font-size:15px}.ralph-header-inner{padding:20px 18px;gap:15px}.ralph-brand img{width:310px}.ralph-contact-email{font-size:11px;overflow-wrap:anywhere}.ralph-office-links{font-size:11px}.ralph-nav-inner{display:block;padding:0 18px}.ralph-menu-toggle{display:block;width:100%;text-align:left;padding:15px 0;color:var(--ralph-blue)!important;background:transparent!important;border:0;font-size:15px}.ralph-menu-toggle:after{content:'☰';float:right}.ralph-menu{display:none;padding:0 0 15px}.ralph-nav.ralph-open .ralph-menu{display:block}.ralph-menu>li>a{padding:13px 8px;border-bottom:1px solid var(--ralph-line)}.ralph-menu .sub-menu{position:static;width:100%;border:0;box-shadow:none;padding:0 0 0 16px}.ralph-menu li:hover>.sub-menu{display:none}.ralph-menu li.ralph-sub-open>.sub-menu{display:block}.ralph-sub-toggle{top:7px;right:4px;padding:10px 12px}.ralph-search{display:none}.ralph-nav.ralph-open .ralph-search{display:block;padding:0 8px 15px}.ralph-search form{position:static;width:100%;box-shadow:none;padding:8px 0}.ralph-footer-inner{grid-template-columns:1fr;gap:24px}.ralph-badge{max-width:200px}.ralph-footer{padding:30px 22px 90px}#content>.ast-container{padding:0 18px}.ralph-page{padding:28px 0 40px}.ralph-page .vc_column_container>.vc_column-inner{padding-left:18px;padding-right:18px}.ralph-service-card{display:flex;align-items:center;gap:20px;text-align:left;padding:18px;margin-bottom:16px}.ralph-service-card img{width:70px;height:70px;margin:0}.ralph-service-card h3{min-height:0;font-size:16px}.ralph-page .vc_empty_space{max-height:24px}.ralph-page .wpb_wrapper{overflow-wrap:break-word}.ralph-page .TS_Advanced_Tables{overflow-x:auto}.ralph-service-sidebar{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.ralph-service-card{transition:none}.ralph-service-card:hover{transform:none}}
.ralph-page .entry-content .wpb-content-wrapper>.vc_row{max-width:var(--ralph-width);margin-left:auto;margin-right:auto}
.ralph-page .entry-content .wpb-content-wrapper>.vc_row:has(sr7-module),.ralph-page .entry-content .wpb-content-wrapper>.vc_row:has(rs-module-wrap){max-width:none}
.ralph-page .ralph-service-card h3{color:var(--ralph-blue)}
.ralph-service-card img{width:160px;height:90px;object-fit:cover}
@media(max-width:767px){.ralph-service-card img{width:90px;height:65px;flex-shrink:0}.ralph-page .entry-content .wpb-content-wrapper>.vc_row{width:100%;margin-left:0;margin-right:0}}
@media(max-width:767px){.ralph-header-inner{grid-template-columns:1fr;gap:12px}.ralph-contact-email{grid-row:2;text-align:center}.ralph-office-links{grid-row:3;display:flex;justify-content:center;gap:24px;text-align:center}.ralph-office-links strong{display:block}.ralph-office-links a{white-space:nowrap}}

/* Review refinements: keep floated legacy widgets within their own content. */
.ralph-page .wpb_widgetised_column>.wpb_wrapper,
.ralph-page .wpb_widgetised_column .widget,
.ralph-page .wpb_widgetised_column .textwidget {display:flow-root}
.ralph-page .wpb_widgetised_column .widget {clear:both;margin:0 0 28px}
.ralph-page .wpb_widgetised_column .widget:last-child {margin-bottom:0}
.ralph-page .wpb_widgetised_column .textwidget p {margin:0 0 20px}
.ralph-page .wpb_widgetised_column .textwidget p:last-child {margin-bottom:0}
.ralph-page .wpb_widgetised_column .textwidget a:has(img) {display:block}
.ralph-page .wpb_widgetised_column .textwidget img {float:none;display:block;width:100%;max-width:350px;height:auto;margin:0 auto}
.ralph-page .vc_row:has(.wpb_widgetised_column) {margin-bottom:40px}

/* About uses the same edge-to-edge banner treatment as the service heroes. */
body.ralph-about-page #content>.ast-container {max-width:none;padding:0}
.ralph-about-page .ralph-page {padding-top:0}
.ralph-about-page .entry-content .wpb-content-wrapper>.vc_row:first-child {max-width:none}
.ralph-about-page .wpb-content-wrapper>.vc_row:first-child>.vc_column_container>.vc_column-inner {padding:0}
.ralph-about-page .wpb-content-wrapper>.vc_row:first-child .wpb_single_image,
.ralph-about-page .wpb-content-wrapper>.vc_row:first-child figure,
.ralph-about-page .wpb-content-wrapper>.vc_row:first-child .vc_single_image-wrapper {display:block;width:100%;margin:0}
.ralph-about-page .wpb-content-wrapper>.vc_row:first-child img {display:block;width:100%;height:auto}

/* Larger, unboxed homepage picture links. */
.home .ralph-service-card {display:block;border:0;border-radius:0;padding:0;margin:0 0 30px;text-align:center;background:transparent;box-shadow:none;transform:none}
.home .ralph-service-card:hover {box-shadow:none;transform:none}
.home .ralph-service-card img {display:block;width:100%;height:auto;max-width:100%;object-fit:contain;margin:0 auto 16px}
.home .ralph-service-card h3 {min-height:0}
.home .ralph-service-card:hover h3 {text-decoration:underline}

/* Restore the original dark footer palette and centred legal information. */
.ralph-footer {background:#191919;border-top:1px solid #191919;color:#a5a5a5}
.ralph-footer a {color:#d8d8d8}.ralph-footer a:hover {color:#fff}
.ralph-footer-inner {display:flex;flex-direction:column;align-items:center;gap:24px}
.ralph-footer-legal {text-align:center;color:#a5a5a5}
.ralph-badge {width:240px;flex-shrink:0}

.single-team{background:#fff}.ralph-team-profile{display:flex;align-items:flex-start;gap:32px}.ralph-team-photo{flex:0 0 220px}.ralph-team-photo img{width:100%;height:auto}@media(max-width:600px){.ralph-team-profile{display:block}.ralph-team-photo{max-width:220px;margin-bottom:24px}}

/* Keep prose beside full-width banners readable and away from viewport edges. */
.ralph-about-page .wpb-content-wrapper>.vc_row:first-child .wpb_text_column {max-width:var(--ralph-width);margin:26px auto;padding:0 24px;box-sizing:border-box}
/* Legacy entrance effects must not delay or hide useful page content. */
.ralph-page .wpb_animate_when_almost_visible {opacity:1;animation:none;transform:none}

/* Contact's legacy banner lives inside a text block, followed by its intro. */
.ralph-about-page .wpb-content-wrapper>.vc_row:first-child .wpb_text_column:has(img.wp-image-181) {max-width:none;padding:0;margin-top:0}
.ralph-about-page .wpb_text_column:has(img.wp-image-181)>.wpb_wrapper>p:not(:has(img)) {max-width:var(--ralph-width);padding:0 24px;margin-left:auto;margin-right:auto;box-sizing:border-box}
.ralph-about-page .wpb_text_column p:has(img.wp-image-181) {margin:0 0 26px}

.ralph-local-badge{border:1px solid #777;padding:24px 14px;text-align:center;color:#d8d8d8;line-height:1.5}.ralph-local-badge small{display:block;margin-top:8px;font-size:12px}
