/* Promo offer banner + code popup (inc/promo-offer.php). Self-contained: site colours and fonts, no other styles needed.
   A theme is a class on the banner and on the popup (acc-promo--thanksgiving, acc-promo--holidays ...) that sets the
   variables below; the layout is shared. */

/* ---------- banner: shared layout, default (holidays) colours ---------- */
.acc-promo-bar{
  --pb-bg:linear-gradient(90deg,#1b4f35 0%,#287a4f 55%,#1f6a48 100%);
  --pb-ink:#fff; --pb-sub:rgba(255,255,255,.85);
  --pb-cta-bg:#fff; --pb-cta-ink:#215f3e; --pb-cta-shadow:0 1px 0 rgba(0,0,0,.12);
  --pb-chip:rgba(255,255,255,.65); --pb-focus:#b9e3c9;
  position:relative;background:var(--pb-bg);color:var(--pb-ink);font-family:'Public Sans','Montserrat',system-ui,sans-serif}
.acc-promo-bar-main{position:relative;display:flex;align-items:center;justify-content:center;gap:.9rem;width:100%;margin:0;padding:.6rem 1rem;background:none;border:0;color:inherit;font:inherit;font-weight:600;font-size:1rem;line-height:1.3;cursor:pointer;text-align:left}
.acc-promo-bar-ico{flex:none;opacity:.9}
.acc-promo-bar-photo{flex:none;width:3.4rem;height:3.4rem;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 3px 10px rgba(74,36,18,.28)}
.acc-promo-bar-txt{display:flex;flex-direction:column;min-width:0}
.acc-promo-line2{font-weight:500;font-size:.93rem;color:var(--pb-sub)}
.acc-promo-short{display:none}
.acc-promo-bar-cta{flex:none;display:inline-flex;align-items:center;gap:.35rem;padding:.45rem 1.05rem;border-radius:999px;background:var(--pb-cta-bg);color:var(--pb-cta-ink);font-weight:700;font-size:.95rem;white-space:nowrap;box-shadow:var(--pb-cta-shadow);transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}
.acc-promo-bar-cta::after{content:"";width:.5em;height:.5em;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);margin-left:.05em}
.acc-promo-bar-main:hover .acc-promo-bar-cta{transform:translateY(-1px);filter:brightness(1.05)}
.acc-promo-bar-main:focus-visible{outline:3px solid var(--pb-focus);outline-offset:-3px}
.acc-promo-bar.has-code .acc-promo-line1{white-space:nowrap}
@media (max-width:639px){
  .acc-promo-long,.acc-promo-line2{display:none}.acc-promo-short{display:inline}
  .acc-promo-bar-main{font-size:.92rem;gap:.6rem;padding:.55rem .75rem;justify-content:space-between}
  .acc-promo-bar-ico{display:none}
  .acc-promo-bar-photo{width:2.6rem;height:2.6rem;border-width:2px}
  .acc-promo-bar-txt{flex:1}
  .acc-promo-bar-cta{font-size:.84rem;padding:.4rem .75rem}
  .acc-promo-bar.has-code .acc-promo-line1{white-space:normal}
}

