/* Hallmark · shape: Index-First · genre: modern-minimal · theme: brand · redesign: full
 * paper: white · accent: Robin Egg Blue · display: Noto Sans JP · body: Inter and Noto Sans JP · hero: Banner · nav: balanced service index · footer: compact directory · signature: high-load engineering statement with named cloud services
 * axes: light/grotesk-sans/cool · posture: restrained brand accents · job: hire · contrast: checked · fold: pending · v2.0.0 */
/* Hallmark · pre-emit critique: P4 H4 E3 S3 R4 V4 · weakest: S, existing concept art is generic; lead with the high-load statement and actual product identities instead */
/* Hallmark · waive 1 · supplied Robin Egg Blue DS explicitly declares Inter and Noto Sans JP · RHEMS Japan keeps its approved typography rather than taking a new theme */
/* Hallmark · waive 8 · original service and product sequence retained · RHEMS Japan visitor paths were agreed before the visual redesign */
/* Hallmark · dropped .eyebrow, .num, .service-no · decorative ordinal and category labels removed under gates 54 and 67; plain categories are now in the section headings */
/* Hallmark · reworded headings and hero sentence · gates 54 and 58 fold plain labels into headings and shorten the hero without changing the RHEMS Japan offer */
/* Hallmark · waive 59 · dense news index separated by rules and the following Pale Cyan section · user requested RHEMS Japan announcements immediately below the hero, so a compact news band intentionally uses smaller section gaps */
/* Hallmark · dismissed 42 · balanced service index intentionally retains all five RHEMS Japan visitor paths and the existing enquiry action */
/* Hallmark · answered F15 · old rules remain for compatibility; final layout overrides use the shared --hm-gap below the hero, with smaller mobile spacing */
:root{--overlay:rgb(0 0 0 / .45);--font-display:var(--font-stack);--font-body:var(--font-stack);--font-label:var(--font-stack);--hm-display:clamp(32px,4.3vw,60px);--hm-section:clamp(28px,3.2vw,44px);--hm-gap:var(--space-7);--space-hm-3:3px;--space-hm-6:6px;--space-hm-10:10px;--space-hm-14:14px;--space-hm-18:18px;--space-hm-20:20px;--space-hm-22:22px;--space-hm-28:28px;--space-hm-36:36px;--space-hm-40:40px;--space-hm-56:56px;--space-hm-64:64px;--space-hm-88:88px;--space-hm-110:110px;}
/* 添付DSのトークンは変更しない。図版と第三者ロゴ以外の色は意味別変数を参照。 */
*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--space-hm-110)}body{margin:0;background:var(--bg);color:var(--fg);font:var(--fs-body)/1.8 var(--font-stack);-webkit-font-smoothing:antialiased}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.5;letter-spacing:var(--tracking-heading)}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}button,a,summary{-webkit-tap-highlight-color:transparent}button{color:inherit}ul,ol{list-style:none;padding:0;margin:0}a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid var(--fg);outline-offset:5px}a:hover{text-decoration:none}.container{max-width:var(--container-max);width:calc(100% - 80px);margin-inline:auto}.section{padding-block:var(--section-pad-y)}.subtle{background:var(--bg-subtle)}h2{font-size:var(--fs-h2);font-weight:700}.lead{color:var(--fg-muted);max-width:620px;margin-top:var(--space-hm-18);font-size:var(--fs-body-l)}.section-title{display:flex;justify-content:space-between;align-items:end;gap:var(--space-hm-40);margin-bottom:var(--space-hm-40)}.section-title>.lead{max-width:450px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-hm-22);min-height:48px;padding:var(--space-3) var(--space-hm-22);border:1.5px solid var(--fg);border-radius:var(--radius-btn);background:var(--fg);color:var(--fg-on-dark);font-weight:700;font-size:15px;transition:background var(--dur-base),transform var(--dur-base)}.btn:hover{background:var(--bg-darker);transform:translateY(-1px)}.btn.light{background:var(--surface);color:var(--fg);border-color:var(--border)}.btn.light:hover{border-color:var(--fg)}.btn.accent{background:var(--accent);color:var(--fg);border-color:var(--accent)}.... [truncated]
/* ナビ：ロゴの縦横比を固定せず、原本SVGをそのまま使う */
header{position:sticky;top:0;z-index:30;background:var(--surface);border-bottom:1px solid var(--border)}.header-inner{height:88px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-hm-28)}.brand{min-height:48px;display:flex;align-items:center;flex-shrink:0;padding:var(--space-2)}.brand img{width:157px;height:auto}.nav{display:flex;align-items:center;gap:var(--space-5)}.nav>a{display:flex;align-items:center;min-height:44px;font-size:13px;font-weight:600}.nav>.btn{font-size:13px;min-height:44px;padding:var(--space-hm-10) var(--space-hm-18)}.nav>a:hover:not(.btn){text-decoration:underline;text-underline-offset:6px}.menu{display:none;border:1px solid var(--border);border-radius:var(--radius-btn);width:48px;height:48px;background:var(--surface)}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--surface);padding:var(--space-3)}.skip:focus{top:10px}
/* ヒーロー：生成画像は雰囲気、意味は読めるコピーが担う */
.hero{padding:var(--space-hm-64) 0 var(--space-7);overflow:hidden}.hero-grid{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(0, 1fr);gap:var(--space-7);align-items:center}.hero h1{font-size:var(--fs-display);line-height:1.45;font-weight:700;letter-spacing:-.035em}.hero h1 span{display:block;white-space:nowrap}.hero .intro{color:var(--fg-muted);font-size:var(--fs-body-l);line-height:1.95;margin-top:var(--space-hm-28);max-width:520px}.actions{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-hm-28)}.hero-visual{position:relative;min-width:0;background:var(--bg-subtle);border-radius:var(--radius-card);overflow:hidden;border:1px solid var(--border)}.hero-visual>img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center}.visual-caption{display:flex;gap:var(--space-3);justify-content:space-between;padding:var(--space-4) var(--space-hm-20);background:var(--surface);border-top:1px solid var(--border);font-size:12px;color:var(--fg-muted)}.hero-baseline{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-hm-36);padding-top:var(--space-5);border-top:1px solid var(--border);gap:var(--space-5)}.hero-baseline p{font-size:13px;color:var(--fg-muted)}.hero-baseline strong{color:var(--fg)}.mini-logos{display:flex;gap:var(--space-hm-36);align-items:center}.mini-logos img{width:112px;height:28px;object-fit:contain}.mini-logos .aws{width:52px}.mini-logos a{min-height:48px;display:flex;align-items:center}
/* 強みはカードを重ねず、左右の論旨を揃える */
.strength-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:var(--space-hm-88)}.strength-intro{padding-top:var(--space-3)}.principles{border-top:1px solid var(--border)}.principles article{display:grid;grid-template-columns:42px minmax(0, 1fr);gap:var(--space-5);padding:var(--space-hm-28) 0;border-bottom:1px solid var(--border)}.principles .num{font:500 13px/2 var(--font-mono);color:var(--fg-muted)}.principles h3{font-size:var(--fs-h3);margin-bottom:var(--space-hm-10)}.principles p{color:var(--fg-muted);font-size:15px}.principles .tag{display:inline-block;font-size:12px;margin-top:var(--space-3);color:var(--fg)}
/* サービスは課題と役務の対応表にする */
.service-list{border-top:1px solid var(--border)}.service-row{display:grid;grid-template-columns:52px minmax(0, 1fr) minmax(0,1.1fr) 44px;gap:var(--space-5);align-items:center;padding:var(--space-hm-28) 0;border-bottom:1px solid var(--border)}.service-row .service-no{font:500 13px var(--font-mono);color:var(--fg-muted)}.service-row h3{font-size:var(--fs-h3)}.service-row small{display:block;font-size:13px;color:var(--fg-muted);margin-top:var(--space-1)}.service-row p{color:var(--fg-muted);font-size:15px}.service-row .round-link{width:44px;height:44px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;font-size:22px}.service-row:hover .round-link{background:var(--accent);border-color:var(--accent)}
/* 抽象画像を撤去し、文字で意味が伝わるフローに置換 */
.ops{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:var(--space-6)}.ops article{padding:var(--space-6);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);display:flex;flex-direction:column}.ops h3{font-size:var(--fs-h2);margin-bottom:var(--space-3)}.ops .desc{color:var(--fg-muted);font-size:15px}.flowchart{margin-top:var(--space-hm-28);display:grid;grid-template-columns:minmax(0, 1fr) 22px minmax(0, 1fr) 22px minmax(0, 1fr);align-items:stretch;gap:0}.flowchart .stage{background:var(--bg-subtle);border:1px solid var(--border);padding:var(--space-hm-18) var(--space-hm-6);text-align:center;border-radius:var(--radius-sm)}.flowchart strong{font-size:15px;display:block}.flowchart small{display:block;font-size:11px;color:var(--fg-muted);margin-top:var(--space-1)}.flowchart .connector{align-self:center;text-align:center;color:var(--fg);font-size:18px}.flowchart .stage:last-child{background:var(--accent-tint);border-color:var(--accent)}.ops .note{font-size:13px;color:var(--fg-muted);margin-top:var(--space-hm-18);padding-top:var(--space-4);border-top:1px solid var(--border)}.ops .textlink{margin-top:var(--space-hm-14);align-self:start}.ops-foot{font-size:13px;color:var(--fg-muted);margin-top:var(--space-hm-22)}

