:root{
  --pink:#ff0b58;
  --pink-dark:#ef004e;
  --text:#121212;
  --max:1568px;
  --wide:1568px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Open Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text);background:#fff}
img{max-width:100%;display:block}
.container{width:min(var(--max),calc(100% - 32px));margin-inline:auto}
.container-wide{width:min(var(--wide),calc(100% - 32px));margin-inline:auto}
.section{text-align:center;padding:42px 0}
.small{font-size:13px;line-height:1.45;margin:10px 0;color:#1b1b1b}
.hero{width:100%;overflow:hidden;background:#ef1558}
.hero__image{width:100%;height:auto;object-fit:cover}
.hero__image--mobile{display:none}
.intro{padding-top:72px;padding-bottom:68px}
.eyebrow{color:var(--pink);font-size:40px;line-height:1.15;font-weight:400;margin:0 0 34px}
.intro .small{font-size:21px;line-height:1.42;margin:0;color:#111}
.intro h1{font-size:42px;line-height:1.2;color:var(--pink);font-weight:400;margin:36px 0 0}
.featured-card{background:var(--pink);border-radius:28px;padding:33px 48px;display:grid;grid-template-columns:minmax(0,695px) minmax(0,1fr);gap:85px;align-items:center;color:white}
.featured-card img{border-radius:28px;width:100%;aspect-ratio:725/364;object-fit:cover}
.featured-card p{max-width:575px;font-size:20px;line-height:1.48;margin:0;color:#fff}
.ranking{
  position:relative;
  overflow:hidden;
  padding:42px 16px 48px;
  min-height:880px;
  isolation:isolate;
}
.ranking__inner{
  position:relative;
  z-index:2;
  width:min(956px,100%);
  margin:0 auto;
}
.ranking__heading{text-align:center}
.ranking h2{
  font-size:34px;
  line-height:1.15;
  font-weight:400;
  margin:0;
}
.ranking__lead{
  font-size:34px;
  line-height:1.2;
  color:var(--pink);
  font-weight:400;
  margin:5px 0 20px;
}
.ranking__description{
  font-size:17px;
  line-height:1.4;
  margin:0;
}
.ranking__decor{
  position:absolute;
  z-index:0;
  pointer-events:none;
  user-select:none;
}
.ranking__decor--left{
  width:390px;
  left:-130px;
  top:126px;
}
.ranking__decor--right{
  width:420px;
  right:-110px;
  top:155px;
}
.tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  margin:68px 0 32px;
}
.tab{
  min-height:90px;
  border:1.5px solid var(--pink);
  background:#fff;
  color:#111;
  border-radius:999px;
  padding:20px 28px;
  font:inherit;
  font-size:22px;
  line-height:1.2;
  font-weight:400;
  cursor:pointer;
  transition:background .2s,color .2s;
}
.tab.is-active{
  background:var(--pink);
  color:#fff;
  font-weight:700;
}
.county-select-wrap{
  position:relative;
  margin-bottom:44px;
}
.county-select-wrap::after{
  content:"";
  position:absolute;
  right:30px;
  top:50%;
  width:14px;
  height:14px;
  border-right:3px solid #111;
  border-bottom:3px solid #111;
  transform:translateY(-68%) rotate(45deg);
  pointer-events:none;
}
#countySelect{
  width:100%;
  height:90px;
  padding:0 62px 0 34px;
  border:1.5px solid var(--pink);
  border-radius:7px;
  background:#fff;
  color:#111;
  font:inherit;
  font-size:22px;
  outline:none;
  appearance:none;
  -webkit-appearance:none;
}
.ranking-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px 28px;
}
.rank-item{
  height:78px;
  border:1.5px solid var(--pink);
  border-radius:999px;
  display:grid;
  grid-template-columns:80px 1fr 52px;
  align-items:center;
  padding:0 22px 0 10px;
  background:rgba(255,255,255,.96);
}
.rank-number{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  background:url('../assets/bg-numbers-top.png') center/contain no-repeat;
  color:#fff;
  font-size:18px;
  line-height:1;
  font-weight:700;
  justify-self:start;
}
.rank-name{
  font-size:23px;
  line-height:1;
  font-weight:400;
  text-align:left;
}
.rank-icon{
  width:18px;
  height:auto;
  justify-self:end;
  object-fit:contain;
}
.stats{background:var(--pink);border-radius:17px;color:white;padding:30px 28px;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;gap:20px}
.stat{display:flex;flex-direction:column;align-items:center}
.stat .icon{font-size:34px;line-height:1;margin-bottom:8px}
.stat strong{font-size:34px;line-height:1.1;font-weight:500}
.stat span{font-size:12px;margin-top:9px}
.closing{position:relative;padding-top:42px;padding-bottom:18px}
.closing h2 b{color:var(--pink)}
.closing__pink{color:var(--pink);font-size:22px;margin:20px 0 0}
.winner-card{margin-top:10px;margin-bottom:40px;background:var(--pink);border-radius:17px;color:white;min-height:195px;display:grid;grid-template-columns:160px 1fr 160px;align-items:center;padding:18px 26px;overflow:hidden}
.winner-copy{text-align:center;display:flex;flex-direction:column;align-items:center;line-height:1.05}
.winner-copy p{font-size:20px;margin:0 0 3px}
.winner-copy strong{font-size:60px;font-weight:900;font-style:italic;line-height:1;color:white;text-shadow:2px 2px 0 rgba(255,255,255,.2)}
.winner-copy span{font-size:19px}
.trophy{font-size:78px;filter:grayscale(1);opacity:.22}
.smile-ball{width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff5b54 0,#ef1f28 40%,#a90020 100%);position:relative}
.smile-ball::before,.smile-ball::after{content:"";position:absolute;top:37%;width:13px;height:6px;border-radius:50%;border-top:4px solid #111}
.smile-ball::before{left:28%;transform:rotate(18deg)}
.smile-ball::after{right:27%;transform:rotate(-18deg)}
.smile-ball span{position:absolute;left:50%;top:56%;width:35px;height:20px;transform:translateX(-50%);border-bottom:7px solid #111;border-radius:0 0 30px 30px}
.smile-ball--right{position:absolute;right:-35px;top:134px;width:90px;height:90px}
.smile-ball--left{position:absolute;left:-38px;top:10px;width:88px;height:88px;filter:blur(5px)}
.winner-ball{justify-self:center;width:108px;height:108px}
@media (max-width: 1024px){
  .hero__image--desktop{display:none}.hero__image--mobile{display:block;width:100%;height:auto}
  .section{padding:32px 0}.intro{padding-top:48px;padding-bottom:44px}.eyebrow{font-size:32px;margin-bottom:24px}.intro .small{font-size:18px}.intro h1{font-size:34px;margin-top:28px}.featured-card{grid-template-columns:1fr;gap:28px;padding:28px;max-width:860px}.featured-card p{text-align:center;max-width:700px;margin-inline:auto;font-size:18px}
  .tabs{grid-template-columns:1fr;margin-top:28px}.ranking-grid{grid-template-columns:1fr}.rank-item{max-width:560px;width:100%;margin:auto}
  .stats{grid-template-columns:1fr;gap:24px}.stat strong{font-size:30px}
  .winner-card{grid-template-columns:90px 1fr;gap:8px;padding:18px 14px}.trophy{display:none}.winner-ball{width:86px;height:86px}.winner-copy p{font-size:17px}.winner-copy strong{font-size:48px}.winner-copy span{font-size:16px}
  
  .smile-ball--right{right:-48px}.smile-ball--left{left:-55px}
}
@media (max-width: 600px){
  .container,.container-wide{width:min(100% - 24px,var(--max))}.intro{padding-top:34px;padding-bottom:32px}.eyebrow{font-size:24px;margin-bottom:18px}.intro .small{font-size:15px}.intro h1{font-size:27px;margin-top:22px}.featured-card{padding:16px;border-radius:20px;gap:18px}.featured-card img{border-radius:18px}.featured-card p{font-size:14px;line-height:1.5}.small{font-size:12px}.ranking h2,.closing h2{font-size:21px}.ranking__lead{font-size:20px}
  .winner-card{grid-template-columns:1fr;text-align:center}.winner-ball{justify-self:center}.winner-copy strong{font-size:44px}
}

@media (max-width: 1024px){
  .ranking{padding:36px 20px 44px;min-height:0}
  .ranking__inner{width:min(820px,100%)}
  .ranking h2{font-size:30px}
  .ranking__lead{font-size:30px}
  .ranking__description{font-size:15px}
  .ranking__decor--left{width:330px;left:-170px;top:150px}
  .ranking__decor--right{width:350px;right:-170px;top:180px}
  .tabs{gap:18px;margin:52px 0 26px}
  .tab{font-size:18px;min-height:76px;padding:16px 20px}
  #countySelect{height:76px;font-size:18px;padding-left:28px}
  .county-select-wrap{margin-bottom:34px}
  .rank-item{height:68px;grid-template-columns:68px 1fr 40px;padding-right:18px}
  .rank-number{width:44px;height:44px;font-size:16px}
  .rank-name{font-size:19px}
  .rank-icon{width:16px}
}
@media (max-width: 700px){
  .ranking{padding:30px 12px 36px}
  .ranking h2{font-size:24px}
  .ranking__lead{font-size:24px;margin-top:4px;margin-bottom:14px}
  .ranking__description{font-size:13px}
  .ranking__description br{display:none}
  .ranking__decor--left{width:250px;left:-170px;top:170px;opacity:.75}
  .ranking__decor--right{width:270px;right:-165px;top:210px;opacity:.8}
  .tabs{grid-template-columns:1fr;gap:12px;margin:34px 0 18px}
  .tab{font-size:15px;min-height:56px;padding:12px 18px}
  #countySelect{height:58px;font-size:15px;padding:0 50px 0 18px}
  .county-select-wrap{margin-bottom:24px}
  .county-select-wrap::after{right:20px;width:11px;height:11px;border-width:2px}
  .ranking-grid{grid-template-columns:1fr;gap:9px}
  .rank-item{height:58px;grid-template-columns:58px 1fr 34px;padding:0 16px 0 8px}
  .rank-number{width:40px;height:40px;font-size:14px}
  .rank-name{font-size:17px}
  .rank-icon{width:14px}
}

/* Statistics + closing section, matched to the supplied design */
.stats{
  width:min(1630px,calc(100% - 48px));
  margin:18px auto 0;
  min-height:382px;
  background:var(--pink);
  border-radius:30px;
  color:#fff;
  padding:56px 80px 52px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  align-items:start;
  gap:42px;
  text-align:center;
}
.stat{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.stat__icon{
  width:90px;
  height:90px;
  object-fit:contain;
  margin:0 0 28px;
}
.stat__icon--restaurants{width:78px;height:78px;margin-top:6px;margin-bottom:34px}
.stat__icon--cities{width:79px;height:94px;margin-top:-2px;margin-bottom:26px}
.stat strong{
  display:block;
  font-size:62px;
  line-height:1.08;
  font-weight:400;
  letter-spacing:-1.5px;
  white-space:nowrap;
}
.stat span{
  display:block;
  margin-top:23px;
  font-size:20px;
  line-height:1.35;
  font-weight:400;
}
.closing{
  position:relative;
  overflow:visible;
  padding-top:66px;
  padding-bottom:24px;
  text-align:center;
}
.closing__decor{
  position:absolute;
  z-index:-1;
  width:230px;
  height:348px;
  object-fit:contain;
  left:calc((100vw - 100%)/-2);
  top:0;
  pointer-events:none;
  user-select:none;
}
.closing h2{
  margin:0 0 38px;
  font-size:41px;
  line-height:1.22;
  font-weight:400;
}
.closing h2 b{font-weight:700;color:var(--pink)}
.closing .small{
  margin:0 auto 30px;
  font-size:20px;
  line-height:1.45;
}
.closing__pink{
  color:var(--pink);
  font-size:41px;
  line-height:1.2;
  font-weight:400;
  margin:38px 0 0;
}

@media (max-width:1200px){
  .stats{min-height:320px;padding:46px 36px 42px;gap:24px}
  .stat__icon{transform:scale(.86);margin-bottom:18px}
  .stat__icon--restaurants{margin-bottom:24px}
  .stat__icon--cities{margin-bottom:16px}
  .stat strong{font-size:44px}
  .stat span{font-size:16px;margin-top:18px}
  .closing h2{font-size:32px}
  .closing .small{font-size:17px}
  .closing__pink{font-size:34px}
}

@media (max-width:760px){
  .stats{
    width:calc(100% - 24px);
    min-height:0;
    grid-template-columns:1fr;
    gap:36px;
    padding:38px 22px 42px;
    border-radius:22px;
  }
  .stat__icon,.stat__icon--restaurants,.stat__icon--cities{margin:0 0 14px;transform:none}
  .stat strong{font-size:38px;white-space:normal;letter-spacing:-.5px}
  .stat span{font-size:15px;margin-top:10px}
  .closing{padding-top:46px;padding-bottom:14px}
  .closing__decor{width:145px;height:auto;left:-12px;top:4px;opacity:.8}
  .closing h2{font-size:26px;line-height:1.3;margin-bottom:26px;padding:0 8px}
  .closing .small{font-size:14px;line-height:1.55;margin-bottom:20px;padding:0 8px}
  .closing .small br{display:none}
  .closing__pink{font-size:30px;margin-top:28px}
}

/* Decorative image above footer (winner card removed) */
.prefooter-art{
  position:relative;
  height:290px;
  overflow:hidden;
  pointer-events:none;
}
.prefooter-art img{
  position:absolute;
  width:290px;
  height:auto;
  right:-18px;
  bottom:0;
  user-select:none;
}

@media (max-width:760px){
  .prefooter-art{height:205px}
  .prefooter-art img{
    width:205px;
    right:-28px;
    bottom:0;
  }
}

/* Footer copied from the supplied reference page; global Open Sans is preserved. */
.site-footer {
  min-height: 300px;
  background: var(--pink);
  color: #fff;
  padding: 58px max(50px, calc((100% - 1750px) / 2));
  display: grid;
  grid-template-columns: 210px minmax(420px, 1fr) minmax(480px, 1.1fr);
  align-items: center;
  gap: 38px;
}
.footer-logo {
  display: block;
  width: 190px;
  max-width: 100%;
  height: auto;
}
.site-footer h3 {
  margin: 0;
  font-size: 31px;
  line-height: 1.15;
}
.site-footer h3 span { font-weight: 400; }
.address {
  text-align: right;
  font-size: 17px;
  line-height: 1.55;
}
.socials {
  margin-top: 24px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 14px;
}
.socials a { display: block; line-height: 0; }
.socials img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}
.privacy-link { margin-top: 30px; }
.privacy-link a { color: #fff; text-decoration: none; }

@media (max-width: 1000px) {
  .site-footer {
    grid-template-columns: 150px 1fr;
    min-height: 0;
    padding: 45px 36px;
  }
  .footer-logo { width: 140px; }
  .site-footer h3 { font-size: 25px; }
  .address { grid-column: 1 / -1; text-align: left; }
  .socials { justify-content: flex-start; }
}

@media (max-width: 600px) {
  .site-footer {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 38px 20px;
    gap: 22px;
  }
  .footer-logo { width: 135px; margin: auto; }
  .site-footer h3 { font-size: 22px; }
  .address { text-align: center; font-size: 14px; }
  .socials { justify-content: center; margin-top: 18px; }
  .socials img { width: 35px; height: 35px; }
}

/* Social channels promo before footer */
.social-promo{
  width:100%;
  padding:42px 16px 76px;
  background:#fff;
}

.social-promo__box{
  position:relative;
  width:min(1220px,calc(100% - 64px));
  min-height:330px;
  margin:0 auto;
  padding:64px 44px 48px;
  border-radius:28px;
  background:var(--pink);
  color:#fff;
  text-align:center;
}

.social-promo__box h2{
  margin:0 0 18px;
  font-size:38px;
  line-height:1.18;
  font-weight:600;
}

.social-promo__box p{
  margin:0;
  font-size:24px;
  line-height:1.3;
  font-weight:600;
}

.social-promo__links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  margin-top:36px;
}

.social-promo__links a{
  display:block;
  line-height:0;
}

.social-promo__links img{
  width:64px;
  height:64px;
  object-fit:contain;
}

.social-promo__emoji{
  position:absolute;
  z-index:2;
  left:-92px;
  bottom:-76px;
  width:265px;
  height:auto;
  pointer-events:none;
  user-select:none;
}

@media (max-width:1024px){
  .social-promo{padding:34px 16px 62px}
  .social-promo__box{
    width:min(860px,calc(100% - 48px));
    min-height:285px;
    padding:52px 34px 42px;
    border-radius:24px;
  }
  .social-promo__box h2{font-size:31px}
  .social-promo__box p{font-size:20px}
  .social-promo__links{margin-top:28px;gap:18px}
  .social-promo__links img{width:56px;height:56px}
  .social-promo__emoji{left:-58px;bottom:-58px;width:205px}
}

@media (max-width:600px){
  .social-promo{padding:28px 12px 58px}
  .social-promo__box{
    width:calc(100% - 12px);
    min-height:250px;
    padding:38px 22px 34px;
    border-radius:20px;
  }
  .social-promo__box h2{font-size:24px;margin-bottom:14px}
  .social-promo__box p{font-size:16px;line-height:1.4}
  .social-promo__desktop-break{display:none}
  .social-promo__links{margin-top:24px;gap:14px}
  .social-promo__links img{width:50px;height:50px}
  .social-promo__emoji{left:-20px;bottom:-52px;width:150px}
}

/* Social promo placement: promo first, existing right-side pre-footer artwork after it */
.social-promo{
  padding-bottom:72px;
}
.social-promo__box{
  overflow:visible;
}
.social-promo__emoji{
  left:-78px;
  bottom:-62px;
  width:255px;
}
.prefooter-art{
  margin-top:0;
}
@media (max-width:1024px){
  .social-promo__emoji{left:-48px;bottom:-48px;width:200px}
}
@media (max-width:600px){
  .social-promo{padding-bottom:52px}
  .social-promo__emoji{left:-18px;bottom:-110px;width:145px}
}
