/* =========================================================
   Optometry Care — GEOFlow 眼视光行业主题
   theme id: geoflow-optometry-20260805
   主色：深青绿 #0F6E56 ｜ 仅作用于 .op-* 命名空间，不污染其他主题
   ========================================================= */

:root {
    --op-primary: #0F6E56;
    --op-primary-dark: #0A5241;
    --op-primary-light: #1B8C6E;
    --op-primary-soft: #E8F3EF;
    --op-primary-softer: #F3F9F7;
    --op-accent: #E0A33C;
    --op-accent-soft: #FDF4E4;

    --op-ink: #142520;
    --op-ink-2: #2C4139;
    --op-muted: #5F7770;
    --op-muted-2: #839993;
    --op-line: #E2ECE8;
    --op-line-soft: #EEF4F2;

    --op-bg: #F5F8F7;
    --op-card: #FFFFFF;

    --op-radius: 16px;
    --op-radius-lg: 22px;
    --op-radius-sm: 10px;

    --op-shadow-sm: 0 1px 2px rgba(16, 42, 34, .04), 0 4px 12px rgba(16, 42, 34, .04);
    --op-shadow: 0 2px 6px rgba(16, 42, 34, .05), 0 14px 36px rgba(16, 42, 34, .07);
    --op-shadow-lg: 0 20px 60px rgba(10, 60, 46, .16);

    --op-ease: cubic-bezier(.16, 1, .3, 1);
}

/* ---------- Base ---------- */
.op-body {
    background: var(--op-bg);
    color: var(--op-ink);
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
        "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    -webkit-font-smoothing: antialiased;
    line-height: 1.6;
}

.op-body a {
    color: inherit;
    text-decoration: none;
}

.op-body img {
    max-width: 100%;
    display: block;
}

.op-shell {
    width: min(1200px, calc(100vw - 32px));
    margin: 0 auto;
}

.op-dot {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: currentColor;
    display: inline-block;
    flex: none;
}

/* ---------- Buttons ---------- */
.op-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    border: 1px solid transparent;
    transition: transform .3s var(--op-ease), box-shadow .3s var(--op-ease),
        background-color .25s ease, color .25s ease, border-color .25s ease;
}

.op-btn-sm { padding: 8px 15px; font-size: 13px; }
.op-btn-lg { padding: 14px 26px; font-size: 15px; }
.op-btn-block { width: 100%; }

.op-btn-primary {
    background: linear-gradient(135deg, var(--op-primary), var(--op-primary-light));
    color: #fff;
    box-shadow: 0 8px 22px rgba(15, 110, 86, .26);
}

.op-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(15, 110, 86, .34);
}

.op-btn-ghost {
    background: rgba(255, 255, 255, .82);
    color: var(--op-primary-dark);
    border-color: rgba(15, 110, 86, .22);
    backdrop-filter: blur(8px);
}

.op-btn-ghost:hover {
    transform: translateY(-2px);
    background: #fff;
    border-color: rgba(15, 110, 86, .42);
}

/* ---------- Tags ---------- */
.op-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    background: var(--op-primary-soft);
    color: var(--op-primary-dark);
    line-height: 1.6;
}

.op-tag-accent {
    background: var(--op-accent-soft);
    color: #96631A;
}

.op-tag-light {
    background: rgba(255, 255, 255, .16);
    color: #fff;
}

a.op-tag:hover { background: #D8EBE4; }
a.op-tag-light:hover { background: rgba(255, 255, 255, .28); }

/* =========================================================
   Header
   ========================================================= */
.op-header {
    position: sticky;
    top: 0;
    z-index: 60;
}

.op-topbar {
    background: var(--op-primary-dark);
    color: rgba(255, 255, 255, .78);
    font-size: 12.5px;
}

.op-topbar-inner {
    display: flex;
    align-items: center;
    gap: 16px;
    min-height: 36px;
}

.op-topbar-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.op-topbar-right { margin-left: auto; }

.op-navbar {
    background: rgba(255, 255, 255, .94);
    border-bottom: 1px solid var(--op-line);
    backdrop-filter: blur(14px);
    transition: box-shadow .3s ease;
}

.op-header.is-stuck .op-navbar {
    box-shadow: 0 6px 24px rgba(16, 42, 34, .08);
}

.op-navbar-inner {
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: 68px;
}

.op-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: none;
}

.op-brand img { max-height: 40px; width: auto; }

.op-brand-mark {
    width: 36px;
    height: 36px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: linear-gradient(135deg, var(--op-primary), var(--op-primary-light));
    box-shadow: 0 6px 16px rgba(15, 110, 86, .3);
}

.op-brand-text {
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--op-ink);
}

.op-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    overflow: hidden;
}

.op-nav-link {
    position: relative;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--op-ink-2);
    white-space: nowrap;
    transition: color .2s ease, background-color .2s ease;
}

.op-nav-link::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 4px;
    height: 2px;
    border-radius: 2px;
    background: var(--op-primary);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .3s var(--op-ease);
}

