:root{
  --kuponeo-green:#14916d;
  --kuponeo-green-dark:#0f6f54;
  --kuponeo-green-soft:#eaf8f3;
  --kuponeo-yellow:#f4c542;
  --kuponeo-text:#111827;
  --kuponeo-muted:#64748b;
  --kuponeo-border:#e5e7eb;
  --kuponeo-soft:#f8fafc;
  --kuponeo-white:#ffffff;
  --kuponeo-shadow:0 18px 42px rgba(15,23,42,.10);
}

.kuponeo-site-header,
.kuponeo-site-footer{
  font-family:inherit;
  color:var(--kuponeo-text);
}

.kuponeo-site-header *,
.kuponeo-site-footer *{
  box-sizing:border-box;
}

.kuponeo-site-header{
  position:sticky;
  top:18px;
  z-index:999;
  background:transparent;
  border-bottom:0;
  backdrop-filter:none;
  padding:8px 0 14px;
}

.kuponeo-header-inner{
  width:min(1180px, calc(100% - 32px));
  min-height:76px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0 18px;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(229,231,235,.9);
  border-radius:24px;
  box-shadow:var(--kuponeo-shadow);
}

.kuponeo-header-logo,
.kuponeo-footer-logo{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--kuponeo-text);
  text-decoration:none !important;
  flex:0 0 auto;
}

.kuponeo-logo-mark,
.kuponeo-footer-logo-mark{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:15px;
  background:radial-gradient(circle at 75% 10%, rgba(244,197,66,.46), transparent 34%), linear-gradient(135deg, var(--kuponeo-green), var(--kuponeo-green-dark));
  color:#fff;
  font-weight:950;
  font-size:22px;
  letter-spacing:-.05em;
  box-shadow:0 12px 24px rgba(20,145,109,.20);
}

.kuponeo-logo-text,
.kuponeo-footer-logo-text{
  font-size:23px;
  font-weight:950;
  letter-spacing:-.055em;
  color:var(--kuponeo-text);
  white-space:nowrap;
}

.kuponeo-header-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:7px;
  border:1px solid var(--kuponeo-border);
  border-radius:999px;
  background:#fff;
  flex:0 1 auto;
}

.kuponeo-header-nav a,
.kuponeo-header-nav span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 12px;
  border-radius:999px;
  color:var(--kuponeo-text);
  font-size:14px;
  font-weight:850;
  text-decoration:none !important;
  white-space:nowrap;
  transition:background .16s ease,color .16s ease;
}

.kuponeo-header-nav a:hover,
.kuponeo-header-nav a:focus{
  background:var(--kuponeo-green-soft);
  color:var(--kuponeo-green-dark);
}

.kuponeo-header-nav span{
  color:var(--kuponeo-muted);
  cursor:default;
}

.kuponeo-header-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 1 410px;
  justify-content:flex-end;
}

.kuponeo-header-search,
.kuponeo-footer-search{
  display:flex;
  align-items:center;
  gap:8px;
  padding:5px;
  border:1px solid var(--kuponeo-border);
  border-radius:999px;
  background:#fff;
}

.kuponeo-header-search{
  width:min(100%, 285px);
  min-width:220px;
}

.kuponeo-header-search input,
.kuponeo-footer-search input{
  width:100%;
  min-width:0;
  height:38px;
  border:0;
  outline:0;
  padding:0 12px;
  background:transparent;
  color:var(--kuponeo-text);
  font:inherit;
  font-size:14px;
}

.kuponeo-header-search input::placeholder,
.kuponeo-footer-search input::placeholder{
  color:var(--kuponeo-muted);
}

.kuponeo-header-search button,
.kuponeo-footer-search button,
.kuponeo-mobile-search button{
  border:0;
  background:var(--kuponeo-green);
  color:#fff;
  font:inherit;
  font-size:13px;
  font-weight:950;
  cursor:pointer;
  transition:background .16s ease, transform .16s ease;
}

.kuponeo-header-search button{
  height:38px;
  border-radius:999px;
  padding:0 14px;
}

.kuponeo-header-search button:hover,
.kuponeo-footer-search button:hover{
  background:var(--kuponeo-green-dark);
  transform:translateY(-1px);
}

