:root{
  --ag28-dark:#2B363F;
  --ag28-orange:#F9481E;
  --ag28-orange-hover:#D93A16;
  --ag28-green:#A1B928;
  --ag28-purple:#5A3793;
  --ag28-blue:#3A56C1;
  --ag28-bg:#F6F7F8;
  --ag28-border:#E3E6E8;
  --ag28-muted:#687279;
  --ag28-white:#FFFFFF;

  --font-zh:
    "Noto Sans TC",
    "Source Han Sans TC",
    "思源黑體 TC",
    "Microsoft JhengHei",
    sans-serif;

  --font-en:
    "Open Sans",
    Arial,
    sans-serif;
}


/* ========================================
   GLOBAL
======================================== */

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  overflow-x:hidden;
  color:var(--ag28-dark);
  background:#fff;
  font-family:var(--font-zh);
}

img{
  max-width:100%;
}

a{
  text-decoration:none;
}

.ag28-page{
  width:100%;
  overflow:hidden;
}

.ag28-container{
  width:100%;
  max-width:1180px;
  margin:0 auto;
}


/* ========================================
   NAVBAR
======================================== */

.navbar{
  width:100%;
  min-height:88px;

  display:flex;
  align-items:center;
  flex-wrap:nowrap;

  padding:0;

  background:#fff;
  border-bottom:1px solid #E6E8EC;
}

.navbar .container-fluid{
  width:100%;
  min-height:88px;

  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:nowrap;

  padding:10px 18px;
}

.navbar-brand{
  flex:0 0 auto;

  display:flex;
  align-items:center;

  margin:0 28px 0 0;
  padding:0;
}

.navbar-brand img{
  display:block;

  width:280px;
  max-width:280px;
  height:auto;
  max-height:68px;

  object-fit:contain;
}

.navbar-collapse{
  flex:1 1 auto;
  min-width:0;
}

.navbar-nav{
  width:100%;

  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;

  gap:3px;

  margin:0;
  padding:0;
}

.navbar-nav .nav-item{
  flex:0 0 auto;

  display:flex;
  align-items:center;
}

.navbar-nav .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:.72rem .78rem;

  color:var(--ag28-dark);
  background:transparent;

  border:0;
  border-radius:999px;

  font-family:var(--font-zh);
  font-size:.88rem;
  font-weight:700;
  line-height:1.4;

  white-space:nowrap;

  transition:
    color .25s ease,
    background-color .25s ease,
    transform .25s ease;
}

.navbar-nav .btn:hover,
.navbar-nav .btn:focus{
  color:#fff;
  background:var(--ag28-green);

  transform:translateY(-1px);
}


/* HAMBURGER */

.navbar-toggler{
  display:none;

  flex:0 0 auto;

  margin-left:auto;
  padding:.6rem;

  background:transparent;
  border:0;
}

.navbar-toggler:focus{
  box-shadow:none;
}

.navbar-toggler span{
  display:block;

  width:30px;
  height:3px;

  background:var(--ag28-dark);
}

.navbar-toggler span:not(:first-child){
  margin-top:5px;
}


/* ========================================
   COMMON TYPOGRAPHY
======================================== */

.ag28-section-label,
.ag28-eyebrow{
  display:block;

  margin-bottom:14px;

  color:var(--ag28-orange);

  font-family:var(--font-en);
  font-size:.72rem;
  font-weight:800;
  line-height:1.4;
  letter-spacing:.18em;

  text-transform:uppercase;
}

.ag28-section-heading{
  max-width:760px;

  margin:0 auto 56px;

  text-align:center;
}

.ag28-section-heading h2{
  margin:0;

  color:var(--ag28-dark);

  font-family:var(--font-en);
  font-size:clamp(2.1rem,4vw,3.5rem);
  font-weight:800;
  line-height:1.08;
}

.ag28-section-heading h2 span{
  color:var(--ag28-orange);
}

.ag28-section-heading p{
  margin:22px 0 0;

  color:var(--ag28-muted);

  font-size:1rem;
  line-height:1.9;
}


/* ========================================
   FULL WIDTH IMAGE SECTIONS
======================================== */

