:root {
  --navy:#152c43;
  --deep:#0b1c2c;
  --blue:#237ca4;
  --gold:#d9ba76;
  --ink:#203548;
  --muted:#667786;
  --line:#dce4e9;
  --soft:#f1f5f7;
  --white:#fff}
* {
  box-sizing:border-box}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px}
body {
  margin:0;
  color:var(--ink);
  background:#fff;
  font-family:"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  line-height:1.9;
  -webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure {
  margin:0}
h1,h2,h3 {
  font-feature-settings:"palt"}
a {
  color:inherit}
button,input,select,textarea {
  font:inherit}
a,button {
  touch-action:manipulation}
button {
  cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible {
  outline:3px solid #2e9fca;
  outline-offset:4px}
.wrap {
  max-width:1200px;
  margin:auto;
  padding:0 40px}
.header {
  height:88px;
  position:sticky;
  top:0;
  background:var(--deep);
  color:#fff;
  z-index:20;
  border-bottom:1px solid #ffffff18}
.header .wrap {
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%;
  gap:25px}
.brand {
  display:inline-flex;
  align-items:center}
.brand img {
  width:133px;
  height:auto;
  display:block}
nav {
  display:flex;
  align-items:center;
  gap:24px;
  font-size:12px}
nav>a {
  text-decoration:none;
  color:#d9e1e8}
nav>a:hover {
  color:var(--gold)}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  padding:16px 25px;
  min-height:56px;
  background:var(--navy);
  border:1px solid var(--navy);
  border-radius:5px;
  color:#fff;
  font-size:14px;
  font-weight:600;
  text-decoration:none;
  transition:background .2s,transform .2s}
.btn:hover {
  background:#244963;
  transform:translateY(-2px)}
.btn.small {
  min-height:44px;
  padding:11px 19px;
  font-size:12px;
  background:var(--gold);
  color:var(--deep);
  border-color:var(--gold)}
.btn.secondary {
  background:#fff;
  color:var(--navy)}
.btn.secondary:hover {
  background:#edf4f8}
.section {
  padding:100px 0}
.section.alt {
  background:var(--soft)}
.label,.review-note {
  display:none}
.section-kicker {
  font-size:13px;
  font-weight:600;
  color:#567f95;
  margin-bottom:16px;
  letter-spacing:.09em}
h2 {
  font-size:34px;
  line-height:1.65;
  letter-spacing:.015em}
h3 {
  font-size:25px;
  line-height:1.7}
.lead {
  font-size:15px;
  color:var(--muted);
  max-width:660px;
  margin-top:22px}
.hero {
  position:relative;
  background:var(--deep);
  color:white;
  padding:70px 0 88px;
  overflow:hidden}
.hero:before {
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 80% 45%,#20486299,transparent 64%);
  pointer-events:none}
.hero .wrap {
  position:relative}
.hero-layout {
  display:grid;
  grid-template-columns:1fr 1.08fr;
  gap:42px;
  align-items:center}
.eyebrow {
  font-size:13px;
  color:#c4d6e2;
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:27px}
.eyebrow>span {
  width:22px;
  height:1px;
  background:var(--gold)}
h1 {
  font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
  font-weight:600;
  font-size:48px;
  line-height:1.58;
  letter-spacing:.035em}
h1>span {
  display:block;
  margin-top:13px}
h1>br:nth-of-type(2) {
  display:none}
.hero .lead {
  color:#bbccda;
  font-size:14px;
  line-height:2.1;
  margin-top:25px}
.device-support {
  display:table;
  border:1px solid #546779;
  border-radius:3px;
  color:#dce5eb;
  padding:5px 13px;
  font-size:12px;
  margin-top:25px}
.actions {
  display:flex;
  align-items:center;
  gap:24px;
  flex-wrap:wrap;
  margin-top:24px}
.hero .btn {
  background:var(--gold);
  border-color:var(--gold);
  color:#142a3f}
.hero .btn:hover {
  background:#e8ca89}
.text-link {
  font-size:12px;
  text-underline-offset:7px}
.hero-price {
  color:#b8c7d2;
  margin-top:22px;
  font-size:12px}
.hero-price strong {
  font-weight:500;
  color:#fff;
  margin-left:14px;
  font-size:20px}
.hero-price>span {
  font-size:11px}
.hero-visual {
  position:relative;
  min-height:560px;
  padding:22px 35px 65px 0;
  display:flex;
  align-items:center}
.hero-orbit {
  position:absolute;
  width:560px;
  height:560px;
  border:1px solid #ffffff0e;
  border-radius:50%;
  top:-5px;
  left:-5px}
.hero-orbit:before {
  content:'';
  position:absolute;
  inset:30px;
  border:1px solid #ffffff0b;
  border-radius:50%}
.hero-tablet {
  position:relative;
  width:100%;
  max-width:455px;
  background:#18202b;
  padding:17px;
  border:1px solid #66707a;
  border-radius:22px;
  box-shadow:0 32px 65px #0006;
  transform:rotate(-2deg);
  overflow:hidden}
.hero-tablet .screen {
  border-radius:6px;
  max-height:492px;
  object-fit:contain;
  background:#f0f3f6}
.device-camera {
  position:absolute;
  top:6px;
  left:50%;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#626c78}
.hero-phone {
  position:absolute;
  right:-4px;
  bottom:35px;
  width:158px;
  border:5px solid #1a2028;
  outline:1px solid #67707a;
  border-radius:25px;
  background:#f1f5f8;
  overflow:hidden;
  box-shadow:0 20px 40px #0008;
  padding-top:17px;
  transform:rotate(3deg)}
.hero-phone .screen {
  width:100%;
  display:block}
.phone-camera {
  height:5px;
  width:28px;
  border-radius:10px;
  background:#121a23;
  position:absolute;
  top:6px;
  left:calc(50% - 14px)}
.visual-caption {
  position:absolute;
  bottom:0;
  left:12px;
  font-size:12px;
  color:#d5dfe8}
.visual-caption small {
  display:block;
  font-size:10px;
  color:#9eb0c0;
  margin-top:4px}
.screen {
  display:block;
  width:100%;
  height:auto}
.zoom {
  border:0;
  padding:0;
  background:transparent;
  width:100%;
  display:block;
  cursor:zoom-in}
.frame {
  border-radius:12px;
  border:1px solid #dce5eb;
  background:#fff;
  padding:13px;
  overflow:hidden}
.frame figcaption {
  text-align:center;
  color:#798a97;
  font-size:10px;
  padding-top:13px}
.problems {
  text-align:center}
.problems h2 {
  font-size:29px}
.problem-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 45px;
  max-width:940px;
  margin:35px auto 0;
  text-align:left}
.problem {
  padding:20px 0;
  border-bottom:1px solid #d4dfe6;
  display:flex;
  gap:15px;
  font-size:14px}
.problem:before {
  content:'✓';
  color:#698b9c;
  font-size:17px}
.pillars {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:38px;
  padding-top:28px;
  border-top:1px solid var(--line)}
.pillar {
  padding:8px 24px;
  border-right:1px solid var(--line)}
.pillar:first-child {
  padding-left:0}
.pillar:last-child {
  border:0}
.pillar strong {
  font-size:19px}
.pillar p {
  color:var(--muted);
  font-size:13px;
  margin-top:10px}
#features {
  padding-top:20px}
.feature {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  align-items:center;
  gap:60px;
  padding:70px 0;
  border-bottom:1px solid var(--line)}
.feature.reverse {
  grid-template-columns:1.1fr .9fr}
.feature.reverse .copy {
  order:2}
.feature.reverse .visual {
  order:1}
.feature-tag {
  color:#567f95!important;
  font-size:12px!important;
  letter-spacing:.1em;
  font-weight:600;
  margin:0 0 16px!important;
  display:flex;
  gap:12px;
  align-items:center}
.feature-tag:before {
  content:'';
  height:2px;
  width:23px;
  background:var(--gold)}
.feature h3 {
  font-size:29px}
.feature p {
  color:var(--muted);
  font-size:14px;
  margin-top:22px}
.feature ul {
  padding:0;
  list-style:none;
  font-size:13px;
  margin:24px 0;
  line-height:2.3}
.feature li:before {
  content:'✓';
  color:#54839b;
  margin-right:12px}
.note {
  color:#728492!important;
  font-size:11px!important;
  line-height:1.9}
.pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
  align-items:center;
  background:#eaf1f5;
  padding:24px 16px;
  border-radius:18px}
.pair .frame {
  padding:8px}
.pair .screen {
  height:270px;
  object-fit:contain}
.feature .single {
  padding:24px;
  background:#edf3f6;
  border:0}
.feature .single .screen {
  max-height:440px;
  object-fit:contain;
  border-radius:5px}
.feature:last-of-type {
  border:0}
.center-cta {
  margin-top:30px;
  background:var(--navy);
  border-radius:12px;
  padding:30px 38px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:25px;
  color:#fff}
.center-cta p {
  font-size:16px}
.center-cta .btn {
  background:var(--gold);
  color:var(--deep);
  border-color:var(--gold)}
.steps {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  list-style:none;
  margin:42px 0 0;
  padding:0;
  gap:28px;
  counter-reset:steps}
.steps li {
  counter-increment:steps;
  border-top:1px solid #b5c6d0;
  padding-top:18px}
.steps li:before {
  content:'0' counter(steps);
  display:block;
  color:#9a7b3e;
  font-family:Georgia,serif;
  font-size:28px;
  margin-bottom:15px}
.steps strong {
  font-size:16px}
.steps p {
  font-size:12px;
  color:var(--muted);
  margin-top:10px}
.settings {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:65px;
  margin-top:40px}
.setting-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px}
.setting-list span {
  border-bottom:1px solid var(--line);
  padding:16px 5px;
  font-size:14px}
.setting-list span:before {
  content:'✓';
  margin-right:12px;
  color:#8b713e}
.settings .frame {
  background:#eef3f6;
  padding:20px}
.settings .screen {
  max-height:280px;
  object-fit:contain}
#pricing {
  background:var(--navy);
  color:#fff;
  position:relative}
#pricing .section-kicker {
  color:var(--gold)}
#pricing>.wrap>h2,#pricing>.wrap>.lead,#pricing>.wrap>.section-kicker {
  text-align:center;
  margin-left:auto;
  margin-right:auto}
#pricing .lead {
  color:#c3d0da}
#pricing>.wrap>.note {
  color:#c3d0da!important;
  text-align:center;
  font-size:10px!important;
  max-width:900px;
  margin:26px auto 0!important}
.pricing-options {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
  max-width:900px;
  margin:52px auto 0}
.pricing-option {
  background:white;
  color:var(--ink);
  padding:36px;
  border-radius:10px;
  position:relative}
.pricing-option.annual {
  border:2px solid var(--gold);
  padding:34px;
  background:#fffdf8}
.pricing-option h3 {
  font-size:22px}
.pricing-amount {
  font-size:52px;
  line-height:1.5;
  letter-spacing:-.025em;
  font-weight:600;
  margin:16px 0 0;
  font-variant-numeric:tabular-nums}
.pricing-amount>span {
  font-size:12px;
  font-weight:400;
  letter-spacing:0;
  margin-left:6px}
.pricing-option .note {
  margin-top:0}
.pricing-benefit {
  font-size:12px;
  min-height:28px;
  margin-top:23px}
.pricing-option>p:not([class]) {
  font-size:12px;
  color:var(--muted);
  padding:16px 0;
  border-top:1px solid var(--line);
  margin-top:10px}
.pricing-option .btn {
  width:100%;
  margin-top:10px}
.annual .btn {
  background:var(--gold);
  color:var(--deep);
  border-color:var(--gold)}
.saving-label {
  position:absolute;
  top:-17px;
  right:24px;
  background:var(--gold);
  color:var(--deep);
  font-size:12px;
  padding:6px 18px;
  border-radius:30px;
  font-weight:600}
.onboarding {
  display:flex;
  gap:15px;
  margin:36px 0;
  flex-wrap:wrap}
.onboarding span {
  background:var(--soft);
  border-radius:5px;
  padding:18px 23px;
  font-size:13px}
#intro h2 {
  font-size:30px}
#faq {
  background:#f5f7f9}
.faq {
  margin-top:30px;
  max-width:940px}
.faq details {
  border-bottom:1px solid #d5e0e7;
  padding:23px 0}
.faq summary {
  cursor:pointer;
  font-size:15px;
  list-style:none;
  display:flex;
  justify-content:space-between;
  gap:15px}
.faq summary:after {
  content:'＋';
  color:#8c733d}
.faq details[open] summary:after {
  content:'−'}
.faq p {
  padding:18px 30px 0 0;
  font-size:13px;
  color:var(--muted)}
#contact {
  background:#fff}
.contact-layout {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:76px}
.contact-mascot {
  width:115px;
  height:auto;
  margin-bottom:25px}
.contact-intro .section-kicker {
  margin-bottom:18px}
.contact-intro {
  align-self:start}
.contact-intro .note {
  margin-top:22px}
.form {
  padding:36px;
  background:#f3f6f8;
  border:1px solid var(--line);
  border-radius:12px}
.field {
  display:block;
  margin-bottom:23px;
  font-size:13px}
.field>span {
  display:block;
  margin-bottom:9px}
.required {
  font-size:9px;
  background:#e4ebef;
  color:#587187;
  font-weight:500;
  padding:3px 6px;
  border-radius:3px;
  margin-left:8px}
.optional {
  font-size:10px;
  color:#8c9ba7;
  margin-left:8px}
input:not([type=checkbox]),textarea,select {
  width:100%;
  min-width:0;
  padding:12px 13px;
  border:1px solid #c8d4dc;
  border-radius:4px;
  background:#fff;
  color:var(--ink);
  font-size:16px}
input[type=checkbox] {
  accent-color:var(--navy)}
textarea {
  resize:vertical}
.row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px}
.choices {
  display:flex;
  flex-wrap:wrap;
  gap:15px}
.choices label {
  font-size:13px}
.agreement {
  display:block;
  font-size:11px;
  margin:24px 0}
.agreement a {
  text-underline-offset:4px}
.form .btn {
  width:100%}
.prototype {
  font-size:10px;
  color:#7b8c99;
  margin-bottom:26px;
  text-align:center}
.footer {
  background:var(--deep);
  color:#a6b7c5;
  padding:45px 0 20px}
.footer .wrap {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  font-size:11px}
.footer .brand img {
  width:110px}
.footer p {
  margin-top:12px}
.footer-links {
  display:flex;
  gap:24px;
  flex-wrap:wrap}
.footer-links a {
  text-decoration:none}
.copyright {
  text-align:center;
  font-size:10px;
  margin-top:45px!important;
  color:#71889b}
.mobile-cta {
  display:none}
dialog {
  border:1px solid #d0dbe2;
  border-radius:12px;
  padding:24px;
  max-width:min(95vw,1100px);
  max-height:92vh;
  color:var(--ink)}
dialog::backdrop {
  background:#071a2bc9;
  backdrop-filter:blur(4px)}
dialog img {
  display:block;
  max-width:100%;
  max-height:76vh;
  object-fit:contain;
  margin:15px auto}
dialog .close {
  display:block;
  margin-left:auto;
  border:1px solid #c6d3dd;
  background:white;
  color:var(--navy);
  border-radius:4px;
  padding:7px 16px;
  font-size:13px}
#infoDialog {
  max-width:540px}
#infoDialog h2 {
  font-size:24px}
#infoDialog p {
  margin:20px 0;
  font-size:14px}

@media(max-width:1050px) {
  nav>a:not(.btn) {
  display:none}
.hero-layout {
  gap:28px;
  grid-template-columns:1fr 1fr}
h1 {
  font-size:38px}
.hero-visual {
  min-height:500px;
  padding-right:15px}
.hero-phone {
  width:125px;
  right:-5px;
  bottom:55px}
.hero-tablet {
  padding:13px}
.hero .actions {
  gap:15px}
.feature,.feature.reverse {
  gap:35px}
.feature h3 {
  font-size:25px}
.contact-layout {
  gap:35px}
.pricing-amount {
  font-size:44px}
.pair .screen {
  height:220px}
.steps {
  gap:18px}
}

@media(max-width:760px) {
  html {
  scroll-padding-top:82px}
.wrap {
  padding:0 24px}
.header {
  height:72px}
.brand img {
  width:109px}
.header .wrap {
  gap:10px}
.header .btn.small {
  padding:9px 13px;
  font-size:11px;
  min-height:40px}
.section {
  padding:65px 0}
h2 {
  font-size:26px}
.lead {
  font-size:14px}
.hero {
  padding:42px 0 55px}
.hero-layout {
  grid-template-columns:1fr;
  gap:35px}
h1 {
  font-size:36px;
  line-height:1.55;
  letter-spacing:.025em}
h1>span {
  margin-top:10px}
.hero .lead {
  font-size:13px;
  margin-top:22px}
.hero .lead br {
  display:none}
.eyebrow {
  font-size:11px;
  margin-bottom:23px}
.device-support {
  font-size:11px;
  margin-top:20px}
.actions {
  gap:20px}
.hero .actions .btn {
  padding:14px 22px;
  min-height:51px;
  font-size:13px;
  gap:18px}
.text-link {
  font-size:11px}
.hero-price {
  margin-top:18px;
  font-size:10px}
.hero-price strong {
  font-size:18px;
  margin-left:10px}
.hero-visual {
  min-height:400px;
  padding:5px 35px 45px 0;
  max-width:500px;
  width:100%;
  margin:auto}
.hero-tablet {
  max-width:370px;
  padding:12px;
  border-radius:15px}
.hero-tablet .screen {
  max-height:380px}
.hero-phone {
  width:116px;
  right:0;
  bottom:32px;
  border-radius:19px;
  border-width:4px;
  padding-top:14px}
.hero-orbit {
  width:370px;
  height:370px;
  left:-8px;
  top:0}
.visual-caption {
  font-size:10px;
  bottom:-8px;
  left:0}
.visual-caption small {
  font-size:9px}
.problems h2 {
  font-size:24px}
.problem-grid {
  grid-template-columns:1fr;
  gap:0;
  margin-top:23px}
.problem {
  font-size:13px;
  padding:17px 0}
.section-kicker {
  font-size:11px;
  margin-bottom:14px}
.pillars {
  grid-template-columns:1fr 1fr;
  margin-top:28px;
  padding-top:10px}
.pillar,.pillar:first-child {
  padding:20px 14px}
.pillar:nth-child(2) {
  border:0}
.pillar:nth-child(-n+2) {
  border-bottom:1px solid var(--line)}
.pillar:nth-child(3) {
  padding-left:14px}
.pillar strong {
  font-size:16px}
.pillar p {
  font-size:12px}
#features {
  padding-top:10px}
.feature,.feature.reverse {
  grid-template-columns:1fr;
  gap:28px;
  padding:40px 0}
.feature.reverse .copy,.feature.reverse .visual {
  order:initial}
.feature h3 {
  font-size:25px}
.feature p {
  font-size:13px;
  margin-top:17px}
.feature .feature-tag {
  font-size:11px!important;
  margin-bottom:12px!important}
.feature ul {
  font-size:12px;
  margin:18px 0}
.feature .single {
  padding:14px}
.feature .single .screen {
  max-height:440px}
.pair {
  padding:16px 10px;
  gap:9px}
.pair .screen {
  height:220px}
.frame figcaption {
  font-size:9px}
.center-cta {
  flex-direction:column;
  align-items:stretch;
  padding:27px 22px;
  text-align:center;
  border-radius:8px;
  gap:18px}
.center-cta p {
  font-size:14px}
.steps {
  grid-template-columns:1fr;
  gap:20px;
  margin-top:28px}
.steps li {
  display:grid;
  grid-template-columns:35px 1fr;
  gap:0 18px;
  padding-top:16px}
.steps li:before {
  grid-row:1/3;
  font-size:25px}
.steps p {
  grid-column:2;
  margin-top:4px;
  font-size:12px}
.settings {
  grid-template-columns:1fr;
  gap:28px;
  margin-top:25px}
.setting-list {
  gap:8px}
.setting-list span {
  font-size:12px;
  padding:12px 0}
.settings .frame {
  padding:14px}
.pricing-options {
  grid-template-columns:1fr;
  margin-top:38px;
  gap:30px}
.pricing-option {
  padding:27px}
.pricing-option.annual {
  padding:25px}
.pricing-amount {
  font-size:45px}
.pricing-amount>span {
  font-size:11px}
.pricing-option .btn {
  font-size:13px}
.saving-label {
  font-size:11px}
#intro h2 {
  font-size:25px}
