/* PruidWorks Carousel — carousel.css */
.ofc-wrap *, .ofc-wrap *::before, .ofc-wrap *::after {
  box-sizing: border-box; margin: 0; padding: 0;
}
.ofc-wrap {
  --burg:  #6B1A1A; --gold: #C4943A; --cream: #FAF6F1;
  --esp:   #2C1A10; --mid:  #5C3A3A;
  font-family: 'DM Sans', sans-serif;
  background: #ffffff;
  padding: 80px 0 100px;
  overflow-x: clip; overflow-y: visible;
  position: relative;
}
.ofc-header { text-align: center; margin-bottom: 52px; padding: 0 20px; }
.ofc-eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 14px; font-weight: 500;
}
.ofc-eyebrow::before, .ofc-eyebrow::after { content:''; width:28px; height:1px; background:var(--gold); }
.ofc-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem,4vw,3rem); font-weight: 300; line-height: 1.15;
  color: var(--esp); margin-bottom: 10px;
}
.ofc-subtitle { font-size:.92rem; font-weight:300; color:var(--mid); max-width:440px; margin:0 auto; line-height:1.75; }
.ofc-dots { display:flex; align-items:center; justify-content:center; gap:18px; margin-bottom:28px; }
.ofc-dot {
  width:28px; height:28px; border-radius:50%;
  cursor:pointer; border:2.5px solid transparent;
  transition:transform .3s ease, border-color .3s ease;
  flex-shrink:0; background:none;
}
.ofc-dot:hover  { transform:scale(1.15); }
.ofc-dot.active { transform:scale(1.45); border-color:var(--gold); box-shadow:0 0 0 3px rgba(196,148,58,.2); }
.ofc-info { text-align:center; margin-bottom:44px; min-height:100px; padding:0 20px; position:relative; }
.ofc-info-inner { position:absolute; left:0; right:0; opacity:0; transform:translateY(10px); pointer-events:none; }
.ofc-info-inner.active-info { position:relative; opacity:1; transform:translateY(0); }
.ofc-info-name {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2rem,4.5vw,3.2rem); font-weight:300; font-style:italic;
  color:var(--esp); line-height:1.1; margin-bottom:6px;
}
.ofc-info-type { font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); font-weight:500; margin-bottom:8px; }
.ofc-info-desc { font-size:.88rem; font-weight:300; color:var(--mid); max-width:380px; margin:0 auto; line-height:1.7; }
.ofc-stage { position:relative; height:520px; display:flex; align-items:center; justify-content:center; overflow:visible; }
.ofc-track { position:relative; width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.ofc-card {
  position:absolute; width:min(800px,88vw); height:480px;
  border-radius:20px; overflow:hidden; display:flex; cursor:pointer;
  box-shadow:0 20px 60px rgba(44,26,16,.15);
  will-change:transform,opacity,filter; transform-origin:center center;
}
.ofc-card-img { width:50%; flex-shrink:0; overflow:hidden; }
.ofc-card-img img { width: 100%; height: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease; }
.ofc-card:hover .ofc-card-img img { transform:scale(1.04); }
.ofc-card-detail {
  flex:1; background:var(--cream); padding:32px 28px 28px;
  display:flex; flex-direction:column; justify-content:space-between; overflow-y:auto;
}
.ocd-top { display:flex; justify-content:space-between; align-items:flex-start; }
.ocd-label { font-size:.72rem; color:var(--mid); max-width:140px; line-height:1.4; }
.ocd-swatch { width:44px; height:44px; border-radius:50%; flex-shrink:0; }
.ocd-type { font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin:18px 0 4px; font-weight:500; }
.ocd-name { font-family:'Cormorant Garamond',serif; font-size:2rem; font-weight:300; font-style:italic; color:var(--esp); line-height:1.1; margin-bottom:10px; }
.ocd-desc { font-size:.82rem; font-weight:300; color:var(--mid); line-height:1.7; margin-bottom:16px; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.ocd-divider { height:1px; background:rgba(107,26,26,.1); margin:12px 0; }
.ocd-specs { display:flex; flex-direction:column; gap:5px; }
.ocd-spec-row { display:flex; justify-content:space-between; font-size:.78rem; padding:3px 0; border-bottom:1px solid rgba(107,26,26,.05); }
.ocd-spec-label { color:var(--mid); font-weight:300; }
.ocd-spec-val   { color:var(--esp); font-weight:500; }
.ocd-btn {
  display:inline-block; margin-top:16px; background:var(--burg); color:#fff;
  font-family:'DM Sans',sans-serif; font-size:.72rem; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase; text-decoration:none;
  padding:11px 22px; border-radius:2px; align-self:flex-start;
  transition:background .2s, transform .15s;
}
.ocd-btn:hover { background:#4A1010; transform:translateY(-1px); color:#fff; }
.ofc-arrows { display:flex; justify-content:center; gap:20px; margin-top:44px; }
.ofc-arrow {
  width:52px; height:52px; border-radius:50%; background:var(--burg);
  border:none; cursor:pointer; color:#fff; font-size:1.6rem; line-height:1;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, transform .15s, box-shadow .2s;
  box-shadow:0 6px 20px rgba(107,26,26,.25);
}
.ofc-arrow:hover { background:#4A1010; transform:scale(1.08); box-shadow:0 10px 28px rgba(107,26,26,.35); }
@media(max-width:768px) {
  .ofc-wrap { padding:60px 0 80px; }
  .ofc-card { flex-direction:column; height:auto; min-height:620px; width:min(360px,90vw); }
  .ofc-card-img { width:100%; height:auto; }
  .ofc-stage { height:680px; }
  .ofc-card-detail { padding:24px 20px 20px; }
  .ocd-name { font-size:1.6rem; }
}
@media(max-width:480px) {
  .ofc-dot { width:22px; height:22px; }
  .ofc-dot.active { transform:scale(1.35); }
}
