/*!
Theme Name: hiura-farm
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: hiura-farm
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

hiura-farm is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/* Google Fonts
--------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500;700;900&family=M+PLUS+Rounded+1c:wght@400;500;700;800&display=swap');


/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
	margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
	display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
	font-size: 2em;
	margin: 0.67em 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
	box-sizing: content-box;
	height: 0;
	overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
	font-family: monospace, monospace;
	font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
	background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
	font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
	font-family: monospace, monospace;
	font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
	font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sub {
	bottom: -0.25em;
}

sup {
	top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
	border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
	overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
	text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
	border-style: none;
	padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
	outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
	padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
	box-sizing: border-box;
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
	vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
	overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
	-webkit-appearance: textfield;
	outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
	display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
	display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
	display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
	display: none;
}

/* Box sizing
--------------------------------------------- */
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

/*--------------------------------------------------------------
# ひうら農場 カスタムスタイル
--------------------------------------------------------------*/

:root{
    --ink:#2B2620;
    --ink-soft:#5B5246;
    --paper:#F2EEE2;
    --paper-soft:#F9F6EC;
    --paper-line:#E2DCC9;
	--green: #55b49b;       /* メインカラー（ご指定の色） */
	--green-deep: #2c6e5e;  /* 深めのグリーン（文字・強調・ボタンホバー用） */
	--green-soft: #d3ebd8;
    --paddy:#6FAE5C;
    --paddy-deep:#4F8C40;
    --paddy-soft:#A7D194;
    --straw:#F5B942;
    --straw-deep:#DD9A24;
    --straw-soft:#FBD27A;
    --hanko:#F0876B;
    --hanko-deep:#D9684B;
    --shadow: 0 18px 40px -18px rgba(35,48,68,0.35);
    --radius: 4px;
    --maxw: 1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'M PLUS Rounded 1c', sans-serif;
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img,svg{display:block;max-width:100%;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}
  h1,h2,h3{
    margin:0;
    color:var(--ink);
    letter-spacing:.02em;
  }
  p{margin:0;}
  .container{
    width:100%;
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 24px;
  }
  .eyebrow{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.22em;
    color:var(--hanko-deep);
    margin-bottom:18px;
  }
  .eyebrow::before{
    content:"";
    width:18px;height:2px;
    background:var(--hanko);
    flex:none;
  }
  .section{
    padding:88px 0;
    position:relative;
  }
  .section-head{
    max-width:640px;
    margin-bottom:48px;
  }
  .section-head h2{
    font-size:clamp(1.7rem, 3.6vw, 2.35rem);
    line-height:1.5;
    font-weight:700;
  }
  .section-head p{
    margin-top:18px;
    color:var(--ink-soft);
    font-size:1rem;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:15px 30px;
    border-radius:2px;
    font-weight:700;
    font-size:.95rem;
    letter-spacing:.04em;
    border:1.5px solid transparent;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
    cursor:pointer;
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--straw);
    color:var(--green-deep);
  }
  .btn-primary:hover{
    background:var(--straw-deep);
    transform:translateY(-2px);
    box-shadow:var(--shadow);
  }
  .btn-ghost{
    border-color:rgba(242,238,226,0.55);
    color:var(--paper-soft);
  }
  .btn-ghost:hover{
    border-color:var(--paper-soft);
    background:rgba(242,238,226,0.08);
    transform:translateY(-2px);
  }
  .btn-line{
    border-color:var(--green);
    color:var(--green);
  }
  .btn-line:hover{
    background:var(--green);
    color:var(--paper-soft);
  }
  .link-arrow{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-weight:700;
    color:var(--green);
    border-bottom:1.5px solid var(--straw);
    padding-bottom:4px;
    transition:gap .2s ease, color .2s ease;
  }
  .link-arrow:hover{ gap:14px; color:var(--hanko-deep); }

  /* ---------- reveal on scroll ---------- */
  .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .8s ease, transform .8s ease;
  }
  .reveal.is-in{ opacity:1; transform:translateY(0); }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
    .stamp{ transition:none; }
  }

  /* ---------- hanko stamp signature element ---------- */
  .stamp{
    flex:none;
    width:84px;height:84px;
    border-radius:50%;
    border:2.5px solid var(--hanko);
    color:var(--hanko);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    font-weight:700;
    font-size:1.1rem;
    line-height:1.25;
    transform:rotate(-7deg) scale(0.86);
    opacity:0;
    position:relative;
    background:
      radial-gradient(circle at 30% 25%, rgba(240,135,107,0.10), transparent 60%);
    transition:opacity .5s ease, transform .6s cubic-bezier(.2,1.4,.4,1);
  }
  .stamp::after{
    content:"";
    position:absolute;
    inset:7px;
    border:1px solid var(--hanko);
    border-radius:50%;
    opacity:.55;
  }
  .stamp.is-in{
    opacity:.92;
    transform:rotate(-7deg) scale(1);
  }
  .stamp--lg{ width:116px;height:116px; font-size:1.5rem; }
  .stamp--sm{ width:48px;height:48px; font-size:.68rem; border-width:2px; }

  /* ===================== header ===================== */
  #masthead{
    position:fixed;
    top:0; left:0; right:0;
    z-index:80;
    background:rgba(242,238,226,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--paper-line);
  }
  .nav-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    height:72px;
  }