.onboarding {
  flex-direction:column;
  gap:10px;
  margin:25px 0}
.onboarding span {
  padding:16px 20px;
  font-size:13px}
.faq summary {
  font-size:13px}
.faq p {
  font-size:12px}
.faq details {
  padding:20px 0}
.contact-layout {
  grid-template-columns:1fr;
  gap:32px}
.contact-mascot {
  width:88px;
  margin-bottom:20px}
.contact-intro h2 {
  font-size:30px}
.form {
  padding:25px 20px}
.row {
  grid-template-columns:1fr;
  gap:0}
.prototype {
  font-size:9px}
.footer {
  padding-bottom:100px}
.footer .wrap {
  flex-direction:column;
  align-items:start;
  gap:24px}
.footer-links {
  font-size:10px;
  gap:18px}
.copyright {
  margin-top:32px!important}
.mobile-cta {
  display:block;
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  background:#0b1c2cf2;
  backdrop-filter:blur(8px);
  border-top:1px solid #ffffff20;
  padding:10px 20px max(10px,env(safe-area-inset-bottom));
  z-index:21}
.mobile-cta .btn {
  background:var(--gold);
  color:var(--deep);
  border-color:var(--gold);
  width:100%;
  min-height:46px;
  padding:10px}
.mobile-cta.hidden {
  display:none}
