/* Self-hosted fonts (SIL Open Font License 1.1), no requests to third-party servers */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/barlow-condensed-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/barlow-condensed-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-condensed-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-condensed-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Sans";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-ext-400-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Sans";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-400-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/*
 * Piva Rotor Solutions — brand styles
 * Scope: brand rules sit inside .prs. The last section lifts OceanWP's base text sizes (body.oceanwp-theme only).
 * Layout: full-width colour bands (.prs-section) on a 1180px reading grid, display type from aviation signage,
 * mono labels like instrument readouts, one orange for actions and approach lines.
 */

:root {
  /* Brand palette: navy #08263E, orange #F06316, cream #F3F2EE, grey #818284, white #FFFFFF.
     Other values below are tints of these, used where a palette colour alone would be hard to read. */
  --prs-navy: #08263E;
  --prs-navy-2: #213C51;          /* navy with 10% white: panels on navy bands */
  --prs-deep: #08263E;
  --prs-orange: #F06316;          /* buttons, lines, markers, step numbers, labels on navy (4.8:1) */
  --prs-grey: #818284;            /* lines, borders, rotor drawing */
  --prs-paper: #F3F2EE;           /* cream bands */
  --prs-white: #FFFFFF;
  --prs-ink: #08263E;             /* text on white and cream */
  --prs-muted: #465C6E;           /* secondary text: navy at 75% (7:1 on white) */
  --prs-line: #D4D5D5;            /* grey at 35% on white */
  --prs-on-dark: #F3F2EE;         /* text on navy */
  --prs-on-dark-muted: #B1B9BD;   /* secondary text on navy: cream at 72% (7.8:1) */

  --prs-display: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
  --prs-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --prs-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Type unit. Not rem: OceanWP sets html{font-size:62.5%}, which shrank every rem size to 10px. */
  --prs-rem: 17px;

  --prs-max: 1180px;
  --prs-gutter: clamp(20px, 5vw, 64px);
  --prs-radius: 6px;
}

/* Full-width bands must not create a sideways scroll */
body:has(.prs) { overflow-x: clip; }

/* ---------- Base ---------- */
.prs {
  font-family: var(--prs-body);
  font-size: calc(1.0625 * var(--prs-rem));
  line-height: 1.6;
  color: var(--prs-ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.prs *,
.prs *::before,
.prs *::after { box-sizing: border-box; }

.prs > * { margin-block: 0 !important; }

.prs .prs-section {
  position: relative;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding-block: clamp(56px, 8vw, 104px);
  padding-inline: max(var(--prs-gutter), calc((100vw - var(--prs-max)) / 2));
  background: var(--prs-white);
  color: var(--prs-ink);
}

/* Vertical rhythm inside a band */
.prs .prs-section > *,
.prs .prs-card > *,
.prs .prs-col > *,
.prs .prs-note > *,
.prs .prs-fact > *,
.prs .prs-grid > *,
.prs .prs-facts > *,
.prs .prs-split > *,
.prs .prs-specs > *,
.prs .prs-actions > * { margin-block: 0; }
.prs .prs-section > * + * { margin-top: calc(1.5 * var(--prs-rem)); }
.prs .prs-section > .prs-kicker + * { margin-top: calc(.75 * var(--prs-rem)); }
.prs .prs-section > * + .prs-grid,
.prs .prs-section > * + .prs-actions,
.prs .prs-section > * + .prs-split,
.prs .prs-section > * + .prs-steps,
.prs .prs-section > * + .prs-facts,
.prs .prs-section > * + .prs-note { margin-top: calc(2.5 * var(--prs-rem)); }

/* ---------- Type ---------- */
.prs h1, .prs h2, .prs h3 {
  font-family: var(--prs-display);
  font-weight: 700;
  color: inherit;
  text-transform: none;
  letter-spacing: -0.005em;
  text-wrap: balance;
}
.prs h1 { font-size: clamp(calc(2.75 * var(--prs-rem)), 6.2vw, calc(4.75 * var(--prs-rem))); line-height: .98; }
.prs h2 { font-size: clamp(calc(2.125 * var(--prs-rem)), 4vw, calc(3.25 * var(--prs-rem))); line-height: 1.02; }
.prs h3 { font-size: clamp(calc(1.5 * var(--prs-rem)), 2.2vw, calc(1.875 * var(--prs-rem))); line-height: 1.08; }
.prs h4 { font-family: var(--prs-body); font-size: calc(1 * var(--prs-rem)); font-weight: 600; line-height: 1.4; color: inherit; }

.prs p, .prs li { max-width: 68ch; }
.prs strong { font-weight: 600; }

.prs a { color: var(--prs-navy); text-decoration-color: var(--prs-orange); text-decoration-thickness: 1.5px; text-underline-offset: .18em; transition: text-decoration-thickness .2s ease, text-underline-offset .2s ease, color .2s ease; }
.prs a:hover { color: var(--prs-navy); text-decoration-thickness: 3px; text-underline-offset: .26em; }
.prs :focus-visible { outline: 3px solid var(--prs-orange); outline-offset: 3px; border-radius: 2px; }

.prs .prs-kicker {
  font-family: var(--prs-mono);
  font-size: calc(.875 * var(--prs-rem));
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--prs-navy);
}
.prs .prs-kicker::before {
  content: "";
  display: inline-block;
  width: 1.6em;
  height: 2px;
  margin-right: .6em;
  vertical-align: .3em;
  background: var(--prs-orange);
}
.prs .prs-lead {
  font-size: clamp(calc(1.125 * var(--prs-rem)), 1.6vw, calc(1.3125 * var(--prs-rem)));
  line-height: 1.55;
  color: var(--prs-muted);
  max-width: 62ch;
}
.prs .prs-small { font-size: calc(1 * var(--prs-rem)); color: var(--prs-muted); }
.prs .prs-standards {
  font-family: var(--prs-mono);
  font-size: calc(.875 * var(--prs-rem));
  letter-spacing: .08em;
  text-transform: uppercase;
  line-height: 1.9;
  color: var(--prs-muted);
  max-width: none;
}

/* ---------- Colour bands ---------- */
.prs .prs-section--paper { background: var(--prs-paper); }
.prs .prs-section--mist { background: var(--prs-paper); }
.prs .prs-section--navy { background: var(--prs-navy); color: var(--prs-white); }
.prs .prs-section--deep { background: var(--prs-deep); color: var(--prs-white); }
.prs .prs-section--navy .prs-lead,
.prs .prs-section--deep .prs-lead,
.prs .prs-section--navy .prs-small,
.prs .prs-section--deep .prs-small { color: var(--prs-on-dark); }
.prs .prs-section--navy .prs-kicker,
.prs .prs-section--deep .prs-kicker { color: var(--prs-orange); }
.prs .prs-section--navy .prs-standards,
.prs .prs-section--deep .prs-standards { color: var(--prs-on-dark-muted); }
.prs .prs-section--navy a:not(.wp-block-button__link),
.prs .prs-section--deep a:not(.wp-block-button__link) { color: var(--prs-white); text-decoration-color: var(--prs-orange); }
.prs .prs-section--navy a:not(.wp-block-button__link):hover,
.prs .prs-section--deep a:not(.wp-block-button__link):hover { color: var(--prs-orange); }

/* ---------- Hero ---------- */
.prs .prs-hero {
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(72px, 10vw, 136px) clamp(64px, 9vw, 120px);
}
.prs .prs-hero--page { padding-block: clamp(56px, 7vw, 96px) clamp(48px, 6vw, 80px); }
.prs .prs-hero > h1 { max-width: 15ch; }
.prs .prs-hero--page > h1 { max-width: 20ch; font-size: clamp(calc(2.5 * var(--prs-rem)), 5vw, calc(4 * var(--prs-rem))); }
/* Rotor disc, heliport marking and approach line, drawn in brand grey and orange */
.prs .prs-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 50%;
  right: max(-180px, calc((100vw - var(--prs-max)) / 2 - 220px));
  width: min(70vw, 860px);
  aspect-ratio: 4 / 3;
  transform: translateY(-50%);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 600' fill='none'%3E%3Cg stroke='%23818284' stroke-width='1.2'%3E%3Ccircle cx='520' cy='300' r='262' stroke-dasharray='1 9' stroke-linecap='round'/%3E%3Ccircle cx='520' cy='300' r='200' stroke-opacity='.45'/%3E%3Ccircle cx='520' cy='300' r='132' stroke-dasharray='16 9' stroke-opacity='.75'/%3E%3Ccircle cx='520' cy='300' r='58' stroke-opacity='.9'/%3E%3Cpath d='M520 18v36M520 546v36M238 300h36M766 300h34M335 115l20 20M685 465l20 20M705 115l-20 20M355 465l-20 20' stroke-opacity='.7'/%3E%3Cpath d='M503 278v44M537 278v44M503 300h34' stroke-width='5' stroke-opacity='.95'/%3E%3C/g%3E%3Cpath d='M0 560L452 332' stroke='%23F06316' stroke-opacity='.7' stroke-width='2' stroke-dasharray='10 10'/%3E%3Cpath d='M138 470l22 6-6 22M262 408l22 6-6 22M386 346l22 6-6 22' stroke='%23F06316' stroke-opacity='.7' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain;
  opacity: .8;
  pointer-events: none;
}
.prs .prs-hero--page::after { opacity: .55; width: min(56vw, 680px); }
@media (max-width: 781px) {
  .prs .prs-hero::after { opacity: .35; width: 130vw; right: -55vw; }
}

