/* ==========================================================================
   FAYOS — WooCommerce styling
   Styles WooCommerce's native markup with the FAYOS design system. Loaded
   only on WooCommerce pages (see inc/enqueue.php). Depends on tokens.css.
   Covers: shop archive, single product, cart, checkout, account, notices.
   ========================================================================== */

/* ----------------------------- Shared layout ---------------------------- */
.woocommerce .fy-woo { width: 100%; }
.woocommerce-notices-wrapper:empty { display: none; }

/* Page title on archives */
.woocommerce-products-header__title,
.woocommerce .entry-title,
.woocommerce-page .entry-title {
  font-family: var(--fy-font-display); font-size: var(--fy-fs-3xl);
  letter-spacing: -0.01em; margin-bottom: var(--fy-sp-4);
}

/* --------------------------- Notices / messages ------------------------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border: 0; border-radius: var(--fy-radius); padding: 1rem 1.25rem;
  box-shadow: var(--fy-shadow-xs); font-size: var(--fy-fs-sm);
  border-left: 4px solid var(--fy-primary); background: var(--fy-primary-050); color: var(--fy-gray-900);
  list-style: none; margin-bottom: var(--fy-sp-5);
}
.woocommerce-message { border-left-color: var(--fy-success); background: #eafaf1; }
.woocommerce-error { border-left-color: var(--fy-danger); background: #fdecec; }
.woocommerce-message .button,
.woocommerce-info .button { float: right; }

/* ============================ SHOP / ARCHIVE ============================= */

/* Layout: sidebar + grid (set by archive-product.php override) */
.fy-shop { display: grid; grid-template-columns: 1fr; gap: var(--fy-sp-6); align-items: start; }
@media (min-width: 992px) { .fy-shop { grid-template-columns: 280px 1fr; } }

/* Result count + ordering toolbar */
.fy-shop__toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: var(--fy-sp-4);
  flex-wrap: wrap; padding: var(--fy-sp-3) var(--fy-sp-4); margin-bottom: var(--fy-sp-5);
  background: var(--fy-bg-alt); border: 1px solid var(--fy-border); border-radius: var(--fy-radius);
}
.woocommerce-result-count { margin: 0; color: var(--fy-text-muted); font-size: var(--fy-fs-sm); }
.woocommerce-ordering select,
.fy-filter select {
  border: 1.5px solid var(--fy-border); border-radius: var(--fy-radius-pill);
  padding: 0.5rem 1rem; font-size: var(--fy-fs-sm); background: #fff; color: var(--fy-gray-900); cursor: pointer;
}