.op-nav-link:hover { color: var(--op-primary); background: var(--op-primary-softer); }
.op-nav-link:hover::after,
.op-nav-link.is-active::after { transform: scaleX(1); }
.op-nav-link.is-active { color: var(--op-primary-dark); }

.op-nav-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    flex: none;
}

.op-burger {
    display: none;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    border: 1px solid var(--op-line);
    color: var(--op-ink-2);
    background: #fff;
}

.op-mobile-nav {
    background: #fff;
    border-bottom: 1px solid var(--op-line);
    box-shadow: var(--op-shadow-sm);
    padding: 8px 0 14px;
}

.op-mobile-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 4px;
    border-bottom: 1px solid var(--op-line-soft);
    font-size: 15px;
    font-weight: 600;
    color: var(--op-ink-2);
}

.op-mobile-link.is-active { color: var(--op-primary); }
.op-mobile-link:last-child { border-bottom: 0; }

.op-mobile-link-cta {
    margin-top: 10px;
    justify-content: center;
    border-radius: 999px;
    background: var(--op-primary);
    color: #fff;
    border-bottom: 0;
}

/* =========================================================
   Hero
   ========================================================= */
.op-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    background: linear-gradient(160deg, #0B4E3D 0%, #0F6E56 46%, #14876A 100%);
    color: #fff;
    padding: 0 0 96px;
}

.op-hero-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(680px 420px at 82% 12%, rgba(255, 255, 255, .16), transparent 66%),
        radial-gradient(520px 340px at 8% 92%, rgba(0, 0, 0, .24), transparent 70%);
}

.op-hero::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 90px;
    background: linear-gradient(180deg, transparent, rgba(245, 248, 247, .0) 40%, var(--op-bg) 100%);
    pointer-events: none;
}

.op-hero-slide {
    display: none;
    animation: opFade .7s var(--op-ease);
}

.op-hero-slide.is-active { display: block; }

@keyframes opFade {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}

.op-hero-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
    align-items: center;
    gap: 48px;
    padding: 66px 0 10px;
}

.op-hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .2);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .02em;
    color: rgba(255, 255, 255, .92);
    backdrop-filter: blur(6px);
}

.op-hero-title {
    margin: 18px 0 0;
    font-size: clamp(30px, 3.6vw, 46px);
    line-height: 1.22;
    font-weight: 850;
    letter-spacing: -.02em;
    text-wrap: balance;
}

.op-hero-lede {
    margin: 16px 0 0;
    max-width: 30em;
    font-size: 16px;
    line-height: 1.85;
    color: rgba(255, 255, 255, .8);
}

.op-hero-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.op-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .16);
    font-size: 12.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, .9);
}

.op-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.op-hero-visual { position: relative; }

.op-hero-frame {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .18);
    box-shadow: var(--op-shadow-lg);
    background: rgba(255, 255, 255, .06);
}

.op-hero-frame img {
    width: 100%;
    height: clamp(260px, 30vw, 380px);
    object-fit: cover;
}

.op-hero-frame-glow {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 52%, rgba(6, 42, 32, .5));
    pointer-events: none;
}

/* 降级首屏：CSS 绘制的视光数据卡 */
.op-hero-card {
    border-radius: 22px;
    padding: 22px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .18);
    backdrop-filter: blur(18px) saturate(160%);
    box-shadow: var(--op-shadow-lg);
}

.op-hero-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.op-hero-card-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 700;
}

.op-hero-card-tag {
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(224, 163, 60, .2);
    border: 1px solid rgba(224, 163, 60, .4);
    color: #F6D9A4;
    font-size: 12px;
    font-weight: 600;
}

.op-hero-chart {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    height: 148px;
    margin: 20px 0 6px;
    padding: 0 2px;
}

.op-hero-chart span {
    flex: 1;
    border-radius: 8px 8px 4px 4px;
    background: linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(255, 255, 255, .34));
    animation: opBarRise .9s var(--op-ease) backwards;
}

.op-hero-chart span:nth-child(1) { animation-delay: .05s; }
.op-hero-chart span:nth-child(2) { animation-delay: .12s; }
.op-hero-chart span:nth-child(3) { animation-delay: .19s; }
.op-hero-chart span:nth-child(4) { animation-delay: .26s; }
.op-hero-chart span:nth-child(5) { animation-delay: .33s; }
.op-hero-chart span:nth-child(6) { animation-delay: .40s; }
.op-hero-chart span:nth-child(7) { animation-delay: .47s; }

@keyframes opBarRise {
    from { transform: scaleY(.06); opacity: 0; }
    to { transform: scaleY(1); opacity: 1; }
}

.op-hero-chart span { transform-origin: bottom; }

.op-hero-card-foot {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .16);
}

.op-hero-card-foot strong {
    display: block;
    font-size: 13.5px;
    font-weight: 700;
}

.op-hero-card-foot span {
    font-size: 12px;
    color: rgba(255, 255, 255, .68);
}

.op-hero-dots {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 62px;
    display: flex;
    gap: 8px;
    z-index: 3;
}

