/*
 * Forever Words responsive guardrails — v1.10.53
 *
 * Loaded after conditional page styles. Component styles continue to own
 * their designs; this layer owns viewport containment, resilient media,
 * touch sizing, safe areas, and short/narrow viewport fallbacks.
 */
html{min-width:0;text-size-adjust:100%;-webkit-text-size-adjust:100%}
body,#page,.site,.site-content,main,section,article,aside,header,footer,nav,form,fieldset,.container,.container-sm,.woocommerce,.woocommerce-page{min-width:0}
img,picture,video,canvas,iframe,embed,object,svg{max-width:100%}
img,video,canvas{height:auto}
iframe,embed,object{width:100%}
pre{max-width:100%;overflow:auto;white-space:pre-wrap}
:where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,address,blockquote,figcaption,label,legend,a,button,code){overflow-wrap:anywhere}
:where(input,select,textarea,button){max-width:100%}
.btn,.button,button,input[type=button],input[type=submit],input[type=reset]{min-height:44px}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{min-height:44px}
.container,.container-sm{width:100%;padding-inline:clamp(14px,3vw,24px)}
.fw-content,.fw-page-content{width:min(100% - 28px,900px)}
.alignwide{max-width:min(1280px,100%)}
.alignfull{max-width:100vw}
.wp-block-image img,.woocommerce img{height:auto}
.wp-block-table,.woocommerce .woocommerce-MyAccount-content{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.cart-sidebar,.fw-search-dialog,.fw-promo-dialog,.fw-message-card-lightbox-dialog,.fw-studio-shell{max-width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right))}
.cart-sidebar{padding-bottom:env(safe-area-inset-bottom)}
.fw-cookie-banner,.fw-cart-toast{max-width:calc(100vw - 20px - env(safe-area-inset-left) - env(safe-area-inset-right))}

@media(max-width:900px){
  .nav-links{max-height:calc(100dvh - 68px);overflow-y:auto;overscroll-behavior:contain}
  .hero-actions,.fw-button-row,.fw-message-actions{flex-wrap:wrap}
  .woocommerce div.product,.woocommerce-page div.product{min-width:0}
}

@media(max-width:768px){
  :where(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){font-size:16px}
  .announcement-bar{position:relative;min-height:44px;padding-inline:44px}
  .ann-close{position:absolute;right:8px;display:grid;place-items:center;width:36px;min-height:36px;margin:0}
  .navbar{padding-inline:14px}
  .nav-logo{max-width:calc(100vw - 150px)}
  .nav-logo img,.custom-logo{width:auto;max-height:54px}
  .hero-actions,.fw-button-row,.fw-message-actions,.newsletter-form{display:grid;grid-template-columns:1fr;width:100%}
  .hero-actions .btn,.fw-button-row .btn,.fw-message-actions .btn,.newsletter-form .btn,.newsletter-form input{width:100%;justify-content:center}
  .woocommerce table.shop_table_responsive tr td,.woocommerce-page table.shop_table_responsive tr td{overflow-wrap:anywhere}
  .woocommerce form .form-row-first,.woocommerce form .form-row-last,.woocommerce-page form .form-row-first,.woocommerce-page form .form-row-last{float:none;width:100%}
  .woocommerce-message,.woocommerce-info,.woocommerce-error{padding-right:16px}
  .fw-policy-timeline{align-items:stretch}
  .fw-account-nav a,.sender-tab,.tab-header,.fw-category-chips a{min-height:44px}
}