/* Sidebar filter widgets */
.fy-shop__sidebar .fy-widget { background: #fff; border: 1px solid var(--fy-border); border-radius: var(--fy-radius); padding: var(--fy-sp-5); margin-bottom: var(--fy-sp-5); }
.fy-shop__sidebar .fy-widget__title { font-family: var(--fy-font-display); font-size: var(--fy-fs-base); margin: 0 0 var(--fy-sp-4); }
.fy-shop__sidebar ul { display: flex; flex-direction: column; gap: var(--fy-sp-2); }
.fy-shop__sidebar a { color: var(--fy-gray-700); font-size: var(--fy-fs-sm); }
.fy-shop__sidebar a:hover { color: var(--fy-primary); }
.fy-shop__sidebar .count { color: var(--fy-text-muted); }
.widget_price_filter .price_slider_amount .button { background: var(--fy-primary); color: #fff; border-radius: var(--fy-radius-pill); padding: 0.5rem 1.1rem; border: 0; font-size: var(--fy-fs-sm); font-weight: 600; }
.widget_price_filter .ui-slider { background: var(--fy-gray-200); border-radius: 999px; height: 6px; }
.widget_price_filter .ui-slider .ui-slider-range { background: var(--fy-primary); }
.widget_price_filter .ui-slider .ui-slider-handle { background: var(--fy-secondary); border: 2px solid #fff; width: 18px; height: 18px; border-radius: 50%; top: -7px; box-shadow: var(--fy-shadow-sm); }

/* Product grid — WooCommerce ul.products */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid; gap: var(--fy-sp-5); margin: 0; padding: 0; list-style: none;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 600px) { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 992px) { .woocommerce ul.products.columns-4,
  .woocommerce ul.products { grid-template-columns: repeat(4, 1fr); } }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; }

/* Our overridden product card (content-product.php) */
.fy-card {
  position: relative; display: flex; flex-direction: column; height: 100%;
  background: #fff; border: 1px solid var(--fy-border); border-radius: var(--fy-radius); overflow: hidden;
  transition: transform var(--fy-dur) var(--fy-ease), box-shadow var(--fy-dur) var(--fy-ease);
}
.fy-card:hover { transform: translateY(-6px); box-shadow: var(--fy-shadow-lg); }
.fy-card__media { position: relative; display: block; aspect-ratio: 1/1; background: var(--fy-gray-050); overflow: hidden; }
.fy-card__media img { width: 100%; height: 100%; object-fit: cover; margin: 0; transition: transform 400ms var(--fy-ease); }
.fy-card:hover .fy-card__media img { transform: scale(1.06); }
.fy-card .onsale,
.fy-card__tag { position: absolute; top: 10px; left: 10px; background: var(--fy-secondary); color: #fff; font-size: var(--fy-fs-xs); font-weight: 700; padding: 4px 10px; border-radius: var(--fy-radius-pill); margin: 0; min-height: auto; min-width: auto; line-height: 1.4; }
.fy-card .fy-product__wish { top: 10px; right: 10px; }
.fy-card__body { padding: var(--fy-sp-4); display: flex; flex-direction: column; gap: var(--fy-sp-2); flex: 1; }
.fy-card__title { font-size: var(--fy-fs-sm); font-weight: 600; color: var(--fy-gray-900); line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; }
.fy-card .star-rating { font-size: 0.85rem; color: var(--fy-secondary); margin: 0; }
.fy-card .price { margin-top: auto; font-family: var(--fy-font-display); font-weight: 700; color: var(--fy-primary); font-size: var(--fy-fs-lg); }
.fy-card .price del { color: var(--fy-text-muted); font-weight: 400; font-size: var(--fy-fs-sm); margin-right: 6px; }
.fy-card .price ins { text-decoration: none; }
.fy-card .button,
.fy-card .added_to_cart {
  margin-top: var(--fy-sp-3); display: inline-flex; align-items: center; justify-content: center;
  background: var(--fy-secondary); color: #fff; border: 0; border-radius: var(--fy-radius-pill);
  padding: 0.7rem 1rem; font-weight: 600; font-size: var(--fy-fs-sm); cursor: pointer; width: 100%;
  transition: background var(--fy-dur), transform var(--fy-dur) var(--fy-ease);
}
.fy-card .button:hover { background: var(--fy-secondary-600); transform: translateY(-2px); color: #fff; }
.fy-card .button.loading { opacity: 0.7; }
.fy-card .added_to_cart { background: var(--fy-primary); margin-top: var(--fy-sp-2); }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; display: flex; gap: 6px; justify-content: center; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--fy-border); border-radius: var(--fy-radius-sm); padding: 0.5rem 0.9rem; color: var(--fy-gray-700);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--fy-primary); color: #fff; border-color: var(--fy-primary); }

/* ============================ SINGLE PRODUCT ============================= */
.woocommerce div.product { display: grid; gap: var(--fy-sp-6); grid-template-columns: 1fr; }
@media (min-width: 768px) { .woocommerce div.product { grid-template-columns: 1fr 1fr; align-items: start; } }
.woocommerce div.product .woocommerce-product-gallery { margin: 0; }
.woocommerce div.product .woocommerce-product-gallery__image img { border-radius: var(--fy-radius-lg); }
.woocommerce div.product .product_title { grid-column: auto; font-family: var(--fy-font-display); font-size: var(--fy-fs-3xl); letter-spacing: -0.01em; margin-bottom: var(--fy-sp-2); }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: var(--fy-sp-3); }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--fy-primary); font-family: var(--fy-font-display); font-weight: 700; font-size: var(--fy-fs-2xl); }
.woocommerce div.product p.price del { color: var(--fy-text-muted); font-weight: 400; font-size: var(--fy-fs-lg); }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--fy-gray-600); line-height: var(--fy-lh-base); }
.woocommerce div.product form.cart { margin: var(--fy-sp-5) 0; display: flex; gap: var(--fy-sp-3); align-items: center; flex-wrap: wrap; }
.woocommerce div.product form.cart .quantity input.qty { width: 72px; padding: 0.7rem; border: 1.5px solid var(--fy-border); border-radius: var(--fy-radius-sm); text-align: center; }
.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  background: var(--fy-primary); color: #fff; border: 0; border-radius: var(--fy-radius-pill);
  padding: 0.85rem 1.8rem; font-weight: 600; font-size: var(--fy-fs-sm); cursor: pointer;
  transition: transform var(--fy-dur) var(--fy-ease), background var(--fy-dur), box-shadow var(--fy-dur);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce div.product form.cart .button:hover { transform: translateY(-2px); box-shadow: var(--fy-shadow); background: var(--fy-primary-600); color: #fff; }
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt { background: var(--fy-secondary); }
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover { background: var(--fy-secondary-600); }
.woocommerce div.product .product_meta { font-size: var(--fy-fs-sm); color: var(--fy-text-muted); border-top: 1px solid var(--fy-border); padding-top: var(--fy-sp-4); margin-top: var(--fy-sp-4); }

/* Variation selects */
.woocommerce div.product form.cart .variations select { border: 1.5px solid var(--fy-border); border-radius: var(--fy-radius-sm); padding: 0.6rem 0.8rem; background: #fff; }
.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th { padding: 6px 8px 6px 0; }

/* Tabs (description / reviews / additional info) */
.woocommerce div.product .woocommerce-tabs { grid-column: 1 / -1; margin-top: var(--fy-sp-6); }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: var(--fy-sp-4); border-bottom: 1px solid var(--fy-border); padding: 0; margin: 0 0 var(--fy-sp-5); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--fy-gray-600); font-weight: 600; padding: 0.75rem 0; display: inline-block; border-bottom: 2px solid transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--fy-primary); border-color: var(--fy-secondary); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

