.template-document { overflow-x: hidden; }
.template-document .home-header-brand { color: inherit; text-decoration: none; }
.template-main { width: min(1120px, calc(100% - 56px)); min-height: calc(100svh - 80px); margin: auto; padding: 72px 0 54px; }
.template-intro { max-width: 930px; margin: 0 auto 38px; text-align: center; }
.template-intro h1 { margin: 0; color: var(--home-ink); font: 700 clamp(32px, 4.5vw, 58px)/1.08 Outfit, "Noto Sans SC", sans-serif; letter-spacing: -.045em; }
.template-intro > p:last-child { max-width: 900px; margin: 19px auto 0; color: #52745b; font-size: 14px; line-height: 1.8; }
.template-copy-break { display: none; }
.template-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.template-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #719c73aa; border-radius: 24px; background: rgb(249 255 241 / 82%); color: inherit; text-decoration: none; box-shadow: 0 18px 40px rgb(49 95 61 / 13%); transition: transform .25s ease, box-shadow .25s ease; }
.template-card:hover { transform: translateY(-5px); box-shadow: 0 23px 46px rgb(49 95 61 / 21%); }
.template-card:focus-within { outline: 3px solid rgb(201 255 70 / 65%); outline-offset: 3px; }
.template-preview { display: grid; place-items: center; min-height: 230px; padding: 30px; background: rgb(239 249 224 / 80%); }
.template-preview img { display: block; max-width: 100%; max-height: 205px; object-fit: contain; filter: drop-shadow(0 14px 20px rgb(33 69 40 / 18%)); }
.carrier-visual { --physical-ratio: 1; --asset-ratio: 1; position: relative; width: 100%; height: 205px; overflow: visible; isolation: isolate; }
.carrier-visual img { display: block; position: absolute; top: 50%; left: 50%; width: auto; height: clamp(120px, calc(160px * var(--physical-ratio)), 238px); max-width: none; max-height: none; aspect-ratio: var(--asset-ratio); pointer-events: none; backface-visibility: hidden; transform-origin: center; will-change: transform, opacity; transition: opacity .42s cubic-bezier(.2,.8,.25,1), transform .52s cubic-bezier(.2,.8,.25,1); }
.carrier-visual img { border-radius: 0 !important; }
.carrier-visual-cover { z-index: 2; transform: translate(-50%, -50%) scale(.94); }
.carrier-visual-object { z-index: 1; opacity: 0; transform: translate(-50%, -50%) scale(.82); }
.carrier-visual.is-hovering .carrier-visual-cover { transform: translate(calc(-50% - 34px), -50%) scale(.74); }
.carrier-visual.is-hovering .carrier-visual-object { opacity: 1; transform: translate(calc(-50% + 34px), -50%) scale(.74); }
.carrier-visual-CD { --physical-ratio: 1; --asset-ratio: 640 / 566; }
.carrier-visual-CassetteTape { --physical-ratio: .872; --asset-ratio: 392 / 600; }
.carrier-visual-Vinyl { --physical-ratio: 2.52; --asset-ratio: 598 / 600; }
.template-disc-preview img { width: min(190px, 78%); border-radius: 50%; }
.template-tape-preview img { width: min(255px, 100%); }
.template-vinyl-preview { position: relative; }
.template-vinyl { width: min(185px, 76%); aspect-ratio: 1; border: 1px solid #16251f; border-radius: 50%; background: radial-gradient(circle, #d7f27d 0 10%, #182821 10.8% 12%, #0b1512 12.5% 35%, #14211d 35.5% 36%, #0a1210 36.5% 58%, #17231f 58.5% 59%, #080d0c 59.5% 100%); box-shadow: 0 18px 28px rgb(33 69 40 / 26%); transform: rotate(-12deg); }
.template-vinyl::after { content: "BCR"; position: absolute; inset: 43% 0 auto; color: #182821; font: 700 12px/1 Outfit, sans-serif; letter-spacing: .18em; text-align: center; }
.template-card-body { display: flex; flex: 1; flex-direction: column; padding: 23px 24px 25px; }
.template-card-kicker { margin: 0 0 9px; color: #527f5b; font: 600 11px/1 Outfit, sans-serif; letter-spacing: .15em; }
.template-card h2 { margin: 0; color: var(--home-ink); font: 700 24px/1.2 Outfit, "Noto Sans SC", sans-serif; }
.template-card-body > p:not(.template-card-kicker) { min-height: 68px; margin: 13px 0 20px; color: #617566; font-size: 13px; line-height: 1.7; }
.template-card-link { display: flex; align-items: center; justify-content: space-between; min-height: 48px; margin-top: auto; padding: 0 16px; border: 1px solid #315e3a; border-radius: 999px; background: var(--home-ink); color: white; font: 600 13px/1 "Noto Sans SC", sans-serif; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.template-card-link:hover, .template-card-link:focus-visible { background: #315e3a; transform: translateY(-2px); outline: none; }
.template-card-link span { color: var(--home-acid); font-size: 21px; }
.template-card-link.is-disabled { cursor: default; background: #839387; border-color: #839387; }
.template-card-link.is-disabled:hover { transform: none; }
.template-note { max-width: 760px; margin: 27px auto 0; color: #608068; font: 500 12px/1.7 Outfit, "Noto Sans SC", sans-serif; text-align: center; }
.template-main .site-credits { margin-top: 31px; }
.template-breadcrumb { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 0 18px; color: #52745b; font: 600 11px/1 Outfit, "Noto Sans SC", sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.template-breadcrumb a { color: inherit; text-underline-offset: 3px; }
.template-breadcrumb strong { color: var(--home-ink); }
.template-selection-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.template-selection-card { display: flex; flex-direction: column; min-width: 0; padding: 22px; border: 1px solid #719c73aa; border-radius: 20px; background: rgb(249 255 241 / 82%); box-shadow: 0 14px 30px rgb(49 95 61 / 11%); }
.template-category-card { color: inherit; text-decoration: none; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.template-category-card:hover, .template-category-card:focus-visible { transform: translateY(-4px); border-color: #527d5a; box-shadow: 0 20px 38px rgb(49 95 61 / 18%); outline: none; }
.template-category-card .template-sku-preview { height: 190px; }
.template-selection-card h2 { margin: 0; color: var(--home-ink); font: 700 21px/1.25 Outfit, "Noto Sans SC", sans-serif; }
.template-selection-card p { margin: 10px 0 17px; color: #617566; font-size: 13px; line-height: 1.65; }
.template-remark { min-width: 0; margin: 0 0 17px; padding: 11px 13px; border: 1px solid #c7d9ba; border-radius: 13px; background: rgb(238 248 225 / 76%); color: #506b57; }
.template-remark > span { display: block; margin-bottom: 5px; color: #52745b; font: 800 10px/1 Outfit, "Noto Sans SC", sans-serif; letter-spacing: .12em; }
.template-remark > p { margin: 0 !important; color: inherit !important; font-size: 12px !important; line-height: 1.65 !important; overflow-wrap: anywhere; word-break: break-word; white-space: pre-wrap; }
.template-selection-card .template-remark + .template-card-link { margin-top: auto; }
.template-sku { display: inline-flex; width: fit-content; margin-bottom: 12px; padding: 5px 9px; border-radius: 999px; background: #e8f5c9; color: #52745b; font: 700 11px/1 Outfit, monospace; letter-spacing: .04em; }
.template-sku-preview { width: 100%; height: 140px; margin-bottom: 17px; object-fit: contain; border-radius: 10px; background: rgb(239 249 224 / 70%); }
.template-vinyl-size-preview { width: min(100%, 220px); height: 190px; margin-left: auto; margin-right: auto; background: transparent; transform-origin: center; }
.template-vinyl-size-preview.is-7 { transform: scale(.5833); }
.template-selection-card .template-card-link { width: 100%; }
.template-unavailable { margin-top: auto !important; margin-bottom: 0 !important; padding: 13px 15px; border: 1px solid #c5a675; border-radius: 14px; background: #fff8e8; color: #805e28 !important; font-weight: 700; line-height: 1.55 !important; }
.template-form-card { max-width: 720px; margin: 0 auto; padding: 28px; border: 1px solid #719c73aa; border-radius: 24px; background: rgb(249 255 241 / 88%); box-shadow: 0 18px 40px rgb(49 95 61 / 13%); }
.template-form-card h2 { margin: 0; color: var(--home-ink); font: 700 25px/1.25 Outfit, "Noto Sans SC", sans-serif; }
.template-form-card > p { margin: 10px 0 22px; color: #617566; font-size: 13px; line-height: 1.7; }
.template-form-card .template-remark { margin: 0 0 20px; }
.template-form { display: grid; gap: 14px; }
.template-form label { display: grid; gap: 7px; color: #52745b; font-size: 12px; font-weight: 700; }
.template-form input { width: 100%; min-height: 45px; box-sizing: border-box; border: 1px solid #b7cbb6; border-radius: 10px; padding: 0 13px; background: #fffefa; color: var(--home-ink); font: 500 14px Outfit, "Noto Sans SC", sans-serif; }
.template-form input:focus { outline: 3px solid rgb(201 255 70 / 55%); border-color: #527f5b; }
.template-form button { min-height: 48px; margin-top: 4px; border: 1px solid var(--home-ink); border-radius: 999px; background: var(--home-ink); color: #fff; font: 700 14px "Noto Sans SC", sans-serif; cursor: pointer; }
.template-form button:hover { background: #315e3a; }
.template-direct-download { width: 100%; min-height: 48px; margin-top: 4px; border: 1px solid var(--home-ink); border-radius: 999px; background: var(--home-ink); color: #fff; font: 700 14px "Noto Sans SC", sans-serif; cursor: pointer; }
.template-direct-download:hover { background: #315e3a; }
.template-direct-download:disabled { cursor: wait; opacity: .72; }
.template-form-message { margin: 16px 0 0; padding: 13px 15px; border-radius: 10px; background: #e8f5c9; color: #315e3a; font-size: 12px; line-height: 1.6; }
.template-download-list { display: grid; gap: 10px; margin-top: 20px; }
.template-download-list[hidden] { display: none; }
.template-download-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border: 1px solid #b7cbb6; border-radius: 11px; background: #fffefa; }
.template-download-item strong { color: var(--home-ink); font-size: 13px; }
.template-download-item a { flex: 0 0 auto; color: #315e3a; font-size: 12px; font-weight: 700; text-underline-offset: 3px; }
@media (max-width: 900px) { .template-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .template-main { width: calc(100% - 28px); padding: 48px 0 42px; }
  .template-intro { margin-bottom: 27px; }
  .template-intro h1 { font-size: clamp(28px, 8.2vw, 38px); }
  .template-intro > p:last-child { font-size: 13px; }
  .template-copy-break { display: inline; }
  .template-grid, .template-selection-grid { grid-template-columns: 1fr; gap: 14px; }
  .template-preview { min-height: 195px; padding: 22px; }
  .template-preview img { max-height: 175px; }
  .carrier-visual { height: 175px; }
  .carrier-visual img { height: clamp(112px, calc(138px * var(--physical-ratio)), 194px); }
  .carrier-visual.is-hovering .carrier-visual-cover { transform: translate(-50%, -50%) scale(.94); }
  .carrier-visual.is-hovering .carrier-visual-object { opacity: 0; transform: translate(-50%, -50%) scale(.82); }
  .template-card-body { padding: 21px 21px 23px; }
  .template-card h2 { font-size: 22px; }
  .template-card-body > p:not(.template-card-kicker) { min-height: 0; font-size: 12px; }
  .template-form-card { padding: 22px 18px; }
  .template-download-item { align-items: flex-start; flex-direction: column; }
  .template-download-item a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .template-card, .template-card-link, .carrier-visual img { transition: none; } }
