/*
Theme Name: JRA Theme
Description: JRA customizations for the Twenty Twenty-Five block theme.
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.7
Requires PHP: 8.4
Text Domain: jra-theme
*/

/* JRA's original visual language, independent of Divi and Bootstrap. */
/* Keep WordPress's mobile toolbar above, rather than over, the site header. */
@media(max-width:600px) {
 body.admin-bar #wpadminbar { position:fixed; top:0; }
}
:root { --jra-blue:#2c67b1; --jra-text:#666; --jra-width:1080px; }
body { margin:0; background:#fff; color:var(--jra-text); font-family:Yantramanav,Arial,sans-serif; font-size:16px; line-height:1.7; }
* { box-sizing:border-box; }
img { max-width:100%; height:auto; }
a { color:var(--jra-blue); text-decoration:none; }
a:hover { text-decoration:underline; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #2c67b1; outline-offset:4px; }
h1,h2,h3,h4,h5,h6 { font-family:Yantramanav,Arial,sans-serif; font-weight:400; line-height:1.15; color:#333; margin:0 0 16px; }
h1 { font-size:48px; } h2 { font-size:32px; } h3 { font-size:26px; } h4 { font-size:22px; }
p { margin:0 0 1em; } ul,ol { padding-left:1.5em; } li { margin:0; }
.wp-site-blocks { padding:0; }
.wp-site-blocks > *, .jra-main, .jra-main > .wp-block-post-content { margin-block-start:0; margin-block-end:0; }
.jra-main .wp-block-post-content > * { max-width:none; margin-block-start:0; }
.jra-site-header { position:relative; z-index:20; background:#fff; border-bottom:1px solid #e8edf2; }
.jra-header-inner { max-width:1440px; margin:auto; min-height:84px; padding:16px 4.5%; gap:32px; }
.jra-header-inner .wp-block-site-logo { flex-shrink:0; }
.jra-header-inner .wp-block-site-logo img { width:226px; max-height:52px; object-fit:contain; }
.jra-header-inner .wp-block-navigation { font-size:16px; color:#35465a; font-weight:500; line-height:1.4; }
.jra-header-inner .wp-block-navigation__container { gap:22px; }
.jra-header-inner .wp-block-navigation a { color:inherit; }
.jra-header-inner .wp-block-navigation__submenu-container { padding:8px; min-width:270px; border:1px solid #e6ecf3; border-radius:12px; box-shadow:0 12px 36px #17345114; }
.jra-header-inner .wp-block-navigation__submenu-container a { font-weight:400; line-height:1.4; padding:11px 12px; border-radius:7px; }
.jra-header-inner .jra-login > a { border:1px solid #d6e0eb; border-radius:8px; padding:10px 18px; }
.jra-header-inner .wp-block-navigation__responsive-container-open { color:var(--jra-blue); }
@media(min-width:1201px) {
 .jra-header-inner .wp-block-navigation__container { align-items:center; gap:24px; }
 .jra-header-inner .wp-block-navigation__container > .wp-block-navigation-item > a {
  padding:12px 0; text-decoration:none; white-space:nowrap;
 }
 .jra-header-inner .wp-block-navigation a:hover,
 .jra-header-inner .wp-block-navigation a[aria-current="page"] { color:var(--jra-blue); text-decoration:none; }
 .jra-header-inner .wp-block-navigation__container > .wp-block-navigation-item > a[aria-current="page"] {
  box-shadow:inset 0 -2px var(--jra-blue);
 }
 .jra-header-inner .wp-block-navigation__submenu-icon { color:#8190a1; margin-left:5px; }
 .jra-header-inner .wp-block-navigation__submenu-icon:focus-visible { outline:2px solid var(--jra-blue); outline-offset:3px; border-radius:3px; }
 .jra-header-inner .wp-block-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > .wp-block-navigation__submenu-container {
  width:280px; min-width:280px; left:0; right:auto; padding:8px;
 }
 .jra-header-inner .wp-block-navigation__submenu-container .wp-block-navigation-item { width:100%; }
 .jra-header-inner .wp-block-navigation__submenu-container a { width:100%; }
 .jra-header-inner .wp-block-navigation__submenu-container a:hover,
 .jra-header-inner .wp-block-navigation__submenu-container a:focus-visible { background:#f4f7fb; }
 .jra-header-inner .wp-block-navigation__container > .wp-block-navigation-item > a[href="https://app.jriva.com/request"] {
  padding:11px 19px; border-radius:8px; background:var(--jra-blue); color:#fff;
 }
 .jra-header-inner .wp-block-navigation__container > .wp-block-navigation-item > a[href="https://app.jriva.com/request"]:hover { background:#225892; }
 .jra-header-inner .wp-block-navigation__container > .jra-login > a {
  padding:10px 17px; color:#385a7c;
 }
 .jra-header-inner .wp-block-navigation__container > .jra-login > a:hover { background:#f4f7fb; border-color:#b9cce0; }
}
.jra-section { padding:65px 0; background:#fff; }
.jra-section:has(> .page-header) { padding:0; }
.jra-section:empty { display:none; }
.jra-row { width:89%; max-width:var(--jra-width); margin:0 auto 35px; display:flex; flex-wrap:wrap; gap:5%; }
.jra-row:last-child { margin-bottom:0; }
.jra-column { flex:1 1 0; min-width:0; }
.jra-column.jra-width-1-3 { flex:0 0 30%; }
.jra-column.jra-width-2-3 { flex:0 0 65%; }
.jra-column.jra-width-1-2 { flex:0 0 47.5%; }
.jra-column.jra-width-1-4 { flex:0 0 21.25%; }
.jra-column.jra-width-4-4,.jra-column.jra-width-1-1 { flex:0 0 100%; }
.jra-text > :last-child { margin-bottom:0; }
.jra-main .jra-text p { margin:0 0 1em; }
.jra-main .jra-text h4 { margin-top:25px; }
.jra-main .jra-text h4:first-child { margin-top:0; }
.jra-text h2 { margin-bottom:24px; }
.jra-text h6 { font-size:13px; line-height:1.5; }
.jra-text iframe,.jra-column iframe { width:100%; max-width:100%; border:0; }
.jra-text img,.jra-column > figure { margin:0; }
.jra-content-image { display:block; width:100%; }
.page-header { height:18vw; display:flex; align-items:center; padding:24px 6%; background-size:cover !important; background-position:center !important; }
.page-header h1 { font-size:72px; margin:0; }
.page-header strong { color:var(--jra-blue); font-weight:700; }
.jra-article,.jra-plain-page { width:89%; max-width:var(--jra-width); margin:60px auto !important; }
.jra-article .wp-block-post-title { font-size:clamp(30px,4vw,48px); }
.jra-article .wp-block-post-date { font-size:14px; margin:0 0 24px; }
.jra-article .wp-block-post-featured-image { max-width:720px; margin:0 0 30px; }
.jra-article .wp-block-post-content { margin-top:28px; }
.jra-article .wp-block-post-content > * { margin-bottom:20px; }
.jra-slider { position:relative; background:#dce5ed; }
.jra-slide { position:relative; min-height:35vw; background-size:cover; background-position:center; display:flex; align-items:center; }
.jra-slide[hidden] { display:none; }
.jra-slide-content { position:relative; width:89%; max-width:var(--jra-width); margin:auto; padding:65px 20px; color:#fff; text-shadow:0 1px 3px #0005; }
.jra-slide h1,.jra-slide h2 { font-size:clamp(26px,3vw,48px); color:#fff; margin-bottom:8px; }
.jra-slide h1 strong,.jra-slide h2 strong { color:var(--jra-blue); }
.jra-slide p { max-width:700px; font-size:clamp(16px,1.5vw,22px); font-weight:500; margin:0 0 30px; }
.jra-slide:nth-child(n+2) .jra-slide-content { color:#333; text-shadow:none; }
.jra-slide:nth-child(n+2) h2 { color:#333; }
.jra-buttons { display:flex; flex-wrap:wrap; gap:15px; }
.jra-button { display:inline-block; padding:15px 35px; border-radius:40px; background:var(--jra-blue); color:#fff; font-size:20px; text-shadow:none; border:1px solid var(--jra-blue); }
.jra-button::after { content:'›'; margin-left:20px; font-size:26px; line-height:0; }
.jra-button:hover { text-decoration:none; filter:brightness(.94); }
.jra-button.is-secondary { background:#fff; color:var(--jra-blue); border-color:#fff; }
.jra-slider-arrow { position:absolute; z-index:2; top:45%; padding:8px 14px; color:#fff; background:transparent; border:0; font-size:45px; cursor:pointer; text-shadow:0 1px 4px #555; }
.jra-slider-arrow[data-prev] { left:1%; } .jra-slider-arrow[data-next] { right:1%; }
.jra-slider-dots { position:absolute; bottom:22px; width:100%; display:flex; justify-content:center; gap:9px; }
.jra-slider-dots button { border:0; background:#ffffff70; width:9px; height:9px; padding:0; border-radius:50%; cursor:pointer; }
.jra-slider-dots button[aria-current="true"] { background:#fff; }
.jra-home-section { padding:65px 0; }
.jra-home-section > h2 { text-align:center; margin-bottom:45px; }
.jra-services-grid,.jra-media-grid { width:89%; max-width:var(--jra-width); margin:auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5%; }
.jra-service { display:grid; grid-template-columns:38px 1fr; column-gap:18px; align-items:start; }
.jra-service-icon { color:var(--jra-blue); width:32px; height:32px; margin-top:3px; }
.jra-service h3 { font-size:20px; margin:0 0 4px; }
.jra-service h3 a { color:#333; }
.jra-service p { margin:0; }
.jra-media-card { position:relative; display:block; background:var(--jra-blue); overflow:hidden; }
.jra-media-card img { display:block; width:100%; aspect-ratio:8/5; object-fit:cover; opacity:.7; }
.jra-media-card:hover img { opacity:.9; }
.jra-media-card span { position:absolute; inset:auto 0 0; color:#fff; padding:14px; font-size:20px; line-height:1.15; background:linear-gradient(transparent,#153452aa); }
.jra-mission { background:#f9f9f9; display:flex; align-items:center; }
.jra-mission-image { width:50%; height:35vw; background:url('/wp-content/uploads/2019/10/bottom-bg-01.png') no-repeat left center / 90% auto; }
.jra-mission-copy { width:50%; padding:35px 5% 35px 0; }
.jra-mission h2 { font-size:clamp(30px,3.5vw,48px); }
.jra-mission strong { display:block; }
.jra-mission p { font-size:19px; }
.jra-home-cta { min-height:30vw; background:url('/wp-content/uploads/2019/10/bottom2-bg.jpg') center/cover; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:60px 20px; }
.jra-home-cta h2 { font-size:clamp(32px,4vw,56px); color:#fff; }
.jra-home-cta .jra-button { background:transparent; border-color:#fff; }
.jra-team-member img { width:100%; max-width:320px; display:block; margin-bottom:25px; }
.jra-team-member h2 { font-size:23px; margin-bottom:6px; }
.jra-team-member .jra-position { font-size:16px; color:#999; }
.jra-jobs { margin-top:25px; }
.jra-jobs details { border:1px solid #ddd; margin-bottom:10px; background:#fff; }
.jra-jobs summary { cursor:pointer; padding:18px 22px; color:#333; font-size:20px; background:#f6f6f6; }
.jra-jobs details[open] summary { color:var(--jra-blue); border-bottom:1px solid #ddd; }
.jra-job-copy { padding:25px; }
.jra-post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; }
.jra-post-card { border:1px solid #ddd; }
.jra-post-card > a img { display:block; width:100%; aspect-ratio:8/5; object-fit:cover; }
.jra-post-card-copy { padding:25px; }
.jra-post-card h2 { font-size:24px; }
.jra-post-card .wp-block-post-featured-image { margin:0; }
.jra-post-card .wp-block-post-featured-image img { display:block; }
.jra-media-query .wp-block-post-template { gap:35px; }
.jra-post-card .wp-block-post-content > * { margin-bottom:16px; }
.wp-block-template-part:has(> .jra-footer-inner) { background:#222; color:#aaa; }
.wp-block-template-part:has(> .jra-footer-inner) h2 { color:#fff; font-size:20px; }
.wp-block-template-part:has(> .jra-footer-inner) a { color:#aaa; }
.jra-site-footer { background:#222; color:#aaa; margin-top:0; }
.jra-footer-inner { width:89%; max-width:var(--jra-width); margin:auto; padding:55px 0 25px; }
.jra-footer-inner .wp-block-columns { gap:40px; margin:0; }
.jra-site-footer h2 { font-size:20px; color:#fff; margin:0 0 20px; }
.jra-site-footer a { color:#aaa; }
.jra-site-footer p { margin:0; }
.jra-social { text-align:right; margin-top:25px !important; font-size:16px; }
.jra-social a { margin-left:20px; }
.jra-site-footer select { max-width:100%; }
.jra-main .wpforms-container { max-width:720px; margin:0 auto; padding:0 20px; }
.jra-main .wpforms-container button[type=submit] { background:var(--jra-blue); border-radius:30px; padding:12px 30px; height:auto; }
.jra-section.has-form { background:#f9f9f9; }
@media(max-width:1200px) {
 .jra-header-inner .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none; }
 .jra-header-inner .wp-block-navigation__responsive-container-open { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid #dce6f1; border-radius:12px; background:#f5f8fc; }
 .jra-header-inner { gap:16px; }
}

/* A consistent, left-aligned navigation drawer at phone and tablet sizes. */
.jra-site-header:has(.is-menu-open) { z-index:1000001; }
.jra-header-inner .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open.has-modal-open {
 position:fixed; inset:0; margin:0; padding:0; background:#11274466;
 z-index:1000001; overflow-y:auto; overscroll-behavior:contain;
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-close {
 width:min(100%,420px); min-height:100vh; min-height:100dvh; max-width:none;
 margin:0 0 0 auto; padding:24px 26px 36px; background:#fff;
 box-shadow:-12px 0 60px #122b4526;
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-dialog { margin:0; position:relative; }
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-dialog::before {
 content:'Menu'; display:block; padding:4px 56px 22px 0; margin-bottom:18px;
 border-bottom:1px solid #e4ebf3; color:#183858; font-size:26px; font-weight:700;
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-close {
 top:0; right:0; width:44px; height:44px; display:flex; align-items:center;
 justify-content:center; border-radius:12px; background:#f1f5fa; color:#25496d;
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content {
 padding:0; align-items:stretch; gap:0;
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__container {
 align-items:stretch; width:100%; gap:0; text-align:left;
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation-item {
 align-items:stretch; width:100%; margin:0;
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
 padding:5px 0; border-bottom:1px solid #edf1f6;
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation-item__content {
 display:block; width:100%; padding:10px 12px; border-radius:8px;
 color:#25415e; font-size:18px; font-weight:500; line-height:1.4;
 text-align:left; text-decoration:none;
}
.jra-header-inner .wp-block-navigation .is-menu-open a.wp-block-navigation-item__content:hover,
.jra-header-inner .wp-block-navigation .is-menu-open a.wp-block-navigation-item__content:focus-visible {
 background:#f1f6fc; color:var(--jra-blue);
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content .has-child > .wp-block-navigation__submenu-container {
 position:static; min-width:0; width:auto; margin:0 0 8px 12px; padding:0 0 0 14px;
 border:0; border-left:2px solid #e2eaf5; gap:0; box-shadow:none;
}
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
 padding:11px 10px; min-height:44px; font-size:16px; font-weight:400; color:#60728a;
}
.jra-header-inner .wp-block-navigation .is-menu-open a:focus-visible { outline:2px solid var(--jra-blue); outline-offset:2px; }
.jra-header-inner .wp-block-navigation .is-menu-open a:focus:not(:focus-visible) { outline:none; }
.jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation-item:has(> a[href="https://app.jriva.com/request"]) {
 border:0; padding-top:20px;
}
.jra-header-inner .wp-block-navigation .is-menu-open a[href="https://app.jriva.com/request"] {
 background:var(--jra-blue); color:#fff; text-align:center; border-radius:10px;
 padding:13px 18px;
}
.jra-header-inner .wp-block-navigation .is-menu-open a[href="https://app.jriva.com/request"]:hover {
 background:#205795; color:#fff;
}
.jra-header-inner .wp-block-navigation .is-menu-open .jra-login { border:0 !important; padding-top:10px !important; }
.jra-header-inner .wp-block-navigation .is-menu-open .jra-login > a {
 border:1px solid #cbd9e9; border-radius:10px; padding:12px 18px;
 text-align:center; color:var(--jra-blue);
}
@media(prefers-reduced-motion:no-preference) {
 .jra-header-inner .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-close { animation:jra-drawer-in .2s ease-out; }
 @keyframes jra-drawer-in { from { transform:translateX(24px); opacity:.6; } to { transform:translateX(0); opacity:1; } }
}
@media(max-width:980px) {
 .jra-header-inner .wp-block-site-logo img { width:216px; max-height:43px; }
 .jra-services-grid { grid-template-columns:1fr; gap:45px; max-width:560px; }
 .jra-slide { min-height:57vw; }
 .jra-slide h1,.jra-slide h2 { font-size:26px; }
 .jra-slide-content { padding:65px 25px; }
 .jra-row { gap:30px; }
 .jra-column.jra-width-1-3,.jra-column.jra-width-2-3,.jra-column.jra-width-1-2,.jra-column.jra-width-1-4 { flex-basis:100%; }
 .jra-team-member img { width:auto; }
 .jra-post-grid { grid-template-columns:1fr; }
 .jra-media-query .wp-block-post-template { grid-template-columns:1fr; }
}
@media(max-width:768px) {
 .page-header { min-height:150px; height:auto; }
 .page-header h1 { font-size:32px; }
}
@media(max-width:600px) {
 .jra-header-inner { padding:15px 6%; min-height:80px; }
 .jra-header-inner .wp-block-site-logo img { width:210px; }
 .jra-section,.jra-home-section { padding:40px 0; }
 .jra-slide { min-height:420px; background-position:60% center; }
 .jra-slide::before { content:''; position:absolute; inset:0; background:#0004; }
 .jra-slide:nth-child(n+2) h2 { color:#fff; text-shadow:0 1px 3px #000; }
 .jra-slide-content { padding:45px 15px; }
 .jra-slide h1,.jra-slide h2 { font-size:28px; }
 .jra-button { font-size:16px; padding:10px 18px; }
 .jra-slider-arrow { padding:5px; font-size:34px; }
 .jra-media-grid { grid-template-columns:1fr; gap:20px; }
 .jra-mission { flex-direction:column; }
 .jra-mission-image { width:100%; height:70vw; }
 .jra-mission-copy { width:100%; padding:20px 6% 35px; }
 .page-header { min-height:160px; }
 .page-header h1 { font-size:32px; }
 .jra-footer-inner .wp-block-columns { flex-direction:column; gap:30px; }
 .jra-article,.jra-plain-page { margin:40px auto !important; }
}
