@charset "utf-8";
@font-face{font-family:"游ゴシック体"; src:local("Yu Gothic Medium"),local("游ゴシック Medium");}
@font-face{font-family:"游ゴシック体"; src:local("Yu Gothic Bold"),local("游ゴシック Bold"); font-weight:bold;}

:root {
  --forest: #3B4A2B;
  --forest-deep: #2A3620;
  --forest-light: #4E6138;
  --cream: #F5F0E8;
  --cream-dark: #E8E0D0;
  --gold: #C4A265;
  --gold-light: #D4B87A;
  --charcoal: #2C2C2C;
  --warm-gray: #8A8275;
  --white: #FEFDFB;
  --shell-brown: #8B6F4E;
}
html, body, div, span, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,small, strong, sub, sup, var,b, i,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, figcaption, figure,footer, header, hgroup, menu, nav, section, summary,time, mark, audio, video{
	margin:0;padding:0;border:0;outline:0;vertical-align:baseline;background:transparent;box-sizing:border-box;}
html{font-size:18px;scroll-behavior: smooth;}
body{
	font-size:1.6rem;
	-webkit-text-size-adjust:100%;
/*	line-height:1.2;*/
	max-width:100%;
	min-width:320px;
	font-family: 'DM Sans', 'Noto Serif JP', sans-serif;
  background: var(--white);
  color: var(--charcoal);
  overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}
