.kokion-service-page .site-content { padding:clamp(2rem,5vw,4.5rem) 24px; }
.kokion-service-page .content-area { width:100%; }
.kokion-pages { width:min(100%,1040px); margin:0 auto; color:var(--kokion-ink); line-height:1.85; }
.kokion-pages *, .kokion-pages *::before { box-sizing:border-box; }
.kokion-page-heading { margin:0 auto 2.75rem; text-align:center; max-width:720px; }
.kokion-page-kicker { margin:0 0 .6rem; color:var(--kokion-accent); font:600 .72rem Georgia,serif; letter-spacing:.16em; }
.kokion-page-heading h1 { margin:0 0 1rem; font-family:var(--kokion-serif); font-weight:400; font-size:clamp(1.85rem,4vw,2.8rem); line-height:1.5; }
.kokion-page-heading>p:last-child { color:var(--kokion-muted); margin-bottom:0; }
.kokion-service-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.kokion-service-choices > .kokion-page-card { display:flex; flex-direction:column; }
.kokion-service-choices > .kokion-page-card > .kokion-page-button { align-self:flex-start; margin-top:auto; }
.kokion-page-card { padding:clamp(24px,4vw,40px); margin-bottom:24px; border:1px solid var(--kokion-line); border-radius:16px; background:var(--kokion-white); }
.kokion-page-card h2,.kokion-page-aside h2 { font-family:var(--kokion-serif); font-size:1.6rem; font-weight:500; }
.kokion-page-card ul { margin-left:1.2rem; }
.kokion-page-card a:not(.kokion-page-button),.kokion-page-aside a { color:#805322; text-underline-offset:.25em; }
.kokion-page-note { color:var(--kokion-muted); font-size:.86rem; }
.kokion-page-button { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:10px 24px; border:1px solid var(--kokion-ink); border-radius:999px; color:#fff; background:var(--kokion-ink); font-size:.88rem; text-decoration:none; }
.kokion-page-button:hover { color:var(--kokion-ink); background:var(--kokion-paper); }
.kokion-pages a:focus-visible,.kokion-pages input:focus-visible,.kokion-pages select:focus-visible,.kokion-pages button:focus-visible { outline:3px solid var(--kokion-focus); outline-offset:3px; }
.kokion-page-aside { padding:30px 0; border-top:1px solid var(--kokion-line); }
.kokion-page-aside p { color:var(--kokion-muted); }
.kokion-price-list { margin:0 0 24px; }
.kokion-price-list>div { display:flex; justify-content:space-between; gap:16px; padding:22px 0; border-bottom:1px solid var(--kokion-line); }
.kokion-price-list dt { font-size:1.25rem; font-family:var(--kokion-serif); }
.kokion-price-list dt small { display:block; font:400 .8rem var(--kokion-sans); color:var(--kokion-muted); }
.kokion-price-list dd { margin:0; font-size:1.3rem; white-space:nowrap; }
.kokion-price-list dd small { font-size:.75rem; }
.kokion-page-photo { margin:0 0 24px; }
.kokion-page-photo img { display:block; width:100%; max-height:400px; object-fit:cover; border-radius:16px; }
.kokion-page-prose { max-width:760px; margin-inline:auto; }
.kokion-smapri-notice { padding:20px 24px; margin-bottom:24px; background:#f0e6d8; border-left:3px solid var(--kokion-accent); border-radius:6px; }
.kokion-smapri-notice p { margin:0; }
.kokion-smapri-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.kokion-smapri-slot { min-width:0; border:1px solid var(--kokion-line); border-radius:12px; padding:20px; background:#fff; }
.kokion-smapri-slot h3 { font:500 1.25rem var(--kokion-serif); margin:0 0 16px; }
.kokion-smapri-slot label { display:block; font-size:.88rem; margin:12px 0 6px; }
.kokion-smapri-slot input { width:100%; font-size:16px; }
.kokion-smapri-slot select { width:100%; min-height:50px; background:#fff; border:1px solid #bbb7af; border-radius:6px; font-size:16px; }
.kokion-smapri-slot img { width:100%; height:190px; object-fit:contain; background:var(--kokion-paper); }
.kokion-smapri-slot [hidden] { display:none; }
.kokion-smapri-status { min-height:1.8em; margin:20px 0; }
.kokion-smapri-status[data-state="error"] { color:#922e26; }
.kokion-smapri-disabled { min-height:50px; padding:12px 28px; border:0; border-radius:999px; color:#fff; background:#77756e; cursor:not-allowed; }
.kokion-service-links { display:flex; flex-wrap:wrap; gap:12px 32px; }
.kokion-service-links a { text-underline-offset:.3em; }
.kokion-front .kokion-service-links { margin:0 0 2rem; font-size:.88rem; }
.woocommerce-account #customer_login>div { scroll-margin-top:24px; }
@media(max-width:768px) {
 .kokion-service-page .site-content { padding:32px 16px; }
 .kokion-service-choices,.kokion-smapri-grid { grid-template-columns:1fr; }
 .kokion-page-button { width:100%; }
 .kokion-price-list>div { flex-wrap:wrap; }
 .kokion-page-card { padding:24px 20px; }
}
.kokion-choice-photo { display:block; width:100%; height:190px; object-fit:cover; border-radius:9px; margin:0 0 24px; }
.kokion-service-choices .kokion-choice-photo { height:190px; object-fit:cover; }
/* Photo selection presentation only; the five-slot contract stays unchanged. */
.kokion-smapri-slot .kokion-smapri-picker { position:relative; display:block; margin:0; cursor:pointer; text-align:center; }
.kokion-smapri-picker__frame { position:relative; display:grid; place-items:center; aspect-ratio:4/3; width:100%; overflow:hidden; border:1px dashed #c5beb1; border-radius:10px; background:var(--kokion-paper); transition:border-color .15s ease; }
.kokion-smapri-picker__empty { display:flex; align-items:center; flex-direction:column; gap:8px; padding:20px; color:var(--kokion-muted); font-size:.9rem; }
.kokion-smapri-picker__plus { font-size:2rem; line-height:1.2; color:var(--kokion-accent); font-weight:300; }
.kokion-smapri-picker__empty small { font-size:.72rem; letter-spacing:.03em; }
.kokion-smapri-picker__frame img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:contain; }
.kokion-smapri-picker__action { display:inline-flex; align-items:center; justify-content:center; min-height:48px; margin-top:14px; padding:8px 24px; border:1px solid var(--kokion-line); border-radius:999px; color:var(--kokion-ink); background:#fff; font-size:.85rem; }
.kokion-smapri-slot .kokion-smapri-picker__input { position:absolute; width:1px; height:1px; padding:0; border:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.kokion-smapri-picker:hover .kokion-smapri-picker__frame { border-color:var(--kokion-accent); }
.kokion-smapri-picker:focus-within { outline:3px solid var(--kokion-focus); outline-offset:4px; border-radius:10px; }
.kokion-smapri-slot.is-selected .kokion-smapri-picker__empty { display:none; }
.kokion-smapri-slot.is-selected .kokion-smapri-picker__frame { border-style:solid; border-color:var(--kokion-line); }
.kokion-smapri-slot[aria-busy="true"] .kokion-smapri-picker { opacity:.65; cursor:progress; }
.kokion-smapri-filename { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin:8px 0 20px; color:var(--kokion-muted); font-size:.75rem; text-align:center; }
.kokion-product-guide__actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:28px; }
@media(prefers-reduced-motion:reduce) { .kokion-smapri-picker__frame { transition:none; } }
/* Existing account forms and endpoints; presentation only. */
.kokion-service-page.woocommerce-account .inside-article { background:transparent; padding:0; }
.kokion-service-page.woocommerce-account .entry-title { margin:0 0 32px; text-align:center; font:400 clamp(1.85rem,4vw,2.8rem)/1.5 var(--kokion-serif); }
.kokion-service-page.woocommerce-account .woocommerce>h2 { text-align:center; font:400 1.5rem var(--kokion-serif); }
.kokion-service-page.woocommerce-account form.login,.kokion-service-page.woocommerce-account form.register,.kokion-service-page.woocommerce-account .woocommerce-ResetPassword { max-width:510px; margin:0 auto; padding:32px; background:#fff; border:1px solid var(--kokion-line); border-radius:16px; }
.kokion-service-page.woocommerce-account input.input-text { width:100%; min-height:50px; border:1px solid #c5beb1; border-radius:7px; background:#fff; font-size:16px; }
.kokion-service-page.woocommerce-account .woocommerce button.button { min-height:50px; padding:12px 24px; border:1px solid var(--kokion-ink); border-radius:999px; background:var(--kokion-ink); color:#fff; }
.kokion-service-page.woocommerce-account .woocommerce a { color:#805322; }
.kokion-service-page.woocommerce-account .woocommerce-MyAccount-navigation ul { margin:0; padding:16px; border:1px solid var(--kokion-line); border-radius:12px; list-style:none; background:#fff; }
.kokion-service-page.woocommerce-account .woocommerce-MyAccount-navigation a { display:block; padding:12px; }
.kokion-service-page.woocommerce-account .woocommerce-MyAccount-content { padding:24px; border:1px solid var(--kokion-line); border-radius:12px; background:#fff; overflow-wrap:anywhere; }
.kokion-service-page.woocommerce-account :is(input,button,a):focus-visible { outline:3px solid var(--kokion-focus); outline-offset:3px; }
.kokion-service-page.woocommerce-account .woocommerce-error { border-radius:8px; color:#8d2924; }
@media(max-width:768px) { .kokion-service-page.woocommerce-account form.login,.kokion-service-page.woocommerce-account form.register { padding:24px 20px; } }

.kokion-service-page.woocommerce-account .woocommerce,.kokion-service-page.woocommerce-account .woocommerce * { box-sizing:border-box; }

/* Shop catalog only: presentation and existing navigation. */
.kokion-catalog-jump { display:inline-block; margin-top:20px; color:var(--kokion-ink); text-underline-offset:6px; }
.kokion-catalog-section { margin-top:64px; }
.kokion-catalog-section__heading { margin-bottom:28px; }
.kokion-catalog-section__heading h2 { margin:0 0 12px; font:400 clamp(1.6rem,3vw,2.2rem)/1.6 var(--kokion-serif); }
.kokion-catalog-price { margin:0; font-size:1rem; }
.kokion-catalog-price strong { font-size:1.6rem; font-weight:500; }
.kokion-catalog-price small,.kokion-catalog-plan-price small { font-size:.8rem; }
.kokion-catalog-photo { margin:0 0 28px; }
.kokion-catalog-photo img { display:block; width:100%; height:auto; border-radius:12px; }
.kokion-catalog-photo figcaption { margin-top:8px; color:var(--kokion-muted); font-size:.75rem; }
.kokion-catalog-finishes { display:grid; gap:24px; }
.kokion-catalog-finishes--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.kokion-catalog-finishes--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.kokion-catalog-finish { padding:24px 0; border-top:1px solid var(--kokion-line); }
.kokion-catalog-finish h3 { margin:0 0 12px; font:500 1.4rem/1.5 var(--kokion-serif); overflow-wrap:anywhere; }
.kokion-catalog-finish>p:last-child { margin:0; }
.kokion-catalog-orders { border-top:1px solid var(--kokion-line); padding-top:48px; scroll-margin-top:24px; }
.kokion-catalog .kokion-page-card h3 { margin:0 0 12px; font:500 1.7rem/1.5 var(--kokion-serif); }
.kokion-catalog-plan-price { min-height:76px; margin-bottom:24px; }
.kokion-catalog-plan-price strong { font-size:1.5rem; font-weight:500; }
.kokion-catalog-spec { margin:0 0 24px; }
.kokion-catalog-spec>div { padding:14px 0; border-top:1px solid var(--kokion-line); }
.kokion-catalog-spec dt { color:var(--kokion-muted); font-size:.8rem; }
.kokion-catalog-spec dd { margin:4px 0 0; }
.kokion-catalog-preparing { padding:14px 16px; background:var(--kokion-paper); border-radius:8px; color:var(--kokion-muted); font-size:.85rem; }
@media(max-width:768px) {
 .kokion-catalog-section { margin-top:40px; }
 .kokion-catalog-finishes { grid-template-columns:1fr; gap:0; }
 .kokion-catalog-finish { padding:20px 0; }
 .kokion-catalog-plan-price { min-height:0; }
 .kokion-catalog-orders { padding-top:32px; }
}

/* Final shop review: restrained trial pricing and mobile reading size. */
.kokion-catalog-value { margin:-12px 0 24px; font-size:.88rem; line-height:1.8; color:var(--kokion-muted); }
.kokion-catalog-value strong { color:var(--kokion-ink); font-weight:500; }
@media(max-width:768px) {
 .kokion-catalog-finish>p:last-child,.kokion-catalog .kokion-page-card>p:not(.kokion-page-kicker):not(.kokion-catalog-plan-price),.kokion-catalog-spec dd { font-size:15px; line-height:1.85; }
 .kokion-catalog-spec dt { font-size:14px; line-height:1.7; }
 .kokion-catalog .kokion-page-card>.kokion-catalog-preparing { font-size:14px; line-height:1.8; }
}

/* Public information copy only; existing checkout and service layout are unchanged. */
.kokion-public-copy .kokion-page-prose section + section { margin-top:2rem; }
.kokion-public-copy .kokion-page-prose p,
.kokion-public-copy .kokion-page-prose li { line-height:1.9; overflow-wrap:anywhere; }
.kokion-public-copy .kokion-page-prose figure { margin:0; }
.kokion-public-copy .kokion-page-prose img { width:100%; height:auto; border-radius:10px; }

/* Approved finish sample photos: preserve each complete composition. */
.kokion-catalog-finish .kokion-finish-sample { margin:0 0 22px; }
.kokion-catalog-finish .kokion-finish-sample img { display:block; width:100%; height:auto; border-radius:10px; }
.kokion-catalog-finish .kokion-finish-sample figcaption { margin-top:8px; color:var(--kokion-muted); font-size:12px; line-height:1.6; }

/* Legal information: borderless, right-aligned labels and left-aligned values. */
.kokion-public-copy .kokion-legal-table { width:100%; margin:0 0 2rem; border:0; border-collapse:collapse; table-layout:fixed; background:transparent; }
.kokion-public-copy .kokion-legal-table th,
.kokion-public-copy .kokion-legal-table td { border:0; background:transparent; vertical-align:top; line-height:1.9; overflow-wrap:anywhere; }
.kokion-public-copy .kokion-legal-table th { width:10rem; padding:1rem 1.7rem 1rem 0; text-align:right; font-weight:500; color:var(--kokion-muted); }
.kokion-public-copy .kokion-legal-table td { padding:1rem 0; text-align:left; }
@media(max-width:600px) {
 .kokion-public-copy .kokion-legal-table th { width:6.2rem; padding:.8rem 1rem .8rem 0; font-size:14px; }
 .kokion-public-copy .kokion-legal-table td { padding:.8rem 0; font-size:15px; }
}
