/* basic.css */

:root {
    --primary-color: #ed6c15;
    --primary-color-dark: #d95f10;
    --primary-color-light: #f78c4a;
    --error-color: #c0392b;
    --text-color-dark: #4a1d00;
    --text-color-light: #6b3e26;
    --background-yellow: #fff9e6;
    --white: #FFFFFE;
    --gray-light: #f8f9fa;
    --gray-medium: #e9ecef;
    --gray-dark: #6c757d;
    --max-content-width: 1200px;
    --bottom-nav-height: 4rem;
    --font-family-main: "Poppins", "Kiwi Maru", serif;
    --font-size-base: 1rem;
    --font-size-small: 0.875rem;
    --font-size-large: 1.5rem;
    --spacing-xs: 0.25rem;
    --spacing-small: 0.5rem;
    --spacing-medium: 1rem;
    --spacing-large: 1.5rem;
    --spacing-xl: 2.5rem;
    --border-radius-small: 0.375rem;
    --border-radius-medium: 0.75rem;
    --border-radius-pill: 1.5rem;
    --grid-gap: 1rem;
    --shadow-soft: 0 4px 12px rgba(0,0,0,0.08);
    --shadow-medium: 0 6px 15px rgba(0,0,0,0.12);
    --menu-card-min-height: 180px;


    /* 波模様SVG */
    --wave-dynamic: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,50 C25,10,40,110,100,50 L100,100 L0,100 Z" fill="%23FFFFFF" /></svg>');
    --wave-gentle: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,70 C30,20,70,100,100,60 L100,100 L0,100 Z" fill="%23FFFFFF" /></svg>');
    --wave-double: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="none"><path d="M0,50 C15,120 35,-20 50,50 C65,120 85,-20 100,50 L100,100 L0,100 Z" fill="%23FFFFFF" /></svg>');
    
    --bubble-divider-a: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 1185 248'%3e%3ccircle cx='76' cy='121.1' r='20'/%3e%3ccircle cx='870' cy='201.1' r='11'/%3e%3ccircle cx='814.5' cy='165.6' r='24.5'/%3e%3cpath d='M0 0v17.7c22.7 14.8 53 31.9 90.7 51.5 150.8 78 322 116.6 424.8 69.3 102.9-47.4 138-69.3 210.8-69.3s118.3 48.6 219.5 38.3 76.3-59.3 188.7-59.3c18.9 0 35.5 2.6 50.5 6.8V0H0z'/%3e%3c/svg%3e");
    --bubble-divider-b: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 1185 248'%3e%3cpath d='M50.5 199.8c112.4 0 87.5-49 188.7-59.3s146.7 38.3 219.5 38.3 107.9-21.9 210.8-69.3c102.8-47.3 274-8.7 424.8 69.3 37.7 19.5 68 36.7 90.7 51.5V0H0v193C15 197.2 31.6 199.8 50.5 199.8zM1109 106.9c11 0 20 9 20 20 0 11-9 20-20 20s-20-9-20-20C1089 115.9 1098 106.9 1109 106.9zM370.5 57.9c13.5 0 24.5 11 24.5 24.5 0 13.5-11 24.5-24.5 24.5S346 95.9 346 82.4C346 68.9 357 57.9 370.5 57.9zM315 35.9c6.1 0 11 4.9 11 11s-4.9 11-11 11 -11-4.9-11-11S308.9 35.9 315 35.9z'/%3e%3c/svg%3e");
}

/* 基本スタイル */
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body {
    font-family: var(--font-family-main);
    color: var(--text-color-dark);
    width: 100%;
    overflow-x: hidden;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    scroll-behavior: smooth;
    background-color: var(--white);
    font-size: var(--font-size-base);
    line-height: 1.6;
}
body.no-scroll { overflow-y: hidden; }
a { text-decoration: none; color: var(--primary-color); transition: color 0.2s ease; }
a:hover { color: var(--primary-color-dark); }
ul { list-style: none; }
img { max-width: 100%; display: block; height: auto; vertical-align: middle; }
h1, h2, h3, h4, h5, h6 { font-weight: 500; color: var(--text-color-dark); line-height: 1.3; margin-bottom: var(--spacing-small); word-break: keep-all; }
p, dd, dt, li { word-wrap: break-word; }
h1 { font-size: 2.5rem; } h2 { font-size: 2rem; } h3 { font-size: 1.5rem; font-weight: 400; }
dl, div.ticket-info { width: 100%; }