:root{--color-primary:#0a5c4e;--color-primary-dark:#063d33;--color-accent:#c5a880;--color-gold:#c5a880;--color-accent-deep:#b89c72;--color-bg-clean:#fff;--color-bg-light:#f7f9f8;--color-text-dark:#1e2522;--color-text-muted:#5c6662;--text-white:#fff;--dark-charcoal:#1c1a17;--border-light:1px solid #0a5c4e14;--shadow-premium:0 20px 40px #0a5c4e0a;--shadow-hover:0 30px 60px #0a5c4e14;--focus-ring:0 0 0 3px #0a5c4e59;--transition-fast:all .3s cubic-bezier(.25, .8, .25, 1);--transition-slow:all .5s cubic-bezier(.16, 1, .3, 1);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:9999px;--spacing-md:1.5rem;--spacing-lg:2.5rem;--max-width:1200px}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--color-bg-clean);color:var(--color-text-dark);font-family:var(--font-noto-sans), "Noto Sans JP", sans-serif;letter-spacing:.03em;scroll-behavior:smooth;min-height:100vh;line-height:1.85}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;box-shadow:var(--focus-ring)}a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),summary:focus:not(:focus-visible){box-shadow:none;outline:none}h1,h2,h3,h4,h5,h6{color:var(--color-primary-dark);font-weight:700;line-height:1.35}a{color:inherit;transition:var(--transition-fast);text-decoration:none}.articleContainer,.contentContainer{max-width:780px;margin:0 auto;padding:0 1.5rem}.breadcrumb{color:var(--color-text-muted);align-items:center;gap:.6rem;margin-bottom:3rem;font-size:.78rem;list-style:none;display:flex}.breadcrumb a{color:var(--color-text-muted);transition:var(--transition-fast);text-decoration:none}.breadcrumb a:hover{color:var(--color-primary);text-decoration:underline}.breadcrumb li:not(:last-child):after{content:">";color:#0a5c4e40;margin-left:.6rem;font-size:.7rem}.eyecatchImage,.articleEyecatch{aspect-ratio:83/56;object-fit:cover;border-radius:var(--radius-lg);width:100%;height:auto;box-shadow:var(--shadow-premium);margin-bottom:4.5rem;display:block}strong.specialHighlight{color:var(--color-primary);background:linear-gradient(#0000 65%,#c5a88059 65%);padding:0 2px;font-weight:700;display:inline}.premium-h2,.aboutBody h2,.messageBody h2{color:var(--color-primary);border-bottom:2px solid #0a5c4e0f;margin-top:5rem;margin-bottom:2rem;padding-bottom:.9rem;font-size:1.6rem;font-weight:700;line-height:1.45;position:relative}.premium-h2:after,.aboutBody h2:after,.messageBody h2:after{content:"";background-color:var(--color-gold);width:60px;height:2px;position:absolute;bottom:-2px;left:0}.fade-in-section{opacity:0;transition:opacity .8s ease-out,transform .8s cubic-bezier(.16,1,.3,1);transform:translateY(30px)}.fade-in-section.is-visible{opacity:1;transform:translateY(0)}.floatingPromoBtn{z-index:999;background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);letter-spacing:.05em;transition:var(--transition-fast);border:1px solid #c5a8804d;border-radius:50px;align-items:center;gap:1rem;padding:1.1rem 2.2rem;font-size:.95rem;font-weight:700;text-decoration:none;display:flex;position:fixed;bottom:40px;right:40px;box-shadow:0 10px 30px #0a5c4e40;color:#fff!important}.floatingPromoBtn:hover{transform:translateY(-3px);box-shadow:0 12px 28px #0a5c4e47,0 0 0 3px #c5a88026;color:#fff!important}.floatingPromoBtn:focus-visible{outline-offset:3px;outline:2px solid #fff;box-shadow:0 0 0 5px #0a5c4e73}.floatingPulseDot{background-color:var(--color-gold);border-radius:50%;width:10px;height:10px;position:relative}.floatingPulseDot:after{content:"";background-color:var(--color-gold);border-radius:50%;width:100%;height:100%;animation:2s ease-out infinite floatingPulseAnimation;position:absolute;top:0;left:0}@keyframes floatingPulseAnimation{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(3.5)}}@media (max-width:768px){.floatingPromoBtn{padding:.9rem 1.6rem;font-size:.85rem;bottom:20px;right:20px}}body:has(.eventPageActive) .floatingPromoBtn{display:none!important}@media (prefers-reduced-motion:reduce){html,body{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.fade-in-section{opacity:1;transform:none}.floatingPulseDot:after{display:none}.floatingPromoBtn:hover{transform:none}}