.logo-wrap{
}
.logo-wrap img{
	width: 200px;
  height: auto;
}
  nav.primary-nav{
    display:flex;
    align-items:center;
    gap:34px;
  }
  nav.primary-nav a{
    font-size:.92rem;
    font-weight:500;
    position:relative;
    padding:6px 0;
  }
  nav.primary-nav a::after{
    content:"";
    position:absolute;
    left:0; right:0; bottom:0;
    height:2px;
    background:var(--straw);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .25s ease;
  }
  nav.primary-nav a:hover::after{ transform:scaleX(1); }
  .header-cta{ display:flex; align-items:center; gap:18px; }
  .header-cta .btn{ padding:11px 22px; font-size:.85rem; }
  .burger{
    display:none;
    width:42px;height:42px;
    border:1px solid var(--paper-line);
    border-radius:50%;
    background:none;
    position:relative;
    cursor:pointer;
  }
  .burger span{
    position:absolute;
    left:11px; right:11px;
    height:2px;
    background:var(--ink);
    transition:transform .3s ease, opacity .3s ease;
  }
  .burger span:nth-child(1){ top:15px; }
  .burger span:nth-child(2){ top:21px; }
  .burger span:nth-child(3){ top:27px; }
  .burger.open span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  .burger.open span:nth-child(2){ opacity:0; }
  .burger.open span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

  .mobile-panel{
    position:fixed;
    inset:72px 0 0 0;
    background:var(--paper-soft);
    transform:translateX(100%);
    transition:transform .35s ease;
    z-index:70;
    padding:36px 24px;
    overflow-y:auto;
  }
  .mobile-panel.open{ transform:translateX(0); }
  .mobile-panel a{
    display:block;
    font-size:1.25rem;
    padding:16px 0;
    border-bottom:1px solid var(--paper-line);
  }
  .mobile-panel .mp-sns{
    display:flex;
    gap:16px;
    margin-top:28px;
  }

  /* ===================== hero ===================== */
  .hero{
    position:relative;
    margin-top:0;
    color:var(--paper-soft);
    overflow:hidden;
    padding-top:42px;
    background:#1E3A2F;
  }
  /* オーバーレイなし — 空の青を活かす */
  .hero-inner{
    position:relative;
    z-index:3;
    /* 左右は .container の padding:0 24px に委ねる */
    padding-top:108px;
    padding-bottom:80px;
    display:flex;
    flex-direction:column;
    gap:26px;
  }
  .hero .eyebrow{ color:var(--straw-soft); }
  .hero .eyebrow::before{ background:var(--straw-soft); }
  .hero h1{
    font-size:clamp(2.3rem, 6.2vw, 4rem);
    font-weight:800;
    line-height:1.45;
    max-width:14ch;
    color:var(--paper-soft);
    text-shadow: 0 2px 8px rgba(0,0,0,0.55), 0 0 24px rgba(0,0,0,0.3);
  }
  .hero p.lede{
    max-width:520px;
    color:#fff;
    font-size:1.02rem;
    font-weight:700;
    text-shadow: 0 1px 6px rgba(0,0,0,0.7), 0 0 16px rgba(0,0,0,0.5);
  }
  .hero-actions{ display:flex; gap:16px; flex-wrap:wrap; margin-top:6px; }
  .hero-scene{
    position:absolute;
    inset:0;
    z-index:1;
  }
  .hero-scene img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 30%;
    display:block;
  }
  @media (max-width:700px){
    .hero-scene img{
      object-position:72% 15%;
    }
    .hero-inner{
      padding-top:72px;
      padding-bottom:56px;
    }
  }

  /* ===================== philosophy ===================== */
  .philosophy{ background:var(--paper); }
  .philosophy-grid{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:64px;
    align-items:start;
  }
  .philosophy-text p{ color:var(--ink-soft); font-size:1.02rem; }
  .badge-list{
    display:flex;
    flex-direction:column;
    gap:26px;
  }
  .badge-item{
    display:flex;
    align-items:center;
    gap:20px;
  }
  .badge-item strong{
    display:block;
    font-size:1.05rem;
    margin-bottom:4px;
  }
  .badge-item span{
    color:var(--ink-soft);
    font-size:.9rem;
  }

  /* ===================== about / history ===================== */
  .about{
    background:var(--paper-soft);
    border-top:1px solid var(--paper-line);
    border-bottom:1px solid var(--paper-line);
  }
  .about-grid{
    display:grid;
    grid-template-columns:1fr 1.15fr;
    gap:56px;
    align-items:center;
  }
  .about-visual{
    position:relative;
    background:var(--green);
    border-radius:6px;
    aspect-ratio:4/5;
    overflow:hidden;
  }
  .about-visual img{ width:100%;height:auto; }
  .about-visual .stamp{
    position:absolute;
    bottom:24px; right:24px;
    background:var(--paper-soft);
  }
  .about-text p{ color:var(--ink-soft); margin-top:18px; }
  .about-text p+p{ margin-top:14px; }

  /* ===================== process timeline ===================== */
  .process{ background:var(--paper); }
  .timeline{
    display:grid;
    grid-template-columns:repeat(6, 1fr);
    gap:0;
    border-top:1.5px solid var(--ink);
    margin-top:8px;
  }
  .tl-item{
    padding:28px 18px 0;
    border-right:1px solid var(--paper-line);
    position:relative;
  }
  .tl-item:last-child{ border-right:none; }
  .tl-item::before{
    content:"";
    position:absolute;
    top:-1.5px; left:0;
    width:34px; height:3px;
    background:var(--straw);
  }
  .tl-month{
    font-weight:700;
    font-size:1.05rem;
    color:var(--hanko-deep);
    margin-bottom:10px;
  }
  .tl-title{
    font-weight:700;
    font-size:1rem;
    margin-bottom:10px;
  }
  .tl-desc{
    font-size:.84rem;
    color:var(--ink-soft);
    line-height:1.75;
  }

  /* ===================== products ===================== */
  .products{ background:var(--paper-soft); border-top:1px solid var(--paper-line); border-bottom:1px solid var(--paper-line); }
  .product-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
  }
  .product-card{
    background:var(--paper);
    border:1px solid var(--paper-line);
    border-radius:4px;
    padding:30px 26px;
    display:flex;
    flex-direction:column;
    gap:16px;
    transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
  }
  .product-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow);
    border-color:transparent;
  }
  .product-card .icon{ width:46px;height:46px; color:var(--paddy-deep); }
  .product-card h3{
    font-size:1.12rem;
    font-weight:700;
  }
  .product-card .tags{
    display:flex; gap:8px; flex-wrap:wrap;
  }
  .product-card .tags span{
    font-size:.68rem;
    padding:4px 10px;
    border-radius:20px;
    background:rgba(111,174,92,0.14);
    color:var(--paddy-deep);
    font-weight:700;
    letter-spacing:.03em;
  }
  .product-card p{
    color:var(--ink-soft);
    font-size:.88rem;
    flex:1;
  }
  .product-card .link-arrow{ font-size:.85rem; }
  .products-cta{
    margin-top:48px;
    display:flex;
    justify-content:center;
  }

  /* ===================== news ===================== */
  .news{ background:var(--paper); }
  .news-list{
    border-top:1px solid var(--paper-line);
  }
  .news-row{
    display:flex;
    gap:28px;
    align-items:flex-start;
    padding:26px 0;
    border-bottom:1px solid var(--paper-line);
  }
  .news-date{
    flex:none;
    width:108px;
    font-weight:600;
    color:var(--ink-soft);
    font-size:.92rem;
    padding-top:2px;
  }
  .news-body{ flex:1; }
  .news-body p{ font-size:.97rem; }
  .news-new{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:auto;
    padding:3px 12px;
    margin-bottom:8px;
    border:1.5px solid var(--hanko);
    color:var(--hanko);
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.12em;
    border-radius:20px;
    transform:rotate(-3deg);
  }
  .news-cta{ margin-top:36px; }

  /* ===================== sns / cta strip ===================== */
  .sns-strip{
    background:var(--green);
    color:var(--paper-soft);
  }
  .sns-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:24px;
    padding:46px 0;
  }
  .sns-row h3{
    color:var(--paper-soft);
    font-size:1.3rem;
  }
  .sns-icons{ display:flex; gap:16px; }
  .sns-icons a{
    width:46px;height:46px;
    border:1.5px solid rgba(249,246,236,0.35);
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    transition:border-color .25s ease, background .25s ease, transform .25s ease;
  }
  .sns-icons svg{ width:19px;height:19px; }
  .sns-icons a:hover{
    border-color:var(--straw);
    background:rgba(201,154,59,0.16);
    transform:translateY(-3px);
  }

  /* ===================== footer ===================== */
  footer{
    background:var(--green-deep);
    color:rgba(249,246,236,0.72);
    padding:64px 0 32px;
  }
  .footer-grid{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr;
    gap:48px;
    padding-bottom:40px;
    border-bottom:1px solid rgba(249,246,236,0.12);
  }
  .footer-brand .brand-mark{ border-color:var(--straw-soft); color:var(--straw-soft); }
  .footer-brand .brand-text strong{ color:var(--paper-soft); }
  .footer-brand .brand-text small{ color:rgba(249,246,236,0.55); }
  .footer-brand address{
    font-style:normal;
    margin-top:18px;
    font-size:.88rem;
    line-height:1.9;
    color:rgba(249,246,236,0.62);
  }
  footer h4{
    font-size:.78rem;
    letter-spacing:.16em;
    color:rgba(249,246,236,0.45);
    margin-bottom:18px;
    font-weight:700;
  }
  footer ul li{ margin-bottom:12px; font-size:.9rem; }
  footer ul a:hover{ color:var(--straw-soft); }
  .footer-bottom{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
    padding-top:28px;
    font-size:.78rem;
    color:rgba(249,246,236,0.45);
  }

  /* ===================== mobile quick bar ===================== */
  .quickbar{
    display:none;
    position:fixed;
    bottom:0; left:0; right:0;
    z-index:60;
    background:var(--paper-soft);
    border-top:1px solid var(--paper-line);
    box-shadow:0 -10px 24px -16px rgba(0,0,0,0.3);
  }
  .quickbar-row{ display:flex; }
  .quickbar a{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:14px 0;
    font-size:.85rem;
    font-weight:700;
  }
  .quickbar a.tel{ color:var(--green); }
  .quickbar a.shop{ background:var(--straw); color:var(--green-deep); }
  .quickbar svg{ width:16px;height:16px; }

  /* ===================== responsive ===================== */
  @media (max-width: 980px){
    nav.primary-nav, .header-cta .btn-line, .header-cta .btn-primary{ display:none; }
    .burger{ display:block; }
    .philosophy-grid, .about-grid{ grid-template-columns:1fr; gap:40px; }
    .about-visual{ aspect-ratio:16/9; order:-1; }
    .product-grid{ grid-template-columns:repeat(2,1fr); }
    .footer-grid{ grid-template-columns:1fr 1fr; }
    .footer-brand{ grid-column:1/-1; }
  }
  @media (max-width: 700px){
    .section{ padding:64px 0; }
    .quickbar{ display:block; }
    body{ padding-bottom:58px; }
    .product-grid{ grid-template-columns:1fr; }
    .timeline{
      grid-template-columns:none;
      grid-auto-flow:column;
      grid-auto-columns:72%;
      overflow-x:auto;
      scroll-snap-type:x mandatory;
      border-top:none;
      padding-bottom:6px;
      -webkit-overflow-scrolling:touch;
    }
    .timeline::-webkit-scrollbar{ height:0; }
    .tl-item{
      border-right:none;
      border-top:1.5px solid var(--ink);
      scroll-snap-align:start;
      padding:24px 16px 4px 0;
    }
    .news-row{ gap:16px; }
    .news-date{ width:84px; font-size:.8rem; }
    .sns-row{ justify-content:center; text-align:center; flex-direction:column; }
    .footer-grid{ grid-template-columns:1fr; gap:32px; }
    .hero-inner{ padding:88px 24px 56px; }
  }