/* ---------- banner: Thanksgiving ---------- */
.acc-promo-bar.acc-promo--thanksgiving{
  --pb-bg:linear-gradient(90deg,#fbeed8 0%,#fdf6ea 38%,#fdf6ea 62%,#f9e6c8 100%);
  --pb-ink:#4a2412; --pb-sub:#7a4a2a;
  --pb-cta-bg:linear-gradient(180deg,#36a86c,#287a4f); --pb-cta-ink:#fff; --pb-cta-shadow:0 2px 0 #1f6a48,0 6px 14px rgba(40,122,79,.25);
  --pb-chip:#c98a4b; --pb-focus:#1c7fb0;
  border-bottom:3px solid transparent;border-image:linear-gradient(90deg,#c9632a,#e2a03f 35%,#a8322d 70%,#c9632a) 1}
.acc-promo--thanksgiving .acc-promo-bar-main{padding-top:.55rem;padding-bottom:.55rem}
.acc-promo--thanksgiving .acc-promo-line1{font-family:'Lora',Georgia,serif;font-style:italic;font-weight:600;font-size:1.32rem;line-height:1.2;letter-spacing:-.005em}
.acc-promo--thanksgiving.has-code .acc-promo-line1{font-style:normal;font-size:1.15rem}
/* a few falling leaves at the two ends; decoration only, hidden on small screens */
.acc-promo-bar.acc-promo--thanksgiving::before,.acc-promo-bar.acc-promo--thanksgiving::after{content:"";position:absolute;top:0;bottom:0;width:11rem;pointer-events:none;background-repeat:no-repeat;opacity:.9}
.acc-promo-bar.acc-promo--thanksgiving::before{left:1.2rem;background-image:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23c9632a' d='M12 2c1 3 3 4 6 4-1 2-1 4 1 6-3 0-5 1-6 4-1-3-3-4-6-4 2-2 2-4 1-6 3 0 5-1 4-4z'/%3E%3Cpath stroke='%23874018' stroke-width='1.2' stroke-linecap='round' d='M12 9v13'/%3E%3C/svg%3E"),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e2a03f' d='M12 2c1 3 3 4 6 4-1 2-1 4 1 6-3 0-5 1-6 4-1-3-3-4-6-4 2-2 2-4 1-6 3 0 5-1 4-4z'/%3E%3Cpath stroke='%23a56a1c' stroke-width='1.2' stroke-linecap='round' d='M12 9v13'/%3E%3C/svg%3E");
  background-size:1.9rem,1.35rem;background-position:0 30%,3.6rem 78%}
.acc-promo-bar.acc-promo--thanksgiving::after{right:1.2rem;transform:scaleX(-1);background-image:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23a8322d' d='M12 2c1 3 3 4 6 4-1 2-1 4 1 6-3 0-5 1-6 4-1-3-3-4-6-4 2-2 2-4 1-6 3 0 5-1 4-4z'/%3E%3Cpath stroke='%236e1d1a' stroke-width='1.2' stroke-linecap='round' d='M12 9v13'/%3E%3C/svg%3E"),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e2a03f' d='M12 2c1 3 3 4 6 4-1 2-1 4 1 6-3 0-5 1-6 4-1-3-3-4-6-4 2-2 2-4 1-6 3 0 5-1 4-4z'/%3E%3Cpath stroke='%23a56a1c' stroke-width='1.2' stroke-linecap='round' d='M12 9v13'/%3E%3C/svg%3E");
  background-size:1.7rem,1.25rem;background-position:0 62%,3.2rem 22%}
@media (max-width:1100px){.acc-promo-bar.acc-promo--thanksgiving::before,.acc-promo-bar.acc-promo--thanksgiving::after{display:none}}
@media (max-width:639px){
  .acc-promo--thanksgiving .acc-promo-line1{font-size:1.02rem;line-height:1.25}
  .acc-promo--thanksgiving.has-code .acc-promo-line1{font-size:.95rem}
}

/* ---------- popup: shared ---------- */
.acc-promo-overlay{
  --pm-accent:#287a4f; --pm-top:linear-gradient(90deg,#36a86c,#1c7fb0);
  --pm-tint:#eef8f1; --pm-dash:#9fd0b4; --pm-sign:#3b4a5a;
  position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(13,26,43,.62);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity .2s ease}
.acc-promo-overlay[hidden]{display:none}
.acc-promo-overlay.is-open{opacity:1}
.acc-promo-modal{position:relative;width:100%;max-width:30rem;max-height:calc(100vh - 2rem);overflow:auto;background:#fff;border-radius:1.1rem;padding:2.1rem 2rem 1.7rem;box-shadow:0 24px 70px rgba(8,20,36,.45);font-family:'Public Sans','Montserrat',system-ui,sans-serif;color:#22303f;transform:translateY(10px) scale(.985);transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.acc-promo-modal::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;border-radius:1.1rem 1.1rem 0 0;background:var(--pm-top);z-index:2}
.acc-promo-overlay.is-open .acc-promo-modal{transform:none}
.acc-promo-x{position:absolute;top:.8rem;right:.8rem;z-index:3;display:grid;place-items:center;width:2.4rem;height:2.4rem;border:0;border-radius:50%;background:#f1f5f8;color:#4a5a6a;cursor:pointer;box-shadow:0 1px 4px rgba(8,20,36,.18)}
.acc-promo-x:hover{background:#e3eaf0;color:#0f2136}
.acc-promo-x:focus-visible,.acc-promo-linkbtn:focus-visible,.acc-promo-btn:focus-visible{outline:3px solid #7cc4ea;outline-offset:2px}
.acc-promo-photo{display:block;width:calc(100% + 4rem);max-width:none;height:auto;margin:-2.1rem -2rem 1.3rem;border-radius:1.1rem 1.1rem 0 0;aspect-ratio:960/418;object-fit:cover}
.acc-promo-eyebrow{margin:0 0 .5rem;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--pm-accent)}
.acc-promo-title{margin:0 0 .7rem;font-family:'Lora',Georgia,serif;font-weight:600;font-size:1.85rem;line-height:1.15;letter-spacing:-.01em;color:#0f2136}
.acc-promo-lead{margin:0 0 1.2rem;font-size:1.02rem;line-height:1.55;color:#3b4a5a}
.acc-promo-sign{margin:-.5rem 0 1.2rem;font-family:'Lora',Georgia,serif;font-style:italic;font-size:1.05rem;color:var(--pm-sign)}
.acc-promo-label{display:block;margin:0 0 .4rem;font-weight:700;font-size:.95rem;color:#0f2136}
.acc-promo-row{display:flex;gap:.6rem}
.acc-promo-input{flex:1;min-width:0;height:3.3rem;padding:0 1rem;border:2px solid #c3d0db;border-radius:.7rem;font:inherit;font-size:1.15rem;color:#0f2136;background:#fff}
.acc-promo-input::placeholder{color:#8a99a8}
.acc-promo-input:focus{outline:none;border-color:#1c7fb0;box-shadow:0 0 0 4px rgba(28,127,176,.18)}
.acc-promo-input.has-error{border-color:#b3261e}
.acc-promo-btn{display:inline-flex;align-items:center;justify-content:center;height:3.3rem;padding:0 1.4rem;border:0;border-radius:.7rem;background:linear-gradient(180deg,#36a86c,#287a4f);color:#fff !important;font:inherit;font-weight:700;font-size:1.05rem;text-decoration:none !important;white-space:nowrap;cursor:pointer;box-shadow:0 2px 0 #1f6a48,0 8px 18px rgba(40,122,79,.28);transition:transform .15s ease,filter .15s ease}
.acc-promo-btn:hover{transform:translateY(-1px);filter:brightness(1.04)}
.acc-promo-btn[disabled]{opacity:.7;cursor:progress;transform:none}
.acc-promo-btn-wide{display:flex;width:100%;margin-top:1.1rem}
.acc-promo-msg{min-height:1.3em;margin:.45rem 0 0;font-size:.92rem;font-weight:600;color:#b3261e}
.acc-promo-consent{margin:.75rem 0 0;font-size:.76rem;line-height:1.5;color:#5d6e7f}
.acc-promo-consent b{color:#3b4a5a}
.acc-promo-consent a{color:#215f3e;text-decoration:underline;white-space:nowrap}
.acc-promo-fine{margin:.55rem 0 0;font-size:.8rem;line-height:1.5;color:#66788a}
.acc-promo-sent{margin:0 0 .6rem;font-size:1.08rem;line-height:1.45;color:#3b4a5a}
.acc-promo-sent.is-ok{font-weight:600;color:#0f2136}
.acc-promo-sent[hidden]{display:none}
.acc-promo-vh{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.acc-promo-worth{margin:0 0 .5rem;font-size:1.05rem;line-height:1.5;color:#22303f}
.acc-promo-worth b{color:#0f2136}
.acc-promo-how{margin:.2rem 0 0}
.acc-promo-again{margin:.7rem 0 0;text-align:center}
.acc-promo-linkbtn{background:none;border:0;padding:.2rem .4rem;font:inherit;font-size:.9rem;color:#5d6e7f;text-decoration:underline;cursor:pointer}
.acc-promo-linkbtn:hover{color:#0f2136}
.acc-promo-title:focus{outline:none}
.acc-promo-call{margin:.9rem 0 0;text-align:center;font-size:.98rem;color:#3b4a5a}
.acc-promo-call a{color:#215f3e;font-weight:700;white-space:nowrap}

/* ---------- popup: Thanksgiving ---------- */
.acc-promo-overlay.acc-promo--thanksgiving{
  --pm-accent:#b3541e; --pm-top:linear-gradient(90deg,#c9632a,#e2a03f 40%,#a8322d);
  --pm-tint:#fdf3e3; --pm-dash:#e0b477; --pm-sign:#7a4a2a;
  background:rgba(38,22,12,.6)}
.acc-promo--thanksgiving .acc-promo-modal{background:linear-gradient(180deg,#fffaf2 0%,#fff 42%)}
.acc-promo--thanksgiving .acc-promo-sign::before{content:"";display:inline-block;width:1.05em;height:1.05em;margin-right:.4em;vertical-align:-.15em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23c9632a' d='M12 2c1 3 3 4 6 4-1 2-1 4 1 6-3 0-5 1-6 4-1-3-3-4-6-4 2-2 2-4 1-6 3 0 5-1 4-4z'/%3E%3Cpath stroke='%23874018' stroke-width='1.2' stroke-linecap='round' d='M12 9v13'/%3E%3C/svg%3E") center/contain no-repeat}

@media (max-width:480px){
  .acc-promo-overlay{align-items:flex-end;padding:0}
  .acc-promo-modal{max-width:none;border-radius:1.1rem 1.1rem 0 0;padding:1.9rem 1.25rem calc(1.4rem + env(safe-area-inset-bottom));max-height:92vh;transform:translateY(24px)}
  .acc-promo-modal::before{border-radius:1.1rem 1.1rem 0 0}
  .acc-promo-photo{width:calc(100% + 2.5rem);margin:-1.9rem -1.25rem 1.1rem;aspect-ratio:960/360}
  .acc-promo-title{font-size:1.6rem}
  .acc-promo-lead{font-size:.98rem}
  .acc-promo-row{flex-direction:column}
  .acc-promo-input{flex:none;width:100%}
  .acc-promo-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .acc-promo-overlay,.acc-promo-modal,.acc-promo-bar-cta,.acc-promo-btn{transition:none}
}
