/* ============================================================
   OPUS LANDING PAGE — Scoped Design System
   기존 오드리의원 폰트/헤더/푸터/버튼 시스템은 그대로 상속하고,
   .opus-page 하위에서만 적용되는 프리미엄 런칭 전용 비주얼 레이어.
   ============================================================ */
.opus-page{
  --op-black:#101210;
  --op-deep:#1A1E19;
  --op-green:#74886A;
  --op-lgreen:#A9B69B;
  --op-ivory:#F3F2E9;
  --op-white:#FFFFFF;
  --op-gray:#E7E8E4;
  background:var(--op-white);
  color:var(--op-black);
  overflow-x:hidden;
}
.opus-page *{ box-sizing:border-box; }
.opus-page .op-wrap{ width:min(92vw,1320px); margin:0 auto; }
.opus-page .op-copy{ max-width:720px; }
.opus-page section{ position:relative; }

/* ---------- Motion ---------- */
.opus-page [data-op-reveal]{ opacity:0; transform:translateY(36px); transition:opacity 1.1s cubic-bezier(.16,.84,.2,1), transform 1.1s cubic-bezier(.16,.84,.2,1); }
.opus-page [data-op-reveal].is-visible{ opacity:1; transform:translateY(0); }
.opus-page [data-op-reveal="scale"]{ transform:scale(1.06); }
.opus-page [data-op-reveal="scale"].is-visible{ transform:scale(1); }
@media (prefers-reduced-motion: reduce){
  .opus-page [data-op-reveal]{ opacity:1; transform:none; transition:none; }
}

/* ---------- Eyebrow / Headline system ---------- */
.opus-page .op-eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-size:0.78rem; letter-spacing:0.32em; font-weight:700; text-transform:uppercase;
  color:var(--op-green); margin-bottom:20px;
}
.opus-page .op-eyebrow::before{ content:''; width:26px; height:1px; background:var(--op-green); }
.opus-page .op-eyebrow.light{ color:var(--op-lgreen); }
.opus-page h1,.opus-page h2,.opus-page h3,.opus-page h4{ font-family:var(--font-display); letter-spacing:-0.02em; margin:0; word-break:keep-all; line-height:1.3; }
.opus-page .op-h1{ font-size:clamp(2.6rem,6vw,5.6rem); line-height:1.05; font-weight:800; }
.opus-page .op-h2{ font-size:clamp(2rem,4vw,3.6rem); line-height:1.14; font-weight:800; }
.opus-page .op-h3{ font-size:clamp(1.3rem,1.8vw,1.7rem); line-height:1.3; font-weight:800; }
.opus-page p{ margin:0 0 1.1em; line-height:1.8; word-break:keep-all; }
.opus-page p:last-child{ margin-bottom:0; }
.opus-page .op-lede{ font-size:clamp(1.05rem,1.4vw,1.3rem); line-height:1.7; color:var(--op-black); }

/* ---------- Buttons (OPUS 전용 스킨, 사이트 버튼 상속 구조 유지) ---------- */
.opus-page .op-btn{
  display:inline-flex; align-items:center; gap:10px; padding:17px 38px;
  font-size:0.98rem; font-weight:700; letter-spacing:0.01em; border:1px solid var(--op-black);
  background:transparent; color:var(--op-black); position:relative; overflow:hidden; transition:color .3s;
}
.opus-page .op-btn::before{ content:''; position:absolute; inset:0; background:var(--op-black); transform:translateX(-101%); transition:transform .45s cubic-bezier(.16,.84,.2,1); z-index:-1; }
.opus-page .op-btn:hover{ color:var(--op-white); }
.opus-page .op-btn:hover::before{ transform:translateX(0); }
.opus-page .op-btn.solid{ background:var(--op-green); border-color:var(--op-green); color:var(--op-white); }
.opus-page .op-btn.solid::before{ background:var(--op-deep); }
.opus-page .op-btn.on-dark{ border-color:rgba(255,255,255,0.5); color:var(--op-white); }
.opus-page .op-btn.on-dark::before{ background:var(--op-white); }
.opus-page .op-btn.on-dark:hover{ color:var(--op-black); }
.opus-page .op-actions{ display:flex; gap:16px; flex-wrap:wrap; }

