/* Sushi Culture Design System, adapted to Factoral's existing bilingual LP.
   Reference: skill 6abcbc7ed10c8191af4538084e8585d9, version 2.
   Keep the original DADS primitives and interaction semantics intact. */
:root {
  --ink:#10110f; --paper:#f1f2ed; --page-bg:var(--paper); --surface:var(--paper);
  --muted:#56594f; --line:#b2b4aa; --control-line:#85887d; --accent:var(--ink);
  --color-key-900:#10110f; --color-key-1000:#34372e; --color-key-1200:#10110f;
  --font-family-sans:Arial,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-story:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;
  --container-max:86rem;
}
body { font-family:var(--font-family-sans); -webkit-font-smoothing:antialiased; line-height:2; }
::selection { background:#bbc1a7; color:#10110f; }
h1,h2,h3 { font-weight:400; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:2px solid #baad7f; outline-offset:7px; box-shadow:none; }
.container { width:min(86%,var(--container-max)); }
.site-header { background:var(--ink); color:var(--paper); border-bottom:1px solid #ffffff26; }
.nav-shell { width:92.8%; padding-block:1.25rem; gap:1.5rem; }
.brand,.brand:visited { color:var(--paper); font-size:1.875rem; font-weight:800; }
.brand-mark { background:var(--paper); width:.5rem; height:.5rem; }
.desktop-nav { margin-left:auto; gap:1.75rem; }
.desktop-nav a { font-size:.8125rem; color:var(--paper); }
.desktop-nav a:hover,.language-switch a:hover { color:var(--paper); }
.language-switch { font-size:.75rem; }
.language-switch a,.language-switch>span { color:#a4a59b; }
.language-switch a[aria-current="page"] { color:var(--paper); }
.dads-button { border-radius:0; font-weight:400; font-size:1rem; gap:2rem; }
.site-header .dads-button[data-type="solid-fill"] { background:transparent; color:var(--paper); border:1px solid #85887d; font-size:.8125rem; }
.site-header .dads-button[data-type="solid-fill"]:hover { background:var(--paper); color:var(--ink); }
.dads-hamburger-menu-button { color:inherit; border-radius:0; }
.dads-hamburger-menu-button:hover { color:var(--ink); }
.dads-drawer { background:var(--ink); color:var(--paper); width:min(38rem,100%); }
.dads-drawer a { color:var(--paper); }
.mobile-nav a { font-size:1.75rem; font-weight:400; border-color:#ffffff40; }
.hero { background:var(--ink); color:var(--paper); padding-top:4.5rem; border-radius:0 0 70px 0; }
.hero-grid { grid-template-columns:minmax(0,1fr) 9rem; gap:0 3rem; }
.hero-copy { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; column-gap:3rem; }
.hero-edition { grid-column:1/-1; font-size:.6875rem; letter-spacing:.14em; margin-bottom:2.5rem; color:#c6c8bf; }
.hero-display { grid-column:1/-1; font-size:clamp(5rem,10.6vw,10.5rem); line-height:.96; letter-spacing:-.075em; font-weight:500; margin-left:-.055em; margin-bottom:3rem; }
.hero-display span { color:#929588; }
.hero .eyebrow { grid-column:1/-1; font-size:.8125rem; color:#a4a59b; margin-bottom:1rem; }
.hero .eyebrow::before { display:none; }
.hero h1 { font-family:var(--font-story); font-size:clamp(1.75rem,2.6vw,2.75rem); line-height:1.6; letter-spacing:.025em; grid-row:4 / span 2; }
.hero-lead { color:#c6c8bf; font-size:1rem; margin:0; }
.hero-actions { grid-column:2; flex-direction:column; gap:.75rem; margin-top:1.5rem; }
.hero .dads-button[data-type="solid-fill"] { background:var(--paper); border-color:var(--paper); color:var(--ink); }
.hero .dads-button[data-type="solid-fill"]:hover { background:#d9dccf; border-color:#d9dccf; }
.hero .inline-link { color:var(--paper); font-size:.8125rem; font-weight:400; }
.hero-margin { color:#a4a59b; font-size:.6875rem; letter-spacing:.1em; align-self:start; margin-top:5rem; }
.hero-rule { background:#ffffff40; }
.hero-bottom { justify-content:space-between; margin-top:3rem; padding-block:1.5rem 2rem; border-color:#ffffff40; }
.hero-footnote { font-size:.625rem; letter-spacing:.15em; line-height:1.8; color:#a4a59b; }
.hero-bottom .inline-link { width:6.75rem; height:6.75rem; border:1px solid #77796f; border-radius:50%; text-align:center; justify-content:center; flex-direction:column; gap:.125rem; padding:1rem; text-decoration:none; font-size:.75rem; }
.hero-bottom .inline-link:hover { background:var(--paper); color:var(--ink); }
.section { padding-block:5.5rem 7rem; }
.chapter-label { display:flex; justify-content:space-between; gap:1.5rem; padding-bottom:1.5rem; border-bottom:1px solid var(--line); margin-bottom:4.5rem; font-size:.6875rem; letter-spacing:.12em; line-height:1.6; }
.chapter-label span:last-child { text-align:right; }
.section-head { margin-bottom:3rem; }
.section-head h2 { font-family:var(--font-story); font-size:clamp(2rem,3vw,3rem); letter-spacing:.025em; }
.profile-grid { grid-template-columns:1.1fr 1fr; gap:9%; align-items:center; }
.portrait img { aspect-ratio:4/5; object-position:50% 40%; border-radius:0; }
.portrait figcaption { justify-content:space-between; margin-top:1rem; font-size:.75rem; letter-spacing:.08em; }
.portrait-name { font-size:1.75rem; font-weight:400; }
.profile-copy .eyebrow { font-size:.75rem; }
.profile-copy h2 { font-family:var(--font-story); font-size:clamp(1.75rem,2.7vw,2.75rem); line-height:1.75; letter-spacing:.025em; }
.profile-lead { line-height:2.2; font-size:1rem; }
.credentials { gap:1.25rem 1.5rem; }
.credentials h3 { font-weight:500; }
.credentials p { font-size:.875rem; }
.inline-link { font-weight:400; font-size:.875rem; }
.brand-statement { overflow:hidden; background:var(--paper); padding:1rem 7% 0; }
.brand-statement span { display:block; font-size:clamp(2.5rem,11.3vw,11rem); letter-spacing:-.075em; line-height:1; }
#challenges { padding-block:6rem; }
.challenge-grid { counter-reset:challenge; }
.challenge-row { grid-template-columns:minmax(0,1.3fr) minmax(0,1.6fr) auto; padding-block:2.5rem; }
.challenge-row h3 { display:flex; align-items:center; gap:1.5rem; font-size:1.5rem; }
.challenge-row h3::before { counter-increment:challenge; content:"0" counter(challenge); font-family:Arial,sans-serif; font-size:.6875rem; color:var(--muted); letter-spacing:.08em; }
.challenge-row p { font-size:1rem; }
#deliverables { background:var(--ink); color:var(--paper); padding-block:5.5rem 7rem; --muted:#c6c8bf; --line:#ffffff40; }
#deliverables .section-head { margin-bottom:4.5rem; }
.deliverables-grid { gap:4rem; }
.deliverable,.deliverable:nth-child(even) { grid-template-columns:1fr 1.1fr; gap:9%; border-bottom:1px solid var(--line); padding-bottom:4rem; }
.deliverable:last-child { border:0; padding-bottom:0; }
.deliverable:nth-child(even) .service-copy { order:0; }
.service-index { font-size:.6875rem; letter-spacing:.14em; }
.service-copy h3 { font-family:var(--font-story); font-size:clamp(1.875rem,2.7vw,2.75rem); letter-spacing:.035em; }
.service-summary { font-size:.9375rem; gap:.5rem 1rem; }
.support-diagram { --diagram-line:#85887d; border-radius:0; background:#1c1e18; color:var(--paper); padding:2.25rem; border:1px solid #ffffff26; }
.support-diagram::before { display:none; }
.map-inputs li { background:transparent; border-color:#85887d; border-radius:0; }
.strategy-hub { background:var(--paper); border-radius:0; box-shadow:none; }
.map-outputs li { background:#34372e; border-color:#929588; }
.market-center span,.market-center strong { color:#c6c8bf; }
.market-cycle li { border-radius:0; background:var(--paper); color:var(--ink); border-color:#b2b4aa; box-shadow:none; }
.market-cycle li>span:not(.node-step),.build-index,.build-stack li>div>span,.build-stack p { color:#56594f; }
.market-cycle i { color:#c6c8bf; }
.build-stack li { background:var(--paper); border-radius:0; box-shadow:none; }
.build-stack li:nth-child(2) { background:#dce0d2; }
.build-stack li:nth-child(3) { background:#c4cab6; }
.ops-source,.ops-result { border-radius:0; border-color:#85887d; }
.ops-source { background:var(--paper); color:var(--ink); }
.ops-source>span,.ops-lane p,.lane-symbol { color:#56594f; }
.ops-lane { background:#c4cab6; border-color:#85887d; color:var(--ink); }
.ops-lane:last-child { background:var(--paper); }
.ops-result { background:#34372e; }
.ops-result>span { color:#c6c8bf; }
#process { padding-block:5.5rem 7rem; border-top:0; }
.process-grid { gap:3rem; }
.process-card { border-top:1px solid var(--line); padding-top:1.5rem; }
.step-number { font-size:3rem; line-height:1; letter-spacing:-.05em; color:#676d5b; margin-bottom:2.25rem; }
.process-card h3 { font-family:var(--font-story); font-size:1.75rem; }
.process-card>p { font-size:1rem; }
.process-card:not(:last-child)::after { background:var(--paper); }
#plans { background:#e5e7df; }
.plans { gap:0; border-top:1px solid var(--ink); }
.content-card { background:transparent; border:0; border-bottom:1px solid var(--line); padding:2.5rem 3rem 2.5rem 0; }
.content-card:nth-child(even) { border-left:1px solid var(--line); padding-left:3rem; padding-right:0; }
.plan-label { font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; }
.plan h3 { font-family:var(--font-story); font-size:2rem; }
.plan .dads-description-list { border:0; }
.dads-description-list dt { font-size:.75rem; letter-spacing:.05em; font-weight:400; color:var(--muted); }
.dads-description-list dd { color:var(--ink); font-size:1rem; margin-bottom:1.25rem; }
.plans-consultation { padding-top:3.5rem; }
.plans-consultation h3 { font-family:var(--font-story); }
.faq-grid { gap:8%; }
.dads-accordion { border-color:var(--line); }
.dads-accordion__summary { padding-block:1.75rem; }
.dads-accordion__summary h3 { font-size:1rem; line-height:1.8; }
.dads-accordion__icon { color:var(--ink); border-color:var(--line); }
.contact-section { background:var(--ink); color:var(--paper); padding-block:5.5rem 6rem; }
.contact-section .chapter-label { border-color:#ffffff40; }
.contact-display { font-size:clamp(3.5rem,9.5vw,9.5rem); line-height:1.05; letter-spacing:-.07em; margin-bottom:4rem; }
.contact-display span { color:#929588; }
.contact-panel { border-top:1px solid #ffffff40; padding-top:3rem; }
.contact-panel h2 { font-family:var(--font-story); font-size:clamp(1.75rem,2.7vw,2.75rem); letter-spacing:.04em; }
.contact-section .dads-button[data-type="solid-fill"] { background:var(--paper); border-color:var(--paper); color:var(--ink); }
.contact-section .dads-button[data-type="solid-fill"]:hover { background:#d9dccf; border-color:#d9dccf; color:var(--ink); }
.footer { padding-block:2.5rem; }
.footer-logo { width:6rem; mix-blend-mode:multiply; }
.reveal { transition:opacity 1.6s cubic-bezier(.25,.46,.45,.94) .12s,transform 1.6s cubic-bezier(.25,.46,.45,.94) .12s; }
.reveal-pending { opacity:0; transform:translateY(36px); transition:none; }
html:lang(en) .hero h1 { font-family:var(--font-family-sans); font-size:clamp(1.75rem,2.6vw,2.75rem); line-height:1.5; letter-spacing:-.035em; }
html:lang(en) :is(.section-head h2,.profile-copy h2,.service-copy h3,.process-card h3,.plan h3,.plans-consultation h3,.contact-panel h2) { font-family:var(--font-family-sans); letter-spacing:-.04em; }
@media(max-width:79.999rem) { .desktop-nav { gap:1rem; } .nav-shell { gap:1rem; } }
@media(max-width:63.999rem) {
  .hero-grid { grid-template-columns:1fr; }
  .hero-copy { gap:0 2rem; }
  .hero-margin { display:none; }
  .hero-display { font-size:clamp(4.5rem,12vw,8rem); }
  .profile-grid { gap:6%; }
  .deliverable,.deliverable:nth-child(even) { grid-template-columns:1fr 1.2fr; gap:5%; }
  .support-diagram { padding:1.5rem; }
  .contact-panel { grid-template-columns:1fr auto; }
  .header-booking { margin-left:0; }
}
@media(max-width:47.999rem) {
  .container { width:88%; }
  .nav-shell { width:88%; padding-block:1rem; }
  .hero { padding-top:2.75rem; border-radius:0 0 38px 0; }
  .hero-copy { grid-template-columns:1fr; }
  .hero-edition { font-size:.625rem; margin-bottom:2.5rem; }
  .hero-display { font-size:clamp(3.5rem,15.5vw,7rem); margin-bottom:2.25rem; }
  .hero .eyebrow { font-size:.75rem; line-height:1.8; margin-bottom:.875rem; }
  .hero h1,html:lang(en) .hero h1 { grid-row:auto; font-size:clamp(1.5rem,6vw,2rem); line-height:1.65; }
  .hero-lead { margin-top:1.25rem; font-size:1rem; }
  .hero-actions { grid-column:1; margin-top:1.75rem; }
  .hero-bottom { margin-top:2rem; padding-bottom:1.5rem; }
  .hero-bottom .inline-link { width:5.25rem; height:5.25rem; font-size:.625rem; padding:.5rem; }
  .hero-footnote { font-size:.5625rem; }
  .section,#process,#deliverables,#challenges { padding-block:3.5rem; }
  .chapter-label { font-size:.625rem; gap:1rem; margin-bottom:2.5rem; padding-bottom:1.125rem; }
  .chapter-label span:last-child { max-width:46%; }
  .profile-grid { grid-template-columns:1fr; gap:2.5rem; }
  .portrait { max-width:none; }
  .portrait img { aspect-ratio:1; }
  .profile-copy h2 { font-size:1.75rem; }
  .brand-statement { padding-inline:6%; }
  .brand-statement span { font-size:11.3vw; }
  .section-head h2 { font-size:1.875rem; }
  .challenge-row { grid-template-columns:1fr; padding-block:1.75rem; }
  .challenge-row h3 { font-size:1.375rem; gap:1rem; }
  .deliverable,.deliverable:nth-child(even) { grid-template-columns:1fr; gap:2rem; padding-bottom:3rem; }
  .deliverables-grid { gap:3rem; }
  .support-diagram { max-width:none; padding:1.25rem; }
  .process-grid { gap:2.5rem; }
  .process-card { border-top:0; }
  .step-number { font-size:2.5rem; margin-bottom:1rem; }
  .content-card,.content-card:nth-child(even) { border-left:0; padding:2rem 0; }
  .contact-section { padding-block:3.5rem; }
  .contact-display { font-size:clamp(2.5rem,10.5vw,5rem); margin-bottom:2.5rem; }
  .contact-panel { grid-template-columns:1fr; padding-top:2rem; gap:2rem; }
  .contact-panel h2 { font-size:1.75rem; }
  .footer { padding-block:2rem; }
  .footer-links { gap:.25rem 1rem; }
}
@media(prefers-reduced-motion:reduce) { .reveal-pending { opacity:1; transform:none; } }
@media(forced-colors:active) {
  .hero,.site-header,.contact-section,#deliverables { border:1px solid CanvasText; }
  .hero-display span,.contact-display span { color:CanvasText; }
  .brand-mark { background:CanvasText; }
}
/* State overrides must outrank the inherited component selectors. */
.dads-button[data-size] { border-radius:0; }
.dads-hamburger-menu-button__icon { color:currentColor; }
.site-header a:focus-visible,.site-header button:focus-visible,
.dads-drawer a:focus-visible,.dads-drawer button:focus-visible,
.hero .inline-link:focus-visible { background:var(--paper); color:var(--ink); }
.language-switch a[aria-current="page"]:focus-visible { color:var(--ink); }
.dads-accordion__icon { background:transparent; top:1.75rem; }
.dads-button:focus-visible,.dads-hamburger-menu-button:focus-visible,.dads-accordion__summary:focus-visible {
  outline:2px solid #baad7f; outline-offset:7px; box-shadow:none;
}
.dads-accordion__summary:focus-visible { background:#e5e7df; border-radius:0; }
.contact-section .dads-button[data-type="solid-fill"]:active { background:#c4cab6; border-color:#c4cab6; color:var(--ink); }
/* Use the same ink palette for ordinary links as for the section typography. */
.inline-link,.inline-link:visited,.footer-links a,.footer-links a:visited { color:var(--ink); }
.inline-link:hover,.footer-links a:hover { color:#56594f; }
.hero .inline-link,.hero .inline-link:visited,.contact-section .inline-link,.contact-section .inline-link:visited { color:var(--paper); }
.hero .inline-link:focus-visible,.contact-section .inline-link:focus-visible { color:var(--ink); }
.hero-bottom .inline-link:hover { color:var(--ink); }
/* A quieter opening and one booking action at a time. */
.hero { padding-block:3.75rem 4.5rem; }
.hero-grid { display:block; }
.hero-display { font-size:clamp(4rem,9vw,8.5rem); margin-bottom:2.75rem; }
.hero h1 { grid-row:2 / span 2; }
.hero-lead { grid-column:2; grid-row:2; max-width:30em; }
.hero-actions { grid-row:3; }
.header-booking { visibility:hidden; pointer-events:none; }
.header-booking.booking-visible { visibility:visible; pointer-events:auto; }
.support-diagram.service-image { padding:0; border:0; background:#10110f; aspect-ratio:3/2; container-type:normal; }
.service-image img { width:100%; height:100%; object-fit:cover; }
@media(max-width:63.999rem) {
  .header-booking,.menu-ready .header-booking.booking-visible { display:none; }
}
@media(max-width:47.999rem) {
  .hero { padding-block:2.75rem 3rem; }
  .hero-display { font-size:clamp(3.5rem,15.5vw,7rem); margin-bottom:2rem; }
  .hero h1,.hero-lead,.hero-actions { grid-column:1; grid-row:auto; }
  .hero-lead { margin-top:1.25rem; }
  .hero-actions { margin-top:1.5rem; }
}
