*,::before,::after {border:0 solid;box-sizing:border-box} h1,h2,h3 {font-size:inherit;font-weight:inherit} button,input,textarea,select {font:inherit} button {cursor:pointer} .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} [hidden] {display:none!important} .contact-form [data-slot="label"] {display:flex;align-items:center} .contact-form input:not([type="checkbox"]),.contact-form textarea,.contact-form select {border:1px solid #b9c7bc} input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible {outline:2px solid var(--ring);outline-offset:3px} .consent-row input {accent-color:#17392d} button:disabled {opacity:.6;cursor:wait}
:root {
  --background: #fafaf8; --foreground: #202823; --card: #fafaf8; --card-foreground: #202823;
  --popover: #ffffff; --popover-foreground: #202823; --primary: #17392d; --primary-foreground: #ffffff;
  --secondary: #eef2ee; --secondary-foreground: #202823; --muted: #eef2ee; --muted-foreground: #606b63;
  --accent: #e4ebe5; --accent-foreground: #17392d; --destructive: #9b302b; --border: #cdd6cf;
  --input: #c3cec5; --ring: #396c50; --radius: 0;
  --chart-1: #17392d; --chart-2: #396c50; --chart-3: #657f6c; --chart-4: #9bac9e; --chart-5: #cdd6cf;
  --sidebar: #fafaf8; --sidebar-foreground: #202823; --sidebar-primary: #17392d; --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #e4ebe5; --sidebar-accent-foreground: #17392d; --sidebar-border: #cdd6cf; --sidebar-ring: #396c50;
  --sans: Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --serif: Georgia, "Hiragino Mincho ProN", "Yu Mincho", serif;
}
@media (prefers-color-scheme: dark) {
  :root { color-scheme: light; --background: #fafaf8; --foreground: #202823; --card: #fafaf8; --card-foreground: #202823; --popover: #ffffff; --popover-foreground: #202823; --primary: #17392d; --primary-foreground: #ffffff; --secondary: #eef2ee; --secondary-foreground: #202823; --muted: #eef2ee; --muted-foreground: #606b63; --accent: #e4ebe5; --accent-foreground: #17392d; --destructive: #9b302b; --border: #cdd6cf; --input: #c3cec5; --ring: #396c50; }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 2rem; }
body { margin: 0; background: var(--background); color: var(--foreground); font-family: var(--sans); font-size: 1rem; line-height: 1.8; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
a, button, summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible, summary:focus-visible { outline: 2px solid var(--ring); outline-offset: 6px; }
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3, p, figure { margin: 0; }
button, input, textarea { font: inherit; }
::selection { background: #b7cdbb; color: #17392d; }
.wrap { width: calc(100% - 7rem); max-width: 1440px; margin-inline: auto; }
.section { padding-block: 7rem; }
.eyebrow { font-size: .75rem; letter-spacing: .1em; line-height: 1.6; margin-bottom: 1.7rem; }
.skip-link { position: absolute; z-index: 20; top: 1rem; left: 1rem; padding: .8rem 1rem; background: #fff; transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.masthead { min-height: 6.6rem; display: flex; justify-content: space-between; align-items: center; gap: 2rem; border-bottom: 1px solid #202823; }
.brand { font-size: 1.16rem; line-height: 1.35; letter-spacing: .025em; font-weight: 600; }
.brand span { display: block; font-weight: 400; font-size: .75rem; letter-spacing: .04em; margin-top: .45rem; }
.masthead nav { display: flex; flex-wrap: wrap; gap: 1rem 2rem; font-size: .875rem; }
.masthead nav a { padding-block: .7rem; }
.nav-contact { display: flex; gap: 1.5rem; align-items: center; }
.hero-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; font-size: .75rem; letter-spacing: .045em; padding-block: 1.2rem; }
.hero-frame { position: relative; overflow: hidden; aspect-ratio: 2.15; min-height: 36rem; color: #fff; background: #16342a; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: slow-frame 24s ease-in-out alternate infinite; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(7,24,16,.48) 0%, rgba(7,24,16,.12) 58%, rgba(7,24,16,.02) 100%); }
.hero-index { position: absolute; top: 2.5rem; left: 3.1rem; right: 2rem; font-size: .75rem; letter-spacing: .1em; }
.hero-copy { position: relative; padding: 9rem 5rem 3.1rem 3.1rem; }
.hero-copy h1 { font-family: var(--serif); font-size: clamp(2.6rem, 4.25vw, 4.3rem); line-height: 1.55; font-weight: 400; letter-spacing: .025em; margin-bottom: 1.2rem; }
.hero-copy p { font-size: 1rem; line-height: 2; }
.hero-cta { display: inline-flex; justify-content: space-between; align-items: center; gap: 3.5rem; border: 1px solid rgba(255,255,255,.7); padding: .85rem 1.3rem; font-size: .875rem; margin-top: 2rem; transition: background .2s; }
.hero-cta:hover { background: rgba(255,255,255,.12); }
.hero-side { position: absolute; right: 2rem; top: 50%; writing-mode: vertical-rl; font-size: .75rem; letter-spacing: .09em; transform: translateY(-50%); }
.hero-foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-block: 1.6rem; border-bottom: 1px solid var(--border); font-size: .875rem; }
.hero-foot a { display: flex; align-items: center; gap: 2rem; }
.about { display: grid; grid-template-columns: .85fr 1.1fr; align-items: center; gap: 8rem; max-width: 1200px; }
.about-image { max-width: 350px; }
.about-image img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.about-image figcaption { font-size: .75rem; letter-spacing: .055em; padding-top: 1rem; }
h2 { font-family: var(--serif); font-weight: 400; font-size: clamp(2rem, 3.2vw, 3.2rem); line-height: 1.6; }
.about-copy h2 { margin-bottom: 2rem; }
.about-copy p:not(.eyebrow) { font-size: 1rem; line-height: 2.1; margin-top: 1.3rem; }
.about-copy .lead { font-weight: 500; }
.services { background: #17392d; color: #fff; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 3rem; margin-bottom: 4rem; }
.english-title { font-family: Georgia, serif; font-size: clamp(3.2rem, 5.4vw, 5.4rem); line-height: 1.12; letter-spacing: -.03em; }
.english-title span { display: block; font-family: var(--sans); font-size: .875rem; letter-spacing: .025em; margin-top: 1rem; }
.section-heading > p { line-height: 2; }
.services-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem 5rem; }
.service { border-top: 1px solid rgba(255,255,255,.4); padding-top: 1.6rem; }
.service-meta { display: flex; align-items: baseline; gap: 1.7rem; font-size: .75rem; letter-spacing: .045em; line-height: 1.8; }
.service h3 { font-weight: 400; font-size: 1.35rem; margin-block: 1.3rem 1rem; }
.service > p { font-size: 1rem; line-height: 2; color: #e2eae4; max-width: 38em; }
.service details { margin-top: 1.5rem; font-size: 1rem; }
summary { cursor: pointer; list-style: none; }
summary::-webkit-details-marker { display: none; }
.service summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .875rem; padding-block: .7rem; border-bottom: 1px solid rgba(255,255,255,.3); }
.detail-plus { font-size: 1.2rem; line-height: 1; transition: transform .2s; }
details[open] > summary .detail-plus { transform: rotate(45deg); }
.service ul { margin: 1.2rem 0 0; padding-left: 1.2rem; line-height: 2.1; }
.approach { border-bottom: 1px solid var(--border); }
.approach-heading { display: flex; align-items: center; justify-content: space-between; gap: 3rem; }
.approach-heading p { line-height: 2; }
.process { display: grid; grid-template-columns: repeat(4, 1fr); list-style: none; gap: 2.7rem; padding: 0; margin: 3.5rem 0 0; }
.process li { border-top: 1px solid var(--border); padding-top: 1.4rem; }
.step-number { font-family: Georgia, serif; font-size: 2.5rem; line-height: 1.1; color: #39644b; }
.process h3 { font-weight: 500; font-size: 1.1rem; margin-block: 1.4rem .8rem; }
.process p { font-size: 1rem; line-height: 2; }
.company { display: grid; grid-template-columns: .85fr 1.35fr; gap: 5rem; }
.company dl { margin: 0; }
.company dl > div { display: grid; grid-template-columns: 6rem 1fr; gap: 2rem; padding-block: 1.5rem; border-top: 1px solid var(--border); }
.company dl > div:last-child { border-bottom: 1px solid var(--border); }
.company dt { font-size: .875rem; padding-top: .2rem; }
.company dd { font-size: 1rem; line-height: 2; margin: 0; }
.contact { background: #eef2ee; }
.contact-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 6rem; }
.contact-intro h2 { margin-bottom: 2rem; }
.contact-intro > p:not(.eyebrow) { line-height: 2; margin-top: 1.2rem; }
.contact-form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.form-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.field { display: flex; flex-direction: column; gap: .8rem; margin-bottom: 1.6rem; }
.contact-form [data-slot="label"] { font-size: .875rem; font-weight: 400; line-height: 1.7; flex-wrap: wrap; gap: .6rem; }
.required { font-size: .75rem; border: 1px solid #b0bfb3; padding: 0 .3rem; line-height: 1.5; }
.optional { font-size: .75rem; color: #606b63; }
.contact-form [data-slot="input"], .contact-form [data-slot="textarea"], .contact-form [data-slot="select-trigger"] { border-radius: 0; background: #fafcf9; border-color: #b9c7bc; box-shadow: none; font-size: 1rem; width: 100%; min-height: 3.2rem; padding: .85rem 1rem; height: auto; color: #202823; }
.contact-form [data-slot="input"] { line-height: 1.4; }
.contact-form [data-slot="textarea"] { min-height: 10rem; resize: vertical; field-sizing: fixed; line-height: 1.8; }
.contact-form [data-slot="textarea"]::placeholder { color: #657168; }
.contact-form [data-slot="select-trigger"] { white-space: normal; }
[data-slot="select-content"] { border-radius: 0; background: #fff; border-color: #b9c7bc; }
[data-slot="select-item"] { font-size: 1rem; min-height: 2.75rem; border-radius: 0; }
.field-hint { font-size: .75rem; color: #606b63; }
.form-trap { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; white-space: nowrap; }
.privacy { border-top: 1px solid #bccabe; border-bottom: 1px solid #bccabe; margin-top: 2rem; }
.privacy summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 1rem; font-size: .875rem; }
.privacy > div { padding-bottom: 1.2rem; }
.privacy p { font-size: 1rem; line-height: 2; margin-top: 1rem; }
.consent-row { display: flex; align-items: flex-start; gap: .8rem; min-height: 2.75rem; margin-block: 1.6rem; }
.consent-row [data-slot="checkbox"] { width: 1.25rem; height: 1.25rem; border-radius: 0; margin-top: .15rem; flex-shrink: 0; border-color: #65866e; }
.consent-row [data-slot="label"] { cursor: pointer; }
.contact-form .submit-button { width: 100%; min-height: 3.5rem; border-radius: 0; font-size: 1rem; font-weight: 400; display: flex; justify-content: space-between; padding: .9rem 1.3rem; white-space: normal; background: #17392d; color: #fff; }
.submit-button:hover { background: #244c3b; }
.form-error { font-size: .875rem; color: #9b302b; margin-bottom: 1.2rem; line-height: 1.8; }
.contact-success { border-top: 1px solid #b6c7b9; padding-block: 2rem; min-height: 22rem; }
.contact-success h3 { font-family: var(--serif); font-size: 2.2rem; line-height: 1.6; font-weight: 400; margin-bottom: 1.5rem; }
.contact-success p:not(.eyebrow) { font-size: 1rem; line-height: 2; }
.contact-success .another-inquiry { border-radius: 0; min-height: 3rem; font-size: .875rem; margin-top: 2rem; padding: .8rem 1.3rem; white-space: normal; height: auto; }
.footer { padding-block: 3.5rem 1.8rem; }
.footer-top { display: flex; justify-content: space-between; gap: 3rem; align-items: center; padding-bottom: 3rem; }
.footer-brand { font-family: Arial, sans-serif; font-size: clamp(1.3rem, 3.1vw, 3rem); line-height: 1.25; letter-spacing: -.015em; }
.footer-brand span { display: block; font-family: var(--sans); font-size: .75rem; letter-spacing: .025em; margin-top: .8rem; }
.footer nav { display: flex; flex-wrap: wrap; gap: 1rem 2rem; font-size: .875rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; font-size: .75rem; border-top: 1px solid var(--border); padding-top: 1.5rem; }
.footer-bottom small { font-size: inherit; }
@keyframes slow-frame { from { transform: scale(1); } to { transform: scale(1.025); } }
@media (max-width: 1050px) {
  .wrap { width: calc(100% - 4rem); }
  .masthead nav { gap: 1rem 1.3rem; }
  .about { gap: 4rem; }
  .services-grid { gap: 3rem; }
  .company { gap: 3rem; }
  .contact-grid { gap: 3.5rem; }
  .process { gap: 1.6rem; }
}
@media (max-width: 760px) {
  .wrap { width: calc(100% - 3rem); }
  .section { padding-block: 5rem; }
  .masthead { flex-direction: column; align-items: flex-start; gap: 1rem; padding-block: 1.5rem 1rem; }
  .masthead nav { width: 100%; justify-content: space-between; gap: .3rem 1rem; }
  .masthead nav a { font-size: .875rem; }
  .nav-contact { gap: .6rem; }
  .hero-frame { min-height: 34rem; aspect-ratio: auto; }
  .hero-copy { padding: 9rem 3rem 3rem 2rem; }
  .hero-index { left: 2rem; top: 2rem; }
  .hero-side { right: 1rem; }
  .about { grid-template-columns: .7fr 1fr; gap: 2.5rem; }
  .section-heading, .approach-heading { flex-direction: column; align-items: flex-start; gap: 2rem; }
  .services-grid { gap: 3rem 2rem; }
  .process { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
  .company { grid-template-columns: 1fr; gap: 3rem; }
  .contact-grid { grid-template-columns: 1fr; gap: 3rem; }
  .footer-top { flex-direction: column; align-items: flex-start; gap: 2rem; }
}
@media (max-width: 540px) {
  .wrap { width: calc(100% - 2.25rem); }
  .section { padding-block: 3.8rem; }
  .brand { font-size: 1.08rem; }
  .masthead nav { justify-content: flex-start; gap: .15rem 1rem; }
  .masthead nav a { padding-block: .5rem; }
  .hero-meta { font-size: .75rem; padding-block: 1rem; }
  .hero-frame { min-height: 35rem; }
  .hero-image { object-position: 62% center; }
  .hero-shade { background: rgba(5,23,15,.4); }
  .hero-copy { padding: 9rem 1.3rem 3rem; }
  .hero-copy h1 { font-size: clamp(1.9rem, 8.4vw, 3rem); line-height: 1.65; }
  .hero-copy p { font-size: 1rem; }
  .hero-copy p br { display: none; }
  .hero-index { left: 1.3rem; right: 1.3rem; top: 1.8rem; line-height: 1.8; }
  .hero-side { display: none; }
  .hero-foot { padding-block: 1.3rem; gap: .8rem; }
  .about { grid-template-columns: 1fr; gap: 2.5rem; }
  .about-image { width: 72%; max-width: 260px; }
  h2 { font-size: 2rem; }
  .eyebrow { margin-bottom: 1.4rem; }
  .services-grid { grid-template-columns: 1fr; gap: 2.8rem; }
  .section-heading { margin-bottom: 3rem; }
  .service h3 { font-size: 1.3rem; }
  .service-meta { gap: 1.2rem; }
  .english-title { font-size: 3.6rem; }
  .approach-heading h2 { font-size: 1.9rem; }
  .process { gap: 2.4rem 1.5rem; margin-top: 2.5rem; }
  .process h3 { font-size: 1rem; }
  .form-pair { grid-template-columns: 1fr; gap: 0; }
  .company dl > div { grid-template-columns: 1fr; gap: .6rem; }
  .company dt { color: #606b63; }
  .contact-grid { gap: 2.5rem; }
  .desktop-break { display: none; }
  .footer { padding-top: 3rem; }
  .footer-top { padding-bottom: 2rem; }
  .footer-brand { font-size: clamp(1.1rem, 5.9vw, 1.85rem); }
}
@media (max-width: 340px) { .process { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition-duration: 0s !important; } }

/* 添付改善案を反映した公開用スタイル */
:root {--background:#f3f1ea;--foreground:#1c2a22;--primary:#1f3029;--border:#cdcabf;--muted-foreground:#44514a;--gold:#c8a24a;--gold-ink:#2a2112;--sans:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
html {scroll-padding-top:7rem}
.wrap {width:calc(100% - 3rem);max-width:1160px}
.section {padding-block:5.75rem}
.eyebrow {font-size:.875rem;color:#44514a;font-weight:600;letter-spacing:.16em}
.site-header {position:sticky;top:0;z-index:40;background:rgba(243,241,234,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.masthead {min-height:5rem;border:0}
.brand {font-size:1rem;letter-spacing:.1em}.brand span {font-size:.75rem;letter-spacing:.08em}
.masthead nav {gap:1rem 1.6rem;align-items:center}
.masthead nav .nav-contact {padding:.6rem 1.1rem;background:var(--primary);color:#fff;border-radius:2px;gap:1rem}
.nav-contact:hover {background:#354c3f}
.hero {background:linear-gradient(120deg,#16231d,#1f3029);color:#fff}
.hero-inner {display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center;padding-block:4.5rem}
.hero-copy {padding:0}.hero-copy .eyebrow {color:#cfdbd4;font-size:.875rem;margin-bottom:1rem}
.hero-copy h1 {font-family:var(--sans);font-size:clamp(2.2rem,4.3vw,3.75rem);line-height:1.4;font-weight:700;letter-spacing:.02em;margin-bottom:1.4rem}
.hero-copy > p:not(.eyebrow) {font-size:1.0625rem;line-height:1.9;color:#e6ede8;max-width:30em}
.hero-visual {height:420px;overflow:hidden;border-radius:4px;box-shadow:0 20px 50px #0005}
.hero-image {position:static;width:100%;height:100%;object-fit:cover;object-position:60% center}
.service-tags {display:flex;flex-wrap:wrap;gap:.6rem;margin:1.4rem 0 1.9rem}
.service-tags span {border:1px solid #ffffff59;border-radius:20px;padding:.35rem .8rem;font-size:.875rem;color:#eef3f0}
.hero-actions {display:flex;flex-wrap:wrap;gap:.75rem}
.hero-cta,.hero-secondary {display:inline-flex;align-items:center;justify-content:center;gap:1.25rem;padding:1rem 1.4rem;margin:0;border-radius:3px;font-size:1rem;font-weight:600}
.hero-cta {background:var(--gold);color:var(--gold-ink);border:1px solid var(--gold)}.hero-cta:hover {background:#d6b15a}
.hero-secondary {color:#fff;border:1px solid #ffffff8c;font-weight:400}.hero-secondary:hover {background:#ffffff12}
.hero-foot {border-top:1px solid #ffffff2e;border-bottom:0;color:#d6e0da;padding-block:1rem}
.about {gap:3.5rem;grid-template-columns:.8fr 1.2fr}.about-image {max-width:350px}.about-image img {border-radius:4px}
.services {background:#1f3029}.services .eyebrow,.contact .eyebrow {color:#cfdbd4}
.services-grid {gap:0;border-top:1px solid #ffffff33}.service {border-top:0;border-bottom:1px solid #ffffff33;padding:2.4rem 2.25rem}
.service:nth-child(odd) {border-right:1px solid #ffffff33}.service-meta {font-size:.875rem;gap:1rem;color:#d1ded7}.service-meta span:first-child {color:#dcc17e}
.service h3 {font-size:1.375rem;font-weight:600}.service>p {color:#cfdbd4}.service summary {border-color:#c8a24a;font-size:.875rem}
.section-heading {margin-bottom:3.3rem}.english-title {font-size:clamp(3rem,4.6vw,4rem)}
.process li {border-top:2px solid var(--primary)}.process h3 {font-weight:600}.process p {color:#44514a}
.company dt {font-size:.875rem;color:#44514a}.company {grid-template-columns:.8fr 1.2fr;gap:3rem}
.contact {background:#1f3029;color:#fff}.contact-grid {grid-template-columns:.9fr 1.1fr;gap:3.5rem}.contact-intro>p:not(.eyebrow) {color:#cfdbd4}
.contact-form {background:#ffffff0f;padding:2.1rem;border:1px solid #ffffff24;border-radius:4px}
.form-pair {grid-template-columns:1fr;gap:0}.contact-form [data-slot="label"] {color:#e6ede8}
.required {border:0;color:#dcc17e;padding:0}.optional,.field-hint {color:#cfdbd4}
.contact-form [data-slot="input"],.contact-form [data-slot="textarea"],.contact-form [data-slot="select-trigger"] {border-radius:3px;background:#fffffff2;border:1px solid #ffffff4d}
.privacy {border-color:#ffffff38}.policy-link {text-decoration:underline;text-underline-offset:3px;color:#e5ca85}
.contact-form .submit-button {background:var(--gold);color:var(--gold-ink);border-radius:3px;font-weight:600;justify-content:center;gap:1.5rem}.submit-button:hover {background:#d6b15a}
.form-error {color:#ffd8cf}.contact-success {border-color:#ffffff4d}.contact-success .eyebrow {color:#cfdbd4}.another-inquiry {background:var(--gold);color:var(--gold-ink);border-radius:3px}
.site-footer {background:#16231d;color:#cfdbd4;padding-block:3.2rem 1.9rem}.footer-top {padding-bottom:2rem}.footer-brand {color:#fff}.footer-bottom {border-color:#ffffff26;font-size:.875rem}
.footer-brand span {color:#cfdbd4}.site-footer a:hover {text-decoration:underline;text-underline-offset:4px}
.policy-page {max-width:820px;padding-block:4rem 5rem}.policy-page h1 {font-size:clamp(1.8rem,5vw,2.6rem);line-height:1.5;margin-bottom:1rem}
.policy-page h2 {font-family:var(--sans);font-size:1.25rem;font-weight:600;line-height:1.6;margin:2.5rem 0 .8rem}.policy-page p {margin-top:.8rem;line-height:2}.policy-page ul {padding-left:1.5rem;line-height:2}
.draft-note {border-left:3px solid #9d7d35;background:#e9e4d6;padding:1rem 1.2rem;margin-block:1.5rem}.policy-page a {text-decoration:underline}.policy-page .policy-link {color:#234635}
@media(max-width:1000px) {.masthead {gap:1rem}.masthead nav {gap:.6rem 1rem}.hero-inner {gap:1.7rem}.hero-visual {height:390px}.about {gap:2.5rem}}
@media(max-width:860px) {.hero-inner {grid-template-columns:1fr;padding-block:3rem}.hero-copy {max-width:640px}.hero-visual {height:280px}.hero-copy h1 {font-size:clamp(2.2rem,7vw,3.75rem)}.contact-grid,.company {grid-template-columns:1fr;gap:2.5rem}.service {padding:2rem 1.5rem}}
@media(max-width:760px) {.masthead {flex-direction:row;flex-wrap:wrap;align-items:center;padding-block:1rem;gap:.8rem}.masthead nav {width:auto;justify-content:flex-start}.masthead nav a:not(.nav-contact) {display:none}.hero-inner {gap:2rem}.about {grid-template-columns:1fr;gap:2.5rem}.contact-form {padding:1.6rem}}
@media(max-width:540px) {.wrap {width:calc(100% - 2.25rem)}.section {padding-block:3.8rem}.brand {font-size:.875rem}.brand span {font-size:.75rem;letter-spacing:0}.masthead nav .nav-contact {font-size:.875rem;padding:.5rem .7rem}.nav-contact span {display:none}.service {padding:2rem 0}.service:nth-child(odd) {border-right:0}.hero-visual {height:230px}.contact-form {padding:1.25rem}.footer-bottom {flex-wrap:wrap;gap:1rem}.hero-foot a {gap:1rem}.service-meta {flex-wrap:wrap;gap:.25rem .8rem}.policy-page {padding-top:2.5rem}}

.message-section {background:#ecebe3}
.message-grid {display:grid;grid-template-columns:.8fr 1.2fr;gap:3rem}
.message-copy h3 {font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.6;margin-bottom:1.8rem}
.message-copy > p {font-size:1rem;line-height:2.1;margin-top:1.2rem}
.message-copy .message-signature {border-top:1px solid var(--border);padding-top:1.5rem;margin-top:2rem;text-align:right;font-size:1.25rem}
.message-signature span {display:block;font-size:.875rem;color:#44514a;margin-bottom:.35rem}
@media(max-width:860px) {.message-grid {grid-template-columns:1fr;gap:2.5rem}}

.contact-form fieldset:disabled {opacity:.65}
.contact-form button:disabled {opacity:.6;cursor:not-allowed}
#contact-status {margin-bottom:1.2rem;font-size:.875rem}
