/*
Theme Name: Reliant Robotics ROV
Theme URI: https://reliantrobotics.com/
Author: Reliant Robotics
Description: Custom contractor-focused theme for Reliant Robotics ROV systems and subsea services.
Version: 0.13.0
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: reliant-rov
*/
:root{--navy:#071826;--deep:#0b2a43;--blue:#185d8d;--blue2:#2f84b5;--paper:#f6f9fb;--ink:#17232d;--muted:#5c6b75;--line:#d7e2e9}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Segoe UI,Arial,sans-serif;color:var(--ink);line-height:1.58;background:#fff}a{color:inherit}.rr-wrap{width:min(1180px,calc(100% - 40px));margin:auto}
.rr-header{position:sticky;top:0;z-index:999;background:rgba(7,24,38,.98);color:#fff}.admin-bar .rr-header{top:32px}.rr-nav{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.rr-brand{text-decoration:none;display:flex;gap:12px;align-items:center}.rr-mark{width:42px;height:42px;border:2px solid #70bee9;border-radius:50%;position:relative}.rr-mark:before,.rr-mark:after{content:"";position:absolute;left:7px;right:7px;border-top:2px solid #70bee9}.rr-mark:before{top:13px}.rr-mark:after{top:25px}.rr-brand strong{letter-spacing:.065em}.rr-brand small{display:block;color:#a9cfe5;letter-spacing:.14em;font-size:.65rem}.rr-links{display:flex;align-items:center;gap:22px;font-weight:700;font-size:.9rem}.rr-links a{text-decoration:none;color:#dcebf3}.rr-navcta,.rr-btn{display:inline-flex;text-decoration:none;font-weight:800;border-radius:8px;padding:12px 17px}.rr-navcta{background:#f2f7fa;color:#0b2a43!important;padding:10px 14px}.rr-menu{display:none;background:none;color:#fff;border:1px solid #5d7787;border-radius:8px;padding:8px 11px}
.rr-hero,.rr-pagehero{background:radial-gradient(circle at 80% 20%,rgba(50,139,189,.30),transparent 33%),linear-gradient(115deg,#061725,#0b2d48 61%,#104b70);color:#fff}.rr-hero{padding:78px 0 66px}.rr-pagehero{padding:60px 0}.rr-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}.rr-eyebrow,.rr-kicker{text-transform:uppercase;letter-spacing:.17em;font-weight:850;font-size:.8rem;color:#82caef;margin:0 0 12px}.rr-kicker{color:var(--blue)}.rr-hero h1,.rr-pagehero h1{font-size:clamp(2.5rem,5vw,4.6rem);line-height:1;margin:0 0 20px;letter-spacing:-.045em}.rr-lead{font-size:1.12rem;color:#d9eaf4;max-width:730px}.rr-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.rr-primary{background:#eaf6fd;color:#0b2b43}.rr-secondary{border:1px solid #75b5da;color:#fff}.rr-blue{background:var(--blue);color:#fff;border:0;cursor:pointer}
.rr-visual{min-height:330px;border:1px solid rgba(255,255,255,.2);border-radius:20px;background:linear-gradient(145deg,#0a2032,#12547b);display:flex;align-items:end;padding:26px;box-shadow:0 22px 55px rgba(0,0,0,.28)}.rr-visual strong{font-size:1.4rem}.rr-visual span{display:block;color:#9dcce7;font-size:.85rem}
.rr-section{padding:68px 0}.rr-alt{background:var(--paper)}.rr-section h2{font-size:clamp(1.9rem,3.5vw,3rem);line-height:1.06;letter-spacing:-.035em;margin:0 0 13px}.rr-lead2{max-width:780px;color:var(--muted);font-size:1.04rem;margin-bottom:32px}.rr-two{display:grid;grid-template-columns:1fr 1fr;gap:24px}.rr-card,.rr-service{background:#fff;border:1px solid var(--line);border-radius:16px}.rr-card{overflow:hidden}.rr-cardbody{padding:25px}.rr-card h3{font-size:1.5rem;margin:0 0 8px}.rr-card p,.rr-service p{color:var(--muted)}.rr-cardvisual{height:220px;background:linear-gradient(145deg,#071826,#15557c);color:#d9effb;display:flex;align-items:end;padding:22px}.rr-specrow{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:18px}.rr-specrow div{padding:13px;border-right:1px solid var(--line)}.rr-specrow div:last-child{border:0}.rr-specrow b{display:block;color:var(--deep)}.rr-specrow span{font-size:.72rem;color:var(--muted);text-transform:uppercase}.rr-link{display:inline-block;margin-top:13px;color:var(--blue);font-weight:800;text-decoration:none}.rr-services{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.rr-service{padding:22px}.rr-service h3{margin:0 0 7px;font-size:1.08rem}.rr-final{background:linear-gradient(120deg,#0d3e61,#166991);color:#fff;border-radius:22px;padding:42px;display:flex;justify-content:space-between;gap:25px;align-items:center}.rr-final h2{color:#fff;margin:0 0 8px}.rr-final p{margin:0;color:#d9ecf6;max-width:720px}
.rr-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.rr-stat{border:1px solid var(--line);border-radius:12px;padding:18px;background:#f7fbfd}.rr-stat b{display:block;font-size:1.3rem;color:var(--deep)}.rr-stat span{font-size:.76rem;color:var(--muted)}.rr-tablewrap{overflow:auto}.rr-table{width:100%;border-collapse:collapse}.rr-table th,.rr-table td{padding:13px 15px;border:1px solid var(--line);text-align:left}.rr-table th{background:var(--deep);color:#fff}.rr-table td:first-child{font-weight:700}.rr-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;list-style:none;padding:0}.rr-checks li:before{content:"✓";color:var(--blue);font-weight:900;margin-right:8px}
.rr-formgrid{display:grid;grid-template-columns:.72fr 1.28fr;gap:28px}.rr-formnote{background:var(--deep);color:#fff;border-radius:18px;padding:26px}.rr-form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px}.rr-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.rr-field{display:flex;flex-direction:column;gap:6px}.rr-field.full{grid-column:1/-1}.rr-field input,.rr-field select,.rr-field textarea{font:inherit;padding:10px 11px;border:1px solid #bccbd4;border-radius:8px;width:100%}.rr-field textarea{min-height:125px}.rr-formtitle{grid-column:1/-1;font-size:1.05rem;font-weight:800;color:var(--deep);border-bottom:1px solid var(--line);padding-bottom:6px}.rr-hp{position:absolute!important;left:-10000px!important}.rr-msg{padding:14px;border-radius:9px;margin-bottom:16px;font-weight:700}.rr-ok{background:#e8f7ed;color:#194e2c}.rr-error{background:#fdecec;color:#7a1e1e}
.rr-standard{padding:55px 0}.rr-footer{background:#06141f;color:#b8ceda;padding:44px 0 27px}.rr-footergrid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:30px}.rr-footer h3,.rr-footer h4{color:#fff}.rr-footer a{color:#c8dce7;text-decoration:none}.rr-footer ul{list-style:none;padding:0}.rr-legal{margin-top:25px;padding-top:18px;border-top:1px solid #243b49;font-size:.8rem}
@media(max-width:920px){.rr-grid,.rr-formgrid{grid-template-columns:1fr}.rr-links{display:none;position:absolute;top:72px;left:0;right:0;background:#071826;padding:18px;flex-direction:column}.rr-links.open{display:flex}.rr-menu{display:block}.rr-services{grid-template-columns:1fr 1fr}}
@media(max-width:782px){.admin-bar .rr-header{top:46px}}@media(max-width:650px){.rr-wrap{width:min(100% - 26px,1180px)}.rr-two,.rr-services,.rr-footergrid,.rr-fields,.rr-stats{grid-template-columns:1fr}.rr-specrow{grid-template-columns:1fr}.rr-final{flex-direction:column;align-items:flex-start}.rr-checks{grid-template-columns:1fr}}


/* v0.9.1 — WordPress-selectable branding and equipment imagery */
.rr-branding{display:flex;align-items:center;min-width:230px}
.rr-branding .custom-logo-link{display:flex;align-items:center;text-decoration:none}
.rr-branding .custom-logo{display:block;max-height:54px;width:auto;max-width:330px;object-fit:contain}
.rr-imagebox{overflow:hidden;padding:0!important}
.rr-visual.rr-imagebox{display:block;min-height:330px}
.rr-visual.rr-imagebox img{display:block;width:100%;height:330px;object-fit:cover;object-position:center}
.rr-cardvisual.rr-imagebox{display:block;height:220px}
.rr-cardvisual.rr-imagebox img{display:block;width:100%;height:220px;object-fit:cover;object-position:center}
.rr-placeholder{display:flex;align-items:flex-end;padding:22px!important;background:linear-gradient(145deg,#071826,#15557c);color:#d9effb}
.rr-placeholder strong{font-size:1.1rem}
.rr-placeholder span{display:block;color:#9dcce7;font-size:.82rem;margin-top:4px}
@media(max-width:650px){
 .rr-branding .custom-logo{max-height:46px;max-width:245px}
 .rr-visual.rr-imagebox,.rr-visual.rr-imagebox img{min-height:250px;height:250px}
}


/* v0.9.2 — full-width photographic homepage hero */
.rr-hero{
  position:relative;
  min-height:590px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background-color:#071826;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center center;
}
.rr-hero .rr-grid{
  display:block;
  position:relative;
  z-index:2;
}
.rr-hero .rr-grid > div:first-child{
  max-width:760px;
}
.rr-hero .rr-grid > .rr-visual,
.rr-hero .rr-grid > .rr-art,
.rr-hero .rr-grid > .rr-imagebox{
  display:none!important;
}
.rr-hero h1{
  max-width:760px;
  text-shadow:0 2px 16px rgba(0,0,0,.18);
}
.rr-hero .rr-lead{max-width:690px}
.rr-hero:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(4,18,29,.96) 0%,
    rgba(5,26,42,.89) 34%,
    rgba(7,37,57,.72) 54%,
    rgba(7,31,48,.38) 74%,
    rgba(5,22,35,.44) 100%);
}
.rr-hero:after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:110px;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(0deg,rgba(4,18,29,.34),transparent);
}
@media(max-width:920px){
  .rr-hero{min-height:540px}
  .rr-hero .rr-grid > div:first-child{max-width:680px}
  .rr-hero:before{
    background:linear-gradient(90deg,
      rgba(4,18,29,.95) 0%,
      rgba(5,26,42,.88) 50%,
      rgba(7,31,48,.58) 100%);
  }
}
@media(max-width:650px){
  .rr-hero{min-height:560px;padding:62px 0 58px}
  .rr-hero:before{
    background:linear-gradient(180deg,
      rgba(4,18,29,.82) 0%,
      rgba(4,18,29,.89) 52%,
      rgba(4,18,29,.95) 100%);
  }
  .rr-hero h1{font-size:2.7rem}
}


/* v0.9.4 — precision hero image sizing and positioning
   The photograph is rendered on ::before, preserving its original aspect ratio via background-size:cover.
   Zoom uses transform:scale(), so the image never stretches independently in X or Y. */
.rr-hero{
  --rr-hero-zoom:1;
  --rr-hero-x:50%;
  --rr-hero-y:50%;
  --rr-hero-height:590px;
  --rr-hero-overlay:.70;
  min-height:var(--rr-hero-height);
  background-image:none!important;
  isolation:isolate;
}
.rr-hero:before{
  content:"";
  position:absolute;
  inset:-1px;
  z-index:0;
  pointer-events:none;
  background-color:#071826;
  background-repeat:no-repeat;
  background-size:cover;
  background-position:var(--rr-hero-x) var(--rr-hero-y);
  transform:scale(var(--rr-hero-zoom));
  transform-origin:var(--rr-hero-x) var(--rr-hero-y);
  transition:transform .12s ease-out, background-position .12s ease-out;
}
.rr-hero:after{
  content:"";
  position:absolute;
  inset:0;
  height:auto;
  z-index:1;
  pointer-events:none;
  opacity:var(--rr-hero-overlay);
  background:
    linear-gradient(90deg,
      rgba(4,18,29,1) 0%,
      rgba(5,26,42,.94) 34%,
      rgba(7,37,57,.72) 54%,
      rgba(7,31,48,.32) 74%,
      rgba(5,22,35,.34) 100%),
    linear-gradient(0deg,rgba(4,18,29,.30),transparent 24%);
}
.rr-hero .rr-grid{
  position:relative;
  z-index:2;
}
@media(max-width:920px){
  .rr-hero{min-height:min(var(--rr-hero-height),620px)}
}
@media(max-width:650px){
  .rr-hero{
    min-height:min(var(--rr-hero-height),620px);
    padding:62px 0 58px;
  }
  .rr-hero:after{
    background:linear-gradient(180deg,
      rgba(4,18,29,.58) 0%,
      rgba(4,18,29,.78) 52%,
      rgba(4,18,29,.96) 100%);
  }
}


/* v0.9.5 — 100% means FIT ENTIRE ORIGINAL IMAGE.
   contain guarantees the whole photograph is visible at 100% with no cropping.
   Zoom above 100% enlarges the image proportionally and may crop at the hero edges. */
.rr-hero:before{
  background-size:contain!important;
  background-position:var(--rr-hero-x) var(--rr-hero-y);
}


/* v0.9.6 — reusable image-frame controls for every Reliant image placement.
   Frame height is independent of image zoom. At 100% zoom, the complete image
   is shown inside its frame with original aspect ratio preserved. */
.rr-imagebox{
  --rr-img-zoom:1;
  --rr-img-x:50%;
  --rr-img-y:50%;
  --rr-img-height:220px;
  position:relative;
  display:block!important;
  height:var(--rr-img-height)!important;
  min-height:0!important;
  overflow:hidden;
  background:#071826;
}
.rr-imagebox img{
  display:block;
  width:100%!important;
  height:100%!important;
  max-width:none;
  object-fit:contain!important;
  object-position:var(--rr-img-x) var(--rr-img-y)!important;
  transform:scale(var(--rr-img-zoom));
  transform-origin:var(--rr-img-x) var(--rr-img-y);
  transition:transform .12s ease-out, object-position .12s ease-out;
}
.rr-cardvisual.rr-imagebox,
.rr-visual.rr-imagebox{
  height:var(--rr-img-height)!important;
  min-height:0!important;
}
.rr-imagebox.rr-placeholder{
  display:flex!important;
  align-items:flex-end;
  padding:22px!important;
}
@media(max-width:650px){
  .rr-cardvisual.rr-imagebox,
  .rr-visual.rr-imagebox{
    height:var(--rr-img-height)!important;
    min-height:0!important;
  }
}

/* Homepage hero uses the same concepts but retains its photographic-background treatment. */
.rr-hero{
  --rr-hero-zoom:1;
  --rr-hero-x:50%;
  --rr-hero-y:50%;
  --rr-hero-height:590px;
  --rr-hero-overlay:.70;
  min-height:var(--rr-hero-height)!important;
}


/* v0.9.7 — true image panning.
   Position sliders now physically translate the picture, so they remain effective
   even when "Fit Entire Image" leaves no spare space on that axis. */
.rr-imagebox{
  --rr-img-pan-x:0%;
  --rr-img-pan-y:0%;
}
.rr-imagebox img{
  object-position:center center!important;
  transform:
    translate(var(--rr-img-pan-x), var(--rr-img-pan-y))
    scale(var(--rr-img-zoom))!important;
  transform-origin:center center!important;
}
.rr-hero{
  --rr-hero-pan-x:0%;
  --rr-hero-pan-y:0%;
}
.rr-hero:before{
  background-position:center center!important;
  transform:
    translate(var(--rr-hero-pan-x), var(--rr-hero-pan-y))
    scale(var(--rr-hero-zoom))!important;
  transform-origin:center center!important;
}


/* v0.10.0 — selectable logo treatments */
.rr-branding .custom-logo-link{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
}
.rr-branding .custom-logo{
  display:block;
  max-height:54px;
  width:auto;
  max-width:330px;
  object-fit:contain;
}

/* Colorized mode uses the transparent PNG's alpha channel as a mask.
   This allows any selected solid logo color without altering the uploaded file. */
.rr-logo-treatment-colorized .custom-logo{
  visibility:hidden;
}
.rr-logo-treatment-colorized .custom-logo-link::after{
  content:"";
  display:block;
  width:var(--rr-logo-render-width,220px);
  height:var(--rr-logo-render-height,54px);
  max-width:330px;
  max-height:54px;
  background:var(--rr-logo-color,#ffffff);
  -webkit-mask-image:var(--rr-logo-mask);
  mask-image:var(--rr-logo-mask);
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:left center;
  mask-position:left center;
  -webkit-mask-size:contain;
  mask-size:contain;
}

/* Light-panel mode retains the original PNG and places it on a light surface. */
.rr-logo-treatment-panel .custom-logo-link{
  background:var(--rr-logo-panel-bg,#ffffff);
  padding:8px 12px;
  border-radius:8px;
}
.rr-logo-treatment-panel .custom-logo{
  max-height:46px;
}

@media(max-width:650px){
  .rr-branding .custom-logo{max-height:46px;max-width:245px}
  .rr-logo-treatment-colorized .custom-logo-link::after{
    max-height:46px;
    max-width:245px;
  }
  .rr-logo-treatment-panel .custom-logo{max-height:40px}
}


/* v0.10.1 — logo size, movement and foreground overlay controls.
   Width and height are always changed together from the source aspect ratio. */
.rr-header,
.rr-nav,
.rr-branding{
  overflow:visible;
}

.rr-branding{
  position:relative;
  z-index:1002;
}

.rr-branding .custom-logo-link{
  width:var(--rr-logo-display-width,220px)!important;
  height:var(--rr-logo-display-height,54px)!important;
  max-width:none!important;
  max-height:none!important;
  flex:0 0 auto;
  transform:translate(var(--rr-logo-move-x,0px),var(--rr-logo-move-y,0px));
  transform-origin:left center;
  transition:transform .12s ease-out,width .12s ease-out,height .12s ease-out;
}

.rr-branding .custom-logo{
  display:block;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
}

.rr-logo-treatment-colorized .custom-logo-link::after{
  position:absolute;
  inset:0;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
}

.rr-logo-treatment-panel .custom-logo-link{
  box-sizing:content-box;
}

.rr-logo-layer-normal .rr-branding .custom-logo-link{
  z-index:1003;
}

.rr-logo-layer-overlay .rr-branding{
  z-index:5000;
}

.rr-logo-layer-overlay .rr-branding .custom-logo-link{
  position:relative;
  z-index:5001;
}

/* The sticky header already sits above the hero. In Overlay mode, a vertically
   translated logo may extend beyond the header and remain in front of the hero image. */
.rr-logo-layer-overlay .rr-header{
  z-index:4999;
  overflow:visible!important;
}

@media(max-width:650px){
  .rr-branding .custom-logo-link{
    max-width:none!important;
    max-height:none!important;
  }
}


/* v0.10.2 — homepage Hero Display Mode */
.rr-hero-mode-fit .rr-hero:before{
  background-size:contain!important;
}
.rr-hero-mode-fill .rr-hero:before{
  background-size:cover!important;
}
.rr-hero-mode-auto .rr-hero:before{
  background-size:contain!important;
}

/* Auto Fit by Screen:
   narrower/customizer-style viewports show the whole photograph;
   wide desktop viewports fill the entire Hero area edge-to-edge. */
@media(min-width:1200px){
  .rr-hero-mode-auto .rr-hero:before{
    background-size:cover!important;
  }
}


/* v0.10.4 — Hero mode is now driven primarily by generated CSS.
   These utility classes are used for immediate Customizer preview. */
.rr-hero.rr-live-mode-fit:before{background-size:contain!important}
.rr-hero.rr-live-mode-fill:before{background-size:cover!important}
.rr-hero.rr-live-mode-auto:before{background-size:contain!important}
@media(min-width:1200px){
  .rr-hero.rr-live-mode-auto:before{background-size:cover!important}
}

/* v0.11.0 — Global Typography controls */
:root{
  --rr-font-family:Arial,Helvetica,sans-serif;
  --rr-body-font-size:18px;
  --rr-body-line-height:1.55;
  --rr-paragraph-spacing:16px;
  --rr-h1-size:56px; --rr-h1-weight:700; --rr-h1-line-height:1.06; --rr-h1-margin-top:0px; --rr-h1-margin-bottom:20px;
  --rr-h2-size:38px; --rr-h2-weight:700; --rr-h2-line-height:1.12; --rr-h2-margin-top:28px; --rr-h2-margin-bottom:14px;
  --rr-h3-size:26px; --rr-h3-weight:700; --rr-h3-line-height:1.18; --rr-h3-margin-top:22px; --rr-h3-margin-bottom:10px;
  --rr-nav-font-size:16px; --rr-nav-font-weight:700;
  --rr-button-font-size:16px; --rr-button-font-weight:700;
  --rr-list-spacing:8px;
}
body{font-family:var(--rr-font-family)!important;font-size:var(--rr-body-font-size)!important;line-height:var(--rr-body-line-height)!important;}
.entry-content p,.page-content p,.rr-content p,.rr-section p,main p{
  font-family:var(--rr-font-family)!important;font-size:var(--rr-body-font-size)!important;
  line-height:var(--rr-body-line-height)!important;margin-top:0;margin-bottom:var(--rr-paragraph-spacing)!important;
}
h1,.entry-content h1,.page-content h1,.rr-content h1,.rr-section h1{
  font-family:var(--rr-font-family)!important;font-size:var(--rr-h1-size)!important;font-weight:var(--rr-h1-weight)!important;
  line-height:var(--rr-h1-line-height)!important;margin-top:var(--rr-h1-margin-top)!important;margin-bottom:var(--rr-h1-margin-bottom)!important;
}
h2,.entry-content h2,.page-content h2,.rr-content h2,.rr-section h2{
  font-family:var(--rr-font-family)!important;font-size:var(--rr-h2-size)!important;font-weight:var(--rr-h2-weight)!important;
  line-height:var(--rr-h2-line-height)!important;margin-top:var(--rr-h2-margin-top)!important;margin-bottom:var(--rr-h2-margin-bottom)!important;
}
h3,.entry-content h3,.page-content h3,.rr-content h3,.rr-section h3{
  font-family:var(--rr-font-family)!important;font-size:var(--rr-h3-size)!important;font-weight:var(--rr-h3-weight)!important;
  line-height:var(--rr-h3-line-height)!important;margin-top:var(--rr-h3-margin-top)!important;margin-bottom:var(--rr-h3-margin-bottom)!important;
}
.rr-nav a,nav a,.main-navigation a,.primary-navigation a{
  font-family:var(--rr-font-family)!important;font-size:var(--rr-nav-font-size)!important;font-weight:var(--rr-nav-font-weight)!important;
}
.rr-btn,button,input[type="button"],input[type="submit"],.wp-block-button__link{
  font-family:var(--rr-font-family)!important;font-size:var(--rr-button-font-size)!important;font-weight:var(--rr-button-font-weight)!important;
}
.entry-content li,.page-content li,.rr-content li,.rr-section li,main li{
  line-height:var(--rr-body-line-height)!important;margin-bottom:var(--rr-list-spacing)!important;
}


/* v0.12.0 — Primary Navigation */
.rr-nav{display:flex;align-items:center;margin-left:auto;position:relative;z-index:4100}
.rr-primary-menu{list-style:none;display:flex;align-items:center;gap:28px;margin:0;padding:0}
.rr-primary-menu>li{position:relative;margin:0;padding:0}
.rr-primary-menu a{display:block;text-decoration:none;color:inherit;white-space:nowrap}
.rr-primary-menu>li>a{padding:14px 0}
.rr-primary-menu .sub-menu{list-style:none;position:absolute;top:calc(100% - 2px);left:-18px;min-width:265px;margin:0;padding:10px 0;background:#0d1d2b;border:1px solid rgba(255,255,255,.10);border-radius:8px;box-shadow:0 14px 32px rgba(0,0,0,.28);opacity:0;visibility:hidden;transform:translateY(8px);transition:.15s;z-index:5000}
.rr-primary-menu .sub-menu a{padding:11px 18px;color:#f7fbff;font-size:14px;line-height:1.3}
.rr-primary-menu li:hover>.sub-menu,.rr-primary-menu li:focus-within>.sub-menu,.rr-primary-menu li.rr-submenu-open>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.rr-primary-menu .menu-item-has-children>a::after,.rr-primary-menu-fallback>li:has(.sub-menu)>a::after{content:"▾";display:inline-block;margin-left:6px;font-size:.72em}
.rr-primary-menu .rr-menu-cta>a{background:#eef5fa;color:#10243a!important;border-radius:8px;padding:13px 18px!important;font-weight:700}
.rr-nav-toggle{display:none;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;border-radius:7px;padding:9px 11px;cursor:pointer}
@media(max-width:980px){
.rr-nav-toggle{display:inline-flex}
.rr-primary-menu{display:none;position:absolute;right:0;top:calc(100% + 12px);width:min(360px,calc(100vw - 28px));max-height:calc(100vh - 110px);overflow:auto;flex-direction:column;align-items:stretch;gap:0;background:#0d1d2b;border:1px solid rgba(255,255,255,.10);border-radius:10px;box-shadow:0 16px 38px rgba(0,0,0,.32);padding:10px}
.rr-nav.rr-nav-open .rr-primary-menu{display:flex}
.rr-primary-menu>li>a{padding:12px}
.rr-primary-menu .sub-menu{position:static;min-width:0;box-shadow:none;border:0;border-left:2px solid rgba(255,255,255,.12);border-radius:0;margin:0 0 4px 12px;padding:0 0 0 8px;opacity:1;visibility:visible;transform:none;display:none;background:transparent}
.rr-primary-menu li.rr-submenu-open>.sub-menu{display:block}
.rr-primary-menu .rr-menu-cta>a{margin-top:6px;text-align:center}
}


/* v0.12.1 — compactable header */
:root{
  --rr-header-pad-y:22px;
  --rr-header-min-height:0px;
}
.rr-header,
header.rr-header{
  min-height:var(--rr-header-min-height)!important;
}
.rr-header .rr-inner,
.rr-header .rr-wrap,
.rr-header-inner,
header.rr-header > .rr-container,
header.rr-header > .container{
  padding-top:var(--rr-header-pad-y)!important;
  padding-bottom:var(--rr-header-pad-y)!important;
}

/* Fallback for this theme's header when the immediate inner wrapper uses a generic container */
.rr-header{
  padding-top:var(--rr-header-pad-y);
  padding-bottom:var(--rr-header-pad-y);
  box-sizing:border-box;
}
.rr-header > *{
  box-sizing:border-box;
}


/* v0.12.2 — reusable Request ROV Availability button */
.rr-rra-button,
a.rr-rra-button{
  display:inline-block;
  background:#eef5fa;
  color:#10243a!important;
  border:1px solid rgba(16,36,58,.08);
  border-radius:8px;
  padding:13px 18px;
  font-weight:700;
  line-height:1.2;
  text-decoration:none!important;
}
.rr-rra-button:hover,
.rr-rra-button:focus{
  background:#ffffff;
  color:#10243a!important;
  text-decoration:none!important;
}


/* ============================================================
   v0.13.0 — Commercial capability-sheet page system
   ============================================================ */

.rr-detail-hero .rr-grid{
  align-items:center;
  gap:42px;
}
.rr-detail-hero .rr-actions{
  margin-top:24px;
}
.rr-detail-hero .rr-visual{
  min-width:0;
}

.rr-detail-intro{
  max-width:820px;
}

.rr-system-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-top:28px;
}
.rr-system-stat{
  background:#f2f6f9;
  border:1px solid #dce5eb;
  border-radius:9px;
  padding:18px;
}
.rr-system-stat b{
  display:block;
  color:#10263a;
  font-size:22px;
  line-height:1.1;
  margin-bottom:6px;
}
.rr-system-stat span{
  display:block;
  color:#5e6d79;
  font-size:14px;
  line-height:1.35;
}

.rr-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:38px;
  align-items:start;
}
.rr-detail-grid.rr-detail-grid-reverse > :first-child{order:2}
.rr-detail-grid.rr-detail-grid-reverse > :last-child{order:1}

.rr-detail-image .rr-imagebox{
  margin:0;
}

.rr-spec-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid #d8e0e7;
  border-radius:10px;
  background:#fff;
}
.rr-spec-table th{
  background:#10263a;
  color:#fff;
  text-align:left;
  font-weight:700;
  padding:13px 15px;
}
.rr-spec-table td{
  padding:11px 15px;
  border-top:1px solid #e4e9ed;
  vertical-align:top;
}
.rr-spec-table tbody tr:nth-child(even){
  background:#f5f7f9;
}
.rr-spec-table td:first-child{
  width:40%;
  font-weight:600;
}

.rr-capability-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:24px;
}
.rr-capability-card{
  background:#fff;
  border:1px solid #dfe6eb;
  border-radius:9px;
  padding:20px;
}
.rr-capability-card h3{
  margin-top:0;
  margin-bottom:8px;
  font-size:19px;
}
.rr-capability-card p:last-child{margin-bottom:0}

.rr-operation-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 28px;
  margin-top:18px;
}
.rr-operation-item{
  position:relative;
  padding-left:22px;
}
.rr-operation-item:before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  font-weight:800;
  color:#1769a0;
}

.rr-system-note{
  margin-top:24px;
  padding:18px 20px;
  background:#f6f8fa;
  border-left:4px solid #7ebbe6;
  border-radius:0 8px 8px 0;
}
.rr-system-note p:last-child{margin-bottom:0}

.rr-system-cta{
  margin-top:30px;
  padding:28px 30px;
  background:#eaf1f6;
  border-radius:10px;
}
.rr-system-cta h2,
.rr-system-cta h3{
  margin-top:0;
}
.rr-system-cta .rr-rra-button{
  background:#1769a0!important;
  color:#fff!important;
  border:1px solid #1769a0!important;
}
.rr-system-cta .rr-rra-button:hover,
.rr-system-cta .rr-rra-button:focus{
  background:#125780!important;
  color:#fff!important;
}

.rr-service-batch-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:26px;
}
.rr-service-batch-card{
  background:#fff;
  border:1px solid #dfe6eb;
  border-radius:9px;
  padding:22px;
}
.rr-service-batch-card h2,
.rr-service-batch-card h3{
  margin-top:0;
}
.rr-service-batch-card ul{
  margin-bottom:14px;
}
.rr-system-fit{
  color:#315b7b;
  font-weight:700;
  font-size:14px;
}

.rr-process-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  counter-reset:rrprocess;
  margin-top:24px;
}
.rr-process-step{
  counter-increment:rrprocess;
  background:#f4f7f9;
  border-radius:9px;
  padding:20px;
}
.rr-process-step:before{
  content:counter(rrprocess);
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#1769a0;
  color:#fff;
  font-weight:800;
  margin-bottom:12px;
}
.rr-process-step h3{
  margin-top:0;
  font-size:18px;
}

@media(max-width:900px){
  .rr-system-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rr-detail-grid{grid-template-columns:1fr}
  .rr-detail-grid.rr-detail-grid-reverse > :first-child,
  .rr-detail-grid.rr-detail-grid-reverse > :last-child{order:initial}
  .rr-capability-grid{grid-template-columns:1fr}
  .rr-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:650px){
  .rr-system-stats{grid-template-columns:1fr 1fr}
  .rr-operation-grid{grid-template-columns:1fr}
  .rr-service-batch-grid{grid-template-columns:1fr}
  .rr-process-grid{grid-template-columns:1fr}
  .rr-system-cta{padding:22px}
}


/* ============================================================
   v0.14.6 — Mobile / narrow-screen layout correction
   Prevent desktop branding and typography settings from forcing
   horizontal overflow in the WordPress mobile preview or phones.
   ============================================================ */

html, body{
  max-width:100%;
}

img, video, iframe{
  max-width:100%;
}

@media(max-width:650px){

  html,
  body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
  }

  .rr-wrap{
    width:calc(100% - 24px)!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  /* Header: allow the branding area to shrink instead of setting
     the minimum page width from desktop logo dimensions. */
  .rr-header .rr-wrap,
  .rr-header .rr-nav{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .rr-branding{
    min-width:0!important;
    max-width:calc(100% - 58px)!important;
    flex:1 1 auto!important;
    overflow:visible;
  }

  .rr-branding .custom-logo-link{
    width:min(var(--rr-logo-display-width,220px),calc(100vw - 92px))!important;
    max-width:calc(100vw - 92px)!important;
    height:min(var(--rr-logo-display-height,54px),68px)!important;
    max-height:68px!important;
    transform:none!important;
  }

  .rr-branding .custom-logo{
    width:100%!important;
    height:100%!important;
    object-fit:contain!important;
    object-position:left center!important;
  }

  .rr-nav-toggle{
    flex:0 0 auto!important;
    margin-left:8px;
  }

  .rr-primary-menu{
    width:calc(100vw - 24px)!important;
    max-width:360px!important;
    right:0!important;
  }

  /* Desktop typography controls remain useful on desktop, while
     phone headings scale to the available screen width. */
  h1,
  .entry-content h1,
  .page-content h1,
  .rr-content h1,
  .rr-section h1,
  .rr-hero h1,
  .rr-pagehero h1{
    font-size:clamp(2.15rem,11vw,3.05rem)!important;
    line-height:1.04!important;
    letter-spacing:-.035em!important;
    overflow-wrap:anywhere;
  }

  h2,
  .entry-content h2,
  .page-content h2,
  .rr-content h2,
  .rr-section h2{
    font-size:clamp(1.65rem,7.5vw,2.15rem)!important;
    line-height:1.1!important;
    overflow-wrap:anywhere;
  }

  h3,
  .entry-content h3,
  .page-content h3,
  .rr-content h3,
  .rr-section h3{
    font-size:clamp(1.25rem,5.5vw,1.65rem)!important;
    line-height:1.16!important;
    overflow-wrap:anywhere;
  }

  .rr-hero{
    min-height:0!important;
    padding:56px 0 50px!important;
  }

  .rr-pagehero{
    padding:46px 0!important;
  }

  .rr-detail-hero .rr-grid,
  .rr-grid,
  .rr-two,
  .rr-services,
  .rr-footergrid,
  .rr-fields,
  .rr-stats,
  .rr-formgrid,
  .rr-capability-grid,
  .rr-service-batch-grid,
  .rr-process-grid{
    grid-template-columns:1fr!important;
    min-width:0!important;
  }

  .rr-grid > *,
  .rr-two > *,
  .rr-detail-grid > *,
  .rr-services > *,
  .rr-footergrid > *{
    min-width:0!important;
    max-width:100%!important;
  }

  .rr-visual,
  .rr-imagebox,
  .rr-cardvisual{
    max-width:100%!important;
  }

  .rr-visual.rr-imagebox img,
  .rr-cardvisual.rr-imagebox img,
  .rr-imagebox img{
    max-width:100%!important;
  }

  .rr-actions{
    gap:10px;
  }

  .rr-actions .rr-btn,
  .rr-actions .rr-rra-button{
    max-width:100%;
  }

  .rr-system-stats{
    grid-template-columns:1fr 1fr!important;
  }

  .rr-operation-grid{
    grid-template-columns:1fr!important;
  }

  /* Specification/comparison tables may legitimately be wider than
     a phone. Let the table itself scroll without widening the page. */
  .rr-spec-table,
  .rr-compare-table{
    display:block;
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  .rr-spec-table th,
  .rr-spec-table td,
  .rr-compare-table th,
  .rr-compare-table td{
    min-width:125px;
  }

  .rr-system-cta,
  .rr-final{
    max-width:100%!important;
  }
}

@media(max-width:420px){
  .rr-wrap{
    width:calc(100% - 20px)!important;
  }

  .rr-branding .custom-logo-link{
    width:min(var(--rr-logo-display-width,220px),calc(100vw - 82px))!important;
    max-width:calc(100vw - 82px)!important;
    height:min(var(--rr-logo-display-height,54px),60px)!important;
  }

  .rr-system-stats{
    grid-template-columns:1fr!important;
  }
}


/* ============================================================
   v0.14.7 — Header navigation cleanup
   ============================================================ */

/* Obsolete pre-v0.12 hamburger. The active mobile control is .rr-nav-toggle. */
.rr-menu{
  display:none!important;
}

@media(max-width:980px){
  nav.rr-nav{
    flex:0 0 auto;
    margin-left:auto;
  }

  nav.rr-nav .rr-nav-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    position:relative;
    z-index:5201;
  }

  nav.rr-nav.rr-nav-open .rr-primary-menu{
    display:flex;
  }
}


/* ============================================================
   v0.15.5 — Mobile Home + shared mobile header refinement
   Desktop layout is intentionally unchanged.
   ============================================================ */

@media(max-width:650px){

  /* Header: larger readable logo + dedicated hamburger space. */
  .rr-header{
    --rr-header-pad-y:8px;
  }

  .rr-header .rr-wrap,
  .rr-header .rr-nav{
    min-height:62px!important;
  }

  .rr-branding{
    max-width:calc(100% - 54px)!important;
  }

  .rr-branding .custom-logo-link{
    width:min(250px,calc(100vw - 86px))!important;
    max-width:calc(100vw - 86px)!important;
    height:54px!important;
    max-height:54px!important;
  }

  .rr-branding .custom-logo{
    object-fit:contain!important;
    object-position:left center!important;
  }

  .rr-nav-toggle{
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    padding:8px!important;
    margin-left:6px!important;
    align-self:center;
  }

  .rr-primary-menu{
    top:calc(100% + 6px)!important;
  }

  /* Home/general hero: less compressed and more deliberate on phones. */
  .rr-hero{
    padding:42px 0 42px!important;
  }

  .rr-hero .rr-grid{
    gap:28px!important;
  }

  .rr-hero .rr-eyebrow{
    font-size:.72rem!important;
    line-height:1.45!important;
    letter-spacing:.14em!important;
    max-width:30rem;
    overflow-wrap:normal;
  }

  .rr-hero h1{
    font-size:clamp(2rem,10vw,2.7rem)!important;
    line-height:1.03!important;
    letter-spacing:-.035em!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  .rr-hero .rr-lead{
    font-size:1rem!important;
    line-height:1.55!important;
  }

  .rr-hero .rr-actions{
    margin-top:22px!important;
  }

  /* Keep mobile CTAs easy to tap without making them edge-to-edge. */
  .rr-actions .rr-btn,
  .rr-actions .rr-rra-button{
    min-height:44px;
    align-items:center;
    justify-content:center;
  }

  /* Home system cards. */
  .rr-cardbody{
    padding:21px!important;
  }

  .rr-cardbody > p{
    line-height:1.55;
  }

  /*
   * Keep the three headline system specifications together on a phone.
   * This replaces the earlier one-column mobile rule.
   */
  .rr-specrow{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  .rr-specrow div{
    min-width:0;
    padding:11px 7px!important;
  }

  .rr-specrow b{
    font-size:.92rem;
    line-height:1.2;
  }

  .rr-specrow span{
    font-size:.61rem!important;
    line-height:1.3;
    letter-spacing:.02em;
    overflow-wrap:normal;
  }

  /* Services: more breathing room without adding excessive page length. */
  .rr-services{
    gap:14px!important;
  }

  .rr-service{
    padding:20px!important;
  }

  .rr-service h3{
    line-height:1.25;
    margin-bottom:8px!important;
  }

  .rr-service p{
    line-height:1.55;
  }

  /* Section rhythm. */
  .rr-section{
    padding:48px 0!important;
  }

  .rr-lead2{
    margin-bottom:24px!important;
    line-height:1.55;
  }

  /* Final project-planning CTA. */
  .rr-final{
    padding:26px!important;
    gap:20px!important;
  }

  /* Footer readability. */
  .rr-footer{
    padding:36px 0 24px!important;
    font-size:.94rem;
    line-height:1.55;
  }

  .rr-footergrid{
    gap:22px!important;
  }

  .rr-footer p,
  .rr-footer li,
  .rr-footer a{
    font-size:.92rem;
    line-height:1.55;
  }

  .rr-legal{
    font-size:.78rem!important;
    line-height:1.5;
  }
}

@media(max-width:380px){

  .rr-branding .custom-logo-link{
    width:min(220px,calc(100vw - 80px))!important;
    max-width:calc(100vw - 80px)!important;
    height:50px!important;
  }

  .rr-hero h1{
    font-size:clamp(1.9rem,10vw,2.35rem)!important;
  }

  .rr-specrow b{
    font-size:.84rem;
  }

  .rr-specrow span{
    font-size:.57rem!important;
  }

  .rr-cardbody,
  .rr-service{
    padding:18px!important;
  }
}


/* ============================================================
   v0.15.6 — Tiny mobile header logo increase only
   ============================================================ */

@media(max-width:650px){
  .rr-branding .custom-logo-link{
    width:min(280px,calc(100vw - 82px))!important;
    max-width:calc(100vw - 82px)!important;
    height:58px!important;
    max-height:58px!important;
  }
}

@media(max-width:380px){
  .rr-branding .custom-logo-link{
    width:min(245px,calc(100vw - 76px))!important;
    max-width:calc(100vw - 76px)!important;
    height:54px!important;
    max-height:54px!important;
  }
}


/* ============================================================
   v0.15.7 — Mobile logo image sizing fix
   Enlarges the actual custom-logo IMG, not just its link box.
   ============================================================ */

@media(max-width:650px){
  .rr-branding .custom-logo-link{
    display:flex!important;
    align-items:center!important;
    width:min(285px,calc(100vw - 78px))!important;
    max-width:calc(100vw - 78px)!important;
    height:60px!important;
    max-height:60px!important;
  }

  .rr-branding .custom-logo-link img.custom-logo,
  .rr-branding img.custom-logo{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:left center!important;
  }
}

@media(max-width:380px){
  .rr-branding .custom-logo-link{
    width:min(250px,calc(100vw - 72px))!important;
    max-width:calc(100vw - 72px)!important;
    height:56px!important;
    max-height:56px!important;
  }
}


/* ============================================================
   v0.15.8 — Mobile logo + hamburger visibility fix
   CUMULATIVE: includes the v0.15.7 actual-logo sizing fix.
   ============================================================ */

@media(max-width:650px){

  /*
   * Give the header a stable two-item mobile layout:
   * branding on the left, hamburger on the right.
   */
  .rr-header .rr-wrap,
  .rr-header .rr-nav{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    overflow:visible!important;
  }

  .rr-branding{
    display:flex!important;
    align-items:center!important;
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:calc(100% - 56px)!important;
  }

  /* Actual logo artwork sizing (incorporates v0.15.7). */
  .rr-branding .custom-logo-link{
    display:flex!important;
    align-items:center!important;
    width:min(285px,calc(100vw - 82px))!important;
    max-width:calc(100vw - 82px)!important;
    height:60px!important;
    max-height:60px!important;
    overflow:visible!important;
  }

  .rr-branding .custom-logo-link img.custom-logo,
  .rr-branding img.custom-logo{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:left center!important;
  }

  /*
   * Force the CURRENT mobile nav toggle to display.
   * This overrides any inherited display:none / opacity / clipping rule.
   */
  button.rr-nav-toggle,
  .rr-nav-toggle{
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    flex:0 0 44px!important;
    align-items:center!important;
    justify-content:center!important;

    position:relative!important;
    right:auto!important;
    top:auto!important;

    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:44px!important;
    min-height:44px!important;

    margin:0 0 0 8px!important;
    padding:8px!important;

    border:1px solid rgba(255,255,255,.55)!important;
    border-radius:7px!important;
    background:rgba(255,255,255,.08)!important;
    color:#fff!important;

    cursor:pointer!important;
    z-index:10020!important;
    overflow:visible!important;
  }

  .rr-nav-toggle:hover,
  .rr-nav-toggle:focus{
    background:rgba(255,255,255,.16)!important;
  }

  /*
   * Draw a hamburger even if the button's existing icon markup is hidden,
   * missing, or inherits an unusable color.
   */
  .rr-nav-toggle::before{
    content:"☰"!important;
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    color:#fff!important;
    font-family:Arial,sans-serif!important;
    font-size:27px!important;
    font-weight:400!important;
    line-height:1!important;
    width:auto!important;
    height:auto!important;
    transform:none!important;
  }

  /* Hide legacy/internal icon spans so only one clean hamburger appears. */
  .rr-nav-toggle .rr-nav-icon,
  .rr-nav-toggle .hamburger,
  .rr-nav-toggle > span:not(.screen-reader-text){
    display:none!important;
  }

  /*
   * Mobile menu panel should appear below the full header when JS opens it.
   * Do not allow it to be clipped behind the page.
   */
  .rr-primary-menu{
    z-index:10010!important;
  }

  .rr-primary-menu.is-open,
  .rr-primary-menu[aria-hidden="false"],
  body.rr-menu-open .rr-primary-menu{
    visibility:visible!important;
    opacity:1!important;
  }
}

@media(max-width:380px){
  .rr-branding{
    max-width:calc(100% - 54px)!important;
  }

  .rr-branding .custom-logo-link{
    width:min(250px,calc(100vw - 76px))!important;
    max-width:calc(100vw - 76px)!important;
    height:56px!important;
    max-height:56px!important;
  }

  button.rr-nav-toggle,
  .rr-nav-toggle{
    flex-basis:42px!important;
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    margin-left:6px!important;
  }

  .rr-nav-toggle::before{
    font-size:25px!important;
  }
}


/* ============================================================
   v0.15.9 — Mobile header structural cleanup
   Requires header.php outer wrapper = .rr-wrap.rr-header-inner
   ============================================================ */

@media(max-width:650px){

  /* One real header row: branding left, true NAV right. */
  .rr-header .rr-header-inner{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:calc(100% - 24px)!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:68px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    overflow:visible!important;
  }

  .rr-header .rr-branding{
    display:flex!important;
    align-items:center!important;
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:calc(100% - 58px)!important;
    position:relative!important;
    z-index:2!important;
  }

  /* Cumulative v0.15.7 logo sizing. */
  .rr-header .rr-branding .custom-logo-link{
    display:flex!important;
    align-items:center!important;
    width:min(285px,calc(100vw - 88px))!important;
    max-width:calc(100vw - 88px)!important;
    height:60px!important;
    max-height:60px!important;
    overflow:visible!important;
  }

  .rr-header .rr-branding .custom-logo-link img.custom-logo,
  .rr-header .rr-branding img.custom-logo{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:left center!important;
  }

  /*
   * ONLY the actual nav element occupies the right side.
   * Its width is the hamburger width, so it cannot overlay the logo.
   */
  .rr-header nav.rr-nav{
    position:static!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex:0 0 46px!important;
    width:46px!important;
    max-width:46px!important;
    min-width:46px!important;
    min-height:46px!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    z-index:20!important;
  }

  .rr-header nav.rr-nav > .rr-nav-toggle{
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    align-items:center!important;
    justify-content:center!important;
    position:relative!important;
    width:44px!important;
    min-width:44px!important;
    max-width:44px!important;
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    padding:8px!important;
    border:1px solid rgba(255,255,255,.58)!important;
    border-radius:7px!important;
    background:rgba(255,255,255,.09)!important;
    color:#fff!important;
    cursor:pointer!important;
    z-index:30!important;
  }

  /* Use the real button's existing ☰ markup; do not create a second icon. */
  .rr-header nav.rr-nav > .rr-nav-toggle::before{
    content:none!important;
    display:none!important;
  }

  .rr-header nav.rr-nav > .rr-nav-toggle > span[aria-hidden="true"]{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    color:#fff!important;
    font-family:Arial,sans-serif!important;
    font-size:26px!important;
    font-weight:400!important;
    line-height:1!important;
    width:auto!important;
    height:auto!important;
  }

  /*
   * Critical: menu is completely absent from hit-testing while closed.
   * This prevents invisible desktop links from sitting over the logo.
   */
  .rr-header nav.rr-nav > .rr-primary-menu{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;

    position:absolute!important;
    top:calc(100% + 4px)!important;
    right:0!important;

    width:min(360px,calc(100vw - 24px))!important;
    max-width:calc(100vw - 24px)!important;
    max-height:calc(100vh - 92px)!important;
    overflow:auto!important;

    flex-direction:column!important;
    align-items:stretch!important;
    gap:0!important;

    margin:0!important;
    padding:10px!important;
    background:#0d1d2b!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:10px!important;
    box-shadow:0 16px 38px rgba(0,0,0,.34)!important;
    z-index:10040!important;
  }

  /* The JS toggles rr-nav-open on nav.rr-nav. */
  .rr-header nav.rr-nav.rr-nav-open > .rr-primary-menu{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }

  .rr-header nav.rr-nav > .rr-primary-menu > li{
    width:100%!important;
  }

  .rr-header nav.rr-nav > .rr-primary-menu > li > a{
    display:block!important;
    width:100%!important;
    padding:12px!important;
  }
}

@media(max-width:380px){
  .rr-header .rr-branding{
    max-width:calc(100% - 56px)!important;
  }

  .rr-header .rr-branding .custom-logo-link{
    width:min(250px,calc(100vw - 82px))!important;
    max-width:calc(100vw - 82px)!important;
    height:56px!important;
    max-height:56px!important;
  }

  .rr-header nav.rr-nav{
    flex-basis:44px!important;
    width:44px!important;
    max-width:44px!important;
    min-width:44px!important;
  }

  .rr-header nav.rr-nav > .rr-nav-toggle{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
  }
}


/* ============================================================
   v0.16.0 — Mobile detail-hero + comparison table refinement
   Cumulative from v0.15.9. Header structure remains unchanged.
   ============================================================ */

@media(max-width:650px){

  /* Detail-page heroes such as ROV Systems */
  .rr-pagehero{
    padding:38px 0 40px!important;
  }

  .rr-pagehero .rr-eyebrow{
    font-size:.70rem!important;
    line-height:1.4!important;
    letter-spacing:.14em!important;
    margin-bottom:12px!important;
  }

  .rr-pagehero h1{
    font-size:clamp(2.15rem,9.2vw,2.7rem)!important;
    line-height:1.02!important;
    letter-spacing:-.035em!important;
    margin-bottom:18px!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  .rr-pagehero .rr-lead{
    font-size:1rem!important;
    line-height:1.55!important;
    max-width:100%!important;
  }

  /* Comparison/specification tables: contained, swipeable, easier to scan. */
  .rr-tablewrap,
  .rr-compare-table,
  .rr-spec-table{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }

  .rr-compare-table table,
  table.rr-compare-table,
  .rr-spec-table table,
  table.rr-spec-table{
    width:max-content!important;
    min-width:100%!important;
    table-layout:auto!important;
  }

  .rr-compare-table th,
  .rr-compare-table td,
  .rr-spec-table th,
  .rr-spec-table td{
    min-width:112px!important;
    padding:10px 9px!important;
    font-size:.82rem!important;
    line-height:1.35!important;
    vertical-align:top!important;
  }

  .rr-compare-table th:first-child,
  .rr-compare-table td:first-child,
  .rr-spec-table th:first-child,
  .rr-spec-table td:first-child{
    min-width:118px!important;
  }
}

@media(max-width:380px){
  .rr-pagehero h1{
    font-size:clamp(2rem,9vw,2.4rem)!important;
  }

  .rr-pagehero .rr-lead{
    font-size:.96rem!important;
  }

  .rr-compare-table th,
  .rr-compare-table td,
  .rr-spec-table th,
  .rr-spec-table td{
    min-width:105px!important;
    padding:9px 8px!important;
    font-size:.78rem!important;
  }
}


/* ============================================================
   v0.16.1 — Mobile ROV comparison table fit-to-screen fix
   Cumulative from v0.16.0.
   ============================================================ */

@media(max-width:650px){

  /*
   * ROV comparison table: fit all 3 columns inside the phone viewport.
   * Remove the horizontal-scroll treatment added in v0.16.0.
   */
  .rr-compare-table{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    overflow-y:visible!important;
  }

  .rr-compare-table table,
  table.rr-compare-table{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }

  .rr-compare-table th,
  .rr-compare-table td{
    min-width:0!important;
    max-width:none!important;
    padding:8px 5px!important;
    font-size:.70rem!important;
    line-height:1.25!important;
    vertical-align:top!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }

  /* Capability label gets slightly more room than each ROV column. */
  .rr-compare-table th:first-child,
  .rr-compare-table td:first-child{
    width:42%!important;
    min-width:0!important;
    font-size:.69rem!important;
  }

  .rr-compare-table th:nth-child(2),
  .rr-compare-table td:nth-child(2),
  .rr-compare-table th:nth-child(3),
  .rr-compare-table td:nth-child(3){
    width:29%!important;
    min-width:0!important;
  }

  .rr-compare-table th{
    font-size:.68rem!important;
    line-height:1.2!important;
  }
}

@media(max-width:380px){
  .rr-compare-table th,
  .rr-compare-table td{
    padding:7px 4px!important;
    font-size:.66rem!important;
  }

  .rr-compare-table th:first-child,
  .rr-compare-table td:first-child{
    font-size:.65rem!important;
  }

  .rr-compare-table th{
    font-size:.64rem!important;
  }
}


/* ============================================================
   v0.16.2 — ROV Systems submenu hover-path fix
   Cumulative from v0.16.1.
   ============================================================ */

/*
 * Keep the desktop/tablet dropdown physically connected to its parent item.
 * The small overlap prevents the submenu from disappearing while the pointer
 * moves from "ROV Systems" down into the two vehicle choices.
 */
@media(min-width:651px){

  .rr-primary-menu > li.menu-item-has-children,
  .rr-primary-menu > li{
    position:relative!important;
  }

  .rr-primary-menu > li > .sub-menu{
    top:calc(100% - 4px)!important;
    margin-top:0!important;
    padding-top:8px!important;
    z-index:10050!important;
  }

  /*
   * Invisible hover bridge between the parent link and dropdown.
   * This adds no visible spacing but keeps :hover alive while crossing.
   */
  .rr-primary-menu > li.menu-item-has-children::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:100%;
    height:12px;
    background:transparent;
    z-index:10049;
    pointer-events:auto;
  }

  .rr-primary-menu > li.menu-item-has-children:hover > .sub-menu,
  .rr-primary-menu > li.menu-item-has-children:focus-within > .sub-menu{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }

  .rr-primary-menu .sub-menu{
    pointer-events:auto!important;
  }

  .rr-primary-menu .sub-menu li,
  .rr-primary-menu .sub-menu a{
    position:relative;
    z-index:10051;
  }
}


/* ============================================================
   v0.16.3 — Mobile submenu expand/collapse state
   ============================================================ */
@media(max-width:650px){

  .rr-header nav.rr-nav > .rr-primary-menu > li.menu-item-has-children > .sub-menu{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    position:static!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:4px 0 6px 14px!important;
    border:0!important;
    box-shadow:none!important;
    background:rgba(255,255,255,.04)!important;
  }

  .rr-header nav.rr-nav > .rr-primary-menu > li.menu-item-has-children.rr-submenu-open > .sub-menu{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }

  .rr-header nav.rr-nav > .rr-primary-menu > li.menu-item-has-children > a{
    position:relative!important;
    padding-right:38px!important;
  }

  .rr-header nav.rr-nav > .rr-primary-menu > li.menu-item-has-children > a::after{
    content:"▾"!important;
    position:absolute!important;
    right:12px!important;
    top:50%!important;
    transform:translateY(-50%) rotate(0deg)!important;
    transition:transform .15s ease!important;
  }

  .rr-header nav.rr-nav > .rr-primary-menu > li.menu-item-has-children.rr-submenu-open > a::after{
    transform:translateY(-50%) rotate(180deg)!important;
  }

  .rr-header nav.rr-nav > .rr-primary-menu .sub-menu a{
    display:block!important;
    padding:10px 12px!important;
    width:100%!important;
    pointer-events:auto!important;
  }
}


/* ============================================================
   v0.16.4 — Mobile Sensors/About image letterbox fix
   Cumulative from v0.16.3.
   ============================================================ */

@media(max-width:650px){

  /*
   * Sensors & Tooling and About use landscape-oriented photographs.
   * On phones, very tall custom image-frame heights create large dark
   * letterbox bars when object-fit:contain is used.
   *
   * Cap these specific mobile frames near a 4:3 landscape ratio while still
   * allowing the user's Picture Height control to make them SHORTER.
   */
  #rr-image-key-sensors_hero,
  #rr-image-key-sensors_capability,
  #rr-image-key-about_team,
  #rr-image-key-about_operations{
    height:min(var(--rr-img-height), calc((100vw - 44px) * .75))!important;
    max-height:calc((100vw - 44px) * .75)!important;
    min-height:0!important;
  }

  /*
   * Fill the mobile frame so no dark bars remain.
   * Because the selected photos are already landscape-oriented, cropping
   * should be modest. Existing zoom/pan controls remain active.
   */
  #rr-image-key-sensors_hero img,
  #rr-image-key-sensors_capability img,
  #rr-image-key-about_team img,
  #rr-image-key-about_operations img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }
}

@media(max-width:380px){
  #rr-image-key-sensors_hero,
  #rr-image-key-sensors_capability,
  #rr-image-key-about_team,
  #rr-image-key-about_operations{
    height:min(var(--rr-img-height), calc((100vw - 32px) * .75))!important;
    max-height:calc((100vw - 32px) * .75)!important;
  }
}


/* ============================================================
   v0.16.5 — Mobile RRA form + About crew-photo refinement
   Cumulative from v0.16.4.
   ============================================================ */

@media(max-width:650px){

  /* ----------------------------------------------------------
     Request ROV Availability — phone form formatting
     ---------------------------------------------------------- */

  .rr-form{
    padding:18px!important;
    border-radius:14px!important;
  }

  .rr-fields{
    gap:16px!important;
  }

  .rr-field{
    gap:7px!important;
    min-width:0!important;
  }

  .rr-field label,
  .rr-checkgroup legend{
    font-size:1rem!important;
    line-height:1.35!important;
  }

  .rr-field input,
  .rr-field select,
  .rr-field textarea{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:48px!important;
    padding:11px 12px!important;
    font-size:16px!important;
    line-height:1.35!important;
  }

  .rr-field textarea{
    min-height:132px!important;
    resize:vertical;
  }

  .rr-formtitle{
    margin-top:4px!important;
    padding-bottom:8px!important;
    font-size:1.05rem!important;
  }

  /*
   * Supporting Equipment:
   * override the inline 2-column grid used by the shortcode.
   * A single column is much easier to read/tap on a phone.
   */
  .rr-checkgroup > div{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }

  .rr-checkgroup label{
    display:flex!important;
    align-items:flex-start!important;
    gap:11px!important;
    width:100%!important;
    margin:0!important;
    min-width:0!important;
  }

  .rr-checkgroup input[type="checkbox"]{
    width:21px!important;
    height:21px!important;
    min-width:21px!important;
    flex:0 0 21px!important;
    margin-top:1px!important;
  }

  .rr-checkgroup label span{
    display:block!important;
    min-width:0!important;
    font-size:.98rem!important;
    line-height:1.35!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  /* ----------------------------------------------------------
     About — crew photo
     Preserve every person instead of cropping with object-fit:cover.
     ---------------------------------------------------------- */

  /*
   * Remove excess height from an outer visual/detail wrapper if one is
   * present around the actual About team image box.
   */
  .rr-detail-image:has(#rr-image-key-about_team),
  .rr-visual:has(#rr-image-key-about_team){
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }

  /*
   * Use a landscape frame close to the crew photo's natural proportions.
   * The full image is then visible with no aggressive side cropping.
   */
  #rr-image-key-about_team{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:4 / 3!important;
  }

  #rr-image-key-about_team img{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
}

@media(max-width:380px){
  .rr-form{
    padding:16px!important;
  }

  .rr-checkgroup label span{
    font-size:.95rem!important;
  }
}


/* ============================================================
   v0.16.6 — Mobile ROV Systems Overview item
   ============================================================ */
@media(max-width:650px){
  .rr-primary-menu .rr-mobile-overview-link{
    display:block!important;
    border-bottom:1px solid rgba(255,255,255,.12)!important;
    margin-bottom:3px!important;
  }

  .rr-primary-menu .rr-mobile-overview-link > a{
    display:block!important;
    font-weight:700!important;
    padding:11px 12px!important;
  }
}

@media(min-width:651px){
  .rr-primary-menu .rr-mobile-overview-link{
    display:none!important;
  }
}


/* ============================================================
   v0.16.7 — Mobile polish + image lightbox
   Cumulative from v0.16.6.
   ============================================================ */

@media(max-width:650px){

  /* Home ROV card spec labels: keep two-line labels compact. */
  .rr-specrow span{
    display:block!important;
    line-height:1.08!important;
    margin-top:3px!important;
  }

  /* Secondary buttons on light sections must remain visibly legible. */
  .rr-section:not(.rr-alt) .rr-btn.rr-secondary,
  .rr-section:not(.rr-alt) a.rr-btn.rr-secondary{
    color:#16324d!important;
    border-color:#4b83b3!important;
    background:transparent!important;
  }

  .rr-section:not(.rr-alt) .rr-btn.rr-secondary:hover,
  .rr-section:not(.rr-alt) a.rr-btn.rr-secondary:hover{
    color:#0d1d2b!important;
    background:#eef6fc!important;
  }

  /* RRA supporting-equipment circles vertically centered with labels. */
  .rr-checkgroup label{
    align-items:center!important;
  }

  .rr-checkgroup input[type="checkbox"]{
    align-self:center!important;
    margin-top:0!important;
  }

  /*
   * About team image: preserve the ENTIRE source image.
   * Let the frame derive from the source rather than forcing 4:3.
   */
  .rr-detail-image:has(#rr-image-key-about_team),
  .rr-visual:has(#rr-image-key-about_team){
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
  }

  #rr-image-key-about_team{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    overflow:visible!important;
    background:transparent!important;
  }

  #rr-image-key-about_team img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    max-width:100%!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center center!important;
  }
}

/* ------------------------------------------------------------
   Site-wide image lightbox
   Applies to content imagery, never logo/UI graphics.
   ------------------------------------------------------------ */
.rr-lightboxable{
  cursor:zoom-in!important;
}

.rr-image-lightbox{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(3,10,17,.94);
  z-index:100000;
}

.rr-image-lightbox.is-open{
  display:flex;
}

.rr-image-lightbox img{
  display:block;
  width:auto;
  height:auto;
  max-width:96vw;
  max-height:92vh;
  object-fit:contain;
  box-shadow:0 18px 50px rgba(0,0,0,.45);
}

.rr-image-lightbox-close{
  position:fixed;
  top:14px;
  right:16px;
  width:46px;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid rgba(255,255,255,.55);
  border-radius:50%;
  background:rgba(10,25,39,.8);
  color:#fff;
  font-size:30px;
  line-height:1;
  cursor:pointer;
  z-index:100001;
}

body.rr-lightbox-open{
  overflow:hidden!important;
}

@media(max-width:650px){
  .rr-image-lightbox{
    padding:12px;
  }

  .rr-image-lightbox img{
    max-width:96vw;
    max-height:90vh;
  }

  .rr-image-lightbox-close{
    top:10px;
    right:10px;
    width:42px;
    height:42px;
    font-size:27px;
  }
}


/* ============================================================
   v0.16.8 — Mobile spec spacing, light-button contrast,
   and About team-image framing
   Cumulative from v0.16.7.
   ============================================================ */

@media(max-width:650px){

  /* ----------------------------------------------------------
     Home SeaRover/VLBV spec rows
     Keep value and label visually grouped.
     ---------------------------------------------------------- */
  .rr-specrow > div{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    align-items:flex-start!important;
    gap:2px!important;
    height:auto!important;
    min-height:0!important;
  }

  .rr-specrow > div > b{
    display:block!important;
    margin:0!important;
    padding:0!important;
    line-height:1.12!important;
  }

  .rr-specrow > div > span{
    display:block!important;
    margin:2px 0 0!important;
    padding:0!important;
    line-height:1.08!important;
  }

  /* ----------------------------------------------------------
     Home light-background secondary CTA
     "View ROV Services" must not appear white-on-white.
     ---------------------------------------------------------- */
  .rr-alt .rr-btn.rr-secondary,
  .rr-alt a.rr-btn.rr-secondary{
    color:#16324d!important;
    border-color:#4b83b3!important;
    background:#fff!important;
  }

  .rr-alt .rr-btn.rr-secondary:hover,
  .rr-alt a.rr-btn.rr-secondary:hover{
    color:#0d1d2b!important;
    border-color:#2f6fa4!important;
    background:#eef6fc!important;
  }

  /* Do not alter buttons inside the dark final CTA card. */
  .rr-alt .rr-final .rr-btn.rr-secondary,
  .rr-alt .rr-final a.rr-btn.rr-secondary{
    color:#fff!important;
    background:transparent!important;
    border-color:rgba(255,255,255,.75)!important;
  }

  /* ----------------------------------------------------------
     About — Team photo
     Match the user's preferred edited presentation:
     compact blue frame, full photo visible, rounded image corners.
     ---------------------------------------------------------- */

  .rr-detail-image:has(#rr-image-key-about_team),
  .rr-visual:has(#rr-image-key-about_team){
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    padding:16px!important;
    background:linear-gradient(145deg,#17334d,#2b5a82)!important;
    border-radius:22px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  #rr-image-key-about_team{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:4 / 3!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border-radius:15px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  #rr-image-key-about_team img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    object-fit:contain!important;
    object-position:center center!important;
    border-radius:15px!important;
    background:#102130!important;
  }
}

@media(max-width:380px){
  .rr-detail-image:has(#rr-image-key-about_team),
  .rr-visual:has(#rr-image-key-about_team){
    padding:12px!important;
    border-radius:19px!important;
  }

  #rr-image-key-about_team,
  #rr-image-key-about_team img{
    border-radius:12px!important;
  }
}


/* ============================================================
   v0.16.9 — Home spec-row compression + full About crew image
   Cumulative from v0.16.8.
   ============================================================ */

@media(max-width:650px){

  /* ----------------------------------------------------------
     HOME — SeaRover / VLBV headline specification rows
     Remove excess vertical space between value and label.
     ---------------------------------------------------------- */
  .rr-specrow{
    align-items:start!important;
    row-gap:0!important;
  }

  .rr-specrow > div{
    display:grid!important;
    grid-template-rows:auto auto!important;
    align-content:start!important;
    justify-content:start!important;
    gap:2px!important;
    height:auto!important;
    min-height:0!important;
    padding:7px 6px!important;
  }

  .rr-specrow > div > b{
    display:block!important;
    margin:0!important;
    padding:0!important;
    line-height:1.05!important;
  }

  .rr-specrow > div > span{
    display:block!important;
    margin:0!important;
    padding:0!important;
    line-height:1.04!important;
  }

  /* ----------------------------------------------------------
     ABOUT — Team photo
     NEVER force this image into 4:3. Show the complete source.
     ---------------------------------------------------------- */
  .rr-detail-image:has(#rr-image-key-about_team),
  .rr-visual:has(#rr-image-key-about_team){
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    padding:14px!important;
    background:linear-gradient(145deg,#17334d,#2b5a82)!important;
    border-radius:22px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  #rr-image-key-about_team{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    border-radius:15px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  #rr-image-key-about_team img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    object-fit:contain!important;
    object-position:center center!important;
    border-radius:15px!important;
    background:transparent!important;
  }
}

@media(max-width:380px){
  .rr-specrow > div{
    padding:6px 4px!important;
    gap:1px!important;
  }

  .rr-detail-image:has(#rr-image-key-about_team),
  .rr-visual:has(#rr-image-key-about_team){
    padding:10px!important;
    border-radius:18px!important;
  }

  #rr-image-key-about_team,
  #rr-image-key-about_team img{
    border-radius:12px!important;
  }
}


/* ============================================================
   v0.17.0 — Home mobile spec-column centering
   Cumulative from v0.16.9.
   ============================================================ */

@media(max-width:650px){

  .rr-specrow > div{
    justify-items:center!important;
    align-items:center!important;
    text-align:center!important;
  }

  .rr-specrow > div > b,
  .rr-specrow > div > span{
    width:100%!important;
    text-align:center!important;
  }

  .rr-specrow > div > b{
    white-space:nowrap!important;
  }
}


/* ============================================================
   v0.17.1 — Site-wide summary spec-column centering
   Cumulative from v0.17.0.
   Applies to desktop, tablet, and mobile.
   ============================================================ */

.rr-specrow > div{
  justify-items:center!important;
  align-items:center!important;
  text-align:center!important;
}

.rr-specrow > div > b,
.rr-specrow > div > span{
  width:100%!important;
  text-align:center!important;
}

.rr-specrow > div > b{
  white-space:nowrap!important;
}


/* ============================================================
   v0.17.2 — Image frame width control + desktop CTA contrast
   ============================================================ */

/* Image Editing Control: Picture Area Width.
   Existing images default to 100%, so this changes nothing until adjusted. */
.rr-imagebox{
  width:var(--rr-img-width,100%)!important;
  max-width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Home light-section secondary CTA: desktop/tablet/mobile readable contrast. */
.rr-alt .rr-actions > .rr-btn.rr-secondary,
.rr-alt .rr-actions > a.rr-btn.rr-secondary{
  color:#16324d!important;
  border-color:#4b83b3!important;
  background:#fff!important;
}

.rr-alt .rr-actions > .rr-btn.rr-secondary:hover,
.rr-alt .rr-actions > a.rr-btn.rr-secondary:hover{
  color:#0d1d2b!important;
  border-color:#2f6fa4!important;
  background:#eef6fc!important;
}

/* Preserve white/dark treatment inside the dark final CTA card. */
.rr-alt .rr-final .rr-actions > .rr-btn.rr-secondary,
.rr-alt .rr-final .rr-actions > a.rr-btn.rr-secondary{
  color:#fff!important;
  border-color:rgba(255,255,255,.75)!important;
  background:transparent!important;
}


/* ============================================================
   v0.17.3 — Working frame-width control, CTA contrast,
   and floating mobile navigation
   ============================================================ */

/* Inner image frame. Parent wrappers are additionally sized by dynamic CSS/preview JS. */
.rr-imagebox{
  width:var(--rr-img-width,100%)!important;
  max-width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Robust Home/light-section secondary button contrast, including nested text nodes. */
.rr-section.rr-alt > .rr-wrap > .rr-actions > a.rr-btn.rr-secondary,
.rr-section.rr-alt > .rr-wrap > .rr-actions > a.rr-btn.rr-secondary *,
.rr-section.rr-alt > .rr-wrap > .rr-actions > .rr-btn.rr-secondary,
.rr-section.rr-alt > .rr-wrap > .rr-actions > .rr-btn.rr-secondary *{
  color:#102b45!important;
  -webkit-text-fill-color:#102b45!important;
  border-color:#4b83b3!important;
  background:#ffffff!important;
  text-shadow:none!important;
}

.rr-section.rr-alt > .rr-wrap > .rr-actions > a.rr-btn.rr-secondary:hover,
.rr-section.rr-alt > .rr-wrap > .rr-actions > a.rr-btn.rr-secondary:hover *{
  color:#081c2d!important;
  -webkit-text-fill-color:#081c2d!important;
  background:#eaf4fb!important;
}

/* Preserve the dark-card button treatment inside final CTA cards. */
.rr-section.rr-alt .rr-final .rr-actions .rr-btn,
.rr-section.rr-alt .rr-final .rr-actions .rr-btn *{
  -webkit-text-fill-color:currentColor!important;
}

/* Compact floating mobile hamburger after the normal header scrolls away. */
@media(max-width:650px){
  body.rr-mobile-nav-float .rr-header nav.rr-nav{
    position:fixed!important;
    top:14px!important;
    right:14px!important;
    left:auto!important;
    width:48px!important;
    min-width:48px!important;
    max-width:48px!important;
    height:48px!important;
    min-height:48px!important;
    z-index:10080!important;
    margin:0!important;
  }

  body.rr-mobile-nav-float .rr-header nav.rr-nav > .rr-nav-toggle{
    width:48px!important;
    min-width:48px!important;
    max-width:48px!important;
    height:48px!important;
    min-height:48px!important;
    background:rgba(10,29,45,.94)!important;
    border:1px solid rgba(255,255,255,.7)!important;
    border-radius:10px!important;
    box-shadow:0 6px 20px rgba(0,0,0,.28)!important;
    backdrop-filter:blur(5px);
  }

  body.rr-mobile-nav-float .rr-header nav.rr-nav > .rr-primary-menu{
    position:fixed!important;
    top:70px!important;
    right:12px!important;
    left:auto!important;
    width:min(360px,calc(100vw - 24px))!important;
    max-width:calc(100vw - 24px)!important;
    max-height:calc(100vh - 86px)!important;
  }
}

/* ============================================================
   v0.18.2 — high-contrast section buttons + PDF downloads
   ============================================================ */

/* Fix the recurring blank/light button problem across content sections. */
.rr-section .rr-actions a.rr-btn,
.rr-section .rr-actions a.rr-btn:link,
.rr-section .rr-actions a.rr-btn:visited,
.rr-section .rr-actions a.rr-btn *{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#173b5d!important;
  border-color:#173b5d!important;
  text-shadow:none!important;
}

.rr-section .rr-actions a.rr-btn:hover,
.rr-section .rr-actions a.rr-btn:focus{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#0f2e49!important;
  border-color:#0f2e49!important;
}

/* Keep hero button hierarchy unchanged. */
.rr-hero .rr-actions a.rr-btn.rr-secondary{
  background:transparent!important;
}

.rr-spec-downloads{
  border-top:1px solid rgba(23,59,93,.12);
}
.rr-spec-downloads .rr-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:20px;
}
.rr-spec-downloads .rr-pdf-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  border-radius:10px;
  padding:11px 18px;
  font-weight:700;
  text-decoration:none;
}
@media(max-width:650px){
  .rr-spec-downloads .rr-actions{flex-direction:column;align-items:stretch;}
  .rr-spec-downloads .rr-pdf-btn{width:100%;}
}


/* ============================================================
   v0.18.3 — image presentation polish
   ============================================================ */

.rr-imagebox,
.rr-visual,
.rr-detail-image,
.rr-cardvisual{
    border-radius:18px;
}

.rr-imagebox{
    width:var(--rr-img-width,100%)!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
}

/* The actual photograph inherits a slightly smaller radius. */
.rr-imagebox > img{
    border-radius:14px;
}


/* ============================================================
   v0.18.7 — Picture Area Width centering guarantee
   ============================================================ */
.rr-imagebox{
    justify-self:center!important;
    box-sizing:border-box!important;
}


/* ============================================================
   v0.19.7 — Services Hero mobile padding refinement
   ============================================================ */

/*
 * Services — 1 (Hero) — Sonar / Positioning
 *
 * Keep the normal theme border/white line.
 * Reduce only the excessive Mobile padding around the image.
 * Desktop and Tablet are unchanged.
 */
@media (max-width:650px){

    #rr-image-key-services_hero,
    [data-rr-image-key="services_hero"],
    .rr-img-key-services_hero{
        padding:2px!important;
    }

    .rr-visual:has(>#rr-image-key-services_hero),
    .rr-detail-image:has(>#rr-image-key-services_hero),
    .rr-cardvisual:has(>#rr-image-key-services_hero),
    .rr-visual:has(>[data-rr-image-key="services_hero"]),
    .rr-detail-image:has(>[data-rr-image-key="services_hero"]),
    .rr-cardvisual:has(>[data-rr-image-key="services_hero"]){
        padding:2px!important;
    }
}

