/* Owned calculator surface; existing engine classes are scoped to this page. */
.lo-cutting { padding-top:24px; padding-bottom:48px; }
.lo-cutting-breadcrumb { display:flex; gap:10px; flex-wrap:wrap; font-size:13px; color:var(--lo-color-muted); margin-bottom:24px; }
.lo-cutting-heading { margin-bottom:24px; }
.lo-cutting-heading h1 { font-size:clamp(28px,3vw,40px); line-height:1.12; margin:0 0 10px; letter-spacing:-.03em; }
.lo-cutting-heading > p:last-child { margin:0; color:var(--lo-color-muted); }
.lo-cutting-material { display:flex; align-items:center; gap:18px; background:#fff; border:1px solid var(--lo-color-line); border-radius:8px; padding:16px 20px; margin-bottom:24px; }
.lo-cutting-photo { width:88px; height:76px; object-fit:contain; flex:0 0 88px; border-radius:4px; }
.lo-cutting-material h2 { font-size:20px; margin:0 0 5px; line-height:1.25; }
.lo-cutting-material p { margin:0; font-size:14px; }
.lo-cutting-kicker { font-size:10px!important; font-weight:700; letter-spacing:.1em; color:var(--lo-color-muted); margin-bottom:5px!important; }
.lo-cutting-attributes { display:block; color:var(--lo-color-muted); font-size:12px; margin-top:4px; }
.lo-cutting-back { display:flex; align-items:center; gap:8px; margin-left:auto; flex-shrink:0; font-size:14px; font-weight:600; min-height:44px; }
.lo-cutting .oc-main-cont { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:24px; align-items:start; }
.lo-cutting .oc-sub-cont,.lo-cutting .oc-detail-sub-cont { width:auto!important; float:none!important; min-width:0; border:1px solid var(--lo-color-line); border-radius:8px; padding:24px; background:#fff; }
.lo-cutting .oc-detail-sub-cont { border-top:4px solid var(--d1-green); }
.lo-cutting .lo-cutting-section-title { font-size:21px; margin:0 0 8px; }
.lo-cutting-intro { color:var(--lo-color-muted); font-size:14px; margin:0 0 20px; }
.lo-cutting .oc-prod-details,.lo-cutting .oc-total-amount,.lo-cutting .oc-grand-total,.lo-cutting .ocloader { display:none!important; }
.lo-cutting .card { box-shadow:none; margin:0; padding:0; border:0; background:none; }
.lo-cutting .oc-amt-content { padding:0!important; }
.lo-cutting .oc-main,.lo-cutting .oc-content,.lo-cutting .oc-tbl-item { margin:0; padding:0; box-shadow:none; background:none; overflow:visible; }
.lo-cutting .oc-tbl-item { border:0; }
.lo-cutting #ocform { margin:0; }
.lo-cutting #ocform .oc-service-table { display:block; width:100%; margin:0; border:0; box-shadow:none; background:transparent; }
.lo-cutting #ocform .oc-service-table > colgroup,.lo-cutting #ocform .oc-service-table > thead { display:none; }
.lo-cutting #ocform .oc-service-table > tbody,.lo-cutting #ocform .oc-service-table > tfoot,.lo-cutting #ocform .oc-service-table > tfoot > tr,.lo-cutting #ocform .oc-service-table > tfoot > tr > td { display:block; width:100%; padding:0; border:0; background:none; }
.lo-cutting #ocform .oc-service-table tr.oc-item-content { display:grid; grid-template-columns:1fr 1fr .7fr auto; gap:12px; padding:16px 0; border:0; border-bottom:1px solid var(--lo-color-line); box-shadow:none; margin:0; align-items:end; background:none; }
.lo-cutting #ocform .oc-service-table tr.oc-item-content:has(.oc-rotate-cell) { grid-template-columns:1fr 1fr .65fr 90px 44px; }
.lo-cutting #ocform .oc-service-table tr.oc-item-content td { display:block!important; padding:0!important; width:auto!important; min-width:0!important; border:0; background:none; text-align:left!important; }
.lo-cutting #ocform .oc-service-table tr.oc-item-content td > label { display:block; margin:0; width:100%; padding:0; }
.lo-cutting #ocform .oc-service-table .control-label { display:block!important; position:static!important; transform:none!important; font-size:13px!important; color:var(--lo-color-ink)!important; line-height:1.4; font-weight:600; margin:0 0 7px; }
.lo-cutting #ocform .oc-service-table input[type=number],.lo-cutting #ocform .oc-service-table select { width:100%!important; height:48px!important; min-height:48px; padding:10px!important; font-size:16px!important; border:1px solid var(--lo-field-border)!important; border-radius:4px; color:var(--lo-color-ink); background:var(--lo-color-surface); box-shadow:none; margin:0!important; }
.lo-cutting #ocform .oc-service-table .product-remove a { display:flex!important; align-items:center; justify-content:center; width:44px!important; height:48px!important; font-size:25px; color:var(--lo-color-muted)!important; background:transparent!important; margin:0; }
.lo-cutting #ocform .oc-service-table .product-remove a:hover { color:var(--lo-color-error)!important; background:var(--lo-color-surface)!important; }
.lo-cutting-fiber-label { display:block; font-size:12px; font-weight:600; margin-bottom:7px; }
.lo-cutting .oc-rotate-cell > div { min-height:48px; justify-content:center; }
.lo-cutting #ocform button.button { min-height:48px; border-radius:4px; font-size:16px; font-weight:600; padding:12px 16px; line-height:1.4; box-shadow:none; text-transform:none; background:var(--lo-color-accent)!important; color:white!important; border:1px solid var(--lo-color-accent); }
.lo-cutting #ocform button.button:hover { background:var(--lo-color-accent-dark)!important; }
.lo-cutting #ocform button.button:disabled { opacity:.6; cursor:wait; }
.lo-cutting #ocform .add-item-input { background:white!important; color:var(--d1-green)!important; border:1px solid var(--lo-field-border); width:100%; margin:16px 0 0; }
.lo-cutting #ocform .add-item-input:hover { background:var(--lo-color-surface)!important; }
.lo-cutting #ocform input:focus-visible,.lo-cutting #ocform button:focus-visible,.lo-cutting #ocform a:focus-visible,.lo-cutting summary:focus-visible { outline:3px solid var(--lo-field-focus); outline-offset:3px; }
.lo-cutting-options { margin:24px 0; padding:20px 0 0; border-top:1px solid var(--lo-color-line); }
.lo-cutting-options h3 { font-size:16px; margin:0 0 12px; }
.lo-cutting-option-help { color:var(--lo-color-muted); font-size:13px; margin:0 0 16px; line-height:1.6; }
.lo-cutting .oc-calculate { margin:0!important; }
.lo-cutting .ocbtnservice p.oc-error-msg { margin:0 0 16px; text-align:left; font-size:14px; border-radius:4px; }
.lo-cutting-status { color:var(--lo-color-muted); font-size:15px; line-height:1.7; padding:16px; background:var(--lo-color-surface); border-radius:4px; margin:20px 0 0; }
.lo-cutting [data-state=stale] .lo-cutting-status,.lo-cutting [data-state=error] .lo-cutting-status { border-left:3px solid var(--lo-color-accent); }
.lo-cutting [data-state=ready] .lo-cutting-status { font-size:13px; padding:0; background:none; margin:12px 0; color:var(--lo-color-success); }
.lo-cutting-totals { margin-top:20px; }
.lo-cutting-total-line { display:flex; justify-content:space-between; gap:12px; font-size:14px; margin-bottom:12px; }
.lo-cutting-total-line strong { white-space:nowrap; }
.lo-cutting-total-final { border-top:1px solid var(--lo-color-line); padding-top:16px; display:grid; gap:6px; margin-top:16px; }
.lo-cutting-total-final > span { font-size:14px; font-weight:600; }
.lo-cutting-total-final strong { color:var(--lo-color-accent); font-size:28px; }
.lo-cutting-tax,.lo-cutting-note { color:var(--lo-color-muted); font-size:12px; margin:8px 0; }
.lo-cutting-details { margin:20px 0; border-top:1px solid var(--lo-color-line); font-size:13px; }
.lo-cutting-details summary { padding:14px 0; font-weight:600; cursor:pointer; }
.lo-cutting-details table,.lo-cutting-details td,.lo-cutting-details th { border:0; padding:0; overflow-wrap:anywhere; font-size:13px!important; }
.lo-cutting-details thead { display:none; }
.lo-cutting .oc-add-to-cart { display:flex; flex-direction:column; gap:12px; margin-top:20px; }
.lo-cutting .oc-btn-addtocart { order:-1; }
.lo-cutting .oc-pdf a { width:100%; font-size:13px; background:transparent; color:var(--d1-green); border:1px solid var(--lo-color-line); box-shadow:none; text-align:center; padding:12px; }
.lo-cutting-help { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:24px 0 0; font-size:14px; }
.lo-cutting-help > div,.lo-cutting-help a { display:flex; align-items:center; gap:12px; }
.lo-cutting-help p { margin:0; }
.lo-cutting-empty { background:white; border:1px solid var(--lo-color-line); padding:28px; border-radius:8px; }
.lo-cutting-page .lo-d1-bottom { display:none!important; }
.lo-cutting-page { padding-bottom:0!important; }
.lo-cutting .oc-item-edge-row td { max-width:100%; }
.lo-cutting .oc-item-edge-row,.lo-cutting .oc-item-edge-row > td { display:block; width:100%; padding:0!important; }
.lo-cutting .oc-edge-layout { min-width:0; }
@media(max-width:1023px) {
 .lo-cutting .oc-main-cont { grid-template-columns:1fr; }
}
@media(max-width:600px) {
 .lo-cutting { padding-top:16px; padding-bottom:32px; }
 .lo-cutting-breadcrumb { margin-bottom:20px; font-size:12px; }
 .lo-cutting-heading h1 { font-size:29px; }
 .lo-cutting-heading > p:last-child { font-size:15px; }
 .lo-cutting-material { gap:12px; padding:14px; flex-wrap:wrap; margin-bottom:20px; }
 .lo-cutting-photo { width:64px; height:64px; flex-basis:64px; }
 .lo-cutting-material > div { flex:1; min-width:0; }
 .lo-cutting-material h2 { font-size:16px; }
 .lo-cutting-material p { font-size:12px; }
 .lo-cutting-back { width:100%; margin:0; min-height:32px; font-size:13px; }
 .lo-cutting .oc-sub-cont,.lo-cutting .oc-detail-sub-cont { padding:16px; }
 .lo-cutting .lo-cutting-section-title { font-size:20px; }
 .lo-cutting #ocform .oc-service-table tr.oc-item-content,.lo-cutting #ocform .oc-service-table tr.oc-item-content:has(.oc-rotate-cell) { grid-template-columns:1fr 1fr 1fr; gap:12px 8px; background:var(--lo-color-surface); padding:12px; border:1px solid var(--lo-color-line); border-radius:4px; margin-bottom:12px; }
 .lo-cutting #ocform .oc-service-table tr.oc-item-content td.product-remove { grid-column:3; justify-self:end; }
 .lo-cutting #ocform .oc-service-table tr.oc-item-content td.oc-rotate-cell { grid-column:1 / 3; display:flex!important; align-items:center; gap:8px; }
 .lo-cutting-fiber-label { margin:0; }
 .lo-cutting #ocform .oc-service-table .control-label { font-size:12px!important; white-space:nowrap; }
 .lo-cutting #ocform .oc-service-table input[type=number] { padding:8px!important; background:white; }
 .lo-cutting-help { align-items:flex-start; flex-direction:column; font-size:13px; }
 .lo-cutting-help > a { min-height:44px; }
 .lo-cutting .oc-edge-selector { padding:12px; }
 .lo-cutting .oc-edge-layout { display:block; }
 .lo-cutting .oc-edge-icons-row { flex-wrap:wrap; }
}
/* Neutralize legacy calculator presentation, without changing its controls. */
.lo-cutting #ocform .oc-service-table tr.oc-item-content { filter:none!important; transform:none!important; transition:none!important; will-change:auto; }
.lo-cutting #ocform .oc-service-table tr.oc-item-content td { min-height:0!important; border:0!important; background:transparent!important; box-shadow:none!important; }
.lo-cutting #ocform button.add-item-input { background:#fff!important; color:var(--d1-green)!important; border:1px solid var(--lo-field-border); }
.lo-cutting #ocform button.add-item-input:hover { background:var(--lo-color-surface)!important; }
.lo-cutting #ocform .oc-edge-selector { box-shadow:none!important; transform:none!important; border-color:var(--lo-color-line)!important; border-radius:4px!important; }
.lo-cutting #ocform .oc-edge-card { min-width:44px!important; min-height:44px!important; box-shadow:none!important; }
.lo-cutting #ocform .oc-edge-thickness-title { font-size:12px!important; }
.lo-cutting #ocform .oc-edge-layout { display:flex!important; flex-wrap:wrap; gap:16px!important; }
.lo-cutting #ocform .oc-edge-icons-row { display:flex; flex-wrap:wrap; gap:6px!important; }
@media(min-width:1024px) {
 .lo-cutting #ocform .oc-edge-layout { display:grid!important; grid-template-columns:minmax(0,1fr) minmax(160px,220px)!important; align-items:center!important; }
 .lo-cutting #ocform .oc-edge-thickness-label { padding:0!important; border:0; }
}
.lo-cutting #ocform .oc-switch { margin:0; }
.lo-cutting #ocform .oc-rotate-cell .oc-switch { margin:10px 0; }
.lo-cutting #ocform .oc-switch:focus-within { outline:3px solid var(--lo-field-focus); outline-offset:4px; border-radius:20px; }
.lo-cutting #ocform [hidden] { display:none!important; }
.lo-cutting #ocform .oc-pdf a.button { display:block; min-height:44px; border:1px solid var(--lo-field-border)!important; background:#fff!important; color:var(--d1-green)!important; box-shadow:none!important; }
.lo-cutting #ocform .oc-edge-title-icon { display:none; }
.lo-cutting #ocform .oc-switch { min-width:44px!important; min-height:44px!important; }
.lo-cutting #ocform .oc-switch .oc-slider { top:8px; bottom:8px; }
.lo-cutting #ocform .oc-switch-sm .oc-slider { top:11px; bottom:11px; }
.lo-cutting #ocform .oc-switch-sm input:checked + .oc-slider:before { transform:translateX(22px)!important; }

.lo-cutting-guide-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 8px; font-size: 14px; font-weight: 600; }

/* Service landing. The validated calculator remains a separate presentation. */
.lo-cut-entry-hero { display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center; margin:12px 0 56px; }
.lo-cut-entry-copy h1 { font-size:clamp(32px,3.8vw,52px); line-height:1.1; letter-spacing:-.035em; margin:0 0 20px; }
.lo-cut-entry-copy .lo-d1-eyebrow,.lo-cut-entry-section-heading .lo-d1-eyebrow,.lo-cut-entry-prepare .lo-d1-eyebrow,.lo-cut-entry-faq .lo-d1-eyebrow { font-size:11px; font-weight:700; letter-spacing:.13em; margin:0 0 14px; color:var(--lo-color-muted); }
.lo-cut-entry-lead { font-size:17px; line-height:1.75; margin:0 0 24px; max-width:58ch; }
.lo-cut-entry-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px 22px; }
.lo-cutting .lo-d1-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:48px; padding:12px 20px; border-radius:5px; background:var(--lo-color-accent); color:#fff; font-weight:700; line-height:1.4; text-decoration:none; }
.lo-cutting .lo-d1-button:hover { background:var(--lo-color-accent-dark); }
.lo-cutting a:focus-visible,.lo-cut-entry-faq summary:focus-visible { outline:3px solid var(--lo-field-focus); outline-offset:4px; }
.lo-cut-entry-guide { display:inline-flex; gap:10px; align-items:center; min-height:44px; font-size:14px; font-weight:600; text-underline-offset:4px; }
.lo-cut-entry-note { font-size:13px; color:var(--lo-color-muted); line-height:1.65; margin:18px 0 0; max-width:60ch; }
.lo-cut-entry-art { position:relative; overflow:hidden; border-radius:12px; background:#e9e2d6; }
.lo-cut-entry-art img { display:block; width:100%; height:auto; aspect-ratio:1.1; object-fit:cover; }
.lo-cut-entry-art span { position:absolute; left:20px; bottom:20px; padding:10px 16px; border-radius:5px; background:var(--d1-green); color:white; font-size:13px; font-weight:600; }
.lo-cut-entry-section-heading h2,.lo-cut-entry-prepare h2,.lo-cut-entry-faq h2,.lo-cut-entry-bottom h2 { font-size:clamp(23px,2.2vw,30px); line-height:1.2; letter-spacing:-.025em; margin:0 0 16px; }
.lo-cut-entry-steps { margin-bottom:48px; }
.lo-cut-entry-steps ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; margin:24px 0 0; list-style:none; gap:20px; }
.lo-cut-entry-steps li { background:#fff; border:1px solid var(--lo-color-line); padding:24px; border-radius:8px; }
.lo-cut-entry-number { display:inline-flex; color:var(--lo-color-accent); background:#fff2e8; border-radius:50%; width:40px; height:40px; align-items:center; justify-content:center; font-size:14px; font-weight:700; margin-bottom:18px; }
.lo-cut-entry-steps h3 { font-size:18px; margin:0 0 10px; line-height:1.35; }
.lo-cut-entry-steps p,.lo-cut-entry-prepare p,.lo-cut-entry-faq p { font-size:15px; line-height:1.75; margin:0; color:var(--lo-color-muted); }
.lo-cut-entry-prepare { display:grid; grid-template-columns:1fr 1.2fr; gap:56px; padding:32px; background:#eaf0eb; border-radius:10px; margin-bottom:48px; }
.lo-cut-entry-prepare > div > p { max-width:42ch; }
.lo-cut-entry-prepare .lo-cut-entry-guide { margin-top:16px; }
.lo-cut-entry-prepare ul { margin:0; padding:0; list-style:none; display:grid; gap:22px; }
.lo-cut-entry-prepare li { display:flex; gap:16px; align-items:flex-start; }
.lo-cut-entry-prepare li > svg { flex:0 0 24px; margin-top:3px; }
.lo-cut-entry-prepare strong { display:block; font-size:16px; margin-bottom:4px; }
.lo-cut-entry-faq { display:grid; grid-template-columns:1fr 1.4fr; gap:56px; margin-bottom:48px; }
.lo-cut-entry-faq > div > p { max-width:38ch; }
.lo-cut-entry-faq details { border-bottom:1px solid var(--lo-color-line); }
.lo-cut-entry-faq summary { min-height:56px; padding:18px 30px 18px 0; font-weight:600; font-size:16px; cursor:pointer; position:relative; list-style:none; }
.lo-cut-entry-faq summary::-webkit-details-marker { display:none; }
.lo-cut-entry-faq summary::after { content:'+'; position:absolute; right:4px; top:16px; font-size:24px; line-height:1; font-weight:400; }
.lo-cut-entry-faq details[open] summary::after { content:'−'; }
.lo-cut-entry-faq details p { padding:0 24px 20px 0; }
.lo-cut-entry-bottom { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px 32px; border:1px solid var(--lo-color-line); border-radius:8px; background:#fff; }
.lo-cut-entry-bottom h2 { font-size:23px; margin-bottom:8px; }
.lo-cut-entry-bottom p { margin:0; font-size:14px; color:var(--lo-color-muted); }
.lo-cut-entry-bottom .lo-d1-button { flex-shrink:0; }
@media(max-width:1023px) {
 .lo-cut-entry-hero { gap:24px; }
 .lo-cut-entry-steps li { padding:20px; }
 .lo-cut-entry-prepare,.lo-cut-entry-faq { gap:32px; }
}
@media(max-width:767px) {
 .lo-cut-entry-hero { grid-template-columns:1fr; gap:24px; margin-bottom:36px; }
 .lo-cut-entry-copy h1 { font-size:34px; }
 .lo-cut-entry-lead { font-size:16px; margin-bottom:20px; }
 .lo-cut-entry-actions { align-items:stretch; flex-direction:column; gap:6px; }
 .lo-cut-entry-guide { justify-content:flex-start; }
 .lo-cut-entry-art img { aspect-ratio:2.2; }
 .lo-cut-entry-art span { left:12px; bottom:12px; padding:8px 12px; font-size:12px; }
 .lo-cut-entry-steps ol { grid-template-columns:1fr; gap:12px; margin-top:20px; }
 .lo-cut-entry-steps li { position:relative; padding:20px 18px 20px 70px; }
 .lo-cut-entry-number { position:absolute; left:16px; top:20px; width:36px; height:36px; font-size:12px; }
 .lo-cut-entry-steps h3 { font-size:17px; }
 .lo-cut-entry-steps,.lo-cut-entry-prepare,.lo-cut-entry-faq { margin-bottom:32px; }
 .lo-cut-entry-prepare,.lo-cut-entry-faq { grid-template-columns:1fr; gap:24px; }
 .lo-cut-entry-prepare { padding:24px 20px; }
 .lo-cut-entry-bottom { flex-direction:column; align-items:stretch; padding:24px 20px; gap:20px; }
}
