/* Original static site CSS migrated */
/* Contents copied from /css/style.css with path adjustments */
/* 共通スタイル */
body { font-family: 'Rounded M PLUS 1c', 'Noto Sans JP', sans-serif; }
/* ヒーローセクション */
.hero { background-size: cover; background-position: center; padding: 6rem 1.5rem; color: #fff; position: relative; text-align: left; display: flex; align-items: center; justify-content: center; min-height: 90vh; border-radius: 32px; box-shadow: 0 8px 32px 0 rgba(0,0,0,0.08); background-blend-mode: lighten; }
.hero::before { content: ''; position: absolute; top:0; right:0; bottom:0; left:0; background: linear-gradient(135deg, rgba(238,246,255,0.7) 0%, rgba(219,234,254,0.7) 100%); z-index:0; }
.hero-inner { max-width: 960px; width:100%; position:relative; z-index:1; }
.hero-title { font-size:2.5rem; font-weight:700; margin-bottom:1rem; color:#0057B8; }
.hero-subtitle { font-size:1.25rem; margin-bottom:2rem; color:#444; }
.hero-button { display:inline-flex; align-items:center; justify-content:center; background:#FFD700; color:#000; padding:0.85rem 1.6rem; line-height:1; border-radius:9999px; font-weight:600; text-decoration:none; transition:background .3s ease, transform .2s ease; }
.hero-button:hover { background:#FFC700; transform:scale(1.05); }
.tab-content { display:none; }
.tab-content.active { display:block; }
.service-card { transition:transform .3s ease, box-shadow .3s ease; border-radius:24px; box-shadow:0 4px 24px 0 rgba(0,0,0,0.06); background:#fff; }
.service-card:hover { transform:translateY(-5px) scale(1.03); box-shadow:0 12px 32px -8px rgba(0,0,0,0.10), 0 10px 10px -5px rgba(0,0,0,0.04); }
.portfolio-card { transition:transform .3s ease, box-shadow .3s ease; border-radius:24px; box-shadow:0 4px 24px 0 rgba(0,0,0,0.06); background:#fff; }
@media (min-width:768px){ .portfolio-card:hover { transform:translateY(-5px) scale(1.03); box-shadow:0 12px 32px -8px rgba(0,0,0,0.10),0 10px 10px -5px rgba(0,0,0,0.04);} }
.faq-item { transition:all .3s ease; border-radius:20px; }
.faq-question .ri-arrow-down-s-line { transition:transform .3s ease; }
.faq-item.active .faq-question .ri-arrow-down-s-line { transform:rotate(180deg); }
.faq-answer { padding-left:1rem; padding-right:1rem; max-height:0; overflow:hidden; transition:max-height .4s ease-out, padding-top .4s ease-out, padding-bottom .4s ease-out; }
.faq-item.active .faq-answer { padding-top:1rem; padding-bottom:1rem; max-height:500px; }
.highlight { background:linear-gradient(transparent 60%, rgba(74,144,226,.3) 60%); }
.gradient-heading { text-align:center; font-size:1.5rem; font-weight:bold; color:#334155; padding:.75em 0; background: linear-gradient(to right,#3b0764,#06b6d4) top, linear-gradient(to right,#3b0764,#06b6d4) bottom; background-size:100% 4px; background-repeat:no-repeat; background-position:top,bottom; margin:2rem 0 1.25rem 0; }
.section-subheading, h3:not(.faq-question h3):not(.contact-heading):not(footer h3), h4 { color:#2563eb; font-size:1.25rem; font-weight:bold; border-left:5px solid #06b6d4; padding-left:.75em; background:#f0f9ff; border-radius:.5em; margin-bottom:1.25rem !important; margin-top:0; display:inline-block; }
.subcatch { color:#2563eb; font-size:1.1rem; font-weight:bold; background:#e0f2fe; display:inline-block; padding:.4em 1.2em; border-radius:1em; margin-bottom:1.25rem; margin-top:0; letter-spacing:.02em; }
footer h3 { color:white !important; background:none !important; border:none !important; padding-left:0 !important; font-size:1.125rem !important; margin-bottom:.75rem !important; }
footer p { margin-bottom:.75rem !important; }
footer h3.highlight, footer .highlight { background:none !important; }
.footer-logo { filter:brightness(0) invert(1); }
@media (max-width:768px){ .hero { text-align:center; padding:4rem 1rem; } .hero-title { font-size:2.5em; } .hero-subtitle { font-size:1rem; } .flex-wrap { display:grid; grid-template-columns:repeat(4,1fr); gap:.5rem; } }
.tab-btn.active { background:#2563eb !important; color:white !important; border-color:#2563eb !important; box-shadow:0 4px 12px rgba(37,99,235,.3) !important; transform:translateY(-2px); }
.tab-btn { cursor:pointer; }
.swiper-pagination-bullet { cursor:pointer; position:relative; overflow:hidden; background:#9CA3AF !important; border:2px solid #D1D5DB; }
.swiper-pagination-bullet.active { background:linear-gradient(135deg,#0057B8,#1E40AF) !important; transform:scale(1.3); box-shadow:0 4px 12px rgba(0,87,184,.4); border-color:#0057B8; }
.swiper-pagination-bullet::before { content:''; position:absolute; top:50%; left:50%; width:0; height:0; background:rgba(255,255,255,.9); border-radius:50%; transform:translate(-50%,-50%); transition:all .3s ease; }
.swiper-pagination-bullet:hover::before { width:100%; height:100%; }
.swiper-pagination-bullet:hover { background:#6B7280 !important; transform:scale(1.1); }
.swiper-container { width:100%; padding:1rem 0; overflow:hidden; }
.swiper-slide { width:80%; height:auto; }
.swiper-slide .bg-white { height:100%; }
.bg-dots { background-image: radial-gradient(#cbd5e1 1px, transparent 1px); background-size:20px 20px; border-radius:32px; }
#menu-button { margin-left:auto; display:flex; justify-content:flex-end; }
@media (max-width:768px){ .swiper-slide .bg-white:hover, .swiper-slide .bg-white { box-shadow:0 4px 12px -2px rgba(0,0,0,.05); transform:none !important; } .service-card:hover, .service-card { box-shadow:0 4px 12px -2px rgba(0,0,0,.05); transform:none !important; } }
.contact-card { background:#ffffff; border:1px solid #e2e8f0; box-shadow:0 3px 12px -3px rgba(0,0,0,.06); position:relative; }
.contact-card::before { display:none; }
.info-card { background:#ffffff; border:1px solid #e2e8f0; box-shadow:0 3px 12px -3px rgba(0,0,0,.06); }
.info-card h3 { margin-top:0; }
@media (prefers-color-scheme: dark){ .contact-card, .info-card { background:#ffffff; border-color:#e2e8f0; box-shadow:0 3px 12px -3px rgba(0,0,0,.06); } }