.op-hero-dots button {
    width: 22px;
    height: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .35);
    transition: width .3s var(--op-ease), background-color .3s ease;
}

.op-hero-dots button.is-active {
    width: 40px;
    background: #fff;
}

/* =========================================================
   Quick actions
   ========================================================= */
.op-quick {
    position: relative;
    z-index: 4;
    margin-top: -58px;
}

.op-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.op-quick-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px;
    border-radius: var(--op-radius);
    background: var(--op-card);
    border: 1px solid var(--op-line);
    box-shadow: var(--op-shadow-sm);
    transition: transform .35s var(--op-ease), box-shadow .35s var(--op-ease),
        border-color .25s ease;
}

.op-quick-item:hover {
    transform: translateY(-4px);
    border-color: rgba(15, 110, 86, .3);
    box-shadow: var(--op-shadow);
}

.op-quick-icon {
    width: 42px;
    height: 42px;
    flex: none;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--op-primary-soft);
    color: var(--op-primary);
    transition: background-color .25s ease, color .25s ease;
}

.op-quick-item:hover .op-quick-icon {
    background: var(--op-primary);
    color: #fff;
}

.op-quick-text { min-width: 0; }

.op-quick-text strong {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--op-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.op-quick-text small {
    font-size: 12.5px;
    color: var(--op-muted);
}

.op-quick-arrow {
    margin-left: auto;
    color: #B7C8C2;
    flex: none;
    transition: color .25s ease, transform .3s var(--op-ease);
}

.op-quick-item:hover .op-quick-arrow {
    color: var(--op-primary);
    transform: translate(2px, -2px);
}

/* =========================================================
   Section scaffolding
   ========================================================= */
.op-section { padding: 64px 0; }
.op-section + .op-section { padding-top: 0; }
.op-quick + .op-section { padding-top: 58px; }

.op-section-head { margin-bottom: 30px; }

.op-section-head-center {
    text-align: center;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

.op-section-head-center .op-section-desc { margin-left: auto; margin-right: auto; }

.op-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 13px;
    border-radius: 999px;
    background: var(--op-primary-soft);
    color: var(--op-primary);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .04em;
}

.op-section-kicker-light {
    background: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .92);
}

.op-section-title {
    margin: 14px 0 0;
    font-size: clamp(22px, 2.3vw, 30px);
    font-weight: 800;
    letter-spacing: -.02em;
    color: var(--op-ink);
    line-height: 1.35;
    text-wrap: balance;
}

.op-section-desc {
    margin: 12px 0 0;
    max-width: 60ch;
    font-size: 15px;
    line-height: 1.85;
    color: var(--op-muted);
}

/* =========================================================
   Services
   ========================================================= */
.op-services-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.op-service-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 26px 24px 22px;
    border-radius: var(--op-radius-lg);
    background: var(--op-card);
    border: 1px solid var(--op-line);
    overflow: hidden;
    transition: transform .4s var(--op-ease), box-shadow .4s var(--op-ease),
        border-color .3s ease;
}

.op-service-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--op-primary), var(--op-primary-light));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .45s var(--op-ease);
}

.op-service-card:hover {
    transform: translateY(-6px);
    border-color: rgba(15, 110, 86, .26);
    box-shadow: var(--op-shadow);
}

.op-service-card:hover::before { transform: scaleX(1); }

.op-service-card.is-featured {
    background: linear-gradient(150deg, #0F6E56, #12805F 58%, #15916C);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 18px 46px rgba(15, 110, 86, .28);
}

.op-service-card.is-featured::before { display: none; }

.op-service-flag {
    position: absolute;
    top: 16px;
    right: 16px;
    padding: 4px 11px;
    border-radius: 999px;
    background: rgba(224, 163, 60, .96);
    color: #40290A;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .02em;
}

.op-service-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--op-primary-soft);
    color: var(--op-primary);
    transition: transform .4s var(--op-ease);
}

.op-service-card:hover .op-service-icon { transform: rotate(-6deg) scale(1.06); }

.op-service-card.is-featured .op-service-icon {
    background: rgba(255, 255, 255, .16);
    color: #fff;
}

.op-service-title {
    margin: 18px 0 0;
    font-size: 18px;
    font-weight: 750;
    color: var(--op-ink);
}

.op-service-card.is-featured .op-service-title { color: #fff; }

.op-service-desc {
    margin: 10px 0 0;
    font-size: 14px;
    line-height: 1.8;
    color: var(--op-muted);
}

.op-service-card.is-featured .op-service-desc { color: rgba(255, 255, 255, .82); }

.op-service-points {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
}

.op-service-points li {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--op-primary);
}

.op-service-card.is-featured .op-service-points li { color: rgba(255, 255, 255, .9); }

.op-service-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px dashed var(--op-line);
    font-size: 13.5px;
    font-weight: 700;
    color: var(--op-primary);
    transition: gap .3s var(--op-ease);
}

.op-service-card:hover .op-service-more { gap: 12px; }

.op-service-card.is-featured .op-service-more {
    border-top-color: rgba(255, 255, 255, .22);
    color: #fff;
}

