/* Eddy Brand Checkout 0.4.0. Colours, fonts and corners come from CSS
   variables set on .ehc by the plugin settings (default: FastForward's theme). */

.ehc{max-width:640px;margin:0 auto;font-family:var(--ehc-font);font-size:15px;line-height:1.5;color:var(--ehc-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.ehc *,.ehc *::before,.ehc *::after{box-sizing:border-box;}
.ehc [hidden]{display:none!important;}
.ehc .ehc-ico{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}

.ehc .ehc-card{position:relative;background:var(--ehc-surface);border:1px solid rgba(30,34,40,.05);border-radius:var(--ehc-radius);box-shadow:0 5px 35px rgba(30,34,40,.07);padding:32px;}

/* Header */
.ehc .ehc-head{margin:0 0 24px;padding:0 0 22px;border-bottom:1px solid var(--ehc-border);}
.ehc .ehc-eyebrow{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:12px;font-weight:700;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--ehc-accent);}
.ehc .ehc-eyebrow .ehc-ico{width:14px;height:14px;}
.ehc .ehc-line{display:flex;align-items:baseline;justify-content:space-between;gap:16px;}
.ehc .ehc-title{margin:0;padding:0;font-family:var(--ehc-heading-font);font-size:24px;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--ehc-heading);text-transform:none;}
.ehc .ehc-price{margin:0;font-family:var(--ehc-heading-font);font-size:24px;font-weight:600;line-height:1.25;color:var(--ehc-heading);white-space:nowrap;}
.ehc .ehc-sub{margin:6px 0 0;font-size:14px;color:var(--ehc-muted);}
.ehc .ehc-textlink{flex:0 0 auto;font-size:14px;font-weight:600;color:var(--ehc-accent);text-decoration:underline;text-underline-offset:3px;}
.ehc .ehc-textlink:hover{color:var(--ehc-accent);filter:brightness(.9);}

/* Cart summary */
.ehc .ehc-lines{list-style:none;margin:16px 0 0;padding:0;}
.ehc .ehc-lines__row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0;padding:9px 0;border-bottom:1px dashed var(--ehc-border);font-size:15px;line-height:1.4;list-style:none;}
.ehc .ehc-lines__row::before{display:none;}
.ehc .ehc-lines__name{min-width:0;color:var(--ehc-heading);font-weight:500;}
.ehc .ehc-lines__qty{color:var(--ehc-muted);font-weight:500;white-space:nowrap;}
.ehc .ehc-lines__amt{flex:0 0 auto;color:var(--ehc-heading);font-weight:600;white-space:nowrap;}
.ehc .ehc-lines__row--discount .ehc-lines__name,.ehc .ehc-lines__row--discount .ehc-lines__amt{color:#1E6A44;}
.ehc .ehc-total{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:14px 0 0;}
.ehc .ehc-total span{font-size:15px;font-weight:600;color:var(--ehc-heading);}
.ehc .ehc-total strong{font-family:var(--ehc-heading-font);font-size:24px;font-weight:600;line-height:1.2;color:var(--ehc-heading);}
.ehc.ehc--empty .ehc-head{margin:0;padding:0;border:0;}

/* Steps */
.ehc .ehc-steps{display:flex;align-items:center;gap:12px;list-style:none;margin:0 0 24px;padding:0;}
.ehc .ehc-step{display:flex;align-items:center;gap:10px;margin:0;padding:0;font-size:14px;font-weight:600;line-height:1.2;color:var(--ehc-muted);list-style:none;}
.ehc .ehc-step::marker{content:none;}
.ehc .ehc-step::before{display:none;}
.ehc .ehc-step:first-child{flex:1 1 auto;}
.ehc .ehc-step:first-child::after{content:"";flex:1 1 auto;height:2px;margin-left:6px;border-radius:2px;background:var(--ehc-border);transition:background .3s ease;}
.ehc .ehc-step__num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--ehc-border);background:var(--ehc-surface);font-size:13px;font-weight:700;color:var(--ehc-muted);transition:all .25s ease;}
.ehc .ehc-step.is-current{color:var(--ehc-heading);}
.ehc .ehc-step.is-current .ehc-step__num{border-color:var(--ehc-accent);color:var(--ehc-accent);box-shadow:0 0 0 4px var(--ehc-accent-soft);}
.ehc .ehc-step.is-done{color:var(--ehc-heading);}
.ehc .ehc-step.is-done .ehc-step__num{border-color:var(--ehc-accent);background:var(--ehc-accent);color:transparent;position:relative;}
.ehc .ehc-step.is-done .ehc-step__num::before{content:"";position:absolute;width:12px;height:12px;background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;}
.ehc .ehc-step.is-done:first-child::after{background:var(--ehc-accent);}

