:root {
    color-scheme: light;
    --navy-950: #071324;
    --navy-900: #0b1b31;
    --navy-800: #102944;
    --navy-700: #183b60;
    --blue-600: #1f65db;
    --blue-500: #357fe9;
    --gold-500: #d8a84e;
    --gold-400: #e9c477;
    --gold-200: #f3e3ba;
    --ink: #132237;
    --muted: #697689;
    --line: #dbe2ea;
    --soft: #f4f7fb;
    --panel: #ffffff;
    --shadow-sm: 0 8px 24px rgba(9, 28, 52, .08);
    --shadow-md: 0 20px 55px rgba(7, 22, 42, .14);
    --shadow-lg: 0 32px 80px rgba(4, 18, 38, .25);
    font-family: "Noto Sans JP", "Yu Gothic UI", "Noto Sans SC", Meiryo, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; min-height: 100%; background: #edf2f7; color: var(--ink); }
body { min-width: 320px; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }
[hidden] { display: none !important; }

.luxury-shell { min-height: 100vh; background: linear-gradient(180deg, #f8fafc 0, #edf2f7 42%, #f7f9fc 100%); }
.luxury-header {
    min-height: 82px;
    padding: 0 28px;
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto minmax(300px, 1fr);
    align-items: center;
    gap: 22px;
    color: #fff;
    background: rgba(7, 19, 36, .97);
    border-bottom: 1px solid rgba(233, 196, 119, .32);
    position: sticky;
    top: 0;
    z-index: 80;
    box-shadow: 0 10px 35px rgba(1, 10, 23, .22);
    backdrop-filter: blur(18px);
}
.luxury-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; min-width: 0; }
.luxury-brand-logo {
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    object-fit: contain;
    filter: drop-shadow(0 8px 16px rgba(210, 157, 54, .28));
}
.luxury-brand-copy { display: grid; gap: 2px; min-width: 0; }
.luxury-brand-copy strong { font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.luxury-brand-copy small { font-size: 10px; letter-spacing: .11em; color: rgba(255,255,255,.68); }
.desktop-navigation { height: 82px; display: flex; align-items: stretch; }
.desktop-navigation a {
    min-width: 92px;
    padding: 13px 15px 9px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 1px;
    text-decoration: none;
    border-left: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.9);
    transition: background .2s ease, color .2s ease;
}
.desktop-navigation a:last-child { border-right: 1px solid rgba(255,255,255,.08); }
.desktop-navigation a:hover { background: rgba(255,255,255,.07); color: var(--gold-400); }
.desktop-navigation span { color: var(--gold-400); font-size: 18px; }
.desktop-navigation strong { font-size: 13px; font-weight: 650; }
.desktop-navigation small { font-size: 8px; letter-spacing: .08em; color: var(--gold-400); }
.luxury-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.luxury-header-actions form { margin: 0; }
.language-switch { display: flex; align-items: center; gap: 3px; padding: 4px; border-radius: 999px; }
.language-switch a { text-decoration: none; }
.luxury-language { border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.06); }
.luxury-language a { padding: 8px 10px; border-radius: 999px; color: rgba(255,255,255,.62); font-size: 12px; }
.luxury-language a.active { color: #fff; background: rgba(255,255,255,.13); }
.gold-outline-button {
    min-height: 42px;
    padding: 0 19px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gold-500);
    border-radius: 10px;
    background: transparent;
    color: var(--gold-400);
    text-decoration: none;
    font-weight: 700;
}
.gold-outline-button:hover { background: rgba(216,168,78,.12); }

.luxury-hero {
    min-height: 650px;
    padding: 28px 36px 34px;
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(330px, .9fr) minmax(320px, .75fr) minmax(410px, .95fr);
    gap: 22px;
    overflow: hidden;
    background:
        linear-gradient(90deg, rgba(4,15,29,.94) 0%, rgba(4,15,29,.74) 24%, rgba(5,17,33,.08) 54%, rgba(4,15,29,.64) 100%),
        url('/images/luxury/lobby-center.webp') center 44% / cover no-repeat;
    box-shadow: inset 0 -1px rgba(255,255,255,.12);
}
.luxury-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: radial-gradient(circle at 51% 35%, rgba(52,130,238,.18), transparent 36%), linear-gradient(180deg, rgba(5,16,32,.04), rgba(5,16,32,.48));
}
.hero-ambient {
    position: absolute;
    inset: auto 24% -120px;
    height: 250px;
    background: radial-gradient(ellipse, rgba(50,127,233,.28), transparent 70%);
    filter: blur(18px);
    pointer-events: none;
}
.hero-center-welcome {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: clamp(38px, 6vh, 68px);
    width: clamp(255px, 18vw, 350px);
    transform: translateX(-50%);
    display: grid;
    justify-items: center;
    gap: 10px;
    padding: 18px 18px 20px;
    color: #fff;
    text-align: center;
    pointer-events: none;
    text-shadow: 0 5px 18px rgba(0,0,0,.42);
}
.hero-center-welcome > span {
    color: var(--gold-400);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .26em;
}
.hero-center-welcome > strong {
    max-width: 330px;
    font-family: "Yu Mincho", "Hiragino Mincho ProN", serif;
    font-size: clamp(22px, 2vw, 31px);
    line-height: 1.45;
    font-weight: 650;
    letter-spacing: .025em;
}
.hero-center-welcome > small {
    max-width: 310px;
    color: rgba(255,255,255,.78);
    font-size: 11px;
    line-height: 1.7;
}
.hero-center-welcome > b {
    margin-top: 4px;
    color: var(--gold-400);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .18em;
}
.hero-copy { align-self: center; color: #fff; position: relative; z-index: 2; max-width: 520px; }
.hero-kicker { margin: 0 0 18px; color: var(--gold-400); letter-spacing: .15em; font-size: 11px; font-weight: 800; }
.hero-copy h1 { margin: 0; display: grid; gap: 2px; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(38px, 4vw, 67px); line-height: 1.18; font-weight: 600; letter-spacing: .02em; text-shadow: 0 6px 25px rgba(0,0,0,.34); }
.hero-copy h1 span:first-child { color: #f0d8a0; }
.hero-copy h1 span:last-child { color: #fff; }
.hero-lead { max-width: 480px; margin: 21px 0 0; color: rgba(255,255,255,.8); font-size: 15px; line-height: 1.9; }
.hero-benefits { margin: 28px 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.hero-benefits li { display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.93); font-size: 14px; }
.hero-benefits li span { width: 28px; height: 28px; display: grid; place-items: center; color: var(--gold-400); border: 1px solid rgba(233,196,119,.4); border-radius: 50%; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.gold-primary-button, .glass-button {
    min-height: 52px;
    padding: 0 23px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    text-decoration: none;
    font-weight: 750;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.gold-primary-button { border: 1px solid #ebcf8d; background: linear-gradient(135deg, #c58e31, #e3bd69); color: #fff; box-shadow: 0 14px 30px rgba(196,139,40,.28); }
.gold-primary-button:hover, .glass-button:hover { transform: translateY(-2px); }
.glass-button { border: 1px solid rgba(255,255,255,.23); background: rgba(255,255,255,.1); color: #fff; backdrop-filter: blur(12px); }
.visitor-pill { margin-top: 27px; width: fit-content; min-height: 58px; padding: 10px 14px; display: flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.16); border-radius: 12px; background: rgba(6,22,42,.68); box-shadow: 0 12px 35px rgba(0,0,0,.2); backdrop-filter: blur(12px); }
.online-dot { width: 9px; height: 9px; border-radius: 50%; background: #54dfa2; box-shadow: 0 0 0 5px rgba(84,223,162,.12), 0 0 15px rgba(84,223,162,.65); }
.visitor-pill span:not(.online-dot):not(.visitor-avatars) { color: rgba(255,255,255,.72); font-size: 12px; }
.visitor-pill strong { font-size: 24px; }
.visitor-avatars { display: flex; margin-left: 6px; }
.visitor-avatars i { width: 30px; height: 30px; margin-left: -7px; display: grid; place-items: center; border: 2px solid #132944; border-radius: 50%; background: linear-gradient(145deg, #e6d6c4, #7f9ab7); color: #10233c; font-size: 10px; font-style: normal; font-weight: 800; }
.visitor-avatars i:last-child { width: 42px; border-radius: 16px; background: #223b58; color: #fff; }
.hero-center-mark { align-self: center; justify-self: center; width: 200px; height: 320px; display: grid; align-content: center; justify-items: center; gap: 18px; color: #fff; text-align: center; border: 1px solid rgba(80,168,255,.36); background: linear-gradient(180deg, rgba(4,56,113,.18), rgba(4,34,72,.58)); box-shadow: inset 0 0 50px rgba(34,131,255,.18), 0 0 70px rgba(30,112,225,.18); backdrop-filter: blur(5px); }
.hero-center-mark > span { width: 90px; height: 90px; display: grid; place-items: center; border: 2px solid #7fcbff; border-radius: 20px; font-size: 28px; font-weight: 800; box-shadow: inset 0 0 25px rgba(72,169,255,.35), 0 0 26px rgba(64,158,255,.45); }
.hero-center-mark small { font-size: 11px; line-height: 1.6; letter-spacing: .07em; }
.hero-side-stack { display: grid; align-content: center; gap: 14px; min-width: 0; }
.floor-guide-card, .service-menu-card, .concierge-card, .home-panel { border: 1px solid rgba(255,255,255,.62); border-radius: 16px; background: rgba(255,255,255,.94); box-shadow: var(--shadow-lg); backdrop-filter: blur(18px); }
.floor-guide-card { padding: 14px; }
.floor-guide-card > header, .concierge-card-header, .home-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.floor-guide-card > header { padding: 0 2px 11px; }
.floor-guide-card h2, .home-panel h2 { margin: 0; font-size: 18px; }
.floor-guide-card > header span { font-size: 10px; letter-spacing: .12em; color: var(--gold-500); font-weight: 800; }
.hero-floor-list { display: grid; gap: 6px; }
.hero-floor-button {
    min-height: 70px;
    padding: 0;
    display: grid;
    grid-template-columns: 55px minmax(0, 1fr) 92px 18px;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid #e5e9ef;
    border-radius: 10px;
    background: #fff;
    text-align: left;
    color: var(--ink);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.hero-floor-button:hover { transform: translateX(-3px); border-color: var(--gold-400); box-shadow: 0 10px 24px rgba(13,36,67,.12); }
.hero-floor-button > strong { min-height: 70px; display: flex; align-items: center; justify-content: center; gap: 2px; color: #fff; font-size: 25px; }
.hero-floor-button > strong span { font-size: 13px; }
.floor-tone-1 > strong { background: #d37659; }
.floor-tone-2 > strong { background: #8268b5; }
.floor-tone-3 > strong { background: #4d80be; }
.floor-tone-4 > strong { background: #3c9699; }
.floor-tone-5 > strong { background: #c89a45; }
.hero-floor-copy { padding: 11px 12px; display: grid; align-content: center; gap: 3px; min-width: 0; }
.hero-floor-copy b { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hero-floor-copy small { font-size: 10px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hero-floor-button img { width: 92px; height: 70px; object-fit: cover; }
.hero-floor-arrow { display: grid; place-items: center; color: var(--gold-500); font-size: 24px; }
.concierge-card { padding: 14px; }
.concierge-card-header { padding-bottom: 10px; }
.concierge-card-header strong { font-size: 16px; }
.concierge-card-header span { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; }
.concierge-card-header i { width: 7px; height: 7px; border-radius: 50%; background: #41c889; box-shadow: 0 0 0 4px rgba(65,200,137,.12); }
.concierge-intro { display: grid; grid-template-columns: 78px 1fr; gap: 12px; align-items: center; padding: 10px; border-radius: 12px; background: #f2f5f8; }
.concierge-intro img { width: 78px; height: 82px; border-radius: 10px; object-fit: cover; object-position: top; }
.concierge-intro p { margin: 0; color: #334158; font-size: 12px; line-height: 1.75; }
.concierge-quick-actions { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0; }
.concierge-quick-actions button { padding: 7px 9px; border: 1px solid #e1e6ed; border-radius: 999px; background: #fff; color: #435169; font-size: 10px; }
.concierge-quick-actions button:hover { border-color: var(--blue-500); color: var(--blue-600); }
.hero-ai-composer { display: grid; grid-template-columns: 1fr 42px; gap: 7px; }
.hero-ai-composer input { min-width: 0; height: 42px; padding: 0 13px; border: 1px solid #dfe5ec; border-radius: 10px; background: #f8fafc; outline: none; }
.hero-ai-composer input:focus { border-color: var(--blue-500); box-shadow: 0 0 0 3px rgba(53,127,233,.12); }
.hero-ai-composer button { border: 0; border-radius: 10px; background: var(--navy-900); color: #fff; }

.home-information-grid { max-width: 1480px; margin: -1px auto 0; padding: 22px 28px; display: grid; grid-template-columns: .78fr 1.22fr; gap: 18px; }
.home-panel { padding: 18px; box-shadow: var(--shadow-sm); border-color: #e1e7ef; }
.home-panel-header { padding-bottom: 13px; border-bottom: 1px solid #e6ebf1; }
.home-panel-header a { color: var(--blue-600); text-decoration: none; font-size: 12px; font-weight: 700; }
.announcement-list { display: grid; }
.announcement-list a { min-height: 47px; display: grid; grid-template-columns: 70px minmax(0,1fr) auto; gap: 12px; align-items: center; text-decoration: none; border-bottom: 1px solid #edf0f4; }
.announcement-list a:last-child { border-bottom: 0; }
.announcement-list strong { font-size: 12px; font-weight: 650; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.announcement-list time { font-size: 10px; color: var(--muted); }
.announcement-type { padding: 5px 7px; border-radius: 5px; font-size: 9px; text-align: center; }
.type-news { background: #e6f0ff; color: #3474ca; }
.type-event { background: #e8f5e9; color: #4d9856; }
.type-tenant { background: #fff0e5; color: #b66c3b; }
.future-company { --company-accent: #bf8f34; }
.business-metrics { padding: 21px max(28px, calc((100vw - 1420px)/2)); display: grid; grid-template-columns: repeat(5, 1fr); color: #fff; background: linear-gradient(90deg, #09182b, #102b47 52%, #09182b); border-top: 1px solid rgba(233,196,119,.3); border-bottom: 1px solid rgba(233,196,119,.22); }
.business-metrics article { padding: 0 28px; display: flex; align-items: center; justify-content: center; gap: 14px; border-right: 1px solid rgba(255,255,255,.12); }
.business-metrics article:last-child { border-right: 0; }
.business-metrics article > span { color: var(--gold-400); font-size: 32px; }
.business-metrics div { display: grid; gap: 2px; }
.business-metrics small { color: rgba(255,255,255,.72); font-size: 11px; }
.business-metrics strong { font-size: 24px; }
.business-metrics em { margin-left: 4px; font-size: 11px; font-style: normal; font-weight: 500; }

.tower-experience-section { max-width: 1580px; margin: 0 auto; padding: 70px 24px 46px; }
.section-introduction { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.section-kicker, .eyebrow { color: var(--blue-600); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.section-introduction h2 { margin: 8px 0 10px; font-size: clamp(28px, 3.2vw, 44px); }
.section-introduction p { margin: 0; color: var(--muted); line-height: 1.8; }
.tower-main { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 18px; }
.scene-column { min-width: 0; }
.scene-toolbar { min-height: 90px; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid #dfe5ec; border-radius: 16px 16px 0 0; background: #fff; }
.scene-toolbar h2 { margin: 3px 0 4px; font-size: 25px; }
.scene-toolbar p { margin: 0; color: var(--muted); font-size: 12px; }
.toolbar-buttons { display: flex; align-items: center; gap: 8px; }
.soft-button, .icon-button, .primary-button { border-radius: 9px; font-weight: 700; text-decoration: none; }
.soft-button { min-height: 40px; padding: 0 14px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #d9e1eb; background: #fff; color: #26364b; }
.icon-button { width: 40px; height: 40px; border: 1px solid #d9e1eb; background: #fff; color: var(--blue-600); }
.primary-button { min-height: 40px; padding: 0 15px; display: inline-flex; align-items: center; justify-content: center; border: 0; background: linear-gradient(145deg, #2d6de3, #194ba9); color: #fff; box-shadow: 0 8px 18px rgba(31,101,219,.2); }
.scene-stage { position: relative; min-height: 610px; overflow: hidden; border: 1px solid #dfe5ec; border-top: 0; border-radius: 0 0 16px 16px; background: #e8f0f7; }
#tower-canvas { width: 100%; height: 100%; min-height: 610px; display: block; }
.loading-panel, .scene-error { position: absolute; inset: 0; z-index: 15; display: grid; place-content: center; justify-items: center; gap: 10px; background: rgba(235,243,250,.94); color: var(--ink); text-align: center; }
.loading-logo { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 16px; color: #fff; font-weight: 800; background: linear-gradient(145deg, #2d6df6, #173f9e); box-shadow: 0 12px 30px rgba(36,87,214,.25); }
.scene-error p { margin: 0 0 6px; color: var(--muted); }
.scene-hint { position: absolute; left: 16px; bottom: 16px; z-index: 8; padding: 10px 13px; border-radius: 9px; color: #fff; background: rgba(12,29,51,.78); font-size: 11px; backdrop-filter: blur(8px); }
.online-pill { position: absolute; left: 16px; top: 16px; z-index: 8; min-height: 36px; padding: 0 12px; display: flex; align-items: center; gap: 8px; border-radius: 999px; background: rgba(255,255,255,.88); box-shadow: var(--shadow-sm); font-size: 11px; }
.elevator-panel { position: absolute; right: 16px; top: 16px; z-index: 8; width: 70px; padding: 10px 8px; display: grid; gap: 7px; border-radius: 16px; color: #fff; background: rgba(13,29,49,.86); box-shadow: 0 16px 30px rgba(5,15,28,.26); backdrop-filter: blur(9px); }
.elevator-panel > span { font-size: 7px; letter-spacing: .1em; text-align: center; color: rgba(255,255,255,.65); }
.scene-floor-button { height: 40px; border: 1px solid rgba(255,255,255,.14); border-radius: 9px; background: rgba(255,255,255,.09); color: #fff; font-size: 11px; font-weight: 800; }
.scene-floor-button.active { background: #fff; color: #1a4fae; }
.directory-2d { min-height: 610px; padding: 20px; border: 1px solid #dfe5ec; border-top: 0; border-radius: 0 0 16px 16px; background: #f6f9fc; }
.directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.company-card { padding: 18px; border: 1px solid #dfe5ec; border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); }
.company-code { color: var(--company-accent); font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.company-card h2 { margin: 10px 0 8px; font-size: 19px; }
.company-card p { min-height: 45px; margin: 0 0 14px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.control-column { display: grid; gap: 16px; align-content: start; }
.panel { padding: 18px; border: 1px solid #dfe5ec; border-radius: 16px; background: #fff; box-shadow: var(--shadow-sm); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.panel-heading h2 { margin: 4px 0 0; font-size: 20px; }
.count-badge, .ai-status { min-width: 30px; height: 30px; padding: 0 8px; display: grid; place-items: center; border-radius: 999px; background: #eef4ff; color: var(--blue-600); font-size: 11px; font-weight: 800; }
.search-box { min-height: 42px; margin: 15px 0 11px; padding: 0 12px; display: grid; grid-template-columns: 20px 1fr; align-items: center; border: 1px solid #dfe5ec; border-radius: 10px; background: #f8fafc; }
.search-box input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; }
.company-list { display: grid; gap: 8px; }
.company-list-item { min-height: 62px; padding: 8px 10px; display: grid; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; border: 0; border-radius: 11px; background: #f7f9fc; color: var(--ink); text-align: left; }
.company-list-item:hover { background: #edf3fb; }
.company-avatar { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 10px; background: var(--company-accent); color: #fff; font-weight: 800; }
.company-list-item > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.company-list-item strong, .company-list-item small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.company-list-item strong { font-size: 12px; }
.company-list-item small { color: var(--muted); font-size: 9px; }
.ai-panel { min-height: 330px; display: grid; grid-template-rows: auto 1fr auto auto; }
.ai-messages { min-height: 155px; max-height: 240px; margin: 14px 0; overflow: auto; display: grid; align-content: start; gap: 8px; }
.message { width: fit-content; max-width: 88%; padding: 10px 12px; border-radius: 12px; font-size: 11px; line-height: 1.6; }
.assistant-message { background: #eef3f8; color: #344258; }
.user-message { margin-left: auto; background: #245fca; color: #fff; }
.ai-composer { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.ai-composer textarea { min-width: 0; resize: none; padding: 10px 12px; border: 1px solid #dfe5ec; border-radius: 10px; outline: none; }
.demo-note { margin-top: 9px; color: #8b95a4; font-size: 8px; line-height: 1.4; }

.luxury-footer { min-height: 90px; padding: 20px 36px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: rgba(255,255,255,.7); background: #071324; border-top: 1px solid rgba(233,196,119,.22); }
.luxury-footer > div { display: grid; gap: 4px; }
.luxury-footer strong { color: #fff; font-size: 12px; letter-spacing: .08em; }
.luxury-footer small { font-size: 9px; }
.luxury-footer nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 24px; }
.luxury-footer a { text-decoration: none; font-size: 10px; }
.luxury-footer a:hover { color: var(--gold-400); }

.app-modal-backdrop { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px; background: rgba(4,14,28,.62); backdrop-filter: blur(10px); }
.company-modal { width: min(560px, 100%); padding: 30px; position: relative; border-radius: 18px; background: #fff; box-shadow: var(--shadow-lg); }
.company-modal h2 { margin: 8px 0 10px; font-size: 28px; }
.company-modal p { color: var(--muted); line-height: 1.75; }
.modal-close { position: absolute; right: 14px; top: 14px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #eef2f6; color: #334158; font-size: 20px; }
.modal-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }

.simple-page { min-height: 100vh; padding: 30px 18px; display: grid; place-items: center; background: radial-gradient(circle at 20% 10%, #eef5ff, transparent 34%), #f4f7fb; }
.auth-card { width: min(460px, 100%); padding: 30px; border: 1px solid #dfe5ec; border-radius: 18px; background: #fff; box-shadow: var(--shadow-md); }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.brand-logo { width: 48px; height: 48px; object-fit: contain; filter: drop-shadow(0 7px 14px rgba(202,151,51,.24)); }
.brand > span:last-child { display: grid; gap: 2px; }
.brand small { color: var(--muted); font-size: 10px; }
.auth-card h1 { margin: 24px 0 18px; }
.auth-card form { display: grid; gap: 14px; }
.auth-card label:not(.checkbox-row) { display: grid; gap: 6px; color: #344258; font-size: 12px; font-weight: 700; }
.auth-card input:not([type="checkbox"]) { width: 100%; min-height: 44px; padding: 0 12px; border: 1px solid #d9e1eb; border-radius: 9px; }
.checkbox-row { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.full-button { width: 100%; }
.auth-footer, .demo-login { color: var(--muted); font-size: 11px; }
.demo-login { margin-top: 18px; padding: 12px; display: grid; gap: 5px; border-radius: 10px; background: #f3f6fa; }
.demo-login code { white-space: normal; }
.validation { color: #c0392b; font-size: 11px; }
.admin-page { min-height: 100vh; padding: 30px; background: #f4f7fb; }
.admin-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.admin-header h1 { margin: 6px 0; }
.admin-header p { color: var(--muted); }
.admin-metrics { margin: 24px 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.admin-metrics article { padding: 20px; display: grid; gap: 7px; border: 1px solid #dfe5ec; border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); }
.admin-metrics span { color: var(--muted); font-size: 11px; }
.admin-metrics strong { font-size: 28px; }
.admin-table { padding: 22px; border: 1px solid #dfe5ec; border-radius: 14px; background: #fff; }
.admin-table table { width: 100%; border-collapse: collapse; }
.admin-table th, .admin-table td { padding: 12px; border-bottom: 1px solid #edf0f4; text-align: left; font-size: 12px; }
.status-chip { padding: 5px 8px; border-radius: 999px; background: #e8f6ec; color: #39804c; }
.muted { color: var(--muted); }

@media (max-width: 1260px) {
    .luxury-header { grid-template-columns: minmax(240px,1fr) auto; }
    .desktop-navigation { display: none; }
    .luxury-hero { grid-template-columns: minmax(320px,.9fr) minmax(180px,.45fr) minmax(380px,1fr); padding-inline: 24px; }
    .hero-center-mark { width: 150px; }
}

@media (max-width: 980px) {
    .hero-center-welcome { display: none; }
    .luxury-header { padding: 14px 18px; grid-template-columns: 1fr; }
    .luxury-header-actions { justify-content: space-between; }
    .luxury-brand { justify-self: center; }
    .luxury-brand-logo { width: 50px; height: 50px; flex-basis: 50px; }
    .luxury-hero { grid-template-columns: 1fr; min-height: auto; padding: 44px 20px; background-position: 44% center; }
    .luxury-hero::before { background: linear-gradient(180deg, rgba(4,15,29,.9), rgba(4,15,29,.66)); }
    .hero-copy { max-width: 760px; justify-self: center; text-align: center; }
    .hero-lead { margin-inline: auto; }
    .hero-benefits { justify-items: center; }
    .hero-actions { justify-content: center; }
    .visitor-pill { margin-inline: auto; }
    .hero-center-mark { display: none; }
    .hero-side-stack { width: min(700px, 100%); justify-self: center; }
    .home-information-grid { grid-template-columns: 1fr; }
    .business-metrics { grid-template-columns: repeat(2, 1fr); gap: 18px 0; }
    .business-metrics article:nth-child(2), .business-metrics article:nth-child(4) { border-right: 0; }
    .tower-main { grid-template-columns: 1fr; }
    .control-column { grid-template-columns: repeat(2, 1fr); }
    .scene-stage, #tower-canvas, .directory-2d { min-height: 520px; }
}

@media (max-width: 680px) {
    .luxury-header-actions { flex-wrap: wrap; justify-content: center; }
    .luxury-brand-copy strong { font-size: 14px; }
    .luxury-language { order: 3; width: 100%; justify-content: center; }
    .luxury-hero { padding: 36px 14px; }
    .hero-copy h1 { font-size: 38px; }
    .hero-benefits { justify-items: start; text-align: left; }
    .hero-actions { display: grid; }
    .gold-primary-button, .glass-button { width: 100%; }
    .visitor-pill { max-width: 100%; }
    .visitor-avatars { display: none; }
    .hero-floor-button { grid-template-columns: 48px minmax(0,1fr) 18px; }
    .hero-floor-button img { display: none; }
    .hero-floor-button > strong { min-height: 64px; }
    .home-information-grid { padding: 16px 12px; }
    .announcement-list a { grid-template-columns: 62px 1fr; }
    .announcement-list time { display: none; }
    .business-metrics { grid-template-columns: 1fr; padding: 22px 16px; }
    .business-metrics article { justify-content: flex-start; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.1); padding: 12px 22px; }
    .business-metrics article:last-child { border-bottom: 0; }
    .tower-experience-section { padding: 50px 12px 32px; }
    .scene-toolbar { align-items: flex-start; flex-direction: column; }
    .toolbar-buttons { width: 100%; }
    .toolbar-buttons .soft-button { flex: 1; }
    .scene-stage, #tower-canvas, .directory-2d { min-height: 430px; }
    .elevator-panel { width: 58px; }
    .scene-floor-button { height: 34px; }
    .directory-grid, .control-column { grid-template-columns: 1fr; }
    .luxury-footer { flex-direction: column; align-items: flex-start; }
    .luxury-footer nav { justify-content: flex-start; gap: 12px 18px; }
    .admin-metrics { grid-template-columns: 1fr 1fr; }
    .admin-header { align-items: flex-start; flex-direction: column; }
}

/* ========================================================================== 
   V0.2.2: high-resolution hero, Japanese-only header label and delayed panels
   ========================================================================== */
.luxury-hero {
    min-height: clamp(680px, calc(100vh - 82px), 920px);
    grid-template-columns: minmax(340px, 500px) minmax(410px, 520px);
    justify-content: space-between;
    gap: clamp(80px, 18vw, 560px);
    background-color: #030a15;
    background-image: url('/images/luxury/lobby-hero-towa-vt.png');
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
}
.luxury-hero::before {
    background:
        linear-gradient(90deg, rgba(2,9,18,.38) 0%, rgba(2,9,18,.04) 31%, rgba(2,9,18,0) 67%, rgba(2,9,18,.22) 100%),
        linear-gradient(180deg, rgba(2,8,17,.02) 56%, rgba(2,8,17,.38) 100%);
}
.hero-ambient { opacity: .35; }
.hero-center-mark { display: none; }

/* The lobby image is decoded first. Two seconds later JavaScript adds
   .hero-panels-visible and the two sides enter from opposite directions. */
.hero-reveal-left,
.hero-reveal-right {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    will-change: transform, opacity;
}
.hero-reveal-left { transform: translate3d(-92px, 0, 0); }
.hero-reveal-right { transform: translate3d(92px, 0, 0); }
.luxury-hero.hero-panels-visible .hero-reveal-left {
    animation: hero-panel-in-left .9s cubic-bezier(.2,.75,.2,1) forwards;
}
.luxury-hero.hero-panels-visible .hero-reveal-right {
    animation: hero-panel-in-right .9s cubic-bezier(.2,.75,.2,1) .12s forwards;
}
@keyframes hero-panel-in-left {
    0% { opacity: 0; visibility: hidden; pointer-events: none; transform: translate3d(-92px,0,0); }
    1% { visibility: visible; }
    100% { opacity: 1; visibility: visible; pointer-events: auto; transform: translate3d(0,0,0); }
}
@keyframes hero-panel-in-right {
    0% { opacity: 0; visibility: hidden; pointer-events: none; transform: translate3d(92px,0,0); }
    1% { visibility: visible; }
    100% { opacity: 1; visibility: visible; pointer-events: auto; transform: translate3d(0,0,0); }
}

/* One visible language, no country flag. */
.luxury-language { padding: 3px; }
.luxury-language a { min-width: 78px; text-align: center; color: #fff; }

/* Featured companies are intentionally removed in this release. */
.home-information-grid-single {
    grid-template-columns: minmax(0, 1fr);
    max-width: 960px;
}

@media (max-width: 1180px) {
    .luxury-hero {
        grid-template-columns: minmax(310px, 440px) minmax(380px, 480px);
        gap: clamp(30px, 8vw, 150px);
    }
}
@media (max-width: 980px) {
    .luxury-hero {
        grid-template-columns: 1fr;
        background-size: cover;
        background-position: center top;
    }
}
@media (prefers-reduced-motion: reduce) {
    .luxury-hero.hero-panels-visible .hero-reveal-left,
    .luxury-hero.hero-panels-visible .hero-reveal-right {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        animation: none;
    }
}

/* ========================================================================== 
   V0.2.3: business service menu, dedicated pages and language dropdown
   ========================================================================== */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.language-select-wrapper {
    position: relative;
    display: inline-flex;
    align-items: center;
}
.language-select-wrapper::before {
    content: "◎";
    position: absolute;
    left: 13px;
    color: var(--gold-400);
    pointer-events: none;
    z-index: 1;
}
.language-select-wrapper select {
    min-width: 126px;
    height: 42px;
    padding: 0 38px 0 36px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 10px;
    appearance: none;
    background:
        linear-gradient(45deg, transparent 50%, rgba(255,255,255,.8) 50%) calc(100% - 17px) 18px / 6px 6px no-repeat,
        linear-gradient(135deg, rgba(255,255,255,.8) 50%, transparent 50%) calc(100% - 11px) 18px / 6px 6px no-repeat,
        rgba(255,255,255,.07);
    color: #fff;
    outline: none;
    cursor: pointer;
}
.language-select-wrapper select:focus {
    border-color: var(--gold-400);
    box-shadow: 0 0 0 3px rgba(233,196,119,.14);
}
.language-select-wrapper option { color: #111b2b; background: #fff; }

.service-menu-card {
    padding: 14px;
    color: var(--ink);
}
.service-menu-card > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 0 3px 11px;
}
.service-menu-card h2 { margin: 0; font-size: 18px; }
.service-menu-card > header span {
    color: var(--gold-500);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .11em;
}
.service-menu-list { display: grid; gap: 8px; }
.service-menu-item {
    min-height: 61px;
    display: grid;
    grid-template-columns: 50px minmax(0,1fr) 20px;
    align-items: center;
    gap: 10px;
    overflow: hidden;
    border: 1px solid #e2e8ef;
    border-radius: 11px;
    color: var(--ink);
    text-decoration: none;
    background: #fff;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.service-menu-item:hover {
    transform: translateX(-4px);
    border-color: var(--gold-400);
    box-shadow: 0 12px 26px rgba(10,31,57,.13);
}
.service-menu-icon {
    align-self: stretch;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 22px;
    background: linear-gradient(145deg,#b9852f,#e0b95f);
}
.service-tone-green .service-menu-icon { background: linear-gradient(145deg,#158b7e,#42bca8); }
.service-tone-purple .service-menu-icon { background: linear-gradient(145deg,#6950aa,#9776d2); }
.service-tone-orange .service-menu-icon { background: linear-gradient(145deg,#c66b22,#ec9a45); }
.service-tone-blue .service-menu-icon { background: linear-gradient(145deg,#1e66b2,#389bd1); }
.service-menu-copy { min-width: 0; display: grid; gap: 3px; }
.service-menu-copy strong { font-size: 13px; }
.service-menu-copy small {
    color: var(--muted);
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.service-menu-arrow { color: var(--gold-500); font-size: 22px; }

.concierge-intro img {
    image-rendering: auto;
    filter: contrast(1.04) saturate(1.02);
}

.portal-shell { background: #071324; }
.portal-main {
    min-height: calc(100vh - 82px);
    padding: clamp(34px, 6vw, 90px) clamp(18px, 6vw, 110px);
    display: grid;
    align-items: center;
    background:
        linear-gradient(90deg, rgba(5,15,29,.94), rgba(5,15,29,.55) 52%, rgba(5,15,29,.86)),
        url('/images/luxury/lobby-hero-towa-vt.png') center / cover no-repeat;
}
.portal-hero {
    width: min(1180px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: clamp(30px, 8vw, 120px);
    align-items: center;
}
.portal-copy {
    padding: clamp(26px, 4vw, 54px);
    border: 1px solid rgba(233,196,119,.24);
    border-radius: 22px;
    color: #fff;
    background: rgba(5,18,36,.82);
    box-shadow: 0 32px 90px rgba(0,0,0,.34);
    backdrop-filter: blur(18px);
}
.portal-eyebrow { color: var(--gold-400); font-size: 11px; font-weight: 800; letter-spacing: .16em; }
.portal-copy h1 { margin: 12px 0 16px; font-size: clamp(38px, 5vw, 68px); line-height: 1.12; }
.portal-copy > p { max-width: 760px; color: rgba(255,255,255,.78); line-height: 1.9; }
.portal-copy ul { margin: 28px 0; padding: 0; list-style: none; display: grid; gap: 12px; }
.portal-copy li { display: flex; align-items: center; gap: 11px; }
.portal-copy li span { width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid rgba(233,196,119,.45); border-radius: 50%; color: var(--gold-400); }
.portal-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.portal-visual {
    min-height: 390px;
    padding: 30px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 22px;
    color: #fff;
    text-align: center;
    border: 1px solid rgba(91,170,255,.38);
    border-radius: 26px;
    background: linear-gradient(180deg, rgba(17,81,154,.34), rgba(5,28,62,.76));
    box-shadow: inset 0 0 70px rgba(50,147,255,.18), 0 0 70px rgba(32,106,206,.2);
    backdrop-filter: blur(12px);
}
.portal-building-mark {
    width: 170px;
    height: 170px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(231, 190, 104, .46);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(216,168,78,.11), rgba(8,30,59,.04) 66%);
    box-shadow: inset 0 0 42px rgba(216,168,78,.12), 0 0 38px rgba(64,158,255,.22);
}
.portal-building-mark img { width: 145px; height: 145px; object-fit: contain; filter: drop-shadow(0 10px 24px rgba(0,0,0,.28)); }
.portal-visual > span { color: rgba(255,255,255,.72); font-size: 11px; letter-spacing: .14em; }

@media (max-width: 980px) {
    .portal-hero { grid-template-columns: 1fr; }
    .portal-visual { min-height: 250px; }
}
@media (max-width: 680px) {
    .language-select-wrapper { width: 100%; justify-content: center; }
    .language-select-wrapper select { width: min(260px, 100%); }
    .service-menu-card { padding: 10px; }
    .service-menu-item { grid-template-columns: 44px minmax(0,1fr) 18px; }
    .portal-main { padding: 24px 12px; }
    .portal-copy { padding: 24px 18px; }
    .portal-actions { display: grid; }
}


/* ========================================================================== 
   V0.2.4: focused lobby actions and Bootstrap reception conversation
   ========================================================================== */
.luxury-hero {
    grid-template-columns: minmax(340px, 500px) minmax(300px, 390px);
    gap: clamp(110px, 22vw, 680px);
}

.hero-reveal-center {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate3d(-50%, 28px, 0) scale(.94);
    will-change: transform, opacity;
}
.luxury-hero.hero-panels-visible .hero-reveal-center {
    animation: hero-reception-in .8s cubic-bezier(.2,.75,.2,1) .24s forwards;
}
@keyframes hero-reception-in {
    0% { opacity: 0; visibility: hidden; pointer-events: none; transform: translate3d(-50%,28px,0) scale(.94); }
    1% { visibility: visible; }
    100% { opacity: 1; visibility: visible; pointer-events: auto; transform: translate3d(-50%,0,0) scale(1); }
}

.hero-action-rail {
    position: relative;
    z-index: 4;
    align-self: center;
    justify-self: end;
    width: min(390px, 100%);
    display: grid;
    gap: 15px;
}
.hero-business-action {
    min-height: 106px;
    padding: 18px 20px;
    display: grid;
    grid-template-columns: 62px minmax(0,1fr) 24px;
    align-items: center;
    gap: 15px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 16px;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 18px 45px rgba(0,0,0,.3), inset 0 1px rgba(255,255,255,.12);
    backdrop-filter: blur(18px);
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, filter .22s ease;
}
.hero-business-action:hover {
    color: #fff;
    transform: translateX(-8px) translateY(-2px);
    border-color: rgba(244,211,139,.84);
    box-shadow: 0 24px 55px rgba(0,0,0,.36), 0 0 28px rgba(226,181,87,.2), inset 0 1px rgba(255,255,255,.2);
    filter: brightness(1.07);
}
.hero-business-icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 15px;
    background: rgba(255,255,255,.1);
    font-size: 25px;
    font-weight: 800;
}
.hero-business-action > span:nth-child(2) { min-width: 0; display: grid; gap: 5px; }
.hero-business-action strong { font-size: 21px; letter-spacing: .02em; }
.hero-business-action small { color: rgba(255,255,255,.72); font-size: 11px; line-height: 1.55; }
.hero-business-action > b { color: #f3d38d; font-size: 28px; font-weight: 400; }
.action-visit { background: linear-gradient(135deg, rgba(150,100,27,.9), rgba(207,159,65,.82)); }
.action-tenant { background: linear-gradient(135deg, rgba(17,64,143,.92), rgba(29,94,190,.82)); }
.action-other { background: linear-gradient(135deg, rgba(17,31,51,.9), rgba(38,57,83,.84)); }

.reception-trigger-wrap {
    position: absolute;
    z-index: 5;
    left: 50%;
    bottom: 7.2%;
    width: 286px;
    min-height: 104px;
    display: grid;
    place-items: center;
    border-radius: 24px;
    background: radial-gradient(ellipse, rgba(30,18,12,.96) 0%, rgba(27,16,11,.9) 56%, rgba(27,16,11,0) 73%);
}
.reception-trigger {
    width: 244px;
    min-height: 78px;
    padding: 10px 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    border: 1px solid rgba(238,197,112,.72);
    border-radius: 15px;
    background: linear-gradient(180deg, rgba(42,29,24,.98), rgba(22,16,16,.98));
    color: #fff;
    box-shadow: inset 0 1px rgba(255,255,255,.12), 0 10px 24px rgba(0,0,0,.32);
    cursor: pointer;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background .22s ease;
}
.reception-trigger:hover,
.reception-trigger:focus-visible {
    transform: translateY(-7px) scale(1.025);
    border-color: #ffe0a0;
    background: linear-gradient(180deg, rgba(70,47,29,.99), rgba(31,20,18,.99));
    box-shadow: inset 0 1px rgba(255,255,255,.2), 0 18px 40px rgba(0,0,0,.42), 0 0 30px rgba(240,190,82,.62), 0 0 0 5px rgba(238,191,91,.13);
    outline: none;
}
.reception-trigger-icon {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(244,209,135,.58);
    border-radius: 50%;
    color: #f4d287;
    font-size: 21px;
}
.reception-trigger > span:last-child { display: grid; text-align: left; }
.reception-trigger strong { font-size: 21px; letter-spacing: .08em; }
.reception-trigger small { margin-top: 1px; color: #e4bb68; font-size: 9px; letter-spacing: .14em; }

/* Bootstrap Modal is driven by the locally bundled Bootstrap JS. The visual
   layer is intentionally customized to match the tower instead of loading a
   global Bootstrap stylesheet that would alter the existing site design. */
.modal {
    position: fixed;
    inset: 0;
    z-index: 2110;
    display: none;
    overflow-x: hidden;
    overflow-y: auto;
    outline: 0;
}
.modal.show { display: block; }
.modal-dialog {
    position: relative;
    width: auto;
    margin: 1.75rem auto;
    pointer-events: none;
}
.modal-dialog-centered {
    min-height: calc(100% - 3.5rem);
    display: flex;
    align-items: center;
}
.modal-lg { max-width: 920px; }
.modal-content {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    pointer-events: auto;
    background-clip: padding-box;
    outline: 0;
}
.modal-header,
.modal-body { position: relative; }
.modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2100;
    background: rgba(2,9,18,.78);
    backdrop-filter: blur(12px);
}
.modal-backdrop.fade { opacity: 0; }
.modal-backdrop.show { opacity: 1; }
.fade { transition: opacity .18s linear; }
.fade:not(.show) { opacity: 0; }
.btn-close {
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.1);
    color: #fff;
    cursor: pointer;
}
.btn-close::before { content: "×"; display: grid; place-items: center; height: 100%; font-size: 26px; line-height: 1; }
.btn-close:hover { background: rgba(255,255,255,.18); }

.reception-modal-content {
    overflow: hidden;
    border: 1px solid rgba(101,171,255,.35);
    border-radius: 24px;
    background: #071426;
    color: #fff;
    box-shadow: 0 42px 120px rgba(0,0,0,.55), 0 0 70px rgba(28,105,210,.2);
}
.reception-modal-header {
    min-height: 92px;
    padding: 22px 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(255,255,255,.1);
    background: linear-gradient(90deg, rgba(13,45,85,.95), rgba(7,20,38,.95));
}
.reception-modal-header h2 { margin: 3px 0 0; font-size: 26px; }
.reception-modal-eyebrow { color: #e7bd66; font-size: 10px; font-weight: 800; letter-spacing: .16em; }
.reception-modal-body {
    padding: 0;
    display: grid;
    grid-template-columns: 290px minmax(0,1fr);
    min-height: 510px;
}
.reception-agent-panel {
    padding: 26px 22px;
    display: grid;
    align-content: start;
    justify-items: center;
    text-align: center;
    border-right: 1px solid rgba(255,255,255,.09);
    background: linear-gradient(180deg, rgba(22,67,122,.58), rgba(6,22,42,.95));
}
.reception-agent-panel img {
    width: 152px;
    height: 182px;
    object-fit: cover;
    object-position: top;
    border: 2px solid rgba(245,208,129,.56);
    border-radius: 22px;
    box-shadow: 0 20px 45px rgba(0,0,0,.34), 0 0 28px rgba(65,151,255,.18);
}
.reception-agent-panel > strong { margin-top: 16px; font-size: 18px; }
.reception-agent-panel > span { margin-top: 7px; display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,.7); font-size: 11px; }
.reception-agent-panel > span i { width: 8px; height: 8px; border-radius: 50%; background: #4ee0a0; box-shadow: 0 0 12px #4ee0a0; }
.reception-agent-panel > p { margin: 17px 0; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.8; }
.reception-prompt-list { width: 100%; display: grid; gap: 8px; }
.reception-prompt-list button {
    min-height: 38px;
    padding: 8px 11px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 9px;
    background: rgba(255,255,255,.07);
    color: #fff;
    font-size: 11px;
    text-align: left;
}
.reception-prompt-list button:hover { border-color: #e8bd64; background: rgba(232,189,100,.12); }
.reception-chat-panel {
    min-width: 0;
    padding: 25px;
    display: grid;
    grid-template-rows: 1fr auto auto;
    gap: 12px;
    background: linear-gradient(180deg, #f5f8fc, #e9eff6);
    color: #172438;
}
.reception-chat-messages {
    min-height: 320px;
    max-height: 390px;
    padding: 3px 5px 12px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.reception-message {
    max-width: 84%;
    padding: 12px 15px;
    border-radius: 14px;
    font-size: 13px;
    line-height: 1.7;
    box-shadow: 0 8px 20px rgba(13,37,68,.08);
}
.reception-message-agent { align-self: flex-start; border: 1px solid #dfe6ee; border-bottom-left-radius: 4px; background: #fff; }
.reception-message-user { align-self: flex-end; border-bottom-right-radius: 4px; background: linear-gradient(135deg,#1458bd,#2878df); color: #fff; }
.reception-message-thinking { opacity: .68; }
.reception-chat-composer { display: grid; grid-template-columns: 1fr 74px; gap: 9px; }
.reception-chat-composer textarea {
    min-width: 0;
    resize: none;
    padding: 12px 13px;
    border: 1px solid #d7e0ea;
    border-radius: 11px;
    background: #fff;
    color: #172438;
    outline: none;
}
.reception-chat-composer textarea:focus { border-color: #347bd6; box-shadow: 0 0 0 3px rgba(52,123,214,.13); }
.reception-chat-composer button {
    border: 0;
    border-radius: 11px;
    background: #0c2747;
    color: #fff;
    font-weight: 750;
}
.reception-chat-composer button:hover { background: #174c86; }
.reception-chat-panel > small { color: #77859a; font-size: 10px; }

@media (max-width: 1180px) {
    .luxury-hero { gap: clamp(35px, 8vw, 130px); }
    .hero-action-rail { width: min(350px,100%); }
}
@media (max-width: 980px) {
    .hero-action-rail { width: min(620px,100%); justify-self: center; }
    .hero-business-action { min-height: 88px; }
    .reception-trigger-wrap { position: relative; left: auto; bottom: auto; transform: none; margin: 12px auto 0; grid-row: 2; }
    .hero-reveal-center { transform: translate3d(0,25px,0) scale(.94); }
    .luxury-hero.hero-panels-visible .hero-reveal-center { animation-name: hero-reception-in-mobile; }
    @keyframes hero-reception-in-mobile {
        0% { opacity: 0; visibility: hidden; pointer-events: none; transform: translate3d(0,25px,0) scale(.94); }
        1% { visibility: visible; }
        100% { opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
    }
    .reception-modal-body { grid-template-columns: 1fr; }
    .reception-agent-panel { display: none; }
}
@media (max-width: 680px) {
    .hero-business-action { min-height: 82px; grid-template-columns: 48px minmax(0,1fr) 18px; padding: 14px; }
    .hero-business-icon { width: 44px; height: 44px; border-radius: 12px; font-size: 19px; }
    .hero-business-action strong { font-size: 17px; }
    .reception-trigger-wrap { width: 260px; }
    .reception-trigger { width: 226px; }
    .modal-dialog { margin: 12px; }
    .modal-dialog-centered { min-height: calc(100% - 24px); }
    .reception-modal-header { padding: 18px; }
    .reception-modal-body { min-height: 480px; }
    .reception-chat-panel { padding: 17px; }
    .reception-chat-composer { grid-template-columns: 1fr; }
    .reception-chat-composer button { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .luxury-hero.hero-panels-visible .hero-reveal-center {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(-50%);
        animation: none;
    }
}


/* ========================================================================== 
   V0.2.5: Japan clock and compact company registration
   ========================================================================== */
.gold-register-button {
    min-height: 42px;
    padding: 0 19px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #f0cd7f;
    border-radius: 10px;
    background: linear-gradient(135deg, #b67a23, #e0b458);
    color: #fff;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(202,145,45,.22);
}
.gold-register-button:hover { transform: translateY(-1px); filter: brightness(1.08); }

.japan-time-board {
    position: absolute;
    z-index: 4;
    left: 50%;
    top: 37%;
    width: clamp(190px, 16vw, 260px);
    padding: 12px 18px 14px;
    display: grid;
    justify-items: center;
    gap: 2px;
    border: 1px solid rgba(114,197,255,.62);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(5,45,98,.68), rgba(3,25,62,.84));
    color: #fff;
    opacity: 0;
    transform: translate(-50%, -8px);
    box-shadow: inset 0 0 25px rgba(38,141,255,.26), 0 0 24px rgba(43,146,255,.22);
    backdrop-filter: blur(5px);
    transition: opacity .7s ease, transform .7s ease;
    pointer-events: none;
}
.luxury-hero.hero-background-ready .japan-time-board { opacity: 1; transform: translate(-50%, 0); }
.japan-time-label { color: #9ed8ff; font-size: 8px; font-weight: 800; letter-spacing: .18em; }
.japan-time-board strong { font-family: "Segoe UI", sans-serif; font-size: clamp(24px, 2.2vw, 36px); line-height: 1.15; letter-spacing: .08em; text-shadow: 0 0 14px rgba(111,200,255,.6); }
.japan-time-board span:last-child { color: rgba(255,255,255,.82); font-size: 11px; letter-spacing: .04em; }

button.hero-business-action { width: 100%; font: inherit; text-align: left; cursor: pointer; }

.company-register-modal-content {
    overflow: hidden;
    border: 1px solid rgba(232,190,100,.5);
    border-radius: 24px;
    background: #f7f9fc;
    box-shadow: 0 42px 120px rgba(0,0,0,.56), 0 0 70px rgba(216,168,78,.16);
}
.company-register-modal-header {
    min-height: 118px;
    padding: 24px 28px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,.1);
    background: linear-gradient(105deg, #071b35, #123e72);
}
.company-register-modal-header h2 { margin: 4px 0 7px; font-size: 27px; }
.company-register-modal-header p { max-width: 650px; margin: 0; color: rgba(255,255,255,.7); font-size: 12px; line-height: 1.7; }
.company-register-modal-body { padding: 28px; background: linear-gradient(180deg, #fff, #eef3f8); }
.register-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.register-field { display: grid; gap: 7px; color: #18273b; font-size: 12px; font-weight: 750; }
.register-field-wide { grid-column: 1 / -1; }
.register-field input {
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid #ced9e5;
    border-radius: 11px;
    background: #fff;
    color: #142338;
    outline: none;
}
.register-field input:focus { border-color: #2876cf; box-shadow: 0 0 0 4px rgba(40,118,207,.12); }
.register-consent { margin: 15px 0 12px; color: #6f7d90; font-size: 10px; line-height: 1.7; }
.register-submit-button {
    width: 100%;
    min-height: 52px;
    border: 1px solid #e7c271;
    border-radius: 11px;
    background: linear-gradient(135deg, #b77b25, #ddb255);
    color: #fff;
    font-weight: 850;
    box-shadow: 0 13px 28px rgba(188,130,36,.22);
}
.register-submit-button:hover { filter: brightness(1.07); }
.register-submit-button:disabled { cursor: wait; opacity: .65; }
.register-status { min-height: 22px; margin-top: 13px; font-size: 12px; line-height: 1.55; }
.register-status.is-loading { color: #376b9f; }
.register-status.is-error { color: #b42318; }
.register-status.is-success { color: #087443; font-weight: 750; }

@media (max-width: 1180px) {
    .japan-time-board { top: 32%; }
}
@media (max-width: 980px) {
    .japan-time-board { position: relative; left: auto; top: auto; grid-column: 1; justify-self: center; margin: 8px auto 0; transform: translateY(-8px); }
    .luxury-hero.hero-background-ready .japan-time-board { transform: none; }
}
@media (max-width: 680px) {
    .register-form-grid { grid-template-columns: 1fr; }
    .register-field-wide { grid-column: auto; }
    .company-register-modal-header, .company-register-modal-body { padding: 18px; }
    .luxury-header-actions { gap: 7px; }
    .gold-register-button, .gold-outline-button { padding-inline: 13px; }
}


/* ==========================================================================
   V0.2.6: Japanese clock in the lower-left hero area
   ========================================================================== */
.japan-time-pill {
    margin-top: 27px;
    width: min(360px, 100%);
    min-height: 64px;
    padding: 10px 14px;
    display: grid;
    grid-template-columns: 38px minmax(0,1fr) auto;
    align-items: center;
    gap: 11px;
    border: 1px solid rgba(121,197,255,.34);
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(5,39,82,.83), rgba(3,20,48,.8));
    color: #fff;
    box-shadow: inset 0 0 22px rgba(42,139,244,.18), 0 12px 35px rgba(0,0,0,.23);
    backdrop-filter: blur(12px);
}
.japan-time-pill-icon {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(148,211,255,.42);
    border-radius: 50%;
    color: #a8ddff;
    font-size: 20px;
}
.japan-time-pill-copy { min-width: 0; display: grid; gap: 2px; }
.japan-time-pill-copy small { color: #9ed8ff; font-size: 7px; font-weight: 850; letter-spacing: .13em; }
.japan-time-pill-copy > span { color: rgba(255,255,255,.76); font-size: 11px; white-space: nowrap; }
.japan-time-pill > strong { font-family: "Segoe UI", sans-serif; font-size: 22px; letter-spacing: .06em; text-shadow: 0 0 12px rgba(87,179,255,.55); }
@media (max-width: 680px) {
    .japan-time-pill { margin-inline: auto; grid-template-columns: 34px minmax(0,1fr); }
    .japan-time-pill > strong { grid-column: 2; font-size: 20px; }
}

/* ========================================================================== 
   V0.2.15: Extended footer and information pages
   ========================================================================== */
.site-footer {
    position: relative;
    z-index: 20;
    color: rgba(255,255,255,.76);
    background:
        radial-gradient(circle at 14% 10%, rgba(31,101,219,.16), transparent 28%),
        linear-gradient(180deg, #09182b 0%, #06111f 100%);
    border-top: 1px solid rgba(233,196,119,.28);
}
.site-footer-cta {
    width: min(1460px, calc(100% - 72px));
    margin: 0 auto;
    padding: 42px 0 36px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 34px;
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.site-footer-cta > div:first-child { max-width: 760px; }
.site-footer-cta span { color: var(--gold-400); font-size: 10px; font-weight: 850; letter-spacing: .18em; }
.site-footer-cta h2 { margin: 8px 0 9px; color: #fff; font-size: clamp(24px, 3vw, 38px); letter-spacing: .015em; }
.site-footer-cta p { margin: 0; color: rgba(255,255,255,.64); font-size: 13px; line-height: 1.85; }
.site-footer-cta-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
.footer-gold-button,
.footer-outline-button {
    min-height: 48px;
    padding: 0 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    border-radius: 10px;
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    transition: transform .2s ease, filter .2s ease, background .2s ease;
}
.footer-gold-button { color: #fff; border: 1px solid #edca78; background: linear-gradient(135deg,#a96e1d,#d8a84e); box-shadow: 0 13px 30px rgba(204,143,42,.2); }
.footer-outline-button { color: var(--gold-400); border: 1px solid rgba(233,196,119,.52); background: rgba(255,255,255,.035); }
.footer-gold-button:hover,
.footer-outline-button:hover { transform: translateY(-2px); filter: brightness(1.08); }
.site-footer-main {
    width: min(1460px, calc(100% - 72px));
    margin: 0 auto;
    padding: 42px 0 38px;
    display: grid;
    grid-template-columns: minmax(290px, 1.35fr) repeat(4, minmax(150px, .7fr));
    gap: clamp(26px, 4vw, 66px);
}
.site-footer-brand-column { min-width: 0; }
.site-footer-brand { display: inline-flex; align-items: center; gap: 13px; color: #fff; text-decoration: none; }
.site-footer-brand img { width: 64px; height: 64px; object-fit: contain; filter: drop-shadow(0 8px 16px rgba(216,168,78,.24)); }
.site-footer-brand span { display: grid; gap: 3px; }
.site-footer-brand strong { font-size: 16px; }
.site-footer-brand small { color: var(--gold-400); font-size: 9px; letter-spacing: .14em; }
.site-footer-brand-column > p { max-width: 360px; margin: 18px 0; color: rgba(255,255,255,.58); font-size: 11px; line-height: 1.9; }
.site-footer-badges { display: flex; flex-wrap: wrap; gap: 7px; }
.site-footer-badges span { padding: 5px 8px; border: 1px solid rgba(233,196,119,.22); border-radius: 999px; color: rgba(233,196,119,.82); font-size: 7px; letter-spacing: .11em; }
.site-footer-link-column { display: grid; align-content: start; gap: 11px; }
.site-footer-link-column h3 { margin: 0 0 7px; color: #fff; font-size: 12px; letter-spacing: .08em; }
.site-footer-link-column a { position: relative; padding-left: 11px; color: rgba(255,255,255,.62); text-decoration: none; font-size: 10px; line-height: 1.55; transition: color .2s ease, transform .2s ease; }
.site-footer-link-column a::before { content: ""; position: absolute; left: 0; top: .72em; width: 4px; height: 1px; background: rgba(233,196,119,.55); }
.site-footer-link-column a:hover { color: var(--gold-400); transform: translateX(2px); }
.site-footer-bottom {
    min-height: 72px;
    padding: 18px max(36px, calc((100% - 1460px) / 2));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    border-top: 1px solid rgba(255,255,255,.08);
    background: rgba(0,0,0,.16);
}
.site-footer-bottom > div { display: grid; gap: 4px; }
.site-footer-bottom strong { color: #fff; font-size: 11px; }
.site-footer-bottom span,
.site-footer-bottom p { margin: 0; color: rgba(255,255,255,.42); font-size: 8px; line-height: 1.7; }
.site-footer-bottom p { max-width: 670px; text-align: right; }

.information-shell { background: linear-gradient(180deg,#f4f7fb 0,#edf2f7 48%,#f7f9fc 100%); }
.information-main { width: min(1320px, calc(100% - 56px)); margin: 0 auto; padding: 52px 0 84px; }
.information-hero {
    min-height: 270px;
    padding: clamp(34px, 5vw, 64px);
    display: grid;
    grid-template-columns: 150px minmax(0,1fr);
    align-items: center;
    gap: clamp(30px, 5vw, 70px);
    overflow: hidden;
    border: 1px solid rgba(201,214,229,.9);
    border-radius: 28px;
    color: #fff;
    background:
        radial-gradient(circle at 18% 28%, rgba(55,129,222,.34), transparent 32%),
        radial-gradient(circle at 88% 70%, rgba(216,168,78,.2), transparent 27%),
        linear-gradient(125deg,#07172b,#0c2a4b 62%,#0c1f36);
    box-shadow: 0 28px 75px rgba(5,21,40,.2);
}
.information-hero-mark { width: 140px; height: 140px; display: grid; place-items: center; border: 1px solid rgba(233,196,119,.35); border-radius: 36px; background: rgba(255,255,255,.045); box-shadow: inset 0 0 35px rgba(255,255,255,.045); }
.information-hero-mark img { width: 110px; height: 110px; object-fit: contain; filter: drop-shadow(0 14px 26px rgba(216,168,78,.34)); }
.information-hero-copy span { color: var(--gold-400); font-size: 10px; font-weight: 850; letter-spacing: .22em; }
.information-hero-copy h1 { margin: 10px 0 14px; font-size: clamp(34px, 5vw, 58px); line-height: 1.16; }
.information-hero-copy p { max-width: 900px; margin: 0; color: rgba(255,255,255,.72); font-size: 14px; line-height: 2; }
.information-notice { margin: 28px 0; padding: 20px 24px; display: grid; grid-template-columns: 42px 1fr; align-items: start; gap: 16px; border: 1px solid #e5ca8d; border-radius: 16px; background: linear-gradient(135deg,#fffaf0,#fff); box-shadow: var(--shadow-sm); }
.information-notice > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #c78d2f; color: #fff; font-weight: 900; }
.information-notice strong { color: #6d4714; font-size: 14px; }
.information-notice p { margin: 5px 0 0; color: #75644f; font-size: 11px; line-height: 1.8; }
.information-section-heading { margin: 58px 0 24px; text-align: center; }
.information-section-heading > span { color: #b27922; font-size: 9px; font-weight: 850; letter-spacing: .2em; }
.information-section-heading h2 { margin: 8px 0 7px; color: #0b213b; font-size: clamp(28px,4vw,42px); }
.information-section-heading p { margin: 0; color: var(--muted); font-size: 11px; }
.pricing-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 14px; align-items: stretch; }
.pricing-card { position: relative; padding: 26px 20px 22px; display: flex; flex-direction: column; border: 1px solid #dbe3ec; border-radius: 20px; background: rgba(255,255,255,.94); box-shadow: 0 16px 38px rgba(13,40,72,.08); }
.pricing-card.is-recommended { border-color: #d6a348; box-shadow: 0 20px 52px rgba(183,124,33,.16); transform: translateY(-8px); }
.pricing-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); padding: 5px 14px; border-radius: 999px; background: linear-gradient(135deg,#9d661a,#d8aa51); color: #fff; font-size: 9px; font-weight: 850; white-space: nowrap; }
.pricing-card header { min-height: 88px; }
.pricing-card h3 { margin: 0; color: #0b213b; font-size: 20px; }
.pricing-card header p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.7; }
.pricing-amounts { display: grid; gap: 12px; padding: 16px 0; border-top: 1px solid #edf1f5; border-bottom: 1px solid #edf1f5; }
.pricing-amounts > div { display: grid; gap: 3px; }
.pricing-amounts small { color: #7a8798; font-size: 9px; }
.pricing-amounts strong { color: #132a48; font-size: 21px; }
.pricing-amounts span { color: #a36d20; font-size: 8px; }
.pricing-audience { min-height: 50px; margin: 14px 0 7px; color: #4d5d70; font-size: 10px; line-height: 1.65; }
.pricing-card ul { flex: 1; margin: 0; padding: 0; display: grid; align-content: start; gap: 9px; list-style: none; }
.pricing-card li { display: grid; grid-template-columns: 17px 1fr; gap: 7px; color: #56667a; font-size: 9px; line-height: 1.55; }
.pricing-card li span { color: #ba7c21; font-weight: 900; }
.pricing-card > a { margin-top: 18px; min-height: 42px; padding: 0 12px; display: flex; align-items: center; justify-content: space-between; border-radius: 9px; color: #fff; background: #0c2747; text-decoration: none; font-size: 10px; font-weight: 800; }
.pricing-card.is-recommended > a { background: linear-gradient(135deg,#aa711e,#d6a84d); }
.faq-section { width: min(1040px,100%); margin: 0 auto; }
.faq-list { display: grid; gap: 12px; }
.faq-item { overflow: hidden; border: 1px solid #d8e1eb; border-radius: 15px; background: #fff; box-shadow: var(--shadow-sm); }
.faq-item summary { min-height: 70px; padding: 16px 20px; display: grid; grid-template-columns: 90px 1fr 24px; align-items: center; gap: 16px; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary > span { color: #b27922; font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.faq-item summary strong { color: #172b45; font-size: 14px; }
.faq-item summary b { color: #bd842c; font-size: 20px; font-weight: 400; transition: transform .2s ease; }
.faq-item[open] summary b { transform: rotate(45deg); }
.faq-item > div { padding: 0 20px 18px 126px; }
.faq-item p { margin: 0; color: #68778a; font-size: 11px; line-height: 1.95; }
.information-content-grid { margin-top: 42px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.information-content-grid.is-legal { display: block; width: min(1040px,100%); margin: 42px auto 0; }
.information-content-card { padding: 27px 30px; border: 1px solid #dce4ed; border-radius: 18px; background: rgba(255,255,255,.96); box-shadow: 0 14px 35px rgba(11,37,69,.07); }
.information-content-grid.is-legal .information-content-card { margin-bottom: 14px; }
.information-content-card h2 { margin: 0 0 11px; color: #102944; font-size: 18px; }
.information-content-card > p { margin: 0; color: #68778a; font-size: 11px; line-height: 1.95; }
.information-content-card ul { margin: 14px 0 0; padding: 0; display: grid; gap: 9px; list-style: none; }
.information-content-card li { display: grid; grid-template-columns: 16px 1fr; gap: 8px; color: #5f6f82; font-size: 11px; line-height: 1.75; }
.information-content-card li span { color: #be852c; }
.information-actions { margin-top: 58px; padding: 30px 34px; display: flex; align-items: center; justify-content: space-between; gap: 28px; border: 1px solid #cfdbe7; border-radius: 20px; background: linear-gradient(135deg,#fff,#edf4fb); box-shadow: var(--shadow-md); }
.information-actions > div:first-child span { color: #b27922; font-size: 9px; font-weight: 850; letter-spacing: .18em; }
.information-actions h2 { margin: 7px 0 0; color: #102944; font-size: 24px; }
.information-actions > div:last-child { display: flex; flex-wrap: wrap; gap: 11px; justify-content: flex-end; }
.information-glass-button { border-color: #b9c7d7; color: #27415f; background: #fff; }

@media (max-width: 1260px) {
    .site-footer-main { grid-template-columns: minmax(280px,1.2fr) repeat(2,minmax(170px,.75fr)); }
    .site-footer-brand-column { grid-row: span 2; }
    .pricing-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 980px) {
    .site-footer-cta { align-items: flex-start; flex-direction: column; }
    .site-footer-cta-actions { justify-content: flex-start; }
    .site-footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .site-footer-brand-column { grid-column: 1 / -1; grid-row: auto; }
    .site-footer-bottom { align-items: flex-start; flex-direction: column; }
    .site-footer-bottom p { text-align: left; }
    .information-hero { grid-template-columns: 110px minmax(0,1fr); }
    .information-hero-mark { width: 105px; height: 105px; border-radius: 26px; }
    .information-hero-mark img { width: 82px; height: 82px; }
    .pricing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .information-content-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
    .site-footer-cta,
    .site-footer-main { width: min(100% - 36px,1460px); }
    .site-footer-cta { padding: 32px 0 28px; }
    .site-footer-cta-actions { width: 100%; display: grid; }
    .footer-gold-button,
    .footer-outline-button { width: 100%; }
    .site-footer-main { grid-template-columns: 1fr 1fr; gap: 30px 18px; }
    .site-footer-brand-column { grid-column: 1 / -1; }
    .site-footer-bottom { padding: 18px; }
    .information-main { width: min(100% - 28px,1320px); padding-top: 22px; }
    .information-hero { min-height: 0; padding: 28px 22px; grid-template-columns: 1fr; gap: 18px; border-radius: 20px; }
    .information-hero-mark { width: 82px; height: 82px; border-radius: 20px; }
    .information-hero-mark img { width: 64px; height: 64px; }
    .information-hero-copy h1 { font-size: 32px; }
    .information-hero-copy p { font-size: 12px; }
    .pricing-grid { grid-template-columns: 1fr; }
    .pricing-card.is-recommended { transform: none; }
    .faq-item summary { grid-template-columns: 72px 1fr 20px; padding: 15px; gap: 10px; }
    .faq-item > div { padding: 0 15px 16px; }
    .information-content-card { padding: 22px 20px; }
    .information-actions { align-items: flex-start; flex-direction: column; padding: 24px 20px; }
    .information-actions > div:last-child { width: 100%; display: grid; }
    .information-actions a { width: 100%; }
}
.register-consent a { color: #246bbb; font-weight: 750; }
.register-consent a:hover { color: #b77920; }

/* Registration completion notice on the company login page */
.auth-success {
  display: grid;
  gap: .35rem;
  margin: 1rem 0 1.15rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(32, 150, 104, .28);
  border-radius: 14px;
  background: rgba(235, 250, 243, .92);
  color: #155d43;
}
.auth-success strong { font-size: .98rem; }
.auth-success span { font-size: .86rem; line-height: 1.65; }
