:root{--blue:#095da4;--navy:#143148;--light:#f0f6fa;--line:#d7e3ec}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--navy);background:white;font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;line-height:1.9}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #ecae35;outline-offset:5px}a:hover{opacity:.8}.skip{position:absolute;left:12px;top:-100px;z-index:5;background:white;padding:10px}.skip:focus{top:0}.preview{background:var(--navy);color:white;text-align:center;font-size:11px;padding:5px 10px;letter-spacing:.09em}header{height:100px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;background:#fff}.brand{display:flex;align-items:center;gap:12px;font-size:23px;font-weight:700;letter-spacing:.08em;line-height:1.2}.brand small{display:block;font-size:9px;letter-spacing:.22em;margin-top:9px}.mark{display:grid;place-items:center;color:var(--blue);font-size:40px;font-family:Georgia,serif;border:2px solid var(--blue);border-radius:50% 50% 12% 50%;width:48px;height:48px}nav{display:flex;align-items:center;gap:32px;font-size:13px;font-weight:600}.nav-contact{background:var(--blue);color:#fff;padding:14px 22px}.nav-contact span{margin-left:24px}.hero{position:relative;padding:48px 6% 0;overflow:hidden}.hero-copy{position:relative;z-index:1;width:61%;padding:24px 0 90px}.eyebrow{font-size:11px;letter-spacing:.17em;color:var(--blue);font-weight:700;margin:0 0 24px}h1{font-size:clamp(32px,3.8vw,61px);line-height:1.55;letter-spacing:.035em;font-weight:700;margin:0 0 27px}h1 span{color:var(--blue)}.lead{font-size:15px;line-height:2.15;margin-bottom:32px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;padding:16px 24px;background:var(--blue);color:white;font-size:13px;font-weight:700}.hero-image{position:absolute;right:0;top:10px;margin:0;width:51%;height:560px;overflow:hidden}.hero-image:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,#ffffffb0 10%,#ffffff00 38%);z-index:1}.hero-image img{width:100%;height:100%;object-fit:cover}.hero-image figcaption{position:absolute;bottom:8px;right:18px;background:#ffffffdd;padding:2px 8px;font-size:9px;z-index:2}.image-label{position:absolute;bottom:55px;right:7%;color:white;font-size:25px;line-height:1.3;letter-spacing:.12em;text-shadow:0 2px 15px #143148;z-index:2}.hero-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;letter-spacing:.15em;padding:22px 0}.section{padding:100px 8%;scroll-margin-top:30px}h2{font-size:clamp(27px,3vw,42px);line-height:1.65;letter-spacing:.035em;margin:0 0 28px}h3{font-size:20px;margin:0 0 12px;line-height:1.6}p{font-size:14px}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.intro-grid p{margin:0 0 24px}.intro{background:var(--light)}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:45px}.section-head>p{color:#5c7181}.service-list{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.service-list article{border-top:2px solid var(--blue);padding-top:22px}.number{display:block;font-family:Georgia,serif;color:var(--blue);font-size:38px;margin-bottom:22px}.service-list p{font-size:13px;margin-bottom:22px}.tag{font-size:10px;color:var(--blue)}.note{font-size:11px;color:#586d7e;margin:35px 0 0}.fields{background:var(--light)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.field-grid article{background:#fff}.field-art{height:155px;position:relative;overflow:hidden;background:#bfd3e3}.field-art span{position:absolute;bottom:16px;left:24px;z-index:2;font-size:12px;font-weight:700;letter-spacing:.16em;color:white}.field-body{padding:28px 32px}.field-no{color:var(--blue);font-size:10px;letter-spacing:.12em}.field-body h3{margin-top:12px}.field-body p{font-size:13px}.field-body small{display:block;font-size:10px;border-top:1px solid var(--line);padding-top:16px;color:#657784}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:40px}.steps article{border-left:1px solid var(--line);padding-left:26px}.steps span{color:var(--blue);font-size:13px;letter-spacing:.12em}.steps h3{margin-top:15px}.steps p{font-size:13px}.about{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:60px}.about h2{font-size:30px}.about dl{margin:0}.about dl>div{display:grid;grid-template-columns:110px 1fr;border-bottom:1px solid var(--line);padding:20px 0;font-size:13px}.about dd{margin:0}.about small{font-size:10px}.contact{background:var(--blue);color:white;position:relative;overflow:hidden}.contact:after{content:"S";position:absolute;right:5%;bottom:-155px;font-size:520px;line-height:1;color:#ffffff07;font-family:Georgia,serif;pointer-events:none}.contact .eyebrow{color:#c4e6ff}.contact h2{font-size:42px}.contact-actions{display:flex;gap:45px;align-items:center;margin-top:34px}.light{background:white;color:var(--blue)}.phone{font-family:Arial,sans-serif;font-size:26px;letter-spacing:.03em}.phone small{display:block;font-family:inherit;font-size:11px;margin-bottom:5px}.contact-note{font-size:10px;color:#d1e6f5;margin-top:24px}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:42px 6%}footer p,footer>a:last-child{font-size:10px}footer .brand{font-size:18px}footer .mark{height:38px;width:38px;font-size:30px}@media(min-width:1600px){body{max-width:1600px;margin:auto}}@media(max-width:900px){header{height:85px}nav{gap:16px;font-size:11px}.hero-copy{width:70%}.hero-image{width:55%;height:520px}.section{padding:70px 6%}.intro-grid{gap:35px}.service-list{gap:22px}.service-list h3{font-size:17px}.about{gap:30px}.field-body{padding:24px}.contact-actions{gap:25px}}@media(max-width:620px){html{scroll-padding-top:25px}.preview{font-size:9px}header{padding:18px 5%;height:auto;flex-wrap:wrap;gap:20px}.brand{font-size:20px}.mark{width:40px;height:40px;font-size:32px}nav{width:100%;justify-content:space-between;gap:8px}.nav-contact{padding:8px 10px}.nav-contact span{margin-left:10px}.hero{padding:25px 6% 0}.hero-copy{width:100%;padding:0 0 28px}h1{font-size:32px}.lead{font-size:13px}.hero-image{position:relative;top:auto;right:auto;width:calc(100% + 12vw);margin-left:-6vw;height:270px}.hero-image:before{display:none}.image-label{font-size:19px}.hero-bottom{gap:15px;font-size:8px}.section{padding:58px 6%}.eyebrow{font-size:9px;margin-bottom:18px}.intro-grid,.about{grid-template-columns:1fr;gap:20px}.section-head{display:block;margin-bottom:30px}.section-head>p{font-size:12px}.service-list,.field-grid,.steps{grid-template-columns:1fr;gap:28px}.service-list article{padding-top:16px}.number{font-size:30px;margin-bottom:12px}.field-art{height:160px}.steps{gap:24px;margin-top:25px}.about dl>div{grid-template-columns:95px 1fr}.contact h2{font-size:32px}.contact-actions{align-items:flex-start;flex-direction:column;gap:24px}footer{flex-wrap:wrap;padding:30px 6%}footer .brand{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* R2: keep the primary headline readable on narrow screens. */
@media(max-width:620px){h1{font-size:28px;letter-spacing:0}}
@media(max-width:360px){h1{font-size:24px}.eyebrow{letter-spacing:.12em}nav{font-size:10px}.nav-contact{padding:8px}.nav-contact span{margin-left:6px}}

/* v2: licensed photography replaces the four CSS illustrations. */
.service-photo{margin:0 0 42px}.service-photo img{display:block;width:100%;height:320px;object-fit:cover;object-position:50% 43%}.service-photo figcaption{margin-top:10px;font-size:10px;color:#586d7e}
.field-art{margin:0;height:235px;background:#d7e3ec}.field-art img{width:100%;height:100%;display:block;object-fit:cover}.field-art:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,24,39,.66),transparent 55%);pointer-events:none}.field-art span{bottom:22px;text-shadow:0 1px 4px #000}.field-art figcaption{position:absolute;right:10px;bottom:9px;z-index:2;font-size:9px;color:white;background:rgba(7,24,39,.84);padding:2px 7px}.home img{object-position:50% 57%}.water img{object-position:50% 50%}.civil img{object-position:50% 54%}.interior img{object-position:50% 48%}
@media(max-width:620px){.service-photo img{height:220px;object-position:50% 43%}.field-art{height:220px}.field-art span{bottom:34px}.field-art figcaption{right:10px;bottom:9px}}
/* R2: preserve readable photo labels over every crop and bright subject. */
.field-art span{left:16px;bottom:18px;padding:3px 8px;background:rgba(7,24,39,.84);text-shadow:none}
@media(max-width:620px){.field-art span{bottom:36px}}
.service-photo img{height:380px;object-position:50% 57%}
@media(max-width:620px){.service-photo img{height:220px;object-position:50% 43%}}

.variant-nav{padding:10px 6%;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#eef4f8;font-size:11px;line-height:1.4}.variant-nav strong{font-weight:700}.variant-nav>div{display:flex;gap:20px;align-items:center}.variant-nav [aria-current="page"]{background:#095da4;color:white;padding:4px 8px}@media(max-width:620px){.variant-nav{padding:10px 5%;font-size:10px}.variant-nav>div{gap:12px}}

/* A final: one image notice at the page end; no per-image labels. */
.image-notice{margin:0;padding:0 6% 22px;color:#586d7e;font-size:11px;line-height:1.8}
.field-art:after{display:none}

/* Optical alignment: preserve the outer mark; center the visible Georgia glyph. */
.mark{letter-spacing:0}.mark-letter{display:block;line-height:1;transform:translate(.003em,-.006em)}footer .mark-letter{transform:translate(.003em,.005em)}

/* Separate, review-only service and pricing page. */
.pricing-link{margin:34px 0 0}.pricing-link small{display:block;margin-top:12px;font-size:11px;color:#586d7e}.pricing-nav[aria-current=page]{color:var(--blue)}
.price-hero{padding:50px 8% 54px;background:var(--light)}.back-link{display:inline-block;font-size:12px;margin-bottom:38px;color:var(--blue)}.price-hero h1{font-size:clamp(30px,4vw,54px)}.price-lead{font-size:16px}.price-status{font-size:12px;line-height:1.9;background:#fff;border-left:3px solid var(--blue);padding:18px 22px;margin-top:30px;max-width:900px}.price-section{padding:68px 8%}.price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.price-card{padding:26px 25px;border:1px solid var(--line);border-top:3px solid var(--blue)}.price-no{font-size:10px;color:var(--blue);letter-spacing:.08em}.price-card h2{font-size:22px;margin:18px 0}.price-value{font-size:29px;font-weight:700;color:var(--blue);line-height:1.45;margin:18px 0 24px}.price-value span{font-size:13px;white-space:nowrap}.price-card p{font-size:13px}.price-card .price-value{font-size:29px}.price-detail{font-size:12px;color:#586d7e;line-height:1.9}.price-card .price-detail{padding-top:16px;border-top:1px solid var(--line);font-size:11px}.phone-price{margin-top:30px;background:var(--light);padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:35px}.phone-price h2{font-size:22px}.phone-price strong{color:var(--blue);font-size:22px}.phone-price .eyebrow{margin-bottom:12px}.price-examples{background:var(--light)}.price-section>h2{font-size:30px}.example-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.example-grid article{padding:25px 30px;background:white}.example-grid h3{font-size:18px}.example-value{font-size:27px;font-weight:700;color:var(--blue)}.example-value small{font-size:12px}.fee-rule{padding-top:25px;margin-top:25px;border-top:1px solid var(--line)}.fee-rule h3{font-size:18px}.price-conditions{max-width:1100px;margin:auto}.price-conditions h3{font-size:19px}.price-conditions details{border-block:1px solid var(--line);padding:20px 0;margin:28px 0}.price-conditions summary{cursor:pointer;font-weight:600;font-size:15px}.price-conditions details p{font-size:13px}.price-conditions article p{font-size:13px}
@media(max-width:1100px){header{height:auto;min-height:100px;flex-wrap:wrap;gap:22px;padding-top:20px;padding-bottom:20px}nav{flex-wrap:wrap;justify-content:space-between;width:100%;gap:14px}.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){header{gap:18px}nav{justify-content:flex-start;gap:12px 18px;font-size:11px}.price-hero{padding:30px 6% 38px}.back-link{margin-bottom:28px}.price-lead{font-size:14px}.price-status{font-size:11px;padding:16px}.price-section{padding:42px 6%}.price-grid,.example-grid,.phone-price{grid-template-columns:1fr}.price-card{padding:25px}.phone-price{padding:25px;gap:15px}.price-section>h2{font-size:26px}.example-grid article{padding:24px}.example-value{font-size:25px}.fee-rule p{font-size:12px}}

/* Contact details: exactly two readable, actionable lines. */
.contact-lines{display:grid;gap:12px;position:relative;z-index:1}.contact-lines p{margin:0;font-size:clamp(12px,3.8vw,18px);line-height:1.8}.contact-lines a{display:inline-block;text-decoration:underline;text-underline-offset:.22em}
