:root{--color-primary: #b22222;--color-primary-hover: #8b1a1a;--color-accent-yellow: #ffc72c;--color-text-main: #333;--color-text-light: #666;--color-text-lighter: #999;--color-bg-white: #fff;--color-bg-gray: #f5f5f5;--color-border: #e5e5e5;--color-error: #d32f2f;--color-success: #2e7d32;--font-family-base: "Noto Sans JP", sans-serif;--font-size-base: 16px;--font-size-sm: 14px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-xxl: 36px;--space-xs: 8px;--space-sm: 16px;--space-md: 24px;--space-lg: 40px;--space-xl: 64px;--space-xxl: 96px;--radius-sm: 4px;--radius-md: 8px;--shadow-sm: 0 2px 8px rgb(0 0 0 / 5%);--shadow-md: 0 4px 16px rgb(0 0 0 / 8%);--shadow-hover: 0 8px 24px rgb(0 0 0 / 12%);--transition-base: 0.3s ease}*,*::before,*::after{box-sizing:border-box;padding:0;margin:0}html{scroll-behavior:smooth}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:1.6;color:var(--color-text-main);background-color:var(--color-bg-white);-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none;transition:color var(--transition-base)}ul,ol{list-style:none}button{font-family:inherit;cursor:pointer;background:none;border:none}.section-title{margin-bottom:var(--space-xl);text-align:center}.section-title h2{margin-bottom:var(--space-xs);font-size:var(--font-size-xxl);font-weight:700;line-height:1.3}.section-title p{font-size:var(--font-size-sm);color:var(--color-text-light);letter-spacing:.05em}.section-title .line{width:60px;height:3px;margin:var(--space-sm) auto 0;background-color:var(--color-primary)}.container{width:100%;max-width:1100px;padding:0 20px;margin:0 auto}section{padding:var(--space-xxl) 0}.bg-gray{background-color:var(--color-bg-gray)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 32px;font-size:var(--font-size-base);font-weight:700;text-align:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.btn-primary{color:var(--color-bg-white);background-color:var(--color-primary);box-shadow:0 4px 12px rgba(178,34,34,.3)}.btn-primary:hover{background-color:var(--color-primary-hover);box-shadow:0 6px 16px rgba(178,34,34,.4);transform:translateY(-2px)}.btn-outline{color:var(--color-primary);background-color:rgba(0,0,0,0);border:2px solid var(--color-primary)}.btn-outline:hover{color:var(--color-bg-white);background-color:var(--color-primary)}.icon{width:24px;height:24px;fill:none;stroke:currentcolor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-sm{width:18px;height:18px}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.fade-in.is-visible{opacity:1;transform:translateY(0)}.back-to-top{position:fixed;right:24px;bottom:24px;z-index:999;display:flex;visibility:hidden;align-items:center;justify-content:center;width:48px;height:48px;color:var(--color-bg-white);background-color:var(--color-primary);border-radius:50%;box-shadow:var(--shadow-md);opacity:0;transform:translateY(10px);transition:opacity var(--transition-base),visibility var(--transition-base),transform var(--transition-base),background-color var(--transition-base)}.back-to-top.is-visible{visibility:visible;opacity:1;transform:translateY(0)}.back-to-top:hover{background-color:var(--color-primary-hover);transform:translateY(-2px)}.back-to-top .icon{width:28px;height:28px}.header{position:fixed;top:0;left:0;z-index:1000;width:100%;background-color:rgba(0,0,0,0);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transition:background-color var(--transition-base),box-shadow var(--transition-base),-webkit-backdrop-filter var(--transition-base);transition:background-color var(--transition-base),backdrop-filter var(--transition-base),box-shadow var(--transition-base);transition:background-color var(--transition-base),backdrop-filter var(--transition-base),box-shadow var(--transition-base),-webkit-backdrop-filter var(--transition-base)}.header.is-scrolled{background-color:hsla(0,0%,100%,.95);box-shadow:0 2px 10px rgba(0,0,0,.05);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:1200px;height:80px;padding:0 20px;margin:0 auto}.logo{display:flex;flex-shrink:0;gap:8px;align-items:center;font-size:var(--font-size-xl);font-weight:700;color:var(--color-text-main)}.logo img{width:auto;height:60px}.logo-mark{color:var(--color-primary)}.nav-list{display:flex;gap:var(--space-md);align-items:center}.nav-link{position:relative;font-size:var(--font-size-sm);font-weight:500}.nav-link::after{position:absolute;bottom:-4px;left:0;width:100%;height:2px;content:"";background-color:var(--color-primary);transform:scaleX(0);transform-origin:right;transition:transform var(--transition-base)}.nav-link:hover::after{transform:scaleX(1);transform-origin:left}.header-btn{padding:10px 20px;font-size:var(--font-size-sm)}.menu-toggle{display:none;color:var(--color-text-main)}.menu-toggle svg line{transform-origin:center;transition:transform .3s ease-in-out,opacity .3s ease-in-out}.menu-toggle.is-active svg line:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle.is-active svg line:nth-child(2){transform:scaleX(0)}.menu-toggle.is-active svg line:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.hero{position:relative;display:flex;flex-direction:column;min-height:100vh;padding-top:140px;padding-bottom:0;overflow:hidden;background-color:#faf8f5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 250 250' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='1' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.03'/%3E%3C/svg%3E")}.hero-inner{position:relative;z-index:1;display:flex;flex-grow:1;gap:var(--space-lg);align-items:center;justify-content:space-between;padding-bottom:var(--space-xl)}.hero-content{flex:1;max-width:500px}.hero-subtitle{display:block;margin-bottom:var(--space-sm);font-size:var(--font-size-lg);font-weight:700;color:var(--color-primary)}.hero-title{margin-bottom:var(--space-md);font-size:42px;font-weight:700;line-height:1.4;color:var(--color-text-main)}.hero-desc{margin-bottom:var(--space-lg);font-size:var(--font-size-lg);color:var(--color-text-light)}.hero-image{position:relative;flex:1}.hero-image::before{position:absolute;top:-20px;right:-20px;z-index:0;width:100%;height:100%;content:"";border:2px solid var(--color-primary);border-radius:var(--radius-md)}.hero-image img{position:relative;z-index:1;width:100%;aspect-ratio:4/3;-o-object-fit:cover;object-fit:cover;border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.features-list{display:grid;grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));gap:var(--space-md);max-width:900px;margin:0 auto}.feature-item{display:flex;gap:var(--space-sm);align-items:flex-start;padding:var(--space-md);background-color:var(--color-bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-base)}.feature-item:hover{transform:translateY(-4px)}.feature-icon{flex-shrink:0;margin-top:2px;color:var(--color-primary)}.feature-text{font-size:var(--font-size-lg);font-weight:500}.about-inner{display:flex;gap:var(--space-xl);align-items:center}.about-image{flex:1}.about-image img{border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.about-content{flex:1}.about-title{margin-bottom:var(--space-sm);font-size:var(--font-size-xl);font-weight:700;line-height:1.4}.about-subtitle{margin-bottom:var(--space-md);font-weight:700;color:var(--color-primary)}.about-text{margin-bottom:var(--space-md);color:var(--color-text-light)}.services-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:var(--space-lg)}.service-card{position:relative;overflow:hidden;background-color:var(--color-bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-base),box-shadow var(--transition-base)}.service-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-8px)}.service-img{width:100%;aspect-ratio:16/10;-o-object-fit:cover;object-fit:cover}.service-content{padding:var(--space-md)}.service-header{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.service-title{font-size:var(--font-size-lg);font-weight:700}.service-price{font-size:var(--font-size-lg);font-weight:700;color:var(--color-primary)}.service-desc{font-size:var(--font-size-sm);color:var(--color-text-light)}.recommended-label{position:absolute;top:0;left:0;z-index:10;padding:8px 16px;font-size:var(--font-size-sm);font-weight:700;color:var(--color-bg-white);background-color:var(--color-primary);border-bottom-right-radius:var(--radius-md)}.pricing-note{margin-top:var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-light);text-align:center}#testimonials{position:relative;overflow:hidden;background-color:#faf8f5;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 250 250' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='1' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.03'/%3E%3C/svg%3E")}#testimonials .container{position:relative;z-index:1}.testi-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:var(--space-md)}.testi-card{position:relative;padding:var(--space-lg);text-align:center;background-color:var(--color-bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.testi-avatar-wrapper{width:140px;height:140px;margin:0 auto var(--space-md);overflow:hidden;border-radius:50%;box-shadow:0 0 0 4px var(--color-bg-white),0 0 0 5px var(--color-border)}.testi-avatar-img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.testi-avatar-icon{width:40px;height:40px;color:var(--color-primary)}.testi-quote-icon{display:none}.testi-text{position:relative;z-index:1;margin-bottom:var(--space-md);font-size:var(--font-size-base);font-weight:500;text-align:left}.testi-meta{font-size:var(--font-size-sm);color:var(--color-text-light)}.testi-meta strong{margin-right:.5em;font-weight:700;color:var(--color-text-main)}.steps-container{position:relative;display:flex;justify-content:space-between;max-width:1100px;margin:0 auto}.steps-container::before{position:absolute;top:40px;right:11%;left:11%;z-index:0;height:2px;content:"";background-color:var(--color-border)}.step-item{position:relative;z-index:1;width:22%;text-align:center}.step-num{display:flex;flex-direction:column;align-items:center;justify-content:center;width:80px;height:80px;margin:0 auto var(--space-sm);font-weight:700;line-height:1;color:var(--color-primary);background-color:var(--color-bg-white);border:2px solid var(--color-primary);border-radius:50%;box-shadow:var(--shadow-sm)}.step-label{font-size:12px;font-weight:700;letter-spacing:.05em}.step-digit{margin-top:2px;font-size:28px;font-weight:700}.step-title{margin-bottom:var(--space-sm);font-size:var(--font-size-lg);font-weight:700}.step-desc{font-size:var(--font-size-sm);line-height:1.7;color:var(--color-text-light);text-align:left}.access-inner{display:flex;gap:var(--space-xl)}.access-info{flex:1}.access-map{flex:1;overflow:hidden;border-radius:var(--radius-sm)}.access-map iframe{width:100%;height:100%;border:none}.info-list{margin-top:var(--space-md)}.info-item{display:flex;padding-bottom:var(--space-sm);margin-bottom:var(--space-sm);border-bottom:1px solid var(--color-border)}.info-item dt{flex-shrink:0;width:100px;font-weight:700;color:var(--color-primary)}.info-item dd{color:var(--color-text-main)}.access-phone{display:inline-flex;gap:12px;align-items:center;margin-top:var(--space-lg);font-size:32px;font-weight:700;color:var(--color-primary)}.contact-container{max-width:700px;padding:var(--space-lg);margin:0 auto;background-color:var(--color-bg-white);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.form-group{margin-bottom:var(--space-md)}.form-group label{display:block;margin-bottom:8px;font-weight:700}.form-group .req{margin-left:4px;color:var(--color-error)}.form-control{width:100%;padding:12px 16px;font-family:inherit;font-size:var(--font-size-base);background-color:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-base)}.form-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(178,34,34,.1)}textarea.form-control{resize:vertical}.form-submit{margin-top:var(--space-lg);text-align:center}.form-submit .btn{width:100%;max-width:300px}.form-status{display:none;padding:16px;margin-top:var(--space-md);font-weight:700;text-align:center;border-radius:var(--radius-sm)}.form-status.success{color:var(--color-success);background-color:#e8f5e9;border:1px solid #c8e6c9}.form-status.error{color:var(--color-error);background-color:#ffebee;border:1px solid #ffcdd2}.loading-spinner{padding:var(--space-xl);color:var(--color-text-light);text-align:center}.footer{padding:var(--space-xl) 0 var(--space-md);color:#fff;background-color:#222}.footer-inner{display:flex;justify-content:space-between;margin-bottom:var(--space-xl)}.footer-info p{margin-bottom:4px;color:#bbb}.footer-logo{display:block;margin-bottom:var(--space-sm)}.footer-logo img{width:auto;height:52px;filter:brightness(0) invert(1)}.footer-nav ul{display:flex;gap:var(--space-md)}.footer-nav a{font-size:var(--font-size-sm);color:#ddd}.footer-nav a:hover{color:#fff;text-decoration:underline}.copyright{padding-top:var(--space-md);font-size:12px;color:#888;text-align:center;border-top:1px solid #444}.achievement-banner{position:relative;z-index:1;width:100%;padding:var(--space-sm) 0;color:var(--color-bg-white);background-color:var(--color-primary)}.achievement-text{font-size:var(--font-size-lg);font-weight:500;line-height:1.5;text-align:center}.achievement-text .highlight{display:inline-flex;align-items:baseline;padding-bottom:4px;margin:0 .2em;font-size:1.25em;font-weight:700;line-height:1;color:var(--color-accent-yellow);white-space:nowrap;border-bottom:3px double var(--color-accent-yellow)}.big-number{margin-right:.15em;font-size:2.2em;letter-spacing:-0.05em}.access-map-wrapper{display:flex;flex:1;flex-direction:column}.google-map-link-container{margin-top:var(--space-xs);text-align:right}.google-map-link{font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:underline;transition:color var(--transition-base)}.google-map-link:hover{color:var(--color-primary-hover)}.blur-shape{position:absolute;z-index:0;pointer-events:none;border-radius:50%;opacity:.6;filter:blur(120px)}.blur-1{top:-150px;left:-200px;width:400px;height:400px;background-color:rgba(255,218,185,.8)}.blur-2{right:-250px;bottom:-200px;width:500px;height:500px;background-color:rgba(178,34,34,.2)}.blur-3{top:50%;right:10%;width:350px;height:350px;background-color:rgba(255,192,203,.5);transform:translateY(-50%)}.blur-4{top:50px;left:-250px;width:450px;height:450px;background-color:rgba(178,34,34,.15);opacity:.5}.blur-5{right:-200px;bottom:-100px;width:400px;height:400px;background-color:rgba(255,218,185,.6);opacity:.5}@keyframes spin{100%{transform:rotate(360deg)}}.achievement-banner{padding-bottom:24px}.achievement-banner .text-primary{color:var(--color-accent-yellow)}@media (width <= 1024px){.testi-grid{grid-template-columns:repeat(2, 1fr)}}@media (width <= 768px){:root{--font-size-xxl: 28px;--font-size-xl: 20px;--space-xxl: 64px;--space-xl: 40px}.header-inner{height:60px}.logo img{height:48px}.nav-list{position:absolute;top:60px;left:0;display:none;flex-direction:column;gap:var(--space-sm);width:100%;padding:var(--space-md);background-color:var(--color-bg-white);box-shadow:var(--shadow-md)}.nav-list.is-active{display:flex}.header-btn{display:none}.menu-toggle{display:block}.hero{min-height:auto;padding-top:100px}.hero-inner{flex-direction:column-reverse;padding-bottom:var(--space-lg)}.about-inner,.access-inner{flex-direction:column}.hero-title{font-size:28px}.hero-content{text-align:center}.hero-content .btn{display:block;margin-bottom:40px}.hero-subtitle,.hero-title,.hero-desc{text-align:left}.services-grid,.testi-grid{grid-template-columns:1fr}.pricing-box-price{font-size:48px}.steps-container{flex-direction:column;gap:var(--space-lg)}.steps-container::before{top:0;bottom:0;left:30px;width:2px;height:auto}.step-item{display:flex;gap:var(--space-md);align-items:flex-start;width:100%;text-align:left}.step-num{flex-shrink:0;width:60px;height:60px;margin:0}.step-digit{font-size:24px}.footer-inner{flex-direction:column;gap:var(--space-lg)}.footer-nav ul{flex-direction:column;gap:8px}}
