/* ==========================================================================
   Base Styles & Variables
   ========================================================================== */

/* Font Faces */
@font-face {
  font-family: 'Reform ST';
  src: url('/fonts/ReformST_Regular.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Reform ST';
  src: url('/fonts/ReformST_Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Reform ST';
  src: url('/fonts/ReformST_Bold.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* Root Variables (Colors, Transitions, Gradients, Fonts) */
:root {
  scroll-behavior: smooth;
  -webkit-scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  margin: 0;

  /* Colors */
  --white: rgb(255, 255, 255);
  --black: rgb(0, 0, 0);
  --grey: rgb(183, 183, 183);
  --grey-mid: rgb(67, 67, 67);
  --bg: rgb(7, 7, 7);
  --bg-mid: rgb(17, 17, 17);
  --bg-light: rgb(27, 27, 27);
  --font: rgb(214, 214, 214);
  --logo: var(--white);
  --icon: rgb(74, 255, 152);
  --link: rgb(67, 67, 67);
  --headings: var(--white);
  --text-color: var(--font); /* Added for consistency with nav-link */
  --bg-color: var(--bg); /* Added for consistency with cookie notice */
  --bg-color-secondary: var(--bg-mid); /* Added for consistency with cookie notice, post-image, pagination */
  --postbg: var(--bg); /* Added for consistency with post-hero-image */
  --nav: var(--font); /* Added for consistency with nav-link.current */

  /* Transitions & Gradients */
  --transition: all 300ms cubic-bezier(0.645, 0.045, 0.355, 1);
  --gradient: linear-gradient(-45deg, #0000ff 0%, #91b5ff 100%) 0% 0% / 150% 150%;

  /* Buttons */
  --btn-blue: linear-gradient(133deg, #3B3FFF 0%, #5C5FFF 100%);
  /* --btn-red variable was used but not defined, removed usage or define it if needed */
  /* --btn-yellow variable was used but not defined, removed usage or define it if needed */

  /* Font Families */
  --ff: "Source Code Pro", sans-serif;
  --ff2: "Reform ST", sans-serif;

  /* Font Sizes */
  --h1: bold 4.5rem/1 var(--ff2);
  --hh: bold 3rem/1 var(--ff2);
  --h2: bold 2.5rem/1 var(--ff2);
  --h3: bold 2rem/1.05 var(--ff);
  --p1: 1.5rem/1.35 var(--ff);
  --pp: 1.75rem/1.35 var(--ff);
  --p2: 2rem/1.35 var(--ff);
  --p3: 2.75rem/1.25 var(--ff);
  --fs: 1rem; /* Default font size for cookie notice, can be adjusted */
  --fn: clamp(1.5rem, 2vw, 2.5rem); /* From .is-page-uk-visa-english-requirement, made general */
}

/* Base HTML Font Size (Fluid Typography) */
html {
  font-size: clamp(0.65rem, 0.65rem + 0.3333vw, 0.775rem);
}

/* Global Box Sizing */
* {
  box-sizing: border-box;
}

/* Body Styles */
body {
  font-family: var(--ff), monospace;
  font-weight: 600;
  line-height: 1;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'zero';
  -webkit-font-feature-settings:'zero';
  font-variant-numeric: slashed-zero;
  -moz-font-feature-settings: 'zero';
  overscroll-behavior: none;
  color: var(--font);
  background-color: var(--bg);
  max-width: 100%;
  width: 100%;
  overflow-x: hidden;
}

/* ==========================================================================
   Typography & Text Elements
   ========================================================================== */

/* Font Size Classes */
.pp { font: var(--pp); font-weight: 500; }
.p1 { font: var(--p1); font-weight: 500; }
.p2 { font: var(--p2); font-weight: 500; }
.p3 { font: var(--p3); font-weight: 500; }
.hh { font: var(--hh); }
.h1 { font: var(--h1); }
.h2 { font: var(--h2); }
.h3 { font: var(--h3); }

/* Font Weights */
.fw200 { font-weight: 200; }
.fw400 { font-weight: 400; }
.fw500 { font-weight: 500; }
.fw600 { font-weight: 600; }
.fw700 { font-weight: 700; }
.fw800, b, strong { font-weight: 800; }
.fw900 { font-weight: 900; }

/* Paragraph, List, and Link Base Styles */
p, ul, li, ol, a {
  margin: 0;
}
p, ul, ol, .mb {
  margin-bottom: 2rem;
}
h1, h2, h3, h4, h5, h6 {
  color: var(--headings);
  font-family: "Reform ST";
  margin: 0;
}
h1 span {
  font-size: var(--fn);
  line-height: 1.3;
  display: block;
  font-weight: 600;
}

/* Text Alignment Helpers */
.tac { display: block; text-align: center; width: 100%; }
.tal { text-align: left; }
.tar { text-align: right; }

/* Text Selection */
::selection {
  color: var(--bg-color);
  background: var(--white);
}

/* ==========================================================================
   Links & Buttons
   ========================================================================== */

/* General Link Styles */
a {
  color: var(--font);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.5s ease;
  display: inline-block;
}
a:hover {
  color: var(--hover); /* --hover variable not defined, ensure it exists or replace */
  opacity: 1;
}
a.link {
  position: relative;
  color: var(--font);
  text-decoration: none;
}
a.link-underline:hover {
  color: var(--font);
}

/* Underline Link Styles (Combined) */
a.underline-link,
a.link-underline {
  position: relative;
  text-decoration: none;
  color: var(--font);
  font-weight: 600;
}
a.underline-link::before,
a.link-underline::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 15%;
  background-color: var(--link);
  z-index: 0;
  opacity: 0.2;
}
a.underline-link::after,
a.link-underline::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 15%;
  background-color: var(--font);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 0.5s cubic-bezier(0.76, 0, 0.24, 1);
  z-index: 0;
}
a.underline-link:hover::after,
a.link-underline:hover::after {
  transform: scaleX(1);
}
a.underline-link:hover {
  color: var(--font);
}

/* Button Base Styles */
.btn {
  background: var(--btn-blue); /* Used btn-blue as default, --btn-red was not defined */
  border-radius: 2.1rem;
  border: none;
  box-shadow: 0 16px 22px -5px rgb(101 104 240 / 50%);
  color: #000;
  cursor: pointer;
  font-weight: 800;
  line-height: 1;
  margin: 16px 0;
  padding: 34px 32px;
  transition: all .5s;
  width: max-content;
  font-family: monospace;
  text-transform: uppercase;
}
.btn-blue {
  background: var(--btn-blue);
  color: var(--white);
  box-shadow:  0 10px 33px -8px #5356ff;
}
.btn-yellow {
  /* --btn-yellow variable not defined, ensure it exists or remove */
  /* background: var(--btn-yellow); */
  color: var(--font);
}
.btn-blue:hover {
  background: var(--bg-light); /* Combined with duplicate btn-blue:hover */
  box-shadow: none;
  color: var(--white);
}
.btn:hover {
  transform: scale(1.02) !important;
  transition: all 0.3s;
}

/* Button with SVG Icon */
.button-with-svg {
  position: relative;
  display: inline-block;
  padding-left: 76px;
}
.button-with-svg::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 22px;
  transform: translateY(-50%);
  width: 36px;
  height:36px;
  background-image: url(/static/images/arrow.svg);
  background-size: contain;
  background-repeat: no-repeat;
  transition: right 0.3s ease-in-out;
}
.button-with-svg:hover::before {
  right: 15px;
  transition: right 0.3s ease-in-out;
}

/* Call To Action (CTA) Styles */
.cta {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 2rem;
}
.cta--secondary {
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
}

/* ==========================================================================
   Layout & Structure
   ========================================================================== */

/* Container Full Width */
.container-fw {
  margin-right: auto;
  margin-left: auto;
  width: 100vw;
}

/* Flexbox Helpers */
.row--flex {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}
/* Base styles for columns - mobile-first (100% width) */
.column,
.column--flex {
  display: flex; /* Ensures flex properties work */
  flex-direction: column; /* Default direction for column--flex */
  flex-basis: 100%;
  flex-grow: 1;
  flex-shrink: 1;
}

.center--flex {
  align-items: center;
  justify-content: center;
}

/* Specific Flex Adjustments */
.hero .row--flex {
  flex: 1 98vh; /* Adjusted from 1 36vh for desktop */
}
.review.row--flex {
  flex-direction: column;
}
.team .row--flex {
  flex-direction: row;
}
.section-brag .column--flex {
  flex-basis: 50%;
  width: 50%;
}
.flex--centre {
  justify-content: center;
  align-items: center;
}

/* Vertical Height Helpers */
.vh100 { height: 50vh; } /* Base mobile height */
.h--100 { height: 100vh; }
.h--76 { height: 76vh; }
.h--66 { height: 66vh; }
.h--33 { height: 33vh; }
.h--100p { height: 100%; }
.mobile-vh100 { height: 36.3vh; }

/* Width Helpers */
@media (min-width: 1024px) {
  .w--50 { max-width: 40vw; margin: 0 auto; }
  .w--100 { max-width: 50.6vw; margin: 0 auto; }
  .w--999 { max-width: 999px; margin: 0 auto; }
}

.full-vw { width: 100vw; }
.wrap-100 { width: 100vw; }
.wrap {
  width: 88vw;
  margin: 0 auto;
  padding: 0;
}

/* Section Spacing */
.sec-fx { padding: 32px 0; }
.section { padding: 128px 0; }
.section.cards { padding: 32px 0; } /* Duplicate removed, now specific to cards */
.sec { margin: 0 auto; padding: 3rem 0; width: 100%; }

/* Margins & Paddings */
.mt, .date { margin-top: 4rem; }
.pt10 { padding-top: 5vh; }
.mt25 { margin-top: 0vh; } /* Base mobile value */
.gap { gap: 2rem; } /* General gap utility */

/* Background & Borders */
.bg-color-secondary {
  background: var(--bg-mid);
  border-radius: 5rem;
}
.box-fx {
  border-radius: 3rem;
  background-color: var(--bg-alt); /* --bg-alt not defined, ensure it exists or replace */
  padding: 9vh 10vw;
}
.blog-box-fx { border-radius: 0; } /* Specific override */

/* Table Styles */
table {
  margin-bottom: 48px;
  border: none;
  padding: 0;
  width: 100%;
}
table th, table td {
  border: none;
  padding: 20px 30px; /* Combined padding */
  background-color: var(--bg); /* Combined background */
  color: var(--font); /* Combined color */
}
table th {
  font-weight: 600;
  text-align: center;
}
table td {
  /* text-align: left; */ /* Removed, default is left */
}
.blog.table {
  font: var(--pp);
  width: 100%;
  margin-bottom: 30px;
  font-weight: 500;
}
.blog th, .blog td {
  padding: 10px 10px;
  text-align: left;
  border-bottom: 0.3rem solid var(--grey);
}

/* ==========================================================================
   Header & Navigation
   ========================================================================== */

header {
  height: 0;
  z-index: 999;
  position: fixed;
  left: 0;
  top: 0;
}
header .row-fx {
  align-items: normal;
  flex-direction: column;
  flex-wrap: nowrap;
  width: 95vw;
}
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  margin: 0;
}
.navlogo {
  display: flex;
  flex-direction: column;
  width: 4rem;
  height: auto;
  overflow: hidden;
  pointer-events: all;
  padding: 10px 0;
  z-index: 3;
  position: relative;
  transition: all .5s;
}
.navlogo:hover {
  transition: all .5s;
  transform: scale(0.95);
}
.hamburger {
  display: none; /* Hidden by default, shown based on media query */
}
.nav-menu {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0;
}
.nav-item {
  margin-left: 4rem;
  list-style: none;
}
.nav-link, .dropdown {
  font: var(--p2);
  font-weight: 800;
  color: var(--text-color);
  text-transform: uppercase;
}
.nav-link:hover {
  opacity: 0.9;
  color: var(--link);
}
.nav-link.current {
  background: var(--gradient);
  color: var(--bg);
}
/* Combined nav-link current and hover after pseudo-elements */
.nav-link.current::after,
.nav-link:hover::after {
  content: '';
  background: var(--link);
  height: 7px;
  width: auto;
  display: block;
  z-index: 1;
  margin-top: -7px;
}
.nav-item:last-child {
  margin-right: 0rem;
}
.nav-item.mobile,
.nav-link.mobile {
  display: none; /* Hidden by default, shown based on media query */
}

/* Submenu/Mobile Nav Styles (Refactored for clarity) */
.submenu,
.nav-menu.submenu { /* Combined redundant submenu declarations */
  position: fixed;
  top: 0;
  left: 100vw; /* Start off-screen to the right */
  width: 100vw;
  height: 100vh;
  background-color: var(--bg-mid);
  opacity: 0;
  visibility: hidden; /* Hidden by default */
  pointer-events: none;
  transition: all 0.4s ease;
  z-index: 999999;
  display: flex;
  flex-direction: column;
  padding: 0 0 100px;
}
.submenu.active,
.nav-menu.submenu.active { /* Combined active states */
  left: 0;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0); /* Slide into view */
}
.nav-menu.submenu.is-preparing {
  visibility: visible;
}
.nav-menu.main-menu.hide {
  display: none;
}
.main-menu.slide-out {
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}

/* Hamburger Icon Styles */
.ham {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform 400ms;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
.hamRotate.active { transform: rotate(45deg); }
.hamRotate180.active { transform: rotate(180deg); }
.line {
  fill:none;
  transition: stroke-dasharray 400ms, stroke-dashoffset 400ms;
  stroke:#FFF;
  stroke-width:5.5;
  stroke-linecap:round;
}
svg.ham { width: 60px; }
.ham6 .top { stroke-dasharray: 40 172; }
.ham6 .middle { stroke-dasharray: 40 111; }
.ham6 .bottom { stroke-dasharray: 40 172; }
.ham6.active .top { stroke-dashoffset: -132px; }
.ham6.active .middle { stroke-dashoffset: -71px; }
.ham6.active .bottom { stroke-dashoffset: -132px; }

/* ==========================================================================
   Footer
   ========================================================================== */

footer {
  padding: 64px 0 !important;
  position: relative;
  z-index: 0;
}
footer #fl a {
  margin: 0;
  padding: 3px 0;
}
footer p {
  margin: 0;
}
footer .column--flex {
  align-items: flex-start;
  width: 50%;
  flex-basis: 50%;
}
footer .copyr .column--flex,
footer .copyr #fr.column--flex {
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  flex-basis: 50%;
}
footer ul {
  padding: 0 !important;
  list-style: none;
}
footer #fl.column--flex {
  align-items: flex-start;
  flex-direction: row;
  justify-content: flex-start;
}
footer #fr.column--flex {
  align-items: flex-end;
  flex-direction: row;
  justify-content: flex-end;
}
.footer-nav-item {
  color: var(--font);
  font: var(--p2);
  margin-bottom: 12px !important;
}
footer a.link-underline:before {
  height: 0;
}
footer .container-fw {
  width: 90vw;
}
footer #fn.column--flex {
  align-items: center;
  flex-basis: 25%;
  width: 25%;
}
.footer.badges {
  display: flex;
  justify-content: space-around;
  margin-top: 32px;
  width: 100%;
  overflow: hidden !important;
}
.footer.badges .badge {
  height: 7rem;
}
/* ==========================================================================
   Blog & Posts
   ========================================================================== */

