/* rezainworks corporate site v3 (2026-10-01)
   Design tokens and component styles from the rezainworks design system (values unchanged).
   Rules marked "static build" are additions or adjustments for this plain HTML/CSS/JS version. */

/* ---------- tokens: colors ---------- */
:root{
--paper:#F7F6F2;
--surface:#FFFFFF;
--ink:#1A1F3A;
--text:#1B1F2E;
--muted:#5B6172;
--line:#E1DFD7;
--accent:#C2410C;
--accent-2:#9A3412;
--on-ink:#FFFFFF;
--on-ink-muted:#B9BDCC; /* 8.6:1 on --ink */
--on-ink-accent:#F08A5D; /* 6.5:1 on --ink */
--on-ink-line:rgba(255,255,255,.18);
--bg-page:var(--paper);
--bg-alt:var(--surface);
--surface-card:var(--surface);
--surface-header:var(--surface);
--surface-dark:var(--ink);
--text-heading:var(--ink);
--text-body:var(--text);
--text-muted:var(--muted);
--text-link:var(--ink);
--border-hairline:var(--line);
--border-strong:var(--ink);
--brand-accent:var(--accent);
--brand-accent-hover:var(--accent-2);
--gradient-primary:linear-gradient(135deg,#C2410C,#9A3412);
--focus-ring:0 0 0 3px rgba(194,65,12,.35);
}
/* ---------- tokens: spacing ---------- */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:48px;--space-9:64px;--space-10:80px;--space-11:96px;
--container-max:1120px;
--gutter-sp:20px;--gutter-pc:40px;
--section-pad-sp:64px;--section-pad-pc:96px;
--header-h:72px;
--radius-sm:8px;--radius-btn:12px;--radius-card:16px;--radius-media:16px;
--shadow-card:0 2px 8px rgba(26,31,58,.06);
--shadow-media:0 12px 32px rgba(26,31,58,.10);
--shadow-btn:0 4px 12px rgba(154,52,18,.22);
--shadow-btn-hover:0 6px 16px rgba(154,52,18,.28);
--border-w:1px;--border-w-strong:2px;
--ease-out:cubic-bezier(.2,.7,.2,1);
--dur-fast:150ms;--dur-base:200ms;--dur-enter:300ms;
--rise-enter:8px;
--control-h:48px;--tap-min:44px;
}
/* ---------- tokens: typography ---------- */
:root{
--font-mincho:"Shippori Mincho",serif;
--font-gothic:"Zen Kaku Gothic New",sans-serif;
--font-label:"Lexend",sans-serif;
--font-garamond:"EB Garamond",serif;
--font-heading:var(--font-mincho);
--font-quote:var(--font-mincho);
--font-body:var(--font-gothic);
--font-section-label:var(--font-label);
--font-wordmark:var(--font-garamond);
--font-number:var(--font-garamond);
--fw-regular:400;--fw-medium:500;--fw-bold:700;
--fw-heading:500;--fw-heading-strong:600;
--fs-body:16px;--lh-body:1.85;
--fs-small:14px;--lh-small:1.8;
--fs-xsmall:13px;
--fs-label:12px;--ls-label:.18em;
--fs-h1:clamp(2rem,4.2vw,3.25rem);--lh-h1:1.4;
--fs-h2:clamp(1.6rem,2.6vw,2.2rem);--lh-h2:1.45;
--fs-h3:1.25rem;--lh-h3:1.5;
--fs-quote:clamp(1.25rem,2vw,1.6rem);--lh-quote:1.9;
--fs-flow-number:2.75rem;
--fs-wordmark:1.625rem;
--ls-heading:.04em;
}

/* ---------- page base (static build) ---------- */
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 8px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0}
[hidden]{display:none!important}
main:focus{outline:none}

