:root {
  --oned-navy: #071c35;
  --oned-navy-2: #0b2f57;
  --oned-red: #d71920;
  --oned-white: #ffffff;
  --oned-slate: #5b6775;
  --oned-light: #f3f6f8;
  --oned-line: #dfe6eb;
}

.oned-home, .oned-class-single, .oned-archive-wrap { color: var(--oned-navy); }
.oned-home *, .oned-class-single *, .oned-archive-wrap * { box-sizing: border-box; }
.oned-eyebrow { display:block; font-size:.78rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--oned-red); margin-bottom:.65rem; }
.oned-section-head { max-width:760px; margin:0 auto 2rem; text-align:center; }
.oned-section-head h2, .oned-archive-hero h1 { font-size:clamp(2rem,4vw,3.6rem); line-height:1; margin:.25rem 0 .8rem; letter-spacing:-.035em; }
.oned-section-head p { color:var(--oned-slate); font-size:1.05rem; }

.oned-hero { background:linear-gradient(120deg,var(--oned-navy),#0a2748); color:white; overflow:hidden; }
.oned-hero-inner { max-width:1280px; margin:0 auto; padding:5.75rem 1.5rem; display:grid; grid-template-columns:1.4fr .8fr; align-items:center; gap:3rem; }
.oned-hero h1 { color:white; font-size:clamp(2.8rem,6vw,5.8rem); line-height:.92; letter-spacing:-.05em; max-width:900px; margin:.4rem 0 1.25rem; }
.oned-hero p { font-size:1.15rem; line-height:1.6; max-width:720px; color:#d8e3ee; }
.oned-hero-actions, .oned-class-actions { display:flex; gap:.9rem; flex-wrap:wrap; margin-top:1.75rem; }
.oned-btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.85rem 1.25rem; text-decoration:none !important; font-weight:800; text-transform:uppercase; letter-spacing:.06em; font-size:.82rem; border:2px solid transparent; }
.oned-btn-primary { background:var(--oned-red); color:white !important; }
.oned-btn-primary:hover { background:#b8141a; }
.oned-btn-secondary { border-color:rgba(255,255,255,.65); color:white !important; background:transparent; }
.oned-hero-mark { opacity:.16; text-align:center; transform:skew(-8deg); user-select:none; }
.oned-hero-1d { display:block; font-size:11rem; line-height:.75; font-weight:950; letter-spacing:-.12em; }
.oned-hero-rigging { display:block; font-size:2.2rem; font-weight:900; letter-spacing:.22em; margin-top:1.5rem; }

.oned-proof { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--oned-line); background:white; }
.oned-proof > div { padding:1.4rem 1rem; text-align:center; border-right:1px solid var(--oned-line); }
.oned-proof > div:last-child { border-right:0; }
.oned-proof strong { display:block; font-size:.84rem; letter-spacing:.08em; }
.oned-proof span { display:block; margin-top:.25rem; color:var(--oned-slate); font-size:.88rem; }

.oned-class-shop { max-width:1280px; margin:0 auto; padding:5rem 1.5rem; }
.oned-filter { display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem; margin:0 auto 2rem; }
.oned-filter-btn { border:1px solid var(--oned-line); background:white; color:var(--oned-navy); padding:.62rem .9rem; font-weight:700; cursor:pointer; }
.oned-filter-btn.is-active, .oned-filter-btn:hover { background:var(--oned-navy); color:white; border-color:var(--oned-navy); }
.oned-class-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.2rem; }
.oned-class-card { border:1px solid var(--oned-line); background:white; overflow:hidden; transition:transform .18s ease, box-shadow .18s ease; }
.oned-class-card:hover { transform:translateY(-4px); box-shadow:0 14px 30px rgba(7,28,53,.12); }
.oned-card-media { display:block; aspect-ratio:4/3; background:#eaf0f5; overflow:hidden; }
.oned-card-media img { width:100%; height:100%; object-fit:cover; transition:transform .25s ease; }
.oned-class-card:hover .oned-card-media img { transform:scale(1.025); }
.oned-card-placeholder { width:100%; height:100%; min-height:240px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--oned-navy),var(--oned-navy-2)); color:white; font-size:4.5rem; font-weight:950; letter-spacing:-.08em; }
.oned-card-body { padding:1.2rem; }
.oned-card-body h3 { margin:0 0 .45rem; font-size:1.35rem; }
.oned-card-body h3 a { color:var(--oned-navy); text-decoration:none; }
.oned-card-body p { color:var(--oned-slate); min-height:2.6em; }
.oned-link { color:var(--oned-red); text-decoration:none !important; font-weight:800; }