.blog-wrap {
  width: 92vw;
  margin: 0 auto;
}
.cards {
  display: flex;
  flex-direction: column; /* Changed to column for list layout on all devices */
  /* align-items: center; /* Center items in the column */ */
  height: auto;
  /* justify-content: center; */
  max-width: 100%;
  list-style: none;
  gap: 2rem; /* Added gap for spacing between cards in list */
}
.card {
  flex: 1 100%; /* Always full width for list layout on all devices */
  margin: 0;
  padding: 0;
  /* max-width: 700px; /* Optional: set a max-width for readability on large screens */ */
  width: 100%;
}
.card-post-details {
  padding: 0px;
}
.card .fs {
  line-height: 1.05;
  margin-bottom: 10px;
}
.date {
  margin: 16px 0 32px;
}
.post-title-container {
  margin: 99px 0 32px;
  position: relative;
  width: 100%;
  text-align: center;
  text-transform: uppercase;
}
.post-image-wrapper {
  width: 100%;
  height: 600px; /* Default height */
  margin: 16px auto 10%;
  position: relative;
  overflow: hidden;
}
.loop .post-image-wrapper {
  width: 100%;
  height: 100%;
  margin: 16px auto 10%;
  position: relative;
  overflow: hidden;
  padding-bottom: 100%; /* Ensures square aspect ratio */
}
.post-image {
  background-color: var(--bg-color-secondary);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 32px;
  margin-bottom: 32px;
  position: absolute;
  height: 100%;
  width: 100%;
  transition: all 0.1s cubic-bezier(0.5, 0, 0.25, 1);
  filter: contrast(0.75);
}
.post-thumb, .post-thumb img {
  border-top-left-radius: 24px;
  border-top-right-radius: 24px;
  margin-bottom: 0px;
  height: auto;
  width: 100%;
}
/* .post-pages .post-image {
  border: 5px solid var(--bg-color-secondary);
} */
.post-hero-image {
  background-size: cover;
  background-position: center;
  background-color: var(--postbg);
  background-blend-mode: color;
  margin-bottom: 30px;
  height: 65vh;
  width: 100%;
}
.post-pages h1,
.post-pages h2,
.post-pages h3,
.post-pages h4,
.post-pages h5,
.post-pages h6 {
  font: var(--h2);
  font-family: var(--ff);
  line-height: 1;
  font-weight: 700;
  margin-bottom: 16px;
}
h1.post-title {
  font-family: var(--ff2);
  font-weight: 800;
  margin: 0;
  text-align: center;
}
.post-pages p, .post-pages ul, .post-pages ol, .wp-block-table {
  font: var(--p1);
  line-height: 1.5;
  font-weight: 400;
  list-style: round;
  color: var(--font);
  margin-bottom: 3rem;
}
.wp-block-table {
  margin: 0;
  overflow: scroll;
}
.post-pages ul, .post-page ol {
  margin-left: 0em;
  margin-bottom: 64px;
}
.post-pages li {
  margin-bottom: 8px;
}
.post-pages.container-fw {
	width: 88vw;
	max-width: 88vw;
  overflow: hidden;
}
.post-link {
  width: inherit;
  height: auto;
}
.post-link:hover {
  cursor: pointer;
}
.post-link:hover .post-image {
  border-radius: 50%;
  transition: all 0.4s ease-in-out;
  transform: scale(.96) !important;
}
.card a:hover {
  color: #FFF !important;
}
.is-dimmed {
  transform: scale(0.9) translateX(0.5rem);
  transition: all 0.4s cubic-bezier(0.5, 0, .25, 1);
  opacity: 0.36;
  filter: grayscale(1) contrast(1);
}
.loop .is-dimmed {
  transform: translateX(0.5rem);
  transition: all 0.4s cubic-bezier(0.5, 0, .25, 1);
  opacity: 0.36;
}
.wavy {
  display: flex;
  align-content: center;
  opacity: 90%;
  margin: 0 0 5rem;
  width: 100%;
}
.wavy svg {
  width: 256px;
}
.post-end-cta {
  display: flex;
  width: max-content;
  font-size: clamp(3rem, 3rem, 3rem);
  color: var(--font);
  background: var(--bg-light);
  padding: 16px;
  border-radius: 5px;
  box-shadow: 0 0 0 10px var(--gradient);
}
.wp-block-image {
  overflow: hidden;
  padding: 0;
  margin: 32px 0;
}
.wp-block-image img {
  border: 5px solid var(--bg-color-secondary);
  height: auto;
  max-width: 100%;
  border-radius: 16px;
}
.pagination {
  align-content: center;
  background-color: var(--bg-color-secondary);
  border-radius: 100px;
  display: flex;
  font-size: var(--fs);
  gap: 10px;
  justify-content: center;
  margin: 64px auto;
  padding: 14px 18px;
  width: max-content;
}
.post {
  margin: 0 auto;
  width: auto;
}
.loop-title {
  font-weight: 600 !important;
}
.wp-block-heading {
  margin: 6rem 0;
}
ul.recents {
  margin: 0;
  padding: 0;
}
.latest-post-background {
    background-size: cover;
    background-position: center;
    padding: 16px;
    text-align: center;
    color: white;
    height: 100vh;
    display: flex;
    align-content: center;
    justify-content: center;
    flex-direction: column;
}
.latest-post-background p {
    color: white;
}
.is-post ul.contents {
  list-style: none;
}
.is-post ul.contents li::before {
  display: none;
}
.is-post ul.contents li {
  margin-bottom: 16px;
}
/* ==========================================================================
   Cookie Notice
   ========================================================================== */

