/* ================================
   MULTIPLES TANDEM REGISTRATION PAGE
   CLEAN FINAL CSS (CONSOLIDATED)
   ================================ */

/* ---------------------------------
   FONTS
--------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Alegreya:ital,wght@0,400..900;1,400..900&display=swap');

@font-face {
  font-family: FutuM;
  src: url(https://storage.unitedwebnetwork.com/files/1153/801482f55fa0cf4f0251f992360251ba.otf);
}
@font-face {
  font-family: FutuB;
  src: url(https://storage.unitedwebnetwork.com/files/1153/801482f55fa0cf4f0251f992360251ba.otf);
}

/* ---------------------------------
   GLOBAL BASE
--------------------------------- */
* {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

body,
label,
input,
select,
textarea,
button,
h1,
h2,
h3,
h4,
p,
.fModule,
.fHeaderbot li {
  font-family: "Alegreya", serif !important;
  color: #000;
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
  height: auto;
  border: 0;
  line-height: 0;
}

a {
  color: #d22606 !important;
  text-decoration: none !important;
}

p {
  color: #000;
  font-size: 1rem;
  line-height: 1.4;
  margin: 0 0 0.5rem 0;
}

/* ---------------------------------
   PAGE FRAME (borders) + TOP BAR IMAGE + FOOTER STRIP
--------------------------------- */

/*
10px inset frame:
- left border: 4px red (#d22606)
- right border: 4px navy (#141740)
- top border: now replaced by a branded image strip
- bottom: open, visually meets footer strip art
*/

body {
  margin: 0;
  background: #fff !important;
  padding: 30px;
  padding-bottom: 90px; /* leave space above footer strip so form isn't on top of it */
  position: relative;
  min-height: 100vh;
}

/* draw vertical borders full viewport height (minus 10px insets)
   NO top/bottom border here */
body::before {
  content: "";
  position: fixed;
  z-index: 9990;
  left: 10px;
  right: 10px;
  top: 10px;
  height: calc(100vh - 20px); /* viewport - (10px top +10px bottom inset) */

  border-left: 4px solid #d22606;   /* red left rail */
  border-right: 4px solid #141740;  /* navy right rail */

  background: transparent;
  pointer-events: none;
}

/* draw the top decorative bar image so it spans EXACTLY
   between those two vertical rails (same left/right/top offset),
   no repeat, stretched to fill the bar height */
body::after {
  content: "";
  position: fixed;
  z-index: 9991;
  left: 10px;
  right: 10px;
  top: 10px;

  /* adjust this height so the image looks correct.
     If the source art is taller than 6px, bump this (e.g. 12px or 16px). */
  height: 12px;

  background-image: url("https://storage.unitedwebnetwork.com/files/1229/b30e1ec401f434b20b6a64f4fcf21bfe.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% 100%; /* stretch image to fill this bar perfectly */

  pointer-events: none;
}

/* footer image strip pinned to bottom, edge-to-edge */
#fModule-48102 {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9991;
  padding: 0 !important;
  margin: 0 !important;
  pointer-events: none;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  line-height: 0;
}
#fModule-48102 .fGalleryImages,
#fModule-48102 .fGalleryItem,
#fModule-48102 .fGalleryImage {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 0;
}
#fModule-48102 img {
  display: block;
  width: 100vw;
  max-width: 100vw;
  height: 40px;        /* thin footer strip */
  object-fit: cover;
  object-position: center;
  line-height: 0;
  border: 0;
  margin: 0;
  padding: 0;
}

/* footer text block above the strip */
#fModule-48104 {
  position: relative;
  z-index: 5;
  text-align: center;
  margin-top: 30px;
  padding-bottom: 10px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
#fModule-48104 p {
  font-size: 1rem;
  line-height: 1.4;
  color: #4a4a4a;
  margin: 0 0 5px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* neutralize default footer background */
footer {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-top: 20px !important;
  text-align: center !important;
  font-size: 14px !important;
}

