:root {
  /* ── Brand ── */
  --color-amber: rgba(242, 146, 24, 1);
  --color-amber-hover: rgba(217, 127, 14, 1);
  --color-amber-pale: rgba(252, 238, 219, 1);
  --color-amber-border: rgba(246, 214, 166, 1);
  --color-amber-light: rgba(255, 242, 225, 1);

  /* ── Ink / dark ── */
  --color-ink-deep: rgba(13, 14, 17, 1);
  --color-ink: rgba(21, 23, 28, 1);
  --color-ink-card: rgba(22, 24, 29, 1);
  --color-ink-slot: rgba(30, 32, 40, 1);
  --color-ink-border: rgba(42, 45, 54, 1);
  --color-ink-text: rgba(44, 51, 63, 1);
  --color-ink-nav: rgba(61, 66, 80, 1);
  --color-ink-slot-text: rgba(74, 79, 94, 1);

  /* ── Text ── */
  --color-text: rgba(82, 90, 104, 1);
  --color-text-muted: rgba(107, 114, 128, 1);
  --color-text-dim: rgba(122, 129, 141, 1);
  --color-text-light: rgba(138, 145, 160, 1);
  --color-text-lighter: rgba(154, 160, 172, 1);
  --color-text-pale: rgba(164, 171, 184, 1);
  --color-text-pale2: rgba(170, 176, 187, 1);
  --color-text-silver: rgba(205, 210, 218, 1);
  --color-text-silver2: rgba(207, 211, 218, 1);

  /* ── Border ── */
  --color-border: rgba(236, 238, 241, 1);
  --color-border-btn: rgba(212, 216, 223, 1);
  --color-border-hover: rgba(223, 227, 232, 1);
  --color-border-subtle: rgba(226, 229, 234, 1);

  /* ── Background ── */
  --color-white: rgba(255, 255, 255, 1);
  --color-black: rgba(0, 0, 0, 1);
  --color-bg-alt: rgba(250, 250, 250, 1);
  --color-bg-slot: rgba(232, 234, 237, 1);
  --color-bg-chip: rgba(244, 245, 247, 1);

  /* ── Hero overlay ── */
  --color-overlay-88: rgba(13,14,17,.88);
  --color-overlay-60: rgba(13,14,17,.6);
  --color-overlay-28: rgba(13,14,17,.28);

  /* ── Shadow ── */
  --color-shadow-sm: rgba(21,23,28,.08);
  --color-shadow-md: rgba(21,23,28,.1);
  --color-shadow-lg: rgba(21,23,28,.14);

  /* ── White opacity ── */
  --color-white-06: rgba(255,255,255,.06);
  --color-white-10: rgba(255,255,255,.1);
  --color-white-12: rgba(255,255,255,.12);
  --color-white-14: rgba(255,255,255,.14);
  --color-white-22: rgba(255,255,255,.22);
  --color-white-30: rgba(255,255,255,.3);
  --color-white-40: rgba(255,255,255,.4);
  --color-white-55: rgba(255,255,255,.55);
  --color-white-80: rgba(255,255,255,.8);
  --color-white-82: rgba(255,255,255,.82);
  --color-white-84: rgba(255,255,255,.84);
  --color-white-85: rgba(255,255,255,.85);
  --color-white-88: rgba(255,255,255,.88);

  /* ── Black opacity ── */
  --color-black-30: rgba(0,0,0,.3);
  --color-black-35: rgba(0,0,0,.35);
}

/* ---- reset ---- */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Noto Sans JP','Zen Kaku Gothic New',sans-serif;color:var(--color-ink);-webkit-font-smoothing:antialiased;background:var(--color-white)}
a{color:inherit;text-decoration:none}

/* ---- navbar ---- */
.navbar{background:none}
.navbar-item{padding-left:.75rem;padding-right:.75rem}
.navbar-item:hover,.navbar-item:focus{background:transparent}
.navlink{color:var(--color-ink-nav);font-weight:500;font-size:0.875rem;white-space:nowrap;transition:color .2s}
.navlink:hover{color:var(--color-ink)}
.navlink.active{color:var(--color-ink);font-weight:700}
.navbar-sticky{position:sticky;top:0;z-index:60;background:var(--color-white-88);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}
.brand-logo{font-family:'Schibsted Grotesk';font-weight:900;font-size:1.44rem;letter-spacing:-.01em}
.navbar-end-center{align-items:center}