#cookie-notice {
  top: calc(91vh);
  border-radius: 8px;
  box-shadow: 0 15px 50px -5px #00000073;
  font-size: var(--fs) !important;
  font-family: inherit !important;
  font-weight: 400;
  height: 68px;
  left: 50% !important;
  line-height: 24px !important;
  min-width: 0 !important;
  margin: 0 auto;
  width: 90vw;
  transform:translate(-50%, -0vh);
}
.cn-set-cookie.cn-button {
  font-size: inherit !important;
  font-family:inherit !important;
  margin: 0 0 0 16px !important;
}
#cookie-notice .cookie-notice-container {
  display: flex !important;
  flex-basis: 100%;
  align-items: center;
  align-content: center;
  justify-content: center;
  justify-items: center;
  padding:15px 20px;
  text-align: left;
}
#cn-close-notice {
  display:none;
}
.cn-text-container {
  margin:0 !important;
}
.cn-revoke-cookie {
  font-size: var(--fs);
  background-color: var(--bg-color-secondary);
  padding: 10px;
  margin: -16px 0 32px;
  border-radius: 8px;
  box-shadow: 0 10px 10px -8px rgba(0,0,0,0.16);
}
.cn-revoke-cookie:hover {
  background-color: var(--bg-color-secondary);
  box-shadow: 0 12px 16px 8px rgba(0,0,0,0.33);
}
.cookie-notice-hidden {
  display: none !important;
}
.cn-text-container a {
  border-bottom: 3px solid;
  border-color: #ccc;
}
#cn-accept-cookie {
  background-color: var(--bg) !important;
  padding: 5px;
  border-radius: 3px;
  color: var(--bg-color) !important;
}