/*--------------------------------------------------------------
# WordPress コアクラス
--------------------------------------------------------------*/

/* アクセシビリティ */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* アラインメント */
.alignleft  { float: left; margin-right: 1.5em; margin-bottom: 1.5em; }
.alignright { float: right; margin-left: 1.5em; margin-bottom: 1.5em; }
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; margin-bottom: 1.5em; }

/* WordPress 画像サイズ */
img.wp-smiley, img.emoji {
  display: inline !important;
  border: none !important;
  box-shadow: none !important;
  height: 1em !important;
  width: 1em !important;
  margin: 0 0.07em !important;
  vertical-align: -0.1em !important;
  background: none !important;
  padding: 0 !important;
}

/* ウィジェット */
.widget { margin: 0 0 1.5em; }
.widget select { max-width: 100%; }

/* フッターナビゲーション */
.footer-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-nav-list li { margin-bottom: 12px; font-size: .9rem; }
.footer-nav-list a:hover { color: var(--straw-soft); }

/* 投稿・固定ページ共通 */
.site-main { padding-top: 72px; /* ヘッダー分のオフセット */ }
.entry-content { max-width: var(--maxw); margin: 0 auto; padding: 48px 24px 80px; }
.entry-content p { margin-bottom: 1.4em; font-size: 1rem; color: var(--ink-soft); }
.entry-content h2 { font-size: 1.5rem; margin: 2em 0 .7em; }
.entry-content h3 { font-size: 1.2rem; margin: 1.6em 0 .6em; }
.entry-meta { color: var(--ink-soft); font-size: .88rem; margin-top: 10px; }

/* ナビゲーション（前後の投稿） */
.post-navigation { padding: 0; }
.nav-links { display: flex; justify-content: space-between; gap: 24px; max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.nav-subtitle { display: block; font-size: .78rem; color: var(--ink-soft); margin-bottom: 4px; }
.nav-title { font-weight: 700; color: var(--green); }
.nav-previous a, .nav-next a { display: block; }
.nav-previous a:hover .nav-title, .nav-next a:hover .nav-title { color: var(--straw-deep); }

/* ページネーション */
.posts-navigation, .posts-pagination { border-top: 1px solid var(--paper-line); padding: 32px 24px; max-width: var(--maxw); margin: 0 auto; text-align: center; }
.page-numbers { padding: 8px 14px; border: 1px solid var(--paper-line); margin: 0 2px; border-radius: 2px; }
.page-numbers.current { background: var(--green); color: var(--paper-soft); border-color: var(--green); }
.page-numbers:hover:not(.current) { border-color: var(--straw); color: var(--straw-deep); }

/* コメント */
.comments-area { max-width: var(--maxw); margin: 0 auto; padding: 0 24px 80px; }

/* no-sidebar 用レイアウト */
.no-sidebar .site-main { max-width: 100%; }

/*--------------------------------------------------------------
# 投稿・固定ページ共通スタイル（single.php / page.php）
--------------------------------------------------------------*/

/* ---- ページ全体オフセット ---- */
.site-main {
  padding-top: 72px; /* 固定ヘッダー分 */
}

/* ---- パンくずリスト ---- */
.breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 8px;
  font-size: .82rem;
  color: var(--ink-soft);
  padding: 22px 0 0;
}
.breadcrumb a {
  color: var(--ink-soft);
  border-bottom: 1px solid var(--paper-line);
  transition: color .2s;
}
.breadcrumb a:hover { color: var(--green-deep); }
.breadcrumb-sep { opacity: .45; }
.breadcrumb [aria-current="page"] { color: var(--ink); font-weight: 500; }

/* ---- エントリーヘッダー ---- */
.entry-header {
  background: var(--paper-soft);
  border-bottom: 1px solid var(--paper-line);
  padding-bottom: 36px;
}
.entry-header .container { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
.entry-title {
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 700;
  line-height: 1.5;
  margin-top: 18px;
}

/* ---- メタ情報（日付・カテゴリ） ---- */
.entry-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 14px;
  font-size: .85rem;
  color: var(--ink-soft);
}
.entry-date { letter-spacing: .04em; }
.entry-cat {
  display: inline-flex;
  align-items: center;
  padding: 3px 12px;
  border-radius: 20px;
  background: rgba(79,169,216,0.12);
  color: var(--green-deep);
  font-weight: 700;
  font-size: .75rem;
  letter-spacing: .05em;
  transition: background .2s;
}
.entry-cat:hover { background: rgba(79,169,216,0.22); }

/* ---- 本文エリア ---- */
.entry-body {
  padding: 48px 0 80px;
}
.entry-layout {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

/* ---- 記事カード ---- */
.entry-article {
  background: var(--paper);
  border: 1px solid var(--paper-line);
  border-radius: 6px;
  overflow: hidden;
}

/* ---- アイキャッチ ---- */
.entry-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
  max-height: 480px;
  object-fit: cover;
}

/* ---- 記事本文 ---- */
.entry-content {
  padding: 36px 40px 40px;
  font-size: 1rem;
  line-height: 2;
  color: var(--ink-soft);
}
.entry-content p  { margin-bottom: 1.6em; }
.entry-content h2 {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--ink);
  border-left: 4px solid var(--straw);
  padding-left: 14px;
  margin: 2.2em 0 .9em;
}
.entry-content h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
  margin: 1.8em 0 .7em;
}
.entry-content h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--ink);
  margin: 1.4em 0 .5em;
}
.entry-content ul,
.entry-content ol {
  padding-left: 1.4em;
  margin-bottom: 1.4em;
}
.entry-content li { margin-bottom: .5em; }
.entry-content a {
  color: var(--green-deep);
  border-bottom: 1px solid rgba(79,169,216,0.4);
  transition: border-color .2s;
}
.entry-content a:hover { border-color: var(--green-deep); }
.entry-content blockquote {
  border-left: 3px solid var(--paper-line);
  padding: 4px 0 4px 20px;
  margin: 1.6em 0;
  color: var(--ink-soft);
  font-style: italic;
}
.entry-content img {
  max-width: 100%;
  height: auto;
  border-radius: 4px;
  margin: 1em 0;
}
.entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.6em 0;
  font-size: .92rem;
}
.entry-content th,
.entry-content td {
  padding: 10px 14px;
  border: 1px solid var(--paper-line);
  text-align: left;
}
.entry-content th {
  background: var(--paper-soft);
  font-weight: 700;
  color: var(--ink);
}
.entry-content code {
  background: var(--paper-soft);
  padding: 2px 6px;
  border-radius: 3px;
  font-size: .88em;
}
.entry-content pre {
  background: var(--green);
  color: var(--paper-soft);
  padding: 20px 24px;
  border-radius: 4px;
  overflow-x: auto;
  font-size: .88rem;
  margin: 1.4em 0;
}

/* ---- ページ分割リンク ---- */
.page-links {
  padding: 24px 40px;
  border-top: 1px solid var(--paper-line);
  font-size: .9rem;
  display: flex;
  gap: 8px;
  align-items: center;
}
.page-links-title { color: var(--ink-soft); margin-right: 4px; }
.page-links a,
.page-links > span:not(.page-links-title) {
  width: 34px; height: 34px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--paper-line);
  border-radius: 2px;
  font-size: .85rem;
  transition: background .2s, border-color .2s;
}
.page-links a:hover { border-color: var(--straw); background: rgba(245,185,66,.08); }
.page-links > span:not(.page-links-title) { background: var(--green); color: var(--paper-soft); border-color: var(--green); }

/* ---- タグ ---- */
.entry-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 20px 40px 28px;
  border-top: 1px solid var(--paper-line);
}
.entry-tag {
  font-size: .78rem;
  padding: 4px 12px;
  border-radius: 20px;
  border: 1px solid var(--paper-line);
  color: var(--ink-soft);
  transition: background .2s, border-color .2s;
}
.entry-tag:hover { background: var(--paper-soft); border-color: var(--straw); }

/* ---- 編集リンク ---- */
.entry-edit-link {
  padding: 12px 40px;
  border-top: 1px solid var(--paper-line);
}
.entry-edit-link a {
  font-size: .8rem;
  color: var(--ink-soft);
  border-bottom: 1px solid var(--paper-line);
}