/* Related / upsell grids inherit ul.products styling above */
.woocommerce .related > h2, .woocommerce .upsells > h2 { font-family: var(--fy-font-display); margin-top: var(--fy-sp-8); }

/* Reviews */
.woocommerce #reviews .comment-form-rating .stars a { color: var(--fy-secondary); }
.woocommerce #reviews ol.commentlist li .comment-text { border: 1px solid var(--fy-border); border-radius: var(--fy-radius); padding: var(--fy-sp-5); }

/* ================================= CART ================================= */
.woocommerce table.shop_table { border: 1px solid var(--fy-border); border-radius: var(--fy-radius); border-collapse: separate; border-spacing: 0; overflow: hidden; }
.woocommerce table.shop_table th { background: var(--fy-bg-alt); font-family: var(--fy-font-sans); font-weight: 600; color: var(--fy-gray-700); padding: 1rem; font-size: var(--fy-fs-sm); }
.woocommerce table.shop_table td { padding: 1rem; border-top: 1px solid var(--fy-border); vertical-align: middle; }
.woocommerce table.cart img { width: 64px; border-radius: var(--fy-radius-sm); }
.woocommerce .product-name a { font-weight: 600; color: var(--fy-gray-900); }
.woocommerce .cart .quantity input.qty { width: 70px; padding: 0.5rem; border: 1.5px solid var(--fy-border); border-radius: var(--fy-radius-sm); text-align: center; }
.woocommerce a.remove { color: var(--fy-danger) !important; border: 1px solid var(--fy-border); }
.woocommerce a.remove:hover { background: var(--fy-danger); color: #fff !important; }
.woocommerce .actions .coupon input { border: 1.5px solid var(--fy-border); border-radius: var(--fy-radius-pill); padding: 0.7rem 1rem; }
.cart_totals h2 { font-family: var(--fy-font-display); }
.cart-collaterals .cart_totals { background: #fff; border: 1px solid var(--fy-border); border-radius: var(--fy-radius); padding: var(--fy-sp-5); }
.woocommerce .cart-collaterals .cart_totals .order-total .amount { color: var(--fy-primary); font-size: var(--fy-fs-xl); }
.wc-proceed-to-checkout a.checkout-button { background: var(--fy-secondary) !important; font-size: var(--fy-fs-base) !important; padding: 1rem 1.5rem !important; text-align: center; }
.wc-proceed-to-checkout a.checkout-button:hover { background: var(--fy-secondary-600) !important; }

@media (min-width: 992px) {
  .woocommerce-cart-form { display: block; }
  .woocommerce .cart-collaterals { display: flex; justify-content: flex-end; }
  .woocommerce .cart-collaterals .cart_totals { width: 420px; }
}

/* =============================== CHECKOUT =============================== */
.woocommerce-checkout #customer_details { gap: var(--fy-sp-6); }
.woocommerce form .form-row label { font-weight: 600; font-size: var(--fy-fs-sm); color: var(--fy-gray-700); margin-bottom: 4px; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce-checkout .select2-container .select2-selection,
.woocommerce form .form-row select {
  border: 1.5px solid var(--fy-border); border-radius: var(--fy-radius-sm); padding: 0.75rem 0.9rem;
  font-size: var(--fy-fs-sm); background: #fff; box-shadow: none;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus { border-color: var(--fy-primary); outline: none; }
.woocommerce-checkout h3 { font-family: var(--fy-font-display); }
#order_review, #order_review_heading {
  background: #fff; border: 1px solid var(--fy-border); border-radius: var(--fy-radius); padding: var(--fy-sp-5);
}
#order_review_heading { border-bottom: 0; border-radius: var(--fy-radius) var(--fy-radius) 0 0; margin-bottom: 0; }
#order_review { border-top: 0; border-radius: 0 0 var(--fy-radius) var(--fy-radius); }
.woocommerce-checkout #payment { background: var(--fy-bg-alt); border-radius: var(--fy-radius); }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--fy-border); }
.woocommerce-checkout #payment div.payment_box { background: #fff; border-radius: var(--fy-radius-sm); }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fff; }
#place_order { width: 100%; background: var(--fy-secondary); font-size: var(--fy-fs-base); padding: 1rem; }
#place_order:hover { background: var(--fy-secondary-600); }

/* Trust strip under checkout button */
.fy-secure-note { display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--fy-text-muted); font-size: var(--fy-fs-xs); margin-top: var(--fy-sp-3); }

/* ============================== MY ACCOUNT ============================== */
.woocommerce-account .woocommerce-MyAccount-navigation ul { display: flex; flex-direction: column; gap: 4px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 0.7rem 1rem; border-radius: var(--fy-radius-sm); color: var(--fy-gray-700); font-weight: 600; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--fy-primary-050); color: var(--fy-primary); }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--fy-gray-050); }
@media (min-width: 768px) {
  .woocommerce-account .woocommerce-MyAccount-navigation { width: 240px; float: left; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul { background: #fff; border: 1px solid var(--fy-border); border-radius: var(--fy-radius); padding: var(--fy-sp-3); }
  .woocommerce-account .woocommerce-MyAccount-content { width: calc(100% - 280px); float: right; }
}

/* ----------------------- Auth (login / register) ----------------------- */
/* Full-bleed split layout; the login template renders inside My Account. */
.woocommerce-account:not(.logged-in) .fy-woo { padding: 0; }
.fy-auth {
  display: grid; grid-template-columns: 1fr; gap: 0; max-width: 1080px; margin: var(--fy-sp-6) auto;
  background: #fff; border: 1px solid var(--fy-border); border-radius: var(--fy-radius-lg); overflow: hidden; box-shadow: var(--fy-shadow);
}
@media (min-width: 860px) { .fy-auth { grid-template-columns: 0.9fr 1.1fr; } }
.fy-auth__brand { display: none; background: linear-gradient(150deg, var(--fy-primary) 0%, var(--fy-primary-700) 70%, #07243f 100%); color: #fff; padding: var(--fy-sp-8); position: relative; }
.fy-auth__brand::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(255,122,0,.35), transparent 70%); }
@media (min-width: 860px) { .fy-auth__brand { display: flex; align-items: center; } }
.fy-auth__brand-inner { position: relative; z-index: 1; }
.fy-auth__perks { margin-top: var(--fy-sp-5); display: grid; gap: var(--fy-sp-3); }
.fy-auth__perks li { display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.9); font-size: var(--fy-fs-sm); }
.fy-auth__perks li::before { content: "✓"; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--fy-secondary); color: #fff; font-size: 12px; font-weight: 700; flex: none; }
.fy-auth__forms { padding: var(--fy-sp-8) var(--fy-sp-6); }
@media (min-width: 600px) { .fy-auth__forms { padding: var(--fy-sp-8); } }
.fy-auth__tabs { display: inline-flex; background: var(--fy-gray-050); border-radius: var(--fy-radius-pill); padding: 4px; margin-bottom: var(--fy-sp-5); }
.fy-auth__tab { border: 0; background: transparent; padding: 0.55rem 1.4rem; border-radius: var(--fy-radius-pill); font-weight: 600; font-size: var(--fy-fs-sm); color: var(--fy-gray-600); cursor: pointer; }
.fy-auth__tab.is-active { background: #fff; color: var(--fy-primary); box-shadow: var(--fy-shadow-xs); }
.fy-auth__title { font-size: var(--fy-fs-2xl); margin-bottom: var(--fy-sp-5); }
.fy-auth__pane { display: none; }
.fy-auth__pane.is-active { display: block; animation: fy-fade .3s var(--fy-ease); }
@keyframes fy-fade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.fy-auth__social { display: grid; gap: var(--fy-sp-3); margin-bottom: var(--fy-sp-4); }
.fy-social { justify-content: center; opacity: .85; }
.fy-social span { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--fy-gray-100); font-weight: 800; margin-right: 6px; }
.fy-auth__divider { display: flex; align-items: center; gap: var(--fy-sp-3); color: var(--fy-text-muted); font-size: var(--fy-fs-xs); margin: var(--fy-sp-4) 0; }
.fy-auth__divider::before, .fy-auth__divider::after { content: ""; flex: 1; height: 1px; background: var(--fy-border); }
.woocommerce form.login .form-row,
.woocommerce form.register .form-row { padding: 0; margin-bottom: var(--fy-sp-4); }
.fy-auth__row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.fy-auth__row .rememberme { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fy-fs-sm); color: var(--fy-gray-600); }
.fy-auth__lost { font-size: var(--fy-fs-sm); font-weight: 600; }
.fy-auth__sell { margin-top: var(--fy-sp-5); padding-top: var(--fy-sp-4); border-top: 1px solid var(--fy-border); font-size: var(--fy-fs-sm); color: var(--fy-text-muted); }

