/* img の width/height 属性は読み込み中の場所取りにだけ使い、高さはCSS側で決める */
img { height:auto; }
.work-card > img { display:block; width:calc(100% + 58px); aspect-ratio:1.68; object-fit:cover; margin:-29px -29px 24px; border-bottom:1px solid #dedcd5; }
.support-list span { display:grid !important; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--accent); color:#fffaf1 !important; font-size:16px !important; box-shadow:0 4px 0 #9c5945; }
.concerns-figure { margin:35px 0 0; padding:0; background:#f3f0e8; }.concerns-figure img { display:block; width:100%; height:auto; }
.concerns-intro .concerns-figure { max-width:390px; margin-top:30px; }.process-grid { grid-template-columns:repeat(5,1fr); }
.process-grid article { position:relative; }.process-grid article:not(:last-child)::after { content:"→"; position:absolute; top:6px; right:-8px; color:var(--accent); font-size:22px; z-index:1; }
@media (max-width:780px) { .concerns-intro .concerns-figure { max-width:none; }.process-grid article:not(:last-child)::after { content:"↓"; top:auto; bottom:-13px; right:auto; left:0; background:var(--paper); padding:0 4px; } }

.site-nav { display:flex; gap:22px; align-items:center; }.site-nav a { color:var(--muted); font-size:13px; text-decoration:none; padding:6px 0; border-bottom:1px solid transparent; }.site-nav a:hover,.site-nav a[aria-current="page"] { color:var(--ink); border-color:var(--accent); }
.subpage-hero,.subpage-section { max-width:1160px; margin:0 auto; padding-left:40px; padding-right:40px; }.subpage-hero { min-height:455px; display:grid; grid-template-columns:1.12fr .88fr; gap:50px; align-items:center; border-top:1px solid var(--line); overflow:hidden; }.subpage-hero h1 { font-family:Georgia,"Hiragino Mincho ProN","Yu Mincho",serif; font-size:clamp(37px,4.4vw,58px); font-weight:500; line-height:1.45; margin:14px 0 22px; }.subpage-hero h1 em { color:var(--sage); font-style:normal; }.subpage-hero p:not(.eyebrow) { color:#526059; max-width:570px; }.subpage-hero>img { display:block; width:100%; max-height:340px; object-fit:cover; border:1px solid var(--line); background:var(--paper-deep); }.about-hero>img { object-position:65% center; }.contact-hero>img { object-fit:contain; border:0; }.subpage-section { padding-top:105px; padding-bottom:105px; }.subpage-section.pale { max-width:none; padding-left:max(40px,calc((100% - 1160px)/2 + 40px)); padding-right:max(40px,calc((100% - 1160px)/2 + 40px)); background:var(--paper-deep); }.service-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:32px; }.service-grid article { position:relative; min-height:210px; padding:36px 38px; background:#fffdf9; border:1px solid var(--line); }.service-grid span { color:var(--accent); font-family:Georgia,serif; font-size:18px; }.service-grid h2 { font-size:25px; margin:18px 0 12px; }.service-grid p { color:#56615b; margin:0; font-size:14px; }.two-column { display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:start; }.two-column p { margin-top:0; color:#526059; }.two-column p+p { margin-top:20px; }
.cases-list { margin-top:32px; border-top:1px solid var(--line); }.cases-list article { display:grid; grid-template-columns:270px 1fr; gap:45px; align-items:center; padding:28px 0; border-bottom:1px solid var(--line); }.cases-list img { width:100%; aspect-ratio:1.7; object-fit:cover; }.case-number { display:grid; place-items:center; width:74px; height:74px; border:1px solid var(--sage); color:var(--sage); font-family:Georgia,serif; font-size:22px; }.cases-list h2 { font-size:28px; margin:0 0 12px; }.cases-list p { margin:0; color:#56615b; }.dark-note { max-width:none; background:var(--ink); color:#f9f5ed; padding-left:max(40px,calc((100% - 1160px)/2 + 40px)); padding-right:max(40px,calc((100% - 1160px)/2 + 40px)); display:flex; justify-content:space-between; align-items:center; gap:30px; }.dark-note p { margin:0; max-width:660px; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:25px; line-height:1.7; }.dark-note a { color:#dfe6dc; white-space:nowrap; text-underline-offset:6px; }
.profile-layout { display:grid; grid-template-columns:1fr 1fr; gap:10vw; }.profile-layout>div>p:last-child { color:#526059; }.profile-layout dl { margin:0; border-top:1px solid var(--line); }.profile-layout dl div { display:grid; grid-template-columns:120px 1fr; gap:18px; padding:18px 0; border-bottom:1px solid var(--line); }.profile-layout dt { color:var(--sage); }.profile-layout dd { margin:0; }.contact-page-content { display:grid; grid-template-columns:1fr 1fr; gap:10vw; background:var(--paper); }.contact-page-content>div>p:last-child { color:#526059; }.contact-page-content address { margin:0; align-self:center; background:var(--paper-deep); border:0; padding:38px; }
.about-accuracy-image { display:block; width:min(100%,330px); margin-top:26px; border:1px solid var(--line); background:#fffdf9; }.contact-intro { display:flex; flex-direction:column; }.contact-information-image { display:block; width:100%; margin-top:30px; border:1px solid var(--line); background:var(--paper-deep); object-fit:cover; }.contact-details { display:grid; gap:16px; }.contact-note { margin:0; padding:21px 24px; border-left:3px solid var(--accent); background:#fffdf9; color:#526059; font-size:14px; line-height:1.75; }.contact-note p { margin:0; }.contact-note p + p { margin-top:10px; }.contact-note .contact-note-title { color:var(--ink); font-family:Georgia,"Hiragino Mincho ProN","Yu Mincho",serif; font-size:16px; font-weight:600; }
@media (max-width:780px) { .site-nav { gap:12px; flex-wrap:wrap; justify-content:flex-end; }.site-nav a { font-size:11px; }.subpage-hero,.subpage-section { padding-left:22px; padding-right:22px; }.subpage-hero { grid-template-columns:1fr; gap:26px; padding-top:58px; padding-bottom:58px; min-height:auto; }.subpage-hero h1 { font-size:37px; }.subpage-hero>img { max-height:250px; }.subpage-section { padding-top:75px; padding-bottom:75px; }.subpage-section.pale,.dark-note { padding-left:22px; padding-right:22px; }.service-grid,.two-column,.profile-layout,.contact-page-content { grid-template-columns:1fr; gap:18px; }.service-grid article { min-height:0; padding:28px; }.cases-list article { grid-template-columns:1fr; gap:20px; }.cases-list img { max-width:280px; }.cases-list h2 { font-size:24px; }.dark-note { display:block; }.dark-note p { font-size:21px; margin-bottom:22px; }.profile-layout dl div { grid-template-columns:95px 1fr; }.contact-page-content address { padding:28px; } }

:root { --paper:#fbf8f2; --paper-deep:#f2eee5; --ink:#26312e; --muted:#69736d; --sage:#6e816c; --line:#d6d6cc; --accent:#c1775c; }
* { box-sizing:border-box; } html { max-width:100%; overflow-x:hidden; scroll-behavior:smooth; } body { width:100%; max-width:100%; margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif; line-height:1.9; } a { color:inherit; }
.site-header,.hero,.section,footer { max-width:1160px; margin:0 auto; padding-left:40px; padding-right:40px; }
.site-header { display:flex; justify-content:space-between; align-items:center; padding-top:28px; padding-bottom:24px; }.wordmark { display:flex; gap:12px; align-items:stretch; text-decoration:none; line-height:1.35; }.wordmark>span { display:block; width:3px; min-height:40px; background:var(--sage); }.wordmark small { display:block; font-size:11px; letter-spacing:.12em; color:var(--muted); }.wordmark strong { font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:18px; font-weight:500; }.header-link,.text-link { font-size:14px; text-underline-offset:5px; }
.hero { position:relative; min-height:635px; display:flex; align-items:center; overflow:hidden; border-top:1px solid var(--line); }.hero-copy { position:relative; z-index:1; width:65%; padding:80px 0 90px; }.eyebrow,.section-number { color:var(--sage); font-size:11px; letter-spacing:.16em; font-weight:700; }.hero h1,h2 { font-family:Georgia,"Hiragino Mincho ProN","Yu Mincho",serif; font-weight:500; line-height:1.45; letter-spacing:.02em; }.hero h1 { font-size:clamp(35px,4.1vw,56px); margin:16px 0 30px; }.hero h1 em { color:var(--sage); font-size:clamp(18px,3.1vw,42px); font-style:normal; white-space:nowrap; }.hero-lead { font-size:16px; color:#47524d; margin-bottom:30px; }.text-link { font-weight:700; text-decoration-color:var(--sage); }.text-link span { color:var(--accent); margin-left:8px; }.hero-art { position:absolute; right:-100px; bottom:-5px; width:min(68vw,900px); opacity:.95; -webkit-mask-image:linear-gradient(to right, transparent 0, #000 34%); mask-image:linear-gradient(to right, transparent 0, #000 34%); }.hero-art img { display:block; width:100%; height:auto; -webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 6%); mask-image:linear-gradient(to bottom, transparent 0, #000 6%); }
.section { padding-top:120px; padding-bottom:120px; }.intro { border-top:1px solid var(--line); }.intro-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:8vw; align-items:start; }h2 { font-size:clamp(29px,3vw,43px); margin:0; }.intro-grid p { margin-top:0; color:#46514c; }.intro-grid p+p { margin-top:24px; }.work { background:var(--paper-deep); max-width:none; padding-left:max(40px,calc((100% - 1160px)/2 + 40px)); padding-right:max(40px,calc((100% - 1160px)/2 + 40px)); }.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:42px; }.section-heading .section-number { margin:0 0 8px; }.work-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.work-card { background:rgba(255,255,255,.45); border:1px solid #dedcd5; padding:29px; min-height:250px; display:flex; flex-direction:column; }.work-card.featured { border-top:3px solid var(--sage); }.work-card p { color:var(--sage); margin:0 0 34px; font-size:13px; }.work-card h3 { font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:23px; line-height:1.5; font-weight:500; margin:0 0 16px; }.work-card span { display:block; color:#55615b; font-size:14px; line-height:1.85; }.bridge { border-left:3px solid var(--accent); padding-left:18px; max-width:720px; margin:56px 0 0; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:20px; }
.split-heading>p { max-width:430px; margin:0; color:#536059; font-size:14px; }.support-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--line); }.support-list li { display:grid; grid-template-columns:80px 1fr; gap:14px; align-items:center; border-bottom:1px solid var(--line); padding:24px 0; }.support-list span { color:var(--accent); font-family:Georgia,serif; font-size:18px; }.support-list p { margin:0; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:20px; line-height:1.6; }.support-note { margin-top:55px; display:grid; grid-template-columns:1fr 2fr; gap:40px; background:#edf0e9; padding:34px 40px; }.support-note span { font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:23px; }.support-note p { margin:0; color:#526059; }
.concerns { max-width:none; background:var(--ink); color:#f8f5ee; padding-left:max(40px,calc((100% - 1160px)/2 + 40px)); padding-right:max(40px,calc((100% - 1160px)/2 + 40px)); display:grid; grid-template-columns:1fr 1.25fr; column-gap:10vw; row-gap:46px; }.concerns .section-number { color:#b9c8b8; }.concerns ul { list-style:none; margin:0; padding:0; border-top:1px solid #69746d; }.concerns li { padding:22px 0; border-bottom:1px solid #69746d; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:19px; line-height:1.75; }.concerns-closing { grid-column:2; margin:-15px 0 0; color:#d5dad3; }
.process-grid { display:grid; grid-template-columns:repeat(5,1fr); }.process-grid article { padding:0 12px; min-height:0; border-left:1px solid var(--line); }.process-grid article:first-child { padding-left:0; border-left:0; }.process-step-image { width:100%; aspect-ratio:1.45; margin-bottom:18px; background-position:center; background-repeat:no-repeat; background-size:cover; }.process-step-image-01 { background-image:url("images/step-01.jpg"); }.process-step-image-02 { background-image:url("images/step-02.jpg"); }.process-step-image-03 { background-image:url("images/step-03.jpg"); }.process-step-image-04 { background-image:url("images/step-04.jpg"); }.process-step-image-05 { background-image:url("images/step-05.jpg"); }.process-grid span { color:var(--accent); font-family:Georgia,serif; font-size:18px; }.process-grid h3 { margin:9px 0 10px; font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:clamp(13px,1.25vw,16px); font-weight:500; line-height:1.5; letter-spacing:0; white-space:nowrap; }.process-grid p { margin:0; color:var(--muted); font-size:13px; line-height:1.8; }.process-assurance { margin:55px 0 0; padding-top:22px; border-top:1px solid var(--line); color:#506058; }
.hero-title-first-line { white-space:nowrap; }
address { font-style:normal; border-left:1px solid #bfc7bc; padding-left:40px; display:flex; flex-direction:column; justify-content:center; }address strong { font-family:Georgia,"Hiragino Mincho ProN",serif; font-size:27px; font-weight:500; }address p { margin:12px 0 22px; color:#536059; }address a { display:block; width:fit-content; text-underline-offset:5px; }footer { display:flex; justify-content:space-between; padding-top:24px; padding-bottom:28px; color:var(--muted); font-size:12px; }
@media (max-width:780px) { .site-header,.hero,.section,footer { padding-left:22px; padding-right:22px; }.site-header { padding-top:18px; }.header-link { font-size:12px; }.hero { min-height:680px; align-items:start; }.hero-copy { width:100%; padding-top:55px; }.hero h1 { font-size:34px; }.hero-title-first-line { font-size:clamp(22px,7vw,27px); }.hero-lead { font-size:14px; }.hero-art { width:100%; right:0; bottom:0; opacity:.72; -webkit-mask-image:none; mask-image:none; }.section { padding-top:78px; padding-bottom:78px; }.intro-grid { grid-template-columns:1fr; gap:34px; }.work,.process-grid { grid-template-columns:1fr; }.work,.concerns { padding-left:22px; padding-right:22px; }.section-heading,.split-heading { display:block; }.section-heading h2 { margin-top:8px; }.split-heading>p { margin-top:25px; }.work-card { min-height:auto; }.work-card p { margin-bottom:20px; }.bridge { font-size:18px; }.support-list li { grid-template-columns:50px 1fr; }.support-list p { font-size:17px; }.support-note { grid-template-columns:1fr; gap:14px; padding:28px 24px; }.concerns { grid-template-columns:1fr; gap:28px; }.concerns li { font-size:17px; }.concerns-closing { grid-column:auto; margin:0; }.process-grid article { border-left:0; border-top:1px solid var(--line); padding:24px 0; min-height:auto; }.process-grid article:first-child { border-top:1px solid var(--line); }.process-step-image { max-width:340px; }address { border-left:0; border-top:1px solid #bfc7bc; padding:28px 0 0; }footer { font-size:11px; } }

.service-grid article { --service-card-x:38px; --service-card-y:36px; --service-card-bleed:76px; padding:var(--service-card-y) var(--service-card-x); }
.service-grid article>img { display:block; width:calc(100% + var(--service-card-bleed)); aspect-ratio:1.7; margin:calc(0px - var(--service-card-y)) calc(0px - var(--service-card-x)) 26px; border-bottom:1px solid var(--line); object-fit:cover; }
@media (max-width:780px) { .service-grid article { --service-card-x:28px; --service-card-y:28px; --service-card-bleed:56px; } }

.menu-toggle { display:none; }
.site-nav .home-menu-link { display:none; }

@media (max-width:780px) {
  .site-header { position:relative; z-index:10; align-items:center; }
  .wordmark { min-width:0; }
  .wordmark strong { display:block; font-size:15px; }
  .menu-toggle { display:grid; gap:5px; width:44px; padding:10px 0 10px 10px; border:0; background:transparent; cursor:pointer; }
  .menu-toggle span { display:block; width:25px; height:1px; background:var(--ink); transition:transform .2s ease, opacity .2s ease; }
  .menu-toggle.is-open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  .menu-toggle.is-open span:nth-child(2) { opacity:0; }
  .menu-toggle.is-open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
  .site-nav { display:none; position:absolute; top:100%; right:22px; left:auto; width:68%; height:60vh; height:60svh; min-height:400px; max-height:560px; transform:none; grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(4,1fr); gap:0; align-items:stretch; justify-content:stretch; padding:0; border:1px solid var(--line); background:#fffdf9; box-shadow:0 14px 30px rgba(38,49,46,.1); }
  .site-nav.is-open { display:grid; }
  .site-nav a { position:relative; display:grid; place-items:center; justify-self:stretch; width:100%; min-width:0; padding:0 8px; border-bottom:0; font-size:clamp(23px,7.5vw,40px); font-weight:600; line-height:1.35; text-align:center; }
  .site-nav .home-menu-link { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
  .menu-tagline { color:var(--muted); font-size:.6em; font-weight:600; letter-spacing:-.12em; line-height:1.35; white-space:nowrap; }
  .menu-brand { color:var(--ink); letter-spacing:-.03em; line-height:1.2; white-space:nowrap; }
  .site-nav a:not(:last-child)::after { content:""; position:absolute; right:-1px; bottom:0; left:-1px; height:1px; background:var(--line); }
  .site-nav a[aria-current="page"]::after { background:var(--accent); }
  .hero h1 em { font-size:20px; }
  .work-grid { grid-template-columns:1fr; }
  .work-grid > *, .intro-grid > *, .subpage-hero > *, .subpage-section > * { min-width:0; }
}

@media (max-width:340px) {
  .hero h1 em { font-size:16px; }
}
