/*
Theme Name: Office Web
Description: 兵頭栄次土地家屋調査士事務所のブロックテーマ。
Version: 0.2.8
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: office-web
*/
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0}a{text-underline-offset:.24em}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #ac6b37;outline-offset:5px}img{max-width:100%;height:auto}.wp-site-blocks> *{margin-block-start:0}.shell{max-width:1160px;margin-inline:auto;padding-inline:24px}.site-header{padding-block:25px;border-bottom:1px solid #dce2df}.brand{font-size:1.08rem;font-weight:700;letter-spacing:.03em}.brand a{text-decoration:none}.eyebrow{font-size:.8rem;letter-spacing:.14em;font-weight:600;color:#526760}.site-nav{font-size:.9rem;gap:1.4rem}.site-nav a{text-decoration:none}.hero{padding-block:76px 84px}.hero h1{font-size:clamp(2rem,3.4vw,3.1rem);line-height:1.5;letter-spacing:.03em;font-weight:500}.hero-copy{max-width:35em}.hero-art{margin:0}.hero-art img{display:block;width:100%;aspect-ratio:4/4.5;object-fit:cover}.hero-art figcaption{font-size:.75rem;color:#687871;text-align:right}.section{padding-block:80px}.section-heading{margin-bottom:36px}.section-heading h2{font-size:clamp(1.7rem,3vw,2.5rem);font-weight:500;line-height:1.5}.service-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:0!important;border-top:1px solid #c8d2ce}.service-grid>.service-card{margin-block:0}.service-card{padding:30px 26px!important;border-bottom:1px solid #c8d2ce}.service-card:nth-child(odd){border-right:1px solid #c8d2ce}.service-card h3{font-size:1.35rem;font-weight:500}.service-card .number{font-size:.8rem;color:#687871;letter-spacing:.13em}.service-card a{font-weight:600}.muted{color:#53645f}.region-panel{background:#edf1ed;padding:42px!important}.about-placeholder{min-height:260px;background:#e4ebe7;display:flex;align-items:center;justify-content:center;color:#526760;border-left:6px solid #afbdad}.contact-panel{background:#193e43;color:white;padding:52px!important}.contact-panel h2{color:white}.contact-panel a{color:white}.office-contact{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:24px}.office-contact a,.office-contact .pending{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 22px;border:1px solid #dae5dc;text-decoration:none}.office-contact a.web-cta{background:#193e43;color:#fff}.office-contact .pending{color:#e0e7e2}.preparation{font-size:.875rem}.site-footer{padding-block:40px;background:#eef1ee;font-size:.875rem}.footer-nav{gap:1.2rem}.wp-block-button__link{border-radius:0;min-height:48px;padding:13px 24px}.wp-block-details{padding:18px 0;border-bottom:1px solid #d0d9d5}.wp-block-details summary{cursor:pointer;font-weight:600}.wp-block-post-content a{overflow-wrap:anywhere}.entry-shell{padding-block:64px;min-height:50vh}.section:target{scroll-margin-top:24px}
@media(max-width:781px){.shell{padding-inline:20px}.site-header .wp-block-group.is-layout-flex{gap:20px}.site-nav{gap:16px!important}.hero{padding-block:38px 48px}.hero .wp-block-columns{gap:28px!important}.hero-art img{aspect-ratio:5/3}.section{padding-block:48px}.service-grid{grid-template-columns:1fr}.service-card{padding:26px 0!important}.service-card:nth-child(odd){border-right:0}.region-panel,.contact-panel{padding:28px!important}.office-contact{align-items:stretch;flex-direction:column}.site-footer .wp-block-group.is-layout-flex{align-items:flex-start}.brand{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Phase-one navigation and persistent mobile contact entry. */
.site-nav a,.header-contact a,.footer-nav a{display:inline-block;padding-block:10px}.header-contact{font-size:.875rem}.hero-lead{font-size:1.3rem;font-family:var(--wp--preset--font-family--serif)}.hero .office-contact a.web-cta{background:#193e43;color:white}.hero .office-contact .pending{color:#53645f;border-color:#9daea5}.contact-panel .eyebrow{color:#d0ded5}.contact-panel h3{color:white;font-size:1.25rem}.web-preparation{margin-top:32px;padding-top:24px;border-top:1px solid #668185}.office-areas h3{font-size:1.25rem}.office-areas ul{columns:2;padding-left:1.4em}.site-footer .office-contact .pending{color:#53645f;border-color:#9daea5}.site-footer .office-contact a{color:#193e43;border-color:#9daea5}.mobile-contact{display:none}.remote-section{border-top:1px solid #dce2df}
@media(max-width:781px){.site-header{padding-block:16px}.site-nav{width:100%;font-size:.875rem;gap:4px 16px!important}.header-contact{display:none}.hero h1{font-size:clamp(1.8rem,7vw,2.6rem)}.hero-art img{aspect-ratio:2/1}.hero{padding-top:26px}.mobile-contact{display:block;position:fixed;bottom:0;left:0;right:0;background:#fff;padding:8px 12px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #9daea5;z-index:30}.mobile-contact .office-contact{margin:0;flex-direction:row;gap:8px}.mobile-contact .office-contact>*{flex:1;font-size:.8rem;padding:8px;min-height:46px}.mobile-contact .pending{color:#53645f;border-color:#9daea5}.mobile-contact .office-contact .web-cta{background:#193e43;color:#fff}.site-footer{padding-bottom:120px}.office-areas ul{columns:1}body:has(input:focus,textarea:focus) .mobile-contact{display:none}}
.mobile-contact .phone-cta{flex-direction:column;gap:1px;line-height:1.25}.mobile-contact .phone-cta strong{font-size:.8rem;white-space:nowrap}
.office-breadcrumbs{font-size:.875rem;margin-bottom:28px}.office-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:.6em;list-style:none;margin:0;padding:0}.office-breadcrumbs li+li::before{content:"›";margin-right:.6em;color:#687871}.entry-shell .wp-block-post-title{font-size:clamp(2rem,4vw,3rem);margin-bottom:40px}.entry-shell .wp-block-post-content h2{font-size:clamp(1.6rem,3vw,2.15rem);margin-top:2.8em}.entry-shell .wp-block-post-content h3{font-size:clamp(1.25rem,2vw,1.55rem);margin-top:2em}.entry-shell .wp-block-post-content p{line-height:1.9}.entry-shell .wp-block-post-content .office-contact{margin-top:16px}.entry-shell .wp-block-post-content .office-public-profile{background:#edf1ed;padding:28px;margin-block:32px}.entry-shell .wp-block-post-content .office-public-profile h3{margin-top:1em}.entry-shell .wp-block-post-content .wp-block-separator{margin-block:56px}.entry-shell .wp-block-post-content .callback-note{font-size:.875rem}.entry-shell .wp-block-post-content{overflow-wrap:anywhere}
/* One-column consultation form. Labels and errors remain visible without script. */
.contact-form-wrap{max-width:760px;margin-block:36px 52px}.contact-form-wrap form{display:grid;gap:26px}.contact-field{min-width:0;margin:0}.contact-field>label,.contact-field legend{display:block;font-weight:650;margin-bottom:8px}.contact-field fieldset,.contact-field legend{max-width:100%}.contact-field input:not([type=radio]):not([type=checkbox]),.contact-field select,.contact-field textarea{display:block;width:100%;max-width:100%;min-width:0;border:1px solid #71847a;border-radius:0;background:#fff;color:#193e43;padding:12px 14px;font:inherit;font-size:max(16px,1rem);line-height:1.5}.contact-field input:not([type=radio]):not([type=checkbox]),.contact-field select{min-height:48px}.contact-field textarea{resize:vertical}.contact-field input:focus-visible,.contact-field select:focus-visible,.contact-field textarea:focus-visible,.contact-submit:focus-visible{outline:3px solid #ac6b37;outline-offset:3px}.contact-field [aria-invalid=true]{border-color:#a63625!important}.contact-choice{display:flex!important;align-items:flex-start;gap:10px;padding:8px 0;min-height:44px;font-weight:400!important}.contact-choice input{flex:none;width:22px;height:22px;margin:2px 0 0}.contact-help,.contact-error{font-size:.875rem;line-height:1.65;margin:6px 0 10px}.contact-error{color:#9b2d1f;font-weight:650}.required,.optional{font-size:.8rem;font-weight:600}.required{color:#9b2d1f}.optional{color:#53645f}.contact-alert,.contact-notice{background:#f4f0e9;border-left:4px solid #8c5c39;padding:16px 20px;margin-block:20px}.contact-alert h2{font-size:1.3rem!important;margin:0 0 8px!important}.contact-alert p{margin-block:6px!important}.contact-alert ul{margin:10px 0 0;padding-left:1.5em}.contact-submit{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 24px;border:0;background:#193e43;color:#fff;font:inherit;font-weight:600;cursor:pointer}.contact-submit:disabled{opacity:.7;cursor:wait}.contact-success{background:#edf1ed;padding:24px;margin-block:24px}.office-contact-page .mobile-contact{display:none!important}.office-contact-page .site-footer{padding-bottom:40px}
@media(max-width:781px){.contact-form-wrap{margin-block:28px 40px}.contact-submit{width:100%}.office-contact-page .entry-shell{padding-block:40px}}

/* Reusable building-service page. The approved copy remains in WordPress blocks. */
.service-shell{padding-block:56px 96px}.service-shell .wp-block-post-title{font-size:clamp(2rem,3.5vw,3rem);line-height:1.45;margin-bottom:24px}
.service-shell .wp-block-post-content{max-width:760px;font-size:1.125rem;line-height:1.9}
.service-shell .wp-block-post-content h2{font-size:clamp(1.75rem,2.5vw,2.125rem);line-height:1.5;margin:0 0 24px}
.service-shell .wp-block-post-content h3{font-size:clamp(1.375rem,2vw,1.5625rem);line-height:1.55;margin:0 0 16px}
.service-shell .wp-block-post-content p{margin-block:0 22px}.service-shell .wp-block-post-content p:last-child{margin-bottom:0}
.service-shell .wp-block-post-content .service-section{margin-top:72px}.service-shell .wp-block-post-content .service-section>*:first-child{margin-top:0}
.service-shell .wp-block-post-content .wp-block-separator{display:none}
/* Separate a completed list from the following service subsection. */
.service-shell .wp-block-post-content ul+h2,.service-shell .wp-block-post-content ul+h3,
.service-shell .wp-block-post-content ol+h2,.service-shell .wp-block-post-content ol+h3{margin-top:1.75rem!important}
.service-intro>.service-person-link+p{font-size:1.22rem;line-height:1.85}.service-person-link{font-size:1rem;margin-bottom:20px!important}.service-person-link a{text-decoration:underline}
.service-toc{border-block:1px solid #c8d2ce;padding:22px 0;margin-top:48px}.service-toc p{font-size:1rem;font-weight:650;margin-bottom:12px!important}
.service-toc ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px;margin:0;padding-left:1.25em;font-size:1rem}.service-toc li{min-width:0}.service-toc a{display:inline-block;padding-block:8px}
.service-case,.service-option,.service-step,.service-faq-item{min-width:0}.service-case{border:1px solid #c8d2ce;padding:28px;margin-top:20px}.service-case h3,.service-option h3{margin-top:0!important}
.service-notice{background:#edf1ed;padding:28px;margin-top:24px}.service-notice p:first-child{font-weight:650}
.service-option{border-top:1px solid #c8d2ce;padding-top:24px;margin-top:24px}.service-scope-note,.service-remote-note{border-left:3px solid #8caaa0;padding-left:20px}
.service-step{border-top:1px solid #c8d2ce;padding:20px 0}.service-step-label{font-size:.9rem;font-weight:700;color:#526760;margin:0 0 8px!important}
.service-shell .wp-block-post-content .office-public-profile-person,#about .office-public-profile-person{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;background:#edf1ed;padding:28px;margin:30px 0 36px;align-items:start}
.office-profile-portrait{margin:0}.office-profile-photo{display:block;width:200px;height:250px;object-fit:cover;object-position:center 35%}.office-profile-copy{min-width:0}
.office-profile-name{display:flex;flex-direction:column;gap:2px}.office-profile-name strong{font-size:1.5rem;font-weight:600}.office-profile-name span{font-size:1rem}.office-profile-copy p{margin-bottom:10px!important}.office-profile-copy p:last-child{margin-bottom:0!important}
.office-areas-service{border-top:1px solid #c8d2ce;padding-top:24px}.office-areas-service p{margin-bottom:20px!important}
.service-faq-item{border-top:1px solid #c8d2ce;padding:24px 0}.service-faq-item:last-child{border-bottom:1px solid #c8d2ce}.service-faq-item h3,.service-faq-item p{position:relative;padding-left:34px}.service-faq-item h3::before,.service-faq-item p::before{position:absolute;left:0;top:0;font-family:var(--wp--preset--font-family--body);font-weight:700;color:#526760}.service-faq-item h3::before{content:'Q'}.service-faq-item p::before{content:'A'}
.office-related-services{margin-top:64px}.office-related-title{font-size:1.35rem;font-weight:600}.office-related-services ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0 0;padding:0;list-style:none}.office-related-services li{border-top:1px solid #c8d2ce;padding:14px 0}
.service-final{background:#edf1ed;padding:32px;margin-inline:-32px}.service-final>h2{margin-top:0!important}
.office-contact-stage{margin-block:26px 0}.office-contact-stage .office-contact{margin-top:0}.office-contact-stage .office-contact a{min-height:52px;text-align:center}.office-contact-stage .preparation,.office-contact-stage .callback-note,.office-contact-stage .office-contact-terms{font-size:.9375rem;line-height:1.7;margin:10px 0 0!important}
.office-contact-stage-quiet .office-contact .phone-cta{background:#fff;color:#193e43;border-color:#9daea5}.office-contact-stage-quiet .office-contact .web-cta{background:#fff;color:#193e43;border-color:#9daea5}
.office-contact-stage-standard{background:#edf1ed;padding:28px}.office-contact-label{font-size:.9rem;font-weight:650;margin:0 0 14px!important}.office-contact-stage-standard .office-contact .phone-cta{background:#193e43;color:#fff}.office-contact-stage-standard .office-contact .web-cta{background:#193e43;color:#fff}
.office-contact-stage-final{background:#193e43;color:#fff;padding:32px;margin-top:26px}.office-contact-stage-final .office-contact .phone-cta{background:#fff;color:#193e43}.office-contact-stage-final .office-contact .web-cta{background:#fff;color:#193e43}
/* Telephone and Web are equal consultation methods. */
.office-contact .phone-cta,.office-contact .web-cta{background:#193e43;color:#fff;border-color:#71847a;text-align:center}
.office-contact-stage-quiet .office-contact .phone-cta,.office-contact-stage-quiet .office-contact .web-cta{background:#fff;color:#193e43;border-color:#9daea5}
.office-contact-stage-final .office-contact .phone-cta,.office-contact-stage-final .office-contact .web-cta,.contact-panel .office-contact a.phone-cta,.contact-panel .office-contact a.web-cta{background:#fff;color:#193e43;border-color:#dae5dc}
.hero .office-contact a.web-cta{background:#193e43;color:#fff}
.site-footer .office-contact a.phone-cta,.site-footer .office-contact a.web-cta{background:#193e43;color:#fff}
@media(max-width:781px){
  .service-shell{padding-block:40px 104px}.service-shell .wp-block-post-title{font-size:1.75rem;line-height:1.5}
  .service-shell .wp-block-post-content{font-size:1.0625rem;line-height:1.9}.service-shell .wp-block-post-content h2{font-size:1.5rem;line-height:1.55}.service-shell .wp-block-post-content h3{font-size:1.25rem;line-height:1.6}
  .service-shell .wp-block-post-content .service-section{margin-top:48px}.service-toc{margin-top:40px}.service-toc ul{grid-template-columns:1fr;gap:2px}
  .service-case,.service-notice,.office-contact-stage-standard{padding:16px}.service-scope-note,.service-remote-note{padding-left:16px}
  .service-shell .wp-block-post-content .office-public-profile-person,#about .office-public-profile-person{grid-template-columns:1fr;gap:16px;padding:16px}.office-profile-photo{width:128px;height:160px}
  .service-final{margin-inline:0;padding:16px}.office-contact-stage-final{padding:16px}
  .office-contact-stage .office-contact{display:flex;flex-direction:column;align-items:stretch;gap:12px}.office-contact-stage .office-contact a{width:100%;min-height:52px}
  .office-contact-stage-quiet .office-contact .web-cta{min-height:52px}.office-related-services ul{grid-template-columns:1fr}
  .mobile-contact .office-contact{gap:8px}.mobile-contact .office-contact>*{min-width:0}.mobile-contact .office-contact .phone-cta,.mobile-contact .office-contact .web-cta{flex:1;background:#193e43;color:#fff;border-color:#71847a}
}

/* Work photograph: readable copy on the left, uncropped portrait on the right. */
.hero-photo{position:relative;isolation:isolate;padding:0;min-height:640px;background:#edf1ed}
.hero-photo .hero-art{position:absolute;inset:0;margin:0;z-index:-2}
.hero-photo .hero-art img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;object-position:right center}
.hero-photo::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(255,255,255,.76) 0%,rgba(255,255,255,.62) 36%,rgba(255,255,255,.22) 49%,rgba(255,255,255,0) 58%)}
.hero-photo .hero-content{width:48%;min-width:0;padding:40px 28px;background:transparent}
.hero-photo h1{font-size:clamp(2rem,3.2vw,2.75rem);margin-block:16px 20px}
.hero-photo .hero-copy{font-size:1.0625rem;line-height:1.8}
.hero-photo .office-contact{display:grid;grid-template-columns:minmax(0,max-content);width:max-content;max-width:100%;gap:12px}
.hero-photo .office-contact a{width:auto;min-width:0;max-width:100%;white-space:nowrap;overflow-wrap:anywhere}
/* Only the phone contributes intrinsic width; the Web button fills that track. */
.hero-photo .office-contact a.web-cta{contain:inline-size}
.hero-photo .office-contact a.phone-cta{background:#193e43;color:#fff}
.hero-photo .office-contact a.web-cta{background:#fff;color:#193e43;border-color:#71847a}
.hero-photo .preparation,.hero-photo .callback-note{font-size:.875rem;line-height:1.7}
@media(max-width:1023px){
  .hero-photo{display:flex;flex-direction:column;min-height:0;padding:0;background:#fff}
  .hero-photo::before{display:none}
  .hero-photo .hero-content{width:100%;padding:28px 20px;background:#fff}
  .hero-photo .hero-art{position:static;z-index:auto;margin:0}
  .hero-photo .hero-art img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
  .hero-photo .office-contact a{white-space:normal}
}
