/**
 * Theme Name: Ismile
 * Theme URI:
 * Description: Input here theme description
 * Author:
 * Author URI:
 * Version: 1.0
 */

.payment-flex {
  display: flex;
  flex-wrap: wrap;
}

.payment-flex-item:nth-child(2) {
  order: 2;
}
.payment-flex-item:nth-child(3) {
  order: 3;
  flex-basis: 100%;
}

.mobile-only-options {
    display: none;
    margin-top: 10px;
    margin-bottom: 10px;
}
@media only screen and (max-width: 1023.9px) {
    .mobile-only-options {
        display: block;
    }
    .mobile-only-options .card__footer-options{
        padding: 0;
    }

    .payment-flex-item:nth-child(2) {
        order: 3;
    }
    .payment-flex-item:nth-child(3) {
        order: 2;
    }
}

/* ---- centered auth card on the my-account page (logged out) ----
   The forms inside reuse the sign-in/sign-up popup markup and styles. */
.my-account-auth {
    max-width: 420px;
    margin: 40px auto 60px;
    color: #172331;
}
.my-account-auth__card h3 {
    text-align: center;
    font-size: 24px;
    margin-bottom: 20px;
}
.my-account-auth__switch {
    text-align: center;
    margin-top: 16px;
}
.my-account-auth__switch a {
    color: #0dc7a3;
}

/* ---- center the lost/reset password form ---- */
form.lost_reset_password {
    max-width: 460px;
    margin: 30px auto 60px;
}
form.lost_reset_password .input,
form.lost_reset_password > div {
    margin: 0 0 14px;
}
form.lost_reset_password label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    color: #172331;
}
form.lost_reset_password input[type="text"],
form.lost_reset_password input[type="password"] {
    width: 100%;
    height: 44px;
    padding: 0 14px;
    border: 1px solid #e3e6ea;
    border-radius: 4px;
    font-size: 14px;
}
form.lost_reset_password button {
    width: 100%;
}
.wp-content .woocommerce-message,
.wp-content .woocommerce-error,
.wp-content .woocommerce-info {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

/* ---- keep the bottom-nav icons on the theme icon font everywhere ---- */
.mobile-menu i[class^="icon-"]:before,
.mobile-menu i[class*=" icon-"]:before {
    font-family: "iSmile" !important;
    font-weight: 400;
}

/* The theme's <body> tag doesn't emit body_class(), so scope by structure:
   when the article content row has no 405px right sidebar (regular pages,
   unlike blog posts), let the content span the full row so the auto
   margins on the auth card / forms actually center. */
.page-article__content:not(:has(.page-article__right)) .wp-content {
    flex: 1 1 100%;
    max-width: 100%;
}

/* ---- sale prices: original crossed out, sale price in commerce red ----
   The compiled dist/css/style.css (SCSS, not rebuildable) un-strikes <del>
   and draws a diagonal divider instead. These later-loading rules re-strike
   the original price and color <ins>; selectors mirror the compiled ones so
   equal specificity + load order wins. */
.price del,
.dgwt-wcas-sp del { /* generic contexts + FiboSearch suggestions */
    text-decoration: line-through;
}
.price ins,
.dgwt-wcas-sp ins {
    color: #e02b27;
    text-decoration: none;
}
/* product cards (listing grids + carousels share the same card component) */
.card__price-cost-quantity .price del {
    text-decoration: line-through;
    padding-left: 0;
}
.card__price-cost-quantity .price del::before {
    content: none; /* drop the old diagonal divider */
}
.card__price-cost-quantity .price del .woocommerce-Price-currencySymbol {
    top: 0;
    margin-right: 1px;
    line-height: inherit;
    font-size: inherit; /* compact, fully struck old price */
}
.card__price-cost-quantity .price ins {
    color: #e02b27;
}
/* single product page main price (also covers JS-swapped variation price) */
.page-product .product-box__content-details-buy-cost-quantity .price del {
    text-decoration: line-through;
    padding-left: 0;
}
.page-product .product-box__content-details-buy-cost-quantity .price del:before {
    content: none;
}
.page-product .product-box__content-details-buy-cost-quantity .price del .woocommerce-Price-currencySymbol {
    top: 0;
    margin-right: 1px;
    line-height: inherit;
    font-size: inherit;
}
.page-product .product-box__content-details-buy-cost-quantity .price ins {
    color: #e02b27;
}

/* ---- "-XX%" discount badge (product cards + product-page gallery) ----
   Card markup: <li class="card-tags__item card-tags__item_red ismile-sale-badge">
   inside .card__over, which is already absolutely positioned over the image.
   Product page: <span class="ismile-sale-badge--product"> inside the
   position:relative .product-img__main gallery box. */
.card__over .card-tags__item.ismile-sale-badge {
    padding: 3px 8px;
    font-size: 12px;
    line-height: 16px;
    font-weight: 600;
    letter-spacing: 0.3px;
    border-radius: 3px;
    background-color: #e02b27;
}
.product-img__main {
    position: relative; /* already set on .page-product — kept as a safety net */
}
.ismile-sale-badge--product {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 5;
    padding: 4px 10px;
    color: #fff;
    font-size: 14px;
    line-height: 18px;
    font-weight: 600;
    letter-spacing: 0.3px;
    border-radius: 3px;
    background-color: #e02b27;
}

/* ---- header sign-in dropdown: wider card, buttons never clip labels ----
   RU "ЗАРЕГИСТРИРОВАТЬСЯ" overflowed the fixed-height nowrap buttons in the
   332px dropdown. Scoped to the desktop header dropdown (hidden < 768px);
   the mobile slide-out menu uses its own separate button. */
.nav__menu__item--sign-in .sign-in {
    min-width: 408px;
}
.nav__menu__item--sign-in .sign-in__controls button {
    flex: 1 1 auto;
    min-width: 0;
    height: auto;
    min-height: 48px;
    padding: 8px 10px;
    line-height: 1.35;
    white-space: normal; /* safety net: wrap to a second row, never clip */
    overflow: visible;
}
/* same clipping risk in the mobile slide-out menu's own sign-in/up buttons */
.mobile-header-menu__login__controls button {
    max-width: 180px;
    height: auto;
    min-height: 48px;
    padding: 8px 10px;
    line-height: 1.35;
    white-space: normal;
    overflow: visible;
    overflow-wrap: anywhere; /* long single-word RU labels must never clip */
}

/* ---- out-of-stock variation pills: visible but inert (grayed + struck) ---- */
#product-attributes li.disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
    filter: grayscale(1);
}
#product-attributes li.disabled span {
    text-decoration: line-through;
}