/* ==========================================================================
   Booking Form & Pages
   ========================================================================== */

.is-page-customer-dashboard .hero {
  background-color: transparent;
}
.is-page-customer-dashboard {
  background-color: #f4f5f6;
  color: var(--bg-color);
  overflow: auto !important;
}
.is-page-customer-dashboard footer,
.is-page-customer-dashboard .nav-menu {
  display: none;
}
.booking {
  position: fixed;
  bottom: 7vh;
  left: 50%;
  width: auto;
  transform: translateX(-50%) translateY(3vh);
  z-index: 1;
  text-align: center;
}
.lp-option.lp-payment-trigger-later {
  display: none !important;
}
.latepoint-questions a {
  color: #4b64e8;
}
.latepoint-questions a:hover {
  color: #000;
}
.latepoint-w .os-form-group.os-form-select-group select.os-form-control {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
/* Combined duplicate display: none for booking buttons */
.is-page-customer-dashboard .latepoint-book-button,
.is-page-book-consultation .latepoint-book-button,
.nav-menu.active > .latepoint-book-button {
  display: none;
}
.latepoint-w:has(.latepoint-login-form-w),
.is-page-customer-dashboard .latepoint-w {
  /* margin: 150px auto 0; */
  /* position: absolute; */
}
.is-page-customer-dashboard h1, .is-page-customer-dashboard h2, .is-page-customer-dashboard h3,
.is-page-customer-dashboard h4, .is-page-customer-dashboard h5, .is-page-customer-dashboard h6 {
  color: var(--bg-color);
}
#button-label.L6cTce {
  display: none;
}
.is-page-customer-dashboard .preloader {
  display: none;
}
.ti-widget[data-layout-id='74'][data-set-id='default'] {
  color: black;
  z-index: 0;
}
.is-page-customer-dashboard .booking,
.is-page-book-consultation .booking {
  display: none !important;
}
.is-page-book-consultation #a.column--flex .wrap {
  padding: 128px 0 50px;
}
.is-page-book-consultation .gap {
  gap: 0;
}
.is-page-book-consultation #a .wrap {
  padding: 15vh 0 64px;
}
.is-page-book-consultation #b .wrap {
  max-width: 640px;
  margin: 0 auto;
}
/* .is-page-book-consultation #a {
  padding: 5vw;
  margin-top: 4rem;
} */
.is-page-book-consultation .nav-menu,
.is-page-book-consultation .footer,
.is-page-book-consultation .hamburger{
  display: none;
}
/* .is-page-book-consultation .header{
  position: relative;
  height: 128px;
} */
.is-page-book-consultation .navbar{
  justify-content: center;
}
.is-page-book-consultation .navlogo {
  width: 5rem;
}

/* ==========================================================================
   Accordion & Media
   ========================================================================== */

/* Accordion Buttons */
button.accordion, .accordion {
  align-items: center;
  background-color: var(--bg-light);
  border: none !important;
  border-radius: 16px;
  color: var(--font);
  cursor: pointer;
  display: flex;
  font-weight: 600;
  justify-content: space-between;
  outline: none;
  padding: 18px 22px;
  text-align: left;
  transition: 0.4s;
  width: 100%;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none;
}
/* Combined accordion hover/active styles */
.accordion:hover,
.accordion.active {
  background-color: #5C5FFF;
  color: #FAFAFA;
}
.accordion.active {
  border-radius: 16px 16px 0 0 ;
}
.accordion:after {
  content: "\2193"; /* Unicode for right-pointing arrow */
  font-size: 32px;
  color: var(--text); /* --text not defined, ensure it exists or replace */
  float: left;
  margin-left: 32px;
  display: flex;
  align-items: center;
  height: 100%;
  transform: rotate(-45deg);
  transition: transform 0.2s ease-out;
}
.accordion.active:after {
  content: "\2193"; /* Unicode for downward-pointing arrow */
  transform: rotate(-135deg);
  transition: transform 0.2s ease-out;
}

/* Accordion Panel */
.panel {
  padding: 0px 22px;
  background-color: var(--bg-light);
  border-radius: 0 0 16px 16px;
  max-height: 0;
  overflow: hidden;
  margin: 18px 0;
  transition: max-height 0.2s ease-out;
  text-align: left;
  color: var(--white);
}
.accordion.active + .panel {
  background-color: #5C5FFF;
  padding: 18px 22px;
  margin: 0 0 16px;
}
.accordion.active + .panel p {
  background-color: transparent;
  margin-bottom: 32px;
}
#accordion .panel:first-child {
  display:block;
  border-top:3px solid #FFCDCD;
}

/* ==========================================================================
   Specific Page Styles & Background Images
   ========================================================================== */

/* Common background properties for page sections */
.is-page-visa-advice #a,
.is-page-about #a,
.is-page-uk-visa-lawyers #a,
.is-page-canada-immigration-lawyer #a,
.is-page-citizenship #a,
.is-page-uae #a,
.is-page-uk-flr-ilr #a,
.is-page-uk-spouse-visa #a,
.is-page-uk-sponsor-licence #a,
.is-page-uk-skilled-worker-visa #a,
.is-page-global-talent-visa-uk #a,
.is-page-tech-nation-visa #a,
.is-page-uk-visitor-visa #a,
.is-page-book-consultation #a,
.is-page-uk-visa-english-requirement #a,
.row1, .row2, .row3, .row4, .row5, .row6,
.row6a, .row6b, .row6c {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat; /* Added for consistency */
  border-radius: 6rem; /* Most of these have 6rem, apply as default */
  transition: all 0.5s; /* Added for consistency */
}