.kuponeo-header-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 17px;
  border-radius:999px;
  background:var(--kuponeo-yellow);
  color:#111827 !important;
  text-decoration:none !important;
  font-size:14px;
  font-weight:950;
  box-shadow:0 10px 20px rgba(244,197,66,.22);
  white-space:nowrap;
  transition:transform .16s ease, box-shadow .16s ease;
}

.kuponeo-header-cta:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 26px rgba(244,197,66,.28);
}

.kuponeo-header-cta-placeholder{
  cursor:default;
}

.kuponeo-header-cta-placeholder:hover{
  transform:none;
  box-shadow:0 10px 20px rgba(244,197,66,.22);
}

.kuponeo-mobile-toggle{
  display:none;
  width:46px;
  height:46px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  border:1px solid var(--kuponeo-border);
  border-radius:15px;
  background:#fff;
  cursor:pointer;
  padding:0;
}

.kuponeo-mobile-toggle span{
  width:19px;
  height:2px;
  border-radius:99px;
  background:var(--kuponeo-text);
  transition:transform .18s ease, opacity .18s ease;
}

.kuponeo-site-header.is-open .kuponeo-mobile-toggle span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}

.kuponeo-site-header.is-open .kuponeo-mobile-toggle span:nth-child(2){
  opacity:0;
}

.kuponeo-site-header.is-open .kuponeo-mobile-toggle span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

.kuponeo-mobile-menu{
  display:none;
  width:min(1180px, calc(100% - 32px));
  margin:0 auto 14px;
  padding:12px;
  border:1px solid var(--kuponeo-border);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--kuponeo-shadow);
}

.kuponeo-mobile-menu a{
  display:block;
  padding:13px 14px;
  border-radius:14px;
  color:var(--kuponeo-text);
  font-weight:850;
  text-decoration:none !important;
}

.kuponeo-mobile-menu a:hover{
  background:var(--kuponeo-green-soft);
  color:var(--kuponeo-green-dark);
}

.kuponeo-mobile-search{
  display:flex;
  gap:8px;
  margin-top:10px;
  padding-top:12px;
  border-top:1px solid var(--kuponeo-border);
}

.kuponeo-mobile-search input{
  width:100%;
  min-width:0;
  border:1px solid var(--kuponeo-border);
  border-radius:13px;
  padding:12px 13px;
  font:inherit;
  outline:0;
}

.kuponeo-mobile-search button{
  border-radius:13px;
  padding:0 15px;
}

.kuponeo-site-footer{
  margin-top:28px;
  padding:0 0 28px;
  background:transparent;
}

.kuponeo-footer-inner{
  width:min(1180px, calc(100% - 32px));
  margin:0 auto;
}

.kuponeo-footer-top{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:22px;
  padding:28px;
  border:1px solid rgba(229,231,235,.95);
  border-radius:28px;
  background:#fff;
  box-shadow:0 18px 42px rgba(15,23,42,.08);
}

.kuponeo-footer-brand{
  min-width:0;
}

.kuponeo-footer-logo{
  margin-bottom:14px;
}

.kuponeo-footer-brand p{
  max-width:650px;
  margin:0;
  color:var(--kuponeo-muted);
  font-size:16px;
  line-height:1.65;
}

.kuponeo-footer-badges{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:18px;
}

.kuponeo-footer-badges span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border:1px solid rgba(20,145,109,.18);
  border-radius:999px;
  background:var(--kuponeo-green-soft);
  color:var(--kuponeo-green-dark);
  font-size:13px;
  font-weight:850;
}

.kuponeo-footer-search-card{
  padding:22px;
  border:1px solid var(--kuponeo-border);
  border-radius:22px;
  background:radial-gradient(circle at 100% 0%, rgba(244,197,66,.24), transparent 36%), #ffffff;
}

.kuponeo-footer-search-label{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 11px;
  border-radius:999px;
  background:var(--kuponeo-yellow);
  color:#111827;
  font-size:13px;
  font-weight:950;
}

.kuponeo-footer-search-card p{
  margin:13px 0 16px;
  color:var(--kuponeo-muted);
  font-size:15px;
  line-height:1.55;
}

.kuponeo-footer-search{
  padding:6px;
}

.kuponeo-footer-search input{
  height:42px;
}