@media(max-width:600px){
  .section{padding-block:clamp(42px,12vw,56px)}
  .section-sm{padding-block:36px}
  .hero-content{padding-inline:14px}
  .hero-title{font-size:clamp(2.15rem,12vw,3.2rem)}
  .btn,.button{max-width:100%;white-space:normal;text-align:center}
  .footer{padding-bottom:env(safe-area-inset-bottom)}
  .cart-sidebar{width:100%}
  .fw-policy-timeline{grid-template-columns:1fr}
  .fw-policy-timeline li{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;text-align:left}
  .fw-policy-timeline li::before{margin:0}
  .fw-account-page .woocommerce table.shop_table_responsive,.fw-account-page .woocommerce-page table.shop_table_responsive{border:0;background:transparent}
  .fw-account-page .woocommerce table.shop_table_responsive tr,.fw-account-page .woocommerce-page table.shop_table_responsive tr{display:block;margin-bottom:14px;padding:10px 14px;border:1px solid #dfd0b1;border-radius:12px;background:#fffdf8}
  .fw-account-page .woocommerce table.shop_table_responsive tr td,.fw-account-page .woocommerce-page table.shop_table_responsive tr td{display:grid;grid-template-columns:minmax(100px,42%) minmax(0,1fr);gap:10px;padding:10px 0;text-align:right}
  .fw-account-page .woocommerce table.shop_table_responsive tr td::before,.fw-account-page .woocommerce-page table.shop_table_responsive tr td::before{text-align:left}
  .fw-account-page .woocommerce table.shop_table_responsive tr td.actions,.fw-account-page .woocommerce-page table.shop_table_responsive tr td.actions{display:block}
  .fw-info-hero h1,.fw-story-feature h2{font-size:clamp(2.1rem,11vw,3rem)}
  .fw-founder-note{margin-block:38px;padding:24px 20px}
}

@media(max-width:430px){
  .container,.container-sm{padding-inline:12px}
  .navbar{gap:8px;padding-inline:10px}
  .nav-actions{gap:4px}
  .nav-icon,.fw-mobile-menu{width:42px;min-width:42px}
  .hero-content{padding-inline:12px}
  .product-card,.woocommerce ul.products li.product{min-width:0}
  .fw-policy-wrap,.fw-account-layout,.fw-account-logged-out{padding-inline:10px}
  .fw-account-welcome,.fw-recent-orders,.fw-account-support,.fw-policy-card,.fw-policy-quick article,.fw-policy-support{border-radius:12px}
  .fw-studio-body{padding-inline:12px}
}

@media(max-width:360px){
  .announcement-bar{padding-left:10px;padding-right:42px;letter-spacing:0}
  .nav-logo{font-size:1.05rem}
  .hero-title{font-size:2.05rem}
  .fw-studio-progress-step{font-size:0}
  .fw-studio-progress-step span{font-size:11px}
}

@media(max-height:600px) and (orientation:landscape){
  .fw-search-panel,.fw-promo-overlay,.fw-custom-card-editor,.fw-message-card-lightbox{align-items:stretch;overflow-y:auto}
  .fw-search-dialog,.fw-promo-dialog,.fw-message-card-lightbox-dialog{margin-block:8px;max-height:calc(100dvh - 16px);overflow-y:auto}
  .fw-studio-shell{height:100dvh;max-height:100dvh;border-radius:0}
  .fw-studio-header{padding-block:8px}
  .fw-studio-progress{padding-block:4px}
  .fw-studio-body{padding-top:10px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* v1.10.62 — smartphone-only containment and layout repair.
 * CSS-only: no WooCommerce, personalization, pricing, gallery, or studio
 * JavaScript/PHP behavior is changed by this release. */
@media (max-width: 600px) {
  html,
  body,
  #page,
  .site,
  .site-content,
  .site-main {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  /* Consistent usable gutters on all public smartphone pages. */
  .container,
  .container-sm,
  .fw-shop-content,
  .fw-shop-process .container,
  .fw-single-product-page .container,
  .fw-info-shell,
  .fw-policy-wrap,
  .fw-account-layout,
  .fw-account-logged-out {
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
    padding-inline: 12px;
    box-sizing: border-box;
  }

  /* Shop/archive: cards use the complete available width. */
  body.fw-premium-shop-archive .site-main,
  body.fw-premium-shop-archive .woocommerce,
  body.fw-premium-shop-archive .fw-shop-content,
  body.fw-premium-shop-archive ul.products,
  body.fw-premium-shop-archive ul.products li.product,
  body.fw-premium-shop-archive .product-card,
  body.fw-premium-shop-archive .fw-shop-card-inner {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: 0 !important;
    box-sizing: border-box;
  }
  .fw-shop-hero {
    width: 100%;
    padding: 30px 12px 24px;
  }
  .fw-shop-hero-inner {
    width: 100%;
    max-width: 100%;
  }
  .fw-shop-hero h1 {
    font-size: clamp(1.85rem, 10vw, 2.35rem);
    overflow-wrap: normal;
  }
  .fw-shop-hero h2 { font-size: 1.18rem; }
  .fw-shop-hero p { font-size: .88rem; line-height: 1.6; }
  .fw-shop-hero-trust {
    grid-template-columns: 1fr;
    gap: 7px;
    margin-top: 15px;
  }
  .fw-shop-content { padding-top: 18px; padding-bottom: 42px; }
  .fw-shop-collections {
    margin-inline: -2px;
    padding-inline: 2px 12px;
    scrollbar-width: thin;
  }
  .fw-shop-toolbar {
    gap: 12px;
    margin-bottom: 20px;
    padding-block: 12px;
  }
  .fw-shop-card-body { padding: 15px; }
  .fw-shop-card-title { font-size: 1.08rem !important; }
  .fw-shop-process { padding: 42px 12px; }
  .fw-shop-process-grid { gap: 12px; }
  .fw-shop-process-grid article { padding: 20px 16px; }

  /* Single product: eliminate inherited desktop widths and oversized gutters. */
  .fw-single-product-page .product-detail,
  .fw-single-product-page .product-detail-grid,
  .fw-single-product-page .product-gallery,
  .fw-single-product-page .product-summary,
  .fw-single-product-page .summary,
  .fw-single-product-page form.cart,
  .fw-single-product-page .variations_form,
  .fw-single-product-page .woocommerce-product-gallery,
  .fw-single-product-page .woocommerce-product-gallery__wrapper,
  .fw-single-product-page .woocommerce-product-gallery__image,
  .fw-single-product-page .fw-server-gallery-thumbs,
  .fw-single-product-page .fw-personalization-section,
  .fw-single-product-page .tab-panels,
  .fw-single-product-page .tab-panel,
  .fw-single-product-page .fw-product-description,
  .fw-single-product-page .fw-message-card-tab {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }
  .fw-single-product-page .product-detail { padding: 22px 0 46px; }
  .fw-single-product-page .product-detail-grid { gap: 26px; }
  .fw-single-product-page .product-detail-breadcrumb {
    gap: 5px;
    margin-bottom: 18px;
    font-size: 11px;
  }
  .fw-single-product-page .woocommerce-product-gallery__image,
  .fw-single-product-page .fw-image-zoom-frame { border-radius: 12px; }
  .fw-single-product-page .fw-server-gallery-thumbs,
  .fw-single-product-page .gallery-thumbs,
  .fw-single-product-page .flex-control-thumbs {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }
  .fw-single-product-page .product-title,
  .fw-single-product-page .product_title {
    font-size: clamp(1.55rem, 8vw, 2rem) !important;
    line-height: 1.08;
    overflow-wrap: normal;
  }
  .fw-single-product-page .product-emotional { font-size: .9rem; }
  .fw-single-product-page .price { line-height: 1.15; }
  .fw-single-product-page .fw-personalization-section {
    padding: 16px 12px;
    border-radius: 13px;
  }
  .fw-single-product-page .fw-field-label-row {
    align-items: flex-end;
    gap: 8px;
  }
  .fw-single-product-page .fw-field-label-row label { min-width: 0; }
  .fw-single-product-page .fw-field-label-row output { flex: 0 0 auto; }
  .fw-single-product-page .fw-personalization-choices { gap: 8px; }
  .fw-single-product-page .quantity-row {
    display: grid;
    grid-template-columns: minmax(105px, .42fr) minmax(0, 1fr);
    gap: 8px;
    width: 100%;
  }
  .fw-single-product-page .quantity-selector,
  .fw-single-product-page .fw-add-to-cart-button,
  .fw-single-product-page .single_add_to_cart_button {
    width: 100% !important;
    min-width: 0;
  }
  .fw-single-product-page .wishlist-btn { width: 100%; }
  .fw-single-product-page .tab-headers {
    width: 100%;
    gap: 0;
    padding-bottom: 2px;
    scrollbar-width: thin;
  }
  .fw-single-product-page .tab-header {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 11px 12px;
    font-size: 11px;
  }
  .fw-single-product-page .tab-panel,
  .fw-single-product-page .fw-message-card-tab {
    padding-inline: 0;
  }
  .fw-single-product-page .fw-product-description-content,
  .fw-single-product-page .fw-product-description-content p,
  .fw-single-product-page .tab-panel p {
    font-size: 13px;
    line-height: 1.65;
  }

  /* Message & Artwork Studio: true narrow-screen flow without side clipping
     or the large artificial blank area visible in the current screenshots. */
  .fw-custom-card-editor[role="dialog"] {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 0;
    overflow: hidden;
  }
  .fw-studio-shell {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    border-radius: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
  }
  .fw-studio-header {
    flex: 0 0 auto;
    gap: 10px;
    padding: calc(10px + env(safe-area-inset-top)) 12px 10px;
  }
  .fw-studio-header h3 {
    max-width: calc(100vw - 82px);
    margin: 4px 0 0;
    font-size: clamp(1.55rem, 8vw, 2rem);
    line-height: 1.04;
    overflow-wrap: normal;
  }
  .fw-studio-close {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
  }
  .fw-studio-progress {
    flex: 0 0 auto;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    padding: 6px 6px;
  }
  .fw-studio-progress-step {
    min-width: 0;
    min-height: 54px;
    padding: 4px 1px;
    font-size: 11px;
    line-height: 1.1;
  }
  .fw-studio-progress-step span { width: 22px; height: 22px; }
  .fw-studio-body {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    overflow: visible;
    padding: 16px 12px 18px;
    box-sizing: border-box;
  }
  .fw-studio-step,
  .fw-studio-step-heading,
  .fw-studio-design-grid,
  .fw-studio-template-panel,
  .fw-studio-text-panel,
  .fw-studio-preview-layout,
  .fw-studio-preview-summary,
  .fw-studio-final-summary,
  .fw-card-confirmation-wrap {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .fw-studio-step-heading { margin-bottom: 14px; }
  .fw-studio-step-heading h4 {
    font-size: clamp(1.7rem, 9vw, 2.15rem);
    line-height: 1.04;
    overflow-wrap: normal;
  }
  .fw-card-choice-grid--compact { gap: 10px; }
  .fw-card-choice-grid--compact .fw-card-choice-option > span {
    grid-template-columns: 24px minmax(0, 1fr) auto;
    min-height: 0;
    gap: 8px 10px;
    padding: 16px 12px;
  }
  .fw-card-choice-grid--compact .fw-card-choice-option strong {
    font-size: 13px;
    line-height: 1.3;
  }
  .fw-card-choice-grid--compact .fw-card-choice-option em {
    font-size: 13px;
    line-height: 1.45;
  }
  .fw-studio-template-selection {
    align-items: stretch;
    flex-direction: column;
    padding: 10px;
  }
  .fw-studio-template-selection .btn { width: 100%; }
  .fw-studio-text-panel { gap: 12px; }
  .fw-studio-text-panel .fw-custom-card-textarea {
    min-height: 180px;
    max-height: none;
  }
  .fw-studio-card-preview { width: 100%; max-width: 100%; }
  .fw-studio-preview-summary,
  .fw-studio-final-summary { padding: 14px 12px; }
  .fw-studio-footer {
    position: sticky;
    left: auto;
    right: auto;
    bottom: 0;
    flex: 0 0 auto;
    width: 100%;
    grid-template-columns: minmax(82px, .65fr) minmax(0, 1.35fr);
    gap: 7px;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    box-sizing: border-box;
  }
  .fw-studio-footer p {
    grid-column: 1 / -1;
    grid-row: 1;
    margin: 0;
    font-size: 11px;
    line-height: 1.35;
  }
  .fw-studio-footer .btn {
    grid-row: 2;
    width: 100%;
    min-width: 0;
    padding: 9px 8px;
    font-size: 11px;
    line-height: 1.2;
  }
  .fw-studio-footer .btn:last-child { grid-column: 2; }

  /* Footer columns remain readable instead of producing narrow text columns. */
  .site-footer .footer-grid,
  .footer .footer-grid,
  .footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 26px 18px !important;
  }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 380px) {
  .container,
  .container-sm,
  .fw-shop-content,
  .fw-single-product-page .container { padding-inline: 10px; }
  .fw-single-product-page .quantity-row { grid-template-columns: 1fr; }
  .fw-studio-body { padding-inline: 10px; }
  .fw-studio-header h3 { font-size: 1.55rem; }
  .fw-studio-progress-step { font-size: 10px; }
  .site-footer .footer-grid,
  .footer .footer-grid,
  .footer-grid { grid-template-columns: 1fr !important; }
  .footer-brand { grid-column: auto; }
}

/* v1.10.64 — verified smartphone layout consolidation.
 * This final layer intentionally overrides older mobile patches without
 * changing WooCommerce, gallery, personalization, pricing, or studio logic. */
.product-quick-add-mobile{display:none}

@media (max-width: 700px) {
  :root{--fw-mobile-gutter:12px}

  /* Announcement: one clear message only on phones. */
  .announcement-bar{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:48px!important;
    height:auto!important;
    padding:7px 46px 7px 12px!important;
    gap:0!important;
    text-align:center!important;
    font-size:11px!important;
    line-height:1.35!important;
    letter-spacing:.015em!important;
    white-space:normal!important;
  }
  .announcement-bar::before{content:none!important;display:none!important}
  .announcement-bar .fw-announcement-primary{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    gap:6px;
    max-width:100%;
    color:inherit!important;
  }
  .announcement-bar .fw-announcement-icon{display:none!important}
  .announcement-bar .fw-announcement-secondary,
  .announcement-bar .fw-announcement-separator{display:none!important}
  .announcement-bar .ann-close{
    position:absolute!important;
    top:50%!important;
    right:7px!important;
    transform:translateY(-50%)!important;
    width:34px!important;
    height:34px!important;
    min-height:34px!important;
    padding:0!important;
    margin:0!important;
  }

  /* Global phone gutters: same compact rhythm as the homepage. */
  .container,.container-sm,.fw-shop-content,.fw-single-product-page .container,
  .fw-info-shell,.fw-policy-wrap,.fw-account-layout,.fw-account-logged-out{
    width:100%!important;
    max-width:100%!important;
    margin-inline:auto!important;
    padding-inline:var(--fw-mobile-gutter)!important;
    box-sizing:border-box!important;
  }

  /* Shop hero and filters. */
  body.fw-premium-shop-archive .fw-shop-hero{
    padding:28px var(--fw-mobile-gutter) 22px!important;
  }
  body.fw-premium-shop-archive .fw-shop-hero-inner{max-width:100%!important}
  body.fw-premium-shop-archive .fw-shop-content{padding-top:16px!important}
  body.fw-premium-shop-archive ul.products{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:18px!important;
    width:100%!important;
    margin:0!important;
  }
  body.fw-premium-shop-archive ul.products li.product.product-card{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    overflow:hidden!important;
  }
  body.fw-premium-shop-archive .product-card-img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    aspect-ratio:1/1!important;
    overflow:hidden!important;
  }
  body.fw-premium-shop-archive .product-card-img .product-visual,
  body.fw-premium-shop-archive .product-card-img .product-visual img{
    display:block!important;
    width:100%!important;
    height:100%!important;
  }
  body.fw-premium-shop-archive .product-card-img .product-visual img{object-fit:cover!important}
  body.fw-premium-shop-archive .product-card-img .product-quick-add{display:none!important}
  body.fw-premium-shop-archive .product-quick-add-mobile{
    display:flex!important;
    align-items:center;
    justify-content:center;
    width:100%!important;
    min-height:48px;
    padding:12px 16px;
    margin:0!important;
    border-radius:0!important;
    background:var(--charcoal,#292929);
    color:#fff!important;
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    line-height:1.25;
    text-align:center;
    text-transform:uppercase;
    text-decoration:none!important;
    box-sizing:border-box;
  }
  body.fw-premium-shop-archive .product-quick-add-mobile.is-disabled{opacity:.68}
  body.fw-premium-shop-archive .product-info{
    display:block!important;
    min-height:0!important;
    width:100%!important;
    padding:16px!important;
    box-sizing:border-box!important;
  }

  /* Single-product page: remove the desktop top offset and widen gallery. */
  body.single-product .site-main,
  .fw-single-product-page,
  .fw-single-product-page .product-detail{
    margin-top:0!important;
    padding-top:0!important;
  }
  .fw-single-product-page .product-detail{padding-bottom:42px!important}
  .fw-single-product-page .product-detail-breadcrumb{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:4px 6px!important;
    width:100%!important;
    margin:18px 0 12px!important;
    padding:0!important;
    font-size:10px!important;
    line-height:1.45!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .fw-single-product-page .product-detail-breadcrumb *{
    overflow-wrap:normal!important;
    word-break:normal!important;
    white-space:normal!important;
  }
  .fw-single-product-page .product-detail-grid{gap:22px!important}
  .fw-single-product-page .product-gallery,
  .fw-single-product-page .woocommerce-product-gallery,
  .fw-single-product-page .woocommerce-product-gallery__wrapper,
  .fw-single-product-page .woocommerce-product-gallery__image,
  .fw-single-product-page .fw-image-zoom-frame{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
  }
  .fw-single-product-page .woocommerce-product-gallery__image img,
  .fw-single-product-page .fw-image-zoom-frame img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    margin:0!important;
  }
  .fw-single-product-page .fw-server-gallery-thumbs,
  .fw-single-product-page .gallery-thumbs,
  .fw-single-product-page .flex-control-thumbs{
    width:100%!important;
    margin-top:8px!important;
    gap:6px!important;
  }

  /* Message Studio: fixed header/progress/footer, only body scrolls. */
  .fw-custom-card-editor[role="dialog"]{
    display:block!important;
    width:100%!important;
    height:100dvh!important;
    max-width:100%!important;
    padding:0!important;
    overflow:hidden!important;
  }
  .fw-studio-shell{
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr) auto!important;
    width:100%!important;
    max-width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    overflow:hidden!important;
  }
  .fw-studio-header{
    position:relative!important;
    min-width:0!important;
    padding:calc(8px + env(safe-area-inset-top)) 12px 9px!important;
    gap:8px!important;
    overflow:visible!important;
  }
  .fw-studio-header .eyebrow{
    display:block!important;
    margin:0 54px 3px 0!important;
    font-size:9px!important;
    line-height:1.25!important;
  }
  .fw-studio-header h3{
    display:block!important;
    max-width:calc(100% - 52px)!important;
    margin:0!important;
    font-size:clamp(23px,7.2vw,31px)!important;
    line-height:1.06!important;
    overflow:visible!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .fw-studio-close{
    position:absolute!important;
    top:calc(8px + env(safe-area-inset-top))!important;
    right:10px!important;
    width:40px!important;
    height:40px!important;
    min-height:40px!important;
    margin:0!important;
  }
  .fw-studio-progress{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:100%!important;
    padding:6px 4px!important;
    gap:0!important;
    overflow:visible!important;
  }
  .fw-studio-progress-step{
    min-width:0!important;
    min-height:54px!important;
    padding:4px 1px!important;
    font-size:11px!important;
    line-height:1.12!important;
    overflow:visible!important;
  }
  .fw-studio-body{
    min-width:0!important;
    min-height:0!important;
    width:100%!important;
    max-width:100%!important;
    padding:16px 12px 22px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
    box-sizing:border-box!important;
  }
  .fw-studio-step-heading h4{
    font-size:clamp(27px,8.4vw,36px)!important;
    line-height:1.05!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
  }
  .fw-studio-footer{
    position:relative!important;
    inset:auto!important;
    display:grid!important;
    grid-template-columns:minmax(84px,.62fr) minmax(0,1.38fr)!important;
    gap:7px!important;
    width:100%!important;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important;
    border-top:1px solid #eadfce!important;
    background:#fffdf9!important;
    box-sizing:border-box!important;
    z-index:10!important;
  }
  .fw-studio-footer p{
    display:block!important;
    grid-column:1/-1!important;
    grid-row:1!important;
    margin:0!important;
    font-size:11px!important;
    line-height:1.25!important;
    text-align:left!important;
  }
  .fw-studio-footer .btn{
    grid-row:2!important;
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    padding:9px 8px!important;
    font-size:11px!important;
    line-height:1.2!important;
    white-space:normal!important;
  }
  .fw-studio-footer .btn:last-child{grid-column:2!important}
}

@media (max-width: 360px) {
  :root{--fw-mobile-gutter:10px}
  .fw-studio-header h3{font-size:23px!important}
  .fw-studio-step-heading h4{font-size:27px!important}
  .fw-studio-progress-step{font-size:10px!important}
  .fw-studio-footer{grid-template-columns:1fr!important}
  .fw-studio-footer .btn,
  .fw-studio-footer .btn:last-child{grid-column:1!important;grid-row:auto!important}
  .fw-studio-footer p{grid-row:auto!important}
}

/* v1.10.65 — authoritative mobile Shop card and width repair.
 * Kept at the end of the final responsive stylesheet so no earlier touch,
 * hover, archive, or WooCommerce rule can move the CTA back beside the image. */
@media (max-width: 700px) {
  body.fw-premium-shop-archive .fw-shop-main,
  body.fw-premium-shop-archive .fw-shop-content,
  body.fw-premium-shop-archive .fw-shop-content.container {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
    box-sizing: border-box !important;
  }

  body.fw-premium-shop-archive .fw-shop-content > ul.products,
  body.fw-premium-shop-archive ul.products.columns-1,
  body.fw-premium-shop-archive ul.products {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.fw-premium-shop-archive ul.products li.product.product-card,
  body.fw-premium-shop-archive ul.products li.product.fw-shop-home-card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.fw-premium-shop-archive .product-card-img {
    order: 1 !important;
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 !important;
  }

  /* The desktop overlay must never participate in the phone layout. */
  body.fw-premium-shop-archive .product-card-img > .product-quick-add,
  body.fw-premium-shop-archive .product-card-img > .product-quick-add.is-disabled,
  body.fw-premium-shop-archive .product-card:hover .product-card-img > .product-quick-add {
    display: none !important;
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.fw-premium-shop-archive .product-quick-add-mobile {
    order: 2 !important;
    display: flex !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 12px 16px !important;
    box-sizing: border-box !important;
  }

  body.fw-premium-shop-archive .product-info {
    order: 3 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 380px) {
  body.fw-premium-shop-archive .fw-shop-content,
  body.fw-premium-shop-archive .fw-shop-content.container {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
}


/* v1.10.67 — authoritative Message Studio mobile visibility and viewport repair.
 * Earlier mobile rules forced the portaled dialog to display:block!important,
 * which overrode the native [hidden] state. The close routine was running, but
 * the modal remained painted. Keep this final block last in the cascade. */
.fw-custom-card-editor[role="dialog"][hidden],
.fw-custom-card-editor[hidden] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-width: 780px) {
  .fw-custom-card-editor[role="dialog"]:not([hidden]) {
    display: block !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .fw-custom-card-editor:not([hidden]) .fw-studio-shell {
    display: grid !important;
    grid-template-rows: auto auto minmax(0, 1fr) auto !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .fw-custom-card-editor:not([hidden]) .fw-studio-header,
  .fw-custom-card-editor:not([hidden]) .fw-studio-progress,
  .fw-custom-card-editor:not([hidden]) .fw-studio-footer {
    flex: none !important;
  }

  .fw-custom-card-editor:not([hidden]) .fw-studio-body {
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-bottom: 24px !important;
    scroll-padding-bottom: 24px !important;
  }

  .fw-custom-card-editor:not([hidden]) .fw-studio-footer {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    display: grid !important;
    grid-template-columns: minmax(82px, .62fr) minmax(0, 1.38fr) !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .fw-custom-card-editor:not([hidden]) .fw-studio-footer p {
    display: block !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    margin: 0 !important;
    min-width: 0 !important;
  }

  .fw-custom-card-editor:not([hidden]) .fw-studio-footer .btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 9px 8px !important;
    white-space: normal !important;
    overflow: visible !important;
  }

  .fw-custom-card-editor:not([hidden]) .fw-studio-footer [hidden] {
    display: none !important;
  }

  .fw-custom-card-editor:not([hidden]) .fw-studio-close {
    z-index: 20 !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }
}

@media (max-width: 340px) {
  .fw-custom-card-editor:not([hidden]) .fw-studio-footer {
    grid-template-columns: 1fr !important;
  }
  .fw-custom-card-editor:not([hidden]) .fw-studio-footer p,
  .fw-custom-card-editor:not([hidden]) .fw-studio-footer .btn,
  .fw-custom-card-editor:not([hidden]) .fw-studio-footer .btn:last-child {
    grid-column: 1 !important;
    grid-row: auto !important;
  }
}

/* v1.10.68 — authoritative narrow-screen page gutters.
 * Match the near-edge homepage composition on Shop and single-product pages.
 * This is layout-only and intentionally sits last in the responsive cascade. */
@media (max-width: 700px) {
  :root { --fw-mobile-page-gutter: 12px; }

  /* Break the two WooCommerce page shells out of any inherited centred/max-width
     wrapper, then restore the same compact inset used by the homepage. */
  body.fw-premium-shop-archive main.fw-shop-main,
  body.single-product main.fw-single-product-page {
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: -50vw !important;
    margin-right: 0 !important;
    overflow-x: clip !important;
    box-sizing: border-box !important;
  }

  body.fw-premium-shop-archive .fw-shop-content.container,
  body.single-product .fw-single-product-page > .container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding-left: var(--fw-mobile-page-gutter) !important;
    padding-right: var(--fw-mobile-page-gutter) !important;
    box-sizing: border-box !important;
  }

  /* Shop results must occupy the full usable content column. */
  body.fw-premium-shop-archive .fw-shop-content > ul.products,
  body.fw-premium-shop-archive .fw-shop-content > ul.products > li.product,
  body.fw-premium-shop-archive .fw-shop-card-inner,
  body.fw-premium-shop-archive .product-card,
  body.fw-premium-shop-archive .product-card-img,
  body.fw-premium-shop-archive .product-info {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  /* Single-product composition: remove every remaining centred child width. */
  body.single-product .fw-single-product-page .product-detail,
  body.single-product .fw-single-product-page .product-detail-grid,
  body.single-product .fw-single-product-page .product-gallery,
  body.single-product .fw-single-product-page .woocommerce-product-gallery,
  body.single-product .fw-single-product-page .woocommerce-product-gallery__wrapper,
  body.single-product .fw-single-product-page .woocommerce-product-gallery__image,
  body.single-product .fw-single-product-page .fw-server-gallery-thumbs,
  body.single-product .fw-single-product-page .product-detail-info {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
  }

  body.single-product .fw-single-product-page .product-detail {
    padding-top: 12px !important;
  }

  body.single-product .fw-single-product-page .product-detail-breadcrumb {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 12px !important;
  }
}

@media (max-width: 380px) {
  :root { --fw-mobile-page-gutter: 9px; }
}
