/*
 * Tax Accountant Theme - Responsive Stylesheet
 *
 * Breakpoints:
 *   PC:       1024px and above
 *   Tablet:   768px - 1023px
 *   Mobile:   767px and below
 *
 * Covers all elements: base style.css, design-system-v2.css,
 * front-page-v2.css, and sub-pages.css.
 *
 * @package Tax_Accountant
 * @version 5.0.0
 */

/* ========================================
 * Tablet: 768px - 1023px
 * ======================================== */
@media screen and (max-width: 1023px) {
	:root {
		--section-spacing: 64px;
		--grid-gap: 24px;
		--header-height: 70px;
	}

	/* Header */
	.header-inner {
		height: var(--header-height);
	}

	/* Navigation */
	.nav-menu > li > a {
		padding: 8px 12px;
		font-size: var(--font-size-xs);
	}

	/* Footer */
	.footer-widgets-inner {
		grid-template-columns: repeat(2, 1fr);
		gap: 24px;
	}

	.footer-widget-col:nth-child(3) {
		grid-column: 1 / -1;
	}

	/* Grid */
	.col-4,
	.col-3 {
		flex: 0 0 calc(100% / 3 * 1);
		max-width: calc(100% / 3 * 1);
	}

	/* Section Heading v1 */
	.section-heading .section-title {
		font-size: var(--font-size-2xl);
	}

	/* Section Heading v2 */
	.section-heading-v2 .section-main-title {
		font-size: var(--font-size-2xl);
	}

	/* Page Title */
	.page-title {
		font-size: var(--font-size-2xl);
	}

	.entry-title {
		font-size: var(--font-size-2xl);
	}

	/* ---- Hero v2 (front-page-v2.css) ---- */
	.hero-v2-title-line {
		font-size: var(--font-size-4xl);
	}

	.hero-v2-title-line:last-child {
		font-size: var(--font-size-3xl);
	}

	.hero-v2-categories {
		gap: 12px;
	}

	.hero-category-btn {
		padding: 10px 18px;
		font-size: var(--font-size-xs);
	}

	.hero-section-v2 {
		min-height: 80vh;
		padding: 100px 0 60px;
	}

	/* ---- FAQ Cards v2 ---- */
	.faq-cards-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* ---- Service Cards v2 ---- */
	.service-card-v2 {
		gap: 32px;
	}

	.service-card-v2__image {
		flex: 0 0 300px;
		max-width: 300px;
	}

	.service-card-v2__title {
		font-size: var(--font-size-xl);
	}

	/* ---- Profile v2 ---- */
	.profile-v2-layout {
		gap: 40px;
	}

	.profile-v2-photo {
		flex: 0 0 220px;
	}

	.profile-v2-photo__frame {
		width: 200px;
		height: 260px;
	}

	/* ---- Blog Cards v2 ---- */
	.blog-cards-v2-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* ---- Area v2 ---- */
	.area-v2-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.area-v2-card--remote {
		grid-column: 1 / -1;
	}

	/* ---- Wave Dividers ---- */
	.section-wave-divider svg {
		height: 40px;
	}

	/* ---- Sub Page Header ---- */
	.sub-page-header {
		padding: 64px 0 48px;
	}

	.sub-page-header__title {
		font-size: var(--font-size-3xl);
	}

	/* ---- Services Archive v2 ---- */
	.services-archive-v2__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* ---- Blog Archive v2 ---- */
	.blog-archive-v2__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* ---- Contact Layout ---- */
	.contact-v2-layout {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.contact-v2-info-col {
		position: static;
	}

	/* ---- About Page ---- */
	.about-v2-greeting-layout {
		gap: 40px;
	}

	.about-v2-greeting-photo {
		flex: 0 0 180px;
	}

	.about-v2-greeting-photo__frame {
		width: 160px;
		height: 210px;
	}

	.about-v2-access-layout {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	/* ---- Cases v2 ---- */
	.cases-v2-stats__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.cases-v2-grid {
		grid-template-columns: 1fr;
	}

	/* ---- Related Sections ---- */
	.service-related-v2__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.blog-related-v2__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Legacy: Service Cards Grid */
	.service-cards-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Legacy: Flow Steps */
	.flow-steps-container {
		flex-wrap: wrap;
		gap: 24px;
	}

	.flow-step-arrow {
		display: none;
	}

	.flow-step {
		flex: 0 0 calc(50% - 12px);
		max-width: calc(50% - 12px);
	}

	/* Legacy: Pricing Table */
	.pricing-table thead th,
	.pricing-table tbody td {
		padding: 12px 16px;
	}
}


/* ========================================
 * Mobile: 767px and below
 * ======================================== */
@media screen and (max-width: 767px) {
	:root {
		--section-spacing: 48px;
		--grid-gap: 16px;
		--container-padding: 16px;
		--header-height: 64px;
	}

	/* Typography Scale (Mobile) */
	.page-title {
		font-size: var(--font-size-2xl);
	}

	.entry-title {
		font-size: var(--font-size-xl);
	}

	.section-heading .section-title {
		font-size: var(--font-size-xl);
	}

	.section-heading-v2 .section-main-title {
		font-size: var(--font-size-xl);
	}

	.section-heading-v2 .section-en-label {
		font-size: 11px;
		letter-spacing: 0.2em;
	}

	.section-heading-v2 .section-description {
		font-size: var(--font-size-sm);
	}

	/* Header */
	.header-inner {
		height: var(--header-height);
	}

	.site-title-text {
		font-size: var(--font-size-lg);
	}

	/* Hamburger - Show button */
	.hamburger-btn {
		display: flex;
	}

	/* ---- Mobile Navigation (Full-screen Overlay) ---- */
	.main-navigation {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		width: 100%;
		height: 100vh;
		height: 100dvh; /* Dynamic viewport height for mobile browsers */
		background-color: rgba(15, 38, 64, 0.97);
		backdrop-filter: blur(12px);
		-webkit-backdrop-filter: blur(12px);
		z-index: 1000;
		display: flex;
		align-items: center;
		justify-content: center;
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.35s ease, visibility 0.35s ease;
	}

	.main-navigation.is-active {
		opacity: 1;
		visibility: visible;
	}

	/* Mobile nav link colors */
	.nav-menu > li > a {
		color: rgba(255, 255, 255, 0.9);
	}

	.nav-menu > li > a:hover,
	.nav-menu > li > a:focus {
		color: var(--color-text-white);
		background-color: rgba(255, 255, 255, 0.1);
	}

	.nav-menu > li.current-menu-item > a,
	.nav-menu > li.current-menu-parent > a {
		color: var(--color-accent);
	}

	.nav-menu {
		flex-direction: column;
		align-items: center;
		gap: 0;
		width: 100%;
		padding: 24px;
	}

	.nav-menu > li {
		width: 100%;
		text-align: center;
	}

	.nav-menu > li > a {
		display: block;
		padding: 16px;
		font-size: var(--font-size-lg);
		font-weight: var(--font-weight-bold);
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
		border-radius: 0;
	}

	.nav-menu > li:last-child > a {
		border-bottom: none;
	}

	/* Sub-menu mobile */
	.nav-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: none;
		border-radius: 0;
		background-color: rgba(255, 255, 255, 0.05);
		display: none;
	}

	.nav-menu > li.menu-item-has-children.is-submenu-open > .sub-menu {
		display: block;
	}

	.sub-menu li a {
		padding: 12px 16px;
		font-size: var(--font-size-base);
		text-align: center;
		border-bottom: 1px solid rgba(255, 255, 255, 0.06);
		color: rgba(255, 255, 255, 0.8);
	}

	.sub-menu li a:hover {
		background-color: rgba(255, 255, 255, 0.08);
		color: var(--color-text-white);
	}

	/* Hamburger button color on transparent header */
	.header-transparent .site-header .hamburger-btn .hamburger-line {
		background-color: var(--color-text-white);
	}

	.header-transparent .site-header.scrolled .hamburger-btn .hamburger-line {
		background-color: var(--color-primary);
	}

	/* When menu is open, force hamburger lines to dark */
	.hamburger-btn.is-active .hamburger-line {
		background-color: var(--color-text-white) !important;
	}

	/* ---- Hero v2 (Mobile) ---- */
	.hero-section-v2 {
		min-height: auto;
		height: 100vh;
		height: 100dvh;
		padding: 80px 0 40px;
	}

	.hero-v2-parallax-bg {
		inset: -10% 0 0 0;
	}

	.hero-v2-title-line {
		font-size: var(--font-size-2xl);
	}

	.hero-v2-title-line:last-child {
		font-size: var(--font-size-xl);
	}

	.hero-v2-subtitle {
		font-size: var(--font-size-sm);
		margin-bottom: 24px;
	}

	.hero-v2-categories {
		flex-wrap: wrap;
		flex-direction: row;
		gap: 8px;
		justify-content: center;
	}

	.hero-category-btn {
		width: auto;
		min-width: 0;
		max-width: calc(50% - 4px);
		padding: 8px 12px;
		font-size: var(--font-size-xs);
		justify-content: center;
	}

	.hero-category-btn i {
		font-size: var(--font-size-base);
	}

	.hero-v2-wave svg {
		height: 30px;
	}

	/* Legacy Hero */
	.hero-section {
		height: 400px;
	}

	.hero-title {
		font-size: var(--font-size-3xl);
	}

	.hero-subtitle {
		font-size: var(--font-size-lg);
	}

	.hero-catchcopy {
		font-size: var(--font-size-base);
	}

	.hero-cta {
		padding: 16px 32px;
		font-size: var(--font-size-base);
	}

	/* ---- FAQ Cards (Mobile) ---- */
	.faq-cards-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.faq-card {
		padding: 20px 16px;
	}

	/* ---- Service Cards v2 (Mobile: 1-column stack) ---- */
	.service-cards-v2-list {
		gap: 32px;
	}

	.service-card-v2,
	.service-card-v2--reverse {
		flex-direction: column;
	}

	.service-card-v2__image {
		flex: none;
		max-width: 100%;
		width: 100%;
	}

	.service-card-v2__image img {
		aspect-ratio: 16 / 9;
	}

	.service-card-v2__number {
		font-size: 48px;
	}

	.service-card-v2__content {
		padding: 16px 0 0;
	}

	.service-card-v2__title {
		font-size: var(--font-size-lg);
	}

	.service-card-v2__desc {
		font-size: var(--font-size-sm);
	}

	/* ---- CTA Buttons v2 (Mobile: vertical stack) ---- */
	.cta-v2-buttons {
		flex-direction: column;
		align-items: center;
		gap: 16px;
	}

	.cta-v2-btn {
		max-width: 100%;
		width: 100%;
		padding: 16px 24px;
	}

	.cta-v2-btn__value {
		font-size: var(--font-size-lg);
	}

	.cta-v2-btn__icon {
		flex: 0 0 36px;
		width: 36px;
		height: 36px;
		font-size: var(--font-size-base);
	}

	.section-cta-v2 {
		padding: 48px 0;
	}

	/* ---- Profile v2 (Mobile: vertical stack) ---- */
	.profile-v2-layout {
		flex-direction: column;
		align-items: center;
		gap: 32px;
	}

	.profile-v2-photo {
		flex: none;
		text-align: center;
	}

	.profile-v2-photo__frame {
		width: 180px;
		height: 240px;
	}

	.profile-v2-greeting p {
		font-size: var(--font-size-sm);
		line-height: 1.8;
	}

	.profile-v2-career__title {
		font-size: var(--font-size-base);
	}

	.profile-v2-table th,
	.profile-v2-table td {
		padding: 10px 12px;
		font-size: var(--font-size-xs);
	}

	.profile-v2-table__year {
		width: 80px;
	}

	/* ---- Blog Cards v2 (Mobile) ---- */
	.blog-cards-v2-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.blog-card-v2__image {
		height: 180px;
	}

	.blog-card-v2__title {
		font-size: var(--font-size-sm);
	}

	/* ---- Area v2 (Mobile) ---- */
	.area-v2-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.area-v2-card {
		padding: 24px 20px;
	}

	.area-v2-card--remote {
		grid-column: auto;
	}

	.area-v2-note p {
		font-size: var(--font-size-sm);
		padding: 12px 16px;
	}

	/* ---- Wave Dividers (Mobile) ---- */
	.section-wave-divider svg {
		height: 24px;
	}

	/* ---- Sub Page Header (Mobile) ---- */
	.sub-page-header {
		padding: 56px 0 36px;
	}

	.sub-page-header__title {
		font-size: var(--font-size-2xl);
	}

	.sub-page-header__subtitle {
		font-size: var(--font-size-sm);
	}

	/* ---- Phone Banner (Mobile) ---- */
	.contact-phone-banner {
		flex-direction: column;
		text-align: center;
		padding: 24px 20px;
	}

	.contact-phone-banner__content {
		text-align: center;
	}

	.contact-phone-banner__number {
		font-size: var(--font-size-2xl);
	}

	/* ---- Services Archive v2 (Mobile) ---- */
	.services-archive-v2__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	/* ---- Blog Archive v2 (Mobile) ---- */
	.blog-archive-v2__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	/* ---- Blog Single v2 (Mobile) ---- */
	.blog-single-v2-header__title {
		font-size: var(--font-size-2xl);
	}

	.blog-single-v2-featured {
		margin: -20px 16px 32px;
		border-radius: var(--radius-md);
	}

	/* ---- About Page (Mobile) ---- */
	.about-v2-greeting-layout {
		flex-direction: column;
		align-items: center;
		gap: 24px;
	}

	.about-v2-greeting-photo {
		flex: none;
	}

	.about-v2-greeting-photo__frame {
		width: 140px;
		height: 180px;
	}

	.about-v2-table th {
		width: 100px;
		font-size: var(--font-size-xs);
	}

	.about-v2-table td {
		font-size: var(--font-size-xs);
	}

	.about-v2-staff-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	/* ---- Cases v2 (Mobile) ---- */
	.cases-v2-stats__grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}

	.cases-v2-stat__number {
		font-size: var(--font-size-2xl);
	}

	/* Case single: industry badge and content */
	.case-industry-badge-wrap {
		margin-top: -12px;
		position: relative;
		z-index: 2;
		text-align: center;
	}

	.case-industry-badge {
		display: inline-block;
		padding: 4px 16px;
		background: var(--color-accent);
		color: #fff;
		border-radius: 20px;
		font-size: 13px;
		font-weight: bold;
	}

	.case-single-v2__container {
		max-width: 100%;
		margin: 0 auto;
	}

	.case-content-styled {
		line-height: 1.8;
		color: var(--color-text);
		font-size: var(--font-size-sm);
	}

	.case-result-v2 {
		flex-direction: column;
		gap: 12px;
		padding: 20px;
	}

	.case-result-v2__icon {
		width: 40px;
		height: 40px;
	}

	/* ---- Related Sections (Mobile) ---- */
	.service-related-v2__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.blog-related-v2__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	/* ---- Flow Steps v2 (Mobile) ---- */
	.service-flow-v2__step {
		padding-left: 24px;
		margin-left: 18px;
	}

	.service-flow-v2__number {
		left: -16px;
		width: 34px;
		height: 34px;
		font-size: 12px;
	}

	/* ---- Footer (Mobile) ---- */
	.footer-widgets {
		padding: 40px 0 24px;
	}

	.footer-widgets-inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.footer-bottom {
		padding: 16px 0;
	}

	/* ---- Breadcrumb (Mobile) ---- */
	.breadcrumb {
		padding: 12px 0;
		margin-bottom: 16px;
	}

	.breadcrumb-list {
		font-size: var(--font-size-xs);
	}

	/* ---- Grid: Full width on mobile ---- */
	.row {
		flex-direction: column;
	}

	[class^="col-"] {
		flex: 0 0 100% !important;
		max-width: 100% !important;
		margin-bottom: var(--grid-gap);
	}

	/* ---- Buttons (Mobile) ---- */
	.btn {
		padding: 12px 24px;
		font-size: var(--font-size-sm);
		width: 100%;
		text-align: center;
	}

	.btn-lg {
		padding: 16px 32px;
		font-size: var(--font-size-base);
	}

	.btn-v2-lg {
		padding: 16px 32px;
		font-size: var(--font-size-base);
	}

	/* ---- Cards (Mobile) ---- */
	.card {
		margin-bottom: 16px;
	}

	.card-body {
		padding: 16px;
	}

	.card-image {
		height: 160px;
	}

	/* ---- 404 (Mobile) ---- */
	.error-404 {
		padding: 48px 0;
	}

	.error-code {
		font-size: 80px;
	}

	/* ---- Entry Content (Mobile) ---- */
	.entry-content h2 {
		font-size: var(--font-size-xl);
		margin-top: 32px;
	}

	.entry-content h3 {
		font-size: var(--font-size-lg);
		margin-top: 24px;
	}

	/* ---- Section Heading (Mobile) ---- */
	.section-heading {
		margin-bottom: 32px;
	}

	/* ---- Pain Points (Legacy, if used) ---- */
	.pain-points-list {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	.pain-point-item {
		padding: 16px 20px;
	}

	.pain-point-icon {
		width: 40px;
		height: 40px;
		font-size: 16px;
	}

	/* ---- Service Cards (Legacy) ---- */
	.service-cards-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	/* ---- CTA Banner (Legacy) ---- */
	.section-cta-banner {
		padding: 60px 0;
		background-attachment: scroll;
	}

	.cta-banner-title {
		font-size: var(--font-size-2xl);
	}

	.cta-banner-buttons {
		flex-direction: column;
	}

	.btn-outline-white,
	.cta-banner-buttons .btn {
		width: 100%;
		max-width: 320px;
	}

	/* ---- Area Coverage (Legacy) ---- */
	.area-coverage-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.area-coverage-grid .area-coverage-card:last-child {
		grid-column: 1 / -1;
		max-width: 50%;
		margin: 0 auto;
	}

	/* ---- Profile (Legacy) ---- */
	.profile-layout {
		flex-direction: column;
		align-items: center;
	}

	.profile-photo {
		width: 100%;
		max-width: 320px;
	}

	/* ---- Recent Posts (Legacy) ---- */
	.recent-posts-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	/* ---- Contact Layout (Mobile) ---- */
	.contact-layout {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.contact-info-col {
		order: -1;
	}

	/* ---- Thanks Page (Mobile) ---- */
	.thanks-page {
		padding: 48px 0;
		min-height: auto;
	}

	.thanks-icon {
		font-size: 60px;
	}

	.thanks-title {
		font-size: var(--font-size-2xl);
	}

	.thanks-contact-box {
		padding: 24px;
	}

	/* ---- Privacy Page (Mobile) ---- */
	.privacy-page-header {
		padding: 48px 0;
	}

	.privacy-body .entry-content h2 {
		font-size: var(--font-size-lg);
	}

	/* ---- Blog Archive (Mobile) ---- */
	.blog-archive-header {
		padding: 48px 0;
	}

	.blog-layout {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.blog-cards-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.blog-cards-grid--related {
		grid-template-columns: repeat(2, 1fr);
	}

	/* ---- Single Blog Post (Mobile) ---- */
	.blog-single-header {
		padding: 40px 0;
	}

	.blog-single-title {
		font-size: var(--font-size-2xl);
	}

	.blog-single-nav {
		flex-direction: column;
		gap: 16px;
	}

	.blog-single-nav-prev,
	.blog-single-nav-next {
		max-width: 100%;
		text-align: left;
	}

	/* ---- Search Page (Mobile) ---- */
	.search-page-header {
		padding: 48px 0;
	}

	/* ---- Cases Archive (Legacy) ---- */
	.cases-stats-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	.cases-cards-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.cases-stat-number {
		font-size: var(--font-size-2xl);
	}

	/* ---- Single Case (Legacy) ---- */
	.case-page-header {
		padding: 48px 0;
	}

	.case-page-title {
		font-size: var(--font-size-2xl);
	}

	.case-result-box {
		padding: 24px;
		flex-direction: column;
		gap: 12px;
	}

	.case-voice {
		padding: 24px;
	}

	.case-voice-quote {
		font-size: var(--font-size-base);
	}

	/* ---- Business Hours Table (Mobile) ---- */
	.footer-right .business-hours-table th,
	.footer-right .business-hours-table td {
		font-size: var(--font-size-xs);
		padding: 6px 0;
	}

	/* ---- Placeholder (Mobile) ---- */
	.placeholder-notice {
		padding: 24px;
	}

	/* ---- Services Archive (Legacy) ---- */
	.services-archive-hero {
		padding: 48px 0;
	}

	.service-page-header {
		padding: 48px 0;
	}

	.service-page-title {
		font-size: var(--font-size-2xl);
	}

	.service-page-header-icon {
		width: 64px;
		height: 64px;
		font-size: 24px;
	}

	/* ---- FAQ Accordion (Mobile) ---- */
	.faq-question {
		padding: 16px 20px;
		font-size: var(--font-size-sm);
	}

	.faq-icon {
		width: 24px;
		height: 24px;
		font-size: 12px;
	}

	.faq-answer.is-open {
		padding: 16px 20px;
	}

	.faq-answer p {
		font-size: var(--font-size-sm);
	}

	/* ---- Single Service Steps (Mobile) ---- */
	.flow-step--vertical {
		gap: 16px;
	}

	/* ---- About Page (Legacy) ---- */
	.about-page-header {
		padding: 48px 0;
	}

	.about-section {
		padding: 48px 0;
	}

	.about-greeting-layout {
		flex-direction: column;
		align-items: center;
	}

	.about-greeting-photo {
		width: 100%;
		max-width: 320px;
	}

	.about-access-layout {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.about-table th {
		width: 140px;
	}

	.about-table th,
	.about-table td {
		padding: 12px 16px;
		font-size: var(--font-size-sm);
	}

	.about-staff-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}

	.about-staff-grid .about-staff-card:last-child {
		grid-column: 1 / -1;
		max-width: 50%;
		margin: 0 auto;
	}

	/* ---- Related Services (Legacy) ---- */
	.service-cards-grid--related {
		grid-template-columns: repeat(2, 1fr);
		gap: 20px;
	}
}


/* ========================================
 * Small Mobile: 480px and below
 * ======================================== */
@media screen and (max-width: 480px) {
	:root {
		--container-padding: 12px;
	}

	.site-title-text {
		font-size: var(--font-size-base);
	}

	.logo-icon {
		font-size: var(--font-size-lg);
	}

	.footer-logo a {
		font-size: var(--font-size-lg);
	}

	.error-code {
		font-size: 64px;
	}

	/* ---- Hero v2 (Small Mobile) ---- */
	.hero-section-v2 {
		height: 100vh;
		height: 100dvh;
		padding: 80px 0 32px;
	}

	.hero-v2-title-line {
		font-size: var(--font-size-xl);
	}

	.hero-v2-title-line:last-child {
		font-size: var(--font-size-lg);
	}

	.hero-v2-subtitle {
		font-size: var(--font-size-xs);
	}

	.hero-category-btn {
		padding: 6px 10px;
		font-size: 11px;
	}

	.hero-category-btn i {
		font-size: var(--font-size-sm);
	}

	/* Legacy Hero */
	.hero-title {
		font-size: var(--font-size-2xl);
	}

	.hero-subtitle {
		font-size: var(--font-size-base);
	}

	/* Pain Points */
	.pain-points-list {
		grid-template-columns: 1fr;
	}

	/* Service Cards (Legacy) */
	.service-cards-grid {
		grid-template-columns: 1fr;
	}

	.service-card {
		padding: 24px 16px;
	}

	/* Flow Steps */
	.flow-step {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.flow-step-number {
		width: 52px;
		height: 52px;
		font-size: var(--font-size-xl);
	}

	/* Profile (Legacy) */
	.profile-photo-placeholder {
		width: 200px;
		height: 240px;
		font-size: 60px;
	}

	/* Recent Posts (Legacy) */
	.recent-posts-grid {
		grid-template-columns: 1fr;
	}

	/* Area Coverage (Legacy) */
	.area-coverage-grid {
		grid-template-columns: 1fr;
	}

	.area-coverage-grid .area-coverage-card:last-child {
		max-width: 100%;
	}

	/* Services Archive & Single (Legacy) */
	.services-archive-hero {
		padding: 36px 0;
	}

	.service-page-header {
		padding: 36px 0;
	}

	.service-page-title {
		font-size: var(--font-size-xl);
	}

	.service-page-header-icon {
		width: 56px;
		height: 56px;
		font-size: 20px;
		margin-bottom: 16px;
	}

	.service-page-overview {
		font-size: var(--font-size-sm);
	}

	/* Service Steps Vertical */
	.flow-step--vertical .flow-step-number {
		width: 44px;
		height: 44px;
		font-size: var(--font-size-lg);
	}

	/* Pricing Box */
	.service-pricing-box {
		padding: 20px;
	}

	/* FAQ Accordion */
	.faq-question {
		padding: 14px 16px;
		font-size: var(--font-size-xs);
	}

	.faq-icon {
		width: 22px;
		height: 22px;
		font-size: 11px;
	}

	/* About Page (Legacy) */
	.about-page-header {
		padding: 36px 0;
	}

	.about-section {
		padding: 36px 0;
	}

	.about-table th {
		display: block;
		width: 100%;
		border-bottom: none;
		padding-bottom: 4px;
		font-size: var(--font-size-sm);
	}

	.about-table td {
		display: block;
		padding-top: 4px;
		padding-bottom: 16px;
		font-size: var(--font-size-sm);
	}

	.about-access-icon {
		width: 40px;
		height: 40px;
		font-size: 16px;
	}

	.about-staff-grid {
		grid-template-columns: 1fr;
	}

	.about-staff-grid .about-staff-card:last-child {
		max-width: 100%;
	}

	.about-staff-placeholder {
		width: 100px;
		height: 100px;
		font-size: 36px;
	}

	/* Related Services (Legacy) */
	.service-cards-grid--related {
		grid-template-columns: 1fr;
	}

	/* Cases Archive (Legacy) */
	.cases-stats-grid {
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}

	.cases-stat-item {
		padding: 16px 12px;
	}

	.cases-stat-number {
		font-size: var(--font-size-xl);
	}

	.cases-cards-grid {
		grid-template-columns: 1fr;
	}

	/* Single Case (Legacy) */
	.case-page-header {
		padding: 36px 0;
	}

	.case-page-title {
		font-size: var(--font-size-xl);
	}

	/* Contact Page */
	.form-input,
	.form-select,
	.form-textarea {
		font-size: var(--font-size-sm);
		padding: 10px 12px;
	}

	.contact-info-box {
		padding: 20px;
	}

	.contact-info-phone {
		font-size: var(--font-size-xl);
	}

	/* Thanks Page */
	.thanks-icon {
		font-size: 48px;
	}

	.thanks-title {
		font-size: var(--font-size-xl);
	}

	.thanks-contact-item {
		flex-direction: column;
		gap: 8px;
	}

	/* Blog */
	.blog-cards-grid {
		grid-template-columns: 1fr;
	}

	.blog-cards-grid--related {
		grid-template-columns: 1fr;
	}

	.blog-single-title {
		font-size: var(--font-size-xl);
	}

	.blog-single-meta {
		flex-direction: column;
		gap: 8px;
	}

	.blog-related {
		padding: 20px;
	}

	/* ---- Profile v2 (Small Mobile) ---- */
	.profile-v2-photo__frame {
		width: 150px;
		height: 200px;
	}

	/* ---- Blog Cards v2 (Small Mobile) ---- */
	.blog-card-v2__image {
		height: 160px;
	}

	/* ---- Sub Page Header (Small Mobile) ---- */
	.sub-page-header {
		padding: 48px 0 32px;
	}

	.sub-page-header__title {
		font-size: var(--font-size-xl);
	}

	.sub-page-header__en-label {
		font-size: 11px;
	}
}


/* ========================================
 * Hover Effect: Touch Device Optimization
 * Disable hover transforms on touch devices
 * ======================================== */
@media (hover: none) {
	/* Disable hover lift on cards */
	.card:hover {
		transform: none;
	}

	.card-v2:hover {
		transform: none;
	}

	.card-glass:hover {
		transform: none;
	}

	.faq-card:hover,
	.card-v2--glass-hover:hover {
		transform: none;
	}

	.area-v2-card:hover {
		transform: none;
	}

	.area-coverage-card:hover {
		transform: none;
	}

	/* Disable hover lift on buttons */
	.btn:hover,
	.btn-primary:hover,
	.btn-accent:hover,
	.btn-outline:hover,
	.btn-gradient-primary:hover,
	.btn-gradient-accent:hover,
	.btn-glass:hover,
	.btn-outline-accent:hover,
	.btn-outline-white:hover,
	.btn-outline-white-v2:hover {
		transform: none;
	}

	/* Disable image zoom on hover for touch devices */
	.post-card:hover .post-card-image img,
	.card-v2:hover .card-v2-image-wrap img,
	.blog-card-v2:hover .blog-card-v2__image img {
		transform: none;
	}

	/* Keep color changes but remove transforms */
	.service-card-v2:hover .service-card-v2__image {
		box-shadow: var(--shadow-md);
	}

	.cta-v2-btn:hover {
		transform: none;
	}

	.cta-v2-btn--phone:hover {
		box-shadow: var(--shadow-md);
	}

	.cta-v2-btn--email:hover {
		box-shadow: var(--shadow-accent);
	}
}

/* Enable hover effects only on devices that support hover */
@media (hover: hover) {
	.card-v2:hover {
		box-shadow: var(--shadow-hover);
		transform: translateY(var(--hover-lift-y));
	}

	.card-v2:focus-within {
		box-shadow: var(--shadow-hover);
		transform: translateY(var(--hover-lift-y));
	}
}


/* ========================================
 * Reduced Motion: Accessibility
 * ======================================== */
@media (prefers-reduced-motion: reduce) {
	/* Disable all transitions and animations */
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	/* Ensure elements are visible */
	.fade-in-target,
	.fade-in-up {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.fade-in-stagger > * {
		opacity: 1;
		transform: none;
		transition: none;
	}

	/* Disable parallax */
	.hero-section {
		background-attachment: scroll;
	}

	.hero-v2-parallax-bg {
		display: none;
	}

	.section-cta-banner {
		background-attachment: scroll;
	}

	/* Keep instant visibility for fade-in-stagger children */
	.fade-in-stagger.is-visible > *:nth-child(1),
	.fade-in-stagger.is-visible > *:nth-child(2),
	.fade-in-stagger.is-visible > *:nth-child(3),
	.fade-in-stagger.is-visible > *:nth-child(4),
	.fade-in-stagger.is-visible > *:nth-child(5),
	.fade-in-stagger.is-visible > *:nth-child(6),
	.fade-in-stagger.is-visible > *:nth-child(7),
	.fade-in-stagger.is-visible > *:nth-child(8) {
		transition-delay: 0s;
	}
}


/* ========================================
 * Print Styles
 * ======================================== */
@media print {
	.site-header,
	.site-footer,
	.hamburger-btn,
	.breadcrumb,
	.btn,
	.hero-v2-parallax-bg,
	.hero-v2-overlay,
	.hero-v2-bg-pattern,
	.section-wave-divider {
		display: none !important;
	}

	body {
		color: #000;
		background: #fff;
		font-size: 12pt;
	}

	.container {
		max-width: 100%;
		padding: 0;
	}

	a {
		color: #000;
		text-decoration: underline;
	}

	.entry-content {
		line-height: 1.5;
	}

	/* Force sections to have white background in print */
	.hero-section,
	.hero-section-v2,
	.section-cta-banner,
	.section-cta-v2,
	.services-archive-hero,
	.cases-archive-hero,
	.sub-page-header,
	.service-page-header {
		background: #fff !important;
		color: #000 !important;
		padding: 24pt 0 !important;
		min-height: auto !important;
		height: auto !important;
	}

	.hero-section *,
	.hero-section-v2 *,
	.section-cta-banner *,
	.section-cta-v2 * {
		color: #000 !important;
	}
}