/* ---------- Actions ---------- */
.prs .wp-block-buttons.prs-actions { display: flex; flex-wrap: wrap; gap: 12px 16px; }
.prs .prs-actions > .wp-block-button { margin: 0; }
.prs .prs-btn .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  min-height: 52px;
  padding: 0 26px;
  border: 1.5px solid transparent;
  border-radius: 4px;
  font-family: var(--prs-body);
  font-size: calc(1 * var(--prs-rem));
  font-weight: 600;
  line-height: 1.2;
  text-transform: none;
  letter-spacing: normal;
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.prs .prs-btn-primary .wp-block-button__link { background: var(--prs-orange) !important; color: var(--prs-navy) !important; border-color: var(--prs-orange) !important; }
.prs .prs-btn-primary .wp-block-button__link:hover { background: var(--prs-white) !important; color: var(--prs-navy) !important; border-color: var(--prs-orange) !important; }
.prs .prs-btn-ghost .wp-block-button__link { background: linear-gradient(var(--prs-navy), var(--prs-navy)) no-repeat left center / 0% 100% !important; color: var(--prs-navy) !important; border-color: var(--prs-navy) !important; transition: background-size .35s cubic-bezier(.2,.7,.2,1), color .35s ease, border-color .35s ease; }
.prs .prs-btn-ghost .wp-block-button__link:hover,
.prs .prs-btn-ghost .wp-block-button__link:focus-visible { background-size: 100% 100% !important; color: var(--prs-white) !important; }
.prs .prs-section--navy .prs-btn-ghost .wp-block-button__link,
.prs .prs-section--deep .prs-btn-ghost .wp-block-button__link,
.prs .prs-card--dark .prs-btn-ghost .wp-block-button__link { background-image: linear-gradient(var(--prs-white), var(--prs-white)) !important; color: var(--prs-white) !important; border-color: var(--prs-grey) !important; }
.prs .prs-section--navy .prs-btn-ghost .wp-block-button__link:hover,
.prs .prs-section--deep .prs-btn-ghost .wp-block-button__link:hover,
.prs .prs-card--dark .prs-btn-ghost .wp-block-button__link:hover,
.prs .prs-section--navy .prs-btn-ghost .wp-block-button__link:focus-visible,
.prs .prs-section--deep .prs-btn-ghost .wp-block-button__link:focus-visible,
.prs .prs-card--dark .prs-btn-ghost .wp-block-button__link:focus-visible { color: var(--prs-navy) !important; border-color: var(--prs-white) !important; }
/* Primary buttons carry an arrow that moves forward on hover */
.prs .prs-btn-primary .wp-block-button__link::after { content: "\2192"; display: inline-block; margin-left: .55em; transition: transform .25s cubic-bezier(.2,.7,.2,1); }
.prs .prs-btn-primary .wp-block-button__link:hover::after,
.prs .prs-btn-primary .wp-block-button__link:focus-visible::after { transform: translateX(5px); }

.prs .prs-link { font-weight: 600; }
.prs .prs-link a { text-decoration: underline; text-decoration-color: var(--prs-orange); text-decoration-thickness: 1.5px; text-underline-offset: .2em; }
.prs .prs-link a::after { content: "\2192"; display: inline-block; margin-left: .35em; transition: transform .25s cubic-bezier(.2,.7,.2,1); }
.prs .prs-link a:hover::after,
.prs .prs-link a:focus-visible::after { transform: translateX(5px); }

/* ---------- Grids and cards ---------- */
.prs .prs-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
  align-items: stretch;
}
.prs .prs-grid--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); }
.prs .prs-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }

.prs .prs-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(24px, 3vw, 36px);
  background: var(--prs-white);
  border: 1px solid var(--prs-line);
  border-radius: var(--prs-radius);
  color: var(--prs-ink);
}
.prs .prs-section--paper .prs-card,
.prs .prs-section--mist .prs-card { border-color: transparent; }
.prs .prs-card > .prs-link { margin-top: auto; padding-top: 6px; }
.prs .prs-card--dark { background: var(--prs-navy); border-color: var(--prs-navy); color: var(--prs-white); }
.prs .prs-card--dark .prs-kicker { color: var(--prs-orange); }
.prs .prs-card--dark p { color: var(--prs-on-dark); }
.prs .prs-card--dark a:not(.wp-block-button__link) { color: var(--prs-white); text-decoration-color: var(--prs-orange); }
.prs .prs-section--navy .prs-card:not(.prs-card--dark) { border-color: transparent; }

.prs .prs-card .prs-kicker { font-size: calc(.8125 * var(--prs-rem)); }
.prs .prs-meta {
  font-family: var(--prs-mono);
  font-size: calc(.875 * var(--prs-rem));
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--prs-muted);
}
.prs .prs-card--dark .prs-meta { color: var(--prs-on-dark-muted); }
.prs .prs-price {
  font-family: var(--prs-display);
  font-size: calc(2 * var(--prs-rem));
  font-weight: 700;
  line-height: 1;
  color: var(--prs-navy);
  font-variant-numeric: tabular-nums;
}
.prs .prs-price span,
.prs .prs-price em { font-family: var(--prs-body); font-size: calc(1 * var(--prs-rem)); font-weight: 400; font-style: normal; color: var(--prs-muted); }
.prs .prs-card--dark .prs-price { color: var(--prs-white); }
.prs .prs-card--dark .prs-price span,
.prs .prs-card--dark .prs-price em { color: var(--prs-on-dark-muted); }
.prs .prs-tag {
  align-self: flex-start;
  display: inline-block;
  padding: 4px 10px;
  border-radius: 3px;
  background: var(--prs-paper);
  color: var(--prs-navy);
  font-family: var(--prs-mono);
  font-size: calc(.8125 * var(--prs-rem));
  letter-spacing: .1em;
  text-transform: uppercase;
}
.prs .prs-tag--live { background: var(--prs-navy); color: var(--prs-white); }

/* Two-column split: text and a spec sheet */
.prs .prs-split {
  display: grid;
  gap: clamp(32px, 5vw, 72px);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr));
  align-items: start;
}
.prs .prs-split > * { min-width: 0; }
.prs .prs-col { display: flex; flex-direction: column; gap: calc(1.25 * var(--prs-rem)); }

/* Spec sheet: label / value rows like an instrument readout */
.prs .prs-specs {
  display: flex;
  flex-direction: column;
  padding: clamp(24px, 3vw, 32px);
  border-radius: var(--prs-radius);
  background: var(--prs-navy-2);
  color: var(--prs-white);
}
.prs .prs-specs > * { margin: 0; }
.prs .prs-spec {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-block: 12px;
  border-bottom: 1px solid rgba(243, 242, 238, .18);
  max-width: none;
}
.prs .prs-spec:last-of-type { border-bottom: 0; }
.prs .prs-spec span {
  font-family: var(--prs-mono);
  font-size: calc(.875 * var(--prs-rem));
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--prs-on-dark-muted);
}
.prs .prs-spec strong { text-align: right; color: var(--prs-white); }
.prs .prs-section--paper .prs-specs,
.prs .prs-section--white .prs-specs { background: var(--prs-navy); }

