/* Additions for WordPress-only surfaces. main.css is the prototype stylesheet, unchanged. */
.content-page { padding-bottom: 88px; }
.entry-content { max-width: 720px; margin: 8px auto 0; font-size: 16px; line-height: 1.75; }
.entry-content > * + * { margin-top: 1.1em; }
.entry-content h2, .entry-content h3 { font-family: var(--serif); font-weight: 400; line-height: 1.2; margin-top: 1.8em; }
.entry-content h2 { font-size: 30px; }
.entry-content h3 { font-size: 23px; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content li + li { margin-top: .4em; }
.entry-content a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #A89A8B; }
.entry-content a:hover { color: var(--terracotta); }
.accordion-content p + p:has(> .underlined-link:only-child) { margin-top: 0; } /* the editor wraps a lone link in a paragraph */
.pagination .nav-links { display: flex; justify-content: center; gap: 8px; padding-top: 40px; font-size: 13px; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 10px; border: 1px solid var(--border); border-radius: var(--radius); }
.pagination .page-numbers.current { border-color: var(--terracotta); color: var(--terracotta); }
.pagination .dots { border-color: transparent; }
.filter-drawer a.filter-reset { width: fit-content; } /* a link, where the design has a button: keep it centred */
.ek-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* WooCommerce notices, in the style of the design's boxed notice. */
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-error, .woocommerce-message, .woocommerce-info { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; border: 1px solid var(--border); padding: 13px 18px; border-radius: 4px; font-size: 13px; margin: 0 0 24px; list-style: none; background: var(--linen); }
.woocommerce-error { flex-direction: column; align-items: flex-start; }
.woocommerce-error, .ek-notice-error { border-color: #D9B3A3; background: #F8EEE8; }
.woocommerce-error li + li { margin-top: 4px; }
.woocommerce-error a, .woocommerce-message a, .woocommerce-info a, .ek-notice a { text-decoration: underline; text-underline-offset: 4px; }
.ek-notice { color: var(--espresso); font-size: 13px; }
:is(.woocommerce-error, .woocommerce-message, .woocommerce-info) .button { order: 2; min-height: 0; padding: 0; border: 0; background: transparent; color: var(--terracotta); font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
:is(.woocommerce-error, .woocommerce-message, .woocommerce-info) .button:hover { background: transparent; color: var(--terracotta-hover); }
.ek-notice p + p { margin-top: 4px; }

/* WooCommerce fields inside the design's .field wrapper (checkout, addresses). */
.checkout-fields { display: grid; grid-template-columns: 1fr 1fr; column-gap: 20px; }
.checkout-panel .checkout-fields { margin-top: 26px; }
.checkout-fields > .form-row { grid-column: 1 / -1; }
.checkout-fields > .form-row-first { grid-column: 1; }
.checkout-fields > .form-row-last { grid-column: 2; }
.field label .required { display: none; }
.field label .optional { color: var(--muted); font-weight: 400; }
.woocommerce-input-wrapper { display: block; }
.field textarea { min-height: 110px; resize: vertical; }
.field .description { display: block; font-size: 11px; color: var(--muted); margin-top: 6px; }
.woocommerce-invalid :is(input, select, textarea) { border-color: var(--error); }
.checkout-inline-error-message { font-size: 11px; color: var(--error); margin-top: 2px; }
.woocommerce-account-fields, #ship-to-different-address { margin-top: 4px; }
.checkout-panel .checkbox-label { margin-bottom: 18px; }
.shipping_address { margin-top: 8px; }

/* Checkout panels and payment. */
.checkout-panels { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
#customer_details { display: contents; }
wc-order-attribution-inputs { display: none; } /* hidden inputs only; kept out of the panel spacing */
.checkout-panel > .form-hint { text-align: center; }
.wc_payment_methods { list-style: none; padding: 0; margin: 24px 0 0; border-top: 1px solid var(--border); }
.wc_payment_method { padding: 14px 0; border-bottom: 1px solid var(--border); }
.wc_payment_method > input { margin-right: 10px; accent-color: var(--terracotta); }
.wc_payment_method > label { font-size: 14px; cursor: pointer; }
.wc_payment_method > label img { display: inline-block; max-height: 24px; width: auto; margin-left: 8px; vertical-align: middle; }
.payment_box { font-size: 12px; color: var(--muted); margin-top: 8px; line-height: 1.6; }
.payment_box fieldset { border: 0; padding: 0; margin: 12px 0 0; }
.wc_payment_methods .payment-placeholder { margin-block: 0 4px; border-top: 0; }
.place-order { margin-top: 24px; }
.woocommerce-terms-and-conditions-wrapper { font-size: 12px; color: var(--muted); margin-bottom: 18px; }
.woocommerce-terms-and-conditions-wrapper a { text-decoration: underline; text-underline-offset: 4px; }
.woocommerce-terms-and-conditions-wrapper .form-row { margin-top: 12px; color: var(--espresso); }
.woocommerce-terms-and-conditions-wrapper abbr { display: none; }
.woocommerce-privacy-policy-text p { font-size: 11px; color: var(--muted); line-height: 1.6; margin-bottom: 18px; }
.woocommerce-privacy-policy-text a { text-decoration: underline; text-underline-offset: 3px; }
.checkout-page .woocommerce-form-login, .checkout-page .checkout_coupon { border: 1px solid var(--border); border-radius: 4px; padding: 24px; margin-bottom: 24px; }
.checkout-page .checkout_coupon { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.checkout-page .checkout_coupon > p:first-child { flex-basis: 100%; font-size: 13px; color: var(--muted); }
.checkout-page .woocommerce-form-login .form-row { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; font-size: 12px; }

/* Order summary additions: several keepsakes, delivery choices, discounts. */
.summary-product + .summary-product { margin-top: 20px; }
.summary-delivery-choices { flex-direction: column; align-items: stretch !important; gap: 6px !important; }
.summary-delivery-choices dd { text-align: left; }
.delivery-choice { min-height: 36px; font-size: 12px; color: var(--espresso); }
.delivery-choice input { accent-color: var(--terracotta); }
.summary-lines dd small { display: block; color: var(--muted); font-size: 10px; }
.summary-discount a { font-size: 10px; margin-left: 6px; }
.summary-tax { margin-top: 0; }
.summary-coupon { margin-top: 18px; font-size: 12px; }
.summary-coupon summary { cursor: pointer; color: var(--muted); }
.coupon-field { display: flex; gap: 8px; margin-top: 12px; }
.coupon-field .button { flex-shrink: 0; }

/* Order confirmation. */
.order-confirmation .completion-state { padding-bottom: 8px; }
.order-confirmation .completion-state h2 { font-size: 30px; margin-bottom: 10px; }
.order-confirmation > .button { margin-top: 28px; }
.order-instructions { margin-top: 24px; font-size: 13px; color: var(--muted); }
.order-instructions :is(h2, h3) { font-family: var(--serif); font-weight: 400; font-size: 22px; color: var(--espresso); margin: 18px 0 8px; }
.order-instructions ul { list-style: none; padding: 0; }

/* Account. */
.order-actions { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.saved-design .order-actions a { font-size: 12px; }
.order-view-body { padding: 0 24px 24px; }
.order-view .summary-lines { margin-bottom: 0; }
.account-content > .order-actions { margin-top: 20px; }
.order-details-blocks { margin-top: 12px; }
.order-updates-heading { font-size: 23px; margin-top: 32px; }
.order-updates { list-style: none; padding: 0; margin-top: 12px; }
.order-updates li { border-bottom: 1px solid var(--border); padding-block: 14px; font-size: 14px; }
.order-updates time { display: block; font-size: 11px; color: var(--muted); margin-bottom: 4px; }
.order-pagination { display: flex; justify-content: space-between; gap: 20px; margin-top: 24px; }
.address-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 28px; }
.address-card { border: 1px solid var(--border); border-radius: 4px; padding: 24px; }
.address-card h3 { font-size: 24px; }
.address-card address, .address-card p { font-style: normal; font-size: 14px; color: var(--muted); line-height: 1.7; margin-top: 10px; }
.form-cancel { margin-left: 20px; }
.password-change { border: 0; padding: 0; margin: 12px 0 24px; }
.password-change legend { font-family: var(--serif); font-size: 23px; }
.password-change .form-hint { margin: 6px 0 18px; }
.account-content table { width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 24px; }
.account-content :is(th, td) { padding: 12px 8px; border-bottom: 1px solid var(--border); text-align: left; }
.account-login { display: grid; gap: 32px; max-width: 560px; }
.account-login.has-register { grid-template-columns: 1fr 1fr; max-width: none; align-items: start; }
.account-login form { margin-top: 26px; }
.account-login .lost-password { display: flex; margin: 10px auto 0; justify-content: center; }
.lost_reset_password { max-width: 560px; }
.lost_reset_password > p:first-child { color: var(--muted); font-size: 14px; margin-bottom: 24px; }
.woocommerce-form-row { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; }
.woocommerce-form-row label { font-size: 12px; font-weight: 500; }
@media (max-width: 980px) {
  .account-login.has-register { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .content-page { padding-bottom: 52px; }
  .entry-content h2 { font-size: 26px; }
  .checkout-fields { column-gap: 14px; }
  .checkout-panels { gap: 32px; }
  :is(.checkout-panel + .checkout-panel, #customer_details + .checkout-panel) { padding-top: 32px; border-top: 1px solid var(--border); }
  .address-cards { grid-template-columns: 1fr; gap: 14px; }
  .order-view-body { padding: 0 14px 14px; }
}
@media (max-width: 370px) {
  .checkout-fields { grid-template-columns: 1fr; }
  .checkout-fields > :is(.form-row-first, .form-row-last) { grid-column: 1 / -1; }
}

/* Studio's launch button uses the theme's button; Studio sets its own colours inline. */
.studio-next-popup-trigger.button { min-height: 50px; padding: 13px 24px; border: 1px solid var(--terracotta) !important; border-radius: var(--radius) !important; color: white !important; background: var(--terracotta) !important; font-size: 13px; font-weight: 500; }
.studio-next-popup-trigger.button:hover { background: var(--terracotta-hover) !important; border-color: var(--terracotta-hover) !important; }

/* Studio's editor in Everkept's colours. It renders on <body> as a popup, and its stylesheet loads after this one. */
body .sn-public, body .sn-embed { --sn-primary: var(--terracotta); --sn-accent: var(--terracotta); --sn-text: var(--espresso); --sn-line: var(--border); }
body .sn-embed .sn-btn-primary { border-radius: var(--radius); }
body .sn-embed .sn-btn-primary:hover { background: var(--terracotta-hover); }
@media (min-width: 800px) {
  body .sn-embed .sn-wizard-go { flex: 1 1 0; width: auto; } /* Studio's button is full width but can't shrink beside Back, so it overflowed the popup. */
  body .sn-embed.is-floating-modal .sn-embed-fields { padding-right: 16px; }
}
.studio-card [data-studio-next-mode="inline"] { margin-top: 18px; }
.product-purchase { margin-top: 24px; }
