@charset "utf-8";
/* 01. 공통 섹션 · 이미지 틀 · 장식 */
.section {position: relative;padding-block: 16rem;}
.section_head {display: flex;align-items: flex-end;justify-content: space-between;gap: 8rem;margin-bottom: 8rem;}
.section_head.is_center {flex-direction: column;align-items: center;text-align: center;}
.section_head.is_center .eyebrow {justify-content: center;}
.head_desc {max-width: 52rem;margin-top: 0;font-size: 1.8rem;}
.img_frame {position: relative;overflow: hidden;border-radius: var(--radius);background: linear-gradient(160deg, #efe7d8, #ddd0b9);}
.ratio_45 {aspect-ratio: 4 / 5;}
.deco {position: absolute;inset: 0;pointer-events: none;}
.scene {z-index: 1;overflow: hidden;}
.scene .sun {position: absolute;right: 12%;top: 10%;width: 34%;aspect-ratio: 1;border-radius: 50%;background: radial-gradient(circle, rgba(255, 254, 251, .95), rgba(255, 254, 251, 0) 70%);}
.scene .arch_c {position: absolute;left: 14%;bottom: 0;width: 44%;height: 60%;border: .1rem solid rgba(114, 127, 112, .4);border-bottom: 0;border-radius: 50rem 50rem 0 0;background: rgba(255, 254, 251, .5);}
.scene .floor {position: absolute;left: 0;right: 0;bottom: 0;height: 20%;background: linear-gradient(180deg, rgba(214, 199, 172, 0), rgba(206, 189, 158, .6));}
.scene_b .sun {left: 10%;right: auto;}
.scene_c .sun {right: 22%;top: 16%;}
.person {position: absolute;left: 50%;bottom: 0;width: 70%;transform: translateX(-50%);fill: rgba(94, 93, 86, .16);}
/* 02. 메인 비주얼 */
.hero {position: relative;display: flex;flex-direction: column;justify-content: center;min-height: 100vh;min-height: 100svh;max-height: 128rem;padding-top: var(--header-height);overflow: hidden;background: var(--beige);}
.hero_media {position: absolute;inset: 0;}
.hero_media::before {content: '';position: absolute;inset: 0;background: linear-gradient(115deg, #f7f2e9 0%, #ede4d4 55%, #e2d5bf 100%);}
.hero_media::after {content: '';position: absolute;inset: 0;z-index: 2;background: linear-gradient(90deg, rgba(248, 245, 239, .94) 0%, rgba(248, 245, 239, .7) 38%, rgba(248, 245, 239, .08) 72%), linear-gradient(0deg, rgba(248, 245, 239, .85) 0%, transparent 20%), linear-gradient(180deg, rgba(248, 245, 239, .9) 0%, rgba(248, 245, 239, 0) 24%);}
.hero_media .slot_img {z-index: 1;}
.hero_media .slot_label {top: auto;bottom: 14rem;left: auto;right: var(--page-gutter);}
.hero_deco {z-index: 1;overflow: hidden;}
.beam {position: absolute;top: -12%;height: 135%;transform: rotate(16deg);background: linear-gradient(180deg, rgba(255, 254, 251, .8), rgba(255, 254, 251, 0));filter: blur(1.2rem);}
.beam_a {right: 30vw;width: 14vw;}
.beam_b {right: 18vw;width: 6vw;opacity: .7;}
.arch {position: absolute;border: .1rem solid rgba(114, 127, 112, .35);border-bottom: 0;border-radius: 50rem 50rem 0 0;}
.arch_a {right: 9vw;bottom: 0;width: min(48rem, 28vw);height: 70%;background: linear-gradient(180deg, rgba(255, 254, 251, .75), rgba(255, 254, 251, .12));}
.arch_b {right: calc(9vw + min(4rem, 2vw));bottom: 0;width: calc(min(48rem, 28vw) - min(8rem, 4vw));height: calc(70% - 4rem);border-color: rgba(114, 127, 112, .22);}
.hero_deco .floor {position: absolute;left: 0;right: 0;bottom: 0;height: 18%;background: linear-gradient(180deg, rgba(214, 199, 172, 0), rgba(206, 189, 158, .55));}
.hero_inner {position: relative;z-index: 3;padding-block: 10rem 18rem;}
.hero_title {font-size: var(--fs-display);font-weight: 300;line-height: 1.2;letter-spacing: -.05em;}
.hero_title span, .hero_title strong {display: block;}
.hero_title strong {font-weight: 700;}
.hero_sub {margin-top: 4.4rem;font-size: var(--fs-lead);line-height: 1.85;color: var(--text-3);}
.hero_cta {display: flex;flex-wrap: wrap;gap: 1.4rem;margin-top: 6rem;}
.hero_foot {position: absolute;inset: auto 0 4rem;z-index: 3;display: flex;align-items: flex-end;justify-content: space-between;width: auto;max-width: none;}
.hero_slogan {font: 400 1.6rem/1 var(--font-serif);letter-spacing: .14em;color: var(--text-3);}
.scroll_cue {display: grid;justify-items: center;gap: 1.2rem;font: 400 1.2rem/1 var(--font-serif);letter-spacing: .3em;text-transform: uppercase;color: var(--text-3);}
.scroll_cue i {display: block;width: .1rem;height: 6.4rem;background: var(--text-3);transform-origin: top;animation: cue 2.4s var(--ease) infinite;}
.hero_in {opacity: 0;transform: translateY(3rem);animation: hero_rise 1.2s var(--ease) forwards;animation-delay: calc(.15s + var(--i, 0) * .14s);}
.hero_media .slot_img[data-parallax] {--sc: 1.08;}
@keyframes hero_rise {from {opacity: 0;transform: translateY(3rem);} to {opacity: 1;transform: none;}}
@keyframes cue {0% {transform: scaleY(0);transform-origin: top;} 45% {transform: scaleY(1);transform-origin: top;} 55% {transform: scaleY(1);transform-origin: bottom;} 100% {transform: scaleY(0);transform-origin: bottom;}}
/* 03. 브랜드 철학 */
.phil_grid {display: grid;grid-template-columns: 6fr 5fr;gap: 12rem;align-items: center;}
.phil_desc {margin-top: 2.4rem;font-size: 1.8rem;color: var(--text-3);}
.phil_points {margin-top: 6rem;border-top: .1rem solid var(--line);}
.phil_points li {display: grid;grid-template-columns: 6rem 22rem 1fr;gap: 2rem;align-items: baseline;padding-block: 2.6rem;border-bottom: .1rem solid var(--line);}
.phil_points span {font: 400 1.5rem/1 var(--font-serif);letter-spacing: .12em;color: var(--accent-deep);}
.phil_points strong {font-size: 2rem;font-weight: 700;}
.phil_points em {font-size: 1.6rem;color: var(--text-3);}
.phil_media {position: relative;padding: 0 0 4.4rem 4.4rem;}
.phil_media::before {content: '';position: absolute;left: 0;bottom: 0;right: 7rem;top: 9rem;border-radius: var(--radius);background: var(--beige);}
.phil_media .img_frame {z-index: 1;}
.phil_media figcaption {position: relative;margin-top: 2rem;padding-left: 4.4rem;font-size: 1.3rem;letter-spacing: .06em;color: var(--text-3);}
/* 04. 주요 진료 분야 */
.service {background: var(--soft);}
.service_grid {display: grid;grid-template-columns: repeat(3, minmax(0, 1fr));gap: 2.4rem;}
.service_grid li {display: flex;}
.service_card {position: relative;display: flex;flex-direction: column;width: 100%;padding: 4.4rem 4rem 4rem;border: .1rem solid var(--line);border-radius: var(--radius);background: var(--bg);transition: background .4s, border-color .4s;}
.service_card .card_no {position: absolute;right: 3.6rem;top: 3.6rem;font: 400 1.4rem/1 var(--font-serif);letter-spacing: .12em;color: var(--text-2);}
.service_card .ico {width: 5.2rem;height: 5.2rem;margin-bottom: 4rem;color: var(--accent);transition: color .4s, transform .5s var(--ease);}
.service_card h3 {font-size: var(--fs-h3);font-weight: 700;letter-spacing: -.03em;}
.service_card p {flex-grow: 1;margin-top: 1.6rem;font-size: 1.7rem;color: var(--text-3);}
.card_more {display: inline-flex;align-items: center;gap: 1rem;margin-top: 4rem;font-size: 1.5rem;font-weight: 700;color: var(--accent-deep);}
.service_card:hover, .service_card:focus-visible {background: var(--beige);border-color: var(--accent);}
.service_card:hover .ico, .service_card:focus-visible .ico {color: var(--accent-deep);transform: translateY(-.4rem);}
.service_card:hover .arrow svg, .service_card:focus-visible .arrow svg {transform: translateX(.8rem);}
/* 05. 진료 원칙 */
.principle {background: var(--beige);}
.principle_list {display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));}
.principle_item {position: relative;padding: 0 4rem 0 4rem;border-left: .1rem solid rgba(114, 127, 112, .3);}
.principle_item:first-child {padding-left: 0;border-left: 0;}
.principle_item:last-child {padding-right: 0;}
.big_no {display: block;margin-bottom: 3rem;font: 400 9.6rem/1 var(--font-serif);color: transparent;-webkit-text-stroke: .1rem var(--accent);}
.principle_item .ico {width: 4.8rem;height: 4.8rem;margin-bottom: 2.6rem;color: var(--accent-deep);}
.principle_item h3 {font-size: 2.4rem;font-weight: 700;line-height: 1.4;letter-spacing: -.03em;}
.principle_item p {margin-top: 1.6rem;font-size: 1.7rem;color: var(--text-3);}
/* 06. 의료진 소개 */
.doctor_grid {display: grid;grid-template-columns: 5fr 6fr;gap: 12rem;align-items: center;}
.doctor_media {position: relative;}
.doctor_cap {margin-top: 1.6rem;font-size: 1.3rem;letter-spacing: .04em;color: var(--text-3);}
.doctor_quote {margin-top: 5rem;padding-left: 3rem;border-left: .2rem solid var(--accent);font-size: var(--fs-h3);font-weight: 300;line-height: 1.6;letter-spacing: -.03em;}
.doctor_name {margin-top: 3rem;font-size: 1.8rem;color: var(--text-3);}
.doctor_name strong {font-size: 3rem;font-weight: 700;color: var(--text);}
.doctor_name small {font-size: 1.4rem;}
.doctor_intro {margin-top: 3rem;font-size: 1.8rem;line-height: 1.9;color: var(--text-3);}
.doctor_career {margin-top: 4rem;border-top: .1rem solid var(--line);}
.doctor_career div {display: grid;grid-template-columns: 14rem 1fr;gap: 2rem;padding-block: 2rem;border-bottom: .1rem solid var(--line);}
.doctor_career dt {font-size: 1.6rem;font-weight: 700;}
.doctor_career dd {font-size: 1.7rem;color: var(--text-3);}
.doctor_career small {display: block;font-size: 1.4rem;color: var(--text-2);}
/* 07. 진료 환경 (비대칭 그리드) */
.space {background: var(--soft);}
.space_grid {display: grid;grid-template-columns: repeat(12, minmax(0, 1fr));gap: 3rem;align-items: start;}
.space_a {grid-column: 1 / 8;}
.space_b {grid-column: 8 / 13;margin-top: 12rem;}
.space_c {grid-column: 1 / 6;margin-top: -4rem;}
.space_d {grid-column: 6 / 13;margin-top: 6rem;}
.space_a .img_frame {aspect-ratio: 6 / 5;}
.space_b .img_frame {aspect-ratio: 4 / 5;}
.space_c .img_frame {aspect-ratio: 1 / 1;}
.space_d .img_frame {aspect-ratio: 14 / 9;}
.space_item figcaption {display: grid;grid-template-columns: 4.4rem 1fr;gap: .6rem 1rem;align-items: baseline;margin-top: 2.2rem;}
.space_item figcaption span {grid-row: 1 / 3;font: 400 1.4rem/1 var(--font-serif);letter-spacing: .12em;color: var(--accent-deep);}
.space_item figcaption strong {font-size: 2.2rem;font-weight: 700;}
.space_item figcaption em {font-size: 1.6rem;color: var(--text-3);}
.space_item .slot_img:not([data-parallax]) {transition: transform 1.2s var(--ease);}
.space_item:hover .img_frame.has_img .slot_img {--sc: 1.18;}
/* 08. 진료 프로세스 */
.process_list {position: relative;display: grid;grid-template-columns: repeat(4, minmax(0, 1fr));}
.process_list::before {content: '';position: absolute;top: 13.4rem;left: 3.6rem;right: calc(25% - 3.6rem);height: .1rem;background: var(--line);}
.process_list::after {content: '';position: absolute;top: 13.4rem;left: 3.6rem;right: calc(25% - 3.6rem);height: .1rem;background: var(--accent);transform-origin: left;transform: scaleX(var(--pl, 1));}
.process_item {position: relative;z-index: 1;padding-right: 4rem;}
.step_no {display: block;height: 8rem;margin-bottom: 2.4rem;font: 300 7.2rem/1 var(--font-serif);color: var(--accent-deep);}
.step_icon {display: grid;place-items: center;width: 7.2rem;height: 7.2rem;margin-bottom: 3.4rem;border: .1rem solid var(--line);border-radius: 50%;background: var(--bg);color: var(--accent-deep);transition: background .4s, color .4s, border-color .4s;}
.step_icon .ico {width: 3.2rem;height: 3.2rem;}
.process_item:hover .step_icon {background: var(--accent-deep);border-color: var(--accent-deep);color: #fff;}
.process_item h3 {font-size: 2.4rem;font-weight: 700;letter-spacing: -.03em;}
.process_item p {margin-top: 1.4rem;font-size: 1.7rem;color: var(--text-3);}
/* 09. 예약 및 방문 안내 */
.visit {background: var(--beige);}
.visit_grid {display: grid;grid-template-columns: 6fr 5fr;gap: 10rem;align-items: start;}
.info_list {margin-top: 6rem;border-top: .1rem solid rgba(114, 127, 112, .35);}
.info_list li {display: grid;grid-template-columns: 5.6rem 1fr;gap: 2.4rem;align-items: start;padding-block: 3rem;border-bottom: .1rem solid rgba(114, 127, 112, .35);}
.info_list .ico {width: 4rem;height: 4rem;color: var(--accent-deep);}
.info_list strong {display: block;margin-bottom: .6rem;font-size: 1.5rem;font-weight: 700;letter-spacing: .04em;color: var(--text-3);}
.info_list p {font-size: 1.9rem;}
.info_list .tel_num {font: 400 4rem/1.2 var(--font-serif);letter-spacing: .04em;color: var(--text);}
.visit_cta {display: flex;flex-wrap: wrap;gap: 1.4rem;margin-top: 5rem;}
.reserve_card {padding: 5.4rem 5rem;border: .1rem solid var(--line);border-radius: var(--radius);background: var(--soft);}
.reserve_card h3 {font-size: var(--fs-h3);font-weight: 700;letter-spacing: -.03em;}
.reserve_desc {margin: 1.4rem 0 3.6rem;font-size: 1.5rem;color: var(--text-3);}
.field {margin-bottom: 2.2rem;}
.field label {display: block;margin-bottom: 1rem;font-size: 1.5rem;font-weight: 700;}
.field label i {margin-left: .4rem;color: #A5483B;}
.field input[type='text'], .field input[type='tel'], .field select, .field textarea {width: 100%;height: 5.8rem;padding: 0 2rem;border: .1rem solid var(--line);border-radius: 1.2rem;background: var(--bg);font-size: 1.7rem;transition: border-color .3s, box-shadow .3s;}
.field textarea {height: 12rem;padding: 1.6rem 2rem;resize: vertical;}
.field input:focus, .field select:focus, .field textarea:focus {outline: 0;border-color: var(--accent-deep);box-shadow: 0 0 0 .3rem rgba(114, 127, 112, .22);}
.field [aria-invalid='true'] {border-color: #A5483B;}
.field .err {display: block;min-height: 2rem;margin-top: .8rem;font-size: 1.4rem;color: #A5483B;}
.field_row {display: grid;grid-template-columns: 1fr 1fr;gap: 1.6rem;}
.field.agree {margin-bottom: .6rem;}
.field.agree label {display: flex;align-items: center;gap: 1.2rem;margin: 0;font-weight: 500;cursor: pointer;}
.field.agree input {width: 2.2rem;height: 2.2rem;accent-color: var(--accent-deep);}
.agree_note {margin-bottom: 2.6rem;font-size: 1.3rem;line-height: 1.7;color: var(--text-3);}
.btn_block {width: 100%;}
.form_done {margin-top: 2.4rem;padding: 2.4rem;border-radius: 1.2rem;background: var(--beige);font-size: 1.6rem;}
.map_wrap {margin-top: 10rem;}
.map_frame {position: absolute;inset: 0;width: 100%;height: 100%;border: 0;}
.map_box {position: relative;height: 48rem;border-radius: var(--radius);background: linear-gradient(135deg, #efe7d8, #ddd0b9);overflow: hidden;}
/* 10. 반응형 (1280 / 1024 / 768) */
@media (max-width: 1280px) {
.section {padding-block: 12rem;}
.phil_grid, .doctor_grid {gap: 7rem;}
.phil_points li {grid-template-columns: 5rem 1fr;}
.phil_points em {grid-column: 2;}
.service_grid {grid-template-columns: repeat(2, minmax(0, 1fr));}
.principle_list {grid-template-columns: repeat(2, minmax(0, 1fr));gap: 6rem 0;}
.principle_item:nth-child(3) {padding-left: 0;border-left: 0;}
.principle_item:nth-child(2) {padding-right: 0;}
.visit_grid {gap: 6rem;}
.process_list {grid-template-columns: repeat(2, minmax(0, 1fr));gap: 6rem 0;}
.process_list::before, .process_list::after {display: none;}
}
@media (max-width: 1024px) {
.section {padding-block: 10rem;}
.section_head {flex-direction: column;align-items: flex-start;gap: 3rem;margin-bottom: 5rem;}
.phil_grid, .doctor_grid, .visit_grid {grid-template-columns: 1fr;}
.phil_media {max-width: 56rem;}
.doctor_media {max-width: 56rem;}
.hero_inner {padding-block: 8rem 16rem;}
.space_grid {grid-template-columns: repeat(2, minmax(0, 1fr));gap: 2.4rem;}
.space_a, .space_b, .space_c, .space_d {grid-column: auto;margin-top: 0;}
.space_a {grid-column: 1 / 3;}
.space_d {grid-column: 1 / 3;}
.map_wrap {margin-top: 7rem;}
.map_box {height: 38rem;}
}
@media (max-width: 768px) {
.section {padding-block: 7rem;}
.hero {min-height: 92svh;}
.hero_inner {padding-block: 4rem 15rem;}
.hero_sub br {display: none;}
.hero_cta {margin-top: 4rem;}
.hero_cta .btn {flex: 1 1 100%;}
.hero_foot {bottom: 2.4rem;}
.hero_slogan {font-size: 1.3rem;}
.beam, .arch_b {display: none;}
.arch_a {right: -6vw;width: 52vw;}
.phil_points li {grid-template-columns: 4rem 1fr;padding-block: 2rem;}
.phil_media {padding: 0 0 3rem 2.4rem;}
.phil_media figcaption {padding-left: 2.4rem;}
.service_grid {grid-template-columns: 1fr;gap: 1.6rem;}
.service_card {padding: 3.4rem 2.8rem 3rem;}
.service_card .ico {margin-bottom: 2.8rem;}
.principle_list {grid-template-columns: 1fr;gap: 4.4rem;}
.principle_item, .principle_item:first-child, .principle_item:nth-child(3) {padding: 0 0 0 2.4rem;border-left: .1rem solid rgba(114, 127, 112, .3);}
.big_no {font-size: 7.2rem;}
.doctor_career div {grid-template-columns: 9rem 1fr;gap: 1rem;}
.space_grid {grid-template-columns: 1fr;}
.space_a, .space_d {grid-column: auto;}
.process_list {grid-template-columns: 1fr;gap: 0;}
.process_list::before, .process_list::after {display: block;top: 3.6rem;bottom: 14rem;left: 3.6rem;right: auto;width: .1rem;height: auto;}
.process_list::after {transform-origin: top;transform: scaleY(var(--pl, 1));}
.process_item {display: grid;grid-template-columns: 7.2rem 1fr;grid-template-areas: 'icon no' 'icon title' 'icon desc';gap: 0 2.4rem;align-items: start;padding: 0 0 4.4rem;}
.step_icon {grid-area: icon;margin: 0;}
.step_no {grid-area: no;height: auto;margin: 0 0 .6rem;font-size: 4.4rem;}
.process_item h3 {grid-area: title;font-size: 2.2rem;}
.process_item p {grid-area: desc;}
.reserve_card {padding: 3.6rem 2.4rem;}
.field_row {grid-template-columns: 1fr;gap: 0;}
.info_list li {grid-template-columns: 4.4rem 1fr;gap: 1.6rem;}
.info_list .tel_num {font-size: 3.2rem;}
.visit_cta .btn {flex: 1 1 100%;}
.map_box {height: 30rem;}
}

/* 11. 섹션별 배경 효과 (장식, 낮은 대비, 느린 움직임 / 움직임 줄이기 설정에서는 정지) */
.section {overflow: hidden;}
.section > .container {position: relative;z-index: 1;}
.bg_fx {position: absolute;inset: 0;z-index: 0;overflow: hidden;pointer-events: none;}
.bg_fx i {display: block;position: absolute;}
.fx_dust {position: absolute;inset: 0;z-index: 2;width: 100%;height: 100%;pointer-events: none;}
.hero_ray {position: absolute;top: -20%;left: -40%;z-index: 1;width: 28%;height: 150%;background: linear-gradient(90deg, transparent, rgba(255, 252, 244, .6), transparent);transform: rotate(18deg);animation: ray_sweep 16s ease-in-out infinite;}
.leaf_shadow {border-radius: 0 100% 0 100%;background: linear-gradient(135deg, rgba(93, 106, 91, .15), rgba(93, 106, 91, .03));filter: blur(1.6rem);animation: leaf_sway 11s ease-in-out infinite alternate;}
.leaf_shadow.l1 {--r: -24deg;left: -6%;top: 4%;width: 34rem;height: 52rem;}
.leaf_shadow.l2 {--r: 18deg;left: 14%;top: 38%;width: 26rem;height: 44rem;animation-delay: -4s;}
.leaf_shadow.l3 {--r: -8deg;left: 34%;top: -6%;width: 22rem;height: 38rem;animation-delay: -7s;}
.branch_wrap {position: absolute;left: -3rem;bottom: 4rem;width: 26rem;height: 42rem;color: rgba(114, 127, 112, .32);transform-origin: 50% 100%;animation: branch_sway 9s ease-in-out infinite alternate;}
.fx_branch {width: 100%;height: 100%;}
.fx_ring_wrap {color: rgba(114, 127, 112, .3);}
.fx_rings {position: absolute;right: -14rem;top: -16rem;width: 64rem;height: 64rem;animation: ring_spin 90s linear infinite;}
.fx_wave_wrap {color: rgba(93, 106, 91, .3);}
.fx_wave {position: absolute;left: 0;bottom: -2rem;width: 200%;height: 22rem;animation: wave_flow 46s linear infinite;}
.doctor_blob {right: -12rem;top: 6%;width: 70rem;height: 70rem;border-radius: 50%;background: radial-gradient(circle, rgba(114, 127, 112, .17), transparent 68%);animation: blob_float 18s ease-in-out infinite alternate;}
.fx_word {position: absolute;left: 0;bottom: -3%;font: 400 clamp(22rem, 32vw, 56rem)/.8 var(--font-serif);letter-spacing: .04em;white-space: nowrap;color: transparent;-webkit-text-stroke: .1rem rgba(114, 127, 112, .3);transform: translateX(var(--wx, 0px));}
.fx_sweep {top: -30%;left: -30%;width: 22%;height: 160%;background: linear-gradient(90deg, transparent, rgba(238, 232, 222, .75), transparent);transform: rotate(16deg);animation: beam_move 14s ease-in-out infinite;}
.fx_sweep.s2 {width: 9%;opacity: .7;animation-delay: -6s;}
.fx_bokeh i {bottom: -14rem;width: calc(var(--s) * 2);height: calc(var(--s) * 2);border-radius: 50%;background: radial-gradient(circle, rgba(114, 127, 112, .24), rgba(114, 127, 112, 0) 70%);animation: bokeh_rise var(--t) linear infinite;animation-delay: calc(var(--d) * -1);}
.fx_mesh i {border-radius: 50%;}
.fx_mesh .m1 {left: -10%;top: -10%;width: 60rem;height: 60rem;background: radial-gradient(circle, rgba(255, 254, 251, .75), transparent 65%);animation: blob_float 22s ease-in-out infinite alternate;}
.fx_mesh .m2 {right: -8%;top: 18%;width: 56rem;height: 56rem;background: radial-gradient(circle, rgba(114, 127, 112, .2), transparent 65%);animation: blob_float 26s ease-in-out infinite alternate-reverse;}
.fx_mesh .m3 {left: 30%;bottom: -22%;width: 64rem;height: 64rem;background: radial-gradient(circle, rgba(214, 199, 172, .55), transparent 65%);animation: blob_float 30s ease-in-out infinite alternate;}
.service_card::before {content: '';position: absolute;inset: 0;border-radius: inherit;background: radial-gradient(28rem circle at var(--mx, 50%) var(--my, 50%), rgba(114, 127, 112, .16), transparent 62%);opacity: 0;transition: opacity .45s;pointer-events: none;}
.service_grid:hover .service_card::before {opacity: 1;}
@keyframes ray_sweep {0% {opacity: 0;transform: translateX(0) rotate(18deg);} 20% {opacity: .9;} 80% {opacity: .9;} 100% {opacity: 0;transform: translateX(440%) rotate(18deg);}}
@keyframes leaf_sway {from {transform: rotate(var(--r)) translateX(-1.6rem);} to {transform: rotate(calc(var(--r) + 7deg)) translateX(2.2rem);}}
@keyframes branch_sway {from {transform: rotate(-2deg);} to {transform: rotate(3deg);}}
@keyframes ring_spin {to {transform: rotate(360deg);}}
@keyframes wave_flow {to {transform: translateX(-50%);}}
@keyframes blob_float {from {transform: translate(0, 0) scale(1);} to {transform: translate(-6rem, 8rem) scale(1.1);}}
@keyframes beam_move {0% {transform: translateX(0) rotate(16deg);} 100% {transform: translateX(640%) rotate(16deg);}}
@keyframes bokeh_rise {0% {transform: translateY(0);opacity: 0;} 15% {opacity: 1;} 85% {opacity: 1;} 100% {transform: translateY(-110rem);opacity: 0;}}
@media (max-width: 1024px) {
.branch_wrap {width: 20rem;height: 32rem;opacity: .8;}
.fx_rings {width: 48rem;height: 48rem;}
.doctor_blob {width: 50rem;height: 50rem;}
}
@media (max-width: 768px) {
.branch_wrap, .leaf_shadow.l3, .fx_sweep.s2 {display: none;}
.fx_rings {width: 34rem;height: 34rem;right: -12rem;top: -8rem;}
.fx_wave {height: 20rem;}
.fx_word {font-size: 18rem;}
.fx_bokeh i:nth-child(n+5) {display: none;}
.fx_mesh .m1, .fx_mesh .m2, .fx_mesh .m3 {width: 36rem;height: 36rem;}
.hero_ray {display: none;}
}