.shop-page { background: #f8f6f0; color: #17231f; }
.shop-page :is(a, button, input, summary):focus-visible, .shop-header a:focus-visible { outline: 3px solid #315b4c; outline-offset: 4px; }
.shop-header { position: sticky; top: 0; z-index: 50; border-bottom: 1px solid #17231f1a; background: #f8f6f0; }
.shop-nav { max-width: 1280px; margin: auto; padding: 18px 32px; display: flex; align-items: center; gap: 36px; flex-wrap: wrap; }
.shop-nav > a > span { font-size: 30px; }
.shop-account { margin-left: auto; display: flex; align-items: center; gap: 32px; font-size: 14px; font-weight: 700; }
.shop-balance { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #536179; font-size: 14px; font-weight: 500; white-space: nowrap; }
.shop-avatar { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #17231f; color: white; }
.shop-auth { display: flex; align-items: center; gap: 16px; }
.shop-signin, .shop-signup { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; min-width: 84px; padding: 8px 16px; font-size: 13px; font-weight: 600; line-height: 20px; border: 1px solid transparent; border-radius: 12px; white-space: nowrap; }
.shop-signin { border-color: #aab4ac; color: #315b4c; }
.shop-signin:hover { background: #dce9e0; border-color: #315b4c; }
.shop-signup { background: #17231f; color: white; }
.shop-signup:hover { background: #315b4c; }
.shop-main { max-width: 1160px; margin: auto; padding: 32px 24px 56px; }
.shop-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #315b4c; }
.shop-muted { color: #536159; line-height: 1.7; }
.shop-card { border: 1px solid #17231f1a; border-radius: 28px; background: white; padding: 28px; }
.shop-primary, .shop-secondary { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 22px; border-radius: 999px; font-weight: 700; text-align: center; line-height: 1.5; }
.shop-primary { background: #17231f; color: white; }
.shop-primary:hover { background: #315b4c; }
.shop-primary:disabled { background: #536159; cursor: wait; }
.shop-secondary { color: #315b4c; border: 1px solid #88958d; background: transparent; }
.shop-secondary:hover { background: #dce9e0; }
.shop-notice { padding: 18px 22px; border-radius: 18px; background: #dce9e0; color: #244636; line-height: 1.6; }
.shop-error { background: #fff1ed; color: #8b3026; border: 1px solid #d9aaa2; }
.shop-steps { display: flex; gap: 12px; flex-wrap: wrap; font-size: 13px; color: #536159; }
.shop-steps li { display: flex; align-items: center; gap: 8px; }
.shop-steps li span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #e8eae3; }
.shop-steps li[aria-current] { color: #315b4c; font-weight: 700; }
.shop-steps li[aria-current] span { background: #315b4c; color: white; }
.shop-summary > div { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; }
.shop-summary dd { font-weight: 700; text-align: right; }
.shop-summary dt { color: #536159; }
.coin-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.coin-option { position: relative; cursor: pointer; }
.coin-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.coin-option > span { display: block; padding: 18px 12px; border: 1px solid #88958d; border-radius: 18px; text-align: center; }
.coin-option input:checked + span { background: #dce9e0; border: 2px solid #315b4c; padding: 17px 11px; }
.coin-option input:focus-visible + span { outline: 3px solid #315b4c; outline-offset: 4px; }
.coin-option strong { display: block; font-family: Fraunces, serif; font-size: 30px; }
.coin-option small { display: block; color: #536159; margin: 4px 0 14px; }
.shop-page .coin-proof { display: block; width: 100%; border: 1px dashed #88958d; border-radius: 16px; padding: 16px; background: #f8f6f0; font-size: 14px; }
.coin-proof::file-selector-button { border: 0; border-radius: 8px; padding: 8px 12px; background: #dce9e0; color: #244636; margin-right: 12px; font-weight: 700; }
.shop-footer { max-width: 1280px; padding: 28px 24px; margin: auto; border-top: 1px solid #17231f1a; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; font-size: 13px; color: #536159; }
.shop-skip { position: fixed; top: -100px; left: 20px; z-index: 100; padding: 12px; background: white; }
.shop-skip:focus { top: 10px; }
.shop-badge { display: inline-flex; border-radius: 999px; background: #e6ca784d; padding: 6px 12px; font-size: 12px; font-weight: 700; }
@media(max-width: 700px) {
 .shop-nav { padding: 14px 20px; gap: 8px; }
 .shop-account { gap: 22px; }
 .shop-main { padding: 28px 20px 48px; }
 .shop-card { padding: 22px; border-radius: 22px; }
 .coin-options { gap: 8px; }
 .coin-option > span { padding: 14px 6px; font-size: 12px; }
 .coin-option input:checked + span { padding: 13px 5px; }
 .coin-option strong { font-size: 26px; }
}

/* Discovery controls use the existing JOURNEA palette and rounded elements. */
.catalog-tools { display: grid; grid-template-columns: 1fr 1fr 1fr auto; align-items: end; gap: 16px; margin-top: 24px; padding: 22px; border: 1px solid #17231f1a; border-radius: 24px; background: #ffffff85; }
.catalog-tools > div { min-width: 0; }
.catalog-tools label { display: block; margin-bottom: 8px; color: #315b4c; font-size: 12px; font-weight: 700; }
.catalog-tools select { width: 100%; min-height: 46px; padding: 10px 30px 10px 14px; border: 1px solid #aab4ac; border-radius: 14px; background: #fffdf8; color: #17231f; font-size: 13px; }
.shop-page select:focus-visible { outline: 3px solid #315b4c; outline-offset: 3px; }
.catalog-active { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.catalog-active a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; max-width: 100%; overflow-wrap: anywhere; padding: 8px 14px; border: 1px solid #aab4ac; border-radius: 999px; color: #315b4c; font-size: 12px; }
.catalog-active a:hover { background: #dce9e0; }
.shop-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; color: #536159; font-size: 13px; overflow-wrap: anywhere; }
.shop-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; color: #315b4c; }
.product-facts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; padding: 22px 0; border-top: 1px solid #17231f1a; border-bottom: 1px solid #17231f1a; }
.product-facts dt { color: #536159; font-size: 12px; }.product-facts dd { margin-top: 7px; font-size: 14px; font-weight: 600; overflow-wrap: anywhere; }
.product-guide { border: 1px solid #17231f1a; border-radius: 20px; padding: 18px 20px; background: #ffffff80; }
.product-guide summary { cursor: pointer; min-height: 28px; font-size: 14px; font-weight: 700; color: #315b4c; }
#catalog, #purchase-options, #preview { scroll-margin-top: 110px; }
@media(max-width: 850px) { .catalog-tools { grid-template-columns: 1fr 1fr; } }
@media(max-width: 480px) { .catalog-tools { grid-template-columns: 1fr; padding: 18px; gap: 14px; } }

@media (max-width: 700px) {
 .shop-nav { flex-wrap: nowrap; padding: 12px 20px; gap: 12px; }
 .shop-nav > a { flex-shrink: 0; }
 .shop-nav > a > span { font-size: 28px; }
 .shop-auth { gap: 8px; }
 .shop-signin, .shop-signup { min-height: 38px; min-width: 0; width: clamp(72px, 18vw, 80px); padding: 8px 12px; font-size: 12px; line-height: 20px; }
}

/* Audit 24 September: legible balances and comfortable touch targets. */
#catalog-search-form input, #catalog-search-form button { min-height: 44px; }
#catalog nav a, .product-guide summary { min-height: 44px; }
.product-guide summary { align-content: center; }
.shop-page .bg-coral.text-white { color: #17231f; }
@media (prefers-reduced-motion: reduce) { .marquee { animation: none !important; } }

/* Editorial covers use real catalog metadata, never simulated file previews. */
.product-art { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; gap: 26px; min-height: 270px; padding: 26px; border: 1px solid #17231f12; border-radius: 28px; background: var(--product-accent, #dce9e0); color: #17231f; }
.product-art::before { content: ''; position: absolute; z-index: -1; width: 230px; height: 230px; border: 1px solid #17231f14; border-radius: 50%; right: -90px; top: -70px; box-shadow: 0 0 0 24px #ffffff1f, 0 0 0 48px #ffffff18; }
.product-art::after { content: ''; position: absolute; z-index: -1; left: 0; bottom: 0; width: 9px; height: 100%; background: #17231f0b; }
.product-art-top, .product-art-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.product-art-top > span:first-child { max-width: 85%; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; overflow-wrap: anywhere; }
.product-art-mark { font-family: Fraunces, serif; font-size: 24px; font-weight: 700; }
.product-art-title { max-width: 95%; margin: auto 0; font-family: Fraunces, serif; font-size: clamp(26px, 2.3vw, 34px); font-weight: 600; line-height: 1.12; overflow-wrap: anywhere; }
.product-art-bottom { padding-top: 14px; border-top: 1px solid #17231f26; font-size: 11px; line-height: 1.5; }
.product-art-bottom > span:last-child { text-align: right; }
.product-art-detail { min-height: 310px; padding: 32px; }
.product-art-detail .product-art-title { font-size: clamp(30px, 3vw, 44px); max-width: 88%; }
.product-art-compact { min-height: 190px; padding: 20px; gap: 18px; border-radius: 18px; }
.product-art-compact .product-art-title { font-size: 24px; }
.product-art-compact .product-art-bottom { display: none; }
.product-detail-layout > * { min-width: 0; }
.product-preview-note { display: flex; align-items: flex-start; gap: 12px; margin-top: 24px; padding: 18px 0; border-top: 1px solid #17231f1a; color: #536159; }
.product-preview-note > span { font-size: 20px; margin-top: 2px; }
.product-preview-note h2 { font-size: 14px; font-weight: 700; color: #315b4c; }
.product-preview-note p { margin-top: 5px; font-size: 13px; line-height: 1.7; }
@media (max-width: 480px) { .product-art { min-height: 245px; padding: 24px; } .product-art-detail { min-height: 270px; } .product-art-compact { min-height: 180px; padding: 20px; } }

.catalog-filter-panel { margin-top: 20px; border: 1px solid #17231f1a; border-radius: 20px; background: #ffffff85; }
.catalog-filter-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 14px 20px; cursor: pointer; font-size: 14px; font-weight: 700; color: #315b4c; list-style: none; }
.catalog-filter-panel > summary::-webkit-details-marker { display: none; }
.catalog-filter-caption { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 500; color: #536159; }
.catalog-filter-panel .catalog-tools { margin-top: 0; border: 0; padding-top: 8px; background: none; }
@media (max-width: 390px) { .catalog-filter-caption { font-size: 11px; gap: 8px; } }

/* Compact marketplace cards, with illustrative artwork rather than file previews. */
.catalog-offer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 20px; width: 100%; margin: 20px 0 0; }
.market-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid #17231f1a; border-radius: 20px; background: #fffdf9; box-shadow: 0 3px 12px #17231f05; color: #17231f; transition: box-shadow .2s, border-color .2s; }
.market-card:hover { border-color: #315b4c80; box-shadow: 0 10px 26px #17231f12; }
.market-thumb { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-bottom: 1px solid #17231f0d; }
.market-thumb-notes { background: #dce9e0; }.market-thumb-service { background: #f2e9d4; }
.market-thumb-label, .market-status { position: absolute; z-index: 1; top: 14px; padding: 5px 9px; border-radius: 7px; font-size: 11px; line-height: 1.4; font-weight: 700; }
.market-thumb-label { left: 14px; color: #315b4c; background: #fffdf8d9; }.market-status { right: 14px; background: #17231f; color: #fffdf8; }
.market-illustration { display: block; width: 100%; height: 100%; padding: 12px 28px 0; }
.market-illustration-caption { position: absolute; right: 14px; bottom: 10px; font-size: 10px; color: #536159; }
.market-card-body { display: flex; flex: 1; flex-direction: column; padding: 16px 18px 0; }
.market-category { color: #536159; font-size: 12px; line-height: 1.5; }
.market-card h3 { margin-top: 9px; font-family: Fraunces, serif; font-size: 21px; font-weight: 600; line-height: 1.3; }
.market-description { color: #536159; font-size: 14px; line-height: 1.65; margin-top: 10px; }
.market-card-price { margin-top: auto; padding-top: 12px; }
.market-card-price > span { font-size: 11px; color: #536159; }
.market-card-price p { margin-top: 3px; }.market-card-price strong { font-size: 22px; font-weight: 700; letter-spacing: -.03em; }.market-card-price p > span { font-size: 13px; color: #536159; }
.market-card-price small { display: block; margin-top: 5px; font-size: 11px; color: #536159; line-height: 1.5; }
.market-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; min-height: 48px; border-top: 1px solid #17231f12; color: #315b4c; font-size: 13px; font-weight: 700; }
.market-card-arrow { display: grid; place-items: center; height: 30px; width: 30px; border-radius: 50%; background: #dce9e0; font-size: 17px; }
@media (max-width: 639px) { .catalog-offer-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; } .market-card h3 { font-size: 20px; } .market-card-body { padding: 16px 18px 0; } }
@media (prefers-reduced-motion: reduce) { .market-card { transition: none; } }

/* A shorter mobile introduction and a dedicated detail journey for each offer. */
.offer-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr); gap: 32px; align-items: start; margin-top: 24px; }
.offer-detail-main { min-width: 0; }.offer-detail-main h1 { font-family: Fraunces, serif; font-size: clamp(30px, 3.4vw, 40px); line-height: 1.15; font-weight: 600; margin-top: 14px; }
.offer-detail-intro { margin-top: 20px; color: #536159; font-size: 17px; line-height: 1.8; }
.offer-section-links { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; }
.offer-section-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 1px solid #17231f26; border-radius: 999px; font-size: 13px; font-weight: 600; color: #315b4c; }
.offer-content { padding-top: 20px; border-top: 1px solid #17231f1a; }.offer-content > h2 { font-family: Fraunces, serif; font-size: 28px; font-weight: 600; }
.offer-content .product-facts { border-top: 0; margin-top: 6px; }.offer-detail-side { position: sticky; top: 110px; }
.offer-summary { border: 1px solid #17231f1a; border-radius: 24px; overflow: hidden; background: #fffdf9; }.offer-summary-body { padding: 20px; }
.offer-summary-body h2 { font-family: Fraunces, serif; font-size: 26px; font-weight: 600; margin: 16px 0 8px; }.offer-availability { margin: 20px 0; padding: 16px; border-radius: 14px; background: #f3f1e9; font-size: 14px; line-height: 1.7; color: #536159; }
#offer-details, #offer-status { scroll-margin-top: 110px; }
.journey-inner { max-width: 1280px; margin: auto; padding: 48px 32px; }.journey-heading { max-width: 620px; }.journey-heading h2, .journey-faq h2 { margin: 12px 0 14px; font-family: Fraunces, serif; font-size: 34px; line-height: 1.2; font-weight: 600; }
.journey-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 32px; }.journey-steps li { padding: 20px; border-radius: 22px; background: #f8f6f0; }
.journey-number { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: #315b4c; background: #dce9e0; font-size: 13px; font-weight: 700; }.journey-steps h3 { margin-top: 16px; font-family: Fraunces, serif; font-size: 23px; font-weight: 600; }.journey-steps p { margin-top: 12px; font-size: 14px; line-height: 1.8; color: #536159; }
.journey-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; max-width: 1280px; margin: auto; padding: 48px 32px; }.journey-faq .product-guide + .product-guide { margin-top: 12px; }
@media (max-width: 1023px) {
 .shop-hero > div { min-height: 0; padding-top: 40px; padding-bottom: 40px; }
 .shop-page .shop-hero-art { display: none; }
 .shop-hero h1 { font-size: clamp(40px, 7vw, 64px); }
 .shop-hero h1 + p { margin-top: 20px; font-size: 16px; }
 .shop-hero .mt-10 { margin-top: 24px; }
 .offer-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 28px; }.offer-detail-side { position: static; }.offer-summary { display: grid; grid-template-columns: 1fr 1fr; }.offer-summary .market-thumb { aspect-ratio: auto; min-height: 250px; }
}
@media (max-width: 639px) {
 .shop-page #catalog { padding-top: 40px; padding-bottom: 48px; }
 .shop-hero .mt-9 { margin-top: 24px; }
 .journey-inner, .journey-faq { padding: 40px 20px; }.journey-steps, .journey-faq { grid-template-columns: minmax(0, 1fr); gap: 18px; }.journey-heading h2, .journey-faq h2 { font-size: 30px; }
 .offer-summary { display: block; }.offer-summary .market-thumb { aspect-ratio: 16 / 9; min-height: 0; }.offer-summary-body { padding: 22px; }
}

.catalog-filter-panel .catalog-tools { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }

/* Keep full-width offer rows without oversized artwork or controls. */
.market-card > .market-thumb { height: 160px; flex: 0 0 160px; aspect-ratio: auto; }
.market-card .market-illustration { padding: 20px 28px 10px; }
.shop-page #catalog { padding-top: 48px; padding-bottom: 48px; }
#catalog-title { font-size: clamp(30px, 3vw, 38px); line-height: 1.2; }
#catalog > nav { margin-top: 24px; }
.catalog-filter-panel > summary { min-height: 48px; padding-top: 10px; padding-bottom: 10px; }
@media (min-width: 1024px) {
 .shop-hero > div { min-height: 540px; padding-top: 56px; padding-bottom: 56px; }
 .shop-hero h1 { font-size: clamp(60px, 5.3vw, 76px); }
 .shop-hero h1 + p { font-size: 18px; margin-top: 24px; }
}
@media (max-width: 1023px) {
 #catalog > div:first-child { flex-direction: column; align-items: stretch; }
 #catalog-search-form { max-width: none; }
}
@media (max-width: 639px) {
 .shop-page #catalog { padding-top: 32px; padding-bottom: 36px; }
 .catalog-offer-grid { gap: 18px; }
 .market-card > .market-thumb { height: 140px; flex-basis: 140px; }
}

/* Order forms use local styles so payment controls remain usable before CDN loads. */
.order-columns { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:24px; }
.order-stack,.order-form { display:flex; flex-direction:column; gap:18px; min-width:0; }
.order-form label { display:flex; flex-direction:column; gap:8px; font-size:14px; font-weight:600; }
.order-form input:not([type=checkbox]),.order-form textarea,.order-form select { box-sizing:border-box; width:100%; min-width:0; max-width:100%; padding:12px; border:1px solid #cad1cc; border-radius:12px; background:white; color:#17231f; font:inherit; }
.order-form input[type=checkbox] { width:18px; height:18px; }
.order-form textarea { min-height:100px; }
.order-text { white-space:pre-wrap; overflow-wrap:anywhere; }
.order-number { overflow-wrap:anywhere; font-size:13px; }
.order-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:18px; }
.order-stack h2 { font-size:20px; font-weight:700; }
@media(max-width:760px) { .order-columns { grid-template-columns:minmax(0,1fr); } .shop-account { gap:22px; } .shop-account .shop-balance { padding:8px; font-size:12px; } }

.library-access-list { grid-template-columns:minmax(0,1fr); }
.library-access-list > a { min-width:0; width:100%; box-sizing:border-box; }
@media(min-width:640px) { .library-access-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }

@media (max-width: 540px) {
 .shop-nav { padding: 10px 20px; gap: 8px; }
 .shop-nav > a > span { font-size: 26px; }
 .shop-account { gap: 18px; }
 .shop-account .shop-balance { padding: 4px; font-size: 11px; }
 .shop-avatar { width: 36px; height: 36px; }
 .shop-signin, .shop-signup { padding: 8px 12px; }
 #catalog, #purchase-options, #preview, #offer-details, #offer-status { scroll-margin-top: 88px; }
}

@media (min-width: 701px) and (max-width: 1023px) { .shop-nav { padding-inline: 24px; } }
/* Illustrated studio catalog, with a consistent information hierarchy. */
.custom-service-card{padding:0!important;overflow:hidden;background:#fffdf8;border-radius:18px;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}.custom-service-card:hover{transform:translateY(-3px);box-shadow:0 12px 25px #315b4c12}.service-art{height:125px;background:#e9eee3;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0}.service-art svg{width:100%;height:100%;max-width:350px}.service-art-slides,.service-art-video{background:#dce9e0}.service-art-map,.service-art-audio{background:#e9eddf}.service-art-quiz,.service-art-design{background:#f3e6d6}.service-art-chat,.service-art-redesign{background:#eee8d6}.service-art-document{background:#e3e9e7}.service-card-content{display:flex;flex-direction:column;padding:20px;flex:1;min-width:0}.custom-service-card .custom-service-group{font-size:9px;letter-spacing:.04em;margin:0;color:#6a7d70}.custom-service-card h3{font-size:23px;line-height:1.16;margin-top:8px;font-weight:600;min-height:54px}.custom-service-card .custom-service-description{font-size:12px;line-height:1.7;margin-top:8px;min-height:61px;color:#62716a}.service-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;list-style:none;padding:0}.service-card-tags li{font-size:9px;padding:5px 8px;border-radius:6px;background:#edf0e5;color:#456653;line-height:1.4}.custom-service-card .custom-service-footer{margin-top:20px;padding-top:13px;font-size:12px;font-weight:600;min-height:35px}.catalog-studio-intro{font-size:13px;line-height:1.7;color:#62716a;max-width:440px;margin-top:12px}.service-detail-art{margin-top:25px}.service-detail-art .service-art{height:185px;border-radius:16px}.service-detail-art>span{display:block;font-size:10px;margin-top:7px;color:#758178}.service-detail-sections{margin-top:28px}.service-detail-sections>section{display:flex;gap:16px;padding:24px 0;border-top:1px solid #17231f12}.detail-step{font-size:11px;color:#a87851;padding-top:6px}.service-detail-sections h2{font-family:Fraunces,Georgia,serif;font-size:24px;line-height:1.2}.service-detail-sections p{font-size:14px;color:#62716a;line-height:1.8;margin-top:12px}.service-discussion{background:#edf0e5;border-radius:20px}.service-discussion h2{font-family:Fraunces,Georgia,serif;font-size:32px;line-height:1.1;margin-top:12px}.service-discussion>p:not(.shop-eyebrow){font-size:14px;color:#62716a;line-height:1.8;margin-top:16px}.service-price-note{border-block:1px solid #315b4c20;margin-block:24px;padding-block:18px}.service-price-note strong{display:block;font-size:13px}.service-price-note span{display:block;font-size:12px;color:#62716a;line-height:1.7;margin-top:8px}.service-discussion .service-contact{width:100%;font-size:13px;min-height:48px;border-radius:12px}.service-other-link{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;margin-top:18px;min-height:36px;color:#315b4c}.service-other-link:hover{text-decoration:underline}
@media(max-width:700px){.service-card-content{padding:18px}.custom-service-card h3{min-height:0;font-size:24px}.custom-service-card .custom-service-description{min-height:0;font-size:13px}.service-art{height:135px}.custom-service-card .custom-service-footer{margin-top:18px}.service-detail-sections h2{font-size:22px}.service-detail-sections>section{gap:12px;padding-block:20px}.service-detail-art .service-art{height:150px}.service-discussion h2{font-size:28px}}
@media(prefers-reduced-motion:reduce){.custom-service-card{transition:none}.custom-service-card:hover{transform:none}}
.custom-service-card .custom-service-description{margin-bottom:0}.service-card-content .service-card-tags{margin-bottom:18px}.custom-service-card .custom-service-footer{margin-top:auto}

/* Quiet detail-page navigation and a lighter editorial hierarchy. */
.service-return{display:flex;align-items:center}.service-back{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:12px;font-weight:500;color:#64736a;text-decoration:none;transition:color .15s}.service-back-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid #315b4c20;border-radius:50%;transition:background .15s}.service-back-icon svg{width:17px;height:17px}.service-back:hover{color:#315b4c}.service-back:hover .service-back-icon{background:#e9eee3}.service-back:focus-visible{outline:2px solid #315b4c;outline-offset:4px;border-radius:4px}.studio-detail{margin-top:24px;gap:40px}.studio-detail .offer-detail-main>.shop-eyebrow{font-size:10px;letter-spacing:.09em;font-weight:500;color:#758178}.studio-detail .offer-detail-main h1{margin-top:10px;letter-spacing:-.025em;line-height:1.1}.studio-detail .offer-detail-intro{font-size:15px;line-height:1.8;margin-top:18px;max-width:580px}.studio-detail .service-detail-art{margin-top:24px}.studio-detail .service-detail-art .service-art{background:linear-gradient(115deg,#edf0e5,#e0e9df);border-radius:12px;height:170px}.studio-detail .service-detail-art>span{font-size:9px;color:#899187;margin-top:8px}.studio-detail .service-detail-sections{margin-top:24px}.studio-detail .service-detail-sections h2{font-size:22px;font-weight:500;letter-spacing:-.015em}.studio-detail .service-detail-sections p{font-size:13px;line-height:1.85;margin-top:10px}.studio-detail .service-card-tags{gap:0;margin-top:12px}.studio-detail .service-card-tags li{padding:0;background:none;font-size:10px;color:#758178}.studio-detail .service-card-tags li+li:before{content:'·';margin:0 10px;color:#b18a5f}.studio-detail .service-discussion{background:#fffdf8;border:1px solid #315b4c18;border-radius:16px;box-shadow:none}.studio-detail .service-discussion .shop-eyebrow{font-size:9px;letter-spacing:.09em;font-weight:500}.studio-detail .service-discussion h2{font-size:28px}.studio-detail .service-discussion>p:not(.shop-eyebrow){font-size:13px}.studio-detail .service-price-note{border-top:0;margin-top:18px;padding-top:0}.studio-detail .service-discussion .service-contact{border-radius:10px}
@media(max-width:700px){.studio-detail{margin-top:20px;gap:24px}.studio-detail .offer-detail-main h1{font-size:32px}.studio-detail .service-detail-art .service-art{height:140px}.studio-detail .service-detail-sections>section{padding-block:20px}.studio-detail .service-detail-sections h2{font-size:21px}.studio-detail .service-detail-sections p{font-size:13px}.studio-detail .service-discussion{padding:22px}}
@media(prefers-reduced-motion:reduce){.service-back,.service-back-icon{transition:none}}

.shop-mobile-menu{display:none}
@media(max-width:700px){.shop-nav{position:relative}.shop-auth-desktop{display:none}.shop-mobile-menu{display:block}.shop-mobile-menu>summary{display:grid;place-items:center;width:44px;height:44px;cursor:pointer;list-style:none;border:1px solid #315b4c24;border-radius:12px;color:#172b24;background:#fffdf8}.shop-mobile-menu>summary::-webkit-details-marker{display:none}.shop-mobile-menu>summary svg{width:22px;height:22px}.shop-mobile-menu .menu-close{display:none}.shop-mobile-menu[open] .menu-bars{display:none}.shop-mobile-menu[open] .menu-close{display:block}.shop-mobile-menu-panel{position:absolute;right:20px;top:calc(100% + 8px);width:210px;padding:12px;display:flex;flex-direction:column;gap:8px;background:#fffdf8;border:1px solid #315b4c28;border-radius:16px;box-shadow:0 12px 35px #172b241a}.shop-mobile-menu-panel a{display:flex;align-items:center;justify-content:center;min-height:46px;font-size:15px;width:100%}}
@media(max-width:700px){.shop-mobile-menu>summary{border:0;background:transparent;border-radius:0}.shop-mobile-menu-panel{left:0;right:0;top:100%;width:auto;padding:20px;background:#f8f6f0;border:0;border-top:1px solid #315b4c18;border-bottom:1px solid #315b4c24;border-radius:0;box-shadow:0 12px 22px #172b240a;gap:10px}.shop-mobile-menu-panel .shop-signin{background:transparent}.shop-mobile-menu-panel a{min-height:48px}}

@media(max-width:700px){.shop-mobile-menu>summary{width:50px;height:50px}.shop-mobile-menu>summary svg{width:28px;height:28px}}

/* Keep the loyalty balance readable in the compact header. */
@media(max-width:700px){
 .shop-account .shop-balance{gap:5px;padding:4px;font-size:16px;line-height:1.3;color:#315b4c}
 .shop-account .shop-balance strong{font-weight:700}
}

/* Photography and a concise discussion guide for custom services. */
.service-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.studio-detail .service-detail-art .service-art{height:auto;aspect-ratio:3/2;max-height:460px;border-radius:18px}
.studio-detail .service-discussion{padding:28px;background:linear-gradient(140deg,#fffdf8,#f0f2e8);border-radius:22px}
.studio-detail .service-discussion h2{font-size:30px;line-height:1.15;margin:12px 0 14px}
.studio-detail .service-discussion>p:not(.shop-eyebrow){font-size:14px;line-height:1.7}
.service-discussion-flow{list-style:none;padding:0;margin:24px 0;display:grid;gap:18px}
.service-discussion-flow li{display:flex;align-items:flex-start;gap:13px}
.service-discussion-flow li>span{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#e2e9dc;color:#315b4c;font-size:11px;font-weight:600}
.service-discussion-flow strong{font-size:13px;line-height:1.6;color:#244737}
.service-discussion-flow p{font-size:12px;line-height:1.6;color:#62716a;margin-top:3px}
.studio-detail .service-discussion .service-contact{width:100%;justify-content:center;background:#315b4c}
.studio-detail .service-discussion .service-contact:hover{background:#244737}
.studio-detail .service-discussion .service-discussion-note{font-size:11px;text-align:center;margin-top:12px;color:#758178}
@media(max-width:700px){.studio-detail .service-discussion{padding:24px}.studio-detail .service-discussion h2{font-size:28px}}

/* Pricing and a compact order brief take precedence over repeated process copy. */
.service-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 8px;margin:22px 0;padding:18px 0;border-block:1px solid #315b4c20}
.service-price-label{flex-basis:100%;font-size:11px;color:#62716a}
.service-price strong{font-family:Fraunces,Georgia,serif;font-size:28px;font-weight:600;color:#244737;line-height:1.25}
.service-price-unit{font-size:12px;color:#62716a}
.service-price p{flex-basis:100%;font-size:12px;line-height:1.7;color:#62716a;margin-top:5px}
.service-price-compact{margin:14px 0 0;padding:12px 0 0;border:0;gap:4px 6px}
.service-price-compact .service-price-label{flex-basis:auto;font-size:12px}
.service-price-compact strong{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600}
.service-price-compact p{font-size:11px}
.service-order-brief{margin:0 0 22px}
.service-order-brief h3{font-size:13px;font-weight:600;color:#244737;margin-bottom:7px}
.service-order-brief p{font-size:13px;line-height:1.7;color:#62716a}
.studio-detail .service-discussion h2{font-size:29px;line-height:1.2}

/* A quiet quote panel: price first, then a clearly separated base scope. */
.studio-detail .service-discussion{background:#fffdf8;border:1px solid #315b4c22;padding:30px;border-radius:24px;box-shadow:0 12px 36px #17231f04}
.studio-detail .service-discussion h2{font-size:28px;line-height:1.2;max-width:340px;margin-bottom:20px}
.service-discussion .service-price{margin:0 0 24px;padding:0;border:0;gap:6px 8px}
.service-discussion .service-price strong{font-size:36px;letter-spacing:-.025em}
.service-discussion .service-price-scope{background:#edf1e8;border-radius:14px;padding:15px 16px;margin-top:14px;font-size:13px;color:#53645a}
.service-scope-label{display:block;font-size:11px;font-weight:600;color:#315b4c;margin-bottom:6px}
.service-discussion .service-price>p:not(.service-price-scope){font-size:11px;margin-top:8px}
.service-discussion .service-order-brief{padding-top:20px;border-top:1px solid #315b4c20;margin-bottom:20px}
.service-discussion .service-other-link{margin-top:20px}
@media(max-width:700px){.studio-detail .service-discussion{padding:24px}.studio-detail .service-discussion h2{font-size:26px}.service-discussion .service-price strong{font-size:32px}}

/* Compact service brief, with optional information expanded by the reader. */
.service-compact-page .shop-main{padding-top:20px;padding-bottom:20px}
.service-compact-page .service-return{margin-bottom:18px}
.service-compact-page .studio-detail{gap:30px;align-items:start}
.service-compact-page .offer-detail-main h1{font-size:clamp(28px,2.6vw,42px);margin-top:8px}
.service-compact-page .offer-detail-intro{font-size:14px;line-height:1.6;margin-top:10px;margin-bottom:16px}
.service-compact-page .service-detail-art{margin-top:14px}
.service-compact-page .service-detail-art .service-art{height:clamp(150px,27vh,280px);aspect-ratio:auto}
.service-compact-page .service-detail-sections{margin-top:16px}
.service-detail-sections details{border-top:1px solid #315b4c25;padding:11px 0}
.service-detail-sections summary{display:flex;justify-content:space-between;gap:16px;cursor:pointer;color:#315b4c;font-size:13px;font-weight:600;list-style:none}
.service-detail-sections summary::-webkit-details-marker{display:none}
.service-detail-sections summary:focus-visible{outline:2px solid #315b4c;outline-offset:4px}
.service-detail-sections details[open] summary span{transform:rotate(45deg)}
.service-detail-sections details>div{padding-top:10px;font-size:13px;line-height:1.7;color:#62716a}
.service-compact-page .service-discussion{padding:24px}
.service-compact-page .service-discussion h2{font-size:25px;margin:8px 0 16px}
.service-compact-page .service-price{margin-bottom:18px}
.service-compact-page .service-price-scope{padding:12px 14px;font-size:12px}
.service-compact-page .service-price strong{font-size:32px}
.service-compact-page .service-discussion-note{font-size:11px;line-height:1.6}
.service-compact-page .service-other-link{margin-top:12px}
@media(max-width:700px){
 .service-compact-page .studio-detail{gap:18px}
 .service-compact-page .service-detail-art .service-art{height:140px}
 .service-compact-page .service-discussion{padding:20px}
}

/* Fit the default desktop detail without clipping or disabling scrolling. */
@media(min-width:1024px){
 .service-compact-page .shop-main{padding-top:12px;padding-bottom:16px}
 .service-compact-page .service-return{margin-bottom:10px}
 .service-compact-page .studio-detail{margin-top:10px;gap:28px}
 .service-compact-page .offer-detail-side{position:static}
 .service-compact-page .service-discussion{padding:20px 24px}
 .service-compact-page .service-discussion h2{font-size:24px;margin:6px 0 12px}
 .service-compact-page .service-discussion .service-price{margin-bottom:14px}
 .service-compact-page .service-discussion>p.service-discussion-note{font-size:11px;line-height:1.6;margin-top:10px}
 .service-compact-page .service-discussion .service-other-link{margin-top:12px;min-height:28px}
 .service-compact-page .service-detail-art .service-art{height:clamp(140px,25svh,240px)}
}
@media(min-width:1024px) and (max-height:650px){
 .service-compact-page .shop-nav{padding-block:8px}
 .service-compact-page .shop-main{padding-top:8px;padding-bottom:10px}
 .service-compact-page .service-return{margin-bottom:4px}
 .service-compact-page .studio-detail{margin-top:4px}
 .service-compact-page .service-discussion{padding:16px 20px}
 .service-compact-page .service-discussion h2{font-size:22px;margin-bottom:8px}
 .service-compact-page .service-price-scope{padding:10px 12px;margin-top:8px;line-height:1.55}
 .service-compact-page .service-discussion .service-price{margin-bottom:10px}
 .service-compact-page .service-discussion>p.service-discussion-note{margin-top:8px;line-height:1.5}
 .service-compact-page .service-other-link{margin-top:6px}
 .service-compact-page .service-detail-art .service-art{height:140px}
}

/* One shared scale keeps brand, points, and avatar proportional on every screen. */
.shop-nav{--nav-brand-size:clamp(26px,calc(24px + .6vw),30px)}
.shop-nav>a>span{font-size:var(--nav-brand-size)}
.shop-account{gap:calc(var(--nav-brand-size)*.65)}
.shop-account .shop-balance{font-size:calc(var(--nav-brand-size)*.533333);line-height:1.4;gap:calc(var(--nav-brand-size)*.18);padding:0;min-height:44px;color:#315b4c;font-weight:500;font-variant-numeric:tabular-nums}
.shop-account .shop-balance strong{font-size:inherit;line-height:inherit;font-weight:700}
.shop-account .shop-avatar{width:calc(var(--nav-brand-size)*1.4);height:calc(var(--nav-brand-size)*1.4);flex-shrink:0;font-size:calc(var(--nav-brand-size)*.533333);line-height:1}

/* Give the balance more breathing room beside the avatar on larger screens. */
@media(min-width:601px){.shop-account{gap:clamp(32px,3vw,48px)}}