dialog {
  padding:15px}
}

@media(max-width:370px) {
  .wrap {
  padding:0 19px}
h1 {
  font-size:31px}
.hero .actions {
  gap:14px}
.hero .actions .btn {
  font-size:12px}
.hero-visual {
  min-height:370px}
.pricing-amount {
  font-size:39px}
.pricing-option {
  padding:23px}
.header .btn.small {
  font-size:10px}
}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
.btn {
  transition:none}
}
@media print {
  .header,.mobile-cta {
  display:none}
.section {
  padding:32px 0}
.hero {
  color:#152c43;
  background:#fff}
.hero .lead {
  color:#667786}
.hero:before {
  display:none}
.hero-orbit {
  display:none}
.feature,figure,.pricing-option {
  break-inside:avoid}
.btn {
  box-shadow:none}
.footer {
  padding-bottom:20px}
}

/* Luxury lounge direction: environment + structured operational evidence */
:root {
  --navy:#18232f;
  --deep:#0b111b;
  --gold:#d5b574;
  --ink:#25313d;
  --soft:#f5f4f1;
  --line:#e1ddd5;
  --muted:#6d737a}

.header {
  background:#0b111bf5;
  border-bottom-color:#ba985331}
.hero {
  background:linear-gradient(90deg,rgba(7,13,22,.94),rgba(7,13,22,.67) 51%,rgba(7,13,22,.26)),url('assets/lounge-night.webp') center 47%/cover no-repeat;
  padding-top:80px;
  padding-bottom:80px;
  min-height:760px}
.hero:before {
  background:linear-gradient(0deg,#0b111bd9,transparent 35%)}
h1 {
  font-size:61px;
  line-height:1.55;
  letter-spacing:.08em}
.hero .lead {
  font-size:14px;
  color:#e0dcd4}
.hero-layout {
  grid-template-columns:1fr 1fr;
  gap:52px}
.hero-visual {
  min-height:535px;
  padding:80px 44px 50px 10px;
  align-self:end}
.hero-tablet {
  max-width:380px;
  border-color:#9a8765;
  box-shadow:0 30px 70px #0009;
  transform:rotate(-3deg)}
.hero-tablet .screen {
  max-height:415px}
.hero-phone {
  width:143px;
  right:2px;
  bottom:35px}
.hero-orbit {
  display:none}
.hero .eyebrow {
  color:#ddcba7}
.btn {
  border-radius:2px}
.hero .btn,.annual .btn,.center-cta .btn,.header .btn.small,.mobile-cta .btn {
  background:linear-gradient(115deg,#e4cb95,#c6a057);
  border-color:#d5b574}
.hero .btn:hover,.annual .btn:hover,.header .btn.small:hover {
  background:#ead29f}
.hero .device-support {
  border-color:#c8ae7959;
  color:#e0d9cc;
  background:#0b111b30}
.hero-price strong {
  color:#efdbb1}
.hero .visual-caption {
  font-size:11px;
  left:16px}
.hero .visual-caption small {
  color:#c4b8a2}
.section-kicker,.feature-tag {
  color:#98763e!important}
.hero h1 {
  text-shadow:0 4px 30px #0004}
h2 {
  font-family:"Hiragino Mincho ProN","Yu Mincho",serif;
  font-weight:600;
  letter-spacing:.035em}
.problems {
  background:#f6f4f0!important}
.problems .lead {
  margin-left:auto;
  margin-right:auto}
.transformation {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  max-width:1050px;
  margin:45px auto 0;
  text-align:left;
  border:1px solid #dcd5ca;
  background:#fff}
.transformation>div {
  padding:33px 32px}
.transformation .before {
  background:#ebe9e5;
  color:#777}
.transformation .after {
  background:#192633;
  color:#f1ece3;
  border-top:3px solid var(--gold);
  margin-top:-1px}
.change-label {
  font-size:11px;
  letter-spacing:.08em;
  margin-bottom:13px;
  color:#8d8170}
.after .change-label {
  color:#d7bb81}
.transformation h3 {
  font-size:20px}
.transformation ul {
  list-style:none;
  padding:0;
  margin:25px 0 0;
  font-size:12px}
.transformation li {
  padding:16px 0;
  border-top:1px solid #cac6be;
  display:flex;
  gap:19px}
.after li {
  border-color:#ffffff20}
.transformation li span {
  flex-shrink:0;
  font-size:11px}
.after li span {
  color:#d7bb81}
.pillars {
  border-color:#d6c9b3}
.pillar strong {
  font-family:"Hiragino Mincho ProN","Yu Mincho",serif}
.feature .single,.pair,.settings .frame {
  background:#f0efec;
  border-radius:4px}
.frame {
  border-radius:4px;
  border-color:#d7d5cf}
.feature {
  border-color:#e7e1d6}
.feature-tag:before {
  background:#b3955f}
.feature li:before {
  color:#a48a56}
.center-cta {
  border-radius:3px;
  background:#17212c;
  border-top:1px solid #c4a773}
.assurance {
  background:#101a26;
  color:#ede7dc;
  padding:85px 0;
  border-top:1px solid #c4a7734d;
  border-bottom:1px solid #c4a7734d}
.assurance>.wrap {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:80px;
  align-items:start}
.assurance .section-kicker {
  color:#d5b574!important}
.assurance h2 {
  font-size:33px}
.assurance-items article {
  padding:22px 0;
  border-bottom:1px solid #b49a632e}
.assurance-items article:first-child {
  padding-top:0}
.assurance-items article>span {
  color:#c9a96c;
  font-size:11px;
  letter-spacing:.08em}
.assurance-items h3 {
  font-size:19px;
  margin-top:9px;
  font-weight:500}
.assurance-items p {
  font-size:13px;
  color:#aeb8c2;
  margin-top:12px}
.steps li {
  border-color:#c2b595}
.steps li:before {
  color:#aa8b50}
.setting-list span:before {
  color:#a48a56}
#pricing {
  background:linear-gradient(#0e1825eb,#0e1825ed),url('assets/lounge-night.webp') center/cover}
#pricing .section-kicker {
  color:#d5b574!important}
.pricing-option {
  border-radius:3px}
.pricing-option.annual {
  border-radius:3px;
  background:#fffdf7}
.saving-label {
  border-radius:0}
.onboarding span {
  border-bottom:2px solid #c2ab7c;
  border-radius:0}
#faq {
  background:#f5f4f1}
#contact {
  background:linear-gradient(90deg,#fff 0%,#faf8f4 100%)}
.form {
  background:#f7f6f2;
  border-color:#e2dbcf;
  border-radius:4px}
.contact-intro {
  padding-top:35px}
.footer {
  background:#0b111b}
.faq summary:after {
  color:#98763e}
.required {
  background:#eae5da;
  color:#87734e}
.feature h3 {
  font-weight:500}
.copyright {
  color:#8b8d8e}

@media(max-width:1050px) {
  h1 {
  font-size:48px}
.hero-layout {
  gap:28px}
.hero-visual {
  min-height:490px;
  padding-right:20px}
.hero-phone {
  width:125px}
.assurance>.wrap {
  gap:40px}
.transformation>div {
  padding:28px 23px}
.transformation h3 {
  font-size:18px}
}

@media(max-width:760px) {
  .hero {
  padding:48px 0 52px;
  background-position:64% center;
  min-height:0;
  background-image:linear-gradient(90deg,rgba(7,13,22,.88),rgba(7,13,22,.56)),url('assets/lounge-night.webp')}
.hero-layout {
  grid-template-columns:1fr;
  gap:30px}
h1 {
  font-size:43px;
  line-height:1.6;
  letter-spacing:.07em}
.hero .lead {
  font-size:13px;
  line-height:2.1}
.hero-visual {
  padding:12px 45px 50px 5px;
  min-height:375px;
  max-width:440px}
.hero-tablet {
  max-width:330px}
.hero-tablet .screen {
  max-height:355px}
.hero-phone {
  width:111px;
  bottom:30px;
  right:1px}
.hero .visual-caption {
  left:0;
  font-size:10px}
.hero .visual-caption small {
  font-size:9px}
.transformation {
  grid-template-columns:1fr;
  margin-top:30px}
.transformation>div {
  padding:26px 22px}
.transformation h3 {
  font-size:19px}
.transformation li {
  gap:16px;
  font-size:12px}
.transformation .after {
  margin-top:0}
.assurance {
  padding:60px 0}
.assurance>.wrap {
  grid-template-columns:1fr;
  gap:30px}
.assurance h2 {
  font-size:28px}
.assurance-items h3 {
  font-size:18px}
.assurance-items p {
  font-size:12px}
.problems h2 {
  font-size:24px}
.contact-intro {
  padding-top:0}
.feature h3 {
  font-size:24px}
.hero .actions .btn {
  min-height:52px}
}

@media(max-width:370px) {
  h1 {
  font-size:38px}
.hero-visual {
  min-height:345px}
.transformation li {
  font-size:11px}
.hero .eyebrow {
  font-size:10px}
.hero .actions {
  gap:12px}
}

.hero h1>br:nth-of-type(2) {
  display:initial}


/* Butterfly illustration overlaps the upper-right edge of the screen. */
.hero-brand-overlay {
  position:absolute;
  z-index:3;
  right:0;
  top:-80px;
  width:280px;
  height:auto;
  filter:drop-shadow(0 4px 14px #0009);
  pointer-events:none}

@media(max-width:1050px) {
  .hero-brand-overlay {
  width:220px;
  top:-45px}
}

@media(max-width:760px) {
  .hero-brand-overlay {
  width:155px;
  top:0;
  right:5px}
.hero-visual {
  padding-top:85px}
}

@media(max-width:370px) {
  .hero-brand-overlay {
  width:140px}
}


/* Make the service description legible above the hero headline. */
.hero .eyebrow {
  font-size:18px;
  font-weight:500;
  line-height:1.7;
  letter-spacing:.035em;
  color:#ead6af}

.hero .eyebrow>span {
  flex-shrink:0}

@media(max-width:760px) {
  .hero .eyebrow {
  font-size:15px;
  letter-spacing:.015em}
}


/* Consistent, readable section labels. */
.section-kicker,.feature .feature-tag {
  font-size:18px!important;
  line-height:1.7;
  font-weight:600;
  letter-spacing:.045em}

@media(max-width:760px) {
  .section-kicker,.feature .feature-tag {
  font-size:15px!important;
  letter-spacing:.025em}
}


/* Detailed capabilities: readable descriptions, grouped by daily work. */
.catalog-jump {
  margin-top:20px}
.catalog-jump .text-link {
  font-size:15px}

.function-catalog {
  background:#f6f4f0;
  border-top:1px solid #e7e1d6}

.function-plan {
  margin-top:24px;
  font-size:15px;
  color:#876b3b}

.function-groups {
  margin-top:36px;
  border-top:1px solid #b79b68}

.function-group {
  border-bottom:1px solid #d8d0c2}

.function-group summary {
  cursor:pointer;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:25px 0}

.function-group summary::-webkit-details-marker {
  display:none}

.function-group summary strong {
  display:block;
  font-size:22px;
  font-weight:500;
  color:#203548}

.function-group summary small {
  display:block;
  font-size:15px;
  color:#66717a;
  margin-top:5px;
  line-height:1.8}

.function-toggle {
  flex-shrink:0;
  width:30px;
  height:30px;
  position:relative}

.function-toggle:before,.function-toggle:after {
  content:'';
  position:absolute;
  left:7px;
  top:14px;
  width:16px;
  height:1px;
  background:#98763e}

.function-toggle:after {
  transform:rotate(90deg)}
.function-group[open] .function-toggle:after {
  display:none}

.function-group dl {
  margin:0 0 28px;
  background:white;
  padding:0 28px}

.function-group dl>div {
  display:grid;
  grid-template-columns:250px 1fr;
  gap:28px;
  padding:19px 0;
  border-bottom:1px solid #e8e4dd}

.function-group dl>div:last-child {
  border:0}

.function-group dt {
  font-size:16px;
  font-weight:600;
  line-height:1.8}

.function-group dd {
  margin:0;
  font-size:16px;
  line-height:1.8;
  color:#5a6770}

.function-notes {
  margin:24px 0}
.function-notes p {
  font-size:14px;
  color:#66717a;
  margin-top:8px}

.function-catalog>.wrap>.text-link {
  font-size:15px}

@media(max-width:760px) {
  .function-group summary {
  padding:22px 0;
  gap:12px}
.function-group summary strong {
  font-size:19px}
.function-group summary small {
  font-size:14px}
.function-group dl {
  padding:0 18px}
.function-group dl>div {
  grid-template-columns:1fr;
  gap:6px;
  padding:18px 0}
.function-group dt,.function-group dd {
  font-size:15px}
.function-plan {
  font-size:14px}
.function-notes p {
  font-size:13px}
}


.campaign {
  background:#f6f4f0;
  padding:80px 0}
.campaign-panel {
  position:relative;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:56px;
  padding:54px;
  background:linear-gradient(115deg,#182532,#0b111b);
  color:#f8f4eb;
  border:1px solid #b79658}
.campaign-panel:before {
  content:'';
  position:absolute;
  inset:8px;
  border:1px solid #d5b57435;
  pointer-events:none}
.campaign-label {
  font-size:18px;
  color:#e5c98e;
  margin-bottom:20px}
.campaign h2 {
  font-size:34px}
.campaign-description {
  font-size:15px;
  color:#d4d8da;
  margin-top:23px}
.campaign .btn {
  margin-top:29px;
  background:linear-gradient(115deg,#e4cb95,#c6a057);
  border-color:#d5b574;
  color:#152332;
  font-size:14px}
.campaign-offer {
  align-self:center;
  border-top:2px solid #d5b574;
  padding:27px 28px;
  background:#ffffff07}
.campaign-draft {
  font-size:13px;
  color:#cfc3ab;
  margin-bottom:12px}
.campaign-offer h3 {
  font-size:27px;
  color:#f0d9aa}
.campaign-placeholder {
  font-size:18px;
  margin-top:12px}
.campaign-offer dl {
  margin:26px 0 0}
.campaign-offer dl>div {
  padding:14px 0;
  border-top:1px solid #ffffff22;
  display:grid;
  grid-template-columns:75px 1fr;
  gap:14px;
  font-size:14px}
.campaign-offer dt {
  color:#dfc48f}
.campaign-offer dd {
  margin:0}
.campaign-condition {
  font-size:12px;
  color:#b5b9be;
  margin-top:18px}

@media(max-width:1050px) {
  .campaign-panel {
  gap:30px;
  padding:38px}
.campaign h2 {
  font-size:28px}
.campaign-offer {
  padding:24px 20px}
}

@media(max-width:760px) {
  .campaign {
  padding:52px 0}
.campaign-panel {
  grid-template-columns:1fr;
  padding:30px 24px;
  gap:32px}
.campaign-label {
  font-size:15px}
.campaign h2 {
  font-size:27px}
.campaign-description {
  font-size:14px}
.campaign .btn {
  width:100%;
  font-size:13px;
  padding:13px 10px}
.campaign-offer {
  padding:22px 0 0;
  background:none}
.campaign-placeholder {
  font-size:16px}
.campaign-offer dl>div {
  grid-template-columns:65px 1fr;
  gap:10px}
}


.menu-toggle,.header nav .mobile-menu-link {
  display:none}

.back-to-top {
  position:fixed;
  right:24px;
  bottom:24px;
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  z-index:22;
  border:1px solid #d5b574;
  background:#17212cf5;
  color:#e4cb95;
  border-radius:3px;
  box-shadow:0 4px 18px #0003;
  font-size:27px;
  line-height:1}

.back-to-top[hidden] {
  display:none}
.back-to-top:hover {
  background:#2b3b4b}

@media(max-width:1050px) {
  
.menu-toggle {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:6px;
  width:48px;
  height:48px;
  border:1px solid #d5b57470;
  border-radius:2px;
  background:transparent;
  color:#e4cb95;
  margin-left:auto}

.menu-toggle span {
  display:block;
  width:23px;
  height:1px;
  background:currentColor;
  transition:transform .18s,opacity .18s}

.menu-toggle[aria-expanded=true] span:first-child {
  transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2) {
  opacity:0}
.menu-toggle[aria-expanded=true] span:last-child {
  transform:translateY(-7px) rotate(-45deg)}

.header #site-nav {
  display:none;
  position:absolute;
  top:100%;
  left:0;
  right:0;
  max-height:calc(100dvh - 150px);
  overflow-y:auto;
  padding:12px 24px 24px;
  background:#101924;
  border-bottom:1px solid #b79658;
  box-shadow:0 15px 25px #0004}

.header #site-nav.is-open {
  display:flex;
  flex-direction:column;
  gap:0;
  align-items:stretch}

.header #site-nav>a {
  display:block;
  font-size:16px;
  padding:13px 0;
  border-bottom:1px solid #ffffff18;
  text-decoration:none}

.header #site-nav>.btn {
  margin-top:16px;
  padding:14px;
  text-align:center;
  border:1px solid #d5b574}

.back-to-top {
  right:16px;
  bottom:calc(86px + env(safe-area-inset-bottom))}

body:has(#mobileCta.hidden) .back-to-top {
  bottom:calc(18px + env(safe-area-inset-bottom))}

}

@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto}
.menu-toggle span {
  transition:none}
}


/* Small romanized reading beneath the wordmark. */
.brand {
  position:relative;
  flex-direction:column;
  align-items:stretch;
  text-decoration:none}

.brand-reading {
  display:block;
  margin-top:-3px;
  padding-left:35%;
  text-align:center;
  font-family:Georgia,"Times New Roman",serif;
  font-size:11px;
  line-height:1.3;
  letter-spacing:.16em;
  color:#e4cb95}

@media(max-width:760px) {
  .brand-reading {
  font-size:10px;
  margin-top:-2px}
}


@media(min-width:761px) and (max-width:1050px) {
  .back-to-top {
  bottom:24px}
}


.skip-link {
  position:fixed;
  left:16px;
  top:-100px;
  z-index:100;
  background:#fff;
  color:#17212c;
  padding:12px}
.skip-link:focus {
  top:12px}

.honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden}

.form-status {
  font-size:14px;
  color:#5b6870;
  margin-bottom:24px}
.form-status.error,#sendStatus {
  color:#9b372b;
  font-size:14px}

button:disabled {
  opacity:.5;
  cursor:not-allowed;
  transform:none!important}

#confirmDialog {
  width:min(650px,92vw);
  max-height:85dvh;
  overflow:auto}
#confirmDialog h2 {
  font-size:25px}
#confirmFields>div {
  padding:12px 0;
  border-bottom:1px solid #ddd}
#confirmFields dt {
  font-size:13px;
  color:#6d737a}
#confirmFields dd {
  margin:4px 0 0;
  white-space:pre-wrap;
  overflow-wrap:anywhere}
#confirmDialog .actions {
  gap:12px}
#confirmDialog .btn {
  flex:1}

@media(max-width:760px) {
  input,select,textarea {
  font-size:16px}
#confirmDialog .actions {
  flex-direction:column;
  align-items:stretch}
}


.legal {
  max-width:900px}
.legal h1 {
  font-size:32px}
.legal h2 {
  font-size:22px;
  margin-top:34px}
.legal p {
  margin-top:20px}
.legal a {
  overflow-wrap:anywhere}
.legal-details dt {
  margin-top:24px;
  color:#6d737a}
.legal-details dd {
  margin:4px 0 0}

#confirmDialog[open] {
  display:flex;
  flex-direction:column;
  max-height:85dvh;
  overflow:hidden}

#confirmDialog h2,#confirmDialog .actions,#sendStatus {
  flex-shrink:0}

#confirmFields {
  overflow-y:auto;
  min-height:0;
  margin:16px 0;
  overscroll-behavior:contain}

#confirmDialog .actions {
  margin-top:16px}


/* 導入事例・導入店舗の声：既存LPの色と書体を継承 */
.case-grid,.voice-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:44px}
.case-story {background:var(--white);border:1px solid var(--line);overflow:hidden;border-radius:5px}
.case-store {min-height:170px;padding:32px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:var(--navy);color:var(--gold);gap:12px}
.case-store-name {font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:42px;line-height:1.4;letter-spacing:.06em}
.case-status {font-size:12px;color:#e1e8ed}
.case-body {padding:30px}
.case-body h3 {font-size:21px;margin-bottom:12px}
.case-body>p,.case-topics {font-size:14px;color:var(--muted)}
.case-topics {margin:24px 0}
.case-topics>div {display:grid;grid-template-columns:110px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.case-topics dt {color:var(--ink)}
.case-topics dd {margin:0}
.case-body .text-link {font-size:14px}
.store-voice {padding:30px 0 30px 26px;border-left:3px solid var(--gold);scroll-margin-top:110px}
.voice-store {color:var(--navy);font-size:20px;font-weight:600;margin-bottom:16px}
.store-voice h3 {font-size:19px;margin-bottom:12px}
.store-voice>p:not(.voice-store) {font-size:14px;color:var(--muted)}
.voice-status {display:inline-block;margin-top:20px;font-size:12px;color:var(--muted)}
@media(max-width:1100px) and (min-width:761px) {nav {gap:14px}}
@media(max-width:760px) {
.case-grid,.voice-grid {grid-template-columns:1fr;gap:24px;margin-top:30px}
.case-store {min-height:140px;padding:24px}
.case-store-name {font-size:36px}
.case-body {padding:24px}
.case-topics>div {grid-template-columns:100px 1fr;gap:8px}
.store-voice {padding:20px 0 20px 20px}
}

.case-store-name {font-weight:400}
.case-store-name a {color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}
.case-store-name a:hover {color:var(--white)}

.case-external-icon {display:inline-block;font-family:Arial,sans-serif;font-size:.5em;vertical-align:middle;letter-spacing:0}