.ag28-hero,
.ag28-intro,
.ag28-challenge{
  width:100%;

  margin:0;
  padding:0;

  overflow:hidden;
}

.ag28-hero{
  background:#fff;
}

.ag28-intro{
  background:var(--ag28-bg);
}

.ag28-challenge{
  background:#fff;
}

.ag28-hero-image-only,
.ag28-intro-image-only,
.ag28-challenge-image-only,
.ag28-image-section{
  width:100%;

  margin:0;
  padding:0;

  line-height:0;
}

.ag28-hero-image-only img,
.ag28-intro-image-only img,
.ag28-challenge-image-only img,
.ag28-image-section img{
  display:block;

  width:100%;
  max-width:none;
  height:auto;

  margin:0;
  padding:0;

  border:0;
  border-radius:0;
}


/* ========================================
   PRIMARY BUTTON
======================================== */

.ag28-primary-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  gap:18px;

  margin-top:34px;
  padding:14px 26px;

  color:#fff !important;
  background:var(--ag28-green);

  border:1px solid var(--ag28-green);
  border-radius:999px;

  font-family:var(--font-en);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;

  text-decoration:none !important;

  transition:
    background-color .25s ease,
    border-color .25s ease,
    transform .25s ease;
}

.ag28-primary-button:hover{
  color:#fff !important;

  background:var(--ag28-purple);
  border-color:var(--ag28-purple);

  transform:translateY(-2px);
}


/* ========================================
   REWARDS
======================================== */

.ag28-rewards{
  width:100%;

  padding:110px 40px;

  background:var(--ag28-bg);
}

.ag28-reward-main{
  width:100%;
  max-width:760px;

  margin:0 auto 24px;
  padding:48px;

  text-align:center;

  background:var(--ag28-orange);

  border-radius:24px;
}

.ag28-reward-main > span{
  color:rgba(255,255,255,.75);

  font-family:var(--font-en);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.16em;
}

.ag28-reward-amount{
  display:flex;
  align-items:flex-end;
  justify-content:center;

  gap:10px;

  margin-top:16px;

  color:#fff;
}

.ag28-reward-amount small{
  margin-bottom:12px;

  font-family:var(--font-en);
  font-size:.9rem;
  font-weight:800;
}

.ag28-reward-amount strong{
  font-family:var(--font-en);
  font-size:clamp(3.5rem,7vw,6rem);
  font-weight:900;
  line-height:1;
}

.ag28-reward-main p{
  margin:14px 0 0;

  color:#fff;

  font-size:1rem;
  font-weight:700;
}

.ag28-reward-grid{
  width:100%;
  max-width:760px;

  display:grid;
  grid-template-columns:1fr 1fr;

  gap:20px;

  margin:0 auto;
}

.ag28-reward-card{
  padding:34px;

  text-align:center;

  background:#fff;

  border:1px solid var(--ag28-border);
  border-radius:20px;
}

.ag28-reward-label{
  color:var(--ag28-purple);

  font-family:var(--font-en);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.14em;
}

.ag28-reward-card h3{
  margin:18px 0 0;

  color:var(--ag28-dark);

  font-size:1.6rem;
  line-height:1.3;
}

.ag28-reward-card h3 strong{
  color:var(--ag28-orange);
}

.ag28-reward-card p{
  margin:12px 0 0;

  color:var(--ag28-muted);

  font-size:.88rem;
}


/* ========================================
   AG28 PASS
======================================== */

.ag28-pass{
  width:100%;

  padding:110px 40px;

  background:#fff;

  text-align:left;
}

.ag28-pass-grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  align-items:center;

  gap:72px;
}

.ag28-pass-copy{
  text-align:left;
}

.ag28-pass-copy h2{
  margin:0;

  color:var(--ag28-dark);

  font-family:var(--font-en);
  font-size:clamp(3rem,5vw,4.6rem);
  font-weight:900;
  line-height:.95;

  text-align:left;
}

.ag28-pass-copy h2 span{
  color:var(--ag28-orange);
}