/* ---- checkout: payment methods box sits under the order-summary box
   instead of spanning full width below everything (pre-existing rule at
   the top of this file forced flex-basis:100% on the 3rd payment-flex
   item, which pushed it to its own full-width row leaving a large gap
   under the order box). Match the 391px order-summary width and right-
   align it in the wrapped row so it lines up directly beneath it. ---- */
.payment-flex-item:nth-child(3) {
    flex: 0 1 391px;
    margin-left: auto;
}
@media (max-width: 1023px) {
    .payment-flex-item:nth-child(3) {
        flex-basis: 100%;
        margin-left: 0;
    }
}

/* ---- product-card & mobile quick-add variation options: out-of-stock
   ones are shown (not hidden) but grayed + struck through, matching the
   full product-page pill treatment. ---- */
.js-card-attributes.disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
    filter: grayscale(1);
    text-decoration: line-through;
}

/* ---- discount badge: keep it above the product image everywhere. The
   product image (or its owl-carousel wrapper) was painting over the
   badge on the single-product gallery and inside carousels. ---- */
.ismile-sale-badge--product {
    z-index: 50;
    pointer-events: none;
}
.card__over {
    z-index: 5;
}
.card__over .card-tags__item.ismile-sale-badge {
    position: relative;
    z-index: 5;
}

/* ---- product-card price: visually center it in the price/buy row.
   .card__price-cost is display:flex; justify-content:space-between,
   which pins .card__price-cost-quantity to the left edge and the buy
   button to the right — its box is only as wide as the price text, so
   centering text.price alone (previous attempt) was a no-op. Stretch
   the price container to fill the space left of the fixed-width buy
   button, then center within it. ---- */
.card__price-cost-quantity {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    text-align: center;
}
.card__price-cost-quantity .price {
    text-align: center;
    justify-content: center;
}

/* ---- product cards: the "(sis. KM)"-style VAT suffix is only useful on
   the product page itself; hide it on every card/carousel context in all
   languages (same pattern already used for the FiboSearch suggestions). */
.card .woocommerce-price-suffix,
.card__price-cost-quantity .woocommerce-price-suffix {
    display: none !important;
}