/* ---------- Placeholder system (분홍 박스 대신, OPUS 톤의 완성형 자리) ---------- */
.opus-page .op-ph{
  position:relative; width:100%; overflow:hidden;
  background:
    radial-gradient(120% 140% at 20% 15%, rgba(116,136,106,0.28), transparent 60%),
    linear-gradient(150deg, var(--op-deep) 0%, var(--op-black) 100%);
  display:flex; align-items:center; justify-content:center; text-align:center;
}
.opus-page .op-ph::before{
  content:''; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.055) 1px, transparent 1px);
  background-size:44px 44px;
}
.opus-page .op-ph-label{
  position:relative; z-index:1; color:var(--op-lgreen); font-size:0.72rem; letter-spacing:0.22em;
  text-transform:uppercase; font-weight:700; padding:10px 18px; border:1px solid rgba(169,182,155,0.4);
}
.opus-page .op-ph.light{ background:linear-gradient(150deg, var(--op-gray) 0%, var(--op-ivory) 100%); }
.opus-page .op-ph.light::before{ background-image:linear-gradient(rgba(16,18,16,0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(16,18,16,0.05) 1px, transparent 1px); }
.opus-page .op-ph.light .op-ph-label{ color:var(--op-green); border-color:rgba(116,136,106,0.35); }
.opus-page .op-ph.r-21-9{ aspect-ratio:21/9; }
.opus-page .op-ph.r-16-9{ aspect-ratio:16/9; }
.opus-page .op-ph.r-4-5{ aspect-ratio:4/5; }
.opus-page .op-ph.r-1-1{ aspect-ratio:1/1; }
.opus-page .op-ph.r-3-4{ aspect-ratio:3/4; }
.opus-page .op-ph.full{ position:absolute; inset:0; aspect-ratio:auto; }
.opus-page .op-ph img, .opus-page .op-ph video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; }

/* ---------- Video wrapper ---------- */
.opus-page .op-video{ position:relative; width:100%; height:100%; }
.opus-page .op-play{
  position:absolute; z-index:3; left:50%; top:50%; transform:translate(-50%,-50%);
  width:78px; height:78px; border-radius:50%; background:rgba(255,255,255,0.14);
  border:1px solid rgba(255,255,255,0.6); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .3s, background .3s;
}
.opus-page .op-play:hover{ transform:translate(-50%,-50%) scale(1.08); background:rgba(255,255,255,0.24); }
.opus-page .op-play svg{ width:22px; height:22px; fill:#fff; margin-left:3px; }
.opus-page .op-video.is-playing .op-play{ opacity:0; pointer-events:none; }
.opus-page .op-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(16,18,16,0.05) 0%, rgba(16,18,16,0.55) 100%); z-index:1; pointer-events:none; }
.opus-page .op-overlay.strong{ background:linear-gradient(180deg, rgba(16,18,16,0.25) 0%, rgba(16,18,16,0.78) 100%); }

