/* GD Gift Pricing Engine — Quotation Flow (v2.17.0): fly-to-cart (product pages) + one-page quotation (checkout) */

/* ============================================================ 1. fly to cart (product page) */
.gd-fly-clone{position:fixed;z-index:100000;pointer-events:none;object-fit:cover;border-radius:12px;
  box-shadow:0 10px 30px rgba(0,0,0,.22);will-change:transform,opacity;
  transition:transform .85s cubic-bezier(.45,.05,.55,.95),opacity .85s ease,width .85s cubic-bezier(.45,.05,.55,.95),height .85s cubic-bezier(.45,.05,.55,.95),left .85s cubic-bezier(.45,.05,.55,.95),top .85s cubic-bezier(.45,.05,.55,.95);}
.gd-fly-clone.gd-fly-go{opacity:.25;}
/* v2.19.3 — phones fly a "Quotation" pill from the button to the bottom-bar cart (the gallery image is off-screen there) */
.gd-fly-clone.gd-fly-label{display:inline-block;width:auto;height:auto;padding:9px 16px;border-radius:999px;background:#0069ff;color:#fff;
  font-family:inherit;font-size:14px;font-weight:600;line-height:1;letter-spacing:.2px;white-space:nowrap;object-fit:unset;}
/* badge / icon pop when the clone lands */
@keyframes gdFlyBump{0%{transform:scale(1)}35%{transform:scale(1.45)}70%{transform:scale(.92)}100%{transform:scale(1)}}
.gd-fly-bump{animation:gdFlyBump .55s cubic-bezier(.36,.07,.19,.97) both;}
/* button "added" state */
.single_add_to_cart_button.gd-fly-busy{opacity:.75;cursor:progress;}
.single_add_to_cart_button.gd-fly-added{background:#16a34a !important;border-color:#16a34a !important;color:#fff !important;opacity:1 !important;}
.single_add_to_cart_button.gd-fly-added .gd-fly-tick{display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:-3px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}
/* small "View Quotation" link that appears after the first add (stays until the customer leaves the page) */
.gd-fly-view{display:none;margin:10px 0 0;font-size:14px;line-height:1.4;}
.gd-fly-view.gd-fly-view-on{display:flex;align-items:center;gap:8px;}
.gd-fly-view a{font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.gd-fly-view .gd-fly-view-count{color:#3a4f66;}
@media (prefers-reduced-motion:reduce){.gd-fly-clone{transition:none;} .gd-fly-bump{animation:none;}}

/* ============================================================ 2. one-page quotation (checkout page) */
/* layout: items LEFT (with Total), Quotation Details RIGHT (boxed, sticky), Send button under Order notes */
body.gd-oq form.checkout .ct-order-review{position:static;border:0;padding:0;background:transparent;}
body.gd-oq form.checkout .ct-customer-details{border:2px solid #e7e8e9;padding:30px;border-radius:6px;background:#fff;}
@media (min-width:1000px){
  body.gd-oq form.checkout.ct-woocommerce-checkout{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;column-gap:45px;}
  body.gd-oq form.checkout .ct-order-review{grid-column:1;grid-row:1;}
  body.gd-oq form.checkout .ct-customer-details{grid-column:2;grid-row:1;position:sticky;top:var(--gd-oq-sticky-top,150px);}
}
@media (max-width:999.98px){
  body.gd-oq form.checkout .ct-order-review{order:1;}
  body.gd-oq form.checkout .ct-customer-details{order:2;padding:22px 18px;}
}
/* form: two-column rows (Name + Phone, Company + Email) */
body.gd-oq .woocommerce-billing-fields__field-wrapper{display:flex;flex-wrap:wrap;column-gap:4%;}
body.gd-oq .woocommerce-billing-fields__field-wrapper .form-row{float:none;margin-left:0;margin-right:0;}
body.gd-oq .woocommerce-billing-fields__field-wrapper .form-row-first,
body.gd-oq .woocommerce-billing-fields__field-wrapper .form-row-last{width:48%;flex:0 0 48%;}
body.gd-oq .woocommerce-billing-fields__field-wrapper .form-row-wide{width:100%;flex:0 0 100%;}
@media (max-width:600px){
  body.gd-oq .woocommerce-billing-fields__field-wrapper .form-row-first,
  body.gd-oq .woocommerce-billing-fields__field-wrapper .form-row-last{width:100%;flex:0 0 100%;}
}
body.gd-oq #customer_details .col-2{margin-top:22px;}
body.gd-oq .woocommerce-additional-fields > h3{margin-bottom:12px;}
body.gd-oq #payment{margin-top:18px;background:transparent;padding:0;}
body.gd-oq #payment .place-order{padding:0;margin:0;}
body.gd-oq #place_order{width:100%;}
/* the theme prints WooCommerce's "Your order" heading above the review block — reuse it as the items heading */
body.gd-oq #order_review_heading{margin-bottom:14px;}

/* items table */
body.gd-oq .gd-oq-table{width:100%;border-collapse:collapse;border:0;margin:0;}
body.gd-oq .gd-oq-table th,body.gd-oq .gd-oq-table td{border:0;background:transparent;}
body.gd-oq .gd-oq-table thead th{text-align:left;font-weight:600;font-size:15px;padding:0 0 12px;border-bottom:1px solid #e7e8e9;}
body.gd-oq .gd-oq-table thead th.gd-oq-th-qty,body.gd-oq .gd-oq-table thead th.gd-oq-th-subtotal{text-align:right;}
body.gd-oq .gd-oq-table tbody td{padding:18px 10px 18px 0;border-bottom:1px solid #eef0f2;vertical-align:top;}
body.gd-oq .gd-oq-table td.gd-oq-thumb{width:96px;padding-right:16px;}
body.gd-oq .gd-oq-table td.gd-oq-thumb img{display:block;width:80px;height:80px;object-fit:cover;border-radius:6px;background:#f4f6f8;}
body.gd-oq .gd-oq-title{font-weight:600;font-size:16px;line-height:1.35;margin:0 0 6px;}
body.gd-oq .gd-oq-title a{color:inherit;text-decoration:none;}
body.gd-oq .gd-oq-table dl.variation{margin:0;font-size:14px;line-height:1.5;color:#3a4f66;}
body.gd-oq .gd-oq-table dl.variation dt,body.gd-oq .gd-oq-table dl.variation dd{display:inline;margin:0;padding:0;border:0;}
body.gd-oq .gd-oq-table dl.variation dt{font-weight:600;color:#192a3d;}
body.gd-oq .gd-oq-table dl.variation dd{margin-right:0;}
body.gd-oq .gd-oq-table dl.variation dd p{display:inline;margin:0;}
body.gd-oq .gd-oq-table dl.variation dd::after{content:"";display:block;}
body.gd-oq .gd-oq-unit{font-size:14px;color:#3a4f66;margin-top:6px;}
body.gd-oq .gd-oq-table td.gd-oq-qty,body.gd-oq .gd-oq-table td.gd-oq-subtotal{white-space:nowrap;text-align:right;font-size:15px;padding-top:20px;}
body.gd-oq .gd-oq-table td.gd-oq-subtotal{font-weight:600;}
body.gd-oq .gd-oq-table td.gd-oq-removecol{width:30px;text-align:right;padding-right:0;padding-top:16px;}
body.gd-oq a.gd-oq-remove{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;
  font-size:19px;line-height:1;color:#7a8794;text-decoration:none;transition:background .15s,color .15s;}
body.gd-oq a.gd-oq-remove:hover{background:#fee2e2;color:#dc2626;}
body.gd-oq .gd-oq-mobile-line{display:none;}
body.gd-oq .gd-oq-table tfoot th,body.gd-oq .gd-oq-table tfoot td{padding:18px 0 0;font-size:18px;font-weight:700;border:0;}
body.gd-oq .gd-oq-table tfoot td{text-align:right;}
body.gd-oq .gd-oq-more{margin:14px 0 0;font-size:14px;}
body.gd-oq .gd-oq-more a{text-decoration:none;color:#3a4f66;}
body.gd-oq .gd-oq-more a:hover{text-decoration:underline;}
@media (max-width:640px){
  body.gd-oq .gd-oq-table thead th.gd-oq-th-qty,body.gd-oq .gd-oq-table thead th.gd-oq-th-subtotal,
  body.gd-oq .gd-oq-table td.gd-oq-qty,body.gd-oq .gd-oq-table td.gd-oq-subtotal{display:none;}
  body.gd-oq .gd-oq-table td.gd-oq-thumb{width:76px;padding-right:12px;}
  body.gd-oq .gd-oq-table td.gd-oq-thumb img{width:64px;height:64px;}
  body.gd-oq .gd-oq-mobile-line{display:flex;justify-content:space-between;gap:12px;margin-top:8px;font-size:15px;}
  body.gd-oq .gd-oq-mobile-sub{font-weight:600;}
  body.gd-oq .gd-oq-mobile-qty{white-space:nowrap;}
  body.gd-oq .gd-oq-table tfoot th{text-align:left;}
  /* v2.19.4 — phones: the hidden Quantity/Subtotal columns still kept their width (the Total row spans them), so the
     item row only used ~75% of the table and the name wrapped hard. Rows are flex now: thumb 76 / name grows / × 30. */
  body.gd-oq .gd-oq-table,body.gd-oq .gd-oq-table thead,body.gd-oq .gd-oq-table tbody,body.gd-oq .gd-oq-table tfoot{display:block;width:100%;}
  body.gd-oq .gd-oq-table tr{display:flex;align-items:flex-start;width:100%;}
  body.gd-oq .gd-oq-table thead tr{border-bottom:1px solid #e7e8e9;}
  body.gd-oq .gd-oq-table tbody tr{border-bottom:1px solid #eef0f2;}
  body.gd-oq .gd-oq-table thead th,body.gd-oq .gd-oq-table tbody td{border-bottom:0;}
  body.gd-oq .gd-oq-table td.gd-oq-thumb{flex:0 0 76px;}
  body.gd-oq .gd-oq-table td.gd-oq-name,body.gd-oq .gd-oq-table th.gd-oq-th-product{flex:1 1 auto;min-width:0;}
  body.gd-oq .gd-oq-table td.gd-oq-removecol,body.gd-oq .gd-oq-table th.gd-oq-th-remove{flex:0 0 30px;}
  body.gd-oq .gd-oq-table tfoot th{flex:1 1 auto;}
  body.gd-oq .gd-oq-table tfoot td{flex:0 0 auto;}
}
@media (max-width:999.98px){
  /* v2.19.4 — Blocksy pulls #payment out by its desktop card padding (margin 0 -26px); our mobile card padding is
     18px, so "Send Me Quotation" poked out of the card on phones. Keep it inside the card below the breakpoint. */
  body.gd-oq #payment{margin-left:0;margin-right:0;}
  /* v2.19.4 — "Your Items" sat 50px under the header on phones (theme content spacing); tighten to 22px. */
  body.gd-oq .ct-container-full{padding-top:22px;}
}

/* empty quotation */
.gd-oq-empty-card{text-align:center;padding:48px 24px;border:2px dashed #e7e8e9;border-radius:8px;color:#3a4f66;max-width:560px;margin:10px auto 30px;}
.gd-oq-empty-card svg{color:#c2c9d1;margin-bottom:10px;}
.gd-oq-empty-title{font-size:20px;font-weight:600;color:#192a3d;margin:0 0 6px;}
.gd-oq-empty-text{margin:0 0 20px;}
