/* Native app presentation in the existing modern Site shell. Classic and
 * merchant templates do not receive v2-app-surface. All colors inherit the
 * published family / Builder presentation tokens. */
.site-v2 .v2-app-surface {
    --app-panel:var(--v2-paper);
    --app-line:var(--v2-soft);
    --app-pad:24px;
    padding-block:40px 56px;
    color:var(--v2-ink);
    overflow-wrap:anywhere;
    container-type:inline-size;
}
.site-v2.v2-surfaces-subtle .v2-app-surface { --app-panel:color-mix(in srgb,var(--v2-paper) 94%,var(--v2-ink)); }
.site-v2 .v2-app-surface :is(.page-data,.product-content) { padding:0; margin:0; }
.site-v2 .v2-app-surface :is(.v2-app-title,h1.page-title,h1.post-title,h1.form-title) {
    margin:0 0 32px; font-size:clamp(2rem,3.5vw,3.25rem); line-height:1.12; letter-spacing:-.02em;
}
.site-v2 .v2-app-surface :is(h2,h3,h4,legend) { color:inherit; line-height:1.3; }
.site-v2 .v2-app-surface h2 { margin:32px 0 16px; font-size:clamp(1.5rem,2.2vw,2rem); }
.site-v2 .v2-app-surface h3 { margin:0 0 16px; font-size:1.2rem; }
.site-v2 .v2-app-surface h4 { margin:0 0 16px; font-size:1rem; }
.site-v2 .v2-app-surface p { line-height:1.7; }
.site-v2 .v2-app-surface .page-data.store :is(.page-box,.cart-box,.store-form.apply-coupon,.store-form.form-shipping-tax),
.site-v2 .v2-app-surface :is(.auth-login,.auth-signup,.auth-guest,.auth-forgot-password,.auth-reset-password) {
    background:var(--app-panel); color:var(--v2-ink); border:1px solid var(--app-line);
    border-radius:var(--v2-radius); padding:var(--app-pad); margin:0 0 24px;
    box-shadow:var(--v2-elevation); min-width:0;
}
.site-v2 .v2-app-surface .cart-box :is(legend,label,.total,.agree),
.site-v2 .v2-app-surface .store-form.payments .big_label { color:inherit; }
.site-v2 .v2-app-surface :is(.form,.store-basket,.content-form) { font:inherit; }
.site-v2 .v2-app-surface :is(.form-item,.form-field) { margin:0 0 20px; }
.site-v2 .v2-app-surface .page-data.store .store-form .form-item {
    display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 16px; margin:0 0 20px;
}
.site-v2 .v2-app-surface :is(.auth-form,.account-information,.store-form,.store-basket) label {
    display:block; float:none; clear:none; width:auto; max-width:none; height:auto;
    padding:0; margin:0 0 8px; text-align:left; font-size:.9rem;
}
.site-v2 .v2-app-surface .page-data.store .store-form .form-item > label { flex-basis:100%; }
.site-v2 .v2-app-surface :is(.auth-form,.account-information,.store-form,.store-basket) :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=reset]),select,textarea),
.site-v2 .v2-app-surface .page-data.store .store-form .form-item > :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea) {
    display:block; float:none; width:100%; max-width:36rem; height:auto; min-height:44px;
    margin:0; padding:12px; font:inherit; color:var(--v2-ink); background:var(--v2-paper);
    border:1px solid color-mix(in srgb,var(--v2-ink) 40%,var(--v2-paper)); border-radius:var(--v2-radius);
}
.site-v2.v2-fields-filled .v2-app-surface :is(.auth-form,.store-form,.account-information) :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea) { background:var(--v2-soft); }
.site-v2 .v2-app-surface :is(input[type=checkbox],input[type=radio]) { float:none; width:auto; height:auto; margin:0 .5em 0 0; accent-color:var(--v2-accent); }
.site-v2 .v2-app-surface :is(.form-remember-me,.form-gender,.agree) label { display:inline; }
.site-v2 .v2-app-surface :is(button,a,input,select,textarea):focus-visible { outline:3px solid var(--v2-focus); outline-offset:3px; }
.site-v2 .v2-app-surface :is([aria-invalid=true],.bad,.error-field) { border-color:var(--v2-danger); }
.site-v2 .v2-app-surface :is(.message-bad,.error,.required,[role=alert]) { color:var(--v2-danger); }
.site-v2 .v2-app-surface .buttons {
    display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:0; margin:20px 0 0;
}
.site-v2 .v2-app-surface .buttons > :is(button,a) { float:none; margin:0; }
.site-v2 .v2-app-surface :is(.buttons button,.buttons a,.payment_type button,.store-basket button,.v2-button) {
    display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px;
    padding:11px 20px; border:1px solid var(--v2-accent); border-radius:var(--v2-radius);
    background:var(--v2-accent); color:var(--v2-on-accent); font:inherit; font-weight:600;
    line-height:1.4; text-decoration:none; cursor:pointer;
}
.site-v2 .v2-app-surface .buttons :is(.neutral,.negative,.btn-cancel,.v2-button-secondary) {
    background:transparent; color:var(--v2-ink); border-color:color-mix(in srgb,var(--v2-ink) 40%,var(--v2-paper));
}
.site-v2.v2-primary-outline .v2-app-surface .buttons .positive { background:transparent; color:var(--v2-ink); }
.site-v2 .v2-app-surface button:disabled { cursor:default; opacity:.6; }
/* Product media and purchase information share the family content grid. */
.site-v2 .v2-app-surface .product-content .product-info {
    display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(24px,4vw,64px);
}
.site-v2 .v2-app-surface .product-content .product-info > .product-details { padding:16px 0; }
.site-v2 .v2-app-surface .product-content .product-price { font-size:1.5rem; margin:0 0 24px; }
.site-v2 .v2-app-surface .product-content .product-images { min-width:0; }
.site-v2 .v2-app-surface .product-content .product-images img { max-width:100%; height:auto; }
.site-v2 .v2-app-surface .product-content .product-basket { margin:24px 0; }
.site-v2 .v2-app-surface .product-content .store-basket { display:flex; flex-direction:column; gap:16px; }
.site-v2 .v2-app-surface .product-content .store-basket > .buttons { order:2; margin:0; }
.site-v2 .v2-app-surface .product-content .store-basket .form-field { margin:0; }
.site-v2 .v2-app-surface .product-content .product-tabs {
    display:flex; flex-wrap:wrap; gap:8px; padding:0 0 12px; margin:40px 0 24px;
    border-bottom:1px solid var(--app-line); background:transparent;
}
.site-v2 .v2-app-surface .product-content .product-tabs .product-tab {
    float:none; display:block; padding:12px 20px; min-height:44px; font:inherit;
    border:1px solid var(--app-line); border-radius:var(--v2-radius); background:var(--app-panel);
    color:var(--v2-ink); cursor:pointer; margin:0;
}
.site-v2 .v2-app-surface .product-content .product-tabs .product-tab.active { background:var(--v2-accent); color:var(--v2-on-accent); border-color:var(--v2-accent); }
.site-v2 .v2-app-surface .product-information { padding-bottom:16px; }
.site-v2 .v2-app-surface .product-information .tab-item { padding-block:8px; }
.site-v2 .v2-app-surface .product-toolbar { margin-bottom:24px; }
/* Shared checkout, order and account components. Retain every column/field. */
.site-v2 .v2-app-surface .page-data.store .steps { display:flex; flex-wrap:wrap; gap:12px 24px; padding:0 0 24px; margin:0 0 24px; border-bottom:1px solid var(--app-line); list-style:none; }
.site-v2 .v2-app-surface .steps li { float:none; margin:0; color:inherit; }
.site-v2 .v2-app-surface .steps li.active { font-weight:700; color:var(--v2-ink); }
.site-v2 .v2-app-surface .steps .number { display:inline-flex; align-items:center; justify-content:center; min-width:28px; min-height:28px; margin-right:6px; border:1px solid var(--app-line); border-radius:50%; background:var(--v2-soft); color:var(--v2-ink); }
.site-v2 .v2-app-surface .page-data.store :is(.cart-box,.page-box) { overflow-x:auto; }
.site-v2 .v2-app-surface .page-data.store :is(table.cart,table.tables,.cart-table) { width:100%; border-collapse:collapse; font:inherit; }
.site-v2 .v2-app-surface .page-data.store :is(table.cart,table.tables,.cart-table) :is(th,td) { padding:16px 12px; color:inherit; background:transparent; border:0; border-bottom:1px solid var(--app-line); vertical-align:top; }
.site-v2 .v2-app-surface .page-data.store :is(table.cart,table.tables) th { font-size:.875rem; font-weight:600; }
.site-v2 .v2-app-surface .page-data.store .cart .product-attributes { font-size:.875rem; line-height:1.6; }
.site-v2 .v2-app-surface .page-data.store .total {
    display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 24px; color:inherit;
    font-size:1rem; padding:24px 0 0; margin:16px 0 0; border-color:var(--app-line);
}
.site-v2 .v2-app-surface .total :is(.left,.right) { float:none; }
.site-v2 .v2-app-surface .total .right { text-align:right; }
.site-v2 .v2-app-surface .total .clearfloat { display:none; }
.site-v2 .v2-app-surface .total :is(.cart-total,.cart-total-amount) { font-size:1.25rem; font-weight:700; padding-top:8px; }
.site-v2 .v2-app-surface .store-cart-box { margin:0 0 32px; }
.site-v2 .v2-app-surface .page-data.store .payment_type { background:var(--app-panel); color:var(--v2-ink); padding:16px; border:1px solid var(--app-line); margin-bottom:12px; }
.site-v2 .v2-app-surface .page-data.store.account.orders .order-details .order-block,
.site-v2 .v2-app-surface .cart-box .shipping-info { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:24px 0; }
.site-v2 .v2-app-surface .page-data.store.account.orders .order-details .order-block.order-details { display:block; }
.site-v2 .v2-app-surface .page-data.store.account.orders .order-block :is(.order-col-1,.order-col-2),
.site-v2 .v2-app-surface .page-data.store .cart-box .shipping-info :is(.shipping-left,.shipping-right) { float:none; width:auto; }
.site-v2 .v2-app-surface .order-block::after,.site-v2 .v2-app-surface .shipping-info::after { display:none; }
.site-v2 .v2-app-surface .order-summary { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin-bottom:24px; }
.site-v2 .v2-app-surface .order-summary .order-number { font-size:1.25rem; }
.site-v2 .v2-app-surface .order-status-summary { display:flex; flex-wrap:wrap; gap:8px 20px; margin:16px 0 24px; }
.site-v2 .v2-app-surface .order-status-summary span { padding:6px 12px; background:var(--v2-soft); border-radius:var(--v2-radius); font-size:.875rem; }
.site-v2 .v2-app-surface .page-data.store.account .account-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.site-v2 .v2-app-surface .page-data.store.account .account-list li { float:none; width:auto; margin:0; }
.site-v2 .v2-app-surface .account-list li a { display:flex; align-items:center; gap:16px; padding:24px; min-height:96px; border:1px solid var(--app-line); border-radius:var(--v2-radius); background:var(--app-panel); text-decoration:none; }
.site-v2 .v2-app-surface .account-list::after { display:none; }
.site-v2 .v2-app-surface .page-data.store.account .account-profile .item-left,
.site-v2 .v2-app-surface .page-data.store.account .account-profile .item-right { padding:0; }
.site-v2 .v2-app-surface .account-profile .form.account-information .form-item input { padding:12px; max-width:36rem; }
/* Blog retains native categories, author, dates, navigation and comment forms. */
.site-v2 .v2-app-blog .post-item { margin:0 0 40px; }
.site-v2 .v2-app-blog .post-item h2.post-title { margin:0 0 16px; }
.site-v2 .v2-app-blog .post-content { font-size:1.05rem; line-height:1.8; margin:24px 0; max-width:75ch; }
.site-v2 .v2-app-blog .post-content :is(img,video) { max-width:100%; height:auto; }
.site-v2 .v2-app-blog :is(.post-date,.post-category-list,.post-tag-list,.post-author) { font-size:.875rem; line-height:1.6; margin:8px 0; }
.site-v2 .v2-app-blog .post-links { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; margin:0 0 32px; }
.site-v2 .v2-app-blog .post-links > div { float:none; }
.site-v2 .v2-app-blog .post-comments { padding-top:32px; border-top:1px solid var(--app-line); margin-top:32px; }
.site-v2 .v2-app-blog .post-comment-form { max-width:42rem; }
.site-v2 .v2-app-blog .post-comment-form label { display:block; margin-bottom:8px; }
.site-v2 .v2-app-blog .post-comment-form :is(input,textarea) { width:100%; font:inherit; }
.site-v2 .v2-app-forms .form-content-before { max-width:75ch; margin-bottom:32px; }
.site-v2 .v2-app-forms .form-content-after { margin-top:32px; }
.site-v2 .v2-app-forms .content-form { max-width:48rem; }
@container (max-width:680px) {
    .site-v2 .v2-app-surface .product-content .product-info { grid-template-columns:minmax(0,1fr); }
    .site-v2 .v2-app-surface .product-content .product-info > .product-details { padding:0; }
    .site-v2 .v2-app-surface .page-data.store.account .account-list,
    .site-v2 .v2-app-surface .page-data.store.account.orders .order-details .order-block,
    .site-v2 .v2-app-surface .cart-box .shipping-info { grid-template-columns:minmax(0,1fr); }
    .site-v2 .v2-app-surface .auth-logsig :is(.auth-login,.auth-signup,.auth-guest) { float:none; width:100%; border:1px solid var(--app-line); padding:var(--app-pad); }
    .site-v2 .v2-app-surface .page-data.store.account .tables :is(.th-order-shipping,td.order-shipping) { display:table-cell; }
    .site-v2 .v2-app-surface .page-data.store.account table { min-width:620px; }
    .site-v2 .v2-app-surface .page-data.store.account table.address-book { min-width:480px; }
}
@media(max-width:600px) {
    .site-v2 .v2-app-surface { --app-pad:16px; padding-block:28px 40px; }
    .site-v2 .v2-app-surface :is(.v2-app-title,h1.page-title,h1.post-title,h1.form-title) { margin-bottom:24px; }
    .site-v2 .v2-app-surface .product-content .product-tabs .product-tab { padding:10px 14px; }
    .site-v2 .v2-app-surface .page-data.store table.cart :is(th,td) { padding:12px 8px; }
    .site-v2 .v2-app-surface .page-data.store table.cart { min-width:460px; }
    /* Condensed checkout and four-column order details keep prices in view. */
    .site-v2 .v2-app-surface .page-data.store table.cart:not(.cart-full-headers):not(.cart-full-no-headers) { min-width:0; }
    .site-v2 .v2-app-surface .page-data.store table.cart:not(.cart-full-headers):not(.cart-full-no-headers) th { width:auto; }
    .site-v2 .v2-app-surface .page-data.store table.cart .product-name { overflow-wrap:anywhere; }
    .site-v2 .v2-app-surface .page-data.store.account table.order-info.order-items { min-width:0; table-layout:fixed; }
    .site-v2 .v2-app-surface .page-data.store table.order-info.order-items col:first-child { width:40%; }
    .site-v2 .v2-app-surface .page-data.store table.order-info.order-items col:not(:first-child) { width:20%; }
    .site-v2 .v2-app-surface .page-data.store table.order-info.order-items :is(th,td) { padding:12px 6px; overflow-wrap:anywhere; }
    .site-v2 .v2-app-surface .cart-items { overflow-x:auto; }
}
@media print {
    .site-v2 .v2-app-surface { padding:0; color:#000; }
    .site-v2 .v2-app-surface :is(.buttons,.steps,nav) { display:none; }
    .site-v2 .v2-app-surface .page-data.store :is(.cart-box,.page-box) { overflow:visible; background:#fff; color:#000; box-shadow:none; border-color:#aaa; }
    .site-v2 .v2-app-surface .page-data.store.account table { min-width:0; }
}