/* ---------- base ---------- */
.rw-root{font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-body);background:var(--bg-page);-webkit-font-smoothing:antialiased;text-wrap:pretty}
.rw-root *,.rw-root *::before,.rw-root *::after{box-sizing:border-box}
.rw-root a{color:var(--text-link)}
/* focus (static build): a solid 2px outline that passes 3:1 on every background */
.rw-root a:not(.rw-btn):not(.rw-skip):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
.rw-skip:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.rw-contact a:not(.rw-btn):focus-visible{outline-color:var(--on-ink-accent)}
.rw-container{max-width:calc(var(--container-max) + 2*var(--gutter-sp));margin:0 auto;padding:0 var(--gutter-sp)}
@media (min-width:1024px){.rw-container{max-width:calc(var(--container-max) + 2*var(--gutter-pc));padding:0 var(--gutter-pc)}}
.rw-section{padding:var(--section-pad-sp) 0}
@media (min-width:1024px){.rw-section{padding:var(--section-pad-pc) 0}}
.rw-section--paper{background:var(--paper)}.rw-section--white{background:var(--surface)}
.rw-h1,.rw-h2,.rw-h3{font-family:var(--font-heading);font-weight:var(--fw-heading);color:var(--text-heading);letter-spacing:var(--ls-heading);margin:0}
.rw-h1{font-size:var(--fs-h1);line-height:var(--lh-h1);font-weight:var(--fw-heading-strong)}
/* static build: keep the h1 on two lines down to 320px wide (the longer line is about 10em incl. letter-spacing) */
@media (max-width:1023.98px){.rw-h1{font-size:min(var(--fs-h1),calc((100vw - 40px) / 10.6))}}
.rw-h2{font-size:var(--fs-h2);line-height:var(--lh-h2)}
.rw-h3{font-size:var(--fs-h3);line-height:var(--lh-h3);font-weight:var(--fw-heading-strong)}
.rw-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* section label */
.rw-label{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-section-label);font-weight:500;font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--accent);line-height:1;margin:0}
.rw-label::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}
.rw-label--on-ink{color:var(--on-ink-accent)}.rw-label--on-ink::before{background:var(--on-ink-accent)}
/* buttons */
.rw-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-h);padding:0 28px;border-radius:var(--radius-btn);font-family:var(--font-body);font-weight:var(--fw-bold);font-size:15px;letter-spacing:.04em;line-height:1.3;text-decoration:none;cursor:pointer;border:0;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background-color var(--dur-base),color var(--dur-base)}
.rw-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.rw-contact .rw-btn:focus-visible{outline-color:var(--on-ink-accent)}
.rw-btn--primary{background:var(--gradient-primary);color:#fff!important;box-shadow:var(--shadow-btn)}
.rw-btn--primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-btn-hover)}
.rw-btn--secondary{background:transparent;color:var(--ink)!important;border:2px solid var(--ink)}
.rw-btn--secondary:hover{transform:translateY(-1px);background:rgba(26,31,58,.04)}
.rw-btn--sm{min-height:40px;padding:0 20px;font-size:14px}
.rw-btn--block{width:100%} /* static build: SP menu panel */
/* text link */
.rw-link{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-weight:var(--fw-medium);font-size:var(--fs-small);text-decoration:none;transition:color var(--dur-fast)}
.rw-link:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.rw-link__arrow{display:inline-block;transition:transform var(--dur-base) var(--ease-out);text-decoration:none}
.rw-link:hover .rw-link__arrow{transform:translateX(3px)}
.rw-link--on-ink{color:#fff}
/* wordmark */
.rw-wordmark{font-family:var(--font-wordmark);font-weight:500;color:var(--ink);letter-spacing:.005em;line-height:1;text-decoration:none;white-space:nowrap;font-size:26px}
.rw-wordmark__dot{color:var(--accent)}
.rw-wordmark--on-ink{color:#fff}
/* header */
.rw-header{position:sticky;top:0;z-index:50;background:var(--surface-header);border-bottom:1px solid var(--line)}
.rw-header__bar{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);gap:24px}
.rw-header__nav{display:none;align-items:center;gap:28px}
.rw-header__nav a:not(.rw-btn){font-size:14px;font-weight:500;color:var(--ink);text-decoration:none;padding:12px 0} /* static build: taller hit area */
.rw-header__nav a:not(.rw-btn):hover{text-decoration:underline;text-underline-offset:4px}
.rw-header__menu-btn{min-height:var(--tap-min);min-width:var(--tap-min);padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-family:var(--font-body);font-weight:700;font-size:14px;color:var(--ink);cursor:pointer}
.rw-header__menu-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
html:not(.js) .rw-header__menu-btn{display:none} /* static build: the menu needs JS */
.rw-header__panel{border-top:1px solid var(--line);background:var(--surface);padding:8px 0 20px;max-height:calc(100vh - var(--header-h));max-height:calc(100dvh - var(--header-h));overflow-y:auto;overscroll-behavior:contain}
.rw-header__panel-nav{display:flex;flex-direction:column}
.rw-header__panel-nav a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:500}
.rw-header__panel-cta{margin-top:20px}
@media (min-width:1024px){.rw-header__nav{display:flex}.rw-header__menu-btn,.rw-header__panel{display:none!important}}
/* hero */
@keyframes rw-rise{from{opacity:0;transform:translateY(var(--rise-enter))}to{opacity:1;transform:none}}
.rw-hero{padding-top:56px;padding-bottom:64px}
.rw-hero__grid{display:grid;gap:40px;align-items:center}
@media (min-width:1024px){.rw-hero__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px}}
.rw-hero__text{animation:rw-rise var(--dur-enter) ease-out both}
.rw-hero__lead{margin:24px 0 0;font-size:var(--fs-body);color:var(--text)}
.rw-hero__actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:32px}
.rw-media{position:relative;border-radius:var(--radius-media);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--shadow-media);background:var(--line)}
.rw-media picture{display:block;width:100%;height:100%}
@supports not (aspect-ratio:1/1){.rw-media{height:0;padding-top:75%}.rw-media picture{position:absolute;top:0;left:0}}
.rw-media img{width:100%;height:100%;object-fit:cover;display:block}
@media (prefers-reduced-motion:reduce){.rw-hero__text{animation:none}.rw-btn,.rw-link__arrow,.rw-faq__mark::before,.rw-faq__mark::after{transition:none}}
/* section head */
.rw-head{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:40px}
/* philosophy */
.rw-philo{display:grid;gap:40px}
@media (min-width:1024px){.rw-philo{grid-template-columns:1fr 1fr;gap:0}.rw-philo__col+.rw-philo__col{border-left:1px solid var(--line);padding-left:48px}.rw-philo__col:first-child{padding-right:48px}}
@media (max-width:1023.98px){.rw-philo__col+.rw-philo__col{border-top:1px solid var(--line);padding-top:40px}}
.rw-philo__sub{font-family:var(--font-body);font-weight:500;font-size:15px;color:var(--muted);margin:0 0 16px}
.rw-philo__quote{font-family:var(--font-quote);font-weight:500;font-size:var(--fs-quote);line-height:var(--lh-quote);color:var(--ink);margin:0;letter-spacing:.04em}
.rw-philo__quote p{margin:0}
.rw-skip{position:absolute;left:16px;top:-100px;z-index:100;background:var(--ink);color:#fff!important;padding:12px 20px;border-radius:var(--radius-sm);font-weight:700;text-decoration:none}.rw-skip:focus{top:12px}
/* business card */
.rw-biz-grid{display:grid;gap:24px}
@media (min-width:768px){.rw-biz-grid{grid-template-columns:1fr 1fr}}
.rw-card{display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden;height:100%}
.rw-card__photo{aspect-ratio:16/10;width:100%;height:auto;object-fit:cover;display:block;background:var(--line)}
.rw-card__body{display:flex;flex-direction:column;flex:1;padding:28px 28px 28px}
.rw-card__text{margin:12px 0 0;font-size:15px}
.rw-card__sub{margin:20px 0 6px;font-size:14px;font-weight:700;color:var(--ink)}
.rw-card__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;font-size:14px;color:var(--text)}
.rw-card__list li{position:relative;padding-left:18px}
.rw-card__list li::before{content:"";position:absolute;left:2px;top:.9em;width:8px;height:1px;background:var(--muted)}
.rw-card__plain{margin:12px 0 0;padding:0;list-style:none;font-size:14px;color:var(--muted)}
.rw-card__foot{margin-top:auto;padding-top:24px}
.rw-card__foot .rw-link{min-height:var(--tap-min);margin:-10px 0} /* static build: 44px hit area without changing the card height */
/* flow */
.rw-flow{display:grid;gap:0;list-style:none;margin:0;padding:0}
.rw-flow__step{padding:24px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;column-gap:20px;align-items:baseline}
.rw-flow__step:last-child{border-bottom:1px solid var(--line)}
@media (min-width:1024px){.rw-flow{grid-template-columns:repeat(4,1fr)}.rw-flow__step{border:0;border-left:1px solid var(--line);padding:4px 28px;display:block}.rw-flow__step:first-child{border-left:0;padding-left:0}.rw-flow__step:last-child{border-bottom:0}}
.rw-flow__num{font-family:var(--font-number);font-weight:500;font-size:var(--fs-flow-number);line-height:1;color:var(--accent);grid-row:span 2}
.rw-flow__title{font-family:var(--font-body);font-weight:700;font-size:17px;color:var(--ink);margin:0}
@media (min-width:1024px){.rw-flow__title{margin-top:16px}}
.rw-flow__text{margin:6px 0 0;font-size:14px;color:var(--muted)}
/* faq */
.rw-faq{display:flex;flex-direction:column;gap:12px}
.rw-faq__item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}
.rw-faq__q{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:12px 20px;cursor:pointer;font-weight:700;font-size:15px;color:var(--ink)}
.rw-faq__q::-webkit-details-marker{display:none}
.rw-faq__q:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}
.rw-faq__mark{position:relative;width:14px;height:14px;flex:none}
.rw-faq__mark::before,.rw-faq__mark::after{content:"";position:absolute;left:0;top:50%;width:14px;height:1.5px;background:var(--ink);transition:transform var(--dur-base) var(--ease-out)}
.rw-faq__mark::after{transform:rotate(90deg)}
.rw-faq__item[open] .rw-faq__mark::after{transform:rotate(0)}
.rw-faq__item[open] .rw-faq__mark::before,.rw-faq__item[open] .rw-faq__mark::after{background:var(--accent)}
.rw-faq__a{padding:0 20px 20px;margin:0;color:var(--text);font-size:15px}
/* contact band */
.rw-contact{background:var(--ink);color:var(--on-ink);padding:56px 0}
.rw-contact__grid{display:grid;gap:32px;align-items:center}
@media (min-width:1024px){.rw-contact__grid{grid-template-columns:1fr auto}}
.rw-contact__lead{margin:14px 0 0;font-size:17px;color:#fff}
.rw-contact__side{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.rw-contact__mail{font-size:14px;color:var(--on-ink-muted);margin:6px 0 0}
.rw-root .rw-contact__mail a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.rw-contact__note,.rw-contact__disclaimer{font-size:13px;color:var(--on-ink-muted);margin:0}
/* about */
.rw-about{display:grid;gap:32px}
@media (min-width:1024px){.rw-about{grid-template-columns:280px 1fr;gap:48px}}
.rw-table{width:100%;border-collapse:collapse;font-size:15px;background:var(--surface)}
.rw-table th,.rw-table td{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 20px;text-align:left;vertical-align:top}
.rw-table th{width:32%;font-weight:700;color:var(--ink);font-size:14px;background:var(--paper)}
.rw-table td{color:var(--text);overflow-wrap:anywhere}
/* footer */
.rw-footer{background:var(--paper)}
.rw-footer__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:24px 0 32px;font-size:13px;color:var(--muted)}
.rw-footer__bar small{font-size:13px}
.rw-footer__bar a{color:var(--ink);text-decoration:none;font-size:13px;padding:12px 0;margin:-12px 0} /* static build: taller hit area, same footer height */
.rw-footer__bar a:hover{text-decoration:underline;text-underline-offset:4px}

/* ---------- privacy page (static build; same tokens, long-form text) ---------- */
.rw-doc{padding:56px 0 80px;background:var(--surface)}
.rw-doc__inner{max-width:760px}
.rw-doc h1{font-family:var(--font-heading);font-weight:var(--fw-heading-strong);font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-heading);color:var(--ink);margin:16px 0 32px}
.rw-doc h2{font-family:var(--font-body);font-weight:700;font-size:17px;color:var(--ink);margin:40px 0 8px}
.rw-doc p{margin:0 0 12px;font-size:15px}
.rw-doc a{overflow-wrap:anywhere;text-underline-offset:3px}
.rw-doc__small{font-size:13px!important;color:var(--muted)}
.rw-doc__tight{margin-bottom:4px!important}
.rw-doc__last{margin-top:40px!important}