/* =========================================================
   Featured articles
   ========================================================= */
.op-featured-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

/* =========================================================
   Article cards
   ========================================================= */
.op-card {
    background: var(--op-card);
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius-lg);
    overflow: hidden;
    transition: transform .4s var(--op-ease), box-shadow .4s var(--op-ease),
        border-color .3s ease;
}

.op-card:hover {
    transform: translateY(-4px);
    border-color: rgba(15, 110, 86, .24);
    box-shadow: var(--op-shadow);
}

.op-card-feature { display: flex; flex-direction: column; }

.op-card-feature .op-card-body { padding: 20px 22px 22px; }

.op-card-list {
    display: flex;
    align-items: stretch;
    gap: 18px;
    padding: 20px 22px;
}

.op-card-list .op-card-body { flex: 1; min-width: 0; }

.op-card-thumb {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 16 / 9;
    background: linear-gradient(135deg, #0F6E56, #1B8C6E 60%, #2AA987);
    color: rgba(255, 255, 255, .96);
    font-size: 44px;
    font-weight: 850;
    letter-spacing: -.04em;
    overflow: hidden;
}

.op-card-thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(120px 120px at 80% 20%, rgba(255, 255, 255, .22), transparent 70%),
        radial-gradient(90px 90px at 18% 84%, rgba(0, 0, 0, .18), transparent 70%);
}

.op-card-thumb span { position: relative; z-index: 1; }

.op-card-thumb-sm {
    flex: none;
    width: 118px;
    aspect-ratio: auto;
    border-radius: 14px;
    font-size: 34px;
}

.op-card-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 12.5px;
    color: var(--op-muted);
}

.op-card-views {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.op-card-title {
    margin: 12px 0 0;
    font-size: 17.5px;
    line-height: 1.5;
    font-weight: 750;
    color: var(--op-ink);
}

.op-card-feature .op-card-title { font-size: 16.5px; }

.op-card-title a { transition: color .2s ease; }
.op-card:hover .op-card-title a { color: var(--op-primary); }

.op-card-summary {
    margin: 10px 0 0;
    font-size: 14px;
    line-height: 1.8;
    color: var(--op-muted);
}

.op-card-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--op-primary);
    transition: gap .3s var(--op-ease);
}

.op-card-action:hover { gap: 12px; }

/* =========================================================
   Flow
   ========================================================= */
.op-flow-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    position: relative;
}

.op-flow-item {
    position: relative;
    padding: 26px 22px;
    border-radius: var(--op-radius-lg);
    background: var(--op-card);
    border: 1px solid var(--op-line);
    transition: transform .4s var(--op-ease), box-shadow .4s var(--op-ease);
}

.op-flow-item:hover {
    transform: translateY(-5px);
    box-shadow: var(--op-shadow);
}

.op-flow-no {
    position: absolute;
    top: 14px;
    right: 18px;
    font-size: 34px;
    font-weight: 850;
    letter-spacing: -.04em;
    color: var(--op-primary-soft);
    line-height: 1;
}

.op-flow-icon {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--op-primary), var(--op-primary-light));
    color: #fff;
    box-shadow: 0 8px 18px rgba(15, 110, 86, .24);
}

.op-flow-title {
    margin: 16px 0 0;
    font-size: 16.5px;
    font-weight: 750;
    color: var(--op-ink);
}

.op-flow-desc {
    margin: 8px 0 0;
    font-size: 13.5px;
    line-height: 1.8;
    color: var(--op-muted);
}

/* =========================================================
   Layout (main + sidebar)
   ========================================================= */
.op-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 322px;
    gap: 26px;
    align-items: start;
}

.op-main { min-width: 0; }

.op-article-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.op-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 56px 20px;
    border-radius: var(--op-radius-lg);
    border: 1px dashed var(--op-line);
    background: var(--op-card);
    color: var(--op-muted);
    font-size: 14.5px;
}

.op-empty-text {
    font-size: 13.5px;
    color: var(--op-muted);
}

.op-pagination { margin-top: 22px; }

.op-page-head { margin-bottom: 26px; }

.op-page-title {
    margin: 14px 0 0;
    font-size: clamp(24px, 2.6vw, 32px);
    font-weight: 820;
    letter-spacing: -.02em;
    color: var(--op-ink);
}

.op-page-desc {
    margin: 10px 0 0;
    font-size: 14.5px;
    line-height: 1.85;
    color: var(--op-muted);
}

/* =========================================================
   Sidebar
   ========================================================= */
.op-sidebar {
    position: sticky;
    top: 118px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.op-panel {
    padding: 20px;
    border-radius: var(--op-radius-lg);
    background: var(--op-card);
    border: 1px solid var(--op-line);
}

.op-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--op-line-soft);
}

.op-panel-title {
    position: relative;
    padding-left: 12px;
    font-size: 15.5px;
    font-weight: 780;
    color: var(--op-ink);
}

.op-panel-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 15px;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--op-primary), var(--op-primary-light));
}

.op-panel-text {
    font-size: 13.5px;
    line-height: 1.85;
    color: var(--op-muted);
}