/* Individual background images */
.is-page-visa-advice #a { background-image: url('/static/images/1-clem-onojeghuo-YBboh5nH1V0-unsplash.webp'); }
.is-page-book-consultation #a { background-image: url('/static/images/1-clem-onojeghuo-YBboh5nH1V0-unsplash.webp');}
.is-page-about #a { background-image: url('/static/images/2-samuel-regan-asante-sFYQehiWiDU-unsplash.webp'); }
.is-page-uk-visa-lawyers #a { background-image: url('/static/images/3-gijs-coolen-wbAWWN7dWM0-unsplash.webp'); }
.is-page-canada-immigration-lawyer #a { background-image: url('/static/images/4-yugbodh-yb-QCu9lLGJxBg-unsplash.webp'); }
.is-page-uae #a { background-image: url('/static/images/5-heather-shevlin-3B_NrzTjajc-unsplash.webp'); }
.is-page-citizenship #a { background-image: url('/static/images/6-hugh-whyte-SBOHLtENzEY-unsplash.webp'); }
.is-page-uk-flr-ilr #a { background-image: url('/static/images/7-annie-spratt-kMuaT5cXggc-unsplash.webp'); }
.is-page-uk-spouse-visa #a { background-image: url("/static/images/8-lashawn-dobbs-Qx-jCqiTezY-unsplash.webp"); }
.is-page-uk-sponsor-licence #a { background-image: url("/static/images/9-marissa-grootes-N9uOrBICcjY-unsplash.webp"); }
.is-page-global-talent-visa-uk #a,
.is-page-tech-nation-visa #a { background-image: url("/static/images/10-next-academy-G6k_uEjXygE-unsplash.webp"); }
.is-page-uk-skilled-worker-visa #a { background-image: url("/static/images/11-dalelan-anderson-0xffHWLgce4-unsplash.webp"); }
.is-page-uk-visitor-visa #a { background-image: url("/static/images/12-bruno-martins-GgreVI0ejLs-unsplash.webp"); }
.is-page-uk-visa-english-requirement #a { background-image: url('/static/images/13-andrew-neel-ute2XAFQU2I-unsplash.webp'); } /* Override border-radius */
.is-page-contact #a { color: #99a7ff; } /* Background image commented out, removed */
.is-page-contact #b { color: #f99; } /* Background image commented out, removed */

.row1 { background-image: url("/static/images/8-lashawn-dobbs-Qx-jCqiTezY-unsplash.webp"); }
.row2 { background-image: url("/static/images/10-next-academy-G6k_uEjXygE-unsplash.webp"); }
.row3 { background-image: url("/static/images/7-annie-spratt-kMuaT5cXggc-unsplash.webp"); }
.row4 { background-image: url("/static/images/12-bruno-martins-GgreVI0ejLs-unsplash.webp"); }
.row5 { /* Background image commented out, removed */ }

.visas #a,
.visas #b,
.steps #a,
.steps #b {
  background: var(--bg-mid);
  border-radius: 5rem;
  padding: 99px 0 64px;
}
.visas h3 {
  font-family: "Moranga"; /* Font family not defined, ensure it exists or replace */
}
.visas .post-link:hover,
.visas .post-link:hover h3,
.visas .post-link:hover p {
  background-color: var(--font) !important;
  color: var(--bg) !important;
}
.column--visas .sec {
  margin: 0;
}
.is-page-visa-advice .hero #b .row--flex{
  align-content: center;
}
.is-page-visa-advice .hero #a {
  border-radius: 4rem;
  transition: all 0.5s;
  z-index: 99;
}
.row6a, .row6b, .row6c {
  flex: 1 auto !important;
}

/* ==========================================================================
   Utilities & Miscellaneous
   ========================================================================== */