/* ---- buttons ---- */
.btn-primary{background:var(--color-ink);color:var(--color-white);border-radius:9px;font-weight:700;transition:transform .15s,background .2s}
.btn-primary:hover{background:var(--color-black);transform:translateY(-1px)}
.btn-amber{background:var(--color-amber);color:var(--color-white);border-radius:9px;font-weight:700;transition:transform .15s,background .2s}
.btn-amber:hover{background:var(--color-amber-hover);transform:translateY(-1px)}
.btn-cta{padding:0.6875rem 1.375rem;font-size:0.84rem;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:7px}
.btn-lg{padding:1rem 1.875rem;font-size:0.94rem}
.btn-xl{padding:1.0625rem 2.125rem;font-size:0.97rem}
.btn-ig{padding:0.8125rem 1.5rem;font-size:0.875rem}
.btn-form{display:inline-block;padding:1.125rem 2.5rem;font-size:1rem}
.btn-ghost-light{padding:1rem 1.875rem;font-size:0.94rem;font-weight:700;border-radius:9px;border:1.5px solid var(--color-white-40);color:var(--color-white);backdrop-filter:blur(4px)}

/* ---- CTA dropdown ---- */
.cta-menu{position:relative}
.cta-pop{position:absolute;right:0;top:calc(100% + 10px);background:var(--color-white);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 16px 44px var(--color-shadow-lg);padding:0.5rem;min-width:252px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s;pointer-events:none;z-index:70}
.cta-menu.open .cta-pop{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.cta-menu.open .cta-caret{transform:rotate(180deg)}
.cta-caret{transition:transform .18s;opacity:.85}
.cta-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0.75rem 0.875rem;border-radius:8px;font-size:0.875rem;font-weight:700;color:var(--color-ink);transition:background .15s,color .15s}
.cta-item:hover{background:var(--color-amber-pale);color:var(--color-amber)}
.text-amber{color:var(--color-amber)}

/* ---- social icons ---- */
.sns{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:transparent;border:1px solid var(--color-ink-border);color:var(--color-white);transition:transform .15s,background .2s}
.sns svg{width:19px;height:19px}
.sns:hover{background:var(--color-amber);border-color:var(--color-amber);transform:translateY(-2px)}

/* ---- language switcher ---- */
.langseg{display:inline-flex;border:1px solid var(--color-border-subtle);border-radius:8px;overflow:hidden;background:var(--color-white)}
.langopt{font-family:'Schibsted Grotesk';font-size:0.75rem;font-weight:700;letter-spacing:.04em;color:var(--color-text-lighter);border:none;padding:0.4375rem 0.75rem;cursor:pointer;background:transparent;transition:all .18s}
.langopt:not(.active):hover{color:var(--color-ink)}
.langopt.active{background:var(--color-ink);color:var(--color-white)}

/* ---- image placeholder ---- */
.img-slot{background:var(--color-bg-slot);display:flex;align-items:center;justify-content:center;color:var(--color-text-lighter);font-size:0.78rem;font-weight:500;text-align:center;padding:0.75rem;width:100%;height:100%}
.img-slot--dark{background:var(--color-ink-slot);color:var(--color-ink-slot-text)}

/* ---- hero shared ---- */
.hero-dark{position:relative;display:flex;align-items:center;overflow:hidden;background:var(--color-ink-deep);color:var(--color-white)}
.hero-overlay{position:absolute;inset:0;z-index:0}
.hero-inner{position:absolute;inset:0}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;pointer-events:none}
.hero-gradient{position:absolute;inset:0;background:linear-gradient(90deg,var(--color-overlay-88) 0%,var(--color-overlay-60) 42%,var(--color-overlay-28) 100%);pointer-events:none}
.hero-content{position:relative;z-index:2;padding:5.5rem 2rem;width:100%;max-width:1200px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--color-white-12);backdrop-filter:blur(6px);border:1px solid var(--color-white-22);color:var(--color-white);border-radius:999px;padding:0.5rem 1rem;font-size:0.78rem;font-weight:700;margin-bottom:1.5rem}
.hero-title{font-family:'Schibsted Grotesk','Zen Kaku Gothic New';font-weight:900;font-size:3.875rem;line-height:1.14;letter-spacing:-.015em;max-width:840px;margin-bottom:1.5rem;color:var(--color-white);text-shadow:0 2px 30px var(--color-black-35)}
.hero-sub{font-size:1.06rem;line-height:1.95;color:var(--color-white-84);max-width:620px;margin-bottom:2.125rem;text-shadow:0 1px 16px var(--color-black-30)}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero-vidnote{position:absolute;right:24px;bottom:18px;z-index:2;font-size:0.69rem;color:var(--color-white-55)}