.op-panel-cta {
    background: linear-gradient(155deg, #0F6E56, #14876A);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 14px 34px rgba(15, 110, 86, .24);
}

.op-panel-cta-icon {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
}

.op-panel-cta h3 {
    margin: 14px 0 0;
    font-size: 17px;
    font-weight: 780;
}

.op-panel-cta p {
    margin: 8px 0 16px;
    font-size: 13.5px;
    line-height: 1.8;
    color: rgba(255, 255, 255, .82);
}

.op-panel-cta .op-btn-primary {
    background: #fff;
    color: var(--op-primary-dark);
    box-shadow: none;
}

.op-panel-cta .op-btn-primary:hover {
    background: #F4FBF9;
    box-shadow: 0 10px 22px rgba(0, 0, 0, .16);
}

.op-rank-list {
    display: flex;
    flex-direction: column;
}

.op-rank-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 0;
    border-bottom: 1px dashed var(--op-line-soft);
}

.op-rank-item:last-child { border-bottom: 0; }

.op-rank-index {
    flex: none;
    width: 21px;
    height: 21px;
    margin-top: 2px;
    border-radius: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #EEF3F1;
    color: var(--op-muted);
    font-size: 12px;
    font-weight: 800;
}

.op-rank-index.is-top {
    background: linear-gradient(135deg, var(--op-primary), var(--op-primary-light));
    color: #fff;
}

.op-rank-title {
    font-size: 14px;
    line-height: 1.65;
    font-weight: 600;
    color: var(--op-ink-2);
    transition: color .2s ease;
}

.op-rank-item:hover .op-rank-title { color: var(--op-primary); }

.op-cat-cloud {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.op-cat-chip {
    padding: 7px 13px;
    border-radius: 999px;
    background: var(--op-primary-softer);
    border: 1px solid var(--op-line);
    font-size: 13px;
    font-weight: 600;
    color: var(--op-ink-2);
    transition: all .25s ease;
}

.op-cat-chip:hover {
    background: var(--op-primary);
    border-color: var(--op-primary);
    color: #fff;
}

.op-contact-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.op-contact-list li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--op-muted);
}

.op-contact-list li i { color: var(--op-primary); flex: none; margin-top: 3px; }

/* =========================================================
   About + stats
   ========================================================= */
.op-about-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 44px;
    align-items: center;
}

.op-about-text {
    margin: 16px 0 0;
    font-size: 15px;
    line-height: 1.95;
    color: var(--op-muted);
}

.op-about-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 26px;
}

.op-about-item {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 15px 16px;
    border-radius: var(--op-radius);
    background: var(--op-card);
    border: 1px solid var(--op-line);
}

.op-about-icon {
    width: 34px;
    height: 34px;
    flex: none;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--op-primary-soft);
    color: var(--op-primary);
}

.op-about-item strong {
    display: block;
    font-size: 14.5px;
    font-weight: 720;
    color: var(--op-ink);
}

.op-about-item small {
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--op-muted);
}

.op-stats-card {
    padding: 28px;
    border-radius: var(--op-radius-lg);
    background: linear-gradient(155deg, #0C5946, #10775C 60%, #148A6C);
    color: #fff;
    box-shadow: var(--op-shadow-lg);
}

.op-stats-head {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 700;
    color: rgba(255, 255, 255, .84);
}

.op-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 22px 0 20px;
}

.op-stat {
    padding: 16px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .09);
    border: 1px solid rgba(255, 255, 255, .14);
}

.op-stat-value {
    font-size: 32px;
    font-weight: 850;
    letter-spacing: -.03em;
    line-height: 1;
}

.op-stat-value em {
    font-style: normal;
    font-size: 15px;
    font-weight: 700;
    margin-left: 3px;
    color: rgba(255, 255, 255, .74);
}

.op-stat-label {
    margin-top: 8px;
    font-size: 12.5px;
    color: rgba(255, 255, 255, .74);
}

.op-stats-note {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .14);
    font-size: 12px;
    line-height: 1.7;
    color: rgba(255, 255, 255, .64);
}

.op-stats-note i { flex: none; margin-top: 3px; }

/* =========================================================
   Reserve
   ========================================================= */
.op-reserve {
    margin-top: 120px;
    padding: 110px 0;
    background: linear-gradient(150deg, #0A4C3B 0%, #0F6E56 55%, #10825F 100%);
    color: #fff;
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.op-reserve::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(600px 380px at 88% 8%, rgba(255, 255, 255, .12), transparent 68%),
        radial-gradient(460px 320px at 4% 96%, rgba(0, 0, 0, .22), transparent 70%);
    pointer-events: none;
}

.op-reserve-inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 44px;
    align-items: center;
}

.op-reserve-title {
    margin: 14px 0 0;
    font-size: clamp(22px, 2.4vw, 32px);
    font-weight: 830;
    letter-spacing: -.02em;
    line-height: 1.35;
}

.op-reserve-desc {
    margin: 14px 0 0;
    max-width: 34em;
    font-size: 15px;
    line-height: 1.9;
    color: rgba(255, 255, 255, .8);
}