.ag28-pass-copy p{
  max-width:500px;

  margin:26px 0 0;

  color:var(--ag28-muted);

  font-size:1rem;
  line-height:1.9;

  text-align:left;
}

.ag28-price{
  display:flex;
  align-items:flex-end;

  gap:9px;

  margin-top:30px;

  color:var(--ag28-dark);
}

.ag28-price small{
  margin-bottom:9px;

  font-family:var(--font-en);
  font-size:.8rem;
  font-weight:800;
}

.ag28-price strong{
  color:var(--ag28-orange);

  font-family:var(--font-en);
  font-size:3.6rem;
  font-weight:900;
  line-height:1;
}

.ag28-pass-image{
  width:100%;

  overflow:hidden;

  background:var(--ag28-bg);

  border-radius:26px;
}

.ag28-pass-image img{
  display:block;

  width:100%;
  min-height:440px;

  object-fit:cover;
}


/* ========================================
   PASS BUTTONS
======================================== */

.ag28-pass-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;

  gap:14px;

  margin-top:34px;
}

.ag28-pass-actions .ag28-primary-button{
  margin-top:0;
}

.ag28-secondary-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  gap:18px;

  padding:14px 26px;

  color:#fff !important;
  background:var(--ag28-green);

  border:1px solid var(--ag28-green);
  border-radius:999px;

  font-family:var(--font-zh);
  font-size:.82rem;
  font-weight:800;

  text-decoration:none !important;

  transition:
    color .25s ease,
    background-color .25s ease,
    border-color .25s ease,
    transform .25s ease;
}

.ag28-secondary-button:hover{
  color:#fff !important;

  background:var(--ag28-purple);
  border-color:var(--ag28-purple);

  transform:translateY(-2px);
}


/* ========================================
   FINAL CTA
======================================== */

.ag28-final{
  width:100%;

  padding:110px 40px;

  text-align:center;

  background:var(--ag28-green);
}

.ag28-final .ag28-section-label{
  color:rgba(255,255,255,.75);
}

.ag28-app-download-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  margin:20px auto 0;
  padding:15px 34px;

  color:var(--ag28-dark) !important;
  background:#fff;

  border:2px solid #fff;
  border-radius:999px;

  font-family:var(--font-zh);
  font-size:1rem;
  font-weight:800;
  line-height:1.4;

  text-decoration:none !important;

  transition:
    color .25s ease,
    background-color .25s ease,
    border-color .25s ease,
    transform .25s ease;
}

.ag28-app-download-button:hover{
  color:#fff !important;
  background:var(--ag28-green);
  border-color:#fff;

  transform:translateY(-2px);
}

.ag28-final p{
  margin:28px 0 0;

  color:#fff;

  font-size:1.05rem;
  line-height:1.9;
}

.ag28-final-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  gap:20px;

  margin-top:34px;
  padding:15px 30px;

  color:var(--ag28-dark) !important;
  background:#fff;

  border-radius:999px;

  font-family:var(--font-en);
  font-size:.8rem;
  font-weight:900;
  letter-spacing:.1em;

  text-decoration:none !important;

  transition:
    color .25s ease,
    background-color .25s ease,
    transform .25s ease;
}

.ag28-final-button:hover{
  color:#fff !important;
  background:var(--ag28-purple);

  transform:translateY(-2px);
}

.ag28-final-date{
  margin-top:30px;

  color:rgba(255,255,255,.72);

  font-family:var(--font-en);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.14em;
}


/* ========================================
   AG28 BOOKING SECTION
======================================== */

.ag28-booking-section{
  width:100%;

  padding:100px 40px 110px;

  background:#fff;

  scroll-margin-top:30px;
}

.booking-container{
  width:100%;
  max-width:900px;

  margin:0 auto;
  padding:56px 48px;

  background:#fff;

  border:1px solid var(--ag28-border);
  border-radius:28px;

  box-shadow:0 18px 50px rgba(43,54,63,.06);

  text-align:left;
}

.booking-intro{
  width:100%;
  max-width:100%;

  margin:0 auto 50px;

  text-align:center;
}