/* ---------------------------------
   GENERIC WRAPPERS / MODULES
--------------------------------- */
.wrap {
  margin: 0 auto;
  max-width: 100%;
  width: 100%;
  overflow: visible;
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.fModule {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

header .wrap {
  max-width: 100%;
}

/* ---------------------------------
   TOP NAV (Login / Register menu)
--------------------------------- */

.fMainMenu .fModuleContent {
  flex: 0 0 100%;
  max-width: 100%;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* the UL with Login / Register */
.fMainMenu .fMenu {
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  flex-wrap: nowrap;
  column-gap: 16px;
  align-items: flex-start;
  justify-content: flex-end;

  /* position: absolute;
  top: 0;
  right: 0; */

  font-size: 1rem;
  line-height: 1.2;
  font-weight: 400;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;

  z-index: 20;
}

.fMainMenu .fMenu li {
  margin: 0;
  padding: 0;
}

.fMainMenu .fMenu li a {
  color: #d22606 !important;
  text-decoration: none !important;
  font-size: 1rem;
  line-height: 1.2;
  font-weight: 400;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* burger button (3 red lines)
   - hidden on desktop, shown mobile in @media
   - we'll toggle menu with JS */
.navbar-toggle {
  display: none;
  flex-direction: column;
  align-items: flex-end;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  position: relative;
  z-index: 10000; /* sit above dropdown */
  cursor: pointer;
}
.navbar-toggle .icon-bar {
  display: block;
  height: 3px;
  width: 28px;
  background: #d22606 !important;
  margin-bottom: 4px;
  border-radius: 0;
}
.navbar-toggle .icon-bar:last-child {
  margin-bottom: 0;
}

/* ---------------------------------
   HEADER ROW (LOGO / EVENT INFO)
--------------------------------- */

/*
Structure:
- Left: Tandem lockup
- Right: Conference title + (date/time block | venue block)
Desktop: 2 columns (50%/50%), both centered internally
Mobile: stack vertically, center everything,
        and stack date/time and venue vertically too.
*/

.region-header {
  position: relative;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding-bottom: 20px;
  margin-bottom: 10px;
}

/* halves (desktop) */
.fModule.fLogo,
.fModule.fHeaderbot {
  /* flex: 0 0 50% !important;
  max-width: 50% !important; */

  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-start;

  text-align: center;

  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* scale/center the Tandem lockup */
.fModule.fLogo img {
  display: block;
  width: auto;
  max-width: 95%;
  height: auto;
  margin: 0 auto;
  padding: 0;
  line-height: 0;
  border: 0;
}

/* right column inner wrapper */
.fModule.fHeaderbot .f-module-content {
  /* padding: 28px 0 0 0 !important; */
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;

  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center !important;
}

/* conference heading */
.fModule.fHeaderbot h3 {
  font-size: 1.6rem;
  font-weight: 700;
  color: #d22606;
  line-height: 1.3;
  margin: 0 0 12px 0 !important;
  padding: 0 !important;
  white-space: normal;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: center !important;
}

/* timing + venue row under the title (desktop) */
.fModule.fHeaderbot ul {
  list-style: none;
  margin: 0;
  padding: 0;

  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: center; /* center row under heading */

  font-size: 1rem;
  line-height: 1.4;
  color: #000;
  gap: 20px;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left;
  max-width: 100%;
}

/* two inline blocks:
   1st li = date/time (multi-line)
   2nd li = venue
*/
.fModule.fHeaderbot ul li {
  display: flex;
  align-items: flex-start;
  margin: 0;
  padding: 0;

  font-size: 1rem;
  line-height: 1.4;
  color: #000;
  word-break: break-word;
  white-space: normal;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* add thin red divider before the 2nd li on desktop */
.fModule.fHeaderbot ul li + li {
  border-left: 1px solid #d22606 !important;
  padding-left: 20px;
  margin-left: 0;
}

.fModule.fHeaderbot ul li span {
  display: inline-block;
  font-size: 1rem;
  line-height: 1.4;
  color: #000;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-align: left;
}

.fModule.fHeaderbot ul li span:first-child img {
  width: 28px;
  height: auto;
  margin-right: 8px;
  margin-top: 2px;
  display: block;
  line-height: 0;
  border: 0;
}

/* ---------------------------------
   SECTION TITLES IN FORM
   (Personal Details / Assistant Details / Event Registration etc.)
--------------------------------- */

.fForm fieldset,
fieldset {
  border: 0 !important;
  margin: 0;
  padding: 0;
  background: transparent !important;
  box-shadow: none !important;
}

.fForm fieldset legend,
fieldset legend,
.form-item-type-heading .form-heading-legend {
  display: block;
  margin: 0 0 20px 0;
  padding: 2px 0 !important;

  font-weight: bold;
  font-size: 1.6rem;
  line-height: 1.2;
  color: #d22606;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;

  border-bottom: 1px solid #d22606 !important;
}

.form-item-type-heading {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 30px 0 10px 0 !important;
  color: inherit !important;
  font-size: inherit !important;
  flex: 0 0 100%;
  max-width: 100%;
}

.form-item-type-heading .form-heading {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* ---------------------------------
   FORM GRID
   (2-col desktop, 1-col mobile)
--------------------------------- */

form .f-fieldset-body,
fieldset .f-fieldset-body,
.has-user .fForm {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
}

/* default 2 columns */
form .form-item,
fieldset .f-fieldset-body .form-item,
.has-user .fForm .form-item {
  flex: 0 0 48%;
  max-width: 48%;
  overflow: visible;
  margin-bottom: 15px;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* full-width rows */
form .form-item-type-radio,
.fForm .buttons,
.path-login- #form-item-username {
  flex: 0 0 100%;
  max-width: 100%;
}

form .form-item#form-item-field_id_17681,
form .form-item#form-item-field_id_17674,
form .form-item#form-item-field_id_17678,
form .form-item#form-item-field_id_17675,
form .form-item#form-item-field_id_17679,
form .form-item#form-item-field_id_17797 {
  flex: 0 0 100%;
  max-width: 100%;
}

/* labels */
form label {
  width: 100% !important;
  text-align: left !important;
  display: flex;
  align-items: center;

  float: none !important;
  margin-right: 0 !important;
  padding: 0.25rem 0;

  font-weight: 400;
  color: #494a4a;
  font-size: 18px;
  line-height: 1.3;

  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* inputs / selects / textareas */
.fForm input,
.fForm select,
.fForm textarea,
fieldset input,
fieldset select,
fieldset textarea {
  font-size: 1rem;
  padding: 0.25rem 10px;
  border: 1px solid #ccc;
  border-radius: 3px;
  width: 100%;
  max-width: 100%;
  height: 44px;
  background: #fff;
  transition: border-color 0.3s ease;
  box-shadow: none !important;
}

/* helper text */
form .hint,
form .error,
.fForm .hint {
  font-size: 0.9rem;
  display: block;
  margin-left: 0 !important;
  margin-top: 0.25rem;
  color: #494a4a !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* red note under dropdowns */
#form-item-field_id_24433 .hint strong,
#form-item-field_id_24434 .hint strong {
  color: #d22606;
  font-weight: normal;
}

/* hide fields auto-filled elsewhere */
#form-item-password,
#form-item-password_repeat,
.page-title,
.user-register-group,
#form-item-fullname,
.path-tandem-registration-2025- #form-item-username {
  display: none !important;
}

/* ---------------------------------
   BUTTONS
--------------------------------- */
.fForm .buttons {
  text-align: center;
  flex: 0 0 100%;
  max-width: 100%;
  margin-top: 30px;
  padding-left: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.fForm .buttons a {
  display: none !important;
}

a.fButton,
.fForm .buttons input,
.fbutton-btn a,
.has-user .fForm .buttons input,
button,
input[type="submit"] {
  display: inline-block;
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  background-color: #d22606;
  text-shadow: 0 0 10px rgba(0,0,0,0.3);
  border-radius: 20px !important;
  padding: 11px 40px !important;
  border: none;
  cursor: pointer;
  box-shadow: none !important;
}
#nav-up,
.fPageTitle {
    display: none !important;
}
/* ---------------------------------
   RESPONSIVE (<=768px)
   - burger appears
   - header stacks vertically
   - date/venue stack vertically
   - form goes 1-col
   - menu becomes dropdown panel (hidden by default; JS toggles it)
--------------------------------- */
@media (max-width: 768px) {

  /* give header room for burger at the top */
  .region-header {
    position: relative;
    /* padding-top: 50px; */
  }

  /* burger in that top band */
  .navbar-toggle-container,
  .navbar-toggle {
    /* position: absolute !important;
    top: 10px !important;
    right: 10px !important; */
    z-index: 10002 !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column;
    align-items: flex-end;
    cursor: pointer;
  }

  .navbar-toggle .icon-bar {
    width: 32px;
    height: 3px;
    background: #d22606 !important;
    border-radius: 0;
    margin-bottom: 5px;
    display: block;
  }
  .navbar-toggle .icon-bar:last-child {
    margin-bottom: 0;
  }

  /* dropdown panel for Login/Register on mobile */
  .fMainMenu nav {
    display: none;
  }
  .fMainMenu .fMenu {
    position: absolute !important;
    top: 50px !important;       
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    min-width: 0 !important;

    background: #fff !important;
    border-top: 1px solid #d22606 !important;
    border-bottom: 2px solid #d22606 !important;
    box-shadow: 0 8px 16px rgba(0,0,0,0.12) !important;

    padding: 12px 16px !important;
    margin: 0 !important;
    list-style: none;
    text-align: right;
    z-index: 10001 !important;
    display: block;
  }

  .fMainMenu .fMenu li {
    display: block !important;
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
  }
  .fMainMenu .fMenu li:last-child {
    margin-bottom: 0 !important;
  }

  .fMainMenu .fMenu li a {
    display: block;
    color: #d22606 !important;
    font-size: 1.1rem;
    line-height: 1.4;
    font-weight: 500;
    text-decoration: none !important;
    padding: 4px 0;
  }

  /* prevent nav container from forcing weird absolute layout below */
  .fMainMenu nav {
    position: static !important;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    z-index: auto !important;
  }

  /* header blocks now stack vertically and center */
  .fModule.fLogo,
  .fModule.fHeaderbot {
    /* flex: 0 0 100% !important;
    max-width: 100% !important; */
    margin-bottom: 20px;
    align-items: center !important;
    text-align: center !important;
}
.fModule.fHeaderbot {
    margin-top: 25px !important;
}
  .fModule.fLogo img {
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
  }

  .fModule.fHeaderbot .f-module-content {
    padding-top: 0 !important;
    align-items: center !important;
    text-align: center !important;
  }

  .fModule.fHeaderbot h3 {
    text-align: center !important;
  }

  /* timing + venue stack vertically, divider removed */
  .fModule.fHeaderbot ul {
    flex-wrap: nowrap;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center !important;
    gap: 20px;
  }

  .fModule.fHeaderbot ul li {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: row;
    align-items: flex-start;
    text-align: left; /* icon + lines read naturally on mobile */
  }

  .fModule.fHeaderbot ul li + li {
    border: 0 !important;
    padding: 0 !important;
  }

  .fModule.fHeaderbot ul li span {
    text-align: left !important;
  }

  /* form goes single-column */
  form .form-item,
  fieldset .f-fieldset-body .form-item,
  .has-user .fForm .form-item,
  form .form-item-type-radio,
  .fForm .buttons {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .fForm {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  #fModule-48102 img {
    display: block;
    width: 100vw;
    max-width: 100%;
    height: auto;
  }
}

/* ---------------------------------
   DESKTOP MENU RESET (>=769px)
--------------------------------- */
@media (min-width: 769px) {
  /* .fMainMenu .fMenu {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    width: auto !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;

    display: flex !important;
    flex-wrap: nowrap !important;
    column-gap: 16px;
    align-items: flex-start;
    justify-content: flex-end;
    z-index: 20;
  }

  .fMainMenu .fMenu li {
    display: inline-block !important;
    margin: 0 !important;
  }

  .fMainMenu .fMenu li a {
    color: #d22606 !important;
    font-size: 1rem;
    line-height: 1.2;
    text-decoration: none !important;
    background: transparent !important;
    padding: 0 !important;
  }

  /* burger hidden on desktop */
  .navbar-toggle {
    display: none !important;
  }
  
}

     
/* Top decorative bar — full width between the rails, aligned with them */
body::after {
  content: "";
  position: fixed;
  z-index: 9991;

  /* same horizontal inset as the side borders so it "plugs in" cleanly */
  left: 10px;
  right: 10px;

  /* bump it ~5px above where the side borders start (the rails start at 10px) */
  top: 5px;

  /* visual thickness of the bar — tweak if you want it a hair thicker/thinner */
  height: 8px;

  background-image: url("https://storage.unitedwebnetwork.com/files/1229/b30e1ec401f434b20b6a64f4fcf21bfe.png");

  /* stretch the artwork horizontally so it touches both rails */
  background-repeat: no-repeat;
  background-position: left top;
  background-size: 100% 100%;

  pointer-events: none;
}
