/* Ridge Field corporate site — styles carried over verbatim from the approved design v0.14
   (_handoff/ridge_field_logo_slots_preview_v14.html), in the original cascade order.
   Production-only additions are at the end of this file. */

/* ---- v14: base ---- */
:root{--ink:#23372e;--muted:#5e685f;--paper:#f7f6f0;--white:#fffefa;--line:#d9ddd4;--accent:#b45131;--sand:#efece0;--content:1240px;--pad:clamp(22px,4.8vw,76px);--font:"Hiragino Kaku Gothic ProN","Yu Gothic","YuGothic","Noto Sans CJK JP",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:26px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{font:inherit}p,h1,h2,h3,figure{margin:0}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}button:disabled{cursor:not-allowed}.wrap{max-width:calc(var(--content) + var(--pad)*2);margin:0 auto;padding:0 var(--pad)}.eyebrow{font-family:Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;line-height:1.5}.section-title{font-size:clamp(28px,3vw,40px);font-weight:700;letter-spacing:.04em;line-height:1.55}.body-copy{font-size:15px;line-height:2.05}.body-copy p+p{margin-top:18px}.muted{color:var(--muted)}.section-kicker{display:flex;gap:16px;align-items:center;margin-bottom:18px}.section-kicker:before{content:"";display:block;width:22px;height:2px;background:var(--accent)}.skip{position:absolute;z-index:100;left:18px;top:-100px;background:#fff;padding:10px 18px}.skip:focus{top:10px}.review-banner{padding:7px 18px;text-align:center;color:#fffefb;background:var(--ink);font-size:11px;letter-spacing:.05em;line-height:1.6}.site-header{position:relative;z-index:20;background:var(--paper)}.header-inner{min-height:94px;display:flex;justify-content:space-between;align-items:center;gap:30px}.brand-link{text-decoration:none;display:block;flex-shrink:0}.nav{display:flex;align-items:center;gap:clamp(20px,2.4vw,36px)}.nav a{text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap;padding:10px 0;border-bottom:1px solid transparent}.nav a:hover{border-color:var(--ink)}.nav a.nav-contact{padding:10px 19px;border:1px solid var(--ink);border-radius:2px}.menu-button{display:none;border:1px solid var(--line);background:transparent;padding:9px 12px;color:var(--ink);font-size:12px;border-radius:2px;min-height:44px;cursor:pointer}.logo-slot{position:relative;display:grid;place-items:center;min-width:0;border:1px dashed #91a095;background:rgba(255,255,255,.35);padding:12px;text-align:center;overflow:hidden}.logo-slot .logo-fallback{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;line-height:1.6}.logo-slot .logo-fallback strong{font:500 18px/1.35 var(--font);color:#43564a;overflow-wrap:anywhere}.logo-slot .logo-fallback small{font:400 10px/1.6 var(--font);letter-spacing:.08em;color:#667469}.logo-slot img{width:100%;height:100%;object-fit:contain;min-height:0}.logo-slot.is-ready{border-color:transparent;background:transparent}.logo-slot.is-ready .logo-fallback{display:none}.logo-slot img[hidden]{display:none}.logo-corp{width:178px;height:58px}.logo-corp .logo-fallback strong{font-size:16px}.logo-corp .logo-fallback small{font-size:9px}.logo-group{width:min(244px,100%);height:75px}.logo-large{width:min(320px,100%);height:130px;margin-inline:auto}.logo-sanpochi{width:min(310px,100%);height:145px}.hero{padding:4px 0 30px}.hero-layout{display:grid;grid-template-columns:44% 56%;align-items:stretch;position:relative;max-width:1600px;margin:0 auto;padding-left:max(var(--pad),calc((100vw - var(--content))/2));padding-right:24px;min-height:640px}.hero-text{padding:74px 30px 56px 0;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}.hero-text .eyebrow{font-size:11px;letter-spacing:.06em;font-family:var(--font);margin-bottom:30px}.hero-text h1{font-size:clamp(46px,5.7vw,82px);line-height:1.36;font-weight:700;letter-spacing:.015em;white-space:normal;font-feature-settings:"palt"}.hero-text h1 span{display:block;white-space:nowrap}.hero-sub{font-size:clamp(14px,1.25vw,17px);line-height:2.05;font-weight:500;letter-spacing:.03em;margin-top:26px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:50px;padding:13px 19px;border:1px solid var(--ink);background:var(--ink);color:var(--white);text-decoration:none;font-size:13px;font-weight:700;line-height:1.6;transition:background-color .15s ease}.button:hover{background:#385143}.button .arrow{font-family:Arial,sans-serif;font-size:19px;font-weight:400;line-height:1}.photo{position:relative;background:#e4e8df;overflow:hidden;min-width:0;isolation:isolate}.photo-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}.photo.is-loaded .photo-image{opacity:1}.photo-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:#4d6255;border:1px solid #cbd4c8;gap:13px;background:#e6eadd;line-height:1.8}.photo-fallback .photo-rule{height:1px;width:48px;background:#778a79;margin-bottom:6px}.photo-fallback strong{font-size:20px;font-weight:500;letter-spacing:.1em}.photo-fallback span{font-size:13px;max-width:280px}.photo-fallback small{font-size:11px;color:#626f63;max-width:300px}.photo.is-loaded .photo-fallback{display:none}.hero-photo{min-height:640px;border-radius:2px}.hero-photo .photo-image{object-position:50% 53%}.hero-photo .photo-credit{position:absolute;bottom:14px;right:15px;z-index:2;padding:4px 8px;background:rgba(21,38,30,.84);color:#fff;font:10px/1.5 Arial,sans-serif;text-decoration:none}.hero-photo:not(.is-loaded) .photo-credit{display:none}.hero-bottom{max-width:var(--content);margin:26px auto 0;padding:0 0 12px;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:10px;letter-spacing:.12em;color:var(--muted)}.hero-bottom span:first-child{font-family:Arial,sans-serif}.hero-bottom a{text-decoration:none;display:flex;align-items:center;gap:12px;padding:8px;min-height:40px}.down-mark{display:inline-block;border-left:1px solid currentColor;border-bottom:1px solid currentColor;width:7px;height:7px;transform:rotate(-45deg)}.about{padding:84px 0 100px}.about-grid{display:grid;grid-template-columns:minmax(0,.93fr) minmax(0,1fr);gap:clamp(40px,6vw,98px);align-items:center}.about-photo{aspect-ratio:1/1.07}.about-photo .photo-image{object-position:47% 50%}.image-note{font-size:10px;color:var(--muted);margin-top:9px;letter-spacing:.02em}.image-note a{text-underline-offset:3px}.about-content .section-title{font-size:25px;margin-bottom:26px}.about-opening{font-size:clamp(19px,1.65vw,24px);font-weight:700;line-height:1.95;letter-spacing:.025em;margin-bottom:27px}.about-opening span{display:block}.about-opening .nowrap{white-space:nowrap;font-style:normal}.about-content .body-copy{font-size:14px;line-height:2.15}.brands{padding:90px 0 94px;background:#efeee5}.brands-heading{display:flex;justify-content:space-between;align-items:end;gap:34px;margin-bottom:48px}.brands-heading > p{font-size:13px;line-height:2;color:var(--muted);max-width:340px}.media-group{padding:27px 0 32px;border-top:1px solid #cfd5c9;display:grid;grid-template-columns:270px 1fr;gap:34px;align-items:center}.media-group p{font-size:13px;line-height:2;color:var(--muted)}.media-group .group-line{color:var(--ink);font-weight:700;margin-bottom:6px;font-size:16px}.internal-note{font-size:11px;color:#615b43;padding:11px 14px;border-left:2px solid #b4a56f;background:#f6f2e6;line-height:1.8;margin:0 0 22px}.brand-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.brand-card{background:var(--white);padding:32px 34px 34px;border:1px solid #d8ddcf}.brand-topline{display:flex;justify-content:space-between;align-items:center;gap:15px;color:var(--muted);font-size:11px}.brand-number{font-family:Arial,sans-serif;letter-spacing:.07em}.status{font-size:10px;line-height:1.4;padding:5px 8px;border:1px solid #d5d9cf;background:#f4f4ee;white-space:nowrap;color:#576252}.brand-card .logo-slot{margin-top:26px;margin-bottom:26px}.brand-role{font-size:11px;color:var(--muted);margin-bottom:9px}.brand-card h3{font-size:clamp(19px,1.65vw,23px);line-height:1.7;letter-spacing:.015em;margin-bottom:17px}.brand-card .body-copy{font-size:13px;line-height:2.05}.brand-card .body-copy p+p{margin-top:12px}.sanpochi{margin-top:34px;background:#f7f4e9;border:1px solid #d7d8c6;display:grid;grid-template-columns:.7fr 1fr;gap:52px;padding:44px;align-items:center}.sanpochi-brand{display:flex;flex-direction:column;align-items:center;gap:20px}.sanpochi-brand .brand-role{text-align:center;font-size:11px}.sanpochi h3{font-size:clamp(24px,2.7vw,34px);line-height:1.65;margin-bottom:18px;letter-spacing:.025em}.sanpochi .body-copy{font-size:13px}.partners{padding:78px 0;background:var(--ink);color:var(--white)}.partners-inner{display:grid;grid-template-columns:.9fr 1fr;gap:65px;align-items:start}.partners .section-kicker:before{background:#d8a174}.partners .eyebrow{color:#dbdfd0}.partners h2{font-size:clamp(23px,2.8vw,36px);line-height:1.75;letter-spacing:.035em}.partners .body-copy{font-size:14px;line-height:2.05}.partners .button{margin-top:28px;background:var(--white);color:var(--ink);border-color:var(--white)}.partners .button:hover{background:#e1e6dc}.company{padding:86px 0 84px}.company-inner{display:grid;grid-template-columns:.65fr 1fr;gap:60px}.company dl{margin:0;border-top:1px solid var(--line)}.company-row{display:grid;grid-template-columns:125px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.85}.company dt{font-weight:700}.company dd{margin:0;overflow-wrap:anywhere}.unverified{color:#70745e;font-size:12px}.company .internal-note{margin-top:22px}.contact{padding:68px 0;background:#e9ecdf}.contact-inner{display:grid;grid-template-columns:.65fr 1fr;gap:60px}.contact .body-copy{font-size:14px}.contact-state{margin-top:24px;border:1px dashed #92a18e;padding:18px 20px;font-size:13px}.contact-state strong{display:block;font-weight:600;margin-bottom:5px}.contact-state span{font-size:12px;color:var(--muted)}
.contact-form{margin-top:28px;display:grid;gap:20px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.form-field{display:grid;gap:8px}.form-field.full{grid-column:1/-1}.form-label{font-size:12px;font-weight:700;letter-spacing:.02em}.required{font-size:9px;color:var(--accent);margin-left:7px;vertical-align:middle}.optional{font-size:9px;color:var(--muted);margin-left:7px;font-weight:400}.form-control{width:100%;min-height:50px;border:1px solid #aeb9aa;background:rgba(255,255,255,.76);color:var(--ink);border-radius:0;padding:12px 14px;font:inherit;font-size:14px;line-height:1.6;appearance:none}.form-control:focus{outline:3px solid rgba(180,81,49,.22);outline-offset:1px;border-color:var(--accent)}textarea.form-control{min-height:180px;resize:vertical}.select-wrap{position:relative}.select-wrap:after{content:"⌄";position:absolute;right:15px;top:50%;transform:translateY(-56%);pointer-events:none;color:var(--muted);font-size:16px}.privacy-purpose{font-size:11px;line-height:1.9;color:var(--muted);padding:14px 16px;border:1px solid #c4cec0;background:rgba(255,255,255,.5);margin-bottom:13px}.privacy-purpose strong{color:var(--ink);font-size:11px}.privacy-purpose a,.form-consent a{text-underline-offset:3px}
.form-consent{display:flex;align-items:flex-start;gap:10px;font-size:11px;line-height:1.8;color:var(--muted)}.form-consent input{width:18px;height:18px;margin:3px 0 0;flex:0 0 auto}.form-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.form-submit{border:1px solid var(--ink);background:var(--ink);color:var(--white);min-height:52px;padding:13px 24px;font-weight:700;font-size:13px;cursor:pointer}.form-submit:hover{background:#385143}.form-note{font-size:10px;line-height:1.8;color:var(--muted);max-width:520px}.form-status{min-height:22px;font-size:11px;line-height:1.8;color:#6d522e}.prototype-only{margin-top:16px;border-left:2px solid #b4a56f;background:#f6f2e6;padding:10px 12px;font-size:10px;line-height:1.8;color:#615b43}
.site-footer{padding:33px 0;background:var(--paper)}.footer-inner{display:flex;align-items:start;justify-content:space-between;gap:20px;font-size:11px;line-height:1.9}.footer-name{font-weight:700;font-size:14px;letter-spacing:.04em;margin-bottom:6px}.footer-inner a{text-underline-offset:4px}.prototype-details{margin-top:20px;font-size:11px;color:var(--muted)}.prototype-details summary{cursor:pointer;min-height:35px;display:list-item;width:max-content;max-width:100%}.prototype-details p{margin-top:7px;max-width:930px}.nojs-note{background:#efe5cf;padding:14px;text-align:center;font-size:13px}
@media(min-width:1600px){.hero-layout{padding-left:76px;grid-template-columns:45% 55%}.hero-text h1{font-size:84px}}

@media(max-width:1000px){.header-inner{min-height:86px}.nav{gap:18px}.nav a{font-size:11px}.logo-corp{width:155px;height:52px}.hero-layout{min-height:550px}.hero-photo{min-height:550px}.hero-text h1{font-size:clamp(42px,5.3vw,65px)}.hero-sub{font-size:13px}.hero-text{padding-right:22px}.about{padding:65px 0 75px}.about-grid{gap:35px}.about-content .body-copy{font-size:13px}.about-opening{font-size:19px}.brands{padding:70px 0}.brand-card{padding:25px}.sanpochi{padding:34px;gap:32px}.company-inner,.contact-inner{grid-template-columns:.48fr 1fr;gap:35px}.partners-inner{gap:40px}.company-row{grid-template-columns:110px 1fr}}
@media(max-width:760px){html{scroll-padding-top:16px}.review-banner{font-size:10px;padding:6px 12px;letter-spacing:0}.header-inner{min-height:77px;gap:18px}.logo-corp{width:150px;height:47px;padding:6px}.logo-corp .logo-fallback strong{font-size:14px}.logo-corp .logo-fallback small{font-size:8px}.menu-button{display:inline-flex;gap:12px;align-items:center}.menu-button:after{content:"＋";font-size:17px;line-height:1}.menu-button[aria-expanded="true"]:after{content:"−"}.nav{display:none;position:absolute;top:100%;left:0;right:0;padding:15px var(--pad) 24px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 8px 16px rgba(0,0,0,.05);z-index:30}.nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.nav a{font-size:14px;padding:13px 0}.nav a.nav-contact{margin-top:9px;text-align:center;font-size:13px}.hero{padding:0 0 8px}.hero-layout{display:flex;flex-direction:column;padding:0 0;min-height:0;max-width:none}.hero-photo{order:0;min-height:0;height:auto;aspect-ratio:1.52;margin:0 12px;border-radius:1px}.hero-text{order:1;padding:29px var(--pad) 20px}.hero-text .eyebrow{margin-bottom:15px;font-size:10px;letter-spacing:.055em}.hero-text h1{font-size:clamp(40px,11.75vw,56px);line-height:1.33;letter-spacing:.015em}.hero-text h1 span{white-space:nowrap}.hero-sub{font-size:13px;line-height:2;margin-top:18px;letter-spacing:0}.button{font-size:12px;min-height:48px;padding:12px 15px;gap:20px}.hero-bottom{margin:10px var(--pad) 0;padding-bottom:0;gap:10px}.hero-bottom span:first-child{font-size:9px;letter-spacing:.09em}.hero-bottom a{font-size:9px;padding:5px 0;gap:10px}.hero-photo .photo-credit{font-size:8px;bottom:8px;right:8px}.photo-fallback{padding:18px;gap:7px}.photo-fallback strong{font-size:15px}.photo-fallback span{font-size:11px}.photo-fallback small{font-size:9px}.photo-fallback .photo-rule{margin:0;width:30px}.about{padding:52px 0 54px}.about-grid{display:flex;flex-direction:column;gap:28px}.about-content{order:0;width:100%}.about-photo-block{order:1;width:100%}.about-content .section-title{font-size:23px;margin-bottom:22px}.about-opening{font-size:19px;line-height:1.95;margin-bottom:23px}.about-opening span{display:block}.about-opening .nowrap{white-space:nowrap;font-style:normal}.about-content .body-copy{font-size:13px;line-height:2.1}.about-photo{aspect-ratio:1.18}.section-kicker{margin-bottom:14px;gap:12px}.eyebrow{font-size:10px}.section-kicker:before{width:18px}.image-note{font-size:9px}.brands{padding:51px 0 52px}.brands-heading{display:block;margin-bottom:28px}.section-title{font-size:27px}.brands-heading > p{font-size:12px;margin-top:15px;max-width:none}.media-group{display:block;padding:24px 0;gap:0}.logo-group{width:220px;height:68px;margin-bottom:20px}.logo-group .logo-fallback strong{font-size:16px}.media-group .group-line{font-size:15px}.media-group p{font-size:12px}.internal-note{font-size:10px;padding:10px 12px;margin-bottom:18px}.brand-grid{grid-template-columns:minmax(0,1fr);gap:18px}.brand-card{padding:22px 24px 27px}.brand-card .logo-slot{margin-top:21px;margin-bottom:22px;height:116px}.brand-card h3{font-size:20px;line-height:1.75;margin-bottom:15px}.brand-card .body-copy{font-size:12px;line-height:2.1}.brand-role{font-size:11px}.brand-number{font-size:10px}.status{font-size:9px}.sanpochi{display:block;padding:28px 24px;margin-top:23px}.sanpochi-brand{align-items:flex-start;gap:15px;margin-bottom:25px}.sanpochi-brand .brand-role{text-align:left}.logo-sanpochi{height:118px;width:100%}.sanpochi h3{font-size:25px;line-height:1.65;margin-bottom:17px}.sanpochi .body-copy{font-size:12px;line-height:2.1}.partners{padding:49px 0}.partners-inner{display:block}.partners h2{font-size:25px;line-height:1.75;margin-bottom:24px}.partners .body-copy{font-size:13px}.partners .button{margin-top:24px}.company{padding:52px 0}.company-inner,.contact-inner{display:block}.company-inner>div:first-child{margin-bottom:28px}.company-row{grid-template-columns:92px 1fr;gap:13px;padding:17px 0;font-size:12px}.unverified{font-size:11px}.company .internal-note{margin-top:19px}.contact{padding:48px 0}.contact-inner>div:first-child{margin-bottom:24px}.contact .body-copy{font-size:13px}.contact-state{padding:15px 16px;font-size:12px}.contact-state span{font-size:11px}.form-grid{grid-template-columns:1fr;gap:17px}.form-control{font-size:16px;min-height:50px}textarea.form-control{min-height:160px}.form-actions{align-items:stretch}.form-submit{width:100%}.form-note{font-size:9px}.site-footer{padding:27px 0}.footer-inner{display:block;font-size:10px}.footer-name{font-size:13px}.footer-right{margin-top:17px}.prototype-details{font-size:10px}.prototype-details summary{padding:6px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}



/* v0.5 fixed About selection: preserve approved crop. */
.about-photo .photo-image{object-position:var(--about-photo-position,50% 50%)}

/* v0.5: all English section labels use the shared .eyebrow typography.
   Only the DIRECT description paragraph of .brands-heading gets body styling.
   Do not target nested .section-kicker paragraphs with the description rule. */

@media(max-width:1300px){.hero-layout{grid-template-columns:46% 54%;min-height:585px}.hero-photo{min-height:585px}.hero-text{padding-top:45px;padding-bottom:45px}.hero-bottom{margin-left:var(--pad);margin-right:var(--pad)}}
@media(max-width:1100px){.hero-layout{min-height:630px;padding-top:116px;padding-bottom:106px}.hero-text{width:52vw}.hero-layout[data-align="right"] .hero-text{width:51vw}.hero-text h1{font-size:clamp(48px,6.3vw,68px)}.hero-sub{font-size:14px}.hero-bottom{gap:20px}.hero-bottom span:first-child{font-size:9px}.photo-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){.hero-layout{min-height:715px}.hero-bottom span:first-child{font-size:7px}.hero-bottom a{font-size:8px}.review-banner{font-size:7px}}
@media print{.review-banner{color:#000;background:none;border-bottom:1px solid #000}.menu-button{display:none}.nav{display:none}.logo-slot{break-inside:avoid}.brand-card{break-inside:avoid}.hero-photo{min-height:320px}.hero-layout{min-height:320px}}

/* ---- v14: #v02-hero-overrides ---- */
/* v0.2: full-bleed photograph; copy is live HTML, not flattened into the image. */
:root{--review-height:34px;--hero-white:#fffdf5}
.review-banner{height:var(--review-height);padding:0 18px;display:flex;justify-content:center;align-items:center;gap:8px;line-height:1.3;font-size:10px;white-space:nowrap}
.review-banner a{text-underline-offset:3px;font-weight:700;margin-left:8px;color:inherit}
.site-header{position:absolute;left:0;right:0;top:var(--review-height);background:transparent;color:var(--hero-white);z-index:20}
.header-inner{min-height:104px}
.site-header .logo-slot{background:rgba(21,38,30,.15);border-color:rgba(255,253,245,.55)}
.site-header .logo-slot.is-ready{border-color:transparent;background:transparent}
.site-header .logo-slot .logo-fallback strong,.site-header .logo-slot .logo-fallback small{color:var(--hero-white)}
.site-header .nav a{border:0;border-radius:0;background:transparent;padding:12px 0;color:var(--hero-white);text-shadow:0 1px 7px rgba(0,0,0,.5)}
.site-header .nav a:hover{text-decoration:underline;text-underline-offset:7px}
.site-header .menu-button{border:1px solid rgba(255,253,245,.6);color:var(--hero-white);background:rgba(14,30,20,.23)}
.site-header a:focus-visible,.site-header button:focus-visible,.hero a:focus-visible{outline:3px solid #fffdf5;outline-offset:6px}
.hero{padding:0;color:var(--hero-white)}
.hero-layout{display:flex;flex-direction:column;position:relative;isolation:isolate;min-height:660px;height:calc(100vh - var(--review-height));height:calc(100svh - var(--review-height));max-height:1040px;max-width:none;margin:0;padding:124px var(--pad) 105px;background:#23372e;overflow:hidden}
.hero-photo{position:absolute;inset:0;z-index:0;min-height:0;height:100%;width:100%;border:0;border-radius:0;margin:0;aspect-ratio:auto}
.hero-photo .photo-image{opacity:1;object-position:var(--photo-x-desktop) var(--photo-y-desktop)}
.hero-photo .photo-fallback{display:none;border:0;background:#4e6256;align-items:flex-end;justify-content:flex-end;padding:44px;color:#fffdf5;text-align:right}
.hero-photo .photo-fallback>*{max-width:300px}.hero-photo .photo-fallback small{color:#e3e9df}
.hero-photo.is-error .photo-image{display:none}.hero-photo.is-error .photo-fallback{display:flex}
.hero-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(8,24,13,.70) 0%,rgba(8,24,13,.52) 28%,rgba(8,24,13,.20) 53%,rgba(8,24,13,.02) 82%),linear-gradient(180deg,rgba(6,19,10,.37) 0%,rgba(6,19,10,0) 28%,rgba(6,19,10,.02) 65%,rgba(6,19,10,.40) 100%)}
.hero-text{position:relative;z-index:2;padding:0;margin:auto 0;display:block;width:min(43vw,600px);max-width:100%;color:var(--hero-white)}
.hero-text h1{font-size:clamp(48px,5.5vw,86px);line-height:1.38;font-weight:700;letter-spacing:.035em;text-shadow:0 2px 14px rgba(0,0,0,.22);color:var(--hero-white);font-feature-settings:"palt"}
.hero-text h1 span{display:block;white-space:nowrap}
.hero-sub{font-size:clamp(14px,1.22vw,19px);line-height:2;letter-spacing:.04em;margin-top:25px;font-weight:500;text-shadow:0 1px 7px rgba(0,0,0,.65)}




.hero-bottom{position:absolute;left:var(--pad);right:var(--pad);bottom:21px;z-index:3;max-width:none;margin:0;padding:0;color:var(--hero-white);justify-content:flex-start;gap:34px;font-size:10px;text-shadow:0 1px 8px #15261c}
.hero-bottom a{color:inherit;min-height:44px}
.hero-layout>.photo-credit{position:absolute;z-index:3;bottom:34px;right:var(--pad);font:10px/1.4 Arial,sans-serif;text-decoration:none;color:var(--hero-white);text-shadow:0 1px 8px #10291a}
.hero-layout[data-align="right"] .hero-text{margin-left:auto;width:min(43vw,570px)}
.hero-layout[data-align="right"] .hero-shade{background:linear-gradient(270deg,rgba(8,24,13,.73) 0%,rgba(8,24,13,.55) 26%,rgba(8,24,13,.2) 50%,rgba(8,24,13,.02) 85%),linear-gradient(180deg,rgba(6,19,10,.4),transparent 30%,transparent 65%,rgba(6,19,10,.40))}
@media(min-width:1700px){.hero-text h1{font-size:92px}}

@media(max-width:760px){
 :root{--review-height:36px}
 .review-banner{padding:0 9px;gap:4px;font-size:8px}.review-banner a{margin-left:3px}.review-sep{display:none}
 .header-inner{min-height:82px}.site-header .logo-corp{width:147px;height:48px}.site-header .logo-slot .logo-fallback small{font-size:8px}
 .site-header .nav{background:#23372e;border:0;padding-top:13px;padding-bottom:18px;box-shadow:0 6px 14px rgba(0,0,0,.12)}
 .site-header .nav a{padding:13px 0;margin:0;font-size:14px;text-align:left;border:0}
 .hero-layout{display:flex;min-height:705px;height:calc(100vh - var(--review-height));height:calc(100svh - var(--review-height));max-height:1000px;padding:118px var(--pad) 101px}
 .hero-photo{position:absolute;inset:0;height:100%;width:100%;min-height:0;aspect-ratio:auto;margin:0;border-radius:0}
 .hero-photo .photo-image{object-position:var(--photo-x-mobile) var(--photo-y-mobile)}
 .hero-text,.hero-layout[data-align="right"] .hero-text{width:100%;max-width:100%;padding:0;margin:auto 0 0;order:initial}
 .hero-text h1{font-size:clamp(41px,11.75vw,74px);line-height:1.4;letter-spacing:.02em}
 .hero-sub{font-size:13px;line-height:1.95;margin-top:19px;letter-spacing:.02em}

 .hero-shade,.hero-layout[data-align="right"] .hero-shade{background:linear-gradient(180deg,rgba(8,22,14,.42) 0%,rgba(8,22,14,.08) 22%,rgba(8,22,14,.10) 35%,rgba(8,22,14,.55) 57%,rgba(8,22,14,.81) 85%,rgba(8,22,14,.77) 100%)}
 .hero-bottom{left:var(--pad);right:var(--pad);bottom:37px;justify-content:space-between;gap:8px}.hero-bottom span:first-child{font-size:8px;letter-spacing:.05em}.hero-bottom a{font-size:8px;gap:8px;min-height:32px;padding:5px 0}
 .hero-layout>.photo-credit{bottom:16px;right:var(--pad);font-size:8px}
 .hero-photo .photo-fallback{padding:108px 22px 400px;align-items:center;justify-content:flex-start;text-align:center;gap:9px}
 .photo-review{padding-top:10px;padding-bottom:10px}.photo-review summary{font-size:11px}.review-only-label{font-size:9px}.photo-options{gap:10px}.photo-choice{min-height:90px;padding:11px;gap:8px}.photo-choice strong{font-size:11px}.photo-choice small{font-size:9px}.choice-key{font-size:20px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header{position:relative;top:0;background:var(--ink)}.hero-layout{height:620px;min-height:620px}.photo-review{display:none}}

/* ---- v14: #design-polish-v010 ---- */
/* v0.10 design polish: preserve approved hero/photos/copy while refining the page below the fold. */
:root{
  --content:1260px;
  --pad:clamp(22px,4.2vw,68px);
  --paper:#f7f6f0;
  --sand:#efece0;
  --line:#d4d8cf;
}
/* Internal preview chrome should not compete with the site itself. */
.review-banner{display:none!important}
:root{--review-height:0px!important}
.site-header{top:0!important}
/* Header placeholder remains replaceable, but does not look like a debug box. */
.site-header .logo-slot:not(.is-ready){border-color:rgba(255,253,245,.28);background:rgba(15,31,22,.12)}
.site-header .logo-slot .logo-fallback small{opacity:.72}
/* Keep the approved hero intact; only make navigation spacing slightly calmer. */
.site-header .nav{gap:clamp(18px,2.1vw,32px)}
.site-header .nav a{font-size:12px;letter-spacing:.02em}
/* About: compact but breathable—between R.project density and SANU whitespace. */
.about{padding:76px 0 82px}
.about-grid{gap:clamp(42px,5.4vw,82px)}
.about-content{max-width:590px}
.about-photo{aspect-ratio:1/1.04}
.about-opening{margin-bottom:23px}
.about-content .body-copy{max-width:560px}
/* Section headers share one visual system. */
.brands,.partners,.company,.contact{scroll-margin-top:24px}
.brands{padding:78px 0 82px;background:#efeee7}
.brands-heading{align-items:flex-end;margin-bottom:38px}
.brands-heading > p{max-width:370px;font-size:13px;line-height:1.9}
.media-group{padding:25px 0 29px;grid-template-columns:minmax(190px,250px) 1fr;gap:42px}
/* The Field family should feel editorial, not like generic SaaS cards. */
.brand-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 46px;border-bottom:1px solid var(--line)}
.brand-card{background:transparent;border:0;border-top:1px solid var(--line);padding:30px 0 38px;min-width:0}
.brand-card .logo-slot{margin-top:22px;margin-bottom:23px}
.brand-card .body-copy{max-width:530px}
.brand-card h3{min-height:0;margin-bottom:14px}
.brand-topline{min-height:27px}
.status{background:transparent;border-color:#cbd0c7;padding:4px 7px}
/* Keep logo placeholders functional without letting the boxes dominate the design. */
.brands .logo-slot{background:rgba(255,255,255,.22);border-color:#aeb8ad}
.logo-large{height:112px;width:min(290px,100%)}
.logo-group{height:68px}
/* Sanpochi is a distinct service, but still belongs to the same site. */
.sanpochi{margin-top:34px;padding:42px 46px;background:#f6f0df;border:0;border-top:1px solid #d4cfbe;border-bottom:1px solid #d4cfbe;gap:48px}
.sanpochi .logo-slot{background:rgba(255,255,255,.25)}
/* Partnership remains a strong trust/CTA break, with less visual bulk. */
.partners{padding:70px 0}
.partners-inner{gap:clamp(48px,6vw,82px)}
.partners .button{background:transparent;color:var(--white);border-color:rgba(255,255,255,.72)}
.partners .button:hover{background:rgba(255,255,255,.1)}
/* Company and contact: straightforward trust information, tighter rhythm. */
.company{padding:76px 0 74px}
.company-inner,.contact-inner{gap:clamp(44px,5vw,72px)}
.company-row{padding:18px 0}
.contact{padding:72px 0 78px;background:#ecefe5}
.contact-form{margin-top:24px}
.form-grid{gap:17px 20px}
.form-control{background:rgba(255,255,255,.72)}
/* Development-only warning remains available but visually secondary. */
.prototype-only{font-size:10px;line-height:1.75;opacity:.76}
/* Very small motion only; no scroll-jacking or continuous animation. */
.brand-card,.company-row,.form-control,.partners .button{transition:border-color .16s ease,background-color .16s ease,opacity .16s ease}
.brand-card:hover{border-top-color:#87978a}
@media(max-width:900px){
  .brand-grid{gap:0 30px}
  .media-group{grid-template-columns:210px 1fr;gap:28px}
}
@media(max-width:760px){
  .site-header .nav a{font-size:14px}
  .about{padding:48px 0 54px}
  .about-grid{gap:26px}
  .brands{padding:58px 0 62px}
  .brands-heading{margin-bottom:30px}
  .media-group{grid-template-columns:1fr;gap:18px;padding:22px 0 27px}
  .logo-group{width:min(220px,100%)}
  .brand-grid{grid-template-columns:1fr;border-bottom:0}
  .brand-card{padding:27px 0 32px}
  .brand-card:last-child{border-bottom:1px solid var(--line)}
  .logo-large{height:102px}
  .sanpochi{grid-template-columns:1fr;padding:32px 22px 34px;gap:26px;margin-top:28px}
  .partners{padding:54px 0}
  .company{padding:56px 0 54px}
  .contact{padding:54px 0 60px}
}
@media(prefers-reduced-motion:reduce){
  .brand-card,.company-row,.form-control,.partners .button{transition:none!important}
}

/* ---- v14: #copy-polish-v011 ---- */
.brand-card .body-copy p:first-child{font-weight:500;color:#35463d}
.brand-card .body-copy p+p{margin-top:10px}
.sanpochi .body-copy{max-width:650px}
.partners .body-copy{max-width:610px}
.contact .body-copy{max-width:620px}

/* ==== Production additions (not a redesign) ==== */
/* Former inline style="" values from v14, moved here so the CSP can forbid inline styles. */
#hero-stage{--photo-x-desktop:50%;--photo-y-desktop:72%;--photo-x-mobile:50%;--photo-y-mobile:58%}
.about-photo{--about-photo-position:52% 50%}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* Photos are self-hosted now; show them without waiting for a JS load flag (also works without JS). */
.photo .photo-image{opacity:1}
/* Contact form states. */
.field-error{font-size:11px;line-height:1.7;color:#9c3f22}
.field-error:empty{display:none}
.form-control[aria-invalid="true"]{border-color:#9c3f22}
.form-status{font-size:12px}
.form-status.is-success{color:var(--ink);font-weight:700;padding:14px 16px;border:1px solid #9fb09a;background:rgba(255,255,255,.6)}
.form-status.is-error{color:#9c3f22;font-weight:700}
.form-status:empty{padding:0;border:0;background:none}
.form-submit[aria-busy="true"]{opacity:.7}
.form-nojs{margin-top:16px;font-size:12px;color:#9c3f22}
.footer-right{display:flex;flex-wrap:wrap;gap:0 22px}
.footer-right a{display:inline-flex;align-items:center;min-height:44px}
/* Without JS the menu toggle cannot work: show the nav inline (replaces v14's inline <noscript><style>). */
.no-js .menu-button{display:none!important}
.no-js .site-header .nav{display:flex!important}
@media(max-width:760px){

  .no-js .site-header .nav{position:static!important;box-shadow:none!important;flex-basis:100%;width:100%;flex-wrap:wrap!important;gap:4px 16px!important;padding:8px 0!important;background:transparent}
  .no-js .header-inner{flex-wrap:wrap}
  .no-js .site-header .nav a{font-size:12px!important}
}