ul{list-style:none;}
blockquote, q{quotes:none;}
blockquote:before, blockquote:after,q:before, q:after{content:'';content:none;}
li{list-style-type:none;}
ins{text-decoration:none;}
mark{font-style:italic;font-weight:bold;}
del{text-decoration:line-through;}
abbr[title], dfn[title]{border-bottom:1px dotted;cursor:help;}
table{border-collapse:collapse;border-spacing:0;}
hr{display:block;height:1px;margin:1em 0;padding:0;border:0;border-top:1px solid #cccccc;}
input, select{vertical-align:middle;margin:0;box-sizing:border-box;}
input,textarea{-webkit-appearance:none;font-family:inherit;box-sizing:border-box;}
input:focus,textarea:focus,select:focus{outline:0;}
button{font-family:inherit;background-color:transparent;border:none;cursor:pointer;outline:none;padding:0;appearance:none;box-sizing:border-box;}
button::-moz-focus-inner{border:0;}
input:placeholder-shown{color:rgba(245,240,232,0.3);}
input::-webkit-input-placeholder{color:rgba(245,240,232,0.3);}
input:-moz-placeholder{color:rgba(245,240,232,0.3);opacity:1;}
input::-moz-placeholder{color:rgba(245,240,232,0.3);opacity:1;}
input:-ms-input-placeholder{color:rgba(245,240,232,0.3);}
pre{white-space:pre-wrap;font-family:inherit;}
img{border:none;vertical-align:bottom;max-width:100%;height:auto;}
small{font-size:75%;}
a[href^="tel:"]{cursor:text;}
*:focus-visible,
select:focus-visible{outline:2px solid #323232;transition:outline 0s!important;}

@media screen and (min-width:1px) and (max-width:768px){
	html{font-size:16px;}
}

/* -------------------------------------------------- */
/* header */
/* -------------------------------------------------- */
header nav {position: fixed;top: 0;left: 0;right: 0;z-index: 100;padding: 1.2rem 3rem;display: flex;justify-content: space-between;align-items: center;background: rgba(59,74,43,0.92);backdrop-filter: blur(12px);transition: all 0.4s ease;}
header nav .logo {font-family: 'Cormorant Garamond', serif;color: var(--cream);font-size: 1.3rem;font-weight: 600;letter-spacing: 0.15em;display:flex;gap:15px;align-items:center;}
header nav .logo span { font-weight: 300;font-size: 0.75rem;display: block;letter-spacing: 0.3em;opacity: 0.7;}
header nav .logo-inner{flex:1;}
header nav .logo-img{width:40px;}
header nav ul { list-style: none;display: flex;gap: 2.5rem;}
header nav ul li{line-height:1;display:flex;align-items:center;justify-content:center;}
header nav ul li a {display:block;padding:10px 0 6px;color: var(--cream);text-decoration: none;font-size: 0.78rem;letter-spacing: 0.12em;font-weight: 400;opacity: 0.85;transition: opacity 0.3s;text-align:center;}
header nav ul li a:hover { opacity: 1;}
header nav .nav-cta {padding: 0.5rem 1.6rem;border: 1px solid var(--gold);color: var(--gold);font-size: 0.72rem;letter-spacing: 0.15em;text-decoration: none;transition: all 0.3s;text-align:center;}
header nav .nav-cta:hover { background: var(--gold);color: var(--forest-deep);}

@media screen and (min-width:1px) and (max-width:1199px){
	header nav{padding:1.2rem 1.2rem;gap:1rem;}
}
@media screen and (min-width:1px) and (max-width:999px){
	header nav { padding: 1rem 1.5rem;}
	header nav ul { display: none;}
}
@media screen and (min-width:1px) and (max-width:599px){
	header nav{padding:1rem 1.2rem;gap:0.5rem;}
	header nav .logo{font-size:1rem;gap:10px;}
	header nav .logo span{font-size:0.6rem;}
	header nav .logo-img{width:30px;}
	header nav .nav-cta{padding:0.4rem 0.5rem;font-size:0.64rem;}
}

/* -------------------------------------------------- */
/* footer */
/* -------------------------------------------------- */
footer {background: var(--forest-deep); color: var(--cream); padding: 4rem 3rem 2rem;}
.footer-inner {max-width: 1100px;margin: 0 auto; display: grid;grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 3rem;}
.footer-brand .logo {font-family: 'Cormorant Garamond', serif; font-size: 1.3rem;font-weight: 600;letter-spacing: 0.15em;}
.footer-brand .logo span {display: block;font-weight: 300; font-size: 0.7rem;letter-spacing: 0.3em;opacity: 0.5;}
.footer-brand p {margin-top: 1rem;font-size: 0.75rem; line-height: 1.9;opacity: 0.5;}
footer h4 {font-size: 0.7rem;letter-spacing: 0.2em; color: var(--gold);margin-bottom: 1.2rem;}
footer ul { list-style: none;}
footer ul li { margin-bottom: 0.6rem;line-height:1;}
footer ul li a {color: var(--cream);opacity: 0.5; text-decoration: none;font-size: 0.78rem; transition: opacity 0.3s;}
footer ul li a:hover { opacity: 1;}
footer ul li a.disabled{pointer-events:none;opacity:0.3;}
.footer-copy {max-width: 1100px;margin: 3rem auto 0; padding-top: 1.5rem; border-top: 1px solid rgba(245,240,232,0.1); font-size: 0.65rem;opacity: 0.35; text-align: center;letter-spacing: 0.1em;}

@media screen and (min-width:1px) and (max-width:768px){
	footer{padding:3rem 2rem 2rem;}
	.footer-inner { grid-template-columns: 1fr 1fr;}
}

/* -------------------------------------------------- */
/* common */
/* -------------------------------------------------- */
.v-sp{display:none!important;}
.v-pc{display:block!important;}

section { padding: 7rem 3rem;}
.section-label {font-size: 0.65rem;letter-spacing: 0.4em;color: var(--gold);text-transform: uppercase;margin-bottom: 1rem;}
.section-title {font-family: 'Noto Serif JP', serif;font-size: 2.2rem;font-weight: 400;line-height: 1.5;margin-bottom: 2rem;color: var(--charcoal);}

.btn-disabled{pointer-events:none;opacity:0.7;}

@media screen and (min-width:1px) and (max-width:768px){
	.v-pc{display:none!important;}
	.v-sp{display:block!important;}

	section { padding: 4rem 1.5rem;}
	.section-title{font-size:1.8rem;}
}

/* -------------------------------------------------- */
/* hero */
/* -------------------------------------------------- */
.hero {height: 100vh;min-height: 700px;background:url(../img/hero_back.jpg) no-repeat center center var(--forest-deep);background-size:cover;display: flex;align-items: center;justify-content: center;position: relative;overflow: hidden;}
/*.hero::before {content: '';position: absolute;inset: 0;background: radial-gradient(ellipse at 30% 50%, rgba(78,97,56,0.4) 0%, transparent 60%),radial-gradient(ellipse at 70% 30%, rgba(196,162,101,0.08) 0%, transparent 50%);z-index:1;}*/
.hero::before{content:"";display:block;width:100%;height:100%;position:absolute;top:0;left:0;z-index:1;background:var(--forest-deep);opacity:0.3;mix-blend-mode:multiply;}
.hero::after{content:"";display:block;width:100%;height:100%;position:absolute;top:0;left:0;z-index:0;background:var(--forest-deep);opacity:0.4;mix-blend-mode:multiply;}
.hero-content {text-align: center;position: relative;z-index: 2;animation: fadeUp 1.2s ease-out;}
@keyframes fadeUp {from { opacity: 0;transform: translateY(40px);}to { opacity: 1;transform: translateY(0);}}

.hero-tree {margin: 0 auto 3rem;}
.hero h1 {font-family: 'Cormorant Garamond', serif;color: var(--cream);font-size: 4.5rem;font-weight: 300;letter-spacing: 0.08em;line-height: 1.1;}
.hero h1 em {display: block;font-style: italic;font-size: 1.4rem;letter-spacing: 0.35em;color: var(--gold);margin-top: 0.5rem;font-weight: 300;}
.hero-sub {color: var(--cream);opacity: 0.6;font-family: 'Noto Serif JP', serif;font-size: 0.85rem;font-weight: 300;margin-top: 2rem;letter-spacing: 0.2em;}

/* --- HERO CTA (購入導線) --- */
.hero-cta-area {margin-top: 3rem;display: flex;gap: 1.2rem;justify-content: center;align-items: center;animation: fadeUp 1.2s ease-out 0.3s both;}
.hero-cta-primary {display: inline-block;padding: 0.9rem 2.8rem;background: var(--gold);color: var(--forest-deep);text-decoration: none;font-size: 0.78rem;letter-spacing: 0.18em;font-weight: 600;transition: all 0.3s;}
.hero-cta-primary:hover {background: var(--gold-light);transform: translateY(-2px);box-shadow: 0 6px 24px rgba(196,162,101,0.3);}
.hero-cta-secondary {display: inline-block;padding: 0.85rem 2.4rem;border: 1px solid rgba(245,240,232,0.35);color: var(--cream);text-decoration: none;font-size: 0.72rem;letter-spacing: 0.15em;transition: all 0.3s;}
.hero-cta-secondary:hover {border-color: var(--cream);background: rgba(245,240,232,0.08);}

.hero-scroll {position: absolute;bottom: 3rem;left: 50%;transform: translateX(-50%);color: var(--cream);opacity: 0.8;font-size: 0.65rem;letter-spacing: 0.3em;animation: pulse 2s ease-in-out infinite;}
@keyframes pulse { 0%,100% { opacity: 0.5;} 50% { opacity: 1;} }
.hero-scroll::after {content: '';display: block;width: 1px;height: 40px;background: var(--cream);opacity: 0.8;margin: 0.8rem auto 0;}

@media screen and (min-width:1px) and (max-width:768px){
	.hero h1 { font-size: 2.4rem;}
	.hero h1 em{font-size:1.2rem;}
	.hero-sub{margin-top:1.5rem;}
	.hero-tree{margin-bottom:1.5rem;}
	.hero-tree img{max-width:12vw;}
	.hero-cta-area { flex-direction: column;gap: 0.8rem;}
	.hero-scroll{bottom:2rem;}
}

/* -------------------------------------------------- */
/* experience */
/* -------------------------------------------------- */
.experience {background: var(--cream);text-align: center;padding-top:8rem;padding-bottom:8rem;}
.experience .section-title { max-width: 700px;margin: 0 auto 3rem;}
.exp-grid {display: grid;grid-template-columns: repeat(3, 1fr);gap: 3rem;max-width: 1000px;margin: 0 auto;}
.exp-card {padding: 3rem 2rem;background: var(--white);border-radius: 2px;position: relative;transition: transform 0.3s ease;}
.exp-card:hover { transform: translateY(-4px);}
.exp-num {font-family: 'Cormorant Garamond', serif;font-size: 3.5rem;font-weight: 300;color: var(--gold);opacity: 0.4;line-height: 1;}
.exp-card h3 {font-family: 'Noto Serif JP', serif;font-size: 1.1rem;font-weight: 500;margin: 1rem 0 0.8rem;}
.exp-card p {font-size: 0.85rem;line-height: 1.9;color: var(--warm-gray);font-family: 'Noto Serif JP', serif;font-weight: 300;}

@media screen and (min-width:1px) and (max-width:768px){
	.experience{padding-top:4rem;padding-bottom:4rem;}
	.experience .section-title{font-size:1.8rem;margin-bottom:2rem;}
	.exp-grid{grid-template-columns: 1fr;gap:1rem;}
	.exp-card{padding:2rem;}
	.exp-num{line-height:0.2;margin-bottom:2rem;}
}

/* -------------------------------------------------- */
/* crack */
/* -------------------------------------------------- */
.crack-section {background: var(--forest-deep);color: var(--cream);padding-top:8rem;padding-bottom:8rem;position: relative;overflow: hidden;}
.crack-section::after {content: '';position: absolute;top: 0;right: 0;width: 40%;height: 100%;background: radial-gradient(ellipse at 80% 50%, rgba(196,162,101,0.06) 0%, transparent 60%);}
.crack-inner {max-width: 1100px;margin: 0 auto;display: grid;grid-template-columns: 1fr 1fr;gap: 5rem;align-items: center;position: relative;z-index: 2;}
.crack-visual {text-align: center;}
.crack-circle {width: 300px;height: 300px;border-radius: 50%;background: radial-gradient(circle, var(--shell-brown) 30%, var(--forest) 100%);margin: 0 auto;display: flex;align-items: center;justify-content: center;position: relative;box-shadow: 0 20px 60px rgba(0,0,0,0.3);overflow:hidden;background:#1c1815;}
.crack-circle-inner video{width:100%;height:100%;position:absolute;top:0;left:0;object-fit:cover;}
.crack-circle-inner {font-family: 'Cormorant Garamond', serif;font-size: 1.2rem;color: var(--cream);text-align: center;letter-spacing: 0.1em;line-height: 1.8;}
.crack-circle-inner span {display: block;font-size: 4rem;font-weight: 300;color: var(--gold-light);margin-bottom: 0.3rem;}
.crack-text .section-label { color: var(--gold-light);}
.crack-text .section-title { color: var(--cream);font-size: 2rem;}
.crack-text p {font-family: 'Noto Serif JP', serif;font-size: 0.9rem;line-height: 2.2;color: rgba(245,240,232,0.7);font-weight: 300;}
.crack-steps {display: flex;gap: 0.5rem;margin-top: 2.5rem;}
.crack-step {flex: 1;padding:1.2rem 0.8rem;border: 1px solid rgba(196,162,101,0.2);text-align: center;}
.crack-step .step-num {font-family: 'Cormorant Garamond', serif;font-size: 0.75rem;color: var(--gold);letter-spacing: 0.2em;}
.crack-step p {font-size: 0.78rem;margin-top: 0.5rem;color: var(--cream);opacity: 0.8;line-height:1.5;}

@media screen and (min-width:1px) and (max-width:768px){
	.crack-section{padding-top:4rem;padding-bottom:4rem;}
	.crack-inner{gap:3rem;grid-template-columns: 1fr;}
	.crack-text .section-title{font-size:1.8rem;}
	.crack-visual{max-width:300px;width:80%;margin:auto;}
	.crack-circle{width:100%;height:0;padding-bottom:100%;position:relative;}
	.crack-circle-inner{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
	.crack-circle-inner img{max-width:50%;display:block;}
	.crack-steps{margin-top:2rem;display:block;}
	.crack-step + .crack-step{margin-top:1rem;}
}

/* -------------------------------------------------- */
/* products */
/* -------------------------------------------------- */
.products {background: var(--white);text-align: center;padding-top:8rem;padding-bottom:8rem;}
.product-grid {display: grid;grid-template-columns: 1fr 1fr;gap: 4rem;max-width: 900px;margin: 3rem auto 0;}
.product-card {text-align: center;padding: 3rem;background: var(--cream);position: relative;transition: all 0.4s ease;}
.product-card:hover { box-shadow: 0 12px 40px rgba(0,0,0,0.08);}
.product-img {margin: 0 auto 1.5rem;}
.product-img img{box-shadow:4px 4px 10px rgba(0,0,0,0.1);}
.product-card h3 {font-family: 'Noto Serif JP', serif;font-size: 1.2rem;font-weight: 500;margin-bottom: 0.3rem;}
.product-sku {font-size: 0.72rem;color: var(--warm-gray);letter-spacing: 0.15em;margin-bottom: 1rem;}
.product-card p {font-family: 'Noto Serif JP', serif;font-size: 0.82rem;line-height: 1.9;color: var(--warm-gray);font-weight: 300;}
.product-card p.product-price{font-size:1.1rem;font-weight:bold;margin-top:5px;}
.product-btn {display: inline-block;margin-top: 1.5rem;padding: 0.8rem 2.5rem;background: var(--forest);color: var(--cream);text-decoration: none;font-size: 0.72rem;letter-spacing: 0.2em;transition: all 0.3s;}
.product-btn:hover { background: var(--forest-deep);}

@media screen and (min-width:1px) and (max-width:768px){
	.products{padding-top:4rem;padding-bottom:4rem;}
	.product-grid{margin-top:2rem;gap:1rem;grid-template-columns: 1fr;}
	.product-img img{max-width:50%;}
}

/* -------------------------------------------------- */
/* nutrition */
/* -------------------------------------------------- */
.nutrition {background: var(--cream);padding-top:8rem;padding-bottom:8rem;}
.nutrition-inner {max-width: 1000px;margin: 0 auto;text-align: center;}
.nutrition-cards {display: grid;grid-template-columns: repeat(3, 1fr);gap: 2rem;margin-top: 3rem;}
.nutri-card {background: var(--white);padding: 2.5rem 2rem;text-align: center;border-bottom: 3px solid var(--gold);}
.nutri-icon {font-size: 1.8rem;margin-bottom: 1rem;color: var(--forest);}
.nutri-img{margin:0 auto 1.2rem;}
.nutri-card h4 {font-family: 'Noto Serif JP', serif;font-size: 1rem;font-weight: 500;margin-bottom: 0.8rem;}
.nutri-card p {font-family: 'Noto Serif JP', serif;font-size: 0.8rem;line-height: 1.9;color: var(--warm-gray);font-weight: 300;}
.nutri-tag {display: inline-block;margin-top: 1rem;padding: 0.3rem 0.8rem;font-size: 0.65rem;letter-spacing: 0.1em;border: 1px solid var(--gold);color: var(--gold);}

@media screen and (min-width:1px) and (max-width:768px){
	.nutrition{padding-top:4rem;padding-bottom:4rem;}
	.nutrition-cards{margin-top:2rem;gap:1rem;grid-template-columns: 1fr;}
	.nutri-card{padding:1rem 2rem 2rem;}
}

/* -------------------------------------------------- */
/* quality */
/* -------------------------------------------------- */
.quality {background: var(--white);padding-top:8rem;padding-bottom:8rem;}
.quality-inner {max-width: 1100px;margin: 0 auto;}

/* --- ヘッダー部 --- */
.quality-header {text-align: center;margin-bottom: 4rem;}
.quality-header .section-title {max-width: 700px;margin: 0 auto 1.5rem;}
.quality-lead {font-family: 'Noto Serif JP', serif;font-size: 0.88rem;line-height: 2.2;font-weight: 300;color: var(--warm-gray);max-width: 680px;margin: 0 auto;}

/* --- 3カラム品質カード --- */
.quality-grid {display: grid;grid-template-columns: repeat(3, 1fr);gap: 2.5rem;margin-bottom: 4rem;}
.q-card {padding: 2.5rem 2rem;background: var(--cream);position: relative;border-top: 3px solid var(--gold);}
.q-card-num {font-family: 'Cormorant Garamond', serif;font-size: 3rem;font-weight: 300;color: var(--gold);opacity: 0.35;line-height: 1;margin-bottom: 1rem;}
.q-card h3 {font-family: 'Noto Serif JP', serif;font-size: 1.05rem;font-weight: 500;margin-bottom: 0.8rem;}
.q-card p {font-family: 'Noto Serif JP', serif;font-size: 0.8rem;line-height: 2;color: var(--warm-gray);font-weight: 300;}
.q-highlight {margin-top: 1rem;padding: 0.7rem 1rem;background: var(--white);border-left: 2px solid var(--gold);}
.q-highlight p {font-size: 0.75rem;line-height: 1.8;color: var(--forest);font-weight: 400;}

/* --- サイズ選別ビジュアル --- */
.size-visual {background: var(--cream);padding: 3rem;text-align: center;margin-bottom: 4rem;}
.size-visual h3 {font-family: 'Noto Serif JP', serif;font-size: 1.3rem;font-weight: 400;margin-bottom: 0.5rem;}
.size-visual .sub {font-size: 0.78rem;color: var(--warm-gray);font-family: 'Noto Serif JP', serif;font-weight: 300;margin-bottom: 2rem;}
.size-spectrum {display: flex;align-items: flex-end;justify-content: center;gap: 0.7rem;margin-bottom: 1.5rem;}
.size-ball {display: flex;flex-direction: column;align-items: center;gap: 0.4rem;}
.ball {border-radius: 50%;background: var(--shell-brown);transition: all 0.3s;}
.ball.off { opacity: 0.25;}
.ball.on {opacity: 1;box-shadow: 0 0 0 3px var(--gold), 0 4px 14px rgba(139,111,78,0.25);}
.size-lbl {font-size: 0.55rem;color: var(--warm-gray);letter-spacing: 0.03em;white-space: nowrap;}
.size-lbl.active { color: var(--forest);font-weight: 600;}
.best-tag {display: inline-block;padding: 0.35rem 1.2rem;background: var(--gold);color: var(--forest-deep);font-size: 0.6rem;letter-spacing: 0.2em;font-weight: 600;}

/* --- 加工工程フロー --- */
.process-flow {display: grid;grid-template-columns: repeat(4, 1fr);gap: 0;margin-bottom: 4rem;}
.process-step {padding: 2rem 1.5rem;background: var(--forest-deep);color: var(--cream);text-align: center;position: relative;display:flex;flex-direction:column;}
.process-step:not(:last-child)::after {content: '→';position: absolute;right: -0.6rem;top: 50%;transform: translateY(-50%);font-size: 1.2rem;color: var(--gold);z-index: 2;}
.process-step .p-num {font-family: 'Cormorant Garamond', serif;font-size: 0.65rem;letter-spacing: 0.25em;color: var(--gold);margin-bottom: 0.8rem;}
.process-step h4 {font-family: 'Noto Serif JP', serif;font-size: 0.95rem;font-weight: 500;margin-bottom: 0.5rem;}
.process-step p {font-family: 'Noto Serif JP', serif;font-size: 0.72rem;line-height: 1.8;font-weight: 300;color: rgba(245,240,232,0.65);}
.process-step .time-badge {display: inline-block;margin-top: 0.6rem;padding: 0.2rem 0.6rem;background: rgba(196,162,101,0.15);font-size: 0.6rem;letter-spacing: 0.1em;color: var(--gold-light);font-weight: 500;}
.process-step .p-inner{flex:1;margin-bottom:1rem;}

/* --- バイロンベイ産地バナー --- */
.origin-banner {display: grid;grid-template-columns: auto 1fr;gap: 3rem;align-items: flex-start;padding: 3rem;background: var(--forest);color: var(--cream);position:relative;}
.origin-map{position:absolute;bottom:0;left:0;width:280px;height:100%;}
.origin-map img{width:100%;height:100%;object-fit:cover;object-position:right bottom;opacity:0.4;}
.origin-map::before{content:"";display:block;position:absolute;bottom:2.6rem;right:14%;width: 10px;height: 10px;background: var(--gold);border-radius: 50%;animation: dotPulse 2s infinite;transform:translate(-50%,-50%);}
.origin-badge {text-align: center;min-width: 200px;position:relative;z-index:1;}
.origin-badge h3 {font-family: 'Cormorant Garamond', serif;font-size: 1.6rem;font-weight: 400;}
.origin-badge .sub {font-size: 0.72rem;opacity: 0.6;letter-spacing: 0.12em;font-family: 'Noto Serif JP', serif;}
.map-dot {width: 10px;height: 10px;background: var(--gold);border-radius: 50%;margin: 1rem auto 0;animation: dotPulse 2s infinite;}
@keyframes dotPulse {0%,100% { box-shadow: 0 0 0 0 rgba(196,162,101,0.4);}50% { box-shadow: 0 0 0 12px rgba(196,162,101,0);}}
.origin-body{position:relative;z-index:2;}
.origin-body p {font-family: 'Noto Serif JP', serif;font-size: 0.82rem;line-height: 2.1;color: rgba(245,240,232,0.7);font-weight: 300;}

@media screen and (min-width:1px) and (max-width:768px){
	.quality{padding-top:4rem;padding-bottom:4rem;}
	.quality-header{margin-bottom:2rem;}
	.quality-grid{gap:1rem;margin-bottom:2rem;grid-template-columns: 1fr;}
	.q-card-num{line-height:0.2;margin-bottom:2rem;}
	.size-visual{padding:2.5rem 2rem 2rem;margin-bottom:2rem;}
	.size-spectrum{gap:0.5rem;flex-wrap: wrap;}
	.process-flow {margin-bottom:2rem;grid-template-columns: 1fr 1fr;}
	.process-step:not(:last-child)::after { display: none;}
	.origin-banner { gap:2rem;grid-template-columns: 1fr;text-align: center;padding:5rem 2rem 2rem;}
	.origin-map{bottom:auto;top:0;height:100px;}

}

/* -------------------------------------------------- */
/* b2b */
/* -------------------------------------------------- */
.b2b {background: var(--charcoal);color: var(--cream);padding-top:8rem;padding-bottom:8rem;}
.b2b-inner {max-width: 1100px;margin: 0 auto;display: grid;grid-template-columns: 1fr 1fr;gap: 5rem;align-items: start;}
.b2b .section-label { color: var(--gold);}
.b2b .section-title { color: var(--cream);}
.b2b-text p {font-family: 'Noto Serif JP', serif;font-size: 0.88rem;line-height: 2.2;color: rgba(245,240,232,0.65);font-weight: 300;}
.b2b-channels {display: grid;grid-template-columns: 1fr 1fr;gap: 1.5rem;margin-top: 2.5rem;}
.b2b-ch {padding: 1.5rem;border: 1px solid rgba(196,162,101,0.25);transition: border-color 0.3s;}
.b2b-ch:hover { border-color: var(--gold);}
.b2b-ch h4 {font-family: 'Cormorant Garamond', serif;font-size: 1.1rem;color: var(--gold-light);margin-bottom: 0.5rem;}
.b2b-ch p {font-size: 0.75rem;line-height: 1.8;color: rgba(245,240,232,0.5);}
.b2b-form {background: rgba(255,255,255,0.04);padding: 3rem;border: 1px solid rgba(196,162,101,0.15);}
.b2b-form h3 {font-family: 'Noto Serif JP', serif;font-size: 1.2rem;margin-bottom: 2rem;}
.form-group {margin-bottom: 1.5rem;}
.form-group label {display: block;font-size: 0.7rem;letter-spacing: 0.15em;color: var(--gold);margin-bottom: 0.5rem;}
.form-group input, .form-group select, .form-group textarea {width: 100%;padding: 0.8rem 1rem;background: rgba(255,255,255,0.05);border: 1px solid rgba(245,240,232,0.15);color: var(--cream);font-family: 'DM Sans', sans-serif;font-size: 0.85rem;outline: none;transition: border-color 0.3s;}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus {border-color: var(--gold);}
.form-group textarea { resize: vertical;min-height: 100px;}
.form-group select option { background: var(--charcoal);}
.form-submit {width: 100%;padding: 1rem;background: var(--gold);color: var(--forest-deep);border: none;cursor: pointer;font-size: 0.78rem;letter-spacing: 0.2em;font-family: 'DM Sans', sans-serif;font-weight: 600;transition: all 0.3s;}
.form-submit:hover { background: var(--gold-light);}

@media screen and (min-width:1px) and (max-width:768px){
	.b2b{padding-top:4rem;padding-bottom:4rem;}
	.b2b-inner { grid-template-columns: 1fr;gap:3rem;}
	.b2b-channels { grid-template-columns: 1fr;gap:1rem;margin-top:2rem;}
	.b2b-form{padding:1.5rem 1.2rem;}
}

/* -------------------------------------------------- */
/* #block-confirm */
/* -------------------------------------------------- */
#block-confirm{background:var(--cream);}
#block-confirm .container{max-width:1100px;margin:auto;padding:40px;}
#block-confirm .confirm-error{font-size:1rem;text-align:center;}
#block-confirm .confirm-error h4{margin-bottom:30px;}
#block-confirm .error_messe{color:#dc0326;font-weight:bold;}
#block-confirm .btn{margin-top:40px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
#block-confirm .btn input{display:inline-block;padding: 1rem 4rem;background: var(--gold);color: var(--forest-deep);border: none;cursor: pointer;font-size: 0.78rem;letter-spacing: 0.2em;font-family: 'DM Sans', sans-serif;font-weight: 600;transition: all 0.3s;}
#block-confirm .btn input:hover{background:var(--gold-light);}
#block-confirm .btn .btn-back{background:var(--warm-gray);color:#fff;}
#block-confirm .btn .btn-back:hover{background:var(--warm-gray);opacity:0.8;}
#block-confirm .confirm-block{font-size:1rem;text-align:center;}
#block-confirm .confirm-block h3{font-weight:bold;font-size:1.4rem;margin-bottom:20px;}
#block-confirm .confirm-block table{max-width:800px;margin:30px auto 0;width:100%;background:#fff;}
#block-confirm .confirm-block table th,
#block-confirm .confirm-block table td{font-size:0.9rem;border:1px solid var(--charcoal);padding:15px 20px;text-align:left;}
#block-confirm .confirm-block table th{background:var(--cream-dark);width:30%;}

@media screen and (min-width:1px) and (max-width:768px){
	#block-confirm .container{padding:40px 0;}
	#block-confirm .confirm-error{font-size:0.9rem;}
	#block-confirm .confirm-block{font-size:0.9rem;}
	#block-confirm .confirm-block table,
	#block-confirm .confirm-block table tr,
	#block-confirm .confirm-block table tbody,
	#block-confirm .confirm-block table th,
	#block-confirm .confirm-block table td{display:block;width:100%;}
	#block-confirm .confirm-block table{border-bottom:1px solid var(--charcoal);}
	#block-confirm .confirm-block table th{border-bottom:0;font-size:0.8rem;padding:12px 15px;}
	#block-confirm .confirm-block table td{border-top:0;border-bottom:0;font-size:0.8rem;padding:12px 15px;}
}

/* -------------------------------------------------- */
/* #block-thanks */
/* -------------------------------------------------- */
#block-thanks{background:var(--cream);}
#block-thanks .container{max-width:1100px;margin:auto;padding:40px;text-align:center;font-size:1rem;}
#block-thanks h2{font-size:1.6rem;font-weight:bold;margin-bottom:20px;}
#block-thanks .btn{margin-top:40px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
#block-thanks .btn a{display:inline-block;padding: 1rem 4rem;background: var(--gold);color: var(--forest-deep);border: none;cursor: pointer;font-size: 0.78rem;letter-spacing: 0.2em;font-family: 'DM Sans', sans-serif;font-weight: 600;transition: all 0.3s;text-decoration:none;}
#block-thanks .btn a:hover{background:var(--gold-light);}
#block-thanks .btn .btn-back{background:var(--warm-gray);color:#fff;}
#block-thanks .btn .btn-back:hover{background:var(--warm-gray);opacity:0.8;}