.booking-label{
  display:block;

  width:100%;

  margin-bottom:14px;

  color:var(--ag28-green);

  font-family:var(--font-en);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.2em;

  text-align:center;
}

.booking-intro h2{
  width:100%;

  margin:0 0 18px;

  color:var(--ag28-dark);

  font-size:2rem;
  font-weight:900;

  text-align:center;
}

.booking-intro::after{
  content:"";

  display:block;

  width:56px;
  height:4px;

  margin:28px auto;

  background:var(--ag28-green);

  border-radius:999px;
}

.booking-intro p{
  width:100%;

  margin:5px auto;

  color:var(--ag28-muted);

  font-size:.95rem;
  line-height:1.8;

  text-align:center;
}


/* ========================================
   BOOKING FORM
======================================== */

.booking-form{
  display:grid;
  grid-template-columns:1fr 1fr;

  gap:26px 28px;

  text-align:left;
}

.form-group{
  min-width:0;

  text-align:left;
}

.form-group-full{
  grid-column:1 / -1;

  text-align:left;
}

.form-group label{
  display:block;

  margin-bottom:9px;

  color:var(--ag28-dark);

  font-size:.92rem;
  font-weight:800;

  text-align:left;
}

.form-group label span{
  color:var(--ag28-orange);
}

.form-group input,
.form-group select,
.form-group textarea{
  width:100%;

  padding:16px 18px;

  color:var(--ag28-dark);
  background:#FAFAFC;

  border:1px solid #D9DDE2;
  border-radius:12px;

  font-family:var(--font-zh);
  font-size:.95rem;

  text-align:left;

  outline:none;

  transition:
    border-color .2s ease,
    box-shadow .2s ease,
    background-color .2s ease;
}

.form-group input:not([type="radio"]):not([type="checkbox"]){
  min-height:56px;
}

.form-group select{
  min-height:56px;

  cursor:pointer;
}

.form-group textarea{
  min-height:130px;

  resize:vertical;
}

/* ========================================
   MEMBER RADIO OPTIONS
======================================== */

.ag28-member-options{
  display:flex;
  align-items:center;
  gap:28px;

  margin-top:6px;
}

.ag28-member-option{
  display:inline-flex !important;
  align-items:center;

  gap:8px;

  margin:0 !important;

  color:var(--ag28-dark) !important;

  font-family:var(--font-zh);
  font-size:.95rem;
  font-weight:500;

  cursor:pointer;
}

.ag28-member-option input[type="radio"]{
  width:16px !important;
  height:16px !important;
  min-height:0 !important;

  margin:0 !important;
  padding:0 !important;

  accent-color:var(--ag28-orange);

  cursor:pointer;
}

.ag28-member-option span{
  color:var(--ag28-dark) !important;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  background:#fff;

  border-color:var(--ag28-orange);

  box-shadow:0 0 0 4px rgba(249,72,30,.09);
}

.form-group input::placeholder,
.form-group textarea::placeholder{
  color:#A6ADB4;
}


/* ========================================
   PRIVACY
======================================== */

.booking-agreement{
  margin-top:2px;

  text-align:left;
}

.booking-agreement label{
  display:flex;
  align-items:flex-start;

  gap:10px;

  color:var(--ag28-muted);

  font-size:.82rem;
  line-height:1.7;

  text-align:left;

  cursor:pointer;
}

.booking-agreement input{
  flex:0 0 auto;

  width:17px;
  height:17px;

  margin-top:4px;

  accent-color:var(--ag28-green);
}


/* ========================================
   SUBMIT
======================================== */

.booking-submit-wrap{
  display:flex;
  justify-content:center;

  margin-top:12px;
}

.booking-submit{
  min-width:200px;

  padding:15px 34px;

  color:#fff;
  background:var(--ag28-green);

  border:0;
  border-radius:999px;

  font-family:var(--font-zh);
  font-size:.95rem;
  font-weight:800;

  cursor:pointer;

  transition:
    background-color .25s ease,
    transform .25s ease,
    box-shadow .25s ease;
}

.booking-submit:hover{
  background:var(--ag28-dark);

  transform:translateY(-2px);

  box-shadow:0 10px 24px rgba(90,55,147,.18);
}


