/* Standalone TriCrawl. Reuses the Riisgaard layout system, with a dark identity. */
:root { color-scheme: dark; --site-header-height: 89px; }
.tri-theme { --muted: #abc0cf; --ink: #d3e1eb; --surface: #071525; }
.tri-theme .brand img { width: 54px; aspect-ratio: 1; object-fit: contain; border-radius: 0; }
.tri-theme .brand strong { color: var(--turquoise); font-size: 1.28rem; letter-spacing: .17em; }
.tri-theme .brand small { font-size: .6rem; letter-spacing: .09em; text-transform: none; }
.header-inner { min-height: 88px; }
/* One continuous photo behind the header. Scrolling never changes its height. */
.tri-theme .site-header { background: #05121f; backdrop-filter: none; transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
.tri-theme .photo-hero, .tri-theme .photo-hero .banner-image,
.tri-theme .site-header, .tri-theme .main-nav, .tri-theme .main-nav a,
.tri-theme .nav-group-toggle, .tri-theme .nav-dropdown,
.tri-theme .nav-toggle, .tri-theme .nav-toggle i { border-radius: 0; }
.tri-theme .photo-hero { margin: 0; }
.js .tri-theme[data-photo-header] .site-header { margin-bottom: calc(-1 * var(--site-header-height)); }
.js .tri-theme[data-photo-header] .site-header:not(.is-scrolled):not(.is-menu-open) { background: transparent; border-color: transparent; box-shadow: none; }
.tri-theme .site-header.is-scrolled, .tri-theme .site-header.is-menu-open { background: #05121f; box-shadow: 0 8px 24px rgba(0,0,0,.16); }
.js .tri-theme[data-photo-header] .banner-inner { min-height: calc(660px + var(--site-header-height)); padding-top: calc(4rem + var(--site-header-height)); }
.js .tri-theme[data-photo-header] .photo-hero::before { position: absolute; z-index: -1; inset: 0 0 auto; height: calc(var(--site-header-height) + 3rem); background: linear-gradient(180deg, rgba(3,16,28,.72), rgba(3,16,28,0)); pointer-events: none; content: ""; }
.js .tri-theme[data-photo-header] .site-header:not(.is-scrolled):not(.is-menu-open) .brand small { color: #d3e1eb; }
.tri-theme .page-hero { background: #0a1d30; }
.tri-theme .brand-footer img { width: 58px; }
.hero-location { margin: 1.5rem 0 0; color: #bacfdd; font-size: .86rem; }
.banner-inner { min-height: 660px; }
.photo-hero .hero-copy { max-width: 660px; }
.photo-hero h1 { max-width: 18ch; font-size: clamp(2.65rem, 4.5vw, 4.4rem); }
.photo-hero .banner-image { object-position: 72% 43%; }
/* Different photographs identify each course, while the shared header stays intact. */
.photo-hero-fremdrift .banner-image { object-position: 60% 38%; }
.photo-hero-glid .banner-image { width: 115%; max-width: none; object-position: 50% 68%; }
.facts-strip { border-bottom: 1px solid var(--line); background: #06111e; }
.facts-strip .shell { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .6rem 2rem; padding-block: 1.2rem; color: #afc7d8; font-size: .83rem; }
.facts-strip span::before { content: '—'; color: var(--turquoise); padding-right: .7rem; }
.training-grid { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: 1.15rem; }
.training-card { display: flex; flex-direction: column; padding: clamp(1.5rem, 2.5vw, 2.3rem); background: #0a1d30; border: 1px solid var(--line); border-radius: var(--radius); }
.training-card-main { background: #0d2a43; border-top: 3px solid var(--turquoise); }
.training-card h3 { font-size: 1.7rem; }
.training-card > p:not(.tag):not(.card-price) { flex: 1; }
.training-card > a { align-self: start; margin-top: .5rem; }
.card-price { padding-top: 1rem; border-top: 1px solid var(--line); color: #fff; font-size: 1.7rem; font-weight: 760; }
.card-price small { display: block; margin-top: .3rem; color: #abc0cf; font-size: .84rem; font-weight: 500; }
.price-note { margin: 1.2rem 0 0; }
.tri-theme .form-card, .tri-theme .feature-card, .tri-theme .product-card, .tri-theme .quote-card { background: #0a2035; }
.tri-theme .field label, .tri-theme .legal-nav strong, .tri-theme .price-facts dd, .tri-theme .quote-card p { color: #eff7fc; }
.tri-theme .field input, .tri-theme .field select, .tri-theme .field textarea { color: #eef7fb; background: #061727; border-color: #385268; border-radius: 6px; }
.tri-theme .field input::placeholder, .tri-theme .field textarea::placeholder { color: #9fb5c6; opacity: 1; }
.tri-theme .privacy-note, .tri-theme .optional { color: #abc0cf; }
.tri-theme .form-status { color: #c4fffa; background: #103932; border-color: #258b7b; }
.tri-theme .form-status.is-error { color: #ffe2e4; background: #441f2a; border-color: #a85561; }
.tri-theme .form-status { border-radius: 6px; }
.tri-theme .legal-nav { background: #0c2942; }
.tri-theme .legal-nav a { padding: .25rem 0; }
.tri-theme .legal-copy a { text-underline-offset: .2em; overflow-wrap: anywhere; }
/* Do not let a later base mobile rule hide the always-available no-JS menu. */
.tri-theme .process-grid-three li { color: #d3e1eb; background: #0a2035; }
.tri-theme .process-grid-three h3 { color: #fff; }
.tri-theme .quote-card footer, .tri-theme .portrait-card figcaption { color: #abc0cf; }
.tri-theme .cta-panel { background: #0d2a43; }
.tri-theme .faq-list details p { color: #abc0cf; }
.venue-note { padding: 1.5rem; border-left: 3px solid var(--turquoise); background: #0d2841; border-radius: 0 6px 6px 0; }
.venue-note p:last-child { margin: 0; }
.rc-referral { padding-block: 1.6rem; border-top: 1px solid var(--line); background: #06111e; }
.rc-referral .shell { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem 2rem; }
.rc-referral p { margin: 0; color: #adc1cf; font-size: .9rem; }
.rc-referral a { flex-shrink: 0; font-size: .9rem; }
.time-split { margin-top: 0; }
.section-heading > p:last-child { margin-bottom: 0; }
.image-caption { margin-top: .8rem; color: #abc0cf; font-size: .85rem; }
.brand span { min-width: 0; }
.footer-grid { grid-template-columns: 1.35fr .9fr 1.15fr .9fr; gap: 2rem; }
.footer-about .brand strong { font-size: 1.1rem; }
.nav-group:not(.is-open) .nav-dropdown { opacity: 0; visibility: hidden; }
.nav-group.is-open .nav-dropdown { opacity: 1; visibility: visible; }
html:not(.js) .nav-group:hover .nav-dropdown, html:not(.js) .nav-group:focus-within .nav-dropdown { opacity: 1; visibility: visible; }
@media (max-width: 1100px) {
  .training-grid { grid-template-columns: 1fr 1fr; }
  .training-card-main { grid-column: 1 / -1; }
}
@media (max-width: 960px) {
  :root { --site-header-height: 79px; }
  .header-inner { min-height: 78px; }
  .js .tri-theme .main-nav { max-height: calc(100vh - var(--site-header-height)); max-height: calc(100dvh - var(--site-header-height)); overflow-y: auto; overscroll-behavior: contain; }
  .js .tri-theme[data-photo-header] .banner-inner { min-height: calc(660px + var(--site-header-height)); padding-top: calc(5rem + var(--site-header-height)); }
  /* Keep image, copy and credit in one banner at tablet and phone widths. */
  .photo-hero .banner-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; max-height: none; aspect-ratio: auto; object-fit: cover; object-position: 50% center; }
  .photo-hero-fremdrift .banner-image { object-position: 62% 38%; }
  .photo-hero-glid .banner-image { object-position: 51% 68%; }
  .photo-hero::after { display: block; background: linear-gradient(180deg, rgba(3,16,28,.25), rgba(3,16,28,.72) 38%, rgba(3,16,28,.95) 100%); }
  .photo-hero .banner-inner { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; min-height: 660px; padding-block: 5rem 2rem; }
  .photo-hero .hero-copy { width: 100%; }
  .photo-hero .banner-credit { position: static; max-width: 100%; margin: 1.8rem 0 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: auto; }
  .rc-referral .shell { flex-wrap: wrap; }
  html:not(.js) .main-nav { position: static; display: grid; }
  html:not(.js) .header-inner { flex-wrap: wrap; }
  html:not(.js) .nav-toggle { display: none; }
  html:not(.js) .nav-dropdown, html:not(.js) .nav-group:hover .nav-dropdown:not(:focus-within) { display: grid; opacity: 1; visibility: visible; }
  html:not(.js) .nav-group-toggle { pointer-events: none; }
}
@media (max-width: 680px) {
  .tri-theme .brand img { width: 46px; }
  .tri-theme .brand strong { font-size: 1.05rem; }
  .tri-theme .brand small { font-size: .57rem; }
  .header-inner { gap: .8rem; }
  .training-grid, .footer-grid { grid-template-columns: 1fr; }
  .training-card-main { grid-column: auto; }
  .facts-strip .shell { display: grid; }
  .photo-hero h1 { font-size: clamp(2.1rem, 8.5vw, 3.2rem); }
  .photo-hero .banner-inner { min-height: 42rem; padding-block: clamp(8rem, 24vw, 10rem) 1.5rem; }
  .js .tri-theme[data-photo-header] .banner-inner { min-height: calc(42rem + var(--site-header-height)); padding-top: calc(clamp(8rem, 24vw, 10rem) + var(--site-header-height)); }
  .photo-hero .banner-image { aspect-ratio: auto; object-position: 48% top; }
  .photo-hero-fremdrift .banner-image { object-position: 63% top; }
  .photo-hero-glid .banner-image { object-position: 51% top; }
  .photo-hero::after { background: linear-gradient(180deg, rgba(3,16,28,.16) 0%, rgba(3,16,28,.66) 20%, rgba(3,16,28,.83) 44%, rgba(3,16,28,.97) 100%); }
  .photo-hero h1 { text-wrap: balance; }
  .photo-hero .lead { font-size: 1.05rem; line-height: 1.6; }
  .photo-hero .hero-location { color: #d7e6ef; }
  .photo-hero .banner-credit span { font-size: .8rem; }
  .facts-strip span { display: flex; align-items: baseline; }
  .rc-referral a { flex-shrink: 1; }
}
@media print {
  .tri-theme, .tri-theme * { color: #000 !important; background: #fff !important; }
  .tri-theme .js .reveal, .js .reveal { opacity: 1; transform: none; }
  .photo-hero .banner-inner, .js .tri-theme[data-photo-header] .banner-inner { min-height: 0; padding-block: 1rem; }
  .photo-hero .banner-image, .photo-hero::after, .js .tri-theme[data-photo-header] .photo-hero::before { display: none; }
}
