.purchase-page{max-width:1160px;padding-top:28px;padding-bottom:110px;min-height:620px}
.purchase-page [hidden],.shop-preview-badge[hidden]{display:none!important}
.purchase-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:34px;font-size:12px;line-height:1.6;color:#58616b}
.product-topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-bottom:34px}
.product-topbar .purchase-breadcrumb{margin:0;min-width:0}
.product-back{display:inline-flex;align-items:center;justify-content:center;gap:0;width:44px;height:44px;min-height:44px;flex:none;padding:0;border:0;border-radius:8px;background:transparent;color:#58616b;font-size:13px;font-weight:500;line-height:1.5;white-space:nowrap}
.product-back:hover{color:var(--deep)}
.product-back:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.product-back>span{font-size:22px;line-height:1}
.purchase-breadcrumb a:hover{color:var(--deep)}
.purchase-breadcrumb>span:last-child{color:#58616b}
.purchase-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}
.purchase-heading h1{font-size:34px;font-weight:700;letter-spacing:-.05em;line-height:1.35}
.purchase-heading p{font-size:12px;color:var(--muted);margin-top:9px}
.purchase-steps{display:flex;align-items:center;gap:23px;list-style:none;margin:0 0 30px;padding:0;font-size:12px;line-height:1.5;color:#58616b}
.purchase-steps li{display:flex;align-items:center;gap:8px;white-space:nowrap}
.purchase-steps li+li:before{content:'›';font-size:17px;font-weight:400;color:#c0c4cb;margin-right:13px}
.purchase-steps .current,.purchase-steps [aria-current="step"]{color:var(--deep);font-weight:650}
.purchase-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.purchase-layout>div{min-width:0}
.product-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.03fr);gap:64px;align-items:start}
.product-visual{position:relative;display:grid;place-items:center;min-height:390px;padding:54px;background:#f8f9fa;border:1px solid #f0f1f3;border-radius:12px}
.product-visual img{width:100%;max-width:220px;aspect-ratio:1;object-fit:contain}
.product-visual>.purchase-sample-badge{position:absolute;bottom:15px;left:50%;transform:translateX(-50%)}
.product-layout+.purchase-section{margin-top:35px}
.product-info{min-width:0}
.product-info>.product-brand,.product-info>.shop-brand{font-size:12px;font-weight:500;color:#58616b;margin:0 0 9px}
.product-info h1{font-size:30px;font-weight:700;line-height:1.35;letter-spacing:-.05em;word-break:keep-all;overflow-wrap:anywhere}
.product-info>.product-summary,.product-info>.shop-summary,.product-description{font-size:13px;color:var(--muted);line-height:1.75;margin:13px 0 0;white-space:normal}
.product-price-block{margin:27px 0 25px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.purchase-price-row{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:29px;font-size:13px;color:#58616b}
.purchase-price-row strong{color:#252b33;font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.purchase-price-row.is-discount{margin-top:8px;color:var(--deep)}
.purchase-price-row.is-discount strong{font-size:28px;font-weight:700;line-height:1.35;color:var(--accent);letter-spacing:-.045em}
.purchase-price-row>.purchase-button{flex:0 1 auto;min-height:38px;padding:8px 12px;font-size:12px}
.purchase-price-row strong small{font-size:13px;font-weight:500;margin-left:3px}
.product-fields{display:grid;gap:16px}
.product-reservation{border:0;padding:0;margin:0;min-width:0}
.product-reservation legend{padding:0;margin-bottom:8px;font-size:12px;font-weight:500;color:#58616b;line-height:1.6}
.purchase-field{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:12px;color:#58616b;font-weight:500;line-height:1.6}
.purchase-field label{display:block;color:#58616b}
.purchase-field input,.purchase-field select,.purchase-field textarea{width:100%;min-width:0;min-height:44px;border:1px solid #dfe2e7;border-radius:7px;padding:11px 12px;background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:400;line-height:1.5;letter-spacing:-.025em}
.purchase-field select{padding-right:28px}
.purchase-field textarea{min-height:88px;resize:vertical}
.purchase-field input::placeholder,.purchase-field textarea::placeholder{color:#66717d}
.purchase-field input:focus-visible,.purchase-field select:focus-visible,.purchase-field textarea:focus-visible{outline:2px solid #b4233628;outline-offset:1px;border-color:var(--accent)}
.purchase-field small{font-size:11px;color:#58616b;font-weight:400}
.purchase-quantity{display:inline-flex;align-items:center;justify-content:space-between;gap:0;width:122px;min-height:40px;border:1px solid #dfe2e7;border-radius:7px;overflow:hidden;vertical-align:middle;background:#fff}
.purchase-quantity button{display:grid;place-items:center;width:38px;min-width:38px;min-height:40px;padding:4px;color:#58616b;font-size:19px;font-weight:400;line-height:1}
.purchase-quantity button:hover{background:var(--soft);color:var(--deep)}
.purchase-quantity button:disabled{color:#c6cbd1;cursor:default;background:#fff}
.purchase-quantity button:focus-visible{outline-offset:-3px}
.purchase-quantity output{min-width:28px;padding:0 3px;text-align:center;font-size:13px;font-weight:550;color:var(--ink);font-variant-numeric:tabular-nums}
.product-total{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:25px;padding-top:22px;border-top:1px solid var(--line);font-size:13px;color:#58616b}
.product-total strong{font-size:28px;font-weight:700;letter-spacing:-.045em;color:var(--ink);line-height:1.4;font-variant-numeric:tabular-nums}
.product-total strong small{font-size:13px;font-weight:500;letter-spacing:-.02em}
.purchase-actions{display:flex;align-items:stretch;gap:10px;margin-top:23px}
.purchase-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;flex:1 1 0;padding:12px 18px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;font-size:14px;font-weight:600;text-align:center;line-height:1.5;word-break:keep-all;cursor:pointer}
.purchase-button:hover{background:#94192a;border-color:#94192a}
.purchase-button.is-secondary{border-color:#dcdfe5;background:#fff;color:#58616b}
.purchase-button.is-secondary:hover{border-color:#d5bfc4;background:#fffafb;color:var(--deep)}
.purchase-button:disabled{cursor:default;background:#e6e8ec;border-color:#e6e8ec;color:#a0a6ae}
.purchase-note{font-size:11px;font-weight:400;line-height:1.8;color:#58616b;word-break:keep-all;margin-top:14px}
.purchase-details{display:grid;grid-template-columns:110px minmax(0,1fr);margin:34px 0 0;padding:0;border-top:1px solid var(--line);font-size:12px;line-height:1.8}
.purchase-details>div{grid-column:1/-1;display:grid;grid-template-columns:110px minmax(0,1fr)}
.purchase-section>.purchase-details{margin-top:0}
.purchase-details dt,.purchase-details dd{margin:0;padding:14px 0;border-bottom:1px solid var(--line)}
.purchase-details dt{font-weight:500;color:#58616b}
.purchase-details dd{color:#252b33;word-break:keep-all}
.purchase-section{padding:25px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:0}
.purchase-section+.purchase-section{margin-top:20px}
.purchase-section>h2{margin-bottom:23px;font-size:17px;font-weight:650;line-height:1.5}
.purchase-items{list-style:none;margin:0;padding:0}
.purchase-cart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:23px;padding-bottom:18px;border-bottom:1px solid var(--line);font-size:11px;color:#58616b;line-height:1.5}
.purchase-cart-toolbar label{display:flex;align-items:center;gap:8px;color:#58616b;cursor:pointer}
.purchase-cart-toolbar a:hover{color:var(--deep)}
.purchase-cart-toolbar input,.purchase-select input{width:16px;height:16px;flex:none;margin:0;accent-color:var(--accent);cursor:pointer}
.purchase-cart-toolbar input:focus-visible,.purchase-select input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.purchase-select{display:flex;align-items:center;justify-content:center;min-height:32px;cursor:pointer}
.purchase-item{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:17px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}
.purchase-item:has(.purchase-select){grid-template-columns:20px 64px minmax(0,1fr) auto}
.purchase-item:first-child{padding-top:0}
.purchase-item:last-child{padding-bottom:0;border-bottom:0}
.purchase-item>img{width:64px;height:64px;object-fit:contain;border-radius:7px;background:#f8f9fa}
.purchase-item-copy{min-width:0}
.purchase-item-copy h2,.purchase-item-copy h3{font-size:15px;font-weight:650;line-height:1.45;word-break:keep-all;overflow-wrap:anywhere}
.purchase-item-copy p{font-size:11px;color:#58616b;margin-top:5px;line-height:1.7;word-break:keep-all}
.purchase-item-copy .purchase-item-price{display:block;font-size:15px;font-weight:600;color:#3d444d;margin-top:9px;font-variant-numeric:tabular-nums}
.purchase-item-price small{font-size:11px;font-weight:400}
.purchase-item-controls{display:flex;align-items:flex-end;flex-direction:column;gap:8px}
.purchase-item-controls .purchase-quantity{width:108px;min-height:34px}
.purchase-item-controls .purchase-quantity button{width:33px;min-width:33px;min-height:34px;font-size:17px}
.purchase-item-controls .purchase-quantity output{font-size:12px}
.purchase-remove{padding:4px 0;font-size:11px;color:#58616b;text-decoration:underline;text-underline-offset:3px}
.purchase-remove:hover{color:var(--deep)}
.purchase-summary{position:sticky;top:92px;padding:26px;border:1px solid var(--line);border-radius:12px;background:#fff}
.purchase-summary h2{font-size:17px;font-weight:650;line-height:1.5;margin-bottom:22px}
.purchase-summary dl{display:flex;flex-direction:column;gap:13px;margin:0;font-size:12px;line-height:1.6}
.purchase-summary dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}
.purchase-summary dt{color:#58616b;font-weight:400}
.purchase-summary dd{margin:0;text-align:right;color:#252b33;font-weight:500;font-variant-numeric:tabular-nums}
.purchase-summary dd.discount{color:var(--deep)}
.purchase-summary .summary-total{border-top:1px solid var(--line);margin-top:7px;padding-top:20px;color:var(--ink);font-weight:600}
.purchase-summary dd.summary-total{font-size:22px;line-height:1.2;color:var(--accent);font-weight:700;letter-spacing:-.04em}
.purchase-summary .summary-total dt{color:var(--ink);font-weight:600}
.purchase-summary .summary-total dd{font-size:22px;line-height:1.2;color:var(--accent);font-weight:700;letter-spacing:-.04em}
.summary-total small{font-size:12px;font-weight:450}
.purchase-summary>.summary-total{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:21px;padding-top:20px;font-size:13px}
.purchase-summary>.summary-total strong{font-size:24px;line-height:1.3;color:var(--accent);font-weight:700;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.purchase-summary .purchase-actions{flex-direction:column}
.purchase-summary>.purchase-button{display:flex;width:100%;margin-top:23px}
.purchase-back{display:block;text-align:center;margin-top:14px;color:#58616b;font-size:11px;text-decoration:underline;text-underline-offset:3px}
.purchase-back:hover{color:var(--deep)}
.purchase-empty,.purchase-login-gate{padding:72px 24px 84px;text-align:center;border:1px solid var(--line);border-radius:12px;background:#fff}
.purchase-empty h2,.purchase-login-gate h2{font-size:23px;font-weight:650;line-height:1.5;word-break:keep-all}
.purchase-empty p,.purchase-login-gate p{font-size:13px;line-height:1.8;color:var(--muted);margin-top:12px;word-break:keep-all}
.purchase-empty .purchase-actions,.purchase-login-gate .purchase-actions{justify-content:center;margin-top:25px}
.purchase-empty .purchase-button,.purchase-login-gate .purchase-button{flex:0 1 auto;min-width:170px;margin-top:25px}
.purchase-empty .purchase-actions .purchase-button,.purchase-login-gate .purchase-actions .purchase-button{margin-top:0}
.purchase-status{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #eddae0;background:#fff8f9;border-radius:8px;padding:13px 15px;margin-top:16px;font-size:12px;line-height:1.7;color:#7c1c2a}
.purchase-status:empty{display:none}
.purchase-status a{font-weight:600;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
.purchase-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 18px}
.purchase-form-grid .full{grid-column:1/-1}
.checkout-fields{margin-top:22px}
.checkout-section-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.checkout-section-top h3{font-size:14px;font-weight:600}
.checkout-sample-fill{font-size:11px;color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.checkout-visit-note{font-size:13px;color:var(--muted);line-height:1.8}
.checkout-error{font-size:12px;color:var(--accent);line-height:1.7;margin-top:14px}
.shop-draft-tools{display:flex;justify-content:flex-end;gap:20px;flex-wrap:wrap}
.purchase-methods{display:flex;align-items:stretch;flex-wrap:wrap;gap:10px}
.purchase-methods label{display:flex;align-items:center;gap:8px;min-height:44px;flex:1 1 120px;padding:11px 13px;border:1px solid #dfe2e7;border-radius:7px;color:#58616b;font-size:13px;cursor:pointer;line-height:1.6}
.purchase-methods label:has(input:checked){border-color:#c89ba4;background:#fff9fa;color:var(--deep)}
.purchase-methods input{width:15px;height:15px;flex:none;margin:0;accent-color:var(--accent)}
.purchase-methods input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.purchase-complete{max-width:620px;margin:25px auto 0;text-align:center;padding:25px 0 20px}
.complete-mark{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 24px;border-radius:50%;background:var(--pale);color:var(--accent);font-size:28px;font-weight:550;line-height:1}
.complete-mark svg{width:28px;height:28px}
.purchase-complete h1,.purchase-complete h2{font-size:29px;font-weight:700;line-height:1.4;letter-spacing:-.045em;word-break:keep-all}
.purchase-complete>p{color:var(--muted);font-size:13px;line-height:1.9;margin:13px 0 0;word-break:keep-all}
.complete-details{display:flex;flex-direction:column;gap:15px;padding:25px;border:1px solid var(--line);border-radius:12px;text-align:left;margin:28px 0 0;font-size:13px;line-height:1.7}
.complete-details>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:25px;align-items:start}
.complete-details dt{color:#58616b;font-weight:400}
.complete-details dd{margin:0;text-align:right;font-weight:550;color:#252b33;word-break:keep-all}
.purchase-complete .purchase-actions{justify-content:center}
.purchase-complete .purchase-button{flex:0 1 200px}
.purchase-complete>.purchase-button{margin-top:26px;min-width:200px}
.purchase-complete>.purchase-sample-badge{margin-bottom:12px}
.purchase-sample-badge{display:inline-flex;align-items:center;border:1px solid #e9e0e3;border-radius:5px;padding:4px 8px;background:#fffafb;color:#a4767e;font-size:10px;font-weight:500;line-height:1.5;white-space:nowrap}
.shop-price-row{align-items:center}
.shop-buy-price{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-height:44px;padding:4px 0;border-radius:5px;text-align:right;color:var(--accent)}
.shop-buy-price strong{font-size:23px;font-weight:700;line-height:1.35;letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap}
.shop-buy-price strong small{display:inline;font-size:12px;font-weight:450;margin-left:3px}
.shop-buy-price>small,.shop-buy-price>span{font-size:11px;font-weight:500;line-height:1.5;color:var(--deep)}
.shop-buy-price:hover>small,.shop-buy-price:hover>span{text-decoration:underline;text-underline-offset:3px}
.shop-preview-badge{font-size:11px;color:#58616b;font-weight:400;line-height:1.6}
@media(max-width:1050px){
  .purchase-layout{grid-template-columns:minmax(0,1fr) 300px;gap:20px}
  .purchase-section,.purchase-summary{padding:22px}
  .product-layout{gap:38px}
  .product-visual{min-height:340px;padding:38px}
  .purchase-item{gap:13px}
  .purchase-item-controls{grid-column:2/-1;flex-direction:row;align-items:center;justify-content:space-between}
  .purchase-item:has(.purchase-select) .purchase-item-controls{grid-column:3/-1}
}
@media(max-width:760px){
  body[data-page="checkout"]{padding-bottom:env(safe-area-inset-bottom,0px)}
  body[data-page="checkout"] .floating-quote{position:static;display:flex;width:max-content;margin:0 16px 20px auto}
  .purchase-page{padding-top:21px;padding-bottom:100px;min-height:520px}
  .purchase-breadcrumb{font-size:11px;gap:8px;margin-bottom:25px}
  .product-topbar{margin-bottom:25px}
  .purchase-heading{align-items:flex-start;gap:16px;margin-bottom:24px}
  .purchase-heading h1{font-size:28px}
  .purchase-heading p{font-size:11px;margin-top:8px}
  .purchase-steps{gap:14px;margin-bottom:23px;font-size:11px}
  .purchase-steps li+li:before{margin-right:6px;font-size:15px}
  .purchase-layout,.product-layout{grid-template-columns:minmax(0,1fr);gap:25px}
  .product-visual{min-height:250px;padding:30px}
  .product-visual img{max-width:185px}
  .product-info h1{font-size:27px}
  .product-info>.product-brand,.product-info>.shop-brand{font-size:11px;margin-bottom:8px}
  .product-info>.product-summary,.product-info>.shop-summary,.product-description{font-size:12px;margin-top:10px}
  .product-price-block{margin:22px 0;padding:17px 0}
  .purchase-price-row.is-discount strong{font-size:27px}
  .purchase-field input,.purchase-field select,.purchase-field textarea{font-size:14px}
  .product-total{margin-top:22px;padding-top:20px}
  .product-total strong{font-size:26px}
  .purchase-actions{margin-top:21px}
  .purchase-button{min-height:47px;padding:12px 14px;font-size:13px}
  .purchase-details{grid-template-columns:90px minmax(0,1fr);margin-top:27px;font-size:11px}
  .purchase-details>div{grid-template-columns:90px minmax(0,1fr)}
  .purchase-section,.purchase-summary{padding:22px 20px;border-radius:11px}
  .purchase-section>h2,.purchase-summary h2{font-size:16px;margin-bottom:20px}
  .purchase-summary{position:static}
  .purchase-item{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:20px 0}
  .purchase-item:has(.purchase-select){grid-template-columns:18px 58px minmax(0,1fr)}
  .purchase-item>img{width:58px;height:58px}
  .purchase-item-copy h2,.purchase-item-copy h3{font-size:14px}
  .purchase-item-copy .purchase-item-price{font-size:14px;margin-top:7px}
  .purchase-form-grid{gap:17px 14px}
  .purchase-status{font-size:11px;padding:11px 12px}
  .purchase-empty,.purchase-login-gate{padding:54px 20px 62px}
  .purchase-empty h2,.purchase-login-gate h2{font-size:21px}
  .purchase-empty p,.purchase-login-gate p{font-size:12px}
  .purchase-complete{margin-top:12px;padding-top:18px}
  .complete-mark{width:56px;height:56px;margin-bottom:21px;font-size:25px}
  .purchase-complete h1,.purchase-complete h2{font-size:26px}
  .purchase-complete>p{font-size:12px}
  .complete-details{padding:21px;gap:13px 15px;font-size:12px}
  .complete-details>div{grid-template-columns:105px minmax(0,1fr);gap:15px}
}
@media(max-width:420px){
  .purchase-page{padding-top:19px}
  .purchase-heading{flex-wrap:wrap;gap:10px}
  .purchase-heading h1{font-size:26px}
  .purchase-steps{gap:8px;font-size:10px}
  .purchase-steps li{gap:5px}
  .purchase-steps li+li:before{margin-right:3px}
  .product-visual{min-height:220px;padding:25px}
  .product-visual img{max-width:170px}
  .product-info h1{font-size:25px}
  .purchase-section,.purchase-summary{padding:20px 16px}
  .purchase-form-grid{grid-template-columns:minmax(0,1fr)}
  .purchase-item{grid-template-columns:50px minmax(0,1fr);gap:11px}
  .purchase-item:has(.purchase-select){grid-template-columns:17px 50px minmax(0,1fr)}
  .purchase-item>img{width:50px;height:50px}
  .purchase-item-copy h2,.purchase-item-copy h3{font-size:13px}
  .purchase-cart-toolbar{flex-wrap:wrap;font-size:10px;gap:10px}
  .purchase-methods label{font-size:12px}
  .purchase-status{align-items:flex-start;flex-direction:column;gap:5px}
  .purchase-complete h1,.purchase-complete h2{font-size:23px}
  .complete-details{padding:19px 16px;font-size:11px;gap:13px 10px}
  .complete-details>div{grid-template-columns:93px minmax(0,1fr);gap:10px}
  .purchase-complete .purchase-actions{flex-direction:column}
  .purchase-complete .purchase-button{flex-basis:auto}
}
