/* CSS Reset
----------------------------------------------------------------------------------------------------*/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, blockquote, figure
{ margin: 0; padding: 0; border: 0; font-size: 100%; list-style:none }
div, ul, a, select, input, li { box-sizing: border-box; }

* {
  font-size: 16px;
  font-family: "Montserrat", sans-serif;
  line-height: 1.4;
  --black: #111111;
  --red: #EE1F27; /*primary*/
  --dark-red: #CC181F; /*use for hover*/
  --green: #0C9441;
  --light-green: #F0F4EC;
  --body-color: #555555;
  --grey: #CCCCCC;
  --off-white: #F6F6F6;
  --white: #FFF;
  --dark: #1B1B1B; /*footer-bg*/
}

/* font */
h1, h2, .highlight {font-weight: 800; text-transform: uppercase; line-height: 1.1;}
h1 {font-size: 40px;}
h2, .title-text, #aboutpage h1, .privacy h1, .menu-title, #franchisepage h1 {font-size: 27px;}
.card h2 {font-weight: 700;}
h3, .rewards-content-left span {font-size: 26px; text-transform: uppercase; line-height: 1.2;}
h4, .box-price, .rewards-content-left span, .rewards-content-right em, .menu-name, .privacy h2 {font-size: 24px;}
h5, #aboutpage h2, .item-name, .privacy h3 {font-size: 20px;}
p {font-size: 15px;}
strong {color: var(--red); font-weight: 800; text-transform: uppercase;}
.green-text {color: var(--green);}
a {text-decoration: none; cursor: pointer;}
.link-underline {text-decoration: underline;}
.link-underline:hover, footer a:hover {opacity: 0.8;}
.icon-text {display: flex; align-items: center; gap:10px;}

@media screen and (min-width: 1000px) {
  h1 {font-size: 70px;}
  h2, .title-text, #aboutpage h1, .card .highlight, .privacy h1, body:has(.menu) h1, #franchisepage, #franchisepage h1 {font-size: 50px;}
  h3 {font-size: 40px;}
  h4, .box-price, .rewards-content-left span, .rewards-content-right em, .menu-name {font-size: 35px;}
  h5, #aboutpage h2 {font-size: 24px;}
  p {font-size: 17px;}
}

/* skiplink */
.skip-link {background: var(--white); box-shadow: 0 2px 4px rgba(0,0,0,0.2); font-size: .9em; padding: 5px 15px; position: fixed; top: 0px; left: 10px; transition: transform .2s ease-out; transform: translateY(-200%); z-index: 9999; border-radius: 0 0 10px 10px; color: var(--black);}
.skip-link:focus { transform: translateY(0); }

/* button */  
.btn, .stroke-btn {background: var(--red); color: var(--white); border: 1px solid var(--red); font-size: 15px; font-weight: 700; padding: 12px 25px; line-height: 1; cursor: pointer; transition: all 250ms ease; border-radius: 10px; display: flex; align-items: center; justify-content: center; width: fit-content;}
.btn:hover {background: var(--dark-red); color: var(--white); border: 1px solid var(--dark-red);} 
.stroke-btn {background: var(--white); color: var(--black); border: 1px solid var(--black);}
.stroke-btn:hover {background: var(--black); color: var(--white);}

/* container */
.content {max-width: 1300px; width: calc(100% - 40px); margin:0 auto}
.main {padding: 180px 0px 50px}
.main:has(.menu) {padding: 290px 0px 50px;}
body {position: relative;}

@media (min-width: 1000px) {
  .content {width: calc(100% - 100px);}
  .main:has(.menu) {padding: 350px 0px 50px}
}