/* ---- 前後記事ナビゲーション ---- */
.post-navigation {
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
}
.post-navigation .nav-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.post-navigation .nav-previous,
.post-navigation .nav-next {
  padding: 0;
}
.post-navigation .nav-previous { border-right: 1px solid var(--paper-line); }
.post-navigation a {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px 24px;
  height: 100%;
  transition: background .2s;
}
.post-navigation a:hover { background: rgba(245,185,66,.08); }
.post-navigation .nav-subtitle {
  font-size: .75rem;
  letter-spacing: .08em;
  color: var(--ink-soft);
}
.post-navigation .nav-title {
  font-weight: 700;
  font-size: .95rem;
  color: var(--green-deep);
  line-height: 1.5;
}
.post-navigation .nav-next a { text-align: right; }

/* ---- コメントエリア ---- */
.entry-comments {
  background: var(--paper-soft);
  border: 1px solid var(--paper-line);
  border-radius: 6px;
  padding: 32px 40px;
}
.comments-title { font-size: 1.1rem; font-weight: 700; margin-bottom: 24px; }
.comment-list { list-style: none; padding: 0; margin: 0 0 32px; }
.comment-body { padding: 20px 0; border-bottom: 1px solid var(--paper-line); }
.comment-author .fn { font-weight: 700; }
.comment-metadata { font-size: .8rem; color: var(--ink-soft); margin-top: 4px; }
.comment-content { margin-top: 12px; font-size: .95rem; color: var(--ink-soft); }
.comment-form label { display: block; font-weight: 700; font-size: .88rem; margin-bottom: 6px; }
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid var(--paper-line);
  border-radius: 4px;
  background: var(--paper);
  font-family: inherit;
  font-size: .95rem;
  transition: border-color .2s;
}
.comment-form input:focus,
.comment-form textarea:focus {
  outline: none;
  border-color: var(--green);
}
.comment-form textarea { height: 140px; resize: vertical; }
.form-submit .submit {
  padding: 13px 28px;
  background: var(--straw);
  color: var(--green-deep);
  border: none;
  border-radius: 2px;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.form-submit .submit:hover { background: var(--straw-deep); transform: translateY(-1px); }

/* ---- 固定ページ専用 ---- */
.entry-article--page .entry-content {
  padding: 40px 40px 48px;
}

/* ---- レスポンシブ ---- */
@media (max-width: 700px) {
  .entry-content { padding: 24px 20px 28px; }
  .entry-tags  { padding: 16px 20px 20px; }
  .entry-edit-link { padding: 10px 20px; }
  .entry-comments { padding: 24px 20px; }
  .post-navigation .nav-links { grid-template-columns: 1fr; }
  .post-navigation .nav-previous { border-right: none; border-bottom: 1px solid var(--paper-line); }
  .post-navigation .nav-next a { text-align: left; }
  .page-links { padding: 16px 20px; }
}

/*--------------------------------------------------------------
# 商品詳細ページ（single-hiura_product.php）
--------------------------------------------------------------*/
.wp-block-image img {
	border-radius: 6px !important;
}


/* ---- 2カラムレイアウト ---- */
.product-detail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
  padding: 48px 0 32px;
}

/* ---- 左：画像 ---- */
.product-detail__image img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
}
.product-detail__no-image {
  background: var(--paper-soft);
  border: 1px solid var(--paper-line);
  border-radius: 6px;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.product-detail__no-image svg { width: 50%; }

/* ---- 右：商品情報 ---- */
.product-detail__info {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

/* ---- 販売状況バッジ ---- */
.product-status {
  display: inline-flex;
  align-items: center;
  padding: 5px 16px;
  border-radius: 20px;
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .06em;
  width: fit-content;
}
.product-status--sm { padding: 3px 10px; font-size: .72rem; }
.status--on      { background: rgba(111,174,92,.15);  color: var(--paddy-deep); }
.status--out     { background: rgba(240,135,107,.12); color: var(--hanko-deep); }
.status--coming  { background: rgba(245,185,66,.15);  color: var(--straw-deep); }

/* ---- 価格 ---- */
.product-price {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.product-price__num {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -.01em;
}
.product-price__unit {
  font-size: .9rem;
  color: var(--ink-soft);
}

/* ---- 内容量などメタ情報 ---- */
.product-meta-row {
  display: flex;
  gap: 16px;
  align-items: center;
  padding: 14px 0;
  border-top: 1px solid var(--paper-line);
  border-bottom: 1px solid var(--paper-line);
  font-size: .92rem;
}
.product-meta-label {
  flex: none;
  width: 72px;
  font-weight: 700;
  color: var(--ink-soft);
  font-size: .82rem;
  letter-spacing: .06em;
}
.product-meta-value { color: var(--ink); }

/* ---- こだわりポイント ---- */
.product-detail__text {
  font-size: .95rem;
  color: var(--ink-soft);
  line-height: 1.9;
  padding: 18px 20px;
  background: var(--paper-soft);
  border-radius: 4px;
  border-left: 3px solid var(--straw);
}

/* ---- カートボタンエリア ---- */
.product-cart {
  padding: 20px 0 4px;
}
.product-cart--soldout,
.product-cart--coming {
  font-size: .9rem;
  color: var(--ink-soft);
  padding: 16px 18px;
  background: var(--paper-soft);
  border-radius: 4px;
  border: 1px solid var(--paper-line);
}

/* ---- お問い合わせリンク ---- */
.product-contact {
  padding-top: 4px;
}

/* ---- 本文エリア ---- */
.product-body {
  margin-top: 8px;
  border-top: 1px solid var(--paper-line);
}
.product-body .entry-content { padding: 36px 0 0; }

/* ---- 戻るボタン ---- */
.product-back {
  padding: 48px 0 80px;
}

/*--------------------------------------------------------------
# e-shopsカート2：cart_button のフォーム調整
--------------------------------------------------------------*/

/* カートフォーム全体 */
.product-cart--form {
  width: 100%;
  padding: 20px 0 4px;
}

/* e-shopsが生成するフォーム */
.product-cart--form form {
  display: block;
  width: 100% !important;
  max-width: none !important;
  margin: 0;
}

/* テキストエリア（備考・年齢入力など） */
.product-cart--form form textarea {
  display: block;
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
  margin: 8px 0 14px;
  padding: 12px 14px;

  border: 1px solid var(--paper-line);
  border-radius: 4px;
  background: #fff;

  font-family: inherit;
  font-size: .95rem;
  line-height: 1.6;
}

/* 1つ目のテキストエリア */
.product-cart--form form textarea:first-of-type {
  min-height: 48px;
}

/* 2つ目のテキストエリア（備考欄） */
.product-cart--form form textarea:nth-of-type(2) {
  min-height: 80px;
}

/* 数量入力 */
.product-cart--form form input[name="es_item_qty"] {
  display: block;
  width: 100% !important;
  max-width: none !important;
  min-height: 48px;

  margin: 8px 0 8px;
  padding: 10px 14px;

  box-sizing: border-box;

  border: 1px solid var(--paper-line);
  border-radius: 4px;
  background: #fff;

  font-family: inherit;
  font-size: .95rem;
}

/* カゴに入れるボタン */
.product-cart--form form input[type="submit"] {
  display: block;
  width: 100% !important;
  max-width: none !important;
  min-height: 60px;

  margin: 0;
  padding: 14px 20px;

  box-sizing: border-box;

  border: none !important;
  border-radius: 4px;

  background: #55b69f !important;
  color: #fff !important;

  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;

  text-align: center;
  cursor: pointer;

  transition:
    background-color .2s ease,
    opacity .2s ease;
}

/* カゴに入れる：ホバー */
.product-cart--form form input[type="submit"]:hover {
  background: #439f89 !important;
}

/* カゴに入れる：フォーカス */
.product-cart--form form input[type="submit"]:focus {
  outline: 2px solid rgba(85, 182, 159, .35);
  outline-offset: 2px;
}

/* フォーム内の要素が横幅をはみ出さないようにする */
.product-cart--form form *,
.product-cart--form form *::before,
.product-cart--form form *::after {
  box-sizing: border-box;
}


/*--------------------------------------------------------------
# front-page.php 商品カード（ACF対応版）
--------------------------------------------------------------*/

.product-card {
  display: flex;
  flex-direction: column;
}
.product-card__thumb {
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 4px 4px 0 0;
  background: var(--paper-soft);
}
.product-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.product-card:hover .product-card__thumb img {
  transform: scale(1.04);
}
.product-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.product-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.product-card__price {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--ink);
}
.product-card__price small {
  font-size: .75rem;
  font-weight: 400;
  color: var(--ink-soft);
}
.product-card__action {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: auto;
  padding-top: 16px !important;
  border-top: 1px solid var(--paper-line);
}
.product-card__soldout {
  display: block;
  text-align: center;
  padding: 12px;
  background: var(--paper-soft);
  border-radius: 2px;
  color: var(--ink-soft);
  font-size: .88rem;
}

/* ---- レスポンシブ ---- */
@media (max-width: 900px) {
  .product-detail {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 32px 0;
  }
  .product-price__num { font-size: 1.8rem; }
}

/*--------------------------------------------------------------
# お知らせ一覧（archive.php）
--------------------------------------------------------------*/

.archive-body {
  padding: 48px 0 80px;
}

/* ---- カテゴリフィルター ---- */
.archive-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 36px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--paper-line);
}
.archive-filter__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 18px;
  border-radius: 20px;
  border: 1.5px solid var(--paper-line);
  font-size: .85rem;
  font-weight: 500;
  color: var(--ink-soft);
  transition: background .2s, border-color .2s, color .2s;
}
.archive-filter__item:hover {
  border-color: var(--straw);
  color: var(--ink);
}
.archive-filter__item.is-active {
  background: var(--green);
  border-color: var(--green);
  color: var(--paper-soft);
  font-weight: 700;
}
.archive-filter__count {
  font-size: .72rem;
  opacity: .7;
}