/* ---- take back .icon-heart from flexible-checkout-fields.
   Its new-front.css (enqueued on the checkout page, and on any page that
   loads its assets) ships an UNSCOPED

       .icon-heart:before { content: "\e921" !important;
                            font-family: fcf-icomoon !important }

   on a class name this theme has used since launch. Declaring font-family
   on the pseudo-element beats the `i { font-family: iSmile !important }` the
   theme relies on — inherited values always lose to a declared one — so the
   bottom-nav Lemmikud icon and the cart's wishlist toggle rendered as
   fcf-icomoon's \e921, a horizontal bar.

   Matched with !important and one more class of specificity, scoped to the
   places the theme actually puts an .icon-heart, so the plugin's own icons
   inside its own markup keep working. ---- */
.mobile-menu i.icon-heart:before,
.page-shopping-card i.icon-heart:before,
.basket i.icon-heart:before {
    font-family: "iSmile" !important;
    content: "\e90b" !important;
}

/* The cart toggle carries both classes when the product is already in the
   wishlist; the filled heart must still win there. */
.mobile-menu i.icon-heart.icon-favourite-active:before,
.page-shopping-card i.icon-heart.icon-favourite-active:before,
.basket i.icon-heart.icon-favourite-active:before {
    font-family: "iSmile" !important;
    content: "\e919" !important;
}

/* ---- a favourited product-card heart reads as red, not black.
   .card__favourite-icon .icon sets only font-size, so the filled heart
   inherited the body text colour: favouriting something turned it black,
   which looks like a rendering fault rather than a state. The outline
   (not-yet-favourited) heart keeps the muted default so the two states stay
   distinguishable.

   Deliberately NOT applied to .toggle-wishlist-button or the Lemmikud
   page's remove button — both are green-tinted buttons where a red glyph
   would clash, and neither was reported. ---- */
.card__favourite-icon.active .icon-favourite-active {
    color: #e2264d;
}

.card__favourite-icon.active:hover .icon-favourite-active {
    color: #c2183c;
}

/* ---- favourites counter on the header heart.
   Mirrors the basket badge exactly (.header .nav__menu__item--basket .counter)
   so the two read as one system, in red rather than the brand green. The
   parent needs position:relative for the absolute badge to hang off, and the
   badge hides itself at zero — a "0" beside a heart is noise, not
   information. ---- */
.header .nav__menu__item--favourite {
    position: relative;
}

