/*
 * Amessi public interaction fidelity layer.
 *
 * The preserved prototype stylesheet is the visual source of truth. These
 * scoped rules protect its controls from generic WordPress/theme styles and
 * align dynamic catalog cards after the favorite action is inserted.
 */
.amessi-view :is(button,[role="button"],input[type="button"],input[type="submit"],input[type="reset"]){
  box-sizing:border-box;
  min-width:0;
  margin:0;
  font:inherit;
  line-height:normal;
  letter-spacing:normal;
  text-transform:none;
  text-shadow:none;
  appearance:none;
  -webkit-appearance:none;
  box-shadow:none;
}

.amessi-view :is(button,a)[disabled],
.amessi-view button:disabled{
  pointer-events:none;
}

.amessi-view :is(button,a):focus-visible{
  outline:2px solid var(--ink);
  outline-offset:3px;
}

.amessi-view :is(
  .floating-cart,
  .add-cart,
  .favorite-button,
  .cart-close,
  .cart-item-quantity button,
  .cart-remove,
  .category-carousel-controls button,
  .product-thumbnails button,
  .gallery-arrow,
  .quantity-control button,
  .dialog-close,
  .info-modal-close,
  .blevo-popup-close
){
  flex:0 0 auto;
  padding:0;
  display:grid;
  place-items:center;
  line-height:1;
  text-indent:0;
}

.amessi-view :is(
  .floating-cart,
  .add-cart,
  .favorite-button,
  .cart-close,
  .cart-item-quantity button,
  .category-carousel-controls button,
  .gallery-arrow,
  .dialog-close,
  .info-modal-close,
  .blevo-popup-close
){
  aspect-ratio:1;
}

.amessi-view :is(button,a) svg{
  display:block;
  flex:0 0 auto;
  margin:0;
  pointer-events:none;
}

/* Header search: retain the prototype geometry under theme form styles. */
.amessi-view .search{
  box-sizing:border-box;
  min-width:0;
  margin:0;
}

.amessi-view .search-field{
  min-width:0;
  margin:0;
}

.amessi-view .search-field input[type="search"]{
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--ink);
  font:inherit;
  line-height:1.35;
  appearance:none;
  -webkit-appearance:none;
  box-shadow:none;
}

.amessi-view .search-field input[type="search"]::-webkit-search-cancel-button{
  display:none;
  appearance:none;
  -webkit-appearance:none;
}

.amessi-view .search-suggestions{
  box-sizing:border-box;
  margin:0;
}

.amessi-view .search-result{
  min-width:0;
  margin:0;
  padding:8px;
  border:0;
  text-transform:none;
  line-height:1.2;
  box-shadow:none;
}

.amessi-view .search-result>span:nth-child(2){
  min-width:0;
}