/* ---- 記事行 ---- */
.archive-list {
  border-top: 1px solid var(--paper-line);
}
.archive-row {
  display: grid;
  grid-template-columns: 110px 100px 1fr auto;
  gap: 0 20px;
  align-items: start;
  padding: 24px 0;
  border-bottom: 1px solid var(--paper-line);
  transition: background .2s;
}
.archive-row:hover {
  background: var(--paper-soft);
  margin: 0 -24px;
  padding-left: 24px;
  padding-right: 24px;
}

/* 日付 */
.archive-row .news-date {
  padding-top: 3px;
  font-size: .88rem;
  color: var(--ink-soft);
  letter-spacing: .04em;
  white-space: nowrap;
}

/* カテゴリ */
.archive-row__cat {
  padding-top: 2px;
}

/* 本文エリア */
.archive-row__body {
  flex: 1;
}
.archive-row__title {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.55;
  margin: 0 0 6px;
}
.archive-row__title a {
  color: var(--ink);
  transition: color .2s;
}
.archive-row__title a:hover {
  color: var(--green-deep);
}
.archive-row__excerpt {
  font-size: .85rem;
  color: var(--ink-soft);
  line-height: 1.7;
  margin: 0;
}

/* アイキャッチ */
.archive-row__thumb {
  flex: none;
  width: 80px;
}
.archive-row__thumb img {
  width: 80px;
  height: 60px;
  object-fit: cover;
  border-radius: 3px;
  display: block;
}

/* ---- ページネーション ---- */
.archive-pagination {
  margin-top: 48px;
  display: flex;
  justify-content: center;
}
.archive-pagination .nav-links {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.archive-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1.5px solid var(--paper-line);
  border-radius: 3px;
  font-size: .9rem;
  color: var(--ink-soft);
  transition: background .2s, border-color .2s, color .2s;
}
.archive-pagination .page-numbers:hover {
  border-color: var(--straw);
  color: var(--ink);
}
.archive-pagination .page-numbers.current {
  background: var(--green);
  border-color: var(--green);
  color: var(--paper-soft);
  font-weight: 700;
}
.archive-pagination .prev,
.archive-pagination .next {
  padding: 0 18px;
  font-size: .85rem;
}

/* ---- 投稿なし ---- */
.archive-empty {
  text-align: center;
  padding: 64px 0;
  color: var(--ink-soft);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

/* ---- レスポンシブ ---- */
@media (max-width: 700px) {
  .archive-row {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto;
    gap: 6px 12px;
  }
  .archive-row .news-date {
    grid-column: 1;
    grid-row: 1;
    font-size: .8rem;
  }
  .archive-row__cat {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }
  .archive-row__body {
    grid-column: 1;
    grid-row: 2;
  }
  .archive-row__thumb {
    grid-column: 2;
    grid-row: 2;
  }
  .archive-row__thumb img {
    width: 64px;
    height: 48px;
  }
  .archive-row:hover {
    margin: 0 -16px;
    padding-left: 16px;
    padding-right: 16px;
  }
}

/*--------------------------------------------------------------
# お知らせ一覧（archive.php）
--------------------------------------------------------------*/

.archive-body {
  padding: 48px 0 80px;
}

/* ---- カテゴリフィルター ---- */
.archive-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 36px;
}
.archive-filter__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 18px;
  border: 1.5px solid var(--paper-line);
  border-radius: 20px;
  font-size: .85rem;
  font-weight: 700;
  color: var(--ink-soft);
  transition: background .2s, border-color .2s, color .2s;
}
.archive-filter__item:hover {
  border-color: var(--straw);
  color: var(--ink);
}
.archive-filter__item.is-active {
  background: var(--green);
  border-color: var(--green);
  color: var(--paper-soft);
}
.archive-filter__count {
  font-size: .72rem;
  font-weight: 400;
  opacity: .7;
}

/* ---- 記事一覧 ---- */
.archive-list {
  border-top: 1px solid var(--paper-line);
}
.archive-row {
  display: grid;
  grid-template-columns: 108px 120px 1fr 96px;
  gap: 0 20px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--paper-line);
  transition: background .2s;
}
.archive-row:hover {
  background: var(--paper-soft);
  margin: 0 -24px;
  padding-left: 24px;
  padding-right: 24px;
}

/* 日付 */
.archive-row .news-date {
  font-size: .88rem;
  font-weight: 600;
  color: var(--ink-soft);
  flex: none;
}

/* カテゴリバッジ */
.archive-row__cat {
  flex: none;
}

/* タイトル・抜粋 */
.archive-row__body {
  min-width: 0;
}
.archive-row__title {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.55;
  margin-bottom: 4px;
}
.archive-row__title a {
  color: var(--ink);
  transition: color .2s;
}
.archive-row__title a:hover { color: var(--green-deep); }
.archive-row__excerpt {
  font-size: .85rem;
  color: var(--ink-soft);
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* アイキャッチ */
.archive-row__thumb {
  flex: none;
  width: 88px;
}
.archive-row__thumb img {
  width: 88px;
  height: 64px;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}

/* ---- ページネーション ---- */
.archive-pagination {
  margin-top: 48px;
  display: flex;
  justify-content: center;
}
.archive-pagination .nav-links {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
}
.archive-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 1.5px solid var(--paper-line);
  border-radius: 4px;
  font-size: .9rem;
  font-weight: 700;
  color: var(--ink-soft);
  transition: border-color .2s, background .2s, color .2s;
}
.archive-pagination .page-numbers:hover {
  border-color: var(--straw);
  color: var(--ink);
}
.archive-pagination .page-numbers.current {
  background: var(--green);
  border-color: var(--green);
  color: var(--paper-soft);
}
.archive-pagination .page-numbers.dots {
  border-color: transparent;
  pointer-events: none;
}

/* ---- 空の場合 ---- */
.archive-empty {
  padding: 64px 0;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  color: var(--ink-soft);
}

/* ---- カテゴリ説明文 ---- */
.archive-desc {
  margin-top: 10px;
  font-size: .95rem;
  color: var(--ink-soft);
}

