/* Colour families and existing wing artwork from Fjärilen's social templates.
   Surfaces are tints of each school's colour; photographs retain their colours. */
.rf-site {
  --rf-rose: #d6acb5;
  --rf-blue: #c4d3e4;
  --rf-gold: #f2d57e;
  --rf-green: #8bb05f;
  --rf-green-light: #dce7c9;
  --rf-green-ink: #36452c;
  --rf-paper: #fcf9f5;
  --rf-white: #fffdfa;
  --rf-ink: #303f42;
  --rf-muted: #566166;
  --rf-line: #d7d4ce;
  --rf-leaf: var(--rf-gold);
  --rf-sand: #f0e6dc;
  --rf-accent: var(--rf-blue);
  --rf-accent-ink: #173f70;
  --rf-tricolour: linear-gradient(90deg, var(--rf-rose) 0% 33.333%, var(--rf-blue) 33.333% 66.666%, var(--rf-gold) 66.666% 100%);
}
.rf-site [data-school="rosenvinge"],
.rf-site[data-school="rosenvinge"] {
  --rf-accent: var(--rf-rose);
  --rf-accent-ink: #65283f;
}
.rf-site [data-school="blavinge"],
.rf-site[data-school="blavinge"] {
  --rf-accent: var(--rf-blue);
  --rf-accent-ink: #173f70;
}
.rf-site [data-school="guldvinge"],
.rf-site[data-school="guldvinge"] {
  --rf-accent: var(--rf-gold);
  --rf-accent-ink: #654719;
}
.rf-site[data-school]:not([data-school="shared"]) {
  --rf-ink: var(--rf-accent-ink);
  --rf-paper: color-mix(in srgb, var(--rf-accent) 17%, #fffdfa);
  --rf-white: color-mix(in srgb, var(--rf-accent) 7%, #fffdfa);
  --rf-muted: color-mix(in srgb, var(--rf-accent-ink) 85%, #fffdfa);
  --rf-line: color-mix(in srgb, var(--rf-accent-ink) 18%, var(--rf-accent));
  --rf-leaf: var(--rf-accent);
  --rf-sand: color-mix(in srgb, var(--rf-accent) 40%, #fffdfa);
  --rf-tricolour: linear-gradient(var(--rf-accent), var(--rf-accent));
}
.rf-site .rf-header {
  background: color-mix(in srgb, var(--rf-paper) 96%, transparent);
  border-bottom: 0;
}
.rf-site .rf-header:after {
  content: "";
  display: block;
  height: 5px;
  background: var(--rf-tricolour);
}
/* Show the supplied logo intact. The window only excludes the JPEG's empty
   white margins (ink bounds 165,479 to 1755,1441 in the 1920-square original). */
.rf-site .rf-brand {
  display: block;
  position: relative;
  width: 180px;
  height: auto;
  aspect-ratio: 1590 / 962;
  overflow: hidden;
  flex-shrink: 0;
}
.rf-site .rf-brand img.rf-official-logo {
  position: absolute;
  width: 120.754717%;
  max-width: none;
  height: auto;
  left: -10.377358%;
  top: -49.7921%;
  object-fit: contain;
  mix-blend-mode: multiply;
}
.rf-site .rf-header-inner { min-height: 135px; }
/* Bright green from the supplied handbook, including the strips below videos. */
.rf-site .rf-film,
.rf-site .rf-film-stage,
.rf-site .rf-film-stage .rf-film {
  background: var(--rf-green);
  color: var(--rf-green-ink);
}
.rf-site .rf-film-caption {
  background: var(--rf-green);
  color: var(--rf-green-ink);
}
.rf-site .rf-film-caption .rf-eyebrow { color: var(--rf-green-ink); }
.rf-site .rf-film-external { border-color: currentColor; }
.rf-site .rf-film-external:hover { background: var(--rf-green-light); }
.rf-site .rf-film-sound { color: var(--rf-green-ink) !important; }
.rf-site .rf-film-screen,
.rf-site .rf-film-play { background: var(--rf-green-light); }
.rf-site .rf-video-status { background: var(--rf-green-light); color: var(--rf-green-ink); }
.rf-site .rf-film-play:after {
  background: linear-gradient(transparent 70%, rgb(54 69 44 / 12%));
}
.rf-site .rf-film-play > img { opacity: 1; }
.rf-site .rf-play-icon { color: var(--rf-green-ink); }
.rf-site .rf-film-stage { height: calc(100svh - 140px); }
.rf-site .rf-header a[data-school] {
  border-left: 4px solid var(--rf-accent);
  padding-left: 12px;
}
.rf-site .rf-header a[data-school]:hover {
  background: color-mix(in srgb, var(--rf-accent) 35%, #fffdfa);
}
.rf-site :is(a, button, input, textarea, summary):focus-visible {
  outline: 3px solid var(--rf-accent-ink);
  outline-offset: 5px;
}
.rf-site .rf-button {
  background: var(--rf-accent);
  color: var(--rf-accent-ink) !important;
  border-color: transparent;
}
.rf-site .rf-button:hover {
  background: color-mix(in srgb, var(--rf-accent) 80%, #fffdfa);
}
.rf-site .rf-prose { color: var(--rf-muted); }
.rf-site .rf-hero {
  background: color-mix(in srgb, var(--rf-blue) 48%, #fffdfa);
  isolation: isolate;
}
.rf-site .rf-hero:after { display: none; }
.rf-site .rf-hero-wings {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 0;
  pointer-events: none;
}
.rf-site .rf-hero-wings img {
  position: absolute;
  width: clamp(300px, 38vw, 600px);
  max-width: none;
  height: auto;
}
.rf-site .rf-hero-wings [data-school="rosenvinge"] {
  right: -7%; top: -20%; transform: rotate(18deg); opacity: .82;
}
.rf-site .rf-hero-wings [data-school="blavinge"] {
  left: -20%; top: 8%; transform: rotate(-18deg); opacity: .4;
}
.rf-site .rf-hero-wings [data-school="guldvinge"] {
  right: 13%; bottom: -24%; transform: rotate(-14deg); opacity: .92;
}
.rf-site .rf-hero-words > .rf-eyebrow:before {
  width: 27px;
  height: 22px;
  border-radius: 0;
  background: var(--rf-accent-ink);
  mask: url('/brand/butterfly-blavinge-solid.svg') center / contain no-repeat;
}
.rf-site .rf-hero-photo {
  background: var(--rf-rose);
  border-radius: 22px;
  padding: 16px;
  transform: rotate(2deg);
}
.rf-site .rf-hero-photo.rf-picture > picture { border-radius: 12px; }
.rf-site .rf-hero-photo figcaption { color: #542636; }
.rf-site .rf-school-portals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.rf-site .rf-school-portal {
  display: flex;
  align-items: center;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  gap: 20px;
  padding: 35px clamp(22px, 4vw, 65px);
  background: var(--rf-accent);
  color: var(--rf-accent-ink);
  min-height: 165px;
}
.rf-site .rf-school-portal-label { z-index: 1; }
.rf-site .rf-school-portal .rf-eyebrow { margin-bottom: 9px; }
.rf-site .rf-school-portal-name {
  font: 400 clamp(25px, 2.5vw, 35px)/1.2 Fjarilen Serif, Georgia, serif;
  letter-spacing: -.035em;
}
.rf-site .rf-school-portal > .rf-brand-butterfly {
  position: absolute;
  right: 6%;
  bottom: -24%;
  width: 220px;
  height: 180px;
  max-width: none;
  opacity: .45;
  filter: brightness(0) invert(1);
  transition: transform .3s;
}
.rf-site .rf-portal-arrow { margin-left: auto; z-index: 1; font-size: 25px; }
.rf-site .rf-school-portal:hover > .rf-brand-butterfly { transform: rotate(8deg) scale(1.05); }
.rf-site .rf-concept {
  background: color-mix(in srgb, var(--rf-rose) 20%, #fffdfa);
  border-color: color-mix(in srgb, var(--rf-rose) 55%, #fffdfa);
}
.rf-site .rf-concept-tabs { border-bottom: 0; gap: 0; }
.rf-site .rf-concept-tab {
  background: color-mix(in srgb, var(--tab-colour) 48%, #fffdfa);
  border-bottom: 3px solid transparent;
  padding: 18px 16px !important;
  min-height: 88px;
  color: var(--tab-ink);
}
.rf-site .rf-concept-tab:nth-child(1) { --tab-colour: var(--rf-rose); --tab-ink: #65283f; }
.rf-site .rf-concept-tab:nth-child(2) { --tab-colour: var(--rf-blue); --tab-ink: #173f70; }
.rf-site .rf-concept-tab:nth-child(3) { --tab-colour: var(--rf-gold); --tab-ink: #654719; }
.rf-site .rf-concept-tab > span:first-child { color: inherit; }
.rf-site .rf-concept-tab[aria-selected="true"],
.rf-site .rf-concept-tab:hover {
  background: var(--tab-colour);
  border-bottom-color: var(--tab-ink);
}
.rf-site .rf-thought-last {
  background: var(--rf-blue);
  color: #173f70;
}
.rf-site .rf-concept-value { background: #fffdfa9c; border-color: #d6acb570; }
.rf-site .rf-butterfly-strip {
  background: transparent;
  border: 0;
  border-radius: 0;
  max-width: 70%;
}
.rf-site .rf-butterfly-strip img { aspect-ratio: 550 / 450; object-fit: contain; }
.rf-site .rf-page-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: color-mix(in srgb, var(--rf-blue) 55%, #fffdfa);
}
.rf-site .rf-page-hero > .rf-container { position: relative; z-index: 1; }
.rf-site .rf-cta-section {
  background: var(--rf-gold);
  color: #654719;
  position: relative;
  overflow: hidden;
}
.rf-site .rf-cta-section .rf-button {
  background: #fffdfa;
  border-color: #65471930;
  color: #654719 !important;
}
.rf-site .rf-features-section { background: color-mix(in srgb, var(--rf-rose) 22%, #fffdfa); }
.rf-site .rf-process-section { background: color-mix(in srgb, var(--rf-blue) 35%, #fffdfa); }
.rf-site .rf-contact-section { background: color-mix(in srgb, var(--rf-gold) 26%, #fffdfa); }
.rf-site .rf-footer {
  background: color-mix(in srgb, var(--rf-blue) 28%, #fffdfa);
  border-top: 8px solid transparent;
  border-image: var(--rf-tricolour) 1;
}
.rf-site .rf-footer-wings { display: flex; gap: 3px; }
.rf-site .rf-footer-wings img { width: 70px; height: auto; }
.rf-site .rf-school-card {
  background: var(--rf-accent);
  color: var(--rf-accent-ink);
  border: 0;
  border-radius: 18px;
  padding-bottom: 28px;
  overflow: hidden;
  isolation: isolate;
}
.rf-site .rf-school-card > img:not(.rf-brand-butterfly) { position: relative; z-index: 1; }
.rf-site .rf-school-card > span { z-index: 1; position: relative; }
.rf-site .rf-school-card img.rf-card-butterfly {
  position: absolute;
  width: 210px;
  height: auto;
  aspect-ratio: 550 / 450;
  right: -36px;
  bottom: -30px;
  border-radius: 0;
  opacity: .48;
  filter: brightness(0) invert(1);
}
/* A school's own hue follows the visitor through the entire page. */
.rf-site.rf-school .rf-page-hero {
  background: var(--rf-accent);
  min-height: 270px;
  padding-block: 55px 70px;
}
.rf-site.rf-school .rf-page-hero h1 { max-width: 75%; }
.rf-site .rf-school-emblem {
  position: absolute;
  right: 1%;
  top: -22%;
  width: clamp(330px, 35vw, 580px);
  max-width: none;
  height: auto;
  opacity: .6;
  filter: brightness(0) invert(1);
  transform: rotate(-12deg);
  pointer-events: none;
}
.rf-site.rf-school .rf-section { background: color-mix(in srgb, var(--rf-accent) 17%, #fffdfa); }
.rf-site.rf-school .rf-section:nth-of-type(2n) { background: color-mix(in srgb, var(--rf-accent) 34%, #fffdfa); }
.rf-site.rf-school .rf-gallery-section { background: color-mix(in srgb, var(--rf-accent) 64%, #fffdfa); }
.rf-site.rf-school .rf-school-details { background: color-mix(in srgb, var(--rf-accent) 26%, #fffdfa); }
.rf-site.rf-school .rf-topic { background: #fffdfaaf; border-color: var(--rf-line); }
.rf-site.rf-school .rf-topic[open] { background: #fffdfae8; }
.rf-site.rf-school .rf-visit-note {
  background: var(--rf-accent);
  border-radius: 18px;
  color: var(--rf-accent-ink);
}
.rf-site.rf-school .rf-footer { background: color-mix(in srgb, var(--rf-accent) 75%, #fffdfa); }
.rf-site.rf-school .rf-film,
.rf-site.rf-school .rf-film-stage,
.rf-site.rf-school .rf-film-stage .rf-film {
  background: var(--rf-green);
  color: var(--rf-green-ink);
}
.rf-site.rf-school .rf-film-caption .rf-eyebrow { color: var(--rf-green-ink); }
.rf-site.rf-school .rf-film-external { border-color: currentColor; }
.rf-site.rf-school .rf-film-sound { color: var(--rf-green-ink) !important; }
.rf-site.rf-school .rf-video-status {
  background: var(--rf-green-light);
  color: var(--rf-green-ink);
}
.rf-site .rf-layout-switch a[aria-current="page"] {
  background: var(--rf-accent);
  color: var(--rf-accent-ink);
}
@media (max-width: 700px) {
  .rf-site .rf-brand { width: 148px; }
  .rf-site .rf-header-inner { min-height: 112px; }
  .rf-site .rf-nav { max-height: calc(100dvh - 117px); }
  .rf-site .rf-film-stage { height: auto; }
  .rf-site .rf-hero { padding-block: 38px 45px; }
  .rf-site .rf-hero-wings [data-school="rosenvinge"] { width: 340px; right: -190px; top: -75px; opacity: .62; }
  .rf-site .rf-hero-wings [data-school="blavinge"] { display: none; }
  .rf-site .rf-hero-wings [data-school="guldvinge"] { width: 330px; bottom: -55px; right: -100px; }
  .rf-site .rf-school-portals { grid-template-columns: 1fr; }
  .rf-site .rf-school-portal { min-height: 105px; padding: 22px 28px; }
  .rf-site .rf-school-portal .rf-eyebrow { margin-bottom: 5px; }
  .rf-site .rf-school-portal > .rf-brand-butterfly { width: 160px; height: 132px; right: 12%; bottom: -25px; }
  .rf-site .rf-concept-tab { padding: 13px 9px !important; font-size: 11px !important; }
  .rf-site.rf-school .rf-page-hero { padding-block: 28px 42px; min-height: 230px; }
  .rf-site.rf-school .rf-page-hero h1 { max-width: 88%; font-size: 34px !important; }
  .rf-site .rf-school-emblem { width: 280px; right: -140px; top: -20px; opacity: .45; }
  .rf-site .rf-school-card img.rf-card-butterfly { width: 160px; height: auto; bottom: -32px; right: -24px; }
}
@media (prefers-reduced-motion: reduce) {
  .rf-site .rf-school-portal > .rf-brand-butterfly { transition: none; }
  .rf-site .rf-school-portal:hover > .rf-brand-butterfly { transform: none; }
}