.amessi-view .search-result :is(strong,small){
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* The newsletter action is a full-width row, never an icon-only square. */
.amessi-view--home .newsletter-submit{
  grid-column:1/-1;
  width:100%;
  min-width:0;
  height:45px;
  padding:0 17px;
  border:0;
  border-radius:9px;
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:auto;
  background:#fff;
  color:var(--red);
  font-size:14px;
  font-weight:600;
  line-height:1;
  text-align:center;
  box-shadow:none;
  cursor:pointer;
  transition:background .2s,color .2s,transform .2s,box-shadow .2s;
}

@media(hover:hover){
  .amessi-view--home .newsletter-submit:hover{
    background:#f3f3f1;
    transform:translateY(-1px);
    box-shadow:0 8px 18px rgba(0,0,0,.1);
  }
}

@media(max-width:800px){
  .amessi-view .search:not(.is-mobile-open){
    width:46px;
    min-width:46px;
    height:46px;
  }

  .amessi-view .search.is-mobile-open{
    left:14px;
    right:14px;
    top:14px;
    width:calc(100% - 28px);
    max-width:none;
    height:54px;
    margin:0;
    padding:0 8px 0 0;
    justify-self:stretch;
    align-self:auto;
  }

  .amessi-view .search.is-mobile-open .search-field{
    min-width:0;
    justify-content:flex-start;
    gap:9px;
    padding:0 8px 0 17px;
  }

  .amessi-view .search.is-mobile-open .search-field input[type="search"]{
    display:block;
    flex:1 1 auto;
    width:auto;
    min-width:0;
    text-align:left;
    font-size:14px;
  }

  .amessi-view .search.is-mobile-open .mobile-search-close{
    flex:0 0 38px;
    width:38px;
    min-width:38px;
    height:38px;
    margin:0;
    padding:0;
    border-radius:50%;
  }

  .amessi-view .search.is-mobile-open .search-suggestions{
    left:0;
    right:0;
    width:auto;
    max-height:min(62vh,480px);
    overflow:auto;
  }
}

/* Product cards: fixed action geometry and fluid product copy. */
.amessi-view .product-info{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  column-gap:14px;
}

.amessi-view .product-info>div:first-child{
  min-width:0;
}

.amessi-view .product-info :is(h3,p){
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.amessi-view .product-actions{
  min-width:max-content;
  height:42px;
  align-items:center;
}

.amessi-view .product-actions>a{
  min-width:68px;
  height:42px;
  margin:0;
  padding:0 20px;
  line-height:1;
  text-decoration:none;
  box-shadow:none;
}

.amessi-view .product-actions :is(.favorite-button,.add-cart){
  width:42px;
  min-width:42px;
  height:42px;
  margin:0;
}

.amessi-view .favorite-button{
  font-family:Arial,sans-serif;
  font-size:20px;
}

.amessi-view .add-cart svg{
  width:17px;
  height:17px;
}

/* Circular controls and icon-only close buttons. */
.amessi-view .header-actions>.icon-link{
  flex:0 0 46px;
  width:46px;
  min-width:46px;
  height:46px;
  margin:0;
  padding:0;
  display:grid;
  place-items:center;
  line-height:1;
  text-decoration:none;
  box-shadow:none;
  transition:background .2s,color .2s,border-color .2s,transform .2s;
}

.amessi-view :is(.cart-close,.dialog-close,.info-modal-close,.blevo-popup-close,.mobile-search-close){
  font-family:Arial,sans-serif;
  font-weight:400;
  text-align:center;
  box-shadow:none;
  transition:background .2s,color .2s,border-color .2s,transform .2s;
}

.amessi-view .cart-close{
  width:42px;
  min-width:42px;
  height:42px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  font-size:27px;
}

.amessi-view .dialog-close{
  width:34px;
  min-width:34px;
  height:34px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  font-size:20px;
}

.amessi-view :is(.info-modal-close,.blevo-popup-close){
  width:40px;
  min-width:40px;
  height:40px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
}

.amessi-view .cart-item-quantity button{
  width:24px;
  min-width:24px;
  height:24px;
  padding:0;
  color:var(--ink);
  line-height:1;
  transition:background .2s,color .2s,border-color .2s;
}

.amessi-view .cart-remove{
  width:24px;
  min-width:24px;
  height:24px;
  padding:0;
  line-height:1;
  transition:color .2s,transform .2s;
}

.amessi-view .category-carousel-controls button{
  width:44px;
  min-width:44px;
  height:44px;
  padding:0;
}

.amessi-view .gallery-arrow{
  width:42px;
  min-width:42px;
  height:42px;
  padding:0;
}

.amessi-view .product-thumbnails button{
  padding:0;
}

.amessi-view .quantity-control button{
  width:42px;
  min-width:42px;
  height:42px;
  padding:0;
  color:var(--ink);
  display:grid;
  place-items:center;
  line-height:1;
}

.amessi-view .checkout-quantity button{
  width:29px;
  min-width:29px;
  height:29px;
  padding:0;
  display:grid;
  place-items:center;
  line-height:1;
}

/* Pill controls preserve the prototype height and optical centering. */
.amessi-view :is(
  .button,
  .category-filter,
  .share-button,
  .mode-button,
  .color-option,
  .size-option,
  .detail-favorite,
  .detail-add-cart,
  .copy-coupon,
  .checkout-button,
  .auth-submit,
  .logout-button,
  .order-actions button,
  .order-actions a,
  .checkout-secondary,
  .place-order,
  .lgpd-actions button,
  .blevo-popup-action
){
  line-height:1;
  text-decoration:none;
  box-shadow:none;
}

.amessi-view :is(.mode-button,.detail-favorite,.auth-tab,.auth-submit,.order-toggle){
  padding:0;
}

.amessi-view :is(
  .payment-options,
  .auth-tab,
  .forgot-password,
  .recovery-back,
  .logout-button,
  .order-toggle,
  .account-coupons button,
  .overview-grid button
){
  color:var(--ink);
}

.amessi-view .account-nav button:not(.is-active){
  color:var(--ink);
}

.amessi-view .checkout-login-toggle{
  color:var(--ink);
}

.amessi-view :is(
  .category-filter,
  .share-button,
  .mode-button,
  .color-option,
  .size-option,
  .detail-favorite,
  .copy-coupon,
  .auth-submit,
  .logout-button,
  .order-actions button,
  .order-actions a,
  .checkout-secondary,
  .lgpd-actions button,
  .blevo-popup-action
){
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.amessi-view :is(.detail-add-cart,.checkout-button,.place-order){
  display:flex;
  align-items:center;
}

.amessi-view :is(
  .category-filter,
  .share-button,
  .mode-button,
  .color-option,
  .size-option,
  .detail-favorite,
  .detail-add-cart,
  .copy-coupon,
  .checkout-button,
  .auth-submit,
  .logout-button,
  .order-actions button,
  .order-actions a,
  .checkout-secondary,
  .place-order,
  .lgpd-actions button,
  .blevo-popup-action
){
  transition:background .2s,color .2s,border-color .2s,transform .2s,opacity .2s;
}

.amessi-view .account-nav :is(button,a){
  margin:0;
  box-shadow:none;
  text-decoration:none;
  line-height:1.2;
  transition:background .2s,color .2s;
}

.amessi-view .overview-grid button{
  margin:0;
  box-shadow:none;
}

/* Home service cards: aligned CTAs and edge-to-edge expanded media. */
.amessi-view--home .service-path{
  grid-template-rows:34px minmax(0,1fr) 30px;
}

.amessi-view--home .service-path>div{
  min-height:0;
  overflow:hidden;
}

.amessi-view--home .service-path-link{
  align-self:stretch;
  min-height:30px;
  margin-top:0;
  padding-top:9px;
  overflow:visible;
  line-height:1;
  white-space:nowrap;
}

.amessi-view--home .service-path-media{
  align-self:stretch;
  width:calc(100% + 18px);
  height:calc(100% + 34px);
  margin:-17px -18px -17px 0;
  border-radius:0 13px 13px 0;
}

.amessi-view--home .service-path-media img{
  object-position:center top;
}

@media(max-width:800px){
  .amessi-view--home .service-path{
    grid-template-rows:40px minmax(0,1fr) 30px;
  }

  .amessi-view--home .service-path-icon{
    align-self:start;
    transform:none;
  }

  .amessi-view--home .service-path>div{
    align-self:start;
    margin-top:3px;
  }
}

@media(hover:hover){
  .amessi-view .header-actions>.icon-link:hover,
  .amessi-view :is(.cart-close,.dialog-close,.info-modal-close,.blevo-popup-close):hover{
    border-color:var(--ink);
    background:var(--ink);
    color:#fff;
    transform:translateY(-1px);
  }

  .amessi-view .favorite-button:not(.is-favorite):hover{
    border-color:var(--ink);
    background:var(--ink);
    color:#fff;
  }

  .amessi-view .cart-item-quantity button:hover,
  .amessi-view .quantity-control button:hover{
    border-color:var(--ink);
    background:var(--ink);
    color:#fff;
  }

  .amessi-view .cart-remove:hover{
    color:var(--red);
    transform:scale(1.08);
  }

  .amessi-view .gallery-arrow:hover{
    background:var(--red);
    transform:translateY(-50%) scale(1.04);
  }

  .amessi-view :is(.detail-favorite,.logout-button):not(.is-favorite):hover,
  .amessi-view :is(.color-option,.size-option):not(.is-active):hover{
    border-color:var(--ink);
    background:var(--ink);
    color:#fff;
  }

  .amessi-view :is(.detail-add-cart,.place-order):not(:disabled):hover{
    transform:translateY(-1px);
    filter:brightness(.9);
  }

  .amessi-view :is(.checkout-button,.auth-submit,.checkout-secondary,.blevo-popup-action):not(:disabled):hover{
    background:var(--red);
    transform:translateY(-1px);
  }

  .amessi-view .account-nav :is(button,a):not(.is-active):hover{
    background:#f1f1ef;
  }

  .amessi-view .order-actions :is(button,a):hover,
  .amessi-view .lgpd-actions button:hover{
    border-color:var(--ink);
    background:var(--ink);
    color:#fff;
  }
}

@media(max-width:800px){
  .amessi-view .header-actions>.icon-link{
    flex-basis:42px;
    width:42px;
    min-width:42px;
    height:42px;
  }
}

@media(max-width:520px){
  .amessi-view .product-info{
    column-gap:10px;
  }

  .amessi-view .product-actions{
    gap:7px;
  }

  .amessi-view .product-actions>a{
    min-width:66px;
    padding-inline:18px;
  }
}

@media(prefers-reduced-motion:reduce){
  .amessi-view :is(button,a){
    transition-duration:.01ms;
  }
}