/* ---- レスポンシブ ---- */
@media (max-width: 900px) {
  .archive-row {
    grid-template-columns: 96px 1fr;
    grid-template-rows: auto auto;
  }
  .archive-row__cat { grid-column: 2; }
  .archive-row__body { grid-column: 2; }
  .archive-row__thumb { display: none; } /* サムネはスマホ非表示 */
}
@media (max-width: 700px) {
  .archive-row {
    grid-template-columns: 84px 1fr;
    gap: 0 12px;
    padding: 18px 0;
  }
  .archive-row:hover {
    margin: 0 -20px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .archive-row .news-date { font-size: .78rem; }
  .archive-row__cat { display: none; } /* カテゴリバッジはスマホ非表示 */
  .archive-row__excerpt { display: none; } /* 抜粋もスマホ非表示 */
}

/*--------------------------------------------------------------
# お問い合わせページ（page-contact.php）
--------------------------------------------------------------*/

.contact-body {
  padding: 56px 0 88px;
}

/* ---- サブタイトル ---- */
.entry-subtitle {
  margin-top: 10px;
  color: var(--ink-soft);
  font-size: .97rem;
}

/* ---- 連絡先カードグリッド ---- */
.contact-info-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 52px;
}
.contact-info-card {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: var(--paper-soft);
  border: 1px solid var(--paper-line);
  border-radius: 6px;
  padding: 24px 22px;
}
.contact-info-card__icon {
  flex: none;
  width: 42px;
  height: 42px;
  background: var(--paper);
  border-radius: 50%;
  border: 1.5px solid var(--paper-line);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--green-deep);
}
.contact-info-card__icon svg {
  width: 22px;
  height: 22px;
}
.contact-info-card h3 {
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--ink-soft);
  margin-bottom: 8px;
}
.contact-tel {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--green-deep);
  letter-spacing: .04em;
  display: block;
  margin-bottom: 6px;
}
.contact-info-card address {
  font-style: normal;
  font-size: .92rem;
  color: var(--ink-soft);
  line-height: 1.8;
}
.contact-info-card__note {
  font-size: .85rem;
  color: var(--ink-soft);
  line-height: 1.8;
}

/* ---- フォームラッパー ---- */
.contact-form-wrap {
  background: var(--paper-soft);
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  overflow: hidden;
}
.contact-form-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 28px 36px;
  border-bottom: 1px solid var(--paper-line);
  background: var(--paper);
}
.contact-form-head h2 {
  font-size: 1.1rem;
  font-weight: 700;
}
.contact-required-note {
  font-size: .82rem;
  color: var(--ink-soft);
  display: flex;
  align-items: center;
  gap: 6px;
}
.contact-req {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 8px;
  background: #e05050;
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  border-radius: 3px;
  margin-left: 10px;
}
.contact-form-body {
  padding: 36px 36px 44px;
}

/*--------------------------------------------------------------
# Contact Form 7 カスタムスタイル
--------------------------------------------------------------*/

/* ---- CF7 auto-format の <br> を無効化 ---- */
.contact-form-body br { display: none; }
.wpcf7-form br { display: none; }
.wpcf7-form p { margin: 0; }

/* ---- フォーム全体 ---- */
.wpcf7-form {
  display: block;
  border-top: 1px solid var(--paper-line);
}

/* ---- 各フィールドの行 ---- */
.cf7-row {
  display: grid;
  grid-template-columns: 250px 1fr;
  border-bottom: 1px solid var(--paper-line);
  align-items: stretch;
}
.cf7-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 16px 20px;
  background: var(--paper);
  font-size: .92rem;
  font-weight: 700;
  color: var(--ink);
  border-right: 1px solid var(--paper-line);
  line-height: 1.5;
  white-space: nowrap;
}
.cf7-field {
  padding: 14px 20px;
  display: flex;
  align-items: center;
}
/* ---- 親要素・ラッピングのブロック化と幅確保 ---- */
.wpcf7,
.wpcf7-form,
.wpcf7 form p,
.cf7-field,
.wpcf7-form-control-wrap {
  display: block !important;
  width: 100% !important;
}

.cf7-field .wpcf7-form-control-wrap {
  flex: 1 1 100%;
}

/* ---- 入力要素（input / textarea）の幅100%化 ---- */
.cf7-field input,
.cf7-field textarea,
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
  display: block !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 10px 14px;
  border: 1.5px solid var(--paper-line);
  border-radius: 4px;
  background: #fff;
  font-family: inherit;
  font-size: .95rem;
  color: var(--ink);
  transition: border-color .2s, box-shadow .2s;
  appearance: none;
  -webkit-appearance: none;
}
.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(85,180,155,0.15);
}
.wpcf7-form textarea {
  height: 180px;
  resize: vertical;
  line-height: 1.8;
}

/* ---- 送信ボタン ---- */
.cen {
  text-align: center;
}
.cf7-submit-row {
  margin-top: 28px;
  display: flex;
  justify-content: center;
}
/* 送信ボタンは width:100% の対象から除外して中央揃えを維持 */
.wpcf7-form input[type="submit"],
.wpcf7-submit {
  width: auto !important;
  min-width: auto !important;
  max-width: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 56px;
  background: var(--green);
  color: #fff;
  border: none;
  border-radius: 3px;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: .06em;
  cursor: pointer;
  transition: background .25s, transform .2s, box-shadow .25s;
}
.wpcf7-form input[type="submit"]:hover,
.wpcf7-submit:hover {
  background: var(--green-deep);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -8px rgba(44,110,94,.45);
}
.wpcf7-form input[type="submit"]:disabled {
  opacity: .6;
  cursor: not-allowed;
  transform: none;
}

/* ---- バリデーションエラー ---- */
.wpcf7-not-valid-tip {
  color: #e05050;
  font-size: .8rem;
  margin-top: 4px;
  display: block;
}
.wpcf7-form input.wpcf7-not-valid,
.wpcf7-form textarea.wpcf7-not-valid {
  border-color: #e05050;
  box-shadow: 0 0 0 3px rgba(224,80,80,.1);
}

/* ---- 送信完了・エラーメッセージ ---- */
.wpcf7-response-output {
  margin-top: 20px;
  padding: 14px 18px;
  border-radius: 4px;
  font-size: .9rem;
  font-weight: 700;
  border: none !important;
}
.wpcf7-mail-sent-ok {
  background: rgba(85,180,155,.12);
  color: var(--green-deep);
}
.wpcf7-mail-sent-ng,
.wpcf7-aborted {
  background: rgba(224,80,80,.1);
  color: #c03030;
}
.wpcf7-spam-blocked {
  background: rgba(245,185,66,.12);
  color: var(--straw-deep);
}

/* ---- スピナー ---- */
.wpcf7 .ajax-loader {
  margin-left: 10px;
  vertical-align: middle;
}

/* ---- レスポンシブ ---- */
@media (max-width: 900px) {
  .contact-info-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .contact-form-head,
  .contact-form-body { padding: 22px 24px; }
  .cf7-row {
    grid-template-columns: 120px 1fr;
  }
}
@media (max-width: 700px) {
  .contact-body { padding: 36px 0 64px; }
  .contact-form-wrap { border-radius: 4px; }
  .contact-form-body { padding: 20px 16px 28px; }
  .contact-form-head { padding: 18px 16px; }
  .cf7-row {
    grid-template-columns: 1fr;
  }
  .cf7-label {
    padding: 12px 16px 6px;
    border-right: none;
    border-bottom: none;
    background: transparent;
    font-size: .82rem;
  }
  .cf7-field {
    padding: 0 16px 14px;
    align-items: flex-start;
  }
  .wpcf7-form input[type="submit"] {
    width: 100%;
    padding: 16px;
  }
}




/* テーブル全体のレイアウト計算を固定 */
.wp-block-table table {
  table-layout: fixed;
  width: 100%;
}

/* 左側（1列目）の幅を指定（例: 30% に固定） */
.wp-block-table table th:first-child,
.wp-block-table table td:first-child {
  width: 30%; /* お好みの幅（例: 200px などでもOK）に変更してください */
  white-space: nowrap; /* テキストの勝手な改行を防ぎたい場合は追加 */
}

/* 右側（2列目）は残りの幅（70%）を自動で使う */
.wp-block-table table th:nth-child(2),
.wp-block-table table td:nth-child(2) {
  width: 70%;
}



@media (max-width: 768px) {
  /* スマホの時は左列の幅を 40% に広げる */
  .wp-block-table table th:first-child,
  .wp-block-table table td:first-child {
    width: 40%;
  }
}

/*--------------------------------------------------------------
# 商品一覧ページ（archive-hiura_product.php）
--------------------------------------------------------------*/

.products-archive-body {
  padding: 56px 0 88px;
}

/* ---- カテゴリセクション ---- */
.products-section {
  margin-bottom: 72px;
}
.products-section:last-child {
  margin-bottom: 0;
}
.products-section__head {
  display: flex;
  align-items: baseline;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 28px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink);
}
.products-section__head h2 {
  font-size: 1.5rem;
  font-weight: 700;
}
.products-section__head p {
  color: var(--ink-soft);
  font-size: .92rem;
}

/* ---- 商品グリッド ---- */
.products-archive-body .product-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

/* ---- 商品カード ---- */
.products-archive-body .product-card {
  background: var(--paper);
  border: 1px solid var(--paper-line);
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .3s ease, box-shadow .3s ease;
}
.products-archive-body .product-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px -16px rgba(0,0,0,.2);
}

