/* Double A Challenge Box V42 — responsive builder & checkout refinement
   Layered after v31 add-on styles. Scope to .customizer so the remainder
   of the site, Spin & Win, basket and checkout remain unchanged. */

/* The V31 display:inline-flex!important rule made [hidden] step buttons visible. */
#customizerForm .form-nav #backStep[hidden],
#customizerForm .form-nav #nextStep[hidden],
#customizerForm .form-nav #addToCart[hidden] {
  display: none !important;
}

.customizer, .customizer .customizer-shell, .customizer .customizer-main,
.customizer .form-card, .customizer .form-step, .customizer .addon-studio,
.customizer .addon-grid, .customizer .addon-product-card,
.customizer .addon-product-card__body, .customizer .form-nav {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

/* Image upload: a genuine file input with a larger, custom-branded tap target. */
.customizer .upload-zone--review.da-upload-v42 {
  position: relative;
  padding: 23px 23px 20px;
  margin-top: 18px;
  border: 1px solid rgba(166, 132, 56, .25);
  border-radius: 22px;
  background: linear-gradient(150deg, #fffdf9 0%, #f8f2e7 100%);
  box-shadow: 0 10px 30px rgba(19, 38, 52, .045), inset 0 1px 0 #fff;
  text-align: left;
}
.customizer .da-upload-top { display:flex; align-items:flex-start; gap:14px; }
.customizer .da-upload-symbol {
  width:47px; height:47px; flex:0 0 47px;
  display:grid; place-items:center;
  color:#926a1f; background:#fff6df;
  border:1px solid rgba(183, 141, 46, .2);
  border-radius:14px;
}
.customizer .da-upload-symbol svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.customizer .da-upload-copy{flex:1;min-width:0}
.customizer .da-upload-copy h5{margin:0 0 6px;font-size:18px;line-height:1.3;letter-spacing:-.02em;font-weight:800;color:#142a3a}
.customizer .da-upload-copy h5 span{display:inline-block;margin-left:6px;vertical-align:2px;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:0;color:#87651f;background:#f4e9ce}
.customizer .da-upload-copy p{margin:0;font-size:12.5px;line-height:1.55;color:#65717b}
.customizer .da-upload-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 0 61px}
.customizer .da-upload-button{
  position:relative;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:46px;padding:10px 18px;border-radius:13px;
  border:1px solid rgba(158,113,33,.28);
  background:linear-gradient(180deg,#fff9ed,#efdcae);
  box-shadow:0 5px 12px rgba(135,97,31,.09),inset 0 1px 0 #fff;
  font-size:13px;font-weight:800;line-height:1.25;color:#173247;
  cursor:pointer;user-select:none;
  transition:background .18s ease,transform .18s ease,border-color .18s ease;
}
.customizer .da-upload-button:hover{background:#f7e3b5;border-color:rgba(158,113,33,.5);transform:translateY(-1px)}
.customizer .da-upload-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.customizer .da-upload-input{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  padding:0!important;opacity:0!important;cursor:pointer!important;
  font-size:16px!important;z-index:2;
}
.customizer .da-upload-button:focus-within{outline:3px solid rgba(199,156,59,.55);outline-offset:3px}
.customizer .da-upload-help{font-size:11.5px;color:#78808a;line-height:1.4}
.customizer .da-upload-v42 .upload-status{margin:13px 0 0;color:#214d36;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.customizer .da-upload-v42 .upload-status[hidden]{display:none!important}

@media (max-width: 820px) {
  /* Product cards: full-width product photo, then unclipped text and price. */
  .customizer .addon-studio.addon-studio--reordered {
    padding:19px 14px!important;
    margin-top:22px;
    border-radius:21px;
    background:linear-gradient(180deg,#fff,#fcf9f3);
  }
  .customizer .addon-studio__head.addon-studio__head--simple{display:grid;gap:12px;align-items:start}
  .customizer .addon-studio__head--simple h4{font-size:clamp(26px,6.2vw,33px);line-height:1.12}
  .customizer .addon-studio__head--simple p{font-size:13px;line-height:1.55}
  .customizer .addon-studio__status{min-width:0;width:100%;grid-template-columns:minmax(0,1fr) auto;text-align:left}
  .customizer .addon-personalization-promise{align-items:flex-start}
  .customizer .addon-personalization-promise strong{font-size:12px;line-height:1.3}
  .customizer .addon-personalization-promise span:not(.addon-personalization-promise__mark){font-size:11px;line-height:1.5}
  .customizer .addon-flow-heading strong,.customizer .addon-final-summary__head strong{font-size:15px}
  .customizer .addon-flow-heading small,.customizer .addon-final-summary__head small{font-size:12px;line-height:1.5}
  .customizer .addon-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:16px!important;width:100%}
  .customizer .addon-product-card{
    display:grid!important;grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;min-height:0!important;
    width:100%;margin:0;border-radius:19px;
    background:#fff;overflow:hidden;isolation:isolate;
    border:1px solid rgba(18,45,63,.10);
    box-shadow:0 10px 28px rgba(16,39,58,.075);
  }
  .customizer .addon-product-card__media{
    position:relative;grid-column:1;grid-row:1;
    width:100%;height:184px!important;min-height:0!important;
    background:#ede8de;overflow:hidden;
  }
  .customizer .addon-product-card__media img {
    width:100%;height:100%!important;min-height:0!important;
    max-height:none!important;display:block;object-fit:cover;
  }
  .customizer .addon-product-card__sample{
    top:12px;left:12px;padding:6px 10px;
    font-size:10px;line-height:1.2;letter-spacing:.07em;
    border-radius:999px;
  }
  .customizer .addon-product-card__quick{
    width:auto;min-width:0;min-height:36px;
    left:12px;bottom:12px;top:auto;right:auto;
    padding:0 13px;gap:7px;display:inline-flex;
    border-radius:999px;font-size:11px;
  }
  .customizer .addon-product-card__quick span{display:inline!important}
  .customizer .addon-product-card__status{top:12px;right:12px;font-size:10px;padding:7px 10px}
  .customizer .addon-product-card__body{
    grid-column:1;grid-row:2;width:100%;
    padding:16px 16px 15px!important;gap:12px!important;
    min-height:0;display:flex;flex-direction:column;
  }
  .customizer .addon-product-card__smart-head{
    display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
    align-items:start!important;column-gap:13px;row-gap:5px;
  }
  .customizer .addon-product-card__smart-head>div:first-child{min-width:0}
  .customizer .addon-product-card__smart-head h5{
    margin:0 0 6px!important;padding-right:0!important;
    font-size:19px!important;line-height:1.22!important;
    letter-spacing:-.02em;overflow-wrap:break-word;
  }
  .customizer .addon-product-card__smart-head p{
    display:block!important;overflow:visible!important;
    -webkit-line-clamp:unset!important;line-clamp:unset!important;
    margin:0;font-size:12.5px!important;line-height:1.5!important;
    white-space:normal!important;
  }
  .customizer .addon-product-card__price{
    position:static!important;top:auto!important;right:auto!important;
    min-width:77px;max-width:none;padding:9px 9px;
    border-radius:12px;text-align:center;
    display:grid;justify-items:center;gap:4px;
    background:#fbf5e7;
  }
  .customizer .addon-product-card__price .addon-price-badge__label{font-size:9px!important;letter-spacing:.05em}
  .customizer .addon-product-card__price strong{font-size:19px!important;line-height:1.05}
  .customizer .addon-product-card__price.is-included strong{font-size:12px!important}
  .customizer .addon-product-card__smart-meta{
    font-size:11.5px!important;font-weight:650;
    line-height:1.45;gap:8px;align-items:center;margin:0;
  }
  .customizer .addon-product-card__smart-meta svg{width:24px;height:24px;flex:0 0 24px;padding:5px}
  .customizer .addon-product-card__smart-footer{width:100%;gap:12px;padding-top:12px;margin-top:2px;align-items:center}
  .customizer .addon-product-card__optional{font-size:10px;letter-spacing:.11em}
  .customizer .addon-product-card__action{
    width:auto;min-width:125px!important;min-height:46px!important;height:auto;
    padding:12px 16px;border-radius:13px;
    font-size:12px!important;line-height:1.2;flex-shrink:0;
  }
  .customizer .addon-product-card__action-icon{width:23px;height:23px}
  .customizer .addon-product-card__action-icon svg{width:15px;height:15px}
  .customizer .addon-product-card__action:focus-visible,
  .customizer .addon-product-card__quick:focus-visible,
  .customizer .addon-bundle__cta:focus-visible{outline:3px solid rgba(199,156,59,.55);outline-offset:3px}
  /* Selected add-ons' choices must remain usable, not tiny. */
  .customizer .addon-theme-panel{padding:13px;gap:11px;border-radius:13px}
  .customizer .addon-theme-panel__label,.customizer .addon-theme-custom span{font-size:12px!important;line-height:1.4}
  .customizer .addon-theme-panel__choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .customizer .addon-theme-choice{min-height:52px;padding:10px;min-width:0}
  .customizer .addon-theme-choice strong{font-size:11px;line-height:1.3}
  .customizer .addon-theme-choice small{font-size:10px;line-height:1.35}
  .customizer .addon-theme-custom input{font-size:16px!important;min-height:44px}
  .customizer .addon-bundle.addon-bundle--samples{grid-template-columns:minmax(0,1fr)!important;gap:15px;padding:15px;border-radius:18px}
  .customizer .addon-bundle__sample-grid{min-height:175px}
  .customizer .addon-bundle__title-row h5{font-size:21px}
  .customizer .addon-bundle__copy p{font-size:12px;line-height:1.5}
  .customizer .addon-bundle__included span{font-size:10px}
  .customizer .addon-bundle__price-label{font-size:11px!important}
  .customizer .addon-bundle__price-main>strong{font-size:26px}
  .customizer .addon-bundle__cta{min-height:48px;width:100%;font-size:13px}
  .customizer .addon-bundle-mode-note{font-size:12px;line-height:1.5}
  .customizer .customizer-review-block__head h4{font-size:19px;line-height:1.25}
  .customizer .customizer-review-block__head p{font-size:12px;line-height:1.55}
  /* Final total remains calm, compact and easy to scan. */
  .customizer .addon-final-summary{margin-top:23px;padding-top:22px}
  .customizer .addon-studio__summary--final{padding:14px 17px;border-radius:18px}
  .customizer .addon-studio__summary--final>div:not(.addon-studio__saving){
    display:flex;justify-content:space-between;align-items:baseline;
    gap:12px;padding:8px 0;
    font-size:13px;line-height:1.4;
  }
  .customizer .addon-studio__summary--final>div span{min-width:0;overflow-wrap:anywhere}
  .customizer .addon-studio__summary--final>div strong{flex:0 0 auto;white-space:nowrap;font-size:15px}
  .customizer .addon-studio__summary--final .addon-studio__summary-total{
    border-top:1px solid rgba(16,35,52,.1);margin-top:7px;padding-top:14px!important;
  }
  .customizer .addon-studio__summary--final .addon-studio__summary-total span{font-size:15px;font-weight:800;color:#102a3e}
  .customizer .addon-studio__summary--final .addon-studio__summary-total strong{font-size:27px!important;color:#936b21;letter-spacing:-.035em}
  /* Crucial: only actual visible step actions occupy the nav row. */
  #customizerForm .form-nav{
    display:grid!important;grid-template-columns:112px minmax(0,1fr)!important;
    align-items:stretch!important;justify-content:stretch!important;
    gap:11px!important;width:100%;min-width:0;
    margin-top:22px;padding:0!important;
  }
  #customizerForm .form-nav>.step-action{
    box-sizing:border-box!important;min-width:0!important;max-width:100%!important;
    width:100%!important;margin:0!important;float:none!important;
    min-height:56px!important;height:auto!important;
    padding:12px 13px!important;border-radius:15px!important;
    font-size:14px!important;line-height:1.2!important;white-space:normal!important;
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    flex:none!important;
  }
  #customizerForm .form-nav #backStep:not([hidden]){grid-column:1!important;grid-row:1}
  #customizerForm .form-nav #nextStep:not([hidden]){grid-column:2!important;grid-row:1}
  #customizerForm .form-nav #backStep[hidden] + #nextStep:not([hidden]){grid-column:1 / -1!important}
  #customizerForm.is-final-step .form-nav{grid-template-columns:94px minmax(0,1fr)!important}
  #customizerForm .form-nav #addToCart.cart-cta:not([hidden]){
    grid-column:2!important;grid-row:1;
    display:grid!important;
    grid-template-columns:31px minmax(0,1fr) auto!important;
    gap:9px!important;align-items:center;
    padding:9px 11px!important;min-height:62px!important;
    text-align:left!important;overflow:hidden;
  }
  #customizerForm .cart-cta__icon{width:31px;height:31px;border-radius:9px}
  #customizerForm .cart-cta__icon svg{width:18px;height:18px}
  #customizerForm .cart-cta__copy{min-width:0;gap:2px;align-self:center}
  #customizerForm .cart-cta__copy strong{
    font-size:13px!important;line-height:1.15!important;
    letter-spacing:-.01em;white-space:normal!important;
    overflow-wrap:break-word;
  }
  #customizerForm .cart-cta__copy small{font-size:9.5px!important;line-height:1.3!important;white-space:normal}
  #customizerForm .cart-cta__total{min-width:51px;height:35px;padding:0 7px;font-size:13px;border-radius:9px}
  #customizerForm .form-nav>.step-action:focus-visible{outline:3px solid rgba(201,157,54,.7);outline-offset:3px}
}

@media (max-width: 420px) {
  .customizer .addon-product-card__media{height:165px!important}
  .customizer .addon-product-card__body{padding:15px 13px 14px!important}
  .customizer .addon-product-card__smart-head{column-gap:10px}
  .customizer .addon-product-card__smart-head h5{font-size:18px!important}
  .customizer .addon-product-card__price{min-width:72px;padding:8px}
  .customizer .addon-product-card__smart-meta{font-size:11px!important}
  .customizer .addon-studio.addon-studio--reordered{padding:16px 12px!important}
  .customizer .upload-zone--review.da-upload-v42{padding:18px 15px;border-radius:18px}
  .customizer .da-upload-top{gap:10px}
  .customizer .da-upload-symbol{width:40px;height:40px;flex-basis:40px;border-radius:11px}
  .customizer .da-upload-symbol svg{width:21px;height:21px}
  .customizer .da-upload-copy h5{font-size:16px}
  .customizer .da-upload-copy h5 span{font-size:9px}
  .customizer .da-upload-copy p{font-size:12px}
  .customizer .da-upload-actions{margin-left:0;gap:9px;align-items:flex-start}
  .customizer .da-upload-button{flex:1 1 100%;min-height:47px}
  .customizer .da-upload-help{width:100%;font-size:11px;text-align:center}
  #customizerForm .form-nav{grid-template-columns:83px minmax(0,1fr)!important;gap:9px!important}
  #customizerForm.is-final-step .form-nav{grid-template-columns:83px minmax(0,1fr)!important}
  #customizerForm .form-nav>.step-action{padding:10px 8px!important;font-size:13px!important}
  #customizerForm .form-nav #addToCart.cart-cta:not([hidden]){padding:9px 10px!important;grid-template-columns:28px minmax(0,1fr) auto!important;gap:6px!important}
  #customizerForm .cart-cta__icon{width:28px;height:28px}
  #customizerForm .cart-cta__copy strong{font-size:12px!important}
  #customizerForm .cart-cta__copy small{display:none}
  #customizerForm .cart-cta__total{min-width:48px;height:32px;font-size:12px}
}
@media (max-width: 352px){
  #customizerForm .form-nav, #customizerForm.is-final-step .form-nav{grid-template-columns:76px minmax(0,1fr)!important;gap:7px!important}
  #customizerForm .form-nav #addToCart.cart-cta:not([hidden]){grid-template-columns:minmax(0,1fr) auto!important;gap:7px!important}
  #customizerForm .cart-cta__icon{display:none}
  #customizerForm .cart-cta__copy strong{font-size:11.5px!important}
  .customizer .addon-theme-panel__choices{grid-template-columns:1fr}
  .customizer .addon-product-card__smart-head p{font-size:12px!important}
}
@media (prefers-reduced-motion:reduce){
  .customizer .da-upload-button{transition:none!important}
  .customizer .da-upload-button:hover{transform:none}
}
/* Guaranteed screen-reader-only help, independent of the base stylesheet. */
.customizer .da-upload-v42 #referenceFilesHint{
  position:absolute!important;width:1px!important;height:1px!important;
  margin:-1px!important;padding:0!important;border:0!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;
  clip-path:inset(50%)!important;white-space:nowrap!important;
}