/* ==========
Header
========== */
header {position: fixed; width: 100%; inset: 0; background: white; height: fit-content; z-index: 10;}
body.scroll header {border-bottom: 1px solid #eee; box-shadow: 0 0 30px -10px rgba(2,0,30,.2);}
nav {display: flex; justify-content: space-between; align-items: center; margin: 0 auto; padding: 10px 20px;}
nav .logo img {width: 140px; transition: all 400ms ease;} 
body.scroll nav .logo img {width: 85px;}
.nav-list, .nav-list ul {display: flex; flex-direction: row; gap:24px; align-items: center;}
.nav-list li a{color: var(--black); font-weight: 700; font-size: 15px;}
.nav-list li a:hover {color: var(--red);}
.nav-list ul {display: none;}
.nav-list ul.show {display: flex; flex-direction: column; background-color: var(--white); position: fixed; height: 100dvh; width: 100%; top: 0; left: 0; padding: 80px 40px 20px; align-items: start;}
.nav-list ul li a.active {color: var(--red);}
#nav-toggle {z-index: 10;}

@media screen and (min-width: 900px) {
  #nav-toggle {display: none;}
  .nav-list ul {display: flex;}
  nav {padding: 10px 50px;}
}

/* ==========
footer
========== */
footer {background: var(--dark); padding:75px 20px 40px}
footer span, footer a {color: var(--white); font-size: 17px;}
footer .logo img {max-width: 200px;}
footer ul {width: 100%; display: flex; flex-direction: column; gap: 40px; align-items: center; text-align: center;}
footer li:not(#social) a {display: block; margin-bottom: 12px;}
.footer-head {font-size: 20px; font-weight: 700; margin-bottom: 24px; display: block;}
.fa-brands {font-size: 24px;}
.social-link {display: flex; gap:28px; justify-content: center;}
/* credit */
#credit {margin: 60px auto 0; width: fit-content; display: block; font-size: 15px; text-align: center;}
#brygid {margin-left: 4px !important;}
#credit a {font-size: 15px; margin-left: 15px; display: inline-block;}

@media screen and (min-width: 900px) {
  footer ul {flex-direction: row; justify-content: space-between; gap:10px; align-items: start; text-align: left;}
}

/* ==========
homepage
========== */
#homepage section {margin-bottom: 40px;}
/* hero */
#hero {text-align: center; }
#hero p {max-width: 700px; margin: 20px auto 35px}
#hero img {width: 100%;}
/* deal */
.deals-wrap {display: grid; grid-template-columns: 1fr; gap: 32px;}
.deals-box {position: relative; height: 350px; border-radius: 28px; padding:30px 24px; background-color: var(--off-white); z-index: 1;}
.deals-box picture {position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1;}
.deals-box picture img {width: 100%; height: 100%; object-fit: cover; border-radius: 28px;}
.deals-box-content {z-index: 5; height: 100%; justify-content: space-between; display: flex; flex-direction: column;}
.deals-box-content p {color: var(--body-color); max-width: 230px;}
#app-box a img {max-width: 120px;}
.download-app {display: flex; gap:8px}
/* rewards */
#rewards {background-image: url("../images/intro/rewards-bg.jpg"); background-size: cover; background-position: center;  background-repeat: no-repeat; height: 350px;}
.gift {background-color: var(--red); height: 64px; width: 64px; border-radius: 50%; font-size: 28px !important; color: var(--white); display: flex !important; align-items: center; justify-content: center; margin-bottom: 10px;}
.rewards-wrap {justify-content: center; height: 100%; flex-direction: column; display: flex; align-items: center; gap:24px}
.rewards-content-right, .rewards-content-left {display: flex; align-items: center; flex-direction: column;}
.rewards-content-right {text-align: center;}
.rewards-content-right em{margin-top: -10px; display: block}
.rewards-wrap span:not(.gift) {display: block; font-weight: 700;}
.rewards-wrap span, .rewards-wrap em {color: var(--white); font-style: normal; text-transform: uppercase;}
.rewards-content-left span {margin-bottom: 10px;}
.rewards-content-left a {margin-top:10px}

@media (min-width: 900px) {
  .deals-wrap {grid-template-columns: 1fr 1fr;}
  .deals-box {padding:40px}
  .deals-box-content p {max-width: 330px;}
  #app-box a img {max-width: 140px;}
  /* reward */
  #rewards {height: 220px;}
  .rewards-wrap {gap:100px; flex-direction: row;}
  .gift {height: 90px; width: 90px; font-size: 42px !important; margin-right:10px}
  .rewards-content-right {flex-direction: row; text-align: left;}
  .rewards-content-left {align-items: start;}
  .rewards-content-left a {margin-top:0}
}

/* ==========
about
========== */
#aboutpage section, #rewardspage section {margin-bottom: 100px;}
#aboutpage .highlight, #rewardspage .highlight, #franchisepage .highlight{color: var(--red); font-size: 16px; margin-bottom: 10px; display: block;}
#aboutpage h1 {margin-bottom: 28px;}
#aboutpage h2 {margin: 20px auto}
/* story */
#aboutpage .row-box, #rewardspage .row-box {display: flex; justify-content: center; flex-direction: column;}
#our-story { gap: 30px;}
.map, .map img, .our-story-img img {width: 100%;}
.our-story-img img {border-radius: 28px;}
/* heritage */ 
#heritage, #our-location, #rewards-step, #join-rewards {text-align: center;}
.heritage-icon {font-size: 48px !important; color: var(--green); background: var(--light-green); padding: 24px; border-radius: 50%;}
.heritage-box {gap:80px; margin-top:50px}
/* loction */
#our-location > p, #our-location > h1 {max-width: 550px; margin: 0 auto;}
#our-location > h1 {max-width: 700px; }
.location-content {margin-top:30px; align-items: center; gap:50px; justify-content: space-between;}
.location-box {background: var(--off-white); height: fit-content; padding:30px 20px 40px; border-radius: 24px; width: 100%; text-align: left;}
.location-box div {display: flex; flex-direction: row; align-items: center; justify-content: space-between; padding: 16px 0; border-bottom: 1px solid rgba(0, 0, 0, 0.1); gap:10px}
.location-box a {margin-top: 30px; width: 100%;}
.location-icon {color: var(--green); display: none !important;} 
/* map */
.map {position: relative;}
.map-box {position: absolute;}
.map-box .filled {font-variation-settings: 'FILL' 1; color: var(--green); }
#on .filled {color: var(--black);}
.map-content { padding:6px 8px; background-color: var(--white); box-shadow: 0 2px 10px rgba(0,0,0,0.15); border-radius: 8px;}
.map-box, .map-content {display: flex; flex-direction: column; justify-content: center; width: fit-content;}
.map-content span {font-size: 9px;}
.map-content .prov {font-weight: 800;}
.map-content .amt-location {font-weight: 600;}
.map-content span {font-size: 10px;}
#bc {left: 8%; top: 45%;}
#ab {left: 19%; top: 57%;}
#mb {left: 36%; top: 55%;}
#on {left: 40%; top: 70%;}
#main-map-box {top: 30%; left: 15%;}

@media (min-width: 789px) {
  #aboutpage .highlight, #rewardspage .highlight, #franchisepage .highlight {font-size: 20px;}
  #aboutpage .row-box, #rewardspage .row-box {justify-content: space-around; flex-direction: row;}
  .our-story-content {max-width: 45%;}
  #aboutpage h1 {margin-bottom: 20px;}
  .heritage-icon {font-size: 60px !important;}
  .location-box {width: 40%; padding:30px 40px 40px;}
  .our-story-img img {max-width: 470px;}
  /* map */
  .map-box .filled {font-size: 32px;}
  .map {width: 50%;}
  .map img {max-width: 650px;}
  .map-content span {font-size: 11px;}
  #main-map-box .map-content span {font-size: 13px;}
}

@media (min-width: 1000px) {
  .location-icon {display: flex !important;}
  #main-map-box {top: 40%; left: 15%;}
}




/* ==========
menu
========== */
.menu-title {text-align: center; padding: 40px 0 20px;}
body.scroll .menu-title {display: none;}
/* menu- nav */
.menu-nav {display: none; position: fixed; inset: 0; width: 100%; height: 100%; background-color: var(--white); padding:60px 20px 20px; z-index: 10;}
.menu-nav.show {display: block;}
.menu-nav li {position: relative;}
.menu-nav.show li > a {border-bottom: 1px solid #ddd; padding: 12px 0;}
.menu-nav h4 {margin-bottom: 20px;}
.menu-nav li a {display: flex; align-items: center; gap: 5px}
.menu-nav-icon {color: var(--red);}
.menu-nav .close-btn {position: absolute; top:40px; right:20px; cursor: pointer;}
li:has(.dropdown-toggle) {position: relative;}
.drop-down {display: none; transition: all 400ms ease;}
.drop-down.show {display: block; margin: 15px 0 0 25px;}
.drop-down a {padding: 8px 0; font-weight: 500 !important;}
.menu-toggle {font-size: 17px; border-radius: 10px; background: var(--green); color: var(--white); padding: 13px 30px; width: calc(100% - 40px); margin: 10px 0 30px;  justify-content: center; display: flex; align-items: center; margin: 0 auto; font-weight: 700;}
body.scroll .menu-toggle {position: fixed; border-radius: 0; width: 100%; height: fit-content;}

/* menu item */
.menu-name {text-transform: none;}
.item-box {border: 1px solid #ddd; border-radius: 20px; display: flex; flex-flow: column nowrap; padding-top:30px; justify-content: space-between; }
.item-img img, .item-img {width: 100%;}
.item-list {display: grid; grid-template-columns: 1fr; gap:24px; margin:30px 0 50px; justify-items: center;}
.item-content {padding: 30px; text-align: center; display: flex; flex-direction: column; height: 100%;}  
.item-name {font-weight: 700; color: var(--green); margin-bottom: 20px; display: block;}
.item-desc {font-size: 15px; color: var(--body-color); display: block; margin-bottom: 30px; margin-top:-10px}
.item-content a {margin-top: auto; width: 100%;}

@media (min-width: 600px) {
  .item-list {grid-template-columns: 1fr 1fr;}
}

@media (min-width: 1000px) {
  /* nav */
  .menu-toggle, .menu-nav h4, .menu-nav .close-btn {display: none;}
  .menu-nav {position: static; display: flex; justify-content: space-between; border-bottom: 6px solid #f6f6f6; padding: 30px 0 20px; width: calc(100% - 100px);}
  .menu-nav li > a.active::after {background: var(--red); content: ""; display: block; height: 6px; width: 100%; position: absolute; bottom: -26px;}
  .drop-down::before {content: ''; position: absolute; width: 0; z-index: 0; border-style: solid; border-color: var(--white) transparent;border-width: 0 10px 10px; top: -9.5px; left: 15%; margin-left: -13px; display: block;}
  .drop-down {position: absolute; top: 48px; background: var(--white); min-width: 223px; box-shadow: 0 0 30px -10px rgba(2,0,30,.3); border-radius: 10px; padding: 20px; left: 0%; border-bottom: 1px solid #ddd; display: none; transition: all 400ms ease;}
  .drop-down.show {margin:0}
  .item-list {grid-template-columns: 1fr 1fr 1fr;}
}

@media (min-width: 1500px) {
  .item-list {grid-template-columns: 1fr 1fr 1fr 1fr;}
}

/* ==========
privacy
========== */
#privacy-app-page {padding: 50px 0;}
.privacy h1 {text-align: center;}
.privacy h3, #privacypage h2 {text-transform: none; font-weight: 700;}
.privacy p {margin-top:8px}
.policy-box {margin: 30px 0}
.privacy ul {margin: 10px 40px 0;}
.privacy li {list-style: disc; }
#divided {background-image: url("../images/intro/divided.jpg"); background-size: cover; background-position: center; background-repeat: no-repeat; height: 180px; margin: 50px 0;}


/* ==========
Rewards
========== */
/* banner */
#rewardspage .main, #franchisepage .main {padding-bottom: 0;}
.rewards-banner {position: relative; height: 520px; border-radius: 28px; padding:100px 24px 24px; background-color: var(--off-white); z-index: 1; display: flex; justify-content: center; align-items: start;}
.rewards-banner picture {position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1;}
.rewards-banner picture img {width: 100%; height: 100%; object-fit: cover; border-radius: 28px;}
.rewards-banner-content {text-align: center;}
.rewards-banner-content .green-text {line-height: 0.5;}
.rewards-banner-content h1 {margin-bottom: 20px;}
.rewards-banner-link {display: flex; align-items: center; gap: 10px; justify-content: center; margin-top: 30px; flex-direction: column;}
.rewards-banner-link b {display: flex; align-items: center; }
.rewards-banner-link b::after, .rewards-banner-link b::before {background: var(--black); content: ""; display: block; height: 3px; margin: 0 10px; position: relative; width: 20px; border-radius: 10px;}
/* how it works */
#rewardspage .row-box b {display: block; margin: 10px 0;}
#join-rewards {background-image: url("../images/join-rewards-m.png"); background-size: cover; background-position: center;  background-repeat: no-repeat; height: 250px; display: flex; justify-content: center; flex-direction: column; margin-bottom: 0 !important; border-top: 30px solid var(--off-white);}

@media (min-width: 900px) {
  .rewards-banner {height: 480px; align-items: center; padding:30px 24px;}
  .rewards-banner-link {gap: 20px; flex-direction: row;}
}

@media (min-width: 1100px) {
  #join-rewards {background-image: url("../images/join-rewards.png");}
}

/* ==========
Franchising
========== */
#franchisepage {text-align: center;}
#franchisepage p {max-width: 600px; margin: 10px auto 30px;}