/* ---------- SECTION 01. HERO ---------- */
.opus-page .op-hero{
  min-height:100vh; min-height:100dvh; background:var(--op-black); color:var(--op-white);
  display:flex; align-items:flex-end; overflow:hidden;
}
.opus-page .op-hero-inner{ position:relative; z-index:2; padding-bottom:clamp(56px,8vw,110px); }
.opus-page .op-hero .op-brand{ font-size:0.82rem; letter-spacing:0.35em; color:var(--op-lgreen); font-weight:700; margin-bottom:26px; }
.opus-page .op-hero .op-logo{ font-size:clamp(3.4rem,9vw,7.5rem); font-weight:800; letter-spacing:0.02em; line-height:1; margin-bottom:18px; color:var(--op-white); }
.opus-page .op-hero .op-tagline{ font-size:clamp(1.3rem,2.4vw,2rem); font-weight:700; max-width:16ch; margin-bottom:26px; line-height:1.3; }
.opus-page .op-hero .op-desc{ max-width:640px; color:rgba(255,255,255,0.78); font-size:clamp(0.98rem,1.1vw,1.08rem); margin-bottom:36px; }
.opus-page .op-scroll-cue{ position:absolute; left:50%; bottom:28px; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:10px; color:rgba(255,255,255,0.55); font-size:0.7rem; letter-spacing:0.28em; }
.opus-page .op-scroll-cue .line{ width:1px; height:34px; background:linear-gradient(180deg, rgba(255,255,255,0.8), transparent); animation:opScroll 2.2s ease-in-out infinite; }
@keyframes opScroll{ 0%{ transform:scaleY(0); transform-origin:top; } 50%{ transform:scaleY(1); transform-origin:top; } 51%{ transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }
@media (prefers-reduced-motion: reduce){ .opus-page .op-scroll-cue .line{ animation:none; } }

/* ---------- SECTION 02. MANIFESTO ---------- */
.opus-page .op-manifesto{ background:var(--op-ivory); padding:clamp(90px,12vw,180px) 0; text-align:center; }
.opus-page .op-manifesto .op-wrap{ max-width:900px; }
.opus-page .op-manifesto .op-h2{ margin-bottom:34px; }
.opus-page .op-manifesto p{ font-size:clamp(1.02rem,1.3vw,1.18rem); color:#3a3f38; max-width:60ch; margin-left:auto; margin-right:auto; }
.opus-page .op-manifesto p + p{ margin-top:1.3em; }

/* ---------- SECTION 03. WHAT IS OPUS (sticky) ---------- */
.opus-page .op-sticky-section{ background:var(--op-white); padding:clamp(80px,10vw,140px) 0; }
.opus-page .op-sticky-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(40px,6vw,90px); align-items:start; }
.opus-page .op-sticky-media{ position:sticky; top:110px; }
.opus-page .op-stat-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--op-gray); margin-top:64px; border:1px solid var(--op-gray); }
.opus-page .op-stat{ background:var(--op-white); padding:36px 26px; text-align:left; }
.opus-page .op-stat .num{ font-size:clamp(1.8rem,2.6vw,2.6rem); font-weight:800; color:var(--op-green); line-height:1; margin-bottom:10px; }
.opus-page .op-stat .cap{ font-size:0.86rem; color:#5b5f57; font-weight:600; }
.opus-page .op-stat .sub{ font-size:0.8rem; color:#8b8f86; margin-top:4px; }
@media (max-width:900px){
  .opus-page .op-sticky-grid{ grid-template-columns:1fr; }
  .opus-page .op-sticky-media{ position:relative; top:0; }
  .opus-page .op-stat-row{ grid-template-columns:1fr; }
}

/* ---------- SECTION 04 / 06. DETOX & FOCUS (color-block alternating) ---------- */
.opus-page .op-program-block{ padding:clamp(90px,11vw,150px) 0; }
.opus-page .op-program-block.detox{ background:linear-gradient(180deg, var(--op-ivory) 0%, #ECEEE3 100%); }
.opus-page .op-program-block.focus{ background:var(--op-black); color:var(--op-white); }
.opus-page .op-program-block.focus .op-eyebrow{ color:var(--op-lgreen); }
.opus-page .op-program-block.focus p{ color:rgba(255,255,255,0.78); }
.opus-page .op-program-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,90px); align-items:center; }
.opus-page .op-program-badge{ display:inline-block; font-size:clamp(1.6rem,3vw,2.4rem); font-weight:800; letter-spacing:0.01em; margin-bottom:26px; }
.opus-page .op-program-badge .thin{ font-weight:400; opacity:.55; margin-right:8px; }
.opus-page .op-feature-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; margin-top:52px; background:rgba(16,18,16,0.1); }
.opus-page .op-program-block.focus .op-feature-grid{ background:rgba(255,255,255,0.12); }
.opus-page .op-feature{ background:var(--op-ivory); padding:30px 26px; }
.opus-page .op-program-block.focus .op-feature{ background:var(--op-black); }
.opus-page .op-feature .fnum{ font-size:0.78rem; color:var(--op-green); font-weight:700; letter-spacing:0.1em; margin-bottom:10px; }
.opus-page .op-feature h4{ font-size:1.02rem; margin-bottom:8px; }
.opus-page .op-feature p{ font-size:0.9rem; color:#5b5f57; }
.opus-page .op-program-block.focus .op-feature p{ color:rgba(255,255,255,0.65); }
@media (max-width:900px){
  .opus-page .op-program-grid{ grid-template-columns:1fr; }
  .opus-page .op-feature-grid{ grid-template-columns:1fr; }
}

/* Recommended checklist (OPUS 톤) */
.opus-page .op-check{ list-style:none; margin:28px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 28px; }
.opus-page .op-check li{ position:relative; padding-left:26px; font-size:0.96rem; line-height:1.6; }
.opus-page .op-check li::before{ content:''; position:absolute; left:0; top:8px; width:8px; height:8px; border-radius:50%; background:var(--op-green); }
.opus-page .op-program-block.focus .op-check li::before{ background:var(--op-lgreen); }
@media (max-width:700px){ .opus-page .op-check{ grid-template-columns:1fr; } }

/* ---------- SECTION 05. BIOTENSEGRITY ---------- */
.opus-page .op-biotens{ background:var(--op-deep); color:var(--op-white); padding:clamp(90px,12vw,160px) 0; text-align:center; }
.opus-page .op-biotens .op-wrap{ max-width:820px; }
.opus-page .op-biotens p{ color:rgba(255,255,255,0.72); }
.opus-page .op-biotens-visual{ margin:56px auto 0; max-width:760px; }

/* ---------- SECTION 07. DETOX OR FOCUS (compare) ---------- */
.opus-page .op-compare{ display:grid; grid-template-columns:1fr 1fr; }
.opus-page .op-compare-col{ padding:clamp(64px,7vw,100px) clamp(28px,5vw,72px); }
.opus-page .op-compare-col.d{ background:var(--op-ivory); }
.opus-page .op-compare-col.f{ background:var(--op-black); color:var(--op-white); }
.opus-page .op-compare-col.f .op-eyebrow{ color:var(--op-lgreen); }
.opus-page .op-compare-col h3{ font-size:clamp(1.5rem,2.2vw,2rem); margin-bottom:24px; }
.opus-page .op-compare-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.opus-page .op-compare-col li{ font-size:0.96rem; padding-left:20px; position:relative; }
.opus-page .op-compare-col li::before{ content:'—'; position:absolute; left:0; color:var(--op-green); }
.opus-page .op-compare-col.f li::before{ color:var(--op-lgreen); }
.opus-page .op-compare-note{ background:var(--op-white); text-align:center; padding:clamp(56px,7vw,90px) 24px; }
.opus-page .op-compare-note p{ max-width:56ch; margin:0 auto; }
@media (max-width:900px){ .opus-page .op-compare{ grid-template-columns:1fr; } }

/* ---------- SECTION 08. CAMPAIGN (fullscreen model) ---------- */
.opus-page .op-campaign{ position:relative; min-height:100vh; min-height:100dvh; background:var(--op-black); color:var(--op-white); overflow:hidden; display:flex; align-items:center; }
.opus-page .op-campaign-text{ position:relative; z-index:2; width:min(92vw,1320px); margin:0 auto; }
.opus-page .op-campaign-text.align-left{ text-align:left; }
.opus-page .op-campaign-text.align-right{ text-align:right; margin-left:auto; }
.opus-page .op-campaign .op-h1{ font-size:clamp(2.2rem,5vw,4.2rem); }

/* ---------- 다크 섹션 헤딩 색상 강제 흰색 ---------- */
/* focus 섹션 */
.opus-page .op-program-block.focus h2,
.opus-page .op-program-block.focus h3,
.opus-page .op-program-block.focus h4,
.opus-page .op-program-block.focus .op-program-badge{ color:var(--op-white); }

/* biotensegrity 섹션 */
.opus-page .op-biotens h2,
.opus-page .op-biotens h3{ color:var(--op-white); }

/* compare 우측(검정) 컬럼 */
.opus-page .op-compare-col.f h3,
.opus-page .op-compare-col.f h4{ color:var(--op-white); }

/* 기술 스크롤 스토리 */
.opus-page .op-tech-step h3{ color:var(--op-white); }
.opus-page .op-tech-step .tnum{ color:var(--op-lgreen); }

/* DR. INSIGHT 섹션 */
.opus-page .op-insight h2,
.opus-page .op-insight h3,
.opus-page .op-insight h4{ color:var(--op-white); }

/* 최종 CTA */
.opus-page .op-final-cta h2,
.opus-page .op-final-cta h3{ color:var(--op-white); }

/* signature 섹션 (아이보리 배경이지만 어두운 번호) */
.opus-page .op-sig-row .sn{ color:var(--op-green); }
.opus-page .op-techstory{ background:var(--op-black); color:var(--op-white); padding:clamp(80px,10vw,140px) 0; }
.opus-page .op-techstory-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,90px); align-items:start; }
.opus-page .op-techstory-media{ position:sticky; top:110px; }
.opus-page .op-tech-step{ padding:56px 0; border-top:1px solid rgba(255,255,255,0.14); }
.opus-page .op-tech-step:first-child{ border-top:none; padding-top:0; }
.opus-page .op-tech-step .tnum{ font-size:0.78rem; color:var(--op-lgreen); letter-spacing:0.2em; font-weight:700; margin-bottom:14px; }
.opus-page .op-tech-step h3{ font-size:clamp(1.6rem,2.4vw,2.2rem); margin-bottom:14px; letter-spacing:0.01em; }
.opus-page .op-tech-step p{ color:rgba(255,255,255,0.68); max-width:46ch; }
@media (max-width:900px){ .opus-page .op-techstory-grid{ grid-template-columns:1fr; } .opus-page .op-techstory-media{ position:relative; top:0; } }

