refactor: 사이트 폴더명을 지역별(seoul, gyeonggi, incheon, gwangju, busan, daegu, daejeon)로 전환 및 docker-compose 반영

This commit is contained in:
2026-10-15 12:15:37 +09:00
parent a827b8e127
commit 2dcb2ae8e8
2083 changed files with 19502 additions and 574553 deletions
+7 -7
View File
@@ -8,7 +8,7 @@ services:
# 1. aeseo.cloud
aeseo_cloud_frontend:
build:
context: ./site1
context: ./seoul
dockerfile: Dockerfile
container_name: aeseo_cloud_frontend
restart: unless-stopped
@@ -27,7 +27,7 @@ services:
# 2. aeseo.shop
aeseo_shop_frontend:
build:
context: ./site2
context: ./gyeonggi
dockerfile: Dockerfile
container_name: aeseo_shop_frontend
restart: unless-stopped
@@ -46,7 +46,7 @@ services:
# 3. aeseo.site
aeseo_site_frontend:
build:
context: ./site3
context: ./incheon
dockerfile: Dockerfile
container_name: aeseo_site_frontend
restart: unless-stopped
@@ -65,7 +65,7 @@ services:
# 4. aeseo.store
aeseo_store_frontend:
build:
context: ./site4
context: ./gwangju
dockerfile: Dockerfile
container_name: aeseo_store_frontend
restart: unless-stopped
@@ -84,7 +84,7 @@ services:
# 5. soohyun.cloud
soohyun_cloud_frontend:
build:
context: ./site5
context: ./busan
dockerfile: Dockerfile
container_name: soohyun_cloud_frontend
restart: unless-stopped
@@ -103,7 +103,7 @@ services:
# 6. soohyun.store
soohyun_store_frontend:
build:
context: ./site6
context: ./daegu
dockerfile: Dockerfile
container_name: soohyun_store_frontend
restart: unless-stopped
@@ -122,7 +122,7 @@ services:
# 7. soohyun.xyz
soohyun_xyz_frontend:
build:
context: ./site7
context: ./daejeon
dockerfile: Dockerfile
container_name: soohyun_xyz_frontend
restart: unless-stopped
View File
@@ -26,7 +26,7 @@
<script setup>
const config = useRuntimeConfig()
const siteName = config.public.siteName || '클래스픽'
const siteName = config.public.siteName || '로열클래스 1:1 과외'
</script>
<style scoped>
@@ -227,9 +227,9 @@ const resetForm = () => {
width: 100%;
max-width: 580px;
background: #ffffff;
border: 1px solid #f3e8e8;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
border: 1px solid #e2e8f0;
border-radius: 14px;
box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
padding: clamp(24px, 5vw, 40px) clamp(20px, 4vw, 36px);
box-sizing: border-box;
}
@@ -241,7 +241,7 @@ const resetForm = () => {
.consult-title {
font-size: clamp(1.45rem, 3.5vw, 1.85rem);
font-weight: 800;
color: #881337;
color: #0f172a;
letter-spacing: -0.5px;
margin-bottom: 8px;
line-height: 1.3;
@@ -249,7 +249,7 @@ const resetForm = () => {
.consult-desc {
font-size: clamp(0.88rem, 2.2vw, 0.98rem);
color: #6b7280;
color: #475569;
line-height: 1.5;
letter-spacing: -0.3px;
}
@@ -274,7 +274,7 @@ const resetForm = () => {
.form-label {
font-size: 0.88rem;
font-weight: 700;
color: #374151;
color: #1e293b;
letter-spacing: -0.3px;
}
@@ -286,8 +286,8 @@ const resetForm = () => {
font-size: 0.95rem;
font-family: inherit;
color: #1e293b;
background: #fbf8f8;
border: 1px solid #e5dada;
background: #f8fafc;
border: 1px solid #cbd5e1;
border-radius: 10px;
outline: none;
transition: all 0.2s ease;
@@ -303,8 +303,8 @@ const resetForm = () => {
.form-input:focus,
.form-select:focus,
.form-textarea:focus {
border-color: #991b1b;
box-shadow: 0 0 0 3px rgba(153, 27, 27, 0.15);
border-color: #1e3a8a;
box-shadow: 0 0 0 3px rgba(30, 58, 138, 0.15);
background: #ffffff;
}
@@ -337,7 +337,7 @@ const resetForm = () => {
align-items: flex-start;
gap: 10px;
font-size: 0.82rem;
color: #6b7280;
color: #64748b;
line-height: 1.45;
cursor: pointer;
}
@@ -347,7 +347,7 @@ const resetForm = () => {
cursor: pointer;
width: 16px;
height: 16px;
accent-color: #a81d24;
accent-color: #1e3a8a;
}
.button-group {
@@ -362,7 +362,7 @@ const resetForm = () => {
font-size: 1.08rem;
font-weight: 800;
color: #ffffff;
background: #a81d24;
background: #1e3a8a;
border: none;
border-radius: 10px;
cursor: pointer;
@@ -372,7 +372,7 @@ const resetForm = () => {
}
.btn-submit:hover:not(:disabled) {
background: #881337;
background: #0f172a;
transform: translateY(-1px);
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.16);
}
@@ -389,9 +389,9 @@ const resetForm = () => {
font-size: 1.02rem;
font-weight: 800;
text-align: center;
color: #881337;
background: #f8eded;
border: 2px solid #881337;
color: #1e3a8a;
background: #f8fafc;
border: 2px solid #1e3a8a;
border-radius: 10px;
cursor: pointer;
text-decoration: none;
@@ -401,7 +401,7 @@ const resetForm = () => {
}
.btn-call:hover {
background: #f3dede;
background: #f1f5f9;
}
.success-box {
@@ -412,7 +412,7 @@ const resetForm = () => {
.success-title {
font-size: 1.25rem;
font-weight: 800;
color: #881337;
color: #0f172a;
margin-bottom: 12px;
}
@@ -427,9 +427,9 @@ const resetForm = () => {
padding: 10px 24px;
font-size: 0.9rem;
font-weight: 700;
color: #a81d24;
color: #1e3a8a;
background: transparent;
border: 1px solid #a81d24;
border: 1px solid #1e3a8a;
border-radius: 8px;
cursor: pointer;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -20,9 +20,9 @@ export default defineNuxtConfig({
runtimeConfig: {
discordWebhookUrl: process.env.DISCORD_WEBHOOK_URL || 'https://discordapp.com/api/webhooks/1557204310369116210/9J4y96kmSbYNGtw5OxRgIz7InWcM8o3f8UX0Ad71-IyofwdS7tWmXkF7dj457-I8Ypiu',
public: {
siteName: '클래스픽',
siteDomain: process.env.SITE_DOMAIN || 'https://aeseo.store',
naverVerificationKey: process.env.NAVER_VERIFICATION_KEY || '48cf582068341a6e4bebde6900b3e0a0e198f4b6'
siteName: '로열클래스 1:1 과외',
siteDomain: process.env.SITE_DOMAIN || 'https://aeseo.cloud',
naverVerificationKey: process.env.NAVER_VERIFICATION_KEY || '299523ed34c7419d7fb724426e14b5def8badac7'
}
},
@@ -51,7 +51,7 @@ export default defineNuxtConfig({
{ name: 'viewport', content: 'width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0' },
{ name: 'format-detection', content: 'telephone=no' },
// 네이버 서치어드바이저 사이트 소유확인 키 메타태그
{ name: 'naver-site-verification', content: process.env.NAVER_VERIFICATION_KEY || '48cf582068341a6e4bebde6900b3e0a0e198f4b6' }
{ name: 'naver-site-verification', content: process.env.NAVER_VERIFICATION_KEY || '299523ed34c7419d7fb724426e14b5def8badac7' }
]
}
}
+161 -159
View File
@@ -1,92 +1,92 @@
<template>
<div class="landing-container bg-[#F0FDF4] text-slate-800 antialiased relative pb-24 md:pb-12 min-h-screen w-full">
<div class="landing-container bg-[#F4F7FB] text-slate-800 antialiased relative pb-24 md:pb-12 min-h-screen w-full">
<!-- Header -->
<header class="bg-white border-b border-slate-200 sticky top-0 z-40 shadow-sm w-full">
<div class="max-w-6xl mx-auto px-4 sm:px-6 py-3.5 flex items-center justify-between">
<div class="flex items-center space-x-2">
<div class="w-9 h-9 rounded-xl bg-emerald-700 flex items-center justify-center text-white font-extrabold text-lg shadow-sm">
S
<div class="w-9 h-9 rounded-xl bg-blue-700 flex items-center justify-center text-white font-extrabold text-lg shadow-sm">
R
</div>
<div>
<span class="font-extrabold text-xl sm:text-2xl tracking-tight text-emerald-900">{{ siteName }}</span>
<span class="text-[10px] font-bold text-emerald-700 bg-emerald-50 px-2 py-0.5 rounded-full ml-1.5 border border-emerald-200">초·중등 습관코칭</span>
<span class="font-extrabold text-xl sm:text-2xl tracking-tight text-blue-900">{{ siteName }}</span>
<span class="text-[10px] font-bold text-amber-600 bg-amber-50 px-2 py-0.5 rounded-full ml-1.5 border border-amber-200">1:1 MATCHING</span>
</div>
</div>
<div class="flex items-center space-x-4">
<a href="tel:010-5961-5807" class="hidden sm:flex items-center gap-1.5 text-sm font-semibold text-slate-600 hover:text-emerald-700 transition">
<i class="fa-solid fa-phone text-emerald-700"></i>
<a href="tel:010-5961-5807" class="hidden sm:flex items-center gap-1.5 text-sm font-semibold text-slate-600 hover:text-blue-700 transition">
<i class="fa-solid fa-phone text-blue-700"></i>
<span>010-5961-5807</span>
</a>
<a href="#leadFormSection" class="bg-emerald-700 hover:bg-emerald-800 text-white text-xs sm:text-sm font-bold px-5 py-2.5 rounded-full transition shadow-md flex items-center gap-1.5">
<span>습관 진단 신청</span>
<a href="#leadFormSection" class="bg-blue-700 hover:bg-blue-800 text-white text-xs sm:text-sm font-bold px-5 py-2.5 rounded-full transition shadow-md flex items-center gap-1.5">
<span>정밀 진단 신청</span>
<i class="fa-solid fa-arrow-right text-[11px]"></i>
</a>
</div>
</div>
</header>
<!-- 메인 컨텐츠 (좌우 꽉 찬 와이드) -->
<main class="w-full bg-[#F0FDF4] min-h-screen pb-20">
<!-- 메인 컨텐츠 (좌우 꽉 찬 와이드 레이아웃) -->
<main class="w-full bg-[#F4F7FB] min-h-screen pb-20">
<!-- 히어로 섹션 (에메랄드/그린 그라데이션 풀와이드) -->
<section class="w-full bg-gradient-to-b from-[#064E3B] via-[#056D4E] to-[#047857] text-white px-4 sm:px-6 pt-12 pb-20 rounded-b-[2.5rem] relative overflow-hidden text-center shadow-lg">
<div class="absolute -right-24 -top-24 w-96 h-96 bg-emerald-400/20 rounded-full blur-3xl pointer-events-none"></div>
<div class="absolute -left-24 bottom-0 w-96 h-96 bg-teal-400/20 rounded-full blur-3xl pointer-events-none"></div>
<!-- 히어로 섹션 (화면 좌우 꽉 찬 풀 와이드) -->
<section class="w-full bg-gradient-to-b from-[#072E7A] via-[#093B9C] to-[#0B47B9] text-white px-4 sm:px-6 pt-12 pb-20 rounded-b-[2.5rem] relative overflow-hidden text-center shadow-lg">
<div class="absolute -right-24 -top-24 w-96 h-96 bg-blue-400/20 rounded-full blur-3xl pointer-events-none"></div>
<div class="absolute -left-24 bottom-0 w-96 h-96 bg-amber-400/15 rounded-full blur-3xl pointer-events-none"></div>
<div class="max-w-4xl mx-auto relative z-10">
<div class="inline-flex items-center gap-2 bg-white/10 backdrop-blur-md border border-white/20 px-4 py-1.5 rounded-full text-xs sm:text-sm font-medium text-emerald-100 mb-5 shadow-sm">
<span class="w-2.5 h-2.5 rounded-full bg-amber-400 animate-ping"></span>
<span>우리 아이 평생 성적을 결정짓는 공부 습관</span>
<div class="inline-flex items-center gap-2 bg-white/10 backdrop-blur-md border border-white/20 px-4 py-1.5 rounded-full text-xs sm:text-sm font-medium text-blue-100 mb-5 shadow-sm">
<span class="w-2.5 h-2.5 rounded-full bg-emerald-400 animate-ping"></span>
<span>2026학년도 내신 1등급 & 수능 역전 프로젝트</span>
</div>
<h1 class="text-2xl sm:text-4xl md:text-5xl font-extrabold leading-snug sm:leading-tight tracking-tight text-white mb-4">
스스로 책상에 앉게 만드는<br class="hidden sm:inline">
<span class="text-emerald-200 underline decoration-wavy decoration-emerald-300">초·중등 1:1 맞춤 학습 습관 진단</span> 무료 신청
우리 아이 성향과 수준에 맞춘<br class="hidden sm:inline">
<span class="text-amber-300 underline decoration-wavy decoration-amber-400">1:1 학습 정밀 진단 리포트</span> 무료 신청
</h1>
<p class="text-xs sm:text-base text-emerald-100/90 font-normal max-w-2xl mx-auto leading-relaxed mb-8">
기초 개념 부족과 공부 집중력 부재, 1:1 밀착 코칭으로 자신감과 성적을 동시에 올려드립니다.
<p class="text-xs sm:text-base text-blue-100/90 font-normal max-w-2xl mx-auto leading-relaxed mb-8">
단 1분 간단 입력으로 과목별 취약점 분석 리포트와 지역 검증 1타 베테랑 선생님 매칭 솔루션을 무료로 받아보세요.
</p>
<!-- 지표 카운터 -->
<div class="grid grid-cols-3 gap-3 bg-white/10 backdrop-blur-md border border-white/20 rounded-2xl p-4 sm:p-5 text-center max-w-xl mx-auto mb-6 shadow-inner">
<div>
<div class="text-[11px] sm:text-xs text-emerald-200">누적 습관 코칭</div>
<div class="font-extrabold text-base sm:text-2xl text-white mt-0.5">18,920<span class="text-xs sm:text-sm font-normal">건</span></div>
<div class="text-[11px] sm:text-xs text-blue-200">누적 정밀 진단</div>
<div class="font-extrabold text-base sm:text-2xl text-white mt-0.5">24,185<span class="text-xs sm:text-sm font-normal">건</span></div>
</div>
<div class="border-x border-white/20">
<div class="text-[11px] sm:text-xs text-emerald-200">자기주도 멘토</div>
<div class="font-extrabold text-base sm:text-2xl text-emerald-200 mt-0.5">4,120<span class="text-xs sm:text-sm font-normal">명</span></div>
<div class="text-[11px] sm:text-xs text-blue-200">검증 강사진</div>
<div class="font-extrabold text-base sm:text-2xl text-amber-300 mt-0.5">5,802<span class="text-xs sm:text-sm font-normal">명</span></div>
</div>
<div>
<div class="text-[11px] sm:text-xs text-emerald-200">학부모 만족도</div>
<div class="font-extrabold text-base sm:text-2xl text-white mt-0.5">99.1<span class="text-xs sm:text-sm font-normal">%</span></div>
<div class="text-[11px] sm:text-xs text-blue-200">학부모 만족도</div>
<div class="font-extrabold text-base sm:text-2xl text-white mt-0.5">98.6<span class="text-xs sm:text-sm font-normal">%</span></div>
</div>
</div>
<!-- 실시간 롤링 알림 -->
<div class="bg-black/30 backdrop-blur-md rounded-full px-4 py-2 flex items-center justify-center gap-2.5 text-xs text-slate-200 border border-white/15 mx-auto max-w-md shadow-md">
<span class="bg-emerald-500 text-white text-[10px] font-bold px-2 py-0.5 rounded-full">실시간</span>
<span class="bg-amber-600 text-white text-[10px] font-bold px-2 py-0.5 rounded-full">실시간</span>
<span class="truncate font-medium transition-opacity duration-300">{{ currentNotice }}</span>
</div>
</div>
</section>
<!-- 리드 수집 폼 섹션 (상단 카드 오버랩) -->
<!-- 리드 수집 폼 섹션 (상단 카드 오버랩 & 와이드 컨테이너) -->
<section id="leadFormSection" class="px-4 sm:px-6 -mt-10 relative z-20 max-w-3xl mx-auto">
<div class="bg-white rounded-3xl shadow-2xl border border-slate-200/80 p-6 sm:p-8 transition-all">
<header class="text-center mb-6 pb-4 border-b border-slate-100">
<span class="inline-block px-3 py-1 rounded-full text-xs font-bold bg-emerald-100 text-emerald-800 mb-2">
<span class="inline-block px-3 py-1 rounded-full text-xs font-bold bg-amber-100 text-amber-800 mb-2">
선착순 30명 한정 전액 무료
</span>
<h2 class="text-xl sm:text-2xl font-bold text-slate-900">
우리 아이 공부 고민을 알려주세요!
원하는 맞춤 정보를 선택해 주세요!
</h2>
<p class="text-xs sm:text-sm text-slate-500 mt-1">
공부 습관과 기초를 분석하여 다정하고 꼼꼼한 전담 멘토를 연결해 드립니다.
아이의 학습 패턴을 분석하여 최적의 솔루션과 선생님을 매칭해 드립니다.
</p>
</header>
@@ -96,37 +96,39 @@
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
<div>
<label for="studentGrade" class="block text-xs sm:text-sm font-bold text-slate-700 mb-1.5">
학년 선택 <span class="text-emerald-600">*</span>
학년 선택 <span class="text-amber-600">*</span>
</label>
<select id="studentGrade" v-model="formData.grade" required class="w-full bg-slate-50 border border-slate-300 text-slate-800 text-xs sm:text-sm rounded-xl focus:ring-2 focus:ring-emerald-600 focus:border-emerald-600 p-3 outline-none font-medium transition">
<select id="studentGrade" v-model="formData.grade" required class="w-full bg-slate-50 border border-slate-300 text-slate-800 text-xs sm:text-sm rounded-xl focus:ring-2 focus:ring-blue-600 focus:border-blue-600 p-3 outline-none font-medium transition">
<option value="" disabled>학년 선택</option>
<optgroup label="초등부 (기초 완성)">
<option value="초등 1~3학년">초등 1~3학년 (한글·연산·흥미)</option>
<option value="초등 4~6학년">초등 4~6학년 (초등심화·중등대비)</option>
<optgroup label="초등부">
<option value="초등 1~3학년">초등 1~3학년 (기초형성)</option>
<option value="초등 4~6학년">초등 4~6학년 (심화단원)</option>
</optgroup>
<optgroup label="중등부 (내신·습관)">
<option value="중학교 1학년">중학교 1학년 (자유학기제·자기주도)</option>
<option value="중학교 2학년">중학교 2학년 (내신대비·과목별개념)</option>
<option value="중학교 3학년">중학교 3학년 (고교진학·선행연계)</option>
<optgroup label="중등부">
<option value="중학교 1학년">중학교 1학년 (자유학기제)</option>
<option value="중학교 2학년">중학교 2학년 (내신본격)</option>
<option value="중학교 3학년">중학교 3학년 (고등선행)</option>
</optgroup>
<optgroup label="고등부 (내신·수능)">
<option value="고등학교 1~2학년">고등학교 1~2학년 (공통과목·내신)</option>
<option value="고등학교 3학년">고등학교 3학년 (수능 실전)</option>
<optgroup label="고등부">
<option value="고등학교 1학년">고등학교 1학년 (공통과목)</option>
<option value="고등학교 2학년">고등학교 2학년 (수능/내신)</option>
<option value="고등학교 3학년/N수">고등학교 3학년 / N수</option>
</optgroup>
</select>
</div>
<div>
<label for="weakSubject" class="block text-xs sm:text-sm font-bold text-slate-700 mb-1.5">
취약 과목 <span class="text-emerald-600">*</span>
취약 과목 <span class="text-amber-600">*</span>
</label>
<select id="weakSubject" v-model="formData.subject" required class="w-full bg-slate-50 border border-slate-300 text-slate-800 text-xs sm:text-sm rounded-xl focus:ring-2 focus:ring-emerald-600 focus:border-emerald-600 p-3 outline-none font-medium transition">
<select id="weakSubject" v-model="formData.subject" required class="w-full bg-slate-50 border border-slate-300 text-slate-800 text-xs sm:text-sm rounded-xl focus:ring-2 focus:ring-blue-600 focus:border-blue-600 p-3 outline-none font-medium transition">
<option value="" disabled>과목 선택</option>
<option value="수학">수학 (연산·서술형·개념원리)</option>
<option value="영어">영어 (파닉스·문법기초·독해)</option>
<option value="국어">국어 (어휘력·독해·교과서 읽기)</option>
<option value="과학">과학 (실험·원리·용어정리)</option>
<option value="전과목/공부습관">전과목 매일 공부 습관 완성</option>
<option value="수학">수학 (개념·심화·킬러문항)</option>
<option value="영어">영어 (문법·독해·내신서술)</option>
<option value="국어">국어 (비문학·문학·어휘)</option>
<option value="과학">과학 (물·화·생·지 탐구)</option>
<option value="사회/역사">사회 / 역사 / 한국사</option>
<option value="전과목/공부습관">전과목 종합 코칭</option>
</select>
</div>
</div>
@@ -135,7 +137,7 @@
<div>
<div class="text-xs font-semibold text-slate-500 mb-2 flex justify-between items-center">
<span>빠른 과목 픽 (PICK)</span>
<span class="text-xs text-emerald-700 font-semibold">터치 시 자동 선택</span>
<span class="text-xs text-blue-600 font-semibold">클릭 시 자동 적용</span>
</div>
<div class="grid grid-cols-5 gap-2 text-center">
<button
@@ -146,12 +148,12 @@
:class="[
'py-2 px-1 rounded-xl text-xs sm:text-sm font-bold transition shadow-sm',
formData.subject === subj.name
? 'border-2 border-emerald-600 bg-emerald-50 text-emerald-800 ring-2 ring-emerald-300/50'
: 'border border-slate-200 text-slate-700 hover:border-emerald-400 bg-white'
? 'border-2 border-amber-500 bg-amber-50 text-amber-700 ring-2 ring-amber-300/50'
: 'border border-slate-200 text-slate-700 hover:border-amber-400 bg-white'
]"
>
<span>{{ subj.label }}</span>
<span class="block text-[10px] font-normal" :class="formData.subject === subj.name ? 'text-emerald-700 font-semibold' : 'text-slate-400'">
<span class="block text-[10px] font-normal" :class="formData.subject === subj.name ? 'text-amber-600 font-semibold' : 'text-slate-400'">
{{ subj.badge }}
</span>
</button>
@@ -164,8 +166,8 @@
현재 가장 큰 고민은 무엇인가요? (복수 선택 가능)
</label>
<div class="grid grid-cols-1 sm:grid-cols-2 gap-2.5 text-xs sm:text-sm">
<label v-for="c in concernOptions" :key="c" class="flex items-center gap-2.5 p-3 bg-slate-50 border border-slate-200 rounded-xl cursor-pointer hover:bg-emerald-50/50 transition">
<input type="checkbox" :value="c" v-model="formData.concerns" class="w-4 h-4 text-emerald-600 rounded border-slate-300 focus:ring-emerald-500">
<label v-for="c in concernOptions" :key="c" class="flex items-center gap-2.5 p-3 bg-slate-50 border border-slate-200 rounded-xl cursor-pointer hover:bg-blue-50/50 transition">
<input type="checkbox" :value="c" v-model="formData.concerns" class="w-4 h-4 text-blue-600 rounded border-slate-300 focus:ring-blue-500">
<span class="text-slate-700 text-xs sm:text-sm font-medium">{{ c }}</span>
</label>
</div>
@@ -174,16 +176,16 @@
<!-- 거주 지역 / 학교 -->
<div>
<label for="regionInput" class="block text-xs sm:text-sm font-bold text-slate-700 mb-1.5">
거주 지역 및 학교명 <span class="text-slate-400 font-normal text-xs">(교과서 출판사 연계용)</span>
거주 지역 및 학교명 <span class="text-slate-400 font-normal text-xs">(정확한 기출분석용)</span>
</label>
<input type="text" id="regionInput" v-model="formData.region" placeholder="예: 서울 송파구 잠실동 / 잠신중" class="w-full bg-slate-50 border border-slate-300 text-slate-800 text-xs sm:text-sm rounded-xl focus:ring-2 focus:ring-emerald-600 focus:border-emerald-600 p-3 outline-none placeholder:text-slate-400 transition">
<input type="text" id="regionInput" v-model="formData.region" placeholder="예: 서울 강남구 대치동 / 단대부고" class="w-full bg-slate-50 border border-slate-300 text-slate-800 text-xs sm:text-sm rounded-xl focus:ring-2 focus:ring-blue-600 focus:border-blue-600 p-3 outline-none placeholder:text-slate-400 transition">
</div>
<!-- 학부모 연락처 -->
<div>
<label for="parentPhone" class="block text-xs sm:text-sm font-bold text-slate-700 mb-1.5">
학부모 연락처 <span class="text-emerald-600">*</span>
<span class="text-slate-400 font-normal text-xs">(진단 결과 및 교재 추천 발송용)</span>
학부모 연락처 <span class="text-amber-600">*</span>
<span class="text-slate-400 font-normal text-xs">(진단 리포트 발송용)</span>
</label>
<div class="relative">
<input
@@ -194,7 +196,7 @@
required
placeholder="010-0000-0000"
maxlength="13"
class="w-full bg-slate-50 border border-slate-300 text-slate-900 text-base font-semibold rounded-xl focus:ring-2 focus:ring-emerald-600 focus:border-emerald-600 p-3.5 pl-11 outline-none tracking-wider"
class="w-full bg-slate-50 border border-slate-300 text-slate-900 text-base font-semibold rounded-xl focus:ring-2 focus:ring-blue-600 focus:border-blue-600 p-3.5 pl-11 outline-none tracking-wider"
>
<i class="fa-solid fa-mobile-screen-button absolute left-4 top-4 text-slate-400 text-base"></i>
</div>
@@ -202,7 +204,7 @@
<!-- 개인정보 동의 -->
<div class="flex items-center gap-2 text-xs text-slate-500 pt-1">
<input type="checkbox" id="privacyAgree" v-model="formData.privacy" required class="w-4 h-4 text-emerald-600 rounded border-slate-300 focus:ring-emerald-500">
<input type="checkbox" id="privacyAgree" v-model="formData.privacy" required class="w-4 h-4 text-amber-600 rounded border-slate-300 focus:ring-amber-500">
<label for="privacyAgree" class="cursor-pointer">
[필수] 개인정보 수집 및 상담 안내 제공에 동의합니다.
</label>
@@ -212,10 +214,10 @@
<button
type="submit"
:disabled="isSubmitting"
class="w-full bg-gradient-to-r from-emerald-600 via-teal-600 to-emerald-600 hover:opacity-95 text-white font-extrabold text-base sm:text-lg py-4 px-6 rounded-2xl shadow-xl transition flex items-center justify-center gap-2 disabled:opacity-50"
class="w-full bg-gradient-to-r from-amber-600 via-amber-500 to-amber-600 hover:opacity-95 text-white font-extrabold text-base sm:text-lg py-4 px-6 rounded-2xl shadow-xl transition flex items-center justify-center gap-2 disabled:opacity-50"
>
<i class="fa-solid fa-seedling text-lg"></i>
<span>{{ isSubmitting ? '진단서 작성 중...' : '아이 맞춤 습관 진단 & 무료 상담 신청하기' }}</span>
<i class="fa-solid fa-file-lines text-lg"></i>
<span>{{ isSubmitting ? '신청서 접수 중...' : '내 아이 맞춤 진단 결과 & 상담 신청하기' }}</span>
</button>
<div class="text-center text-xs text-slate-400 flex items-center justify-center gap-1.5">
@@ -224,11 +226,11 @@
</div>
<!-- 안내 문구 (상담 결과 전달 시 원활 진행 안내) -->
<div class="mt-3 p-3.5 bg-emerald-50/90 border border-emerald-200/90 rounded-xl flex items-start gap-2.5 text-xs text-emerald-950 leading-relaxed shadow-sm">
<i class="fa-solid fa-circle-info text-emerald-600 mt-0.5 text-sm shrink-0"></i>
<div class="mt-3 p-3.5 bg-amber-50/90 border border-amber-200/90 rounded-xl flex items-start gap-2.5 text-xs text-amber-950 leading-relaxed shadow-sm">
<i class="fa-solid fa-circle-info text-amber-600 mt-0.5 text-sm shrink-0"></i>
<div>
<strong class="font-bold text-emerald-950 block mb-0.5">📢 원활한 상담 진행 안내</strong>
<span>상담 신청 후 안내받으신 <strong>상담결과를 매니저에게 전달해 주시면</strong> 더욱 원활하고 신속한 맞춤 강사 배정과 심층 상담이 진행됩니다. (직통 문의: <a href="tel:010-5961-5807" class="font-extrabold text-emerald-900 underline hover:text-emerald-700">010-5961-5807</a>)</span>
<strong class="font-bold text-amber-950 block mb-0.5">📢 원활한 상담 진행 안내</strong>
<span>상담 신청 후 안내받으신 <strong>상담결과를 매니저에게 전달해 주시면</strong> 더욱 원활하고 신속한 맞춤 강사 배정과 심층 상담이 진행됩니다. (직통 문의: <a href="tel:010-5961-5807" class="font-extrabold text-amber-900 underline hover:text-amber-700">010-5961-5807</a>)</span>
</div>
</div>
@@ -241,7 +243,7 @@
<span>맞춤 진단 신청이 성공적으로 접수되었습니다!</span>
</div>
<p class="leading-relaxed">
기재해주신 연락처로 <strong>‘초·중등 자기주도 공부습관 정밀 진단서’</strong>가 발송되며, 전문 학습 코칭 매니저가 유선으로 심층 분석 결과를 안내해 드립니다.
기재해주신 연락처로 <strong>‘맞춤 정밀 진단 리포트 요약본’</strong>이 발송되며, 전문 학습 매니저가 유선으로 심층 분석 결과를 안내해 드립니다.
</p>
<div class="mt-3 p-2.5 bg-white/80 rounded-xl border border-emerald-200 text-xs text-emerald-900 flex items-start gap-2">
<i class="fa-solid fa-lightbulb text-emerald-600 mt-0.5 shrink-0"></i>
@@ -255,46 +257,46 @@
<!-- 4대 혜택 섹션 (데스크톱 4열 그리드) -->
<section class="mt-16 px-4 sm:px-6 max-w-6xl mx-auto">
<header class="text-center mb-8">
<span class="text-xs sm:text-sm font-bold text-emerald-700 tracking-wider uppercase bg-emerald-100 px-3 py-1 rounded-full">EXCLUSIVE BENEFITS</span>
<h2 class="text-2xl sm:text-3xl font-extrabold text-slate-900 mt-2">새솔 맞춤과외 4대 특별 혜택</h2>
<p class="text-xs sm:text-sm text-slate-500 mt-1">공부 습관이 자리잡을 때까지 세심하게 관리합니다.</p>
<span class="text-xs sm:text-sm font-bold text-blue-700 tracking-wider uppercase bg-blue-50 px-3 py-1 rounded-full">SPECIAL BENEFIT</span>
<h2 class="text-2xl sm:text-3xl font-extrabold text-slate-900 mt-2">지금 신청 시 무료 제공되는 4대 혜택</h2>
<p class="text-xs sm:text-sm text-slate-500 mt-1">상담만 받아도 우리 아이 공부 로드맵을 명확히 세워드립니다.</p>
</header>
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-emerald-300 hover:shadow-md transition group">
<div class="w-12 h-12 rounded-2xl bg-emerald-100 text-emerald-700 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
<i class="fa-solid fa-brain"></i>
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-blue-300 hover:shadow-md transition group">
<div class="w-12 h-12 rounded-2xl bg-blue-100 text-blue-700 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
<i class="fa-solid fa-chart-pie"></i>
</div>
<span class="inline-block text-[11px] font-bold text-emerald-700 bg-emerald-50 px-2 py-0.5 rounded mb-1.5">혜택 01</span>
<h3 class="font-bold text-slate-900 text-sm sm:text-base">메타인지 공부습관 진단</h3>
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">아이의 집중 시간과 공부 방해 요인 정밀 분석</p>
</div>
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-teal-300 hover:shadow-md transition group">
<div class="w-12 h-12 rounded-2xl bg-teal-100 text-teal-700 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
<i class="fa-solid fa-book-open"></i>
</div>
<span class="inline-block text-[11px] font-bold text-teal-700 bg-teal-50 px-2 py-0.5 rounded mb-1.5">혜택 02</span>
<h3 class="font-bold text-slate-900 text-sm sm:text-base">단원별 핵심 개념 마인드맵</h3>
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">초·중등 핵심 교과 개념을 한눈에 정리하는 워크시트</p>
<span class="inline-block text-[11px] font-bold text-blue-700 bg-blue-50 px-2 py-0.5 rounded mb-1.5">혜택 01</span>
<h3 class="font-bold text-slate-900 text-sm sm:text-base">1:1 학습 성향 정밀 진단서</h3>
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">취약 단원 파악 및 과목별 공부 효율성 과학적 분석</p>
</div>
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-amber-300 hover:shadow-md transition group">
<div class="w-12 h-12 rounded-2xl bg-amber-100 text-amber-700 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
<i class="fa-solid fa-arrows-rotate"></i>
<div class="w-12 h-12 rounded-2xl bg-amber-100 text-amber-600 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
<i class="fa-solid fa-school"></i>
</div>
<span class="inline-block text-[11px] font-bold text-amber-700 bg-amber-50 px-2 py-0.5 rounded mb-1.5">혜택 03</span>
<h3 class="font-bold text-slate-900 text-sm sm:text-base">매일 15분 복습 플래너</h3>
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">당일 배운 내용을 완벽히 내 것으로 만드는 복습 루틴</p>
<span class="inline-block text-[11px] font-bold text-amber-600 bg-amber-50 px-2 py-0.5 rounded mb-1.5">혜택 02</span>
<h3 class="font-bold text-slate-900 text-sm sm:text-base">인근 3개년 학교 기출</h3>
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">해당 중·고교 출제 경향 및 고난도 킬러 문항 족보 요약</p>
</div>
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-blue-300 hover:shadow-md transition group">
<div class="w-12 h-12 rounded-2xl bg-blue-100 text-blue-700 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
<i class="fa-solid fa-hand-holding-heart"></i>
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-emerald-300 hover:shadow-md transition group">
<div class="w-12 h-12 rounded-2xl bg-emerald-100 text-emerald-600 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
<i class="fa-solid fa-clipboard-check"></i>
</div>
<span class="inline-block text-[11px] font-bold text-blue-700 bg-blue-50 px-2 py-0.5 rounded mb-1.5">혜택 04</span>
<h3 class="font-bold text-slate-900 text-sm sm:text-base">공감형 전담 멘토 매칭</h3>
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">아이의 눈높이에 맞춰 동기부여를 북돋워주는 전문 선생님</p>
<span class="inline-block text-[11px] font-bold text-emerald-600 bg-emerald-50 px-2 py-0.5 rounded mb-1.5">혜택 03</span>
<h3 class="font-bold text-slate-900 text-sm sm:text-base">오답 원인 정밀 시트</h3>
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">단순 실수인지 개념 구멍인지 5단계 원인 역추적</p>
</div>
<div class="bg-white p-5 rounded-2xl border border-slate-200/80 shadow-sm hover:border-purple-300 hover:shadow-md transition group">
<div class="w-12 h-12 rounded-2xl bg-purple-100 text-purple-600 flex items-center justify-center text-xl font-bold mb-4 group-hover:scale-110 transition-transform">
<i class="fa-solid fa-user-tie"></i>
</div>
<span class="inline-block text-[11px] font-bold text-purple-600 bg-purple-50 px-2 py-0.5 rounded mb-1.5">혜택 04</span>
<h3 class="font-bold text-slate-900 text-sm sm:text-base">명문대 1:1 매칭 멘토링</h3>
<p class="text-xs text-slate-500 mt-1.5 leading-relaxed">아이 기질과 케미가 맞는 베테랑 전문 강사진 우선 추천</p>
</div>
</div>
</section>
@@ -302,9 +304,9 @@
<!-- 성적 향상 사례 (데스크톱 와이드 2열) -->
<section class="mt-16 px-4 sm:px-6 max-w-6xl mx-auto">
<header class="text-center mb-8">
<span class="text-xs sm:text-sm font-bold text-emerald-700 tracking-wider bg-emerald-100 px-3 py-1 rounded-full">SUCCESS STORIES</span>
<h2 class="text-2xl sm:text-3xl font-extrabold text-slate-900 mt-2">실제 학생 성적 & 습관 변화</h2>
<p class="text-xs sm:text-sm text-slate-500 mt-1">새솔 1:1 코칭을 통해 공부의 재미를 찾은 학생들의 이야기입니다.</p>
<span class="text-xs sm:text-sm font-bold text-emerald-600 tracking-wider bg-emerald-50 px-3 py-1 rounded-full">PROVEN RESULTS</span>
<h2 class="text-2xl sm:text-3xl font-extrabold text-slate-900 mt-2">실제 성적 상승 및 수강 후기</h2>
<p class="text-xs sm:text-sm text-slate-500 mt-1">로열클래스 맞춤 진단 후 체계적인 관리를 받은 학생들의 변화입니다.</p>
</header>
<div class="grid grid-cols-1 md:grid-cols-2 gap-5 mb-6">
@@ -312,22 +314,22 @@
<div class="bg-white p-6 rounded-3xl border border-slate-200 shadow-sm hover:shadow-md transition">
<div class="flex items-center justify-between mb-3">
<div class="flex items-center gap-2">
<span class="bg-emerald-100 text-emerald-800 font-bold text-xs px-2.5 py-1 rounded-full">수학 기초 완성</span>
<span class="font-bold text-sm sm:text-base text-slate-800">잠실동 중2 박OO 학생</span>
<span class="bg-blue-100 text-blue-700 font-bold text-xs px-2.5 py-1 rounded-full">수학 역전</span>
<span class="font-bold text-sm sm:text-base text-slate-800">대치동 고2 김OO 학생</span>
</div>
<span class="text-xs text-slate-400">2개월 만에 달성</span>
<span class="text-xs text-slate-400">3개월 만에 달성</span>
</div>
<div>
<div class="flex justify-between text-xs sm:text-sm mb-1.5 font-semibold">
<span class="text-slate-400">코칭 전: 55점 (수포자 직전)</span>
<span class="text-emerald-700 font-bold">코칭 후: 92점 (단원평가 만점) 🎉</span>
<span class="text-slate-400">진단 전: 5등급 (42점)</span>
<span class="text-amber-600 font-bold">진단 후: 2등급 (89점) 🔥</span>
</div>
<div class="w-full bg-slate-100 rounded-full h-3 overflow-hidden">
<div class="bg-gradient-to-r from-slate-300 to-emerald-600 h-3 rounded-full" style="width: 88%"></div>
<div class="bg-gradient-to-r from-blue-400 to-amber-500 h-3 rounded-full" style="width: 82%"></div>
</div>
</div>
<p class="text-xs sm:text-sm text-slate-600 mt-3.5 bg-slate-50 p-3.5 rounded-xl leading-relaxed">
"학원에서는 부끄러워서 질문을 못 했는데, 선생님이 하나하나 차근차근 설명해주셔서 수학이 제일 재미있어졌어요."
"함수의 그래프 해석 구멍을 정확히 집어주셔서, 그 부분만 집중 보완하니 점수가 수직 상승했습니다."
</p>
</div>
@@ -335,22 +337,22 @@
<div class="bg-white p-6 rounded-3xl border border-slate-200 shadow-sm hover:shadow-md transition">
<div class="flex items-center justify-between mb-3">
<div class="flex items-center gap-2">
<span class="bg-teal-100 text-teal-800 font-bold text-xs px-2.5 py-1 rounded-full">자기주도 습관</span>
<span class="font-bold text-sm sm:text-base text-slate-800">명일동 초6 최OO 학생</span>
<span class="bg-amber-100 text-amber-700 font-bold text-xs px-2.5 py-1 rounded-full">영어 서술형</span>
<span class="font-bold text-sm sm:text-base text-slate-800">서초동 중3 이OO 학생</span>
</div>
<span class="text-xs text-slate-400">3개월 만에 달성</span>
<span class="text-xs text-slate-400">2개월 만에 달성</span>
</div>
<div>
<div class="flex justify-between text-xs sm:text-sm mb-1.5 font-semibold">
<span class="text-slate-400">코칭 전: 스마트폰 중독 (공부 30분 미만)</span>
<span class="text-teal-700 font-bold">코칭 후: 일일 2시간 자기주도 습관 완성 ✨</span>
<span class="text-slate-400">진단 전: 68점 (B등급)</span>
<span class="text-blue-700 font-bold">진단 후: 98점 (전교 4등) ✨</span>
</div>
<div class="w-full bg-slate-100 rounded-full h-3 overflow-hidden">
<div class="bg-gradient-to-r from-slate-300 to-teal-600 h-3 rounded-full" style="width: 95%"></div>
<div class="bg-gradient-to-r from-slate-400 to-blue-700 h-3 rounded-full" style="width: 95%"></div>
</div>
</div>
<p class="text-xs sm:text-sm text-slate-600 mt-3.5 bg-slate-50 p-3.5 rounded-xl leading-relaxed">
"플래너 쓰는 법을 배우고 스티커를 채우면서 매일 해야 할 공부를 스스로 끝내는 습관이 생겼습니다."
"무작정 단어만 외우다 영포자가 될 뻔했는데, 문장 구조 분석법을 배우고 학교 서술형 감점이 0점이 되었습니다."
</p>
</div>
</div>
@@ -361,16 +363,16 @@
<div class="text-amber-400 text-sm mb-2">
<i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i>
</div>
<h4 class="font-bold text-sm sm:text-base text-slate-800">잠실 레이크팰리스 정OO님</h4>
<p class="text-xs sm:text-sm text-slate-600 mt-1.5 leading-relaxed">"아이가 스스로 책상에 앉아 숙제를 끝내는 모습을 보고 정말 감동받았습니다. 선생님이 정말 친절하세요."</p>
<h4 class="font-bold text-sm sm:text-base text-slate-800">대치동 학부모 최OO님</h4>
<p class="text-xs sm:text-sm text-slate-600 mt-1.5 leading-relaxed">"아이 성향에 맞지 않는 억지 공부 대신 딱 필요한 단원만 짚어주시니 스스로 책상에 앉네요."</p>
</div>
<div class="bg-white p-5 rounded-2xl border border-slate-200 shadow-sm text-left">
<div class="text-amber-400 text-sm mb-2">
<i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i><i class="fa-solid fa-star"></i>
</div>
<h4 class="font-bold text-xs text-slate-800">위례신도시 학부모 한OO님</h4>
<p class="text-xs sm:text-sm text-slate-600 mt-1.5 leading-relaxed">"대형 학원에서 기죽어 있던 아이가 1:1로 칭찬을 많이 받더니 표정부터 밝아졌습니다."</p>
<h4 class="font-bold text-sm sm:text-base text-slate-800">분당 판교 학부모 박OO님</h4>
<p class="text-xs sm:text-sm text-slate-600 mt-1.5 leading-relaxed">"리포트 내용이 학원 상담보다 훨씬 객관적이고 정확했습니다. 선생님 케미도 정말 만족합니다."</p>
</div>
</div>
</section>
@@ -402,12 +404,12 @@
<aside class="fixed bottom-0 left-0 right-0 bg-white/95 backdrop-blur-md border-t border-slate-200 p-3 sm:p-4 z-40 shadow-2xl">
<div class="max-w-4xl mx-auto flex items-center gap-3">
<a href="tel:010-5961-5807" class="flex flex-col items-center justify-center px-4 py-2.5 bg-slate-100 hover:bg-slate-200 text-slate-800 rounded-xl text-xs font-bold shrink-0 transition" title="전화상담">
<i class="fa-solid fa-phone text-emerald-700 text-sm mb-0.5"></i>
<i class="fa-solid fa-phone text-blue-700 text-sm mb-0.5"></i>
<span>010-5961-5807</span>
</a>
<a href="#leadFormSection" class="flex-1 bg-gradient-to-r from-emerald-600 via-teal-600 to-emerald-600 hover:opacity-95 text-white font-extrabold text-sm sm:text-base py-3 sm:py-3.5 px-4 rounded-xl shadow-lg transition flex items-center justify-center gap-2">
<i class="fa-solid fa-seedling text-xs sm:text-sm"></i>
<span>지금 무료 습관 진단 & 멘토 신청하기</span>
<a href="#leadFormSection" class="flex-1 bg-gradient-to-r from-amber-600 via-amber-500 to-amber-600 hover:opacity-95 text-white font-extrabold text-sm sm:text-base py-3 sm:py-3.5 px-4 rounded-xl shadow-lg transition flex items-center justify-center gap-2">
<i class="fa-solid fa-paper-plane text-xs sm:text-sm"></i>
<span>지금 무료 진단 & 맞춤 매칭 신청하기</span>
</a>
</div>
</aside>
@@ -419,18 +421,18 @@
import { ref, reactive, onMounted } from 'vue'
const config = useRuntimeConfig()
const siteName = config.public.siteName || '새솔 1:1 맞춤과외'
const siteDomain = config.public.siteDomain || 'https://aeseo.shop'
const siteName = config.public.siteName || '로열클래스 1:1 과외'
const siteDomain = config.public.siteDomain || 'https://aeseo.cloud'
const isSubmitting = ref(false)
const submitSuccess = ref(false)
const rollingMessages = [
"서울 송파구 잠실동 중2 수학 개념 정밀 진단 접수 (방금 전)",
"서울 강동구 명일동 초6 중등선행 영어 신청 완료 (2분 전)",
"경기 하남시 미사동 중1 자기주도 공부습관 리포트 신청 (4분 전)",
"경기 성남시 위례동 초5 문해력 진단 신청 (6분 전)",
"서울 송파구 문정동 초4 기초연산 클리닉 접수 완료 (8분 전)"
"서울 서초구 방배동 중2 수학 정밀 진단 신청 완료 (방금 전)",
"서울 강남구 대치동 고1 영어 내신대비 상담 접수 (1분 전)",
"서울 송파구 잠실동 중3 과학 오답분석 리포트 신청 (3분 전)",
"경기 성남시 분당구 고2 국어 1등급 클리닉 신청 (5분 전)",
"서울 서초구 반포동 초6 중등수학 선행 진단 신청 (7분 전)"
]
const currentNotice = ref(rollingMessages[0])
let rollingIdx = 0
@@ -443,24 +445,24 @@ onMounted(() => {
})
const subjects = [
{ name: '수학', label: '수학', badge: '인기' },
{ name: '영어', label: '영어', badge: 'PICK' },
{ name: '국어', label: '국어', badge: 'PICK' },
{ name: '과학', label: '과학', badge: 'PICK' },
{ name: '전과목/공부습관', label: '전과목', badge: '추천' }
{ name: '영어', label: '영어', badge: 'PICK' },
{ name: '수학', label: '수학', badge: '인기' },
{ name: '사회/역사', label: '사회', badge: 'PICK' },
{ name: '과학', label: '과학', badge: 'PICK' }
]
const concernOptions = [
'스스로 책상에 앉지 않는 공부습관',
'교과서 기초 개념 및 연산 부족',
'대형 학원 진도 스트레스',
'중등 진학 대비 선행 불안'
'응용·심화 문제 해결력 부족',
'자기주도 공부 습관 부재',
'대형 학원 진도 맞춤 불가',
'중하위권 탈출 및 1등급 도약'
]
const formData = reactive({
grade: '초등 4~6학년',
grade: '중학교 2학년',
subject: '수학',
concerns: ['스스로 책상에 앉지 않는 공부습관'],
concerns: ['응용·심화 문제 해결력 부족'],
region: '',
phone: '',
privacy: true
@@ -468,23 +470,23 @@ const formData = reactive({
const faqs = reactive([
{
q: '1. 초등학생이나 기초가 부족한 아이도 수업이 가능한가요?',
a: '네, 물론입니다. 새솔 맞춤과외는 기초가 약하거나 공부에 흥미를 잃은 아이들을 위해 칭찬과 성취감 중심의 1:1 맞춤 커리큘럼을 제공합니다.',
q: '1. 정밀 진단 리포트와 1:1 상담은 정말 무료인가요?',
a: '네, 100% 무료입니다. 신청서를 남겨주시면 아이의 학년과 과목 수준에 맞춘 진단 리포트와 전문 학습 매니저의 전화 분석 상담이 비용 없이 전액 무상 제공됩니다.',
open: false
},
{
q: '2. 진단 신청 후 상담 절차는 어떻게 되나요?',
a: '신청 즉시 전담 학습 매니저가 유선으로 아이의 현재 학습 상태와 성향을 파악한 후, 가장 잘 맞는 공감형 선생님을 매칭해 드립니다.',
q: '2. 신청 후 매칭 연락은 언제 오나요?',
a: '접수 즉시 전담 매니저가 배정되어 영업일 기준 최대 24시간 이내에 기재해주신 학부모님 연락처로 유선 안내를 드립니다.',
open: false
},
{
q: '3. 선생님 성향이 아이와 맞지 않으면 어떻게 하나요?',
a: '수업 진행 중 아이와 성향이 맞지 않을 경우 별도의 추가 비용 없이 즉시 다른 전문 선생님으로 무상 재매칭을 진행해 드립니다.',
q: '3. 선생님이 아이와 잘 맞지 않으면 변경할 수 있나요?',
a: '네, 당연히 가능합니다. 첫 시범 수업 또는 진행 중 성향이 맞지 않을 경우 별도 수수료 없이 다른 선생님으로 무상 재매칭을 지원해 드립니다.',
open: false
},
{
q: '4. 방문 수업 외에 화상 수업도 지원되나요?',
a: '네, 대면 방문 과외뿐만 아니라 실시간 양방향 화상 과외도 가능하여 가정의 환경에 맞춰 선택하실 수 있습니다.',
q: '4. 대면 과외뿐만 아니라 비대면 화상 과외도 가능한가요?',
a: '방문 과외와 1:1 실시간 화상 과외 모두 가능합니다. 거주 지역이나 일정에 맞춰 원하시는 수업 형태로 선택하실 수 있습니다.',
open: false
}
])
@@ -512,12 +514,12 @@ async function handleSubmit() {
const res = await $fetch('/api/consult', {
method: 'POST',
body: {
name: '학부모 (습관진단신청)',
name: '학부모 (진단신청)',
phone: formData.phone,
grade: formData.grade,
schoolName: formData.region || '지역 미기재',
location: formData.region || '온라인 랜딩',
memo: `[과목]: ${formData.subject} / [고민]: ${formData.concerns.join(', ')}`,
memo: `[취약과목]: ${formData.subject} / [고민사항]: ${formData.concerns.join(', ')}`,
url: window.location.href
}
})
@@ -539,12 +541,12 @@ async function handleSubmit() {
}
useHead({
title: `${siteName} | 초·중등 자기주도 공부습관 & 1:1 맞춤과외`,
title: `${siteName} | 1:1 맞춤 학습 정밀 진단 리포트 & 과외 매칭`,
meta: [
{ name: 'naver-site-verification', content: 'bfbfcb6ed8c107d05503feed914769a29b07cf06' },
{ name: 'description', content: `${siteName} - 초·중등 기초 개념 완성 및 올바른 공부 습관 정밀 진단 리포트 무료 신청.` },
{ property: 'og:title', content: `${siteName} | 초·중등 1:1 맞춤 학습 습관 진단` },
{ property: 'og:description', content: '스스로 공부하는 힘! 학년별 맞춤 진단과 공감형 전문 멘토 매칭.' },
{ name: 'naver-site-verification', content: '299523ed34c7419d7fb724426e14b5def8badac7' },
{ name: 'description', content: `${siteName} - 우리 아이 학습 성향과 취약점 분석을 통한 1:1 맞춤 학습 정밀 진단 리포트 무료 신청.` },
{ property: 'og:title', content: `${siteName} | 1:1 맞춤 학습 정밀 진단 리포트 무료 신청` },
{ property: 'og:description', content: '학년·취약과목 맞춤 진단과 전문 컨설턴트 무료 매칭. 지금 신청 시 정밀 진단 리포트 증정!' },
{ property: 'og:url', content: siteDomain }
],
script: [
@@ -556,7 +558,7 @@ useHead({
name: siteName,
url: siteDomain,
telephone: '+82-10-5961-5807',
areaServed: '서울·경기 전지역'
areaServed: '대한민국 전지역'
})
}
]

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

+21
View File
@@ -0,0 +1,21 @@
/* site1: 로열클래스 - 클래식 로열 네이비 & 앰버 골드 */
:root {
--primary-color: #1e3a8a;
--primary-dark: #0f172a;
--primary-light: #3b82f6;
--accent-color: #d97706;
--accent-light: #fbbf24;
--hero-gradient: linear-gradient(135deg, #0b1329 0%, #1e3a8a 50%, #172554 100%);
--hero-region-color: #93c5fd;
--hero-btn-bg: linear-gradient(135deg, #d97706 0%, #b45309 100%);
--badge-bg: rgba(30, 58, 138, 0.08);
--card-radius: 10px;
--border-color: #e2e8f0;
--bg-card: #ffffff;
--bg-body: #ffffff;
--text-color: #0f172a;
--skills-bg: #f8fafc;
--coaching-bg: #f1f5f9;
--consult-bg: #f8fafc;
--footer-bg: #0b1329;
}

Before

Width:  |  Height:  |  Size: 876 B

After

Width:  |  Height:  |  Size: 876 B

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before

Width:  |  Height:  |  Size: 468 KiB

After

Width:  |  Height:  |  Size: 468 KiB

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Before

Width:  |  Height:  |  Size: 468 KiB

After

Width:  |  Height:  |  Size: 468 KiB

@@ -4,4 +4,4 @@ Allow: /
User-agent: Yeti
Allow: /
Sitemap: https://aeseo.shop/sitemap.xml
Sitemap: https://aeseo.cloud/sitemap.xml
File diff suppressed because it is too large Load Diff
@@ -2,7 +2,7 @@ import regionsData from '../../data/regions.json'
export default defineEventHandler((event) => {
const config = useRuntimeConfig()
const baseUrl = config.public.siteDomain || 'https://aeseo.site'
const baseUrl = config.public.siteDomain || 'https://aeseo.cloud'
const list = regionsData.list as Array<{ sido: string, sigungu: string, dong: string }>
const subjects = ['영어', '수학', '국어', '통합과학', '통합사회']
@@ -1,7 +1,7 @@
import type { ParsedRouteParams } from './dataHelper'
import { getShortRegionName } from './dataHelper'
export function generateSeoMeta(parsed: ParsedRouteParams, siteName = '튜터온', siteDomain = 'https://aeseo.site') {
export function generateSeoMeta(parsed: ParsedRouteParams, siteName = '로열클래스 1:1 과외', siteDomain = 'https://aeseo.cloud') {
const { sido, sigungu, dong, shortRegionName, grade, subjectName, targetTerm, fullKeyword } = parsed
const regionTitle = shortRegionName || getShortRegionName(sido, dong)
@@ -68,7 +68,7 @@ export function generateSeoMeta(parsed: ParsedRouteParams, siteName = '튜터온
return {
title: pageTitle,
meta: [
{ name: 'naver-site-verification', content: '797ab1ac988eb27c80ae544bb6aba05c2231a9c9' },
{ name: 'naver-site-verification', content: '299523ed34c7419d7fb724426e14b5def8badac7' },
{ name: 'description', content: pageDescription },
{ name: 'keywords', content: `${dong}과외, ${dong}${subjectName}과외, ${dong}${grade}과외, ${sigungu}과외, ${dong}학원, ${dong}내신대비, ${subjectName}1:1과외` },
{ property: 'og:type', content: 'website' },
-21
View File
@@ -1,21 +0,0 @@
const inlineConfig = {
"nuxt": {}
}
/** client **/
import { _replaceAppConfig } from '#app/config'
// Vite - webpack is handled directly in #app/config
if (import.meta.dev && !import.meta.nitro && import.meta.hot) {
import.meta.hot.accept((newModule) => {
if (newModule) {
_replaceAppConfig(newModule.default)
}
})
}
/** client-end **/
export default inlineConfig
-256
View File
@@ -1,256 +0,0 @@
import type { DefineComponent, SlotsType } from 'vue'
type IslandComponent<T> = DefineComponent<{}, {refresh: () => Promise<void>}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, SlotsType<{ fallback: { error: unknown } }>> & T
type HydrationStrategies = {
hydrateOnVisible?: IntersectionObserverInit | true
hydrateOnIdle?: number | true
hydrateOnInteraction?: keyof HTMLElementEventMap | Array<keyof HTMLElementEventMap> | true
hydrateOnMediaQuery?: string
hydrateAfter?: number
hydrateWhen?: boolean
hydrateNever?: true
}
type LazyComponent<T> = DefineComponent<HydrationStrategies, {}, {}, {}, {}, {}, {}, { hydrated: () => void }> & T
export const AppFooter: typeof import("../components/AppFooter.vue")['default']
export const CoachingSystem: typeof import("../components/CoachingSystem.vue")['default']
export const ConsultForm: typeof import("../components/ConsultForm.vue")['default']
export const FaqAccordion: typeof import("../components/FaqAccordion.vue")['default']
export const HeroBanner: typeof import("../components/HeroBanner.vue")['default']
export const NearbySchools: typeof import("../components/NearbySchools.vue")['default']
export const ProcessGuide: typeof import("../components/ProcessGuide.vue")['default']
export const QuickMetrics: typeof import("../components/QuickMetrics.vue")['default']
export const SubjectMastery: typeof import("../components/SubjectMastery.vue")['default']
export const SuccessStories: typeof import("../components/SuccessStories.vue")['default']
export const TeacherVerification: typeof import("../components/TeacherVerification.vue")['default']
/**
* Displays the welcome screen used by new Nuxt projects.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-welcome
*/
export const NuxtWelcome: typeof import("../../site1/node_modules/nuxt/dist/app/components/welcome.vue")['default']
/**
* Renders the selected layout around pages or error content.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-layout
*/
export const NuxtLayout: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-layout")['default']
/**
* Catches client-side errors from its default slot and renders an error slot.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-error-boundary
*/
export const NuxtErrorBoundary: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-error-boundary.vue")['default']
/**
* Renders its default slot only on the client, with an optional server fallback.
*
* @see https://nuxt.com/docs/4.x/api/components/client-only
*/
export const ClientOnly: typeof import("../../site1/node_modules/nuxt/dist/app/components/client-only")['default']
/**
* Renders its content only during development.
*
* @see https://nuxt.com/docs/4.x/api/components/dev-only
*/
export const DevOnly: typeof import("../../site1/node_modules/nuxt/dist/app/components/dev-only")['default']
export const ServerPlaceholder: typeof import("../../site1/node_modules/nuxt/dist/app/components/server-placeholder")['default']
/**
* A drop-in replacement for Vue Router's `<RouterLink>` and the HTML `<a>` element.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-link
*/
export const NuxtLink: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-link")['default']
/**
* Displays a progress bar during page navigation.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-loading-indicator
*/
export const NuxtLoadingIndicator: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-loading-indicator")['default']
/**
* Formats dates and times consistently across server and client using the user's locale.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-time
*/
export const NuxtTime: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-time.vue")['default']
/**
* Announces route changes to assistive technologies using the current page title.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-route-announcer
*/
export const NuxtRouteAnnouncer: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default']
/**
* Announces dynamic content changes to assistive technologies.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-announcer
*/
export const NuxtAnnouncer: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-announcer")['default']
/**
* Renders an optimized image through the Nuxt Image module.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-img
*/
export const NuxtImg: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg']
/**
* Renders responsive optimized images through the Nuxt Image module.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-picture
*/
export const NuxtPicture: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture']
/**
* Renders the current page from the `pages/` directory.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-page
*/
export const NuxtPage: typeof import("../../site1/node_modules/nuxt/dist/pages/runtime/page")['default']
export const NoScript: typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['NoScript']
export const Link: typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Link']
export const Base: typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Base']
export const Title: typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Title']
export const Meta: typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Meta']
export const Style: typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Style']
export const Head: typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Head']
export const Html: typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Html']
export const Body: typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Body']
/**
* Renders a non-interactive server component without shipping client-side JavaScript.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-island
*/
export const NuxtIsland: typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-island")['default']
export const LazyAppFooter: LazyComponent<typeof import("../components/AppFooter.vue")['default']>
export const LazyCoachingSystem: LazyComponent<typeof import("../components/CoachingSystem.vue")['default']>
export const LazyConsultForm: LazyComponent<typeof import("../components/ConsultForm.vue")['default']>
export const LazyFaqAccordion: LazyComponent<typeof import("../components/FaqAccordion.vue")['default']>
export const LazyHeroBanner: LazyComponent<typeof import("../components/HeroBanner.vue")['default']>
export const LazyNearbySchools: LazyComponent<typeof import("../components/NearbySchools.vue")['default']>
export const LazyProcessGuide: LazyComponent<typeof import("../components/ProcessGuide.vue")['default']>
export const LazyQuickMetrics: LazyComponent<typeof import("../components/QuickMetrics.vue")['default']>
export const LazySubjectMastery: LazyComponent<typeof import("../components/SubjectMastery.vue")['default']>
export const LazySuccessStories: LazyComponent<typeof import("../components/SuccessStories.vue")['default']>
export const LazyTeacherVerification: LazyComponent<typeof import("../components/TeacherVerification.vue")['default']>
/**
* Lazy-loaded version of `<NuxtWelcome>`.
*
* Displays the welcome screen used by new Nuxt projects.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-welcome
*/
export const LazyNuxtWelcome: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/welcome.vue")['default']>
/**
* Lazy-loaded version of `<NuxtLayout>`.
*
* Renders the selected layout around pages or error content.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-layout
*/
export const LazyNuxtLayout: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-layout")['default']>
/**
* Lazy-loaded version of `<NuxtErrorBoundary>`.
*
* Catches client-side errors from its default slot and renders an error slot.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-error-boundary
*/
export const LazyNuxtErrorBoundary: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-error-boundary.vue")['default']>
/**
* Lazy-loaded version of `<ClientOnly>`.
*
* Renders its default slot only on the client, with an optional server fallback.
*
* @see https://nuxt.com/docs/4.x/api/components/client-only
*/
export const LazyClientOnly: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/client-only")['default']>
/**
* Lazy-loaded version of `<DevOnly>`.
*
* Renders its content only during development.
*
* @see https://nuxt.com/docs/4.x/api/components/dev-only
*/
export const LazyDevOnly: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/dev-only")['default']>
export const LazyServerPlaceholder: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/server-placeholder")['default']>
/**
* Lazy-loaded version of `<NuxtLink>`.
*
* A drop-in replacement for Vue Router's `<RouterLink>` and the HTML `<a>` element.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-link
*/
export const LazyNuxtLink: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-link")['default']>
/**
* Lazy-loaded version of `<NuxtLoadingIndicator>`.
*
* Displays a progress bar during page navigation.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-loading-indicator
*/
export const LazyNuxtLoadingIndicator: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-loading-indicator")['default']>
/**
* Lazy-loaded version of `<NuxtTime>`.
*
* Formats dates and times consistently across server and client using the user's locale.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-time
*/
export const LazyNuxtTime: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-time.vue")['default']>
/**
* Lazy-loaded version of `<NuxtRouteAnnouncer>`.
*
* Announces route changes to assistive technologies using the current page title.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-route-announcer
*/
export const LazyNuxtRouteAnnouncer: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default']>
/**
* Lazy-loaded version of `<NuxtAnnouncer>`.
*
* Announces dynamic content changes to assistive technologies.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-announcer
*/
export const LazyNuxtAnnouncer: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-announcer")['default']>
/**
* Lazy-loaded version of `<NuxtImg>`.
*
* Renders an optimized image through the Nuxt Image module.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-img
*/
export const LazyNuxtImg: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg']>
/**
* Lazy-loaded version of `<NuxtPicture>`.
*
* Renders responsive optimized images through the Nuxt Image module.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-picture
*/
export const LazyNuxtPicture: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture']>
/**
* Lazy-loaded version of `<NuxtPage>`.
*
* Renders the current page from the `pages/` directory.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-page
*/
export const LazyNuxtPage: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/pages/runtime/page")['default']>
export const LazyNoScript: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['NoScript']>
export const LazyLink: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Link']>
export const LazyBase: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Base']>
export const LazyTitle: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Title']>
export const LazyMeta: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Meta']>
export const LazyStyle: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Style']>
export const LazyHead: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Head']>
export const LazyHtml: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Html']>
export const LazyBody: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/head/runtime/components")['Body']>
/**
* Lazy-loaded version of `<NuxtIsland>`.
*
* Renders a non-interactive server component without shipping client-side JavaScript.
*
* @see https://nuxt.com/docs/4.x/api/components/nuxt-island
*/
export const LazyNuxtIsland: LazyComponent<typeof import("../../site1/node_modules/nuxt/dist/app/components/nuxt-island")['default']>
export const componentNames: string[]
-1
View File
@@ -1 +0,0 @@
import{E as e,_ as t,h as n,i as r,n as i,p as a,t as o,v as s,x as c,y as l}from"#entry";var u={class:`antialiased bg-white dark:bg-neutral-950 dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-neutral-950 tracking-wide`},d={class:`max-w-520px text-center`},f=[`textContent`],p=[`textContent`],m=[`textContent`],h={class:`flex items-center justify-center w-full`},g=[`textContent`],_=o({__name:`error-404`,props:{appName:{type:String,default:`Nuxt`},status:{type:Number,default:404},statusText:{type:String,default:`Page not found`},description:{type:String,default:`Sorry, the page you are looking for could not be found.`},backHome:{type:String,default:`Go back home`},backToPrevious:{type:String,default:`Go back`}},setup(o){let _=o;return r({title:`${_.status} - ${_.statusText} | ${_.appName}`,script:[{innerHTML:`(()=>{if(!(window.history.state&&window.history.state.back||document.referrer.startsWith(window.location.origin+"/")))return;const t=document.querySelector("[data-back-home]"),e=document.querySelector("[data-back-previous]");t&&e&&(e.onclick=()=>window.history.back(),t.hidden=!0,e.hidden=!1)})();`,tagPosition:`bodyClose`}],style:[{innerHTML:`*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:after,:before{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{-webkit-text-decoration:inherit;text-decoration:inherit}a,button{color:inherit}button{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0;text-transform:none}[type=button],button{-webkit-appearance:button;background-color:#0000;background-image:none}h1,h2,p{margin:0}button{cursor:pointer}[hidden]:where(:not([hidden=until-found])){display:none}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }`}]}),(r,_)=>{let v=i;return l(),n(`div`,u,[a(`div`,d,[a(`h1`,{class:`font-medium leading-none mb-4 sm:text-[72px] tabular-nums text-[56px]`,textContent:e(o.status)},null,8,f),a(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:e(o.statusText)},null,8,p),a(`p`,{class:`mb-4 px-2 text-md text-neutral-500`,textContent:e(o.description)},null,8,m),a(`div`,h,[s(v,{to:`/`,"data-back-home":``,class:`font-medium hover:text-[#00DC82] text-sm underline underline-offset-3`},{default:c(()=>[t(e(o.backHome),1)]),_:1}),_[0]||=t(),a(`button`,{type:`button`,"data-back-previous":``,hidden:``,class:`appearance-none bg-transparent border-0 cursor-pointer font-medium font-sans hover:text-[#00DC82] p-0 text-inherit text-sm underline underline-offset-3`,textContent:e(o.backToPrevious)},null,8,g)])])])}}},[[`__scopeId`,`data-v-5f53d16d`]]);export{_ as default};
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{E as e,a as t,b as n,f as r,h as i,i as a,m as o,n as s,p as c,t as l,v as u,w as d,x as f,y as p}from"#entry";import{a as m,c as h,d as g,f as _,g as v,h as y,i as b,l as x,m as S,p as C,r as w,s as T,t as E,u as D}from"./clcP0wZC.js";var O={class:`landing-page-wrap`},k={class:`region-finder-section`},A={class:`rf-container`},j={class:`region-chips-grid`},M={class:`chip-sido`},N={class:`chip-dong`},P=l({__name:`index`,setup(l){let P=t(),F=b(36),I=w(`english`),L=m(`황금동`)||{fullName:`대한민국 전국 전 지역`,sido:`전국`,sigungu:`전지역`,dong:`전국`},R=E({region:L,sido:`전국`,sigungu:`맞춤`,dong:`1:1`,grade:`초중고`,subjectName:`전과목`,targetTerm:`방문·화상과외`,fullKeyword:`전국 초중고 1:1 방문 과외 및 실시간 화상과외`},P.public.siteName,P.public.siteDomain);return a({title:`${P.public.siteName} | 전국 초·중·고 1:1 맞춤 방문과외 & 화상코칭`,meta:R.meta,link:R.link,script:R.script}),(t,a)=>{let l=v,m=y,b=s,w=S,E=C,P=_,R=g,z=D,B=x,V=h,H=T;return p(),i(`div`,O,[u(l,{region:d(L),grade:`초·중·고`,subjectName:`국영수사과`},null,8,[`region`]),u(m,{regionDong:`전국`}),c(`section`,k,[c(`div`,A,[a[0]||=c(`span`,{class:`rf-badge`},`🗺️ 전국 568개 동 1:1 맞춤 배정`,-1),a[1]||=c(`h2`,{class:`rf-title`},`우리 동네 전문 과외 선생님 찾기`,-1),a[2]||=c(`p`,{class:`rf-desc`},`희망하시는 지역이나 과목을 클릭하시면 학교별 기출 분석과 커리큘럼을 즉시 확인하실 수 있습니다.`,-1),c(`div`,j,[(p(!0),i(r,null,n(d(F),t=>(p(),o(b,{key:t.dong,to:`/${encodeURIComponent(t.dong)}-중학생-영어`,class:`rf-chip`},{default:f(()=>[c(`span`,M,e(t.sido.slice(0,2)),1),c(`span`,N,e(t.dong)+` 과외`,1)]),_:2},1032,[`to`]))),128))])])]),u(w,{regionDong:`주요 학군`}),u(E,{regionDong:`전국`,grade:`중·고등`,curriculum:d(I)},null,8,[`curriculum`]),u(P),u(R),u(z,{regionDong:`수강생`}),u(B),u(V,{regionDong:`전국`}),u(H,{regionName:`전국 전 지역`,defaultSubject:`영어`})])}}},[[`__scopeId`,`data-v-1f02a2cd`]]);export{P as default};
-1
View File
@@ -1 +0,0 @@
import{E as e,_ as t,a as n,b as r,f as i,h as a,i as o,m as s,n as c,p as l,r as u,t as d,v as f,w as p,x as m,y as h}from"#entry";import{c as g,d as _,f as v,g as y,h as b,i as x,l as S,m as C,n as w,o as T,p as E,r as D,s as O,t as k,u as A}from"./clcP0wZC.js";var j={class:`landing-page-wrap`},M={class:`breadcrumb-container`,"aria-label":`breadcrumb`},N={class:`bc-current`},P={class:`bc-current`},F={class:`bc-current`},I={class:`internal-links-section`},L={class:`il-container`},R={class:`il-title`},z={class:`il-chips`},B=d({__name:`[...slug]`,setup(d){let B=u(),V=n(),H=B.params.slug,U=T(H),W=D(U.subjectKey),G=w(),K=x(12),q=k(U,V.public.siteName,V.public.siteDomain);return o({title:q.title,meta:q.meta,link:q.link,script:q.script}),(n,o)=>{let u=c,d=y,x=b,w=C,T=E,D=v,k=_,B=A,V=S,H=g,q=O;return h(),a(`div`,j,[l(`nav`,M,[f(u,{to:`/`,class:`bc-link`},{default:m(()=>[...o[0]||=[t(`홈`,-1)]]),_:1}),o[1]||=l(`span`,{class:`bc-sep`},`>`,-1),l(`span`,N,e(p(U).sido),1),o[2]||=l(`span`,{class:`bc-sep`},`>`,-1),l(`span`,P,e(p(U).sigungu),1),o[3]||=l(`span`,{class:`bc-sep`},`>`,-1),l(`span`,F,[l(`strong`,null,e(p(U).dong)+` `+e(p(U).grade)+` `+e(p(U).subjectName),1)])]),f(d,{region:p(U).region,grade:p(U).grade,subjectName:p(U).subjectName},null,8,[`region`,`grade`,`subjectName`]),f(x,{regionDong:p(U).dong},null,8,[`regionDong`]),f(w,{regionDong:p(U).dong},null,8,[`regionDong`]),f(T,{regionDong:p(U).dong,grade:p(U).grade,curriculum:p(W)},null,8,[`regionDong`,`grade`,`curriculum`]),f(D),f(k),f(B,{regionDong:p(U).dong},null,8,[`regionDong`]),f(V),f(H,{regionDong:p(U).dong},null,8,[`regionDong`]),l(`section`,I,[l(`div`,L,[l(`h3`,R,`🌐 `+e(p(U).dong)+` 및 인근 지역 과목별 맞춤 과외 바로가기`,1),l(`div`,z,[(h(!0),a(i,null,r(p(G),n=>(h(),s(u,{key:n.key,to:`/${encodeURIComponent(p(U).dong)}-${encodeURIComponent(p(U).grade)}-${encodeURIComponent(n.name)}`,class:`il-chip`},{default:m(()=>[t(e(p(U).dong)+` `+e(n.name)+` 과외 `,1)]),_:2},1032,[`to`]))),128)),(h(!0),a(i,null,r(p(K),n=>(h(),s(u,{key:n.dong,to:`/${encodeURIComponent(n.dong)}-${encodeURIComponent(p(U).grade)}-${encodeURIComponent(p(U).subjectName)}`,class:`il-chip`},{default:m(()=>[t(e(n.dong)+` `+e(p(U).subjectName),1)]),_:2},1032,[`to`]))),128))])])]),f(q,{regionName:p(U).region.fullName,defaultSubject:p(U).subjectName},null,8,[`regionName`,`defaultSubject`])])}}},[[`__scopeId`,`data-v-0a1670fb`]]);export{B as default};
-1
View File
@@ -1 +0,0 @@
import{E as e,h as t,i as n,p as r,t as i,y as a}from"#entry";var o={class:`antialiased bg-white dark:bg-neutral-950 dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-neutral-950 tracking-wide`},s={class:`max-w-520px text-center`},c=[`textContent`],l=[`textContent`],u=[`textContent`],d=i({__name:`error-500`,props:{appName:{type:String,default:`Nuxt`},status:{type:Number,default:500},statusText:{type:String,default:`Internal server error`},description:{type:String,default:`This page is temporarily unavailable.`},refresh:{type:String,default:`Refresh this page`}},setup(i){let d=i;return n({title:`${d.status} - ${d.statusText} | ${d.appName}`,script:[],style:[{innerHTML:`*,:after,:before{box-sizing:border-box;border-style:solid;border-width:0;border-color:var(--un-default-border-color,#e5e7eb)}:after,:before{--un-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }`}]}),(n,d)=>(a(),t(`div`,o,[r(`div`,s,[r(`h1`,{class:`font-medium leading-none mb-4 sm:text-[72px] tabular-nums text-[56px]`,textContent:e(i.status)},null,8,c),r(`h2`,{class:`font-semibold mb-2 sm:text-3xl text-2xl`,textContent:e(i.statusText)},null,8,l),r(`p`,{class:`mb-4 px-2 text-md text-neutral-500`,textContent:e(i.description)},null,8,u)])]))}},[[`__scopeId`,`data-v-02e6d203`]]);export{d as default};
-1
View File
@@ -1 +0,0 @@
.landing-page-wrap[data-v-0a1670fb]{width:100%;overflow-x:hidden}.breadcrumb-container[data-v-0a1670fb]{color:#64748b;flex-wrap:wrap;align-items:center;gap:6px;max-width:1080px;margin:12px auto;padding:0 16px;font-size:calc(clamp(.75rem,1.8vw,.84rem));display:flex}.bc-link[data-v-0a1670fb]{color:var(--primary-color,#1e3a8a);font-weight:600}.bc-sep[data-v-0a1670fb]{color:#cbd5e1}.bc-current[data-v-0a1670fb]{color:#334155}.internal-links-section[data-v-0a1670fb]{max-width:1080px;margin:0 auto 40px;padding:0 16px}.il-container[data-v-0a1670fb]{border:1px solid var(--border-color,#e2e8f0);border-radius:var(--card-radius,12px);background:#f8fafc;padding:20px}.il-title[data-v-0a1670fb]{color:var(--text-color,#0f172a);margin-bottom:14px;font-size:calc(clamp(.92rem,2.2vw,1.05rem));font-weight:800}.il-chips[data-v-0a1670fb]{flex-wrap:wrap;gap:8px;display:flex}.il-chip[data-v-0a1670fb]{border:1px solid var(--border-color,#cbd5e1);color:#334155;background:#fff;border-radius:9999px;padding:6px 12px;font-size:calc(clamp(.75rem,1.8vw,.84rem));transition:all .2s;display:inline-block}.il-chip[data-v-0a1670fb]:hover{border-color:var(--primary-color,#1e3a8a);color:var(--primary-color,#1e3a8a);background:#1e3a8a0d}
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
.site-footer[data-v-3b29a045]{background:var(--footer-bg,#0f172a);color:#94a3b8;border-top:1px solid #ffffff14;padding:calc(clamp(30px,5vw,50px)) 16px;font-size:calc(clamp(.72rem,1.8vw,.82rem))}.footer-container[data-v-3b29a045]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;max-width:1080px;margin:0 auto;display:flex}.footer-info[data-v-3b29a045]{flex:500px}.footer-brand[data-v-3b29a045]{color:#fff;margin-bottom:8px;font-size:calc(clamp(1rem,2.4vw,1.15rem));font-weight:800}.footer-meta[data-v-3b29a045]{word-break:keep-all;margin-bottom:12px;line-height:1.6}.footer-copy[data-v-3b29a045]{color:#64748b}.footer-links[data-v-3b29a045]{flex-shrink:0;align-items:center;gap:10px;display:flex}.f-link[data-v-3b29a045]{color:#cbd5e1}.f-divider[data-v-3b29a045]{color:#475569}@media (width<=640px){.footer-container[data-v-3b29a045]{flex-direction:column;gap:16px}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{color:var(--text-color,#1e293b);-webkit-text-size-adjust:100%;word-break:keep-all;font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Helvetica Neue,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif;font-size:16px;line-height:1.5}body,html{background-color:var(--bg-body,#fff);overflow-x:hidden}body{width:100%;min-width:280px}.site-wrapper{flex-direction:column;width:100%;min-height:100vh;display:flex;overflow-x:hidden}.site-main{flex:1;width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit}
-1
View File
@@ -1 +0,0 @@
.grid[data-v-5f53d16d]{display:grid}.mb-2[data-v-5f53d16d]{margin-bottom:.5rem}.mb-4[data-v-5f53d16d]{margin-bottom:1rem}.max-w-520px[data-v-5f53d16d]{max-width:520px}.min-h-screen[data-v-5f53d16d]{min-height:100vh}.w-full[data-v-5f53d16d]{width:100%}.flex[data-v-5f53d16d]{display:flex}.cursor-pointer[data-v-5f53d16d]{cursor:pointer}.appearance-none[data-v-5f53d16d]{appearance:none}.place-content-center[data-v-5f53d16d]{place-content:center}.items-center[data-v-5f53d16d]{align-items:center}.justify-center[data-v-5f53d16d]{justify-content:center}.overflow-hidden[data-v-5f53d16d]{overflow:hidden}.border-0[data-v-5f53d16d]{border-width:0}.bg-transparent[data-v-5f53d16d]{background-color:#0000}.bg-white[data-v-5f53d16d]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.p-0[data-v-5f53d16d]{padding:0}.px-2[data-v-5f53d16d]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-5f53d16d]{text-align:center}.text-\[56px\][data-v-5f53d16d]{font-size:56px}.text-2xl[data-v-5f53d16d]{font-size:1.5rem;line-height:2rem}.text-sm[data-v-5f53d16d]{font-size:.875rem;line-height:1.25rem}.text-neutral-500[data-v-5f53d16d]{--un-text-opacity:1;color:rgb(115 115 115/var(--un-text-opacity))}.text-neutral-950[data-v-5f53d16d]{--un-text-opacity:1;color:rgb(10 10 10/var(--un-text-opacity))}.hover\:text-\[\#00DC82\][data-v-5f53d16d]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.text-inherit[data-v-5f53d16d]{color:inherit}.font-medium[data-v-5f53d16d]{font-weight:500}.font-semibold[data-v-5f53d16d]{font-weight:600}.leading-none[data-v-5f53d16d]{line-height:1}.tracking-wide[data-v-5f53d16d]{letter-spacing:.025em}.font-sans[data-v-5f53d16d]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-5f53d16d]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.underline[data-v-5f53d16d]{text-decoration-line:underline}.underline-offset-3[data-v-5f53d16d]{text-underline-offset:3px}.antialiased[data-v-5f53d16d]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-neutral-950[data-v-5f53d16d]{--un-bg-opacity:1;background-color:rgb(10 10 10/var(--un-bg-opacity))}.dark\:text-white[data-v-5f53d16d]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (width>=640px){.sm\:text-\[72px\][data-v-5f53d16d]{font-size:72px}.sm\:text-3xl[data-v-5f53d16d]{font-size:1.875rem;line-height:2.25rem}}
-1
View File
@@ -1 +0,0 @@
.grid[data-v-02e6d203]{display:grid}.mb-2[data-v-02e6d203]{margin-bottom:.5rem}.mb-4[data-v-02e6d203]{margin-bottom:1rem}.max-w-520px[data-v-02e6d203]{max-width:520px}.min-h-screen[data-v-02e6d203]{min-height:100vh}.place-content-center[data-v-02e6d203]{place-content:center}.overflow-hidden[data-v-02e6d203]{overflow:hidden}.bg-white[data-v-02e6d203]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-02e6d203]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-02e6d203]{text-align:center}.text-\[56px\][data-v-02e6d203]{font-size:56px}.text-2xl[data-v-02e6d203]{font-size:1.5rem;line-height:2rem}.text-neutral-500[data-v-02e6d203]{--un-text-opacity:1;color:rgb(115 115 115/var(--un-text-opacity))}.text-neutral-950[data-v-02e6d203]{--un-text-opacity:1;color:rgb(10 10 10/var(--un-text-opacity))}.font-medium[data-v-02e6d203]{font-weight:500}.font-semibold[data-v-02e6d203]{font-weight:600}.leading-none[data-v-02e6d203]{line-height:1}.tracking-wide[data-v-02e6d203]{letter-spacing:.025em}.font-sans[data-v-02e6d203]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-02e6d203]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased[data-v-02e6d203]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\:bg-neutral-950[data-v-02e6d203]{--un-bg-opacity:1;background-color:rgb(10 10 10/var(--un-bg-opacity))}.dark\:text-white[data-v-02e6d203]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (width>=640px){.sm\:text-\[72px\][data-v-02e6d203]{font-size:72px}.sm\:text-3xl[data-v-02e6d203]{font-size:1.875rem;line-height:2.25rem}}
-1
View File
@@ -1 +0,0 @@
.landing-page-wrap[data-v-1f02a2cd]{width:100%;overflow-x:hidden}.region-finder-section[data-v-1f02a2cd]{max-width:1080px;margin:0 auto 50px;padding:0 16px}.rf-container[data-v-1f02a2cd]{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--card-radius,16px);text-align:center;padding:calc(clamp(24px,5vw,40px)) calc(clamp(16px,4vw,32px));box-shadow:0 4px 16px #0000000a}.rf-badge[data-v-1f02a2cd]{color:var(--primary-color,#1e3a8a);background:var(--badge-bg,#1e3a8a14);border-radius:9999px;margin-bottom:8px;padding:5px 12px;font-size:calc(clamp(.78rem,2vw,.88rem));font-weight:700;display:inline-block}.rf-title[data-v-1f02a2cd]{color:var(--text-color,#1e293b);letter-spacing:-.6px;margin-bottom:6px;font-size:calc(clamp(1.3rem,3.8vw,1.95rem));font-weight:800}.rf-desc[data-v-1f02a2cd],.rf-title[data-v-1f02a2cd]{word-break:keep-all}.rf-desc[data-v-1f02a2cd]{color:#64748b;margin-bottom:24px;font-size:calc(clamp(.85rem,2.2vw,.98rem))}.region-chips-grid[data-v-1f02a2cd]{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.rf-chip[data-v-1f02a2cd]{border:1px solid var(--border-color,#e2e8f0);color:#334155;background:#f8fafc;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-size:calc(clamp(.8rem,2vw,.88rem));transition:all .2s;display:flex}.rf-chip[data-v-1f02a2cd]:hover{background:var(--primary-color,#1e3a8a);color:#fff;border-color:var(--primary-color,#1e3a8a);transform:translateY(-2px)}.rf-chip:hover .chip-sido[data-v-1f02a2cd]{color:#fff;background:#fff3}.chip-sido[data-v-1f02a2cd]{color:#475569;background:#e2e8f0;border-radius:4px;padding:2px 6px;font-size:.72rem;font-weight:800}.chip-dong[data-v-1f02a2cd]{font-weight:700}
File diff suppressed because one or more lines are too long
@@ -1,4 +0,0 @@
import style_0 from "./entry-styles-1.mjs-CzJNKBbH.js";
export default [
style_0
]
@@ -1,6 +0,0 @@
//#region components/CoachingSystem.vue?vue&type=style&index=0&scoped=b904ba0d&inline&used&lang.css
var CoachingSystem_vue_vue_type_style_index_0_scoped_b904ba0d_inline_used_lang_default = ".coaching-section[data-v-b904ba0d]{max-width:1080px;margin:0 auto 50px;padding:0 16px}.coaching-inner[data-v-b904ba0d]{background:var(--coaching-bg,#f1f5f9);border-radius:var(--card-radius,16px);grid-template-columns:1.15fr .85fr;align-items:center;gap:30px;padding:calc(clamp(24px,5vw,44px)) calc(clamp(18px,4vw,36px));display:grid}.coaching-badge[data-v-b904ba0d]{color:var(--primary-color,#1e3a8a);background:#fffc;border-radius:9999px;margin-bottom:12px;padding:5px 12px;font-size:calc(clamp(.78rem,2vw,.88rem));font-weight:700;display:inline-block}.coaching-title[data-v-b904ba0d]{color:var(--text-color,#0f172a);letter-spacing:-.6px;margin-bottom:14px;font-size:calc(clamp(1.3rem,3.8vw,1.95rem));font-weight:800;line-height:1.35}.coaching-title strong[data-v-b904ba0d]{color:var(--primary-color,#1e3a8a)}.coaching-desc[data-v-b904ba0d]{color:#475569;word-break:keep-all;margin-bottom:22px;font-size:calc(clamp(.85rem,2.2vw,.98rem));line-height:1.6}.coaching-points[data-v-b904ba0d]{flex-direction:column;gap:14px;display:flex}.cp-item[data-v-b904ba0d]{align-items:flex-start;gap:12px;display:flex}.cp-icon[data-v-b904ba0d]{flex-shrink:0;font-size:1.4rem}.cp-title[data-v-b904ba0d]{color:var(--text-color,#0f172a);margin-bottom:2px;font-size:calc(clamp(.88rem,2.2vw,.98rem));font-weight:800}.cp-desc[data-v-b904ba0d]{color:#64748b;word-break:keep-all;font-size:calc(clamp(.76rem,1.8vw,.85rem));line-height:1.45}.visual-card[data-v-b904ba0d]{background:#fff;border-radius:12px;padding:20px;box-shadow:0 8px 24px #00000014}.vc-header[data-v-b904ba0d]{border-bottom:1px solid #e2e8f0;margin-bottom:16px;padding-bottom:10px}.vc-tag[data-v-b904ba0d]{color:var(--accent-color,#d97706);letter-spacing:.5px;font-size:.72rem;font-weight:800;display:block}.vc-title[data-v-b904ba0d]{color:#0f172a;font-size:1.05rem;font-weight:800}.timeline-step[data-v-b904ba0d]{gap:12px;margin-bottom:14px;display:flex;position:relative}.step-circle[data-v-b904ba0d]{color:#475569;background:#e2e8f0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:800;display:flex}.timeline-step.active .step-circle[data-v-b904ba0d]{background:var(--accent-color,#d97706);color:#fff}.timeline-step strong[data-v-b904ba0d]{color:#1e293b;margin-bottom:2px;font-size:.85rem;display:block}.timeline-step p[data-v-b904ba0d]{color:#64748b;word-break:keep-all;font-size:.76rem;line-height:1.4}@media (width<=820px){.coaching-inner[data-v-b904ba0d]{grid-template-columns:1fr}}";
//#endregion
export { CoachingSystem_vue_vue_type_style_index_0_scoped_b904ba0d_inline_used_lang_default as default };
//# sourceMappingURL=CoachingSystem-styles-1.mjs-CG6t1zkM.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +0,0 @@
import style_0 from "./CoachingSystem-styles-1.mjs-CG6t1zkM.js";
export default [
style_0
]
@@ -1,6 +0,0 @@
//#region components/ConsultForm.vue?vue&type=style&index=0&scoped=87bcffe1&inline&used&lang.css
var ConsultForm_vue_vue_type_style_index_0_scoped_87bcffe1_inline_used_lang_default = ".consult-section[data-v-87bcffe1]{background:var(--consult-bg,#f8fafc);border-top:1px solid var(--border-color,#e2e8f0);margin-top:40px;padding:calc(clamp(40px,7vw,70px)) 16px}.consult-container[data-v-87bcffe1]{max-width:680px;margin:0 auto}.consult-header[data-v-87bcffe1]{text-align:center;margin-bottom:28px}.consult-badge[data-v-87bcffe1]{color:var(--accent-color,#d97706);background:#d977061a;border-radius:9999px;margin-bottom:8px;padding:5px 12px;font-size:calc(clamp(.78rem,2vw,.88rem));font-weight:700;display:inline-block}.consult-title[data-v-87bcffe1]{color:var(--text-color,#0f172a);letter-spacing:-.6px;word-break:keep-all;font-size:calc(clamp(1.3rem,3.8vw,1.95rem));font-weight:800;line-height:1.35}.consult-desc[data-v-87bcffe1]{color:#64748b;word-break:keep-all;margin-top:8px;font-size:calc(clamp(.85rem,2.2vw,.98rem));line-height:1.6}.consult-form[data-v-87bcffe1]{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--card-radius,16px);padding:calc(clamp(18px,4vw,32px)) calc(clamp(14px,3.5vw,28px));box-shadow:0 10px 30px #0000000d}.form-grid[data-v-87bcffe1]{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.form-group[data-v-87bcffe1]{flex-direction:column;display:flex}.form-group.full-width[data-v-87bcffe1]{grid-column:span 2}.form-label[data-v-87bcffe1]{color:#334155;margin-bottom:6px;font-size:calc(clamp(.82rem,2vw,.9rem));font-weight:700}.required[data-v-87bcffe1]{color:#ef4444}.form-input[data-v-87bcffe1],.form-select[data-v-87bcffe1],.form-textarea[data-v-87bcffe1]{border:1.5px solid var(--border-color,#cbd5e1);color:#1e293b;box-sizing:border-box;background:#fff;border-radius:8px;width:100%;padding:12px 14px;font-size:calc(clamp(.85rem,2vw,.95rem));transition:border-color .2s,box-shadow .2s}.form-input[data-v-87bcffe1]:focus,.form-select[data-v-87bcffe1]:focus,.form-textarea[data-v-87bcffe1]:focus{border-color:var(--primary-color,#1e3a8a);outline:none;box-shadow:0 0 0 3px #1e3a8a26}.radio-group[data-v-87bcffe1]{flex-wrap:wrap;gap:10px;display:flex}.radio-label[data-v-87bcffe1]{border:1px solid var(--border-color,#cbd5e1);cursor:pointer;word-break:keep-all;background:#f8fafc;border-radius:8px;flex:calc(33.333% - 10px);align-items:center;gap:6px;min-width:110px;padding:8px 12px;font-size:calc(clamp(.8rem,2vw,.88rem));display:inline-flex}.radio-label[data-v-87bcffe1]:has(input:checked){border-color:var(--primary-color,#1e3a8a);color:var(--primary-color,#1e3a8a);background:#1e3a8a0d;font-weight:700}.privacy-wrap[data-v-87bcffe1]{margin:18px 0}.privacy-label[data-v-87bcffe1]{color:#64748b;cursor:pointer;align-items:center;gap:8px;font-size:calc(clamp(.76rem,1.8vw,.84rem));display:flex}.btn-submit[data-v-87bcffe1]{color:#fff;background:var(--hero-btn-bg,linear-gradient(135deg,#1e3a8a 0,#0f172a 100%));border-radius:var(--card-radius,10px);cursor:pointer;border:none;width:100%;min-height:48px;padding:calc(clamp(14px,3.5vw,18px));font-size:calc(clamp(.95rem,2.6vw,1.15rem));font-weight:800;transition:transform .2s,box-shadow .2s;box-shadow:0 8px 20px #00000026}.btn-submit[data-v-87bcffe1]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 26px #0003}.btn-submit[data-v-87bcffe1]:disabled{opacity:.7;cursor:not-allowed}.submit-note[data-v-87bcffe1]{color:#94a3b8;text-align:center;margin-top:10px;font-size:calc(clamp(.72rem,1.7vw,.8rem))}.success-box[data-v-87bcffe1]{text-align:center;background:#fff;border:2px solid #10b981;border-radius:16px;padding:calc(clamp(24px,5vw,40px)) calc(clamp(16px,4vw,24px));box-shadow:0 8px 24px #10b9811f}.success-icon[data-v-87bcffe1]{margin-bottom:10px;font-size:2.5rem}.success-title[data-v-87bcffe1]{color:#065f46;margin-bottom:8px;font-size:calc(clamp(1.15rem,3vw,1.4rem));font-weight:800}.success-desc[data-v-87bcffe1]{color:#475569;margin-bottom:20px;font-size:calc(clamp(.85rem,2.2vw,.95rem));line-height:1.6}.btn-reset[data-v-87bcffe1]{color:#fff;cursor:pointer;background:#10b981;border:none;border-radius:8px;padding:10px 24px;font-size:.9rem;font-weight:700;display:inline-block}@media (width<=600px){.form-grid[data-v-87bcffe1]{grid-template-columns:1fr;gap:12px}.form-group.full-width[data-v-87bcffe1]{grid-column:span 1}.radio-label[data-v-87bcffe1]{flex:100%}}";
//#endregion
export { ConsultForm_vue_vue_type_style_index_0_scoped_87bcffe1_inline_used_lang_default as default };
//# sourceMappingURL=ConsultForm-styles-1.mjs-_HL4NzLU.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +0,0 @@
import style_0 from "./ConsultForm-styles-1.mjs-_HL4NzLU.js";
export default [
style_0
]
@@ -1,6 +0,0 @@
//#region components/FaqAccordion.vue?vue&type=style&index=0&scoped=18410270&inline&used&lang.css
var FaqAccordion_vue_vue_type_style_index_0_scoped_18410270_inline_used_lang_default = ".faq-section[data-v-18410270]{max-width:860px;margin:0 auto 50px;padding:0 16px}.section-header[data-v-18410270]{text-align:center;margin-bottom:28px}.section-badge[data-v-18410270]{color:var(--primary-color,#1e3a8a);background:var(--badge-bg,#1e3a8a14);border-radius:9999px;margin-bottom:8px;padding:5px 12px;font-size:calc(clamp(.78rem,2vw,.88rem));font-weight:700;display:inline-block}.section-title[data-v-18410270]{color:var(--text-color,#1e293b);letter-spacing:-.6px;word-break:keep-all;font-size:calc(clamp(1.3rem,3.8vw,1.95rem));font-weight:800;line-height:1.35}.section-desc[data-v-18410270]{color:#64748b;word-break:keep-all;margin-top:6px;font-size:calc(clamp(.85rem,2.2vw,.98rem))}.faq-list[data-v-18410270]{flex-direction:column;gap:12px;display:flex}.faq-item[data-v-18410270]{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--card-radius,12px);overflow:hidden;box-shadow:0 2px 8px #00000008}.faq-question[data-v-18410270]{text-align:left;cursor:pointer;width:100%;color:var(--text-color,#0f172a);background:0 0;border:none;gap:12px;padding:calc(clamp(14px,3vw,18px));font-size:calc(clamp(.9rem,2.2vw,1.02rem));font-weight:800}.faq-question[data-v-18410270],.q-icon[data-v-18410270]{align-items:center;display:flex}.q-icon[data-v-18410270]{background:var(--primary-color,#1e3a8a);color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;width:26px;height:26px;font-size:.85rem;font-weight:900}.q-text[data-v-18410270]{word-break:keep-all;flex-grow:1;line-height:1.45}.toggle-icon[data-v-18410270]{color:#94a3b8;flex-shrink:0;font-size:.8rem}.faq-answer[data-v-18410270]{border-top:1px solid var(--border-color,#f1f5f9);background:#f8fafc;gap:12px;padding:0 calc(clamp(14px,3vw,18px)) calc(clamp(16px,3vw,20px));display:flex}.a-icon[data-v-18410270]{background:var(--accent-color,#d97706);color:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:12px;font-size:.85rem;font-weight:900;display:flex}.a-text[data-v-18410270]{color:#334155;word-break:keep-all;margin-top:12px;font-size:calc(clamp(.82rem,2vw,.92rem));line-height:1.65}";
//#endregion
export { FaqAccordion_vue_vue_type_style_index_0_scoped_18410270_inline_used_lang_default as default };
//# sourceMappingURL=FaqAccordion-styles-1.mjs-HJCuut1_.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +0,0 @@
import style_0 from "./FaqAccordion-styles-1.mjs-HJCuut1_.js";
export default [
style_0
]
@@ -1,6 +0,0 @@
//#region components/HeroBanner.vue?vue&type=style&index=0&scoped=e0aecd9e&inline&used&lang.css
var HeroBanner_vue_vue_type_style_index_0_scoped_e0aecd9e_inline_used_lang_default = ".hero-banner[data-v-e0aecd9e]{background:var(--hero-gradient,linear-gradient(135deg,#0f172a 0,#1e3a8a 100%));color:#fff;text-align:center;padding:calc(clamp(40px,8vw,80px)) 16px calc(clamp(35px,6vw,60px));position:relative;overflow:hidden;box-shadow:0 4px 20px #00000026}.hero-banner[data-v-e0aecd9e]:before{content:\"\";pointer-events:none;background:radial-gradient(circle at 50% 20%,#d9770626,#0000 60%);position:absolute;inset:0}.hero-container[data-v-e0aecd9e]{z-index:1;max-width:900px;margin:0 auto;position:relative}.hero-badge-wrap[data-v-e0aecd9e]{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-bottom:20px;display:flex}.hero-badge[data-v-e0aecd9e]{background:var(--accent-color,#d97706);color:#fff;letter-spacing:-.3px;padding:6px 14px;font-size:calc(clamp(.78rem,2.2vw,.9rem));font-weight:700}.hero-badge[data-v-e0aecd9e],.hero-subbadge[data-v-e0aecd9e]{border-radius:9999px;display:inline-block}.hero-subbadge[data-v-e0aecd9e]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#e2e8f0;background:#ffffff26;padding:6px 12px;font-size:calc(clamp(.75rem,2vw,.85rem))}.hero-title[data-v-e0aecd9e]{word-break:keep-all;letter-spacing:-.8px;margin-bottom:18px;font-size:calc(clamp(1.65rem,5vw,2.85rem));font-weight:900;line-height:1.3}.region-highlight[data-v-e0aecd9e]{color:var(--hero-region-color,#cbd5e1);font-size:.85em;font-weight:700}.subject-highlight[data-v-e0aecd9e]{color:var(--accent-light,#fbbf24);text-underline-offset:6px;text-decoration:underline}.hero-desc[data-v-e0aecd9e]{color:#e2e8f0;word-break:keep-all;margin-bottom:30px;font-size:calc(clamp(.92rem,2.6vw,1.15rem));line-height:1.65}.hero-cta-group[data-v-e0aecd9e]{flex-direction:column;align-items:center;gap:14px;margin-bottom:26px;display:flex}.btn-hero-primary[data-v-e0aecd9e]{color:#fff;background:var(--hero-btn-bg,linear-gradient(135deg,#d97706 0,#b45309 100%));border-radius:var(--card-radius,12px);justify-content:center;align-items:center;width:100%;max-width:480px;min-height:48px;padding:calc(clamp(14px,3.5vw,18px)) calc(clamp(20px,5vw,36px));font-size:calc(clamp(.95rem,2.8vw,1.2rem));font-weight:800;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 8px 24px #d9770659}.btn-hero-primary[data-v-e0aecd9e]:hover{transform:translateY(-2px);box-shadow:0 12px 28px #d9770673}.hero-call-info[data-v-e0aecd9e]{color:#cbd5e1;align-items:center;gap:6px;font-size:calc(clamp(.85rem,2.2vw,.95rem));display:flex}.hero-call-info strong[data-v-e0aecd9e]{color:#fff;font-size:1.1em}.hero-tags[data-v-e0aecd9e]{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.tag-item[data-v-e0aecd9e]{color:#cbd5e1;background:#ffffff14;border:1px solid #ffffff26;border-radius:6px;padding:4px 10px;font-size:calc(clamp(.72rem,1.8vw,.82rem))}";
//#endregion
export { HeroBanner_vue_vue_type_style_index_0_scoped_e0aecd9e_inline_used_lang_default as default };
//# sourceMappingURL=HeroBanner-styles-1.mjs-CXrMFolm.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +0,0 @@
import style_0 from "./HeroBanner-styles-1.mjs-CXrMFolm.js";
export default [
style_0
]
@@ -1,6 +0,0 @@
//#region components/NearbySchools.vue?vue&type=style&index=0&scoped=90793738&inline&used&lang.css
var NearbySchools_vue_vue_type_style_index_0_scoped_90793738_inline_used_lang_default = ".schools-section[data-v-90793738]{max-width:1080px;margin:0 auto 50px;padding:0 16px}.section-header[data-v-90793738]{text-align:center;margin-bottom:30px}.section-badge[data-v-90793738]{color:var(--primary-color,#1e3a8a);background:var(--badge-bg,#1e3a8a14);border-radius:9999px;margin-bottom:8px;padding:5px 12px;font-size:calc(clamp(.78rem,2vw,.88rem));font-weight:700;display:inline-block}.section-title[data-v-90793738]{color:var(--text-color,#1e293b);letter-spacing:-.6px;word-break:keep-all;font-size:calc(clamp(1.3rem,3.8vw,1.95rem));font-weight:800;line-height:1.35}.section-desc[data-v-90793738]{color:#64748b;word-break:keep-all;max-width:720px;margin-top:8px;margin-left:auto;margin-right:auto;font-size:calc(clamp(.85rem,2.2vw,.98rem))}.schools-grid[data-v-90793738]{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.school-card[data-v-90793738]{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--card-radius,14px);padding:calc(clamp(18px,3.5vw,26px));position:relative;box-shadow:0 4px 14px #0000000a}.school-type-badge[data-v-90793738]{border-radius:4px;margin-bottom:10px;padding:3px 8px;font-size:.75rem;font-weight:700;display:inline-block}.school-type-badge.middle[data-v-90793738]{color:#0369a1;background:#e0f2fe}.school-type-badge.high[data-v-90793738]{color:#b45309;background:#fef3c7}.school-name[data-v-90793738]{color:var(--text-color,#0f172a);letter-spacing:-.4px;margin-bottom:10px;font-size:calc(clamp(1.05rem,2.6vw,1.25rem));font-weight:800}.school-focus[data-v-90793738]{color:#334155;border-bottom:1px dashed var(--border-color,#e2e8f0);word-break:keep-all;margin-bottom:14px;padding-bottom:12px;font-size:calc(clamp(.82rem,2vw,.92rem));line-height:1.6}.school-checklist[data-v-90793738]{flex-direction:column;gap:8px;list-style:none;display:flex}.school-checklist li[data-v-90793738]{color:#475569;word-break:keep-all;font-size:calc(clamp(.8rem,2vw,.9rem));line-height:1.5}@media (width<=640px){.schools-grid[data-v-90793738]{grid-template-columns:1fr}}";
//#endregion
export { NearbySchools_vue_vue_type_style_index_0_scoped_90793738_inline_used_lang_default as default };
//# sourceMappingURL=NearbySchools-styles-1.mjs-CCimGbkc.js.map
@@ -1 +0,0 @@
{"version":3,"file":"NearbySchools-styles-1.mjs-CCimGbkc.js","names":[],"sources":["../../../../components/NearbySchools.vue"],"sourcesContent":["<template>\n <section class=\"schools-section\">\n <div class=\"section-header\">\n <span class=\"section-badge\">🏫 학교별 1:1 맞춤 출제경향</span>\n <h2 class=\"section-title\">{{ regionDong }} 인근 주요 중·고교 내신 기출 정밀 분석</h2>\n <p class=\"section-desc\">\n 학교마다 교과서, 부교재, 서술형 채점 기준이 완전히 다릅니다. {{ regionDong }} 전문 강사진이 학교별 출제 족보를 1:1로 맞춤 대비합니다.\n </p>\n </div>\n\n <div class=\"schools-grid\">\n <div class=\"school-card\">\n <div class=\"school-type-badge middle\">중학교</div>\n <h3 class=\"school-name\">{{ regionDong }} 관내 주요 중학교</h3>\n <p class=\"school-focus\"><strong>내신 평가 특징:</strong> 자유학기제 이후 중2·중3 지필평가 난이도 급상승, 교과서 외 부교재 외부지문 출제 비중 확대</p>\n <ul class=\"school-checklist\">\n <li>✓ 교과서 핵심 문법 응용 킬러 서술형 1:1 대비</li>\n <li>✓ 3개년 중간·기말고사 기출 족보 유사 변형 문항 풀이</li>\n <li>✓ 수행평가(말하기·쓰기·보고서) 만점 기준 첨삭</li>\n </ul>\n </div>\n\n <div class=\"school-card\">\n <div class=\"school-type-badge high\">고등학교</div>\n <h3 class=\"school-name\">{{ regionDong }} 관내 일반고 및 자사·특목고</h3>\n <p class=\"school-focus\"><strong>내신 평가 특징:</strong> 모의고사 변형 부교재(수능특강·올림포스) 연계율 70% 이상, 1등급 가르는 복합 서술형 영작/킬러 문항</p>\n <ul class=\"school-checklist\">\n <li>✓ 5등급 상대평가 체제 1등급 선점 집중 훈련</li>\n <li>✓ 학교 부교재 전 지문 어휘·문맥 변형 심층 분석</li>\n <li>✓ 시간 부족 방지를 위한 실전 50분 타임어택 훈련</li>\n </ul>\n </div>\n </div>\n </section>\n</template>\n\n<script setup>\ndefineProps({\n regionDong: {\n type: String,\n required: true\n }\n})\n</script>\n\n<style scoped>\n.schools-section {\n max-width: 1080px;\n margin: 0 auto 50px;\n padding: 0 16px;\n}\n\n.section-header {\n text-align: center;\n margin-bottom: 30px;\n}\n\n.section-badge {\n display: inline-block;\n font-size: clamp(0.78rem, 2vw, 0.88rem);\n font-weight: 700;\n color: var(--primary-color, #1e3a8a);\n background: var(--badge-bg, rgba(30, 58, 138, 0.08));\n padding: 5px 12px;\n border-radius: 9999px;\n margin-bottom: 8px;\n}\n\n.section-title {\n font-size: clamp(1.3rem, 3.8vw, 1.95rem);\n font-weight: 800;\n color: var(--text-color, #1e293b);\n letter-spacing: -0.6px;\n word-break: keep-all;\n line-height: 1.35;\n}\n\n.section-desc {\n font-size: clamp(0.85rem, 2.2vw, 0.98rem);\n color: #64748b;\n margin-top: 8px;\n word-break: keep-all;\n max-width: 720px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.schools-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 18px;\n}\n\n.school-card {\n background: var(--bg-card, #ffffff);\n border: 1px solid var(--border-color, #e2e8f0);\n border-radius: var(--card-radius, 14px);\n padding: clamp(18px, 3.5vw, 26px);\n box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);\n position: relative;\n}\n\n.school-type-badge {\n display: inline-block;\n font-size: 0.75rem;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n margin-bottom: 10px;\n}\n\n.school-type-badge.middle {\n background: #e0f2fe;\n color: #0369a1;\n}\n\n.school-type-badge.high {\n background: #fef3c7;\n color: #b45309;\n}\n\n.school-name {\n font-size: clamp(1.05rem, 2.6vw, 1.25rem);\n font-weight: 800;\n color: var(--text-color, #0f172a);\n margin-bottom: 10px;\n letter-spacing: -0.4px;\n}\n\n.school-focus {\n font-size: clamp(0.82rem, 2vw, 0.92rem);\n line-height: 1.6;\n color: #334155;\n margin-bottom: 14px;\n padding-bottom: 12px;\n border-bottom: 1px dashed var(--border-color, #e2e8f0);\n word-break: keep-all;\n}\n\n.school-checklist {\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.school-checklist li {\n font-size: clamp(0.8rem, 2vw, 0.9rem);\n color: #475569;\n line-height: 1.5;\n word-break: keep-all;\n}\n\n@media (max-width: 640px) {\n .schools-grid {\n grid-template-columns: 1fr;\n }\n}\n</style>\n"],"mappings":""}
@@ -1 +0,0 @@
{"file":"NearbySchools-styles-1.mjs-CCimGbkc.js","mappings":"","names":[],"sources":["../../../../components/NearbySchools.vue"],"sourcesContent":["<template>\n <section class=\"schools-section\">\n <div class=\"section-header\">\n <span class=\"section-badge\">🏫 학교별 1:1 맞춤 출제경향</span>\n <h2 class=\"section-title\">{{ regionDong }} 인근 주요 중·고교 내신 기출 정밀 분석</h2>\n <p class=\"section-desc\">\n 학교마다 교과서, 부교재, 서술형 채점 기준이 완전히 다릅니다. {{ regionDong }} 전문 강사진이 학교별 출제 족보를 1:1로 맞춤 대비합니다.\n </p>\n </div>\n\n <div class=\"schools-grid\">\n <div class=\"school-card\">\n <div class=\"school-type-badge middle\">중학교</div>\n <h3 class=\"school-name\">{{ regionDong }} 관내 주요 중학교</h3>\n <p class=\"school-focus\"><strong>내신 평가 특징:</strong> 자유학기제 이후 중2·중3 지필평가 난이도 급상승, 교과서 외 부교재 외부지문 출제 비중 확대</p>\n <ul class=\"school-checklist\">\n <li>✓ 교과서 핵심 문법 응용 킬러 서술형 1:1 대비</li>\n <li>✓ 3개년 중간·기말고사 기출 족보 유사 변형 문항 풀이</li>\n <li>✓ 수행평가(말하기·쓰기·보고서) 만점 기준 첨삭</li>\n </ul>\n </div>\n\n <div class=\"school-card\">\n <div class=\"school-type-badge high\">고등학교</div>\n <h3 class=\"school-name\">{{ regionDong }} 관내 일반고 및 자사·특목고</h3>\n <p class=\"school-focus\"><strong>내신 평가 특징:</strong> 모의고사 변형 부교재(수능특강·올림포스) 연계율 70% 이상, 1등급 가르는 복합 서술형 영작/킬러 문항</p>\n <ul class=\"school-checklist\">\n <li>✓ 5등급 상대평가 체제 1등급 선점 집중 훈련</li>\n <li>✓ 학교 부교재 전 지문 어휘·문맥 변형 심층 분석</li>\n <li>✓ 시간 부족 방지를 위한 실전 50분 타임어택 훈련</li>\n </ul>\n </div>\n </div>\n </section>\n</template>\n\n<script setup>\ndefineProps({\n regionDong: {\n type: String,\n required: true\n }\n})\n</script>\n\n<style scoped>\n.schools-section {\n max-width: 1080px;\n margin: 0 auto 50px;\n padding: 0 16px;\n}\n\n.section-header {\n text-align: center;\n margin-bottom: 30px;\n}\n\n.section-badge {\n display: inline-block;\n font-size: clamp(0.78rem, 2vw, 0.88rem);\n font-weight: 700;\n color: var(--primary-color, #1e3a8a);\n background: var(--badge-bg, rgba(30, 58, 138, 0.08));\n padding: 5px 12px;\n border-radius: 9999px;\n margin-bottom: 8px;\n}\n\n.section-title {\n font-size: clamp(1.3rem, 3.8vw, 1.95rem);\n font-weight: 800;\n color: var(--text-color, #1e293b);\n letter-spacing: -0.6px;\n word-break: keep-all;\n line-height: 1.35;\n}\n\n.section-desc {\n font-size: clamp(0.85rem, 2.2vw, 0.98rem);\n color: #64748b;\n margin-top: 8px;\n word-break: keep-all;\n max-width: 720px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.schools-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 18px;\n}\n\n.school-card {\n background: var(--bg-card, #ffffff);\n border: 1px solid var(--border-color, #e2e8f0);\n border-radius: var(--card-radius, 14px);\n padding: clamp(18px, 3.5vw, 26px);\n box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);\n position: relative;\n}\n\n.school-type-badge {\n display: inline-block;\n font-size: 0.75rem;\n font-weight: 700;\n padding: 3px 8px;\n border-radius: 4px;\n margin-bottom: 10px;\n}\n\n.school-type-badge.middle {\n background: #e0f2fe;\n color: #0369a1;\n}\n\n.school-type-badge.high {\n background: #fef3c7;\n color: #b45309;\n}\n\n.school-name {\n font-size: clamp(1.05rem, 2.6vw, 1.25rem);\n font-weight: 800;\n color: var(--text-color, #0f172a);\n margin-bottom: 10px;\n letter-spacing: -0.4px;\n}\n\n.school-focus {\n font-size: clamp(0.82rem, 2vw, 0.92rem);\n line-height: 1.6;\n color: #334155;\n margin-bottom: 14px;\n padding-bottom: 12px;\n border-bottom: 1px dashed var(--border-color, #e2e8f0);\n word-break: keep-all;\n}\n\n.school-checklist {\n list-style: none;\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.school-checklist li {\n font-size: clamp(0.8rem, 2vw, 0.9rem);\n color: #475569;\n line-height: 1.5;\n word-break: keep-all;\n}\n\n@media (max-width: 640px) {\n .schools-grid {\n grid-template-columns: 1fr;\n }\n}\n</style>\n"],"version":3}
@@ -1,4 +0,0 @@
import style_0 from "./NearbySchools-styles-1.mjs-CCimGbkc.js";
export default [
style_0
]
@@ -1,6 +0,0 @@
//#region components/ProcessGuide.vue?vue&type=style&index=0&scoped=686ff019&inline&used&lang.css
var ProcessGuide_vue_vue_type_style_index_0_scoped_686ff019_inline_used_lang_default = ".process-section[data-v-686ff019]{max-width:1080px;margin:0 auto 50px;padding:0 16px}.section-header[data-v-686ff019]{text-align:center;margin-bottom:28px}.section-badge[data-v-686ff019]{color:var(--primary-color,#1e3a8a);background:var(--badge-bg,#1e3a8a14);border-radius:9999px;margin-bottom:8px;padding:5px 12px;font-size:calc(clamp(.78rem,2vw,.88rem));font-weight:700;display:inline-block}.section-title[data-v-686ff019]{color:var(--text-color,#1e293b);letter-spacing:-.6px;word-break:keep-all;font-size:calc(clamp(1.3rem,3.8vw,1.95rem));font-weight:800;line-height:1.35}.section-desc[data-v-686ff019]{color:#64748b;word-break:keep-all;margin-top:6px;font-size:calc(clamp(.85rem,2.2vw,.98rem))}.process-flow[data-v-686ff019]{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--card-radius,16px);justify-content:space-between;align-items:center;gap:10px;padding:calc(clamp(20px,4vw,32px)) calc(clamp(16px,3vw,24px));display:flex;box-shadow:0 4px 14px #0000000a}.flow-step[data-v-686ff019]{text-align:center;flex:1}.step-num-circle[data-v-686ff019]{background:var(--primary-color,#1e3a8a);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;margin:0 auto 12px;font-size:1.1rem;font-weight:900;display:flex}.flow-step.highlight .step-num-circle[data-v-686ff019]{background:var(--accent-color,#d97706)}.step-label[data-v-686ff019]{color:var(--text-color,#0f172a);word-break:keep-all;margin-bottom:6px;font-size:calc(clamp(.88rem,2.2vw,1rem));font-weight:800}.step-desc[data-v-686ff019]{color:#64748b;word-break:keep-all;font-size:calc(clamp(.74rem,1.8vw,.82rem));line-height:1.45}.flow-arrow[data-v-686ff019]{color:#cbd5e1;font-size:1.2rem;font-weight:900}@media (width<=768px){.process-flow[data-v-686ff019]{flex-direction:column;gap:18px}.flow-arrow[data-v-686ff019]{transform:rotate(90deg)}}";
//#endregion
export { ProcessGuide_vue_vue_type_style_index_0_scoped_686ff019_inline_used_lang_default as default };
//# sourceMappingURL=ProcessGuide-styles-1.mjs-Olz3Llhe.js.map
@@ -1 +0,0 @@
{"version":3,"file":"ProcessGuide-styles-1.mjs-Olz3Llhe.js","names":[],"sources":["../../../../components/ProcessGuide.vue"],"sourcesContent":["<template>\n <section class=\"process-section\">\n <div class=\"section-header\">\n <span class=\"section-badge\">🚀 쉽고 빠른 시작</span>\n <h2 class=\"section-title\">1:1 맞춤 과외 4단계 진행 프로세스</h2>\n <p class=\"section-desc\">무료 상담부터 모의수업까지 부담 없이 체험해보고 결정하실 수 있습니다.</p>\n </div>\n\n <div class=\"process-flow\">\n <div class=\"flow-step\">\n <div class=\"step-num-circle\">1</div>\n <h3 class=\"step-label\">무료 상담 신청</h3>\n <p class=\"step-desc\">온라인 폼 또는 전화로 학생의 지역, 학년, 희망 과목 접수</p>\n </div>\n <div class=\"flow-arrow\">➔</div>\n <div class=\"flow-step\">\n <div class=\"step-num-circle\">2</div>\n <h3 class=\"step-label\">학습 정밀 진단</h3>\n <p class=\"step-desc\">전문 교육팀장이 유선으로 학생의 최근 성적, 성향 및 목표 분석</p>\n </div>\n <div class=\"flow-arrow\">➔</div>\n <div class=\"flow-step\">\n <div class=\"step-num-circle\">3</div>\n <h3 class=\"step-label\">1회 무료 모의수업</h3>\n <p class=\"step-desc\">배정된 전담 선생님과 1:1 방문 또는 화상 시범 수업 진행</p>\n </div>\n <div class=\"flow-arrow\">➔</div>\n <div class=\"flow-step highlight\">\n <div class=\"step-num-circle\">4</div>\n <h3 class=\"step-label\">정규 수업 & 코칭</h3>\n <p class=\"step-desc\">선생님 최종 확정 후 주간 플래너 및 맞춤 커리큘럼 시작</p>\n </div>\n </div>\n </section>\n</template>\n\n<style scoped>\n.process-section {\n max-width: 1080px;\n margin: 0 auto 50px;\n padding: 0 16px;\n}\n\n.section-header {\n text-align: center;\n margin-bottom: 28px;\n}\n\n.section-badge {\n display: inline-block;\n font-size: clamp(0.78rem, 2vw, 0.88rem);\n font-weight: 700;\n color: var(--primary-color, #1e3a8a);\n background: var(--badge-bg, rgba(30, 58, 138, 0.08));\n padding: 5px 12px;\n border-radius: 9999px;\n margin-bottom: 8px;\n}\n\n.section-title {\n font-size: clamp(1.3rem, 3.8vw, 1.95rem);\n font-weight: 800;\n color: var(--text-color, #1e293b);\n letter-spacing: -0.6px;\n word-break: keep-all;\n line-height: 1.35;\n}\n\n.section-desc {\n font-size: clamp(0.85rem, 2.2vw, 0.98rem);\n color: #64748b;\n margin-top: 6px;\n word-break: keep-all;\n}\n\n.process-flow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n background: var(--bg-card, #ffffff);\n border: 1px solid var(--border-color, #e2e8f0);\n border-radius: var(--card-radius, 16px);\n padding: clamp(20px, 4vw, 32px) clamp(16px, 3vw, 24px);\n box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);\n}\n\n.flow-step {\n flex: 1;\n text-align: center;\n}\n\n.step-num-circle {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: var(--primary-color, #1e3a8a);\n color: #ffffff;\n font-size: 1.1rem;\n font-weight: 900;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 auto 12px;\n}\n\n.flow-step.highlight .step-num-circle {\n background: var(--accent-color, #d97706);\n}\n\n.step-label {\n font-size: clamp(0.88rem, 2.2vw, 1rem);\n font-weight: 800;\n color: var(--text-color, #0f172a);\n margin-bottom: 6px;\n word-break: keep-all;\n}\n\n.step-desc {\n font-size: clamp(0.74rem, 1.8vw, 0.82rem);\n color: #64748b;\n line-height: 1.45;\n word-break: keep-all;\n}\n\n.flow-arrow {\n color: #cbd5e1;\n font-size: 1.2rem;\n font-weight: 900;\n}\n\n@media (max-width: 768px) {\n .process-flow {\n flex-direction: column;\n gap: 18px;\n }\n .flow-arrow {\n transform: rotate(90deg);\n }\n}\n</style>\n"],"mappings":""}
@@ -1 +0,0 @@
{"file":"ProcessGuide-styles-1.mjs-Olz3Llhe.js","mappings":"","names":[],"sources":["../../../../components/ProcessGuide.vue"],"sourcesContent":["<template>\n <section class=\"process-section\">\n <div class=\"section-header\">\n <span class=\"section-badge\">🚀 쉽고 빠른 시작</span>\n <h2 class=\"section-title\">1:1 맞춤 과외 4단계 진행 프로세스</h2>\n <p class=\"section-desc\">무료 상담부터 모의수업까지 부담 없이 체험해보고 결정하실 수 있습니다.</p>\n </div>\n\n <div class=\"process-flow\">\n <div class=\"flow-step\">\n <div class=\"step-num-circle\">1</div>\n <h3 class=\"step-label\">무료 상담 신청</h3>\n <p class=\"step-desc\">온라인 폼 또는 전화로 학생의 지역, 학년, 희망 과목 접수</p>\n </div>\n <div class=\"flow-arrow\">➔</div>\n <div class=\"flow-step\">\n <div class=\"step-num-circle\">2</div>\n <h3 class=\"step-label\">학습 정밀 진단</h3>\n <p class=\"step-desc\">전문 교육팀장이 유선으로 학생의 최근 성적, 성향 및 목표 분석</p>\n </div>\n <div class=\"flow-arrow\">➔</div>\n <div class=\"flow-step\">\n <div class=\"step-num-circle\">3</div>\n <h3 class=\"step-label\">1회 무료 모의수업</h3>\n <p class=\"step-desc\">배정된 전담 선생님과 1:1 방문 또는 화상 시범 수업 진행</p>\n </div>\n <div class=\"flow-arrow\">➔</div>\n <div class=\"flow-step highlight\">\n <div class=\"step-num-circle\">4</div>\n <h3 class=\"step-label\">정규 수업 & 코칭</h3>\n <p class=\"step-desc\">선생님 최종 확정 후 주간 플래너 및 맞춤 커리큘럼 시작</p>\n </div>\n </div>\n </section>\n</template>\n\n<style scoped>\n.process-section {\n max-width: 1080px;\n margin: 0 auto 50px;\n padding: 0 16px;\n}\n\n.section-header {\n text-align: center;\n margin-bottom: 28px;\n}\n\n.section-badge {\n display: inline-block;\n font-size: clamp(0.78rem, 2vw, 0.88rem);\n font-weight: 700;\n color: var(--primary-color, #1e3a8a);\n background: var(--badge-bg, rgba(30, 58, 138, 0.08));\n padding: 5px 12px;\n border-radius: 9999px;\n margin-bottom: 8px;\n}\n\n.section-title {\n font-size: clamp(1.3rem, 3.8vw, 1.95rem);\n font-weight: 800;\n color: var(--text-color, #1e293b);\n letter-spacing: -0.6px;\n word-break: keep-all;\n line-height: 1.35;\n}\n\n.section-desc {\n font-size: clamp(0.85rem, 2.2vw, 0.98rem);\n color: #64748b;\n margin-top: 6px;\n word-break: keep-all;\n}\n\n.process-flow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n background: var(--bg-card, #ffffff);\n border: 1px solid var(--border-color, #e2e8f0);\n border-radius: var(--card-radius, 16px);\n padding: clamp(20px, 4vw, 32px) clamp(16px, 3vw, 24px);\n box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);\n}\n\n.flow-step {\n flex: 1;\n text-align: center;\n}\n\n.step-num-circle {\n width: 38px;\n height: 38px;\n border-radius: 50%;\n background: var(--primary-color, #1e3a8a);\n color: #ffffff;\n font-size: 1.1rem;\n font-weight: 900;\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 0 auto 12px;\n}\n\n.flow-step.highlight .step-num-circle {\n background: var(--accent-color, #d97706);\n}\n\n.step-label {\n font-size: clamp(0.88rem, 2.2vw, 1rem);\n font-weight: 800;\n color: var(--text-color, #0f172a);\n margin-bottom: 6px;\n word-break: keep-all;\n}\n\n.step-desc {\n font-size: clamp(0.74rem, 1.8vw, 0.82rem);\n color: #64748b;\n line-height: 1.45;\n word-break: keep-all;\n}\n\n.flow-arrow {\n color: #cbd5e1;\n font-size: 1.2rem;\n font-weight: 900;\n}\n\n@media (max-width: 768px) {\n .process-flow {\n flex-direction: column;\n gap: 18px;\n }\n .flow-arrow {\n transform: rotate(90deg);\n }\n}\n</style>\n"],"version":3}
@@ -1,4 +0,0 @@
import style_0 from "./ProcessGuide-styles-1.mjs-Olz3Llhe.js";
export default [
style_0
]
@@ -1,6 +0,0 @@
//#region components/QuickMetrics.vue?vue&type=style&index=0&scoped=21ea3ae5&inline&used&lang.css
var QuickMetrics_vue_vue_type_style_index_0_scoped_21ea3ae5_inline_used_lang_default = ".metrics-section[data-v-21ea3ae5]{z-index:2;max-width:1080px;margin:-24px auto 40px;padding:0 16px;position:relative}.metrics-grid[data-v-21ea3ae5]{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.metric-card[data-v-21ea3ae5]{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--card-radius,12px);text-align:center;padding:calc(clamp(14px,2.5vw,20px)) 10px;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 16px #0000000f}.metric-card[data-v-21ea3ae5]:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}.metric-icon[data-v-21ea3ae5]{margin-bottom:4px;font-size:calc(clamp(1.2rem,3vw,1.6rem))}.metric-num[data-v-21ea3ae5]{color:var(--primary-color,#1e3a8a);letter-spacing:-.5px;font-size:calc(clamp(1.15rem,3.2vw,1.8rem));font-weight:900;line-height:1.2}.metric-label[data-v-21ea3ae5]{color:var(--text-color,#1e293b);word-break:keep-all;margin-top:4px;font-size:calc(clamp(.75rem,2vw,.88rem));font-weight:700}.metric-sub[data-v-21ea3ae5]{color:#64748b;word-break:keep-all;margin-top:2px;font-size:calc(clamp(.68rem,1.7vw,.78rem))}@media (width<=768px){.metrics-grid[data-v-21ea3ae5]{grid-template-columns:repeat(2,1fr);gap:10px}}@media (width<=320px){.metrics-grid[data-v-21ea3ae5]{grid-template-columns:1fr;gap:8px}}";
//#endregion
export { QuickMetrics_vue_vue_type_style_index_0_scoped_21ea3ae5_inline_used_lang_default as default };
//# sourceMappingURL=QuickMetrics-styles-1.mjs-CletefM0.js.map
@@ -1 +0,0 @@
{"version":3,"file":"QuickMetrics-styles-1.mjs-CletefM0.js","names":[],"sources":["../../../../components/QuickMetrics.vue"],"sourcesContent":["<template>\n <section class=\"metrics-section\" aria-label=\"교육 성과 지표\">\n <div class=\"metrics-grid\">\n <div class=\"metric-card\">\n <div class=\"metric-icon\">⭐</div>\n <div class=\"metric-num\">98.7%</div>\n <div class=\"metric-label\">{{ regionDong }} 학부모 만족도</div>\n <div class=\"metric-sub\">재수강 의사 압도적 1위</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">📈</div>\n <div class=\"metric-num\">+26.8점</div>\n <div class=\"metric-label\">평균 내신 성적 상승폭</div>\n <div class=\"metric-sub\">수강 3개월 이내 실측</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">👨‍🏫</div>\n <div class=\"metric-num\">100%</div>\n <div class=\"metric-label\">전담 강사 신원 검증</div>\n <div class=\"metric-sub\">SKY 및 명문대 출신 4단계 심사</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">🏆</div>\n <div class=\"metric-num\">12,500+</div>\n <div class=\"metric-label\">누적 1:1 맞춤 배정</div>\n <div class=\"metric-sub\">전국 학군별 데이터 기반</div>\n </div>\n </div>\n </section>\n</template>\n\n<script setup>\ndefineProps({\n regionDong: {\n type: String,\n default: '해당 지역'\n }\n})\n</script>\n\n<style scoped>\n.metrics-section {\n max-width: 1080px;\n margin: -24px auto 40px;\n padding: 0 16px;\n position: relative;\n z-index: 2;\n}\n\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n}\n\n.metric-card {\n background: var(--bg-card, #ffffff);\n border: 1px solid var(--border-color, #e2e8f0);\n border-radius: var(--card-radius, 12px);\n padding: clamp(14px, 2.5vw, 20px) 10px;\n text-align: center;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n\n.metric-card:hover {\n transform: translateY(-3px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);\n}\n\n.metric-icon {\n font-size: clamp(1.2rem, 3vw, 1.6rem);\n margin-bottom: 4px;\n}\n\n.metric-num {\n font-size: clamp(1.15rem, 3.2vw, 1.8rem);\n font-weight: 900;\n color: var(--primary-color, #1e3a8a);\n letter-spacing: -0.5px;\n line-height: 1.2;\n}\n\n.metric-label {\n font-size: clamp(0.75rem, 2vw, 0.88rem);\n font-weight: 700;\n color: var(--text-color, #1e293b);\n margin-top: 4px;\n word-break: keep-all;\n}\n\n.metric-sub {\n font-size: clamp(0.68rem, 1.7vw, 0.78rem);\n color: #64748b;\n margin-top: 2px;\n word-break: keep-all;\n}\n\n@media (max-width: 768px) {\n .metrics-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 10px;\n }\n}\n\n@media (max-width: 320px) {\n .metrics-grid {\n grid-template-columns: 1fr;\n gap: 8px;\n }\n}\n</style>\n"],"mappings":""}
@@ -1 +0,0 @@
{"file":"QuickMetrics-styles-1.mjs-CletefM0.js","mappings":"","names":[],"sources":["../../../../components/QuickMetrics.vue"],"sourcesContent":["<template>\n <section class=\"metrics-section\" aria-label=\"교육 성과 지표\">\n <div class=\"metrics-grid\">\n <div class=\"metric-card\">\n <div class=\"metric-icon\">⭐</div>\n <div class=\"metric-num\">98.7%</div>\n <div class=\"metric-label\">{{ regionDong }} 학부모 만족도</div>\n <div class=\"metric-sub\">재수강 의사 압도적 1위</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">📈</div>\n <div class=\"metric-num\">+26.8점</div>\n <div class=\"metric-label\">평균 내신 성적 상승폭</div>\n <div class=\"metric-sub\">수강 3개월 이내 실측</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">👨‍🏫</div>\n <div class=\"metric-num\">100%</div>\n <div class=\"metric-label\">전담 강사 신원 검증</div>\n <div class=\"metric-sub\">SKY 및 명문대 출신 4단계 심사</div>\n </div>\n <div class=\"metric-card\">\n <div class=\"metric-icon\">🏆</div>\n <div class=\"metric-num\">12,500+</div>\n <div class=\"metric-label\">누적 1:1 맞춤 배정</div>\n <div class=\"metric-sub\">전국 학군별 데이터 기반</div>\n </div>\n </div>\n </section>\n</template>\n\n<script setup>\ndefineProps({\n regionDong: {\n type: String,\n default: '해당 지역'\n }\n})\n</script>\n\n<style scoped>\n.metrics-section {\n max-width: 1080px;\n margin: -24px auto 40px;\n padding: 0 16px;\n position: relative;\n z-index: 2;\n}\n\n.metrics-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n}\n\n.metric-card {\n background: var(--bg-card, #ffffff);\n border: 1px solid var(--border-color, #e2e8f0);\n border-radius: var(--card-radius, 12px);\n padding: clamp(14px, 2.5vw, 20px) 10px;\n text-align: center;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);\n transition: transform 0.2s ease, box-shadow 0.2s ease;\n}\n\n.metric-card:hover {\n transform: translateY(-3px);\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);\n}\n\n.metric-icon {\n font-size: clamp(1.2rem, 3vw, 1.6rem);\n margin-bottom: 4px;\n}\n\n.metric-num {\n font-size: clamp(1.15rem, 3.2vw, 1.8rem);\n font-weight: 900;\n color: var(--primary-color, #1e3a8a);\n letter-spacing: -0.5px;\n line-height: 1.2;\n}\n\n.metric-label {\n font-size: clamp(0.75rem, 2vw, 0.88rem);\n font-weight: 700;\n color: var(--text-color, #1e293b);\n margin-top: 4px;\n word-break: keep-all;\n}\n\n.metric-sub {\n font-size: clamp(0.68rem, 1.7vw, 0.78rem);\n color: #64748b;\n margin-top: 2px;\n word-break: keep-all;\n}\n\n@media (max-width: 768px) {\n .metrics-grid {\n grid-template-columns: repeat(2, 1fr);\n gap: 10px;\n }\n}\n\n@media (max-width: 320px) {\n .metrics-grid {\n grid-template-columns: 1fr;\n gap: 8px;\n }\n}\n</style>\n"],"version":3}
@@ -1,4 +0,0 @@
import style_0 from "./QuickMetrics-styles-1.mjs-CletefM0.js";
export default [
style_0
]
@@ -1,6 +0,0 @@
//#region components/SubjectMastery.vue?vue&type=style&index=0&scoped=caeb8d96&inline&used&lang.css
var SubjectMastery_vue_vue_type_style_index_0_scoped_caeb8d96_inline_used_lang_default = ".mastery-section[data-v-caeb8d96]{max-width:1080px;margin:0 auto 50px;padding:0 16px}.section-header[data-v-caeb8d96]{text-align:center;margin-bottom:28px}.section-badge[data-v-caeb8d96]{color:var(--primary-color,#1e3a8a);background:var(--badge-bg,#1e3a8a14);border-radius:9999px;margin-bottom:8px;padding:5px 12px;font-size:calc(clamp(.78rem,2vw,.88rem));font-weight:700;display:inline-block}.section-title[data-v-caeb8d96]{color:var(--text-color,#1e293b);letter-spacing:-.6px;word-break:keep-all;font-size:calc(clamp(1.3rem,3.8vw,1.95rem));font-weight:800;line-height:1.35}.section-desc[data-v-caeb8d96]{color:#64748b;word-break:keep-all;margin-top:6px;font-size:calc(clamp(.85rem,2.2vw,.98rem))}.grade-focus-grid[data-v-caeb8d96]{grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:30px;display:grid}.grade-focus-card[data-v-caeb8d96]{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--card-radius,14px);padding:calc(clamp(18px,3.5vw,24px));box-shadow:0 4px 14px #0000000a}.grade-header[data-v-caeb8d96]{margin-bottom:12px}.grade-pill[data-v-caeb8d96]{color:#fff;background:var(--primary-color,#1e3a8a);border-radius:9999px;margin-bottom:6px;padding:3px 10px;font-size:.75rem;font-weight:800;display:inline-block}.focus-title[data-v-caeb8d96]{color:var(--text-color,#0f172a);letter-spacing:-.4px;font-size:calc(clamp(1.02rem,2.5vw,1.2rem));font-weight:800}.exam-pattern-box[data-v-caeb8d96]{border-left:3px solid var(--accent-color,#d97706);color:#334155;word-break:keep-all;background:#f8fafc;border-radius:4px;margin-bottom:14px;padding:10px 12px;font-size:calc(clamp(.78rem,2vw,.86rem));line-height:1.55}.badge-tag[data-v-caeb8d96]{color:var(--accent-color,#d97706);margin-bottom:3px;font-size:.82em;font-weight:800;display:block}.points-list[data-v-caeb8d96]{flex-direction:column;gap:10px;list-style:none;display:flex}.points-list li[data-v-caeb8d96]{color:#475569;word-break:keep-all;align-items:flex-start;gap:8px;font-size:calc(clamp(.8rem,2vw,.88rem));line-height:1.5;display:flex}.check-icon[data-v-caeb8d96]{color:#10b981;flex-shrink:0;font-weight:900}.skills-wrap[data-v-caeb8d96]{background:var(--skills-bg,#f8fafc);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--card-radius,14px);padding:calc(clamp(20px,4vw,30px))}.skills-title[data-v-caeb8d96]{color:var(--text-color,#0f172a);text-align:center;letter-spacing:-.4px;margin-bottom:20px;font-size:calc(clamp(1.05rem,2.8vw,1.3rem));font-weight:800}.skills-grid[data-v-caeb8d96]{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.skill-item[data-v-caeb8d96]{border:1px solid var(--border-color,#e2e8f0);background:#fff;border-radius:10px;padding:16px;box-shadow:0 2px 8px #00000008}.skill-num[data-v-caeb8d96]{color:var(--accent-color,#d97706);margin-bottom:4px;font-size:1.1rem;font-weight:900}.skill-name[data-v-caeb8d96]{color:var(--text-color,#1e293b);margin-bottom:6px;font-size:calc(clamp(.9rem,2.2vw,1rem));font-weight:800}.skill-desc[data-v-caeb8d96]{color:#64748b;word-break:keep-all;font-size:calc(clamp(.78rem,1.9vw,.85rem));line-height:1.5}@media (width<=768px){.grade-focus-grid[data-v-caeb8d96],.skills-grid[data-v-caeb8d96]{grid-template-columns:1fr}}";
//#endregion
export { SubjectMastery_vue_vue_type_style_index_0_scoped_caeb8d96_inline_used_lang_default as default };
//# sourceMappingURL=SubjectMastery-styles-1.mjs-N8TZYLjA.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More