/* ---- section typography ---- */
.eyebrow{font-family:'Schibsted Grotesk';font-size:0.81rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-amber);margin-bottom:0.875rem}
.eyebrow-sm{font-family:'Schibsted Grotesk';font-size:0.81rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-amber);margin-bottom:0.75rem}
.sec-title{font-family:'Schibsted Grotesk','Zen Kaku Gothic New';font-weight:900;letter-spacing:-.01em}
.sec-sub{color:var(--color-text)}

/* ---- section variants ---- */
.sec-dark{background:var(--color-ink);color:var(--color-white)}
.sec-alt{background:var(--color-bg-alt);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}
.scroll-anchor{scroll-margin-top:5rem}

/* ---- container widths ---- */
.container{max-width:1200px}
.container-lg{max-width:1000px}

/* ---- access section ---- */
.acc-info{display:flex;flex-direction:column;gap:18px;font-size:0.94rem;line-height:1.7;color:var(--color-ink-nav)}
.acc-row{display:flex;gap:16px}
.acc-label{flex:none;width:84px;font-size:0.78rem;font-weight:700;color:var(--color-text-light);padding-top:0.125rem}
.acc-link{color:var(--color-ink);font-weight:700;border-bottom:1px solid var(--color-ink);padding-bottom:0.0625rem}
.map-wrap{display:block;border-radius:18px;overflow:hidden;border:1px solid var(--color-border);height:100%;min-height:300px}

/* ---- instagram section ---- */
.ig-header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-bottom:2.125rem}
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.ig-cell{aspect-ratio:1/1;border-radius:12px;overflow:hidden}
.ig-note{font-size:0.78rem;color:var(--color-text-muted);margin-top:1rem}

/* ---- form / contact ---- */
.form-note{font-size:0.78rem;color:var(--color-text-light);margin-top:1.125rem}

/* ---- footer ---- */
.footer-dark{background:var(--color-ink-deep);color:var(--color-text-silver2);padding:4rem 2rem 2.5rem}
.footer-brand{font-family:'Schibsted Grotesk';font-weight:900;font-size:1.5rem;color:var(--color-white);letter-spacing:-.01em;margin-bottom:0.875rem}
.footer-tagline{font-size:0.84rem;line-height:1.85;color:var(--color-text-light);max-width:260px}
.footer-col-head{font-size:0.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:1rem}
.footer-links{display:flex;flex-direction:column;gap:11px;font-size:0.875rem}
.footer-navlink{color:var(--color-text-silver2)}
.footer-navlink:hover{color:var(--color-white)}
.footer-sns{display:flex;gap:10px;flex-wrap:wrap}
.footer-lic{margin-top:3rem;padding:1.5rem;background:var(--color-ink-card);border-radius:12px;font-size:0.75rem;line-height:1.85;color:var(--color-text-dim)}
.footer-lic-title{font-weight:700;color:var(--color-text-pale2);font-size:0.84rem;line-height:1.6;margin-bottom:0.875rem}
.footer-lic-head{font-weight:700;color:var(--color-text-dim);font-size:0.75rem;letter-spacing:.04em;margin-bottom:0.875rem}
.footer-lic-items{display:flex;flex-direction:column;gap:6px;max-width:820px}
.footer-bottom{margin-top:1.75rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:0.78rem;color:var(--color-text-muted)}

/* ---- global section padding ---- */
.section{padding:5.25rem 2rem}

/* ---- section header block ---- */
.sec-header{margin-bottom:2.75rem}

/* ---- partial: instagram ---- */
.sec-instagram .sec-title{font-size:2rem}

/* ---- partial: access ---- */
.sec-access .sec-title{font-size:2.125rem;margin-bottom:1.5rem}
.sec-access .columns{--bulma-column-gap:24px}

/* ---- partial: contact form ---- */
.sec-contact-form{background:var(--color-white)}
.sec-contact-form .sec-title{font-size:2.5rem;line-height:1.3;margin-bottom:1rem}
.sec-contact-form .sec-sub{font-size:1rem;line-height:1.9;margin-bottom:2.125rem}

/* ---- footer column gap ---- */
.footer-dark .columns{--bulma-column-gap:20px}