.op-reserve-points {
    list-style: none;
    margin: 22px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.op-reserve-points li {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 14.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, .9);
}

.op-reserve-points i { color: #7FD9BC; flex: none; }

.op-reserve-addr {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 22px;
    padding: 10px 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .16);
    font-size: 13.5px;
}

.op-reserve-form {
    position: relative;
    z-index: 2;
    margin-top: 48px;
}

.op-reserve-form .geo-lead-form {
    border-radius: var(--op-radius-lg) !important;
    border-color: transparent !important;
    box-shadow: var(--op-shadow-lg) !important;
}

.op-reserve-fallback {
    padding: 30px 26px;
    border-radius: var(--op-radius-lg);
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .18);
    backdrop-filter: blur(14px);
    text-align: center;
}

.op-reserve-fallback-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
}

.op-reserve-fallback h3 {
    margin: 16px 0 0;
    font-size: 18px;
    font-weight: 780;
}

.op-reserve-fallback p {
    margin: 10px 0 20px;
    font-size: 13.5px;
    line-height: 1.85;
    color: rgba(255, 255, 255, .78);
}

.op-reserve-fallback .op-btn-primary {
    background: #fff;
    color: var(--op-primary-dark);
    box-shadow: none;
}

/* =========================================================
   Subhero (category / article)
   ========================================================= */
.op-subhero {
    position: relative;
    padding: 46px 0 40px;
    background: linear-gradient(150deg, #0B5040 0%, #0F6E56 60%, #13835F 100%);
    color: #fff;
    overflow: hidden;
}

.op-subhero-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(520px 300px at 86% 10%, rgba(255, 255, 255, .14), transparent 66%),
        radial-gradient(420px 260px at 6% 96%, rgba(0, 0, 0, .2), transparent 70%);
    pointer-events: none;
}

.op-subhero > .op-shell { position: relative; }

.op-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    font-size: 13px;
    color: rgba(255, 255, 255, .7);
}

.op-breadcrumb a:hover { color: #fff; }

.op-subhero-title {
    margin: 14px 0 0;
    font-size: clamp(24px, 2.8vw, 34px);
    font-weight: 830;
    letter-spacing: -.02em;
    line-height: 1.32;
    text-wrap: balance;
}

.op-subhero-desc {
    margin: 12px 0 0;
    max-width: 62ch;
    font-size: 14.5px;
    line-height: 1.85;
    color: rgba(255, 255, 255, .78);
}

.op-subhero-article { padding-bottom: 46px; }

.op-article-h1 { max-width: none; }
@media (min-width: 768px) {
    .op-article-h1 { white-space: nowrap; }
}

.op-article-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 18px;
    font-size: 13px;
    color: rgba(255, 255, 255, .74);
}

.op-article-meta time,
.op-article-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.op-article-section { padding-top: 34px; }

/* =========================================================
   Article body
   ========================================================= */
.op-article {
    padding: 30px 34px 34px;
    border-radius: var(--op-radius-lg);
    background: var(--op-card);
    border: 1px solid var(--op-line);
}

.op-article-lede {
    margin: 0 0 8px;
    padding: 16px 18px;
    border-radius: var(--op-radius);
    background: var(--op-primary-softer);
    border-left: 3px solid var(--op-primary);
    font-size: 15px;
    line-height: 1.9;
    color: var(--op-ink-2);
}

.op-prose {
    font-size: 16px;
    line-height: 1.95;
    color: #2B3B36;
    word-break: break-word;
}

.op-prose > * + * { margin-top: 1.05em; }

.op-prose h2 {
    margin-top: 1.9em;
    padding-left: 13px;
    border-left: 4px solid var(--op-primary);
    font-size: 21px;
    font-weight: 800;
    color: var(--op-ink);
    line-height: 1.5;
}

.op-prose h3 {
    margin-top: 1.6em;
    font-size: 18px;
    font-weight: 760;
    color: var(--op-ink);
}

.op-prose h4 {
    margin-top: 1.4em;
    font-size: 16px;
    font-weight: 720;
    color: var(--op-ink);
}

.op-prose p { margin-top: 1.05em; }

.op-prose a {
    color: var(--op-primary);
    font-weight: 600;
    border-bottom: 1px solid rgba(15, 110, 86, .32);
}

.op-prose a:hover { border-bottom-color: var(--op-primary); }

.op-prose ul,
.op-prose ol {
    padding-left: 1.35em;
    margin-top: 1.05em;
}

.op-prose ul { list-style: disc; }
.op-prose ol { list-style: decimal; }
.op-prose li { margin-top: .5em; }
.op-prose li::marker { color: var(--op-primary); }

.op-prose blockquote {
    margin: 1.4em 0;
    padding: 14px 20px;
    border-left: 4px solid var(--op-primary-light);
    background: var(--op-primary-softer);
    border-radius: 0 var(--op-radius-sm) var(--op-radius-sm) 0;
    color: var(--op-ink-2);
}

