.hero-section{position:relative;min-height:100vh;background-color:#f8f9fa;font-family:Roboto,Noto Sans JP,sans-serif;overflow:hidden;padding-top:80px;display:flex;flex-direction:column}.hero-background{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/images/hero-map-silver.png);background-size:cover;background-position:center;opacity:.8;z-index:0;mix-blend-mode:multiply}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 30%,#ffffffb3,#f8f9faf2);z-index:1;pointer-events:none}.hero-container{position:relative;z-index:10;display:flex;flex-direction:column;padding:1.5rem;max-width:1200px;margin:0 auto;width:100%;height:100%}.hero-title-wrapper{margin-bottom:1.5rem;margin-top:2rem}.hero-main-title{font-size:2.5rem;font-weight:700;line-height:1.2;color:#202124;margin-bottom:.5rem;letter-spacing:-.02em}.hero-highlight-text{font-size:2.5rem;font-weight:700;background:linear-gradient(90deg,#4285f4,#ea4335,#fbbc05,#34a853);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}.hero-description{font-size:1rem;line-height:1.7;color:#4b5563;margin-bottom:2rem;font-weight:500;max-width:500px}.hero-cta-group{display:flex;flex-direction:column;gap:1rem;margin-bottom:3rem}.btn-primary{background:linear-gradient(135deg,#1a73e8,#174ea6);color:#fff;padding:.75rem 1.5rem;border-radius:100px;font-size:.9rem;font-weight:500;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 4px 12px #1a73e84d;transition:all .3s ease;white-space:nowrap;border:none;letter-spacing:.02em}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #1a73e866}.btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px #1a73e84d}.btn-secondary{background-color:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#5f6368;padding:.75rem 1.5rem;border-radius:100px;font-size:.9rem;font-weight:500;display:flex;align-items:center;justify-content:center;border:1px solid #DADCE0;box-shadow:0 2px 8px #3c40430d;transition:all .3s ease;white-space:nowrap}.btn-secondary:hover{background-color:#fff;color:#1a73e8;border-color:#1a73e8;transform:translateY(-2px);box-shadow:0 4px 12px #3c40431a}.hero-visual-container{position:relative;margin-top:1rem;margin-bottom:3rem;display:flex;justify-content:center}.phone-frame{background:#1f2937;border-radius:48px;padding:12px;box-shadow:0 25px 50px -12px #00000040,0 0 0 1px #0000001a;width:100%;max-width:320px;position:relative;z-index:10}.phone-btn{position:absolute;background:#2c2c2c;border-radius:4px;width:4px;box-shadow:inset -1px 0 2px #00000080}.phone-btn-silent{top:100px;left:-6px;height:24px}.phone-btn-vol-up{top:140px;left:-6px;height:40px}.phone-btn-vol-down{top:190px;left:-6px;height:40px}.phone-btn-power{top:130px;right:-6px;height:60px}.phone-screen{background:#fff;border-radius:20px;overflow:hidden;height:100%;position:relative;aspect-ratio:9/19;display:flex;flex-direction:column}.phone-notch{position:absolute;top:0;left:50%;transform:translate(-50%);width:30%;height:18px;background:#1f2937;border-bottom-left-radius:12px;border-bottom-right-radius:12px;z-index:100}.notch-speaker{width:30px;height:4px;background:#333;border-radius:2px}.notch-camera{width:8px;height:8px;background:#1a1a1a;border-radius:50%;box-shadow:inset 0 0 2px #555}.phone-content-scroll{flex:1;overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none}.phone-content-scroll::-webkit-scrollbar{display:none}.place-image-full{height:45%;width:100%;background-image:url(/images/hero-resort.png);background-size:cover;background-position:center;position:relative}.place-detail-content{padding:1rem;background:#fff;min-height:60%;border-top-left-radius:16px;border-top-right-radius:16px;margin-top:-16px;position:relative;box-shadow:0 -4px 10px #0000000d}.place-title-row{display:flex;justify-content:space-between;align-items:start;margin-bottom:.25rem}.place-title{font-size:1rem;font-weight:500;color:#202124;line-height:1.2}.place-rating-row{display:flex;align-items:center;gap:.25rem;margin-bottom:1rem}.place-rating{font-weight:500;color:#202124;font-size:.8rem;margin-right:.25rem}.place-stars{color:#f8b500;font-size:.75rem}.place-reviews,.place-category{color:#70757a;font-size:.75rem;margin-left:.25rem}.place-divider{height:1px;background-color:#e8eaed;margin:.75rem 0;width:100%}.place-overview{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.5rem}.overview-row{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#3c4043;line-height:1.4}.overview-icon{color:#70757a;flex-shrink:0}.clock-icon-wrapper{width:14px;display:flex;justify-content:center}.clock-icon{font-size:.75rem;line-height:1;filter:grayscale(100%);opacity:.6}.dot-separator{font-weight:700;margin:0 .1rem}.place-review-snippet{display:flex;flex-direction:column;gap:.35rem}.review-header{display:flex;align-items:center;gap:.5rem}.review-avatar{width:20px;height:20px;background-color:#ef6c00;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:500}.review-name{font-size:.75rem;font-weight:500;color:#202124}.review-time{font-size:.7rem;color:#70757a;margin-left:auto}.review-stars{display:flex;gap:1px}.review-text{font-size:.75rem;color:#3c4043;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.action-chips{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.25rem;-ms-overflow-style:none;scrollbar-width:none;margin-bottom:1rem}.action-chip{flex:0 0 auto;border:1px solid #DADCE0;border-radius:100px;padding:.25rem .75rem;font-size:.7rem;color:#1967d2;font-weight:500;display:flex;align-items:center;gap:.25rem}.promo-badge{position:absolute;top:2.5rem;left:.5rem;background:#ea4335;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 2px 4px #0003;z-index:20}.badge-shine{position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shine 3s infinite}.inbound-bubble{position:absolute;top:2.5rem;right:.5rem;background:#fff;padding:.25rem .5rem;border-radius:6px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;align-items:center;z-index:20;animation:float 3s ease-in-out infinite}@keyframes shine{0%{left:-100%}20%{left:200%}to{left:200%}}.inbound-value{color:#1a73e8;font-weight:700;font-size:.75rem}.inbound-label{font-size:.5rem;color:#5f6368;text-transform:uppercase}.live-dot{position:absolute;width:12px;height:12px;background-color:#4285f4;border-radius:50%;border:2px solid white;box-shadow:0 0 4px #0000004d;z-index:5}.live-dot:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background-color:#4285f466;border-radius:50%;animation:pulseRadar 2s infinite;z-index:-1}@keyframes pulseRadar{0%{transform:translate(-50%,-50%) scale(.5);opacity:.8}to{transform:translate(-50%,-50%) scale(2);opacity:0}}.live-dot-1{top:15%;right:10%}.live-dot-2{bottom:20%;left:5%;animation-delay:1s}.live-dot-3{top:40%;left:15%;animation-delay:.5s;background-color:#ea4335}.live-dot-3:after{background-color:#ea433566}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.hero-container{position:relative;z-index:10;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:20vw 5vw 5vw;max-width:1200px;margin:0 auto;width:100%;height:100%;overflow:visible}.hero-content-left{flex:0 0 58%;max-width:58%;z-index:20;display:flex;flex-direction:column;justify-content:center;padding-right:2vw}.hero-main-title,.hero-highlight-text{font-size:clamp(1.2rem,7vw,3.5rem);font-weight:700;line-height:1.2;color:#202124;margin-bottom:.5rem;letter-spacing:-.02em;white-space:nowrap}.hero-description{font-size:clamp(.7rem,3.5vw,1.1rem);line-height:1.5;color:#4b5563;margin-bottom:4vw;font-weight:500}.hero-cta-group{display:flex;flex-direction:column;gap:2vw;align-items:flex-start;margin-top:2vw}.metrics-grid{display:flex;gap:3vw;margin-bottom:3vw;padding-bottom:2vw;border-bottom:1px solid #E5E7EB;width:100%}.metric-item{display:flex;flex-direction:column;align-items:flex-start}.metric-value{font-size:clamp(1rem,5vw,2rem);font-weight:700;color:#202124;line-height:1;margin-bottom:.5vw}.metric-label{font-size:clamp(.6rem,2.5vw,.9rem);color:#5f6368;font-weight:500}.text-green-600{color:#137333}.hero-visual-container{position:relative;flex:0 0 42%;width:42%;height:auto;display:flex;justify-content:flex-end;align-items:center;z-index:10;aspect-ratio:280/580}.phone-screen{container-type:inline-size;background:#fff;border-radius:3vw;overflow:hidden;height:100%;position:relative;aspect-ratio:9/19;display:flex;flex-direction:column}.place-image-full{height:auto;width:100%;aspect-ratio:16/9;flex:0 0 auto;background-image:url(/images/hero-ryokan.png);background-size:cover;background-position:center;position:relative}.place-detail-content{padding:5cqw;background:#fff;flex:1;border-top-left-radius:6cqw;border-top-right-radius:6cqw;margin-top:-6cqw;position:relative;box-shadow:0 -4px 10px #0000000d}.place-title-row{display:flex;justify-content:space-between;align-items:start;margin-bottom:1.5cqw}.place-title{font-size:5cqw;font-weight:500;color:#202124;line-height:1.2}.place-rating-row{display:flex;align-items:center;gap:1cqw;margin-bottom:4cqw}.place-rating{font-weight:500;color:#202124;font-size:3.5cqw;margin-right:1cqw}.place-stars{color:#f8b500;font-size:3cqw;display:flex;gap:.2cqw}.place-stars svg{width:3cqw!important;height:3cqw!important}.place-reviews,.place-category{color:#70757a;font-size:3cqw;margin-left:1cqw}.place-divider{height:1px;background-color:#e8eaed;margin:3cqw 0;width:100%}.place-overview{display:flex;flex-direction:column;gap:2cqw;margin-bottom:2cqw}.overview-row{display:flex;align-items:center;gap:2cqw;font-size:3.2cqw;color:#3c4043;line-height:1.4}.overview-icon{color:#70757a;flex-shrink:0;width:3.5cqw!important;height:3.5cqw!important}.clock-icon-wrapper{width:3.5cqw;display:flex;justify-content:center}.clock-icon{font-size:3cqw;line-height:1;filter:grayscale(100%);opacity:.6}.open-status{color:#188038;font-weight:500}.dot-separator{font-weight:700;margin:0 .5cqw}.place-review-snippet{display:flex;flex-direction:column;gap:1.5cqw}.review-item{display:flex;flex-direction:column;gap:1cqw}.mt-3{margin-top:4cqw}.review-header{display:flex;align-items:center;gap:2cqw}.review-avatar{width:5cqw;height:5cqw;background-color:#ef6c00;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5cqw;font-weight:500}.review-name{font-size:3.2cqw;font-weight:500;color:#202124}.review-time{font-size:3cqw;color:#70757a;margin-left:auto}.review-stars{display:flex;gap:.2cqw}.review-stars svg{width:2.5cqw!important;height:2.5cqw!important}.review-text{font-size:3cqw;color:#3c4043;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.action-chips{display:flex;gap:2cqw;overflow-x:auto;padding-bottom:1cqw;-ms-overflow-style:none;scrollbar-width:none;margin-bottom:4cqw}.action-chips::-webkit-scrollbar{display:none}.action-chip{flex:0 0 auto;border:1px solid #DADCE0;border-radius:100px;padding:1cqw 3cqw;font-size:3cqw;color:#1967d2;font-weight:500;display:flex;align-items:center;gap:1cqw}.action-chip svg{width:3.5cqw!important;height:3.5cqw!important}.promo-badge{position:absolute;top:8cqw;left:2cqw;background:#ea4335;color:#fff;padding:1cqw 2cqw;border-radius:1cqw;font-size:2.5cqw;font-weight:700;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 .5cqw 1cqw #0003;z-index:20}.inbound-bubble{position:absolute;top:8cqw;right:2cqw;background:#fff;padding:1cqw 2cqw;border-radius:1.5cqw;box-shadow:0 1cqw 3cqw #00000026;display:flex;flex-direction:column;align-items:center;z-index:20;animation:float 3s ease-in-out infinite}.inbound-value{color:#1a73e8;font-weight:700;font-size:3cqw}.inbound-label{font-size:2cqw;color:#5f6368;text-transform:uppercase}.phone-frame{background:#1f2937;border-radius:4vw;padding:1vw;box-shadow:0 20px 40px -10px #0000004d,0 0 0 1px #0000001a;width:100%;height:auto;position:relative;right:auto;top:auto;transform:none}.phone-screen{background:#fff;border-radius:3vw;overflow:hidden;height:100%;position:relative;aspect-ratio:9/19;display:flex;flex-direction:column}.phone-notch{position:absolute;top:0;left:50%;transform:translate(-50%);width:40%;height:6%;background:#1f2937;border-bottom-left-radius:1vw;border-bottom-right-radius:1vw;z-index:100}.place-image-full{height:auto;width:100%;aspect-ratio:16/9;flex:0 0 auto;background-image:url(/images/hero-ryokan.png);background-size:cover;background-position:center;position:relative}.place-detail-content{padding:3vw;background:#fff;flex:1;border-top-left-radius:20px;border-top-right-radius:20px;margin-top:-20px;position:relative;box-shadow:0 -4px 10px #0000000d}.review-item{display:flex;flex-direction:column;gap:.25rem}.mt-3{margin-top:1rem}.bg-blue-500{background-color:#4285f4}.bg-green-500{background-color:#34a853}.hero-bottom-curve{position:absolute;bottom:0;left:0;width:100%;overflow:hidden;line-height:0;transform:rotate(180deg);z-index:5}.hero-bottom-curve svg{position:relative;display:block;width:calc(100% + 1.3px);height:60px}.hero-bottom-curve .shape-fill{fill:#0b0f19}@media(min-width:768px){.hero-bottom-curve svg{height:120px}}@media(min-width:768px){.hero-container{padding:8rem 4rem 4rem}.hero-content-left{flex:1;padding-right:4rem}.hero-visual-container{flex:1;width:auto;max-width:50%;height:auto;aspect-ratio:auto;transform:none;margin-right:0;justify-content:flex-end;position:relative;display:flex;align-items:center}.phone-frame{width:320px!important;height:650px;transform:perspective(1000px) rotateY(-5deg);transition:transform .5s;position:relative;top:auto;right:auto}.phone-screen{aspect-ratio:auto;height:100%;border-radius:32px}.phone-frame:hover{transform:perspective(1000px) rotateY(0)}.hero-main-title,.hero-highlight-text{font-size:3.5rem}.hero-description{font-size:1rem;margin-bottom:2rem}.hero-cta-group{flex-direction:row;gap:1rem}.metrics-grid{display:grid;margin-top:4rem}.phone-notch{width:30%;height:18px;border-radius:0 0 12px 12px}}
