/* Scoped to subscription account pages. No theme/plugin globals or external dependencies. */
.wom-sub-account {
    --sub-ink:#183440;
    --sub-muted:#526671;
    --sub-line:#dce5e9;
    --sub-accent:#086d89;
    --sub-accent-soft:#eaf5f7;
    --sub-surface:#ffffff;
    --sub-focus:#123f54;
    --sub-bg:#f2f8fa;
    --sub-danger:#9f3030;
    color:var(--sub-ink);
    font-size:16px;
    line-height:1.6;
    max-width:820px;
    margin:0 auto 40px;
    overflow-wrap:anywhere;
    text-align:left
}

.wom-sub-account * {
    box-sizing:border-box
}
.wom-sub-account h1,.wom-sub-account h2,.wom-sub-account h3 {
    color:var(--sub-ink);
    font-family:inherit;
    line-height:1.3;
    letter-spacing:0;
    text-transform:none;
    margin:0
}
.wom-sub-account h1 {
    font-size:30px;
    font-weight:700
}
.wom-sub-account h2 {
    font-size:20px;
    font-weight:650
}
.wom-sub-account h3 {
    font-size:19px
}
.wom-sub-account p {
    margin:8px 0
}
.wom-sub-account a {
    color:var(--sub-accent);
    text-decoration:underline;
    text-underline-offset:3px
}
.wom-sub-header,.wom-sub-section-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px
}
.wom-sub-header {
    margin:8px 0 24px
}
.wom-sub-account .wom-sub-guide {
    padding:16px 20px;
    margin-bottom:24px;
    background:var(--sub-accent-soft);
    border-radius:12px;
}
.wom-sub-account .wom-sub-guide p { margin:0 0 8px; }
.wom-sub-account .wom-sub-guide ul { margin:0 0 12px; padding-left:20px; }
.wom-sub-account .wom-sub-guide li { margin:4px 0; }
.wom-sub-account .wom-sub-terms-link { display:inline-flex; align-items:center; min-height:44px; }
.wom-sub-back {
    display:inline-flex;
    align-items:center;
    min-height:44px;
    margin-bottom:12px
}
.wom-sub-eyebrow,.wom-sub-label,.wom-sub-account .wom-sub-hint {
    color:var(--sub-muted);
    font-size:14px
}
.wom-sub-card {
    background:#fff;
    border:1px solid var(--sub-line);
    border-radius:14px;
    padding:24px;
    margin-bottom:20px
}
.wom-sub-product {
    display:flex;
    align-items:center;
    gap:18px;
    margin:0 0 14px
}
.wom-sub-product>div {
    min-width:0
}
.wom-sub-product .wom-sub-image {
    width:76px;
    height:76px;
    object-fit:contain;
    flex:0 0 76px;
    border-radius:10px;
    background:var(--sub-bg)
}
.wom-sub-product p {
    font-size:14px;
    color:var(--sub-muted)
}
.wom-sub-account .wom-sub-price {
    font-size:23px;
    font-weight:700
}
.wom-sub-price > span:not(.amount) {
    font-size:15px;
    font-weight:400
}
.wom-sub-status {
    display:inline-block;
    white-space:nowrap;
    border-radius:99px;
    background:#e6f3ec;
    color:#216141;
    padding:5px 13px;
    font-size:14px;
    font-weight:650
}
.wom-sub-status.is-paused {
    color:#765013;
    background:#fff1d5
}
.wom-sub-section-heading {
    margin-bottom:12px
}
.wom-sub-status.is-ended { color:#526671; background:#edf0f2 }
.wom-sub-section-heading a {
    display:inline-flex;
    align-items:center;
    min-height:44px
}
.wom-sub-account .wom-sub-address-button {
    border:1px solid var(--sub-accent);
    border-radius:8px;
    padding:8px 12px;
    text-decoration:none;
    text-align:center;
    justify-content:center;
    flex-shrink:0
}
.wom-sub-account .wom-sub-address-button:hover { background:var(--sub-bg) }
.wom-sub-payment .wom-sub-card-number { font-size:18px; font-weight:600 }
.wom-sub-payment>a { display:inline-flex; align-items:center; min-height:44px }
#wom-sub-cancel:target { outline:2px solid var(--sub-accent); outline-offset:6px }
.wom-sub-recipient strong {
    font-size:19px
}
.wom-sub-recipient p {
    margin:2px 0
}
.wom-sub-schedule-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:24px;
    margin:18px 0
}
.wom-sub-account .wom-sub-date,.wom-sub-account .wom-sub-interval {
    font-size:23px;
    font-weight:650;
    line-height:1.35;
    margin-top:4px
}
.wom-sub-control {
    border-top:1px solid var(--sub-line);
    margin-top:14px;
    padding-top:4px
}
.wom-sub-delivery-estimate {
    border-top:1px solid var(--sub-line);
    padding-top:14px
}
.wom-sub-account .wom-sub-estimate-date {
    font-size:19px;
    font-weight:650;
    line-height:1.4
}
.wom-sub-control summary,.wom-sub-cancel summary {
    cursor:pointer;
    min-height:48px;
    padding:12px 0;
    font-weight:600;
    color:var(--sub-accent)
}
.wom-sub-control[open] {
    padding-bottom:12px
}
.wom-sub-form {
    margin:12px 0 0
}
.wom-sub-form label {
    display:block;
    font-weight:600;
    margin-bottom:8px
}
.wom-sub-account .wom-sub-form input[type=date],.wom-sub-account .wom-sub-form select {
    display:block;
    background:#fff;
    color:var(--sub-ink);
    border:1px solid #7c929c;
    border-radius:8px;
    min-height:48px;
    width:100%;
    max-width:340px;
    padding:10px 12px;
    font:inherit;
    color-scheme:light
}
.wom-sub-form input[aria-invalid=true] {
    border:2px solid var(--sub-danger)
}
.wom-sub-account .wom-sub-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--sub-accent);
    color:#fff!important;
    border:1px solid var(--sub-accent);
    border-radius:8px;
    min-height:46px;
    padding:11px 20px;
    line-height:1.4;
    font-family:inherit;
    font-size:16px;
    font-weight:600;
    letter-spacing:0;
    text-transform:none;
    text-decoration:none;
    cursor:pointer;
    box-shadow:none;
    margin-top:10px;
    white-space:normal;
    text-align:center
}
.wom-sub-account .wom-sub-button:hover {
    background:#075e7a
}
.wom-sub-account .wom-sub-button:disabled {
    opacity:.65;
    cursor:wait
}
.wom-sub-account .wom-sub-danger {
    background:#fff;
    color:var(--sub-danger)!important;
    border-color:var(--sub-danger)
}
.wom-sub-account .wom-sub-danger:hover {
    background:#fff0f0
}
.wom-sub-account :is(a,button,input,select,summary):focus-visible {
    outline:3px solid #123f54;
    outline-offset:4px
}
.wom-sub-resume {
    background:var(--sub-bg);
    padding:20px;
    border-radius:10px;
    margin:20px 0
}
.wom-sub-footer {
    display:flex;
    flex-wrap:wrap;
    gap:12px 24px;
    margin:14px 0
}
.wom-sub-footer a {
    min-height:44px;
    display:inline-flex;
    align-items:center
}
.wom-sub-cancel {
    margin-top:12px
}
.wom-sub-error {
    background:#fff3f1;
    border:1px solid #cb7770;
    color:#802f26;
    border-radius:8px;
    padding:14px;
    margin:16px 0
}
body.woocommerce-account .woocommerce-MyAccount-content {
    min-width:0
}