/* ---------- Lists ---------- */
.prs ul.prs-checks { list-style: none; margin-left: 0; padding: 0; display: grid; gap: 10px; }
.prs ul.prs-checks > li { position: relative; padding-left: 28px; margin: 0; }
.prs ul.prs-checks > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .78em;
  width: 16px;
  height: 2px;
  background: var(--prs-orange);
}

.prs ol.prs-steps {
  list-style: none;
  counter-reset: prs-step;
  margin-left: 0;
  padding: 0;
  display: grid;
  gap: 28px 32px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
}
.prs ol.prs-steps > li {
  counter-increment: prs-step;
  margin: 0;
  padding-top: 18px;
  border-top: 2px solid var(--prs-navy);
  max-width: none;
}
.prs ol.prs-steps > li::before {
  content: counter(prs-step, decimal-leading-zero);
  display: block;
  margin-bottom: 10px;
  font-family: var(--prs-display);
  font-size: calc(2.25 * var(--prs-rem));
  font-weight: 700;
  line-height: 1;
  color: var(--prs-orange);
}
.prs ol.prs-steps > li strong { display: block; margin-bottom: 4px; font-size: calc(1.0625 * var(--prs-rem)); color: var(--prs-navy); }
.prs .prs-section--navy ol.prs-steps > li { border-top-color: var(--prs-grey); }
.prs ol.prs-steps > li { position: relative; }
.prs ol.prs-steps > li::after { content: ""; position: absolute; left: 0; right: 0; top: -2px; height: 2px; background: var(--prs-orange); transform-origin: left center; }
.prs .prs-section--navy ol.prs-steps > li::before { color: var(--prs-orange); }
.prs .prs-section--navy ol.prs-steps > li strong { color: var(--prs-white); }

/* ---------- Facts strip ---------- */
.prs .prs-facts {
  display: grid;
  gap: 24px 32px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
}
.prs .prs-fact { border-left: 2px solid var(--prs-orange); padding-left: 16px; }
.prs .prs-fact-value {
  font-family: var(--prs-display);
  font-size: calc(1.75 * var(--prs-rem));
  font-weight: 700;
  line-height: 1.05;
  color: var(--prs-navy);
}
.prs .prs-fact-label { margin-top: 4px !important; font-size: calc(.9375 * var(--prs-rem)); line-height: 1.45; color: var(--prs-muted); }
.prs .prs-section--compact { padding-block: clamp(32px, 4vw, 48px); }

/* ---------- Notes, boundaries, FAQ ---------- */
.prs .prs-note {
  padding: 20px 24px;
  border-left: 3px solid var(--prs-orange);
  background: var(--prs-paper);
  border-radius: 0 var(--prs-radius) var(--prs-radius) 0;
  max-width: 78ch;
}
.prs .prs-note > * + * { margin-top: calc(.5 * var(--prs-rem)); }
.prs .prs-note p { font-size: calc(1 * var(--prs-rem)); }
.prs .prs-section--paper .prs-note { background: var(--prs-white); }
.prs .prs-section--navy .prs-note { background: var(--prs-navy-2); border-left-color: var(--prs-orange); }

.prs details.wp-block-details { border-top: 1px solid var(--prs-line); padding-block: 16px; max-width: 78ch; }
.prs details.wp-block-details summary { cursor: pointer; font-weight: 600; color: var(--prs-navy); }
.prs details.wp-block-details > * + * { margin-top: calc(.75 * var(--prs-rem)); }

/* ---------- Latest notes (posts) ---------- */
.prs ul.wp-block-latest-posts.prs-latest {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}
.prs ul.prs-latest > li { margin: 0; padding-top: 16px; border-top: 2px solid var(--prs-navy); max-width: none; }
.prs ul.prs-latest a {
  font-family: var(--prs-display);
  font-size: calc(1.5 * var(--prs-rem));
  font-weight: 700;
  line-height: 1.1;
  color: var(--prs-navy);
  text-decoration: none;
}
.prs ul.prs-latest a:hover { color: var(--prs-navy); text-decoration: underline; text-decoration-color: var(--prs-orange); }
.prs ul.prs-latest .wp-block-latest-posts__post-date { display: block; margin-top: 6px; font-family: var(--prs-mono); font-size: calc(.875 * var(--prs-rem)); color: var(--prs-muted); }

/* ---------- WooCommerce product list inside brand pages ---------- */
.prs .woocommerce ul.products li.product .button,
.prs .woocommerce a.button { background: var(--prs-orange); color: var(--prs-navy); border: 0; border-radius: 4px; text-decoration: none; text-transform: none; letter-spacing: normal; font-size: calc(1 * var(--prs-rem)); font-weight: 600; }
.prs .woocommerce ul.products li.product .button:hover { background: var(--prs-navy); color: var(--prs-white); }
.prs .woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--prs-display); font-size: calc(1.375 * var(--prs-rem)); color: var(--prs-navy); }

/* ---------- Header and footer patterns (block themes) ---------- */
.prs.prs-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 32px;
  padding-block: 18px;
  padding-inline: max(var(--prs-gutter), calc((100% - var(--prs-max)) / 2));
  background: var(--prs-navy);
  color: var(--prs-white);
}
.prs.prs-header > * { margin: 0 !important; }
.prs.prs-header .wp-block-site-title,
.prs.prs-header .prs-wordmark { font-family: var(--prs-display); font-size: calc(1.5 * var(--prs-rem)); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.prs.prs-header .wp-block-site-title a,
.prs.prs-header .prs-wordmark a { color: var(--prs-white); text-decoration: none; }
.prs.prs-header .wp-block-navigation { font-size: calc(.9375 * var(--prs-rem)); font-weight: 500; gap: 6px 26px; }
.prs.prs-header .wp-block-navigation a { color: var(--prs-on-dark); text-decoration: none; }
.prs.prs-header .wp-block-navigation a:hover { color: var(--prs-white); }
.prs.prs-header .prs-btn .wp-block-button__link { min-height: 44px; padding: 0 18px; }

.prs.prs-footer {
  padding-block: 56px 40px;
  padding-inline: max(var(--prs-gutter), calc((100% - var(--prs-max)) / 2));
  background: var(--prs-deep);
  color: var(--prs-on-dark-muted);
  font-size: calc(.9375 * var(--prs-rem));
}
.prs.prs-footer > * { margin-block: 0; }
.prs.prs-footer > * + * { margin-top: calc(2.5 * var(--prs-rem)) !important; }
.prs.prs-footer .prs-grid { gap: 32px; }
.prs.prs-footer h4 { color: var(--prs-white); font-size: calc(.8125 * var(--prs-rem)); font-family: var(--prs-mono); letter-spacing: .12em; text-transform: uppercase; font-weight: 500; }
.prs.prs-footer a { color: var(--prs-on-dark); text-decoration: none; }
.prs.prs-footer a:hover { color: var(--prs-white); text-decoration: underline; }
.prs.prs-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.prs.prs-footer .prs-wordmark { font-family: var(--prs-display); font-size: calc(1.5 * var(--prs-rem)); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--prs-white); }
.prs.prs-footer .prs-wordmark span { color: var(--prs-orange); }
.prs.prs-footer .prs-legal { border-top: 1px solid rgba(159, 182, 202, .25); padding-top: 20px; font-size: calc(.8125 * var(--prs-rem)); max-width: none; }

