@import 'tokens.css';

*{box-sizing:border-box;}
body{margin:0;background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body);}
a{color:var(--link);text-decoration:none;}
a:hover{color:var(--link-hover);}
button{font:inherit;}

.wrap{max-width:var(--content-max);margin:0 auto;padding:0 var(--content-pad);}

/* Nav */
.nav{position:sticky;top:0;z-index:50;background:var(--paper-50);border-bottom:1px solid var(--border-subtle);}
.nav-inner{max-width:var(--content-max);margin:0 auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;}
.wordmark{font-family:var(--font-display);font-size:24px;color:var(--indigo-600);cursor:pointer;letter-spacing:0.04em;background:none;border:none;padding:0;}
.nav-links{display:flex;gap:32px;align-items:center;}
.nav-link{font-family:var(--font-body);font-size:14px;cursor:pointer;white-space:nowrap;color:var(--text-tertiary);border:none;background:none;border-bottom:2px solid transparent;padding-bottom:4px;}
.nav-link.active{color:var(--text-primary);border-bottom-color:var(--indigo-600);}
.lang-toggle{display:flex;align-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-pill);font-size:12px;font-family:var(--font-body);cursor:pointer;overflow:hidden;background:none;padding:0;}
.lang-toggle span{padding:6px 12px;color:var(--text-tertiary);}
.lang-toggle span.on{background:var(--indigo-600);color:#fff;}

/* Buttons */
.btn{font-family:var(--font-body);font-weight:var(--weight-medium);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;flex-shrink:0;transition:background var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard);}
.btn-sm{padding:6px 14px;font-size:13px;}
.btn-md{padding:10px 20px;font-size:14px;}
.btn-lg{padding:13px 28px;font-size:16px;}
.btn-primary{background:var(--action-primary);color:#fff;}
.btn-primary:hover{background:var(--action-primary-hover);}
.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-subtle);}
.btn-secondary:hover{background:var(--bg-sunken);}
.btn-ghost{background:transparent;color:var(--action-primary);}
.btn-ghost:hover{background:var(--action-ghost-hover);}

/* Card */
.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:28px;display:flex;flex-direction:column;gap:12px;font-family:var(--font-body);}
.card h3{font-family:var(--font-display);font-size:20px;font-weight:var(--weight-medium);color:var(--text-primary);margin:0;}
.card p{color:var(--text-secondary);font-size:14px;line-height:var(--leading-body);margin:0;}

/* Badge / Tag */
.badge{display:inline-flex;align-items:center;font-family:var(--font-body);font-size:12px;font-weight:var(--weight-medium);padding:3px 10px;border-radius:var(--radius-sm);background:var(--indigo-100);color:var(--indigo-700);}
.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:12px;padding:4px 12px;border-radius:var(--radius-pill);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-secondary);}

/* Forms */
.field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-body);width:100%;}
.field span{font-size:13px;color:var(--text-secondary);}
.field input,.field select{font-family:var(--font-body);font-size:14px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);outline:none;background:var(--bg-surface);color:var(--text-primary);transition:box-shadow var(--duration-fast) var(--ease-standard);}
.field input:focus,.field select:focus{border-color:var(--focus-ring);box-shadow:var(--shadow-focus);}
.checkbox{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body);font-size:14px;cursor:pointer;color:var(--text-primary);}
.checkbox input{width:18px;height:18px;accent-color:var(--action-primary);}

/* Eyebrow / headings */
.eyebrow{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:12px;}
.display{font-family:var(--font-display);color:var(--text-primary);}

/* Footer */
.footer{border-top:1px solid var(--border-subtle);margin-top:96px;}
.footer-inner{max-width:var(--content-max);margin:0 auto;padding:48px 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;}
.footer-wordmark{font-family:var(--font-display);font-size:20px;color:var(--indigo-600);}
.footer-tag{font-family:var(--font-body);font-size:13px;color:var(--text-tertiary);}
.footer-contact{display:flex;gap:20px;font-family:var(--font-body);font-size:13px;color:var(--text-secondary);}