/* ========================================
   THANK YOU
======================================== */

.ag28-thank-you{
  width:100%;

  padding:80px 40px;

  color:#fff;
  background:var(--ag28-dark);

  text-align:center;
}

.ag28-thank-you-inner{
  width:100%;
  max-width:900px;

  margin:0 auto;

  text-align:center;
}

.ag28-thank-you h2{
  width:100%;

  margin:0 0 28px;

  color:#fff;

  font-family:var(--font-en);
  font-size:clamp(2.4rem,4vw,3.6rem);
  font-weight:900;
  line-height:1;
  letter-spacing:.04em;

  text-align:center;
}

.ag28-thank-you p{
  width:100%;

  margin:8px auto;

  color:#fff;

  font-size:1rem;
  line-height:1.9;

  text-align:center;
}

.ag28-line-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  gap:14px;

  margin-top:28px;
  padding:14px 24px;

  color:#fff !important;
  background:var(--ag28-green);

  border-radius:999px;

  font-size:.88rem;
  font-weight:800;

  text-align:center;
  text-decoration:none !important;

  transition:
    background-color .25s ease,
    transform .25s ease;
}

.ag28-line-button:hover{
  color:#fff !important;
  background:var(--ag28-purple);

  transform:translateY(-2px);
}


/* ========================================
   FOOTER - DESKTOP
======================================== */

.footer{
  width:100%;

  margin:0;
  padding:24px 40px;

  color:#fff;
  background:var(--ag28-blue);

  font-family:var(--font-en);

  overflow:hidden;
}

.footer-inner{
  width:100%;
  max-width:1180px;
  min-height:72px;

  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;

  gap:32px;

  margin:0 auto;
  padding:0;
}

.footer-logo{
  display:flex;
  align-items:center;

  margin:0;
  padding:0;
}

.footer-logo a{
  display:flex;
  align-items:center;

  margin:0;
  padding:0;
}

.footer-logo img{
  display:block;

  width:220px;
  max-width:100%;
  height:auto;

  margin:0;
  padding:0;

  object-fit:contain;
}

.footer-copy{
  margin:0;
  padding:0;

  color:#fff;

  font-size:.92rem;
  line-height:1.5;

  text-align:center;

  white-space:nowrap;
}

.footer-social{
  display:flex;
  align-items:center;
  justify-content:flex-end;

  gap:18px;

  margin:0;
  padding:0;
}

.footer-social a{
  width:36px;
  height:36px;

  display:flex;
  align-items:center;
  justify-content:center;

  margin:0;
  padding:0;

  text-decoration:none;

  transition:
    opacity .25s ease,
    transform .25s ease;
}

.footer-social img{
  display:block;

  width:26px !important;
  height:26px !important;
  max-width:26px !important;
  max-height:26px !important;

  margin:0;
  padding:0;

  object-fit:contain;
}

.footer-social a:hover{
  opacity:.8;

  transform:translateY(-2px);
}


/* ========================================
   SMALL DESKTOP / TABLET
======================================== */

@media(max-width:1100px){

  .ag28-movement,
  .ag28-rewards,
  .ag28-pass,
  .ag28-final,
  .ag28-booking-section{
    padding-left:28px;
    padding-right:28px;
  }

  .ag28-pass-grid{
    gap:48px;
  }

  .ag28-reward-grid{
    grid-template-columns:1fr 1fr;
  }

}


/* ========================================
   MOBILE NAV
======================================== */