/* ---------- OceanWP (classic theme): readable base sizes on every page ---------- */
/* The theme's defaults are 14px text, 13px footer links and 12px copyright. These rules apply only under OceanWP. */
body.oceanwp-theme { font-size: var(--prs-rem); line-height: 1.65; }
body.oceanwp-theme #mobile-dropdown ul li a,
body.oceanwp-theme #sidr .sidr-class-dropdown-menu li a { font-size: var(--prs-rem); }
body.oceanwp-theme #site-navigation-wrap .dropdown-menu ul.sub-menu li a { font-size: calc(.9375 * var(--prs-rem)); }
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li > a { padding-left: 12px; padding-right: 12px; letter-spacing: normal; }
/* Header: the menu item with the class prs-menu-cta (Contact) is drawn as a button */
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li.prs-menu-cta { margin-left: 12px; }
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li.prs-menu-cta > a.menu-link { height: auto; margin-top: 16px; padding: 11px 22px; line-height: 1.2; border-radius: 4px; background-color: var(--prs-orange); color: var(--prs-navy); font-weight: 600; }
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li.prs-menu-cta > a.menu-link:hover,
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li.prs-menu-cta > a.menu-link:focus-visible,
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li.prs-menu-cta.current-menu-item > a.menu-link { background-color: var(--prs-navy); color: var(--prs-white); }
body.oceanwp-theme #footer-widgets { font-size: calc(.9375 * var(--prs-rem)); }
body.oceanwp-theme #footer-widgets .footer-box .widget-title { font-size: calc(.875 * var(--prs-rem)); line-height: 1.4; }
body.oceanwp-theme #footer-widgets .footer-box .footer-widget li,
body.oceanwp-theme #footer-widgets .footer-box .footer-widget li a,
body.oceanwp-theme #footer-widgets .footer-box .footer-widget p,
body.oceanwp-theme #footer-widgets .footer-box .footer-widget a { font-size: calc(.9375 * var(--prs-rem)); line-height: 1.6; }
/* footer: the email icon in the contact widget is white like the social icons (the theme paints it in the accent colour) */
body.oceanwp-theme #footer-widgets .contact-info-widget i,
body.oceanwp-theme #footer-widgets .contact-info-widget .owp-icon { color: #FFFFFF; fill: currentColor; }
body.oceanwp-theme #footer-bottom { border-top: 1px solid rgba(129, 130, 132, .45); }
body.oceanwp-theme #footer-bottom #copyright,
body.oceanwp-theme #footer-bottom #footer-bottom-menu { font-size: calc(.875 * var(--prs-rem)); line-height: 1.6; }
body.oceanwp-theme .woocommerce .button,
body.oceanwp-theme .woocommerce button.button,
body.oceanwp-theme.woocommerce .button,
body.oceanwp-theme.woocommerce-page .button { text-transform: none !important; letter-spacing: normal !important; font-size: calc(.9375 * var(--prs-rem)) !important; font-weight: 600; }
body.oceanwp-theme .product_meta,
body.oceanwp-theme .product_meta a { font-size: calc(.8125 * var(--prs-rem)); }
body.oceanwp-theme .woocommerce ul.products li.product li.category a,
body.oceanwp-theme .woocommerce ul.products li.product .owp-quick-view,
body.oceanwp-theme .oceanwp-toolbar .result-count li,
body.oceanwp-theme .oceanwp-toolbar .result-count a { font-size: calc(.8125 * var(--prs-rem)); }
body.oceanwp-theme .wc-block-grid__product-title,
body.oceanwp-theme .wc-block-grid__product-price,
body.oceanwp-theme .wc-block-grid__product-add-to-cart .wp-block-button__link { font-size: calc(.9375 * var(--prs-rem)); }

/* Product pages: title, price and description in the brand type; lists with the orange dash, as on the site pages.
   #tab-description is needed to win over WooCommerce's own ".woocommerce #tab-description ul". */
body.oceanwp-theme.single-product div.product .product_title { font-family: var(--prs-display); font-weight: 700; font-size: clamp(calc(1.875 * var(--prs-rem)), 3vw, calc(2.5 * var(--prs-rem))); line-height: 1.08; letter-spacing: normal; text-transform: none; color: var(--prs-navy); }
body.oceanwp-theme.single-product div.product .summary .price,
body.oceanwp-theme.single-product div.product .summary .price .amount { font-family: var(--prs-display); font-weight: 700; color: var(--prs-navy); }
body.oceanwp-theme.single-product div.product .woocommerce-product-details__short-description,
body.oceanwp-theme.single-product div.product #tab-description { font-family: var(--prs-body); font-size: var(--prs-rem); line-height: 1.6; color: var(--prs-ink); }
body.oceanwp-theme.single-product div.product .woocommerce-product-details__short-description { color: var(--prs-muted); }
body.oceanwp-theme.single-product div.product #tab-description { max-width: 760px; }
body.oceanwp-theme.single-product div.product #tab-description > h2:first-child { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
body.oceanwp-theme.single-product div.product #tab-description h3 { margin: 1.75em 0 .5em; font-family: var(--prs-display); font-weight: 700; font-size: calc(1.5 * var(--prs-rem)); line-height: 1.15; letter-spacing: normal; text-transform: none; color: var(--prs-navy); }
body.oceanwp-theme.single-product div.product #tab-description p { margin: 0 0 1em; }
body.oceanwp-theme.single-product div.product .woocommerce-product-details__short-description ul,
body.oceanwp-theme.single-product div.product #tab-description ul { margin: 0 0 1.25em; padding: 0; list-style: none; }
body.oceanwp-theme.single-product div.product .woocommerce-product-details__short-description li,
body.oceanwp-theme.single-product div.product #tab-description li { position: relative; margin: 0 0 .45em; padding-left: 24px; }
body.oceanwp-theme.single-product div.product .woocommerce-product-details__short-description li::before,
body.oceanwp-theme.single-product div.product #tab-description li::before { content: ""; position: absolute; left: 0; top: .78em; width: 14px; height: 2px; background: var(--prs-orange); }
body.oceanwp-theme.single-product div.product .woocommerce-product-details__short-description a,
body.oceanwp-theme.single-product div.product #tab-description a { color: var(--prs-navy); text-decoration: underline; text-decoration-color: var(--prs-orange); text-decoration-thickness: 1.5px; text-underline-offset: .18em; }
body.oceanwp-theme.single-product div.product .woocommerce-product-details__short-description a:hover,
body.oceanwp-theme.single-product div.product #tab-description a:hover { color: var(--prs-navy); text-decoration-thickness: 3px; }
body.oceanwp-theme.single-product div.product .woocommerce-tabs ul.tabs li a { font-family: var(--prs-mono); font-weight: 500; font-size: calc(.8125 * var(--prs-rem)); letter-spacing: .14em; }
body.oceanwp-theme.single-product .related.products > h2,
body.oceanwp-theme.single-product .upsells.products > h2 { font-family: var(--prs-display); font-weight: 700; font-size: calc(1.75 * var(--prs-rem)); letter-spacing: normal; text-transform: none; color: var(--prs-navy); }

body.oceanwp-theme .wcmenucart-details.count { color: var(--prs-navy); font-weight: 600; }

/* ---------- Login and sign-up popup (Login/Signup Popup by XootiX) in the brand palette ---------- */
body .xoo-el-form-container button[type="submit"].btn.button.xoo-el-action-btn,
body button.xoo-el-action-btn.xoo-elpof-btn { background-color: var(--prs-orange); color: var(--prs-navy); border-color: var(--prs-orange); font-weight: 600; }
body .xoo-el-form-container button[type="submit"].btn.button.xoo-el-action-btn:hover,
body button.xoo-el-action-btn.xoo-elpof-btn:hover { background-color: var(--prs-white); color: var(--prs-navy); border-color: var(--prs-orange); }
body .xoo-el-form-container ul.xoo-el-tabs li { background-color: var(--prs-paper); color: var(--prs-navy); }
body .xoo-el-form-container ul.xoo-el-tabs li.xoo-el-active { background-color: var(--prs-navy); color: var(--prs-white); }
body .xoo-el-main, body .xoo-el-main a, body .xoo-el-main label { color: var(--prs-navy); }
.xoo-el-popup-active .xoo-el-opac.xoo-el-opac { background-color: var(--prs-navy); }

/* ---------- Guard: older site-wide CSS reuses some .prs-* names (hero, lead, card, note) ---------- */
.prs .prs-hero { border-radius: 0; box-shadow: none; }
.prs .prs-card { box-shadow: none; }
.prs .prs-note { display: block; border-top: 0; border-right: 0; border-bottom: 0; }
.prs .prs-lead { font-size: clamp(calc(1.125 * var(--prs-rem)), 1.6vw, calc(1.3125 * var(--prs-rem))) !important; line-height: 1.55 !important; margin-bottom: 0 !important; color: var(--prs-muted) !important; }
.prs .prs-section--navy .prs-lead,
.prs .prs-section--deep .prs-lead { color: var(--prs-on-dark) !important; }
@media (max-width: 700px) {
  .prs .prs-hero { padding: clamp(72px, 10vw, 136px) var(--prs-gutter) clamp(64px, 9vw, 120px) !important; }
  .prs .prs-hero--page { padding: clamp(56px, 7vw, 96px) var(--prs-gutter) clamp(48px, 6vw, 80px) !important; }
}

