/*! HaiguiEdu front.base — generated by scripts/build_css.php, do not edit */
@charset "UTF-8"; :root{ --color-primary: #183358; --color-primary-dark: #102442; --color-primary-soft: #294a75; --color-brand: #F497B2; --color-brand-dark: #e57b9b; --color-brand-soft: #FFF4F7; --color-surface: #FFFEFC; --color-surface-alt: #FAF7F4; --color-text: #2D3748; --color-text-muted: #6B7280; --color-text-inverse: #FFFFFF; --color-border: rgba(45,55,72,0.12);--color-border-strong: rgba(45,55,72,0.24);--color-success: #2F855A; --color-success-soft: #EBF7F0;--color-warning: #B7791F; --color-warning-soft: #FDF6E7;--color-danger: #C53030; --color-danger-soft: #FDECEC;--color-info: #2B6CB0; --color-info-soft: #EBF3FB;--color-overlay: rgba(24,51,88,0.55); --color-overlay-strong: rgba(24,51,88,0.82);--hero-overlay: 0.72; --color-caption: rgba(24,51,88,var(--hero-overlay)); --color-plan-head-bg: #1F3864; --color-plan-label-bg: #DEEBF7; --color-plan-border: #B4C7E7; --color-plan-accent: #C00000; --font-zh: 'Noto Sans SC';--font-ja: 'Noto Sans JP';--font-en: 'Noto Sans';--font-fallback: Arial,sans-serif;--font-family: var(--font-zh),var(--font-fallback);--font-serif: 'Noto Serif SC','Noto Serif JP',Georgia,serif;--weight-body: 400;--weight-medium: 500;--weight-heading: 600; --font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-md: 18px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-2xl: 30px;--font-size-3xl: 36px;--font-size-4xl: 44px;--font-size-5xl: 56px;--line-height-tight: 1.3;--line-height-base: 1.75;--line-height-loose: 2;--letter-spacing-wide: 0.08em; --space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px; --section-pad-y: 48px; --section-gap: 40px; --page-hero-pad-top: 48px; --page-hero-pad-bottom: 32px; --footer-pad-top: 48px; --footer-pad-bottom: 24px; --radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-pill: 999px;--radius-circle: 50%; --shadow-sm: 0 1px 2px rgba(24,51,88,0.06),0 1px 3px rgba(24,51,88,0.08);--shadow-md: 0 4px 12px rgba(24,51,88,0.10),0 2px 4px rgba(24,51,88,0.06);--shadow-lg: 0 16px 40px rgba(24,51,88,0.18),0 4px 12px rgba(24,51,88,0.10);--shadow-focus: 0 0 0 3px rgba(244,151,178,0.35); --fab-ring: rgba(255,254,252,0.92); --fab-halo: rgba(244,151,178,0.28); --duration-fast: 0.15s;--duration-base: 0.25s;--duration-slow: 0.5s; --hero-fade-duration: 0.5s;--easing-base: cubic-bezier(0.4,0,0.2,1);--easing-out: cubic-bezier(0.16,1,0.3,1); --container: 1200px;--container-wide: 1440px;--container-narrow: 760px;--gutter: 16px;--header-height: 68px;--sidebar-width: 232px;--sidebar-width-collapsed: 64px;--topbar-height: 60px; --z-base: 1;--z-sticky: 20;--z-header: 100;--z-dropdown: 200;--z-drawer: 900;--z-modal: 1000;--z-toast: 1100;--z-skip-link: 1200;} html[data-locale="ja"]{--font-family: var(--font-ja),var(--font-fallback);} html[data-locale="en"]{--font-family: var(--font-en),var(--font-fallback);} @media (min-width: 768px){:root{--section-pad-y: 56px;--section-gap: 48px;--page-hero-pad-top: 56px;--page-hero-pad-bottom: 40px;--footer-pad-top: 56px;--footer-pad-bottom: 32px;}} @media (min-width: 992px){:root{--section-pad-y: 64px;--section-gap: 56px;--page-hero-pad-top: 64px;--page-hero-pad-bottom: 48px;--footer-pad-top: 64px;--footer-pad-bottom: 32px;}} @media (min-width: 1200px){:root{--section-pad-y: 72px;--section-gap: 64px;--page-hero-pad-top: 72px;--page-hero-pad-bottom: 56px;--footer-pad-top: 72px;--footer-pad-bottom: 40px;}} @media (prefers-reduced-motion: reduce){:root{--duration-fast: 0.01s;--duration-base: 0.01s;--duration-slow: 0.01s;}} :root{--map-sea: #F4F7F9; --map-sea-light: #FCFDFE; --map-sea-deep: #E6EEF4; --map-land-context: #EAEDE8; --map-pref-line: #FFFFFF; --map-label: #3D4A57; --map-label-muted: #5B6878; --map-label-inverse: #FFFFFF; --map-marker-ring: rgba(24,51,88,0.16);--map-tip-bg: #183358;--map-tip-text: #FFFFFF; --map-callout-line: #8B3A55;--map-callout-text: #6E2B41;--map-callout-border: rgba(139,58,85,0.34);--map-callout-bg: rgba(255,255,255,0.95);--map-callout-shadow: rgba(24,51,88,0.16);--map-region-hokkaido: #A9CBE3;--map-region-tohoku: #B4D7C9;--map-region-kanto: #DAE0A6;--map-region-chubu: #C7D4EE;--map-region-kansai: #F0D2C2;--map-region-chugoku: #D8CBE9;--map-region-shikoku: #F1E2B8;--map-region-kyushu: #BCD8D6;--map-region-okinawa: #C06E88; --map-region-okinawa-line: #8B3A55; --map-region-region-fill: #D6E8DA; --map-region-region-line: #A7C6B0; --map-region-active: var(--color-brand);--map-region-active-deep: var(--color-brand-dark);--map-region-active-soft: var(--color-brand-soft);} *,*::before,*::after{box-sizing: border-box;}html{-webkit-text-size-adjust: 100%;-moz-text-size-adjust: 100%;text-size-adjust: 100%;scroll-behavior: smooth;}html,body{margin: 0;padding: 0;}body{min-height: 100%;background-color: var(--color-surface);color: var(--color-text);font-family: var(--font-family);font-size: var(--font-size-base);font-weight: var(--weight-body);line-height: var(--line-height-base);text-rendering: optimizeLegibility;-webkit-font-smoothing: antialiased;}hr{box-sizing: content-box;height: 0;overflow: visible;border: 0;border-top: 1px solid var(--color-border);margin: var(--space-6) 0;}abbr[title]{text-decoration: underline dotted;cursor: help;}b,strong{font-weight: var(--weight-heading);}code,kbd,samp,pre{font-family: Consolas,'Courier New',monospace;font-size: 0.95em;}small{font-size: var(--font-size-sm);}sub,sup{position: relative;font-size: 0.75em;line-height: 0;vertical-align: baseline;}sub{bottom: -0.25em;}sup{top: -0.5em;}summary{cursor: pointer;}template,[hidden]{display: none;} img,picture,video,canvas,svg{max-width: 100%;height: auto;vertical-align: middle;}img{border-style: none;object-fit: cover;}iframe{border: 0;}figure{margin: 0;} h1,h2,h3,h4,h5,h6{margin: 0 0 var(--space-4);color: var(--color-primary);font-weight: var(--weight-heading);line-height: var(--line-height-tight);}h1{font-size: var(--font-size-3xl);letter-spacing: var(--letter-spacing-wide);}h2{font-size: var(--font-size-2xl);letter-spacing: 0.04em;}h3{font-size: var(--font-size-xl);}h4{font-size: var(--font-size-lg);}h5{font-size: var(--font-size-md);}h6{font-size: var(--font-size-base);}p{margin: 0 0 var(--space-4);}p:last-child{margin-bottom: 0;}ul,ol{margin: 0 0 var(--space-4);padding-left: var(--space-6);}dl{margin: 0;}dt{font-weight: var(--weight-heading);}dd{margin: 0 0 var(--space-2);}blockquote{margin: var(--space-5) 0;padding: var(--space-4) var(--space-5);border-left: 4px solid var(--color-brand);background-color: var(--color-brand-soft);color: var(--color-text);border-radius: 0 var(--radius-md) var(--radius-md) 0;}[lang="ja"]{font-family: var(--font-ja),var(--font-fallback);} a{color: var(--color-primary);text-decoration: none;transition: color var(--duration-fast) var(--easing-base);}a:hover,a:focus{color: var(--color-brand-dark);}a:active{color: var(--color-primary-dark);} button,input,optgroup,select,textarea{margin: 0;font-family: inherit;font-size: 100%;line-height: 1.25;color: inherit;}button,input{overflow: visible;}button,select{text-transform: none;}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance: button;appearance: button;cursor: pointer;}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style: none;padding: 0;}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline: 1px dotted ButtonText;}fieldset{margin: 0;padding: 0;border: 0;}legend{padding: 0;box-sizing: border-box;color: inherit;display: table;max-width: 100%;white-space: normal;}progress{vertical-align: baseline;}textarea{overflow: auto;resize: vertical;}[type="search"]{-webkit-appearance: textfield;appearance: textfield;outline-offset: -2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance: none;}[type="checkbox"],[type="radio"]{box-sizing: border-box;padding: 0;accent-color: var(--color-brand);}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height: auto;}[type="file"]{border: 0;}::placeholder{color: var(--color-text-muted);opacity: 0.8;} :focus{outline: none;}:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline: 2px solid var(--color-brand);outline-offset: 2px;}.skip-link{position: absolute;top: -100px;left: var(--space-4);z-index: var(--z-skip-link);padding: var(--space-2) var(--space-4);background-color: var(--color-primary);color: var(--color-text-inverse);border-radius: var(--radius-md);transition: top var(--duration-fast) var(--easing-base);}.skip-link:focus{top: var(--space-4);color: var(--color-text-inverse);} .container{width: 100%;max-width: var(--container);margin-inline: auto;padding-inline: var(--gutter);}.container--wide{max-width: var(--container-wide);}.container--narrow{max-width: var(--container-narrow);}@media (min-width: 768px){:root{--gutter: 24px;}}@media (min-width: 1200px){:root{--gutter: 32px;}} .section{padding-block: var(--section-pad-y);}.section--soft{background-color: var(--color-brand-soft);}.section--alt{background-color: var(--color-surface-alt);}.section--dark{background-color: var(--color-primary);color: var(--color-text-inverse);}.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4{color: var(--color-text-inverse);}.section__head{max-width: var(--container-narrow);margin: 0 auto var(--space-6);text-align: center;}.section__title{position: relative;margin-bottom: var(--space-3);}.section__title::after{content: "";display: block;width: 48px;height: 3px;margin: var(--space-3) auto 0;background-color: var(--color-brand);border-radius: var(--radius-pill);}.section__subtitle{color: var(--color-text-muted);font-size: var(--font-size-md);} .section__head__row{display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: var(--space-3);} .section__head__row .section__title{margin-bottom: 0;} .section__head__row .section__title::after{position: absolute;left: 50%;top: calc(100% + var(--space-3));margin: 0;transform: translateX(-50%);} .section__head--action .section__subtitle{margin-top: calc(var(--space-3) + 3px + var(--space-3));}.section__action{display: inline-flex;align-items: center;gap: var(--space-2);padding: var(--space-2) var(--space-4);border: 1px solid var(--color-brand);border-radius: var(--radius-pill);background-color: var(--color-brand-soft);color: var(--color-brand-dark);font-size: var(--font-size-sm);font-weight: 600;line-height: 1.4;white-space: nowrap;transition: background-color var(--duration-fast) ease,color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,transform var(--duration-fast) ease;}.section__action:hover,.section__action:focus-visible{background-color: var(--color-brand);color: var(--color-text-inverse);box-shadow: var(--shadow-sm);transform: translateY(-2px);}.section__action:focus-visible{outline: none;box-shadow: var(--shadow-focus);}.section__action-icon{display: inline-flex;align-items: center;justify-content: center;}.section__action-icon svg{width: 20px;height: 20px;display: block;}@media (max-width: 767px){ .section__head__row{gap: var(--space-2) var(--space-3);}.section__action:hover,.section__action:focus-visible{transform: none;}}.grid{display: grid;gap: var(--space-5);grid-template-columns: 1fr;}@media (min-width: 768px){.grid{grid-template-columns: repeat(2,minmax(0,1fr));}}@media (min-width: 992px){.grid--3{grid-template-columns: repeat(3,minmax(0,1fr));}}@media (min-width: 1200px){.grid--3{grid-template-columns: repeat(3,minmax(0,1fr));}.grid--4{grid-template-columns: repeat(4,minmax(0,1fr));}}.grid--auto{grid-template-columns: repeat(auto-fill,minmax(280px,1fr));} .u-hidden{display: none !important;}.u-text-center{text-align: center;}.u-text-left{text-align: left;}.u-text-right{text-align: right;}.u-text-muted{color: var(--color-text-muted);}.u-text-brand{color: var(--color-brand-dark);}.u-mt-2{margin-top: var(--space-2) !important;}.u-mt-4{margin-top: var(--space-4) !important;}.u-mt-6{margin-top: var(--space-6) !important;}.u-mb-4{margin-bottom: var(--space-4) !important;}.u-flex{display: flex;}.u-flex-center{display: flex;align-items: center;justify-content: center;}.u-between{display: flex;align-items: center;justify-content: space-between;gap: var(--space-4);}.u-nowrap{white-space: nowrap;}.u-full{width: 100%;} .visually-hidden,.sr-only{position: absolute !important;width: 1px;height: 1px;margin: -1px;padding: 0;overflow: hidden;clip: rect(0,0,0,0);clip-path: inset(50%);white-space: nowrap;border: 0;} .is-active{color: var(--color-brand-dark);}.is-loading{pointer-events: none;opacity: 0.7;}.is-error{color: var(--color-danger);}.is-success{color: var(--color-success);} [data-reveal]{opacity: 0;transform: translateY(16px);transition: opacity var(--duration-slow) var(--easing-out),transform var(--duration-slow) var(--easing-out);}[data-reveal].is-visible{opacity: 1;transform: none;}@media (prefers-reduced-motion: reduce){html{scroll-behavior: auto;}[data-reveal]{opacity: 1;transform: none;}} @media print{.site-header,.site-footer,.toast,.modal{display: none !important;}body{color: #2D3748;background: #FFFFFF;}} .layout{display: flex;flex-direction: column;min-height: 100vh;}.layout__main{flex: 1 0 auto;padding-top: var(--header-height);}.layout--no-header .layout__main{padding-top: 0;} .site-header{position: fixed;top: 0;left: 0;right: 0;z-index: var(--z-header);background-color: var(--color-surface);border-bottom: 1px solid transparent;transition: box-shadow var(--duration-base) var(--easing-base),border-color var(--duration-base) var(--easing-base),background-color var(--duration-base) var(--easing-base);}.site-header.is-sticky{border-bottom-color: var(--color-border);box-shadow: var(--shadow-sm);}.site-header__inner{display: flex;align-items: center;justify-content: space-between;gap: var(--space-4);min-height: var(--header-height);}.site-header__logo{display: inline-flex;align-items: center;gap: var(--space-2);flex: 0 0 auto;color: var(--color-primary);}.site-header__logo-text{ display: grid;grid-template-columns: min-content;gap: 2px;align-content: center;min-width: 0;line-height: 1.15;font-size: var(--brand-name-size);--brand-name-size: var(--font-size-md);--brand-tagline-ratio: 0.549;}.site-header__logo img,.site-header__logo svg{width: auto;height: 34px;}.site-header__brand-name{font-size: 1em;font-weight: var(--weight-heading);letter-spacing: 0.04em;white-space: nowrap;}.site-header__brand-tagline{display: block;color: var(--color-text-muted);font-size: calc(1em * var(--brand-tagline-ratio));letter-spacing: 0.02em;white-space: nowrap;} :root[lang="en"] .site-header__logo-text{--brand-tagline-ratio: 0.559;}:root[lang="ja"] .site-header__logo-text{--brand-tagline-ratio: 0.628;} .lang-switch__current-short{display: none;} @media (max-width: 767px){.site-header__inner{gap: var(--space-3);}.site-header__logo{flex: 0 1 auto;min-width: 0;} :root[lang="en"] .site-header__logo-text{--brand-name-size: clamp(10px,calc(7.6vw - 14.2px),18px);} :root[lang="en"] .site-header__brand-tagline{letter-spacing: 0;text-align-last: justify;}.site-header .site-header__toggle{width: 36px;height: 36px;padding: 6px;}.site-header__actions .lang-switch__btn{padding: 6px 10px;font-size: var(--font-size-xs);}.lang-switch__current{display: none;}.lang-switch__current-short{display: inline;}}.site-header__actions{display: flex;align-items: center;gap: var(--space-3);flex: 0 0 auto;} .site-header__toggle{display: inline-flex;flex-direction: column;justify-content: center;gap: 5px;width: 40px;height: 40px;padding: 8px;background: transparent;border: 1px solid var(--color-border);border-radius: var(--radius-md);}.site-header__toggle span{display: block;height: 2px;background-color: var(--color-primary);border-radius: var(--radius-pill);transition: transform var(--duration-base) var(--easing-base),opacity var(--duration-fast) var(--easing-base);}.site-header__toggle.is-open span:nth-child(1){transform: translateY(7px) rotate(45deg);}.site-header__toggle.is-open span:nth-child(2){opacity: 0;}.site-header__toggle.is-open span:nth-child(3){transform: translateY(-7px) rotate(-45deg);}@media (min-width: 992px){.site-header__toggle{display: none;}} .main-nav{display: none;}.main-nav__list{display: flex;align-items: center;gap: var(--space-1);margin: 0;padding: 0;list-style: none;}.main-nav__item{position: relative;}.main-nav__link{position: relative;display: block;padding: var(--space-2) var(--space-3);color: var(--color-text);font-size: var(--font-size-sm);font-weight: var(--weight-medium);letter-spacing: 0.02em;border-radius: var(--radius-md);white-space: nowrap;transition: color var(--duration-fast) var(--easing-base),background-color var(--duration-fast) var(--easing-base),box-shadow var(--duration-fast) var(--easing-base);}.main-nav__link:hover,.main-nav__link:focus-visible{color: var(--color-primary);background-color: var(--color-brand-soft);}.main-nav__link.is-active{color: var(--color-primary);background-color: var(--color-brand-soft);font-weight: var(--weight-heading);}.main-nav__link.is-active::after{content: "";position: absolute;left: 50%;bottom: 5px;width: 18px;height: 2px;margin: 0;background-color: var(--color-brand);border-radius: var(--radius-pill);transform: translateX(-50%);}.main-nav__sub{position: absolute;top: 100%;left: 0;min-width: 200px;margin: 0;padding: var(--space-2);list-style: none;background-color: var(--color-surface);border: 1px solid var(--color-border);border-radius: var(--radius-md);box-shadow: var(--shadow-md);opacity: 0;visibility: hidden;transform: translateY(6px);transition: opacity var(--duration-base) var(--easing-base),transform var(--duration-base) var(--easing-base),visibility var(--duration-base);}.main-nav__item:hover > .main-nav__sub,.main-nav__item:focus-within > .main-nav__sub,.main-nav__item.is-expanded > .main-nav__sub{opacity: 1;visibility: visible;transform: none;}.main-nav__sub .main-nav__link{padding: var(--space-2) var(--space-3);font-size: var(--font-size-sm);} @media (min-width: 992px){.site-header__inner{display: grid; grid-template-columns: auto minmax(0,1fr) auto;column-gap: var(--space-4);}.site-header__logo{justify-self: start;min-width: 0;}.site-header__actions{justify-self: end;}.main-nav{display: flex; justify-content: flex-end;padding-right: var(--space-2);}.main-nav__list{gap: clamp(4px,0.8vw,var(--space-3));}.main-nav__link{display: inline-flex;align-items: center;justify-content: center;height: 40px;min-width: 5rem;padding: 0 clamp(12px,1.3vw,var(--space-5));border-radius: var(--radius-pill);line-height: 1;} .main-nav__link:hover,.main-nav__link:focus-visible{box-shadow: var(--shadow-sm);}.main-nav__link:focus-visible{outline: 2px solid var(--color-brand);outline-offset: 2px;}} .drawer{position: fixed;inset: 0;z-index: var(--z-drawer);pointer-events: none;}.drawer__mask{position: absolute;inset: 0;background-color: var(--color-overlay);opacity: 0;transition: opacity var(--duration-base) var(--easing-base);}.drawer__panel{position: absolute;top: 0;right: 0;bottom: 0;width: min(300px,86vw);overflow-y: auto;padding: var(--space-5) var(--space-5) var(--space-7);background-color: var(--color-surface);box-shadow: var(--shadow-lg);transform: translateX(100%);transition: transform var(--duration-base) var(--easing-out);}.drawer.is-open{pointer-events: auto;}.drawer.is-open .drawer__mask{opacity: 1;}.drawer.is-open .drawer__panel{transform: none;}.drawer__head{display: flex;align-items: center;justify-content: space-between;margin-bottom: var(--space-5);}.drawer__close{width: 36px;height: 36px;background: transparent;border: 1px solid var(--color-border);border-radius: var(--radius-circle);color: var(--color-primary);font-size: var(--font-size-lg);line-height: 1;} .drawer .main-nav{display: block;}.drawer .main-nav__list{display: block;}.drawer .main-nav__item{border-bottom: 1px solid var(--color-border);}.drawer .main-nav__link{display: block;height: auto;min-width: 0;padding: var(--space-4) var(--space-1);font-size: var(--font-size-base);border-radius: 0;}.drawer .main-nav__link.is-active{background-color: transparent;}.drawer .main-nav__link.is-active::after{display: none;}.drawer .main-nav__sub{position: static;opacity: 1;visibility: visible;transform: none;border: 0;box-shadow: none;padding: 0 0 var(--space-3) var(--space-4);min-width: 0;} .drawer__lang{display: flex;justify-content: center;padding-top: var(--space-2);}@media (min-width: 992px){.drawer{display: none;}} .lang-switch{position: relative;}.lang-switch__btn{display: inline-flex;align-items: center;gap: var(--space-1);padding: var(--space-2) var(--space-3);background: transparent;border: 1px solid var(--color-border);border-radius: var(--radius-pill);color: var(--color-text);font-size: var(--font-size-sm);transition: border-color var(--duration-fast) var(--easing-base),color var(--duration-fast) var(--easing-base);}.lang-switch__btn:hover{border-color: var(--color-brand);color: var(--color-primary);}.lang-switch__btn::after{content: "";width: 0;height: 0;border-left: 4px solid transparent;border-right: 4px solid transparent;border-top: 5px solid currentColor;}.lang-switch__menu{position: absolute;top: calc(100% + 6px);right: 0;z-index: var(--z-dropdown);min-width: 132px;margin: 0;padding: var(--space-2);list-style: none;background-color: var(--color-surface);border: 1px solid var(--color-border);border-radius: var(--radius-md);box-shadow: var(--shadow-md);opacity: 0;visibility: hidden;transform: translateY(6px);transition: opacity var(--duration-base) var(--easing-base),transform var(--duration-base) var(--easing-base),visibility var(--duration-base);}.lang-switch.is-open .lang-switch__menu{opacity: 1;visibility: visible;transform: none;} .lang-switch:hover .lang-switch__menu,.lang-switch:focus-within .lang-switch__menu{opacity: 1;visibility: visible;transform: none;}.lang-switch__link{display: block;padding: var(--space-2) var(--space-3);color: var(--color-text);font-size: var(--font-size-sm);border-radius: var(--radius-sm);white-space: nowrap;}.lang-switch__link:hover{background-color: var(--color-brand-soft);color: var(--color-primary);}.lang-switch__link.is-active{background-color: var(--color-brand-soft);color: var(--color-primary);font-weight: var(--weight-heading);} .lang-switch--inline{display: inline-flex;align-items: center;gap: 2px;padding: 2px;border: 1px solid var(--color-border);border-radius: var(--radius-pill);}.lang-switch--inline .lang-switch__link{padding: 2px var(--space-2);border-radius: var(--radius-pill);color: var(--color-text-muted);font-size: var(--font-size-xs);line-height: 1.6;}.lang-switch--inline .lang-switch__link.is-active{background-color: var(--color-brand-soft);color: var(--color-primary);font-weight: var(--weight-heading);} .site-footer{flex: 0 0 auto;background-color: var(--color-primary);color: var(--color-text-inverse);padding-block: var(--footer-pad-top) var(--footer-pad-bottom);}.site-footer a{color: rgba(255,255,255,0.82);}.site-footer a:hover,.site-footer a:focus{color: var(--color-brand);}.site-footer__grid{display: grid;gap: var(--space-6);grid-template-columns: 1fr;}@media (min-width: 768px){.site-footer__grid{grid-template-columns: repeat(2,minmax(0,1fr));}}@media (min-width: 992px){.site-footer__grid{ grid-template-columns: 1.5fr 1fr 1.2fr;column-gap: var(--space-7);}}.site-footer__col h3{margin-bottom: var(--space-4);color: var(--color-text-inverse);font-size: var(--font-size-base);letter-spacing: 0.06em;}.site-footer__col h3::after{content: "";display: block;width: 32px;height: 2px;margin-top: var(--space-2);background-color: var(--color-brand);}.site-footer__list{margin: 0;padding: 0;list-style: none;}.site-footer__list li{margin-bottom: var(--space-2);font-size: var(--font-size-sm);line-height: 1.9;} .site-footer__list a{display: inline-block;color: rgba(255,255,255,0.82);transition: color var(--duration-fast) var(--easing-base),transform var(--duration-fast) var(--easing-base);}.site-footer__list a:hover,.site-footer__list a:focus-visible{color: var(--color-brand);transform: translateX(4px);}.site-footer__contact{margin: 0;padding: 0;list-style: none;font-size: var(--font-size-sm);}.site-footer__contact li{margin-bottom: var(--space-2);color: rgba(255,255,255,0.82);}.site-footer__contact strong{display: inline-block;min-width: 72px;color: var(--color-text-inverse);font-weight: var(--weight-heading);}.site-footer__brand{font-size: var(--font-size-lg);font-weight: var(--weight-heading);letter-spacing: 0.06em;} .site-footer__brand-link{display: block;color: inherit;text-decoration: none;}.site-footer__brand-link:hover,.site-footer__brand-link:focus{color: inherit;} .site-footer__brand img{display: block;width: auto;height: var(--space-7);margin-bottom: var(--space-4);}@media (min-width: 768px){.site-footer__brand img{height: var(--space-8);}}.site-footer__tagline{margin-top: var(--space-2);color: rgba(255,255,255,0.72);font-size: var(--font-size-sm);}.site-footer__bottom{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: var(--space-3);margin-top: var(--space-6);padding-top: var(--space-4);border-top: 1px solid rgba(255,255,255,0.16);color: rgba(255,255,255,0.66);font-size: var(--font-size-xs);} .back-to-top{position: fixed;right: var(--space-4);bottom: var(--space-5);z-index: var(--z-sticky);display: none;align-items: center;justify-content: center;width: 44px;height: 44px;background-color: var(--color-primary);color: var(--color-text-inverse);border: 0;border-radius: var(--radius-circle);box-shadow: var(--shadow-md);transition: background-color var(--duration-fast) var(--easing-base),transform var(--duration-fast) var(--easing-base);}.back-to-top.is-visible{display: inline-flex;}.back-to-top:hover{background-color: var(--color-brand-dark);transform: translateY(-2px);} .breadcrumb{padding-block: var(--space-4);}.breadcrumb__list{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-2);margin: 0;padding: 0;list-style: none;font-size: var(--font-size-sm);}.breadcrumb__item{color: var(--color-text-muted);}.breadcrumb__item a{color: var(--color-text-muted);}.breadcrumb__item a:hover{color: var(--color-brand-dark);}.breadcrumb__item.is-current{color: var(--color-primary);font-weight: var(--weight-heading);}.breadcrumb__sep{color: var(--color-border-strong);} .page-hero{padding-block: var(--page-hero-pad-top) var(--page-hero-pad-bottom);background-color: var(--color-brand-soft);background-image: radial-gradient(circle at 12% 18%,rgba(244,151,178,0.28),transparent 42%),radial-gradient(circle at 88% 82%,rgba(24,51,88,0.10),transparent 46%);text-align: center;}.page-hero__title{margin-bottom: var(--space-2);}.page-hero__subtitle{max-width: var(--container-narrow);margin: 0 auto;color: var(--color-text-muted);font-size: var(--font-size-md);} .admin-body{background-color: var(--color-surface-alt);}.admin-shell{display: grid;grid-template-columns: 1fr;min-height: 100vh;}.admin-shell__side{position: fixed;top: 0;bottom: 0;left: 0;z-index: var(--z-drawer);width: var(--sidebar-width);overflow-y: auto;background-color: var(--color-primary);color: var(--color-text-inverse);transform: translateX(-100%);transition: transform var(--duration-base) var(--easing-out),width var(--duration-base) var(--easing-base);}.admin-shell.is-side-open .admin-shell__side{transform: none;}.admin-shell__side-mask{position: fixed;inset: 0;z-index: calc(var(--z-drawer) - 1);background-color: var(--color-overlay);opacity: 0;visibility: hidden;transition: opacity var(--duration-base) var(--easing-base),visibility var(--duration-base);}.admin-shell.is-side-open .admin-shell__side-mask{opacity: 1;visibility: visible;}.admin-shell__brand{display: flex;align-items: center;gap: var(--space-2);height: var(--topbar-height);padding-inline: var(--space-4);border-bottom: 1px solid rgba(255,255,255,0.12);color: var(--color-text-inverse);font-weight: var(--weight-heading);letter-spacing: 0.06em;}.admin-shell__brand svg,.admin-shell__brand img{width: 26px;height: 26px;}.admin-shell__nav{padding: var(--space-4) var(--space-3) var(--space-8);}.admin-nav__group-title{margin: var(--space-4) var(--space-2) var(--space-2);color: rgba(255,255,255,0.56);font-size: var(--font-size-xs);letter-spacing: 0.08em;}.admin-nav__list{margin: 0;padding: 0;list-style: none;}.admin-nav__link{display: flex;align-items: center;gap: var(--space-3);padding: var(--space-3) var(--space-3);color: rgba(255,255,255,0.86);font-size: var(--font-size-sm);border-radius: var(--radius-md);transition: background-color var(--duration-fast) var(--easing-base),color var(--duration-fast) var(--easing-base);}.admin-nav__link:hover,.admin-nav__link:focus{background-color: rgba(255,255,255,0.10);color: var(--color-text-inverse);}.admin-nav__link.is-active{background-color: var(--color-brand);color: var(--color-primary);font-weight: var(--weight-heading);}.admin-nav__icon{flex: 0 0 auto;width: 18px;height: 18px;}.admin-nav__text{white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}.admin-shell__main{display: flex;flex-direction: column;min-width: 0;}.admin-shell__topbar{position: sticky;top: 0;z-index: var(--z-sticky);display: flex;align-items: center;justify-content: space-between;gap: var(--space-4);min-height: var(--topbar-height);padding-inline: var(--space-4);background-color: var(--color-surface);border-bottom: 1px solid var(--color-border);}.admin-shell__toggle{display: inline-flex;flex-direction: column;gap: 4px;width: 38px;height: 38px;align-items: center;justify-content: center;background: transparent;border: 1px solid var(--color-border);border-radius: var(--radius-md);}.admin-shell__toggle span{display: block;width: 16px;height: 2px;background-color: var(--color-primary);}.admin-shell__topbar-title{margin: 0;font-size: var(--font-size-md);}.admin-shell__topbar-actions{display: flex;align-items: center;gap: var(--space-3);font-size: var(--font-size-sm);}.admin-shell__user{color: var(--color-text-muted);}.admin-shell__content{flex: 1 0 auto;padding: var(--space-5) var(--space-4) var(--space-8);}.admin-shell__footer{padding: var(--space-4);border-top: 1px solid var(--color-border);color: var(--color-text-muted);font-size: var(--font-size-xs);text-align: center;}@media (min-width: 992px){.admin-shell{grid-template-columns: var(--sidebar-width) minmax(0,1fr);}.admin-shell__side{position: sticky;top: 0;transform: none;height: 100vh;}.admin-shell__side-mask{display: none;}.admin-shell.is-collapsed{grid-template-columns: var(--sidebar-width-collapsed) minmax(0,1fr);}.admin-shell.is-collapsed .admin-shell__side{width: var(--sidebar-width-collapsed);}.admin-shell.is-collapsed .admin-nav__text,.admin-shell.is-collapsed .admin-nav__group-title,.admin-shell.is-collapsed .admin-shell__brand-name{display: none;}.admin-shell.is-collapsed .admin-nav__link{justify-content: center;}}@media (min-width: 1200px){.admin-shell__content{padding: var(--space-6) var(--space-7) var(--space-9);}} .admin-login{display: flex;align-items: center;justify-content: center;min-height: 100vh;padding: var(--space-5);background-color: var(--color-primary);background-image: radial-gradient(circle at 18% 22%,rgba(244,151,178,0.30),transparent 45%),radial-gradient(circle at 82% 78%,rgba(255,255,255,0.10),transparent 48%);}.admin-login__box{width: 100%;max-width: 420px;padding: var(--space-6);background-color: var(--color-surface);border-radius: var(--radius-lg);box-shadow: var(--shadow-lg);}.admin-login__lang{display: flex;justify-content: flex-end;margin-bottom: var(--space-3);}.admin-login__brand{text-align: center;margin-bottom: var(--space-5);}.admin-login__brand svg,.admin-login__brand img{width: 72px;height: 72px;margin-bottom: var(--space-3);}.admin-login__title{margin-bottom: var(--space-1);font-size: var(--font-size-xl);}.admin-login__subtitle{color: var(--color-text-muted);font-size: var(--font-size-sm);}.admin-login__foot{margin-top: var(--space-5);color: var(--color-text-muted);font-size: var(--font-size-xs);text-align: center;} .error-page{display: flex;align-items: center;justify-content: center;min-height: calc(100vh - var(--header-height));padding: var(--space-8) var(--space-4);text-align: center;}.error-page__code{display: block;color: var(--color-brand);font-size: var(--font-size-5xl);font-weight: var(--weight-heading);line-height: 1;letter-spacing: 0.08em;}.error-page__title{margin: var(--space-4) 0 var(--space-3);font-size: var(--font-size-xl);}.error-page__desc{max-width: var(--container-narrow);margin: 0 auto var(--space-5);color: var(--color-text-muted);} .btn{display: inline-flex;align-items: center;justify-content: center;gap: var(--space-2);padding: var(--space-3) var(--space-5);background-color: var(--color-surface);color: var(--color-primary);border: 1px solid var(--color-border-strong);border-radius: var(--radius-pill);font-size: var(--font-size-sm);font-weight: var(--weight-heading);line-height: 1.2;text-align: center;cursor: pointer;transition: background-color var(--duration-fast) var(--easing-base),color var(--duration-fast) var(--easing-base),border-color var(--duration-fast) var(--easing-base),box-shadow var(--duration-fast) var(--easing-base),transform var(--duration-fast) var(--easing-base);}.btn:hover{border-color: var(--color-brand);color: var(--color-primary);box-shadow: var(--shadow-sm);}.btn:active{transform: translateY(1px);}.btn--primary{background-color: var(--color-brand);border-color: var(--color-brand);color: var(--color-primary);}.btn--primary:hover{background-color: var(--color-brand-dark);border-color: var(--color-brand-dark);color: var(--color-primary);}.btn--dark{background-color: var(--color-primary);border-color: var(--color-primary);color: var(--color-text-inverse);}.btn--dark:hover{background-color: var(--color-primary-dark);border-color: var(--color-primary-dark);color: var(--color-text-inverse);}.btn--ghost{background-color: transparent;border-color: var(--color-border-strong);color: var(--color-primary);}.btn--ghost:hover{background-color: var(--color-brand-soft);border-color: var(--color-brand);}.btn--light{background-color: rgba(255,255,255,0.92);border-color: transparent;color: var(--color-primary);}.btn--link{padding: var(--space-1) var(--space-2);background: transparent;border-color: transparent;color: var(--color-brand-dark);}.btn--sm{padding: var(--space-2) var(--space-4);font-size: var(--font-size-xs);}.btn--lg{padding: var(--space-4) var(--space-6);font-size: var(--font-size-md);}.btn--block{display: flex;width: 100%;}.btn.is-disabled,.btn:disabled{opacity: 0.55;cursor: not-allowed;box-shadow: none;transform: none;}.btn.is-loading{position: relative;color: transparent;}.btn.is-loading::after{content: "";position: absolute;width: 16px;height: 16px;border: 2px solid currentColor;border-top-color: transparent;border-radius: var(--radius-circle);animation: hg-spin 0.7s linear infinite;} .card{display: flex;flex-direction: column;gap: var(--space-3);padding: var(--space-5);background-color: var(--color-surface);border: 1px solid var(--color-border);border-radius: var(--radius-lg);box-shadow: var(--shadow-sm);transition: box-shadow var(--duration-base) var(--easing-base),transform var(--duration-base) var(--easing-base),border-color var(--duration-base) var(--easing-base);}.card:hover{border-color: rgba(244,151,178,0.6);box-shadow: var(--shadow-md);transform: translateY(-2px);}.card--soft{background-color: var(--color-brand-soft);}.card--flat{box-shadow: none;}.card--dark{background-color: var(--color-primary);border-color: var(--color-primary);color: var(--color-text-inverse);}.card--dark h3,.card--dark h4{color: var(--color-text-inverse);}.card__media{overflow: hidden;border-radius: var(--radius-md);}.card__title{margin: 0;font-size: var(--font-size-md);line-height: var(--line-height-tight);}.card__desc{margin: 0;color: var(--color-text-muted);font-size: var(--font-size-sm);}.card__meta{display: flex;flex-wrap: wrap;gap: var(--space-3);color: var(--color-text-muted);font-size: var(--font-size-xs);}.card__footer{display: flex;align-items: center;justify-content: space-between;gap: var(--space-3);margin-top: auto;padding-top: var(--space-3);border-top: 1px solid var(--color-border);} .ratio{position: relative;display: block;width: 100%;overflow: hidden;background-color: var(--color-brand-soft);border-radius: var(--radius-md);}.ratio > img,.ratio > video,.ratio > iframe,.ratio > svg{position: absolute;inset: 0;width: 100%;height: 100%;object-fit: cover;}.ratio--16x9{padding-top: 56.25%;}.ratio--4x3{padding-top: 75%;}.ratio--3x4{padding-top: 133.3333%;}.ratio--1x1{padding-top: 100%;} .feature-grid{display: grid;gap: var(--space-5);grid-template-columns: 1fr;}@media (min-width: 768px){.feature-grid{grid-template-columns: repeat(2,minmax(0,1fr));}}@media (min-width: 992px){.feature-grid{grid-template-columns: repeat(3,minmax(0,1fr));}}.feature-card{position: relative;display: flex;flex-direction: column;gap: var(--space-3);padding: var(--space-6) var(--space-5) var(--space-5);background-color: var(--color-surface);border: 1px solid var(--color-border);border-radius: var(--radius-lg);overflow: hidden;transition: transform var(--duration-base) var(--easing-base),box-shadow var(--duration-base) var(--easing-base);}.feature-card::before{content: "";position: absolute;top: 0;left: 0;width: 100%;height: 4px;background: linear-gradient(90deg,var(--color-brand),rgba(244,151,178,0.15));}.feature-card:hover{transform: translateY(-4px);box-shadow: var(--shadow-md);}.feature-card__icon{display: inline-flex;align-items: center;justify-content: center;width: 52px;height: 52px;color: var(--color-primary);background-color: var(--color-brand-soft);border-radius: var(--radius-md);font-size: var(--font-size-xl);line-height: 1;}.feature-card__index{position: absolute;top: var(--space-4);right: var(--space-5);color: rgba(244,151,178,0.7);font-size: var(--font-size-2xl);font-weight: var(--weight-heading);line-height: 1;}.feature-card__title{margin: 0;font-size: var(--font-size-md);line-height: var(--line-height-tight);}.feature-card__desc{margin: 0;color: var(--color-text-muted);font-size: var(--font-size-sm);line-height: var(--line-height-base);}.feature-card__title[lang="ja"],.feature-card__desc[lang="ja"]{line-height: 1.85;} .tag{display: inline-flex;align-items: center;gap: var(--space-1);padding: 2px var(--space-3);background-color: var(--color-brand-soft);color: var(--color-primary);border: 1px solid rgba(244,151,178,0.45);border-radius: var(--radius-pill);font-size: var(--font-size-xs);white-space: nowrap;}.tag--category{background-color: var(--color-info-soft);border-color: rgba(43,108,176,0.35);color: var(--color-info);}.tag--level{background-color: var(--color-brand-soft);border-color: rgba(244,151,178,0.5);color: var(--color-primary);}.tag--type{background-color: var(--color-surface-alt);border-color: var(--color-border);color: var(--color-text-muted);}.tag--solid{background-color: var(--color-brand);border-color: var(--color-brand);color: var(--color-primary);font-weight: var(--weight-heading);}.badge{display: inline-flex;align-items: center;justify-content: center;min-width: 20px;height: 20px;padding-inline: var(--space-2);background-color: var(--color-brand);color: var(--color-primary);border-radius: var(--radius-pill);font-size: var(--font-size-xs);font-weight: var(--weight-heading);line-height: 1; white-space: nowrap;}.badge--danger{background-color: var(--color-danger);color: #FFFFFF;}.badge--success{background-color: var(--color-success);color: #FFFFFF;}.badge--muted{background-color: var(--color-surface-alt);color: var(--color-text-muted);border: 1px solid var(--color-border);} .form{display: grid;gap: var(--space-4);}.form--inline{grid-template-columns: repeat(auto-fit,minmax(200px,1fr));align-items: end;}.form__row{display: grid;gap: var(--space-4);grid-template-columns: 1fr;}@media (min-width: 768px){.form__row--2{grid-template-columns: repeat(2,minmax(0,1fr));}.form__row--3{grid-template-columns: repeat(3,minmax(0,1fr));}}.field{display: flex;flex-direction: column;gap: var(--space-2);min-width: 0;}.field__label{color: var(--color-primary);font-size: var(--font-size-sm);font-weight: var(--weight-heading);}.field__required{color: var(--color-danger);margin-left: 2px;}.field__control{width: 100%;padding: var(--space-3) var(--space-4);background-color: var(--color-surface);color: var(--color-text);border: 1px solid var(--color-border-strong);border-radius: var(--radius-md);font-size: var(--font-size-base);transition: border-color var(--duration-fast) var(--easing-base),box-shadow var(--duration-fast) var(--easing-base);}.field__control:hover{border-color: var(--color-brand);}.field__control:focus{outline: none;border-color: var(--color-brand);box-shadow: var(--shadow-focus);}.field__control:disabled,.field__control[readonly]{background-color: var(--color-surface-alt);color: var(--color-text-muted);cursor: not-allowed;}select.field__control{appearance: none;padding-right: var(--space-7);background-image: linear-gradient(45deg,transparent 50%,var(--color-text-muted) 50%),linear-gradient(135deg,var(--color-text-muted) 50%,transparent 50%);background-position: calc(100% - 20px) calc(50% - 2px),calc(100% - 15px) calc(50% - 2px);background-size: 5px 5px,5px 5px;background-repeat: no-repeat;}textarea.field__control{min-height: 120px;line-height: var(--line-height-base);}.field__hint{color: var(--color-text-muted);font-size: var(--font-size-xs);}.field__error{display: none;color: var(--color-danger);font-size: var(--font-size-xs);}.field.is-invalid .field__control{border-color: var(--color-danger);background-color: var(--color-danger-soft);}.field.is-invalid .field__error{display: block;}.field.is-invalid .field__hint{display: none;} .checkbox{display: inline-flex;align-items: flex-start;gap: var(--space-2);font-size: var(--font-size-sm);cursor: pointer;}.checkbox input[type="checkbox"],.checkbox input[type="radio"]{flex: 0 0 auto;width: 18px;height: 18px;margin-top: 2px;}.checkbox__text{line-height: 1.6;}.checkbox.is-invalid .checkbox__text{color: var(--color-danger);}.checkbox-group{display: flex;flex-wrap: wrap;gap: var(--space-3) var(--space-5);} .form__section{padding: var(--space-5);background-color: var(--color-brand-soft);border-radius: var(--radius-lg);}.form__section-title{margin-bottom: var(--space-4);font-size: var(--font-size-base);}.form__actions{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-3);}.form__feedback{display: none;margin-top: var(--space-4);font-size: var(--font-size-sm);}.form__feedback.is-success,.form__feedback.is-error{display: block;} .pagination{display: flex;flex-direction: column;align-items: center;gap: var(--space-3);margin-top: var(--space-6);} .pagination__list{display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: var(--space-2);margin: 0;padding: 0;list-style: none;}.pagination__nav-row{display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: var(--space-2);}.pagination__item{display: inline-flex;align-items: center;justify-content: center;gap: var(--space-1);min-width: 38px;height: 38px;padding-inline: var(--space-3);background-color: var(--color-surface);color: var(--color-text);border: 1px solid var(--color-border);border-radius: var(--radius-pill);font-size: var(--font-size-sm);font-weight: var(--weight-medium);font-variant-numeric: tabular-nums;white-space: nowrap;transition: border-color var(--duration-fast) var(--easing-base),background-color var(--duration-fast) var(--easing-base),color var(--duration-fast) var(--easing-base),box-shadow var(--duration-fast) var(--easing-base),transform var(--duration-fast) var(--easing-base);} .pagination__item--nav{padding-inline: var(--space-4);color: var(--color-primary);border-color: var(--color-border-strong);}.pagination__icon{flex: none;width: 16px;height: 16px;}.pagination__item:hover:not(.is-current):not(.is-disabled){border-color: var(--color-brand);background-color: var(--color-brand-soft);color: var(--color-primary);transform: translateY(-1px);box-shadow: var(--shadow-sm);}.pagination__item:focus-visible{outline: none;border-color: var(--color-brand);box-shadow: var(--shadow-focus);}.pagination__item.is-current{background-color: var(--color-primary);border-color: var(--color-primary);color: var(--color-text-inverse);font-weight: var(--weight-heading);cursor: default;}.pagination__item.is-disabled{opacity: 0.45;cursor: not-allowed;}.pagination__ellipsis{display: inline-flex;align-items: center;justify-content: center;width: var(--space-5);height: 38px;color: var(--color-text-muted);} .pagination__progress{display: none;align-items: center;justify-content: center;height: 44px;padding-inline: var(--space-4);background-color: var(--color-surface-alt);color: var(--color-text);border: 1px solid var(--color-border);border-radius: var(--radius-pill);font-size: var(--font-size-sm);font-weight: var(--weight-heading);font-variant-numeric: tabular-nums;white-space: nowrap;}.pagination__info{margin: 0;color: var(--color-text-muted);font-size: var(--font-size-xs);text-align: center;} @media (max-width: 767px){.pagination__list{display: none;}.pagination__progress{display: inline-flex;}.pagination__item{height: 44px;}} .empty{display: flex;flex-direction: column;align-items: center;gap: var(--space-3);padding: var(--space-8) var(--space-4);text-align: center;}.empty__icon{width: 72px;height: 72px;color: var(--color-brand);opacity: 0.75;}.empty__text{margin: 0;color: var(--color-text-muted);font-size: var(--font-size-sm);} .alert{display: flex;align-items: flex-start;gap: var(--space-3);padding: var(--space-4);background-color: var(--color-info-soft);border: 1px solid rgba(43,108,176,0.3);border-left-width: 4px;border-radius: var(--radius-md);color: var(--color-info);font-size: var(--font-size-sm);}.alert--success{background-color: var(--color-success-soft);border-color: rgba(47,133,90,0.3);color: var(--color-success);}.alert--warning{background-color: var(--color-warning-soft);border-color: rgba(183,121,31,0.3);color: var(--color-warning);}.alert--error{background-color: var(--color-danger-soft);border-color: rgba(197,48,48,0.3);color: var(--color-danger);}.alert__icon{flex: 0 0 auto;width: 18px;height: 18px;margin-top: 3px;}.alert__text{margin: 0;} .flash-stack{display: flex;flex-direction: column;gap: var(--space-3);margin-bottom: var(--space-5);} @keyframes hg-spin{to{transform: rotate(360deg);}}@keyframes hg-fade-in{from{opacity: 0;}to{opacity: 1;}}.spinner{display: inline-flex;align-items: center;gap: var(--space-2);color: var(--color-text-muted);font-size: var(--font-size-sm);}.spinner__ring{width: 20px;height: 20px;border: 2px solid rgba(244,151,178,0.35);border-top-color: var(--color-brand);border-radius: var(--radius-circle);animation: hg-spin 0.7s linear infinite;}.spinner--lg .spinner__ring{width: 32px;height: 32px;border-width: 3px;}.spinner-overlay{position: fixed;inset: 0;z-index: var(--z-toast);display: none;align-items: center;justify-content: center;background-color: rgba(255,254,252,0.72);}.spinner-overlay.is-open{display: flex;} .table-wrap{width: 100%;overflow-x: auto;border: 1px solid var(--color-border);border-radius: var(--radius-md);background-color: var(--color-surface);}.table{width: 100%;border-collapse: collapse;font-size: var(--font-size-sm);}.table caption{padding: var(--space-3);color: var(--color-text-muted);font-size: var(--font-size-xs);text-align: left;}.table th,.table td{padding: var(--space-3) var(--space-4);border-bottom: 1px solid var(--color-border);text-align: left;vertical-align: middle;}.table thead th{background-color: var(--color-surface-alt);color: var(--color-primary);font-weight: var(--weight-heading);white-space: nowrap;}.table tbody tr:hover{background-color: var(--color-brand-soft);}.table tbody tr:last-child th,.table tbody tr:last-child td{border-bottom: 0;}.table__num{text-align: right;font-variant-numeric: tabular-nums;}.table__actions{display: flex;flex-wrap: wrap;gap: var(--space-2);white-space: nowrap;}.table--compact th,.table--compact td{padding: var(--space-2) var(--space-3);}.table__check{width: 40px;text-align: center;} .modal{position: fixed;inset: 0;z-index: var(--z-modal);display: none; --modal-pad: var(--space-5);} .modal.is-open{display: flex;overflow: auto;padding: var(--modal-pad);} .modal__mask{position: fixed;inset: 0;background-color: var(--color-overlay);animation: hg-fade-in var(--duration-base) var(--easing-base);}.modal__dialog{position: relative;display: flex;flex-direction: column;width: fit-content;min-width: 320px;max-width: min(720px,92vw);height: fit-content;max-height: 88vh;margin: auto;background-color: var(--color-surface);border-radius: var(--radius-lg);box-shadow: var(--shadow-lg);animation: hg-modal-in var(--duration-base) var(--easing-out);}@keyframes hg-modal-in{from{opacity: 0;transform: scale(0.96);}to{opacity: 1;transform: scale(1);}}.modal__dialog--sm{min-width: 300px;max-width: min(440px,92vw);}.modal__dialog--form{min-width: 320px;max-width: min(560px,92vw);}.modal__dialog--lg{max-width: min(900px,94vw);}.modal__dialog--full{width: min(1100px,96vw);height: 88vh;}.modal__header{display: flex;align-items: center;justify-content: space-between;gap: var(--space-4);padding: var(--space-4) var(--space-5);border-bottom: 1px solid var(--color-border);}.modal__title{margin: 0;font-size: var(--font-size-md);}.modal__close{flex: 0 0 auto;width: 32px;height: 32px;background: transparent;border: 1px solid var(--color-border);border-radius: var(--radius-circle);color: var(--color-primary);font-size: var(--font-size-base);line-height: 1;}.modal__close:hover{background-color: var(--color-brand-soft);border-color: var(--color-brand);}.modal__body{flex: 1 1 auto;overflow-y: auto;padding: var(--space-5);} [data-open-media]{cursor: zoom-in;}.modal--media .media-viewer{min-width: 0;max-width: 92vw; max-height: calc(100vh - var(--modal-pad) * 2);padding: var(--space-2);background-color: var(--color-surface);overflow: visible;} .media-viewer__close{position: absolute;top: var(--space-2);right: var(--space-2);z-index: 1;background-color: var(--color-surface);box-shadow: var(--shadow-sm);}.media-viewer__image{display: block;width: auto;height: auto;max-width: calc(92vw - var(--space-2) * 2);max-height: calc(100vh - var(--modal-pad) * 2 - var(--space-2) * 2);object-fit: contain;border-radius: var(--radius-sm);}.modal__footer{display: flex;flex-wrap: wrap;align-items: center;justify-content: flex-end;gap: var(--space-3);padding: var(--space-4) var(--space-5);border-top: 1px solid var(--color-border);}.modal.is-loading .modal__body{opacity: 0.6;pointer-events: none;}body.modal-open{overflow: hidden;}@media (max-width: 767px){.modal{--modal-pad: var(--space-3);}.modal__dialog{max-width: 94vw;max-height: calc(100vh - var(--modal-pad) * 2);}.modal__header,.modal__body,.modal__footer{padding-inline: var(--space-4);}} .toast-stack{position: fixed;top: var(--space-5);right: var(--space-5);z-index: var(--z-toast);display: flex;flex-direction: column;gap: var(--space-2);max-width: min(360px,90vw);pointer-events: none;}.toast{display: flex;align-items: flex-start;gap: var(--space-2);padding: var(--space-3) var(--space-4);background-color: var(--color-surface);border: 1px solid var(--color-border);border-left: 4px solid var(--color-brand);border-radius: var(--radius-md);box-shadow: var(--shadow-md);color: var(--color-text);font-size: var(--font-size-sm);pointer-events: auto;animation: hg-toast-in var(--duration-base) var(--easing-out);}.toast--success{border-left-color: var(--color-success);}.toast--error{border-left-color: var(--color-danger);}.toast--warning{border-left-color: var(--color-warning);}.toast.is-leaving{animation: hg-toast-out var(--duration-base) var(--easing-base) forwards;}@keyframes hg-toast-in{from{opacity: 0;transform: translateX(16px);}to{opacity: 1;transform: none;}}@keyframes hg-toast-out{to{opacity: 0;transform: translateX(16px);}}@media (max-width: 767px){.toast-stack{top: auto;bottom: var(--space-4);left: var(--space-4);right: var(--space-4);max-width: none;}} .tabs{display: flex;flex-wrap: wrap;gap: var(--space-2);margin: 0 0 var(--space-5);padding: 0;list-style: none;border-bottom: 1px solid var(--color-border);}.tabs__item{margin-bottom: -1px;}.tabs__btn{display: block;padding: var(--space-3) var(--space-4);background: transparent;border: 0;border-bottom: 2px solid transparent;color: var(--color-text-muted);font-size: var(--font-size-sm);font-weight: var(--weight-heading);cursor: pointer;transition: color var(--duration-fast) var(--easing-base),border-color var(--duration-fast) var(--easing-base);}.tabs__btn:hover{color: var(--color-primary);}.tabs__btn.is-active{color: var(--color-primary);border-bottom-color: var(--color-brand);}.tabs__panel{display: none;}.tabs__panel.is-active{display: block;animation: hg-fade-in var(--duration-base) var(--easing-base);} .accordion{display: flex;flex-direction: column;gap: var(--space-3);}.accordion__item{background-color: var(--color-surface);border: 1px solid var(--color-border);border-radius: var(--radius-md);overflow: hidden;}.accordion__head{display: flex;align-items: center;justify-content: space-between;gap: var(--space-4);width: 100%;padding: var(--space-4) var(--space-5);background: transparent;border: 0;color: var(--color-primary);font-size: var(--font-size-base);font-weight: var(--weight-heading);text-align: left;cursor: pointer;}.accordion__head:hover{background-color: var(--color-brand-soft);}.accordion__mark{flex: 0 0 auto;width: 12px;height: 12px;border-right: 2px solid var(--color-brand);border-bottom: 2px solid var(--color-brand);transform: rotate(45deg);transition: transform var(--duration-base) var(--easing-base);}.accordion__item.is-open .accordion__mark{transform: rotate(-135deg);}.accordion__panel{display: none;padding: 0 var(--space-5) var(--space-5);color: var(--color-text);font-size: var(--font-size-sm);}.accordion__item.is-open .accordion__panel{display: block;animation: hg-fade-in var(--duration-base) var(--easing-base);} .stats-bar{display: grid;gap: var(--space-4);grid-template-columns: repeat(2,minmax(0,1fr));margin: 0;padding: 0;list-style: none;}@media (min-width: 992px){.stats-bar{grid-template-columns: repeat(4,minmax(0,1fr));}}.stats-bar__item{padding: var(--space-5) var(--space-4);background-color: var(--color-surface);border: 1px solid var(--color-border);border-radius: var(--radius-lg);text-align: center;}.stats-bar__value{display: block;color: var(--color-primary);font-size: var(--font-size-2xl);font-weight: var(--weight-heading);line-height: 1.2;font-variant-numeric: tabular-nums;}.stats-bar__suffix{color: var(--color-brand-dark);font-size: var(--font-size-lg);}.stats-bar__label{display: block;margin-top: var(--space-2);color: var(--color-text-muted);font-size: var(--font-size-sm);}.stat-card{display: flex;flex-direction: column;gap: var(--space-1);padding: var(--space-4) var(--space-5);background-color: var(--color-surface);border: 1px solid var(--color-border);border-radius: var(--radius-md);}.stat-card__label{color: var(--color-text-muted);font-size: var(--font-size-xs);}.stat-card__value{color: var(--color-primary);font-size: var(--font-size-2xl);font-weight: var(--weight-heading);font-variant-numeric: tabular-nums;}.stat-card__trend{font-size: var(--font-size-xs);color: var(--color-text-muted);} .stars{display: inline-flex;align-items: center;gap: 2px;color: var(--color-brand);font-size: var(--font-size-sm);line-height: 1;}.stars__item{width: 14px;height: 14px;}.stars--empty{color: var(--color-border-strong);}.stars__value{margin-left: var(--space-1);color: var(--color-text-muted);font-size: var(--font-size-xs);} .filter-bar{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-3);padding: var(--space-4);background-color: var(--color-surface);border: 1px solid var(--color-border);border-radius: var(--radius-lg);}.filter-bar__group{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-2);}.filter-bar__label{color: var(--color-text-muted);font-size: var(--font-size-sm); white-space: nowrap;}.filter-bar__chip{display: inline-flex;align-items: center; white-space: nowrap;padding: var(--space-2) var(--space-4);background-color: var(--color-surface);border: 1px solid var(--color-border-strong);border-radius: var(--radius-pill);color: var(--color-text);font-size: var(--font-size-sm);transition: background-color var(--duration-fast) var(--easing-base),border-color var(--duration-fast) var(--easing-base),color var(--duration-fast) var(--easing-base);}.filter-bar__chip:hover{border-color: var(--color-brand);color: var(--color-primary);}.filter-bar__chip.is-active{background-color: var(--color-brand);border-color: var(--color-brand);color: var(--color-primary);font-weight: var(--weight-heading);} .filter-bar__search{display: flex;flex-wrap: wrap;flex: 1 1 100%;align-items: center;gap: var(--space-2);min-width: 0;padding-top: var(--space-2);} .filter-bar__search .field__control{flex: 1 1 0;min-width: 0;padding-block: var(--space-2);padding-inline: var(--space-4);background-color: var(--color-surface-alt);border-color: transparent;border-radius: var(--radius-pill);}.filter-bar__search .field__control::placeholder{color: var(--color-text-muted);}.filter-bar__search .field__control:hover{border-color: var(--color-brand);}.filter-bar__search .field__control:focus{border-color: var(--color-brand);box-shadow: var(--shadow-focus);} .filter-bar__search select.field__control{flex: 0 0 auto;width: auto;} .filter-bar__search .btn{flex: 0 0 auto;padding-block: var(--space-2);white-space: nowrap;} .filter-bar__search .btn--primary:hover{background-color: var(--color-brand-dark);border-color: var(--color-brand-dark);color: var(--color-primary);box-shadow: var(--shadow-sm);}.filter-bar__search .btn--primary:active{transform: translateY(1px);box-shadow: none;} .filter-bar__search .btn--ghost{background-color: transparent;border-color: var(--color-border-strong);color: var(--color-text-muted);}.filter-bar__search .btn--ghost:hover{background-color: var(--color-brand-soft);border-color: var(--color-brand);color: var(--color-brand-dark);box-shadow: none;}.filter-bar__search .btn--ghost:active{transform: translateY(1px);}@media (max-width: 767px){.filter-bar__search{flex-basis: 100%;padding-top: var(--space-1);}} .notice{padding: var(--space-4) var(--space-5);background-color: var(--color-brand-soft);border-radius: var(--radius-md);color: var(--color-text);font-size: var(--font-size-sm);}.meta-list{display: flex;flex-wrap: wrap;gap: var(--space-2) var(--space-5);margin: 0;padding: 0;list-style: none;color: var(--color-text-muted);font-size: var(--font-size-sm);}.meta-list__item{display: inline-flex;align-items: center;gap: var(--space-1);}.prose{color: var(--color-text);font-size: var(--font-size-base);line-height: var(--line-height-loose);}.prose h2{margin-top: var(--space-7);font-size: var(--font-size-xl);}.prose h3{margin-top: var(--space-6);font-size: var(--font-size-lg);}.prose ul,.prose ol{padding-left: var(--space-6);}.prose li{margin-bottom: var(--space-2);}.prose img{border-radius: var(--radius-md);}.prose table{width: 100%;border-collapse: collapse;font-size: var(--font-size-sm);}.prose th,.prose td{padding: var(--space-3);border: 1px solid var(--color-border);} .list-reset{margin: 0;padding: 0;list-style: none;}.divider{height: 1px;margin: var(--space-5) 0;background-color: var(--color-border);border: 0;} .filter-bar__summary{width: 100%;color: var(--color-text-muted);font-size: var(--font-size-sm);} .filter-bar__summary--cta{margin: var(--space-5) 0 0;} .course-grid{display: grid;align-items: stretch;gap: var(--space-5);grid-template-columns: repeat(auto-fill,minmax(280px,1fr));} .teacher-grid{display: grid;gap: var(--space-5);grid-template-columns: minmax(0,1fr);align-items: stretch;} .teacher-card{display: flex;flex-direction: column;gap: var(--space-3);min-width: 0;height: 100%;padding: var(--space-5);background-color: var(--color-surface);border: 1px solid var(--color-border);border-radius: var(--radius-lg);text-align: center;transition: transform var(--duration-base) var(--easing-base),box-shadow var(--duration-base) var(--easing-base);}.teacher-card:hover{transform: translateY(-4px);box-shadow: var(--shadow-md);}.teacher-card__photo{width: 128px;margin-inline: auto;overflow: hidden;background-color: var(--color-brand-soft);border-radius: var(--radius-lg);} .teacher-card__photo img{display: block;width: 100%;max-width: 100%;aspect-ratio: 3 / 4;object-fit: contain;object-position: center;border-radius: var(--radius-lg);}.teacher-card__name{margin: 0;font-size: var(--font-size-md);}.teacher-card__title{margin: 0;color: var(--color-brand-dark);font-size: var(--font-size-sm);font-weight: var(--weight-heading);}.teacher-card__specialty{margin: 0;color: var(--color-text-muted);font-size: var(--font-size-xs);}.teacher-card__footer{margin-top: auto;padding-top: var(--space-3);} @media (min-width: 768px){.teacher-grid{grid-template-columns: repeat(2,minmax(0,1fr));}} @media (min-width: 992px){.teacher-grid{grid-template-columns: repeat(3,minmax(0,1fr));}} .teacher-grid--home{grid-template-columns: repeat(3,minmax(0,1fr));}@media (max-width: 767px){.teacher-grid--home{gap: var(--space-2);}.teacher-grid--home .teacher-card{gap: var(--space-1);padding: var(--space-2);}.teacher-grid--home .teacher-card__photo{width: 100%;}.teacher-grid--home .teacher-card__name{font-size: var(--font-size-sm);overflow-wrap: anywhere;}.teacher-grid--home .teacher-card__title{font-size: var(--font-size-xs);overflow-wrap: anywhere;}.teacher-grid--home .teacher-card__specialty{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;font-size: 11px;line-height: 1.4;overflow-wrap: anywhere;}.teacher-grid--home .teacher-card__footer{display: flex;flex-direction: column;align-items: center;gap: var(--space-1);padding-top: var(--space-2);}.teacher-grid--home .teacher-card__footer .btn{padding: 6px 8px;line-height: 1.25;white-space: normal;}} .gallery-grid{display: grid;gap: var(--space-4);grid-template-columns: repeat(2,minmax(0,1fr));}@media (min-width: 768px){.gallery-grid{grid-template-columns: repeat(4,minmax(0,1fr));}}.gallery-grid__item{position: relative;display: block;overflow: hidden;aspect-ratio: 4 / 3;background-color: var(--color-brand-soft);border: 1px solid var(--color-border);border-radius: var(--radius-lg);}.gallery-grid__item img{width: 100%;height: 100%;object-fit: cover;object-position: center;transition: transform var(--duration-slow) var(--easing-base);}.gallery-grid__item:hover img,.gallery-grid__item:focus-within img{transform: scale(1.04);} .gallery-grid__zoom{position: absolute;top: var(--space-3);right: var(--space-3);display: inline-flex;align-items: center;justify-content: center;width: 34px;height: 34px;background-color: rgba(24,51,88,0.62);color: var(--color-text-inverse);border: 1px solid rgba(255,255,255,0.35);border-radius: var(--radius-circle);-webkit-backdrop-filter: blur(2px);backdrop-filter: blur(2px);opacity: 0.82;transition: opacity var(--duration-fast) var(--easing-base),transform var(--duration-base) var(--easing-base),background-color var(--duration-fast) var(--easing-base);}.gallery-grid__item:hover .gallery-grid__zoom,.gallery-grid__item:focus-within .gallery-grid__zoom{opacity: 1;transform: scale(1.08);background-color: rgba(24,51,88,0.84);}.gallery-grid__caption{position: absolute;inset: auto 0 0;padding: var(--space-3) var(--space-4);background: linear-gradient(180deg,rgba(24,51,88,0) 0%,rgba(24,51,88,0.78) 100%);color: var(--color-text-inverse);font-size: var(--font-size-xs);}.gallery-grid__caption strong{display: block;font-size: var(--font-size-sm);font-weight: var(--weight-heading);}.gallery-grid__caption span{display: block;margin-top: var(--space-1);opacity: 0.85;} .booking-fab{ --fab-size: 52px; --fab-icon: 100%;--fab-icon-scale: 1.06;--fab-offset-bottom: 80px;--fab-bob-duration: 3.2s;--fab-blink-duration: 4.5s;--fab-swim-duration: 6s;--fab-drag-margin: var(--space-2);--fab-chip-shift: -4px;position: fixed;left: var(--space-4);bottom: calc(var(--fab-offset-bottom) + env(safe-area-inset-bottom));z-index: var(--z-sticky);display: block;width: var(--fab-size);height: var(--fab-size);padding: 0;border: 2px solid var(--color-primary);border-radius: var(--radius-circle);background-color: var(--color-surface);box-shadow: var(--shadow-lg),0 0 0 1px var(--fab-ring);cursor: pointer; touch-action: none;user-select: none;-webkit-user-select: none; -webkit-user-drag: none; -webkit-touch-callout: none;transition: transform var(--duration-base) var(--easing-out),box-shadow var(--duration-base) var(--easing-out),background-color var(--duration-base) var(--easing-base),border-color var(--duration-base) var(--easing-base);} .booking-fab::after{content: "";position: absolute;inset: -6px;border-radius: var(--radius-circle);} .booking-fab__inner,.booking-fab__icon{pointer-events: none;} .booking-fab.is-dragging,.booking-fab.is-dragging:active{transition: none;transform: none;cursor: grabbing;will-change: transform;box-shadow: var(--shadow-lg);}.booking-fab__inner{position: relative;display: grid;place-items: center;width: 100%;height: 100%; overflow: hidden;border-radius: var(--radius-circle);animation: hg-fab-bob var(--fab-bob-duration) var(--easing-base) infinite;}.booking-fab__halo{position: absolute;inset: 0;border-radius: var(--radius-circle);background-color: var(--fab-halo);opacity: 0;transition: opacity var(--duration-base) var(--easing-base);}.booking-fab__icon{position: relative;display: block;width: var(--fab-icon);height: var(--fab-icon);border-radius: var(--radius-circle); object-fit: contain;object-position: center;transform: scale(var(--fab-icon-scale));background-color: var(--color-surface); -webkit-user-drag: none;} .booking-fab__chip{position: absolute;top: 50%;left: calc(100% + var(--space-2));padding: 4px var(--space-3);border-radius: var(--radius-pill);background-color: var(--color-brand);color: var(--color-text-inverse);font-size: var(--font-size-xs);font-weight: var(--weight-heading);line-height: 1.4;white-space: nowrap;box-shadow: var(--shadow-sm);pointer-events: none;transform: translateY(-50%) rotate(-6deg);transition: opacity var(--duration-base) var(--easing-base),transform var(--duration-base) var(--easing-out);} .booking-fab.is-flipped{--fab-chip-shift: 4px;}.booking-fab.is-flipped .booking-fab__chip{left: auto;right: calc(100% + var(--space-2));} .booking-fab__stop-a{stop-color: var(--color-primary-soft);}.booking-fab__stop-b{stop-color: var(--color-primary);}.booking-fab__limb,.booking-fab__head,.booking-fab__fish-eye{fill: var(--color-primary);}.booking-fab__shell-ring{fill: none;stroke: var(--color-primary-soft);stroke-width: 1.6;stroke-linejoin: round;}.booking-fab__gloss{fill: none;stroke: var(--fab-ring);stroke-width: 2.4;stroke-linecap: round;}.booking-fab__eye{fill: var(--color-surface);}.booking-fab__smile{fill: none;stroke: var(--color-surface);stroke-width: 1.1;stroke-linecap: round;}.booking-fab__blush,.booking-fab__fish{fill: var(--color-brand);} .booking-fab__lid{fill: var(--color-primary);transform-box: fill-box;transform-origin: center;transform: scaleY(0);animation: hg-fab-blink var(--fab-blink-duration) var(--easing-base) infinite;} .booking-fab__school{transform-box: view-box;transform-origin: 20px 28px;animation: hg-fab-swim var(--fab-swim-duration) var(--easing-base) infinite;}@keyframes hg-fab-bob{0%,100%{transform: translateY(-1.5px);}50%{transform: translateY(1.5px);}}@keyframes hg-fab-blink{0%,92%,100%{transform: scaleY(0);}95%,97%{transform: scaleY(1.7);}}@keyframes hg-fab-swim{0%,100%{transform: rotate(-5deg);}50%{transform: rotate(5deg);}}@media (min-width: 768px){.booking-fab{--fab-size: 56px; --fab-offset-bottom: 96px;}.booking-fab__chip{opacity: 0;transform: translateY(-50%) rotate(-6deg) translateX(var(--fab-chip-shift));}} @media (min-width: 768px) and (hover: none){.booking-fab__chip{opacity: 1;transform: translateY(-50%) rotate(-6deg);}}@media (min-width: 1200px){.booking-fab{--fab-size: 60px;}} @media (hover: hover){.booking-fab:hover{transform: translateY(-3px) scale(1.04);border-color: var(--color-brand-dark);background-color: var(--color-brand-soft);box-shadow: var(--shadow-lg),0 0 0 4px var(--fab-halo);}.booking-fab:hover .booking-fab__halo{opacity: 1;}.booking-fab:hover .booking-fab__chip{opacity: 1;transform: translateY(-50%) rotate(-2deg) translateX(0);} .booking-fab:hover .booking-fab__school{animation-duration: 2.4s;}} .booking-fab:active{transform: translateY(-1px) scale(0.94);box-shadow: var(--shadow-md);} .booking-fab:focus-visible{outline: none;border-color: var(--color-brand-dark);box-shadow: var(--shadow-lg),var(--shadow-focus);}.booking-fab:focus-visible .booking-fab__halo{opacity: 1;}.booking-fab:focus-visible .booking-fab__chip{opacity: 1;transform: translateY(-50%) rotate(-2deg) translateX(0);} @media (prefers-reduced-motion: reduce){.booking-fab__inner,.booking-fab__lid,.booking-fab__school{animation: none;}} .booking-form{display: grid;gap: var(--space-5);grid-template-columns: 1fr;padding: var(--space-5);background-color: var(--color-surface);border-radius: var(--radius-lg);box-shadow: var(--shadow-md);}@media (min-width: 992px){.booking-form{grid-template-columns: minmax(0,1fr) minmax(0,1fr);gap: var(--space-4) var(--space-6);padding: var(--space-7);}.booking-form__full{grid-column: 1 / -1;}}.booking-form__field{display: flex;flex-direction: column;gap: var(--space-2);min-width: 0;}.booking-form__label{color: var(--color-primary);font-size: var(--font-size-sm);font-weight: var(--weight-heading);}.booking-form__required{color: var(--color-danger);}.booking-form__input,.booking-form__select,.booking-form__textarea{width: 100%;padding: var(--space-3) var(--space-4);background-color: var(--color-surface);border: 1px solid var(--color-border-strong);border-radius: var(--radius-md);font-size: var(--font-size-base);transition: border-color var(--duration-fast) var(--easing-base),box-shadow var(--duration-fast) var(--easing-base);}.booking-form__input:focus,.booking-form__select:focus,.booking-form__textarea:focus{outline: none;border-color: var(--color-brand);box-shadow: var(--shadow-focus);}.booking-form__error{display: none;color: var(--color-danger);font-size: var(--font-size-xs);}.booking-form__field.is-error .booking-form__input,.booking-form__field.is-error .booking-form__select,.booking-form__field.is-error .booking-form__textarea{border-color: var(--color-danger);}.booking-form__field.is-error .booking-form__error{display: block;}.booking-form__hint{color: var(--color-text-muted);font-size: var(--font-size-xs);}.booking-form__consent{display: flex;align-items: flex-start;gap: var(--space-2);color: var(--color-text-muted);font-size: var(--font-size-xs);line-height: 1.6;}.booking-form__consent input{flex: 0 0 auto;width: 18px;height: 18px;margin-top: 2px;}.booking-form__consent.is-error{color: var(--color-danger);}.booking-form__submit{display: flex;flex-wrap: wrap;align-items: center;gap: var(--space-3);}.booking-form__feedback{display: none;padding: var(--space-4);border-radius: var(--radius-md);font-size: var(--font-size-sm);}.booking-form__feedback.is-success{display: block;background-color: var(--color-success-soft);color: var(--color-success);}.booking-form__feedback.is-error{display: block;background-color: var(--color-danger-soft);color: var(--color-danger);} .modal--booking .booking-form{grid-template-columns: 1fr;gap: var(--space-4);padding: 0;background-color: transparent;border-radius: 0;box-shadow: none;}