be6156c9d8
- 푸터 상호/CEO/사업자번호/주소/이메일을 신규 정보로 교체, 저작권 문구 추가 - 회사 정보를 shared/constants/company.ts로 분리해 푸터와 JSON-LD에서 공통 사용 - 메인 페이지 Organization 구조화 데이터의 이메일·주소 갱신 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
126 lines
2.9 KiB
Vue
126 lines
2.9 KiB
Vue
<script setup lang="ts">
|
|
// 공통 푸터 — 모든 페이지에서 동일하게 사용
|
|
import { COMPANY } from '~/shared/constants/company'
|
|
</script>
|
|
|
|
<template>
|
|
<footer>
|
|
<div class="wrap">
|
|
<NuxtLink to="/" class="foot-logo" aria-label="이너탭 홈">
|
|
<img src="/images/img-itab.png" alt="innertab" >
|
|
</NuxtLink>
|
|
|
|
<div class="foot-company">
|
|
<p class="foot-name"><span class="dot" /> {{ COMPANY.legalNameEn }} ({{ COMPANY.legalName }})</p>
|
|
<p>CEO: {{ COMPANY.ceo }}</p>
|
|
<p>Business Registration No.: {{ COMPANY.businessRegNo }}</p>
|
|
<p>Address: {{ COMPANY.addressEn }}</p>
|
|
<!-- 이메일 라벨+주소를 한 묶음(nowrap)으로 두어, 줄바꿈은 라벨 앞에서만 일어나도록 -->
|
|
<p><span class="foot-email">Email: <a :href="`mailto:${COMPANY.email}`">{{ COMPANY.email }}</a></span></p>
|
|
</div>
|
|
|
|
<div class="foot-divider" />
|
|
|
|
<div class="foot-bottom">
|
|
<NuxtLink to="/privacy" class="foot-policy">개인정보처리방침</NuxtLink>
|
|
<p class="foot-copy">© {{ COMPANY.copyrightYear }} {{ COMPANY.legalNameEn }} All rights reserved.</p>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
</template>
|
|
|
|
<style scoped>
|
|
footer {
|
|
border-top: 0.0625rem solid var(--line);
|
|
padding: clamp(3rem, 6vw, 4.75rem) 0 clamp(2.5rem, 5vw, 4rem); /* 48~76px / 40~64px */
|
|
}
|
|
|
|
.foot-logo {
|
|
display: inline-block;
|
|
}
|
|
|
|
.foot-logo img {
|
|
height: 1.875rem; /* 30px */
|
|
display: block;
|
|
}
|
|
|
|
.foot-company {
|
|
margin-top: 1.625rem; /* 26px */
|
|
}
|
|
|
|
.foot-company .foot-name {
|
|
font-size: 0.9375rem; /* 15px */
|
|
font-weight: 700;
|
|
color: var(--ink);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.4375rem; /* 7px */
|
|
}
|
|
|
|
.foot-company .foot-name .dot {
|
|
width: 0.5rem;
|
|
height: 0.5rem; /* 8px */
|
|
border-radius: 50%;
|
|
background: var(--brand);
|
|
}
|
|
|
|
.foot-company p {
|
|
font-size: 0.875rem; /* 14px */
|
|
color: var(--ink-soft);
|
|
line-height: 1.7;
|
|
}
|
|
|
|
/* 이메일 라벨+주소 — 한 줄로 묶어 라벨과 주소가 분리되지 않도록 */
|
|
.foot-company .foot-email {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.foot-company p a {
|
|
color: inherit;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.foot-company p a:hover {
|
|
color: var(--brand);
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.foot-company p + p {
|
|
margin-top: 0.5rem; /* 8px */
|
|
}
|
|
|
|
.foot-company .foot-name + p {
|
|
margin-top: 0.875rem; /* 14px */
|
|
}
|
|
|
|
.foot-divider {
|
|
height: 0.0625rem; /* 1px */
|
|
background: var(--line);
|
|
margin: clamp(1.75rem, 3.5vw, 2.75rem) 0 clamp(1.5rem, 3vw, 2.25rem);
|
|
}
|
|
|
|
.foot-bottom {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
flex-wrap: wrap; /* 모바일 폭에서 저작권 문구가 다음 줄로 내려가도록 */
|
|
gap: 0.75rem 1.25rem; /* 12px / 20px */
|
|
}
|
|
|
|
.foot-policy {
|
|
font-size: 0.875rem; /* 14px */
|
|
font-weight: 700;
|
|
color: var(--ink);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.foot-policy:hover {
|
|
color: var(--brand);
|
|
}
|
|
|
|
.foot-copy {
|
|
font-size: 0.8125rem; /* 13px */
|
|
color: var(--ink-soft);
|
|
}
|
|
</style>
|