      :root {
      	--color-mountain: #1a3d2e;
      	--color-sky: #4a7c59;
      	--color-mist: #e8f2eb;
      	--color-snow: #ffffff;
      	--color-forest: #2d5a3f;
      	--color-accent: #c9a227;
      	--color-text: #2c3e35;
      	--color-text-light: #6b7c6f;
      	--gradient-mountain: linear-gradient(180deg, #1a3d2e 0%, #2d5a3f 50%, #4a7c59 100%);
      	--gradient-sky: linear-gradient(180deg, #a8c5a0 0%, #d4e6d0 100%);
      	--font-display: 'Cormorant Garamond', serif;
      	--font-body: 'Noto Sans JP', sans-serif;
      	--shadow-soft: 0 4px 20px rgba(26, 58, 74, 0.08);
      	--shadow-medium: 0 8px 40px rgba(26, 58, 74, 0.12);
      	--radius-sm: 8px;
      	--radius-md: 16px;
      	--radius-lg: 24px;
      }

      *,
      *::before,
      *::after {
      	margin: 0;
      	padding: 0;
      	box-sizing: border-box;
      }

      html {
      	scroll-behavior: smooth;
      	font-size: 100%;
      }

      body {
      	font-family: var(--font-body);
      	font-weight: 400;
      	color: var(--color-text);
      	line-height: 1.8;
      	-webkit-font-smoothing: antialiased;
      }

      #main {
      	overflow: unset;
      }

      #special {
      	max-width: 100% !important;
      	padding: 0 !important;
      }

      .important-notice {
      	max-width: 1100px;
      	margin: 30px auto 0;
      }

      .spnew section {
      	margin-bottom: 0;
      }

      /* Hero Section */
      .hero {
      	position: relative;
      	min-height: 60vh;
      	display: flex;
      	flex-direction: column;
      	justify-content: center;
      	align-items: center;
      	background: var(--gradient-mountain);
      	background-image: url('https://www.kosokubus.com/sp/images/nagano/kamikochi.jpg');
      	background-size: cover;
      	background-position: center;
      	overflow: hidden;
      	padding: 60px 20px;
      }

      .hero::before {
      	content: '';
      	position: absolute;
      	inset: 0;
      	background: rgba(0, 0, 0, 0.3);
      	pointer-events: none;
      }

      .hero-content {
      	position: relative;
      	z-index: 1;
      	text-align: center;
      	max-width: 900px;
      	animation: fadeInUp 1s ease-out;
      }

      @keyframes fadeInUp {
      	from {
      		opacity: 0;
      		transform: translateY(30px);
      	}

      	to {
      		opacity: 1;
      		transform: translateY(0);
      	}
      }

      .hero-badge {
      	display: inline-block;
      	padding: 8px 24px;
      	background: rgba(255, 255, 255, 0.1);
      	border: 1px solid rgba(255, 255, 255, 0.2);
      	border-radius: 30px;
      	color: var(--color-snow);
      	font-size: 0.85rem;
      	letter-spacing: 0.1em;
      	text-transform: uppercase;
      	margin-bottom: 30px;
      	backdrop-filter: blur(10px);
      }

      .hero h1 {
      	font-family: var(--font-display);
      	font-size: clamp(2.5rem, 7vw, 4.0rem);
      	font-weight: 400;
      	color: var(--color-snow);
      	line-height: 1.2;
      	margin-bottom: 24px;
      	letter-spacing: 0.02em;
      }

      .hero h1 span {
      	display: block;
      	font-size: 0.5em;
      	color: var(--color-accent);
      	margin-top: 10px;
      	letter-spacing: 0.15em;
      }

      .hero-subtitle {
      	font-size: 1.1rem;
      	color: rgba(255, 255, 255, 0.8);
      	max-width: 600px;
      	margin: 0 auto 40px;
      	font-weight: 300;
      }

      .hero-period {
      	display: inline-flex;
      	align-items: center;
      	gap: 12px;
      	padding: 16px 32px;
      	background: rgba(255, 255, 255, 0.1);
      	border: 1px solid var(--color-snow);
      	border-radius: var(--radius-md);
      	color: var(--color-snow);
      	font-size: 1rem;
      }

      .hero-period svg {
      	width: 20px;
      	height: 20px;
      }

      /* Navigation */
      .nav-section {
      	position: sticky;
      	top: 0;
      	z-index: 100;
      	background: rgba(255, 255, 255, 0.95);
      	backdrop-filter: blur(20px);
      	border-bottom: 1px solid rgba(26, 58, 74, 0.08);
      	padding: 0 20px;
      }

      .nav-container {
      	max-width: 1200px;
      	margin: 0 auto;
      	display: flex;
      	gap: 8px;
      	padding: 16px 0;
      	overflow-x: auto;
      	scrollbar-width: none;
      }

      .nav-container::-webkit-scrollbar {
      	display: none;
      }

      .nav-link {
      	flex-shrink: 0;
      	padding: 12px 24px;
      	background: transparent;
      	border: 1px solid var(--color-sky);
      	border-radius: 30px;
      	color: var(--color-mountain);
      	text-decoration: none;
      	font-size: 0.9rem;
      	font-weight: 500;
      	transition: all 0.3s ease;
      	white-space: nowrap;
      }

      .nav-link:hover {
      	background: var(--color-sky);
      	color: var(--color-snow);
      	border-color: var(--color-sky);
      }

      /* Introduction */
      .intro {
      	padding: 100px 20px;
      	background: var(--color-snow);
      }

      .intro-container {
      	max-width: 1100px;
      	margin: 0 auto;
      	display: grid;
      	grid-template-columns: 1fr 1fr;
      	gap: 60px;
      	align-items: center;
      }

      @media (max-width: 768px) {
      	.intro-container {
      		grid-template-columns: 1fr;
      		gap: 40px;
      	}
      }

      .intro-image {
      	position: relative;
      	border-radius: var(--radius-lg);
      	overflow: hidden;
      	aspect-ratio: 4/3;
      	box-shadow: var(--shadow-medium);
      }

      .intro-image img {
      	width: 100%;
      	height: 100%;
      	object-fit: cover;
      }

      .intro-image::after {
      	content: '';
      	position: absolute;
      	inset: 0;
      	border: 1px solid rgba(255, 255, 255, 0.3);
      	border-radius: var(--radius-lg);
      	pointer-events: none;
      }

      .intro-content h2 {
      	font-family: var(--font-display);
      	font-size: 2.2rem;
      	font-weight: 500;
      	color: var(--color-mountain);
      	margin-bottom: 24px;
      	line-height: 1.3;
      }

      .intro-content p {
      	color: var(--color-text-light);
      	margin-bottom: 16px;
      	font-size: 0.95rem;
      }

      .intro-highlight {
      	margin-top: 30px;
      	padding: 24px;
      	background: var(--color-mist);
      	border-radius: var(--radius-md);
      	border-left: 4px solid var(--color-forest);
      }

      .intro-highlight p {
      	margin: 0;
      	color: var(--color-forest);
      	font-size: 0.9rem;
      }

      /* Route Section */
      .route-section {
      	padding: 80px 20px;
      }

      .route-section:nth-child(even) {
      	background: var(--color-snow);
      }

      .route-section:nth-child(odd) {
      	background: var(--color-mist);
      }

      .route-container {
      	max-width: 1100px;
      	margin: 0 auto;
      }

      .route-header {
      	text-align: center;
      	margin-bottom: 50px;
      }

      .route-header h2 {
      	font-family: var(--font-display);
      	font-size: 2rem;
      	font-weight: 500;
      	color: var(--color-mountain);
      	margin-bottom: 8px;
      }

      .route-header p {
      	color: var(--color-text-light);
      	font-size: 0.95rem;
      }

      .route-card {
      	background: var(--color-snow);
      	border-radius: var(--radius-lg);
      	box-shadow: var(--shadow-soft);
      	overflow: hidden;
      	margin-bottom: 30px;
      	border: 1px solid rgba(26, 58, 74, 0.06);
      }

      .route-card-header {
      	padding: 24px 30px;
      	background: var(--gradient-sky);
      	display: flex;
      	justify-content: space-between;
      	align-items: center;
      	flex-wrap: wrap;
      	gap: 16px;
      }

      .route-card-header h3 {
      	font-family: var(--font-display);
      	font-size: 1.5rem;
      	font-weight: 500;
      	color: var(--color-mountain);
      }

      .route-card-header .price {
      	font-size: 1.1rem;
      	color: var(--color-forest);
      	font-weight: 600;
      }

      .route-info {
      	padding: 30px;
      	display: grid;
      	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      	gap: 24px;
      }

      .info-item {
      	display: flex;
      	flex-direction: column;
      	gap: 6px;
      }

      .info-item .label {
      	font-size: 0.8rem;
      	color: var(--color-text-light);
      	text-transform: uppercase;
      	letter-spacing: 0.08em;
      }

      .info-item .value {
      	font-size: 0.95rem;
      	color: var(--color-text);
      	font-weight: 500;
      }

      /* Amenities */
      .amenities {
      	padding: 24px 30px;
      	background: var(--color-mist);
      	border-top: 1px solid rgba(26, 58, 74, 0.06);
      }

      .amenities-title {
      	font-size: 0.85rem;
      	font-weight: 600;
      	color: var(--color-mountain);
      	margin-bottom: 16px;
      }

      .amenities-grid {
      	display: flex;
      	flex-wrap: wrap;
      	gap: 10px;
      }

      .amenity {
      	display: inline-flex;
      	align-items: center;
      	gap: 6px;
      	padding: 8px 14px;
      	border-radius: 20px;
      	font-size: 0.8rem;
      	font-weight: 500;
      }

      .amenity.yes {
      	background: rgba(45, 90, 71, 0.1);
      	color: var(--color-forest);
      }

      .amenity.no {
      	background: rgba(107, 124, 133, 0.1);
      	color: var(--color-text-light);
      	text-decoration: line-through;
      	opacity: 0.6;
      }

      .amenity svg {
      	width: 14px;
      	height: 14px;
      }

      .amenities span {
      	font-size: 0.9rem;
      	margin-top: 0.5rem;
      	color: var(--color-text-light);
      }

      /* Stops */
      .stops-section {
      	padding: 30px;
      	border-top: 1px solid rgba(26, 58, 74, 0.06);
      }

      .stops-grid {
      	display: grid;
      	grid-template-columns: 1fr 1fr;
      	gap: 40px;
      }

      @media (max-width: 600px) {
      	.stops-grid {
      		grid-template-columns: 1fr;
      		gap: 30px;
      	}
      }

      .stops-column h4 {
      	font-size: 0.9rem;
      	font-weight: 600;
      	color: var(--color-mountain);
      	margin-bottom: 20px;
      	padding-bottom: 12px;
      	border-bottom: 2px solid var(--color-sky);
      }

      .stops-list {
      	display: flex;
      	flex-direction: column;
      	gap: 0;
      }

      .stop-item {
      	position: relative;
      	padding: 12px 0 12px 28px;
      	font-size: 0.9rem;
      	color: var(--color-text);
      }

      .stop-item::before {
      	content: '';
      	position: absolute;
      	left: 8px;
      	top: 0;
      	bottom: 0;
      	width: 2px;
      	background: linear-gradient(180deg, var(--color-sky), var(--color-forest));
      }

      .stop-item::after {
      	content: '';
      	position: absolute;
      	left: 4px;
      	top: 50%;
      	transform: translateY(-50%);
      	width: 10px;
      	height: 10px;
      	background: var(--color-snow);
      	border: 2px solid var(--color-sky);
      	border-radius: 50%;
      }

      .stop-item:first-child::before {
      	top: 50%;
      }

      .stop-item:last-child::before {
      	bottom: 50%;
      }

      .stop-item:last-child::after {
      	background: var(--color-forest);
      	border-color: var(--color-forest);
      }

      .stop-note {
      	font-size: 0.8rem;
      	color: var(--color-text-light);
      	margin-top: 12px;
      	padding-left: 28px;
      }

      /* Booking Buttons */
      .booking-buttons {
      	padding: 24px 30px;
      	background: var(--color-mist);
      	display: flex;
      	gap: 16px;
      	flex-wrap: wrap;
      }

      .btn-book {
      	flex: 1;
      	min-width: 200px;
      	padding: 16px 24px;
      	background: var(--color-mountain);
      	color: var(--color-snow) !important;
      	text-decoration: none;
      	border-radius: var(--radius-sm);
      	font-size: 0.95rem;
      	font-weight: 500;
      	text-align: center;
      	transition: all 0.3s ease;
      	display: flex;
      	align-items: center;
      	justify-content: center;
      	gap: 8px;
      }

      .btn-book:hover {
      	background: var(--color-forest);
      	transform: translateY(-2px);
      	box-shadow: var(--shadow-medium);
      }

      .btn-book svg {
      	width: 18px;
      	height: 18px;
      }

      /* Phone Section */
      .phone-section {
      	padding: 80px 20px;
      	background: var(--color-mountain);
      	text-align: center;
      }

      .phone-container {
      	max-width: 600px;
      	margin: 0 auto;
      }

      .phone-section h2 {
      	font-family: var(--font-display);
      	font-size: 2rem;
      	font-weight: 500;
      	color: var(--color-snow);
      	margin-bottom: 20px;
      }

      .phone-section p {
      	color: rgba(255, 255, 255, 0.7);
      	margin-bottom: 30px;
      	font-size: 0.95rem;
      }

      .phone-card {
      	background: rgba(255, 255, 255, 0.1);
      	border: 1px solid rgba(255, 255, 255, 0.2);
      	border-radius: var(--radius-md);
      	padding: 30px;
      	backdrop-filter: blur(10px);
      }

      .phone-card .name {
      	font-size: 1rem;
      	color: var(--color-accent);
      	font-weight: 600;
      	margin-bottom: 12px;
      }

      .phone-card .number {
      	font-family: var(--font-display);
      	font-size: 2rem;
      	color: var(--color-snow);
      	text-decoration: none;
      	display: block;
      	margin-bottom: 12px;
      }

      .phone-card .hours {
      	font-size: 0.85rem;
      	color: rgba(255, 255, 255, 0.6);
      }

      /* Back Links */
      .back-section {
      	padding: 60px 20px;
      	background: var(--color-mist);
      	text-align: center;
      }

      .back-links {
      	display: flex;
      	justify-content: center;
      	gap: 20px;
      	flex-wrap: wrap;
      }

      .back-link {
      	padding: 14px 28px;
      	background: var(--color-snow);
      	border: 1px solid var(--color-sky);
      	border-radius: var(--radius-sm);
      	color: var(--color-mountain);
      	text-decoration: none;
      	font-size: 0.9rem;
      	font-weight: 500;
      	transition: all 0.3s ease;
      }

      .back-link:hover {
      	background: var(--color-sky);
      	color: var(--color-snow);
      }

      /* Update Date */
      .update-date {
      	text-align: center;
      	padding: 20px;
      	font-size: 0.8rem;
      	color: var(--color-text-light);
      	background: var(--color-snow);
      }

      /* Animations */
      @keyframes slideIn {
      	from {
      		opacity: 0;
      		transform: translateY(20px);
      	}

      	to {
      		opacity: 1;
      		transform: translateY(0);
      	}
      }

      .route-card {
      	animation: slideIn 0.6s ease-out;
      }

      .spnew .path {
      	margin-bottom: 0;
      	font-size: 0.9rem;
      	padding: 0 10PX;
      }