/* Home */
.hero{position:relative;min-height:480px;display:flex;align-items:center;background-image:url(../assets/hero-toyama-bay-bridge.jpg);background-size:cover;background-position:center;}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,20,25,0.6),rgba(15,20,25,0.25));}
.hero-inner{position:relative;max-width:var(--content-max);margin:0 auto;padding:0 24px;width:100%;}
.hero h1{font-family:var(--font-display);font-size:56px;color:var(--paper-50);line-height:var(--leading-display);max-width:640px;white-space:pre-line;margin:0;}
.hero p{font-family:var(--font-body);font-size:18px;color:var(--warm-200);margin-top:20px;max-width:520px;line-height:var(--leading-body);white-space:pre-line;}
.hero-ctas{display:flex;gap:12px;margin-top:32px;}

.section{max-width:var(--content-max);margin:0 auto;padding:96px 24px;}
.section-title{font-family:var(--font-display);font-size:32px;color:var(--text-primary);margin-bottom:48px;max-width:560px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}

.section-sunken{background:var(--bg-sunken);padding:96px 24px;}
.section-sunken-inner{max-width:var(--content-max);margin:0 auto;}
.row-between{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;}

.work-card{background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);overflow:hidden;}
.work-thumb{height:140px;background:linear-gradient(160deg,#1a3a5f,#16181d);}
.work-thumb.tall{height:150px;}
.work-body{padding:20px;}
.work-name{font-family:var(--font-body);font-weight:var(--weight-medium);font-size:15px;color:var(--text-primary);margin-bottom:6px;}
.work-desc{font-size:13px;color:var(--text-secondary);}

.quote-block{max-width:var(--content-max);margin:0 auto;padding:96px 24px;text-align:center;}
.quote-block .quote{font-family:var(--font-display);font-size:28px;color:var(--text-primary);max-width:640px;margin:0 auto;line-height:var(--leading-display);}
.quote-block .quote-by{font-size:13px;color:var(--text-tertiary);margin-top:16px;}

/* Services */
.services-list{display:flex;flex-direction:column;gap:1px;background:var(--border-subtle);}
.service-row{background:var(--bg-surface);padding:40px 32px;display:grid;grid-template-columns:240px 1fr;gap:40px;}
.service-title{font-family:var(--font-display);font-size:26px;color:var(--text-primary);margin-top:14px;}
.service-desc{font-size:15px;color:var(--text-secondary);line-height:var(--leading-body);margin-bottom:20px;max-width:480px;}
.service-items{display:flex;flex-direction:column;gap:10px;}
.service-item{font-size:14px;color:var(--text-primary);display:flex;gap:10px;align-items:baseline;}
.service-item .dot{color:var(--vermillion-500);}

/* Work grid card (marketing "work" replacement) */
.work-featured{display:flex;justify-content:center;padding:8px 0 24px;}
.work-featured .card{max-width:420px;align-items:center;text-align:center;}
.work-featured img{width:96px;height:96px;}

/* Contact */
.contact-grid{max-width:var(--content-max);margin:0 auto;padding:80px 24px;display:grid;grid-template-columns:1fr 1fr;gap:64px;}
.contact-info div{margin-bottom:10px;font-size:14px;color:var(--text-primary);}
.contact-info .muted{color:var(--text-tertiary);}
.contact-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:32px;}
.contact-form{display:flex;flex-direction:column;gap:18px;}
.sent{text-align:center;padding:40px 0;}
.sent h3{font-family:var(--font-display);font-size:22px;color:var(--text-primary);margin:0 0 8px;}
.sent p{font-size:14px;color:var(--text-secondary);margin:0;}

@media (max-width:860px){
  .grid-3{grid-template-columns:1fr;}
  .service-row{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .hero h1{font-size:40px;}
  .nav-links{gap:16px;}
}