.oned-process { background:var(--oned-light); padding:5rem 1.5rem; }
.oned-process-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.oned-process article { background:white; padding:2rem; border-top:4px solid var(--oned-red); }
.oned-process article > span { font-size:.78rem; font-weight:900; color:var(--oned-red); }
.oned-process h3 { margin:.6rem 0; font-size:1.35rem; }
.oned-process p { color:var(--oned-slate); margin-bottom:0; }

.oned-cta { max-width:1180px; margin:5rem auto; padding:2.4rem; background:var(--oned-navy); color:white; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.oned-cta h2 { color:white; margin:.2rem 0 .5rem; font-size:clamp(1.8rem,3vw,3rem); }
.oned-cta p { color:#d8e3ee; margin:0; }

.oned-class-hero { max-width:1280px; margin:0 auto; padding:4rem 1.5rem 2rem; display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.oned-class-hero h1 { font-size:clamp(2.6rem,5vw,5rem); line-height:.95; margin:.3rem 0 1rem; }
.oned-class-hero-copy > p { color:var(--oned-slate); font-size:1.15rem; }
.oned-class-hero-media img { width:100%; height:auto; display:block; }
.oned-class-hero .oned-btn-secondary { border-color:var(--oned-navy); color:var(--oned-navy) !important; }
.oned-class-content { max-width:980px; margin:0 auto; padding:2rem 1.5rem 4rem; }
.oned-richtext { font-size:1.05rem; line-height:1.75; }
.oned-build { background:var(--oned-light); padding:5rem 1.5rem; }
.oned-product-grid { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.oned-product-card { background:white; border:1px solid var(--oned-line); }
.oned-product-image { display:block; aspect-ratio:1/1; overflow:hidden; }
.oned-product-image img { width:100%; height:100%; object-fit:cover; }
.oned-product-body { padding:1rem 1.1rem 1.2rem; }
.oned-product-body h3 { margin:.2rem 0 .5rem; font-size:1.1rem; }
.oned-product-body h3 a { color:var(--oned-navy); text-decoration:none; }
.oned-price { font-weight:800; margin:.3rem 0 .7rem; }
.oned-archive-hero { background:var(--oned-navy); color:white; padding:4rem 1.5rem; text-align:center; }
.oned-archive-hero h1 { color:white; }
.oned-archive-hero p { color:#d8e3ee; }

@media (max-width:1000px) {
  .oned-class-grid { grid-template-columns:repeat(3,1fr); }
  .oned-hero-inner, .oned-class-hero { grid-template-columns:1fr; }
  .oned-hero-mark { display:none; }
  .oned-proof { grid-template-columns:repeat(2,1fr); }
  .oned-product-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:700px) {
  .oned-class-grid, .oned-process-grid, .oned-product-grid { grid-template-columns:1fr; }
  .oned-proof { grid-template-columns:1fr; }
  .oned-proof > div { border-right:0; border-bottom:1px solid var(--oned-line); }
  .oned-cta { margin:3rem 1rem; flex-direction:column; align-items:flex-start; }
  .oned-hero-inner { padding-top:4rem; padding-bottom:4rem; }
}

/* Complete package purchase panel */
.oned-complete-package { padding:2rem 1.25rem 4rem; }
.oned-package-panel { max-width:1180px; margin:0 auto; display:grid; grid-template-columns:minmax(260px, .85fr) minmax(0, 1.15fr); gap:2rem; align-items:center; padding:2rem; border:1px solid #d9dee7; background:#fff; box-shadow:0 16px 40px rgba(10,28,52,.08); }
.oned-package-image { display:block; background:#f4f6f9; overflow:hidden; }
.oned-package-image img { display:block; width:100%; height:auto; }
.oned-package-copy h2 { margin:.25rem 0 .5rem; }
.oned-package-price { font-size:1.35rem; font-weight:900; color:var(--oned-navy); margin:.25rem 0 .75rem; }
.oned-package-description { margin-bottom:1rem; }
.oned-package-actions { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:1.15rem; }
.oned-package-actions .added_to_cart { font-weight:800; text-transform:uppercase; font-size:.78rem; letter-spacing:.04em; }
@media (max-width: 760px) {
  .oned-package-panel { grid-template-columns:1fr; padding:1.25rem; }
  .oned-package-actions .oned-btn { width:100%; }
}


/* v0.3.0 Build Your Package */
.oned-builder-head { max-width:1180px; margin:0 auto 1.5rem; display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; text-align:left; }
.oned-builder-head > div:first-child { max-width:780px; }
.oned-builder-head h2 { margin:.25rem 0 .6rem; }
.oned-builder-head p { margin:0; color:var(--oned-slate); }
.oned-builder-quick-actions { white-space:nowrap; font-weight:800; color:var(--oned-slate); padding-bottom:.25rem; }
.oned-text-button { appearance:none; border:0; background:transparent; padding:.25rem; color:var(--oned-red); font:inherit; font-weight:800; cursor:pointer; }
.oned-text-button:hover { text-decoration:underline; }

.oned-builder { max-width:1180px; margin:0 auto; background:#fff; border:1px solid var(--oned-line); box-shadow:0 16px 40px rgba(10,28,52,.07); }
.oned-builder-table-wrap { width:100%; overflow-x:auto; }
.oned-builder-table { width:100%; border-collapse:collapse; min-width:940px; margin:0; }
.oned-builder-table th,
.oned-builder-table td { padding:1rem .8rem; border-bottom:1px solid #e3e8ee; vertical-align:middle; text-align:left; }
.oned-builder-table th { background:var(--oned-navy); color:#fff; font-size:.76rem; letter-spacing:.045em; text-transform:uppercase; font-weight:900; }
.oned-builder-table tbody tr:hover { background:#f9fbfd; }
.oned-builder-table tbody tr:last-child td { border-bottom:0; }
.oned-col-select { width:44px; text-align:center !important; }
.oned-col-price { width:105px; white-space:nowrap; font-weight:900; }
.oned-col-qty { width:78px; text-align:center !important; }
.oned-builder-check { width:20px; height:20px; accent-color:var(--oned-red); cursor:pointer; }
.oned-builder-qty { width:58px; min-height:38px; padding:.35rem .45rem; border:1px solid #cbd3dd; border-radius:0; text-align:center; }
.oned-line-name a { color:var(--oned-navy); font-weight:900; text-decoration:none; }
.oned-line-name small { display:block; margin-top:.2rem; color:var(--oned-slate); font-size:.76rem; line-height:1.25; }
.oned-line-name small a { color:var(--oned-red); font-weight:800; }
.oned-config-dot { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; background:#eef2f6; color:var(--oned-navy); font-weight:900; }

.oned-builder-summary { display:grid; grid-template-columns:140px 180px minmax(240px,auto); gap:1rem; align-items:center; padding:1.15rem 1.25rem; border-top:2px solid var(--oned-navy); background:#f6f8fb; position:sticky; bottom:0; z-index:4; }
.oned-builder-count-wrap,
.oned-builder-total-wrap { display:flex; flex-direction:column; gap:.15rem; }
.oned-summary-label { color:var(--oned-slate); font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; font-weight:800; }
.oned-builder-summary strong { color:var(--oned-navy); font-size:1.22rem; }
.oned-builder-add { justify-self:end; min-width:250px; }
.oned-builder-add[disabled] { opacity:.45; cursor:not-allowed; }
.oned-builder-add.is-loading { opacity:.7; pointer-events:none; }
.oned-builder-status { grid-column:1 / -1; min-height:0; font-size:.86rem; font-weight:700; }
.oned-builder-status:empty { display:none; }
.oned-builder-status.is-success { color:#176b31; }
.oned-builder-status.is-error { color:#a91f1f; }
.oned-builder-status a { color:var(--oned-red); font-weight:900; }
.oned-builder-note { max-width:1180px; margin:.9rem auto 0; color:var(--oned-slate); font-size:.84rem; }

@media (max-width:760px) {
  .oned-builder-head { align-items:flex-start; flex-direction:column; }
  .oned-builder-summary { grid-template-columns:1fr 1fr; position:static; }
  .oned-builder-add { grid-column:1 / -1; width:100%; justify-self:stretch; }
}

/* v0.4.0 per-line color selection */
.oned-col-color { min-width:130px; }
.oned-builder-color { min-width:118px; min-height:38px; padding:.35rem 2rem .35rem .55rem; border:1px solid #cbd3dd; background:#fff; color:var(--oned-navy); font:inherit; font-size:.9rem; }
.oned-builder-color:focus { outline:2px solid rgba(202,31,38,.22); outline-offset:1px; border-color:var(--oned-red); }