.op-prose img {
    border-radius: var(--op-radius);
    margin: 1.4em auto;
    box-shadow: var(--op-shadow-sm);
}

.op-prose code {
    padding: 2px 6px;
    border-radius: 6px;
    background: #EDF3F1;
    color: #0B5341;
    font-size: .92em;
}

.op-prose pre {
    margin: 1.4em 0;
    padding: 18px 20px;
    border-radius: var(--op-radius);
    background: #10241E;
    color: #D8EDE6;
    overflow-x: auto;
    font-size: 13.5px;
    line-height: 1.75;
}

.op-prose pre code { background: transparent; color: inherit; padding: 0; }

.op-prose table {
    width: 100%;
    margin: 1.4em 0;
    border-collapse: collapse;
    font-size: 14.5px;
    overflow: hidden;
    border-radius: var(--op-radius-sm);
}

.op-prose th,
.op-prose td {
    padding: 11px 14px;
    border: 1px solid var(--op-line);
    text-align: left;
}

.op-prose th {
    background: var(--op-primary-softer);
    font-weight: 720;
    color: var(--op-ink);
}

.op-prose hr {
    margin: 2em 0;
    border: 0;
    border-top: 1px dashed var(--op-line);
}

.op-article-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 32px;
    padding-top: 22px;
    border-top: 1px solid var(--op-line-soft);
}

.op-article-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 26px;
    padding: 20px 22px;
    border-radius: var(--op-radius);
    background: var(--op-primary-softer);
    border: 1px solid var(--op-line);
}

.op-article-cta strong {
    display: block;
    font-size: 15.5px;
    font-weight: 750;
    color: var(--op-ink);
}

.op-article-cta span {
    font-size: 13.5px;
    color: var(--op-muted);
}

/* ---------- Related ---------- */
.op-related { margin-top: 22px; }

.op-related-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.op-related-card {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 15px 17px;
    border-radius: var(--op-radius);
    background: var(--op-card);
    border: 1px solid var(--op-line);
    transition: all .3s var(--op-ease);
}

.op-related-card:hover {
    transform: translateY(-3px);
    border-color: rgba(15, 110, 86, .3);
    box-shadow: var(--op-shadow-sm);
}

.op-related-index {
    flex: none;
    width: 24px;
    height: 24px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--op-primary-soft);
    color: var(--op-primary);
    font-size: 12px;
    font-weight: 800;
}

.op-related-title {
    flex: 1;
    min-width: 0;
    font-size: 14px;
    font-weight: 620;
    line-height: 1.6;
    color: var(--op-ink-2);
}

.op-related-card i { color: #B7C8C2; flex: none; }
.op-related-card:hover i { color: var(--op-primary); }

/* ---------- Sticky ad ---------- */
.op-sticky-ad {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 60;
    max-width: 300px;
    padding: 18px;
    border-radius: var(--op-radius-lg);
    background: var(--op-card);
    border: 1px solid var(--op-line);
    box-shadow: var(--op-shadow);
}

.op-sticky-close {
    position: absolute;
    right: 10px;
    top: 6px;
    font-size: 20px;
    line-height: 1;
    color: #A9BAB4;
}

.op-sticky-close:hover { color: var(--op-ink); }

.op-sticky-title {
    padding-right: 18px;
    font-size: 14.5px;
    font-weight: 750;
    color: var(--op-ink);
}

.op-sticky-badge {
    display: inline-flex;
    margin: 8px 0;
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--op-primary-soft);
    color: var(--op-primary);
    font-size: 11.5px;
    font-weight: 700;
}

.op-sticky-copy {
    margin: 6px 0 0;
    font-size: 13px;
    line-height: 1.75;
    color: var(--op-muted);
}

/* =========================================================
   Footer
   ========================================================= */
.op-footer {
    margin-top: 0;
    background: #0B2A22;
    color: rgba(255, 255, 255, .72);
}

.op-reserve + .op-footer { margin-top: 0; }
.op-section:last-of-type + .op-footer { margin-top: 64px; }

.op-footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 44px;
    padding: 52px 0 40px;
}

.op-footer-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 19px;
    font-weight: 800;
}

.op-footer-logo img { max-height: 40px; width: auto; }

.op-brand-mark-light {
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .18);
    box-shadow: none;
}

.op-footer-desc {
    margin: 16px 0 0;
    max-width: 42ch;
    font-size: 13.5px;
    line-height: 1.9;
    color: rgba(255, 255, 255, .6);
}

.op-footer-sub {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 14px 0 0;
    font-size: 13px;
    color: rgba(255, 255, 255, .66);
}

.op-footer-sub i { color: #56C4A2; flex: none; }

.op-footer-title {
    font-size: 14.5px;
    font-weight: 720;
    color: #fff;
    margin: 0 0 16px;
}

.op-footer-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 11px;
    font-size: 13.5px;
}

.op-footer-list a {
    color: rgba(255, 255, 255, .64);
    transition: color .2s ease, padding-left .25s ease;
}

.op-footer-list a:hover { color: #fff; padding-left: 4px; }

.op-footer-list-plain li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: rgba(255, 255, 255, .64);
    line-height: 1.7;
}

