/*
Theme Name: 城下町米子 観光ガイド
Theme URI: https://yonago-tourism.com/
Author: まちなか観光案内所
Description: 城下町米子まちなか観光案内所 公式サイトのWordPressテーマ
Version: 1.0.10
License: All Rights Reserved
Text Domain: yonago-tourism
*/

@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Shippori+Mincho:wght@400;500;700&display=swap";:root{--color-primary: #111111;--color-secondary: #c5a059;--color-text: #1a1a1a;--color-text-light: #ffffff;--color-background: #ffffff;--color-surface: #ffffff;--color-accent-red: #bf202f;--spacing-xs: 0.5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 5rem;--spacing-xl: 8rem;--font-sans: 'Noto Sans JP', sans-serif;--font-serif: 'Shippori Mincho', serif;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--radius-full: 9999px;--transition-fast: 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);--transition-normal: 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94)}*{box-sizing:border-box;margin:0;padding:0}html,body{overflow-x:hidden;width:100%}body{font-family:var(--font-serif);font-weight:500;color:var(--color-text);background-color:var(--color-background);line-height:1.8;overflow-x:hidden;letter-spacing:.05em}a{text-decoration:none;color:inherit;transition:var(--transition-fast)}ul{list-style:none}img{max-width:100%;height:auto;display:block}.section-subtitle{font-family:"Cormorant Garamond",serif;font-weight:400;font-size:1.2rem;letter-spacing:.2em;display:block;margin-bottom:.5rem;color:var(--color-secondary);text-align:center}h1,h2,h3,h4{font-family:var(--font-serif);line-height:1.4;font-weight:500}.section-title{font-size:2.2rem;text-align:center;margin-bottom:var(--spacing-lg);position:relative;padding-bottom:var(--spacing-md);letter-spacing:.2em;transform:scaleY(0.9);transform-origin:top center;display:inline-block;width:100%}.section-title::after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:40px;height:1px;background:var(--color-secondary)}body::before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;z-index:-2;background-color:#fcfcfc;background-image:url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.05'/%3E%3C/svg%3E");pointer-events:none}.container{width:calc(100% - 13vw);max-width:1100px;margin:0 auto;padding:0 clamp(1rem,2vw,2rem)}@media(max-width: 899px){.container{width:88%;padding:0 1rem}}.header{position:fixed;top:0;left:0;width:100%;background:linear-gradient(to bottom, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 100%);z-index:1000;padding:1.2rem 0;transition:var(--transition-normal)}.header.scrolled{background:hsla(0,0%,100%,.95);backdrop-filter:blur(10px);box-shadow:0 2px 20px rgba(0,0,0,.05);padding:.8rem 0}.header.scrolled .logo{color:#000}.header.scrolled .logo img{filter:invert(1)}.header.scrolled .nav-link{color:#333}.header-inner{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:0 4%}.logo{font-family:var(--font-serif);font-size:1.6rem;font-weight:500;color:#fff;line-height:1.2;display:flex;align-items:center;gap:.5rem;text-shadow:0 2px 4px rgba(0,0,0,.3)}.logo span{font-size:.8rem;letter-spacing:.1em;display:block;margin-top:.2rem}.nav-desktop{display:none}@media(min-width: 900px){.nav-desktop{display:flex;gap:2.5rem;align-items:center}}.nav-link{font-family:var(--font-sans);font-size:.9rem;font-weight:500;color:#fff;letter-spacing:.1em;position:relative;text-shadow:0 1px 3px rgba(0,0,0,.3)}.nav-link::after{content:"";position:absolute;bottom:-5px;left:0;width:0%;height:1px;background:var(--color-secondary);transition:var(--transition-fast)}.nav-link:hover::after{width:100%}.btn-reserve{background-color:rgba(0,0,0,0);color:#fff;border:1px solid hsla(0,0%,100%,.8);padding:.6rem 2rem;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.9rem;font-weight:500;display:inline-flex;align-items:center;gap:.5rem;transition:all .4s ease;text-shadow:none}.header.scrolled .btn-reserve{border-color:#000;color:#000}.btn-reserve:hover{background-color:#fff;color:#000;border-color:#fff}.header.scrolled .btn-reserve:hover{background-color:#000;color:#fff;border-color:#000}.hamburger{display:flex;flex-direction:column;gap:6px;cursor:pointer;z-index:1003;position:relative}.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px, 5px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(5px, -5px)}.hamburger.active span{background-color:#000 !important}@media(min-width: 900px){.hamburger{display:none}}.hamburger span{width:30px;height:1px;background-color:#fff;transition:var(--transition-fast)}.header.scrolled .hamburger span{background-color:#000}.nav-mobile-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:999;opacity:0;visibility:hidden;transition:var(--transition-normal)}.nav-mobile-overlay.active{opacity:1;visibility:visible}.nav-mobile{position:fixed;top:0;right:-300px;width:300px;height:100%;background:var(--color-surface);z-index:1002;padding:5rem 2rem 8rem;transition:right .3s ease,box-shadow .3s ease;box-shadow:none;overflow-y:auto}.nav-mobile.active{right:0;box-shadow:-5px 0 20px rgba(0,0,0,.1)}.nav-close{position:absolute;top:1.5rem;right:1.5rem;font-size:1.2rem;color:var(--color-text);cursor:pointer;font-weight:bold;display:flex;align-items:center;gap:.5rem}.nav-mobile a{display:block;padding:1rem 0;font-size:1.1rem;font-weight:500;color:var(--color-text);border-bottom:1px solid #eee}.nav-mobile a:hover{color:var(--color-secondary)}.nav-mobile .btn-reserve-mobile{display:block;background-color:var(--color-primary);color:#fff;padding:1rem;border-radius:var(--radius-sm);font-weight:700;text-align:center;margin-top:1.5rem}.footer{background-color:#111;color:var(--color-text-light);padding:var(--spacing-lg) 0;text-align:center}.footer-nav{display:flex;justify-content:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap}.footer-nav a{opacity:.7;transition:opacity .3s}.footer-nav a:hover{opacity:1}.footer-btn-reserve{display:block;width:100%;max-width:300px;margin:0 auto 3rem;text-align:center;padding:1rem 2rem;font-size:1.1rem;border:1px solid #fff}.footer-btn-reserve:hover{background:#fff;color:#000}.copyright{margin-top:var(--spacing-sm);font-size:.85rem;opacity:.5}@media(min-width: 900px){.copyright br{display:none}}.hero{height:100vh;position:relative;overflow:hidden;display:flex}.hero-slider{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}.hero-slide{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;opacity:0;transition:opacity 2s ease-in-out;transform:scale(1.05);animation:zoomSlow 20s infinite alternate}@keyframes zoomSlow{from{transform:scale(1)}to{transform:scale(1.1)}}.hero-slide.active{opacity:1}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.15);z-index:0}.hero-content{position:absolute;top:55%;left:12%;transform:translateY(-50%);z-index:10;text-align:left;color:#fff;writing-mode:vertical-rl;text-orientation:upright;height:60vh;animation:heroTextReveal 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) .6s both}.hero-title{font-family:var(--font-serif);font-size:2.8rem;line-height:1.8;letter-spacing:.15em;margin-left:2.5rem;text-shadow:0 2px 10px rgba(0,0,0,.4);border-right:1px solid hsla(0,0%,100%,.6);padding-right:2rem;transform:scaleY(0.9);transform-origin:top}.hero-subtitle{font-family:var(--font-serif);font-size:1.1rem;line-height:2;letter-spacing:.15em;opacity:.95;margin-left:0;text-shadow:0 2px 8px rgba(0,0,0,.4);font-weight:300}.hero .btn-reserve:hover{background:hsla(0,0%,100%,.18) !important;color:#fff !important;border-color:#fff !important}.hero-content .fade-up{opacity:1 !important;transform:translateY(0) !important;transition:none !important}@keyframes heroTextReveal{from{opacity:0;transform:translateY(-50%) translateX(-16px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}@keyframes heroDecorReveal{from{opacity:0;transform:scaleY(0);transform-origin:top}to{opacity:1;transform:scaleY(1)}}.hero-sub{height:50vh !important;min-height:400px}.hero-sub .hero-content{writing-mode:horizontal-tb;height:auto;width:100%;left:50%;top:50%;transform:translate(-50%, -50%);text-align:center;border-right:none;padding-right:0;animation:none}.hero-sub .hero-title{font-size:2.5rem;margin-left:0;margin-bottom:1rem;border-right:none;text-shadow:0 2px 5px rgba(0,0,0,.5)}.hero-sub .hero-subtitle{font-size:1rem;margin-left:0;opacity:.9}.scroll-line{position:relative;width:1px;height:80px;background:hsla(0,0%,100%,.3);overflow:hidden}.scroll-line::after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:#fff;animation:scrollDrop 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite}@keyframes scrollDrop{0%{top:-100%}50%{top:0%}100%{top:100%}}.search-widget{background:var(--color-surface);padding:var(--spacing-md);border-radius:var(--radius-sm);box-shadow:0 10px 40px rgba(0,0,0,.08);margin-top:-3rem;position:relative;z-index:10;display:flex;flex-direction:column;gap:var(--spacing-sm);border:1px solid rgba(0,0,0,.05)}@media(min-width: 768px){.search-widget{flex-direction:row;align-items:center;gap:var(--spacing-md)}}.search-group{flex:1;display:flex;flex-direction:column;gap:.5rem}.search-label{font-size:.9rem;font-weight:700;color:var(--color-primary)}.search-input{padding:.8rem;border:1px solid #ddd;border-radius:var(--radius-sm);font-family:inherit}.btn-search{background-color:var(--color-primary);color:#fff;padding:.8rem 2rem;border-radius:var(--radius-sm);font-weight:700;border:none;cursor:pointer;transition:var(--transition-fast)}.btn-search:hover{background-color:#333}.grid-3{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}@media(min-width: 768px){.grid-3{grid-template-columns:repeat(3, 1fr)}}.card{background:var(--color-surface);border-radius:var(--radius-sm);overflow:hidden;box-shadow:none;border:1px solid #eee;transition:var(--transition-normal);cursor:pointer}.card>a{display:block;color:inherit}.card:hover{transform:translateY(-5px);box-shadow:0 20px 40px rgba(0,0,0,.08);border-color:rgba(0,0,0,0)}.card-image{height:250px;background-color:#ddd;background-size:cover;background-position:center}.card-content{padding:var(--spacing-md);text-align:center}.card-title{font-size:1.3rem;margin-bottom:.8rem;color:var(--color-primary);font-weight:500}.card-text{font-size:.95rem;color:#555;margin-bottom:1.5rem;line-height:1.8}.card-footer{display:flex;justify-content:center;align-items:center;gap:1.5rem;border-top:1px solid #f5f5f5;padding-top:1rem;font-size:.9rem;font-weight:500;color:var(--color-secondary)}.card-footer span{white-space:nowrap}.btn-view-more{display:inline-flex;align-items:center;gap:1rem;padding:1rem 3rem;border:1px solid var(--color-primary);color:var(--color-primary);text-transform:uppercase;letter-spacing:.15em;font-size:.8rem;position:relative;overflow:hidden;transition:all .4s ease}.btn-view-more i{transition:transform .4s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.btn-view-more span,.btn-view-more i{position:relative;z-index:1}.btn-view-more::before{content:"";position:absolute;top:0;left:0;width:0;height:100%;background:var(--color-primary);transition:width .4s ease;z-index:0}.btn-view-more:hover{color:#fff;letter-spacing:.2em}.btn-view-more:hover i{transform:translateX(6px)}.btn-view-more:hover::before{width:100%}.sticky-cta-mobile{display:none;position:fixed;bottom:0;left:0;width:100%;background:#fff;box-shadow:0 -2px 10px rgba(0,0,0,.1);z-index:10000;padding:.5rem}.sticky-cta-mobile .sticky-btn{flex:1;text-align:center;padding:1rem;font-size:1rem;font-weight:bold;color:#fff;border-radius:var(--radius-sm);text-decoration:none;display:flex;justify-content:center;align-items:center;gap:.5rem}.sticky-cta-mobile .sticky-btn.reserve{background-color:var(--color-primary)}.sticky-cta-mobile .sticky-btn.contact{background-color:var(--color-secondary)}.section{padding:var(--spacing-xl) 0}.section-header-vertical{position:absolute;left:4%;top:0;writing-mode:vertical-rl;height:auto;padding-top:2rem;padding-bottom:5rem;display:flex;flex-direction:column;align-items:center;border-right:1px solid rgba(0,0,0,.08);padding-right:1.5rem;padding-left:0;display:none}.section-header-vertical.header-right{left:auto;right:4%;border:none;padding-right:0;padding-left:1.5rem}.section-header-vertical.header-right::before{right:auto;left:0}@media(min-width: 1024px){.section-header-vertical{display:flex}.section{position:relative;padding:var(--spacing-xl) 0 var(--spacing-xl) var(--spacing-lg)}}.section-subtitle-vertical{font-family:"Cormorant Garamond",serif;font-size:.9rem;letter-spacing:.2em;color:var(--color-secondary);margin-bottom:1rem;text-orientation:mixed}.section-title-vertical{font-size:2rem;letter-spacing:.3em;font-family:var(--font-serif);margin-top:1rem;color:var(--color-primary);text-orientation:upright}.showcase-section+.section{padding-top:var(--spacing-md)}.news-list li{transition:background .25s ease,transform .3s ease;padding-left:1.5rem !important;padding-right:1rem !important}.news-list li:hover{background:rgba(0,0,0,.025);transform:translateX(3px)}.card-text,.card-text-asym{text-align:justify}.introArea>p{text-align:justify}.tours-grid-asym{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}@media(min-width: 900px){.tours-grid-asym{grid-template-columns:1.6fr 1fr;gap:var(--spacing-lg);align-items:center}}.card-asym{position:relative;background:rgba(0,0,0,0);overflow:visible;transition:transform var(--transition-normal)}.card-image-asym{width:100%;aspect-ratio:16/10;background-size:cover;background-position:center;border-radius:var(--radius-sm);box-shadow:10px 10px 30px rgba(0,0,0,.1);filter:sepia(10%) contrast(105%);transition:all .6s ease}.tour-item:hover .card-image-asym{filter:sepia(0%) contrast(110%);transform:scale(0.98)}.card-content-asym{background:#fff;padding:2rem;box-shadow:-5px 10px 30px rgba(0,0,0,.05);margin-top:-3rem;margin-left:2rem;position:relative;z-index:2;border-top:2px solid var(--color-secondary);max-width:90%}@media(min-width: 900px){.card-content-asym{margin-top:-5rem;margin-left:4rem;padding:3rem}}.card-title-asym{font-size:1.4rem;margin-bottom:1rem;font-feature-settings:"palt"}.card-text-asym{color:#666;font-size:.95rem;line-height:1.9;margin-bottom:2rem}.card-footer-asym{display:flex;gap:1.5rem;font-family:var(--font-sans);font-size:.9rem;color:var(--color-secondary);font-weight:500}.card-footer-asym span{white-space:nowrap}.tour-stack{display:flex;flex-direction:column;gap:var(--spacing-md)}.card-asym.small .card-image-asym{aspect-ratio:4/3}.card-asym.small .card-content-asym{margin-top:-2rem;margin-left:1.5rem;padding:1.5rem;background:hsla(0,0%,100%,.95);backdrop-filter:blur(4px)}.card-asym.small .card-title-asym{font-size:1.1rem;margin-bottom:.5rem}.card-image-asym.position-top{background-position:center 5% !important}.guide-section{background-color:#f8f8f8}.guide-profile{display:flex;flex-direction:column;align-items:center;text-align:center}.guide-avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;margin-bottom:1rem;border:none;box-shadow:0 5px 15px rgba(0,0,0,.1)}.showcase-section{position:relative;overflow:visible;padding-bottom:4rem}.carousel-container{position:relative;width:100%;margin:0 auto}.carousel-track-container{overflow:hidden;position:relative;width:100%;height:60vh;min-height:400px;max-height:600px;border-radius:var(--radius-lg);box-shadow:0 10px 40px rgba(0,0,0,.1)}.carousel-track{position:relative;height:100%;width:100%;list-style:none;margin:0;padding:0}.carousel-slide{position:absolute;top:0;bottom:0;width:100%;height:100%;opacity:0;transition:opacity 1s cubic-bezier(0.25, 1, 0.5, 1),transform 1s cubic-bezier(0.25, 1, 0.5, 1);transform:scale(1.05);z-index:0}.carousel-slide.current-slide{opacity:1;transform:scale(1);z-index:1}.carousel-image{width:100%;height:100%;object-fit:cover;object-position:center}.carousel-nav{position:absolute;bottom:-60px;right:0;display:flex;align-items:center;gap:2rem;z-index:10}@media(min-width: 768px){.carousel-nav{bottom:2rem;right:2rem;background:hsla(0,0%,100%,.8);padding:.5rem 1rem;border-radius:var(--radius-full);backdrop-filter:blur(5px)}}.carousel-dots{display:flex;gap:.8rem}.carousel-dot{width:8px;height:8px;border-radius:50%;background:#ccc;border:none;cursor:pointer;transition:all .3s ease;padding:0}.carousel-dot.current-slide{background:var(--color-secondary);transform:scale(1.3)}.carousel-arrows{display:flex;gap:1rem}.carousel-button{background:rgba(0,0,0,0);border:none;cursor:pointer;color:#999;font-size:1.2rem;transition:color .3s ease;display:flex;align-items:center;justify-content:center;padding:.5rem}.carousel-button:hover{color:var(--color-primary)}.carousel-button.active{color:var(--color-primary)}.sp-only{display:none}@media(max-width: 767px){.sp-only{display:inline}}.text-center{text-align:center}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}.insta-item{transition:transform .4s ease}.insta-item:hover{transform:scale(1.05);z-index:2}.insta-item:hover .insta-overlay{opacity:1 !important}.insta-overlay i{transform:scale(0.8);transition:transform .3s cubic-bezier(0.175, 0.885, 0.32, 1.275)}.insta-item:hover .insta-overlay i{transform:scale(1.2)}.fade-up{opacity:0;transform:translateY(30px);transition:opacity .8s ease-out,transform .8s cubic-bezier(0.25, 0.46, 0.45, 0.94)}.fade-up.in-view{opacity:1;transform:translateY(0)}.delay-100{transition-delay:.1s}.delay-200{transition-delay:.2s}.delay-300{transition-delay:.3s}.section-header-vertical{position:absolute}.section-header-vertical::before{content:"";position:absolute;top:0;right:0;width:1px;height:0%;background:rgba(0,0,0,.1);transition:height 1.5s cubic-bezier(0.22, 1, 0.36, 1)}.section-header-vertical.in-view::before{height:100%}.section-subtitle-vertical,.section-title-vertical{opacity:0;transform:translateY(-20px);transition:opacity .8s ease,transform .8s ease}.section-header-vertical.in-view .section-subtitle-vertical{opacity:1;transform:translateY(0);transition-delay:.3s}.section-header-vertical.in-view .section-title-vertical{opacity:1;transform:translateY(0) scaleY(0.9);transform-origin:top;transition-delay:.5s}.parallax-element{will-change:transform}@media(max-width: 899px){html{scroll-padding-top:90px}.section{padding:3rem 1.2rem}.section-title{font-size:1.6rem !important;letter-spacing:.1em !important;margin-bottom:1.5rem !important}.section-subtitle{font-size:.85rem !important}.card-title{font-size:1.05rem !important}.card-title-asym{font-size:1.15rem !important}.card-title-asym.small{font-size:1rem !important}.hero{display:block !important}.header-inner{overflow:visible !important}.hero-decorative{display:none !important}.hero>div[style*="bottom: 0"][style*="left: 6vw"]{display:none !important}.hero-content{writing-mode:vertical-rl !important;top:auto !important;bottom:35% !important;right:4% !important;left:auto !important;width:min-content !important;height:auto !important;white-space:nowrap !important;transform:none !important}.hero-sub .hero-content{top:100px !important;bottom:auto !important}.hero-title{font-size:1.25rem !important;margin-left:.8rem !important;line-height:1.4 !important;text-shadow:0 2px 10px rgba(0,0,0,.7) !important;border-right:none !important;padding-right:0 !important}.hero-subtitle{font-size:.7rem !important;margin-left:.2rem !important;line-height:1.5 !important}.hero>div[style*="bottom: 8vh"]{bottom:calc(85px + 2vh) !important;right:auto !important;left:50% !important;transform:translateX(-50%) !important;width:90% !important;gap:.5rem !important}.hero a.btn-reserve[style]{padding:.7rem 1rem !important;font-size:.85rem !important;background:rgba(0,0,0,.65) !important;border:1px solid hsla(0,0%,100%,.6) !important;white-space:normal !important;width:100% !important;text-align:center !important;line-height:1.3 !important}.section-header-vertical{display:flex !important;flex-direction:column !important;align-items:center !important;position:relative !important;left:auto !important;right:auto !important;top:auto !important;bottom:auto !important;width:100% !important;height:auto !important;writing-mode:horizontal-tb !important;border-right:none !important;border-left:none !important;border-bottom:1px solid rgba(0,0,0,.1);padding:0 0 1.5rem 0 !important;margin-bottom:2rem !important;text-align:center !important;justify-content:center !important;gap:.5rem !important}.section-header-vertical::before{display:none !important}.section-subtitle-vertical{writing-mode:horizontal-tb !important;transform:none !important;text-orientation:mixed !important;display:block !important;margin-bottom:0 !important;font-size:.85rem !important;opacity:1 !important}.section-title-vertical{writing-mode:horizontal-tb !important;text-orientation:mixed !important;transform:none !important;margin-top:0 !important;font-size:1.5rem !important;opacity:1 !important;line-height:1.4 !important}.section-title-vertical br{display:none}.tours-grid-asym{grid-template-columns:1fr !important;gap:2rem !important}.card-content-asym{margin-top:-1rem !important;margin-left:1rem !important;width:calc(100% - 2rem) !important;max-width:calc(100% - 2rem) !important;padding:1.2rem !important;box-sizing:border-box !important}.card-asym.small .card-content-asym{margin-top:-1rem !important;margin-left:1rem !important}.card-footer-asym{flex-direction:column !important;gap:.3rem !important}.card-footer-asym span{white-space:normal !important}.tour-stack{gap:2rem !important}.guide-section .container{padding-right:1.2rem !important;padding-left:1.2rem !important}.guide-section>.container>div[style*=max-width]{padding-right:0 !important;padding-left:0 !important;max-width:100% !important;margin-left:0 !important;margin-right:0 !important}.guide-section .grid-3{grid-template-columns:1fr !important;gap:1.5rem !important}.guide-profile{margin-bottom:2rem}.guide-profile p{color:#333 !important;font-size:.95rem !important;line-height:1.8 !important}.guide-profile a{color:var(--color-secondary) !important;font-weight:600 !important}div[style*="linear-gradient(135deg"]{padding:2rem 1.2rem !important}.official-goods-inner h3{font-size:1.25rem !important}.official-goods-inner p{font-size:.9rem !important;text-align:left !important}.official-goods-inner .btn-reserve{display:flex !important;width:100% !important;justify-content:center !important;box-sizing:border-box !important;padding:.8rem 1rem !important;white-space:nowrap !important}div[style*="background: var(--color-primary)"]{padding:2rem 1.5rem !important}div[style*="background: var(--color-primary)"] h3{font-size:1.3rem !important;white-space:nowrap !important}div[style*="background: var(--color-primary)"] p{font-size:.95rem !important;text-align:left !important}div[style*="background: var(--color-primary)"] p br{display:none}div[style*="background: var(--color-primary)"] a.btn-reserve{white-space:nowrap !important;width:auto !important}#news .container>div[style*=max-width],.section .container>div[style*="margin-left: auto"]{max-width:100% !important;margin-left:0 !important;margin-right:0 !important}.section[style*="overflow: hidden"]>div[style*="border-radius: 50%"]{opacity:.15}.insta-item{border-radius:4px;overflow:hidden}#instagram-feed,#fb-container,.fb-page,.fb-page span,.fb-page iframe{max-width:100% !important;width:100% !important}div[style*="background: #7d3a52"],div[style*="background: #2d4a72"]{padding:.8rem 1rem !important;gap:.6rem !important}div[style*="background: #7d3a52"] div>div:last-child,div[style*="background: #2d4a72"] div>div:last-child{font-size:.75rem !important}div[style*="background: #7d3a52"] a[style*="border-radius: 30px"],div[style*="background: #2d4a72"] a[style*="border-radius: 30px"]{padding:.3rem .8rem !important;font-size:.8rem !important}.sns-title{font-size:1.3rem !important;white-space:nowrap !important}.sns-lead{text-align:left !important}.sns-lead br{display:none}div[style*="minmax(400px"]{grid-template-columns:1fr !important}div[style*="padding-right: 4rem"]{padding-right:0 !important;max-width:100% !important}.container{width:88vw;max-width:100%;margin:0 auto}.footer{padding:3rem 1.2rem !important}.footer-nav{gap:1rem 1.5rem !important;font-size:.9rem !important}.footer-btn-reserve{padding:.8rem 2rem !important;font-size:1rem !important}.footer .mb-2 p{font-size:.8rem !important}}@media(max-width: 768px){.sticky-cta-mobile{display:flex;gap:.5rem}body{padding-bottom:80px !important}}#introBg{background-image:url("assets/images/bg_intro.jpg");background-position:center center;background-size:cover;background-repeat:no-repeat;width:100%;overflow:hidden;padding-top:80px}.introArea{position:relative;max-width:1080px;margin:0 auto;height:480px;overflow:visible}.introImg{position:absolute;left:0;top:50px}.introImg img{max-width:420px;width:40vw;height:auto}.introArea .tateLogo{position:absolute;right:0;top:30px}.introArea .tateLogo img{max-height:520px;height:48vh;width:auto}.introArea>p{position:absolute;right:190px;top:75px;line-height:2em;height:420px;writing-mode:vertical-rl;font-size:15px;font-family:var(--font-serif);letter-spacing:.05em;color:var(--color-text)}.introMov{max-width:1100px;margin:0 auto;display:flex;gap:2rem;padding:1rem 4% 5rem;align-items:flex-start}.introMovLeft,.introMovRight{flex:1}.introMovLeft img,.introMovRight img{width:100%;height:auto;display:block}.introMovLeft>div,.introMovRight>div{transition:opacity .3s ease}.introMovLeft>div:hover,.introMovRight>div:hover{opacity:.85}.introMovLeft{margin-top:20px}.introMovRight{margin-top:55px}.movTtl{width:auto !important;max-width:220px !important;margin-bottom:15px}.mov_cap{margin-top:5px;font-size:14px;font-family:var(--font-serif);color:var(--color-text);letter-spacing:.05em}@media(max-width: 1100px){.introArea>p{right:160px;font-size:13px}.introArea .tateLogo img{height:42vh}.introImg img{width:35vw}}@media(max-width: 899px){.introArea{height:auto;padding:2rem 5% 1rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.introImg,.introArea .tateLogo,.introArea>p{position:relative !important;left:auto !important;right:auto !important;top:auto !important;height:auto !important}.introArea .tateLogo{order:1}.introArea>p{order:2}.introImg{order:3}.introImg img{width:80%;max-width:360px;margin:0 auto}.introArea>p{writing-mode:horizontal-tb !important;font-size:.9rem;line-height:2;text-align:left;width:100%}.introArea>p br{display:none}.introArea>p span{white-space:normal !important}.introArea .tateLogo img{height:auto;max-height:200px;margin:0 auto;display:block}.introMov{flex-direction:column;padding:1rem 5% 3rem}.introMovLeft{margin-top:0}.introMovRight{margin-top:0}}.photo-scroll-section{overflow:hidden;padding:0;background:#f7f5f0;position:relative}.photo-scroll-section::before,.photo-scroll-section::after{content:"";position:absolute;top:0;width:100px;height:100%;z-index:2;pointer-events:none}.photo-scroll-section::before{left:0;background:linear-gradient(to right, #f7f5f0 0%, transparent 100%)}.photo-scroll-section::after{right:0;background:linear-gradient(to left, #f7f5f0 0%, transparent 100%)}.photo-scroll-track{display:flex;width:100%;overflow:hidden}.photo-scroll-inner{display:flex;gap:.5rem;animation:photo-scroll 40s linear infinite;will-change:transform}.photo-scroll-inner:hover{animation-play-state:paused}.scroll-item{position:relative;flex-shrink:0;width:360px;height:240px;overflow:hidden}.scroll-item img{width:100%;height:100%;object-fit:cover;display:block}.scroll-item-label{position:absolute;top:1rem;right:.8rem;writing-mode:vertical-rl;font-family:var(--font-serif);font-size:.75rem;color:#fff;letter-spacing:.1em;text-shadow:0 1px 4px rgba(0,0,0,.6);background:rgba(0,0,0,.25);padding:.4rem .2rem}@keyframes photo-scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}@media(max-width: 767px){.scroll-item{width:240px;height:160px}}.movie-card{border-radius:4px !important;overflow:hidden}.movie-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 20px 60px rgba(0,0,0,.6) !important}.movie-card:hover .play-btn{background:red !important;transform:translate(-50%, -50%) scale(1.1) !important}.access-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin-bottom:4rem}@media(min-width: 768px){.access-grid{grid-template-columns:1fr 1fr}}.access-icon{font-size:2.5rem;color:var(--color-secondary);margin-bottom:1rem}@media(min-width: 768px){.access-grid[style*="gap: 3rem;"]{grid-template-columns:1fr 1fr !important}}.detail-hero{height:60vh;background-color:#ddd;background-size:cover;background-position:center;position:relative}.detail-content{background:#fff;margin-top:-100px;position:relative;z-index:10;padding:var(--spacing-lg) var(--spacing-lg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.05)}.info-grid{display:grid;grid-template-columns:1fr;gap:2rem;margin-top:2rem}@media(min-width: 768px){.info-grid{grid-template-columns:2fr 1fr}}.info-table th{text-align:left;padding:1rem 0;border-bottom:1px solid #eee;width:30%;color:#666}.info-table td{padding:1rem 0;border-bottom:1px solid #eee}.sticky-sidebar{position:sticky;top:100px;background:#f9f9f9;padding:2rem;border-radius:var(--radius-md)}.miryoku-bg{background-color:#f7f5f0}.miryoku-point{margin-bottom:6rem;background:#fff;border-radius:var(--radius-lg);box-shadow:0 4px 15px rgba(0,0,0,.03);overflow:hidden}.point-header{text-align:center;padding:3rem 2rem 1rem}.point-label{display:inline-block;color:var(--color-secondary);font-size:1.2rem;font-weight:bold;letter-spacing:.15em;margin-bottom:1rem;font-family:var(--font-serif)}.point-title{font-size:1.1rem;line-height:1.6;color:var(--color-primary);font-family:var(--font-serif)}.point-body{padding:0 2rem 3rem}.point-text{font-size:1rem;line-height:2;color:var(--color-text);margin-bottom:2rem}.point-gallery{display:grid;grid-template-columns:repeat(2, 1fr);gap:1rem;margin-top:2rem}.point-gallery.cols-3{grid-template-columns:repeat(3, 1fr)}.point-gallery.cols-5{grid-template-columns:repeat(2, 1fr)}@media(max-width: 767px){.miryoku-point{margin-left:-1.2rem;margin-right:-1.2rem;border-radius:0}.point-header{padding:1.8rem 1.2rem .8rem}.point-title{font-size:1rem}.point-body{padding:0 0 2.5rem}.point-image-main{display:block;width:100%;border-radius:0;margin-bottom:1.5rem}.point-text,.point-gallery,.point-layout{padding-left:1.5rem;padding-right:1.5rem}}@media(min-width: 768px){.point-title{font-size:1.8rem}.point-body{padding:0 4rem 4rem}.point-gallery.cols-5{grid-template-columns:repeat(5, 1fr)}}.point-gallery img{width:100%;height:auto;border-radius:var(--radius-sm);box-shadow:0 2px 8px rgba(0,0,0,.1)}.point-image-main{width:100%;border-radius:var(--radius-md);margin-bottom:2rem}.point-layout{display:grid;grid-template-columns:1fr;gap:2rem}@media(min-width: 768px){.point-layout{grid-template-columns:1fr 1fr;align-items:center}}.card-content{padding:2.5rem 3rem !important}.course-timeline{position:relative;margin-top:2.5rem;counter-reset:course-step}.course-timeline::before{content:"";position:absolute;left:.85rem;top:1rem;bottom:1rem;width:1px;background:linear-gradient(to bottom, var(--color-secondary), rgba(197, 160, 89, 0.2))}.course-point{position:relative;padding-left:4.5rem;padding-bottom:2.8rem;counter-increment:course-step}.course-point:last-child{padding-bottom:0}.course-point::before{content:counter(course-step, decimal-leading-zero);position:absolute;left:0;top:.05rem;width:1.7rem;height:1.7rem;background:#fff;border:1px solid var(--color-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:"Cormorant Garamond",serif;font-size:.72rem;letter-spacing:0;color:var(--color-secondary);z-index:1}.course-point::after{content:"";position:absolute;left:1.7rem;top:.82rem;width:6rem;height:2px;background-image:radial-gradient(circle, var(--color-secondary) 1px, transparent 1px);background-size:6px 2px;background-repeat:repeat-x;mask-image:linear-gradient(to right, black 0%, transparent 100%);-webkit-mask-image:linear-gradient(to right, black 0%, transparent 100%)}.course-point:last-child::before{background:var(--color-secondary);color:#fff}.course-time{display:block;font-family:"Cormorant Garamond",serif;font-size:1.05rem;color:var(--color-secondary);letter-spacing:.12em;line-height:1.4;margin-bottom:.3rem}.course-point strong{display:block;font-size:1rem;font-family:var(--font-serif);font-weight:500;letter-spacing:.06em;line-height:1.6;margin-bottom:.25rem;color:var(--color-text)}.course-point .text-sm{font-size:.82rem;color:#888;line-height:1.8;margin:0;letter-spacing:.03em}.course-tag{display:inline-block;font-family:"Cormorant Garamond",serif;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;padding:.25rem .9rem;border:1px solid currentColor;margin-bottom:.8rem}@media(max-width: 767px){.card .grid-3[style*="grid-template-columns: 1fr 2fr"]{grid-template-columns:1fr !important}.card .card-image{height:220px !important;min-height:unset !important}.card-content{padding:1.8rem 1.5rem !important}.course-point{padding-left:3.5rem;padding-bottom:2rem}.course-point::after{width:3.5rem}.course-time{font-size:.95rem}.course-point strong{font-size:.95rem}.course-tag{font-size:.72rem}}.course-card-grid{display:grid;grid-template-columns:1fr 2fr;gap:0;overflow:hidden}.course-card-image{position:relative;min-height:340px;background-size:cover;background-position:center}.course-card-image::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg, rgba(0, 0, 0, 0.15) 0%, transparent 60%)}.guide-detail-layout{display:flex;flex-direction:column;gap:3rem;align-items:flex-start}@media(min-width: 768px){.guide-detail-layout{flex-direction:row}}.guide-profile-image{width:100%;max-width:400px;border-radius:var(--radius-lg);box-shadow:0 10px 30px rgba(0,0,0,.1);margin:0 auto}.guide-label{color:var(--color-secondary);font-weight:bold;letter-spacing:2px;font-size:.9rem}.guide-name{font-size:2.5rem;margin-bottom:1rem;font-family:var(--font-serif)}.guide-bio{font-size:1.1rem;line-height:1.8;margin-bottom:2rem}.guide-section-heading{border-bottom:2px solid var(--color-secondary);padding-bottom:.5rem;margin-bottom:1rem}.guide-tags{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem;list-style:none;padding:0}.guide-tags li{background:#eee;padding:.5rem 1rem;border-radius:20px;font-size:.95rem}.guide-tours-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width: 480px){.guide-name{font-size:1.8rem}.guide-tours-grid{grid-template-columns:1fr}}.guide-nav{max-width:900px;margin:0 auto;border-top:1px solid #eee;padding:2rem 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.guide-nav a{font-family:var(--font-serif);color:var(--color-primary);font-size:.9rem;letter-spacing:.05em;transition:color .3s;display:inline-flex;align-items:center;gap:.5rem}.guide-nav a:hover{color:var(--color-secondary)}.guide-nav-back{display:inline-flex;align-items:center;gap:.6rem;padding:.7rem 1.8rem;border:1px solid var(--color-primary);border-radius:0;font-family:"Cormorant Garamond",serif;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:var(--color-primary);background:linear-gradient(var(--color-primary) 0 0) no-repeat left center;background-size:0% 100%;transition:background-size .4s ease,color .4s ease}.guide-nav-back:hover{background-size:100% 100%;color:#fff !important}.guide-nav-back:hover i{color:#fff !important}.guide-message{background:linear-gradient(135deg, #f8f6f0 0%, #f0ece3 100%);border-radius:var(--radius-lg);padding:2rem;margin-top:2rem;border-left:4px solid var(--color-secondary)}.guide-message-title{font-family:var(--font-serif);color:var(--color-primary);margin-bottom:.5rem}.guide-message p{line-height:1.8;color:#555;font-style:normal}.news-list{list-style:none;max-width:800px;margin:0 auto}.news-item{border-bottom:1px solid #ddd;padding:1.5rem 0;display:flex;flex-direction:column;gap:.5rem;transition:var(--transition-fast)}.news-item:hover{opacity:.8;transform:translateX(5px)}@media(min-width: 768px){.news-item{flex-direction:row;align-items:center;gap:2rem}}.news-date{font-family:var(--font-serif);color:#666;min-width:100px}.news-tag{background:#eee;padding:.2rem .6rem;border-radius:var(--radius-sm);font-size:.8rem;color:#555;min-width:80px;text-align:center}.news-title{font-weight:bold;flex:1;color:var(--color-primary)}.tag-event{background:#e3f2fd;color:#1565c0}.tag-info{background:#f3e5f5;color:#7b1fa2}.tag-important{background:#ffebee;color:#c62828}.pagination-btn{display:inline-block;padding:.55rem 1.1rem;border:1px solid rgba(0,0,0,.15);margin:0 .2rem;font-family:"Cormorant Garamond",serif;font-size:.9rem;letter-spacing:.1em;color:var(--color-primary);transition:background .3s ease,color .3s ease,border-color .3s ease;cursor:pointer}.pagination-btn:hover{background:var(--color-secondary);border-color:var(--color-secondary);color:#fff}.pagination-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pagination-btn--active:hover{background:var(--color-primary);border-color:var(--color-primary)}.news-detail-header{padding-top:120px;padding-bottom:40px;background:linear-gradient(135deg, #1e3a5f 0%, #2a5298 100%);color:var(--color-text-light)}.news-detail-header .container{max-width:800px}.news-breadcrumb{font-size:.85rem;opacity:.7;margin-bottom:1rem}.news-breadcrumb a{color:var(--color-text-light);text-decoration:underline}.news-detail-meta{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.news-detail-date{font-family:var(--font-serif);font-size:.95rem;opacity:.85}.news-detail-tag{padding:.25rem .8rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:700}.tag-important{background:#ffebee;color:#c62828}.tag-event{background:#e3f2fd;color:#1565c0}.tag-info{background:#f3e5f5;color:#7b1fa2}.tag-media{background:#fff3e0;color:#e65100}.news-detail-title{font-family:var(--font-serif);font-size:1.8rem;line-height:1.4}.news-article{max-width:800px;margin:0 auto;padding:3rem 0}.news-article-body{font-size:1rem;line-height:2;color:#444}.news-article-body h2{font-family:var(--font-serif);font-size:1.4rem;color:var(--color-primary);margin:2.5rem 0 1rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary)}.news-article-body h3{font-size:1.15rem;color:var(--color-primary);margin:2rem 0 .8rem}.news-article-body p{margin-bottom:1.5rem}.news-article-body ul,.news-article-body ol{margin-bottom:1.5rem;padding-left:1.5rem}.news-article-body li{margin-bottom:.5rem}.news-article-body img{width:100%;border-radius:var(--radius-md);margin:1.5rem 0;box-shadow:0 4px 15px rgba(0,0,0,.1)}.news-article-body blockquote{border-left:4px solid var(--color-secondary);background:#faf8f3;padding:1rem 1.5rem;margin:1.5rem 0;border-radius:0 var(--radius-md) var(--radius-md) 0;font-style:italic;color:#555}.news-info-box{background:#f0f4f8;border-radius:var(--radius-md);padding:1.5rem 2rem;margin:2rem 0}.news-info-box h3{margin-top:0 !important;font-size:1.1rem}.news-info-box table{width:100%;border-collapse:collapse}.news-info-box th,.news-info-box td{text-align:left;padding:.6rem 0;border-bottom:1px solid #ddd;font-size:.95rem}.news-info-box th{width:120px;color:var(--color-primary);font-weight:700}.news-nav{max-width:800px;margin:0 auto;border-top:1px solid #eee;padding:2rem 0;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.news-nav a{font-family:var(--font-serif);color:var(--color-primary);font-size:.9rem;letter-spacing:.05em;transition:color .3s,opacity .3s;display:inline-flex;align-items:center;gap:.5rem}.news-nav a:hover{color:var(--color-secondary)}.news-nav-back{display:inline-flex;align-items:center;gap:.6rem;padding:.7rem 1.8rem;border:1px solid var(--color-primary);border-radius:0;font-family:"Cormorant Garamond",serif;font-size:.85rem;letter-spacing:.15em;text-transform:uppercase;color:var(--color-primary);background:linear-gradient(var(--color-primary) 0 0) no-repeat left center;background-size:0% 100%;transition:background-size .4s ease,color .4s ease}.news-nav-back:hover{background-size:100% 100%;color:#fff !important}.news-nav-back:hover i{color:#fff !important}.news-share{max-width:800px;margin:0 auto;padding:1.5rem 0;border-top:1px solid #eee;display:flex;align-items:center;gap:1rem}.news-share-label{font-size:.85rem;color:#888;font-weight:700}.share-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9rem;transition:transform .2s}.share-btn:hover{transform:scale(1.15)}.share-x{background:#000}.share-fb{background:#1877f2}.share-line{background:#06c755}@media(max-width: 480px){.news-detail-title{font-size:1.3rem}.news-article-body{font-size:.95rem}}.consult-form-wrapper{max-width:800px;margin:0 auto;background:#fff;padding:3rem;border-radius:var(--radius-lg);box-shadow:0 10px 30px rgba(0,0,0,.05)}@media(max-width: 768px){.consult-form-wrapper{padding:1.5rem}}details{border-bottom:1px solid #ddd;width:100%;margin-bottom:.5rem;background:var(--color-surface);border-radius:var(--radius-sm)}details[open]{background:#f9f9f9}summary{padding:1.5rem;cursor:pointer;font-weight:bold;display:flex;align-items:center;justify-content:space-between;list-style:none}summary::-webkit-details-marker{display:none}summary::after{content:"+";font-size:1.5rem;color:var(--color-secondary);font-weight:bold}details[open] summary::after{content:"-"}.faq-answer{padding:0 1.5rem 1.5rem;color:#555;line-height:1.6}.dl-list{max-width:960px;margin:0 auto;background:#fff;padding:1.5rem;border-radius:var(--radius-lg);box-shadow:0 4px 15px rgba(0,0,0,.03);text-align:left}@media(min-width: 768px){.dl-list{padding:3rem}}.dl-list dl{display:flex;flex-direction:column;border-bottom:1px solid #eee;padding:1.5rem 0;margin:0}.dl-list dl:last-child{border-bottom:none}@media(min-width: 768px){.dl-list dl{flex-direction:row;align-items:center}}.dl-list dt{font-size:1.2rem;font-weight:bold;color:var(--color-text);margin-bottom:.5rem;flex:0 0 auto}@media(min-width: 768px){.dl-list dt{margin-bottom:0;padding-right:2rem}}.dl-list dd{margin:0;flex-grow:1}.dl-list dd a{color:var(--color-primary);text-decoration:none;word-break:break-all;transition:color .3s}@media(min-width: 768px){.dl-list dd a{white-space:nowrap;word-break:normal}}.dl-list dd a:hover{color:var(--color-secondary);text-decoration:underline}.pamphlet-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr));gap:2rem}.pamphlet-item{text-align:center}.pamphlet-preview{width:100%;aspect-ratio:1/1.4;background-color:#eee;margin-bottom:1rem;display:flex;align-items:center;justify-content:center;border:1px solid #ddd;box-shadow:0 4px 10px rgba(0,0,0,.05)}.btn-download{display:inline-block;background:var(--color-primary);color:#fff;padding:.5rem 1.5rem;border-radius:var(--radius-sm);font-size:.9rem;margin-top:.5rem}.btn-download:hover{opacity:.9;transform:translateY(-2px)}
@media (max-width:899px){.hero-sub .hero-slide{background-position:center 30%\!important}.hero-sub--access .hero-slide{background-position:center 40%\!important}.hero-sub--experiences .hero-slide{background-position:center top\!important}.hero-sub--model .hero-slide{background-position:center 25%\!important}}

/* ==========================================
   Reservation Page Styles
   ========================================== */

/* Page Header */
.reservation-header {
    padding-top: 120px;
    padding-bottom: 40px;
    background: linear-gradient(135deg, #1e3a5f 0%, #2a5298 100%);
    text-align: center;
    color: var(--color-text-light);
}

.reservation-header h1 {
    font-size: 2rem;
    margin-bottom: 0.5rem;
    font-family: var(--font-serif);
    white-space: nowrap;
}

@media (max-width: 767px) {
    .reservation-header {
        padding-top: 120px;
        padding-bottom: 2.5rem;
    }
    .reservation-header h1 {
        font-size: 1.35rem;
        margin-bottom: 0.75rem;
    }
    .reservation-header p {
        font-size: 0.88rem;
    }
}

.reservation-header p {
    opacity: 0.85;
    font-size: 0.95rem;
}

/* Step Indicator */
.step-indicator {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
    margin: 2.5rem auto 3rem;
    max-width: 700px;
    padding: 0 1rem;
}

.step-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    flex: 1;
}

.step-circle {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #e0e0e0;
    color: #999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.1rem;
    transition: all 0.4s ease;
    position: relative;
    z-index: 2;
    border: 3px solid #e0e0e0;
}

.step-item.active .step-circle {
    background: var(--color-secondary);
    color: white;
    border-color: var(--color-secondary);
    box-shadow: 0 4px 15px rgba(197, 160, 89, 0.4);
    transform: scale(1.1);
}

.step-item.completed .step-circle {
    background: var(--color-primary);
    color: white;
    border-color: var(--color-primary);
}

.step-label {
    margin-top: 0.5rem;
    font-size: 0.75rem;
    color: #999;
    font-weight: 500;
    white-space: nowrap;
    transition: color 0.3s ease;
}

.step-item.active .step-label {
    color: var(--color-secondary);
    font-weight: 700;
}

.step-item.completed .step-label {
    color: var(--color-primary);
}

.step-line {
    flex: 1;
    height: 3px;
    background: #e0e0e0;
    margin: 0 -4px;
    margin-bottom: 1.5rem;
    transition: background 0.4s ease;
}

.step-line.completed {
    background: var(--color-primary);
}

/* Step Panels */
.step-panel {
    display: none;
    animation: fadeInUp 0.4s ease;
}

.step-panel.active {
    display: block;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Calendar */
.calendar-container {
    max-width: 500px;
    margin: 0 auto;
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.calendar-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.2rem 1.5rem;
    background: var(--color-primary);
    color: white;
}

.calendar-nav-btn {
    background: rgba(255, 255, 255, 0.15);
    border: none;
    color: white;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 1rem;
    transition: background 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.calendar-nav-btn:hover {
    background: rgba(255, 255, 255, 0.3);
}

.calendar-month-title {
    font-family: var(--font-serif);
    font-size: 1.2rem;
    font-weight: 700;
}

.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    padding: 0.5rem;
}

.calendar-weekday {
    text-align: center;
    font-size: 0.8rem;
    font-weight: 700;
    color: #999;
    padding: 0.8rem 0.4rem;
}

.calendar-weekday:first-child {
    color: #e74c3c;
}

.calendar-weekday:last-child {
    color: #3498db;
}

.calendar-day {
    text-align: center;
    padding: 0.6rem 0.4rem;
    cursor: pointer;
    border-radius: var(--radius-sm);
    transition: all 0.2s ease;
    font-size: 0.95rem;
    position: relative;
}

.calendar-day:hover:not(.disabled):not(.empty) {
    background: rgba(197, 160, 89, 0.1);
}

.calendar-day.selected {
    background: var(--color-secondary);
    color: white;
    font-weight: 700;
    border-radius: var(--radius-md);
    box-shadow: 0 3px 10px rgba(197, 160, 89, 0.3);
}

.calendar-day.today:not(.selected) {
    font-weight: 700;
    color: var(--color-primary);
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-md);
}

.calendar-day.disabled {
    color: #ccc;
    cursor: not-allowed;
    position: relative;
}

.calendar-day.holiday {
    color: #ccc;
    cursor: not-allowed;
    background: repeating-linear-gradient(45deg,
            transparent,
            transparent 3px,
            rgba(0, 0, 0, 0.03) 3px,
            rgba(0, 0, 0, 0.03) 6px);
}

.calendar-day.holiday::after {
    content: '休';
    position: absolute;
    bottom: 2px;
    right: 4px;
    font-size: 0.55rem;
    color: #e74c3c;
    font-weight: 700;
}

.calendar-day.empty {
    cursor: default;
}

.calendar-day.sunday:not(.disabled):not(.selected) {
    color: #e74c3c;
}

.calendar-day.saturday:not(.disabled):not(.selected) {
    color: #3498db;
}

.calendar-legend {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    padding: 1rem;
    border-top: 1px solid #eee;
    font-size: 0.8rem;
    color: #888;
}

.calendar-legend span::before {
    content: '';
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    margin-right: 4px;
    vertical-align: middle;
}

.legend-holiday::before {
    background: repeating-linear-gradient(45deg,
            #f0f0f0,
            #f0f0f0 2px,
            #e0e0e0 2px,
            #e0e0e0 4px) !important;
}

.legend-selected::before {
    background: var(--color-secondary) !important;
}

.legend-today::before {
    border: 2px solid var(--color-primary) !important;
    background: transparent !important;
    width: 8px;
    height: 8px;
}

.selected-date-display {
    text-align: center;
    margin-top: 1.5rem;
    padding: 1rem;
    background: #f8f6f0;
    border-radius: var(--radius-md);
    font-weight: 700;
    color: var(--color-primary);
    font-size: 1.1rem;
}

.selected-date-display i {
    color: var(--color-secondary);
    margin-right: 0.5rem;
}

/* Course Selection */
.course-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    max-width: 800px;
    margin: 0 auto;
}

@media (min-width: 768px) {
    .course-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.course-card {
    background: var(--color-surface);
    border: 2px solid #eee;
    border-radius: var(--radius-md);
    padding: 1.5rem;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
}

.course-card:hover {
    border-color: var(--color-secondary);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.course-card.selected {
    border-color: var(--color-secondary);
    background: linear-gradient(135deg, #faf8f3 0%, #fff 100%);
    box-shadow: 0 4px 20px rgba(197, 160, 89, 0.2);
}

.course-card.selected::after {
    content: '\f058';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    position: absolute;
    top: 12px;
    right: 12px;
    color: var(--color-secondary);
    font-size: 1.3rem;
}

.course-card-icon {
    font-size: 1.5rem;
    color: var(--color-secondary);
    margin-bottom: 0.8rem;
}

.course-card h3 {
    font-family: var(--font-serif);
    font-size: 1.1rem;
    color: var(--color-primary);
    margin-bottom: 0.5rem;
}

.course-card p {
    font-size: 0.85rem;
    color: #666;
    margin-bottom: 0.8rem;
    line-height: 1.5;
}

.course-card-meta {
    display: flex;
    gap: 1rem;
    font-size: 0.85rem;
    color: var(--color-secondary);
    font-weight: 700;
}

/* Time Selection */
.time-selection {
    max-width: 500px;
    margin: 1.5rem auto 0;
}

.time-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.8rem;
}

@media (max-width: 480px) {
    .time-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.time-slot {
    padding: 0.8rem;
    text-align: center;
    border: 2px solid #eee;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.2s ease;
    font-weight: 500;
    font-size: 0.95rem;
}

.time-slot:hover {
    border-color: var(--color-secondary);
    background: rgba(197, 160, 89, 0.05);
}

.time-slot.selected {
    border-color: var(--color-secondary);
    background: var(--color-secondary);
    color: white;
}

/* Form */
.reservation-form {
    max-width: 600px;
    margin: 0 auto;
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-label {
    display: block;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 0.5rem;
    font-size: 0.95rem;
}

.form-label .required {
    color: #e74c3c;
    font-size: 0.8rem;
    margin-left: 0.3rem;
}

.form-input,
.form-select,
.form-textarea {
    width: 100%;
    padding: 0.9rem 1rem;
    border: 2px solid #e0e0e0;
    border-radius: var(--radius-md);
    font-family: inherit;
    font-size: 1rem;
    transition: border-color 0.2s ease;
    background: white;
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
    outline: none;
    border-color: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.15);
}

.form-textarea {
    min-height: 100px;
    resize: vertical;
}

.form-input.error,
.form-select.error,
.form-textarea.error {
    border-color: #e74c3c;
}

.form-error {
    color: #e74c3c;
    font-size: 0.8rem;
    margin-top: 0.3rem;
    display: none;
}

.form-error.visible {
    display: block;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.form-help {
    margin-top: 0.45rem;
    font-size: 0.82rem;
    line-height: 1.7;
    color: #7a6b63;
}

.zip-status {
    transition: color 0.2s ease;
}

.zip-status[data-state="loading"] {
    color: #8c7e74;
}

.zip-status[data-state="success"] {
    color: #8a6a28;
}

.zip-status[data-state="error"] {
    color: #e74c3c;
}

@media (max-width: 480px) {
    .form-row {
        grid-template-columns: 1fr;
    }
}

/* Confirmation */
.confirmation-card {
    max-width: 600px;
    margin: 0 auto;
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.confirmation-header {
    background: linear-gradient(135deg, #1e3a5f 0%, #2a5298 100%);
    color: white;
    padding: 1.5rem 2rem;
    text-align: center;
}

.confirmation-header h3 {
    font-family: var(--font-serif);
    font-size: 1.3rem;
    margin-bottom: 0.3rem;
}

.confirmation-header p {
    opacity: 0.8;
    font-size: 0.85rem;
}

.confirmation-body {
    padding: 2rem;
}

.confirmation-row {
    display: flex;
    padding: 0.8rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.confirmation-row:last-child {
    border-bottom: none;
}

.confirmation-label {
    width: 120px;
    flex-shrink: 0;
    font-weight: 700;
    color: #666;
    font-size: 0.9rem;
}

.confirmation-value {
    flex: 1;
    font-weight: 500;
    color: var(--color-text);
}

/* Completion */
.completion-container {
    text-align: center;
    padding: 3rem 1rem;
    max-width: 600px;
    margin: 0 auto;
}

.completion-icon {
    --completion-size: 96px;
    width: var(--completion-size);
    height: var(--completion-size);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.75rem;
    animation: completionIconIn 0.5s cubic-bezier(0.23, 1, 0.32, 1);
}

.completion-icon::before,
.completion-icon::after {
    content: none;
}

.completion-icon__svg {
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 14px 26px rgba(17, 17, 17, 0.12));
}

.completion-icon__svg circle {
    fill: rgba(255, 251, 244, 0.98);
    stroke: var(--color-secondary);
    stroke-width: 1.75;
}

.completion-icon__svg path {
    stroke: var(--color-primary);
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@keyframes completionIconIn {
    from {
        transform: scale(0.88) translateY(8px);
        opacity: 0;
    }

    to {
        transform: scale(1);
        opacity: 1;
    }
}

.completion-container h2 {
    font-family: var(--font-serif);
    color: var(--color-primary);
    font-size: 1.8rem;
    margin-bottom: 1rem;
}

.completion-container p {
    color: #666;
    line-height: 1.8;
    margin-bottom: 2rem;
}

.completion-number {
    display: inline-block;
    background: #f0f4f8;
    padding: 0.5rem 1.5rem;
    border-radius: var(--radius-full);
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 2rem;
    font-size: 1.1rem;
}

.completion-home-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    padding: 0.9rem 2rem;
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-full);
    background: var(--color-primary);
    color: #fff;
    font-family: inherit;
    font-weight: 700;
    line-height: 1;
    transition: all 0.3s ease;
}

.completion-home-link:hover {
    background: #152a45;
    border-color: #152a45;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(17, 17, 17, 0.16);
}

.completion-home-link__icon {
    width: 1rem;
    height: 1rem;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 767px) {
    .completion-icon {
        --completion-size: 84px;
    }
}

/* Buttons */
.btn-nav-group {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 2.5rem;
    flex-wrap: wrap;
}

.btn-next,
.btn-prev,
.btn-submit {
    padding: 0.9rem 2.5rem;
    border: none;
    border-radius: var(--radius-full);
    font-family: inherit;
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s ease;
}

.btn-next {
    background: var(--color-secondary);
    color: white;
}

.btn-next:hover {
    background: #b08d3b;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(197, 160, 89, 0.3);
}

.btn-next:disabled {
    background: #ccc;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.btn-prev {
    background: transparent;
    color: var(--color-text);
    border: 2px solid #ddd;
}

.btn-prev:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.btn-submit {
    background: var(--color-primary);
    color: white;
    padding: 1rem 3rem;
    font-size: 1.1rem;
    justify-content: center;
    text-align: center;
}

.btn-submit:hover {
    background: #152a45;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(30, 58, 95, 0.3);
}

/* Section heading inside steps */
.step-section-title {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    color: var(--color-primary);
    word-break: keep-all;
    text-align: center;
    margin-bottom: 0.5rem;
}

.step-section-subtitle {
    text-align: center;
    color: #888;
    font-size: 0.9rem;
    margin-bottom: 2rem;
}

/* Responsive */
@media (max-width: 480px) {
    .step-indicator {
        gap: 0;
    }

    .step-circle {
        width: 36px;
        height: 36px;
        font-size: 0.9rem;
    }

    .step-label {
        font-size: 0.65rem;
    }

    .reservation-header h1 {
        font-size: 1.2rem;
    }
    .step-section-title {
        font-size: 1.2rem !important;
    }
    .step-section-subtitle {
        font-size: 0.82rem !important;
    }

    .calendar-container {
        border-radius: var(--radius-md);
    }

    .confirmation-body {
        padding: 1.2rem;
    }

    .confirmation-row {
        flex-direction: column;
        gap: 0.3rem;
    }

    .confirmation-label {
        width: auto;
    }
}

/* Policy notice */
.policy-notice {
    max-width: 600px;
    margin: 2rem auto 0;
    padding: 1.2rem 1.5rem;
    background: #fff8e1;
    border-radius: var(--radius-md);
    border-left: 4px solid var(--color-secondary);
    font-size: 0.85rem;
    color: #666;
    line-height: 1.7;
}

.policy-notice strong {
    color: var(--color-text);
    display: block;
    margin-bottom: 0.3rem;
}