.kuponeo-footer-search button{
  height:42px;
  border-radius:999px;
  padding:0 18px;
  font-size:14px;
  white-space:nowrap;
}

.kuponeo-footer-links{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
  margin-top:22px;
}

.kuponeo-footer-column{
  min-width:0;
  padding:20px;
  border:1px solid rgba(229,231,235,.86);
  border-radius:22px;
  background:#fff;
}

.kuponeo-footer-column h3{
  margin:0 0 12px;
  color:var(--kuponeo-text);
  font-size:14px;
  font-weight:950;
  letter-spacing:-.015em;
}

.kuponeo-footer-column a,
.kuponeo-footer-column span{
  display:flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:7px 0;
  color:var(--kuponeo-muted);
  font-size:14px;
  font-weight:750;
  line-height:1.35;
  text-decoration:none !important;
  transition:color .16s ease, transform .16s ease;
}

.kuponeo-footer-column a:hover{
  color:var(--kuponeo-green-dark);
  transform:translateX(2px);
}

.kuponeo-footer-column span{
  color:var(--kuponeo-muted);
  cursor:default;
}

.kuponeo-footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:22px;
  padding:18px 4px 0;
  color:var(--kuponeo-muted);
}

.kuponeo-footer-bottom p{
  margin:0;
  font-size:13px;
  line-height:1.55;
}

.kuponeo-footer-bottom-links{
  display:flex;
  align-items:center;
  gap:14px;
  flex:0 0 auto;
}

.kuponeo-footer-bottom-links a{
  color:var(--kuponeo-muted);
  font-size:13px;
  font-weight:800;
  text-decoration:none !important;
}

.kuponeo-footer-bottom-links a:hover{
  color:var(--kuponeo-green-dark);
}

@media (max-width:1120px){
  .kuponeo-header-nav a,
.kuponeo-header-nav span{
    padding:0 10px;
    font-size:13px;
  }

  .kuponeo-header-search{
    min-width:200px;
  }
}

@media (max-width:1024px){
  .kuponeo-site-header{
    top:0;
    padding:0;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(229,231,235,.86);
  }

  .kuponeo-header-inner{
    width:min(100% - 24px, 1180px);
    min-height:68px;
    padding:0;
    background:transparent;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    border:0;
    border-radius:0;
    box-shadow:none;
  }

  .kuponeo-header-nav{
    display:none;
  }

  .kuponeo-header-actions{
    flex:0 1 auto;
  }

  .kuponeo-header-search,
  .kuponeo-header-cta{
    display:none;
  }

  .kuponeo-mobile-toggle{
    display:flex;
  }

  .kuponeo-site-header.is-open .kuponeo-mobile-menu{
    display:block;
  }
}