.op-footer-list-plain i { color: #56C4A2; flex: none; margin-top: 3px; }

.op-footer-bottom {
    padding: 18px 0 24px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    font-size: 12.5px;
    color: rgba(255, 255, 255, .5);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.op-footer-bottom a { color: rgba(255, 255, 255, .62); }
.op-footer-bottom a:hover { color: #fff; }

/* =========================================================
   Scroll reveal
   ========================================================= */
.op-reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .7s var(--op-ease), transform .7s var(--op-ease);
    will-change: opacity, transform;
}

.op-reveal.is-visible {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .op-reveal,
    .op-hero-slide,
    .op-hero-chart span {
        animation: none !important;
        transition: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1180px) {
    .op-layout { grid-template-columns: minmax(0, 1fr) 292px; }
    .op-nav-link { padding: 10px 11px; font-size: 14px; }
}

@media (max-width: 1024px) {
    .op-nav { display: none; }
    .op-burger { display: inline-flex; }

    .op-hero-inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
        padding-top: 52px;
    }

    .op-hero { padding-bottom: 86px; }
    .op-hero-lede { max-width: none; }
    .op-hero-dots { bottom: 54px; }

    .op-services-grid,
    .op-featured-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .op-flow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .op-layout { grid-template-columns: minmax(0, 1fr); }

    .op-sidebar {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .op-about-inner,
    .op-reserve-inner { grid-template-columns: minmax(0, 1fr); gap: 32px; }

    .op-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
}

@media (max-width: 820px) {
    .op-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .op-topbar-item:not(.op-topbar-right) { display: none; }
    .op-topbar-right { margin-left: 0; }
    .op-article { padding: 22px 20px 26px; }
    .op-related-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
    .op-section { padding: 44px 0; }
    .op-quick { margin-top: -46px; }
    .op-quick + .op-section { padding-top: 42px; }

    .op-hero { padding-bottom: 74px; }
    .op-hero-inner { padding-top: 40px; }
    .op-hero-actions .op-btn { flex: 1; }

    .op-services-grid,
    .op-featured-grid,
    .op-flow-grid,
    .op-about-grid,
    .op-stats-grid { grid-template-columns: minmax(0, 1fr); }

    .op-sidebar { grid-template-columns: minmax(0, 1fr); }

    .op-card-list { flex-direction: column-reverse; gap: 14px; padding: 18px; }
    .op-card-thumb-sm { width: 100%; aspect-ratio: 16 / 7; }

    .op-footer-grid { grid-template-columns: minmax(0, 1fr); }
    .op-footer-bottom { flex-direction: column; align-items: flex-start; }

    .op-sticky-ad { right: 12px; left: 12px; bottom: 12px; max-width: none; }

    .op-article-cta { flex-direction: column; align-items: flex-start; }
    .op-article-cta .op-btn { width: 100%; }
}

/* ── Form page (lead-form standalone) ─────────────────────────────── */
.op-form-page { padding: 48px 0 80px; }
.op-form-page-card {
    max-width: 760px;
    margin: 0 auto;
    background: var(--op-card);
    border: 1px solid var(--op-line);
    border-radius: var(--op-radius-lg);
    box-shadow: var(--op-shadow);
    padding: 40px 48px;
}

@media (max-width: 820px) {
    .op-form-page { padding: 32px 0 56px; }
    .op-form-page-card { padding: 28px 24px; }
}

@media (max-width: 640px) {
    .op-form-page { padding: 24px 0 44px; }
    .op-form-page-card { padding: 22px 18px; }
}

/* =========================================================
   Form interaction hardening
   ========================================================= */
.op-reserve-form input,
.op-reserve-form textarea,
.op-reserve-form select,
.op-reserve-form button {
    position: relative;
    z-index: 3;
    pointer-events: auto;
}

/* Inputs inside the dark reserve section must use dark text/caret
   because .op-reserve sets color:#fff on its children. */
.op-reserve-form input,
.op-reserve-form textarea,
.op-reserve-form select {
    color: #111827 !important;
    caret-color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
}

.geo-lead-form [name="website"],
.geo-lead-form [tabindex="-1"][name="website"] {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* ===== 2026-08-30 视觉微调（回滚：删除本段即可，原始规则未动） ===== */
/* Logo 稍放大，提高可读性 */
.op-brand img { max-height: 44px; }

/* 首屏配色减重：渐变整体提亮一档，弱化暗角 */
.op-hero {
    background: linear-gradient(160deg, #0F5E49 0%, #137A5F 46%, #179272 100%);
}
.op-hero-bg {
    background:
        radial-gradient(680px 420px at 82% 12%, rgba(255, 255, 255, .18), transparent 66%),
        radial-gradient(520px 340px at 8% 92%, rgba(0, 0, 0, .14), transparent 70%);
}

/* 轮播照片底部压暗减弱，照片更通透 */
.op-hero-frame-glow {
    background: linear-gradient(180deg, transparent 58%, rgba(6, 42, 32, .34));
}