.grey-text { color: var(--grey ); }
.is-page-about .sec-fx { padding-bottom: 0; }
.customer-dashboard-tabs a { color: black; }
.cards .column--flex {
  align-self: stretch;
  justify-content: flex-start;
}
.img-container { display: block; text-align: center; width: 100%; }
.reviews-grid .container-fw { width: 82vw; }
.ti-widget[data-layout-id='24'][data-set-id='dark-background']
.ti-header span, .ti-widget[data-layout-id='24'][data-set-id='dark-background'] .ti-header strong {
  font-size: 18px !important;
}
.parallax-background {
  background-image: url("/static/hero.webp");
  background-repeat: no-repeat;
  background-size: 36vw;
  background-position: center;
  transition: background-position 0.1s ease;
}
.column--flex.post-link {
  transition: all 0.3s;
}
.review-badges {
  display: flex;
  width: min-content;
  margin: 0 auto;
  gap: 2rem;
}
.mobile-only, .landing-page-tel, .show-reviews {
    display: none;
}
.landing-page-tel a.highlight{
  padding: 9px;
  border-radius: 4px;
}
#fc.column--flex {
  justify-content: center;
  align-content: center;
  align-items: center;
  width: 100%;
  flex-basis: 100%;
}
.questions {
  display: flex;
  width: 100%;
}
.is-page-spouse-visa-lp .landing-page-tel {
  display: block;
  transition: all .3s;
}
.is-page-spouse-visa-lp .landing-page-tel a.highlight:hover {
  color: var(--bg-color);
  transform: scale(1.1);
  transition: all .3s;
}
.is-page-spouse-visa-lp .nav-menu,
.is-page-spouse-visa-lp .hamburger,
.is-page-spouse-visa-lp #fn {
  display: none;
}
.is-page-spouse-visa-lp .color-red{
  color: #FFC8D0;
}
.is-page-spouse-visa-lp .hero #b.column--flex {
  padding-top: 0;
}
img.kitt {
  border-radius: 32px;
  width: 100%
}
.step-img {
  width: auto;
  height: 4.5rem;
  margin: 32px 0px;
}
.rotate > span {
  transform: rotate(-40deg);
  float: left;
}
img.img-custom {
  width: 26rem;
}
.step-img-wrapper {
  background-color: var(--bg-light);
  padding: 20px 32px;
  border-radius: 4.5rem;
}
.category-filter {
  align-content: center;
  display: flex;
  justify-content: center;
  font-size: var(--fs);
  flex-wrap: wrap;
  grid-gap: 16px;
  list-style: none;
  padding: 0;
  position: relative;
  top: 3vh;
}
.category-filter li a.active {
  background-color: var(--bg-light);
  border-radius: 10px;
  padding: 12px 8px;
}
.category-filter li a {
  padding: 12px 8px;
}
.category-filter li a:hover {
  background-color: var(--bg-mid);
  border-radius: 10px;
  transform: translate(0px, -3px)
}
.category-filter::-webkit-scrollbar {
    display: none;
}
.full-width-text {
    font-size: clamp(64px, 33vw, 33vw);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    margin: 0;
    padding: 0;
    width: 100%;
}
.index-badges.badges {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(100% / 5);
}
.index-badges.badges > a:last-child {
  margin-left:0px;
}
.index-badges .badge {
  height: clamp(64px, 14rem, 18rem);
}
.search-form {
  display: flex;
  gap: 10px;
  margin: 4rem 0 3rem;
  width: min-content;
}
.search-field {
  flex: 1;
  padding: 16px;
  background-color: var(--bg-light);
  border: 0;
  border-radius: 0.5rem;
  font: var(--p1);
  color: var(--font);
}
.search-results-text {
  margin-bottom: 15px;
  font-weight: 600;
}
.btn-search {
  border: none;
  border-radius: 0.5rem;
  font: var(--p1);
  padding: 0 20px;
}
.loop {
  width: 88vw;
  margin: 6rem auto 0;
}
.float {
  animation: float 3s ease-in-out infinite;
  height: 30vw;
  width: auto;
}
.clean-list {
  list-style: none;
  padding: 0;
  margin: 0 auto;
}
.clean-list li {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  line-height: 2.2rem;
  margin-bottom: 2rem;
}
.clean-list li:last-child {
  border-bottom: none;
}
.contents {
    margin: 0;
    padding: 0;
    list-style-type: none;
    color: #0b0c0c;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    line-height: 1.45;
    border-bottom: 5px solid #ffffff1f;
    padding-bottom: 36px;
}
.contents li::before {
    content: "—";
    left: 0;
    width: 20px;
    overflow: hidden;
    margin-right: 10px;
    color: var(--font);
    opacity: 0.9;
}
.progress-container {
  width: 100%;
  height: 6px;
  background: var(--bg-mid);
  position: fixed;
  top: 00px;
  z-index: 9999;
}
.progress-bar {
  height: 6px;
  background: var(--font);
  width: 0%;
}
.scroller {
  margin-top: 0px;
}
.smiley svg, .heart svg {
  height: 16rem; /* Base for mobile/tablet */
  width: 16rem; /* Base for mobile/tablet */
}
.review-source {
  width: 10rem; /* Base for mobile/tablet */
}
.kicker {
  margin: 24px 0 24px;
  font-weight: 500;
  text-transform: uppercase;
  display: flex;
  justify-content: center;
  align-items: center;
}
.stars {
  /* background: var(--bg-light); */
  border-radius: 1.5rem;
  color: #ffcf4d;
  font-size: 4rem;
  letter-spacing: 5px;
  line-height: 1;
  padding: 0px 12px 12px;
}
.emoji-wave {
  display: inline-block;
  animation: wave-animation 2s infinite;
  transform-origin: 70% 70%;
}
.mobile--centre {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  /* width: max-content; */
}
.mobile--centre .cta--secondary {
  align-self: center;
}
/* .mobile--centre a {
  display: block;
  width: max-content;
} */
.mobile-centre {
  text-align: center;
  width: 100%;
}
.reviewer {
  width: 4rem;
  height: 4rem;
}
.reviewer-meta {
  display: flex;
  gap: 10px;
  align-items: center;
}
.reviewer-meta p {
  padding: 0px;
  margin: 0px;
}
svg.tick {
  margin-right: 32px;
  width: 2rem;
}
.reviews-stack {
  position: relative;
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: start;
  padding: 2rem;
}
.review-item {
  position: absolute;
  width: 90%;
  max-width: 700px;
  background: #f4f4f4;
  border-radius: 16px;
  padding: 2rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
  opacity: 1;
  transform: translateY(0) scale(1);
  transition: transform 0.8s ease, opacity 0.6s ease;
  z-index: 1;
}
.review-item.hidden {
  opacity: 0;
  transform: translateY(0) scale(0.8);
  pointer-events: none;
}
.review-item.visible-1 {
  transform: translateY(-160px);
  z-index: 3;
}
.review-item.visible-2 {
  transform: translateY(0);
  z-index: 2;
}
.review-item.visible-3 {
  transform: translateY(160px);
  z-index: 1;
}
#included, #reviews, #faq, #hero {
  padding: 6rem 2rem 6rem;
}
.blur {
  filter: blur(8px);
  transition: all .5s ease-in-out;
  top: 0vw;
  z-index: -1;
  overflow: hidden;
}
.blog-wrap {
  width: 90vw;
}
.categories-title {
  margin: 99px 0 0px;
}
.badges {
  display: flex;
  justify-content: flex-start;
  gap: 4rem;
  margin-top: 32px;
}
.badge {
  height: 8rem;
}
.hero .column--flex,
.visas .column--flex {
  align-items: center;
  justify-content: center;
}
img.square, .recent img {
  height: auto;
  width: 40vw; /* Base for mobile/tablet */
}
.square.cl, .square.dash {
  width: 30vw; /* Base for mobile/tablet */
}
.is-page-terms main,
.is-page-privacy main,
.is-page-coronavirus main {
  margin-top: 16px; /* Base for mobile */
}
.section-terms,
.section-privacy,
.section-coronavirus {
  padding: 16px 16px 0; /* Base for mobile */
  width: 100%;
}

/* ==========================================================================
   Animations
   ========================================================================== */

@keyframes spin {
  from { transform:rotate(0deg) scale(0.9); }
  to { transform:rotate(360deg) scale(0.9); }
}
@keyframes beat {
  0%, 50%, 100% { transform: scale(1.01, 1.01); }
  30%, 80% { transform: scale(0.85, 0.85); }
}
@keyframes Gradient {
    0% {
        background-position: 0 0%;
        box-shadow: 0px 5px 15px -5px rgba(0,47,130,.43)
    }
    50% {
        background-position: 100% 0%;
        box-shadow: 0px 10px 25px -5px rgba(0,47,130,.73)
    }
    100% {
        background-position: 0 0%;
        box-shadow: 0px 5px 15px -5px rgba(0,47,130,.43)
    }
}
@keyframes float {
  0% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0); }
}
@keyframes wave-animation {
  0% { transform: rotate(0deg); }
  10% { transform: rotate(14deg); }
  20% { transform: rotate(-8deg); }
  30% { transform: rotate(14deg); }
  40% { transform: rotate(-4deg); }
  50% { transform: rotate(10deg); }
  60% { transform: rotate(0deg); }
  100% { transform: rotate(0deg); }
}