@media (max-width:900px){
  .kuponeo-footer-top{
    grid-template-columns:1fr;
    padding:22px;
  }

  .kuponeo-footer-links{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:640px){
  .kuponeo-header-inner,
  .kuponeo-footer-inner{
    width:calc(100% - 24px);
  }

  .kuponeo-logo-mark,
  .kuponeo-footer-logo-mark{
    width:38px;
    height:38px;
    border-radius:13px;
    font-size:20px;
  }

  .kuponeo-logo-text,
  .kuponeo-footer-logo-text{
    font-size:21px;
  }

  .kuponeo-mobile-menu{
    width:calc(100% - 24px);
  }

  .kuponeo-site-footer{
    margin-top:20px;
    padding-bottom:22px;
  }

  .kuponeo-footer-top{
    padding:18px;
    border-radius:24px;
  }

  .kuponeo-footer-brand p{
    font-size:15px;
  }

  .kuponeo-footer-search-card{
    padding:18px;
    border-radius:20px;
  }

  .kuponeo-footer-search{
    flex-direction:column;
    border-radius:18px;
  }

  .kuponeo-footer-search input{
    height:44px;
  }

  .kuponeo-footer-search button{
    width:100%;
    height:44px;
  }

  .kuponeo-footer-links{
    grid-template-columns:1fr;
    gap:12px;
  }

  .kuponeo-footer-column{
    padding:18px;
    border-radius:20px;
  }

  .kuponeo-footer-bottom{
    flex-direction:column;
    align-items:flex-start;
    padding-top:16px;
  }

  .kuponeo-footer-bottom-links{
    flex-wrap:wrap;
  }
}

@media (max-width:380px){
  .kuponeo-logo-text{
    font-size:19px;
  }

  .kuponeo-logo-mark{
    width:36px;
    height:36px;
  }
}

/* v1.1.0: reset theme/browser search input styling to avoid square input inside rounded search pills. */
.kuponeo-header-search,
.kuponeo-footer-search,
.kuponeo-mobile-search{
  overflow:hidden;
}

.kuponeo-header-search input[type="search"],
.kuponeo-footer-search input[type="search"],
.kuponeo-mobile-search input[type="search"]{
  -webkit-appearance:none;
  appearance:none;
  border:0 !important;
  box-shadow:none !important;
  outline:0 !important;
  background:transparent !important;
  margin:0 !important;
}

.kuponeo-header-search input[type="search"]:focus,
.kuponeo-footer-search input[type="search"]:focus,
.kuponeo-mobile-search input[type="search"]:focus{
  border:0 !important;
  box-shadow:none !important;
  outline:0 !important;
}

.kuponeo-header-search button,
.kuponeo-footer-search button,
.kuponeo-mobile-search button{
  -webkit-appearance:none;
  appearance:none;
  border:0 !important;
  box-shadow:none !important;
}

/* v1.4.6: default Hello/theme header/footer are removed from the delivered HTML by PHP hooks/output cleanup. No CSS hiding fallback is used here. */

.kuponeo-site-header .kuponeo-mobile-toggle{
  display:none !important;
  width:46px !important;
  height:46px !important;
  min-width:46px !important;
  min-height:46px !important;
  max-width:46px !important;
  max-height:46px !important;
  padding:0 !important;
  margin:0 !important;
  border:1px solid var(--kuponeo-border) !important;
  outline:0 !important;
  box-shadow:none !important;
  background:#fff !important;
  border-radius:15px !important;
  color:var(--kuponeo-text) !important;
  line-height:1 !important;
  font-size:0 !important;
}

.kuponeo-site-header .kuponeo-mobile-toggle:focus,
.kuponeo-site-header .kuponeo-mobile-toggle:hover{
  border-color:var(--kuponeo-border) !important;
  outline:0 !important;
  box-shadow:none !important;
  background:#fff !important;
}

@media (max-width:1024px){
  .kuponeo-site-header .kuponeo-mobile-toggle{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex-direction:column !important;
    gap:5px !important;
  }
}

/* v1.3.0: allow non-clickable placeholder menu/footer items without creating broken links */
.kuponeo-header-nav span,
.kuponeo-mobile-menu span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 12px;
  border-radius:999px;
  color:var(--kuponeo-muted);
  font-size:14px;
  font-weight:850;
  white-space:nowrap;
  opacity:.72;
  cursor:default;
}

.kuponeo-mobile-menu span{
  display:block;
  padding:13px 14px;
  border-radius:14px;
}

.kuponeo-footer-column span,
.kuponeo-footer-bottom-links span{
  display:flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:7px 0;
  color:var(--kuponeo-muted);
  font-size:14px;
  font-weight:750;
  line-height:1.35;
  opacity:.72;
  cursor:default;
}

.kuponeo-footer-bottom-links span{
  font-size:13px;
  font-weight:800;
}

/* v1.4.5: seamless desktop dark-header canvas.
   The white floating header is unchanged. The canvas behind it now mirrors the
   homepage/store hero palette horizontally: deep blue-teal on the left, subtle
   green glow on the right. This avoids the visible colour step between the
   Site Shell header area and the page hero below. Mobile keeps the normal
   header behaviour. */
body.kuponeo-shell-dark-header{
  background-color:#ffffff;
}

