@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap");
:root { --green:#245641; --dark:#163b2d; --lime:#d9eab9; --ink:#23352e; --muted:#6b776f; --line:#dce3dc; --bg:#f7f9f5; --header:#eef0f1; --blue:#1769aa; --beige:#faf4e7; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:#fff; font-family:"Noto Sans JP",sans-serif; font-size:16px; line-height:1.8; }
a { color:inherit; text-decoration:none; }
a:hover { text-decoration:underline; }
button,input,select,textarea { font:inherit; }
:focus-visible { outline:3px solid #b88729; outline-offset:4px; }
.sr-only,.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* 元のデザインと同じヘッダー */
.market-header { position:sticky; top:0; z-index:20; min-height:72px; display:flex; align-items:center; gap:18px; padding:11px max(22px,calc((100vw - 1360px)/2)); background:var(--header); border-bottom:1px solid #cbd0d2; }
.market-header .brand { display:flex; align-items:center; gap:10px; white-space:nowrap; color:var(--ink); font-size:22px; font-weight:800; letter-spacing:-1px; }
.brand-stack { display:flex; min-width:max-content; flex-direction:column; align-items:flex-start; gap:2px; }
.brand-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#387653; color:#fff; font-size:23px; line-height:1; }
.brand-sub { margin-left:12px; font-size:11px; font-weight:500; letter-spacing:1px; }
.home-return { display:inline-flex; align-items:center; gap:5px; margin-left:43px; color:#356b50; font-size:12px; font-weight:700; }
.home-return:hover { color:var(--dark); }
.header-search { display:flex; flex:1; max-width:620px; min-width:180px; height:44px; }
.header-search input { min-width:0; flex:1; border:1px solid #999; border-radius:5px 0 0 5px; padding:0 14px; background:#fff; font-size:15px; }
.header-search button { display:flex; align-items:center; gap:6px; border:1px solid #50575b; border-radius:0 5px 5px 0; padding:0 15px; background:#50575b; color:#fff; font-size:14px; font-weight:700; cursor:pointer; }
.market-header nav { display:flex; align-items:center; gap:15px; white-space:nowrap; font-size:14px; font-weight:600; }
.market-header nav a { display:inline-flex; align-items:center; gap:5px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:55px; padding:14px 24px; border:1px solid var(--green); border-radius:6px; background:var(--green); color:#fff; font-weight:600; cursor:pointer; transition:background .15s,transform .15s; }
.button:hover { background:var(--dark); text-decoration:none; transform:translateY(-1px); }
.button.small { min-height:45px; padding:9px 18px; font-size:14px; }
.market-header .button.small { border-color:var(--blue); background:var(--blue); }
.market-header .button.small:hover { background:#135889; }
.button.secondary { border-color:#a7bbae; background:#fff; color:var(--green); }
.button.secondary:hover { background:#f0f5ec; }

.hero { display:grid; grid-template-columns:1.05fr 1fr; align-items:stretch; gap:36px; max-width:1320px; min-height:460px; margin:36px auto 0; padding:0 40px; }
.hero-copy { padding:32px 0 40px; }
.eyebrow { display:inline-flex; align-items:center; gap:8px; color:var(--green); font-size:12px; font-weight:600; letter-spacing:1.7px; }
.eyebrow > span { width:7px; height:7px; border-radius:50%; background:#679047; }
.hero-copy .eyebrow { padding:7px 14px; border-radius:4px; background:#236247; color:#fff; font-size:14px; font-weight:800; letter-spacing:.08em; }
.hero-copy .eyebrow > span { background:var(--lime); }
h1 { margin:18px 0 22px; font-size:clamp(36px,3.5vw,53px); font-weight:700; letter-spacing:.035em; line-height:1.5; }
h2 { margin:8px 0 14px; font-size:28px; letter-spacing:.025em; line-height:1.6; }
h3 { font-size:18px; line-height:1.6; }
p { margin:0 0 16px; }
.hero-copy p { color:#5d6e63; font-size:17px; line-height:2; }
.matching-assurance { margin:18px 0 0; padding:13px 16px; border-left:4px solid #4e895c; background:#f1f6ed; color:#31563f; font-size:14px; font-weight:600; line-height:1.75; }
.matching-assurance strong { display:block; margin-bottom:5px; color:var(--green); font-size:15px; }
.matching-assurance ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px 18px; margin:0; padding:0; list-style:none; }
.matching-assurance li { display:flex; align-items:flex-start; gap:6px; }
.matching-assurance li::before { content:"✓"; color:#347353; font-weight:800; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin:28px 0 17px; }
.hero-copy small { color:var(--muted); font-size:12px; }
.hero-art { position:relative; min-height:425px; overflow:hidden; border-radius:90px 6px 6px 6px; background:#d5e0c8; }
.hero-art > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.art-label { position:absolute; bottom:66px; left:30px; display:flex; align-items:center; gap:18px; padding:17px 23px; border-radius:5px; background:#ffffffed; box-shadow:0 8px 30px #12332110; color:var(--green); font-size:14px; }
.art-label strong,.art-label small { display:block; }
.art-label small { font-size:12px; font-weight:400; }
.art-sprout { font-size:28px; }

.context-section { max-width:1320px; margin:0 auto; padding:26px 40px 22px; background:var(--beige); }
.context-heading { display:grid; grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr); align-items:end; column-gap:40px; }
.context-heading .eyebrow,.context-heading h2 { grid-column:1; }
.context-heading h2 { margin-bottom:0; font-size:clamp(22px,2.15vw,29px); }
.context-heading p { grid-column:2; grid-row:1 / span 2; margin:0; color:#52675a; line-height:1.9; }
.context-points { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:20px; }
.context-points article { padding:15px 17px; border:1px solid #dfcbb2; background:#fff; }
.context-points h3 { margin:0 0 6px; color:#81522c; font-size:16px; }
.context-points p { margin:0; color:#5c6d62; font-size:14px; line-height:1.75; }
.context-source { margin:14px 0 0; color:#65756a; font-size:11px; line-height:1.7; }
.context-source a { color:#81522c; text-decoration:underline; text-underline-offset:2px; }
.section-divider { width:100%; height:8px; margin:34px 0; background:#2e684a; }

.section { max-width:1320px; margin:auto; padding:54px 40px; }
.section-title { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:25px; }
.section-title h2 { margin-bottom:0; }
.text-link { display:inline-flex; align-items:center; gap:12px; color:var(--green); font-size:14px; font-weight:600; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; }
.product-card { overflow:hidden; border:1px solid var(--line); border-radius:8px; background:#fff; transition:box-shadow .2s,transform .2s; }
.product-card:hover { box-shadow:0 10px 30px #183c2910; transform:translateY(-3px); }
.product-photo { position:relative; display:grid; height:210px; overflow:hidden; place-items:center; background:#edf2e9; }
.product-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.photo-placeholder { color:#527357; font-size:18px; font-weight:800; }
.card-body { padding:21px; }
.location { color:var(--muted); font-size:12px; }
.card-body h3 { margin:8px 0; }
.card-body p { font-size:13px; }
.muted { color:var(--muted); }
.price-row { display:flex; align-items:center; justify-content:space-between; margin-top:20px; color:var(--green); }
.price-row strong { font-size:27px; }
.price-row small { color:var(--muted); font-size:12px; font-weight:400; }
.card-foot { margin-top:13px; padding-top:12px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.empty-message { color:var(--muted); }

.how { display:grid; grid-template-columns:1fr 1.8fr; gap:50px; max-width:none; margin:0 auto; padding:45px max(40px,calc((100vw - 1240px)/2)); background:var(--bg); }
.how h2 { font-size:26px; }
.how p { font-size:13px; }
.steps { display:grid; grid-template-columns:minmax(0,1fr) 30px minmax(0,1fr) 30px minmax(0,1fr); align-items:center; gap:13px; padding-top:6px; }
.step-card { min-height:230px; padding:22px; border:1px solid #cbd8c9; border-radius:8px; background:#fff; }
.step-card > span { display:inline-grid; min-width:48px; min-height:38px; padding:2px 10px; place-items:center; border-radius:4px; background:#e8f0de; color:#356b50; font-size:24px; font-weight:500; }
.steps h3 { font-size:16px; }
.steps p { color:var(--muted); }
.step-arrow { color:#4d8157; font-size:30px; text-align:center; }
.seller-banner { display:flex; align-items:center; justify-content:space-between; gap:25px; max-width:1240px; margin:0 auto 55px; padding:28px 32px; border:1px solid var(--line); border-radius:8px; }
.seller-banner h2 { font-size:22px; }
.seller-banner p { margin:0; color:var(--muted); font-size:13px; }
.site-footer { margin-top:30px; padding:20px max(30px,calc((100vw - 1240px)/2)) 16px; border-top:1px solid #d8c6ab; background:#f8f3ea; color:#5f625c; }
.footer-mini { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.footer-mini > div { display:flex; align-items:baseline; gap:12px; }
.footer-mini strong { color:var(--green); font-size:18px; }
.footer-mini span { font-size:12px; }
.footer-company-link { display:inline-flex; align-items:center; gap:7px; color:var(--green); font-size:13px; font-weight:800; }
.copyright { margin:8px 0 0; color:#887f72; font-size:12px; }

/* リンク先ページ（商品一覧・会員登録・掲載フォーム）の共通書式 */
.content-page { max-width:1240px; min-height:60vh; margin:0 auto; padding:40px 32px 70px; }
.content-page h1 { font-size:36px; line-height:1.4; }
.narrow-page { max-width:780px; }
.catalog-layout { display:grid; grid-template-columns:230px 1fr; gap:30px; }
.filters { padding:17px; border:1px solid var(--line); background:#fafcf9; }
.filters form,.tl-form { display:grid; gap:13px; }
.filters label,.tl-form label { display:grid; gap:4px; font-size:13px; font-weight:800; }
.filters input,.filters select,.tl-form input,.tl-form select,.tl-form textarea { width:100%; padding:9px 10px; border:1px solid #b8c7ba; border-radius:5px; background:#fff; }
.filters .button { min-height:44px; }
.result-count { margin-top:0; color:var(--muted); font-size:13px; }
.product-list { display:grid; gap:15px; }
.horizontal { display:grid; grid-template-columns:210px 1fr; }
.horizontal .product-photo { height:180px; }
.audience-label { display:inline-block!important; padding:2px 7px; background:#edf3e7; color:var(--green)!important; font-weight:800; }
.detail-grid { display:grid; grid-template-columns:minmax(300px,1fr) minmax(330px,1fr); gap:42px; }
.detail-grid>div>img { width:100%; max-height:470px; object-fit:cover; }
.product-placeholder.large { display:grid; height:380px; place-items:center; background:#edf2e9; color:#527357; font-size:24px; font-weight:800; }
.detail-price { color:#9a501c; font-size:29px; font-weight:800; }
.product-specs,.company-specs { margin:18px 0; }
.product-specs>div,.company-specs>div { display:grid; grid-template-columns:125px 1fr; gap:12px; padding:10px 0; border-top:1px solid var(--line); }
.product-specs dt,.company-specs dt { color:var(--muted); }
.product-specs dd,.company-specs dd { margin:0; font-weight:700; }
.inquiry-box,.contact-box { margin-top:45px; padding:25px; border:1px solid #d6c7b5; background:var(--beige); }
.company-intro { margin-bottom:31px; padding:27px 30px; border-left:5px solid #a56d3d; background:var(--beige); }
.company-intro h1 { margin:4px 0 9px; }
.company-intro p:last-child { margin:0; color:#59665e; }
.company-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:55px; }
.tl-form textarea { min-height:120px; resize:vertical; }
.form-notice { padding:12px; border-left:4px solid #4d8157; background:#eef6eb; color:#31563f; font-weight:700; }
.form-error { border-color:#a74a3a; background:#fff0ed; color:#7d3126; }

@media (max-width:1100px) { .brand-sub{display:none}.market-header nav{gap:10px;font-size:13px}.hero{gap:24px}.how{gap:30px}.steps{gap:15px}.seller-banner{margin-left:30px;margin-right:30px;} }
@media (max-width:900px) { .market-header{flex-wrap:wrap;padding:10px 16px}.market-header .header-search{order:3;width:100%;max-width:none;flex-basis:100%}.market-header nav{width:100%;flex-wrap:wrap;order:4}.home-return{margin-left:0}.hero{grid-template-columns:1fr}.hero-art{min-height:330px}.product-grid{grid-template-columns:1fr 1fr}.company-grid{grid-template-columns:1fr;gap:30px}.context-heading{grid-template-columns:1fr;row-gap:8px}.context-heading p{grid-column:1;grid-row:auto}.how{grid-template-columns:1fr}.catalog-layout,.detail-grid{grid-template-columns:1fr} }
@media (max-width:620px) { .market-header,.hero,.section,.content-page{padding-left:20px;padding-right:20px}.market-header{gap:10px}.market-header .brand{font-size:20px}.market-header nav{font-size:12px}.header-search button{padding:0 10px}.hero{margin-top:13px;padding-top:0;gap:6px}.hero-copy{padding:22px 0 18px}h1{margin:15px 0;font-size:38px}.hero-copy p{font-size:15px}.matching-assurance ul,.context-points,.product-grid{grid-template-columns:1fr}.hero-art{min-height:290px;border-radius:65px 6px 6px}.art-label{bottom:55px;padding:12px 20px}.context-section{padding:19px 20px 17px}.context-heading h2{font-size:22px}.section-title{align-items:start;flex-direction:column;gap:12px}.section{padding-top:35px;padding-bottom:35px}h2{font-size:23px}.how{padding:30px 22px;gap:10px}.steps{grid-template-columns:1fr;padding:0;gap:12px}.step-card{display:grid;grid-template-columns:56px 1fr;min-height:0;gap:0 16px}.step-card>span{grid-row:1/3}.steps h3{margin:4px 0}.step-card p{grid-column:2;margin-bottom:0}.step-arrow{transform:rotate(90deg)}.seller-banner{margin:0 22px 30px;padding:24px;align-items:stretch;flex-direction:column}.footer-mini,.footer-mini>div{align-items:flex-start;flex-direction:column;gap:5px}.horizontal{grid-template-columns:1fr}.horizontal .product-photo{height:210px}.product-specs>div,.company-specs>div{grid-template-columns:1fr;gap:1px}.inquiry-box,.contact-box{padding:18px} }

/* 会員登録・肥料掲載・商品一覧は元のリンク先ページと同じ組み方 */
.page { max-width:1240px; min-height:60vh; margin:0 auto; padding:40px 32px 70px; }
.page.narrow { max-width:780px; }
.breadcrumbs { margin:0 0 18px; color:#66746b; font-size:13px; }
.breadcrumbs a { color:#356b50; text-decoration:underline; text-underline-offset:2px; }
.page-heading { margin:8px 0 10px; font-size:clamp(29px,3vw,39px); }
.page > .muted { color:var(--muted); }
.form-panel { margin-top:25px; padding:30px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.tl-form { display:grid; gap:15px; }
.tl-form > label { display:grid; gap:5px; color:#34463b; font-size:14px; font-weight:700; }
.tl-form input,.tl-form select,.tl-form textarea { min-height:49px; padding:12px 13px; border:1px solid #bccbc0; border-radius:5px; background:#fff; color:var(--ink); }
.tl-form textarea { min-height:115px; resize:vertical; }
.tl-form .button { width:100%; margin-top:5px; }
.tl-form p,.help { color:var(--muted); font-size:12px; line-height:1.8; }
.notice,.form-notice { margin:20px 0; padding:16px 20px; overflow-wrap:anywhere; border:1px solid #c9d6bf; border-radius:6px; background:#f2f6ed; font-size:14px; }
.notice.error,.form-error { border-color:#e4b7a3; background:#fff2ec; color:#853d22; }
.form-notice { border-left:4px solid #4d8157; color:#31563f; font-weight:700; }
.text-link { color:var(--green); text-decoration:underline; text-underline-offset:3px; }

.catalog-page { max-width:1360px; min-height:60vh; margin:auto; padding:24px 24px 60px; }
.catalog-heading { display:flex; align-items:end; justify-content:space-between; padding:26px 28px; border-bottom:1px solid #d9dddd; background:#fff; }
.catalog-heading h1 { margin:0; font-size:29px; letter-spacing:0; }
.catalog-heading p:not(.breadcrumbs) { margin:4px 0 0; color:#5c6264; }
.catalog-heading .breadcrumbs { margin:0 0 7px; }
.catalog-layout { display:grid; grid-template-columns:265px minmax(0,1fr); gap:20px; margin-top:20px; }
.market-filters { padding:18px; border:1px solid #d4dadc; border-radius:6px; background:#fff; }
.filter-title { margin-bottom:16px; padding-bottom:13px; border-bottom:1px solid #dce1e3; }
.filter-title h2 { margin:0; font-size:18px; }
.filter-field { display:block; margin:0 0 17px; color:#303537; font-size:14px; font-weight:700; }
.filter-field input,.filter-field select { width:100%; min-height:40px; margin-top:6px; padding:7px 9px; border:1px solid #abb4b8; border-radius:4px; background:#fff; font-size:14px; }
.clear-filters { border:0; padding:0; background:none; color:#145d97; font-size:14px; font-weight:700; cursor:pointer; }
.results { min-width:0; }
.catalog-search { display:flex; height:48px; margin-bottom:14px; }
.catalog-search input { min-width:0; flex:1; padding:0 15px; border:1px solid #9ca5a9; border-radius:5px 0 0 5px; background:#fff; }
.catalog-search button { width:56px; border:1px solid #50575b; border-radius:0 5px 5px 0; background:#50575b; color:#fff; font-size:22px; }
.results-toolbar { display:flex; align-items:center; justify-content:space-between; padding:11px 2px; border-bottom:1px solid #d4dadc; }
.results-toolbar p { margin:0; }
.result-list { display:grid; gap:12px; margin-top:14px; }
.product-result { display:grid; grid-template-columns:190px minmax(0,1fr); gap:19px; padding:16px; border:1px solid #ccd3d5; border-radius:6px; background:#fff; }
.result-image .product-photo { height:170px; }
.result-body { min-width:0; }
.result-category { margin:0 0 3px; color:#5b6c70; font-size:12px; }
.result-body h3 { margin:0; color:#17609c; font-size:18px; line-height:1.45; }
.result-description { margin:4px 0; color:#4d5355; font-size:14px; }
.result-price { color:#bd4e11; line-height:1.2; }
.result-price strong { font-size:26px; }
.result-price small,.seller,.result-meta { color:#505a5d; font-size:12px; }
.seller { margin:2px 0; font-size:13px; }
.result-meta { display:flex; flex-wrap:wrap; align-items:center; gap:11px; }
.market-badge { padding:2px 8px; border:1px solid #b7d1ef; border-radius:3px; background:#e8f1fc; color:#175c96; font-weight:700; }
.empty { padding:45px 25px; border:1px dashed var(--line); border-radius:7px; background:var(--bg); text-align:center; }

@media(max-width:900px) { .catalog-page{padding:0 14px 45px}.catalog-heading{padding:20px 10px}.catalog-heading h1{font-size:24px}.catalog-layout{grid-template-columns:1fr}.market-filters{padding:16px}.page{padding:30px 20px 50px} }
@media(max-width:620px) { .form-panel{padding:22px 18px}.catalog-heading{display:block}.product-result{grid-template-columns:138px minmax(0,1fr);gap:12px;padding:12px}.result-image .product-photo{height:138px}.result-body h3{font-size:16px}.result-description{display:none}.result-price strong{font-size:22px}.result-meta{gap:6px} }

.company-page { max-width:1180px; }
.company-intro { margin-bottom:30px; padding:28px 30px; border-left:5px solid #a56d3d; background:#faf4e7; }
.company-intro h1 { margin:5px 0 10px; font-size:clamp(28px,3vw,39px); }
.company-intro p:last-child { margin:0; color:#59665e; font-size:15px; }
.company-page h2 { margin:2px 0 16px; color:var(--ink); font-size:23px; }
.footer-label { margin:0; color:#8a5b32; font-size:12px; font-weight:800; letter-spacing:.11em; }
.company-grid { display:grid; grid-template-columns:minmax(250px,.78fr) minmax(420px,1.22fr); gap:65px; }
.operator-info dl { margin:0; }
.operator-info dl>div { display:grid; grid-template-columns:104px 1fr; gap:9px; padding:8px 0; border-top:1px solid #e0d6c7; font-size:13px; line-height:1.65; }
.operator-info dt { color:#756c60; }.operator-info dd { margin:0; color:#35493d; font-weight:600; }
.operator-note { margin:17px 0 0; color:#6b6a63; font-size:12px; line-height:1.8; }
.operator-contact .form-panel { margin-top:0; }
@media(max-width:900px) { .company-grid { grid-template-columns:1fr; gap:31px; } }
.status { display:inline-flex; padding:3px 10px; border-radius:4px; background:#edf3e7; color:var(--green); font-size:12px; }
.tab-row { display:flex; flex-wrap:wrap; gap:12px; margin:25px 0; }.tab-row a { padding:10px 20px; border-radius:7px; background:var(--bg); }.list-item { display:block; margin:16px 0; padding:22px; overflow-wrap:anywhere; border:1px solid var(--line); border-radius:7px; }.list-item h3 { margin:6px 0; }.list-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }.list-item .muted { margin:6px 0; }
@media(max-width:620px){.list-top{align-items:start;flex-direction:column}}
.brand-icon svg,.home-return svg,.header-search svg,.button-icon,.art-sprout svg { width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }.brand-icon svg{width:22px;height:22px}.home-return svg{width:16px;height:16px}.header-search svg{width:20px;height:20px}.button-icon{width:19px;height:19px}.art-sprout{display:grid;place-items:center}.art-sprout svg{width:28px;height:28px}