.highlight {
  padding: 5px 10px 12px;
  box-shadow: 0px 10px 25px -5px rgb(255 200 208 / 33%);
  background: #b3b3ff;
  background: linear-gradient(-45deg,#ffc8d0 0%,#b3b3ff 100%) 0% 0% / 150% 150%;
  animation: 1.5s ease 0s infinite normal none running Gradient;
  color: var(--bg-color);
  line-height: 1.1;
  display: inline-block;
  letter-spacing: 0;
}
.highlight-b {
  padding: 5px 10px 8px;
  box-shadow: 0px 10px 25px -5px rgb(0 0 0 / 33%);
  background: #b3b3ff;
  color: var(--bg-color);
  line-height: 1.1;
  display: inline-block;
  letter-spacing: 0;
}
.highlight-g {
  padding: 5px 10px 8px;
  box-shadow: 0px 10px 25px -5px rgb(0 0 0 / 33%);
  background: #b3ffb8;
  color: var(--bg-color);
  line-height: 1.1;
  display: inline-block;
  letter-spacing: 0;
}
.column--visas a {
  text-shadow: 0 0 20px black;
}
/* ==========================================================================
   Media Queries (Mobile First & Specific Breakpoints)
   ========================================================================== */

/* Base HTML Font Size (Fluid Typography) - Default for < 601px */
/* This is already defined in the global html rule, keeping it here for clarity in media queries section */
/* html {
  font-size: clamp(0.65rem, 0.65rem + 0.3333vw, 0.775rem);
} */

@media (min-width: 601px) {
  html {
    font-size: clamp(0.8125rem, 0.7164rem + 0.2558vw, 0.875rem);
  }
}

@media (min-width: 768px) {
  html {
    font-size: clamp(0.875rem, 0.4464rem + 0.8929vw, 1rem);
  }
}

@media (min-width: 992px) {
  html {
    font-size: clamp(0.875rem, 0.8315rem + 0.0702vw, 1rem);
  }
}

/* Mobile (Default styles are mobile-first, these are overrides for specific mobile ranges) */
@media (max-width: 767px) {
  .post-image-wrapper {
    padding-bottom: 100%; /* Ensures square aspect ratio */
    height: 100%;
  }
  .mobile-only {
      display: flex; /* Changed from unset */
      flex-direction: column;
      justify-content: center;
      align-items: center;
  }
  .show-reviews {
    display: block; /* Changed from unset */
  }
  .landing-page-tel {
    display: block;
  }
  .landing-page-tel a.highlight{
    padding: 6px 4px;
    border-radius: 4px;
  }
  .mobile--centre {
    align-items: center;
  }
  .float {
    height: 66vw;
  }
  .row--flex .row--50 {
    flex: 1 47vh;
    align-content: center;
  }
  .row--visas.mt4 {
    margin-top: 0;
  }
  .review-badges {
    gap: 0.5rem;
    flex-direction: column;
  }
  .category-filter {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 16px 16px 0;
    margin: 60px 0 32px;
  }
  .category-filter li {
    flex: 0 0 auto;
  }
  .search-form {
    width: 100%;
  }
  .search-field {
    width: 56vw;
  }
  /* Footer adjustments for 2 columns, 2 rows on mobile */
  footer .column--flex {
    flex-basis: 50%; /* Make each column take 50% width on mobile */
    width: 50%; /* Ensure width is also 50% */
    align-items: center; /* Center content horizontally within the column */
    justify-content: center; /* Center content vertically within the column */
  }
  footer .row--flex {
    flex-wrap: wrap; /* Ensure the row wraps its content */
    justify-content: space-between; /* Changed from space-around to space-between */
    align-items: flex-start; /* Align items to the top of their container */
  }
  footer #fl.column--flex {
    flex-direction: column; /* Ensure content within these columns stacks vertically */
    align-items: flex-start; /* Changed from center to flex-start */
    justify-content: center;
  }
  footer #fr.column--flex {
    flex-direction: column; /* Ensure content within these columns stacks vertically */
    align-items: flex-end; /* Changed from center to flex-end */
    justify-content: center;
  }
  footer .copyr .column--flex {
    flex-basis: 50%;
    width: 50%;
    align-items: center;
    justify-content: center;
  }
  footer #fn.column--flex {
    flex-basis: 50%;
    width: 50%;
    align-items: flex-start;
    justify-content: center;
  }
  .is-page-book-consultation #hero {
    padding: 2rem 2rem 8rem;
  }
}

/* Tablet (768px to 1024px) */
@media only screen and (min-width: 768px) and (max-width: 1024px) {
  /* html font-size rule moved to the general @media (min-width: 768px) block */
  .card {
    max-width: 100%;
    flex-basis: 100%;
  }
  .is-page-terms .font-normal,
  .is-page-privacy .font-normal,
  .is-page-coronavirus .font-normal {
    font-size: 2rem;
  }
  #cookie-notice {
    left: 5% !important;
    width: 312px !important;
    transform:translate(-5%, -3.7vh) !important;
  }
  .dashboard .row-fx {
    flex-direction: row;
  }
  .latepoint-w {
    margin-top: 128px;
  }
  .navlogo svg, .footer--logo svg, .navlogo  {
    width: 4rem;
  }
  .navlogo svg.smile {
    width: 8rem;
  }
  .post-pages.container-fw {
    width: 66vw;
    max-width: 67vw;
    margin: 8vh auto 0;
    padding: 5vh 5vw;
  }
  img.square, .recent img {
    height: auto;
    width: 40vw;
  }
  .team .column--flex, .section-brag .column--flex {
    flex-basis: 50%;
    width: 100%;
  }
  .section-terms,
  .section-privacy {
    padding: 0 112px;
  }
  .is-page-terms main,
  .is-page-privacy main,
  .is-page-coronavirus main {
    margin-top: 10vh;
  }
  .square.cl, .square.dash {
    width: 30vw;
  }
  .mt25 {
    margin-top: 25vh;
  }
  .hero .gap,
  .is-page-book-consultation .gap {
    gap: 2.5rem;
  }
  .is-page-book-consultation #a.column--flex .wrap {
    padding: 0 0 50px;
    margin-top: 15vh;
  }
  .footer #fl a {
    margin: 0 12px;
  }
  .footer #fl a:last-child {
    margin-right: 0px;
  }
  .footer .row--flex {
    flex-direction: row;
  }
  .vh100 {
    height: 66.6vh;
  }
  .smiley svg, .heart svg {
    height: 16rem;
    width: 16rem;
  }
  .review-source {
    width: 10rem;
  }
  .mobile-vh100 {
    height: 100vh;
  }
  footer .copyr #fr.column--flex {
    align-items: flex-end;
    justify-content: flex-end;
  }
  ol {
    margin-left: 40px;
  }
  .column.column--flex.column--visas {
    flex: 1 100%; /* Explicitly keep this for specific targeting if needed */
  }
  .row--flex .row--50 {
    flex: 1 56vh;
  }
}

/* Tablet (992px to 1024px) - Specific range for header container */
@media only screen and (min-width: 992px) and (max-width: 1024px) {
  /* html font-size rule moved to the general @media (min-width: 992px) block */
  .header .container-fw {
    width: 90vw;
    max-width: 90vw;
    margin: 0 5vw;
  }
}