.wom-sub-account .wom-sub-costs {margin:18px 0 8px;font-size:15px}
.wom-sub-account .wom-sub-costs>div {display:flex;justify-content:space-between;gap:20px}
.wom-sub-account .wom-sub-costs dt {font-weight:400}
.wom-sub-account .wom-sub-costs dd {margin:0;text-align:right}
.wom-sub-account .wom-sub-form input[type=text], .wom-sub-account .wom-sub-form input[type=tel] {width:100%;min-height:44px;margin:6px 0 14px}
.wom-address-quote {clear:both;border:1px solid #ccdbe1;padding:18px;margin:16px 0;border-radius:12px}
.wom-address-quote button {min-height:44px}
.wom-address-quote label[hidden] {display:none!important}
.wom-calendar-preview:not(:empty) {border-left:3px solid #087d9b;padding:12px;background:#f2f8fa}
.wom-sub-account .wom-sub-delivery-review { padding: 18px; border: 1px solid var(--sub-line, #dbe5e8); border-radius: 12px; background: #f5fafb; }
.wom-sub-account .wom-sub-delivery-accept { display: flex; align-items: flex-start; gap: 10px; }
.wom-sub-account .wom-sub-delivery-accept input { width: 20px; min-width: 20px; height: 20px; min-height: 20px; margin-top: 4px; }

/* Keep inactive delivery fields hidden even when theme form styles set display. */
.wom-sub-account [data-wom-delivery-home][hidden],
.wom-sub-account [data-wom-delivery-pickup][hidden] { display: none !important; }

/* The account plugin floats a 67% desktop column even after its menu stacks.
   Scope the layout reset to subscription pages; leave other account screens alone. */
body.woocommerce-account .woocommerce-MyAccount-content { min-width:0; }
.wom-sub-account { width:100%; padding-bottom:24px; }
.wom-sub-account .wom-sub-header { flex-wrap:wrap; gap:12px; margin:4px 0 20px; }
.wom-sub-header>div { flex:1 1 200px; min-width:0; }
.wom-sub-account h1 { font-size:28px; text-wrap:balance; }
.wom-sub-account .wom-sub-eyebrow { margin:0 0 6px; }
.wom-sub-account .wom-sub-back { margin:0 0 8px; text-decoration:none; font-weight:600; }
.wom-sub-account .wom-sub-card { border-radius:16px; padding:24px; margin:0 0 18px; box-shadow:0 3px 14px rgba(24,52,64,.035); }
.wom-sub-account .wom-sub-overview { border-color:#b9dbe3; border-top:4px solid var(--sub-accent); }
.wom-sub-account .wom-sub-product { margin-bottom:16px; align-items:flex-start; }
.wom-sub-account .wom-sub-product .wom-sub-image { width:80px; height:80px; flex-basis:80px; border-radius:12px; }
.wom-sub-account .wom-sub-costs { margin:16px 0 8px; padding-top:14px; border-top:1px solid var(--sub-line); }
.wom-sub-account .wom-sub-costs>div { gap:12px; padding:3px 0; }
.wom-sub-account .wom-sub-costs dd { flex-shrink:0; }
.wom-sub-account .wom-sub-price { font-size:26px; margin:12px 0 20px; }
.wom-sub-account .wom-sub-price .amount { font-size:inherit; font-weight:inherit; }
.wom-sub-overview-schedule { display:grid; grid-template-columns:1fr 1fr; gap:16px; background:var(--sub-accent-soft); padding:16px; border-radius:12px; }
.wom-sub-overview-schedule>div { display:flex; gap:10px; align-items:flex-start; min-width:0; }
.wom-sub-overview-schedule p { margin:0; }
.wom-sub-account .wom-sub-overview-schedule .wom-sub-date,.wom-sub-account .wom-sub-overview-schedule .wom-sub-interval { font-size:19px; margin-top:4px; }
.wom-sub-icon { flex:0 0 22px; width:22px; height:22px; color:var(--sub-accent); margin-top:2px; }
.wom-sub-account h2:has(.wom-sub-heading-icon) { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.wom-sub-heading-icon { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; flex:0 0 36px; background:var(--sub-accent-soft); border-radius:10px; }
.wom-sub-heading-icon .wom-sub-icon { margin:0; }
.wom-sub-account .wom-sub-section-heading h2 { margin-bottom:0; }
.wom-sub-account .wom-sub-status { padding:6px 12px; font-size:13px; }
.wom-sub-account .wom-sub-delivery-estimate { gap:12px; margin:16px 0; }
.wom-sub-delivery-estimate>div { padding:14px; border:1px solid var(--sub-line); border-radius:12px; background:#f8fafb; }
.wom-sub-account .wom-sub-estimate-date { font-weight:700; font-size:18px; }
.wom-sub-account .wom-sub-control { border:1px solid var(--sub-line); border-radius:10px; margin-top:10px; padding:0; overflow:clip; }
.wom-sub-account .wom-sub-control>summary { display:flex; align-items:center; gap:10px; padding:14px; min-height:52px; background:#f5f9fa; list-style:none; }
.wom-sub-account .wom-sub-control>summary::-webkit-details-marker { display:none; }
.wom-sub-account .wom-sub-control>summary::after { content:''; width:7px; height:7px; flex:0 0 7px; border:solid currentColor; border-width:0 1.5px 1.5px 0; transform:rotate(45deg); margin:0 3px 4px auto; transition:transform .18s ease; }
.wom-sub-account .wom-sub-control[open]>summary::after { transform:rotate(225deg); margin-top:6px; }
.wom-sub-account .wom-sub-control>summary:hover { background:var(--sub-accent-soft); }
.wom-sub-account .wom-sub-control>form,.wom-sub-account .wom-sub-control>p,.wom-sub-account .wom-sub-control>a { margin:14px; }
.wom-sub-account .wom-sub-form label { font-size:15px; margin:0 0 6px; line-height:1.5; }
.wom-sub-account .wom-sub-form input:is([type=text],[type=tel],[type=date]),.wom-sub-account .wom-sub-form select { width:100%; max-width:100%; min-height:48px; border:1px solid #82969f; border-radius:8px; padding:10px 12px; margin:0 0 16px; background:var(--sub-surface); font:inherit; color:var(--sub-ink); box-shadow:none; }
.wom-sub-account .wom-sub-form select { padding-right:32px; }
.wom-sub-account .wom-sub-form input[type=checkbox] { accent-color:var(--sub-accent); }
.wom-sub-account .wom-sub-button { transition:background-color .15s ease; }
.wom-sub-account .wom-sub-button:active { background:#064c63; }
.wom-sub-account .wom-sub-footer { justify-content:space-between; padding:8px 0; }
.wom-sub-account .wom-sub-cancel { border-top:1px solid var(--sub-line); padding-top:8px; }
/* Keep cancellation easy to find; this opens the existing confirmation step. */
.wom-sub-account .wom-sub-cancel>summary {
 display:flex; align-items:center; justify-content:center; width:100%; min-height:52px;
 padding:14px 20px; border:1px solid var(--sub-danger); border-radius:8px;
 background:var(--sub-danger); color:#fff; font-size:16px; font-weight:600;
 line-height:1.4; text-align:center; list-style:none;
}
.wom-sub-account .wom-sub-cancel>summary::-webkit-details-marker { display:none; }
.wom-sub-account .wom-sub-cancel>summary:hover { background:#842727; border-color:#842727; }
.wom-sub-account .wom-sub-cancel[open]>summary { margin-bottom:16px; }
.wom-sub-account .wom-sub-cancel-unavailable>.wom-sub-button:disabled {
 width:100%; min-height:52px; background:#f8e8e8; color:#8c3636!important;
 border-color:#d8aaaa; opacity:1; cursor:not-allowed;
}
.wom-sub-account .wom-sub-cancel-unavailable>p { margin:12px 0; }
@media(max-width:1024px) {
 body.woocommerce-account #content>.ast-container { padding-left:16px; padding-right:16px; }
 body.woocommerce-account #primary { margin:16px 0; padding:0; width:100%; }
 body.woocommerce-account .ast-article-single { padding:0!important; }
 body.woocommerce-account #my-account-menu { float:none!important; width:100%!important; margin:0 0 16px!important; padding:0!important; }
 body.woocommerce-account #my-account-menu~.woocommerce-MyAccount-content { width:100%!important; float:none!important; clear:both; margin:0!important; padding:0!important; }
 body.woocommerce-account .wom-sub-account { max-width:none; padding-bottom:calc(88px + env(safe-area-inset-bottom,0px)); }
 body.woocommerce-account #my-account-menu .user-profile { margin-bottom:16px; }
 body.woocommerce-account #my-account-menu .myaccount-menu { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:12px 0 0; }
 body.woocommerce-account #my-account-menu .myaccount-menu li { margin:0!important; min-width:0; }
 body.woocommerce-account #my-account-menu .myaccount-menu li a { height:100%; min-height:48px; padding:10px 12px!important; display:flex; align-items:center; gap:8px; border:1px solid #d4e3e8; border-radius:8px; box-shadow:none!important; background:#f0f7f9!important; color:#183440!important; font-size:14px; line-height:1.4; }
 body.woocommerce-account #my-account-menu .myaccount-menu .active>a { background:#dceff4!important; border-color:#08799c; font-weight:700; }
 body.woocommerce-account #my-account-menu .myaccount-menu .item-icon { margin:0; }
}
@media(max-width:600px) {
 .wom-sub-account h1 { font-size:26px; }
 .wom-sub-account h2 { font-size:18px; }
 .wom-sub-account .wom-sub-card { padding:18px; margin-bottom:14px; }
 .wom-sub-account .wom-sub-product { gap:12px; }
 .wom-sub-account .wom-sub-product .wom-sub-image { width:64px; height:64px; flex-basis:64px; }
 .wom-sub-account .wom-sub-section-heading { flex-wrap:wrap; gap:8px; }
 .wom-sub-account .wom-sub-schedule-grid { grid-template-columns:1fr; }
 .wom-sub-overview-schedule { grid-template-columns:1fr; gap:14px; padding:14px; }
 .wom-sub-overview-schedule>div+div { padding-top:12px; border-top:1px solid #c9e1e7; }
 .wom-sub-account .wom-sub-form .wom-sub-button { width:100%; }
 .wom-sub-account .wom-sub-resume { padding:16px; }
 .wom-sub-account .wom-sub-footer { gap:4px 16px; }
}
@media(prefers-reduced-motion:reduce) {
 .wom-sub-account .wom-sub-button,.wom-sub-account .wom-sub-control>summary::after { transition:none; }
}
.wom-sub-account .wom-sub-control>summary:focus-visible { outline-offset:-3px; }
@media(max-width:1024px) {
 body.woocommerce-account #my-account-menu .user-profile { display:flex; align-items:center; gap:12px; margin:16px 0; text-align:left; }
 body.woocommerce-account #my-account-menu .user-avatar { width:44px; min-width:44px; margin:0; }
 body.woocommerce-account #my-account-menu .user-avatar img { width:44px; height:44px; }
 body.woocommerce-account #my-account-menu .user-info { min-width:0; font-size:14px; overflow-wrap:anywhere; }
 body.woocommerce-account #my-account-menu .user-info a { display:inline-flex; align-items:center; min-height:44px; }
}

/* Checkout's existing delivery requests, kept optional and separate from required address fields. */
.wom-sub-account .wom-sub-instructions { margin:16px 0; border:1px solid var(--sub-line); border-radius:10px; padding:12px; background:var(--sub-bg) }
.wom-sub-account .wom-sub-instructions summary { min-height:44px; cursor:pointer; font-weight:650; color:var(--sub-accent) }
.wom-sub-account .wom-sub-form .wom-sub-instruction-option { display:flex; align-items:flex-start; gap:12px; padding:10px 0; margin:0; min-height:44px; font-weight:400; line-height:1.5 }
.wom-sub-account .wom-sub-instruction-option input[type="checkbox"] { flex:0 0 20px; width:20px; height:20px; min-height:20px; margin:2px 0 0; accent-color:var(--sub-accent) }
.wom-sub-account .wom-sub-form textarea { width:100%; min-height:100px; padding:12px; font:inherit; font-size:16px; color:var(--sub-ink); background:var(--sub-surface); border:1px solid #819aa7; border-radius:8px; resize:vertical }
.wom-sub-account .wom-sub-form textarea:focus-visible { outline:3px solid var(--sub-focus); outline-offset:3px }
.wom-sub-account .wom-sub-note-text { white-space:pre-wrap }

/* Native selects keep their platform picker, with an explicit arrow after theme resets. */
.wom-sub-account .wom-sub-form select {
    -webkit-appearance:none; appearance:none; padding-right:44px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%23086d89' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 14px center; background-size:16px 16px; cursor:pointer;
}
.wom-sub-account .wom-sub-field-label { display:flex; align-items:center; justify-content:space-between; gap:8px; position:relative; min-height:44px; margin:0 0 4px }
.wom-sub-account .wom-sub-field-label label { margin:0; flex:1 }
.wom-sub-account .wom-sub-help { flex:0 0 44px }
.wom-sub-account .wom-sub-help>summary { display:flex; align-items:center; justify-content:center; width:44px; height:44px; min-height:44px; padding:0; margin:0; list-style:none; border-radius:50%; color:var(--sub-accent); cursor:pointer }
.wom-sub-account .wom-sub-help>summary::-webkit-details-marker { display:none }
.wom-sub-account .wom-sub-help>summary::marker { content:'' }
.wom-sub-account .wom-sub-help[open]>summary,.wom-sub-account .wom-sub-help>summary:hover { background:var(--sub-accent-soft) }
.wom-sub-account .wom-sub-help>p { position:absolute; z-index:5; top:100%; left:0; right:0; margin:0; padding:14px 16px; border-radius:10px; background:var(--sub-ink); color:#fff; box-shadow:0 5px 18px #18344026; font-size:14px; line-height:1.6; font-weight:400 }
.wom-sub-account .wom-sub-field-title { color:var(--sub-muted); font-size:14px }
.wom-sub-account .wom-sub-inline-message { margin:12px 0; padding:14px 16px; border:1px solid #b85b50; border-radius:10px; background:#fff6f4; color:#762b20; scroll-margin-block:100px }
.wom-sub-account .wom-sub-inline-message.is-success { border-color:#77a894; background:#eff8f3; color:#216141 }
.wom-sub-account .wom-sub-inline-message p { margin:0 }
.wom-sub-account .wom-sub-inline-message a { display:inline-flex; min-height:44px; align-items:center }
.wom-sub-account .wom-sub-delivery-review h3 { scroll-margin-block:100px }
.wom-sub-account .wom-sub-form[aria-busy=true] { opacity:.75; cursor:progress }
.wom-sub-account .wom-sub-form [hidden] { display:none!important }

.wom-sub-account [data-wom-delivery-back][aria-disabled=true] { opacity:.55; cursor:wait; text-decoration:none }