/* ---------- Motion (approved 13 October 2026) ---------- */
/* Everything moves only when the visitor has not asked the system for reduced motion.
   prs-await is set by the plugin script only on elements that start below the screen. */
@keyframes prs-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes prs-row { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }
@keyframes prs-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes prs-num { from { color: var(--prs-grey); } to { color: var(--prs-orange); } }
@keyframes prs-beacon { 0%, 100% { box-shadow: 0 0 0 0 rgba(240, 99, 22, .65); } 60% { box-shadow: 0 0 0 7px rgba(240, 99, 22, 0); } }
@keyframes prs-sweep { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@keyframes prs-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes prs-glow { 0%, 100% { box-shadow: 0 0 0 0 rgba(240, 99, 22, .45); } 50% { box-shadow: 0 0 0 8px rgba(240, 99, 22, 0); } }

/* A1 (part): dots orbit the rotor disc and one runs down the approach line to the H.
   The moving dots are an inline SVG added by the plugin script (div.prs-hero-dots, same size and place as the drawing)
   and animated with CSS: an animated SVG used as a background image is redrawn only a few times a second, so it jumped.
   Separation: the approach loop (7.5 s: 4.2 s in motion, then a pause) divides the 90 s orbit exactly, and the three
   orbiting dots start where the approach dot never comes closer than 68 units to any of them.
   Home hero, and the page heroes with the class prs-hero--orbit (Courses, Coaching, Military to civil, ATOs, Heliports, About) */
.prs .prs-hero > .prs-hero-dots {
  position: absolute;
  z-index: -1;
  top: 50%;
  right: max(-180px, calc((100vw - var(--prs-max)) / 2 - 220px));
  width: min(70vw, 860px);
  max-width: none;
  aspect-ratio: 4 / 3;
  margin: 0 !important;
  padding: 0;
  transform: translateY(-50%);
  opacity: .8;
  pointer-events: none;
}
.prs .prs-hero--page > .prs-hero-dots { opacity: .55; width: min(56vw, 680px); }
@media (max-width: 781px) {
  .prs .prs-hero > .prs-hero-dots { opacity: .35; width: 130vw; right: -55vw; }
}
.prs .prs-hero-dots svg { display: block; width: 100%; height: 100%; overflow: visible; }
.prs .prs-hero-dots .prs-orbit { transform-box: view-box; transform-origin: 520px 300px; animation: prs-orbit 90s linear infinite; }
.prs .prs-hero-dots .prs-approach { opacity: 0; animation: prs-approach-fade 7.5s linear infinite; }
.prs .prs-hero-dots .prs-approach circle { transform-box: view-box; animation: prs-approach 7.5s infinite; }
@keyframes prs-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes prs-approach {
  0% { transform: translate(0, 0); animation-timing-function: cubic-bezier(.45, .05, .35, 1); }
  56%, 100% { transform: translate(500px, -252px); }
}
@keyframes prs-approach-fade { 0% { opacity: 0; } 6.72%, 47.6% { opacity: 1; } 56%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .prs .prs-hero-dots { display: none; }
}
/* on wide screens the page-hero drawing is a little stronger so the moving dot reads; phones keep it light behind the text */
@media (prefers-reduced-motion: no-preference) and (min-width: 782px) {
  .prs .prs-hero--page.prs-hero--orbit::after,
  .prs .prs-hero--page.prs-hero--orbit > .prs-hero-dots { opacity: .7; }
}

/* A2: header stays at the top, gets smaller after a short scroll; orange line shows how far you have read */
body.oceanwp-theme.prs-fixed-header #site-header { position: fixed; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; z-index: 999; }
body.oceanwp-theme.prs-fixed-header #wrap { padding-top: var(--prs-hh, 81px); }
html.prs-fixed-header { scroll-padding-top: 76px; }
body.oceanwp-theme #site-header { transition: box-shadow .35s ease; }
body.oceanwp-theme #site-header::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 3px; background: var(--prs-orange); transform: scaleX(var(--prs-progress, 0)); transform-origin: left center; pointer-events: none; }
body.oceanwp-theme #site-header.prs-compact { box-shadow: 0 6px 24px rgba(8, 38, 62, .14); }
body.oceanwp-theme #site-header #site-logo img { transition: max-height .35s cubic-bezier(.2,.7,.2,1); }
body.oceanwp-theme #site-header.prs-compact #site-logo img { max-height: 56px !important; }
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li > a,
body.oceanwp-theme .oceanwp-mobile-menu-icon a { transition: line-height .35s cubic-bezier(.2,.7,.2,1), color .2s ease; }
body.oceanwp-theme #site-header.prs-compact #site-navigation-wrap .dropdown-menu > li > a,
body.oceanwp-theme #site-header.prs-compact .oceanwp-mobile-menu-icon a { line-height: 58px; }
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li.prs-menu-cta > a.menu-link { transition: margin-top .35s cubic-bezier(.2,.7,.2,1), background-color .2s ease, color .2s ease; }
body.oceanwp-theme #site-header.prs-compact #site-navigation-wrap .dropdown-menu > li.prs-menu-cta > a.menu-link { margin-top: 7px; line-height: 1.2; }
body.oceanwp-theme.prs-fixed-header #mobile-dropdown { max-height: calc(100vh - 90px); overflow-y: auto; }
body.oceanwp-theme .oceanwp-mobile-menu-icon a:focus:not(:focus-visible) { outline: none; }
/* menu items: orange line drawn under the item on hover and under the current page */
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li:not(.prs-menu-cta) > a > .text-wrap { position: relative; }
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li:not(.prs-menu-cta) > a > .text-wrap::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 2px; background: var(--prs-orange); transform: scaleX(0); transform-origin: left center; transition: transform .25s cubic-bezier(.2,.7,.2,1); }
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li:not(.prs-menu-cta):hover > a > .text-wrap::after,
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li:not(.prs-menu-cta) > a:focus-visible > .text-wrap::after,
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li.current-menu-item > a > .text-wrap::after,
body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li.current-menu-ancestor > a > .text-wrap::after { transform: scaleX(1); }