/* Desktop (1024px and up) */
@media only screen and (min-width: 1024px) {
  .post {
    margin: 0 auto;
    width: 36vw;
  }
  .mt4 {
    margin-top: 8rem;
  }
  .is-page-visa-advice .vh100, .vh100 {
    height: 100vh;
    z-index: 99;
  }
  .row--flex .row--50 {
    align-content: center;
    flex: 1 56vh;
    width: 100%;
  }
  .row--reverse {
    flex-direction: row-reverse;
  }
  .container-fw {
    margin: 0 auto;
    padding: 0;
    width: 100vw;
    max-width: 100vw;
  }
  .header .container-fw {
    width: 90vw;
    max-width: 90vw;
    margin: 0 5vw;
  }
  input[type="checkbox"]:checked ~ #overlay {
    width: 33vw;
  }
  .sec-fx {
    padding: 0px;
    width: 50vw;
    margin: 0;
  }
  .is-page-terms .font-normal,
  .is-page-privacy .font-normal,
  .is-page-coronavirus .font-normal {
    font-size: 1.9rem;
  }
  .img-wrap img {
    border-radius: 48px;
  }
  #cookie-notice {
    left: 2% !important;
    width: 322px !important;
    transform:translate(12%, -8vh) !important;
  }
  .post-pages.container {
    max-width: 50vw;
  }
  /* Override for desktop: column and column--flex should be 50% / 48% */
  .column {
    flex-basis: 50%;
  }
  .column--flex, .team .column--flex {
    flex-basis: 48%; /* Changed from 49% to 48% */
  }
  .vh100 {
    height: 100vh;
    margin: 0;
  }
  .section, .section.cards {
    padding: 128px 0;
  }
  .post-pages.container-fw {
    width: 60vw;
    max-width: 61vw;
    margin: 18vh auto 0;
    padding: 0 5vw;
  }
  img.square {
    height: auto;
    width: 27vw;
  }
  .recent img {
    height: auto;
    width: 16vw;
  }
  .team .column--flex, .section-brag .column--flex {
    flex-basis: 50%;
    width: 100%;
  }
  .section-terms,
  .section-privacy {
    padding: 0 5vw;
  }
  .square.cl, .square.dash {
    width: 30vw;
  }
  .is-page-terms main,
  .is-page-privacy main,
  .is-page-coronavirus main {
    margin-top: 15vh;
  }
  .wrap {
    width: 80%;
  }
  .mt25 {
    margin-top: 10vh;
  }
  .hero .gap,
  .is-page-book-consultation .gap {
    gap: 2rem;
  }
  /* .is-page-book-consultation #a,
  .is-page-book-consultation #b {
    padding: 10vh 0px 50px;
  } */
  .footer #fl a {
    margin: 0 12px;
  }
  .footer #fl a:last-child {
    margin-right: 0px;
  }
  .footer .row--flex {
    flex-direction: row;
    width: 100%;
  }
  .video svg, .video img {
    height: auto;
    margin-bottom: 16px;
    width: 26.6vw;
  }
  .smiley svg, .heart svg {
    height: 30rem;
    width: 30rem;
  }
  .review.row--flex {
    flex-direction: row;
  }
  .review-source {
    margin-top: 16px;
    width: 14rem;
  }
  .mobile-vh100 {
    height: 100vh;
  }
  footer .copyr #fr.column--flex {
    align-items: flex-end;
    justify-content: flex-end;
  }
  ol {
    margin-left: 40px;
  }
  .nav-link.current {
    background: none;
    color: var(--nav);
  }
  /* Sticky property for widths 1024px and above */
  .sticky {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: -1;
  }
}


/* Desktop (1080px and up) - Specific for visa advice page */
@media (min-width: 1080px) {
  .is-page-visa-advice #a {
    flex: 1 48vw;
    height: calc(100vh - 11.5rem);
  }
  .is-page-visa-advice #b {
    flex: 1 48vw;
  }
  .is-page-visa-advice #hero {
    align-content: center;
    height: calc(100vh - 11.5rem);
  }
  .row--flex .row--50 {
    flex: 1 60vh;
  }
}

/* Desktop (1024px to 1079px) */
/* @media only screen and (min-width: 1024px) and (max-width: 1079px) {
  .is-page-visa-advice #a,
  .is-page-visa-advice #b {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 48%;
    max-width: 48%;
  }
} */

/* Desktop (1176px and up) - Specific for visa advice page */
@media (min-width: 1176px) {
  .is-page-visa-advice #a {
    flex: 1 58vw;
    height: calc(100vh - 11.5rem);
  }
  .is-page-visa-advice #b {
    flex: 1 38vw;
  }
  .is-page-visa-advice #hero {
    align-content: center;
    height: calc(100vh - 8rem);
  }
  .row--flex .row--50 {
    flex: 1 76.7vh;
  }
}

/* Mobile/Tablet (0px to 1023px) */
@media (max-width: 1023px) {
  .ti-widget[data-layout-id='74'][data-set-id='default'] {
    display: none;
  }
  .mt4 {
    margin-top: 7rem;
  }
  .mobile--centre {
    width: auto;
  }
  .navbar {
    width: 100vw;
    padding: 0 5vw;
    backdrop-filter: blur(6.3px);
    -webkit-backdrop-filter: blur(6.3px);
    position: fixed;
    top: 0;
    left: 0;
  }
  .nav-menu {
    background-color: var(--bg-mid);
    flex-direction: column;
    padding: 0;
    position: fixed;
    justify-content: flex-end;
    bottom: 0;
    top: 0;
    left: 0;
    transition: var(--transition);
    transition-delay: 0.5s;
    height: 100vh;
    width: 100%;
    z-index: -999999;
    opacity: 0;
    visibility: hidden;
  }
  .nav-menu.active {
    padding: 0 0 100px;
    left: 0;
    bottom: 0;
    top: 0;
    transition: all 0.6s;
    opacity: 1;
    visibility: visible;
  }
  .no-overflow {
    overflow: hidden;
  }
  .logo.opacity, .opacity {
    /* opacity: 0.5; */
  }
  .nav-item {
    margin: 0;
    text-align: left;
  }
  .nav-link {
    font: var(--p2);
    font-weight: 600;
    color: var(--white);
    text-transform: uppercase;
  }
  .nav-item, .nav-item a {
    width: 100%;
  }
  .nav-item a {
    padding: 8px 20px;
  }
  .hamburger {
    display: block; /* Hamburger now displays at this breakpoint */
    cursor: pointer;
    z-index: 2;
    position: relative;
    width: 43px;
  }
  .nav-item.mobile,
  .nav-link.mobile {
    display: block;
  }
  .nav-item {
    bottom: 0vh;
    left: 0;
    opacity: 0;
    transition: var(--transition);
    transform: translateY(3vh);
    z-index: -999999;
  }
  .nav-menu.active .nav-item {
    bottom: 0;
    left: 0;
    opacity: 1;
    transition: var(--transition);
    transform: translateY(2vh);
    transition-delay: 0.25s;
    z-index: 999999;
  }
  /* Individual transition delays for nav items */
  .nav-menu.active .nav-item:nth-child(1) { transition-delay: 0.6s; }
  .nav-menu.active .nav-item:nth-child(2) { transition-delay: 0.65s; }
  .nav-menu.active .nav-item:nth-child(3) { transition-delay: 0.70s; }
  .nav-menu.active .nav-item:nth-child(4) { transition-delay: 0.75s; }
  .nav-menu.active .nav-item:nth-child(5) { transition-delay: 0.85s; }
  .nav-menu.active .nav-item:nth-child(6) { transition-delay: 0.9s; }
  .nav-menu.active .nav-item:nth-child(7) { transition-delay: 0.95s; }
  .nav-menu.active .nav-item:nth-child(8) { transition-delay: 1s; }
  .nav-menu.active .nav-item:nth-child(9) { transition-delay: 1.05s; }
  .nav-menu.active .nav-item:nth-child(10) { transition-delay: 1.1s; }
  .nav-link.current:after {
    display: none;
  }

  /* Column sizing for 1024px and below */
  .column,
  .column--flex {
    flex: 1 100%;
  }

  /* Rule 1: Below 1024px */
  .is-page-visa-advice #a,
  .is-page-visa-advice #b {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 100%;
    max-width: 100%;
    display: flex; /* Ensure it's visible */
  }
  .is-page-visa-advice #a {
    /* Remove any conflicting display: none if present */
  }
  .is-page-visa-advice #a,
  .is-page-book-consultation #a {
    display: none;
  }
}

/* Specific Tablet Landscape (768px to 1366px, portrait orientation) */
@media only screen and (min-device-width: 768px) and (max-device-width: 1366px) and (orientation:portrait) {
  .scroller {
    margin-top: 0px;
  }
}
