/* OnPath theme styles 1.6.0 — authored by KNext Group.
   The page markup keeps its original inline styles, so the desktop design is
   pixel-identical to the HTML page. This file adds the base rules from that
   page and a layer that lets the fixed-width layout fit tablets and phones. */

body.onpath{margin:0;font-family:'Public Sans',system-ui,sans-serif;color:#0B2942;background:#FFFFFF}
.onpath a{color:#0A7C80}.onpath a:hover{color:#075E61}
.onpath summary{cursor:pointer;list-style:none}
.onpath summary::-webkit-details-marker{display:none}
.op-menu-toggle,.op-nav,.op-scroll{box-sizing:border-box}
.op-scroll > svg{display:block}
.onpath img,.onpath svg{max-width:none}
.onpath .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.onpath :focus-visible{outline:2px solid #C9A94B;outline-offset:3px}
html{scroll-behavior:smooth}
.onpath section[id]{scroll-margin-top:24px}

/* Fixed content widths become "up to" widths with side gutters. */
.onpath [style*="width: 1180px"]{width:min(1180px,100% - 48px)!important}
.onpath [style*="width: 1000px"]{width:min(1000px,100% - 48px)!important}

/* Mobile menu button (hidden on desktop) */
.op-menu-toggle{display:none;flex-shrink:0;width:44px;height:44px;margin-left:auto;background:transparent;border:1px solid #3B5A70;border-radius:2px;cursor:pointer;position:relative}
.op-menu-toggle span[aria-hidden]{position:absolute;left:11px;right:11px;top:21px;height:2px;background:#F7F3EA;box-shadow:0 -7px 0 #F7F3EA,0 7px 0 #F7F3EA}
.op-menu-open .op-menu-toggle span[aria-hidden]{box-shadow:none;transform:rotate(45deg)}
.op-menu-open .op-menu-toggle span[aria-hidden]::after{content:"";position:absolute;inset:0;background:#F7F3EA;transform:rotate(90deg)}

/* Plain pages (privacy, 404, anything added later) */
.op-page{background:#FFFFFF;padding:96px 0}
.op-page-inner{width:min(760px,100% - 48px);margin:0 auto;font-size:17px;line-height:1.65}
.op-page h1{font-family:'Newsreader',Georgia,serif;font-weight:400;font-size:clamp(36px,6vw,52px);line-height:1.08;margin:0 0 24px}

/* ---------- Tablet ---------- */
@media (max-width:1100px){
  .op-header [style*="height: 84px"]{gap:16px!important}
  .op-nav{gap:14px!important;font-size:13px!important}
}

@media (max-width:960px){
  /* header collapses to logo + menu button; nav drops down */
  .op-header{position:relative}
  .op-header [style*="height: 84px"]{height:72px!important}
  .op-menu-toggle{display:block}
  .op-header-cta{display:none!important}
  .op-nav{display:none!important;position:absolute;left:0;right:0;top:100%;z-index:50;background:#0B2942;border-bottom:1px solid #22425A;flex-direction:column;gap:0!important;padding:8px 24px 20px;font-size:16px!important;margin:0!important}
  .op-menu-open .op-nav{display:flex!important}
  .op-nav a{padding:12px 0;border-top:1px solid #22425A}

  /* every multi-column grid stacks, except the product table rows */
  .onpath [style*="grid-template-columns"]:not(.op-table [style*="grid-template-columns"]){grid-template-columns:1fr!important;gap:32px!important}
  .onpath [style*="repeat(4, minmax(0, 1fr))"]{grid-template-columns:1fr 1fr!important}
  .onpath [style*="70px 1fr auto"],.onpath [style*="64px 1fr"]{grid-template-columns:auto 1fr!important;gap:16px!important}
  .onpath [style*="70px 1fr auto"] > :nth-child(3){grid-column:2}

  /* rows of flex items wrap instead of overflowing */
  .onpath [style*="display: flex"]:not([style*="flex-direction: column"]):not(.op-header [style*="height: 84px"]){flex-wrap:wrap}

  .onpath section[style*="padding: 120px 0"]{padding-top:80px!important;padding-bottom:80px!important}
  .onpath section#top{padding-top:80px!important;padding-bottom:90px!important}
  .onpath [style*="gap: 80px"]{gap:40px!important}
  .onpath [style*="gap: 56px"]{gap:40px!important}

  .onpath #top h1{font-size:clamp(42px,8.5vw,82px)!important;letter-spacing:-0.8px!important}
  .onpath h2,.onpath .op-page-title{font-size:clamp(34px,6.4vw,56px)!important}
  .onpath [style*="font-size: 80px"],.onpath [style*="font-size: 72px"]{font-size:clamp(48px,11vw,72px)!important}
  .onpath [style*="white-space: nowrap"]{white-space:normal!important}

  /* wide product table scrolls inside itself */
  .op-table{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .op-table > div{min-width:640px}
}

/* ---------- Phone ---------- */
@media (max-width:600px){
  .onpath [style*="width: 1180px"],.onpath [style*="width: 1000px"]{width:calc(100% - 40px)!important}
  .onpath [style*="repeat(4, minmax(0, 1fr))"]{grid-template-columns:1fr!important}
  .onpath section[style*="padding: 120px 0"]{padding-top:64px!important;padding-bottom:64px!important}
  .onpath section#top{padding-top:64px!important;padding-bottom:72px!important}
  .onpath [style*="padding: 40px"]{padding:28px 22px!important}
  .onpath [style*="font-size: 21px"]{font-size:18px!important}
  .onpath [style*="font-size: 17px; letter-spacing"]{font-size:13px!important}
  .onpath [style*="font-size: 30px"]{font-size:24px!important}
  .onpath #top [style*="display: flex; gap: 28px"]{flex-direction:column;gap:20px!important}
  .onpath footer [style*="grid-template-columns"]{grid-template-columns:1fr 1fr!important}
  .onpath footer [style*="grid-template-columns"] > :first-child{grid-column:1 / -1}
}

/* Wide diagrams */
.op-scroll{max-width:100%}
@media (max-width:1240px){
  .op-wide-svg,.op-bracket{width:100%!important;height:auto!important}
}
@media (max-width:960px){
  .op-bracket{display:none!important}
  .onpath [style*="flex-shrink: 0"]:not(.op-header *):not(.op-menu-toggle){flex-shrink:1!important}
  .onpath [style*="text-align: right; flex-shrink: 0"]{text-align:left!important}
}
@media (max-width:600px){
  .op-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -20px;padding:0 20px}
  .op-wide-svg{width:720px!important;max-width:none!important}
}

/* 1.1.0 — separate pages */
.op-nav a[aria-current="page"]{color:#F7F3EA!important;box-shadow:inset 0 -2px 0 #C9A94B}
footer a[aria-current="page"]{color:#E4C77A!important}
main.op-page-invest + section#book{border-top:1px solid #22425A}
@media (max-width:960px){
  .op-nav a[aria-current="page"]{box-shadow:inset 3px 0 0 #C9A94B;padding-left:12px}
}

/* 1.2.0 — Contact us page. Text colours use the accessible text variants
   (#097579 teal on pale grounds) from the brand work. */
.op-contact{background:#F4F7F8;padding:120px 0}
.op-contact-inner{width:min(1180px,100% - 48px);margin:0 auto;display:grid;grid-template-columns:1fr 560px;gap:80px;align-items:start}
.op-contact-intro{display:flex;flex-direction:column;gap:22px}
.op-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:17px;letter-spacing:2.6px;text-transform:uppercase;color:#097579}
.op-eyebrow-gold{color:#7E6826;font-size:14px;letter-spacing:2px}
.op-contact-title{margin:0;font-family:'Newsreader',Georgia,serif;font-weight:400;font-size:52px;line-height:1.06;letter-spacing:-0.6px;color:#0B2942}
.op-contact-title span,.op-sent h2 span{font-style:italic;color:#097579}
.op-contact-lede{margin:0;font-size:18px;line-height:1.65;color:#33505F;max-width:520px}
.op-steps{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:18px;border-top:1px solid #D5DFE3;padding-top:28px}
.op-steps li{display:flex;flex-direction:column;gap:4px}
.op-step-title{font-family:'Newsreader',Georgia,serif;font-size:21px;color:#0B2942}
.op-step-text{font-size:16px;line-height:1.55;color:#33505F}
.op-contact-demo{margin:8px 0 0;font-size:16px;color:#33505F}
.onpath .op-contact-demo a,.onpath .op-link{color:#0B2942;font-weight:600;text-decoration:none;border-bottom:1px solid #C9A94B;padding-bottom:2px}

.op-form-card{background:#FFFFFF;border:1px solid #D5DFE3;padding:40px;scroll-margin-top:24px}
.op-form{display:flex;flex-direction:column;gap:20px;margin:0}
.op-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.op-field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.op-field label{font-weight:600;font-size:16px;color:#0B2942}
.op-optional{font-weight:400;font-size:13px;color:#52656F;margin-left:4px}
.op-field input,.op-field select,.op-field textarea{font-family:'Public Sans',system-ui,sans-serif;font-size:17px;color:#0B2942;padding:12px 14px;border:1px solid #CFDBE0;border-radius:2px;background:#FFFFFF;width:100%;box-sizing:border-box;margin:0}
.op-field textarea{resize:vertical;min-height:130px;line-height:1.5}
.op-field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#0B2942 50%),linear-gradient(135deg,#0B2942 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.op-field input:focus,.op-field select:focus,.op-field textarea:focus{outline:2px solid #C9A94B;outline-offset:1px;border-color:#0B2942}
.op-field [aria-invalid="true"]{border-color:#B3261E;box-shadow:inset 3px 0 0 #B3261E}
.op-form-error{background:#FBEDEC;border-left:3px solid #B3261E;color:#5C1510;padding:14px 16px;font-size:15px;line-height:1.5}
.op-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.op-submit{align-self:flex-start;background:#0B2942;color:#F7F3EA;border:0;border-radius:2px;font-family:'IBM Plex Mono',monospace;font-size:14px;letter-spacing:2px;text-transform:uppercase;padding:18px 32px;cursor:pointer}
.op-submit:hover{background:#12344F}
.op-form-note{margin:0;font-size:13px;color:#52656F}
.onpath .op-form-note a{color:#097579}
.op-sent{display:flex;flex-direction:column;gap:16px}
.op-sent h2{margin:0;font-family:'Newsreader',Georgia,serif;font-weight:400;font-size:38px;line-height:1.1;color:#0B2942}
.op-sent p{margin:0;font-size:17px;line-height:1.6;color:#33505F}
.op-header-cta[aria-current="page"]{box-shadow:inset 0 -3px 0 #C9A94B}

@media (max-width:960px){
  .op-contact{padding:80px 0}
  .op-contact-inner{grid-template-columns:1fr;gap:48px}
  .op-contact-title{font-size:clamp(34px,6.4vw,52px)}
}
@media (max-width:600px){
  .op-contact{padding:64px 0}
  .op-contact-inner{width:calc(100% - 40px)}
  .op-form-card{padding:28px 22px}
  .op-field-row{grid-template-columns:1fr}
  .op-submit{align-self:stretch}
}

/* 1.3.0 — CAPTCHA box */
.op-captcha{min-height:0}
.op-captcha iframe{max-width:100%}

/* 1.4.0 — demo slot picker */
.op-slots{border:0;margin:0 0 4px;padding:0;min-width:0}
.op-slots legend{font-weight:600;font-size:16px;color:#0B2942;padding:0;margin-bottom:12px}
.op-slot-day{padding:14px 0;border-top:1px solid #E3EAED}
.op-slot-day:first-of-type{border-top:0;padding-top:0}
.op-slot-date{font-family:'Newsreader',Georgia,serif;font-size:19px;color:#0B2942;margin-bottom:10px}
.op-slot-times{display:flex;flex-wrap:wrap;gap:10px}
.op-slot{position:relative;display:block}
.op-slot input{position:absolute;opacity:0;width:1px;height:1px}
.op-slot span{display:flex;flex-direction:column;gap:2px;border:1px solid #CFDBE0;border-radius:2px;padding:10px 16px;font-size:16px;font-weight:600;color:#0B2942;background:#FFFFFF;cursor:pointer;line-height:1.2}
.op-slot small{font-weight:400;font-size:12px;color:#52656F;font-family:'IBM Plex Mono',monospace;letter-spacing:0.4px}
.op-slot span:hover{border-color:#0B2942}
.op-slot input:checked + span{background:#0B2942;color:#F7F3EA;border-color:#0B2942}
.op-slot input:checked + span small{color:#BFD0D8}
.op-slot input:focus-visible + span{outline:2px solid #C9A94B;outline-offset:2px}
.op-page-demo .op-form-card{max-width:100%}
@media (max-width:600px){
  .op-slot-times{gap:8px}
  .op-slot span{padding:10px 12px;font-size:15px}
}

/* 1.5.0 — month calendar */
.op-cal{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px 24px;margin-bottom:6px;align-items:start}
.op-cal-key{grid-column:1/-1}
.op-cal-month{min-width:0}
.op-cal-title{font-family:'Newsreader',Georgia,serif;font-size:19px;color:#0B2942;margin-bottom:8px}
.op-cal-grid{width:100%;border-collapse:collapse;table-layout:fixed}
.op-cal-grid th{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:1px;font-weight:500;color:#52656F;padding:0 0 6px;text-align:center}
.op-cal-grid th abbr{text-decoration:none;border:0}
.op-cal-grid td{padding:2px;text-align:center}
.op-day{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1/1;max-height:40px;border-radius:2px;font-size:15px;color:#8FA3AD;text-decoration:none}
a.op-day.is-open{color:#0B2942;font-weight:600;background:#FFFFFF;border:1px solid #0A7C80;box-shadow:inset 0 -2px 0 #C9A94B}
a.op-day.is-open:hover{background:#EEF5F5}
a.op-day[aria-current="date"]{background:#0B2942;color:#F7F3EA;border-color:#0B2942;box-shadow:inset 0 -2px 0 #C9A94B}
.op-cal-grid td.op-out{visibility:hidden}

.op-cal-key{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;color:#52656F}
.op-key-dot{width:14px;height:14px;border-radius:2px;border:1px solid #0A7C80;box-shadow:inset 0 -2px 0 #C9A94B;flex-shrink:0}
.op-slot-day[hidden]{display:none}
.op-slots .op-slot-day{border-top:1px solid #E3EAED;padding-top:14px}
@media (max-width:600px){
  .op-day{font-size:14px;max-height:36px}
}

/* 1.6.0 — required-field stars */
.op-req{color:#B3261E;margin-left:3px;font-weight:700}
.op-req-note{margin:0 0 2px}