/* ----------------------------- Dashboard ------------------------------- */
.fy-dash__welcome { display: flex; align-items: center; gap: var(--fy-sp-4); margin-bottom: var(--fy-sp-6); }
.fy-dash__avatar { border-radius: 50%; border: 3px solid var(--fy-primary-050); }
.fy-dash__stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--fy-sp-4); margin-bottom: var(--fy-sp-6); }
@media (min-width: 720px) { .fy-dash__stats { grid-template-columns: repeat(4, 1fr); } }
.fy-stat { display: flex; flex-direction: column; gap: 4px; padding: var(--fy-sp-5); background: #fff; border: 1px solid var(--fy-border); border-radius: var(--fy-radius); transition: transform var(--fy-dur) var(--fy-ease), box-shadow var(--fy-dur); }
a.fy-stat:hover { transform: translateY(-3px); box-shadow: var(--fy-shadow); }
.fy-stat__num { font-family: var(--fy-font-display); font-size: var(--fy-fs-xl); font-weight: 700; color: var(--fy-primary); }
.fy-stat__label { font-size: var(--fy-fs-sm); color: var(--fy-text-muted); }
.fy-dash__quick { display: flex; flex-wrap: wrap; gap: var(--fy-sp-2); margin-bottom: var(--fy-sp-6); }
.fy-dash__quick a { background: var(--fy-gray-050); border: 1px solid var(--fy-border); border-radius: var(--fy-radius-pill); padding: 0.5rem 1.1rem; font-size: var(--fy-fs-sm); font-weight: 600; color: var(--fy-gray-700); }
.fy-dash__quick a:hover { background: var(--fy-primary-050); color: var(--fy-primary); }
.fy-dash__empty { text-align: center; padding: var(--fy-sp-8); background: var(--fy-bg-alt); border-radius: var(--fy-radius); }
.fy-order-status { display: inline-block; padding: 3px 10px; border-radius: var(--fy-radius-pill); font-size: var(--fy-fs-xs); font-weight: 600; background: var(--fy-gray-100); color: var(--fy-gray-700); }
.fy-order-status--completed { background: #eafaf1; color: var(--fy-success); }
.fy-order-status--processing { background: var(--fy-secondary-050); color: var(--fy-secondary-600); }
.fy-order-status--on-hold { background: #fff6e0; color: var(--fy-warning); }
.fy-order-status--cancelled, .fy-order-status--failed { background: #fdecec; color: var(--fy-danger); }

/* ---------------------------- Profile form ----------------------------- */
.fy-profile-avatar { display: flex; align-items: center; gap: var(--fy-sp-5); padding: var(--fy-sp-5); background: var(--fy-bg-alt); border-radius: var(--fy-radius); margin-bottom: var(--fy-sp-6); }
.fy-profile-avatar__img { border-radius: 50%; border: 3px solid #fff; box-shadow: var(--fy-shadow-sm); }
.fy-profile-avatar__hint { font-size: var(--fy-fs-xs); color: var(--fy-text-muted); margin: 8px 0 0; }
.fy-profile-form fieldset { border: 1px solid var(--fy-border); border-radius: var(--fy-radius); padding: var(--fy-sp-5); margin: var(--fy-sp-4) 0; }
.fy-profile-form legend { font-weight: 700; padding: 0 8px; color: var(--fy-gray-700); }
