/* Existing order pages only. Never style the storefront, product guide, or smapri screen. */
.kokion-flow-page .site-content { padding:clamp(32px,5vw,64px) 24px; }
.kokion-flow-page .content-area { width:100%; min-width:0; }
.kokion-flow-page .site-main,.kokion-flow-page .entry-content { margin:0; }
.kokion-flow-page .inside-article { padding:0; background:transparent; }
.kokion-flow-page .entry-content *, .kokion-flow-page .entry-content *::before, .kokion-flow-page .entry-content *::after { box-sizing:border-box; }
.kokion-flow-heading { max-width:760px; margin:0 auto 36px; text-align:center; }
.kokion-flow-kicker { margin:0 0 10px; color:var(--kokion-accent); font:600 .72rem Georgia,serif; letter-spacing:.16em; }
.kokion-flow-heading h1 { margin:0 0 14px; font-family:var(--kokion-serif); font-weight:400; font-size:clamp(1.85rem,4vw,2.8rem); line-height:1.45; }
.kokion-flow-heading>p:last-child { margin:0; color:var(--kokion-muted); font-size:.92rem; line-height:1.8; }
.kokion-flow-page .entry-content :is(button,a,input,select,summary):focus-visible { outline:3px solid var(--kokion-focus); outline-offset:3px; }
.kokion-flow-page :is(.kokion-general,.kokion-p06,.kokion-resume) { color:var(--kokion-ink); font-family:var(--kokion-sans); }
.kokion-flow-page :is(.kokion-general__submit,.kokion-p06__cart,.kokion-resume button),
.kokion-flow-page .wc-block-components-button:not(.is-link) { min-height:50px; padding:12px 24px; border:1px solid var(--kokion-ink); border-radius:999px; background:var(--kokion-ink); color:#fff; font:600 .9rem var(--kokion-sans); text-decoration:none; }
.kokion-flow-page :is(.kokion-general__submit,.kokion-p06__cart,.kokion-resume button):hover:not(:disabled),
.kokion-flow-page .wc-block-components-button:not(.is-link):hover:not(:disabled) { color:var(--kokion-ink); background:var(--kokion-paper); }
.kokion-flow-page button:disabled { opacity:.55; cursor:not-allowed; }
.kokion-flow-page :is(.kokion-general__message,.kokion-p06 [data-message],.kokion-resume [data-message]) { border:0; border-left:3px solid var(--kokion-accent); border-radius:6px; background:#f4eadb; color:#594321; padding:14px 18px; font-size:.9rem; font-weight:400; line-height:1.8; }
.kokion-flow-page :is(.kokion-general__message,.kokion-p06 [data-message]):empty { display:none; }
.kokion-flow-page .kokion-general:not([aria-busy="true"]) .kokion-general__message,
.kokion-flow-page .kokion-p06 [data-message][data-state="error"] { border-color:#a43b33; background:#fff0ed; color:#8d2924; }
.kokion-flow-page .kokion-p06 [data-message][data-state="success"] { border-color:#477552; background:#edf5ef; color:#315e3d; }
.kokion-flow-page .kokion-p06 [data-message][data-state="progress"] { border-color:var(--kokion-accent); background:#f4eadb; color:#594321; }

/* P01: existing photo controls and radio/select events stay intact. */
.kokion-flow-order .kokion-general { max-width:1040px; }
.kokion-flow-order .kokion-general__header h2 { display:none; }
.kokion-flow-order .kokion-general__header { margin-bottom:20px; }
.kokion-flow-order .kokion-general__lead { font-size:.95rem; margin-bottom:8px; }
.kokion-flow-order .kokion-general__limits { color:var(--kokion-muted); font-size:.82rem; }
.kokion-flow-order .kokion-general__dropzone { border:1px dashed #c5beb1; border-radius:16px; background:#fff; }
.kokion-flow-order .kokion-general__dropzone:hover,.kokion-flow-order .kokion-general__dropzone:focus-within,.kokion-flow-order .kokion-general__dropzone.is-dragover { border-color:var(--kokion-accent); background:var(--kokion-paper); }
.kokion-flow-order .kokion-general__fileButton { min-height:210px; }
.kokion-flow-order .kokion-general__fileIcon { color:var(--kokion-accent); background:transparent; font-weight:300; }
.kokion-flow-order .kokion-general__fileTitle { font-weight:500; }
.kokion-flow-order .kokion-general__counter p { border:1px solid var(--kokion-line); background:#fff; border-radius:12px; padding:16px 20px; }
.kokion-flow-order .kokion-general__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:24px 0; }
.kokion-flow-order .kokion-general__thumbItem { display:flex; flex-direction:column; padding:24px; border-color:var(--kokion-line); border-radius:16px; box-shadow:none; }
.kokion-flow-order .kokion-general__thumbImage { aspect-ratio:4/3; object-fit:contain; background:var(--kokion-paper); }
.kokion-flow-order .kokion-general__filename { color:var(--kokion-muted); font-size:.78rem; margin:10px 0 18px; }
.kokion-flow-order .kokion-general__thumbFinish { margin:0 0 16px; padding:14px 0 0; border-color:var(--kokion-line); }
.kokion-flow-order .kokion-general__finishOption { min-height:46px; margin:8px 0; border-color:var(--kokion-line); background:#fff; }
.kokion-flow-order .kokion-general__finishOption:has(input:checked) { border-color:var(--kokion-accent); background:#f7f0e7; }
.kokion-flow-order .kokion-general__finishOption input { width:18px; height:18px; accent-color:var(--kokion-accent); }
.kokion-flow-order .kokion-general__finishOption strong { font-size:.87rem; font-weight:500; }
.kokion-flow-order .kokion-general__thumbRemove { position:static; align-self:flex-start; order:5; margin-top:18px; min-height:44px; border:1px solid #d7b5af; padding:8px 18px; background:#fff; color:#8d2924; font-size:.8rem; font-weight:500; }
.kokion-flow-order .kokion-general__thumbRemove:hover { background:#fff0ed; }
.kokion-flow-order .kokion-general__finishHelp { min-height:44px; color:#805322; background:transparent; }
.kokion-flow-order .kokion-general__thumbItem select,.kokion-flow-edit .kokion-p06 select { min-height:50px; border:1px solid #c5beb1; border-radius:7px; background:#fff; color:var(--kokion-ink); font-size:16px; padding:10px 12px; }
.kokion-flow-order .kokion-general__submit { width:100%; }
.kokion-flow-order .kokion-general__modalPanel { background:var(--kokion-white); border:1px solid var(--kokion-line); border-radius:16px; }
.kokion-flow-order .kokion-general__modalPanel h3 { font-family:var(--kokion-serif); font-weight:500; }
.kokion-flow-order .kokion-general__modalItem { background:var(--kokion-paper); border-color:var(--kokion-line); }

/* P03/P04 already share the brand design; keep one H1 and consistent spacing. */
.kokion-flow-verify .site-content { padding-inline:0; }
.kokion-flow-verify .kokion-verify { padding-bottom:8px; }
.kokion-flow-verify .kokion-verify__header h1 { line-height:1.45; }

/* P05: preserve the actual token state, message and resume button. */
.kokion-flow-resume .kokion-resume { max-width:580px; padding:32px; border-color:var(--kokion-line); border-radius:16px; box-shadow:0 12px 32px rgba(31,27,21,.04); }
.kokion-flow-resume .kokion-resume>h2 { display:none; }
.kokion-flow-resume .kokion-resume button { width:100%; }
.kokion-flow-resume .kokion-resume>p { color:var(--kokion-muted); font-size:.9rem; }
.kokion-flow-resume .kokion-resume a { color:#805322; text-underline-offset:.25em; }

/* P06: one page owns both order review and autosaved editing. */
.kokion-flow-edit .kokion-p06 { max-width:960px; }
.kokion-flow-edit .kokion-p06__item { display:grid; grid-template-columns:220px minmax(0,1fr) 110px; grid-template-areas:"photo finish quantity" "photo description description" "photo remove remove"; gap:16px 24px; align-items:start; padding:24px; margin:0 0 20px; border:1px solid var(--kokion-line); border-radius:16px; background:#fff; }
.kokion-flow-edit .kokion-p06__item img { grid-area:photo; width:100%; max-width:100%; height:220px; object-fit:contain; border-radius:10px; background:var(--kokion-paper); }
.kokion-flow-edit .kokion-p06__item select:first-of-type { grid-area:finish; width:100%; min-width:0; }
.kokion-flow-edit .kokion-p06__item select:last-of-type { grid-area:quantity; width:100%; min-width:0; }
.kokion-flow-edit .kokion-p06__finishDescription { grid-area:description; margin:0; font-size:.86rem; color:var(--kokion-muted); line-height:1.8; }
.kokion-flow-edit .kokion-p06__item button { grid-area:remove; justify-self:start; min-height:44px; padding:8px 18px; border:1px solid #d7b5af; border-radius:999px; background:#fff; color:#8d2924; font-size:.8rem; }
.kokion-flow-edit .kokion-p06>label { display:block; margin:28px 0 12px; padding:20px; border:1px dashed #c5beb1; border-radius:12px; background:var(--kokion-paper); font-size:.9rem; }
.kokion-flow-edit .kokion-p06 input[type="file"] { display:block; width:100%; max-width:100%; margin-top:12px; font-size:14px; }
.kokion-flow-edit .kokion-p06 input[type="file"]::file-selector-button { min-height:44px; margin-right:10px; padding:8px 18px; border:1px solid var(--kokion-line); border-radius:999px; background:#fff; color:var(--kokion-ink); cursor:pointer; }
.kokion-flow-edit .kokion-p06>[data-add] { min-height:48px; padding:10px 24px; border:1px solid var(--kokion-ink); border-radius:999px; background:#fff; color:var(--kokion-ink); font-size:.85rem; }
.kokion-flow-edit .kokion-p06__summary { padding:24px; border:1px solid var(--kokion-line); border-radius:16px; background:#fff; }
.kokion-flow-edit .kokion-p06__summary h2 { font-family:var(--kokion-serif); font-weight:500; font-size:1.5rem; }
.kokion-flow-edit .kokion-p06__summary table { table-layout:fixed; margin:0; }
.kokion-flow-edit .kokion-p06__summary :is(th,td) { border:0; border-bottom:1px solid var(--kokion-line); padding:14px 8px; font-size:.9rem; font-variant-numeric:tabular-nums; }
.kokion-flow-edit .kokion-p06__summary :is(th,td):first-child { width:40%; overflow-wrap:anywhere; }
.kokion-flow-edit .kokion-p06__summary tfoot :is(th,td) { color:var(--kokion-ink); font-weight:700; }
.kokion-flow-edit .kokion-p06__summaryNotice { color:var(--kokion-muted); font-size:.8rem; line-height:1.8; }
.kokion-flow-edit .kokion-p06__cart { margin-top:24px; font-size:1rem; }

/* WooCommerce Blocks: presentation only; preserve components, validation and Stripe fields. */
.kokion-flow-page :is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) { color:var(--kokion-ink); font-family:var(--kokion-sans); }
.kokion-flow-cart .wc-block-cart__main { padding:24px; border:1px solid var(--kokion-line); border-radius:16px; background:#fff; }
.kokion-flow-cart .wc-block-cart__sidebar { padding:24px; border:1px solid var(--kokion-line); border-radius:16px; background:#fff; }
.kokion-flow-cart .wc-block-cart-items { font-size:.9rem; }
.kokion-flow-page .wc-block-components-product-name { color:var(--kokion-ink); text-decoration:none; font-weight:600; }
.kokion-flow-page .wc-block-components-product-name:hover { color:var(--kokion-accent); text-decoration:underline; }
.kokion-flow-page .wc-block-components-product-metadata { color:var(--kokion-muted); font-size:.8rem; }
.kokion-flow-page .wc-block-components-product-image img { border-radius:8px; }
.kokion-flow-checkout .wc-block-components-checkout-step { margin-bottom:20px; padding:24px; border:1px solid var(--kokion-line); border-radius:16px; background:#fff; }
.kokion-flow-checkout .wc-block-components-checkout-step__heading h2 { font-family:var(--kokion-serif); font-size:1.35rem; font-weight:500; }
.kokion-flow-checkout .wp-block-woocommerce-checkout-order-summary-block { border:1px solid var(--kokion-line); border-radius:16px; background:#fff; }
.kokion-flow-page .wc-block-components-text-input input,.kokion-flow-page .wc-block-components-combobox .components-combobox-control__input,.kokion-flow-page .wc-block-components-select .wc-block-components-select__select { min-height:52px; border-color:#c5beb1; border-radius:7px; background:#fff; color:var(--kokion-ink); font-size:16px; }
.kokion-flow-page .wc-block-components-validation-error { color:#8d2924; font-size:.8rem; line-height:1.6; }
.kokion-flow-page .wc-block-components-notice-banner { border-radius:8px; font-size:.9rem; }
.kokion-flow-page .wc-block-components-notice-banner.is-error { color:#8d2924; border-color:#d7b5af; background:#fff0ed; }
.kokion-flow-page .wc-block-components-totals-footer-item { padding-top:20px; border-top:1px solid var(--kokion-line); }
.kokion-flow-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size:1.3rem; font-weight:700; font-variant-numeric:tabular-nums; }
.kokion-flow-page .wc-block-components-checkout-place-order-button { width:100%; }
.kokion-flow-page .wc-block-checkout__terms { color:var(--kokion-muted); font-size:.85rem; }
@media(max-width:768px) {
 .kokion-flow-page .site-content { padding:32px 16px 48px; }
 .kokion-flow-verify .site-content { padding-inline:0; }
 .kokion-flow-heading { margin-bottom:28px; }
 .kokion-flow-heading>p:last-child { font-size:.86rem; }
 .kokion-flow-order .kokion-general__grid { grid-template-columns:1fr; gap:20px; }
 .kokion-flow-order .kokion-general__thumbItem { padding:20px; }
 .kokion-flow-order .kokion-general__counter p { padding:14px; }
 .kokion-flow-resume .kokion-resume { padding:24px 20px; }
 .kokion-flow-edit .kokion-p06__item { padding:20px; grid-template-columns:1fr 1fr; grid-template-areas:"photo photo" "finish finish" "description description" "quantity remove"; }
 .kokion-flow-edit .kokion-p06__item img { height:250px; }
 .kokion-flow-edit .kokion-p06__item button { justify-self:end; }
 .kokion-flow-edit .kokion-p06__summary { padding:20px 14px; }
 .kokion-flow-edit .kokion-p06__summary :is(th,td) { padding:12px 4px; font-size:.8rem; }
 .kokion-flow-cart .wc-block-cart__main,.kokion-flow-cart .wc-block-cart__sidebar { padding:20px 16px; margin-bottom:20px; }
 .kokion-flow-checkout .wc-block-components-checkout-step { padding:20px 16px; }
}
.kokion-flow-page .entry-content>:is(.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout) { width:100%; max-width:100%; margin-inline:0; }

/* Production compatibility: keep the original P03 DOM and current valid navigation. */
.kokion-flow-verify .kokion-verify>h2 { display:none; }
.kokion-flow-verify .kokion-verify { margin-bottom:24px; }


/* Store API already marks managed quantities readonly; show them as confirmed text. */
.kokion-flow-cart .wc-block-components-quantity-selector:has(input[readonly]) { display:inline-flex; align-items:center; width:auto; min-width:0; min-height:0; margin-top:8px; border:0; border-radius:0; background:transparent; }
.kokion-flow-cart .wc-block-components-quantity-selector input[readonly] { flex:0 0 auto; width:3ch; min-width:0; height:auto; min-height:0; padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; color:var(--kokion-ink); font:600 16px/1.5 var(--kokion-sans); text-align:right; pointer-events:none; appearance:textfield; }
.kokion-flow-cart .wc-block-components-quantity-selector input[readonly]::-webkit-inner-spin-button,.kokion-flow-cart .wc-block-components-quantity-selector input[readonly]::-webkit-outer-spin-button { margin:0; appearance:none; }
.kokion-flow-cart .wc-block-components-quantity-selector:has(input[readonly])::after { content:"枚（確定）"; margin-left:5px; color:var(--kokion-muted); font-size:.85rem; }
.kokion-flow-cart .kokion-fixed-cart-quantity { font-weight:600; white-space:nowrap; }
.kokion-cart-quantity-note { max-width:1040px; margin:0 auto 24px; padding:14px 18px; border:1px solid var(--kokion-line); border-radius:8px; background:#fff; color:var(--kokion-muted); font-size:.85rem; line-height:1.8; }
.kokion-cart-quantity-note a { color:#805322; text-underline-offset:.2em; }

/* Shared editor with the trial's fixed quantity and photo replacement actions. */
.kokion-flow-edit .kokion-p06[data-order-type="smapri"] .kokion-p06__item select { grid-area:finish; }
.kokion-flow-edit .kokion-p06[data-order-type="smapri"] .kokion-p06__fixedQuantity { grid-area:quantity; }
.kokion-flow-edit .kokion-p06[data-order-type="smapri"] .kokion-p06__photoActions { grid-area:remove; }

/* Compact photo picker shared by trial and general orders. */
.kokion-flow-order .kokion-general[data-order-type] .kokion-general__thumbRemove { position:absolute; top:30px; right:30px; order:0; margin:0; padding:0; width:44px; height:44px; min-height:44px; display:grid; place-items:center; border:1px solid var(--kokion-line); background:rgba(255,255,255,.96); color:var(--kokion-ink); font-size:26px; line-height:1; }
.kokion-flow-order .kokion-general[data-order-type] .kokion-general__thumbChange { align-self:flex-start; min-height:44px; padding:6px 16px; margin:0 0 12px; }
.kokion-flow-order .kokion-general[data-order-type] .kokion-general__thumbFinish { margin:0; padding-top:12px; }
.kokion-flow-order .kokion-general[data-order-type] .kokion-general__finishSelect { width:100%; margin:0; }
.kokion-general[data-order-type] legend[hidden] { display:none; }
@media(max-width:768px) { .kokion-flow-order .kokion-general[data-order-type] .kokion-general__thumbRemove { top:26px; right:26px; } }