.header .nav__menu__item--favourite .counter {
    border-radius: 8px;
    border: 1px solid #fff;
    color: #fff;
    background-color: #e2264d;
    position: absolute;
    top: -2px;
    left: 13px;
    padding: 0 2px;
    height: 15px;
    min-width: 15px;
    font-weight: 500;
    font-size: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* Zero favourites: no badge. :empty covers the case where JS clears it. */
.header .nav__menu__item--favourite .counter:empty {
    display: none;
}

/* ---- checkout column order on desktop: payment BEFORE the order summary.
   The row is billing | order-summary | payment. The summary carries the
   shipping choice, the terms text and "Esita tellimus", so with payment
   last the customer was asked to submit the order before they had picked
   how to pay. Payment becomes the middle step; summary + submit is last.

   Extends the .payment-flex-item:nth-child() ordering already at the top of
   this file rather than introducing a second scheme — same selectors, same
   specificity, later in the file so these win. Mobile (<1024px) already
   puts payment before the summary and is left alone.

   margin-left:auto is reset because the earlier rule uses it to right-align
   payment as the LAST item; in the middle it would eat all the free space
   and shove the two columns apart. ---- */
@media (min-width: 1024px) {
    .payment-flex-item:nth-child(2) { /* order summary + submit */
        -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3;
    }
    .payment-flex-item:nth-child(3) { /* payment methods */
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
        margin-left: 0;
        margin-right: 20px;
    }
}

/* ==========================================================================
   Search (FiboSearch) — redesign, 2026-08-01
   --------------------------------------------------------------------------
   Scoped entirely to .dgwt-wcas-* so a plugin update cannot wipe it, and so
   nothing here leaks into the rest of the theme.

   The problem it fixes: the stock Pirx layout renders the field and a hard
   dark submit block as two separate objects with a notch wedged between them,
   and gives the input no focus treatment at all. This makes it ONE object —
   the submit becomes a mint disc sitting inside the field's right edge, which
   is also how the rest of the site draws its rounded cards.

   Every colour is a token already used elsewhere in the theme (mint #0dc7a3,
   ink #172331, off-white #f8f8f9). Nothing new is invented.

   SPECIFICITY — why the selectors look repetitive
   ------------------------------------------------
   FiboSearch ships a second, heavier tier of its own on top of its base CSS:
   the "Pirx" skin, whose selectors run to .dgwt-wcas-style-pirx.dgwt-wcas-
   search-wrapp-mobile.dgwt-wcas-search-filled .dgwt-wcas-sf-wrapp
   input[type=search].dgwt-wcas-search-input — (0,6,1). The wrapper on this
   site carries dgwt-wcas-style-pirx, so a plain .dgwt-wcas-search-wrapp X
   rule (0,2,0) loses even though style.css is enqueued AFTER the plugin's.
   That is exactly what happened on the first attempt: the wrapper picked up
   the new box while the input kept border-radius:30px/background:#eee and the
   submit kept position:absolute;left:23px — so the field looked untouched.

   Hence: the root class is repeated (.A.A, a legal +1 class each time) to
   climb over that tier, and the handful of properties Pirx sets from an even
   heavier state selector are marked !important. Both are deliberate; do not
   "tidy" them away without re-checking against
   plugins/ajax-search-for-woocommerce/assets/css/style.min.css.

   Written against the real DOM, which is:
     .dgwt-wcas-search-wrapp > form > .dgwt-wcas-sf-wrapp >
        label.screen-reader-text, input, .dgwt-wcas-preloader,
        .dgwt-wcas-voice-search, button.dgwt-wcas-search-submit
   i.e. the button is already last, so flex order needs no help.
   ========================================================================== */

.dgwt-wcas-search-wrapp {
    --wcas-ink:   #172331;
    --wcas-muted: #747b83;
    --wcas-line:  #e6e8ea;
    --wcas-fill:  #f8f8f9;
    --wcas-mint:  #0dc7a3;
    --wcas-mint-deep: #0a9d81;
    --wcas-mint-wash: #e7f8f4;
}

/* ---- the field: one rounded object ---- */
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp {
    display: flex;
    align-items: center;
    height: 48px;
    padding: 0 6px 0 14px;
    background: var(--wcas-fill) !important;   /* .dgwt-wcas-open-pirx … sets #fff at (0,4,0) */
    border: 1.5px solid var(--wcas-line);
    border-radius: 14px;
    box-shadow: none;
    position: relative;
    transition: border-color .16s cubic-bezier(.2,.6,.35,1),
                background .16s cubic-bezier(.2,.6,.35,1),
                box-shadow .16s cubic-bezier(.2,.6,.35,1);
}
/* The plugin's clearfix pseudos become stray flex items in a flex container. */
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp::before,
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp::after { display: none; }

.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp:hover {
    background: #fff !important;
    border-color: #d3d8dd;
}
/* :focus-within, not :focus — the ring must show while the INPUT has focus. */
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp:focus-within {
    background: #fff !important;
    border-color: var(--wcas-mint);
    box-shadow: 0 0 0 3px rgba(13, 199, 163, .22);
}

.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input,
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp input.dgwt-wcas-search-input {
    flex: 1 1 auto;
    min-width: 0;
    width: auto !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;                     /* Pirx: 13px 24px 13px 48px */
    border: 0 !important;                      /* Pirx: 2px solid transparent */
    border-radius: 0 !important;               /* Pirx: 30px */
    background: none !important;               /* Pirx: #eee, and #dfdfdf on hover */
    box-shadow: none !important;
    font-family: inherit !important;           /* Pirx hard-codes Roboto */
    font-size: 15px !important;
    line-height: normal !important;
    color: var(--wcas-ink);
    -webkit-appearance: none;
    appearance: none;
}
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp input.dgwt-wcas-search-input:focus {
    border: 0 !important;
    box-shadow: none !important;
    outline: none;      /* the ring lives on the wrapper, drawn above */
}
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp input.dgwt-wcas-search-input::placeholder {
    color: var(--wcas-muted);
    font-style: normal;
    opacity: 1;
}
/* Safari draws its own clear/cancel control on type=search; we ship our own. */
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) input.dgwt-wcas-search-input::-webkit-search-decoration,
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) input.dgwt-wcas-search-input::-webkit-search-cancel-button { -webkit-appearance: none; }

