/* IVD Donations — form, drawer, Gift Aid */

.ivd-form{
  --ivd-accent:#0a5c36;
  --ivd-accent-text:#fff;
  --ivd-radius:10px;
  --ivd-line:#cfd6da;
  --ivd-ink:#12181c;
  --ivd-muted:#5d6b74;
  background:#fff;
  border-radius:var(--ivd-radius);
  box-shadow:0 18px 50px rgba(10,20,30,.13);
  overflow:hidden;
  max-width:640px;
  color:var(--ivd-ink);
}

.ivd-form__headbar{
  padding:24px 28px 18px;
  text-align:center;
  background:#fbfcfc;
  border-bottom:4px solid #d5dfe4;
}
.ivd-form__heading{margin:0;font-size:1.5rem;line-height:1.3;font-weight:700;}
.ivd-form__inner{padding:28px;}
.ivd-form__intro{margin:0 0 26px;color:var(--ivd-ink);font-size:1.05rem;line-height:1.55;}

.ivd-form__labelrow{
  display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;
}
.ivd-form__label{font-weight:700;font-size:1.15rem;}
.ivd-req{color:#d63b25;text-decoration:none;border:0;margin-left:2px;}
.ivd-form__currency{
  background:#e4efe8;color:#2c3a33;border-radius:8px;
  padding:10px 16px;font-weight:600;font-size:.95rem;white-space:nowrap;
}

.ivd-amts{display:grid;gap:12px;margin-bottom:12px;}
.ivd-amts[data-cols="2"]{grid-template-columns:repeat(2,1fr);}
.ivd-amts[data-cols="3"]{grid-template-columns:repeat(3,1fr);}
.ivd-amts[data-cols="4"]{grid-template-columns:repeat(4,1fr);}

.ivd-amt{
  appearance:none;cursor:pointer;
  border:1px solid var(--ivd-line);
  background:#fff;color:var(--ivd-ink);
  border-radius:8px;padding:18px 8px;
  font-size:1.3rem;font-weight:700;line-height:1;
  transition:background .15s,color .15s,border-color .15s,transform .08s;
}
.ivd-amt:hover{border-color:var(--ivd-accent);}
.ivd-amt:active{transform:translateY(1px);}
.ivd-amt.is-active{background:var(--ivd-accent);border-color:var(--ivd-accent);color:var(--ivd-accent-text);}
.ivd-amt .amount{font-size:inherit;font-weight:inherit;color:inherit;}
.ivd-amt:focus-visible,.ivd-btn:focus-visible,.ivd-custom__input:focus-visible{
  outline:3px solid #7aa7ff;outline-offset:2px;
}

.ivd-custom{position:relative;margin-top:12px;}
.ivd-custom__sym{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  color:var(--ivd-muted);font-weight:600;pointer-events:none;opacity:0;transition:opacity .15s;
}
.ivd-custom.has-value .ivd-custom__sym{opacity:1;}
.ivd-custom__input{
  width:100%;border:1px solid var(--ivd-line);border-radius:8px;
  padding:20px 16px;font-size:1.15rem;text-align:center;background:#fff;color:var(--ivd-ink);
}
.ivd-custom.has-value .ivd-custom__input{text-align:left;padding-left:34px;}
.ivd-custom__input::placeholder{color:#7b8891;}
.ivd-custom__input::-webkit-outer-spin-button,
.ivd-custom__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.ivd-custom__input[type=number]{-moz-appearance:textfield;}

.ivd-form__error{margin:14px 0 0;color:#c22c17;font-weight:600;font-size:.95rem;}

.ivd-btn{
  display:flex;align-items:center;justify-content:center;gap:12px;
  width:100%;border:0;border-radius:8px;cursor:pointer;
  padding:20px 24px;font-size:1.15rem;font-weight:700;text-decoration:none;
  transition:filter .15s,opacity .15s;
}
.ivd-btn--primary{background:var(--ivd-accent,#0a5c36);color:var(--ivd-accent-text,#fff);}
.ivd-btn--primary:hover{filter:brightness(1.08);color:var(--ivd-accent-text,#fff);}
.ivd-btn.is-busy{opacity:.65;pointer-events:none;}
.ivd-form__submit{margin-top:28px;}

.ivd-secure{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin:18px 0 0;color:#3c4a52;font-size:.98rem;font-weight:500;
}
.ivd-secure__lock{
  width:15px;height:17px;flex:0 0 auto;
  background:currentColor;color:#0a7c42;
  -webkit-mask:no-repeat center/contain;mask:no-repeat center/contain;
  -webkit-mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a5 5 0 00-5 5v3H6a2 2 0 00-2 2v9a2 2 0 002 2h12a2 2 0 002-2v-9a2 2 0 00-2-2h-1V6a5 5 0 00-5-5zm-3 5a3 3 0 016 0v3H9V6z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1a5 5 0 00-5 5v3H6a2 2 0 00-2 2v9a2 2 0 002 2h12a2 2 0 002-2v-9a2 2 0 00-2-2h-1V6a5 5 0 00-5-5zm-3 5a3 3 0 016 0v3H9V6z'/%3E%3C/svg%3E");
}
.ivd-form__notice{padding:20px;background:#fff8e1;border:1px dashed #d8b34a;border-radius:8px;color:#6b5310;}

/* ---------------------------------------------------------------- Drawer */
/* Above sticky headers and theme overlays, which commonly sit at 99999/100000. */
.ivd-drawer-root{position:fixed;inset:0;z-index:2147483000;pointer-events:none;visibility:hidden;}
.ivd-drawer-root.is-open{pointer-events:auto;visibility:visible;}
.ivd-drawer__overlay{
  position:absolute;inset:0;background:rgba(9,16,20,.5);
  opacity:0;transition:opacity .28s ease;
}
.ivd-drawer-root.is-open .ivd-drawer__overlay{opacity:1;}

.ivd-drawer{
  position:absolute;top:0;right:0;height:100%;
  width:min(430px,100%);
  background:#fff;display:flex;flex-direction:column;
  box-shadow:-14px 0 44px rgba(8,16,22,.22);
  transform:translateX(100%);transition:transform .3s cubic-bezier(.32,.72,.3,1);
}
.ivd-drawer-root.is-open .ivd-drawer{transform:translateX(0);}
.ivd-drawer__inner{display:flex;flex-direction:column;height:100%;min-height:0;}

.ivd-drawer__head{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 22px;border-bottom:1px solid #e6ebee;flex:0 0 auto;
}
.ivd-drawer__title{margin:0;font-size:1.2rem;font-weight:700;}
.ivd-drawer__close{
  border:0;background:none;font-size:2rem;line-height:1;cursor:pointer;color:#5d6b74;padding:0 4px;
}
.ivd-drawer__body{flex:1 1 auto;overflow-y:auto;padding:18px 22px;-webkit-overflow-scrolling:touch;}
.ivd-drawer__empty{color:#5d6b74;text-align:center;padding:36px 0;}

.ivd-lines{list-style:none;margin:0;padding:0;}
.ivd-line{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid #eef2f4;align-items:flex-start;}
.ivd-line__media{flex:0 0 56px;}
.ivd-line__media img{width:56px;height:56px;object-fit:cover;border-radius:8px;display:block;}
.ivd-line__main{flex:1 1 auto;min-width:0;}
.ivd-line__name{display:block;font-weight:600;line-height:1.35;}
.ivd-line__meta{display:block;font-size:.85rem;color:#5d6b74;margin-top:3px;}
.ivd-line__side{text-align:right;flex:0 0 auto;}
.ivd-line__price{display:block;font-weight:700;}
.ivd-line__remove{
  border:0;background:none;padding:4px 0 0;cursor:pointer;
  font-size:.82rem;color:#87949d;text-decoration:underline;
}
.ivd-line__remove:hover{color:#c22c17;}

.ivd-line.has-no-media .ivd-line__main{padding-left:2px;}

.ivd-upsells{margin-top:18px;padding-top:18px;border-top:1px solid #eef2f4;}
.ivd-upsells__title{margin:0 0 12px;font-size:1rem;font-weight:700;}
.ivd-upsells__list{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.ivd-upsell{
  display:flex;align-items:center;gap:12px;justify-content:space-between;
  border:1px solid #e2e8eb;border-radius:8px;padding:12px 14px;
}
.ivd-upsell__name{display:block;font-weight:600;font-size:.95rem;}
.ivd-upsell__desc{display:block;font-size:.82rem;color:#5d6b74;margin-top:2px;}
.ivd-upsell__add{
  flex:0 0 auto;border:1px solid #0a5c36;background:#fff;color:#0a5c36;
  border-radius:6px;padding:9px 14px;font-weight:700;cursor:pointer;font-size:.9rem;white-space:nowrap;
}
.ivd-upsell__add:hover{background:#0a5c36;color:#fff;}
.ivd-upsell__add .amount{color:inherit;}

.ivd-giftaid{margin-top:18px;background:#f2f8f4;border:1px solid #cfe3d7;border-radius:10px;padding:14px 16px;}
.ivd-giftaid.is-on{background:#e6f4ec;border-color:#9ccfb3;}
.ivd-giftaid__row{display:flex;gap:12px;align-items:flex-start;cursor:pointer;margin:0;}
.ivd-giftaid__row input{margin-top:4px;flex:0 0 auto;width:18px;height:18px;}
.ivd-giftaid__title{display:block;font-weight:700;line-height:1.4;}
.ivd-giftaid__amt{color:#0a7c42;}
.ivd-giftaid__note{display:block;font-size:.78rem;color:#4c5a63;margin-top:6px;line-height:1.5;}
.ivd-giftaid--checkout{margin:20px 0;}

.ivd-drawer__foot{flex:0 0 auto;border-top:1px solid #e6ebee;padding:18px 22px;background:#fff;}
.ivd-drawer__total{display:flex;justify-content:space-between;align-items:center;font-size:1.15rem;margin-bottom:6px;}
.ivd-drawer__total strong{font-size:1.35rem;}
.ivd-drawer__giftaid-note{margin:0 0 12px;font-size:.85rem;color:#0a7c42;font-weight:600;}
.ivd-drawer__checkout{margin-top:8px;}
.ivd-drawer__cartlink{display:block;text-align:center;margin-top:12px;font-size:.9rem;color:#5d6b74;text-decoration:underline;}
.ivd-drawer .ivd-secure{margin-top:14px;font-size:.88rem;}

/* Mobile: bottom sheet */
@media (max-width:600px){
  .ivd-drawer{
    top:auto;bottom:0;right:0;left:0;width:100%;
    height:min(90vh,720px);
    border-radius:18px 18px 0 0;
    transform:translateY(100%);
    box-shadow:0 -14px 44px rgba(8,16,22,.24);
  }
  .ivd-drawer-root.is-open .ivd-drawer{transform:translateY(0);}
  .ivd-drawer__head::before{
    content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);
    width:42px;height:4px;border-radius:2px;background:#d3dade;
  }
  .ivd-drawer__head{position:relative;padding-top:24px;}
  .ivd-form__inner{padding:20px;}
  .ivd-form__headbar{padding:20px 20px 16px;}
  .ivd-form__heading{font-size:1.25rem;}
  .ivd-amts[data-cols="3"],.ivd-amts[data-cols="4"]{grid-template-columns:repeat(2,1fr);}
  .ivd-amt{font-size:1.15rem;padding:16px 6px;}
}

/* ------------------------------------------------- goal / stats / modal */
.ivd-goal{margin:0 0 20px;}
.ivd-goal__figures{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.ivd-goal__raised strong{font-size:1.5rem;color:#0a5c36;}
.ivd-goal__raised .amount{color:inherit;}
.ivd-goal__target{color:#5d6b74;font-size:.95rem;}
.ivd-goal__bar{position:relative;height:12px;border-radius:6px;background:#e3e9ec;overflow:hidden;}
.ivd-goal__fill{display:block;height:100%;background:#0a5c36;border-radius:6px;transition:width .6s ease;}
.ivd-goal__meta{display:flex;gap:16px;margin-top:8px;font-size:.9rem;color:#5d6b74;}

.ivd-stat{display:flex;flex-direction:column;gap:4px;}
.ivd-stat__value{font-size:2rem;font-weight:700;line-height:1.1;color:#0a5c36;}
.ivd-stat__value .amount{color:inherit;}
.ivd-stat__label{font-size:.92rem;color:#5d6b74;}

.ivd-donate-btn-wrap{display:flex;}
.ivd-donate-btn{
  border:0;cursor:pointer;border-radius:8px;padding:14px 28px;
  font-weight:700;font-size:1rem;background:#0a5c36;color:#fff;
  transition:filter .15s;
}
.ivd-donate-btn:hover{filter:brightness(1.1);}

.ivd-modal{position:fixed;inset:0;z-index:2147483001;display:flex;align-items:center;justify-content:center;padding:20px;}
.ivd-modal[hidden]{display:none;}
.ivd-modal__overlay{position:absolute;inset:0;background:rgba(9,16,20,.55);}
.ivd-modal__panel{
  position:relative;z-index:1;width:min(640px,100%);
  max-height:90vh;overflow-y:auto;border-radius:12px;background:transparent;
}
.ivd-modal__close{
  position:absolute;top:10px;right:14px;z-index:2;
  border:0;background:none;font-size:2rem;line-height:1;cursor:pointer;color:#5d6b74;
}
.ivd-modal .ivd-form{box-shadow:0 24px 70px rgba(6,12,18,.35);}

/* ------------------------------------------------------- header icons */
.ivd-hdr{display:flex;align-items:center;gap:6px;}
.ivd-hdr__ico{
  position:relative;display:inline-flex;align-items:center;gap:7px;
  padding:9px;border-radius:8px;color:inherit;text-decoration:none;line-height:0;
  transition:background .15s,color .15s;
}
.ivd-hdr__ico:hover{background:rgba(10,92,54,.09);color:inherit;}
.ivd-hdr__ico svg{width:23px;height:23px;fill:currentColor;display:block;}
.ivd-hdr__label{font-size:.9rem;font-weight:600;line-height:1;}
.ivd-hdr__cart .ivd-cart-count{
  position:absolute;top:1px;right:1px;
  min-width:18px;height:18px;padding:0 5px;
  border-radius:9px;background:#0a5c36;color:#fff;
  font-size:.68rem;font-weight:700;line-height:18px;text-align:center;
}
.ivd-hdr__cart .ivd-cart-count.is-empty{display:none;}
@media (max-width:600px){
  .ivd-hdr{gap:2px;}
  .ivd-hdr__ico{padding:7px;}
  .ivd-hdr__ico svg{width:21px;height:21px;}
  .ivd-hdr__label{display:none;}
}

body.ivd-noscroll{overflow:hidden;}

@media (prefers-reduced-motion:reduce){
  .ivd-drawer,.ivd-drawer__overlay{transition:none;}
}