/* サムネイル */
.product-card__thumb-link { display: block; }
.product-card__thumb {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--paper-soft);
}
.product-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.products-archive-body .product-card:hover .product-card__thumb img {
  transform: scale(1.04);
}
.product-card__no-thumb {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--paper-line);
}
.product-card__no-thumb svg {
  width: 56px;
  height: 56px;
}

/* 本体 */
.product-card__body {
  padding: 20px 22px 16px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.product-card__title {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.5;
  margin: 0;
}
.product-card__title a {
  color: var(--ink);
  transition: color .2s;
}
.product-card__title a:hover { color: var(--green-deep); }
.product-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.product-card__price {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--ink);
}
.product-card__price small {
  font-weight: 400;
  font-size: .75rem;
  color: var(--ink-soft);
}
.product-card__size {
  font-size: .82rem;
  color: var(--ink-soft);
}
.product-card__excerpt {
  font-size: .85rem;
  color: var(--ink-soft);
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
}

/* アクション */
.product-card__action {
  padding: 0 22px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
}
.product-card__detail-link {
  font-size: .8rem;
  color: var(--ink-soft);
  border-bottom: 1px solid var(--paper-line);
  width: fit-content;
  transition: color .2s, border-color .2s;
}
.product-card__detail-link:hover {
  color: var(--green-deep);
  border-color: var(--green);
}
.product-card__soldout,
.product-card__coming {
  display: block;
  text-align: center;
  padding: 11px;
  background: var(--paper-soft);
  border-radius: 3px;
  color: var(--ink-soft);
  font-size: .88rem;
  font-weight: 700;
}

/* ---- 空の場合 ---- */
.products-empty {
  text-align: center;
  padding: 64px 0;
  color: var(--ink-soft);
}

/* ---- レスポンシブ ---- */
@media (max-width: 900px) {
  .products-archive-body .product-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .products-archive-body { padding: 36px 0 64px; }
  .products-archive-body .product-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .products-section { margin-bottom: 48px; }
  .product-card__body { padding: 16px 16px 12px; }
  .product-card__action { padding: 0 16px 16px; }
}

/*--------------------------------------------------------------
# メディア情報一覧（category-media.php）
--------------------------------------------------------------*/

.media-archive-body {
  padding: 56px 0 88px;
}

/* ---- カードグリッド ---- */
.media-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

/* ---- カード ---- */
.media-card {
  background: var(--paper);
  border: 1px solid var(--paper-line);
  border-radius: 6px;
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease;
}
.media-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px -16px rgba(0,0,0,.2);
}
.media-card__link {
  display: block;
  color: inherit;
}

/* サムネイル */
.media-card__thumb {
  aspect-ratio: 16/9;
  overflow: hidden;
  background: var(--paper-soft);
}
.media-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.media-card:hover .media-card__thumb img {
  transform: scale(1.04);
}
.media-card__no-thumb {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--paper-line);
}
.media-card__no-thumb svg {
  width: 48px;
  height: 48px;
}

/* テキスト部分 */
.media-card__body {
  padding: 18px 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.media-card__date {
  font-size: .8rem;
  color: var(--ink-soft);
  letter-spacing: .04em;
}
.media-card__title {
  font-size: .98rem;
  font-weight: 700;
  line-height: 1.6;
  margin: 0;
  color: var(--ink);
  transition: color .2s;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.media-card:hover .media-card__title {
  color: var(--green-deep);
}

/* 空のとき */
.media-empty {
  text-align: center;
  padding: 64px 0;
  color: var(--ink-soft);
}

/* ---- レスポンシブ ---- */
@media (max-width: 900px) {
  .media-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .media-archive-body { padding: 36px 0 64px; }
  .media-grid {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

/* 一覧に戻るボタン（single.php） */
.entry-back {
  padding: 28px 40px 36px;
}
@media (max-width: 700px) {
  .entry-back { padding: 20px 20px 28px; }
}

/*--------------------------------------------------------------
# バリアントセレクター（精米×サイズ別カート）
--------------------------------------------------------------*/
.variant-selector {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px 0 4px;
}
.variant-row {
  display: flex;
  align-items: center;
  gap: 16px;
}
.variant-label {
  flex: none;
  width: 100px;
  font-size: .88rem;
  font-weight: 700;
  color: var(--ink);
}
.variant-select {
  flex: 1;
  padding: 10px 14px;
  border: 1.5px solid var(--paper-line);
  border-radius: 4px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235B5246' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center;
  appearance: none;
  -webkit-appearance: none;
  font-family: inherit;
  font-size: .95rem;
  color: var(--ink);
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s;
}
.variant-select:focus {
  outline: none;
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(85,180,155,.15);
}
.variant-cart-area {
  margin-top: 4px;
  min-height: 48px;
}

/*--------------------------------------------------------------
# 数量別カートボタン（quantity-carts）
--------------------------------------------------------------*/
.quantity-carts {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-top: 1px solid var(--paper-line);
  margin-top: 8px;
}
.quantity-cart-row {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--paper-line);
}
.quantity-cart-label {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--ink-soft);
  flex: none;
}
.quantity-cart-btn {
  align-items: center;
}

@media (max-width: 700px) {
  .quantity-cart-row {
    grid-template-columns: 100px 1fr;
    gap: 12px;
  }
}

/*--------------------------------------------------------------
# 商品一覧 リスト型（archive-hiura_product.php）
--------------------------------------------------------------*/

.products-list-body {
  padding: 48px 0 88px;
}

/* ---- 親カテゴリーセクション ---- */
.plist-section {
  margin-bottom: 56px;
}
.plist-section:last-child {
  margin-bottom: 0;
}

/* ---- 親カテゴリー見出し ---- */
.plist-parent-heading {
  font-size: 1.35rem;
  font-weight: 700;
  padding-bottom: 12px;
  margin-bottom: 0;
  border-bottom: 2px solid var(--ink);
}

/* ---- 子カテゴリーグループ ---- */
.plist-child-group {
  margin-top: 0;
}

/* ---- 子カテゴリー見出し ---- */
.plist-child-heading {
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--ink-soft);
  padding: 14px 16px;
  background: var(--paper-soft);
  border-bottom: 1px solid var(--paper-line);
  margin: 0;
}

/* ---- 商品リスト ---- */
.plist-items {
  list-style: none;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--paper-line);
}

/* ---- 商品行 ---- */
.plist-item {
  border-bottom: 1px solid var(--paper-line);
}
.plist-item:last-child {
  border-bottom: none;
}
.plist-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  color: var(--ink);
  transition: background .2s;
}
.plist-link:hover {
  background: var(--paper-soft);
}

/* 商品名 */
.plist-name {
  flex: 1;
  font-size: .97rem;
  font-weight: 500;
  line-height: 1.5;
}
.plist-link:hover .plist-name {
  color: var(--green-deep);
}

/* バッジ */
.plist-badge {
  flex: none;
  font-size: .72rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: .04em;
}
.plist-badge--out    { background: rgba(240,135,107,.12); color: var(--hanko-deep); }
.plist-badge--coming { background: rgba(245,185,66,.12);  color: var(--straw-deep); }

/* 矢印 */
.plist-arrow {
  flex: none;
  font-size: .88rem;
  color: var(--green);
  transition: transform .2s;
}
.plist-link:hover .plist-arrow {
  transform: translateX(4px);
}

/* ---- レスポンシブ ---- */
@media (max-width: 700px) {
  .products-list-body { padding: 32px 0 64px; }
  .plist-section { margin-bottom: 40px; }
  .plist-parent-heading { font-size: 1.15rem; }
  .plist-link { padding: 14px 16px; }
  .plist-name { font-size: .9rem; }
}

/*--------------------------------------------------------------
# 商品一覧 リスト型 追加スタイル（2カラム・カテゴリー画像）
--------------------------------------------------------------*/

/* 親カテゴリーヘッダー（画像＋見出し） */
.plist-parent-head {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 0;
  border-bottom: 2px solid var(--ink);
  padding-bottom: 16px;
}
.plist-parent-img {
  flex: none;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--paper-line);
}
.plist-parent-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.plist-parent-heading {
  font-size: 1.35rem;
  font-weight: 700;
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none; /* .plist-parent-head に移動 */
}

/* 子カテゴリー 2カラムグリッド */
.plist-child-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.plist-child-group {
  border-right: 1px solid var(--paper-line);
}
.plist-child-group:nth-child(even) {
  border-right: none;
}