@media(max-width:991.98px){

  .navbar{
    min-height:92px;

    flex-wrap:wrap;
  }

  .navbar .container-fluid{
    min-height:92px;

    flex-wrap:wrap;

    padding:10px 18px;
  }

  .navbar-brand{
    flex:0 1 auto;

    max-width:calc(100% - 64px);

    margin:0;
  }

  .navbar-brand img{
    width:auto;
    max-width:76vw;
    max-height:76px;
  }

  .navbar-toggler{
    width:46px;
    height:46px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    margin-left:12px;
    padding:8px;
  }

  .navbar-toggler span{
    width:30px;
    height:3px;

    background:var(--ag28-dark);
  }

  .navbar-collapse{
    flex:0 0 100%;

    width:100%;

    margin-top:12px;
  }

  .navbar-nav{
    width:100%;

    flex-direction:column;
    align-items:stretch;

    gap:4px;

    padding:8px 0 18px;
  }

  .navbar-nav .nav-item{
    width:100%;
  }

  .navbar-nav .btn{
    width:100%;

    justify-content:flex-start;

    padding:.8rem 1rem;

    border-radius:8px;

    font-size:.95rem;

    text-align:left;
  }

}


/* ========================================
   MOBILE
======================================== */

@media(max-width:768px){

  /* ========================================
     FULL BLEED EDM IMAGES
  ======================================== */

  .ag28-page{
    width:100%;

    margin:0;
    padding:0;

    overflow:hidden;
  }

  .ag28-hero,
  .ag28-intro,
  .ag28-challenge{
    display:block;

    width:100vw;
    max-width:none;

    position:relative;
    left:50%;

    margin:0;
    padding:0;

    transform:translateX(-50%);

    border:0;
    border-radius:0;

    overflow:hidden;
  }

  .ag28-hero img,
  .ag28-intro img,
  .ag28-challenge img{
    display:block;

    width:100vw;
    max-width:none;
    height:auto;

    margin:0;
    padding:0;

    border:0;
    border-radius:0;
  }


  /* ========================================
     STANDARD CONTENT SECTIONS
  ======================================== */

  .ag28-movement,
  .ag28-rewards,
  .ag28-pass,
  .ag28-final,
  .ag28-booking-section{
    padding-left:22px;
    padding-right:22px;
  }


  /* ========================================
     SECTION
  ======================================== */

  .ag28-section-heading{
    margin-bottom:40px;
  }

  .ag28-section-heading h2{
    font-size:2rem;
  }


  /* ========================================
     REWARDS
  ======================================== */

  .ag28-rewards{
    padding-top:72px;
    padding-bottom:72px;
  }

  .ag28-reward-main{
    padding:38px 20px;

    border-radius:20px;
  }

  .ag28-reward-grid{
    grid-template-columns:1fr;

    gap:14px;
  }

  .ag28-reward-card{
    padding:28px 22px;
  }


  /* ========================================
     PASS
  ======================================== */

  .ag28-pass{
    padding-top:72px;
    padding-bottom:72px;
  }

  .ag28-pass-grid{
    display:flex;
    flex-direction:column;

    gap:38px;
  }

  .ag28-pass-copy{
    width:100%;

    text-align:left;
  }

  .ag28-pass-copy h2{
    font-size:3rem;

    text-align:left;
  }

  .ag28-pass-copy p{
    text-align:left;
  }

  .ag28-pass-image{
    width:100%;

    border-radius:20px;
  }

  .ag28-pass-image img{
    min-height:0;
    height:auto;
  }


  /* ========================================
     PASS BUTTONS
  ======================================== */

  .ag28-pass-actions{
    width:100%;

    display:flex;
    flex-direction:column;
    align-items:stretch;

    gap:12px;
  }

  .ag28-pass-actions .ag28-primary-button,
  .ag28-pass-actions .ag28-secondary-button{
    width:100%;

    margin:0;
  }


  /* ========================================
     FINAL CTA
  ======================================== */

  .ag28-final{
    padding-top:76px;
    padding-bottom:76px;
  }

  .ag28-app-download-button{
  width:auto;
  min-width:0;

  padding:10px 22px;

  font-size:.8rem;
  line-height:1.4;
}


  /* ========================================
     BOOKING
  ======================================== */

  .ag28-booking-section{
    padding-top:64px;
    padding-bottom:72px;
  }

  .booking-container{
    padding:42px 24px;

    border-radius:22px;

    text-align:left;
  }

  .booking-intro{
    width:100%;
    max-width:none;

    margin:0 auto 38px;

    text-align:center;
  }

  .booking-label,
  .booking-intro h2,
  .booking-intro p{
    width:100%;

    margin-left:auto;
    margin-right:auto;

    text-align:center;
  }

  .booking-intro h2{
    font-size:1.7rem;
  }

  .booking-intro::after{
    margin:28px auto;
  }

  .booking-form{
    grid-template-columns:1fr;

    gap:22px;

    text-align:left;
  }

  .form-group,
  .form-group-full,
  .form-group label,
  .booking-agreement,
  .booking-agreement label{
    text-align:left;
  }

  .form-group-full{
    grid-column:auto;
  }

  .form-group input:not([type="radio"]):not([type="checkbox"]),
.form-group select,
.form-group textarea{
  font-size:16px;

  text-align:left;
}

  .booking-submit-wrap{
    justify-content:center;
  }

  .booking-submit{
    width:100%;
  }


  /* ========================================
     THANK YOU
  ======================================== */

  .ag28-thank-you{
    width:100%;

    padding:60px 22px;

    text-align:center;
  }

  .ag28-thank-you-inner{
    width:100%;
    max-width:900px;

    margin:0 auto;

    text-align:center;
  }

  .ag28-thank-you h2{
    width:100%;

    margin:0 auto 24px;

    font-size:2.4rem;

    text-align:center;
  }

  .ag28-thank-you p{
    width:100%;

    margin:8px auto;

    font-size:.95rem;
    line-height:1.8;

    text-align:center;
  }

  .ag28-line-button{
    width:100%;

    margin:24px auto 0;

    justify-content:center;

    text-align:center;
  }


  /* ========================================
     MOBILE FOOTER
  ======================================== */

  footer.footer{
    width:100%;
    max-width:100%;
    min-height:0;

    margin:0;
    padding:36px 22px 40px;

    color:#fff;
    background:var(--ag28-blue);

    overflow:hidden;
  }

  footer.footer .footer-inner{
    width:100%;
    max-width:100%;
    min-height:0;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    gap:20px;

    margin:0 auto;
    padding:0;

    text-align:center;
  }

  footer.footer .footer-logo{
    width:100%;

    display:flex;
    align-items:center;
    justify-content:center;

    margin:0;
    padding:0;
  }

  footer.footer .footer-logo a{
    display:flex;
    align-items:center;
    justify-content:center;

    margin:0;
    padding:0;
  }

  footer.footer .footer-logo img{
    display:block;

    width:180px;
    max-width:70vw;
    height:auto;

    margin:0 auto;
    padding:0;

    object-fit:contain;
  }

  footer.footer .footer-copy{
    display:block;

    width:100%;
    max-width:100%;

    margin:0;
    padding:0;

    color:#fff;

    font-size:.78rem;
    line-height:1.6;

    text-align:center;

    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  footer.footer .footer-social{
    width:100%;

    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:center;

    gap:22px;

    margin:0;
    padding:0;
  }

  footer.footer .footer-social a{
    flex:0 0 36px;

    width:36px;
    height:36px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin:0;
    padding:0;
  }

  footer.footer .footer-social img{
    display:block;

    width:26px !important;
    height:26px !important;
    max-width:26px !important;
    max-height:26px !important;

    margin:0;
    padding:0;

    object-fit:contain;
  }

}


/* ========================================
   VERY SMALL MOBILE
======================================== */

@media(max-width:420px){

  .ag28-movement,
  .ag28-rewards,
  .ag28-pass,
  .ag28-final,
  .ag28-booking-section{
    padding-left:18px;
    padding-right:18px;
  }

  .ag28-pass-copy h2{
    font-size:2.7rem;
  }

  .ag28-price strong{
    font-size:3rem;
  }

  .ag28-app-download-button{
  padding:9px 20px;
  font-size:.78rem;
}

  .booking-container{
    padding:36px 18px;
  }

  .ag28-thank-you{
    padding:54px 18px;
  }

  .ag28-thank-you h2{
    font-size:2.2rem;
  }

  footer.footer{
    padding:32px 18px 36px;
  }

  footer.footer .footer-logo img{
    width:165px;
  }

  footer.footer .footer-copy{
    font-size:.75rem;
  }

}