/* ---- submit: a mint disc INSIDE the field, not a slab beside it ----
   Pirx absolutely-positions this at left:23px/top:21px and flips it to
   right:28px once the field is filled. Both are neutralised so the button
   is simply the last flex item. */
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit,
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    flex: none;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    margin: 0 0 0 8px !important;              /* keeps the text off the disc */
    padding: 0 !important;
    border: 0 !important;
    border-radius: 11px !important;            /* Pirx: 100% */
    background: var(--wcas-mint) !important;   /* Pirx: transparent */
    color: #04120e;
    opacity: 1 !important;
    pointer-events: auto !important;           /* Pirx disables it until filled */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .16s cubic-bezier(.2,.6,.35,1), transform .16s cubic-bezier(.2,.6,.35,1);
}
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit:hover {
    background: var(--wcas-mint-deep) !important;
    box-shadow: none !important;
    opacity: 1 !important;
}
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit:active { transform: translateY(1px); }
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit:focus-visible {
    outline: 2px solid var(--wcas-ink);
    outline-offset: 2px;
}
/* .dgwt-wcas-ico-magnifier is position:absolute;inset:0;margin:auto;height:65%.
   That only ever centred the glyph because Pirx made the BUTTON the containing
   block; once the button is static the icon inset-0s across the whole field and
   escapes it. The button is a flex centre now, so the icon must be static. */
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit svg,
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit svg.dgwt-wcas-ico-magnifier {
    position: static !important;
    inset: auto !important;
    width: 17px !important;
    height: 17px !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    display: block !important;
}
/* .dgwt-wcas-has-submit .dgwt-wcas-search-submit svg path is (0,3,0) and paints
   the glyph white; on mint that is the wrong ink. */
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit svg path { fill: #04120e !important; }

/* The stock notch/arrow that made it read as two glued parts. */
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit::before,
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp .dgwt-wcas-search-submit::after { display: none !important; }

.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-close,
.dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-preloader { margin-right: 8px; flex: none; }

/* ---- suggestions ---- */
.dgwt-wcas-suggestions-wrapp {
    margin-top: 8px;
    background: #fff;
    border: 1px solid var(--wcas-line);
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(23,35,49,.04), 0 12px 28px -12px rgba(23,35,49,.18);
    overflow: hidden;
}
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-suggestion {
    padding: 9px 14px;
    min-height: 58px;                      /* comfortable thumb target */
    border-top: 1px solid rgba(230,232,234,.6);
    align-items: center;
}
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-suggestion:first-child { border-top: 0; }
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-suggestion:hover,
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-suggestion.dgwt-wcas-suggestion-selected {
    background: var(--wcas-mint-wash);
}
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-si-thumb img {
    width: 40px;
    height: 40px;
    object-fit: cover;
    border-radius: 9px;
    border: 1px solid var(--wcas-line);
}
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-st--title { color: var(--wcas-ink); }
/* Prices line up only if the digits are tabular. */
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-sp,
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-sp .amount {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    white-space: nowrap;
}
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-st-more,
.dgwt-wcas-suggestions-wrapp .js-dgwt-wcas-suggestion-more {
    background: var(--wcas-fill);
    color: var(--wcas-mint-deep);
    font-weight: 600;
    border-top: 1px solid var(--wcas-line);
}
.dgwt-wcas-suggestions-wrapp .dgwt-wcas-suggestion-nores { padding: 20px 14px; text-align: center; }

/* ---- mobile: 52px beats the 44px tap-target floor ---- */
/* A media query grants no extra weight, so these selectors must match the
   base ones above element-for-element or the base !important wins. */
@media (max-width: 991px) {
    .dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp { height: 52px; border-radius: 15px; }
    .dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        min-height: 40px !important;
        border-radius: 12px !important;
    }
    /* Anything under 16px makes iOS zoom the page in on focus. */
    .dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp input[type="search"].dgwt-wcas-search-input,
    .dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp input.dgwt-wcas-search-input { font-size: 16px !important; }
    .search-suggest .dgwt-wcas-suggestions-wrapp { box-shadow: none; }
}

@media (prefers-reduced-motion: reduce) {
    .dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp,
    .dgwt-wcas-search-wrapp.dgwt-wcas-search-wrapp:not(.dgwt-wcas-search-wrapp-mobile) .dgwt-wcas-sf-wrapp button.dgwt-wcas-search-submit { transition-duration: .01ms; }
}