/* 子カテゴリー見出し（2カラム内） */
.plist-child-heading {
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--ink-soft);
  padding: 12px 16px;
  background: var(--paper-soft);
  border-bottom: 1px solid var(--paper-line);
  margin: 0;
}

/* 子カテゴリーなし・2カラムリスト */
.plist-items--2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--paper-line);
}
.plist-items--2col .plist-item {
  border-bottom: 1px solid var(--paper-line);
  border-right: 1px solid var(--paper-line);
}
.plist-items--2col .plist-item:nth-child(even) {
  border-right: none;
}

/* レスポンシブ */
@media (max-width: 700px) {
  .plist-parent-head { gap: 16px; }
  .plist-parent-img { width: 56px; height: 56px; }
  .plist-parent-heading { font-size: 1.1rem; }
  .plist-child-grid { grid-template-columns: 1fr; }
  .plist-child-group { border-right: none; }
  .plist-items--2col { grid-template-columns: 1fr; }
  .plist-items--2col .plist-item { border-right: none; }
}

/* 親カテゴリー 2カラム（お米 | 加工品） */
.plist-parent-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 48px;
  align-items: start;
}

@media (max-width: 700px) {
  .plist-parent-grid {
    grid-template-columns: 1fr;
    gap: 40px 0;
  }
}

/*--------------------------------------------------------------
# シンクロカゴ ボタンデザイン上書き
# .quantity-cart-btn 内に描画される要素を対象にする
--------------------------------------------------------------*/

/* 商品情報テキスト
   syncro.js が出力するインラインスタイル（font-size:14px;color:#000000）を !important で上書き */
.quantity-cart-btn div[style] {
  font-size: .92rem !important;
  color: var(--ink-soft) !important;
  line-height: 1.6 !important;
  margin-bottom: 0 !important;
}
/* フォーム要素には line-height を継承させない */
.quantity-cart-btn div[style] input,
.quantity-cart-btn div[style] select,
.quantity-cart-btn div[style] textarea,
.quantity-cart-btn div[style] button {
  line-height: normal !important;
}

/* フォーム全体の余白リセット */
.quantity-cart-btn form {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* テキストエリア（備考欄）*/
.quantity-cart-btn textarea,
.quantity-cart-btn input[type="text"] {
  width: 100% !important;
  padding: 8px 12px !important;
  border: 1.5px solid var(--paper-line) !important;
  border-radius: 4px !important;
  font-family: inherit !important;
  font-size: .9rem !important;
  background: #fff !important;
  box-sizing: border-box !important;
}

/* セレクト（米袋選択など） */
.quantity-cart-btn select {
  padding: 8px 12px !important;
  border: 1.5px solid var(--paper-line) !important;
  border-radius: 4px !important;
  font-family: inherit !important;
  font-size: .9rem !important;
  background: #fff !important;
  cursor: pointer !important;
}

/* 数量入力 */
.quantity-cart-btn input[type="number"],
.quantity-cart-btn input[type="text"][size] {
  width: 64px !important;
  padding: 8px 10px !important;
  border: 1.5px solid var(--paper-line) !important;
  border-radius: 4px !important;
  font-family: inherit !important;
  font-size: .9rem !important;
  text-align: center !important;
}

/* カゴに入れるボタン */
.quantity-cart-btn input[type="submit"],
.quantity-cart-btn input[type="button"],
.quantity-cart-btn button[type="submit"],
.quantity-cart-btn button:not([type="button"]) {
  background: var(--green) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 4px !important;
  padding: 12px 24px !important;
  font-family: inherit !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: background .25s ease, transform .2s ease !important;
  width: 100% !important;
  box-sizing: border-box !important;
  letter-spacing: .04em !important;
}
.quantity-cart-btn input[type="submit"]:hover,
.quantity-cart-btn input[type="button"]:hover,
.quantity-cart-btn button[type="submit"]:hover {
  background: var(--green-deep) !important;
  transform: translateY(-1px) !important;
}

/* お問い合わせリンクボタン（サブボタン） */
.quantity-cart-btn input[value*="お問い合わせ"],
.quantity-cart-btn input[value*="問合せ"],
.quantity-cart-btn a[href*="contact"],
.quantity-cart-btn a[href*="inquiry"] {
  background: transparent !important;
  color: var(--ink-soft) !important;
  border: 1px solid var(--paper-line) !important;
  border-radius: 4px !important;
  padding: 8px 16px !important;
  font-size: .82rem !important;
  font-weight: 400 !important;
}

/*--------------------------------------------------------------
# 商品説明（product-intro）
--------------------------------------------------------------*/

.product-intro-wrap {
  margin-bottom: 48px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--paper-line);
}

/* キャッチコピー */
.product-intro__tagline {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.7;
  margin-bottom: 16px;
}

/* 星評価 */
.product-ratings {
  display: inline-flex;
  flex-direction: column;
  gap: 6px;
  background: var(--paper-soft);
  border: 1px solid var(--paper-line);
  border-radius: 6px;
  padding: 16px 24px;
  margin: 16px 0;
}
.product-rating-row {
  display: flex;
  align-items: center;
  gap: 16px;
}
.product-rating-label {
  flex: none;
  width: 72px;
  font-size: .85rem;
  font-weight: 700;
  color: var(--ink-soft);
}
.product-rating-stars {
  font-size: 1rem;
  color: var(--straw-deep);
  letter-spacing: 2px;
}
.star-empty { color: var(--paper-line); }
.product-rating-note {
  font-size: .78rem;
  color: var(--ink-soft);
  margin-top: 4px;
  margin-bottom: 0;
}

/* セクション見出し */
.product-intro__heading {
  font-size: 1.1rem;
  font-weight: 700;
  border-left: 3px solid var(--straw);
  padding-left: 14px;
  margin: 28px 0 16px;
  line-height: 1.6;
}

/* 本文 */
.product-intro-wrap p {
  font-size: .97rem;
  color: var(--ink-soft);
  line-height: 2;
  margin-bottom: 1.2em;
}
.product-intro-wrap small {
  font-size: .85rem;
}

/* ポイントリスト */
.product-notes {
  background: var(--paper-soft);
  border-radius: 6px;
  padding: 18px 24px;
  margin-top: 24px;
}
.product-notes ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.product-notes li {
  font-size: .88rem;
  color: var(--ink-soft);
  padding-left: 1.2em;
  position: relative;
  line-height: 1.7;
}
.product-notes li::before {
  content: "■";
  position: absolute;
  left: 0;
  color: var(--green);
  font-size: .7em;
  top: .3em;
}

@media (max-width: 700px) {
  .product-intro-wrap { margin-bottom: 32px; padding-bottom: 28px; }
  .product-ratings { padding: 14px 18px; }
}

/* 商品説明：画像 */
.product-intro__figure {
  margin: 24px 0;
}
.product-intro__figure img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
}
.product-intro__figure figcaption,
.product-intro__gallery figcaption {
  font-size: .82rem;
  color: var(--ink-soft);
  margin-top: 8px;
  text-align: center;
}

/* 商品説明：3枚横並び */
.product-intro__gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 24px 0;
}
.product-intro__gallery figure {
  margin: 0;
}
.product-intro__gallery img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 6px;
  display: block;
}

@media (max-width: 600px) {
  .product-intro__gallery {
    grid-template-columns: 1fr;
  }
}

/* 商品説明：画像エリア */
.product-intro__figure {
  margin: 24px 0;
}
.product-intro__figure img,
.product-intro__img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
}
.product-intro__figure figcaption,
.product-intro__gallery figcaption {
  font-size: .82rem;
  color: var(--ink-soft);
  margin-top: 8px;
  text-align: center;
}

/* 3枚横並びギャラリー */
.product-intro__gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 24px 0;
}
.product-intro__gallery figure {
  margin: 0;
}
.product-intro__gallery img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}

@media (max-width: 600px) {
  .product-intro__gallery {
    grid-template-columns: 1fr;
  }
}

/* 商品説明内の画像 */
.product-intro__figure {
  margin: 28px 0;
}
.product-intro__figure img {
  width: 100%;
  height: auto;
  border-radius: 6px;
  display: block;
}
.product-intro__figure figcaption,
.product-intro__gallery figcaption {
  font-size: .82rem;
  color: var(--ink-soft);
  margin-top: 8px;
  line-height: 1.6;
}

/* 3枚横並びギャラリー */
.product-intro__gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 28px 0;
}
.product-intro__gallery figure {
  margin: 0;
}
.product-intro__gallery img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 4px;
  display: block;
}

@media (max-width: 700px) {
  .product-intro__gallery {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}



