/* Rally / The Inside Line. Staging newsletter UX v3.
   A minimal modal and a quiet animated bottom-edge fallback after dismissal.
   CSS is isolated: no old marquee or left-hand floating-tab styles. */
:root{--rnl-forest:#103c32;--rnl-deep:#0c3029;--rnl-green:#245c4d;--rnl-sage:#b5cabb;--rnl-cream:#fbf8f0;--rnl-ink:#173c32;--rnl-line:#e2e3d9;--rnl-tan:#ab8863}
#rally-newsletter-dialog, .rallyNewsletterBottom, .rallyNewsletterBottom *{box-sizing:border-box}
#rally-newsletter-dialog{box-sizing:border-box}
#rally-newsletter-dialog[open]{display:block}
#rally-newsletter-dialog{
  inset:0;margin:auto;position:fixed;z-index:1400;
  width:min(490px,calc(100vw - 32px));max-width:calc(100vw - 32px);
  max-height:calc(100dvh - 24px);overflow-y:auto;
  padding:0;border:1px solid rgba(16,60,50,.15);border-radius:19px;
  background:var(--rnl-cream);color:var(--rnl-ink);
  box-shadow:0 22px 85px rgba(1,25,18,.27);
  font-family:"DM Sans",Arial,sans-serif;
  animation:rnl-pop-in .3s cubic-bezier(.2,.75,.2,1) both
}
#rally-newsletter-dialog::backdrop{background:rgba(2,20,15,.62);backdrop-filter:blur(3px)}
@keyframes rnl-pop-in{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.rnlTopLine{height:5px;background:linear-gradient(90deg,#0e4034 0%,#4d8069 62%,#b7ceb5 100%)}
.rnlModalHeader{display:flex;align-items:center;justify-content:space-between;padding:22px 28px 0;gap:14px}
.rnlOverline{color:#907253;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.rnlClose{border:1px solid #deded5;border-radius:50%;display:grid;place-items:center;flex:none;width:37px;height:37px;background:transparent;color:#39544a;cursor:pointer;transition:background .18s ease}
.rnlClose:hover{background:#eef1e9}
.rnlClose:focus-visible,.rnlButton:focus-visible,.rnlBottomDismiss:focus-visible,.rnlFormButton:focus-visible{outline:3px solid #a1bba7;outline-offset:3px}
.rnlContent{padding:20px 34px 33px}
.rnlSmallRule{display:block;width:42px;height:2px;background:#b4c9b6;margin:0 0 23px}
.rnlHeading{font:500 clamp(37px,5vw,48px)/1.04 "Playfair Display",Georgia,serif;letter-spacing:-.045em;margin:0 0 13px;color:var(--rnl-deep)}
.rnlHeading em{font-weight:500;font-style:italic;color:#658b70}
.rnlIntro{color:#5c6c63;font-size:14px;line-height:1.65;max-width:390px;margin:0 0 25px}
.rnlForm{display:block;margin:0;color:var(--rnl-ink)}
.rnlLabel{display:block;color:#304c40;font-size:12px;font-weight:700;margin:0 0 8px}
.rnlForm input[type=email]{width:100%;min-width:0;min-height:51px;border:1px solid #cbd2c9;border-radius:9px;padding:12px 15px;background:#fff;color:var(--rnl-deep);font:500 16px/1.3 "DM Sans",Arial,sans-serif;outline:none}
.rnlForm input[type=email]:focus{border-color:#386d55;box-shadow:0 0 0 3px rgba(68,113,86,.15)}
.rnlForm input::placeholder{color:#8b9990}
.rnlFormButton{width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:51px;padding:6px 8px 6px 18px;margin:11px 0 0;border:1px solid var(--rnl-deep);border-radius:9px;background:var(--rnl-deep);color:#fff;font:700 13px/1.3 "DM Sans",Arial,sans-serif;cursor:pointer;transition:background .2s ease}
.rnlFormButton:hover{background:#265749}
.rnlFormButton:disabled{opacity:.6;cursor:wait}
.rnlFormButtonIcon{width:35px;height:35px;flex:none;border-radius:6px;display:grid;place-items:center;color:#163e32;background:#d6e5d5}
.rnlFormButtonIcon svg{display:block}
.rnlConsent{display:flex;align-items:flex-start;gap:10px;color:#54685b;margin:18px 0 0;font-size:12px;line-height:1.5;cursor:pointer}
.rnlConsent input{flex:none;width:17px;height:17px;accent-color:#205344;margin:1px 0 0}
.rnlDisclosure{margin:9px 0 0 27px;color:#768177;font-size:11px;line-height:1.5}
.rnlDisclosure a{color:var(--rnl-deep);text-underline-offset:3px}
.rnlStatus{margin:15px 0 0;padding:13px 15px;border-left:3px solid #557d60;background:#e8f1e9;color:#244d32;font-size:12px;line-height:1.55}
.rnlStatus[data-state=error]{border-left-color:#bd7045;background:#faf0e8;color:#88482d}
.rnlStatus[hidden],.rallyNewsletterBottom[hidden]{display:none!important}
.rnlHoneypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}
/* Calm animated newsletter section in the page flow, directly above each
   marketing page footer. Nothing is sticky or fixed. */
.rallyNewsletterBottom{
  display:block;position:relative;width:100%;margin:0;padding:0;
  background:linear-gradient(115deg,#123c32 0%,#235545 57%,#143d34 100%);
  color:#fffaf0;border-top:1px solid rgba(201,222,204,.22);
  font-family:"DM Sans",Arial,sans-serif;
  isolation:isolate;overflow:hidden;
}
.rallyNewsletterBottom:before{
  content:"";pointer-events:none;position:absolute;inset:0;z-index:-1;
  background:repeating-linear-gradient(110deg,transparent 0 125px,rgba(223,235,220,.085) 126px,transparent 127px);
  background-size:500px 100%;animation:rnl-court-drift 32s linear infinite
}
.rallyNewsletterBottom:after{
  content:"";position:absolute;pointer-events:none;left:0;top:0;height:2px;width:20%;
  background:linear-gradient(90deg,transparent,#b9d4bc,transparent);
  animation:rnl-line-glide 22s linear infinite
}
@keyframes rnl-court-drift{from{background-position:0 0}to{background-position:500px 0}}
@keyframes rnl-line-glide{from{transform:translateX(-100%)}to{transform:translateX(600%)}}
.rnlBottomInner{display:flex;align-items:center;justify-content:space-between;gap:44px;width:min(1130px,calc(100% - 48px));min-height:150px;margin:auto;padding:31px 0}
.rnlBottomCopy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:9px;flex:1;min-width:0}
.rnlBottomCopy strong{font:500 clamp(31px,3.1vw,42px)/1.08 "Playfair Display",Georgia,serif;white-space:nowrap;letter-spacing:-.035em}
.rnlBottomCopy>span:not(.rnlBottomOverline){font:400 13px/1.6 "DM Sans",Arial,sans-serif;color:#d4e5da}
.rnlBottomOverline{font:800 10px/1.2 "DM Sans",Arial,sans-serif!important;color:#b5d2bf!important;letter-spacing:.16em;text-transform:uppercase}
.rnlButton{display:flex;align-items:center;justify-content:space-between;gap:24px;flex:none;min-height:49px;padding:0 19px;border:1px solid #f3efe4;border-radius:6px;background:#faf7ee;color:#0e392e;white-space:nowrap;font:800 12px/1.2 "DM Sans",Arial,sans-serif;cursor:pointer;transition:background .2s ease,transform .2s ease}
.rnlButton:hover{background:#e3ecdf;transform:translateY(-1px)}
@media(max-width:740px){
  #rally-newsletter-dialog{width:min(470px,calc(100vw - 20px));max-height:calc(100dvh - 20px);border-radius:15px}
  .rnlModalHeader{padding:16px 20px 0}
  .rnlContent{padding:16px 22px 25px}
  .rnlHeading{font-size:37px}
  .rnlIntro{font-size:13px;margin-bottom:20px}
  .rnlBottomInner{width:calc(100% - 36px);min-height:0;gap:18px;flex-direction:column;align-items:stretch;padding:29px 0 32px}
  .rnlBottomCopy{align-items:flex-start;justify-content:flex-start;gap:8px}
  .rnlBottomCopy strong{font-size:34px}
  .rnlBottomCopy>span:not(.rnlBottomOverline){font-size:12px;line-height:1.5}
  .rnlButton{width:100%;min-height:46px;padding:0 15px;font-size:11px}
}
@media(max-width:390px){
  .rnlBottomCopy strong{font-size:32px}
  .rnlButton{padding:0 13px}
}
@media(prefers-reduced-motion:reduce){
  #rally-newsletter-dialog,.rallyNewsletterBottom:before,.rallyNewsletterBottom:after{animation:none}
  .rnlButton{transition:none}.rnlButton:hover{transform:none}
}


/* Unified footer: the newsletter is actually a child of the page footer.
   A small identity row follows the animated signup/contact composition. */
body footer.rallyMarketingFooter{
  display:block!important;position:relative!important;
  margin:0!important;padding:0!important;border:0!important;
  background:#153f34!important;color:#f7f8ee!important;
  font-family:"DM Sans",Arial,sans-serif
}
body footer.rallyMarketingFooter .rallyNewsletterBottom{
  position:relative;display:block;width:100%;margin:0;padding:0;
  background:linear-gradient(110deg,#153f34 0%,#245446 55%,#153e34 100%);
  border:0!important;box-shadow:none!important;overflow:hidden
}
body footer.rallyMarketingFooter .rnlBottomInner{
  display:grid;grid-template-columns:minmax(0,1fr) auto minmax(260px,300px);
  align-items:center;gap:clamp(18px,3vw,46px);
  width:min(1180px,calc(100% - 56px));min-height:0;
  padding:28px 0;margin:0 auto
}
body footer.rallyMarketingFooter .rnlBottomCopy{gap:7px}
body footer.rallyMarketingFooter .rnlBottomCopy strong{
  font-size:clamp(30px,3vw,40px);letter-spacing:-.035em;line-height:1.08
}
body footer.rallyMarketingFooter .rnlBottomCopy>span:not(.rnlBottomOverline){
  font-size:12px;line-height:1.55
}
body footer.rallyMarketingFooter .rnlButton{
  display:flex;justify-content:space-between;min-height:47px;
  padding:0 17px;border-radius:6px;background:#f9f7ed;color:#12392e
}
body footer.rallyMarketingFooter .rnlButton:hover{background:#e5efe2}
.rnlContactBlock{
  display:flex;flex-direction:column;align-items:flex-start;gap:7px;
  padding-left:22px;border-left:1px solid rgba(216,234,218,.27)
}
.rnlContactEyebrow{
  display:block;margin:0 0 3px;color:#bdd6c2;
  font:800 9px/1.3 "DM Sans",Arial,sans-serif;letter-spacing:.16em
}
.rnlContactLink{
  display:flex;align-items:center;gap:10px;max-width:100%;min-height:36px;
  padding:0;text-decoration:none!important;color:#f8f8ef!important;
  transition:color .2s ease
}
.rnlContactLink:hover{color:#d0e5cf!important}
.rnlContactLink:focus-visible{outline:2px solid #e8f0df;outline-offset:4px}
.rnlContactIcon{
  flex:0 0 32px;display:grid;place-items:center;width:32px;height:32px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(201,231,206,.5);border-radius:6px;
  color:#e3f0e0
}
.rnlContactIcon svg{display:block;width:19px;height:19px}
.rnlContactType{display:flex;flex-direction:column;gap:2px;min-width:0;text-align:left}
.rnlContactType small{
  font:800 8px/1.2 "DM Sans",Arial,sans-serif;letter-spacing:.13em;
  color:#bad5c1
}
.rnlContactType strong{
  font:650 11px/1.4 "DM Sans",Arial,sans-serif;
  color:inherit;overflow-wrap:anywhere;letter-spacing:0
}
body footer.rallyMarketingFooter .rallyFooterBottom{
  display:flex;align-items:center;justify-content:space-between;gap:22px;
  width:min(1180px,calc(100% - 56px));min-height:70px;
  margin:0 auto;padding:15px 0;border-top:1px solid rgba(220,239,220,.22);
  background:transparent;color:#f6f8ee
}
body footer.rallyMarketingFooter .rallyFooterBottom .rallyBrand{
  display:inline-flex;flex-direction:column;align-items:center;gap:2px;
  margin:0;text-decoration:none;color:#f6f8ee
}
body footer.rallyMarketingFooter .rallyFooterBottom .rallyBrandName{
  font-size:21px;line-height:1
}
body footer.rallyMarketingFooter .rallyFooterBottom .rallyBrandTagline{
  font-size:7px;letter-spacing:.22em
}
.rallyFooterMeta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;
  gap:8px 22px;color:#c0d2c6;
  font:500 10px/1.5 "DM Sans",Arial,sans-serif
}
/* The Phuket footer already owns its own back-to-top element. */
body footer.rallyMarketingFooter .backToTopDock{
  position:absolute;left:auto;right:14px;bottom:10px;transform:none;
  width:44px!important;min-width:44px!important;max-width:44px!important;
  margin:0;padding:0
}
body footer.rallyMarketingFooter:has(.backToTopDock) .rallyFooterBottom{padding-right:62px}
@media(max-width:1050px){
  body footer.rallyMarketingFooter .rnlBottomInner{
    grid-template-columns:minmax(0,1fr) auto;gap:18px 25px
  }
  .rnlContactBlock{
    grid-column:1/-1;flex-direction:row;align-items:center;
    flex-wrap:wrap;gap:12px 22px;padding:12px 0 0;
    border-left:0;border-top:1px solid rgba(220,239,220,.23)
  }
  .rnlContactEyebrow{margin:0}
}
@media(max-width:700px){
  body footer.rallyMarketingFooter .rnlBottomInner{
    display:flex;flex-direction:column;align-items:stretch;gap:17px;
    width:calc(100% - 40px);padding:23px 0 25px
  }
  body footer.rallyMarketingFooter .rnlBottomCopy{gap:6px}
  body footer.rallyMarketingFooter .rnlBottomCopy strong{font-size:33px}
  body footer.rallyMarketingFooter .rnlButton{
    width:100%;min-height:44px
  }
  .rnlContactBlock{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px 8px;padding:14px 0 0
  }
  .rnlContactEyebrow{grid-column:1/-1}
  .rnlContactLink{gap:7px;min-width:0}
  .rnlContactIcon{flex-basis:30px;width:30px;height:30px}
  .rnlContactType strong{font-size:10px}
  body footer.rallyMarketingFooter .rallyFooterBottom{
    width:calc(100% - 40px);min-height:0;
    align-items:flex-start;gap:14px;padding:16px 0 21px
  }
  .rallyFooterMeta{
    flex-direction:column;align-items:flex-end;
    gap:4px;text-align:right;font-size:9px
  }
}
@media(max-width:480px){
  .rnlContactBlock{grid-template-columns:minmax(0,1fr);gap:7px}
  .rnlContactEyebrow{margin-bottom:4px}
  .rnlContactLink{min-height:36px}
}
@media(prefers-reduced-motion:reduce){.rnlContactLink{transition:none}}

/* Legal and cookie choices are still separate, accessible sitewide controls,
   but should not add another two oversized bands beneath the unified footer. */
body:has(footer.rallyMarketingFooter) .rallyPolicyLinks{
  display:flex;align-items:center;justify-content:center;gap:8px 22px;
  padding:10px 18px;min-height:48px
}
body:has(footer.rallyMarketingFooter) .rallyPolicyLinks span{
  display:inline;width:auto;text-align:left;margin:0
}
body:has(footer.rallyMarketingFooter) .rally-cookie-footer{
  display:flex;align-items:center;justify-content:center;
  gap:8px 22px;padding:8px 18px;min-height:42px
}
body footer.rallyMarketingFooter .rallyFooterMeta a{
  color:inherit;text-decoration:underline;text-underline-offset:3px
}
@media(max-width:700px){
  body:has(footer.rallyMarketingFooter) .rallyPolicyLinks{
    gap:2px 14px;padding:8px 13px
  }
  body:has(footer.rallyMarketingFooter) .rallyPolicyLinks a,
  body:has(footer.rallyMarketingFooter) .rally-cookie-footer a{
    display:inline-flex;align-items:center;min-height:38px
  }
  body:has(footer.rallyMarketingFooter) .rallyPolicyLinks span{
    width:100%;text-align:center
  }
  body:has(footer.rallyMarketingFooter) .rally-cookie-footer{
    gap:3px 20px;padding:5px 13px
  }
}


/* Footer refinements — a recognisable full-colour Instagram mark and a
   confidently contrasted tennis-sage newsletter invitation. */
body footer.rallyMarketingFooter .rnlButton{
  justify-content:space-between;
  gap:15px;
  min-height:55px;
  padding:7px 8px 7px 19px;
  border:1px solid #ecf6c5;
  border-radius:7px;
  background:#dff0a8;
  color:#113b30;
  box-shadow:0 4px 0 #092b23,0 9px 22px rgba(0,20,12,.18);
  font:800 12px/1.25 "DM Sans",Arial,sans-serif;
  letter-spacing:.02em;
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
body footer.rallyMarketingFooter .rnlButton:hover{
  background:#edf8c7;
  transform:translateY(-2px);
  box-shadow:0 6px 0 #092b23,0 12px 24px rgba(0,20,12,.2)
}
body footer.rallyMarketingFooter .rnlButton:active{
  transform:translateY(2px);box-shadow:0 2px 0 #092b23
}
body footer.rallyMarketingFooter .rnlButton:focus-visible{
  outline:3px solid #fff9e7;outline-offset:5px
}
.rnlButtonLabel{display:inline-block;white-space:nowrap}
.rnlButtonArrow{
  display:grid;place-items:center;flex:0 0 37px;
  width:37px;height:37px;border-radius:5px;
  background:#153d32;color:#fffdf2;
}
.rnlButtonArrow svg{display:block;transition:transform .18s ease}
body footer.rallyMarketingFooter .rnlButton:hover .rnlButtonArrow svg{
  transform:translateX(2px)
}
/* Shared, understated contact icon treatment: same size, line weight and frame. */
body footer.rallyMarketingFooter .rnlContactIcon{
  display:grid;place-items:center;flex:0 0 36px;
  width:36px;height:36px;padding:0;
  border:1px solid rgba(231,241,230,.48);border-radius:50%;
  background:transparent;color:#f7f2e8;box-shadow:none;
}
body footer.rallyMarketingFooter .rnlContactIcon svg{
  display:block;flex:none;width:20px;height:20px;
}
body footer.rallyMarketingFooter .rnlContactLink{
  gap:11px;min-height:44px;
}
@media(max-width:700px){
  body footer.rallyMarketingFooter .rnlButton{
    width:100%;min-height:54px;padding:7px 8px 7px 16px;
    font-size:12px;
  }
  .rnlButtonArrow{flex-basis:36px;width:36px;height:36px}
}
@media(prefers-reduced-motion:reduce){
  body footer.rallyMarketingFooter .rnlButton,
  .rnlButtonArrow svg{transition:none}
  body footer.rallyMarketingFooter .rnlButton:hover,
  body footer.rallyMarketingFooter .rnlButton:active{transform:none}
  body footer.rallyMarketingFooter .rnlButton:hover .rnlButtonArrow svg{transform:none}
}


/* Final footer refinement: keep only the animated newsletter + contact options
   in forest green. Put identity and small print at the actual end of the page,
   beneath legal and cookie links, in one short pale endcap. */
body footer.rallyMarketingFooter .rnlBottomInner{
  min-height:0;
  padding-top:18px;
  padding-bottom:19px;
}
body footer.rallyMarketingFooter .rnlBottomCopy{gap:5px}
body footer.rallyMarketingFooter .rnlBottomCopy strong{font-size:clamp(29px,3vw,38px)}
body footer.rallyMarketingFooter .rnlContactBlock{gap:6px}
.rallySiteEndcap{
  position:relative;
  width:100%;
  background:#f5f0e5;
  color:#173b30;
  border-top:1px solid #d8ded3;
  font-family:"DM Sans",Arial,sans-serif;
}
.rallySiteEndcap .rallyFooterBottom{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  width:min(1180px,calc(100% - 56px));
  min-height:56px;margin:0 auto;padding:11px 0;
  background:transparent;
}
.rallySiteEndcap .rallyBrand{
  display:inline-flex;flex-direction:column;align-items:center;
  gap:3px;color:#173b30;text-decoration:none;
}
.rallySiteEndcap .rallyBrandName{
  font-size:18px;line-height:1
}
.rallySiteEndcap .rallyBrandTagline{
  font-size:6px;letter-spacing:.22em
}
.rallySiteEndcap .rallyFooterMeta{
  display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;
  gap:4px 17px;margin:0;
  color:#617568;font-size:10px;line-height:1.5
}
.rallySiteEndcap .rallyFooterMeta a{
  color:#254e40;text-decoration:underline;text-underline-offset:3px
}
.rallySiteEndcap .backToTopDock{
  position:absolute!important;top:50%;right:14px;bottom:auto!important;
  left:auto!important;transform:translateY(-50%)!important;
  display:flex;justify-content:center;
  width:44px!important;min-width:44px!important;max-width:44px!important;
  margin:0!important;padding:0!important
}
.rallySiteEndcap:has(.backToTopDock) .rallyFooterBottom{
  padding-right:60px
}
@media(max-width:1050px){
  body footer.rallyMarketingFooter .rnlContactBlock{gap:9px 20px}
}
@media(max-width:700px){
  body footer.rallyMarketingFooter .rnlBottomInner{
    padding-top:18px;padding-bottom:19px;gap:12px
  }
  body footer.rallyMarketingFooter .rnlContactBlock{
    padding-top:11px;gap:9px 8px
  }
  .rallySiteEndcap .rallyFooterBottom{
    width:calc(100% - 36px);min-height:57px;padding:9px 0;gap:14px
  }
  .rallySiteEndcap .rallyBrandName{font-size:17px}
  .rallySiteEndcap .rallyFooterMeta{
    flex-direction:column;align-items:flex-end;gap:3px;
    font-size:9px;text-align:right
  }
}
@media(max-width:480px){
  .rallySiteEndcap .rallyFooterMeta{font-size:8px}
  .rallySiteEndcap:has(.backToTopDock) .rallyFooterBottom{
    padding-right:45px
  }
  .rallySiteEndcap .backToTopDock{right:4px}
}


/* One compact legal/consent row: Cookie policy and Cookie settings are no longer
   a separate footer band. On mobile links wrap, retaining touch targets. */
body:has(footer.rallyMarketingFooter) .rallyPolicyLinks{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:3px 22px;padding:8px 20px;
  min-height:48px;margin:0;
  background:#f5f0e5;color:#153e31;
  border-bottom:0;
}
body:has(footer.rallyMarketingFooter) .rallyPolicyLinks a{
  display:inline-flex;align-items:center;
  min-height:34px;white-space:nowrap;
  color:#153e31;text-decoration:underline;text-underline-offset:3px;
  font-size:11px;line-height:1.45;
}
body:has(footer.rallyMarketingFooter) .rallyPolicyLinks span{
  display:inline;width:auto;margin:0;
  color:#66736a;text-align:left;
  font-size:10px;line-height:1.45;
}
@media(max-width:700px){
  body:has(footer.rallyMarketingFooter) .rallyPolicyLinks{
    gap:1px 16px;padding:8px 14px 10px;
  }
  body:has(footer.rallyMarketingFooter) .rallyPolicyLinks a{
    min-height:44px;font-size:11px;
  }
  body:has(footer.rallyMarketingFooter) .rallyPolicyLinks span{
    flex-basis:100%;text-align:center;font-size:9px;
  }
}


/* Direct newsletter signup — calm editorial footer inspired by the reference.
   One visible form replaces the Join button; no additional page-height banner. */
.rnlVisuallyHidden{
  position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;
  clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important
}
.rnlInlineForm[hidden],.rnlInlineSubscribed[hidden],.rnlInlineStatus[hidden]{display:none!important}
body footer.rallyMarketingFooter .rnlBottomInner{
  display:flex;flex-direction:column;align-items:stretch;
  gap:16px;width:min(1400px,calc(100% - 70px));
  min-height:0;padding:22px 0 15px
}
.rnlFooterSignupRow{
  display:grid;grid-template-columns:minmax(215px,300px) minmax(0,1fr);
  align-items:center;gap:26px;width:100%;
}
body footer.rallyMarketingFooter .rnlBottomCopy{
  display:flex;align-items:flex-start;gap:6px;min-width:0
}
body footer.rallyMarketingFooter .rnlBottomCopy strong{
  font-size:clamp(27px,2.5vw,37px);line-height:1.12;white-space:normal
}
body footer.rallyMarketingFooter .rnlBottomCopy>span:not(.rnlBottomOverline){
  font-size:11px;line-height:1.5;max-width:285px
}
.rnlInlineForm{position:relative;display:block;min-width:0;color:#f1f5e9}
.rnlInlineFields{
  display:grid;grid-template-columns:minmax(135px,1fr) minmax(220px,1.45fr) minmax(135px,165px);
  align-items:stretch;gap:9px;width:100%;min-width:0
}
.rnlInlineFields input{
  display:block;width:100%;min-width:0;min-height:50px;
  padding:12px 14px;border:1px solid #f4f0e6;border-radius:3px;
  background:#fffdfa;color:#123c32;
  font:500 14px/1.4 "DM Sans",Arial,sans-serif;box-shadow:none
}
.rnlInlineFields input::placeholder{color:#78857e;opacity:1}
.rnlInlineFields input:focus{
  outline:3px solid #b9d6ac;outline-offset:2px
}
.rnlInlineSubmit{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;min-width:0;min-height:50px;padding:10px 15px;
  border:1px solid #f3f4e9;border-radius:3px;
  background:transparent;color:#f6f7ee;cursor:pointer;
  font:800 11px/1.3 "DM Sans",Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.1em;
  transition:background .2s ease,color .2s ease
}
.rnlInlineSubmit:hover{background:#e7efd8;color:#113b30}
.rnlInlineSubmit:focus-visible{outline:3px solid #e4f1ce;outline-offset:3px}
.rnlInlineSubmit:disabled{opacity:.6;cursor:wait}
.rnlInlineSubmit span[aria-hidden]{font-size:17px;letter-spacing:0}
.rnlInlineLegal{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:5px 18px;padding-top:9px;
  font:400 10px/1.5 "DM Sans",Arial,sans-serif;color:#caddd0
}
.rnlInlineConsent{display:flex;align-items:center;gap:9px;cursor:pointer}
.rnlInlineConsent input{
  flex:none;width:17px;height:17px;margin:0;
  accent-color:#dff0a8;cursor:pointer
}
.rnlInlinePrivacy a{color:#ecf6e9;text-underline-offset:3px}
.rnlInlineStatus{
  margin:8px 0 0;padding:9px 11px;border-left:3px solid #c2ddb9;
  background:rgba(245,255,239,.11);color:#fbfcf4;
  font:500 11px/1.5 "DM Sans",Arial,sans-serif
}
.rnlInlineStatus[data-state="error"]{
  background:rgba(255,232,219,.17);border-left-color:#f4b58a
}
.rnlInlineSubscribed{
  margin:0;padding:15px 20px;border:1px solid #c3dabb;border-radius:5px;
  color:#f5f8ec;font:600 14px/1.5 "DM Sans",Arial,sans-serif
}
.rnlFooterContactRow{
  display:flex;align-items:center;justify-content:flex-end;
  min-width:0;padding-top:13px;
  border-top:1px solid rgba(208,228,210,.25)
}
body footer.rallyMarketingFooter .rnlFooterContactRow .rnlContactBlock{
  display:flex;flex-direction:row;align-items:center;justify-content:flex-end;
  flex-wrap:wrap;gap:9px 25px;
  grid-column:auto;
  padding:0;border:0
}
.rnlFooterContactRow .rnlContactEyebrow{margin:0 2px 0 0}
.rnlFooterContactRow .rnlContactLink{flex:none;min-height:40px}
.rnlFooterContactRow .rnlContactType strong{font-size:11px}
@media(max-width:1120px){
  .rnlFooterSignupRow{grid-template-columns:minmax(175px,230px) minmax(0,1fr);gap:18px}
  .rnlInlineFields{grid-template-columns:minmax(110px,1fr) minmax(170px,1.3fr) minmax(116px,135px)}
  .rnlInlineFields input{font-size:13px;padding-inline:11px}
}
@media(max-width:950px){
  body footer.rallyMarketingFooter .rnlBottomInner{width:calc(100% - 46px);gap:16px}
  .rnlFooterSignupRow{display:flex;flex-direction:column;align-items:stretch;gap:15px}
  body footer.rallyMarketingFooter .rnlBottomCopy>span:not(.rnlBottomOverline){max-width:none}
  .rnlInlineFields{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) minmax(118px,145px)}
}
@media(max-width:650px){
  body footer.rallyMarketingFooter .rnlBottomInner{width:calc(100% - 36px);padding:20px 0 14px;gap:15px}
  body footer.rallyMarketingFooter .rnlBottomCopy strong{font-size:32px}
  .rnlFooterSignupRow{gap:13px}
  .rnlInlineFields{grid-template-columns:minmax(0,1fr);gap:9px}
  .rnlInlineFields input,.rnlInlineSubmit{min-height:47px}
  .rnlInlineLegal{justify-content:flex-start;align-items:flex-start;flex-direction:column;gap:7px}
  .rnlInlineConsent{align-items:flex-start}
  .rnlFooterContactRow{justify-content:flex-start;padding-top:12px}
  body footer.rallyMarketingFooter .rnlFooterContactRow .rnlContactBlock{
    display:flex;flex-direction:column;align-items:flex-start;
    gap:8px;width:100%
  }
  .rnlFooterContactRow .rnlContactEyebrow{font-size:9px}
  .rnlFooterContactRow .rnlContactLink{max-width:100%}
}
@media(prefers-reduced-motion:reduce){
  .rnlInlineSubmit{transition:none}
}