/* B3: steps rise one after the other, the orange line runs along them and the numbers light up */
@media (prefers-reduced-motion: no-preference) {
  .prs-js .prs ol.prs-steps.prs-await > li { opacity: 0; }
  .prs-js .prs ol.prs-steps.prs-await > li::after { transform: scaleX(0); }
  .prs-js .prs ol.prs-steps.prs-await > li::before { color: var(--prs-grey); }
  .prs-js .prs ol.prs-steps.prs-in > li { animation: prs-rise .5s cubic-bezier(.2,.7,.2,1) both; }
  .prs-js .prs ol.prs-steps.prs-in > li::after { animation: prs-fill .5s linear both; }
  .prs-js .prs ol.prs-steps.prs-in > li::before { animation: prs-num .3s ease both; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(2) { animation-delay: .12s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(3) { animation-delay: .24s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(4) { animation-delay: .36s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(5) { animation-delay: .48s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(6) { animation-delay: .6s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(1)::after { animation-delay: .3s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(2)::after { animation-delay: .8s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(3)::after { animation-delay: 1.3s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(4)::after { animation-delay: 1.8s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(5)::after { animation-delay: 2.3s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(6)::after { animation-delay: 2.8s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(1)::before { animation-delay: .7s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(2)::before { animation-delay: 1.2s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(3)::before { animation-delay: 1.7s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(4)::before { animation-delay: 2.2s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(5)::before { animation-delay: 2.7s; }
  .prs-js .prs ol.prs-steps.prs-in > li:nth-child(6)::before { animation-delay: 3.2s; }
}

/* C1: cards lift, the border turns orange, the label dash grows and the arrow moves forward */
.prs .prs-card { transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, border-color .3s ease; }
.prs .prs-grid > .prs-card:has(a):hover { transform: translateY(-4px); border-color: var(--prs-orange); box-shadow: 0 14px 32px rgba(8, 38, 62, .14); }
.prs .prs-kicker::before { transition: width .3s cubic-bezier(.2,.7,.2,1); }
.prs .prs-grid > .prs-card:has(a):hover .prs-kicker::before { width: 2.6em; }
/* the same lift on chosen grids of cards without a link (Coaching formats, ATO services, heliport services): class prs-grid--lift */
.prs .prs-grid--lift > .prs-card:hover { transform: translateY(-4px); border-color: var(--prs-orange); box-shadow: 0 14px 32px rgba(8, 38, 62, .14); }
.prs .prs-grid--lift > .prs-card:hover .prs-kicker::before { width: 2.6em; }
.prs .prs-grid > .prs-card:hover .prs-link a { text-decoration-thickness: 3px; }
.prs .prs-grid > .prs-card:hover .prs-link a::after { transform: translateX(5px); }
.prs .woocommerce ul.products li.product .product-inner { border-radius: var(--prs-radius); transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease; }
.prs .woocommerce ul.products li.product:hover .product-inner { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(8, 38, 62, .14); }
.prs .woocommerce ul.products li.product .woo-entry-image { overflow: hidden; border-radius: var(--prs-radius) var(--prs-radius) 0 0; }
.prs .woocommerce ul.products li.product .woo-entry-image img { transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.prs .woocommerce ul.products li.product:hover .woo-entry-image img { transform: scale(1.05); }

/* D1: standards ticker (the script turns a "A · B · C" paragraph with the class prs-ticker into a strip) */
.prs .prs-ticker.prs-ticker--on { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); overflow: hidden; padding-block: 18px; background: var(--prs-navy); color: var(--prs-on-dark); font-size: calc(.9375 * var(--prs-rem)); line-height: 1.5; }
.prs .prs-ticker .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.prs .prs-ticker-track { display: flex; width: max-content; animation: prs-marquee 55s linear infinite; }
.prs .prs-ticker--on:hover .prs-ticker-track { animation-play-state: paused; }
.prs .prs-ticker-item { display: inline-flex; align-items: center; gap: 20px; padding-right: 20px; white-space: nowrap; }
.prs .prs-ticker-item::after { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--prs-orange); }
.prs .prs-section--navy .prs-ticker.prs-ticker--on { background: var(--prs-navy-2); }
@media (prefers-reduced-motion: reduce) {
  .prs .prs-ticker-track { animation: none; flex-wrap: wrap; width: auto; row-gap: 6px; padding-inline: var(--prs-gutter); }
}

/* D2: heliport diagram (tabs, plan, details) */
.prs .prs-heli { display: grid; grid-template-columns: minmax(220px, 270px) minmax(0, .85fr) minmax(0, 1.15fr); gap: 24px; align-items: start; }
.prs .prs-heli > * { margin: 0; }
.prs .prs-heli-list { display: flex; flex-direction: column; gap: 8px; }
.prs .prs-heli-list button { display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 8px 14px; text-align: left; border-radius: var(--prs-radius); border: 1.5px solid var(--prs-line); background: var(--prs-white); color: var(--prs-navy); font-family: var(--prs-body); font-size: calc(.9375 * var(--prs-rem)); font-weight: 600; line-height: 1.3; cursor: pointer; transition: border-color .2s ease, box-shadow .2s ease; text-transform: none; letter-spacing: normal; }
.prs .prs-heli-list button:hover { border-color: var(--prs-orange); }
.prs .prs-heli-list button[aria-selected="true"] { border-color: var(--prs-orange); box-shadow: inset 4px 0 0 var(--prs-orange); }
.prs .prs-heli-list button:focus-visible { outline: 3px solid var(--prs-orange); outline-offset: 2px; }
.prs .prs-heli-code { flex: none; min-width: 58px; white-space: nowrap; font-family: var(--prs-mono); font-size: calc(.75 * var(--prs-rem)); font-weight: 500; letter-spacing: .08em; color: var(--prs-muted); }
.prs .prs-heli-plan { position: relative; width: 100%; aspect-ratio: 480 / 640; container-type: inline-size; overflow: hidden; border-radius: var(--prs-radius); background-color: var(--prs-white); background-image: linear-gradient(rgba(129, 130, 132, .16) 1px, transparent 1px), linear-gradient(90deg, rgba(129, 130, 132, .16) 1px, transparent 1px); background-size: 20px 20px; }
.prs .prs-heli-plan > span { position: absolute; box-sizing: border-box; }
.prs .prs-heli-label { font-family: var(--prs-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--prs-muted); }
.prs .prs-heli-label--b1 { left: 12px; bottom: 26px; }
.prs .prs-heli-label--b2 { left: 12px; bottom: 10px; }
.prs .prs-heli-plan .z { transition: border-color .3s ease, background-color .3s ease, color .3s ease; }
/* vertical plan: the approach and take-off surface sits above the FATO and the approach line runs down to the H;
   the drawing uses the top 600 of 640 units, the band below holds the two labels */
.prs .prs-heli-plan .z-ats { left: 8.333%; top: 0; width: 83.333%; height: 33.438%; background: rgba(129, 130, 132, .18); clip-path: polygon(0 0, 100% 0, 92.5% 100%, 7.5% 100%); }
.prs .prs-heli-plan .z-line { left: 49.792%; top: 0; width: 2px; height: 51.563%; background: repeating-linear-gradient(180deg, var(--prs-orange) 0 10px, transparent 10px 20px); }
.prs .prs-heli-plan .z-sa { left: 14.583%; top: 33.438%; width: 70.833%; height: 53.125%; border: 2px dashed var(--prs-grey); }
.prs .prs-heli-plan .z-fato { left: 22.917%; top: 39.688%; width: 54.167%; height: 40.625%; border: 2.5px solid var(--prs-navy); background: rgba(243, 242, 238, .7); }
.prs .prs-heli-plan .z-tlof { left: 34.375%; top: 48.281%; width: 31.25%; height: 23.438%; border: 2.5px solid var(--prs-navy); background: var(--prs-white); }
.prs .prs-heli-plan .z-tdpm { left: 39.583%; top: 52.188%; width: 20.833%; height: 15.625%; border-radius: 50%; border: 4px solid var(--prs-grey); }
.prs .prs-heli-plan .z-h { left: 39.583%; top: 52.188%; width: 20.833%; height: 15.625%; display: flex; align-items: center; justify-content: center; font-family: var(--prs-display); font-weight: 700; font-size: 11.2cqw; line-height: 1; color: var(--prs-navy); }
/* the H stands along the approach line: its cross bar is at right angles to the approach, as the identification marking is */
.prs .prs-heli-plan .z-wdi { left: 89.167%; top: 36.875%; width: 6.25%; height: 7.188%; border: 1.5px solid var(--prs-grey); border-radius: 4px; display: flex; align-items: center; justify-content: center; color: var(--prs-navy); }
.prs .prs-heli-plan .z-wdi svg { width: 70%; height: 70%; }
.prs .prs-heli[data-active="tlof"] .z-tlof,
.prs .prs-heli[data-active="fato"] .z-fato,
.prs .prs-heli[data-active="sa"] .z-sa,
.prs .prs-heli[data-active="tdpm"] .z-tdpm,
.prs .prs-heli[data-active="wdi"] .z-wdi { border-color: var(--prs-orange); animation: prs-glow 1.8s ease-out infinite; }
.prs .prs-heli[data-active="wdi"] .z-wdi { color: var(--prs-orange); }
.prs .prs-heli[data-active="ats"] .z-ats { background: rgba(240, 99, 22, .28); }
/* lights on the FATO and TLOF edges, and the rescue and firefighting station with the area it covers */
.prs .prs-heli-plan .z-svg { inset: 0; pointer-events: none; }
.prs .prs-heli-plan .z-svg svg { display: block; width: 100%; height: 100%; overflow: hidden; }
.prs .prs-heli-plan .z-lgt circle { fill: var(--prs-white); stroke: var(--prs-grey); stroke-width: 1.5; transition: fill .3s ease, stroke .3s ease; }
.prs .prs-heli-plan .z-rff rect { fill: var(--prs-white); stroke: var(--prs-grey); stroke-width: 1.5; transition: fill .3s ease, stroke .3s ease; }
.prs .prs-heli-plan .z-rff text { font-family: var(--prs-mono); font-size: 13px; font-weight: 500; letter-spacing: .08em; fill: var(--prs-muted); }
.prs .prs-heli-plan .z-rff-reach { fill: rgba(240, 99, 22, .07); stroke: var(--prs-orange); stroke-width: 1.5; stroke-dasharray: 6 6; opacity: 0; transition: opacity .3s ease; }
.prs .prs-heli[data-active="lgt"] .z-lgt circle { fill: var(--prs-orange); stroke: var(--prs-orange); animation: prs-lamp 1.6s ease-in-out infinite; }
.prs .prs-heli[data-active="lgt"] .z-lgt circle:nth-child(even) { animation-delay: .8s; }
.prs .prs-heli[data-active="rff"] .z-rff rect { fill: rgba(240, 99, 22, .14); stroke: var(--prs-orange); }
.prs .prs-heli[data-active="rff"] .z-rff text { fill: var(--prs-navy); }
.prs .prs-heli[data-active="rff"] .z-rff-reach { opacity: 1; }
/* manuals: they cover the whole heliport, so the whole plan is outlined */
.prs .prs-heli-plan::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 3px var(--prs-orange); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
.prs .prs-heli[data-active="man"] .prs-heli-plan::after { opacity: 1; }
.prs .prs-heli-panel p + p:not(.prs-heli-check):not(.prs-heli-ref) { margin-top: -4px; }
@keyframes prs-lamp { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }
.prs .prs-heli-panels { display: flex; flex-direction: column; gap: 16px; }
.prs .prs-heli-panel { display: flex; flex-direction: column; gap: 14px; padding: 28px; border-radius: var(--prs-radius); background: var(--prs-navy); color: var(--prs-white); }
.prs .prs-heli-panel[hidden] { display: none; }
.prs .prs-heli-panel > * { margin: 0; max-width: none; }
.prs .prs-heli-panel .prs-heli-code { color: var(--prs-orange); }
.prs .prs-heli-panel h3 { color: var(--prs-white); font-size: calc(1.75 * var(--prs-rem)); }
.prs .prs-heli-panel p { color: var(--prs-on-dark); font-size: calc(.9375 * var(--prs-rem)); }
.prs .prs-heli-panel .prs-heli-check { padding-top: 14px; border-top: 1px solid rgba(243, 242, 238, .18); font-family: var(--prs-mono); font-size: calc(.75 * var(--prs-rem)); letter-spacing: .14em; text-transform: uppercase; color: var(--prs-on-dark-muted); }
.prs .prs-heli-panel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.prs .prs-heli-panel li { position: relative; padding-left: 24px; color: var(--prs-on-dark); font-size: calc(.9375 * var(--prs-rem)); max-width: none; }
.prs .prs-heli-panel li::before { content: ""; position: absolute; left: 0; top: .75em; width: 14px; height: 2px; background: var(--prs-orange); }
.prs .prs-heli-panel .prs-heli-ref { font-family: var(--prs-mono); font-size: calc(.6875 * var(--prs-rem)); letter-spacing: .1em; text-transform: uppercase; color: var(--prs-on-dark-muted); }
.prs .prs-heli--on .prs-heli-panel:not([hidden]) { animation: prs-row .35s cubic-bezier(.2,.7,.2,1) both; }
@media (max-width: 980px) {
  .prs .prs-heli { grid-template-columns: minmax(0, 1fr); }
  .prs .prs-heli-plan { justify-self: center; max-width: 480px; }
  /* on phones and tablets the buttons show the code only; the full name stays for screen readers and is the panel title */
  .prs .prs-heli-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .prs .prs-heli-list button { justify-content: center; min-height: 48px; padding: 8px 6px; }
  .prs .prs-heli-list button > span:not(.prs-heli-code) { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
  .prs .prs-heli-list .prs-heli-code { min-width: 0; font-size: calc(.8125 * var(--prs-rem)); font-weight: 600; color: var(--prs-navy); }
  .prs .prs-heli-list button[aria-selected="true"] { box-shadow: inset 0 -3px 0 var(--prs-orange); }
}
@media (min-width: 600px) and (max-width: 980px) {
  .prs .prs-heli-list { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* Drawings under the heliport diagram: two example sheets side by side, stacked on phones; a click opens the full sheet */
.prs .prs-gallery-title { margin-top: 64px; }
.prs .prs-gallery { margin-top: 22px; max-width: none; }
.prs .prs-gallery-track { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.prs .prs-gallery-item { margin: 0; min-width: 0; }
.prs .prs-gallery-frame { display: block; border: 1px solid var(--prs-line); border-radius: var(--prs-radius); overflow: hidden; background: var(--prs-white); cursor: zoom-in; transition: border-color .2s ease, box-shadow .3s ease; }
.prs .prs-gallery-frame:hover { border-color: var(--prs-orange); box-shadow: 0 14px 32px rgba(8, 38, 62, .14); }
.prs .prs-gallery-frame:focus-visible { outline: 3px solid var(--prs-orange); outline-offset: 3px; }
.prs .prs-gallery-frame img { display: block; width: 100%; height: auto; max-width: none; border-radius: 0; }
.prs .prs-gallery-item figcaption { display: flex; gap: 12px; margin-top: 12px; font-size: calc(.9 * var(--prs-rem)); line-height: 1.5; color: var(--prs-muted); max-width: none; }
.prs .prs-gallery-n { flex: none; padding-top: 2px; font-family: var(--prs-mono); font-size: calc(.75 * var(--prs-rem)); letter-spacing: .1em; color: var(--prs-orange); }
@media (max-width: 781px) {
  .prs .prs-gallery-title { margin-top: 48px; }
  .prs .prs-gallery-track { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}

/* Reviews from former students: one card at a time, arrows and swipe, no automatic rotation */
.prs .prs-reviews { margin-top: 32px; max-width: 880px; }
.prs .prs-reviews-track { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; border-radius: var(--prs-radius); }
.prs .prs-reviews-track::-webkit-scrollbar { display: none; }
.prs .prs-reviews-track:focus-visible { outline: 3px solid var(--prs-orange); outline-offset: 4px; }
.prs .prs-review { position: relative; margin: 0; scroll-snap-align: start; display: flex; flex-direction: column; gap: 20px; padding: 40px 44px 34px; border-radius: var(--prs-radius); background: var(--prs-navy-2); color: var(--prs-on-dark); }
.prs .prs-review::before { content: "\201C"; position: absolute; right: 32px; top: 6px; font-family: var(--prs-display); font-weight: 700; font-size: 120px; line-height: 1; color: var(--prs-orange); opacity: .35; pointer-events: none; }
.prs .prs-review-stars { display: flex; gap: 4px; margin: 0; max-width: none; color: var(--prs-orange); }
.prs .prs-review-text { margin: 0; padding: 0; border: 0; background: none; quotes: none; }
.prs .prs-review-text p { margin: 0; max-width: 62ch; font-family: var(--prs-body); font-size: calc(1.125 * var(--prs-rem)); font-style: normal; line-height: 1.65; color: var(--prs-on-dark); }
.prs .prs-review-who { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; padding-top: 18px; border-top: 1px solid rgba(243, 242, 238, .18); }
.prs .prs-review-name { font-family: var(--prs-display); font-weight: 700; font-size: calc(1.375 * var(--prs-rem)); line-height: 1.1; color: var(--prs-white); }
.prs .prs-review-role { font-family: var(--prs-mono); font-size: calc(.75 * var(--prs-rem)); letter-spacing: .12em; text-transform: uppercase; color: var(--prs-on-dark-muted); }
.prs .prs-reviews-nav { display: flex; align-items: center; gap: 16px; margin-top: 20px; }
.prs .prs-reviews-nav button { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; min-height: 0; padding: 0; border-radius: 50%; border: 1.5px solid var(--prs-grey); background: transparent; color: var(--prs-white); box-shadow: none; line-height: 1; text-transform: none; letter-spacing: normal; cursor: pointer; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.prs .prs-reviews-nav button:hover { background: var(--prs-orange); border-color: var(--prs-orange); color: var(--prs-navy); }
.prs .prs-reviews-nav button:focus-visible { outline: 3px solid var(--prs-orange); outline-offset: 3px; }
.prs .prs-reviews-nav button[hidden] { display: none; }
.prs .prs-reviews-nav .prs-reviews-toggle { margin-left: 8px; width: 40px; height: 40px; border-color: transparent; color: var(--prs-on-dark-muted); }
.prs .prs-reviews-toggle .i-play,
.prs .prs-reviews.is-paused .prs-reviews-toggle .i-pause { display: none; }
.prs .prs-reviews.is-paused .prs-reviews-toggle .i-play { display: block; }
.prs .prs-reviews-count { min-width: 4em; text-align: center; font-family: var(--prs-mono); font-size: calc(.8125 * var(--prs-rem)); letter-spacing: .1em; color: var(--prs-on-dark-muted); }
@media (max-width: 781px) {
  .prs .prs-review { padding: 28px 24px 24px; }
  .prs .prs-review::before { right: 18px; font-size: 88px; }
  .prs .prs-review-text p { font-size: var(--prs-rem); }
}

/* Contact: the booking calendar and the form each in their own band, with a short column beside them */
.prs .prs-contact { display: grid; gap: clamp(28px, 4vw, 64px); align-items: start; }
.prs .prs-contact > * { min-width: 0; margin: 0; }
@media (min-width: 900px) {
  .prs .prs-contact--book { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .prs .prs-contact--write { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}
.prs .prs-panel { padding: clamp(20px, 3vw, 36px); border: 1px solid var(--prs-line); border-radius: var(--prs-radius); background: var(--prs-white); }
.prs .prs-panel > * { margin-block: 0; }
.prs .prs-panel--embed { padding: clamp(8px, 1.5vw, 16px); }
.prs .prs-panel iframe { display: block; width: 100%; border: 0; }
.prs .prs-contact-aside { gap: 20px; }
.prs .prs-contact-aside .prs-card h3 { font-size: calc(1.25 * var(--prs-rem)); }
.prs .prs-contact-aside .prs-card > h3 { margin-top: 8px; }
/* Contact Form 7 in the brand style: labels above, full-width fields, orange button */
.prs .wpcf7 form > p { margin: 0 0 18px; max-width: none; }
.prs .wpcf7 form > p:last-of-type { margin-bottom: 0; }
.prs .wpcf7 label { display: block; font-family: var(--prs-body); font-size: calc(.9375 * var(--prs-rem)); font-weight: 600; line-height: 1.4; color: var(--prs-navy); }
.prs .wpcf7 label br { display: none; }
.prs .wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: 6px; }
.prs .wpcf7 input[type="text"], .prs .wpcf7 input[type="email"], .prs .wpcf7 input[type="tel"], .prs .wpcf7 textarea { display: block; width: 100%; max-width: none; box-sizing: border-box; min-height: 48px; margin: 0; padding: 10px 14px; border: 1.5px solid var(--prs-line); border-radius: var(--prs-radius); background: var(--prs-white); color: var(--prs-ink); font-family: var(--prs-body); font-size: var(--prs-rem); font-weight: 400; line-height: 1.5; box-shadow: none; }
.prs .wpcf7 textarea { height: 180px; resize: vertical; }
.prs .wpcf7 input[type="text"]:focus, .prs .wpcf7 input[type="email"]:focus, .prs .wpcf7 input[type="tel"]:focus, .prs .wpcf7 textarea:focus { outline: none; border-color: var(--prs-orange); box-shadow: 0 0 0 3px rgba(240, 99, 22, .25); }
.prs .wpcf7 input[type="submit"] { min-height: 48px; padding: 12px 32px; border: 2px solid var(--prs-orange); border-radius: var(--prs-radius); background: var(--prs-orange); color: var(--prs-navy); font-family: var(--prs-body); font-size: var(--prs-rem); font-weight: 600; letter-spacing: normal; line-height: 1.2; text-transform: none; cursor: pointer; transition: background-color .2s ease; }
.prs .wpcf7 input[type="submit"]:hover { background: var(--prs-white); color: var(--prs-navy); }
.prs .wpcf7 input[type="submit"]:focus-visible { outline: 3px solid var(--prs-orange); outline-offset: 3px; }
.prs .wpcf7 .wpcf7-not-valid-tip { margin-top: 6px; font-size: calc(.875 * var(--prs-rem)); font-weight: 400; }
.prs .wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border-radius: var(--prs-radius); font-size: calc(.9375 * var(--prs-rem)); }

/* D3: course readout, rows come in one by one, bars fill, a light sweeps the top edge */
.prs .prs-specs.prs-readout { position: relative; overflow: hidden; }
.prs .prs-specs.prs-readout::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--prs-orange), transparent); animation: prs-sweep 3.6s linear infinite; }
.prs .prs-readout-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 10px; font-family: var(--prs-mono); font-size: calc(.75 * var(--prs-rem)); letter-spacing: .14em; text-transform: uppercase; color: var(--prs-on-dark-muted); max-width: none; }
.prs .prs-live { display: inline-flex; align-items: center; gap: 8px; color: var(--prs-on-dark); }
.prs .prs-live::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--prs-orange); animation: prs-beacon 2s ease-out infinite; }
.prs .prs-spec.prs-meter { flex-wrap: wrap; }
.prs .prs-spec.prs-meter::after { content: ""; flex-basis: 100%; height: 6px; margin-top: 10px; border-radius: 3px; background-color: rgba(243, 242, 238, .14); background-image: linear-gradient(var(--prs-orange), var(--prs-orange)); background-repeat: no-repeat; background-size: var(--prs-m, 0%) 100%; transition: background-size 1.1s cubic-bezier(.2,.7,.2,1) .3s; }
.prs .prs-spec.prs-meter--alt::after { background-image: linear-gradient(var(--prs-on-dark), var(--prs-on-dark)); }
.prs .prs-meter-83 { --prs-m: 83%; }
.prs .prs-meter-100 { --prs-m: 100%; }
@media (prefers-reduced-motion: no-preference) {
  .prs-js .prs .prs-readout.prs-await > * { opacity: 0; }
  .prs-js .prs .prs-readout.prs-await .prs-spec.prs-meter::after { background-size: 0% 100%; }
  .prs-js .prs .prs-readout.prs-in > * { animation: prs-row .45s cubic-bezier(.2,.7,.2,1) both; }
  .prs-js .prs .prs-readout.prs-in > :nth-child(2) { animation-delay: .1s; }
  .prs-js .prs .prs-readout.prs-in > :nth-child(3) { animation-delay: .2s; }
  .prs-js .prs .prs-readout.prs-in > :nth-child(4) { animation-delay: .3s; }
  .prs-js .prs .prs-readout.prs-in > :nth-child(5) { animation-delay: .4s; }
  .prs-js .prs .prs-readout.prs-in > :nth-child(6) { animation-delay: .5s; }
  .prs-js .prs .prs-readout.prs-in > :nth-child(7) { animation-delay: .6s; }
}

/* Reduced motion: no movement anywhere */
@media (prefers-reduced-motion: reduce) {
  .prs .prs-specs.prs-readout::before { display: none; }
  .prs .prs-live::before,
  .prs .prs-heli-plan .z,
  .prs .prs-heli-plan .z-lgt circle,
  .prs .prs-heli--on .prs-heli-panel:not([hidden]) { animation: none !important; }
  .prs .prs-gallery-frame { transition: none !important; }
  .prs .prs-reviews-nav button { transition: none !important; }
  .prs .prs-card,
  .prs .woocommerce ul.products li.product .product-inner,
  .prs .woocommerce ul.products li.product .woo-entry-image img { transition: none !important; transform: none !important; }
  .prs .prs-grid > .prs-card:has(a):hover,
  .prs .prs-grid--lift > .prs-card:hover { transform: none !important; }
  .prs .prs-btn .wp-block-button__link,
  .prs .prs-btn .wp-block-button__link::after,
  .prs .prs-link a::after,
  .prs a,
  body.oceanwp-theme #site-header,
  body.oceanwp-theme #site-header #site-logo img,
  body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li > a,
  body.oceanwp-theme #site-navigation-wrap .dropdown-menu > li > a > .text-wrap::after { transition: none !important; }
}

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .prs *, .prs *::before, .prs *::after { transition: none !important; }
}