/* Panels appear with a short fade */
.ehc .ehc-panel{animation:ehc-in .28s ease both;}

/* Form */
.ehc .ehc-form{display:grid;gap:16px;margin:0;}
.ehc .ehc-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.ehc .ehc-field{display:grid;gap:6px;min-width:0;margin:0;}
.ehc .ehc-field label{display:block;margin:0;padding:0;font-size:14px;font-weight:600;line-height:1.3;color:var(--ehc-heading);text-transform:none;letter-spacing:0;}
.ehc input.ehc-input,.ehc select.ehc-input{display:block;width:100%;height:48px;margin:0;padding:0 14px;border:1px solid var(--ehc-border);border-radius:var(--ehc-input-radius);background:var(--ehc-surface);color:var(--ehc-heading);font-family:var(--ehc-font);font-size:15px;font-weight:500;line-height:1.2;box-shadow:none;outline:none;-webkit-appearance:none;appearance:none;transition:border-color .15s ease,box-shadow .15s ease;}
.ehc input.ehc-input::placeholder{color:var(--ehc-muted);opacity:1;}
.ehc .ehc-input:hover{border-color:color-mix(in srgb,var(--ehc-border) 60%,var(--ehc-heading));}
.ehc .ehc-input:focus{border-color:var(--ehc-accent);box-shadow:0 0 0 3px var(--ehc-accent-ring);}
.ehc .ehc-input[aria-invalid="true"]{border-color:#D93F4C;}
.ehc .ehc-select{position:relative;}
.ehc .ehc-select select.ehc-input{padding-right:42px;cursor:pointer;}
.ehc .ehc-select::after{content:"";position:absolute;right:16px;top:50%;width:12px;height:12px;margin-top:-6px;pointer-events:none;background:var(--ehc-muted);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;}
.ehc .ehc-hint{margin:0;font-size:13px;line-height:1.4;color:var(--ehc-muted);}
.ehc .ehc-turnstile{display:flex;justify-content:center;min-width:0;margin:-8px 0;}
.ehc .ehc-turnstile iframe{max-width:100%;}
.ehc .ehc-error{margin:0;padding:11px 14px;border:1px solid #F4C7CD;border-radius:var(--ehc-input-radius);background:#FFF5F6;color:#9B2C3A;font-size:14px;line-height:1.45;}

/* Primary button: same shape and type as FastForward's site buttons */
.ehc .ehc-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:54px;margin:4px 0 0;padding:14px 24px;border:0;border-radius:var(--ehc-radius);background:var(--ehc-accent);color:#fff;font-family:var(--ehc-heading-font);font-size:17px;font-weight:600;line-height:1.2;letter-spacing:0;text-transform:none;text-decoration:none;text-shadow:none;box-shadow:0 10px 24px -12px var(--ehc-accent-shadow);cursor:pointer;transition:transform .15s ease,filter .15s ease;}
.ehc .ehc-btn:hover{filter:brightness(1.07);transform:translateY(-1px);color:#fff;}
.ehc .ehc-btn:active{transform:translateY(0);}
.ehc .ehc-btn:focus-visible{outline:3px solid var(--ehc-accent-ring);outline-offset:2px;}
.ehc .ehc-btn[disabled]{cursor:progress;filter:saturate(.85);transform:none;}
.ehc .ehc-btn .ehc-spinner{display:none;}
.ehc .ehc-btn.is-busy .ehc-spinner{display:inline-block;}
.ehc .ehc-btn.is-busy .ehc-arrow{display:none;}
.ehc .ehc-spinner{display:inline-block;width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;animation:ehc-spin .7s linear infinite;}
.ehc .ehc-spinner--lg{width:30px;height:30px;border-width:3px;border-color:var(--ehc-accent-soft);border-top-color:var(--ehc-accent);}

/* Payment step */
.ehc .ehc-who{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 20px;padding:12px 16px;border-radius:var(--ehc-input-radius);background:var(--ehc-tint);font-size:14px;line-height:1.4;}
.ehc .ehc-who strong{display:block;font-weight:600;color:var(--ehc-heading);}
.ehc .ehc-who span{display:block;color:var(--ehc-text);word-break:break-all;}
.ehc .ehc-link{flex:0 0 auto;margin:0;padding:6px 4px;border:0;background:none;color:var(--ehc-accent);font-family:var(--ehc-font);font-size:14px;font-weight:600;line-height:1.2;letter-spacing:0;text-transform:none;text-decoration:underline;text-underline-offset:3px;cursor:pointer;box-shadow:none;}
.ehc .ehc-link:hover{color:var(--ehc-accent);filter:brightness(.9);background:none;}

.ehc .ehc-frame{position:relative;min-height:400px;}
.ehc .ehc-frame.is-ready{min-height:0;}
.ehc .ehc-iframe{display:block;width:100%;height:400px;margin:0;padding:0;border:0;background:transparent;opacity:0;transition:opacity .3s ease;}
.ehc .ehc-frame.is-ready .ehc-iframe{opacity:1;}
.ehc .ehc-skeleton{position:absolute;inset:0;display:flex;flex-direction:column;padding:3px;pointer-events:none;}
.ehc .ehc-sk{display:block;border-radius:6px;background:linear-gradient(90deg,#EEF0F5 0%,#F7F8FB 40%,#EEF0F5 80%);background-size:200% 100%;animation:ehc-shimmer 1.3s ease-in-out infinite;}
.ehc .ehc-sk--label{width:34%;height:12px;margin:6px 0 9px;}
.ehc .ehc-sk--input{height:48px;margin-bottom:12px;border-radius:var(--ehc-input-radius);}
.ehc .ehc-sk-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.ehc .ehc-sk-row>span{display:block;}
.ehc .ehc-sk--btn{height:54px;margin-top:22px;border-radius:var(--ehc-radius);}
.ehc .ehc-overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-radius:var(--ehc-input-radius);background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:ehc-in .2s ease both;}
.ehc .ehc-overlay p{margin:0;font-size:15px;font-weight:600;color:var(--ehc-heading);}
.ehc .ehc-status{margin:14px 0 0;font-size:14px;line-height:1.45;color:var(--ehc-heading);}
.ehc .ehc-status:empty{display:none;}
.ehc .ehc-fallback{margin:14px 0 0;text-align:center;font-size:13px;line-height:1.4;}
.ehc .ehc-fallback a{color:var(--ehc-muted);text-decoration:underline;text-underline-offset:3px;}
.ehc .ehc-fallback.is-urgent{padding:12px 14px;border:1px solid #F3D19C;border-radius:var(--ehc-input-radius);background:#FFF8EC;}
.ehc .ehc-fallback.is-urgent a{color:#8A4B00;font-weight:600;}
.ehc .ehc-note{margin:12px 0 0;font-size:12.5px;line-height:1.5;color:var(--ehc-muted);text-align:center;}

/* Success */
.ehc .ehc-done{padding:8px 0 4px;text-align:center;outline:none;}
.ehc .ehc-done__icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:var(--ehc-tint);color:var(--ehc-accent);animation:ehc-pop .45s cubic-bezier(.2,.9,.3,1.3) both;}
.ehc .ehc-done__icon .ehc-ico{width:30px;height:30px;stroke-width:2.6;}
.ehc .ehc-done__title{margin:0 0 8px;font-family:var(--ehc-heading-font);font-size:22px;font-weight:600;line-height:1.3;color:var(--ehc-heading);}
.ehc .ehc-done p{margin:0 0 6px;}
.ehc .ehc-done strong{color:var(--ehc-heading);}
.ehc .ehc-done__note{color:var(--ehc-muted);font-size:14px;}
.ehc .ehc-done .ehc-note{margin-top:14px;font-size:12.5px;}

.ehc .ehc-foot{display:block;margin:24px 0 0;padding:18px 0 0;border-top:1px solid var(--ehc-border);font-size:13px;line-height:1.4;color:var(--ehc-muted);text-align:center;}
.ehc .ehc-foot .ehc-ico{display:inline-block;width:14px;height:14px;margin:0 6px 0 0;vertical-align:-2px;}

@keyframes ehc-spin{to{transform:rotate(360deg);}}
@keyframes ehc-shimmer{0%{background-position:100% 0;}100%{background-position:-100% 0;}}
@keyframes ehc-in{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:none;}}
@keyframes ehc-pop{from{opacity:0;transform:scale(.6);}to{opacity:1;transform:scale(1);}}

@media (max-width:600px){
  .ehc .ehc-card{padding:22px 18px;border-radius:calc(var(--ehc-radius) * .75);}
  .ehc .ehc-row{grid-template-columns:1fr;}
  .ehc .ehc-title,.ehc .ehc-price,.ehc .ehc-total strong{font-size:20px;}
  .ehc .ehc-head{margin-bottom:20px;padding-bottom:18px;}
}
@media (prefers-reduced-motion:reduce){
  .ehc *,.ehc *::before,.ehc *::after{animation:none!important;transition:none!important;}
}