/* ---------- SECTION 10. SIGNATURE (differentiators) ---------- */
.opus-page .op-signature{ background:var(--op-ivory); padding:clamp(90px,11vw,150px) 0; }
.opus-page .op-signature-list{ margin-top:56px; display:flex; flex-direction:column; }
.opus-page .op-sig-row{ display:grid; grid-template-columns:90px 1fr 1.4fr; gap:28px; align-items:start; padding:34px 0; border-top:1px solid rgba(16,18,16,0.14); }
.opus-page .op-sig-row:last-child{ border-bottom:1px solid rgba(16,18,16,0.14); }
.opus-page .op-sig-row .sn{ font-size:1.6rem; font-weight:800; color:var(--op-green); }
.opus-page .op-sig-row h4{ font-size:1.1rem; }
.opus-page .op-sig-row p{ font-size:0.95rem; color:#5b5f57; }
@media (max-width:760px){ .opus-page .op-sig-row{ grid-template-columns:44px 1fr; } .opus-page .op-sig-row p{ grid-column:2; } }

/* ---------- SECTION 11. PROGRAM CARDS ---------- */
.opus-page .op-programs{ background:var(--op-white); padding:clamp(90px,11vw,150px) 0; }
.opus-page .op-program-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--op-gray); margin-top:56px; border:1px solid var(--op-gray); }
.opus-page .op-pcard{ background:var(--op-white); padding:40px 30px; min-height:280px; display:flex; flex-direction:column; }
.opus-page .op-pcard .ptag{ font-size:0.74rem; letter-spacing:0.14em; color:var(--op-green); font-weight:700; margin-bottom:16px; }
.opus-page .op-pcard h4{ font-size:1.18rem; margin-bottom:14px; line-height:1.35; }
.opus-page .op-pcard p{ font-size:0.92rem; color:#5b5f57; flex:1; }
@media (max-width:900px){ .opus-page .op-program-cards{ grid-template-columns:1fr; } }

/* ---------- SECTION 12. GALLERY ---------- */
.opus-page .op-gallery-section{ background:var(--op-ivory); padding:clamp(90px,11vw,150px) 0; }
.opus-page .op-filter-bar{ display:flex; flex-wrap:wrap; gap:10px; margin:36px 0 40px; }
.opus-page .op-filter-bar button{ font-family:inherit; padding:10px 22px; border:1px solid rgba(16,18,16,0.24); background:transparent; font-size:0.86rem; font-weight:600; cursor:pointer; transition:.25s; }
.opus-page .op-filter-bar button.is-active, .opus-page .op-filter-bar button:hover{ background:var(--op-black); border-color:var(--op-black); color:var(--op-white); }
.opus-page .op-gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.opus-page .op-gallery-item .op-ph{ margin-bottom:14px; }
.opus-page .op-gallery-caption{ font-size:0.84rem; color:#5b5f57; }
.opus-page .op-gallery-note{ margin-top:40px; font-size:0.8rem; color:#8b8f86; text-align:center; }
@media (max-width:900px){ .opus-page .op-gallery-grid{ grid-template-columns:1fr; } }

/* ---------- SECTION 13. DOCTOR INSIGHT ---------- */
.opus-page .op-insight{ background:var(--op-black); color:var(--op-white); padding:clamp(80px,10vw,140px) 0; }
.opus-page .op-insight-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(40px,6vw,80px); align-items:center; }
.opus-page .op-insight p{ color:rgba(255,255,255,0.72); }
.opus-page .op-insight .op-actions{ margin-top:32px; }
@media (max-width:900px){ .opus-page .op-insight-grid{ grid-template-columns:1fr; } }

/* ---------- SECTION 14. TIMELINE ---------- */
.opus-page .op-timeline-section{ background:var(--op-white); padding:clamp(90px,11vw,150px) 0; }
.opus-page .op-timeline{ margin-top:56px; display:grid; grid-template-columns:repeat(6,1fr); gap:0; }
.opus-page .op-tl-step{ padding:26px 18px 0; border-top:3px solid var(--op-gray); position:relative; }
.opus-page .op-tl-step.is-active{ border-top-color:var(--op-green); }
.opus-page .op-tl-step .tlnum{ font-size:0.76rem; color:var(--op-green); font-weight:700; letter-spacing:0.1em; margin-bottom:10px; }
.opus-page .op-tl-step h4{ font-size:0.98rem; margin-bottom:8px; line-height:1.35; }
.opus-page .op-tl-step p{ font-size:0.82rem; color:#5b5f57; }
@media (max-width:1000px){ .opus-page .op-timeline{ grid-template-columns:repeat(2,1fr); gap:32px 20px; } }
@media (max-width:560px){ .opus-page .op-timeline{ grid-template-columns:1fr; } }

/* ---------- SECTION 15. PRE/POST CARE ---------- */
.opus-page .op-care{ background:var(--op-ivory); padding:clamp(80px,10vw,130px) 0; }
.opus-page .op-care-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px); margin-top:48px; }
.opus-page .op-care-card{ background:var(--op-white); padding:clamp(30px,4vw,44px); border:1px solid rgba(16,18,16,0.1); }
.opus-page .op-care-card h4{ font-size:1.1rem; margin-bottom:22px; display:flex; align-items:center; gap:10px; }
.opus-page .op-care-card h4::before{ content:''; width:8px; height:8px; border-radius:50%; background:var(--op-green); }
.opus-page .op-care-card ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.opus-page .op-care-card li{ font-size:0.92rem; color:#4a4f47; padding-left:18px; position:relative; line-height:1.6; }
.opus-page .op-care-card li::before{ content:'·'; position:absolute; left:0; color:var(--op-green); font-weight:800; }
@media (max-width:760px){ .opus-page .op-care-grid{ grid-template-columns:1fr; } }

/* ---------- SECTION 16. FAQ ---------- */
.opus-page .op-faq-section{ background:var(--op-white); padding:clamp(90px,11vw,150px) 0; }
.opus-page .op-faq-item{ border-bottom:1px solid rgba(16,18,16,0.14); }
.opus-page .op-faq-item:first-of-type{ border-top:1px solid rgba(16,18,16,0.14); }
.opus-page .op-faq-q{ width:100%; text-align:left; background:none; border:none; font-family:inherit; padding:26px 4px; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:1.02rem; font-weight:700; color:var(--op-black); cursor:pointer; min-height:64px; }
.opus-page .op-faq-q .plus{ font-size:1.5rem; font-weight:300; color:var(--op-green); transition:transform .3s; flex:none; }
.opus-page .op-faq-item.is-open .op-faq-q .plus{ transform:rotate(45deg); }
.opus-page .op-faq-a{ max-height:0; overflow:hidden; transition:max-height .4s cubic-bezier(.16,.84,.2,1); }
.opus-page .op-faq-item.is-open .op-faq-a{ max-height:400px; }
.opus-page .op-faq-a-inner{ padding:0 4px 26px; color:#5b5f57; font-size:0.95rem; max-width:70ch; line-height:1.75; }

/* ---------- SECTION 17. FINAL CTA ---------- */
.opus-page .op-final-cta{ position:relative; background:var(--op-black); color:var(--op-white); min-height:72vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.opus-page .op-final-cta .op-wrap{ position:relative; z-index:2; max-width:760px; }
.opus-page .op-final-cta p{ color:rgba(255,255,255,0.75); }
.opus-page .op-final-cta .op-actions{ justify-content:center; margin-top:36px; }

/* ---------- Mobile sticky consult bar (OPUS 페이지 전용, 기존 floating-cta와 별개 위치) ---------- */
.opus-mobile-bar{ display:none; }
@media (max-width:760px){
  .opus-mobile-bar{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:280;
    background:var(--op-black,#101210); border-top:1px solid rgba(255,255,255,0.14);
  }
  .opus-mobile-bar a{ flex:1; text-align:center; padding:16px 6px; color:#fff; font-size:0.82rem; font-weight:700; border-right:1px solid rgba(255,255,255,0.14); }
  .opus-mobile-bar a:last-child{ border-right:none; }
  .opus-mobile-bar a.solid{ background:var(--op-green,#74886A); }
  body.opus-has-bar .floating-cta{ display:none; }
  body.opus-has-bar .site-footer{ padding-bottom:64px; }
}

/* ---------- Mobile: image → text order & spacing tighten ---------- */
@media (max-width:900px){
  .opus-page .op-sig-row{ padding:26px 0; }
  .opus-page section{ padding-top:clamp(64px,12vw,90px); padding-bottom:clamp(64px,12vw,90px); }
  .opus-page .op-hero,.opus-page .op-campaign,.opus-page .op-final-cta{ padding-top:0; padding-bottom:0; }
}
@media (max-width:600px){
  .opus-page .op-h1{ font-size:clamp(2.1rem,9vw,2.8rem); }
  .opus-page .op-h2{ font-size:clamp(1.7rem,7vw,2.2rem); }
  .opus-page .op-h3{ font-size:1.2rem; }
}