/* クラウド：公式ロゴは原色のまま。認定バッジとしては扱わない */
.cloud-grid{display:grid;grid-template-columns:repeat(3,minmax(0, 1fr));border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.cloud-item{padding:var(--space-6);display:flex;flex-direction:column;min-width:0}.cloud-item+.cloud-item{border-left:1px solid var(--border)}.vendor-stage{height:80px;display:flex;align-items:center;justify-content:flex-start;margin-bottom:var(--space-hm-22)}.vendor-stage img{width:200px;height:56px;object-fit:contain;object-position:left center}.vendor-stage img.aws{width:92px;height:56px}.cloud-item h3{font-size:18px;margin-bottom:var(--space-3)}.cloud-item p{font-size:15px;color:var(--fg-muted);flex:1}.cloud-item .textlink{margin-top:var(--space-5)}.cloud-note{margin-top:var(--space-hm-20);font-size:13px;color:var(--fg-muted)}
.products-grid{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:var(--space-5)}.product{padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);container-type:inline-size}.product-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;min-height:64px}.product-logo{flex:0 1 auto;min-width:0}.product-top .pill{flex:0 0 100%;white-space:nowrap}.product-logo{display:flex;align-items:flex-end;min-height:64px;padding:var(--space-2) 0}.product-logo img{width:180px;max-width:100%;height:auto;max-height:52px;object-fit:contain;object-position:left center}.product-logo img.wordmark{width:140px}.product-name{font-size:32px;letter-spacing:-.04em;font-family:var(--font-latin);font-weight:700}.pill{padding:var(--space-hm-3) var(--space-3);font-size:12px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--fg-muted)}.product h3{margin-top:var(--space-hm-20);font-size:20px}.product p{margin-top:var(--space-hm-14);color:var(--fg-muted);font-size:15px}.product .textlink{display:block;margin-top:var(--space-5)}.product-actions .textlink{margin-top:0}.coming{display:flex;align-items:baseline;gap:var(--space-5);padding:var(--space-5) 0 0}.coming strong{font:600 20px var(--font-latin)}.coming p{color:var(--fg-muted);font-size:13px}
.before{display:grid;grid-template-columns:minmax(0, 1fr) 1.2fr;gap:var(--space-8)}.faq{border-top:1px solid var(--border)}details{border-bottom:1px solid var(--border)}summary{cursor:pointer;min-height:64px;list-style:none;padding:var(--space-hm-20) var(--space-6) var(--space-hm-20) 0;position:relative;font-weight:600}summary::-webkit-details-marker{display:none}summary:after{content:'＋';position:absolute;right:0}details[open] summary:after{content:'−'}details p{padding:0 var(--space-5) var(--space-5) 0;color:var(--fg-muted);font-size:15px}
.contact{background:var(--bg-dark);color:var(--fg-on-dark);padding:var(--space-hm-64) 0}.contact .container{display:flex;align-items:center;justify-content:space-between;gap:var(--space-hm-40)}.contact p{margin-top:var(--space-4);color:var(--accent-tint);max-width:630px}.contact .contact .btn{flex-shrink:0}.footer{padding:var(--space-7) 0 var(--space-5);background:var(--bg-darker);color:var(--fg-on-dark)}.footer-top{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0,1.3fr);gap:var(--space-hm-64)}.footer-brand{background:var(--surface);padding:var(--space-4) var(--space-hm-20);width:205px;border-radius:var(--radius-sm)}.footer-brand img{width:165px;height:auto}.footer p{font-size:13px;margin-top:var(--space-hm-20);color:var(--accent-tint);max-width:360px}.footer-links{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:var(--space-2) var(--space-5);align-content:start}.footer-links a,.footer-links button{display:flex;align-items:center;min-height:44px;font-size:13px;text-align:left;padding:0;border:0;color:var(--fg-on-dark);background:transparent}.footer-links a:hover,.footer-links button:hover{text-decoration:underline}.footer-bottom{border-top:1px solid var(--fg-muted);margin-top:var(--space-6);padding-top:var(--space-5);display:flex;justify-content:space-between;gap:var(--space-hm-20);font-size:12px;color:var(--accent-tint)}.prototype-note{color:var(--fg-muted);font-size:12px;padding:var(--space-3) var(--space-hm-20);text-align:center;border-top:1px solid var(--border);background:var(--bg)}
/* 未制作の下層リンクは準備中と明示。問い合わせは送信しない試作ダイアログ */
dialog{border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-6);max-width:560px;width:calc(100% - 40px);background:var(--surface);color:var(--fg)}dialog::backdrop{background:var(--overlay)}dialog h2{font-size:24px;padding-right:var(--space-hm-40)}dialog p{margin-top:var(--space-hm-18);color:var(--fg-muted)}.close-dialog{position:absolute;right:16px;top:16px;width:44px;height:44px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-btn)}dialog label{display:block;margin-top:var(--space-5);font-weight:600}dialog select{display:block;width:100%;min-height:48px;padding:var(--space-2);margin-top:var(--space-2);border:1px solid var(--fg-muted);border-radius:var(--radius-btn);background:var(--surface);color:var(--fg)}dialog .btn{margin-top:var(--space-5)}
@media(max-width:1100px){.nav{gap:var(--space-4)}.nav>a{font-size:12px}.brand img{width:132px}.hero h1{font-size:38px}.hero-grid{gap:var(--space-6)}.strength-layout{gap:var(--space-7)}.service-row{gap:var(--space-4)}.ops article{padding:var(--space-5)}.flowchart strong{font-size:13px}.flowchart small{font-size:10px}.cloud-item{padding:var(--space-5)}}
@media(max-width:940px){.nav{display:none}.menu{display:block}.nav.open{display:flex;position:absolute;top:88px;left:0;right:0;flex-direction:column;align-items:stretch;padding:var(--space-4) var(--space-6) var(--space-5);background:var(--surface);border-bottom:1px solid var(--border);gap:var(--space-hm-6);max-height:calc(100dvh - 88px);overflow:auto}.nav>a{font-size:15px}.hero-grid{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:var(--space-5)}.hero h1{font-size:32px}.hero .intro{font-size:15px}.hero-baseline{align-items:start}.mini-logos{gap:var(--space-hm-20)}.mini-logos img{width:90px}.ops{grid-template-columns:minmax(0, 1fr)}.flowchart strong{font-size:16px}.flowchart small{font-size:13px}.before{gap:var(--space-6)}.cloud-item{padding:var(--space-hm-20)}.vendor-stage img{width:170px}.strength-layout{grid-template-columns:minmax(0, 1fr);gap:var(--space-6)}.strength-intro .lead{max-width:680px}}
@media(max-width:700px){html{scroll-padding-top:var(--space-hm-88)}.container{width:calc(100% - 40px)}.header-inner{height:72px}.nav.open{top:72px;max-height:calc(100dvh - 72px)}.brand img{width:142px}.hero{padding:var(--space-hm-40) 0 var(--space-hm-28)}.hero-grid{grid-template-columns:minmax(0, 1fr);gap:var(--space-6)}.hero h1{font-size:clamp(27px,7.6vw,42px)}.hero .intro{font-size:15px}.hero-visual>img{aspect-ratio:16/10;object-fit:contain}.hero-baseline{flex-direction:column;gap:var(--space-4);margin-top:var(--space-5)}.mini-logos{justify-content:space-between;width:100%;gap:var(--space-4)}.mini-logos img{width:112px;max-width:100%}.mini-logos a{min-width:0}.mini-logos .aws{width:52px}.actions{gap:var(--space-3)}.actions .btn{flex:1;padding:var(--space-3) var(--space-hm-14);font-size:14px;gap:var(--space-hm-10);white-space:nowrap}.section{padding-block:var(--space-hm-56)}h2{font-size:25px}.section-title{display:block;margin-bottom:var(--space-hm-28)}.section-title>.lead{margin-top:var(--space-4)}.lead{font-size:15px}.principles article{grid-template-columns:26px minmax(0, 1fr);gap:var(--space-4);padding:var(--space-5) 0}.principles h3{font-size:18px}.service-row{grid-template-columns:28px minmax(0, 1fr) 40px;gap:var(--space-3);padding:var(--space-5) 0}.service-row p{grid-column:2;grid-row:2}.service-row .round-link{grid-column:3;grid-row:1/3;width:40px;height:44px;border-radius:var(--radius-btn)}.service-row h3{font-size:18px}.cloud-grid{grid-template-columns:minmax(0, 1fr)}.cloud-item{padding:var(--space-hm-28)}.cloud-item+.cloud-item{border-left:0;border-top:1px solid var(--border)}.vendor-stage{height:64px;margin-bottom:var(--space-hm-18)}.vendor-stage img{width:200px}.products-grid{grid-template-columns:minmax(0, 1fr)}.product{padding:var(--space-5)}.coming{flex-wrap:wrap;gap:var(--space-hm-10) var(--space-hm-20)}.coming p{flex-basis:100%}.before{grid-template-columns:minmax(0, 1fr);gap:var(--space-hm-28)}.contact .container{display:block}.contact .btn{margin-top:var(--space-hm-28)}.footer-top{grid-template-columns:minmax(0, 1fr);gap:var(--space-hm-28)}.footer-bottom{flex-direction:column;gap:var(--space-hm-10)}.visual-caption{font-size:11px;padding:var(--space-3);flex-wrap:wrap}.ops article{padding:var(--space-5) var(--space-hm-20)}.flowchart{grid-template-columns:minmax(0, 1fr);gap:0}.flowchart .connector{transform:rotate(90deg);height:24px}.flowchart .stage{padding:var(--space-hm-14);display:flex;align-items:cen... [truncated]
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}