@media (min-width:1025px){
  body.kuponeo-shell-dark-header::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:235px;
    z-index:0;
    pointer-events:none;
    background:
      radial-gradient(circle at 90% 82%, rgba(111,131,77,.30) 0%, rgba(111,131,77,.16) 26%, transparent 48%),
      radial-gradient(circle at 62% 82%, rgba(15,85,82,.26) 0%, transparent 42%),
      linear-gradient(90deg, #02171d 0%, #02232a 46%, #063234 69%, #334e3d 100%);
  }

  body.kuponeo-shell-dark-header .kuponeo-site-header{
    background:transparent !important;
    border-bottom:0 !important;
  }

  body.kuponeo-shell-dark-header .kuponeo-header-inner{
    background:rgba(255,255,255,.94);
    border-color:rgba(255,255,255,.44);
    box-shadow:0 22px 55px rgba(2,6,23,.16);
  }

  body.kuponeo-shell-dark-header .kuponeo-header-nav,
  body.kuponeo-shell-dark-header .kuponeo-header-search{
    border-color:rgba(229,231,235,.88);
  }
}

@media (max-width:1024px){
  body.kuponeo-shell-dark-header::before{
    content:none !important;
    display:none !important;
  }

  body.kuponeo-shell-dark-header .kuponeo-site-header{
    background:rgba(255,255,255,.94) !important;
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(229,231,235,.86) !important;
  }
}

/* v1.3.9: small spacing and footer polish based on stable v1.3.5.
   Adds a little breathing room above the floating header and gives the footer
   the same soft floating-card feel without changing the structure. */
.kuponeo-footer-top{
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}

.kuponeo-footer-column{
  background:rgba(255,255,255,.96);
  box-shadow:0 12px 30px rgba(15,23,42,.045);
}

.kuponeo-footer-search-card{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72);
}

@media (max-width:1024px){
  .kuponeo-site-header{
    top:0;
    padding:6px 0 8px;
  }
}

@media (max-width:640px){
  .kuponeo-site-header{
    padding:6px 0 8px;
  }
}


/* v1.4.0: dark footer treatment to better match the store-page dark/floating header style.
   This only changes presentation. It keeps the same semantic footer HTML and menu/link logic. */
.kuponeo-site-footer{
  margin-top:32px;
  padding:34px 0 30px;
  background:
    radial-gradient(circle at 15% 0%, rgba(20,145,109,.24), transparent 34%),
    radial-gradient(circle at 92% 18%, rgba(244,197,66,.18), transparent 28%),
    linear-gradient(180deg, #0f172a 0%, #101827 54%, #0b1220 100%);
  color:#f8fafc;
}

.kuponeo-site-footer .kuponeo-footer-top{
  background:rgba(15,23,42,.68);
  border-color:rgba(255,255,255,.12);
  box-shadow:0 22px 58px rgba(2,6,23,.28);
}

.kuponeo-site-footer .kuponeo-footer-logo-text,
.kuponeo-site-footer .kuponeo-footer-column h3{
  color:#ffffff;
}

.kuponeo-site-footer .kuponeo-footer-brand p,
.kuponeo-site-footer .kuponeo-footer-search-card p,
.kuponeo-site-footer .kuponeo-footer-bottom,
.kuponeo-site-footer .kuponeo-footer-bottom p{
  color:rgba(226,232,240,.82);
}

.kuponeo-site-footer .kuponeo-footer-badges span{
  border-color:rgba(52,211,153,.22);
  background:rgba(20,145,109,.16);
  color:#bbf7d0;
}

.kuponeo-site-footer .kuponeo-footer-search-card,
.kuponeo-site-footer .kuponeo-footer-column{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.12);
  box-shadow:0 12px 32px rgba(2,6,23,.16);
}

.kuponeo-site-footer .kuponeo-footer-search{
  background:rgba(255,255,255,.96);
  border-color:rgba(255,255,255,.18);
}

.kuponeo-site-footer .kuponeo-footer-column a,
.kuponeo-site-footer .kuponeo-footer-column span,
.kuponeo-site-footer .kuponeo-footer-bottom-links a,
.kuponeo-site-footer .kuponeo-footer-bottom-links span{
  color:rgba(226,232,240,.78);
}

.kuponeo-site-footer .kuponeo-footer-column a:hover,
.kuponeo-site-footer .kuponeo-footer-bottom-links a:hover{
  color:#facc15;
}

.kuponeo-site-footer .kuponeo-footer-search-label{
  box-shadow:0 10px 22px rgba(244,197,66,.15);
}

@media (max-width:640px){
  .kuponeo-site-footer{
    margin-top:24px;
    padding:26px 0 24px;
  }
}
